icoa-cli 2.19.127 → 2.19.129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- (function(b,j){const a4=a0j,k=b();while(!![]){try{const p=-parseInt(a4(0x174))/(0x227d+0x8a5*0x1+-0x1*0x2b21)+-parseInt(a4(0xc3))/(0x20d*0x13+-0x524+-0xb*0x313)*(-parseInt(a4(0xbd))/(-0x1adb*-0x1+0x1ece*-0x1+0x3f6))+parseInt(a4(0x153))/(0x51*-0x21+0x45+0xa30)+parseInt(a4(0x172))/(0x99f+0x1a3+-0xb3d)+parseInt(a4(0x171))/(-0x2ca+0xa0*-0x23+-0xa*-0x278)*(parseInt(a4(0x137))/(-0x1544+-0x1493+0x2e*0xe9))+-parseInt(a4(0x110))/(0x1431+0x24a4+-0x38cd)*(-parseInt(a4(0x18e))/(-0x20e*0x13+-0x1f*0x9d+-0xa*-0x5cf))+-parseInt(a4(0x190))/(-0x12+-0x19f8+0xd0a*0x2);if(p===j)break;else k['push'](k['shift']());}catch(q){k['push'](k['shift']());}}}(a0b,0x2e8fb+0x7a9*-0x1b+0x59e62));import a0p from'chalk';import{createChatSession as a0q}from'../lib/gemini.js';import{addTokenUsage as a0v}from'../lib/budget.js';import{getConfig as a0w}from'../lib/config.js';import{logCommand as a0x}from'../lib/logger.js';function a0j(a,b){a=a-(0x212c+0xf49+0x1*-0x2fbd);const c=a0b();let d=c[a];if(a0j['zppEEw']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x290+-0x4*0x51a+-0x3d4*-0x6,o,p,q=-0x2c*0x9a+-0x877+0x22ef;p=i['charAt'](q++);~p&&(o=n%(0x1fc3+0x1602+-0x35c1)?o*(-0x1d9*-0x13+-0x972+0x515*-0x5)+p:p,n++%(-0x1caf*-0x1+0x2563+-0x420e))?l+=String['fromCharCode'](-0xe0+-0x863*-0x2+0x7*-0x221&o>>(-(-0xb61+-0x1e76+-0xdf3*-0x3)*n&0x1*-0x2027+0x71+0x1fbc)):0x9e8+-0x1d9+0x1*-0x80f){p=j['indexOf'](p);}for(let r=0x21*-0xb4+-0x17b7+0x2eeb,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0xaa+-0x20*-0x10f+-0x2126))['slice'](-(-0x175*0x7+-0x1e21+0x2856));}return decodeURIComponent(m);};a0j['XguCvi']=e,a0j['xVblTI']={},a0j['zppEEw']=!![];}const f=c[-0x1cb5+-0x23*0x113+0x424e],g=a+f,h=a0j['xVblTI'][g];return!h?(d=a0j['XguCvi'](d),a0j['xVblTI'][g]=d):d=h,d;}import{printMarkdown as a0z,printError as a0A}from'../lib/ui.js';import{t as a0B}from'../lib/i18n.js';const i=b=>new Promise(j=>setTimeout(j,b));let s=!(-0xb53+-0xf91*-0x1+-0x43d),g=null,r=-0x877+0xa5d+-0x1e6,y=!(0x1fc3+0x1602+-0x35c4);const h=-0x395*-0x31+-0x2f39+0x6a*-0x4a;let u=null;export function isChatActive(){return s;}function d(){const a5=a0j,b=u?h:-0x1caf*-0x1+0x2563+-0x2e8a,j=r,k=Math[a5(0x100)](Math[a5(0x130)](j/b*(-0xe0+-0x863*-0x2+0x5*-0x31a)),-0xb61+-0x1e76+-0x239*-0x13),p=Math['round'](k/(0x1*-0x2027+0x71+0x201a)*(0x9e8+-0x1d9+0x1*-0x7fb)),q=0x21*-0xb4+-0x17b7+0x2eff-p,v=k>-0xaa+-0x20*-0x10f+-0x20e6?a0p[a5(0x105)]:k>-0x175*0x7+-0x1e21+0x2886?a0p[a5(0x126)]:a0p['green'],w=u?a5(0xee):a5(0xc0);console[a5(0x15c)](a0p[a5(0xea)]('\x20\x20'+w+':\x20')+v('█'[a5(0xc1)](p))+a0p[a5(0xea)]('░'[a5(0xc1)](q))+a0p['gray']('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(p){const a6=a0j;if(!g)return'exit';if(a0x(a6(0xf1)+p),u)return m(p);const q=p['trim']()[a6(0x165)]()['match'](/^hint\s+([abc])$/);if(q)return function(z){const a7=a6,A=a0B('a'===z?a7(0x17f):'b'===z?a7(0xf8):a7(0x1b3)),B=a0B('a'===z?'ai4ctfHintABody':'b'===z?a7(0xdc):a7(0x10e)),C=a7(0x13d)+z[a7(0x193)](),D='a'===z?a0p[a7(0xd7)]:'b'===z?a0p[a7(0x126)]:a0p[a7(0x105)];console[a7(0x15c)](),console[a7(0x15c)](D[a7(0x142)](a7(0xd8)+C+'\x20\x20')+a0p[a7(0xea)](A)),console[a7(0x15c)]();for(const E of B[a7(0x19a)]('\x0a'))''===E?console[a7(0x15c)]():console['log'](a0p['white'](a7(0x16d)+E));console[a7(0x15c)](),'a'===z?(console[a7(0x15c)](a0p[a7(0xea)]('\x20\x20\x20\x20'+a0B(a7(0x1a0))+'\x20')+a0p['cyan'](a7(0x19b))),console[a7(0x15c)]()):'b'===z&&(console['log'](a0p['gray'](a7(0x16d)+a0B('ai4ctfHintNextB')+'\x20')+a0p[a7(0xcb)](a7(0x121))),console[a7(0x15c)]());}(q[-0x1cb5+-0x23*0x113+0x424f]),a6(0x1ad);const v=p[a6(0x1ab)](/^submit\s+(.+)/i);if(v){let z=v[-0x1*-0x2285+-0x9ab+-0x18d9][a6(0x177)]();if(/^submit\s+/i[a6(0xbf)](z)&&(z=z[a6(0x104)](/^submit\s+/i,'')['trim']()),z=z[a6(0x104)](/^["'`]+|["'`]+$/g,'')[a6(0x177)](),a6(0xd6)===z){console[a6(0x15c)](),console[a6(0x15c)](a0p['green'][a6(0x142)]('\x20\x20════════════════════════════════════')),console[a6(0x15c)](a0p[a6(0xd7)][a6(0x142)]('\x20\x20'+a0B('ai4ctfCorrectFlag'))),console[a6(0x15c)](a0p[a6(0xd7)]['bold']('\x20\x20════════════════════════════════════')),console[a6(0x15c)](),console[a6(0x15c)](a0p['white']('\x20\x20'+a0B(a6(0x150)))),console[a6(0x15c)](a0p[a6(0xea)]('\x20\x20'+a0B(a6(0x1b1)))),console[a6(0x15c)](),d(),s=!(-0x202*0x6+0x2*-0xfda+0x2bc1),g=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x117),'headers':{'Content-Type':a6(0x113)},'body':JSON[a6(0x1b2)]({'type':a6(0x1a5),'solved':!(-0x956+-0x1*-0x1073+0x3*-0x25f),'tokensUsed':r,'timestamp':new Date()[a6(0x18b)]()}),'signal':AbortSignal[a6(0x17d)](0x1181+0x1c53+-0x33*0x84)})[a6(0x175)](()=>{}),await i(-0xc*0x2ac+0xc1*-0x1e+0x3c8a),console[a6(0x15c)](),console['log'](a0p[a6(0xcb)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x15c)](a0p[a6(0x142)][a6(0x19c)]('\x20\x20'+a0B(a6(0x173)))),console[a6(0x15c)](a0p[a6(0xcb)]('\x20\x20─────────────────────────────────────────────')),console['log']();const A=a0B(a6(0x18c)),B=a0B('ai4ctfWrapLine1Body');console[a6(0x15c)](a0p[a6(0x19c)](a6(0x107)+A+'\x20')+a0p[a6(0xea)](B[a6(0x19a)]('\x0a')[0x1*-0x23a1+-0xb5+0x2456*0x1]||''));for(const F of B[a6(0x19a)]('\x0a')[a6(0x181)](0x1c0a+-0x42*0x8f+0x8d5))F[a6(0x177)]()&&console['log'](a0p[a6(0xea)]('\x20\x20\x20\x20\x20\x20\x20'+F['replace'](/\{thinking\}/g,a6(0x11d))));console[a6(0x15c)](),console['log'](a0p[a6(0x19c)]('\x20\x20\x20\x202.\x20'+a0B(a6(0x162))+'\x20')+a0p['gray'](a0B('ai4ctfWrapLine2Body'))),console[a6(0x15c)](),console[a6(0x15c)](a0p['cyan']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console[a6(0x15c)](),await i(-0x2079+0x6ef+0x215a),console[a6(0x15c)](a0p[a6(0xcb)](a6(0x161))),console['log'](a0p[a6(0x142)][a6(0x19c)]('\x20\x20'+a0B(a6(0x163)))),console[a6(0x15c)](a0p[a6(0xcb)](a6(0x161))),console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0x126)](a6(0x184))+a0p[a6(0x19c)](a0B('ai4ctfWrapQuotaA')['padEnd'](-0x21d6+-0xa9*-0x31+0x197*0x1))+a0p[a6(0xea)](a0B(a6(0x156)))),console['log'](a0p[a6(0x126)](a6(0x12d))+a0p[a6(0x19c)](a0B(a6(0x11f))[a6(0xbe)](-0xb*0x350+0x4da*0x1+0x1fb0))+a0p[a6(0xea)](a0B(a6(0x12c)))),console[a6(0x15c)](a0p[a6(0x126)](a6(0x11c))+a0p[a6(0x19c)](a0B(a6(0x14b))[a6(0xbe)](-0x11*0x11b+0x1bc6+-0x8e1*0x1))+a0p[a6(0xea)](a0B('ai4ctfWrapQuotaCHint'))),console['log']();for(const G of a0B(a6(0xdd))[a6(0x19a)]('\x0a'))console[a6(0x15c)](a0p[a6(0xea)](a6(0x16d)+G));console[a6(0x15c)](),await i(0x1c71+0xec*0x3+-0x1765),console[a6(0x15c)](a0p[a6(0xcb)]('\x20\x20─────────────────────────────────────────────')),console['log'](a0p['bold']['white']('\x20\x20'+a0B('ai4ctfWrapNextTitle')+'\x20')+a0p[a6(0x105)][a6(0x142)](a6(0xf4))+a0p[a6(0x19c)](a6(0xcf)+a0B('ai4ctfWrapNextSub'))),console[a6(0x15c)](a0p[a6(0xcb)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x15c)]();const C=a0B(a6(0x101)),D=a0B(a6(0x195)),E=C[a6(0x19a)]('\x0a');if(E[-0x2123+-0x202e+0x4151]){const [H,I]=E[0x1bc+-0x7a1+0x5e5][a6(0x19a)](a6(0xe0));console[a6(0x15c)](a0p[a6(0x19c)](a6(0x16d)+(H||''))+a0p[a6(0x142)][a6(0x19c)](D)+a0p[a6(0x19c)](I||''));}for(const J of E[a6(0x181)](0x26b3*0x1+-0x3*0x2a0+-0xf*0x20e))J[a6(0x177)]()&&console[a6(0x15c)](a0p[a6(0x19c)](a6(0x16d)+J));return console[a6(0x15c)](),console['log'](a0p['gray'](a6(0x16d)+a0B('ai4ctfWrapTypeCtf4ai')+'\x20')+a0p[a6(0x142)][a6(0x105)](a6(0xf4))),console[a6(0x15c)](),a6(0x14d);}return console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0x105)]('\x20\x20'+a0B(a6(0x17a)))),console[a6(0x15c)](a0p['gray']('\x20\x20'+a0B(a6(0x143)))),console[a6(0x15c)](),'continue';}if(p['startsWith']('!')){const K=p[a6(0x181)](0x75*-0x2+-0x1e7c+-0x1*-0x1f67)[a6(0x177)]();if(!K)return a6(0x1ad);try{const L={};L[a6(0x1ac)]=a6(0x125),L['timeout']=0x2710;const {execSync:M}=await import(a6(0x189)),N=M(K,L)[a6(0x177)]();console['log'](),console['log'](a0p[a6(0xea)](a6(0x11a))+a0p[a6(0x19c)](K)),console['log'](a0p['white']('\x20\x20'+N['split']('\x0a')[a6(0x114)](a6(0xc5)))),console[a6(0x15c)](),console[a6(0x15c)](a0p['gray']('\x20\x20'+a0B(a6(0x10d)))),console[a6(0x15c)]();}catch(O){console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0x105)](a6(0x12b)+(O['message']?.[a6(0x19a)]('\x0a')[0x1a*-0xc+-0x916*-0x1+-0x35*0x26]||a6(0xc4)))),console['log']();}return'continue';}const w={};w['Content-Type']=a6(0x113);if(a6(0x14d)===p||a6(0x10a)===p||a6(0xed)===p||a6(0xc7)===p)return s=!(-0x3*0xb3d+0xd87+0x1431),g=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x117),'headers':w,'body':JSON[a6(0x1b2)]({'type':a6(0x1a5),'tokensUsed':r,'timestamp':new Date()[a6(0x18b)]()}),'signal':AbortSignal['timeout'](0x1b98+0x1113+-0x1923)})['catch'](()=>{}),console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0xea)](a6(0x10c))),console[a6(0x15c)](a0p[a6(0x19c)]('\x20\x20'+a0B('ai4ctfReport'))),console[a6(0x15c)](a0p[a6(0xea)]('\x20\x20'+a0B(a6(0xec))+':\x20'+r+a6(0x159))),console[a6(0x15c)](a0p[a6(0xea)]('\x20\x20'+a0B('ai4ctfModel')+a6(0x109))),console[a6(0x15c)](a0p[a6(0xea)](a6(0x10c))),console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0xcb)](a6(0x161))),console[a6(0x15c)](a0p[a6(0x19c)]('\x20\x20'+a0B(a6(0x15a))+'\x20')+a0p['bold'][a6(0x105)](a6(0xf4))+a0p[a6(0x19c)](a6(0xcf)+a0B(a6(0xf9)))),console[a6(0x15c)](a0p[a6(0xea)]('\x20\x20'+a0B('ai4ctfExitNextBody'))),console[a6(0x15c)](a0p[a6(0xcb)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x15c)](),console['log'](a0p[a6(0x142)]['red']('\x20\x20\x20\x20\x20ctf4ai')+a0p[a6(0xea)](a6(0x144)+a0B(a6(0xc2)))),console[a6(0x15c)](a0p[a6(0x19c)]('\x20\x20\x20\x20\x20back')+a0p[a6(0xea)](a6(0x16f)+a0B('ai4ctfExitCmdBack'))),console['log'](),'exit';const x={};x[a6(0x15d)]='application/json';if(!y&&r>=-0x2d7*-0x5+-0x1208*0x1+0x175d)return y=!(-0x1*0x184d+0x1a4a+-0x1fd),fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x117),'headers':x,'body':JSON[a6(0x1b2)]({'type':a6(0x1a5),'solved':!(-0x10d4+0x2*0x120d+0x1345*-0x1),'tokensUsed':r,'timestamp':new Date()[a6(0x18b)]()}),'signal':AbortSignal[a6(0x17d)](0x186a+0x248a+-0x296c)})[a6(0x175)](()=>{}),console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0x126)]('\x20\x20'+a0B(a6(0xb9)))),d(),(function(){const a8=a6;console[a8(0x15c)](),console['log'](a0p[a8(0x126)](a8(0x161))),console[a8(0x15c)](a0p[a8(0x142)]['yellow']('\x20\x20'+a0B(a8(0x196)))),console[a8(0x15c)](a0p[a8(0x126)](a8(0x161))),console[a8(0x15c)]();for(const P of a0B(a8(0x1a2))[a8(0x19a)]('\x0a'))''===P?console[a8(0x15c)]():console[a8(0x15c)](a0p[a8(0x19c)](a8(0x16d)+P));console[a8(0x15c)](),console[a8(0x15c)](a0p['cyan'](a8(0xe7))),console['log'](),console[a8(0x15c)](a0p[a8(0x19c)]('\x20\x20\x20\x20'+a0B(a8(0xba)))),console['log'](),console['log'](a0p['green'](a8(0xfb))),console[a8(0x15c)](),console[a8(0x15c)](a0p['white'](a8(0x16d)+a0B(a8(0x108)))),console[a8(0x15c)](),console[a8(0x15c)](a0p[a8(0xcb)]('\x20\x20\x20\x20\x20\x20\x20\x20submit\x20icoa{w3lc0me_2_ai4ctf}')),console['log'](),console[a8(0x15c)](a0p['gray'](a8(0x16d)+a0B(a8(0x14e)))),console[a8(0x15c)]();}()),a6(0x1ad);if(y)return console[a6(0x15c)](),console[a6(0x15c)](a0p[a6(0x126)]('\x20\x20'+a0B(a6(0x135)))),console[a6(0x15c)](a0p['gray']('\x20\x20'+a0B(a6(0x145))+'\x20')+a0p[a6(0xcb)]('!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console[a6(0x15c)](a0p[a6(0xea)]('\x20\x20'+a0B('ai4ctfLockedThen')+'\x20')+a0p[a6(0xcb)](a6(0x128))),console[a6(0x15c)](),a6(0x1ad);console[a6(0x15c)](a0p['gray']('\x20\x20'+a0B(a6(0x139))));try{const P=await g[a6(0x160)](p);process[a6(0x10f)][a6(0x17b)]('\x1b[1A\x1b[2K'),r+=P[a6(0x197)],a0v(P[a6(0x197)]),console['log'](),a0z(P[a6(0x17e)]),d(),console['log']();}catch(Q){process[a6(0x10f)][a6(0x17b)]('\x1b[1A\x1b[2K'),a0A('AI\x20error:\x20'+Q[a6(0x119)]),console[a6(0x15c)]();}return'continue';}const f=new Set();async function m(k){const a9=a0j;if(!u||!g)return'exit';const p=k[a9(0x177)](),q=p[a9(0x165)](),v=(Date['now']()-u[a9(0xe5)])/(-0x17088+0x16d8+0x10*0x2441);if(!u[a9(0xf6)]&&!u['submitAttempted']&&u[a9(0x1af)][a9(0x192)]>=-0x5e7*0x1+-0x1*-0x61f+0x1b*-0x2&&v>=-0x2*-0xfd1+-0x1a8f+0x287*-0x2&&(u[a9(0xf6)]=!(0x7be+0x169b+-0x1e59),console[a9(0x15c)](),console[a9(0x15c)](a0p[a9(0x126)]('\x20\x20💡\x20Once\x20you\x20have\x20ICOA{...},\x20submit\x20it\x20with:\x20')+a0p[a9(0x142)][a9(0x126)](a9(0x13f))),console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20\x20\x20\x20(type\x20it\x20right\x20here\x20in\x20this\x20chat\x20—\x20not\x20as\x20a\x20shell\x20command)')),console['log']()),/^ICOA\{[^}]+\}$/i[a9(0xbf)](p))return console['log'](),console['log'](a0p[a9(0xea)](a9(0x132))+a0p[a9(0x19c)](a9(0x158)+p)),m('submit\x20'+p);const x=q[a9(0x1ab)](/^hint\s+([abc])$/);if(x){const A=x[0x359*-0x2+0x86e+-0x1bb][a9(0x193)](),B=u['question']['hints'],C=B?.[A],D='A'===A?a0p[a9(0xd7)]:'B'===A?a0p['yellow']:a0p[a9(0x105)];if(console[a9(0x15c)](),console['log'](D['bold']('\x20\x20▸\x20Hint\x20'+A)),console[a9(0x15c)](),C){for(const E of String(C)[a9(0x19a)]('\x0a'))console[a9(0x15c)](a0p['white'](a9(0x16d)+E));}else console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20\x20\x20No\x20pre-written\x20hint\x20at\x20this\x20tier\x20for\x20this\x20question.'));return console[a9(0x15c)](),'A'===A?console[a9(0x15c)](a0p[a9(0xea)](a9(0x1a3))+a0p[a9(0xcb)](a9(0x19b))):'B'===A?console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20\x20\x20Really\x20stuck?\x20Try:\x20')+a0p[a9(0xcb)]('hint\x20c')):'C'===A&&console[a9(0x15c)](a0p[a9(0xea)](a9(0x16d)+a0B(a9(0xfd))+'\x20')+a0p[a9(0x142)][a9(0xd7)](a9(0x13f))),console[a9(0x15c)](),a9(0x1ad);}const z=p[a9(0x1ab)](/^submit\s+(.+)/i);if(z){let F=z[0x2*0xa30+0x14a6+0x2905*-0x1][a9(0x177)]();if(/^submit\s+/i[a9(0xbf)](F)&&(F=F[a9(0x104)](/^submit\s+/i,'')[a9(0x177)]()),F=F['replace'](/^["'`]+|["'`]+$/g,'')[a9(0x177)](),/^[A-Da-d]$/[a9(0xbf)](F))return console['log'](),console[a9(0x15c)](a0p[a9(0x126)](a9(0xcd)+F+a9(0x170))),console[a9(0x15c)](a0p[a9(0xea)](a9(0x149))+a0p['green'](a9(0x186))+a0p[a9(0xea)](a9(0xd0))),console[a9(0x15c)](),a9(0x1ad);const {getExamState:G,saveExamState:H}=await import(a9(0xbc)),I=G();if(!I)return'exit';if(!I[a9(0x199)]['find'](L=>L['number']===u['qNum']))return console[a9(0x15c)](a0p['red'](a9(0x12e)+u['qNum']+a9(0x1ae))),a9(0x1ad);const J=I[a9(0x13b)][u[a9(0x112)]];I[a9(0xf3)]||(I[a9(0xf3)]=[]),I[a9(0xf3)]['push']({'ts':new Date()[a9(0x18b)](),'q':u[a9(0x112)],'type':J?a9(0xe3):a9(0x16a),'input':F,'result':a9(0x178)}),I[a9(0x13b)][u['qNum']]=F;const K=u[a9(0x112)]+(-0x1cb3+-0x2016+0x3cca);return I[a9(0xff)]=K<=0x923*0x3+-0x1f0*0x11+0x5ad?K:u['qNum'],H(I),console[a9(0x15c)](),J?(console[a9(0x15c)](a0p['green'](a9(0xd2)+u[a9(0x112)]+a9(0xfc))+a0p[a9(0x126)](F)),console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20\x20\x20Previous:\x20'+J))):console[a9(0x15c)](a0p['green']['bold']('\x20\x20✓\x20Answer\x20for\x20Q'+u[a9(0x112)]+a9(0x122)+F)),console[a9(0x15c)](a0p[a9(0xea)](a9(0x180))),console[a9(0x15c)](),console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20')+a0p['white'](a9(0x15f))+a0p[a9(0xea)](a9(0x198))+a0p['white'](a9(0x14d))+a0p['gray'](a9(0x11b))),K<=0x11*0x1dd+0x8ec+-0x221*0x13?console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20After\x20exit:\x20')+a0p[a9(0xcb)](a9(0x1a5))+a0p[a9(0xea)](a9(0x136)+K)):console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20After\x20exit:\x20AI4CTF\x20section\x20complete.\x20Next:\x20')+a0p[a9(0x105)](a9(0xf4))+a0p[a9(0xea)]('\x20on\x20Q39')),console[a9(0x15c)](),'continue';}if(k[a9(0x14a)]('!')){const L=k[a9(0x181)](-0x655*-0x2+-0x171d*0x1+-0x3*-0x37c)[a9(0x177)]();if(!L)return'continue';try{const M={};M[a9(0x1ac)]=a9(0x125),M['timeout']=0x2710;const {execSync:N}=await import('node:child_process'),O=N(L,M)[a9(0x177)]();console[a9(0x15c)](),console[a9(0x15c)](a0p[a9(0xea)](a9(0x11a))+a0p[a9(0x19c)](L)),console[a9(0x15c)](a0p[a9(0x19c)]('\x20\x20'+O[a9(0x19a)]('\x0a')[a9(0x114)]('\x0a\x20\x20'))),console[a9(0x15c)]();}catch(P){console['log'](),console[a9(0x15c)](a0p['red']('\x20\x20Error:\x20'+(P[a9(0x119)]?.[a9(0x19a)]('\x0a')[0x1*0x352+-0x189b+0x1549]||a9(0xc4)))),console[a9(0x15c)]();}return a9(0x1ad);}if(a9(0x14d)===q||'back'===q||a9(0xed)===q){const Q=u['qNum'],{getExamState:R}=await import(a9(0xbc)),S=R(),T=S&&null!=S[a9(0x13b)][Q],U=S?.[a9(0xff)]||Q;return s=!(-0x238f+-0x2*0x61e+0x2fcc),g=null,u=null,f['clear'](),console[a9(0x15c)](),console[a9(0x15c)](a0p[a9(0xea)]('\x20\x20AI4CTF\x20chat\x20ended\x20for\x20Q'+Q+'.')),T&&U>Q&&U<=-0x84b+0xd*-0x25c+-0x13*-0x20f?console['log'](a0p[a9(0x19c)](a9(0x129))+a0p[a9(0x142)]['green']('Q'+U)+a0p[a9(0xea)](a9(0x1a7))+a0p[a9(0xcb)](a9(0x1a5))+a0p['gray'](a9(0xd9))):T&&Q>=0x2200+0x2*-0x11b1+0x2*0xc4?console[a9(0x15c)](a0p[a9(0x19c)](a9(0x18a))+a0p[a9(0x142)][a9(0x105)]('ctf4ai')+a0p[a9(0xea)]('\x20for\x20Q39')):console['log'](a0p['gray'](a9(0x188))+a0p[a9(0x19c)](a9(0x127)+Q)+a0p[a9(0xea)](a9(0x194))+a0p['white'](a9(0x1a5))),console[a9(0x15c)](),a9(0x14d);}if(y)return console[a9(0x15c)](),console[a9(0x15c)](a0p[a9(0x126)](a9(0x147))),console[a9(0x15c)](a0p[a9(0xea)](a9(0xd4))+a0p[a9(0x19c)]('submit\x20<flag>')+a0p['gray'](a9(0xe9))+a0p[a9(0x19c)]('!shell')+a0p[a9(0xea)](a9(0xe9))+a0p[a9(0x19c)]('exit')),console[a9(0x15c)](),'continue';if(r>=h)return y=!(-0x40e+0x123d+-0xe2f),console[a9(0x15c)](),console[a9(0x15c)](a0p[a9(0x105)][a9(0x142)](a9(0x16b))),console[a9(0x15c)](a0p[a9(0xea)](a9(0x179))+a0p[a9(0x19c)](a9(0xc9))+a0p['gray'](a9(0xe9))+a0p['white'](a9(0x102))+a0p[a9(0xea)]('\x20·\x20')+a0p[a9(0x19c)]('exit')),console[a9(0x15c)](),a9(0x1ad);console[a9(0x15c)](a0p['gray'](a9(0xeb)));try{const V=await g[a9(0x160)](k);process[a9(0x10f)][a9(0x17b)](a9(0x183)),r+=V['tokensUsed'];const {getRealExamState:W,saveExamState:X}=await import(a9(0xbc)),Y=W(),Z={};Z[a9(0x1a5)]=0x0,Z[a9(0xf4)]=0x0,(Y&&(Y[a9(0x118)]||(Y[a9(0x118)]=Z),Y['aiUsage']['ai4ctf']=r,X(Y)),console[a9(0x15c)](),a0z(V['text']),d(),function(a0,a1,a2){const aa=a9,a3=a0/a1*(-0xe0*0xe+0x7f9*-0x1+0x149d);a3>=-0x1f*0x83+-0x1*0x62d+-0x1*-0x1669&&!a2[aa(0x12a)]('95')?(console[aa(0x15c)](a0p[aa(0x105)]['bold'](aa(0x1a6)+Math[aa(0x130)](a3)+'%\x20of\x20section\x20AI\x20budget\x20used\x20—\x20only\x20~'+(a1-a0)+'\x20tokens\x20left.')),a2[aa(0xbb)]('95')):a3>=0x4*-0x914+0x4*0xc9+0x217c&&!a2[aa(0x12a)]('80')?(console[aa(0x15c)](a0p[aa(0x126)](aa(0x15b))),a2['add']('80')):a3>=0x1*0x1403+-0x41*0xf+-0x3*0x556&&!a2[aa(0x12a)]('50')&&(console[aa(0x15c)](a0p['gray'](aa(0x148))),a2[aa(0xbb)]('50'));}(r,h,f),console[a9(0x15c)]());}catch(a0){process[a9(0x10f)][a9(0x17b)](a9(0x183)),a0A(a9(0x15e)+a0[a9(0x119)]),console['log']();}return a9(0x1ad);}export function registerAi4ctfCommand(b){const ab=a0j;b[ab(0x115)](ab(0x1a5))[ab(0x168)](ab(0x187))['action'](async()=>{const ac=ab;a0x(ac(0x1a5));const {getRealExamState:j}=await import(ac(0xbc)),k=j(),p=k?.[ac(0x199)][ac(0xe1)](x=>x[ac(0x1a9)]>=-0x8b2+-0xb6b*-0x1+-0x29a&&x[ac(0x1a9)]<=-0xac7+-0x1d*0x103+-0x2*-0x1422);if(k&&p){const x=k[ac(0xff)]||0x26e3+-0x1701*0x1+-0x10f*0xf;if(x<-0x2*0x1a+0x9*-0x2e1+0x1a3c*0x1||x>0x2*0x75b+-0x1182+0x2f2*0x1)return console[ac(0x15c)](),console[ac(0x15c)](a0p[ac(0x126)](ac(0x13a))),console['log'](a0p['gray']('\x20\x20You\x20are\x20on\x20Q'+x+'.\x20Jump\x20there\x20first:')),console[ac(0x15c)](a0p['gray'](ac(0x191))+a0p[ac(0x142)][ac(0xcb)]('exam\x20q\x2031')),void console['log']();const z=k[ac(0x199)][ac(0x19e)](A=>A[ac(0x1a9)]===x);return z?void await async function(A,B){const ad=ac,{getRealExamState:C,refetchQuestionDataIfStale:D,materializeAttachedData:E}=await import(ad(0xbc));await D();const F=C();if(!F)return!(-0x1*0x1+-0x1*-0x79f+-0x79d);const G=F['questions'][ad(0x19e)](J=>J[ad(0x1a9)]===A);G&&(B=G),E(A,B?.[ad(0x151)]);const H=F[ad(0x118)]?.[ad(0x1a5)]??0x130*0xb+0x8a2+-0x1*0x15b2;if(H>=h)return console[ad(0x15c)](),console[ad(0x15c)](a0p[ad(0x126)](ad(0x1a4))),console[ad(0x15c)](a0p[ad(0xea)](ad(0xdb))+a0p['white']('exam\x20answer\x20'+A+ad(0xf5))),console[ad(0x15c)](),!(-0x2299+0xc53*0x2+0x9f4);try{g=await a0q(void(0x737*0x1+-0x12af*-0x1+-0x451*0x6),function(J,K){const ae=ad,L=J[ae(0x168)]||J[ae(0x17e)]||'',M=J['attachedData']?ae(0xe4)+K+ae(0x152)+J[ae(0x151)]:'';return ae(0x146)+K+',\x20'+J['category']+',\x20'+(J[ae(0xce)]||-0x1bdd+-0x2ba+0x1e9d)+ae(0x106)+L+M+ae(0xb8)+K+ae(0x1b0);}(B,A));}catch(J){return a0A(J[ad(0x119)]),!(-0x868*-0x1+-0x286*0xb+0x135b*0x1);}s=!(0x1677+0x5e+-0x16d5),r=H,y=!(0x389+-0x718*0x4+0x18d8),u={'qNum':A,'question':B,'usageField':ad(0x1a5),'enteredAt':Date[ad(0x120)](),'hintsUsed':new Set(),'submitAttempted':!(-0x2406*0x1+0x4ff+0x1f08),'nudgeShown':!(0x1f74+0x22f7+-0x426a)};const I=F[ad(0x13b)]?.[A];return function(K,L,M){const af=ad,N=a0w()[af(0x182)]||af(0x16e),O=r>-0x2*0xb29+0x1*0xfb5+0x1*0x69d;console['log'](),console[af(0x15c)](a0p['green']['bold'](af(0x12f)+L+':\x20'+K['category']+af(0xef))),O&&console[af(0x15c)](a0p[af(0xea)](af(0x176))),M&&console['log'](a0p['gray']('\x20\x20Current\x20answer:\x20')+a0p[af(0x126)](M)+a0p[af(0xea)]('\x20\x20(submit\x20again\x20to\x20change)')),console[af(0x15c)](),console[af(0x15c)](a0p[af(0xcb)](af(0x141))),console[af(0x15c)](a0p[af(0xcb)]('\x20\x20│\x20')+a0p[af(0x142)][af(0x19c)]('Q'+L+af(0x140)+K[af(0xe2)]+af(0x157)+(K[af(0xce)]||-0x1*-0x22d4+-0x2548+0x27a*0x1)+af(0x111))),console['log'](a0p[af(0xcb)]('\x20\x20│'));for(const P of String(K[af(0x17e)])[af(0x19a)]('\x0a')){const Q=P[af(0x167)]>0x1208+0x1d46+-0x2f12?P[af(0x181)](-0x1483+0x32b*-0xa+-0x1af*-0x1f,0x3*0x78b+0x23c3+-0x3a2b)+'...':P;console[af(0x15c)](a0p[af(0xcb)](af(0x1b5))+a0p[af(0x19c)](Q));}console[af(0x15c)](a0p[af(0xcb)]('\x20\x20│')),console[af(0x15c)](a0p['cyan'](af(0x1b5))+a0p[af(0xea)]('Full\x20question:\x20\x20')+a0p[af(0x19c)](af(0x127)+L)),console[af(0x15c)](a0p[af(0xcb)]('\x20\x20│\x20')+a0p[af(0xea)]('Flag\x20format:\x20\x20\x20\x20ICOA{...}')),console[af(0x15c)](a0p[af(0xcb)]('\x20\x20└─────────────────────────────────────────────')),console[af(0x15c)](),console[af(0x15c)](a0p[af(0x142)][af(0x19c)](af(0x155))),console[af(0x15c)](),console[af(0x15c)](a0p[af(0x126)](af(0x169))+a0p[af(0xea)](af(0xf0))),console['log'](a0p[af(0x126)](af(0x10b))+a0p['gray'](af(0x18f))),console[af(0x15c)](a0p[af(0x126)](af(0x19f))+a0p['gray'](af(0x103))),console[af(0x15c)](a0p[af(0x142)][af(0xd7)]('\x20\x20\x20\x20submit\x20ICOA{...}')+a0p[af(0xea)]('\x20Submit\x20your\x20flag\x20for\x20this\x20question')),console[af(0x15c)](a0p[af(0x19c)](af(0x16c))+a0p[af(0xea)](af(0xe6))),console['log'](a0p[af(0xea)](af(0xde))),console[af(0x15c)](a0p[af(0xea)](af(0x138))+a0p[af(0x19c)](af(0x13c))),console['log'](),console[af(0x15c)](a0p[af(0xea)]('\x20\x20\x20\x20exit')+a0p['gray'](af(0x1b4))),console[af(0x15c)](a0p['gray'](af(0xd3))+a0p[af(0xea)](af(0xfa))),console[af(0x15c)](),d(),console[af(0x15c)](a0p[af(0xea)]('\x20\x20Model:\x20Google\x20Gemma\x204\x20('+N+')')),console[af(0x15c)]();}(B,A,I),!(0x1564+-0x2133*0x1+0xbcf);}(x,z):void a0A('Q'+x+ac(0x17c)+x);}const q={};q[ac(0x19d)]=ac(0xc6),q['category']='Cryptography';const v=a0w()[ac(0x182)]||'gemma-4-31b-it',w=q;try{g=await a0q(w);}catch(A){return void a0A(A['message']);}s=!(0xe*-0x13+0xe*-0x10f+-0x7ee*-0x2),r=-0x2bf*0xb+0xa54+-0x7*-0x2d7,y=!(-0x950+-0xc25+0x1576),console[ac(0x15c)](),console[ac(0x15c)](a0p[ac(0xd7)]['bold']('\x20\x20═══\x20'+a0B(ac(0x1aa))+'\x20═══')),console['log'](),console[ac(0x15c)](a0p[ac(0x19c)]('\x20\x20'+a0B(ac(0xfe)))),console['log'](),console['log'](a0p[ac(0xcb)](ac(0x141))),console['log'](a0p[ac(0xcb)](ac(0x1b5))+a0p[ac(0x142)][ac(0x19c)](a0B(ac(0xf2)))),console[ac(0x15c)](a0p[ac(0xcb)](ac(0x134))),console[ac(0x15c)](a0p[ac(0xcb)]('\x20\x20│\x20')+a0p['white'](a0B(ac(0x154)))),console[ac(0x15c)](a0p[ac(0xcb)](ac(0x1b5))+a0p[ac(0xd7)](ac(0x18d))),console['log'](a0p['cyan'](ac(0x134))),console['log'](a0p[ac(0xcb)]('\x20\x20│\x20')+a0p[ac(0x19c)](a0B(ac(0x124)))),console[ac(0x15c)](a0p[ac(0xcb)](ac(0x1b5))+a0p['gray'](ac(0xd1))),console['log'](a0p['cyan'](ac(0x164))),console['log'](),console[ac(0x15c)](a0p[ac(0x19c)]('\x20\x20'+a0B(ac(0x11e)))),console[ac(0x15c)](),console['log'](a0p[ac(0x126)](ac(0x169))+a0p[ac(0xea)]('\x20\x20\x20\x20'+a0B('ai4ctfHintA'))),console[ac(0x15c)](a0p[ac(0xea)](ac(0xc8)+a0B(ac(0x123)))),console['log'](a0p[ac(0x126)]('\x20\x20\x20\x20hint\x20b')+a0p['gray']('\x20\x20\x20\x20'+a0B(ac(0xf8)))),console[ac(0x15c)](a0p['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B(ac(0xdf)))),console[ac(0x15c)](a0p[ac(0x126)](ac(0x19f))+a0p[ac(0xea)]('\x20\x20\x20\x20'+a0B(ac(0x1b3)))),console[ac(0x15c)](a0p[ac(0xea)](ac(0xc8)+a0B(ac(0x14c)))),console[ac(0x15c)](),console[ac(0x15c)](a0p[ac(0xea)](ac(0x10c))),console['log'](a0p[ac(0x142)][ac(0x19c)]('\x20\x20'+a0B(ac(0xcc)))),console['log']('\x20\x20\x20\x20'+a0p[ac(0xcb)](ac(0x131))+a0p[ac(0xea)](ac(0x166)+a0B(ac(0xd5)))),console['log'](ac(0x16d)+a0p[ac(0xcb)](ac(0x19b))+a0p[ac(0xea)]('\x20\x20\x20→\x20'+a0B('ai4ctfHintTechnique'))),console[ac(0x15c)](ac(0x16d)+a0p[ac(0xcb)]('hint\x20c')+a0p[ac(0xea)](ac(0x166)+a0B(ac(0x1a1)))),console['log'](a0p[ac(0xea)](ac(0x16d)+a0B(ac(0x1a8)))),console[ac(0x15c)](),console[ac(0x15c)](a0p['white']('\x20\x20'+a0B(ac(0xca)))),console[ac(0x15c)](a0p[ac(0xea)]('\x20\x20'+a0B(ac(0xe8))+'\x20')+a0p[ac(0x19c)](ac(0x14f))),console[ac(0x15c)](),console[ac(0x15c)](a0p[ac(0x126)]('\x20\x20'+a0B('ai4ctfCommands'))),console[ac(0x15c)](a0p[ac(0x19c)](ac(0xda))+a0p[ac(0xea)](a0B('ai4ctfCmdHintLine'))),console[ac(0x15c)](a0p[ac(0x19c)](ac(0x13e))+a0p[ac(0xea)](a0B('ai4ctfSubmitCmd'))),console[ac(0x15c)](a0p['white']('\x20\x20\x20\x20!<shell\x20cmd>\x20\x20\x20\x20')+a0p[ac(0xea)](a0B(ac(0x185)))),console[ac(0x15c)](a0p['gray'](ac(0x138))+a0p['white']('!echo\x20aWNv...\x20|\x20base64\x20-d')),console['log'](a0p[ac(0xea)](ac(0xf7)+a0B(ac(0x133)))),console[ac(0x15c)](),d(),console[ac(0x15c)](a0p[ac(0xea)]('\x20\x20'+a0B('ai4ctfModel')+':\x20Google\x20Gemma\x204\x20('+v+')')),console[ac(0x15c)](a0p['gray']('\x20\x20'+a0B(ac(0x116)))),console[ac(0x15c)]();});}function a0b(){const ag=['ywLvC2fNzq','BwvZC2fNzq','icaKia','ihrVig1VDMuGB24','icaGicaGigHPBNqGyYaGia','DgHPBMTPBMC','ywK0y3rMtgv2zwXZ','ywK0y3rMv3jHCff1B3rHqG','BM93','AgLUDcbJ','ihjLy29YzgvKoIa','ywK0y3rMsgLUDefvC2vZ','ywK0y3rMrgvJB2rL','DxrMltG','EwvSBg93','zxHHBsbXia','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','icbozxH0oIa','AgfZ','icbfCNjVCJOG','ywK0y3rMv3jHCff1B3rHqKHPBNq','icaGicaGigHPBNqGyIaGia','icbr','icdILzdILzdILzaGquK0q1rgiokaLcbr','CM91BMq','AgLUDcbH','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','ywK0y3rMrw5Ku2vZC2LVBG','icdILii','ywK0y3rMtg9JA2vKvgL0Bgu','ihDPBgWGB3bLBIbr','mti0ntiZyNDosKvs','icaGicaGicaGicaGicaGicaGicbLlMCUia','ywK0y3rMvgHPBMTPBMC','icbHAtrJDgyGAxmGyxzHAwXHyMXLig9UifeZmEkaKZm4icHbstrdveyGC2vJDgLVBIKU','yw5ZD2vYCW','iMHVDYbKBYbjigrLy3j5ChqGquvtluncqYbPBIbqExrOB24/iG','sgLUDca','icaGihn1yM1PDca8zMXHzZ4Gica','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','icbB','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','yM9Sza','ywK0y3rMrMXHz0HPBNq','icaGicaGicaGia','ywK0y3rMtg9JA2vKvxnL','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','icbgBgfNigzVCM1HDdOG','C3rHCNrZv2L0Aa','ywK0y3rMv3jHCff1B3rHqW','ywK0y3rMsgLUDenvC2vZ','zxHPDa','ywK0y3rMuMv2zwfStg9JA05VDgu','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','ywK0y3rMrgvJB2rLza','yxr0ywnOzwreyxrH','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','mJiXmtqZnMzzDhj3uW','ywK0y3rMsw50zxjJzxb0zwq','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','ywK0y3rMv3jHCff1B3rHquHPBNq','xsaGWRCG','C3vIBwL0ia','lZuWmda','ywK0y3rMrxHPDe5LEhruAxrSzq','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','Bg9N','q29UDgvUDc1uExbL','quKGzxjYB3i6ia','C3vIBwL0ieLdt0f7lI4UFq','C2vUze1LC3nHz2u','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMv3jHCeXPBMuYsgvHza','ywK0y3rMv3jHCff1B3rHC1rPDgXL','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','Dg9mB3DLCKnHC2u','icaG4OAsia','BgvUz3rO','zgvZy3jPChrPB24','icaGigHPBNqGyq','yw5ZD2vYx3n1yM1PDhrLza','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','icaGicfWExrOB24Zic4UlG','icaGia','z2vTBweTnc0ZmwiTAxq','icaGicaGicaGicaG','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','mJrhtfHVuva','mJe0mta2nw5lC1jeDG','ywK0y3rMv3jHCfrPDgXL','ndCZmdqZtLnmvLft','y2f0y2G','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','DhjPBq','DMLHigfPngn0zIbJAgf0','icbzB3uGy2fUihn0AwXSoIa','ywK0y3rMv3jVBMDgBgfN','D3jPDgu','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','DgLTzw91Da','Dgv4Da','ywK0y3rMsgLUDee','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','C2XPy2u','z2vTAw5Ptw9KzwW','g1SXqrTBmKS','icaGicaGigHPBNqGysaGia','ywK0y3rMq21Ku2HLBgXmAw5L','sunpqxT5B3vYx2zSywD9','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','icbszxn1Bwu6ia','BM9KztPJAgLSzf9WCM9JzxnZ','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','Dg9ju09tDhjPBMC','ywK0y3rMv3jHCeXPBMuXsgvHza','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','mtiYnta3muv0B2fKtW','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','nty2mZa1mevSEfvJDq','icaGiokgKIa','C2L6zq','Dg9vChbLCKnHC2u','icdcTYaGuMuTzw50zxi6ia','ywK0y3rMv3jHCe5VuhjVzW','ywK0y3rMuMv2zwfSvgL0Bgu','Dg9Rzw5ZvxnLza','igfNywLUihrVignOyw5NzsWGB3iG','CxvLC3rPB25Z','C3bSAxq','AgLUDcbI','D2HPDgu','BMfTzq','zMLUza','icaGigHPBNqGyW','ywK0y3rMsgLUDe5LEhrb','ywK0y3rMsgLUDfbYAw5JAxbSzq','ywK0y3rMuMv2zwfSqM9KEq','icaGifn0DwnRpYbuCNK6ia','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','ywK0y3rM','icdIMQaG','iokaLcb0ExbLia','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','BNvTyMvY','ywK0y3rMvgL0Bgu','Bwf0y2G','zw5JB2rPBMC','y29UDgLUDwu','ig5VDcbMB3vUzcbPBIbZDgf0zs4','AgLUDhnvC2vK','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','ywK0y3rMv291BgrfyxjU','C3rYAw5NAwz5','ywK0y3rMsgLUDem','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','icdILiiG','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','Dg9Rzw5mAw1PDa','ywK0y3rMuMv2zwfSu2vLrMXHzW','ywrK','lI4VBgLIl2v4yw0TC3rHDguUANm','mta3mdK4nu9izvnxqG','CgfKrw5K','DgvZDa','vg9Rzw5Z','CMvWzwf0','ywK0y3rMrxHPDenTze5LEhq','mKHhy0jIrq','q29TBwfUzcbMywLSzwq','cIaG','sgLKzgvUie1LC3nHz2u','BwvUDq','icaGicaGicaGicaGica','C3vIBwL0idXMBgfNpG','ywK0y3rMt3jdAgf0','y3LHBG','ywK0y3rMv2vSy29Tzun0yq','icaI','Cg9PBNrZ','iokaLca','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','icdINjmGuq','icaGig1LBNu','icbtDgLSBcbHDMfPBgfIBgu6ia','ywK0y3rMsgLUDe51zgDL','AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','z3jLzw4','icdILRGG','ihrVignVBNrPBNvL','icaGigHPBNqGysaVigiGlYbJica','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','ywK0y3rMsgLUDejcB2r5','ywK0y3rMv3jHCff1B3rHrM9VDgvY','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','ywK0y3rMsgLUDejvC2vZ','E25VuhjVz30','C29Tzq','y2f0zwDVCNK','yw5ZD2vYx2nOyw5Nzwq','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','zw50zxjLzef0','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','ywK0y3rMt3jdAgf0rxHHBxbSzq','imk3ia','z3jHEq','icbuAgLUA2LUzY4UlG','ywK0y3rMvg9Rzw5Z','CxvPDa','quK0q1rgihnLy3rPB24','iokvKokvKokvKa','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','ywK0y3rMoIa','ywK0y3rMq2HHBgXLBMDL','Aw50zxjHy3rPB25Z','y3rMngfP','ieLdt0f7lI4UFq','BNvKz2vtAg93BG','icaGigv4AxqGicaGicaGicaGica','ywK0y3rMsgLUDei','ywK0y3rMrxHPDe5LEhrtDwi','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','igfUC3DLCIb1CgrHDgvKoIa','ywK0y3rMsgLUDe5LEhrd','ywK0y3rMu2fTCgXL','x2XHC3rr','BwLU','ywK0y3rMv3jHCe5LEhrcB2r5','ixnOzwXS','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','CMvWBgfJzq','CMvK','ihbVAw50CYK6cG','icaGideUia','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','yMfJAW','icaGigHPBNqGyG','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMrM91BMrgBgfN','ywK0y3rMsgLUDencB2r5','C3rKB3v0','ohrgshnxzW','ihb0CW','Cu51Bq','yxbWBgLJyxrPB24VANnVBG','AM9PBG','y29TBwfUza','ywK0y3rMrxHPDa','ue9tva'];a0b=function(){return ag;};return a0b();}
1
+ (function(b,j){const a4=a0j,k=b();while(!![]){try{const p=parseInt(a4(0x17c))/(0x1825+-0x1dea+0x2*0x2e3)+parseInt(a4(0x1ff))/(-0x1fed+0x353+0x1c9c)+parseInt(a4(0x178))/(0x4bf+0x6*-0x479+-0x3af*-0x6)+parseInt(a4(0x212))/(-0x23*-0x49+0xdb9+-0x5ec*0x4)*(-parseInt(a4(0x1cd))/(0x4fe*-0x5+-0xfeb+0x28e6))+parseInt(a4(0x215))/(-0x2*0x3a4+0x2015+-0x18c7*0x1)+-parseInt(a4(0x1d5))/(0x99f*-0x3+0x1*-0x956+0x65f*0x6)*(parseInt(a4(0x169))/(0x1*-0x1be5+-0x590+0x217d))+-parseInt(a4(0x1ab))/(0x6a*-0x11+0x187+0x58c);if(p===j)break;else k['push'](k['shift']());}catch(q){k['push'](k['shift']());}}}(a0b,-0x2739d+-0x262*-0x119+0x26687));import a0p from'chalk';import{createChatSession as a0q}from'../lib/gemini.js';import{addTokenUsage as a0v}from'../lib/budget.js';import{getConfig as a0w}from'../lib/config.js';import{logCommand as a0x}from'../lib/logger.js';import{printMarkdown as a0z,printError as a0A}from'../lib/ui.js';import{t as a0B}from'../lib/i18n.js';const i=b=>new Promise(j=>setTimeout(j,b));let s=!(0x3ca+-0x1f*0x3d+-0x2*-0x1cd),g=null,r=-0x8*0x1a5+-0x209a+-0x2*-0x16e1,y=!(0x3fd*0x1+0x1f1e+0x231a*-0x1);const h=-0xa2b0+0x11d1*0xa+0x522e;function a0b(){const ag=['iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','icaGicaGicaGicaG','ywK0y3rMuMvWB3j0','ChvZAa','ywK0y3rMv3jHCe5LEhrtDwi','BM9KztPJAgLSzf9WCM9JzxnZ','C2L6zq','ywK0y3rMvgL0Bgu','icdILii','AgLUDcbJ','DhjPBq','CxvPDa','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','ywK0y3rMv3jHCff1B3rHC1rPDgXL','ywK0y3rMq2HHBgXLBMDL','ihb0CW','icbuAgLUA2LUzY4UlG','ywK0y3rMv3jHCff1B3rHqW','ywK0y3rMv3jHCfrPDgXL','Bwf0y2G','y2XLyxi','ywK0y3rMq29TBwfUzhm','C3rKB3v0','zxHHBsbXia','BgvUz3rO','zMLUza','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','q3j5ChrVz3jHCgH5','yxr0ywnOzwreyxrH','icaGig1LBNu','zgvZy3jPChrPB24','icbB','ywn0Aw9U','ywK0y3rMsgLUDe51zgDL','ywK0y3rMrxHPDe5LEhrtDwi','icaGia','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','y3rMngfP','icaGicaGicbZDwjTAxqGAwnVyxT3m2XJmg1LxZjFywK0y3rMFq','ywK0y3rMv3jHCeXPBMuYqM9KEq','ywK0y3rMrxHPDe5LEhrcB2r5','CM91BMq','ywK0y3rMv2vSy29Tzun0yq','C3vIBwL0qxr0zw1WDgvK','icbr','rNvSBcbXDwvZDgLVBJOGia','ywK0y3rMuMv2zwfSqM9KEq','xsaGWRCG','icdILzdILzdILzaG','icaGigHPBNqGyq','ywK0y3rMv3jHCff1B3rHqKHPBNq','CxvLC3rPB24','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','y3LHBG','ywK0y3rMsgLUDe5LEhrc','lI4VBgLIl2v4yw0TC3rHDguUANm','EwvSBg93','BNvKz2vtAg93BG','BwvZC2fNzq','icaGifbYzxzPB3vZoIa','ywK0y3rMsgLUDefvC2vZ','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','ywK0y3rMq29YCMvJDezSywC','C2XPy2u','sgLUDca','lI4U','DxrMltG','z2vTAw5Ptw9KzwW','yw5ZD2vYCW','BwvUDq','CMvWzwf0','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','ywK0y3rMv291BgrfyxjU','ywK0y3rMsgLUDfrLy2HUAxf1zq','mtC2nJK4nezNBuvcAq','ywK0y3rMsgLUDem','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','icbszxn1Bwu6ia','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','z3jHEq','zxHPDa','Dg9Rzw5ZvxnLza','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','sunpqxT5B3vYx2zSywD9','ywK0y3rMq21KsgLUDeXPBMu','ywK0y3rMtg9JA2vKvxnL','C2vUze1LC3nHz2u','nty0nZeXuhzcq1jr','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','icbzB3uGy2fUihn0AwXSoIa','ywK0y3rMv3jHCff1B3rHqG','mtq0mdG2tKnqCefW','quKGzxjYB3i6ia','C3vIBwL0ieLdt0f7lI4UFq','CxvLC3rPB25Z','icbzB3uGyxjLig9Uife','icdILRGGsgLUDca','CMvWBgfJzq','C3bSAxq','ue9tva','ywK0y3rMrw5Ku2vZC2LVBG','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','icbgBgfNigzVCM1HDdOG','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','icbdDxjYzw50igfUC3DLCJOG','ywK0y3rMsgLUDejvC2vZ','C3rHCNrZv2L0Aa','D2HPDgu','ywK0y3rMsgLUDei','ihjLy29YzgvKoIa','D3jPDgu','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMsgLUDejcB2r5','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','ywK0y3rMsgLUDenvC2vZ','ywK0y3rMuMv2zwfSvgL0Bgu','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','BM93','icaGigHPBNqGyW','ihbVAw50CYK6cG','ywK0y3rMsgLUDencB2r5','DgHPBMTPBMC','icaGicaGicaGicaGica','AgLUDcbI','icbHAtrJDgyGAxmGyxzHAwXHyMXLig9UifeZmEkaKZm4icHbstrdveyGC2vJDgLVBIKU','ywK0y3rMv3jHCff1B3rHrM9VDgvY','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','ywK0y3rMsw50zxjJzxb0zwq','quK0q1rgihnLy3rPB24','AgfZ','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','yw5ZD2vYx3n1yM1PDhrLza','y29UDgLUDwu','BMfTzq','Cu51Bq','icaGigHPBNqGysaVigiGlYbJica','mZKXmda1CLDoAKvL','Bg9N','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','ywrK','ywK0y3rMrxHPDenTze5LEhq','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','Dg9mB3DLCKnHC2u','ieLdt0f7lI4UFq','ywK0y3rMsgLUDfbYAw5JAxbSzq','icdIMQaG','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icaKia','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','C3vIBwL0idXMBgfNpG','icbozxH0oIa','sgLKzgvUie1LC3nHz2u','z3jLzw4','ywK0y3rMrxHPDe5LEhruAxrSzq','icaGideUia','yM9Sza','ywK0y3rMv3jHCfr5CgvdDgy0ywK','icaGicaGigHPBNqGyYaGia','ywLvC2fNzq','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','iokaLca','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','y2f0zwDVCNK','icaGigv4AxqGicaGicaGicaGica','zxHHBsbXidmX','icaGihn1yM1PDcbjq09bEY4UlN0','icaGigHPBNqGyG','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','mZm4odCWwLLcq1zW','iokaLcb0ExbLia','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','ywK0y3rMv3jHCff1B3rHqq','AgLUDhm','icaGihn1yM1PDca8zMXHzZ4Gica','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','Dgv4Da','n0zAvxPkEa','CgfKrw5K','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','ywK0y3rMrxHPDenTzejHy2S','icaGicfWExrOB24Zic4UlG','CMvK','ywK0y3rMsgLUDee','q29UDgvUDc1uExbL','lZuWmda','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','ywK0y3rMtgv2zwXZ','icaGicaGigHPBNqGysaGia','ywK0y3rMu2fTCgXL','BwLU','igfUC3DLCIb1CgrHDgvKoIa','ywK0y3rMv3jHCe5VuhjVzW','ig9UifeZoq','icaGifn0DwnRpYbuCNK6ia','Dg9ju09tDhjPBMC','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','Dg9vChbLCKnHC2u','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','icaI','icaGicaGia','ywK0y3rMv3jHCff1B3rHquHPBNq','igfNywLUihrVignOyw5NzsWGB3iG','icaGicbIywnR','ywK0y3rMoIa','x2XHC3rr','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','C3vIBwL0ia','DgLTzw91Da','ywK0y3rMv3jHCe5LEhruAxrSzq','ywK0y3rMvgHPBMTPBMC','AgLUDcbH','icaGicaGicaGicaGicaGicaGicbLlMCUia','yxbWBgLJyxrPB24VANnVBG','icdILiiG','ywK0y3rMu3vIBwL0q21K','ixnOzwXS','mJa3nZrvCMrpCMm','imk3ia','lIbkDw1WihrOzxjLigzPCNn0oG','g1SXqrTBmKS','z2vTBweTnc0ZmwiTAxq','ihrVig1VDMuGB24','ywK0y3rMsgLUDefcB2r5','icaG4OAsia','ywK0y3rMuMv2zwfSu2vLrMXHzW','icaGicbJDgy0ywK','C29Tzq','zw5JB2rPBMC','yMfJAW','AM9PBG','q29TBwfUzcbMywLSzwq','BNvTyMvY','icaGicaGicaGia','Aw50zxjHy3rPB25Z','cIaG','mtjMwvn1tvC','y2f0y2G','iokvKokvKokvKa','mtC1nZK0mfLoyujHzq','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','DgvZDa','ywK0y3rMvg9Rzw5Z','ihrVignVBNrPBNvL','icdILzdILzdILzaGquK0q1rgiokaLcbr','ywK0y3rM','oIbhB29NBguGr2vTBweGncaO','ywK0y3rMtw9KzwW','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','Cg9PBNrZ','ywK0y3rMtg9JA2vKvgL0Bgu','ywK0y3rMrMXHz0HPBNq'];a0b=function(){return ag;};return a0b();}let u=null;function a0j(a,b){a=a-(-0xe7f+-0x3*0xca7+0x35c4);const c=a0b();let d=c[a];if(a0j['OVkQIj']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x6*0xfd+-0x669+-0x1b*-0x75,o,p,q=0x1853+-0xf5d+-0x25*0x3e;p=i['charAt'](q++);~p&&(o=n%(-0xbe8+0x45d*0x1+0x285*0x3)?o*(-0x2fe*0x2+-0x10d*-0x1c+0xd4*-0x1c)+p:p,n++%(0xc*-0x217+-0x336*-0x5+0x90a))?l+=String['fromCharCode'](-0x115f+0x809+-0x5*-0x211&o>>(-(-0xc0f*0x1+0xefd+-0x16*0x22)*n&0x1f*-0x3b+0x2462*0x1+-0x1d37)):0xdfc+0x1*-0x1924+0x1dc*0x6){p=j['indexOf'](p);}for(let r=-0xeb0+0xafd+-0x3b3*-0x1,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x84+-0x151b+-0x15af*-0x1))['slice'](-(-0x1072+-0xd07*-0x1+0x36d));}return decodeURIComponent(m);};a0j['MKzteV']=e,a0j['TmNsjq']={},a0j['OVkQIj']=!![];}const f=c[-0x784+-0x1d10+0x2494],g=a+f,h=a0j['TmNsjq'][g];return!h?(d=a0j['MKzteV'](d),a0j['TmNsjq'][g]=d):d=h,d;}export function isChatActive(){return s;}function d(){const a5=a0j,b=u?h:0x2*0x807+0xab+0x2cf,j=r,k=Math[a5(0x1e3)](Math['round'](j/b*(-0x115f+0x809+-0x5*-0x1f2)),-0xc0f*0x1+0xefd+-0x19*0x1a),p=Math[a5(0x24c)](k/(0x1f*-0x3b+0x2462*0x1+-0x1cd9)*(0xdfc+0x1*-0x1924+0xb3c*0x1)),q=-0xeb0+0xafd+-0x3c7*-0x1-p,v=k>-0x84+-0x151b+-0x15ef*-0x1?a0p[a5(0x1da)]:k>-0x1072+-0xd07*-0x1+0x39d?a0p[a5(0x157)]:a0p[a5(0x1bc)],w=u?a5(0x1a3):'Tokens';console['log'](a0p[a5(0x16e)]('\x20\x20'+w+':\x20')+v('█'[a5(0x165)](p))+a0p[a5(0x16e)]('░'[a5(0x165)](q))+a0p[a5(0x16e)]('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(p){const a6=a0j;if(!g)return a6(0x16f);if(a0x(a6(0x1f1)+p),u)return m(p);const q=p['trim']()['toLowerCase']()[a6(0x236)](/^hint\s+([abc])$/);if(q)return function(z){const a7=a6,A=a0B('a'===z?a7(0x1db):'b'===z?a7(0x18d):'ai4ctfHintC'),B=a0B('a'===z?a7(0x205):'b'===z?a7(0x192):a7(0x19a)),C=a7(0x15f)+z['toUpperCase'](),D='a'===z?a0p[a7(0x1bc)]:'b'===z?a0p[a7(0x157)]:a0p[a7(0x1da)];console['log'](),console['log'](D['bold']('\x20\x20▸\x20'+C+'\x20\x20')+a0p[a7(0x16e)](A)),console['log']();for(const E of B[a7(0x183)]('\x0a'))''===E?console['log']():console[a7(0x1ac)](a0p[a7(0x18c)](a7(0x246)+E));console['log'](),'a'===z?(console['log'](a0p['gray'](a7(0x246)+a0B('ai4ctfHintNextA')+'\x20')+a0p[a7(0x154)](a7(0x19d))),console[a7(0x1ac)]()):'b'===z&&(console[a7(0x1ac)](a0p['gray']('\x20\x20\x20\x20'+a0B(a7(0x155))+'\x20')+a0p[a7(0x154)](a7(0x22c))),console[a7(0x1ac)]());}(q[-0x784+-0x1d10+0x2495]),a6(0x1a7);const v=p[a6(0x236)](/^submit\s+(.+)/i);if(v){let z=v[-0x82b+-0x1*-0x1e77+-0x1b7*0xd][a6(0x22d)]();if(/^submit\s+/i[a6(0x217)](z)&&(z=z['replace'](/^submit\s+/i,'')[a6(0x22d)]()),z=z[a6(0x182)](/^["'`]+|["'`]+$/g,'')[a6(0x22d)](),'icoa{w3lc0me_2_ai4ctf}'===z){console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x1bc)][a6(0x1bf)](a6(0x1b6))),console[a6(0x1ac)](a0p[a6(0x1bc)][a6(0x1bf)]('\x20\x20'+a0B(a6(0x15d)))),console[a6(0x1ac)](a0p[a6(0x1bc)][a6(0x1bf)](a6(0x1b6))),console[a6(0x1ac)](),console['log'](a0p[a6(0x18c)]('\x20\x20'+a0B('ai4ctfDecoded'))),console[a6(0x1ac)](a0p['gray']('\x20\x20'+a0B(a6(0x167)))),console[a6(0x1ac)](),d(),s=!(-0x382*0xa+0x1*-0x1a81+0x3d96),g=null,fetch(a6(0x1d7),{'method':a6(0x184),'headers':{'Content-Type':a6(0x1fb)},'body':JSON['stringify']({'type':a6(0x21b),'solved':!(0x36*-0x43+-0x9d7*0x1+0x11*0x169),'tokensUsed':r,'timestamp':new Date()[a6(0x1e8)]()}),'signal':AbortSignal[a6(0x1f6)](-0x1*-0x1825+0x479*0x3+-0x1208)})[a6(0x213)](()=>{}),await i(-0xe4b+-0x706+0x1b2d),console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x154)](a6(0x191))),console[a6(0x1ac)](a0p[a6(0x1bf)][a6(0x18c)]('\x20\x20'+a0B(a6(0x235)))),console['log'](a0p[a6(0x154)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x1ac)]();const A=a0B('ai4ctfWrapLine1Head'),B=a0B('ai4ctfWrapLine1Body');console['log'](a0p['white'](a6(0x1be)+A+'\x20')+a0p[a6(0x16e)](B[a6(0x183)]('\x0a')[-0x2*-0x75+-0x25e3+-0x3*-0xc53]||''));for(const F of B[a6(0x183)]('\x0a')['slice'](-0x394+-0x1992*0x1+-0x1d27*-0x1))F[a6(0x22d)]()&&console[a6(0x1ac)](a0p[a6(0x16e)](a6(0x1ed)+F['replace'](/\{thinking\}/g,a6(0x19b))));console['log'](),console[a6(0x1ac)](a0p[a6(0x18c)]('\x20\x20\x20\x202.\x20'+a0B('ai4ctfWrapLine2Head')+'\x20')+a0p[a6(0x16e)](a0B(a6(0x24a)))),console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x154)](a6(0x1b1))),console[a6(0x1ac)](),await i(0x1*-0x317+0x232d*-0x1+0x2e14),console[a6(0x1ac)](a0p[a6(0x154)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x1ac)](a0p[a6(0x1bf)]['white']('\x20\x20'+a0B(a6(0x230)))),console[a6(0x1ac)](a0p['cyan'](a6(0x191))),console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x157)](a6(0x1e1))+a0p['white'](a0B(a6(0x1d0))[a6(0x1d6)](0x1ef2+-0xa*0x1de+0x26*-0x52))+a0p[a6(0x16e)](a0B(a6(0x1ee)))),console[a6(0x1ac)](a0p[a6(0x157)]('\x20\x20\x20\x20\x20\x20\x20hint\x20b\x20\x20\x20')+a0p[a6(0x18c)](a0B(a6(0x17b))['padEnd'](0x13bf*0x1+-0x2147+0xda2))+a0p[a6(0x16e)](a0B(a6(0x151)))),console['log'](a0p[a6(0x157)](a6(0x1c1))+a0p[a6(0x18c)](a0B(a6(0x234))[a6(0x1d6)](0x7ba*0x3+-0x13*-0x1b5+0x3783*-0x1))+a0p['gray'](a0B('ai4ctfWrapQuotaCHint'))),console[a6(0x1ac)]();for(const G of a0B(a6(0x19f))['split']('\x0a'))console['log'](a0p[a6(0x16e)]('\x20\x20\x20\x20'+G));console['log'](),await i(0x1*-0x24d4+-0x824+0x34c8),console[a6(0x1ac)](a0p['cyan'](a6(0x191))),console[a6(0x1ac)](a0p['bold'][a6(0x18c)]('\x20\x20'+a0B(a6(0x1f7))+'\x20')+a0p[a6(0x1da)][a6(0x1bf)](a6(0x248))+a0p['white'](a6(0x1c4)+a0B(a6(0x227)))),console[a6(0x1ac)](a0p[a6(0x154)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x1ac)]();const C=a0B('ai4ctfWrapNextBody'),D=a0B(a6(0x1e5)),E=C[a6(0x183)]('\x0a');if(E[-0x1c1*-0xe+-0xb*0x1b5+-0x5c7]){const [H,I]=E[0x1a9c+-0x2*0x6a7+-0xd4e][a6(0x183)]('{noProg}');console[a6(0x1ac)](a0p['white']('\x20\x20\x20\x20'+(H||''))+a0p[a6(0x1bf)][a6(0x18c)](D)+a0p[a6(0x18c)](I||''));}for(const J of E[a6(0x15e)](-0xe53+0x110*-0x1+0xf64))J['trim']()&&console[a6(0x1ac)](a0p[a6(0x18c)]('\x20\x20\x20\x20'+J));return console[a6(0x1ac)](),console[a6(0x1ac)](a0p['gray']('\x20\x20\x20\x20'+a0B(a6(0x1c0))+'\x20')+a0p[a6(0x1bf)][a6(0x1da)](a6(0x248))),console[a6(0x1ac)](),'exit';}return console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x1da)]('\x20\x20'+a0B('ai4ctfWrongFlag'))),console[a6(0x1ac)](a0p[a6(0x16e)]('\x20\x20'+a0B(a6(0x222)))),console['log'](),'continue';}if(p[a6(0x18b)]('!')){const K=p[a6(0x15e)](-0x254f+0x4*0x770+0x2*0x3c8)[a6(0x22d)]();if(!K)return a6(0x1a7);try{const L={};L[a6(0x20a)]=a6(0x161),L[a6(0x1f6)]=0x2710;const {execSync:M}=await import(a6(0x228)),N=M(K,L)[a6(0x22d)]();console[a6(0x1ac)](),console[a6(0x1ac)](a0p['gray']('\x20\x20$\x20')+a0p[a6(0x18c)](K)),console['log'](a0p['white']('\x20\x20'+N[a6(0x183)]('\x0a')[a6(0x20c)](a6(0x211)))),console[a6(0x1ac)](),console['log'](a0p[a6(0x16e)]('\x20\x20'+a0B('ai4ctfFoundFlag'))),console[a6(0x1ac)]();}catch(O){console[a6(0x1ac)](),console['log'](a0p[a6(0x1da)]('\x20\x20Error:\x20'+(O[a6(0x159)]?.[a6(0x183)]('\x0a')[0x1f46+0x28d+-0x7*0x4d5]||a6(0x20d)))),console['log']();}return'continue';}const w={};w[a6(0x1dc)]=a6(0x1fb);if(a6(0x16f)===p||a6(0x20b)===p||a6(0x22e)===p||a6(0x164)===p)return s=!(-0x3*0x8ef+-0x1*-0x164e+-0x120*-0x4),g=null,fetch(a6(0x1d7),{'method':a6(0x184),'headers':w,'body':JSON['stringify']({'type':a6(0x21b),'tokensUsed':r,'timestamp':new Date()[a6(0x1e8)]()}),'signal':AbortSignal[a6(0x1f6)](-0x19b7+-0x10b0+0x3def)})[a6(0x213)](()=>{}),console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x16e)]('\x20\x20─────────────────────────────────────────')),console['log'](a0p[a6(0x18c)]('\x20\x20'+a0B(a6(0x225)))),console[a6(0x1ac)](a0p['gray']('\x20\x20'+a0B(a6(0x218))+':\x20'+r+a6(0x1dd))),console[a6(0x1ac)](a0p['gray']('\x20\x20'+a0B(a6(0x21d))+a6(0x1b0))),console[a6(0x1ac)](a0p[a6(0x16e)]('\x20\x20─────────────────────────────────────────')),console[a6(0x1ac)](),console['log'](a0p['cyan']('\x20\x20─────────────────────────────────────────────')),console[a6(0x1ac)](a0p[a6(0x18c)]('\x20\x20'+a0B(a6(0x1bd))+'\x20')+a0p['bold'][a6(0x1da)](a6(0x248))+a0p[a6(0x18c)]('\x20—\x20'+a0B(a6(0x245)))),console['log'](a0p[a6(0x16e)]('\x20\x20'+a0B(a6(0x24b)))),console['log'](a0p['cyan'](a6(0x191))),console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x1bf)][a6(0x1da)](a6(0x208))+a0p[a6(0x16e)](a6(0x20f)+a0B(a6(0x1af)))),console[a6(0x1ac)](a0p[a6(0x18c)](a6(0x1f0))+a0p['gray'](a6(0x224)+a0B(a6(0x1d8)))),console[a6(0x1ac)](),a6(0x16f);const x={};x[a6(0x1dc)]=a6(0x1fb);if(!y&&r>=-0x1c05+0x1d7d+0x1210)return y=!(0x1c94+-0x1edb+-0x1*-0x247),fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x184),'headers':x,'body':JSON['stringify']({'type':a6(0x21b),'solved':!(-0x2*-0x101+-0x56*0x4+0xd*-0xd),'tokensUsed':r,'timestamp':new Date()[a6(0x1e8)]()}),'signal':AbortSignal[a6(0x1f6)](-0x1538+-0x259*-0x2+-0x1a*-0x163)})[a6(0x213)](()=>{}),console[a6(0x1ac)](),console[a6(0x1ac)](a0p[a6(0x157)]('\x20\x20'+a0B('tokenLimit'))),d(),(function(){const a8=a6;console[a8(0x1ac)](),console['log'](a0p[a8(0x157)](a8(0x191))),console[a8(0x1ac)](a0p[a8(0x1bf)][a8(0x157)]('\x20\x20'+a0B(a8(0x195)))),console[a8(0x1ac)](a0p[a8(0x157)](a8(0x191))),console[a8(0x1ac)]();for(const P of a0B(a8(0x251))[a8(0x183)]('\x0a'))''===P?console[a8(0x1ac)]():console['log'](a0p['white'](a8(0x246)+P));console[a8(0x1ac)](),console[a8(0x1ac)](a0p[a8(0x154)]('\x20\x20\x20\x20\x20\x20\x20\x20!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console[a8(0x1ac)](),console[a8(0x1ac)](a0p[a8(0x18c)](a8(0x246)+a0B(a8(0x207)))),console['log'](),console[a8(0x1ac)](a0p[a8(0x1bc)](a8(0x186))),console[a8(0x1ac)](),console['log'](a0p[a8(0x18c)](a8(0x246)+a0B('ai4ctfRevealThenSubmit'))),console['log'](),console[a8(0x1ac)](a0p[a8(0x154)](a8(0x249))),console[a8(0x1ac)](),console[a8(0x1ac)](a0p[a8(0x16e)](a8(0x246)+a0B('ai4ctfRevealLockNote'))),console[a8(0x1ac)]();}()),a6(0x1a7);if(y)return console[a6(0x1ac)](),console['log'](a0p[a6(0x157)]('\x20\x20'+a0B(a6(0x221)))),console[a6(0x1ac)](a0p[a6(0x16e)]('\x20\x20'+a0B(a6(0x176))+'\x20')+a0p[a6(0x154)](a6(0x179))),console[a6(0x1ac)](a0p[a6(0x16e)]('\x20\x20'+a0B('ai4ctfLockedThen')+'\x20')+a0p[a6(0x154)](a6(0x21f))),console[a6(0x1ac)](),'continue';console['log'](a0p['gray']('\x20\x20'+a0B(a6(0x1f8))));try{const P=await g['sendMessage'](p);process['stdout']['write'](a6(0x202)),r+=P[a6(0x170)],a0v(P['tokensUsed']),console[a6(0x1ac)](),a0z(P[a6(0x1d4)]),d(),console[a6(0x1ac)]();}catch(Q){process[a6(0x239)][a6(0x18f)](a6(0x202)),a0A(a6(0x17d)+Q['message']),console[a6(0x1ac)]();}return a6(0x1a7);}const f=new Set();async function m(k){const a9=a0j;if(!u||!g)return a9(0x16f);const p=k[a9(0x22d)](),q=p[a9(0x1b2)](),v=(Date[a9(0x197)]()-u['enteredAt'])/(0x8880+0x18cc5*0x1+-0x12ae5);if(!u[a9(0x158)]&&!u[a9(0x24e)]&&u['hintsUsed'][a9(0x229)]>=-0xc11*0x1+0x1da7*-0x1+0xe*0x2fb&&v>=0x1*-0xc52+0xa50+0x207&&(u[a9(0x158)]=!(-0x1*0x9fd+-0x102c+0x25*0xb5),console['log'](),console[a9(0x1ac)](a0p[a9(0x157)](a9(0x172))+a0p[a9(0x1bf)][a9(0x157)]('submit\x20ICOA{your_flag}')),console[a9(0x1ac)](a0p['gray'](a9(0x173))),console[a9(0x1ac)]()),/^ICOA\{[^}]+\}$/i[a9(0x217)](p))return console['log'](),console['log'](a0p[a9(0x16e)](a9(0x1a5))+a0p['white'](a9(0x1f5)+p)),m(a9(0x1f5)+p);const x=q['match'](/^hint\s+([abc])$/);if(x){const A=x[-0x3*0x34c+0xec0+-0x4db][a9(0x1ea)](),B=u[a9(0x152)][a9(0x1d1)],C=B?.[A],D='A'===A?a0p[a9(0x1bc)]:'B'===A?a0p[a9(0x157)]:a0p[a9(0x1da)];if(console[a9(0x1ac)](),console[a9(0x1ac)](D[a9(0x1bf)](a9(0x181)+A)),console['log'](),C){for(const E of String(C)[a9(0x183)]('\x0a'))console['log'](a0p[a9(0x18c)]('\x20\x20\x20\x20'+E));}else console['log'](a0p[a9(0x16e)](a9(0x22f)));return console['log'](),'A'===A?console['log'](a0p['gray'](a9(0x1e7))+a0p[a9(0x154)]('hint\x20b')):'B'===A?console[a9(0x1ac)](a0p[a9(0x16e)]('\x20\x20\x20\x20Really\x20stuck?\x20Try:\x20')+a0p[a9(0x154)](a9(0x22c))):'C'===A&&console[a9(0x1ac)](a0p[a9(0x16e)]('\x20\x20\x20\x20'+a0B('ai4ctfHintNextC')+'\x20')+a0p[a9(0x1bf)][a9(0x1bc)]('submit\x20ICOA{your_flag}')),console['log'](),a9(0x1a7);}const z=p[a9(0x236)](/^submit\s+(.+)/i);if(z){let F=z[0xaa7+0xb*0x89+-0xf9*0x11][a9(0x22d)]();if(/^submit\s+/i[a9(0x217)](F)&&(F=F[a9(0x182)](/^submit\s+/i,'')[a9(0x22d)]()),F=F[a9(0x182)](/^["'`]+|["'`]+$/g,'')[a9(0x22d)](),/^[A-Da-d]$/[a9(0x217)](F))return console[a9(0x1ac)](),console[a9(0x1ac)](a0p[a9(0x157)](a9(0x1ec)+F+a9(0x223))),console[a9(0x1ac)](a0p[a9(0x16e)](a9(0x187))+a0p[a9(0x1bc)](a9(0x174))+a0p[a9(0x16e)]('.\x20Try\x20again\x20inside\x20this\x20chat.')),console[a9(0x1ac)](),a9(0x1a7);const {getExamState:G,saveExamState:H}=await import(a9(0x156)),I=G();if(!I)return a9(0x16f);if(!I['questions'][a9(0x23c)](L=>L[a9(0x20e)]===u['qNum']))return console[a9(0x1ac)](a0p[a9(0x1da)](a9(0x24f)+u[a9(0x1a9)]+'\x20not\x20found\x20in\x20state.')),a9(0x1a7);const J=I[a9(0x163)][u[a9(0x1a9)]];I[a9(0x210)]||(I[a9(0x210)]=[]),I[a9(0x210)][a9(0x226)]({'ts':new Date()[a9(0x1e8)](),'q':u['qNum'],'type':J?'answer_changed':a9(0x1a6),'input':F,'result':'via\x20ai4ctf\x20chat'}),I['answers'][u[a9(0x1a9)]]=F;const K=u[a9(0x1a9)]+(0xe6*-0x26+-0x75+-0x67*-0x56);return I[a9(0x1f2)]=K<=0x1e0b+-0xa80+-0x3e1*0x5?K:u[a9(0x1a9)],H(I),console['log'](),J?(console[a9(0x1ac)](a0p[a9(0x1bc)]('\x20\x20✓\x20Q'+u['qNum']+a9(0x1e4))+a0p[a9(0x157)](F)),console[a9(0x1ac)](a0p['gray'](a9(0x15a)+J))):console[a9(0x1ac)](a0p[a9(0x1bc)][a9(0x1bf)]('\x20\x20✓\x20Answer\x20for\x20Q'+u[a9(0x1a9)]+a9(0x18e)+F)),console[a9(0x1ac)](a0p['gray'](a9(0x190))),console[a9(0x1ac)](),console[a9(0x1ac)](a0p[a9(0x16e)]('\x20\x20')+a0p['white'](a9(0x17e))+a0p[a9(0x16e)](a9(0x1ef))+a0p[a9(0x18c)]('exit')+a0p[a9(0x16e)](a9(0x204))),K<=0xa7*0x1e+0xfc8+0x6*-0x5de?console['log'](a0p[a9(0x16e)]('\x20\x20After\x20exit:\x20')+a0p[a9(0x154)](a9(0x21b))+a0p['gray']('\x20will\x20open\x20Q'+K)):console[a9(0x1ac)](a0p[a9(0x16e)](a9(0x1e9))+a0p[a9(0x1da)](a9(0x248))+a0p['gray'](a9(0x1e6))),console['log'](),a9(0x1a7);}if(k[a9(0x18b)]('!')){const L=k['slice'](-0x833+-0x2b4*-0x4+-0x29c)[a9(0x22d)]();if(!L)return a9(0x1a7);try{const M={};M[a9(0x20a)]='utf-8',M[a9(0x1f6)]=0x2710;const {execSync:N}=await import(a9(0x228)),O=N(L,M)[a9(0x22d)]();console[a9(0x1ac)](),console['log'](a0p[a9(0x16e)](a9(0x1b7))+a0p[a9(0x18c)](L)),console[a9(0x1ac)](a0p[a9(0x18c)]('\x20\x20'+O['split']('\x0a')[a9(0x20c)]('\x0a\x20\x20'))),console['log']();}catch(P){console['log'](),console[a9(0x1ac)](a0p[a9(0x1da)]('\x20\x20Error:\x20'+(P[a9(0x159)]?.['split']('\x0a')[-0x1f*-0x34+-0x14*0x185+-0x202*-0xc]||a9(0x20d)))),console[a9(0x1ac)]();}return a9(0x1a7);}if('exit'===q||a9(0x20b)===q||'quit'===q){const Q=u['qNum'],{getExamState:R}=await import('../lib/exam-state.js'),S=R(),T=S&&null!=S['answers'][Q],U=S?.['_lastQ']||Q;return s=!(0x9*0x17b+-0xdfd*-0x1+-0x1b4f*0x1),g=null,u=null,f[a9(0x237)](),console[a9(0x1ac)](),console[a9(0x1ac)](a0p[a9(0x16e)]('\x20\x20AI4CTF\x20chat\x20ended\x20for\x20Q'+Q+'.')),T&&U>Q&&U<=-0x304+-0x2da+0x16*0x46?console['log'](a0p[a9(0x18c)](a9(0x1ba))+a0p[a9(0x1bf)][a9(0x1bc)]('Q'+U)+a0p[a9(0x16e)](a9(0x1ce))+a0p['cyan'](a9(0x21b))+a0p['gray'](a9(0x219))):T&&Q>=-0x4*0x7d4+-0x1ab*0x11+-0x1*-0x3bd1?console[a9(0x1ac)](a0p[a9(0x18c)]('\x20\x20AI4CTF\x20section\x20complete\x20—\x20')+a0p['bold'][a9(0x1da)](a9(0x248))+a0p[a9(0x16e)]('\x20for\x20Q39')):console['log'](a0p['gray'](a9(0x16c))+a0p[a9(0x18c)](a9(0x23a)+Q)+a0p[a9(0x16e)]('\x20\x20·\x20\x20Re-enter:\x20')+a0p[a9(0x18c)](a9(0x21b))),console[a9(0x1ac)](),'exit';}if(y)return console[a9(0x1ac)](),console[a9(0x1ac)](a0p[a9(0x157)]('\x20\x20AI\x20budget\x20exhausted\x20for\x20AI4CTF\x20section.')),console[a9(0x1ac)](a0p[a9(0x16e)]('\x20\x20Still\x20available:\x20')+a0p[a9(0x18c)](a9(0x1b9))+a0p[a9(0x16e)](a9(0x200))+a0p[a9(0x18c)](a9(0x1fe))+a0p[a9(0x16e)](a9(0x200))+a0p[a9(0x18c)]('exit')),console[a9(0x1ac)](),a9(0x1a7);if(r>=h)return y=!(0x3c+0x3*-0xc8c+0x6*0x63c),console[a9(0x1ac)](),console['log'](a0p['red'][a9(0x1bf)](a9(0x16d))),console[a9(0x1ac)](a0p[a9(0x16e)](a9(0x17a))+a0p[a9(0x18c)](a9(0x1b9))+a0p[a9(0x16e)](a9(0x200))+a0p['white'](a9(0x1fe))+a0p[a9(0x16e)](a9(0x200))+a0p[a9(0x18c)](a9(0x16f))),console['log'](),a9(0x1a7);console['log'](a0p[a9(0x16e)](a9(0x233)));try{const V=await g[a9(0x177)](k);process['stdout'][a9(0x18f)](a9(0x202)),r+=V[a9(0x170)];const {getRealExamState:W,saveExamState:X}=await import(a9(0x156)),Y=W(),Z={};Z[a9(0x21b)]=0x0,Z[a9(0x248)]=0x0,(Y&&(Y[a9(0x1c2)]||(Y[a9(0x1c2)]=Z),Y[a9(0x1c2)][a9(0x21b)]=r,X(Y)),console[a9(0x1ac)](),a0z(V[a9(0x1d4)]),d(),function(a0,a1,a2){const aa=a9,a3=a0/a1*(0x35*-0x2b+0xd78+-0x42d);a3>=-0x2ca+0x1088+-0xd5f&&!a2['has']('95')?(console['log'](a0p['red']['bold'](aa(0x1b5)+Math[aa(0x24c)](a3)+aa(0x196)+(a1-a0)+'\x20tokens\x20left.')),a2['add']('95')):a3>=0xb2b+-0xc35*0x1+0x15a*0x1&&!a2['has']('80')?(console[aa(0x1ac)](a0p[aa(0x157)](aa(0x1d3))),a2[aa(0x1ae)]('80')):a3>=-0x1d9c+0xab2+0x131c&&!a2[aa(0x1a4)]('50')&&(console[aa(0x1ac)](a0p[aa(0x16e)]('\x20\x20Note:\x2050%\x20of\x20section\x20AI\x20budget\x20used.')),a2[aa(0x1ae)]('50'));}(r,h,f),console['log']());}catch(a0){process[a9(0x239)][a9(0x18f)](a9(0x202)),a0A(a9(0x17d)+a0[a9(0x159)]),console[a9(0x1ac)]();}return a9(0x1a7);}export function registerAi4ctfCommand(b){const ab=a0j;b['command'](ab(0x21b))[ab(0x241)]('Chat\x20with\x20your\x20AI\x20teammate')[ab(0x243)](async()=>{const ac=ab;a0x('ai4ctf');const {getRealExamState:j}=await import('../lib/exam-state.js'),k=j(),p=k?.[ac(0x17f)][ac(0x209)](x=>x[ac(0x20e)]>=0x1*-0xbb7+0x1543*0x1+0x13*-0x7f&&x[ac(0x20e)]<=0xf25*-0x2+-0x7e1+-0x2651*-0x1);if(k&&p){const x=k[ac(0x1f2)]||-0xc37+-0x1755+0x238d;if(x<-0x1*-0x2395+0x3*-0xccf+0x2f7||x>-0xe7a+0x6*-0x20c+0x1ae8)return console[ac(0x1ac)](),console[ac(0x1ac)](a0p[ac(0x157)](ac(0x19e))),console[ac(0x1ac)](a0p[ac(0x16e)](ac(0x180)+x+ac(0x201))),console[ac(0x1ac)](a0p[ac(0x16e)]('\x20\x20\x20\x20→\x20')+a0p[ac(0x1bf)][ac(0x154)](ac(0x1c8))),void console['log']();const z=k[ac(0x17f)][ac(0x23c)](A=>A[ac(0x20e)]===x);return z?void await async function(A,B){const ad=ac,{getRealExamState:C,refetchQuestionDataIfStale:D,materializeAttachedData:E}=await import('../lib/exam-state.js');await D();const F=C();if(!F)return!(-0x4*0x853+-0xa*0x36b+0x437b*0x1);const G=F[ad(0x17f)][ad(0x23c)](J=>J['number']===A);G&&(B=G),E(A,B?.[ad(0x23f)]);const H=F['aiUsage']?.[ad(0x21b)]??0x1ef2+-0x1a7*0x3+-0x19fd;if(H>=h)return console[ad(0x1ac)](),console[ad(0x1ac)](a0p['yellow'](ad(0x1c3))),console[ad(0x1ac)](a0p['gray'](ad(0x166))+a0p[ad(0x18c)]('exam\x20answer\x20'+A+ad(0x1b3))),console['log'](),!(0x24bb*-0x1+0x2*-0xb+0x2*0x1269);try{g=await a0q(void(0x680+0x1653+-0x9d*0x2f),function(J,K){const ae=ad,L=J[ae(0x241)]||J[ae(0x1d4)]||'',M=J[ae(0x23f)]?ae(0x153)+K+ae(0x1f4)+J[ae(0x23f)]:'';return ae(0x1a0)+K+',\x20'+J[ae(0x1c6)]+',\x20'+(J[ae(0x220)]||-0x22+0xce9+-0xcc1)+ae(0x199)+L+M+'\x0a\x0aYOUR\x20RULES:\x0a-\x20You\x20MAY\x20explain\x20concepts,\x20describe\x20approaches,\x20and\x20help\x20the\x20contestant\x20reason\x20through\x20the\x20problem.\x0a-\x20You\x20MAY\x20discuss\x20the\x20technology\x20involved\x20(AES,\x20pwntools,\x20Python\x20struct,\x20HTTP,\x20etc.).\x0a-\x20You\x20MAY\x20help\x20debug\x20Python\x20code\x20the\x20contestant\x20writes.\x0a-\x20You\x20MUST\x20NOT\x20reveal\x20the\x20flag\x20directly.\x0a-\x20You\x20MUST\x20NOT\x20output\x20any\x20string\x20matching\x20ICOA{...}\x20or\x20icoa{...}.\x0a-\x20You\x20MUST\x20NOT\x20tell\x20the\x20contestant\x20the\x20exact\x20answer\x20to\x20this\x20question.\x0a-\x20You\x20MAY\x20suggest\x20which\x20tool\x20/\x20library\x20/\x20technique\x20to\x20use.\x0a-\x20When\x20suggesting\x20shell\x20/\x20python\x20snippets\x20that\x20need\x20the\x20attached\x20data,\x20refer\x20to\x20the\x20file\x20path\x20challenges/q'+K+ae(0x1df);}(B,A));}catch(J){return a0A(J['message']),!(0xeab+0xe65+0x1*-0x1d0f);}s=!(-0xf5e+-0x4d6*0x4+0x1*0x22b6),r=H,y=!(-0x1d33+0x1*-0x1801+0x3535),u={'qNum':A,'question':B,'usageField':ad(0x21b),'enteredAt':Date[ad(0x197)](),'hintsUsed':new Set(),'submitAttempted':!(-0x1797+0x1*-0x506+0x1c9e),'nudgeShown':!(0xb*-0x1c9+-0x1*0x24e7+0x388b)};const I=F['answers']?.[A];return function(K,L,M){const af=ad,N=a0w()[af(0x162)]||af(0x203),O=r>0x1452+-0x26f0+0x129e;console[af(0x1ac)](),console[af(0x1ac)](a0p[af(0x1bc)][af(0x1bf)](af(0x21a)+L+':\x20'+K[af(0x1c6)]+af(0x214))),O&&console['log'](a0p[af(0x16e)](af(0x1cf))),M&&console['log'](a0p[af(0x16e)](af(0x189))+a0p[af(0x157)](M)+a0p[af(0x16e)]('\x20\x20(submit\x20again\x20to\x20change)')),console[af(0x1ac)](),console[af(0x1ac)](a0p[af(0x154)](af(0x1b8))),console[af(0x1ac)](a0p[af(0x154)](af(0x1fc))+a0p[af(0x1bf)]['white']('Q'+L+af(0x242)+K[af(0x1c6)]+af(0x252)+(K[af(0x220)]||0x12fa+-0x1246+0xae*-0x1)+af(0x232))),console[af(0x1ac)](a0p[af(0x154)](af(0x22b)));for(const P of String(K['text'])[af(0x183)]('\x0a')){const Q=P[af(0x23b)]>-0x1d5d+-0x19eb*-0x1+0x3ae?P[af(0x15e)](0x2036*0x1+-0x409*0x1+0x1*-0x1c2d,0x1293+-0x287*-0x5+-0x1efd)+af(0x160):P;console[af(0x1ac)](a0p['cyan'](af(0x1fc))+a0p[af(0x18c)](Q));}console[af(0x1ac)](a0p[af(0x154)](af(0x22b))),console[af(0x1ac)](a0p['cyan'](af(0x1fc))+a0p[af(0x16e)](af(0x250))+a0p[af(0x18c)](af(0x23a)+L)),console[af(0x1ac)](a0p[af(0x154)](af(0x1fc))+a0p[af(0x16e)](af(0x1cc))),console[af(0x1ac)](a0p['cyan']('\x20\x20└─────────────────────────────────────────────')),console['log'](),console[af(0x1ac)](a0p[af(0x1bf)]['white'](af(0x247))),console[af(0x1ac)](),console[af(0x1ac)](a0p[af(0x157)](af(0x150))+a0p['gray'](af(0x1f3))),console[af(0x1ac)](a0p[af(0x157)](af(0x1ca))+a0p[af(0x16e)](af(0x188))),console['log'](a0p[af(0x157)](af(0x198))+a0p[af(0x16e)](af(0x21e))),console[af(0x1ac)](a0p[af(0x1bf)]['green'](af(0x1c9))+a0p['gray'](af(0x1c5))),console[af(0x1ac)](a0p[af(0x18c)](af(0x1d9))+a0p['gray'](af(0x193))),console[af(0x1ac)](a0p['gray']('\x20\x20\x20\x20Just\x20type\x20freely\x20to\x20chat\x20with\x20the\x20AI\x20teammate.')),console['log'](a0p[af(0x16e)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0p[af(0x18c)]('\x22how\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console[af(0x1ac)](),console['log'](a0p[af(0x16e)]('\x20\x20\x20\x20exit')+a0p[af(0x16e)](af(0x1cb))),console[af(0x1ac)](a0p[af(0x16e)](af(0x240))+a0p['gray'](af(0x16b))),console[af(0x1ac)](),d(),console[af(0x1ac)](a0p['gray'](af(0x15c)+N+')')),console[af(0x1ac)]();}(B,A,I),!(-0xca0+-0x28*0xb6+0x3*0xdb0);}(x,z):void a0A('Q'+x+ac(0x1ad)+x);}const q={};q[ac(0x1a8)]=ac(0x1bb),q[ac(0x1c6)]=ac(0x23e);const v=a0w()[ac(0x162)]||ac(0x203),w=q;try{g=await a0q(w);}catch(A){return void a0A(A[ac(0x159)]);}s=!(-0xb23+0x9f*0x13+0x1*-0xaa),r=-0x11a5+-0x10a5+-0x4e6*-0x7,y=!(0x172f+0x1063+-0x2791),console[ac(0x1ac)](),console[ac(0x1ac)](a0p[ac(0x1bc)]['bold'](ac(0x253)+a0B(ac(0x22a))+ac(0x214))),console[ac(0x1ac)](),console[ac(0x1ac)](a0p[ac(0x18c)]('\x20\x20'+a0B(ac(0x1e2)))),console['log'](),console[ac(0x1ac)](a0p['cyan'](ac(0x1b8))),console[ac(0x1ac)](a0p[ac(0x154)](ac(0x1fc))+a0p[ac(0x1bf)][ac(0x18c)](a0B(ac(0x231)))),console[ac(0x1ac)](a0p[ac(0x154)](ac(0x22b))),console[ac(0x1ac)](a0p[ac(0x154)](ac(0x1fc))+a0p[ac(0x18c)](a0B(ac(0x1a2)))),console[ac(0x1ac)](a0p['cyan'](ac(0x1fc))+a0p[ac(0x1bc)](ac(0x1eb))),console[ac(0x1ac)](a0p[ac(0x154)](ac(0x22b))),console[ac(0x1ac)](a0p[ac(0x154)](ac(0x1fc))+a0p[ac(0x18c)](a0B('ai4ctfDecode'))),console['log'](a0p[ac(0x154)](ac(0x1fc))+a0p[ac(0x16e)](ac(0x1de))),console[ac(0x1ac)](a0p[ac(0x154)](ac(0x23d))),console[ac(0x1ac)](),console['log'](a0p['white']('\x20\x20'+a0B(ac(0x1e0)))),console[ac(0x1ac)](),console['log'](a0p[ac(0x157)](ac(0x150))+a0p['gray'](ac(0x246)+a0B(ac(0x1db)))),console['log'](a0p[ac(0x16e)](ac(0x19c)+a0B(ac(0x15b)))),console[ac(0x1ac)](a0p[ac(0x157)](ac(0x1ca))+a0p['gray'](ac(0x246)+a0B(ac(0x18d)))),console['log'](a0p[ac(0x16e)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B(ac(0x18a)))),console['log'](a0p[ac(0x157)](ac(0x198))+a0p[ac(0x16e)](ac(0x246)+a0B(ac(0x16a)))),console['log'](a0p[ac(0x16e)](ac(0x19c)+a0B(ac(0x194)))),console[ac(0x1ac)](),console['log'](a0p['gray'](ac(0x171))),console[ac(0x1ac)](a0p[ac(0x1bf)][ac(0x18c)]('\x20\x20'+a0B(ac(0x24d)))),console[ac(0x1ac)](ac(0x246)+a0p[ac(0x154)](ac(0x1f9))+a0p[ac(0x16e)](ac(0x206)+a0B(ac(0x244)))),console['log'](ac(0x246)+a0p[ac(0x154)](ac(0x19d))+a0p[ac(0x16e)](ac(0x206)+a0B(ac(0x168)))),console[ac(0x1ac)](ac(0x246)+a0p[ac(0x154)]('hint\x20c')+a0p[ac(0x16e)](ac(0x206)+a0B(ac(0x1b4)))),console[ac(0x1ac)](a0p[ac(0x16e)](ac(0x246)+a0B(ac(0x1a1)))),console['log'](),console[ac(0x1ac)](a0p[ac(0x18c)]('\x20\x20'+a0B('ai4ctfOrChat'))),console[ac(0x1ac)](a0p[ac(0x16e)]('\x20\x20'+a0B('ai4ctfOrChatExample')+'\x20')+a0p[ac(0x18c)](ac(0x216))),console[ac(0x1ac)](),console['log'](a0p[ac(0x157)]('\x20\x20'+a0B(ac(0x238)))),console[ac(0x1ac)](a0p['white'](ac(0x1aa))+a0p[ac(0x16e)](a0B(ac(0x175)))),console[ac(0x1ac)](a0p[ac(0x18c)](ac(0x1d2))+a0p[ac(0x16e)](a0B(ac(0x1fd)))),console[ac(0x1ac)](a0p['white']('\x20\x20\x20\x20!<shell\x20cmd>\x20\x20\x20\x20')+a0p[ac(0x16e)](a0B('ai4ctfCmdShellLine'))),console[ac(0x1ac)](a0p[ac(0x16e)](ac(0x1fa))+a0p[ac(0x18c)]('!echo\x20aWNv...\x20|\x20base64\x20-d')),console[ac(0x1ac)](a0p['gray'](ac(0x1c7)+a0B(ac(0x185)))),console[ac(0x1ac)](),d(),console['log'](a0p[ac(0x16e)]('\x20\x20'+a0B('ai4ctfModel')+ac(0x21c)+v+')')),console[ac(0x1ac)](a0p[ac(0x16e)]('\x20\x20'+a0B('ai4ctfExit'))),console[ac(0x1ac)]();});}
@@ -1 +1 @@
1
- (function(z,B){const aX=a0B,F=z();while(!![]){try{const G=parseInt(aX(0xe6))/(-0x2*0x7a2+0xb3*0xa+0x847)+-parseInt(aX(0x71))/(0x2648+0x13c2+-0x3a08)+parseInt(aX(0x29a))/(-0x9*0x3e7+-0xc*0x262+0x3fba)*(parseInt(aX(0x1f9))/(-0x43f*-0x2+0x464*-0x4+0x916))+parseInt(aX(0x119))/(-0x17b9*0x1+-0x97*-0x2b+-0x19f)+parseInt(aX(0x199))/(-0x2b*0x47+-0x611+0x1204)+parseInt(aX(0x22b))/(0x10*-0x11b+-0x493*-0x5+-0x528)*(parseInt(aX(0x1ed))/(0x904+0xe67+0x1*-0x1763))+-parseInt(aX(0x281))/(-0x4d*-0x7f+-0x1*-0x1715+0x3d3f*-0x1)*(parseInt(aX(0x113))/(0xc9+0x19d5*0x1+0x6c*-0x3f));if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,0x9b55*-0x13+0x3f009+-0x128659*-0x1));import a0L from'chalk';import{confirm as a0Q}from'@inquirer/prompts';import{ExamClient as a0V}from'../lib/exam-client.js';import{getConfig as a0W,saveConfig as a0X}from'../lib/config.js';import{getExamState as a0Y,saveExamState as a0Z,clearExamState as a0a0,getExamDeadline as a0a1,materializeAttachedData as a0a2}from'../lib/exam-state.js';import{getDemoStats as a0a3,recordDemoAttempt as a0a4,saveRetryQueue as a0a5,getRetryQueue as a0a6,clearRetryQueue as a0a7}from'../lib/demo-stats.js';function a0z(){const bK=['s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','tg9HzgLUzYbLEgfTlI4U','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','icdcTYaG','AwDUB3jL','icaGu3LKBMv5lcbbDxn0CMfSAweGimk3icbkDw4GmJCG4OctieP1BcaYlcaYmdi2','ks4Gww91j3jLig9UihLVDxiGB3DUisdWN5kQ','x2HLBhbnyxG','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','icbzB3uGy2fUig5VDYbLBNrLCIbHig5LDYb0B2TLBIb3AxrOia','icaGDgHLig9Yz2fUAxPLCIbPBIb5B3vYignVDw50CNKU','zw50CMLLCW','icaOugfWzxiGqYb0B2TLBNmGC2TPCcb0AgLZigDHDguG4OcuifbHCgvYiemGAxmGtunrlw9UBhKP','icdcTYbszwzLCMvUy2uGz3vPzgvZigzVCIaZocb0B29SCZOG','icbdB250Aw51zsb0AgLZigv4yw06','Cvr1Dg9YAwfS','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbssaYmdi2','CxvLC3rPB25Z','icaGid4+pIbJAxbOzxiGpsbbrvmUBMv3kgTLEsWGquvtlK1prevFq0jdlcbPDIK','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','C3vIBwL0DgvK','icaGicaGicaGicaGicaGicaGCNuGWRCGAgKGWRCGzguGWRCGAwqGWRCGDgGGWRCGDMKGWRCGDhi','icaGicaGicaOBM93lcb+nsbTAw4P','AwnVys1JBgK','uhjLCgfYAw5Nigv4yw0Gzw52AxjVBM1LBNqUlI4','x2HLBhbvC2vK','icaGicbiAw50CYbbl0iVqZOGicaG','icaGieXHBMC6icaGia','icbszwnVBw1LBMrLzcbWyxrOiokaLcbZD2L0y2GGDg8Gv1nmmIaOB25LlxrPBwuSih41ig1PBIK6','EJmTC29SDMvY','DxnLza','icaGifb5DgHVBIaZlJeZigLZihrVBYbUzxCG4Ocuig1VC3qGq1rgigXPyNjHCMLLCYbSywnRihDOzwvSCY4','C2nVCMu','lIboBYb0Aw1LCI4GrNjLzsbWCMfJDgLJzs4','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','CdmW','icbbssbbC3nPC3rHBNq','vgLTzq','C3rKzxjY','C3rVCa','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','rxHHy3rSEs4','icaGvgLTzsbZDgLSBcbJB3vUDgLUzYbKB3DUlIbcDwrNzxqGFJiGBwLUihbLCIbXDwvZDgLVBI4','BMv4DeXHyMvS','x2vSAw1PBMf0zwq','BNvTChK','t3rOzxi','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','ChL0Ag9UvMvYC2LVBG','icaGiokgKIbIj0HLBgXVjW','BgLUDxG','vwj1BNr1ia','icaGihDPBMDLDcbPBNn0ywXSifb5DgHVBI5qExrOB24UmY4XmG','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','icH3B3jRCYWGyNv0idmUmtiGCMvJB21Tzw5KzwqP','Dg9tDhjPBMC','sMfWyw4','icaGicdILQmG','ovrtA2TeAW','C3rKAw8','icdINjmGrxHHBsbZDgf0zsbJBgvHCMvKlG','C2XPy2u','ig1PBG','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','D3jPDgu','icaGicHYzwXHDgL2zsb0BYbVDgHLCIbJyxrLz29YAwvZiokaLcbUDw1LCMLJihnJB3jLCYbNBYb0BYb5B3vYigv4yw0Gy2vUDgvYkq','Dwj1BNr1','icaGicbZDgLSBcbHy3rPDMuGyw5Kig5VDcbZDwjTAxr0zwqSihjLlwvUDgvYAw5NihrOzsbZyw1LihrVA2vUihjLC3vTzxmGAxqU','yxr0zw1WDhm','u3rHCNqGDgHLigv4yw0/ifrOzsb0Aw1LCIb3AwXSigjLz2LUigLTBwvKAwf0zwX5lG','D2LUz2v0igLUC3rHBgWGls1PzcbqExrOB24UuhL0Ag9UlJmUmtiGlwu','uK9qz2fKz2v0','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','ihvUzMXHz2DLzc4','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','zhvYyxrPB25nAw51DgvZ','uMvJB21Tzw5Kzwq6ignVBxbSzxrLigrLBw8GzMLYC3q','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','C29YDa','yMvHDxrPzNvSC291Cdq','icaGzMLUAxnOigfUzcbZDwjTAxq','CMvK','iIaYpI9KzxyVBNvSBa','mZuXzM1bt2Dh','icbVzIa','icbvC2u6igv4yw0GCMv2Awv3imk3igv4yw0GC3vIBwL0','icaGigv4yw0GC3vIBwL0','CgfKrw5K','sgvSCdOGicaGica','icaGig1HCMS','u29SAwqGCgLJAY4','icaGicfWExrOB24Z','BMfTzq','CMvWBgfJzq','icaGswyGDgLTzsbPCYb0AwDODcWGC2TPBsbrmZKVndaGzMLYC3qGDg8GzgvJAwrLigf0DgfJAYbVCMrLCI4','AgvSCfjLBw92zq','ywK0y3rM','icHXDwLJAYb0yxnRCYK','icaGiokaOIbbBgWGAw50zxjHy3rPB25ZigfYzsbYzwnVCMrLzcbMB3iGyxvKAxq','icdIMQaGifjLC2v0ihDPBgWGywjHBMrVBIb5B3vYign1CNjLBNqGzxHHBsbZzxnZAw9Uig9UihrOAxmGzgv2AwnLlG','vhvYA2v5','l2fWAs9Py29Hl3nLCNzLCI10Aw1L','ANnVBG','icHJB21WBgv4ihnVBhv0Aw9UCYK','icaGicfJyxqGpdWGj0vprICGpIbZB2X2zs5WEq','ica0mcSGy291BNrYAwvZigfUzcbYzwDPB25ZihjLChjLC2vUDgvK','z3jLzw4','icaGign0zJrHAq','D2L0Aa','igf0DgvTChq','zwDNmW','vgLTzsbszw1HAw5PBMC','4OcuihLVDsDYzsaXlZqGDgHYB3vNAcb0AguGzxHHBq','tg9HzgLUzYbLEgfTCY4UlG','AhrWqMfJAW','icaG8j+oRYaGu2vJDgLVBIaZoIbdvey0quKG4OcuienOywXSzw5Nzsb0AguGquK','u3rYB25NzxiGAgvYztOGia','icaGicbuB2TLBJOG','l2fUC3DLCG','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','icaGicaGC3vKBYbHChqGAw5ZDgfSBcbWExrOB24ZlJeYihb5DgHVBJmUmtiTDMvUDG','uM9VBsb0BYbNCM93oIaGia','lcbUB3qGEw91CIb0zwfTBwf0zq','C3vKBYbUCg0GAw5ZDgfSBcaTzYbPy29HlwnSAq','sg1Tlcb3B3j0AcbHihnLy29UzcbSB29Rigf0ihrOzsbLBMqU','4O+XifrPBwuGCMvTywLUAw5NoG','C19HAtrJDgy','zwDNmtm','icbuBYbJB250Aw51zsb0AgLZigv4yw06','icaGigfPngn0zG','zgvTB0LUDhjVu2vLBG','icbODhrWCZOVl2LJB2eYmdi2lMf1','zxHHBsbSAxn0ia','icaOuMv0CNKGD3jVBMCGB25SEsK','DxrMltG','u3vIBwL0igL0igzPCNn0oIbLEgfTihn1yM1PDa','ic1TigvUC3vYzxbPCcaTlxvWz3jHzgu','sw5KB25LC2LH','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','yw5ZD2vYx2nOyw5Nzwq','icbTywnpuYaOsg9TzwjYzxCSihjLy29TBwvUzgvKktO','icbbzNrLCIbPBNn0ywXSAw5NlcbYDw46ia','yNjLDW','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','y2f0zwDVCNLtDgf0CW','Ew91CIbmAw51EcbKAxn0CM8','icaGicbtB2X2zsa','vgLTzsb1C2vKoIa','icaGC2vJDxjPDhKGDgfZA3mG4OcuignYExb0BYWGD2vIlcbMB3jLBNnPy3mSihb3BI4','icHLEhbSB3jLicyGzxHWzxjPBwvUDcK','zxHHBsbZDwjTAxqG','icaGigHLBha','y29UzMLYBwvKqxq','icGR','zxHHBq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','ihLLDc4','v2LUzg93CYbUyxrPDMuGkfbVD2vYu2HLBgWGlYbJBwqP','icaGigzYB20GChDUigLTCg9YDcb4B3i','icbxAw5KB3DZicH3Aw5NzxqSihjLy29TBwvUzgvKktO','AhrWsgvSCa','Dg9mB3DLCKnHC2u','r3jHzgLUzY4UlG','rw52AxjVBM1LBNqGCMvHzhKHiefSBca','zw5JB2rPBMC','C2v0Dxa','icaGifb5DgHVBJOG','igLZigeGChjHy3rPy2fSihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0AcbHigzSywCSig5VDcbHigXLDhrLCI4','iefjihn5C3rLBxmU','icaGidiUieLUifbVD2vYu2HLBgWSigLUC3rHBgWGuhL0Ag9UihDPDgGGCgLWoG','AhrWtgfUzW','ic8G','icaGifbHy2THz2vZoIa','Dgv4Da','ihDHCYbUB3qGzMXHz2DLzc4','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','BwLU','C3rKAw4','icaGieeVqI9dl0q','Cgn0','ig9YigXLyxzLihDPDgGG','zxHPDa','vg90ywW','icbzB3vYihj1BG','AhrWuMv2Awv3','ifSGxsaG','zxHHBu5HBwu','tMfTzq','l3n1yM1PDa','icaGicbfEgfToIaG','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIb5B3vYignVDw50CNKGEwv0lG','rxHHBsaI','icbjzIb5B3uGBMvLzcb0BYbHyMfUzg9UihrOAxmGC2vZC2LVBIaOzs5NlIbLEhbPCMvKic8GD3jVBMCGCgfWzxiPla','icbdB3vSzcbUB3qGCMvHy2GGC2vYDMvYigzVCIbOzwXWlIbdAgvJAYb5B3vYignVBM5Ly3rPB24U','mJuSmdaWihrVA2vUCW','rw52AxjVBM1LBNqGywXYzwfKEsbZzxqGDxa','igfUzcbWCMvZCYbfBNrLCIb0BYbSzwf2zsbPy29H','zwXPBwLUyxrLza','tMLJzsbVBMuU','zxHHBsbZDgfYDca','zxHHBsbZzxr1Ca','x2XHC3rr','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','C3rHCNqGpgLKpG','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','CsbBBL0','Dw5KzxjSAw5L','sunpqsboyxrPB25HBcbtzwXLy3rPB24GrxHHBq','DhLWzq','xsaG','zxHHBsbZDwjTAxq','sw52ywXPzcb0B2TLBG','icaGia','oJaW','yM9Sza','x2HLBhbqzxjr','icdINjmG','y3rMngfP','ixb5DgHVBJm','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','icbVCIaG','zgvHzgXPBMvtzxj2zxjnCW','CgLWzq','icaGidiUifjLAw5ZDgfSBcbqExrOB24GD2L0AcbWAxaGkeHVBwvICMv3igrLDgvJDgvKiokCKYK6','ihrOzsbJB21WzxrPDgLVBI4','zw5KC1DPDgG','uMvHzhKH','zNjVBq','AwnVyq','rgvTBYbszxrYEsdIGjqGv3jVBMCGuxvLC3rPB25Zie9UBhK','icbfEgfTCgXLoIa','BwvZC2fNzq','icboyxrPB25HBcbsB3vUzcaXifnLBgvJDgLVBIbLEgfTCYbHCMuGyMvPBMCGChjLCgfYzwqU','quXm','BwfYAYbBBL0','AgvSCefSBfvZzwq','BgLZDcbBy291BNrYEv0','zxHHBsbKzw1V','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','BMv4DcaVihbYzxy','ueftu0ve','C19JDgy0ywK','iefjnenurG','z2v0vgLTzq','Dg9vChbLCKnHC2u','l2fWAs9Py29Hl2v4yw0TDg9Rzw4','C3rHDhvZ','CMv2Awv3','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','icbuExbLia','zxHHBsa8Dg9Rzw4+','Bwf4','zxHHBvDHExnbAtrJDgy','qw5ZD2vYihf1zxn0Aw9Uie4GkeeVqI9dl0qGzM9Yie1dusWGsunpqxTMBgfNFsbMB3iGChjHy3rPy2fSkq','C3vIC3rYAw5N','u2LUz2fWB3jL','y3LHBG','ig5VDcbMB3vUzcaOms0','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','uMv0CNKGB25SEsb0AguGCxvLC3rPB25ZihLVDsbNB3qGD3jVBMCGBgfZDcbKzw1Vigf0DgvTChq','BgfUzYa8y29Kzt4','icaGutm54OctndaGkdiGCxvLC3rPB25Zimk3ide2ihb0CYbLywnOiokaLcbOAwDOzxn0ihzHBhvLisK','icaOzgLMzMvYzw50igzYB20GDgHLig9Uzsb5B3uGDhLWzwqP','igf0DgvTChrZ','C2HVD25xyxjUAw5NCW','cIaG','icbszwLUC3rHBgWGuhL0Ag9UidmUmtiGD2L0AcbWAxaGyNvUzgXLzcWGDgHLBIbYzxrYEtO','q3rYBcTd','icaGv2HHDcb5B3uNBgWGzg8GDg9KyxK6','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','icbnzxrOB2qGmJOGsw50zxjHy3rPDMuGuhL0Ag9U','icdIMQaGiduGBwLUDxrLCYbYzw1HAw5PBMC','zxHHBsbOzwXW','icaGihn1zg8Gyxb0ihvWzgf0zq','vMLLDYbHBgWGCgfYDgLJAxbHDgLUzYbJB3vUDhjPzxm','Ag93vg9qBgf5','icbuBYbJB25MAxjToIaG','ig1PBNv0zxm','icaGigv4yw0GBgLZDcbbvq','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl3DPBMrVD3mV','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','twfSyxLZAwe','CMvXDwvZDhm','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','icbtDgfYDcbHifb5DgHVBIbZzxnZAw9Ulcb0ExbLignVBw1HBMrZig9UzsbIEsbVBMu6','ls11C2vYic0TyNjLywSTC3LZDgvTlxbHy2THz2vZ','vxnLCI1bz2vUDa','q29TCgXLDguH','C3rHCNq','AxnbCNjHEq','icbvyNvUDhuGlYbezwjPyw4GkgrLywrZBMfRzxmGufbbktO','icaGifLVDsbJyw4GBM93ihvZztOG','Axnoyu4','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','BM93','icbZDwjTAxqGzMXHzYbKAxjLy3rSEq','vgHHAwXHBMq','tK9uifbbu1nfra','icHr','mJC5mZKZngDWBuXjva','icdIMQaGuhL0Ag9Uia','icaGicfWExrOB24ZihnVBhzLlNb5','icaGid4+pIbRzxKGpsbIExrLCY5MCM9TAgv4kci0otqZngy0ms4UlIiP','ChL0Ag9UmW','CM9Wz2fKz2v0','ic1TihbPCcbPBNn0ywXSic0Tzhj5lxj1BIbWAxaGmJ4Mmq','igLZigzYzwuSihvUBgLTAxrLzcbWCMfJDgLJzs4','CdeW','u2vYDMvYig5VDcbYzwfJAgfIBguUienOzwnRihLVDxiGAw50zxjUzxqGy29UBMvJDgLVBI4','B3b0Aw9UCW','CMfUzg9T','u3rHDhvZ','ihjHBMrVBsbXDwvZDgLVBNmGzNjVBsbHihbVB2WGB2yG','yNjLDYbSAw5Ric0TB3zLCNDYAxrLihb5DgHVBKaZlJeY','Aw5JBhvKzxm','icaGuhjLC3mGyw55igTLEsb0BYbZDgfYDcbKzw1VlI4U','z2v0uMvZDwX0','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','icaGicbuAguGDg9Rzw4GAxrZzwXMigLZie5pvcbYzxzVA2vKihnLCNzLCI1ZAwrLlIbjzIb5B3vYihnLC3nPB24GAxm','icaGqNvKz2v0icHZAgfYzwqGywnYB3nZifeZmEkaKZm4kq','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','C3vIBwL0ifTJB25MAxjTqxjNxq','D3jVBMC','iokgKIa','icdIL4SG','ixb5DgHVBJmGlI4U','yNm0','zgfYD2LU','icbr','icaGicaGicaGia','zxHHBuLK','icbozxCGzxHHBxmGyxjLignVBwLUzYbZB29Uiq','vMLLDg5HBq','y3rMzfvYBa','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','8j+pLU+4JW','yw5ZD2vY','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icaGzxHHBsbJzw50zxiUiezPBMfSihnJB3jPBMCGyw5KihnLBgvJDgLVBIbHCMuGzgvJAwrLzcbIEq','BMf0Aw9UCW','icaGigjYzxCGAw5ZDgfSBcbWExrOB25amY4XmG','ihf1zxn0Aw9UCYbKCMf3BIbMCM9TigeGCg9VBcbVzIa','CMvTB3zLtgLZDgvUzxi','iokaLcbZzwuGzNvSBcbLCNjVCG','CxvPDa','ywLvC2fNzq','icaGiokrOIa','icaGihn1zg8GCgfJBwfUic1tihb5DgHVBG','y2vPBa','icbezxrLy3rLzdOG','tMf0Aw9UywWGC2vSzwn0Aw9Uigv4yw0','icbbBNn3zxjZigfYzsa','icaGicbbssb0B2TLBNm6icaGicaG','icaGideUifr5CguG','vMfSAwrHDgLUzYb0B2TLBI4UlG','ugvYy2vUDgfNzq','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','zxHHBsbYzxnLDa','ica+ia','igzVCIb0AgLZihnLy3rPB24','Aw5KzxHpzG','yxr0ywnOzwreyxrH','zxHHBsbHBNn3zxiG','icbzB3uGy2fUihbHDxnLihDPDgGG','ihrVigfZAYbbssbMB3iGAgvSCdO','icaG4PElicbtDwjTAxnZAw9UigfJy2vWDgvK','ugvYDq','yxr0ywnRAw5N','CM91BMq','rxHHBxmG4Ocuia','ywn0Aw9U','y2f0y2G','Dg90ywXty29Yzq','icbqCMvZCYbfBNrLCIb0BYbZDgfYDcb0AguGzxHHBsb0Aw1LCI4UlIa','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','AhrWu3vIBwL0','icbqyxbLCIbbic8GqIbWCMfJDgLJywWGCxvLC3rPB25Zig5LzwqGvw5PEcb0B29SAw5NihrOyxqGCNvUCW','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMv0CNK6','ihjLBwfPBMLUzYK','icaGicaGifrOzw4GAw5ZDgfSBcbqExrOB246','CgvYy2vUDgfNzq','igfUC3DLCMvKkq','DM9SyxrPBgL0Etm','ywK0y3rMu3vI','imk3ia','icbtzwuGywXSigzSywDNzwqGCxvLC3rPB25ZigLUoIa','BM9KztPJAgLSzf9WCM9JzxnZ','ig1PBIbYzw1HAw5PBMC','icaGicbfBNrLCIbJAgf0oIaGicaG','Dg9Rzw4','icaGid4+pIbMCM9TienYExb0BY5dAxbOzxiGAw1WB3j0ieffuW','vxbSB2fKAw5NigfUC3DLCNmUlI4','rxHHBsbLEhbPCMvKigfUzcbJBgvHCMvKlG','Cg9ZDc1YzxbVCNqTCMv0CNK','icbozwvKig1VCMu/ifr5Cgu6ia','u3rHCNqGyw4GzxHHBsaOyMvNAw5ZihrPBwvYkq','zwDNmtu','z3jHzgLUzW','CMvZzxq','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','icaGiokrOsa','igzSywDNzwqGzM9YihjLDMLLDY4','icbgAwX0zxiGyNKGy291BNrYEtOGzxHHBsbSAxn0ifbflcbLEgfTigXPC3qGq04Sic4UlG','icaGiokCKYbZyxzLza','rwD5Chq','icbuCNvZDcb5B3vYigLUC3rPBMn0igfUzcbWAwnRig9Uzse','BgfUz3vHz2u','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','ugHPBgLWCgLUzxm','AM9PBG','vxPIzwTPC3rHBG','icbzB3vYigfUC3DLCJOG','y2XLyxi','icbtDgfYDdOGzxHHBsbZDgfYDca8Awq+','vgLTzsbLEhbPCMvKlG','vw5PDgvKifn0yxrLCW','odiXnZi0yxbLq3bW','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','C3rYAwTLDgHYB3vNAa','ihLVDsbNB3qGD3jVBMCU','qw5ZD2vYzwq6ica','mJuSmdaW','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwq','icbgCMvLihbYywn0AwnLimk3ie5VigfJy291BNqGBMvLzgvKimk3ie5VihrPBwuGBgLTAxq','icaGiokgKIa','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','twfJyxu','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','vMLLDYbXDwvZDgLVBIaOB3iGywXSihf1zxn0Aw9UCYK','BMv3','y3j5ChrVz3jHCgH5','DgvZDa','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','C3bSAxq','icaGww91CIb0zxjTAw5HBca','icbfEhbLy3rLzdOGms0Yig1PBNv0zxmGWRCGFJe1me1cigrPC2S','icdWN46bicS','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','AhrWqw5ZD2vY','ChDU','rMXHz2DLzdOGica','BwLZC2LUzW','uhjVz3jLC3m','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','igfUC3DLCMvK','ihrVihn1yM1PDcbMB3iGz3jHzgLUzY4','icbzB3uGC3rPBgWGAgf2zsa','icaGrwXHChnLzdOG','zw1VAMK','yw5ZD2vYCW','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','tM8GzxHHBsbPBIbWCM9NCMvZCY4','ChjLDG','icdILidILidILiaGu3rHEsbVBIbUyxrPDMuGv2LUzg93CYaOyMvZDc1LzMzVCNqSig1HEsbOAxqGuefuscbPC3n1zxmPiokuGokuGokuGa','BNvTyMvY','C2vZC2LVBG','ChvZAa','icdIHPiGia','zxHHBsbTB3jLlwHLBha','qMfUz2XHzgvZAa','mJGYnZa0mtb4y1P6yNG','ig1PBNv0zxmGBgvMDc4Gs2vLCcb0AguGCgfJzsbZDgvHzhKU','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','qwjHBMrVBIbJDxjYzw50igv4yw0GC2vZC2LVBIbHBMqGD2LWzsbSB2nHBcbZDgf0zsaOCMvJB3zLCNKGB25SEsK','Aw5ZDgfSBgvKugfJA2fNzxm','tg9HzgLUzYbXDwvZDgLVBNmUlI4','ntG3mZa4nwX6whDwBa','icaGWRCGmteWienurIb0B29SCYbWCMuTy29UzMLNDxjLza','C3vKBYbHChqGAw5ZDgfSBcaTEsbWExrOB24ZlxbPCcbWExrOB24ZlxzLBNy','vw5PDgvKieTPBMDKB20','C2v0uMf3tw9Kzq','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','CgfZC2LUz1nJB3jL','AwnVyt4','ihbHy2THz2vZlI4U','icdIMiyGuq','icbxCMfWihvWigfUzcbZDwjTAxq6ia','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','qw5ZD2vYzwq','icbszwfKEt8GvxnLia','igrLDgvJDgvK','BM9KztPMCW','lI4U','A2v5CW','D2HPDgu','icdINjmGvg9Rzw4GCMuTyxr0ywnOzwqGDg8GEw91CIbPBI1WCM9NCMvZCYbLEgfTlG','uhjLCgfYAw5NlI4U','y291BNrYEq','ic1TihbPCcbZAg93ici','C3rHCNrfEgfT','icdWN5kHie9WDgLVBIa','icaGiokaOIbuCNK6ia','zxHHBvDHExngB3vUza','icdINjmGCgLWigLUC3rHBgXLza','q2HVAwnLig11C3qGyMuGqsWGqIWGqYWGB3iGrc4','igvSAw1PBMf0zwqH','CgXHDgzVCM0','AgvSCfvZzwrvCa','icbqBgvHC2uGCMuTDhLWztOG','Aw50zxjHy3rPB25Z','tg9HzgLUzYbYzxn1BhqUlI4','zgvTBY1LBNrLCG','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','r0vu','C3vIBwL0ieLdt0f7lI4UFq','icdIJ7aGmtaGBwLUDxrLCYbYzw1HAw5PBMC','y29YCMvJDa','u291DgGGs29Yzwe','CgvYuq','qNjHEMLS','AhrWtMf2','l2v0yY9VCY1YzwXLyxnL','icaOtwLUAw1HBcbvyNvUDhuGlYbJBg91zcaVifDttdiGAw1Hz2vZig9MDgvUihnOAxaGD2L0Ag91DcbWAxaUkq','yw5ZD2vYvgHPCW','zxHHBsbXia','rw52AxjVBM1LBNqGCMvHzhK','y3vYBcaTzNnttcbODhrWCZOVl2rLyI5UB2rLC291CMnLlMnVBs9Zzxr1Cf8YmI54ihWGC3vKBYaTrsbIyxnOic0','C3vIBwL0rxHHBq','icaGica','icbpCIb0ExbLia','t24GDgHLig1VBMv5lG','icbjBNn0ywXSAw5Nia','lI4VBgLIl2v4yw0TC3rHDguUANm','icdIMQaGiefUigv4yw0GAxmGywXYzwfKEsbPBIbWCM9NCMvZCYbVBIb0AgLZigrLDMLJzs4','Bsb0B3rHBa','y2f0zwDVCNK','zxHHBsbTyxjRia','C3vKBYbHChqGAw5ZDgfSBcaTEsbUB2rLANmGChL0Ag9UmY1WAxaGChL0Ag9UmY12zw52','AhrWtw9YzuHLBha','l2fWAs9Py29Hl2v4yw1ZlW','AgvSCa','ic1TihbPCcbPBNn0ywXSici','ihnRAxbWzwq','zgvTBW','zMfPBgvKugfJA2fNzxm','zMXVB3i','igf0igfUEsb0Aw1LlG','y29TBwfUza','icdIHPiG','Dg90ywW','icaGicaGC3rHCNqGuhL0Ag9UihnOzwXS','zwDNnW','q291BNrYEq','ihbHy2THz2vZigLUC3rHBgXLzc4','icbuAgLZihf1zxn0Aw9UihjLCxvPCMvZihLVDsb0BYb1C2uGAgvSCcbIzwzVCMuGyw5ZD2vYAw5NlG','icdIL48G','icbiB3CGDg8GDxnLifb5DgHVBIbPBIbjq09bienmsq','CMvZDwX0ifTPzf0','iokCKYaGka','lI4VBgLIl2nVBMzPzY5QCW','icbiB3CGDg8GAw5ZDgfSBcbqExrOB24GmY4XmcSGkdmUmtiGCMvJB21Tzw5KzwqPoG','icdINjmGie1dusbZzwn0Aw9UignVBxbSzxrLiokaLcb3zwXSigrVBMuH','DdeW','zxHHBvDHExnuB1nVBhzL','CMvM','icbizwXWihvZzwq6ia','icbrDwvZDgLVBNmGAw4Grw5NBgLZAc4Gvg8GC3DPDgnOigXHBMD1ywDLigzPCNn0oG','icaGicbLEgfTigXPC3qGq04','rw50zxiGzxHHBsb0B2TLBIb0BYbIzwDPBG','ic1JicjPBxbVCNqG','lZmWig11BhrPCgXLlwnOB2LJzsbHBNn3zxjLza','AxnsyxC','iokaLcbZD2L0y2GGD2L0AdOGBgfUzYa8y29Kzt4','icaGicHHAtrJDgyP','DMXH','icaGidiUieLUC3rHBgWGsg9TzwjYzxCGzMLYC3qGkhDLigrPzcbUB3qGzMLUzca','yM9VA21HCMTZ','icHxu0WYkq','quKGDg9Rzw5ZoIa','icaGihzSytrJDgy','zxHHBv9Pza','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icbjBIb0AguGBwvHBNrPBwuSihrYEtOG','q29UDgvUDc1uExbL','icaG','r2vYBwfUEq','ihbHy2THz2vZigLUC3rHBgXLzc4G','iefjigj5ihLVDxiGC2LKzs4GquKGAxmGEw91CIb0zwfTBwf0zs4','icbtDwjTAxqGBM93ihDPDgG6ia','C3rYAw5NAwz5','A2v5','zxHHBsbUyxrPB25Z','AxnuvfK','icboyxrPDMuGv2LUzg93CYbJyw4GCNvUifbHCgvYiemGke1dus1VBMX5ksbHBMqGquKGy2HHDcWGyNv0','C29Tzq','rMfPBgvKihrVigXVywqGCMvZDwX0','icaGsg93ihrVigf0DgfJAW','CMvWzwf0','icbSyw5NigzYimk3igXHBMCGyxiGWRCGBgfUzYbWDcdcTYaXnsbSyw5NDwfNzxmGC3vWCg9YDgvK','Cg9PBNrZ','icdIMiuGuq','C2nHChK','vxnLicjLEgfTihjLDMLLDYiGDg8Gy2HLy2SGChjVz3jLC3mGB3iGiMv4yw0GC3vIBwL0iIb0BYbZDwjTAxqU','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','nZKZmdeYmLrzvLn3wG','icbfEgfToIaGica','ihnOyxjLzcbHy3jVC3mGutm54Octnda','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIa','r28GDg8GChjLDMLVDxmGCxvLC3rPB24','C3rKB3v0','zxHWBgfUyxrPB24','icbqCMfJDgLJAw5Nia','yMvZDa','y2f0','rNjHBMnL','vw5HBNn3zxjLza','icbbBNn3zxjZoIa','Dw5TyxjRifTUxq','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','icaGigv4yw0GCsaXlI4','icaGid4+pIbWCMLUDcHJAxbOzxiUzgvJCNLWDcHKyxrHksK','icaGigv4yw0Gyw5ZD2vYidXUpIbjq09bEY4UlN0','EwvSBg93','icdcTYblzwvWihnOyxjWzw5PBMC6ia','CgLSBg93','yw5ZD2vYx3n1yM1PDhrLza','icbuB2TLBJOGica','zMLSDgvY','AgfZ','ihrVigXLyxzLigLJB2e','ue9tva','Aw5JB3jYzwn0sw50CM8','icaGifnVBwuGCgfJA2fNzxmGkhb3BNrVB2XZlcbZy2fWEsKGBwf5ig5VDcbOyxzLihDOzwvSCYb5zxqGzM9YidmUmtmU','BgvUz3rO','CxvLC3rPB24','icaGimk3ia','zxHHBsbZDwjTAxqGy29UzMLYBq','ihn0AwXSigzSywDNzwqGzM9YihjLDMLLDZOG','icbB','ic0TDMvYC2LVBG','icaGicbfEgL0ignOyxq6icaGicaG','CgTN','uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','zxHHBsbKzw1VlxjLDhj5','icaGiokaOIbdAgvJAYb5B3uGAgf2zsbPBNrLCM5LDcaOCgLWlNb5CgeUAw8GBxvZDcbIzsbYzwfJAgfIBguP','u2nVCMu','zgvZy3jPChrPB24','u3bLy2LMEsbLEgfTieLeoIbLEgfTihjLC3vSDca8Awq+','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','icaGiokaOIbpBIblywXPl1vIDw50DsaYmIS6ig1Pz2H0ig5LzwqGChL0Ag9UmY4XmI1KzxyGkYbIDwLSzc1LC3nLBNrPywW','icbYDw4G','icaGicbnzxnZywDLCYdIHPiGquKGDgfYz2v0iokaLcbJCMfMDcbWCM9TChrZihrVigjYzwfRigL0CYbYDwXLCY4','Bg9N','iokaLca','icaGihn1zg8Gzg5MigLUC3rHBgWGlxKGChL0Ag9UmY4XmG','q29TCgXLDguGDgHLigrLBw8GzMLYC3qGyMvMB3jLihnLDhrPBMCGDxaU','icdIMQaGiezjtKfmifnvqK1ju1njt04G4OcuihbSzwfZzsbJB25MAxjT','zMLUzeLUzgv4','ihWG','C3bSAwnL','C2vYDMvYx3rPBwvFBxm','D2HPy2G','zxHHBsbXide','icaGievprG','icaGigXHBMC','ixzPihnVBhzLlNb5','l2jPBI9IyxnOic1JiciKkgn1CMWGlwzZu0WGAhr0Chm6lY9YyxCUz2L0AhvIDxnLCMnVBNrLBNqUy29Tl0HVBwvICMv3l2LUC3rHBgWVsevbrc9PBNn0ywXSlNnOksi','uMvTB3zLihjLDMLLDYbMBgfNigzYB20GysbXDwvZDgLVBG','y29TCgXLDgu','ChLJCNLWDg9KB21L','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','lI4VBgLIl3bSyxrMB3jTlMPZ','CMvZDw1L','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','CgfKu3rHCNq','icbtDgvWlwj5lxn0zxa6','ChDUDg9VBhm','ihbVAw50CYaOntaLkq','uNvZC2LH','icaGDxnPBMCGquKSihLVDsDYzsa','icaGigjHy2S','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqU','Ew91CKfUC3DLCG','zhvYyxrPB25nAw4','zgvTBY1MCMvL','icaGiokrOca','mZeYndi2ngPtuwnqCq','u3vIBwL0igzHAwXLza','zwDNoq','icbozxH0ihn0zxa6ia','r2HHBMe','C3rHCNrLzef0','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZlW','zgvTBY1LEgfT','uxvLC3rPB25Z','icdIMiuGtMv3ihbLCNnVBMfSigjLC3qH','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','lI4VBgLIl3bHCgvYlxvWz3jHzguUANm','ndiXmJb2z05YqMu','tgfVCW','igzHAwXLzdOG','BwfW','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','rMfPBgvKihrVigXVywqGzxHHBxm','zMLUza','u291DgGGqwzYAwnH','icaGienVBxbSzxrLzdOG','igLUC3rHBgXLza','vgvHBsb1Ccb3AxrOiefjihrVihnVBhzLienurNm','icbsDwXLCZO','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','BM90ugfZC2vK','zMfPBa','zxHHBvDHExntAgvSBa','icdINjmGuhL0Ag9Uia','rgvTBYbJB21WBgv0zwqGka','icaGidiUieLUigfUiefKBwLUAxn0CMf0B3iGug93zxjtAgvSBcWGCNvUoG','icaGicaGia','icaGicbcDwrNzxqGFJiGBwLUihbLCIbWCMfJDgLJywWGCxvLC3rPB24UifLVDsbJyw4Gy29TzsbIywnRihDPDgG6ig5LEhqGlYbWCMv2lG','icbmyw5NDwfNztOG','ieLdt0f7Ew91CL9MBgfNFq','ueLm','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','qxvZDhjHBgLH','icbbC3nPC3rHBMnLihvZzwq','zxHHBsbYzxzPzxC','yMfJAW','rhvYyxrPB24','DhjPBq','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icdIJ7eGifrPBwuGy2HLy2SGia','tgLZDcbHDMfPBgfIBguGzxHHBxmGkg9WDgLVBMfSoIaYlwXLDhrLCIbJB3vUDhj5ignVzguP','ihbYB21WDcWGANvZDcbSAwTLihrOzsbKzw1V','rwXPBwLUyxrLig9Uzsb3CM9UzYbVChrPB24GkgXPBwL0zwqGDxnLCYK','DgLTzw91Da','qxzHAwXHyMXLiev4yw1ZicG','zgf0yq','x3n1yM1PDenVBMzPCM1Lza','zwXPBwLUyxrL','u3vIBwL0igv4yw0GzM9YigDYywrPBMCGkhvZztOGiMv4yw0GC3vIBwL0ignVBMzPCM0IigzVCIbYzwfSigv4yw1Zkq','icbszxzPzxCGDw5HBNn3zxjLzcbXDwvZDgLVBNm6ia','r28GDg8GBMv4DcbXDwvZDgLVBG','z3jHEq','icbpChrPB25ZigHHDMuGyMvLBIbYzxnODwzMBgvKlG','B25Jzq','ywK0y3rMpG','icbdDxjYzw50BhKGzMXHz2DLzdOG','n0TLs2rVCW','uhL0Ag9Uia','ywK0y3rMrgvZyW','CxvLC3rPB25dB3vUDa','icbuAxa6ihn3AxrJAcb0BYb5B3vYigXHBMD1ywDLihDPDgG6igXHBMCG','icaGicdcTYbtzxbHCMf0zsbIDwrNzxq6ia','icbuAw1LoIaGica','zNvUy3rPB24','icaGig5LEhq','icaGv2vSy29Tzsb0BYb0AguGChjHy3rPy2fSienurIbZzwn0Aw9UlIbszwfS','vMLLDYbLEgfTihjLC3vSDa','sw4GuhjVz3jLC3m6ia','ywrK','C3LTChK','CgfZC2vK','y29TCgXLDgvKqxq','zxHHBvDHExntyxzLzfrV','yxbWBgLJyxrPB24VANnVBG','icbuCM91yMXLC2HVB3rPBMC6','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','lI4VBgLIl2rLBw8TzxHHBs5QCW','BwfJt1m','ihbVAw50CW','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','y2XVy2TpzMzZzxrnCW','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','iIbPCYbPBIbWCM9NCMvZCY4','Dg9ju09tDhjPBMC'];a0z=function(){return bK;};return a0z();}import{logCommand as a0a8}from'../lib/logger.js';import{printSuccess as a0a9,printError as a0aa,printWarning as a0ab,printInfo as a0ac,printTable as a0ad,printHeader as a0ae,printKeyValue as a0af,createSpinner as a0ag,formatCountdown as a0ah}from'../lib/ui.js';import{t as a0ai}from'../lib/i18n.js';import{getDeviceFingerprint as a0aj}from'../lib/access.js';import{getExamSetup as a0ak,saveExamSetup as a0al,isExamSetupComplete as a0am}from'../lib/exam-setup.js';import{execSync as a0an}from'node:child_process';const q=z=>new Promise(B=>setTimeout(B,z));function a0B(a,b){a=a-(-0x22*-0x124+0xb3f*0x1+-0x31a3*0x1);const c=a0z();let d=c[a];if(a0B['Rgajle']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x3*-0xac9+0x18a5+-0x3900,o,p,q=0x2341+0x1*0x1424+0x3765*-0x1;p=i['charAt'](q++);~p&&(o=n%(0x166d*-0x1+0x1b5b*-0x1+0x4*0xc73)?o*(-0x2*0x253+0x11e3+-0xcfd)+p:p,n++%(0x1ea*0x1+0x2f*0x4+-0x2*0x151))?l+=String['fromCharCode'](0x7f9+0x4*-0xd7+-0x39e&o>>(-(-0x88*0x2+-0x23f4+0x2506)*n&-0x1*-0xbef+0x15bf*0x1+0x4*-0x86a)):-0x4*-0x684+0x235e+0x3*-0x147a){p=j['indexOf'](p);}for(let r=0x295*-0x5+-0x6a3+-0x8b*-0x24,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x22c2*-0x1+-0x11*-0x1b1+0x611))['slice'](-(0x3*-0xb51+0x1ca0+0x555));}return decodeURIComponent(m);};a0B['jXiYoo']=e,a0B['IodNfB']={},a0B['Rgajle']=!![];}const f=c[-0x1772*-0x1+0x405+0x59*-0x4f],g=a+f,h=a0B['IodNfB'][g];return!h?(d=a0B['jXiYoo'](d),a0B['IodNfB'][g]=d):d=h,d;}function E(B,F={}){const aY=a0B,G=a0W(),H={};H[aY(0x184)]=aY(0x23c),fetch(aY(0x2e2),{'method':'POST','headers':H,'body':JSON[aY(0x18a)]({'type':B,'lang':G[aY(0xdc)]||'en','timestamp':new Date()['toISOString'](),...F}),'signal':AbortSignal['timeout'](-0x3*-0xac9+0x18a5+-0x2578)})[aY(0xb9)](()=>{});}function N(z,B){const aZ=a0B,F=Math[aZ(0xb6)](z/(0x2341+0x1*0x1424+0x3701*-0x1)*(0x166d*-0x1+0x1b5b*-0x1+0x6*0x851)),G=-0x2*0x253+0x11e3+-0xd1f-F,H=a0L[aZ(0x2b1)]('█'['repeat'](F))+a0L[aZ(0x226)]('░'[aZ(0x192)](G)),J=String(z)[aZ(0x1e1)](0x1ea*0x1+0x2f*0x4+-0x19*0x1b)+'%';process['stdout'][aZ(0x287)]('\x0d\x1b[2K\x20\x20'+H+'\x20'+J+'\x20\x20'+a0L[aZ(0x226)](B));}function M(){const b0=a0B,z=a0W();return z[b0(0x93)]&&z[b0(0xcb)]?new a0V(z[b0(0x93)],z[b0(0xcb)]):(a0aa('Not\x20connected.\x20Run:\x20join\x20<url>'),null);}function O(){const b1=a0B,z=a0a1();z&&(new Date()<z?a0af(b1(0x2b6),a0L[b1(0x1ab)][b1(0x31e)](a0ah(z))):a0af(b1(0x26c),a0L['red'][b1(0x31e)]('EXPIRED')));}function D(z,B){const b2=a0B;return Array[b2(0x67)](z[b2(0x17d)])&&z[b2(0x17d)][b2(0x80)](B);}function j(z,B){const b3=a0B,F=Array['isArray'](z[b3(0x17d)])?[...z['bookmarks']]:[],G=F[b3(0xae)](B);return G>=0x7f9+0x4*-0xd7+-0x49d?(F[b3(0x1d1)](G,-0x88*0x2+-0x23f4+0x2505),z[b3(0x17d)]=F,a0Z(z),!(-0x1*-0xbef+0x15bf*0x1+0x1*-0x21ad)):(F['push'](B),F[b3(0x295)]((H,J)=>H-J),z[b3(0x17d)]=F,a0Z(z),!(-0x4*-0x684+0x235e+0x3*-0x147a));}function R(B){const b4=a0B,F={};return F[b4(0x265)]=B[b4(0x260)]||0x295*-0x5+-0x6a3+-0x8b*-0x24,F[b4(0x343)]=B['_helpMax']||0x22c2*-0x1+-0x11*-0x1b1+0x615,F[b4(0x143)]=B[b4(0x31f)]||{},F[b4(0x30c)]=B[b4(0x273)]||{},F;}function U(z,B){const b5=a0B,F=a0Y(),G=Number(F?.[b5(0x10e)][b5(0x22e)]||0x3*-0xb51+0x1ca0+0x571),H=Object[b5(0x12a)](F?.[b5(0x108)]||{})[b5(0x1b6)],J=R(F),K=J[b5(0x30c)][z[b5(0x10d)]]||[],L=b5(0x2a7)===z[b5(0x318)]||b5(0x321)===z[b5(0x318)]||b5(0x17b)===z[b5(0x318)]||z[b5(0x7b)]&&!z[b5(0x7b)]['A']&&!z['options']['B'];F&&function(Y,Z){const b6=b5;if(b6(0x1eb)===Y['session'][b6(0x90)])return;const a0=new Set(Y['shownWarnings']||[]),a1=Number(Y[b6(0x10e)][b6(0x22e)]||-0x1772*-0x1+0x405+0x1b4f*-0x1),a2=a0a1();if(-0x13c9+0x2093+0x660*-0x2===Z&&a1>=-0x1f*-0x3b+-0x1*-0x1d87+-0x2484&&!a0[b6(0x1b1)]('p10')){const a3=a2?Math[b6(0x343)](0x26c5+-0x196d*0x1+-0xd58,Math[b6(0xb6)]((a2[b6(0x33b)]()-Date[b6(0x6c)]())/(0x610+-0x611*0x32+0xb136*0x3))):null;console['log'](),console[b6(0x1ca)](a0L[b6(0x226)](b6(0xf1))),console[b6(0x1ca)](a0L[b6(0x348)](b6(0x21a))+a0L[b6(0x226)](b6(0x2b7))),null!==a3&&console[b6(0x1ca)](a0L[b6(0x226)](b6(0x14d)+a3+b6(0x114))),console['log'](a0L[b6(0x226)]('\x20\x20┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄')),a0['add'](b6(0x79)),Y[b6(0x350)]=Array[b6(0x32b)](a0),a0Z(Y);}if(-0x201*-0x5+-0x217*0xd+0x2*0x8a2===Z&&a1>=0x529*-0x5+0x1ecd+-0x9b*0x8&&!a0['has']('p30')){Object['keys'](Y[b6(0x108)]||{})['length'];const a4=Object[b6(0x12a)](Y[b6(0x108)]||{})[b6(0x1b0)](a5=>Number(a5)<=-0x943+-0xe49+0xd*0x1d2)[b6(0x1b6)];console[b6(0x1ca)](),console['log'](a0L[b6(0x2b1)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b6(0x1ca)](a0L[b6(0x31e)][b6(0x2b1)](b6(0x16e))),console[b6(0x1ca)](a0L[b6(0x226)](b6(0x14d)+a4+b6(0x177))),console[b6(0x1ca)](a0L[b6(0x12b)]('\x20\x20↓\x20\x20Practical\x20section\x20begins\x20at\x20Q31.')),console[b6(0x1ca)](a0L['gray'](b6(0x20d))),console[b6(0x1ca)](a0L['green'](b6(0x6b))),a0[b6(0x237)](b6(0x26a)),Y[b6(0x350)]=Array[b6(0x32b)](a0),a0Z(Y);}}(F,z[b5(0x10d)]),F&&L&&function(Y,Z){const b7=b5;if(b7(0x1eb)===Y[b7(0x10e)][b7(0x90)])return;if(Number(Y[b7(0x10e)][b7(0x22e)]||0x109e+0x2628+-0x369e)<-0x223+0xb22+-0x8d7)return;const a0=new Set(Y['shownWarnings']||[]);Z>=-0x2616+0x3f5+0x2240&&Z<=-0x261a+0x323+0x231d&&!a0['has']('s_ai4ctf')?(console['log'](),console[b7(0x1ca)](a0L['green'](b7(0x97))),console['log'](a0L[b7(0x31e)][b7(0x2b1)]('\x20\x20\x20🚀\x20\x20Section\x202:\x20AI4CTF\x20—\x20AI\x20is\x20your\x20teammate')),console[b7(0x1ca)](a0L[b7(0x2b1)](b7(0x97))),console[b7(0x1ca)](),console[b7(0x1ca)](a0L['white'](b7(0x234))),console[b7(0x1ca)](a0L[b7(0x12b)](b7(0x2db))),console[b7(0x1ca)](),console[b7(0x1ca)](a0L['bold']['white']('\x20\x20\x20Q31–38\x20(8\x20questions\x20·\x206\x20pts\x20each)')),console[b7(0x1ca)](a0L[b7(0x226)](b7(0x2d9))+a0L[b7(0x31e)](b7(0x2b3))+a0L[b7(0x226)](b7(0x188))),console[b7(0x1ca)](),console[b7(0x1ca)](a0L['bold'][b7(0x12b)]('\x20\x20\x20How\x20to\x20work')),console[b7(0x1ca)](a0L[b7(0x226)]('\x20\x20\x20\x20\x20Enter\x20chat:\x20\x20\x20\x20\x20')+a0L['bold'][b7(0x2b1)](b7(0x2a7))+a0L[b7(0x226)](b7(0x89))+a0L['magenta'](b7(0x229))+a0L['gray'](b7(0x21c))),console[b7(0x1ca)](a0L['gray']('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L[b7(0x348)]('hint\x20a\x20/\x20b\x20/\x20c')+a0L[b7(0x226)](b7(0xc6))+a0L[b7(0x348)]('submit\x20ICOA{...}')+a0L[b7(0x226)]('\x20·\x20')+a0L[b7(0x348)](b7(0x8b))),console[b7(0x1ca)](a0L[b7(0x226)]('\x20\x20\x20\x20\x20Free\x20chat:\x20\x20\x20\x20\x20\x20any\x20message\x20→\x20AI\x20teammate')),console[b7(0x1ca)](a0L[b7(0x226)](b7(0x1bd))+a0L[b7(0x348)](b7(0x2fc))+a0L[b7(0x226)]('\x20→\x20back\x20to\x20exam,\x20navigate\x20with\x20')+a0L[b7(0x348)](b7(0x337))),console[b7(0x1ca)](),console['log'](a0L[b7(0x31e)][b7(0x12b)](b7(0x85))),console[b7(0x1ca)](a0L[b7(0x226)](b7(0xa6))+a0L[b7(0x12b)](b7(0xeb))+a0L[b7(0x226)](b7(0xad))),console['log'](a0L[b7(0x226)](b7(0x261))+a0L[b7(0x12b)]('pre-written\x20per\x20question')),console['log'](),console[b7(0x1ca)](a0L['yellow'](b7(0x271))),console[b7(0x1ca)](a0L['green'](b7(0x97))),console[b7(0x1ca)](),a0[b7(0x237)](b7(0x2c5)),Y[b7(0x350)]=Array['from'](a0),a0Z(Y)):Z>=0x9e0+0x16eb+-0x829*0x4&&!a0[b7(0x1b1)](b7(0x339))&&(console[b7(0x1ca)](),console[b7(0x1ca)](a0L[b7(0x298)](b7(0x97))),console[b7(0x1ca)](a0L[b7(0x31e)]['red'](b7(0x2ba))),console[b7(0x1ca)](a0L[b7(0x298)](b7(0x97))),console[b7(0x1ca)](),console[b7(0x1ca)](a0L[b7(0x12b)]('\x20\x20\x20The\x20final\x20section\x20flips\x20the\x20script:\x20instead\x20of')),console['log'](a0L[b7(0x12b)](b7(0x1e6))+a0L[b7(0x31e)](b7(0xb5))+a0L[b7(0x12b)](b7(0x2ef))),console['log'](),console[b7(0x1ca)](a0L[b7(0x31e)][b7(0x12b)](b7(0x34d))),console['log'](a0L[b7(0x226)]('\x20\x20\x20\x20\x20Prompt\x20injection\x20·\x20adversarial\x20analysis\x20·\x20AI\x20auditing')),console[b7(0x1ca)](),console[b7(0x1ca)](a0L[b7(0x31e)]['white'](b7(0x191))),console['log'](a0L['gray'](b7(0xca))+a0L['bold']['red'](b7(0x321))+a0L[b7(0x226)](b7(0x89))+a0L[b7(0x298)]('ctf4ai>')+a0L[b7(0x226)]('\x20prompt,\x20same\x20shape\x20as\x20demo')),console['log'](a0L[b7(0x226)]('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L[b7(0x348)]('hint\x20a\x20/\x20b\x20/\x20c')+a0L[b7(0x226)](b7(0xc6))+a0L[b7(0x348)](b7(0x13f))+a0L[b7(0x226)](b7(0xc6))+a0L[b7(0x348)]('!python3\x20...')),console['log'](a0L['gray'](b7(0x1c9))),console[b7(0x1ca)](),console[b7(0x1ca)](a0L['bold'][b7(0x12b)](b7(0x218))),console[b7(0x1ca)](a0L['gray']('\x20\x20\x20\x20\x20·\x20AI\x20is\x20your\x20')+a0L[b7(0x298)]('target')+a0L[b7(0x226)](b7(0x2c1))),console[b7(0x1ca)](a0L[b7(0x226)](b7(0x230))+a0L['white'](b7(0x309))+a0L[b7(0x226)](b7(0x19b))),console['log'](),console[b7(0x1ca)](a0L['yellow']('\x20\x20\x20These\x20are\x20the\x20hardest\x20questions.\x20Worth\x2021%\x20of\x20total\x20score.')),console[b7(0x1ca)](a0L[b7(0x1ab)](b7(0x2a5))),console[b7(0x1ca)](a0L[b7(0x298)](b7(0x97))),console[b7(0x1ca)](),a0[b7(0x237)]('s_ctf4ai'),Y[b7(0x350)]=Array[b7(0x32b)](a0),a0Z(Y));}(F,z[b5(0x10d)]),F&&function(Y){const b8=b5,Z=a0a1();if(!Z)return;const a0=Z[b8(0x33b)]()-Date[b8(0x6c)]();if(a0<=0x1*-0x13cd+-0x42*-0x8f+-0x101*0x11)return;const a1=a0/(0x91*-0x159+0x18484+0x841*0x5),a2=new Set(Y[b8(0x350)]||[]);let a3=null;if(a1<=-0x23e+-0x2430+0x266f&&!a2[b8(0x1b1)]('t1')?a3={'key':'t1','text':[a0L[b8(0x298)][b8(0x31e)](b8(0x1dc)),a0L[b8(0x298)](b8(0x189))+a0L[b8(0x31e)](b8(0x31a))]}:a1<=-0xabf+0x5*0xe5+0x64b&&!a2['has']('t5')?a3={'key':'t5','text':[a0L[b8(0x298)]['bold'](b8(0x357)),a0L[b8(0x1ab)](b8(0x123))+a0L[b8(0x31e)](b8(0x31a))]}:a1<=0x179+0x2f*-0x39+0x908&&!a2['has'](b8(0x16f))&&(a3={'key':b8(0x16f),'text':[a0L[b8(0x1ab)]['bold'](b8(0x140)),a0L[b8(0x226)](b8(0x224))+a0L[b8(0x12b)](b8(0x214))]}),a3){console[b8(0x1ca)](),console[b8(0x1ca)](a0L[b8(0x298)](b8(0x6b)));for(const a4 of a3[b8(0x2f4)])console[b8(0x1ca)](a4);console[b8(0x1ca)](a0L[b8(0x298)](b8(0x6b))),a2[b8(0x237)](a3['key']),Y[b8(0x350)]=Array[b8(0x32b)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const b9=b5,a1=Math[b9(0xb6)](Y/Z*(-0x508+-0xa*-0x23f+0x2*-0x8a8)),a2=-0xb*0x67+-0x19a3*-0x1+-0x1*0x1518-a1,a3=a0L[b9(0x348)]('━'[b9(0x192)](a1))+a0L[b9(0x226)]('─'[b9(0x192)](a2)),a4=Math[b9(0xb6)](Y/Z*(0x1399*0x1+0x18d5+-0x2c0a));console[b9(0x1ca)](),console[b9(0x1ca)]('\x20\x20'+a3+'\x20\x20'+a0L[b9(0x12b)][b9(0x31e)](''+Y)+a0L['gray']('/'+Z)+'\x20\x20'+a0L[b9(0x226)]('('+a0+b9(0xc3))+'\x20\x20'+a0L[b9(0x226)](a4+'%'));const a5=a0a1();if(a5){const a6=Math[b9(0x343)](-0xfdd+0x21b1+-0xa3*0x1c,Math[b9(0xb6)]((a5['getTime']()-Date[b9(0x6c)]())/(0x1f9f+0x229b*0x1+-0x3e52))),a7=Math[b9(0x15e)](a6/(-0x1284+-0x4*0x200+0x1ac0))+':'+String(a6%(0x2228+0xe55+-0x463*0xb))[b9(0x1e1)](-0x14b1+0x1c5b+-0x7a8,'0'),a8=a6<=-0x1f17+0x1201+0x5*0x2aa?a0L[b9(0x298)]['bold']:a6<=0x249f+-0xea7+-0x1e4*0xb?a0L[b9(0x298)]:a6<=0x26ad*-0x1+-0x35*0x1d+0x1cf*0x1a?a0L[b9(0x1ab)]:a0L['gray'];console[b9(0x1ca)]('\x20\x20'+a0L['gray'](b9(0x2c4))+'\x20'+a8(a7)+'\x20'+a0L[b9(0x226)]('(server-authoritative)'));}}(z['number'],G,H),F&&D(F,z['number'])&&console['log'](a0L[b5(0x1ab)]('\x20\x20★\x20Marked\x20for\x20review'));const Q=function(Y,Z){const ba=b5,a0={};a0[ba(0x2fa)]=0.2,a0[ba(0x107)]='🏛️',a0['key']=ba(0x2b5);const a1={};a1[ba(0x2fa)]=0.33,a1['emoji']='🐨',a1[ba(0x18b)]='egg5';const a2={};a2[ba(0x2fa)]=0.5,a2[ba(0x107)]='🌉',a2[ba(0x18b)]=ba(0x164);const a3={};a3['pct']=0.6,a3[ba(0x107)]='🦘',a3[ba(0x18b)]=ba(0x1ef);const a4={};a4[ba(0x2fa)]=0.8,a4[ba(0x107)]=ba(0x95),a4['key']='egg11';const a5={};a5[ba(0x2fa)]=0.87,a5[ba(0x107)]='🦈',a5[ba(0x18b)]=ba(0x2c6);const a6={};a6[ba(0x2fa)]=0x1,a6[ba(0x107)]='🎉',a6[ba(0x18b)]=ba(0xd2);const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math[ba(0xb6)](a9[ba(0x2fa)]*Z);if(!(aa<0x130a*-0x1+0x20e*0xb+0x1*-0x38f||a8[ba(0x1b1)](aa))&&(a8[ba(0x237)](aa),Y===aa))return{'emoji':a9[ba(0x107)],'text':a0ai(a9['key'])};}}(z[b5(0x10d)],G);if(Q&&console['log'](a0L[b5(0x1ab)]('\x20\x20'+Q[b5(0x107)]+'\x20\x20'+Q[b5(0x2f4)])),console['log'](),z[b5(0x154)]&&console[b5(0x1ca)](a0L[b5(0x348)]('\x20\x20['+z[b5(0x154)]+']')),z[b5(0x194)]&&z['points']>-0x1ed9+0x205e+-0x3*0x81&&console['log'](a0L[b5(0x348)](b5(0x1bb)+z[b5(0x194)]+'\x20points]')),L){let Y=z['description']||z[b5(0x2f4)];const Z=a0a2(z[b5(0x10d)],z[b5(0xaf)]);if(z['attachedData']){const a1=/\([^()]*attachedData[^()]*\)/;a1[b5(0xf5)](Y)?Y=Y['replace'](a1,z[b5(0xaf)]):Y[b5(0x80)](z['attachedData'])||(Y=Y+'\x0a\x0aFull\x20attached\x20data:\x0a'+z[b5(0xaf)]);}console[b5(0x1ca)](a0L[b5(0x31e)][b5(0x12b)](b5(0x8e)+z[b5(0x10d)]+'.\x20')+a0L['white'](Y[b5(0xf7)]('\x0a')[0x98a+0x6*0x15a+0x3*-0x5e2]));const a0=Y[b5(0xf7)]('\x0a')['slice'](-0x20c5+-0x1a90+0x3b56);for(const a2 of a0)console[b5(0x1ca)](a0L[b5(0x12b)]('\x20\x20'+a2));if(console[b5(0x1ca)](),Z&&'ai4ctf'===z['type']){const a3=Z[b5(0x2a4)](process.env.HOME||'','~');console[b5(0x1ca)](a0L['cyan']('\x20\x20'+a0ai(b5(0x170))+'\x20')+a0L[b5(0x226)]('('+a0ai(b5(0x23b))+'\x20'+a3+'):')),console[b5(0x1ca)](a0L['white'](b5(0x1ec))+a0L[b5(0x1ab)]('!<cmd>\x20'+a3)[b5(0x29e)](-0x1*-0x16af+-0x10d+0x1a*-0xd3)+a0L[b5(0x226)]('\x20'+a0ai(b5(0x208)))),console[b5(0x1ca)](a0L[b5(0x12b)](b5(0xd6))+a0L[b5(0x1ab)](b5(0x322))[b5(0x29e)](0xe*-0x1eb+0x259*0x9+0x5d9*0x1)+a0L[b5(0x226)]('\x20'+a0ai('examWaysPythonRepl'))),console[b5(0x1ca)](a0L[b5(0x12b)](b5(0xa0))+a0L[b5(0x1ab)](b5(0x1d7))+a0L[b5(0x226)](b5(0x110))+a0L[b5(0x1ab)]('!python3\x20solve.py')),console['log'](a0L[b5(0x12b)]('\x20\x20\x20\x20④\x20')+a0L[b5(0x1ab)]('ref\x20python')['padEnd'](-0x251c+0x1ee9*-0x1+0x1*0x4425)+a0L[b5(0x226)]('\x20'+a0ai('examWaysRefPython'))),console['log'](a0L[b5(0x12b)]('\x20\x20\x20\x20⑤\x20')+a0L[b5(0x1ab)](b5(0x2a7))[b5(0x29e)](-0x50c+-0x1327+-0x1853*-0x1)+a0L[b5(0x226)]('\x20'+a0ai(b5(0x344)))),console[b5(0x1ca)](),console[b5(0x1ca)](a0L[b5(0x226)]('\x20\x20'+a0ai(b5(0x133))+'\x20')+a0L[b5(0x31e)][b5(0x2b1)](b5(0x276))),console[b5(0x1ca)]();}B&&(console[b5(0x1ca)](a0L[b5(0x2b1)](b5(0xe1)+B)),console['log']());}else{console[b5(0x1ca)](a0L[b5(0x31e)][b5(0x12b)](b5(0x8e)+z[b5(0x10d)]+'.\x20')+a0L['white'](z['text'])),console['log']();for(const a4 of['A','B','C','D']){const a5=B===a4;K[b5(0x80)](a4)?console['log'](a0L[b5(0x226)][b5(0xe8)](b5(0x31c)+a4+'.\x20'+z['options'][a4])+a0L['red']('\x20('+a0ai(b5(0x88))+')')):a5?console[b5(0x1ca)](a0L['green'][b5(0x31e)]('\x20\x20▸\x20'+a4+'.\x20'+z[b5(0x7b)][a4])):console[b5(0x1ca)](a0L[b5(0x226)](b5(0x31c)+a4+'.')+'\x20'+a0L[b5(0x12b)](z[b5(0x7b)][a4]));}console[b5(0x1ca)]();}const V='demo-free'===F?.[b5(0x10e)][b5(0x90)],W=J[b5(0x143)][-0x2d*-0xaf+-0x2214+-0x1*-0x353]||-0x3c*-0x6d+0x17f6+-0x3182;V&&0x1*-0x907+0x5*0x59f+-0x1312===z[b5(0x10d)]&&-0x1ba2+0x25b8+-0x50b*0x2===W&&(console['log'](a0L[b5(0x1ab)][b5(0x31e)]('\x20\x20'+a0ai(b5(0x256)))),console[b5(0x1ca)]());const X=J[b5(0x343)]-J['used'];if(console[b5(0x1ca)](a0L[b5(0x226)](b5(0x336))),L){const a6=F&&b5(0x1eb)!==F[b5(0x10e)][b5(0x90)]&&z[b5(0x10d)]>=0x169+-0x26e+0x12c&&z[b5(0x10d)]<=0x1b8+-0xe8+-0xa8,a7=F&&b5(0x1eb)!==F[b5(0x10e)][b5(0x90)]&&z['number']>=0x558+-0x1*-0x2651+-0x2b8a*0x1&&z[b5(0x10d)]<=0xe69+0x182*-0x6+-0x537;b5(0x17b)===z[b5(0x318)]?console[b5(0x1ca)](a0L[b5(0x31e)][b5(0x348)](b5(0x180))+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20enter\x20VLA\x20attack\x20mode\x20for\x20this\x20question\x20(recommended)')):a7?console[b5(0x1ca)](a0L[b5(0x31e)]['green'](b5(0x2c8))+a0L[b5(0x226)]('\x20\x20\x20\x20\x20\x20\x20\x20enter\x20AI4CTF\x20chat\x20for\x20this\x20question\x20(recommended)')):a6&&console[b5(0x1ca)](a0L[b5(0x31e)][b5(0x298)](b5(0x2b2))+a0L[b5(0x226)](b5(0x1fd))),console[b5(0x1ca)](a0L[b5(0x1ab)](b5(0x1aa))+a0L['gray'](b5(0x6d))),console[b5(0x1ca)](a0L[b5(0x1ab)](b5(0x2a2))+a0L[b5(0x226)](b5(0x163)));}else{const a8=J[b5(0x343)]>=-0x1*-0xd93+0xd*-0x2f6+-0x179*-0x11,a9=X>-0x25d8+0x1098+0x1540?a0L['gray'](a0ai(b5(0x2a6))+'\x20')+a0L['yellow']('('+X+'/'+J[b5(0x343)]+')'):a8?a0L['gray'](a0ai(b5(0x333))+'\x20('+J[b5(0x265)]+'/'+J[b5(0x343)]+')'):a0L[b5(0x226)](''+a0ai(b5(0x138)));console['log'](a0L['yellow'](b5(0x2f9))+a0L[b5(0x226)](b5(0x20c)+a0ai(b5(0x148)))),console[b5(0x1ca)](a0L['yellow'](b5(0x2de))+b5(0x8f)+a9);}console['log'](a0L[b5(0x1ab)]('\x20\x20\x20\x20next')+a0L[b5(0x226)](b5(0x2f2))+a0L[b5(0x1ab)]('prev')+a0L[b5(0x226)](b5(0x31c)+a0ai(b5(0x145)))),console[b5(0x1ca)](a0L[b5(0x1ab)](b5(0x1a8)+G)+a0L[b5(0x226)]('\x20\x20\x20'+a0ai('htpJump'))),console[b5(0x1ca)](a0L[b5(0x1ab)](b5(0x2a0))+a0L['gray'](b5(0x8f)+a0ai('htpMark'))),console[b5(0x1ca)](a0L[b5(0x1ab)]('\x20\x20\x20\x20exam\x20review')+a0L[b5(0x226)](b5(0x185)+a0ai(b5(0x2ff)))),console[b5(0x1ca)](a0L['bold']['yellow'](b5(0x29d))+a0L[b5(0x226)](b5(0x185)+a0ai(b5(0xbd)))),console['log'](a0L[b5(0x1ab)](b5(0x1e7))+a0L[b5(0x226)](b5(0x8f)+a0ai(b5(0x2b9)))),console[b5(0x1ca)](a0L[b5(0x1ab)](b5(0x1d6))+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(b5(0x2f1)))),console['log'](a0L[b5(0x226)]('\x20\x20─────────────────────────────────────────'));}export function registerExamCommand(z){const bb=a0B,B=z[bb(0x160)](bb(0x2e1))[bb(0x1c3)](bb(0xa4));B[bb(0x160)](bb(0x99))[bb(0x1c3)](bb(0x35a))[bb(0xb8)](()=>{const bc=bb;a0a8(bc(0x18c)),console[bc(0x1ca)](),a0ae(bc(0x86)),console[bc(0x1ca)]();const F=[['AU',bc(0x212)],['BD',bc(0x112)],['BI','Burundi'],['BR',bc(0x144)],['CN','China'],['DE',bc(0x186)],['EG',bc(0xda)],['FR',bc(0x1a3)],['GH',bc(0x1f1)],['ID',bc(0x2d0)],['IN','India'],['JP',bc(0x27f)],['KR',bc(0x142)],['LA',bc(0x1fa)],['LK','Sri\x20Lanka'],['MM','Myanmar'],['MO',bc(0xf0)],['MY',bc(0x362)],['NZ','New\x20Zealand'],['PE',bc(0xb4)],['PH',bc(0xde)],['RU',bc(0x1e5)],['SA','Saudi\x20Arabia'],['SG',bc(0x347)],['TH',bc(0x6e)],['TR',bc(0x2ab)],['UK',bc(0x11c)],['US',bc(0xe5)],['UZ',bc(0xe0)],['VN',bc(0x92)],['ZA',bc(0x200)]];for(let G=0x1*-0x1397+-0xa9d+0x2*0xf1a;G<F[bc(0x1b6)];G+=-0x100*0x3+0x1*0x872+0x6b*-0xd){const H=F['slice'](G,G+(-0x4*-0x421+-0x697+0x3*-0x34e))[bc(0x1fc)](([J,K])=>'\x20\x20'+a0L[bc(0x348)](J)+'\x20\x20'+a0L['gray'](K[bc(0x29e)](0x223f*-0x1+-0x235*-0x1+0x201a)))['join']('');console[bc(0x1ca)](H);}console[bc(0x1ca)](),console['log'](a0L[bc(0x226)](bc(0x2b0))),console['log'](a0L['gray'](bc(0xaa))),console[bc(0x1ca)](),console[bc(0x1ca)](a0L[bc(0x12b)]('\x20\x20Check\x20exams\x20for\x20your\x20country:')),console['log'](a0L[bc(0x348)](bc(0x35e))+a0L['gray']('\x20\x20\x20\x20\x20exam\x20list\x20PE')+a0L[bc(0x226)](bc(0x174))),console[bc(0x1ca)]();}),B[bb(0x160)](bb(0x334))[bb(0x1c3)](bb(0x21b))['action'](async F=>{const bd=bb;a0a8(bd(0x2cb)+(F||''));const G=M();if(!G)return;const H=a0ag(bd(0x2b8));H[bd(0x66)]();try{let J=await G['getExams']();if(H[bd(0x26e)](),F){const Q=F[bd(0x33c)]();J=J[bd(0x1b0)](V=>V['country'][bd(0x33c)]()===Q||bd(0x331)===V['country']);}if(!J||-0x1af7+0x6eb+0x1*0x140c===J['length']){console[bd(0x1ca)](),a0ac(F?bd(0x19c)+F[bd(0x33c)]()+bd(0x2e3):bd(0x305)),console[bd(0x1ca)](),console[bd(0x1ca)](a0L[bd(0x12b)](bd(0x91))),console[bd(0x1ca)](a0L[bd(0x226)](bd(0x330))),console[bd(0x1ca)](),console['log'](a0L[bd(0x226)](bd(0x183))+a0L[bd(0x31e)][bd(0x348)](bd(0x15c))),console['log']();const V={};V['PE']='es',V['CN']='zh',V['JP']='ja',V['KR']='ko',V['BR']='pt',V['SA']='ar',V['FR']='fr',V['DE']='de',V['IN']='hi',V['ID']='id',V['TH']='th',V['VN']='vi',V['TR']='tr',V['RU']='ru',V['UA']='uk',V['HT']='ht',V['KE']='sw',V['TZ']='sw';const W=V,X=(F||'')['toUpperCase']();return void(W[X]&&(console[bd(0x1ca)](a0L[bd(0x226)](bd(0x22f)+W[X])),console[bd(0x1ca)]()));}const K=J['map'](Y=>{const be=bd,Z=be(0x25b)===Y[be(0x33e)]?a0L[be(0x2b1)]:'in_progress'===Y[be(0x33e)]?a0L[be(0x1ab)]:a0L[be(0x12b)];return[a0L['white'](Y['id']),Y[be(0x2a3)],a0L[be(0x348)](Y[be(0x12e)]),String(Y[be(0x22e)]),Y[be(0x292)]+be(0x285),Z(Y['status'])];}),L=[...new Set(J[bd(0x1fc)](Y=>Y['country']))];a0ae(F?bd(0xb7)+F[bd(0x33c)]():bd(0x21f)+L[bd(0x1b6)]+'\x20regions)'),a0ad(['ID',bd(0x302),bd(0x165),'Questions','Duration','Status'],K),console[bd(0x1ca)](),console[bd(0x1ca)](a0L[bd(0x226)](bd(0xe3))),L[bd(0x1b6)]>0x3f5*-0x3+0x1c75+-0x1095&&console[bd(0x1ca)](a0L[bd(0x226)](bd(0xd8)));}catch(Y){H[bd(0x207)](bd(0x1fe)),a0aa(Y[bd(0x32f)]);}}),B[bb(0x160)](bb(0x312))[bb(0x1c3)](bb(0xd1))[bb(0xb8)](async F=>{const bf=bb;a0a8(bf(0x30e)+F);const G=a0Y();if(G)return a0ab('Exam\x20\x22'+G[bf(0x10e)][bf(0x301)]+'\x22\x20is\x20already\x20in\x20progress.'),void a0ac(bf(0x197));const H=M();if(!H)return;const J=await a0Q({'message':a0L['white'](bf(0x28c)),'default':!(0x151+0x3c1*0x1+-0x512),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L[bf(0x2b1)](K)}}});if(J){console[bf(0x1ca)]();try{N(0x93c*-0x1+-0x3*-0x52a+-0x642,bf(0x27c));const {session:K,questions:L}=await H[bf(0x130)](F);N(-0xe27*-0x1+-0x45*-0x77+-0xd*0x38c,bf(0x118)),await q(0xcee+0x18c6+-0x22c*0x11),N(0xd06+0x1*-0x12cb+-0x601*-0x1,bf(0x25f)),await q(-0x4*-0x248+0x19f6+-0x224e),N(-0x23e6+0x1f26+0x2*0x28d,'Starting\x20timer...'),await q(0x1acd+-0x1dc2+0x38b*0x1),a0Z({'session':K,'questions':L,'answers':{}}),N(-0x439+-0x1*-0xf92+-0xaf5,'Ready!'),console[bf(0x1ca)](),console[bf(0x1ca)](),a0ae(K[bf(0x301)]),a0af(bf(0x1f5),String(K[bf(0x22e)])),a0af(bf(0x216),K['durationMinutes']+bf(0x35d)),a0af(bf(0x165),K[bf(0x12e)]),O(),L['length']>-0x1b42+-0xbfe+-0x9d0*-0x4&&U(L[-0x498+-0x32f*-0x7+-0x11b1]);}catch(Q){console[bf(0x1ca)](),a0aa(Q['message']);}}}),B['command'](bb(0x315))[bb(0x1c3)](bb(0xf2))[bb(0xb8)](async F=>{const bg=bb;a0a8(bg(0x149)+(F||'all'));const {refetchQuestionDataIfStale:G}=await import(bg(0x151));await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,0x35*0x9d+-0x1a57*0x1+-0x620),K=H['questions'][bg(0x1ff)](L=>L['number']===J);if(!K)return void a0aa('Question\x20'+F+bg(0x349)+H['questions'][bg(0x1b6)]+').');H[bg(0x310)]=J,a0Z(H),U(K,H[bg(0x108)][J]);}else{a0ae(''+H['session'][bg(0x301)]);const L=Object['keys'](H[bg(0x108)])['length'];a0af(bg(0x100),L+'/'+H[bg(0x10e)][bg(0x22e)]+bg(0x103)),console[bg(0x1ca)]();for(const Q of H[bg(0x258)]){const V=H['answers'][Q[bg(0x10d)]],W=V?a0L[bg(0x2b1)]('['+V+']'):a0L[bg(0x226)]('[\x20]'),X=Q['category']?a0L[bg(0x226)]('\x20['+Q[bg(0x154)]+']'):'';console[bg(0x1ca)]('\x20\x20'+W+'\x20'+a0L[bg(0x12b)]('Q'+Q[bg(0x10d)])+X+'\x20'+a0L['gray'](Q[bg(0x2f4)][bg(0x346)](-0x2462+0x73e+0x749*0x4,0x1787+0xa43*-0x3+0x3bf*0x2))+(Q[bg(0x2f4)][bg(0x1b6)]>-0x2437+-0x238*-0x2+0x2003?bg(0x129):''));}console['log']();}}else a0aa(bg(0x1f7));}),B[bb(0x160)](bb(0x332))[bb(0x1c3)]('Flag\x20a\x20question\x20to\x20review\x20later\x20(toggles)')['action'](F=>{const bh=bb;a0a8(bh(0x155)+(F||''));const G=a0Y();if(!G)return void a0aa(bh(0x10a));const H=G[bh(0x258)]['length'],J=F?parseInt(F,-0x1242+0x1c9*0xb+-0x157):G[bh(0x310)]||-0x200a*0x1+0x1*0x210b+-0x100;if(Number[bh(0x6a)](J)||J<0xa34+-0x2437+0x1a04||J>H)return void a0aa('Invalid\x20question\x20number.\x20Use\x201..'+H+'.');const K=j(G,J);console[bh(0x1ca)](),K?console['log'](a0L['yellow'](bh(0x195)+J+bh(0xd7))):console['log'](a0L[bh(0x226)](bh(0x122)+J+bh(0x290)));const L=Array[bh(0x67)](G[bh(0x17d)])?G[bh(0x17d)]:[];L[bh(0x1b6)]>-0x1f*-0xd+0x20c6*-0x1+0x1f33&&console[bh(0x1ca)](a0L[bh(0x226)](bh(0x22a)+L[bh(0x1fc)](Q=>'Q'+Q)[bh(0xdf)](',\x20'))),console[bh(0x1ca)](a0L['gray'](bh(0xc7))+a0L['white'](bh(0x214))),console[bh(0x1ca)]();}),B[bb(0x160)](bb(0x1a6))[bb(0x1c3)](bb(0x1d9))[bb(0xb8)](F=>{const bi=bb;a0a8('exam\x20unmark\x20'+(F||''));const G=a0Y();if(!G)return void a0aa('No\x20exam\x20in\x20progress.');const H=G[bi(0x258)][bi(0x1b6)],J=F?parseInt(F,0x32*0x44+-0x421*-0x7+-0x2a25):G[bi(0x310)]||0xd4b+0x610*-0x1+-0x73a;Number[bi(0x6a)](J)||J<-0xb7b+-0x6*-0xed+0x6*0xfd||J>H?a0aa(bi(0xdd)+H+'.'):D(G,J)?(j(G,J),console[bi(0x1ca)](),console[bi(0x1ca)](a0L['gray'](bi(0x122)+J+bi(0x290))),console[bi(0x1ca)]()):console[bi(0x1ca)](a0L[bi(0x226)](bi(0x8e)+J+bi(0x2f5)));}),B[bb(0x160)]('next')['description'](bb(0x225))[bb(0xb8)](()=>{const bj=bb;a0a8('exam\x20next');const F=a0Y();if(!F)return void a0aa(bj(0x10a));F[bj(0x258)][bj(0x1cf)](K=>!F[bj(0x108)][K[bj(0x10d)]]);const G=F[bj(0x310)]||-0x867+0x1589+-0xd21,H=Math[bj(0x2f7)](G+(0x1f7f+0x39*0x1c+-0x1b7*0x16),F[bj(0x258)]['length']);F['_lastQ']=H,a0Z(F);const J=F[bj(0x258)][H-(-0x25a0+0x1f5c+-0x645*-0x1)];U(J,F[bj(0x108)][J[bj(0x10d)]]);}),B[bb(0x160)](bb(0x10b))[bb(0x1c3)](bb(0x19d))[bb(0xb8)](()=>{const bk=bb;a0a8('exam\x20prev');const F=a0Y();if(!F)return void a0aa(bk(0x10a));const G=F[bk(0x310)]||0x1*0x1acf+0x5b*0x2f+-0x2b83,H=Math[bk(0x343)](G-(-0x35f*-0x3+0x15ef+-0xd*0x277),0xf*0x1eb+0x119*-0x16+0xc5*-0x6);F['_lastQ']=H,a0Z(F);const J=F[bk(0x258)][H-(-0x3de*-0x6+-0x7*0x13+-0xb57*0x2)];U(J,F['answers'][J['number']]);}),B['command'](bb(0x159))['description'](bb(0x21d))[bb(0xb8)](async()=>{const bl=bb;a0a8(bl(0x358));const F=a0Y();if(!F)return void a0aa(bl(0x10a));const G=R(F),H=F[bl(0x310)]||-0x9e3*-0x3+0x5fa*0x5+0x3b8a*-0x1,J=G[bl(0x143)][H]||0x1f7a+0x17d4+0x1ba7*-0x2,K=G[bl(0x30c)][H]||[],L=F['questions'][bl(0x1ff)](W=>W[bl(0x10d)]===H);if(!L)return;if(J>=0x21b*-0xc+-0x2*-0xb92+0xd*0x2a)return console[bl(0x1ca)](),console[bl(0x1ca)](a0L[bl(0x1ab)]('\x20\x20🙈\x20Max\x202\x20helps\x20per\x20question\x20—\x20you\x20already\x20have\x20a\x2050/50!')),console[bl(0x1ca)](a0L[bl(0x226)](bl(0xdb))),console[bl(0x1ca)](),void U(L,F['answers'][L[bl(0x10d)]]);const Q=['A','B','C','D']['filter'](W=>!K[bl(0x80)](W));if(Q[bl(0x1b6)]<=-0xde*-0x6+0x628+-0xb5a)return console['log'](),console[bl(0x1ca)](a0L[bl(0x1ab)]('\x20\x20😄\x20Only\x202\x20options\x20left\x20—\x20you\x20got\x20this!')),console[bl(0x1ca)](),void U(L,F[bl(0x108)][L[bl(0x10d)]]);if(G['used']>=G[bl(0x343)]){const W=G[bl(0x343)]>=0x136+-0x1707*0x1+-0x15ef*-0x1,X=0xc75+-0x192e+0xcd7-G[bl(0x343)];return void(W?(console[bl(0x1ca)](),console['log'](a0L[bl(0x226)]('\x20\x20All\x20help\x20used\x20('+G['used']+'/'+G[bl(0x343)]+bl(0x24d))),console[bl(0x1ca)]()):(console['log'](),console[bl(0x1ca)](a0L[bl(0x1ab)](bl(0x172)+G[bl(0x265)]+'/'+G[bl(0x343)])),console['log'](a0L[bl(0x12b)](bl(0xd0))+a0L[bl(0x31e)][bl(0x1ab)]('more\x20help')+a0L[bl(0x226)](bl(0x2e0)+X+'\x20bonus\x20uses)')),console[bl(0x1ca)]()));}const V=Y=>{const bm=bl;K[bm(0x10f)](Y),G[bm(0x30c)][H]||(G[bm(0x30c)][H]=[]),G[bm(0x30c)][H]=K,G[bm(0x143)][H]=J+(0x1284+0x77*-0x29+-0x7*-0x14),G[bm(0x265)]++,F[bm(0x260)]=G[bm(0x265)],F[bm(0x24e)]=G[bm(0x343)],F[bm(0x31f)]=G[bm(0x143)],F['_eliminated']=G[bm(0x30c)],F[bm(0x13a)]||(F[bm(0x13a)]=[]),F[bm(0x13a)][bm(0x10f)]({'ts':new Date()[bm(0x246)](),'q':H,'type':'help_used','result':'eliminated\x20'+Y}),a0Z(F),console[bm(0x1ca)](),console['log'](a0L[bm(0x1ab)](bm(0x131)+Y+bm(0x136))+a0L[bm(0x226)]('\x20\x20(help\x20'+G[bm(0x265)]+'/'+G[bm(0x343)]+')')),U(L,F['answers'][L[bm(0x10d)]]);};if(bl(0x1eb)===F[bl(0x10e)][bl(0x90)]&&L[bl(0x96)])(Y=>{const bn=bl,Z=Q['filter'](a0=>a0!==Y&&!K[bn(0x80)](a0));-0x265a+-0x679*0x2+0x19a6*0x2!==Z[bn(0x1b6)]&&V(Z[Math[bn(0x15e)](Math[bn(0x7c)]()*Z[bn(0x1b6)])]);})(L[bl(0x96)]);else{const Y=a0W()['ctfdUrl']||'https://practice.icoa2026.au',Z=F[bl(0x10e)]?.[bl(0xcb)]||'';try{const a0={};a0[bl(0x184)]='application/json',a0[bl(0x64)]=bl(0x25e);const a1={};a1['token']=Z,a1[bl(0x1b7)]=H,a1[bl(0x30c)]=K;const a2=await fetch(Y+bl(0x158)+F['session'][bl(0x90)]+'/help',{'method':bl(0x1b3),'headers':a0,'body':JSON[bl(0x18a)](a1),'signal':AbortSignal[bl(0x21e)](-0x1*0x71b+-0x138+0x1bdb)}),a3=await a2['json'](),a4=a3?.[bl(0x220)]?.[bl(0x222)];a4&&['A','B','C','D'][bl(0x80)](a4)?V(a4):(console[bl(0x1ca)](),console[bl(0x1ca)](a0L['gray']('\x20\x20Server\x20did\x20not\x20return\x20a\x20valid\x20option.\x20Try\x20again.')));}catch{console[bl(0x1ca)](),console[bl(0x1ca)](a0L[bl(0x226)](bl(0x308)));}}}),B[bb(0x160)]('more-help')[bb(0x1c3)](bb(0xbc))[bb(0xb8)](()=>{const bo=bb;a0a8(bo(0x111));const F=a0Y();if(!F)return void a0aa(bo(0x10a));const G=R(F),H=bo(0x1eb)===F[bo(0x10e)][bo(0x90)]?-0x1*-0x141d+-0x11*-0xbf+-0x1062*0x2:-0x7*0xb5+0x1*0xc49+0x16*-0x54;if(G[bo(0x343)]>=H)return void console['log'](a0L[bo(0x226)]('\x20\x20Bonus\x20help\x20already\x20unlocked.'));if(G[bo(0x265)]<G[bo(0x343)])return void console['log'](a0L[bo(0x226)](bo(0x105)+(G[bo(0x343)]-G[bo(0x265)])+'\x20helps\x20remaining.\x20Use\x20them\x20first!'));const J=H-G[bo(0x343)];F[bo(0x24e)]=H,a0Z(F),console[bo(0x1ca)](),console[bo(0x1ca)](a0L['green'](bo(0xfa)+J+bo(0x311)+J+'/'+H+bo(0xc0))),console[bo(0x1ca)](a0L[bo(0x226)]('\x20\x20Type\x20\x22help\x22\x20on\x20any\x20question\x20to\x20use.')),console[bo(0x1ca)]();}),B[bb(0x160)](bb(0x340))[bb(0x1c3)](bb(0x345))[bb(0xb8)](async(F,G)=>{const bp=bb,H=G[bp(0xdf)]('\x20');a0a8(bp(0xb0)+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bp(0x1f7));if(!(function(){const bq=bp,Z=a0a1();if(!Z)return!(0x14*0x8e+-0x10d1+0x5b9);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object[bq(0x12a)](a0[bq(0x108)])[bq(0x1b6)];bq(0x1eb)===a0['session'][bq(0x90)]||0x1533+0xc9d*0x1+0x874*-0x4===a1?(a0a0(),a0ab(bq(0xce)),a0ac(bq(0x2f6))):(a0aa(bq(0xe4)),a0ac('Type\x20\x22exam\x20submit\x22\x20to\x20finalise\x20now,\x20or\x20the\x20server\x20will\x20auto-finalise\x20within\x2030\x20minutes.'));}return!(-0x529*-0x1+0x12df*-0x1+-0x1*-0xdb7);}return!(0xdf*-0x5+0x1*0xd8d+-0x932);}()))return;const K=parseInt(F,0x56*0x23+-0x5*-0x4eb+0xb*-0x34d),L=J['questions']['find'](Z=>Z[bp(0x10d)]===K);if(!L)return void a0aa('Question\x20'+F+bp(0x349)+J[bp(0x258)][bp(0x1b6)]+').');let Q;if(bp(0x2a7)===L[bp(0x318)]||'ctf4ai'===L[bp(0x318)]||'vla'===L['type']||L[bp(0x7b)]&&!L['options']['A']&&!L[bp(0x7b)]['B']){if(Q=H[bp(0x217)](),/^submit\s+/i[bp(0xf5)](Q)&&(Q=Q[bp(0x2a4)](/^submit\s+/i,'')[bp(0x217)]()),Q=Q['replace'](/^["'`]+|["'`]+$/g,'')['trim'](),!Q)return void a0aa(bp(0x115));if(/^[A-Da-d]$/[bp(0xf5)](Q))return a0aa('Q'+K+bp(0x2ee)),void console[bp(0x1ca)](a0L[bp(0x226)](bp(0x32e))+a0L[bp(0x2b1)]('exam\x20answer\x20'+K+bp(0x20f)));}else{if(Q=H[bp(0x33c)](),!['A','B','C','D'][bp(0x80)](Q))return void a0aa(bp(0x135));}if(bp(0x1eb)===J[bp(0x10e)][bp(0x90)]&&-0x19ad+0x14d6+0x4d9===K&&-0x1bd*0xf+-0x1244*0x2+-0x1f*-0x205===(R(J)[bp(0x143)][0x535*0x5+-0xd6+-0x1*0x1931]||0x63c+-0x2*-0x312+-0x10*0xc6))return console[bp(0x1ca)](),console[bp(0x1ca)](a0L[bp(0x1ab)]('\x20\x20💡\x20Try\x20typing\x20')+a0L['bold'][bp(0x1ab)](bp(0x159))+a0L['yellow']('\x20first\x20to\x20see\x20what\x20it\x20does!')),console['log'](a0L[bp(0x226)](bp(0x167))),void console[bp(0x1ca)]();const V=J['answers'][K];J[bp(0x13a)]||(J['interactions']=[]),J[bp(0x13a)][bp(0x10f)]({'ts':new Date()['toISOString'](),'q':K,'type':V?bp(0x2d2):bp(0x1ae),'input':Q,'result':V?'changed\x20from\x20'+V:bp(0xf3)}),J[bp(0x108)][K]=Q,J[bp(0x310)]=K,a0Z(J),console[bp(0x1ca)](a0L[bp(0x226)](bp(0xd9)));const W=J['session']['token'];if(W&&'demo-free'!==J['session'][bp(0x90)]){const Z=(a0W()[bp(0x93)]||bp(0x355))+'/api/icoa/exams/'+J['session'][bp(0x90)]+bp(0x2bd),a0={};a0[bp(0x184)]=bp(0x23c);const a1={};a1['token']=W,a1[bp(0x1b7)]=K,a1[bp(0x96)]=Q,fetch(Z,{'method':bp(0x1b3),'headers':a0,'body':JSON[bp(0x18a)](a1),'signal':AbortSignal[bp(0x21e)](0x1c8d+0x1*0x670+-0xf75)})[bp(0xb9)](()=>{});}const X=Object[bp(0x12a)](J[bp(0x108)])['length'],Y=J[bp(0x10e)]['questionCount'];if(a0a9('Q'+K+':\x20'+Q+bp(0x16b)+X+'/'+Y+'\x20answered)'),bp(0x1eb)===J['session'][bp(0x90)]&&L['answer']){const a2=[bp(0x30d),bp(0x2a1),bp(0x14f),bp(0x270),'Spot\x20on.'],a3=['Close\x20—\x20we\x27ll\x20revisit\x20this\x20one.',bp(0x2c3),bp(0x247)],a4=Q===L[bp(0x96)]?a2:a3,a5=a4[Math['floor'](Math[bp(0x7c)]()*a4['length'])];console[bp(0x1ca)](a0L[bp(0x226)](bp(0x1b8)+a5));}if(K<J[bp(0x258)][bp(0x1b6)]){const a6=J[bp(0x258)][K];J[bp(0x310)]=a6['number'],a0Z(J),U(a6,J[bp(0x108)][a6['number']]);}else X>=J[bp(0x258)]['length']&&(console[bp(0x1ca)](),console[bp(0x1ca)](a0L[bp(0x2b1)][bp(0x31e)](bp(0xfb))),console[bp(0x1ca)](),bp(0x1eb)===J[bp(0x10e)]['examId']?(console['log'](a0L['white'](bp(0x341))+a0L['bold'][bp(0x348)](bp(0x31a))+a0L[bp(0x12b)]('\x20to\x20see\x20your\x20results!')),console[bp(0x1ca)]()):console[bp(0x1ca)](a0L[bp(0x12b)](bp(0x29c))));}),B[bb(0x160)](bb(0x33f))[bb(0x1c3)](bb(0x1bf))[bb(0xb8)](()=>{const br=bb;a0a8(br(0x214));const F=a0Y();if(!F)return void a0aa(br(0x10a));a0ae('Review:\x20'+F[br(0x10e)][br(0x301)]),O(),console[br(0x1ca)]();let G='\x20\x20';const H=Array[br(0x67)](F[br(0x17d)])?F['bookmarks']:[];for(const Q of F['questions']){const V=F[br(0x108)][Q['number']],W=H[br(0x80)](Q[br(0x10d)]),X=W?'★':'\x20';G+=V?W?a0L[br(0x31e)][br(0x1ab)]('Q'+String(Q[br(0x10d)])[br(0x1e1)](-0x10d0+-0x1870+0x2942*0x1)+X+'['+V+']\x20'):a0L[br(0x2b1)]('Q'+String(Q[br(0x10d)])[br(0x1e1)](0x209*-0x1+-0xe0a+0x17*0xb3)+'\x20['+V+br(0x319)):W?a0L['bold'][br(0x1ab)]('Q'+String(Q[br(0x10d)])['padStart'](-0x4f4*0x2+-0xc62+0x164c)+X+'[\x20]\x20\x20'):a0L[br(0x1ab)]('Q'+String(Q[br(0x10d)])[br(0x1e1)](-0x14fa+-0x181f*-0x1+0x49*-0xb)+br(0x300)),Q['number']%(0x24c2+0x5be+-0x2a7a)==0x2d*-0x9e+0x80a+0x13bc&&(console[br(0x1ca)](G),G='\x20\x20');}G['trim']()&&console['log'](G);const J=Object['keys'](F[br(0x108)])['length'],K=F[br(0x10e)][br(0x22e)],L=K-J;if(console[br(0x1ca)](),a0af(br(0x125),a0L[br(0x2b1)][br(0x31e)](J+'/'+K)),L>0x16d7*0x1+-0x435*0x2+-0xe6d){const Y=F[br(0x258)][br(0x1b0)](Z=>!F[br(0x108)][Z[br(0x10d)]])['map'](Z=>Z['number'])['join'](',\x20');a0af(br(0x1a4),a0L[br(0x1ab)](L+br(0x70)+Y+')'));}H[br(0x1b6)]>0xe1c+0x1d5b+-0x2b77&&a0af('Flagged\x20for\x20review',a0L[br(0x31e)][br(0x1ab)]('★\x20'+H['length'])+a0L['gray']('\x20('+H[br(0x1fc)](Z=>'Q'+Z)[br(0xdf)](',\x20')+')')),console[br(0x1ca)](),H['length']>-0x2*-0x48c+0x42*0x67+-0x23a6&&console[br(0x1ca)](a0L[br(0x226)](br(0x1c6))+a0L[br(0x12b)](br(0x149)+H[0x13d9+-0xc06+0x7d3*-0x1])),console[br(0x1ca)](a0L[br(0x226)](br(0x126))+a0L[br(0x31e)][br(0x348)](br(0x31a))+a0L[br(0x226)](br(0x104)));}),B[bb(0x160)](bb(0x87))[bb(0x1c3)](bb(0x223))[bb(0xb8)](async J=>{const bs=bb;a0a8(bs(0x2dd)+(J||''));const K=a0Y();if(K&&'confirm'===J&&(K['_submitConfirmed']=!(-0x841+0xbe0+-0x67*0x9),a0Z(K)),!K)return void a0aa(bs(0x10a));const L=Object[bs(0x12a)](K[bs(0x108)])[bs(0x1b6)],Q=K['session'][bs(0x22e)],V=Q-L;if(-0x1*0x61a+-0x1*-0x1a07+-0x13ed===L){const X=a0a1(),Y=X&&new Date()>=X;return void(bs(0x1eb)===K[bs(0x10e)][bs(0x90)]||Y?(a0a0(),a0ab(bs(0x2be)),a0ac(bs(0x2f6))):(a0ab(bs(0x1e8)),a0ac('Answer\x20some\x20questions\x20first:\x20exam\x20q\x201')));}if('demo-free'!==K[bs(0x10e)][bs(0x90)]){const Z=!(0x50e+-0x1*0x7bb+0x2ad)===K[bs(0x221)],a0=a0a1(),a1=!!(a0&&new Date()>=a0);if(!Z&&!a1){if(console[bs(0x1ca)](),console['log'](a0L[bs(0x298)](bs(0x6b))),console['log'](a0L[bs(0x31e)][bs(0x298)](bs(0x1ce))),console[bs(0x1ca)](a0L[bs(0x298)](bs(0x6b))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x12b)]('\x20\x20You\x20will\x20submit\x20'+a0L[bs(0x31e)][bs(0x2b1)](L+'/'+Q)+'\x20answers.')),V>-0x1*-0x979+-0x5*0x3d7+0x9ba){const a3=K[bs(0x258)]['filter'](a4=>!K['answers'][a4[bs(0x10d)]])['map'](a4=>'Q'+a4['number'])['join'](',\x20');console['log'](a0L[bs(0x1ab)]('\x20\x20'+V+'\x20unanswered:\x20'+a3));}const a2=Array[bs(0x67)](K[bs(0x17d)])?K[bs(0x17d)]:[];return a2['length']>0x796*0x4+-0x2*0x1152+0x44c&&console[bs(0x1ca)](a0L[bs(0x1ab)]('\x20\x20★\x20'+a2[bs(0x1b6)]+bs(0x1ba)+a2[bs(0x1fc)](a4=>'Q'+a4)[bs(0xdf)](',\x20'))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L['white'](bs(0xa5))+a0L[bs(0x31e)]['red']('final')+a0L[bs(0x12b)]('\x20—\x20you\x20cannot\x20change\x20them\x20after\x20submit.')),console['log'](),console[bs(0x1ca)](a0L['bold'][bs(0x12b)](bs(0x35c))+a0L[bs(0x31e)][bs(0x348)](bs(0x1b9))),console['log'](a0L[bs(0x12b)]('\x20\x20To\x20go\x20back:\x20\x20')+a0L['cyan']('exam\x20review')+a0L[bs(0x226)](bs(0x324))+a0L['cyan']('back')),void console[bs(0x1ca)]();}Z&&(delete K[bs(0x221)],a0Z(K));}if(console[bs(0x1ca)](),bs(0x1eb)===K['session'][bs(0x90)]){try{N(-0x26cd+0x1b4d+0xb80,a0ai(bs(0xd3))),await q(0x1*0xa5f+0x16a5+0x1fd8*-0x1);let a4=0x1d75+0x1*0x21ce+-0x4f*0xcd;const a5=[],a6={};for(const ai of K[bs(0x258)]){const aj=ai[bs(0x154)]||bs(0x275),ak={};ak[bs(0x141)]=0x0,ak[bs(0x162)]=0x0,(a6[aj]||(a6[aj]=ak),a6[aj][bs(0x162)]++);const al=K[bs(0x108)][ai[bs(0x10d)]];al&&ai[bs(0x96)]&&al===ai[bs(0x96)]?(a4++,a6[aj]['correct']++):a5[bs(0x10f)](ai[bs(0x10d)]);}a5[bs(0x295)]((am,an)=>am-an),N(-0x1475*-0x1+0x141+-0x1552,a0ai(bs(0x1da))),console[bs(0x1ca)]();const a7=new Date(K[bs(0x10e)][bs(0x1f2)])[bs(0x33b)](),a8=Math[bs(0x343)](0x4bd*0x3+-0x2*-0x126+-0x3*0x581,Math[bs(0xb6)]((Date['now']()-a7)/(0x2148+0x18d*0x13+-0x3ad7*0x1))),a9=Math[bs(0x15e)](a8/(0x2*-0x934+0x250*0x2+0xe04))+'m\x20'+a8%(0x7*0xfa+-0x2*0x1163+-0xe16*-0x2)+'s',aa=[...K[bs(0x258)]],ab={...K['answers']},ac=R(K);a0a0();const ad=Math['round'](a4/Q*(0x1*0x21f5+-0x22ff+0x16e)),ae=a0W(),af={};af[bs(0x184)]=bs(0x23c),(fetch(bs(0x2e2),{'method':bs(0x1b3),'headers':af,'body':JSON[bs(0x18a)]({'type':bs(0x1f4),'score':a4,'total':Q,'lang':ae[bs(0xdc)]||'en','help_used':ac[bs(0x265)],'help_max':ac[bs(0x343)],'tokens_used':0x0,'solved':ad>=-0x2664+0x433*-0x1+-0x1*-0x2ad3?-0x6*0x3ba+0xbb*0x22+-0x279:0x2140+0x998*-0x1+-0x17a8,'timestamp':new Date()[bs(0x246)](),'interactions':K['interactions']||[]}),'signal':AbortSignal[bs(0x21e)](0x14c4+-0x22d3+-0x2197*-0x1)})['catch'](()=>{}),console['log'](),console[bs(0x1ca)](a0L['cyan'](bs(0x13d))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L['bold'][bs(0x12b)](bs(0xe7))),console[bs(0x1ca)](a0L['bold']['white']('\x20\x20\x20██║██╔════╝██╔═══██╗██╔══██╗')),console[bs(0x1ca)](a0L[bs(0x31e)]['white']('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║███████║')),console[bs(0x1ca)](a0L['bold']['white'](bs(0x313))),console[bs(0x1ca)](a0L[bs(0x31e)]['white'](bs(0x83))),console[bs(0x1ca)](a0L[bs(0x31e)][bs(0x12b)](bs(0x124))),console['log'](),console[bs(0x1ca)](a0L[bs(0x31e)](bs(0x185)+a0ai(bs(0x267))+':\x20'+a4+'/'+Q+'\x20('+ad+'%)')),console['log'](a0L[bs(0x31e)]('\x20\x20\x20'+(ad>=-0x405+-0x1a21+0x1e62*0x1?a0L[bs(0x2b1)](a0ai(bs(0x239))):a0L[bs(0x298)](a0ai(bs(0x206)))))),console[bs(0x1ca)](a0L[bs(0x226)](bs(0x106)+a9)),console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x1ab)](bs(0x257))),console[bs(0x1ca)](a0L[bs(0x226)]('\x20\x20\x20Sydney,\x20Australia\x20·\x20Jun\x2027\x20-\x20Jul\x202,\x202026')),console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x348)](bs(0x13d))),await q(0x1c8d+0x25c5+-0x369a));const ag=Object[bs(0x252)](a6);if(ag[bs(0x1b6)]>0x23*0x115+0x11a1+-0x2*0x1bc0){console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x31e)][bs(0x12b)]('\x20\x20By\x20category'));const am=-0x115f+-0xe5*-0x18+-0x40f;for(const [an,ao]of ag){const ap=ao[bs(0x162)]>-0x1*0x17cd+-0x17*-0x199+-0x1*0xcf2?Math['round'](ao['correct']/ao[bs(0x162)]*(-0x1fd3+-0x331+0x2368)):0x1ca*0x4+-0x126*0x9+0x32e,aq=ao[bs(0x162)]>0x47*0x20+-0x16b6+-0x7*-0x1fa?Math['round'](ao[bs(0x141)]/ao[bs(0x162)]*am):-0x118e+-0x1*-0x7c9+0x9c5,ar=am-aq,as=ap>=-0x2*-0x1247+-0xfe2*0x2+-0x6*0xbf?a0L[bs(0x2b1)]:ap>=0x26bb+-0xca7*-0x1+-0x3330?a0L[bs(0x1ab)]:a0L[bs(0x298)],at=as('█'['repeat'](aq))+a0L[bs(0x226)]('░'[bs(0x192)](ar));console[bs(0x1ca)](bs(0x31c)+a0L[bs(0x12b)](an[bs(0x29e)](-0x2195+-0x10b8+-0x3261*-0x1))+'\x20'+at+'\x20\x20'+as(ao['correct']+'/'+ao[bs(0x162)])+a0L[bs(0x226)]('\x20('+ap+'%)'));}console[bs(0x1ca)](),console['log'](a0L[bs(0x348)](bs(0x219)));}const ah=a0a4(a4,Q);if(a4===ah[bs(0x1a1)]&&ah['attempts']>-0x76a*0x4+-0x1ff+0x1fa8&&a4>0x9*0x139+-0x3d*0x49+0x664&&(console['log'](),console['log'](a0L[bs(0x31e)][bs(0x2b1)](bs(0x1f6)))),a5['length']>-0x232a+0xcad+-0x1*-0x167d){const au=aa[bs(0x1b0)](av=>a5[bs(0x80)](av['number']))[bs(0x1fc)](av=>({...av}));a0a5(au);}else a0a7();if(await q(-0x11a+-0xa22+-0x1*-0x16f4),a5[bs(0x1b6)]>-0xd1a+-0x14c0+0x21da){console['log'](),console['log'](a0L[bs(0x1ab)]('\x20\x20'+a5[bs(0x1b6)]+'\x20'+a0ai(bs(0x1b4)))),console[bs(0x1ca)]();for(const av of a5){const aw=aa[bs(0x1ff)](az=>az[bs(0x10d)]===av);if(!aw)continue;const ax=ab[av],ay=aw[bs(0x96)];console[bs(0x1ca)](a0L[bs(0x12b)](bs(0x8e)+av+'.\x20'+aw[bs(0x2f4)])),ax?console[bs(0x1ca)](a0L[bs(0x298)](bs(0x31c)+a0ai(bs(0x1e9))+':\x20'+ax+'.\x20'+aw['options'][ax])):console['log'](a0L['yellow'](bs(0x31c)+a0ai(bs(0x1e9))+':\x20—')),ay&&console[bs(0x1ca)](a0L[bs(0x2b1)](bs(0x31c)+a0ai(bs(0x141))+':\x20'+ay+'.\x20'+aw[bs(0x7b)][ay])),aw['explanation']&&console[bs(0x1ca)](a0L[bs(0x226)](bs(0xee)+aw[bs(0x19f)])),console['log']();}}else console[bs(0x1ca)](),console[bs(0x1ca)](a0L['green']('\x20\x20'+a0ai('perfectScore')));await q(-0x7c0+0x13*0x1d+0xd69),console['log'](),console[bs(0x1ca)](a0L[bs(0x348)](bs(0x219))),console['log'](a0L[bs(0x12b)]('\x20\x20'+a0ai(bs(0x272))+'\x20')+a0L[bs(0x31e)][bs(0x2b1)](bs(0x2a7))+a0L[bs(0x226)](bs(0x1cb)+a0ai(bs(0x22d)))),console[bs(0x1ca)](a0L[bs(0x226)]('\x20\x20'+a0ai(bs(0xc5)))),console['log'](a0L[bs(0x348)](bs(0x219))),console[bs(0x1ca)]();}catch(az){console[bs(0x1ca)](),a0aa(az[bs(0x32f)]);}return;}const W=K['session'][bs(0xcb)];try{let aA;if(N(0x3d5+0x6*0x323+-0x16a7,bs(0xcd)),W){const aK={};aK[bs(0x184)]=bs(0x23c);const aL={};aL['ai4ctf']=0x0,aL[bs(0x321)]=0x0;const aM=a0W()[bs(0x93)]||bs(0x355),aN=await fetch(aM+bs(0x158)+K[bs(0x10e)]['examId']+bs(0x303),{'method':bs(0x1b3),'headers':aK,'body':JSON[bs(0x18a)]({'token':W,'answers':K[bs(0x108)],'interactions':K['interactions']||[],'aiUsage':K[bs(0x9f)]||aL,'bookmarks':K[bs(0x17d)]||[]}),'signal':AbortSignal['timeout'](0x1*0x5ea7+-0x10cc+-0x1343)});if(!aN['ok']){const aO=await aN['json']()['catch'](()=>({'message':bs(0x1ee)}));throw new Error(aO[bs(0x32f)]||bs(0x1ee));}aA=(await aN[bs(0x2ad)]())[bs(0x220)];}else{const aP=M();if(!aP)return;aA=await aP[bs(0x14c)](K[bs(0x10e)][bs(0x90)],K[bs(0x108)]);}N(-0x8a*0x1d+-0x2*-0x1a6+0xc88,bs(0x2e9)),await q(0x7d2+-0x1815+0x116f*0x1),N(0x421*0x1+0x6c6+-0xa83,bs(0x65)),console[bs(0x1ca)]();const aB={};aB[bs(0x2a7)]=0x0,aB[bs(0x321)]=0x0;const aC={'answered':Object[bs(0x12a)](K[bs(0x108)])['length'],'total':K[bs(0x10e)][bs(0x22e)],'bookmarks':Array[bs(0x67)](K[bs(0x17d)])?K[bs(0x17d)][bs(0x1b6)]:-0x815*0x1+0x1*0x11ff+-0x4f5*0x2,'help':R(K),'aiUsage':K[bs(0x9f)]||aB,'interactions':(K['interactions']||[])[bs(0x1b6)],'durationMin':K[bs(0x10e)][bs(0x292)]||0x1*-0x38b+-0x1bff*0x1+0x1f8a,'confirmedAt':K['session'][bs(0x2df)]||K['session'][bs(0x1f2)],'examId':K['session'][bs(0x90)]};a0a0();const aD=Math[bs(0x343)](-0x1*-0xb3d+0x4*-0x1a5+0x1*-0x4a9,Math[bs(0xb6)]((Date[bs(0x6c)]()-new Date(aC['confirmedAt'])[bs(0x33b)]())/(-0x48*0x84+-0xc28+-0x6a6*-0x8))),aE=Math['floor'](aD/(-0xe41+0x65*0x23+-0x1*-0xae)),aF=aD%(-0x2e*0x1c+0x22*-0x55+0x108e);console['log'](),console['log'](a0L[bs(0x348)](bs(0x23e))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x31e)][bs(0x12b)](bs(0xe7))),console[bs(0x1ca)](a0L['bold'][bs(0x12b)](bs(0x11e))),console[bs(0x1ca)](a0L[bs(0x31e)][bs(0x12b)](bs(0x211))),console['log'](a0L['bold'][bs(0x12b)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║██╔══██║')),console['log'](a0L[bs(0x31e)][bs(0x12b)](bs(0x83))),console['log'](a0L['bold']['white']('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console['log']();const aG=aA[bs(0x239)]?a0L[bs(0x2b1)]['bold']('\x20\x20\x20✓\x20\x20Submission\x20accepted\x20—\x20baseline\x20met'):a0L[bs(0x1ab)][bs(0x31e)](bs(0xb3));console[bs(0x1ca)](aG),console['log'](),console[bs(0x1ca)](a0L[bs(0x12b)]('\x20\x20\x20Your\x20answers\x20have\x20been\x20recorded\x20and\x20sent\x20to\x20your\x20national')),console[bs(0x1ca)](a0L[bs(0x12b)](bs(0x98))),console['log'](a0L[bs(0x12b)](bs(0x251))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L['cyan'](bs(0x219))),console[bs(0x1ca)](),console['log'](a0L[bs(0x31e)][bs(0x12b)](bs(0x2fe)));const aH=aC[bs(0x162)]-aC['answered'];console[bs(0x1ca)]('\x20\x20\x20\x20'+a0L[bs(0x226)](bs(0xea))+a0L[bs(0x12b)](aC['answered']+'/'+aC['total'])+(aH>-0x8*0x92+-0xf7*-0x13+-0x19*0x8d?a0L[bs(0x226)](bs(0x24a)+aH+bs(0x15b)):'')),console[bs(0x1ca)]('\x20\x20\x20\x20'+a0L[bs(0x226)](bs(0x2da))+a0L[bs(0x12b)](aE+'m\x20'+aF+'s')+a0L[bs(0x226)](bs(0x29b)+aC[bs(0x1ea)]+bs(0x153))),aC[bs(0x17d)]>-0x3*-0x273+-0xacc+0x1*0x373&&console['log']('\x20\x20\x20\x20'+a0L[bs(0x226)](bs(0xfe))+a0L[bs(0x1ab)]('★\x20'+aC[bs(0x17d)])),console['log']();const aI=aA[bs(0x2d7)];if(aI&&Object[bs(0x12a)](aI)['length']>=-0x65b*0x2+-0xc*0x251+-0x2884*-0x1){const aQ=Object[bs(0x252)](aI)[bs(0x1b0)](([,aV])=>aV[bs(0x162)]>0xe3*-0x23+0x2546+0x1*-0x63d)['map'](([aV,aW])=>({'cat':aV,'pct':aW[bs(0x141)]/aW[bs(0x162)]}))[bs(0x295)]((aV,aW)=>aW[bs(0x2fa)]-aV[bs(0x2fa)]),aR=Math[bs(0x2f7)](-0x2a9*0x6+-0x136a+0x2*0x11b1,Math[bs(0xa2)](aQ[bs(0x1b6)]/(-0x19*-0x2d+-0x1*-0x18fb+0x1*-0x1d5d))),aS=Math[bs(0x2f7)](-0x5*-0x3cb+-0x15*-0x199+-0x3482,Math[bs(0xa2)](aQ[bs(0x1b6)]/(-0x1*0x25+-0xd81+0xda9))),aT=aQ[bs(0x284)](-0x9d6+0x1f67+-0x1591,aR)['map'](aV=>aV[bs(0x1a2)]),aU=aQ[bs(0x284)](-aS)[bs(0x1fc)](aV=>aV[bs(0x1a2)]);aT[bs(0x18f)](aV=>aU['includes'](aV))||(console[bs(0x1ca)](a0L['bold'][bs(0x12b)](bs(0x314))),console['log'](bs(0x31c)+a0L['green'](bs(0x2bb))+a0L['white'](aT[bs(0xdf)](',\x20'))),console[bs(0x1ca)](bs(0x31c)+a0L[bs(0x1ab)](bs(0x2c0))+a0L[bs(0x12b)](aU[bs(0xdf)](',\x20'))),console[bs(0x1ca)](a0L[bs(0x226)](bs(0x288))),console[bs(0x1ca)]());}console[bs(0x1ca)](a0L[bs(0x31e)]['white'](bs(0x213))),console[bs(0x1ca)](bs(0x31c)+a0L[bs(0x226)](bs(0x29f))+a0L[bs(0x12b)](aC[bs(0x159)]['used']+'/'+aC['help'][bs(0x343)])),console[bs(0x1ca)](bs(0x31c)+a0L['gray'](bs(0x17f))+a0L[bs(0x12b)](aC[bs(0x9f)][bs(0x2a7)]+bs(0x33a))+a0L[bs(0x226)](bs(0x24a))+a0L[bs(0x12b)](aC[bs(0x9f)]['ctf4ai']+'\x20CTF4AI')),console[bs(0x1ca)](),console[bs(0x1ca)](a0L['cyan'](bs(0x219))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x31e)]['white']('\x20\x20What\x20next')),console[bs(0x1ca)](a0L['gray']('\x20\x20·\x20Your\x20national\x20organizer\x20will\x20announce\x20selection\x20results.')),console['log'](a0L[bs(0x226)](bs(0x1ac))+a0L[bs(0x12b)]('demo')+a0L['gray'](bs(0x78))),console[bs(0x1ca)](a0L[bs(0x226)](bs(0x254))+a0L[bs(0x12b)](bs(0x171))),console[bs(0x1ca)]();const {showCToBUpgradePrompt:aJ}=await import(bs(0x1f8));aJ(aC[bs(0x90)],aA[bs(0x239)]),console[bs(0x1ca)](a0L['yellow'](bs(0x323))),console[bs(0x1ca)](a0L[bs(0x348)][bs(0x316)](bs(0x2ca))),console[bs(0x1ca)](),console[bs(0x1ca)](a0L[bs(0x348)](bs(0x23e))),console[bs(0x1ca)]();}catch(aV){console[bs(0x1ca)](),a0aa(aV[bs(0x32f)]);}}),B['command'](bb(0x16a))[bb(0x1c3)](bb(0x235))[bb(0xb8)](async F=>{const bt=bb;a0a8('exam\x20result\x20'+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa(bt(0x1c4));F=J[bt(0x10e)][bt(0x90)];}const H=a0ag(bt(0x13b));H[bt(0x66)]();try{const K=await G[bt(0x82)](F);H['succeed']('Result\x20loaded'),console[bt(0x1ca)](),a0ae(K[bt(0x301)]),a0af(bt(0x1c2),a0L[bt(0x31e)](K[bt(0x267)]+'/'+K['total'])),a0af(bt(0xa9),a0L['bold'](K[bt(0xc2)]+'%')),a0af(bt(0x7d),K['passed']?a0L['green'][bt(0x31e)](bt(0x338)):a0L[bt(0x298)][bt(0x31e)](bt(0x6f))),a0af('Submitted',K['submittedAt']),console[bt(0x1ca)]();}catch(L){H[bt(0x207)](bt(0x190)),a0aa(L[bt(0x32f)]);}}),B['command']('token\x20<code>')[bb(0x1c3)](bb(0x249))['action'](async J=>{const bu=bb;a0a8('exam\x20token\x20'+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import(bu(0x151)),V=K();if(V){const a2=V[bu(0x10e)][bu(0xcb)],a3=a0a1(),a4=!!a2&&a2[bu(0x217)]()['toUpperCase']()!==J['trim']()[bu(0x33c)](),a5=!!a3&&a3[bu(0x33b)]()+(-0x1*-0x924f1+-0xd683b+-0x541*-0x60a)<Date['now']();if(a4&&a5)return Q(),console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x226)]('\x20\x20(previous\x20exam\x20session\x20expired\x20—\x20cleared\x20state,\x20starting\x20fresh\x20with\x20your\x20new\x20token)')),console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x12b)](bu(0x139))+a0L[bu(0x31e)][bu(0x348)]('exam\x20'+J)),void console[bu(0x1ca)]();if(!a2&&J)return V[bu(0x10e)][bu(0xcb)]=J[bu(0x217)](),L(V),console[bu(0x1ca)](),console['log'](a0L[bu(0x2b1)](bu(0x12c))),console[bu(0x1ca)](a0L[bu(0x226)](bu(0x69))+a0L[bu(0x12b)](bu(0x34c))+a0L[bu(0x226)](bu(0xc6))+a0L[bu(0x12b)](bu(0x31a))),console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x31e)][bu(0x12b)](bu(0x255))),console[bu(0x1ca)](a0L[bu(0x226)]('\x20\x20\x20\x20→\x20')+a0L['bold'][bu(0x348)](bu(0x1d4))+a0L['gray'](bu(0xd5))),console[bu(0x1ca)](a0L['gray'](bu(0xee))+a0L[bu(0x31e)]['cyan'](bu(0x214))+a0L[bu(0x226)](bu(0xef))),void console[bu(0x1ca)]();const a6=Object['keys'](V['answers'])[bu(0x1b6)],a7=V[bu(0x10e)][bu(0x22e)],a8=a0a1(),a9=a8?Math['max'](-0x2*0x10c7+-0x16ef+0x387d,Math[bu(0xb6)]((a8[bu(0x33b)]()-Date[bu(0x6c)]())/(0x7120*0x3+0xf49f+-0x3b*0x5ed))):null;return console[bu(0x1ca)](),console[bu(0x1ca)](a0L['yellow'](bu(0x152))),console['log'](),console['log'](a0L[bu(0x226)](bu(0x19a))+a0L[bu(0x12b)](V['session'][bu(0x301)])),a2&&console[bu(0x1ca)](a0L[bu(0x226)](bu(0x1af))+a0L['white'](a2)+(a2===J?a0L['green'](bu(0x286)):a0L[bu(0x1ab)](bu(0x34e)))),console[bu(0x1ca)](a0L[bu(0x226)](bu(0x1a5))+a0L[bu(0x12b)](a6+'/'+a7)),null!==a9&&console['log'](a0L[bu(0x226)](bu(0x231))+a0L[bu(0x12b)](a9+bu(0xc9))),console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x31e)]['white'](bu(0x2c7))),console[bu(0x1ca)](a0L[bu(0x226)](bu(0xee))+a0L[bu(0x31e)][bu(0x348)]('exam\x20q\x201')+a0L[bu(0x226)]('\x20\x20\x20\x20\x20\x20resume\x20at\x20any\x20question')),console[bu(0x1ca)](a0L[bu(0x226)]('\x20\x20\x20\x20→\x20')+a0L['bold'][bu(0x348)](bu(0x214))+a0L[bu(0x226)]('\x20\x20\x20see\x20progress\x20+\x20flagged\x20items')),console[bu(0x1ca)](a0L['gray'](bu(0xee))+a0L[bu(0x31e)][bu(0x348)](bu(0x31a))+a0L['gray'](bu(0x297))),a2&&a2!==J&&(console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x1ab)]('\x20\x20Note:\x20you\x20typed\x20a\x20different\x20token.\x20Each\x20exam\x20token\x20is\x20bound\x20to')),console[bu(0x1ca)](a0L['yellow'](bu(0x34a))),console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x226)](bu(0x307))),console[bu(0x1ca)](a0L[bu(0x226)](bu(0x1c8))+a0L[bu(0x31e)]['cyan'](bu(0xab))+a0L[bu(0x226)]('\x20to\x20wipe\x20local\x20state,\x20then\x20re-enter\x20the\x20new\x20token.'))),void console[bu(0x1ca)]();}const {isNativeWindowsCmd:W}=await import(bu(0x1de));if(!W()&&!a0am()){let aa=!(0x117a+-0x9*-0x20e+-0x23f7);try{const ab={};ab[bu(0x184)]='application/json';const ac=a0W()['ctfdUrl']||bu(0x355),ad=await fetch(ac+bu(0x33d),{'method':bu(0x1b3),'headers':ab,'body':JSON[bu(0x18a)]({'token':J[bu(0x217)](),'deviceHash':a0aj(),'peek':!(-0x71*0x5+0x97d*0x3+-0x1a42*0x1)}),'signal':AbortSignal[bu(0x21e)](-0x103b+-0x767+-0xd*-0x352)});if(ad['ok']){const ae=await ad[bu(0x2ad)]();(ae?.[bu(0x220)]?.[bu(0x181)]||'')[bu(0x329)]('-c')&&(aa=!(0x3e*-0x15+-0xc41+-0xc1*-0x17));}}catch{}if(!aa)return console[bu(0x1ca)](),a0ab('Pre-exam\x20setup\x20required\x20before\x20entering\x20a\x20token.'),console['log'](a0L['gray'](bu(0x161))+a0L['bold'][bu(0x348)](bu(0x30f))),console[bu(0x1ca)](a0L['gray']('\x20\x20Or\x20type\x20')+a0L[bu(0x31e)][bu(0x348)]('back')+a0L['gray'](bu(0x242))),console[bu(0x1ca)](a0L[bu(0x226)](bu(0x253))),void console[bu(0x1ca)]();}const X={};X['UA']='uk',X['PE']='es',X['CN']='zh',X['AU']='en',X['JP']='ja',X['KR']='ko',X['BR']='pt',X['SA']='ar',X['FR']='fr',X['DE']='de',X['IN']='hi',X['ID']='id',X['TH']='th',X['VN']='vi',X['TR']='tr',X['RU']='ru',X['EG']='ar',X['HT']='ht',X['PH']='en',X['MY']='en',X['MM']='en',X['SG']='en',X['ZA']='en',X['KE']='sw',X['TZ']='sw',X['MO']='zh',X['UZ']='uz',X['GH']='en',X['LA']='lo',X['BD']='bn',X['BI']='fr',X['US']='en',X['UK']='en',X['NZ']='en',X['LK']='si';const Y=X[J[bu(0x217)]()[bu(0x346)](0x5ba+0x257a+0x4f*-0x8c,0xf91*0x2+0x2*0x9df+-0x32de)['toUpperCase']()],Z=a0W(),a0=Z['ctfdUrl']||bu(0x355),a1=Y||Z[bu(0xdc)]||'en';Y&&Y!==(Z[bu(0xdc)]||'en')&&a0X({'language':Y}),console[bu(0x1ca)](),N(0x1*0xf61+0x1d21+-0x2c82,bu(0xa8));try{const af={};af['Content-Type']=bu(0x23c);const ag=await fetch(a0+bu(0x33d),{'method':bu(0x1b3),'headers':af,'body':JSON[bu(0x18a)]({'token':J[bu(0x217)](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bu(0x21e)](-0x264*0xc+-0x22*0x5e+0x503c)});if(!ag['ok']){N(-0x1bb8+-0x1111*0x1+-0x2cc9*-0x1,''),console[bu(0x1ca)]();const ao=await ag[bu(0x2ad)]()[bu(0xb9)](()=>({'message':bu(0x31b)}));return a0aa(ao[bu(0x32f)]||'Invalid\x20exam\x20token'),void a0ac('Check\x20your\x20token\x20or\x20contact\x20your\x20proctor.');}N(0xaa3+-0x1b59+0x10d4,bu(0x248));const ah=await ag[bu(0x2ad)](),{session:ai,questions:aj,languages:ak}=ah['data'];N(-0x1207*0x1+-0x1ff+0x2*0xa21,bu(0x12d)),await q(0x7c*-0x45+-0x1abf*0x1+0x3*0x1451),N(-0x1752+0xb2e+0xc88,bu(0x32a)),console[bu(0x1ca)](),console['log'](),a0ae(ai['examName']),console['log'](),a0af(bu(0x1f5),ai[bu(0x22e)]+'\x20(30\x20MCQ\x20+\x2010\x20practical)'),a0af(bu(0x216),ai[bu(0x292)]+bu(0x35d)),a0af(bu(0x2fd),(ai[bu(0xba)]||0x101c*-0x1+-0x26ae+0x3760)+bu(0x241)),a0af('Pass',(ai[bu(0x11f)]||-0x386*0x6+0x1*-0x1613+-0x2*-0x15c1)+bu(0x1e4)),console[bu(0x1ca)](),console[bu(0x1ca)](a0L[bu(0x12b)]('\x20\x20Assistance:')),console[bu(0x1ca)](a0L[bu(0x12b)]('\x20\x20\x20\x20Help:\x20\x20\x20\x2010\x20uses\x20+\x205\x20hidden\x20bonus\x20(MCQ\x20only)')),console[bu(0x1ca)](a0L[bu(0x12b)](bu(0x360))),console['log'](a0L[bu(0x12b)]('\x20\x20\x20\x20AI:\x20\x20\x20\x20\x20\x2025K\x20AI4CTF\x20+\x2025K\x20CTF4AI\x20tokens')),ak&&ak[bu(0x1b6)]>0x1*0x599+0xb*-0x9d+0x127&&console[bu(0x1ca)](a0L[bu(0x12b)](bu(0x262)+ak[bu(0xdf)](',\x20')+bu(0x179))),console['log'](),console[bu(0x1ca)](a0L[bu(0x1ab)](bu(0x204))),console[bu(0x1ca)](a0L[bu(0x12b)](bu(0x2a9))),console[bu(0x1ca)](a0L[bu(0x12b)]('\x20\x20\x20\x20•\x20Server\x20auto-finalises\x20your\x20answers\x20if\x20you\x20do\x20not\x20submit\x20before\x20the\x20deadline')),console[bu(0x1ca)](a0L['white']('\x20\x20\x20\x20•\x20You\x20may\x20exit\x20and\x20resume\x20with\x20the\x20same\x20token')),console['log'](),await new Promise(ap=>{const bv=bu;process['stdout'][bv(0x287)](a0L[bv(0x31e)][bv(0x1ab)](bv(0xbb)));const aq=!!process[bv(0x2f8)][bv(0x18d)]&&process[bv(0x2f8)]['isRaw'];process[bv(0x2f8)][bv(0x18d)]&&process[bv(0x2f8)][bv(0x11d)]&&process[bv(0x2f8)][bv(0x11d)](!(-0x127d*0x1+-0x1fe6+0x81*0x64));const ar=as=>{const bw=bv,at=as[bw(0x27e)]();(at[bw(0x80)]('\x0a')||at[bw(0x80)]('\x0d'))&&(process['stdin']['removeListener']('data',ar),process[bw(0x2f8)][bw(0x18d)]&&process['stdin'][bw(0x11d)]&&process[bw(0x2f8)][bw(0x11d)](aq),process[bw(0x19e)][bw(0x287)]('\x0a'),ap());};process[bv(0x2f8)]['on'](bv(0x220),ar),process[bv(0x2f8)][bv(0x1df)]();});const al=new Date()['toISOString']();ai[bu(0x2df)]=al,ai[bu(0xcb)]=J[bu(0x217)]();try{const ap=Date[bu(0x6c)](),aq=await fetch(a0+bu(0x2ac),{'method':bu(0x13e),'signal':AbortSignal['timeout'](-0x9c3*0x1+0x14c*0x5+-0x1*-0xeff)});if(aq['ok']){const ar=await aq[bu(0x2ad)](),as=ar?.[bu(0x220)]?.[bu(0x1d2)];if(bu(0x10d)==typeof as&&as>0x16bb+0x934+-0x1fef){const at=(ap+Date[bu(0x6c)]())/(-0x1*-0x451+-0x110*-0x11+-0x165f);ai[bu(0x243)]=Math[bu(0xb6)](as-at),ai[bu(0x325)]=as+(-0x1*-0x245b+0x1*0x1e4d+-0x426c)*ai[bu(0x292)]*(0x1c28+-0x3*-0x38b+-0x22e1*0x1);}}}catch{}const am={};am[bu(0x2a7)]=0x0,am['ctf4ai']=0x0;const an={};an[bu(0x10e)]=ai,an[bu(0x258)]=aj,an[bu(0x108)]={},an[bu(0x13a)]=[],an[bu(0x9f)]=am,(a0Z(an),console[bu(0x1ca)](),a0a9('Exam\x20started!\x20Timer\x20is\x20running.'),a0af(bu(0x2b6),ai[bu(0x292)]+bu(0x31d)),aj[bu(0x1b6)]>-0x1*0x1102+0x223*0x1+0x9*0x1a7&&U(aj[0x18b9+-0x10e4+0x1*-0x7d5]));}catch(au){console[bu(0x1ca)](),'TimeoutError'===au[bu(0x2a3)]?a0aa(bu(0x7a)):a0aa(au[bu(0x32f)]||'Failed\x20to\x20start\x20exam');}}),B[bb(0x160)](bb(0xd4),{'hidden':!(-0xb46+0x1*-0x110+0x1*0xc56)})['description'](bb(0x116))[bb(0xb8)](async()=>{const bx=bb;a0a8('exam\x20reset');const {getRealExamState:F,clearExamState:G}=await import('../lib/exam-state.js'),H=F();if(!H)return console[bx(0x1ca)](),console[bx(0x1ca)](a0L[bx(0x226)]('\x20\x20No\x20active\x20exam\x20session\x20to\x20reset.')),void console[bx(0x1ca)]();const J=H[bx(0x10e)][bx(0xcb)];if(console[bx(0x1ca)](),console['log'](a0L[bx(0x1ab)](bx(0x2aa))),console[bx(0x1ca)](a0L['gray'](bx(0x304))+a0L[bx(0x12b)](H[bx(0x10e)][bx(0x301)])),J&&console['log'](a0L[bx(0x226)](bx(0x2bc))+a0L[bx(0x12b)](J)),console[bx(0x1ca)](a0L[bx(0x226)](bx(0x84))),console['log'](a0L['gray'](bx(0x28a))),console['log'](),console[bx(0x1ca)](a0L[bx(0x226)]('\x20\x20Type\x20')+a0L['bold'][bx(0x348)](bx(0xd4))+a0L[bx(0x226)](bx(0x269))),bx(0xd4)!==(await new Promise(K=>{const by=bx;process['stdout'][by(0x287)](by(0xac));const L=Q=>{const bz=by,V=Q[bz(0x27e)]()[bz(0x217)]();(V[bz(0x80)]('\x0a')||V[bz(0x80)]('\x0d')||V[bz(0x1b6)]>-0x2092+0x1*-0x3f2+0x2484)&&(process['stdin'][bz(0x9c)]('data',L),K(V[bz(0x2a4)](/[\r\n]/g,'')));};process[by(0x2f8)]['on'](by(0x220),L),process[by(0x2f8)]['resume']();}))[bx(0x2e8)]())return console['log'](a0L[bx(0x226)]('\x20\x20Cancelled.')),void console[bx(0x1ca)]();G(),console['log'](),console[bx(0x1ca)](a0L[bx(0x2b1)](bx(0x283))),console[bx(0x1ca)](a0L['gray'](bx(0x250))+a0L[bx(0x31e)][bx(0x348)]('exam\x20<token>')),console[bx(0x1ca)]();}),B[bb(0x160)]('demo')[bb(0x1c3)](bb(0x109))[bb(0xb8)](async()=>{const bA=bb;a0a8(bA(0x335)),E(bA(0x13c));const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import(bA(0x23f));a0W()[bA(0x2c9)]||(await(async function(){const bB=bA;let a0=!(-0xe9*-0x11+0x8df+-0x1857);const a1=process['stdin'],a2=()=>{a0=!(0x1fd3+-0x4*0x75a+-0x26b*0x1);},a3=a1['isTTY']&&bB(0x232)==typeof a1['setRawMode'];a3&&(a1[bB(0x11d)](!(0x1aeb+-0x88c+-0x1*0x125f)),a1[bB(0x1df)](),a1[bB(0x228)](bB(0x220),a2));const a4=async a5=>{let a6=0x25*-0x10d+0x3ab+0x2336;for(;a6<a5&&!a0;)await q(0x9b2+0x1f9*-0xe+-0x185*-0xc),a6+=-0x2b*0x35+0x9fa+-0xc3;};try{if(console[bB(0xe2)](),console[bB(0x1ca)](),console['log'](a0L['gray']('\x20\x20\x20')+a0L['dim']('(press\x20any\x20key\x20to\x20skip)')),console[bB(0x1ca)](),console[bB(0x1ca)](a0L[bB(0x31e)][bB(0x12b)](bB(0xe7))),console[bB(0x1ca)](a0L['bold'][bB(0x12b)](bB(0x11e))),console['log'](a0L['bold'][bB(0x12b)](bB(0x211))),console['log'](a0L[bB(0x31e)][bB(0x12b)](bB(0x313))),console['log'](a0L[bB(0x31e)][bB(0x12b)]('\x20\x20\x20██║╚██████╗╚██████╔╝██║\x20\x20██║')),console['log'](a0L[bB(0x31e)][bB(0x12b)](bB(0x124))),console[bB(0x1ca)](),console['log'](a0L[bB(0x31e)][bB(0x1ab)]('\x20\x20\x20International\x20Cyber\x20Olympiad\x20in\x20AI')),console[bB(0x1ca)](a0L[bB(0x226)](bB(0x24c))),await a4(-0x1ca6+0x54c+-0x1b*-0x13a),a0)return;if(console['log'](),console[bB(0x1ca)](a0L[bB(0x12b)](bB(0x354))),console[bB(0x1ca)](),await a4(0x76e+-0x25a8+0x17b*0x16),a0)return;if(console[bB(0x1ca)](a0L[bB(0x348)](bB(0x280))+a0L[bB(0x12b)]('Answer\x2010\x20quick\x20questions')+a0L[bB(0x226)](bB(0x25d))),await a4(-0x1ba9+0x2388+0x523*-0x1),a0)return;if(console[bB(0x1ca)](a0L[bB(0x2b1)](bB(0x280))+a0L['white'](bB(0x203))+a0L[bB(0x226)](bB(0x17a))),await a4(0x2*-0xdf5+0xf09*-0x2+0x3cb8),a0)return;if(console[bB(0x1ca)](a0L[bB(0x298)]('\x20\x20\x20\x20\x20▣\x20')+a0L[bB(0x12b)]('Hack\x20the\x20AI\x27s\x20guardrails')+a0L[bB(0x226)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20(ctf4ai)')),await a4(-0x3a5+-0x5*0x397+-0x2*-0xc8e),a0)return;if(console[bB(0x1ca)](),console['log'](a0L[bB(0x31e)][bB(0x12b)](bB(0xf8))+a0L[bB(0x31e)][bB(0x1ab)]('IS')+a0L[bB(0x31e)][bB(0x12b)](bB(0x328))),console['log'](),await a4(0xaed*-0x3+-0x3bb*0x7+-0x818*-0x8),a0)return;if(console[bB(0x1ca)](a0L['gray'](bB(0x11a))),await a4(-0x23*0x9b+0x2*-0x6be+0x243d),a0)return;if(console['log'](a0L[bB(0x226)]('\x20\x20\x20·\x2015\x20languages,\x20real-time\x20AI\x20translation')),await a4(0x3*-0xa39+0x1998+-0x1*-0x6a3),a0)return;if(console[bB(0x1ca)](a0L[bB(0x226)]('\x20\x20\x20·\x2015,000+\x20concurrent\x20participants')),await a4(-0x20e5+-0x49a+-0x1*-0x289f),a0)return;console[bB(0x1ca)](),console['log'](a0L[bB(0x31e)][bB(0x348)](bB(0x81))),await a4(0x118c*-0x1+0xa4f+0x16dd);}finally{((()=>{const bC=bB;if(a3){a1[bC(0x9c)](bC(0x220),a2);try{a1['setRawMode'](!(0x1*0x1981+-0x6*0x6d+0x216*-0xb));}catch{}a1['pause']();}})()),console[bB(0xe2)]();}}()),a0X({'demoIntroSeen':!(0x25bd*0x1+-0x2599+-0x4*0x9)})),console[bA(0x1ca)](),console[bA(0x1ca)](a0L[bA(0x12b)]('\x20\x20Demo:\x20')+a0L[bA(0x226)](H+bA(0x9b)+J+bA(0x268))),console[bA(0x1ca)](a0L['gray'](bA(0xb1))+a0L[bA(0x348)](bA(0x353))+a0L[bA(0x226)](bA(0x2fb))+a0L[bA(0x348)]('back')+a0L[bA(0x226)](bA(0x15f))),await new Promise(a0=>{const bD=bA;process[bD(0x19e)]['write'](a0L[bD(0x31e)][bD(0x1ab)]('\x20\x20Press\x20Enter\x20to\x20begin...\x20'));const a1=!!process[bD(0x2f8)][bD(0x18d)]&&process[bD(0x2f8)][bD(0x178)];process[bD(0x2f8)][bD(0x18d)]&&process[bD(0x2f8)][bD(0x11d)]&&process[bD(0x2f8)][bD(0x11d)](!(0x19*-0x8e+0x1963+-0x10c*0xb));const a2=a3=>{const bE=bD,a4=a3[bE(0x27e)]();(a4['includes']('\x0a')||a4[bE(0x80)]('\x0d'))&&(process['stdin'][bE(0x9c)]('data',a2),process['stdin'][bE(0x18d)]&&process['stdin']['setRawMode']&&process['stdin'][bE(0x11d)](a1),process[bE(0x19e)][bE(0x287)]('\x0a'),a0());};process['stdin']['on'](bD(0x220),a2),process['stdin'][bD(0x1df)]();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import(bA(0x151));Q()&&V(bA(0x1eb)),console['log'](),a0ae('ICOA\x20Demo\x20Exam\x20—\x20Free\x20Practice'),console[bA(0x1ca)](),console[bA(0x1ca)](a0L[bA(0x12b)](bA(0xed))),console[bA(0x1ca)](a0L['white']('\x20\x20'+H+bA(0x7e)+J+bA(0x101)));const W=a0a3();if(W[bA(0x28b)]>0x242e+-0x5cb*0x1+0x3*-0xa21){const a0=W['bestPercentage'],a1=a0>=-0x8f4*0x2+0xe53+0x3e5*0x1?a0L[bA(0x2b1)]:a0>=-0xcc*0xe+-0x29*-0xf+0xb1*0xd?a0L[bA(0x1ab)]:a0L[bA(0x12b)];console[bA(0x1ca)](),console[bA(0x1ca)](a0L[bA(0x226)]('\x20\x20Your\x20best:\x20')+a1(W[bA(0x1a1)]+'/'+H+'\x20('+a0+'%)')+a0L[bA(0x226)]('\x20\x20·\x20\x20'+W[bA(0x28b)]+bA(0x34f)));}console[bA(0x1ca)](),console[bA(0x1ca)](a0L[bA(0x226)]('\x20\x20─────────────────────────────────────────')),console[bA(0x1ca)](a0L['white']('\x20\x20'+a0ai(bA(0x35b)))),console[bA(0x1ca)](a0L[bA(0x1ab)](bA(0x2f9))+a0L[bA(0x226)](bA(0x20c)+a0ai(bA(0xfc)))),console['log'](a0L[bA(0x1ab)](bA(0x2de))+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bA(0x2e7)))),console[bA(0x1ca)](a0L[bA(0x1ab)](bA(0x233))+a0L[bA(0x226)](bA(0x2f2))+a0L[bA(0x1ab)]('prev')+a0L['gray'](bA(0x31c)+a0ai('htpNav'))),console[bA(0x1ca)](a0L[bA(0x1ab)]('\x20\x20\x20\x20more\x20help')+a0L[bA(0x226)](bA(0x14d)+a0ai(bA(0x157)))),console[bA(0x1ca)](a0L[bA(0x1ab)](bA(0x1e7))+a0L[bA(0x226)](bA(0x8f)+a0ai(bA(0x2b9)))),console[bA(0x1ca)](a0L[bA(0x1ab)](bA(0x1d6))+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bA(0x2f1)))),console[bA(0x1ca)](a0L[bA(0x226)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20es\x20·\x20zh\x20·\x20ja\x20·\x20ko\x20·\x20ar\x20·\x20fr\x20·\x20pt')),console[bA(0x1ca)](a0L[bA(0x226)](bA(0x25c))),console[bA(0x1ca)](a0L[bA(0x226)](bA(0x336))),console[bA(0x1ca)]();const {getConfig:X}=await import(bA(0x16c)),Y=X()['language']||'en';'en'===Y?(console[bA(0x1ca)](a0L[bA(0x226)](bA(0x173))),console[bA(0x1ca)](a0L[bA(0x226)]('\x20\x20lang\x20es\x20(Español)\x20·\x20lang\x20zh\x20(中文)\x20·\x20lang\x20ko\x20(한국어)\x20·\x20lang\x20ja\x20(日本語)')),console[bA(0x1ca)](a0L['gray'](bA(0x193)))):console[bA(0x1ca)](a0L['green'](bA(0x20e)+Y)),console[bA(0x1ca)](),console[bA(0x1ca)](a0L['white']('\x20\x20Starting\x20exam...'));const Z={...L,'startedAt':new Date()[bA(0x246)]()};console[bA(0x1ca)](),N(-0x1348+-0x13d6+-0x138f*-0x2,bA(0x2d1)),await q(-0x7f5+-0xa3b*0x1+0x4be*0x4),N(-0x1e28+0x1711*0x1+0x73f,'Shuffling\x20options...'),await q(0x624+0xee1+-0x143d),N(0xd6*-0x1+0x7*0x403+-0x1aef,'Almost\x20ready...'),await q(-0x25d9+-0x225b+-0x34f*-0x16),N(0x155c+-0x626+-0xed2,bA(0x32a)),console[bA(0x1ca)](),console[bA(0x1ca)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af(bA(0x1f5),String(H)),a0af(bA(0x216),'No\x20time\x20limit'),U(K[-0x23c4+-0x1470+-0x1c1a*-0x2]);}),B['command']('demo-retry')[bb(0x1c3)](bb(0x34b))[bb(0xb8)](async()=>{const bF=bb;a0a8(bF(0x1c0)),E(bF(0xcf));const {getLocalizedDemoSession:F}=await import(bF(0x23f)),G=a0a6();if(!G||0x2531*0x1+-0x3f9*-0x2+-0x2d23===G['length'])return console['log'](),console[bF(0x1ca)](a0L[bF(0x1ab)]('\x20\x20No\x20wrong\x20questions\x20to\x20retry.\x20Run\x20')+a0L[bF(0x31e)][bF(0x348)](bF(0x15c))+a0L['yellow']('\x20first.')),void console[bF(0x1ca)]();const H=a0Y();if(H){if(bF(0x1eb)!==H[bF(0x10e)][bF(0x90)])return a0ab(bF(0x306)+H[bF(0x10e)][bF(0x301)]+bF(0x245)),void a0ac(bF(0x2ce));a0a0();}const J=V=>{const bG=bF;if(!V['answer'])return V;const W=V['options'][V[bG(0x96)]],X=['A','B','C','D'][bG(0x1fc)](a2=>V[bG(0x7b)][a2]);for(let a2=X[bG(0x1b6)]-(-0x8b2+-0x7*-0x161+0xf4*-0x1);a2>0x4*-0x991+0x262*0xd+0x74a;a2--){const a3=Math[bG(0x15e)](Math[bG(0x7c)]()*(a2+(-0x1cd0+-0x63+0x1d34)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[0x2419+-0x1f75+-0x4a4],Y['B']=X[0x1a65+0x7d+-0x1ae1],Y['C']=X[-0x307+0x1*-0x1118+0x1421],Y['D']=X[-0xe63+0x465+-0xd*-0xc5];const Z=Y,a0=['A','B','C','D'][bG(0x1ff)](a4=>Z[a4]===W),a1={...V};return a1['options']=Z,a1[bG(0x96)]=a0,a1;},K=G[bF(0x1fc)]((V,W)=>({...J(V),'number':W+(-0x7*0x247+0x1cef+-0x19*0x85)})),L=F(),Q={...L,'examName':L['examName']+bF(0x2cc),'questionCount':K[bF(0x1b6)],'startedAt':new Date()[bF(0x246)]()};console[bF(0x1ca)](),a0ae(bF(0x32d)),console[bF(0x1ca)](),console[bF(0x1ca)](a0L[bF(0x12b)](bF(0x1a0)+K[bF(0x1b6)]+'\x20question'+(0x1*0x1d2e+-0x2b9+-0x2*0xd3a===K[bF(0x1b6)]?'':'s')+bF(0xe9))),console['log'](a0L[bF(0x226)](bF(0x227))),console[bF(0x1ca)](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af(bF(0x1f5),String(K[bF(0x1b6)])),a0af(bF(0x216),'No\x20time\x20limit'),U(K[0x118+-0x951+-0x1*-0x839]);}),B['command'](bb(0x2ec))[bb(0x1c3)]('Install\x20Python\x20environment\x20for\x20practical\x20exam\x20questions')[bb(0xb8)](async()=>{const bH=bb;if(a0a8(bH(0x30f)),0x2ca+-0x61e+0x354===a0a3()[bH(0x28b)])return console['log'](),a0ab(bH(0x1cd)),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x161))+a0L[bH(0x31e)][bH(0x348)](bH(0x335))),void console[bH(0x1ca)]();const K=a0ak();if(K){const a4=K[bH(0x117)]['length'],a5=a4+K[bH(0x15d)][bH(0x1b6)];if(a4>=0x1c4+-0x11a7*-0x1+-0x1363||(a5>-0x263b*0x1+-0x22ed+0x4928?a4/a5:-0xf0d+0x24f9*-0x1+-0x1*-0x3406)>=0x18d+0x166e+-0x17fb+0.7)return console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x2b1)](bH(0x320))+a0L['green'](bH(0x30a))),console['log'](a0L[bH(0x226)](bH(0x201)+K[bH(0x23a)][bH(0xf7)]('T')[-0x11e5*0x1+0x1d39*0x1+-0xb54])),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x2ed)+K[bH(0x277)])),console[bH(0x1ca)](a0L['gray'](bH(0x2f3)+a4+bH(0x202))),K[bH(0x15d)][bH(0x1b6)]>0x15a9+0x2139+0x232*-0x19&&console[bH(0x1ca)](a0L['yellow']('\x20\x20\x20\x20Failed:\x20'+K[bH(0x15d)][bH(0xdf)](',\x20'))),console['log'](),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0x1f0))+a0L['bold'][bH(0x348)](bH(0x342))),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20Or\x20type\x20')+a0L[bH(0x31e)]['cyan'](bH(0x215))+a0L[bH(0x226)](bH(0x242))),void console['log']();console[bH(0x1ca)](),console['log'](a0L[bH(0x1ab)]('\x20\x20Previous\x20setup\x20had\x20only\x20'+a4+'/'+a5+'\x20packages.\x20Retrying...')),console['log']();}console['log'](),a0ae('Exam\x20Environment\x20Setup'),console[bH(0x1ca)](),console['log'](a0L[bH(0x12b)]('\x20\x20Installing\x20Python\x20packages\x20for\x20practical\x20questions.')),console[bH(0x1ca)](a0L[bH(0x226)](bH(0xf9))),console['log']();const L=(a6,a7)=>{const bI=bH,a8=process[bI(0x137)];console[bI(0x1ca)](),a0aa('missing'===a6?'Python\x203\x20not\x20found.':bI(0x22c)+a7+'\x20found,\x20but\x203.10+\x20required\x20for\x20the\x20exam.'),console['log'](),console[bI(0x1ca)](a0L[bI(0x31e)][bI(0x12b)](bI(0x16d))),console['log'](),bI(0x8d)===a8?(console[bI(0x1ca)](a0L[bI(0x1ab)](bI(0x2d3))),console[bI(0x1ca)](a0L[bI(0x2b1)](bI(0x9a))),console['log'](),console[bI(0x1ca)](a0L[bI(0x226)](bI(0x25a))),console[bI(0x1ca)](a0L[bI(0x226)]('\x20\x20\x20\x20https://www.python.org/downloads/macos/'))):bI(0x279)===a8?(console[bI(0x1ca)](a0L[bI(0x1ab)](bI(0x68))),console[bI(0x1ca)](a0L['green']('\x20\x20\x20\x20sudo\x20add-apt-repository\x20ppa:deadsnakes/ppa\x20-y')),console[bI(0x1ca)](a0L[bI(0x2b1)](bI(0x359))),console['log'](a0L[bI(0x2b1)]('\x20\x20\x20\x20sudo\x20apt\x20install\x20-y\x20python3.12\x20python3.12-venv\x20python3.12-distutils')),console[bI(0x1ca)](a0L['gray']('\x20\x20\x20\x20sudo\x20update-alternatives\x20--install\x20/usr/bin/python3\x20python3\x20/usr/bin/python3.12\x201')),console[bI(0x1ca)](),console[bI(0x1ca)](a0L[bI(0x1ab)]('\x20\x20Fedora\x20/\x20RHEL:')),console[bI(0x1ca)](a0L['green'](bI(0x1cc))),console['log'](),console[bI(0x1ca)](a0L[bI(0x1ab)]('\x20\x20Arch\x20/\x20Manjaro:')),console[bI(0x1ca)](a0L[bI(0x2b1)](bI(0xa1)))):'win32'===a8?(console[bI(0x1ca)](a0L[bI(0x1ab)](bI(0x2e6))),console['log'](a0L['green'](bI(0x27b))),console[bI(0x1ca)](),console[bI(0x1ca)](a0L[bI(0x226)](bI(0x25a))),console[bI(0x1ca)](a0L[bI(0x226)](bI(0x35f)))):console[bI(0x1ca)](a0L[bI(0x226)](bI(0x1f3))),console['log'](),console[bI(0x1ca)](a0L[bI(0x12b)](bI(0x2d4))+a0L[bI(0x31e)][bI(0x348)](bI(0x30f))),console[bI(0x1ca)]();},Q=bH(0x75);let V='';try{const a6={};a6[bH(0x2eb)]='utf-8',a6[bH(0x21e)]=0x1388,V=a0an(Q+bH(0x1bc),a6)[bH(0x217)]()[bH(0x2a4)](bH(0x22c),'');const a7=V[bH(0xf7)]('.')[bH(0x1fc)](Number);if(a7[0x67b+0x31*0x1+-0x6ac]<0x14ed+0x17d7+-0x2cc1||-0x4f*-0x20+-0xa37+0x5a===a7[-0x16b5*0x1+0x1974+-0x2bf]&&a7[0x1590+-0x2b*-0x20+0x7*-0x3d9]<0x13*-0x19d+-0x3d*-0x38+-0x1159*-0x1)return void L('too_old',V);0xee6+0x2376+-0x1*0x3259===a7[-0x8b8+0x2*0x874+0x20c*-0x4]&&a7[-0x8*-0x48b+0x6d4+-0x2b2b]<-0xab2+0x1ee6+0x1e*-0xac?console[bH(0x1ca)](a0L[bH(0x2b1)]('\x20\x20✓\x20Python\x20'+V)+a0L['gray'](bH(0x27d))):console[bH(0x1ca)](a0L[bH(0x2b1)](bH(0x209)+V));}catch{return void L(bH(0xff));}try{const a8={};a8[bH(0x282)]='ignore',a8[bH(0x21e)]=0x1388,(a0an(Q+'\x20-m\x20pip\x20--version',a8),console[bH(0x1ca)](a0L['green']('\x20\x20✓\x20pip\x20available')));}catch{console[bH(0x1ca)](a0L[bH(0x1ab)]('\x20\x20⚠\x20pip\x20not\x20found,\x20trying\x20ensurepip...'));try{const a9={};a9[bH(0x282)]=bH(0x24b),a9[bH(0x21e)]=0x7530,(a0an(Q+bH(0x2cf),a9),console['log'](a0L['green'](bH(0x134))));}catch{a0aa('Could\x20not\x20install\x20pip\x20—\x20pip\x20is\x20not\x20installed\x20on\x20your\x20system.'),console[bH(0x1ca)]();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import(bH(0x1de)),{execFileSync:ac}=await import(bH(0xc8)),ad=aa(),ae=ab(),af='linux'===process[bH(0x137)]&&!ad,ag='darwin'===process[bH(0x137)];let ah=bH(0x2d8);if(af||ad)try{const {readFileSync:ak}=await import(bH(0x128)),al=ak(bH(0x146),bH(0x2cd)),am=(al['match'](/^ID="?([^"\n]+)/m)||[])[-0x397*0x8+-0x2c0+0x1f79]||'',an=(al['match'](/^VERSION_ID="?([^"\n]+)/m)||[])[0x1*0x7f1+0x2590+-0x2d80]||'';bH(0x289)===am?ah=bH(0x27a)+an+(ad?bH(0x17e):''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?bH(0x17e):''));}catch{}let ai=!(-0x850+-0x9a5+-0x1*-0x11f6);if(ag)try{const ao={};ao['stdio']=bH(0x24b),ao[bH(0x21e)]=0x7d0,(ac(bH(0x1d3),[bH(0x2d5)],ao),ai=!(-0x1*0x21eb+-0xea1+0x34*0xef));}catch{ai=!(0x3e*0x21+-0xd*0x2a1+0x1a30);}const aj=ae?'⚠\x20\x20EXIT\x20icoa\x20first\x20—\x20installer\x20cannot\x20run\x20inside\x20the\x20prompt':bH(0x205);return console['log'](a0L[bH(0x31e)][bH(0x1ab)](bH(0x182))),console['log'](a0L[bH(0x31e)][bH(0x1ab)]('\x20\x20'+aj)),console[bH(0x1ca)](a0L[bH(0x31e)][bH(0x1ab)](bH(0x182))),console[bH(0x1ca)](),af||ad?(console[bH(0x1ca)](a0L[bH(0x12b)](bH(0xa3))+a0L[bH(0x348)](ah)),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x147))),console['log'](),console[bH(0x1ca)](a0L[bH(0x31e)]['white'](bH(0x1e2))),console['log'](),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0xa7))+a0L[bH(0x31e)][bH(0x348)](bH(0x9e))+a0L['white'](bH(0x30b))),console[bH(0x1ca)](),console['log'](a0L['white']('\x20\x20\x20\x202.\x20In\x20your\x20shell,\x20run:')),console[bH(0x1ca)](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)]('sudo\x20apt\x20update')),console[bH(0x1ca)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x31e)][bH(0x348)](bH(0x11b))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x12b)]('\x20\x20\x20\x203.\x20Restart\x20icoa\x20and\x20re-run\x20exam\x20setup:')),console[bH(0x1ca)](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x32c))),console['log'](bH(0x20c)+a0L[bH(0x226)](bH(0x120))+'\x20'+a0L[bH(0x31e)][bH(0x348)](bH(0x30f)))):ag?(console[bH(0x1ca)](a0L[bH(0x12b)](bH(0xa3))+a0L[bH(0x348)](bH(0x240))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x31e)][bH(0x12b)](bH(0x1e2))),console['log'](),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0xa7))+a0L[bH(0x31e)][bH(0x348)]('quit')+a0L['white'](bH(0x1b2))),console[bH(0x1ca)](),ai?(console[bH(0x1ca)](a0L['white'](bH(0x327))),console[bH(0x1ca)](),console[bH(0x1ca)](bH(0x20c)+a0L['bold'][bH(0x348)](bH(0x2d6))),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x7f)))):(console['log'](a0L[bH(0x12b)](bH(0x17c))+a0L[bH(0x31e)][bH(0x1ab)](bH(0x2d5))+a0L[bH(0x12b)]('):')),console[bH(0x1ca)](),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x31e)]['cyan'](bH(0x1d8))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L['white'](bH(0xc1))),console[bH(0x1ca)](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)]['cyan']('brew\x20install\x20python@3.12'))),console['log'](),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0xbf))),console['log'](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x32c))),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L['gray'](bH(0x120))+'\x20'+a0L[bH(0x31e)]['cyan']('exam\x20setup'))):ae?(console[bH(0x1ca)](a0L[bH(0x12b)]('\x20\x20Detected:\x20')+a0L[bH(0x348)](bH(0x2e4))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x31e)][bH(0x1ab)](bH(0x1e0))),console['log'](a0L[bH(0x226)](bH(0x18e))),console['log'](a0L[bH(0x226)](bH(0xbe))),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20far\x20more\x20smoothly\x20inside\x20WSL2\x20Ubuntu.')),console[bH(0x1ca)](),console['log'](a0L[bH(0x31e)]['white'](bH(0x263))),console[bH(0x1ca)](),console['log'](a0L[bH(0x12b)]('\x20\x20\x20\x201.\x20Type\x20')+a0L['bold'][bH(0x348)](bH(0x9e))+a0L[bH(0x12b)](bH(0x1b2))),console[bH(0x1ca)](a0L['white'](bH(0x20b))),console['log'](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x28f))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L['gray'](bH(0x244))),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0x26f))),console['log'](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x14b))),console[bH(0x1ca)]('\x20\x20\x20\x20\x20\x20\x20'+a0L['bold'][bH(0x348)](bH(0x156))),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x2c2))),console[bH(0x1ca)](bH(0x20c)+a0L['bold'][bH(0x348)](bH(0x32c))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x10c))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L['white']('\x20\x20\x20\x201.\x20Type\x20')+a0L[bH(0x31e)][bH(0x348)](bH(0x9e))+a0L[bH(0x12b)](bH(0x1b2))),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0x2f0))),console['log'](),console[bH(0x1ca)](bH(0x20c)+a0L['bold'][bH(0x348)](bH(0x28d))),console['log'](),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20\x20\x20\x20(Or\x20download\x20from\x20python.org\x20and\x20CHECK\x20both\x20\x22Add\x20Python\x20to')),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20\x20\x20\x20\x20PATH\x22\x20+\x20\x22Install\x20pip\x22\x20during\x20the\x20installer.)')),console['log'](a0L['white'](bH(0x94))),console['log'](),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x32c))),console['log'](bH(0x20c)+a0L['gray']('icoa>')+'\x20'+a0L[bH(0x31e)][bH(0x348)](bH(0x30f)))):(console[bH(0x1ca)](a0L[bH(0x12b)]('\x20\x20Detected:\x20unrecognized\x20platform\x20(')+a0L[bH(0x348)](process['platform'])+a0L[bH(0x12b)](')')),console['log'](),console[bH(0x1ca)](a0L['gray'](bH(0x352))),console[bH(0x1ca)](bH(0x20c)+a0L[bH(0x31e)][bH(0x348)](bH(0x32c))),console['log'](bH(0x20c)+a0L[bH(0x226)]('icoa>')+'\x20'+a0L[bH(0x31e)][bH(0x348)](bH(0x30f)))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20Stuck?\x20Email\x20your\x20selection\x20coordinator\x20with\x20the\x20screenshot\x20above.')),void console[bH(0x1ca)]();}}const W={};W[bH(0x296)]=bH(0x8c),W[bH(0x1db)]='Crypto',W[bH(0x264)]='z3',W['pillow']=bH(0x210),W[bH(0x1e3)]=bH(0xfd),W[bH(0x28e)]=bH(0x76);const X=[bH(0x1e3),bH(0xf4),bH(0x363),'beautifulsoup4',bH(0x274),bH(0x1ad),bH(0x196),bH(0x238),bH(0x264),'pycryptodome',bH(0x28e),bH(0xc4),'regex'],Y=W;console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0x150)+X['length']+bH(0x121))),console[bH(0x1ca)]();let Z='';try{const ap={};ap[bH(0x2eb)]=bH(0x2cd),ap[bH(0x21e)]=0x2710,a0an(Q+bH(0x77),ap);}catch(aq){const ar=String(aq?.[bH(0x19e)]||aq?.[bH(0x26d)]||aq?.[bH(0x32f)]||'');/externally-managed-environment|break-system-packages/i['test'](ar)&&(Z=bH(0x366),console['log'](a0L['yellow'](bH(0x291))),console[bH(0x1ca)]());}const a0=V[bH(0xf7)]('.')[bH(0x1fc)](Number);0x67d+-0x713+0x99===a0[0x1*0x1df5+-0xb30*-0x2+-0x1*0x3455]&&a0[0x13f1+-0x5b6+-0x25f*0x6]>=-0xe6*-0x1+0x20b4+-0x7*0x4cb&&(console[bH(0x1ca)](a0L['yellow'](bH(0x72)+V+bH(0x127))),console['log'](a0L[bH(0x226)](bH(0x1b5))),console['log'](a0L[bH(0x226)](bH(0x294))),'linux'===process[bH(0x137)]&&(console[bH(0x1ca)](a0L['green'](bH(0x2bf))),console[bH(0x1ca)](a0L['green']('\x20\x20\x20\x20\x20\x20sudo\x20update-alternatives\x20--install\x20/usr/bin/python3\x20python3\x20/usr/bin/python3.12\x201'))),console[bH(0x1ca)]());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+bH(0x15a)+as+'\x22\x20'+Z+'\x20--quiet\x202>&1',{'encoding':bH(0x2cd),'timeout':0x2bf20,'stdio':bH(0x326)}),a0an(Q+bH(0x176)+(Y[as]||as)+'\x22',{'stdio':bH(0x24b),'timeout':0x2710});let at='';try{const au=a0an(Q+bH(0x12f)+as+bH(0x299),{'encoding':bH(0x2cd),'timeout':0x1388})['match'](/^Version:\s*(.+)$/m);au&&(at=au[-0x523+-0xebb+0x13df][bH(0x217)]());}catch{}console[bH(0x1ca)](a0L['green'](bH(0x320)+as)+(at?a0L['gray']('\x20('+at+')'):'')),a1[bH(0x10f)](at?as+'=='+at:as);}catch(av){const aw=String(av?.['stdout']||av?.['stderr']||av?.[bH(0x32f)]||'')[bH(0x284)](-(-0x1*-0x24f1+0x6fd*-0x4+-0x76d)),ax=aw[bH(0xf7)]('\x0a')[bH(0x1b0)](ay=>ay[bH(0x217)]())[bH(0x284)](-(0x2*-0x162+0x4a3*0x7+-0x1*0x1daf))['join'](bH(0x1d0))[bH(0x284)](-0x1bd4+-0x1a8+0x22*0xde,0x1c*0x9d+0x27a+-0x132e*0x1);console[bH(0x1ca)](a0L[bH(0x298)]('\x20\x20✗\x20'+as)+a0L[bH(0x226)]('\x20\x20'+ax)),a2[bH(0x10f)]({'pkg':as,'error':ax}),a3||(a3=aw);}-0x1*-0xf1a+0x894+0x1*-0x17ae===a1[bH(0x1b6)]&&a3&&(console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x1ab)](bH(0x198))),console[bH(0x1ca)](a0L['gray']('\x20\x20'+a3[bH(0xf7)]('\x0a')[bH(0x284)](-(-0x7*0x4c1+0x131a+-0x1*-0xe33))['join'](bH(0x351))))),a0al({'completedAt':new Date()[bH(0x246)](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2[bH(0x1fc)](ay=>ay[bH(0x1be)])}),console['log'](),0x12c5+0x24f5*0x1+-0x37ba===a2[bH(0x1b6)]?a0a9(bH(0x2ea)+X['length']+bH(0x166)):0x1*-0x103a+-0x2248+0x3282===a1[bH(0x1b6)]?(a0aa('Setup\x20failed\x20—\x200\x20of\x20'+X[bH(0x1b6)]+bH(0x166)),console[bH(0x1ca)](),console[bH(0x1ca)](a0L['yellow'](bH(0x23d))),-0x2c2*-0x6+-0x220a+-0x1181*-0x1===a0[0x112*0x11+-0x37*-0xa1+0x34c9*-0x1]&&a0[0x1322+-0x23*-0x101+-0x97*0x5c]>=0x2*-0xa7b+0x527*-0x5+0x2ec6?(console['log'](a0L['gray'](bH(0x266))),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x24f)))):(console[bH(0x1ca)](a0L[bH(0x226)](bH(0x1c1))),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x132))+a0L[bH(0x348)](Q+bH(0x361))+a0L[bH(0x226)](bH(0x9d))),console[bH(0x1ca)](a0L['gray'](bH(0x1c7)))),console[bH(0x1ca)](),console['log'](a0L[bH(0x12b)]('\x20\x20Rerun\x20when\x20fixed:\x20')+a0L['bold'][bH(0x348)](bH(0x30f)))):a0ab(a1[bH(0x1b6)]+'/'+X['length']+bH(0x187)+a2['length']+bH(0x1fb)+a2[bH(0x1fc)](ay=>ay['pkg'])['join'](',\x20')),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x348)](bH(0x6b))),console[bH(0x1ca)](a0L['bold'][bH(0x12b)](bH(0x169))),console['log'](a0L[bH(0x348)](bH(0x6b))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x31e)][bH(0x1ab)]('\x20\x20Method\x201:\x20One-liner')+a0L[bH(0x226)](bH(0x2a8))),console['log'](a0L[bH(0x12b)](bH(0x364))),console[bH(0x1ca)](a0L[bH(0x2b1)](bH(0x1dd))),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x278))),console[bH(0x1ca)](),console['log'](a0L[bH(0x31e)][bH(0x1ab)](bH(0x356))+a0L[bH(0x226)](bH(0x2dc))),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0x365))),console[bH(0x1ca)](a0L[bH(0x2b1)](bH(0x2a2))),console['log'](a0L[bH(0x226)](bH(0xcc))),console[bH(0x1ca)](a0L['gray'](bH(0x74))),console['log'](a0L[bH(0x226)](bH(0x259))),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x1a9))),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20>>>\x20exit()')),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x31e)]['yellow'](bH(0x1a7))+a0L['gray'](bH(0x2ae))),console[bH(0x1ca)](a0L[bH(0x12b)](bH(0xf6))),console[bH(0x1ca)](a0L[bH(0x2b1)](bH(0x2af))),console[bH(0x1ca)](a0L['gray'](bH(0x2e5))),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x102))),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20key\x20=\x20xor(ct[:5],\x20b\x22ICOA{\x22)')),console[bH(0x1ca)](a0L['gray']('\x20\x20\x20\x20print(xor(ct,\x20key).decode())')),console[bH(0x1ca)](a0L[bH(0x2b1)](bH(0x1d5))),console['log'](a0L[bH(0x2b1)](bH(0x73))),console[bH(0x1ca)](),console[bH(0x1ca)](a0L[bH(0x31e)][bH(0x1ab)](bH(0x26b))),console['log'](a0L[bH(0x12b)]('\x20\x20During\x20the\x20exam,\x20type\x20')+a0L[bH(0x31e)]['cyan']('hint')+a0L['white'](bH(0xb2))),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20\x22How\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20\x22Show\x20me\x20how\x20to\x20use\x20struct.unpack\x22')),console[bH(0x1ca)](a0L[bH(0x226)]('\x20\x20\x20\x20AI\x20budget:\x2025K\x20tokens\x20for\x20AI4CTF\x20+\x2025K\x20for\x20CTF4AI')),console[bH(0x1ca)](a0L['cyan'](bH(0x6b))),console['log'](),console['log'](a0L[bH(0x12b)](bH(0x1f0))+a0L[bH(0x31e)][bH(0x348)](bH(0x342))),console[bH(0x1ca)](a0L[bH(0x226)](bH(0x14e))+a0L['bold']['cyan']('back')+a0L['gray']('\x20to\x20return\x20to\x20the\x20main\x20menu.')),console['log']();}),B[bb(0xb8)](()=>{const bJ=bb;a0a8(bJ(0x2e1));const F=a0Y();if(F){a0ae(bJ(0x236)+F[bJ(0x10e)][bJ(0x301)]),O();const J=Object[bJ(0x12a)](F['answers'])['length'];return a0af(bJ(0x100),J+'/'+F[bJ(0x10e)][bJ(0x22e)]+'\x20answered'),console[bJ(0x1ca)](),void console[bJ(0x1ca)](a0L[bJ(0x226)](bJ(0x1c5)));}const G=a0a3(),H=a0ak();console['log'](),a0ae(bJ(0x317)),console[bJ(0x1ca)](),0x1727+-0xe03+-0x4e*0x1e===G[bJ(0x28b)]?(console['log'](a0L[bJ(0x1ab)](bJ(0x8a))+a0L[bJ(0x1ab)](bJ(0x293))),console[bJ(0x1ca)](a0L[bJ(0x226)](bJ(0xee))+a0L[bJ(0x31e)][bJ(0x348)](bJ(0x335)))):(console[bJ(0x1ca)](a0L[bJ(0x2b1)](bJ(0x168))+a0L[bJ(0x2b1)](bJ(0x20a)+G[bJ(0x28b)]+bJ(0x2b4)+(0x38b*-0x1+0x8a*0x37+0xd0d*-0x2!==G[bJ(0x28b)]?'s':'')+')')),H?(console[bJ(0x1ca)](a0L[bJ(0x2b1)](bJ(0x168))+a0L[bJ(0x2b1)](bJ(0x14a))),console[bJ(0x1ca)](a0L['yellow']('\x20\x20○\x20')+a0L[bJ(0x1ab)](bJ(0x175))),console['log'](a0L[bJ(0x226)](bJ(0xee))+a0L[bJ(0x31e)][bJ(0x348)](bJ(0x342)))):(console[bJ(0x1ca)](a0L['yellow'](bJ(0x8a))+a0L[bJ(0x1ab)](bJ(0xec))),console[bJ(0x1ca)](a0L[bJ(0x226)](bJ(0xee))+a0L[bJ(0x31e)][bJ(0x348)](bJ(0x30f))))),console[bJ(0x1ca)]();});}
1
+ (function(z,B){const aX=a0B,F=z();while(!![]){try{const G=-parseInt(aX(0x36a))/(0x2*-0x28e+-0x6d*0xe+0xb13)+-parseInt(aX(0x203))/(0xe8a+0x2625+0x5d*-0x91)+parseInt(aX(0x25f))/(0x18bd+0x16a0+-0x2f5a)*(parseInt(aX(0x266))/(-0x1*-0x1acf+-0x2*0x869+-0x9f9))+parseInt(aX(0x1fb))/(-0x9a8*-0x3+-0xbcf+-0x1124)+parseInt(aX(0x36f))/(0x3*0x167+-0x239b+0x4*0x7db)*(parseInt(aX(0x3d2))/(-0x2466+-0x24f6*0x1+0x1*0x4963))+parseInt(aX(0x423))/(0x1a78+-0x5c+0x1a14*-0x1)*(parseInt(aX(0x2df))/(0x152f+-0x1*0x657+-0xecf*0x1))+parseInt(aX(0x42d))/(-0x2b*0x97+-0x20bd+0x3a24);if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,-0x1b963+0x29bb*-0x3+-0x34d3*-0x17));import a0L from'chalk';function a0z(){const bK=['vhLWzsaIzxHHBsbZDwjTAxqIihrVigzPBMfSAxnLig5VDYWGB3iGDgHLihnLCNzLCIb3AwXSigf1Dg8TzMLUywXPC2uGD2L0AgLUidmWig1PBNv0zxmU','AhrWtwfYAW','zgfYD2LU','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','icaGicjtAg93ig1LigHVDYb0BYb1C2uGC3rYDwn0lNvUCgfJAYi','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','icbizwXWihvZzwq6ia','Aw5JBhvKzxm','y3j5ChrVz3jHCgH5','qxzHAwXHyMXLiev4yw1ZicG','yw5ZD2vYCW','icaGiokaOIbdAgvJAYb5B3uGAgf2zsbPBNrLCM5LDcaOCgLWlNb5CgeUAw8GBxvZDcbIzsbYzwfJAgfIBguP','icbtDgvWlwj5lxn0zxa6','icdIMQaGuhL0Ag9Uia','icdIMQaGiezjtKfmifnvqK1ju1njt04G4OcuihbSzwfZzsbJB25MAxjT','cIaG','ugHPBgLWCgLUzxm','BwfW','yxr0ywnRAw5N','Bwf0y2G','sMfWyw4','BMfTzq','zxHHBsbXia','icdINjmG','AgLUDa','icaOtwLUAw1HBcbvyNvUDhuGlYbJBg91zcaVifDttdiGAw1Hz2vZig9MDgvUihnOAxaGD2L0Ag91DcbWAxaUkq','vMLLDg5HBq','icbbssbbC3nPC3rHBNq','y29TCgXLDgvKqxq','BMv4DeXHyMvS','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','icbozwvKig1VCMu/ifr5Cgu6ia','sg1Tlcb3B3j0AcbHihnLy29UzcbSB29Rigf0ihrOzsbLBMqU','ihrVigXLyxzLigLJB2e','x2HLBhbvC2vK','l2fUC3DLCG','zw50CMLLCW','C3vIBwL0DgvK','C3rYAwTLDgHYB3vNAa','icbdDxjYzw50BhKGzMXHz2DLzdOG','ic1TigvUC3vYzxbPCcaTlxvWz3jHzgu','drTBmKSGia','igjVBNvZihvZzxmP','C3vIBwL0ifTJB25MAxjTqxjNxq','icaGDxnPBMCGquKSihLVDsDYzsa','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','zxHHBsbYzxnLDa','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','uhL0Ag9Uia','Dg9Rzw4','u3jPieXHBMTH','AwnVys1JBgK','CMvMihb5DgHVBG','icbtDhvJAZ8Grw1HAwWGEw91CIbZzwXLy3rPB24Gy29VCMrPBMf0B3iGD2L0Acb0AguGC2nYzwvUC2HVDcbHyM92zs4','C2nHChK','zgvTBY1LBNrLCG','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwqGyMvMB3jLigvUDgvYAw5NigeGDg9Rzw4U','zxHHBsbSAxn0ia','C3rHCNqGpgLKpG','Bw9YzsbOzwXW','CgfKrw5K','icbuAw1LoIaGica','icHxu0WYkq','icbbBgWGAgvSCcb1C2vKicG','ueftu0ve','icaGiokaOIbzB3uGBwf5igv4AxqGyw5KihjLC3vTzsb3AxrOihrOzsbZyw1LihrVA2vU','BgvUz3rO','icbmyw5NDwfNztOG','CgvYuq','icaGvgHLigzPBMfSihnLy3rPB24GzMXPChmGDgHLihnJCMLWDdOGAw5ZDgvHzcbVzG','imk3ia','icaGutmX4OctmZGGkdGGCxvLC3rPB25Zimk3idyGChrZigvHy2GP','icaGifLVDsbJyw4GBM93ihvZztOG','ihrOzsbJB21WzxrPDgLVBI4','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','l2fWAs9Py29Hl2v4yw0TDg9Rzw4','DgvZDa','ic1JicjPBxbVCNqG','icbTywnpuYaOsg9TzwjYzxCSihjLy29TBwvUzgvKktO','AhrWu3vIBwL0','zxHHBsbWCMv2','tMfTzq','y3LHBG','zxHHBvDHExngB3vUza','zMXVB3i','icbtDwjTAxqGBM93ihDPDgG6ia','Cgn0','iokCKYaGka','y29TBwfUza','igzPCNn0lG','ig1PBNv0zxm','ANnVBG','rMfPBgvKihrVigXVywqGzxHHBxm','lI4U','odiYmta1r1vfB2vr','icaGicaGigvUDgvYifzmqsbHDhrHy2SGBw9KzsbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','r2HHBMe','icdIL48G','icbzB3uGC3rPBgWGAgf2zsa','CxvLC3rPB24','BwLZC2LUzW','icaGicHHAtrJDgyP','rMfPBgvKihrVigXVywqGCMvZDwX0','C3rHCNq','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','ihnRAxbWzwq','cGPgDwXSigf0DgfJAgvKigrHDge6cG','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','4OcuihLVDsDYzsaXlZqGDgHYB3vNAcb0AguGzxHHBq','icaG8j+oRYaGu2vJDgLVBIaZoIbdvey0quKG4OcuienOywXSzw5Nzsb0AguGquK','Bsb0B3rHBa','C2v0uMf3tw9Kzq','qwXTB3n0ihjLywr5lI4U','ihbHy2THz2vZigLUC3rHBgXLzc4','qMfUz2XHzgvZAa','vxbSB2fKAw5NigfUC3DLCNmUlI4','Cgf1C2u','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','yM9Sza','ihrVihnLzsb5B3vYihjLC3vSDhmH','CgXHDgzVCM0','ic0TDMvYC2LVBG','EwvSBg93','C2XPy2u','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','ChvZAa','icbdB3vSzcbUB3qGCMvHy2GGC2vYDMvYigzVCIbOzwXWlIbdAgvJAYb5B3vYignVBM5Ly3rPB24U','Dg9ju09tDhjPBMC','s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','CMfUzg9T','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','ChjLDG','icaGicbqCM9TChqGAw5Qzwn0Aw9Uimk3igfKDMvYC2fYAwfSigfUywX5C2LZimk3iefjigf1zgL0Aw5N','D2LUz2v0igLUC3rHBgWGls1PzcbqExrOB24UuhL0Ag9UlJmUmtiGlwu','BM9KztPJAgLSzf9WCM9JzxnZ','icbozxH0ihn0zxa6ia','y2XLyxi','icdIMiuGtMv3ihbLCNnVBMfSigjLC3qH','ihnOyxjLzcbHy3jVC3mGutm54Octnda','icaGzxHHBsbJzw50zxiUiezPBMfSihnJB3jPBMCGyw5KihnLBgvJDgLVBIbHCMuGzgvJAwrLzcbIEq','vgLTzq','uMvJB21Tzw5Kzwq6ignVBxbSzxrLigrLBw8GzMLYC3q','yNm0','tMLJzsbVBMuU','icbtDgfYDgLUzYbLEgfTlI4U','ihWG','icaGid4+pIbJAxbOzxiGpsbbrvmUBMv3kgTLEsWGquvtlK1prevFq0jdlcbPDIK','icaGv2HHDcb5B3uNBgWGzg8GDg9KyxK6','ig5VDcbMB3vUzcaOms0','icHLEhbSB3jLicyGzxHWzxjPBwvUDcK','vgLTzw91DevYCM9Y','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','tg9HzgLUzYbXDwvZDgLVBNmUlI4','C3vKBYbUCg0GAw5ZDgfSBcaTzYbPy29HlwnSAq','icbqCMfJDgLJAw5Nia','icdINjCG','zwDNmte','icaGigTLEsa9ihHVCIHJDfS6nv0SigiIsunpqxSIkq','t3rOzxi','icdIHPiG','Cg9ZDc1YzxbVCNqTCMv0CNK','ihbHy2THz2vZigLUC3rHBgXLzc4G','icaGicaGicHpCIbKB3DUBg9HzcbMCM9Tihb5DgHVBI5VCMCGyw5KienirunligjVDgGGiKfKzcbqExrOB24GDg8','khnLCNzLCI1HDxrOB3jPDgf0AxzLkq','y29YCMvJDa','CgfKu3rHCNq','icbgAwX0zxiGyNKGy291BNrYEtOGzxHHBsbSAxn0ifbflcbLEgfTigXPC3qGq04Sic4UlG','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl21Hy29ZlW','icbr','q3rYBcTd','icbzB3vYihj1BG','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','icdINjmGuhL0Ag9Uia','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','icbuBYbJB250Aw51zsb0AgLZigv4yw06','icdIMiuGuq','icdWN5kHifrYEsb0ExbPBMCG','DgLTzw91Da','zxHHBsbZDwjTAxqGy29UzMLYBq','ihbVAw50CYaOntaLkq','icbrDwvZDgLVBNmGAw4Grw5NBgLZAc4Gvg8GC3DPDgnOigXHBMD1ywDLigzPCNn0oG','u2H1zMzSAw5Nig9WDgLVBNmUlI4','icaG8j+AGcaGu2vJDgLVBIaYoIbbstrdveyG4OcuiefjigLZihLVDxiGDgvHBw1HDgu','r28GDg8GBMv4DcbXDwvZDgLVBG','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','iokaLcbZD2L0y2GGD2L0AdOGBgfUzYa8y29Kzt4','AgvSCf91C2vK','icaGzMLUAxnOigfUzcbZDwjTAxq','x2HLBhbnyxG','CMvM','l2HLBha','BMf0Aw9UCW','icdWN46bicS','ywK0y3rM','rMXHz2DLzdOGica','Dwj1BNr1','BgfUz3vHz2u','vwj1BNr1ia','zwDNmtu','rxHHBsbZDgfYDgvKisbuAw1LCIbPCYbYDw5UAw5NlG','icaGicaGicaGia','CgvYzMvJDfnJB3jL','CgLSBg93','BM93','icbtDgfYDdOGzxHHBsbZDgfYDca8Awq+','icdILRGG','icaGieeVqI9dl0q','icbszxzPzxCGDw5HBNn3zxjLzcbXDwvZDgLVBNm6ia','D2L0Aa','igzVCIb0AgLZihnLy3rPB24','vgLTzsbszw1HAw5PBMC','zgvTBW','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','icbzB3vYigfUC3DLCJOG','icbjBNn0ywXSAw5Nia','icaGicbjBNnPzguGy2HHDdOGicaG','z2v0rxHHBxm','DxrMltG','icbcB251CYbOzwXWigfSCMvHzhKGDw5SB2nRzwqU','tg9HzgLUzYbLEgfTlI4U','rxHHBsbLEhbPCMvKigfUzcbJBgvHCMvKlG','C3vIBwL0rxHHBq','yMvZDfbLCMnLBNrHz2u','AM9PBG','ihbYB21WDcWGANvZDcbSAwTLihrOzsbKzw1V','y2f0zwDVCNK','icaGicbfEgL0ignOyxq6icaGicaG','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','icaGv2vSy29Tzsb0BYb0AguGChjHy3rPy2fSienurIbZzwn0Aw9UlIbszwfS','itXJBwq+ia','icaGifb5DgHVBIaZlJeZigLZihrVBYbUzxCG4Ocuig1VC3qGq1rgigXPyNjHCMLLCYbSywnRihDOzwvSCY4','ica+ia','lcbUB3qGEw91CIb0zwfTBwf0zq','mJe5ndG0vLvjrhnr','icdcTYaG','BgLUDxG','t24GDgHLig1VBMv5lG','C3rHCNrfEgfT','mta0mteWmMjKtxzxwq','icboB3rLoIb5B3uGDhLWzwqGysbKAwzMzxjLBNqGDg9Rzw4UievHy2GGzxHHBsb0B2TLBIbPCYbIB3vUzcb0BW','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','yxbWBgLJyxrPB24VANnVBG','khbYzxnZigfUEsbRzxKGDg8GC2TPCcK','u3bLy2LMEsbLEgfTieLeoIbLEgfTihjLC3vSDca8Awq+','AgLUDcbHic8GyIaVigm','BwLU','Cvr1Dg9YAwfS','icaGig5LEhq','rw52AxjVBM1LBNqGCMvHzhKHiefSBca','ixb5DgHVBJmGlI4U','icaGidiUieLUC3rHBgWGsg9TzwjYzxCGzMLYC3qGkhDLigrPzcbUB3qGzMLUzca','ywLvC2fNzq','C29Tzq','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','ixb5DgHVBJmGC29SDMuUChK','AxnbCNjHEq','yw5ZD2vY','icdINjmGie1dusbZzwn0Aw9UignVBxbSzxrLiokaLcb3zwXSigrVBMuH','CxvLC3rPB25Z','CMvZDw1L','tM8GDgLTzsbSAw1PDa','CMv2Awv3','icbnzxrOB2qGmtOGt25LlwXPBMvY','rw50zxiGzxHHBsb0B2TLBIb0BYbIzwDPBG','C3rKAw8','zxHHBsbUzxH0','AhrWqw5ZD2vY','rNjHBMnL','icbuExbLicjOzwXWiIbVBIbHBNKGCxvLC3rPB24GDg8GDxnLlG','zwDNnq','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','igf0DgvTChq','icaGicaGia','D2HPy2G','yM9VA21HCMTZ','y2f0','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','icaGiokaOIbuCNK6ia','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','D3jVBMC','icbszxj1BIb3AgvUigzPEgvKoIa','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMuTCNvUigv4yw0GC2v0Dxa6','igrLDgvJDgvK','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','icaGicaGC3vKBYb1CgrHDguTywX0zxjUyxrPDMvZic0TAw5ZDgfSBcaVDxnYl2jPBI9WExrOB24Zihb5DgHVBJmGl3vZCI9IAw4VChL0Ag9UmY4XmIaX','C2vZC2LVBG','u2nVCMu','iefjihn5C3rLBxmU','uxvLC3rPB24G','ic1TihbPCcbPBNn0ywXSic0Tzhj5lxj1BIbWAxaGmJ4Mmq','rgvTBYbJB21WBgv0zwqGka','quKGDg9Rzw5ZoIa','icaGiefjoIaGicaGidi1sYbbstrdveyGkYaYnuSGq1rgnefjihrVA2vUCW','rw52AxjVBM1LBNqGywXYzwfKEsbZzxqGDxa','ihvUzMXHz2DLzc4','AxnuvfK','icbqBgvHC2uGCMuTDhLWztOG','zxHHBsbZDwjTAxq','icaGsg93ihrVihDVCMS','icaGutm54OctndaGkdiGCxvLC3rPB25Zimk3ide2ihb0CYbLywnOiokaLcbOAwDOzxn0ihzHBhvLisK','zxHHBsbXide','AwnVyq','igzSywDNzwqGzM9YihjLDMLLDY4','icaOChjLDMLVDxmGzxHHBsbZzxnZAw9Uigv4CgLYzwqG4OcuignSzwfYzwqGC3rHDguSihn0yxj0Aw5NigzYzxnOihDPDgGGEw91CIbUzxCGDg9Rzw4P','qw5ZD2vYihnVBwuGCxvLC3rPB25ZigzPCNn0oIbLEgfTiheGmq','zhvYyxrPB25nAw51DgvZ','C2nVCMu','uxvLC3rPB25Z','C3rKAw4','igf0igfUEsb0Aw1LlG','icdWN5Ieie9UBhKGmIbVChrPB25ZigXLzNqG4OcuihLVDsbNB3qGDgHPCYe','icdWN5Miie1HEcaYigHLBhbZihbLCIbXDwvZDgLVBIdIGjqGEw91igfSCMvHzhKGAgf2zsbHiduWlZuWiq','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','D3jPDgu','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','lI4VBgLIl3bSyxrMB3jTlMPZ','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','4PQGicbfweLuigLJB2eGzMLYC3qG4OcuigLUC3rHBgXLCIbJyw5UB3qGCNvUigLUC2LKzsb0AguGChjVBxb0','icbozxCGzxHHBxmGyxjLignVBwLUzYbZB29Uiq','CgvYy2vUDgfNzq','CM91BMq','u3vIBwL0igv4yw0GzM9YigDYywrPBMCGkhvZztOGiMv4yw0GC3vIBwL0ignVBMzPCM0IigzVCIbYzwfSigv4yw1Zkq','icbxAw5KB3DZicH3Aw5NzxqSihjLy29TBwvUzgvKktO','x2vSAw1PBMf0zwq','zxHHBsbTB3jLlwHLBha','yMvZDa','iIaYpI9KzxyVBNvSBa','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','icaGicdILQmG','lIboBYb0Aw1LCI4GrNjLzsbWCMfJDgLJzs4','icaGig1VCMuGAgvSCa','ihvUyw5ZD2vYzwq6ia','icaGiokrOYa','icaGicbfEgfToIaG','C19HAtrJDgy','icbiB3CGDg8GDxnLifb5DgHVBIbPBIbjq09bienmsq','n3LbCMvuEG','icaGifnVBwuGCgfJA2fNzxmGkhb3BNrVB2XZlcbZy2fWEsKGBwf5ig5VDcbOyxzLihDOzwvSCYb5zxqGzM9YidmUmtmU','icbzB3uGD2LSBcbZDwjTAxqG','xsaG','rxHHy3rSEs4','Ew91CKfUC3DLCG','ChL0Ag9UvMvYC2LVBG','icdcTYblzwvWihnOyxjWzw5PBMC6ia','qw5ZD2vYzwq6ica','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','icaGC2vJDxjPDhKGDgfZA3mG4OcuignYExb0BYWGD2vIlcbMB3jLBNnPy3mSihb3BI4','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','icbjBIb0AguGBwvHBNrPBwuSihrYEtOG','DdeW','yMvHDxrPzNvSC291Cdq','D2LUmZi','zxHHBvDHExnuB1nVBhzL','mJuSmdaWihrVA2vUCW','uhjVz3jLC3m','D2HPDgu','uhjLCgfYAw5Nigv4yw0Gzw52AxjVBM1LBNqUlI4','icbezxrLy3rLzdOG','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','icbfEgfTCgXLoIa','icaGigv4yw0GCMv2Awv3','icbszwfKEt8GvxnLia','C2HVD25xyxjUAw5NCW','l3n1yM1PDa','icaGiokgKIbIj0HLBgXVjW','u291DgGGqwzYAwnH','icaOuMv0CNKGD3jVBMCGB25SEsK','icaGigjHy2S','C3vIC3rYAw5N','zw5JB2rPBMC','icbbC3nPC3rHBMnLoG','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','icaGicbbssb0B2TLBNm6icaGicaG','vw5HBNn3zxjLza','sw5KAwe','lI4VBgLIl2rLBw8TzxHHBs5QCW','u3vIBwL0DgvK','vgvHBsb1Ccb3AxrOiefjihrVihnVBhzLienurNm','EJmTC29SDMvY','zwDNnW','u3vIBwL0igzHAwXLza','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','icaGiefjigj1zgDLDdOGmJvlihrVA2vUCYbMB3iGquK0q1rgicSGmJvligzVCIbdvey0quK','ihbHy2THz2vZlIbszxrYEwLUzY4UlG','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','y2XVy2TpzMzZzxrnCW','icaGiokrOca','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbsq','igLZigzYzwuSihvUBgLTAxrLzcbWCMfJDgLJzs4','u3rYB25NzxiGAgvYztOGia','y2vPBa','zxHHBsbZDwjTAxqG','BwfJt1m','twfJyxu','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','CgTN','ue9tva','CMvK','uM9VBsb0BYbNCM93oIaGia','CgLWzq','icbSyw5NigvZicHfC3bHW7fVBcKGWRCGBgfUzYb6AcaO5lIT5PAhksdcTYbSyw5NigTVicJTLzZQTA3SLRqPimk3igXHBMCGAMeGkoAxPEACRoIQNIK','vMLLDYbXDwvZDgLVBIaOB3iGywXSihf1zxn0Aw9UCYK','z3jHzgLUzW','zgvHzgXPBMvtzxj2zxjnCW','icbODhrWCZOVl2LJB2eYmdi2lMf1','vxnLCI1bz2vUDa','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','q3j5ChrV','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','zMLUza','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','ywn0Aw9U','zgLT','u3vIBwL0igL0igzPCNn0oIbLEgfTihn1yM1PDa','sw5KB25LC2LH','zxHHBsbKzw1V','icaGid4+pIbLEgL0kcK','oePit3rUva','icaGiokaOIbpBIblywXPl1vIDw50DsaYmIS6ig1Pz2H0ig5LzwqGChL0Ag9UmY4XmI1KzxyGkYbIDwLSzc1LC3nLBNrPywW','igHLBhbZihjLBwfPBMLUzY4GvxnLihrOzw0GzMLYC3qH','C3bSAwnL','CgfZC2LUz1nJB3jL','icaGifbHy2THz2vZoIa','tM8GzxHHBsbPBIbWCM9NCMvZCY4','ChL0Ag9UmW','q29TCgXLDguGDgHLigrLBw8GzMLYC3qGyMvMB3jLihnLDhrPBMCGDxaU','icaGiokrOsa','nZi3nZiWywzPCK1W','Aw5KzxHpzG','zxHWBgfUyxrPB24','y291BNrYEq','icaGiokgKIa','zxHHBsbHBNn3zxiG','C3vKBYbHChqGAw5ZDgfSBcaTEsbWExrOB24ZlxbPCcbWExrOB24ZlxzLBNy','ihrVihDPCguGBg9JywWGC3rHDguSihrOzw4GCMuTzw50zxiGDgHLig5LDYb0B2TLBI4','Dgv4Da','icaGiokaOIbtzxj2zxiGyxv0BY1MAw5HBgLZzxmGEw91CIbHBNn3zxjZigLMihLVDsbKBYbUB3qGC3vIBwL0igjLzM9Yzsb0AguGzgvHzgXPBMu','icaGicaGifrOzw4GAw5ZDgfSBcbqExrOB246','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','Dg90ywXty29Yzq','icaGiokCKYbZyxzLza','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','txLHBM1HCG','ywrK','rgvTBYbszxrYEsdIGjqGv3jVBMCGuxvLC3rPB25Zie9UBhK','zxHHBuLK','zgvTB0LUDhjVu2vLBG','rwXPBwLUyxrLig9Uzsb3CM9UzYbVChrPB24GkgXPBwL0zwqGDxnLCYK','icHXDwLJAYb0yxnRCYK','icHr','ChjLlxDYAxr0zw4GCgvYihf1zxn0Aw9U','icbdAgvJAYbLEgfTCYbMB3iGEw91CIbJB3vUDhj5oG','rMXHz2DLzcbMB3iGCMv2Awv3','qw5ZD2vYideWihf1AwnRihf1zxn0Aw9UCW','zwXPBwLUyxrLzca','AhrWtMf2','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','zw5KC1DPDgG','icaGicaGC3vKBYbHChqGAw5ZDgfSBcbWExrOB24ZlJeYihb5DgHVBJmUmtiTDMvUDG','z3jHEq','Ag93vg9qBgf5','zxHHBsbZDgfYDca','ic0TCxvPzxqGmJ4Mmq','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','CMvWzwf0','icbMyxiGBw9YzsbZBw9VDgHSEsbPBNnPzguGv1nmmIbvyNvUDhuU','C3rKzxjY','tK9uifbbu1nfra','Aw50zxjHy3rPB25Z','icboBYb3CM9UzYbXDwvZDgLVBNmGDg8GCMv0CNKUifj1BIa','Dg9Rzw4GpgnVzgu+','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','icaGDgHLig9Yz2fUAxPLCIbPBIb5B3vYignVDw50CNKU','8j+pM++4JW','icaGieHLBha6icaGideWihvZzxmGkYa1igHPzgrLBIbIB251CYaOtunrig9UBhKP','Bw9Yzs1OzwXW','C3vKBYbHChqGDxbKyxrL','ywK0y3rMpG','icbfEgfToIaGica','zxHHBsbYzxn1BhqG','icaGuhjLC3mGyw55igTLEsb0BYbZDgfYDcbKzw1VlI4U','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','rxHHBxmG4Ocuia','l2fWAs9Py29Hl2v4yw1ZlW','tMv3ifPLywXHBMq','icdIMiuG','zgf0yq','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','lI4VBgLIl2nVBMzPzY5QCW','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','icbzB3uGy2fUihbHDxnLihDPDgGG','C3LTChK','AhrWtgfUzW','q29TCgXLDguH','iefjnenurG','icaGig1HCMS','q2HPBMe','quXm','BNvTyMvY','u2f1zgKGqxjHyMLH','yxr0zw1WDhm','zgvZy3jPChrPB24','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','sunpqsboyxrPB25HBcbtzwXLy3rPB24GrxHHBq','yNjLDW','ywK0y3rMrgvZyW','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','icbcEsbJyxrLz29YEq','zw1VAMK','icaGihzSytrJDgy','icbVCIaG','ig1PBNv0zxmGBgvMDc4Gs2vLCcb0AguGCgfJzsbZDgvHzhKU','CdeW','icaGideUifr5CguG','icbfEhbLy3rLzdOGms0Yig1PBNv0zxmGWRCGFJe1me1cigrPC2S','AgvSCfvZzwrvCa','vgLTzsbLEhbPCMvKlG','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','icaGicfWExrOB24Z','y2f0zwDVCNLtDgf0CW','icaGicbZDgLSBcbHy3rPDMuGyw5Kig5VDcbZDwjTAxr0zwqSihjLlwvUDgvYAw5NihrOzsbZyw1LihrVA2vUihjLC3vTzxmGAxqU','ChDU','ifSGxsaG','icaGicbnzxnZywDLCYdIHPiGquKGDgfYz2v0iokaLcbJCMfMDcbWCM9TChrZihrVigjYzwfRigL0CYbYDwXLCY4','iokgKIa','ChDUDg9VBhm','icaGicaGicaGicaGicaGicaGzxmGWRCGEMGGWRCGAMeGWRCGA28GWRCGyxiGWRCGzNiGWRCGChq','icaGicbtB2X2zsa','ihjLBwfPBMLUzYK','igfUC3DLCMvK','l2v0yY9VCY1YzwXLyxnL','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','lI4VBgLIl3bHCgvYlxvWz3jHzguUANm','CxvPDa','icdIMQaGCgLWig5VDcbMB3vUzcWGDhj5Aw5NigvUC3vYzxbPCc4UlG','icaGidiUieLUigfUiefKBwLUAxn0CMf0B3iGug93zxjtAgvSBcWGCNvUoG','igLZigeGChjHy3rPy2fSihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0AcbHigzSywCSig5VDcbHigXLDhrLCI4','AhrWtw9YzuHLBha','icbvC2u6igv4yw0GCMv2Awv3imk3igv4yw0GC3vIBwL0','rw52AxjVBM1LBNqGCMvHzhK','y3rMzfvYBa','icbB','zgvTBY1MCMvL','CgfZC2vK','zNjVBq','icdWN5kHie9WDgLVBIa','icbtzwuGywXSigzSywDNzwqGCxvLC3rPB25ZigLUoIa','y29TCgXLDgu','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','uMv2Awv3oIa','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','icaGicaGicbqqvriiIaRicjjBNn0ywXSihbPCciGzhvYAw5NihrOzsbPBNn0ywXSzxiUkq','C19JDgy0ywK','icbdB250Aw51zsb0AgLZigv4yw06','z2v0vgLTzq','A2v5CW','zxHHBsa8Dg9Rzw4+','icaGihn1zg8Gyxb0ihvWzgf0zq','icaGicjiB3CGzg8GssbKzwnYExb0ieffuY1dqKmGAw4GuhL0Ag9UpYi','icaGienVBxbSzxrLzdOG','z3jLzw4','icaGWRCGmtuSmdaWkYbJB25JDxjYzw50ihbHCNrPy2LWyw50CW','qw5ZD2vYzwq','oJaW','B3b0Aw9UCW','u3rHCNrPBMCGDgLTzxiUlI4','ihn0AwXSigzSywDNzwqGzM9YihjLDMLLDZOG','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwq','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icbpCIb0ExbLia','rxHHBsaI','icbxAgf0ig5LEhq','icaGsg93ihrVigf0DgfJAW','uMv0CNKGB25SEsb0AguGCxvLC3rPB25ZihLVDsbNB3qGD3jVBMCGBgfZDcbKzw1Vigf0DgvTChq','Dg9tDhjPBMC','u2vYDMvYig5VDcbYzwfJAgfIBguUienOzwnRihLVDxiGAw50zxjUzxqGy29UBMvJDgLVBI4','icdIMiyGuq','DgfYz2v0','icaGidiUieLUifbVD2vYu2HLBgWSigLUC3rHBgWGuhL0Ag9UihDPDgGGCgLWoG','icaG4PElicbtDwjTAxnZAw9UigfJy2vWDgvK','Cg9PBNrZ','C2vYDMvYx3rPBwvFBxm','BwvZC2fNzq','icaGihn1zg8Gzg5MigLUC3rHBgWGlxKGChL0Ag9UmY4XmG','zxHHBsbOzwXW','icaGicaGC3rHCNqGuhL0Ag9UihnOzwXS','sw4GuhjVz3jLC3m6ia','BMv4Da','icaGigjYzxCGAw5ZDgfSBcbWExrOB25amY4XmG','l2fWAs9Py29Hl3nLCNzLCI10Aw1L','zwXPBwLUyxrLza','icdINjmGCgLWigLUC3rHBgXLza','BwfYAYbBBL0','zMLUzeLUzgv4','icbuCM91yMXLC2HVB3rPBMC6','zxHHBu5HBwu','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icaGWRCGmteWienurIb0B29SCYbWCMuTy29UzMLNDxjLza','icaGifb5DgHVBJOG','icbqCMvZCYbfBNrLCIb0BYbIzwDPBI4UlIa','zMLSDgvY','icbgzwrVCMeGlYbssevmoG','C3rYAw5NAwz5','icboBYbHy3rPDMuGzxHHBsbZzxnZAw9UihrVihjLC2v0lG','Dg9Vx29Sza','icaGu3LKBMv5lcbbDxn0CMfSAweGimk3icbkDw4GmJCG4OctieP1BcaYlcaYmdi2','icaGicbfBNrLCIbJAgf0oIaGicaG','icaGicaGicaGkgn0zJrHAsK','vg90ywW','Axnoyu4','ig1PBG','zMfPBa','DhLWzq','q291BgqGBM90igLUC3rHBgWGCgLWiokaLcbWAxaGAxmGBM90igLUC3rHBgXLzcbVBIb5B3vYihn5C3rLBs4','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','y3vYBcaTzNnttcbODhrWCZOVl2rLyI5UB2rLC291CMnLlMnVBs9Zzxr1Cf8YmI54ihWGC3vKBYaTrsbIyxnOic0','igvSAw1PBMf0zwqH','icaGicHYzwXHDgL2zsb0BYbVDgHLCIbJyxrLz29YAwvZiokaLcbUDw1LCMLJihnJB3jLCYbNBYb0BYb5B3vYigv4yw0Gy2vUDgvYkq','ls11C2vYic0TyNjLywSTC3LZDgvTlxbHy2THz2vZ','C3bSAxq','twfSyxLZAwe','icbdyw5JzwXSzwqU','sunpqsbezw1Viev4yw0G4OcuiezYzwuGuhjHy3rPy2u','ChLJCNLWDg9KB21L','icdIMQaGifjLC2v0ihDPBgWGywjHBMrVBIb5B3vYign1CNjLBNqGzxHHBsbZzxnZAw9Uig9UihrOAxmGzgv2AwnLlG','C3rHDhvZ','wYbD','icbuBYbNBYbIywnRoIaG','icaGia','qNjHEMLS','u291DgGGs29Yzwe','iokaLcb5B3uGy2fUBM90ignOyw5Nzsb0AgvTigfMDgvYihn1yM1PDc4','Dw5KzxjSAw5L','ihjHBMrVBsbXDwvZDgLVBNmGzNjVBsbHihbVB2WGB2yG','Dg9mB3DLCKnHC2u','sgfJAYb0AguGquKNCYbNDwfYzhjHAwXZ','CxvLC3rPB25dB3vUDa','icaGicfJyxqGpdWGj0vprICGpIbZB2X2zs5WEq','igzVDw5KlcbIDxqGmY4XmcSGCMvXDwLYzwqGzM9YihrOzsbLEgfTlG','uMvHzhKH','q291BNrYEq','C3vIBwL0DgvKqxq','x2HLBhbqzxjr','zhvYyxrPB25nAw4','yxr0ywnOzwreyxrH','ica0mcSGy291BNrYAwvZigfUzcbYzwDPB25ZihjLChjLC2vUDgvK','icbpChrPB25ZigHHDMuGyMvLBIbYzxnODwzMBgvKlG','q29UDgvUDc1uExbL','zMfPBgvKugfJA2fNzxm','CMvWBgfJzq','icaGicbiAw50CYbbl0iVqZOGicaG','zxHHBvDHExnbAtrJDgy','y2HHBMDLzcbMCM9Tia','AgvSCfjLBw92zq','rhvYyxrPB24','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','AxnsyxC','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','C3vKBYbHChqGAw5ZDgfSBcaTEsbUB2rLANmGChL0Ag9UmY1WAxaGChL0Ag9UmY12zw52','nZa5mJa1qvDouw5h','z2v0uMvZDwX0','C3rKB3v0','zxHPDa','icaOugfWzxiGqYb0B2TLBNmGC2TPCcb0AgLZigDHDguG4OcuifbHCgvYiemGAxmGtunrlw9UBhKP','icbqCMvZCYbfBNrLCIb0BYbZDgfYDcb0AguGzxHHBsb0Aw1LCI4UlIa','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbssaYmdi2','tgfVCW','ntu4ote4uvzPA25S','icbjzIb5B3uGBMvLzcb0BYbHyMfUzg9UihrOAxmGC2vZC2LVBIaOzs5NlIbLEhbPCMvKic8GD3jVBMCGCgfWzxiPla','AgvSCa','icbezw1VoIa','icbbCMnOic8GtwfUAMfYBZO','igfUzcbWCMvZCYbfBNrLCIb0BYbSzwf2zsbPy29H','v2LUzg93CYbUyxrPDMuGkfbVD2vYu2HLBgWGlYbJBwqP','yw5ZD2vYzwq','y2f0y2G','rvHqsvjfra','B25Jzq','icbnzxrOB2qGmJOGsw50zxjHy3rPDMuGuhL0Ag9U','CsbBBL0','q2HLy2SGEw91CIb0B2TLBIbVCIbJB250ywn0ihLVDxiGChjVy3rVCI4','DxnLza','y29UzMLYBwvKqxq','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','uMvZDwX0igXVywrLza','ihf1zxn0Aw9U','zxHHBsbZzxr1Ca','r0vu','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIa','Dg9vChbLCKnHC2u','u3rHDhvZ','ig9YigXLyxzLihDPDgGG','AhrWuMv2Awv3','y3rMngfP','CdmW','icdcTYbzB3vYig5HDgLVBMfSig9Yz2fUAxPLCIb3AwXSigfUBM91BMnLihnLBgvJDgLVBIbYzxn1BhrZlG','icaGigXHBMC','ihbVAw50CW','vw5PDgvKifn0yxrLCW','icbtDgfYDcbHifb5DgHVBIbZzxnZAw9Ulcb0ExbLignVBw1HBMrZig9UzsbIEsbVBMu6','icaGww91CIbHBNn3zxjZigHHDMuGyMvLBIbYzwnVCMrLzcbHBMqGC2vUDcb0BYb5B3vYig5HDgLVBMfS','DM9SyxrPBgL0Etm','icaGigHLBha','icdIMiuGtwfYA2vKigzVCIbYzxzPzxC','C3vIBwL0ieLdt0f7lI4UFq','zgvTBY1YzxrYEq','AhrWqMfJAW','ic1TihbPCcbZAg93ici','icaGicfWExrOB24ZihnVBhzLlNb5','CMvTB3zLtgLZDgvUzxi','icbuB2TLBJOGica','DMXH','uK9qz2fKz2v0','icbbBNn3zxjZigfYzsa','icbqCMv2Aw91CYbZzxr1CcbOywqGB25SEsa','AgfZ','vMfSAwrHDgLUzYb0B2TLBI4UlG','icbzB3vYigjLC3q6ia','u2v0DxaGzMfPBgvKiokaLcaWig9Mia','iokgKIbIywnRihrVigv4yw0Sig5HDMLNyxrLihDPDgGG','ienurJrbsq','AwDUB3jL','icaG','icaGidiUieLUihLVDxiGC2HLBgWSihj1BJO','yNjLDYbSAw5Ric0TB3zLCNDYAxrLihb5DgHVBKaZlJeY','icaGihn1zg8Gyxb0igLUC3rHBgWGlxKGChL0Ag9UmY4XmIbWExrOB24ZlJeYlxzLBNyGChL0Ag9UmY4XmI1KAxn0DxrPBhm','ugvYy2vUDgfNzq','icaGihn1zg8GCgfJBwfUic1tihb5DgHVBG','q2HVAwnLig11C3qGyMuGqsWGqIWGqYWGB3iGrc4','ywK0y3rMu3vI','lZmWig11BhrPCgXLlwnOB2LJzsbHBNn3zxjLza','icbtzxj2zxiGzgLKig5VDcbYzxr1CM4Gysb2ywXPzcbVChrPB24UifrYEsbHz2fPBI4','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIb5B3vYignVDw50CNKGEwv0lG','icbuAgLZihf1zxn0Aw9UihjLCxvPCMvZihLVDsb0BYb1C2uGAgvSCcbIzwzVCMuGyw5ZD2vYAw5NlG','Bwf4','icaGica','icaGicbgCMvLignOyxq6icaGicaGyw55ig1LC3nHz2uG4OAsiefjihrLyw1TyxrL','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZlW','vgHHAwXHBMq','y3rMngfPpG','yMfJAW','AwnVyt4','icaGigv4yw0Gyw5ZD2vYidXUpIbjq09bEY4UlN0','BMv3','u3rHCNqGyw4GzxHHBsaOyMvNAw5ZihrPBwvYkq','r28GDg8GChjLDMLVDxmGCxvLC3rPB24','zxHHBsbUyxrPB25Z','icaGidiUifjLAw5ZDgfSBcbqExrOB24GD2L0AcbWAxaGkeHVBwvICMv3igrLDgvJDgvKiokCKYK6','zxHHBq','zxHHBvDHExnszwzqExrOB24','ihLLDc4','icaGiokaOIbbBgWGAw50zxjHy3rPB25ZigfYzsbYzwnVCMrLzcbMB3iGyxvKAxq','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','ueLm','tgLZDcbHDMfPBgfIBguGzxHHBxmGkg9WDgLVBMfSoIaYlwXLDhrLCIbJB3vUDhj5ignVzguP','icdINjmGrxHHBsbZDgf0zsbJBgvHCMvKlG','ihbVAw50C10','lI4VBgLIl2v4yw0TC3rHDguUANm','uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','mZi3mJDvzu5nv2e','y29UzMLYBq','zxHHBsbYzxzPzxC','Dg90ywW','icGZmcbnq1eGkYaXmcbWCMfJDgLJywWP','C3rHCNrLzef0','u2LUz2fWB3jL','nJHTCwf0wuK','icdIL4SG','ugfZCW','ixb5DgHVBJm','icaGihn1zg8GywrKlwfWDc1YzxbVC2L0B3j5ihbWytPKzwfKC25HA2vZl3bWysaTEq','x2XHC3rr','igf0DgvTChrZ','C29YDa','A2v5','DhjPBq','tg9HzgLUzYbYzxn1BhqUlI4','ic8G','qNvYDw5KAq','icbuCNvZDcb5B3vYigLUC3rPBMn0igfUzcbWAwnRig9Uzse','icbuExbLia','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','icbjBNn0ywXSAw5Nifb5DgHVBIbWywnRywDLCYbMB3iGChjHy3rPy2fSihf1zxn0Aw9UCY4','Bg9N','qxvZDhjHBgLH','icbbzNrLCIbPBNn0ywXSAw5NlcbYDw46ia','icaGicbLEgfTigXPC3qGq04','u29SAwqGCgLJAY4','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','ugvYDq'];a0z=function(){return bK;};return a0z();}import{confirm as a0Q}from'@inquirer/prompts';import{ExamClient as a0V}from'../lib/exam-client.js';import{getConfig as a0W,saveConfig as a0X}from'../lib/config.js';import{getExamState as a0Y,saveExamState as a0Z,clearExamState as a0a0,getExamDeadline as a0a1,materializeAttachedData as a0a2}from'../lib/exam-state.js';import{getDemoStats as a0a3,recordDemoAttempt as a0a4,saveRetryQueue as a0a5,getRetryQueue as a0a6,clearRetryQueue as a0a7}from'../lib/demo-stats.js';import{logCommand as a0a8}from'../lib/logger.js';import{printSuccess as a0a9,printError as a0aa,printWarning as a0ab,printInfo as a0ac,printTable as a0ad,printHeader as a0ae,printKeyValue as a0af,createSpinner as a0ag,formatCountdown as a0ah}from'../lib/ui.js';import{t as a0ai}from'../lib/i18n.js';import{getDeviceFingerprint as a0aj}from'../lib/access.js';import{getExamSetup as a0ak,saveExamSetup as a0al,isExamSetupComplete as a0am}from'../lib/exam-setup.js';function a0B(a,b){a=a-(0x14*0x1d7+0xcd*-0x1+0x31*-0xb5);const c=a0z();let d=c[a];if(a0B['qYhIJU']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0xba0+0x30*0xa5+-0x1350,o,p,q=0x1*0x1153+-0x8d*0x13+0x1b7*-0x4;p=i['charAt'](q++);~p&&(o=n%(0x1769*0x1+-0x2703+0xf9e)?o*(0xacb+-0x17b+-0x910)+p:p,n++%(-0x177d+-0x4*0x449+-0x28a5*-0x1))?l+=String['fromCharCode'](-0x6*-0x5d1+0x8*0x292+-0x3677&o>>(-(-0x2530+0x12c*0x21+0x1b*-0xe)*n&0x1*-0x199f+0x12b3+-0x6f2*-0x1)):-0x45f*-0x1+-0xa3*0x2c+0x17a5){p=j['indexOf'](p);}for(let r=-0x13f3+0x11b+0x648*0x3,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x122d+-0x8*-0x40f+0x17*-0x233))['slice'](-(-0x1*0xc89+0x1abb+0x1*-0xe30));}return decodeURIComponent(m);};a0B['nofGAD']=e,a0B['MccmOf']={},a0B['qYhIJU']=!![];}const f=c[0x8a3+-0xcff+-0xba*-0x6],g=a+f,h=a0B['MccmOf'][g];return!h?(d=a0B['nofGAD'](d),a0B['MccmOf'][g]=d):d=h,d;}import{execSync as a0an}from'node:child_process';const q=z=>new Promise(B=>setTimeout(B,z));function E(B,F={}){const aY=a0B,G=a0W(),H={};H[aY(0x1ef)]=aY(0x373),fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':aY(0x40e),'headers':H,'body':JSON[aY(0x1c2)]({'type':B,'lang':G[aY(0x345)]||'en','timestamp':new Date()[aY(0x300)](),...F}),'signal':AbortSignal[aY(0x332)](-0xba0+0x30*0xa5+0x38)})[aY(0x20b)](()=>{});}function N(z,B){const aZ=a0B,F=Math[aZ(0x3c2)](z/(0x1*0x1153+-0x8d*0x13+0x48*-0x17)*(0x1769*0x1+-0x2703+0xfb8)),G=0xacb+-0x17b+-0x932-F,H=a0L[aZ(0x198)]('█'[aZ(0x452)](F))+a0L[aZ(0x44d)]('░'[aZ(0x452)](G)),J=String(z)['padStart'](-0x177d+-0x4*0x449+-0x6c6*-0x6)+'%';process[aZ(0x1fd)]['write'](aZ(0x2a9)+H+'\x20'+J+'\x20\x20'+a0L[aZ(0x44d)](B));}function M(){const b0=a0B,z=a0W();return z[b0(0x184)]&&z[b0(0x2b2)]?new a0V(z['ctfdUrl'],z[b0(0x2b2)]):(a0aa('Not\x20connected.\x20Run:\x20join\x20<url>'),null);}function O(){const b1=a0B,z=a0a1();z&&(new Date()<z?a0af(b1(0x353),a0L[b1(0x2fb)]['bold'](a0ah(z))):a0af(b1(0x30d),a0L[b1(0x40f)][b1(0x2f7)](b1(0x20c))));}function D(z,B){const b2=a0B;return Array[b2(0x381)](z[b2(0x394)])&&z[b2(0x394)][b2(0x287)](B);}function j(z,B){const b3=a0B,F=Array['isArray'](z[b3(0x394)])?[...z[b3(0x394)]]:[],G=F[b3(0x42e)](B);return G>=-0x6*-0x5d1+0x8*0x292+-0x3776?(F[b3(0x426)](G,-0x2530+0x12c*0x21+0x17b*-0x1),z[b3(0x394)]=F,a0Z(z),!(0x1*-0x199f+0x12b3+-0x6ed*-0x1)):(F[b3(0x2fe)](B),F[b3(0x26d)]((H,J)=>H-J),z['bookmarks']=F,a0Z(z),!(-0x45f*-0x1+-0xa3*0x2c+0x17a5));}function R(B){const b4=a0B,F={};return F[b4(0x211)]=B['_helpUsed']||-0x13f3+0x11b+0x648*0x3,F[b4(0x246)]=B[b4(0x33d)]||0x122d+-0x8*-0x40f+0xf*-0x35f,F[b4(0x2c5)]=B[b4(0x1ea)]||{},F[b4(0x1b6)]=B['_eliminated']||{},F;}function U(z,B){const b5=a0B,F=a0Y(),G=Number(F?.['session'][b5(0x1e4)]||-0x1*0xc89+0x1abb+0x2*-0x70a),H=Object[b5(0x193)](F?.['answers']||{})[b5(0x2c3)],J=R(F),K=J['eliminated'][z['number']]||[],L=b5(0x342)===z[b5(0x1cc)]||'ctf4ai'===z[b5(0x1cc)]||'vla'===z[b5(0x1cc)]||z[b5(0x19c)]&&!z[b5(0x19c)]['A']&&!z[b5(0x19c)]['B'];F&&function(Y,Z){const b6=b5;if(b6(0x186)===Y[b6(0x39f)][b6(0x43f)])return;const a0=new Set(Y[b6(0x3ec)]||[]),a1=Number(Y[b6(0x39f)]['questionCount']||0x8a3+-0xcff+-0x121*-0x4),a2=a0a1();if(-0x2255+-0xed3*-0x2+0x4b9===Z&&a1>=-0x656+-0x1*-0x25b4+-0x1f36&&!a0[b6(0x233)](b6(0x168))){const a3=a2?Math[b6(0x246)](-0xd19*-0x2+0x1152+-0x2b84,Math[b6(0x3c2)]((a2[b6(0x192)]()-Date[b6(0x34c)]())/(-0x42a9+-0x8575+-0x31*-0x8de))):null;console[b6(0x278)](),console[b6(0x278)](a0L[b6(0x44d)](b6(0x390))),console['log'](a0L[b6(0x2d3)]('\x20\x20⏱\x20\x20Time\x20check\x20\x20')+a0L[b6(0x44d)](b6(0x2ed))),null!==a3&&console[b6(0x278)](a0L[b6(0x44d)](b6(0x247)+a3+b6(0x167))),console[b6(0x278)](a0L[b6(0x44d)](b6(0x390))),a0[b6(0x43d)](b6(0x168)),Y[b6(0x3ec)]=Array[b6(0x188)](a0),a0Z(Y);}if(-0xcc1+-0x3*0x5f3+0x1eb8===Z&&a1>=-0x169c+0x3*-0x6c5+-0x2b13*-0x1&&!a0['has'](b6(0x21e))){Object[b6(0x193)](Y['answers']||{})[b6(0x2c3)];const a4=Object[b6(0x193)](Y[b6(0x28a)]||{})['filter'](a5=>Number(a5)<=-0xb*0x155+-0x3*0x8a5+-0xa2d*-0x4)['length'];console[b6(0x278)](),console[b6(0x278)](a0L[b6(0x198)](b6(0x41c))),console['log'](a0L['bold']['green'](b6(0x383))),console[b6(0x278)](a0L[b6(0x44d)](b6(0x247)+a4+b6(0x242))),console[b6(0x278)](a0L[b6(0x3e5)]('\x20\x20↓\x20\x20Practical\x20section\x20begins\x20at\x20Q31.')),console['log'](a0L['gray']('\x20\x20\x20\x20\x20Budget\x20~2\x20min\x20per\x20practical\x20question.\x20You\x20can\x20come\x20back\x20with:\x20next\x20/\x20prev.')),console['log'](a0L[b6(0x198)](b6(0x41c))),a0[b6(0x43d)](b6(0x21e)),Y['shownWarnings']=Array['from'](a0),a0Z(Y);}}(F,z['number']),F&&L&&function(Y,Z){const b7=b5;if(b7(0x186)===Y[b7(0x39f)]['examId'])return;if(Number(Y[b7(0x39f)][b7(0x1e4)]||-0x1f20*0x1+-0xf8a+-0xd*-0x39a)<-0x6*-0x372+-0x5b3*-0x1+-0x1a37)return;const a0=new Set(Y['shownWarnings']||[]);Z>=0x7ce+-0x2*-0x265+-0x1f*0x67&&Z<=-0x2018+-0x5fe+0x1*0x263c&&!a0['has']('s_ai4ctf')?(console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x198)](b7(0x18c))),console['log'](a0L[b7(0x2f7)][b7(0x198)](b7(0x337))),console[b7(0x278)](a0L[b7(0x198)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b7(0x278)](),console['log'](a0L[b7(0x3e5)](b7(0x365))),console[b7(0x278)](a0L[b7(0x3e5)](b7(0x3dc))),console[b7(0x278)](),console[b7(0x278)](a0L['bold']['white'](b7(0x2c8))),console['log'](a0L[b7(0x44d)](b7(0x177))+a0L[b7(0x2f7)](b7(0x351))+a0L[b7(0x44d)]('\x20AI\x20by\x20your\x20side.\x20AI\x20is\x20your\x20teammate.')),console[b7(0x278)](),console['log'](a0L[b7(0x2f7)][b7(0x3e5)](b7(0x3ac))),console['log'](a0L[b7(0x44d)](b7(0x1c6))+a0L[b7(0x2f7)][b7(0x198)](b7(0x342))+a0L[b7(0x44d)](b7(0x174))+a0L['magenta'](b7(0x45f))+a0L[b7(0x44d)](b7(0x361))),console[b7(0x278)](a0L[b7(0x44d)](b7(0x358))+a0L['cyan'](b7(0x376))+a0L[b7(0x44d)]('\x20·\x20')+a0L['cyan'](b7(0x228))+a0L[b7(0x44d)]('\x20·\x20')+a0L[b7(0x2d3)]('!python3\x20...')),console[b7(0x278)](a0L['gray'](b7(0x248))),console[b7(0x278)](a0L[b7(0x44d)](b7(0x363))+a0L[b7(0x2d3)](b7(0x1fe))+a0L['gray'](b7(0x237))+a0L['cyan']('next\x20/\x20prev')),console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x2f7)][b7(0x3e5)]('\x20\x20\x20Budget\x20(shared\x20across\x20Q31–38)')),console[b7(0x278)](a0L[b7(0x44d)](b7(0x3f6))+a0L['white']('25,000')+a0L[b7(0x44d)](b7(0x352))),console['log'](a0L[b7(0x44d)](b7(0x1f2))+a0L[b7(0x3e5)](b7(0x444))),console[b7(0x278)](),console[b7(0x278)](a0L['yellow']('\x20\x20\x20Time\x20still\x20counting\x20down.\x20Budget\x20~2\x20min\x20per\x20question.')),console['log'](a0L[b7(0x198)](b7(0x18c))),console[b7(0x278)](),a0[b7(0x43d)](b7(0x3d0)),Y[b7(0x3ec)]=Array['from'](a0),a0Z(Y)):Z>=-0x123c+-0x1df2+-0x3055*-0x1&&!a0[b7(0x233)](b7(0x190))&&(console['log'](),console['log'](a0L[b7(0x40f)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b7(0x278)](a0L[b7(0x2f7)][b7(0x40f)](b7(0x2ee))),console['log'](a0L['red']('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x3e5)](b7(0x2c6))),console[b7(0x278)](a0L[b7(0x3e5)](b7(0x2ac))+a0L[b7(0x2f7)](b7(0x292))+a0L[b7(0x3e5)](b7(0x3a1))),console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x2f7)][b7(0x3e5)](b7(0x3ad))),console[b7(0x278)](a0L[b7(0x44d)](b7(0x305))),console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x2f7)][b7(0x3e5)](b7(0x1a4))),console[b7(0x278)](a0L[b7(0x44d)](b7(0x1c6))+a0L[b7(0x2f7)][b7(0x40f)]('ctf4ai')+a0L[b7(0x44d)](b7(0x174))+a0L[b7(0x40f)](b7(0x24b))+a0L[b7(0x44d)]('\x20prompt,\x20same\x20shape\x20as\x20demo')),console[b7(0x278)](a0L[b7(0x44d)]('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L['cyan'](b7(0x376))+a0L[b7(0x44d)](b7(0x2c7))+a0L['cyan'](b7(0x228))+a0L[b7(0x44d)](b7(0x2c7))+a0L[b7(0x2d3)](b7(0x37b))),console[b7(0x278)](a0L[b7(0x44d)](b7(0x173))),console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x2f7)]['white'](b7(0x398))),console[b7(0x278)](a0L[b7(0x44d)]('\x20\x20\x20\x20\x20·\x20AI\x20is\x20your\x20')+a0L[b7(0x40f)](b7(0x1a9))+a0L[b7(0x44d)](b7(0x369))),console['log'](a0L['gray']('\x20\x20\x20\x20\x20·\x20Separate\x20budget:\x20')+a0L[b7(0x3e5)](b7(0x3e3))+a0L['gray'](b7(0x30b))),console[b7(0x278)](),console[b7(0x278)](a0L[b7(0x2fb)]('\x20\x20\x20These\x20are\x20the\x20hardest\x20questions.\x20Worth\x2021%\x20of\x20total\x20score.')),console[b7(0x278)](a0L[b7(0x2fb)]('\x20\x20\x20If\x20time\x20is\x20tight,\x20skim\x20Q39/40\x20first\x20to\x20decide\x20attack\x20order.')),console[b7(0x278)](a0L[b7(0x40f)](b7(0x18c))),console[b7(0x278)](),a0['add'](b7(0x190)),Y['shownWarnings']=Array[b7(0x188)](a0),a0Z(Y));}(F,z['number']),F&&function(Y){const b8=b5,Z=a0a1();if(!Z)return;const a0=Z[b8(0x192)]()-Date[b8(0x34c)]();if(a0<=0xfed+-0x2235+0x1248)return;const a1=a0/(-0x6c7*-0x2f+-0xc697*-0x1+0x740*-0x27),a2=new Set(Y['shownWarnings']||[]);let a3=null;if(a1<=0xb3a+-0x265*0xd+-0x62*-0x34&&!a2['has']('t1')?a3={'key':'t1','text':[a0L[b8(0x40f)][b8(0x2f7)](b8(0x46b)),a0L['red'](b8(0x2d6))+a0L['bold'](b8(0x3ab))]}:a1<=-0x155d+-0x3f3+0x1955*0x1&&!a2['has']('t5')?a3={'key':'t5','text':[a0L['red'][b8(0x2f7)]('\x20\x20⚠\x20\x205\x20minutes\x20remaining'),a0L[b8(0x2fb)]('\x20\x20Wrap\x20up\x20and\x20submit:\x20')+a0L['bold'](b8(0x3ab))]}:a1<=-0x1ebd+-0x1*0x1165+0x302c&&!a2[b8(0x233)](b8(0x3df))&&(a3={'key':b8(0x3df),'text':[a0L[b8(0x2fb)][b8(0x2f7)]('\x20\x20⏰\x2010\x20minutes\x20remaining'),a0L[b8(0x44d)](b8(0x350))+a0L[b8(0x3e5)](b8(0x261))]}),a3){console[b8(0x278)](),console[b8(0x278)](a0L[b8(0x40f)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));for(const a4 of a3[b8(0x435)])console['log'](a4);console['log'](a0L[b8(0x40f)](b8(0x41c))),a2[b8(0x43d)](a3[b8(0x26e)]),Y[b8(0x3ec)]=Array[b8(0x188)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const b9=b5,a1=Math[b9(0x3c2)](Y/Z*(0xf*0x20c+0x1e81+-0x3d17*0x1)),a2=-0x487+0x1*0x17f6+-0x1351-a1,a3=a0L[b9(0x2d3)]('━'[b9(0x452)](a1))+a0L[b9(0x44d)]('─'[b9(0x452)](a2)),a4=Math[b9(0x3c2)](Y/Z*(0x2371+-0x16*0x26+0x1fc9*-0x1));console['log'](),console['log']('\x20\x20'+a3+'\x20\x20'+a0L[b9(0x3e5)][b9(0x2f7)](''+Y)+a0L[b9(0x44d)]('/'+Z)+'\x20\x20'+a0L[b9(0x44d)]('('+a0+'\x20answered)')+'\x20\x20'+a0L[b9(0x44d)](a4+'%'));const a5=a0a1();if(a5){const a6=Math[b9(0x246)](0xbf*-0x2e+0x1*-0x9b7+0x1*0x2c09,Math[b9(0x3c2)]((a5[b9(0x192)]()-Date[b9(0x34c)]())/(-0x2*-0xe57+-0x44*-0x92+-0x3f8e*0x1))),a7=Math[b9(0x2d5)](a6/(-0x792+-0x2*-0x7d5+0x7dc*-0x1))+':'+String(a6%(-0x1922+0x1*0x20dd+-0x77f*0x1))['padStart'](-0xce2*0x2+0xd*0x298+-0x7f2,'0'),a8=a6<=0x25*0x107+-0x1c7b+-0x44*0x23?a0L[b9(0x40f)][b9(0x2f7)]:a6<=-0x1135+-0xec7+-0x4*-0x84a?a0L[b9(0x40f)]:a6<=-0x1f2b+-0x1bc*0x11+0x3eff?a0L[b9(0x2fb)]:a0L[b9(0x44d)];console[b9(0x278)]('\x20\x20'+a0L[b9(0x44d)]('⏱\x20Time\x20remaining:')+'\x20'+a8(a7)+'\x20'+a0L[b9(0x44d)](b9(0x324)));}}(z[b5(0x15a)],G,H),F&&D(F,z[b5(0x15a)])&&console[b5(0x278)](a0L[b5(0x2fb)](b5(0x227)));const Q=function(Y,Z){const ba=b5,a0={};a0['pct']=0.2,a0['emoji']=ba(0x45b),a0[ba(0x26e)]='egg3';const a1={};a1[ba(0x2d7)]=0.33,a1['emoji']='🐨',a1['key']=ba(0x38f);const a2={};a2[ba(0x2d7)]=0.5,a2[ba(0x164)]='🌉',a2[ba(0x26e)]=ba(0x3fd);const a3={};a3[ba(0x2d7)]=0.6,a3['emoji']='🦘',a3[ba(0x26e)]='egg9';const a4={};a4['pct']=0.8,a4[ba(0x164)]='🏖️',a4[ba(0x26e)]=ba(0x31d);const a5={};a5[ba(0x2d7)]=0.87,a5['emoji']='🦈',a5['key']='egg13';const a6={};a6[ba(0x2d7)]=0x1,a6[ba(0x164)]='🎉',a6['key']=ba(0x347);const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math['round'](a9[ba(0x2d7)]*Z);if(!(aa<-0x9be+-0x19*-0xb9+-0x852||a8[ba(0x233)](aa))&&(a8['add'](aa),Y===aa))return{'emoji':a9['emoji'],'text':a0ai(a9[ba(0x26e)])};}}(z[b5(0x15a)],G);if(Q&&console[b5(0x278)](a0L['yellow']('\x20\x20'+Q[b5(0x164)]+'\x20\x20'+Q[b5(0x435)])),console[b5(0x278)](),z[b5(0x362)]&&console['log'](a0L[b5(0x2d3)](b5(0x185)+z[b5(0x362)]+']')),z[b5(0x1ac)]&&z['points']>-0x216c+-0xd*0x283+0x1*0x4215&&console['log'](a0L[b5(0x2d3)](b5(0x185)+z['points']+b5(0x25c))),L){let Y=z[b5(0x15d)]||z[b5(0x435)];const Z=a0a2(z[b5(0x15a)],z[b5(0x1ec)]);if(z[b5(0x1ec)]){const a1=/\([^()]*attachedData[^()]*\)/;a1[b5(0x2cd)](Y)?Y=Y[b5(0x1f1)](a1,z[b5(0x1ec)]):Y['includes'](z[b5(0x1ec)])||(Y=Y+b5(0x2eb)+z['attachedData']);}console['log'](a0L[b5(0x2f7)][b5(0x3e5)](b5(0x329)+z[b5(0x15a)]+'.\x20')+a0L['white'](Y[b5(0x1d3)]('\x0a')[-0x2*0x12c9+-0xe*0x243+0x453c]));const a0=Y[b5(0x1d3)]('\x0a')[b5(0x2fc)](-0x851*-0x1+0x643+-0xe93);for(const a2 of a0)console[b5(0x278)](a0L[b5(0x3e5)]('\x20\x20'+a2));if(console['log'](),Z&&b5(0x342)===z[b5(0x1cc)]){const a3=Z[b5(0x1f1)](process.env.HOME||'','~');console['log'](a0L[b5(0x2d3)]('\x20\x20'+a0ai(b5(0x3e2))+'\x20')+a0L[b5(0x44d)]('('+a0ai('examWaysSavedTo')+'\x20'+a3+'):')),console['log'](a0L[b5(0x3e5)](b5(0x404))+a0L[b5(0x2fb)](b5(0x366)+a3)[b5(0x2bd)](0x941+0x54c+0xe59*-0x1)+a0L[b5(0x44d)]('\x20'+a0ai('examWaysShell'))),console[b5(0x278)](a0L[b5(0x3e5)](b5(0x42c))+a0L[b5(0x2fb)](b5(0x269))[b5(0x2bd)](0x259*0x6+-0xd4e+-0xa8)+a0L[b5(0x44d)]('\x20'+a0ai('examWaysPythonRepl'))),console['log'](a0L[b5(0x3e5)]('\x20\x20\x20\x20③\x20')+a0L[b5(0x2fb)]('!vi\x20solve.py')+a0L['gray']('\x20\x20→\x20\x20')+a0L[b5(0x2fb)](b5(0x380))),console[b5(0x278)](a0L[b5(0x3e5)](b5(0x3ce))+a0L[b5(0x2fb)](b5(0x2b5))[b5(0x2bd)](-0x170a+-0x13d5+-0x3*-0xe55)+a0L[b5(0x44d)]('\x20'+a0ai(b5(0x255)))),console[b5(0x278)](a0L[b5(0x3e5)]('\x20\x20\x20\x20⑤\x20')+a0L[b5(0x2fb)](b5(0x342))['padEnd'](0x1d99+-0x11*0xa8+-0x1251)+a0L[b5(0x44d)]('\x20'+a0ai(b5(0x1f3)))),console[b5(0x278)](),console[b5(0x278)](a0L[b5(0x44d)]('\x20\x20'+a0ai(b5(0x2d4))+'\x20')+a0L[b5(0x2f7)]['green'](b5(0x213))),console[b5(0x278)]();}B&&(console[b5(0x278)](a0L[b5(0x198)](b5(0x356)+B)),console[b5(0x278)]());}else{console[b5(0x278)](a0L[b5(0x2f7)]['white'](b5(0x329)+z[b5(0x15a)]+'.\x20')+a0L[b5(0x3e5)](z[b5(0x435)])),console['log']();for(const a4 of['A','B','C','D']){const a5=B===a4;K[b5(0x287)](a4)?console['log'](a0L[b5(0x44d)][b5(0x2a6)](b5(0x1dc)+a4+'.\x20'+z[b5(0x19c)][a4])+a0L['red']('\x20('+a0ai(b5(0x399))+')')):a5?console[b5(0x278)](a0L['green'][b5(0x2f7)](b5(0x34e)+a4+'.\x20'+z['options'][a4])):console['log'](a0L[b5(0x44d)](b5(0x1dc)+a4+'.')+'\x20'+a0L[b5(0x3e5)](z[b5(0x19c)][a4]));}console[b5(0x278)]();}const V='demo-free'===F?.[b5(0x39f)][b5(0x43f)],W=J[b5(0x2c5)][-0x167*0x13+0x701+0x13a6*0x1]||-0x1f27+-0xee2+0x2e09;V&&0x1*-0xd7e+0x1*0x25cf+0x184f*-0x1===z[b5(0x15a)]&&-0x14cb+-0x2c1+0x16*0x112===W&&(console['log'](a0L['yellow'][b5(0x2f7)]('\x20\x20'+a0ai(b5(0x378)))),console[b5(0x278)]());const X=J['max']-J[b5(0x211)];if(console['log'](a0L[b5(0x44d)](b5(0x2af))),L){const a6=F&&b5(0x186)!==F[b5(0x39f)][b5(0x43f)]&&z['number']>=-0x1*-0x6d3+0x32f+-0x9db&&z[b5(0x15a)]<=-0x26b+-0x1d*-0x1b+-0x7c,a7=F&&b5(0x186)!==F['session']['examId']&&z[b5(0x15a)]>=-0x1889+-0x1*-0x11c2+0x6e6&&z[b5(0x15a)]<=0x1f6a*-0x1+-0x2702+0x2349*0x2;b5(0x22f)===z[b5(0x1cc)]?console['log'](a0L[b5(0x2f7)][b5(0x2d3)](b5(0x165))+a0L[b5(0x44d)](b5(0x2e0))):a7?console[b5(0x278)](a0L[b5(0x2f7)][b5(0x198)]('\x20\x20\x20\x20ai4ctf')+a0L[b5(0x44d)]('\x20\x20\x20\x20\x20\x20\x20\x20enter\x20AI4CTF\x20chat\x20for\x20this\x20question\x20(recommended)')):a6&&console[b5(0x278)](a0L[b5(0x2f7)][b5(0x40f)]('\x20\x20\x20\x20ctf4ai')+a0L[b5(0x44d)](b5(0x339))),console['log'](a0L[b5(0x2fb)](b5(0x24e))+a0L['gray']('\x20\x20submit\x20flag\x20directly')),console[b5(0x278)](a0L[b5(0x2fb)](b5(0x16e))+a0L[b5(0x44d)](b5(0x1b1)));}else{const a8=J[b5(0x246)]>=-0x173*-0x17+-0x2498+0x1*0x361,a9=X>-0x74f+0x2*0x7c+0x3*0x21d?a0L[b5(0x44d)](a0ai(b5(0x1f5))+'\x20')+a0L[b5(0x2fb)]('('+X+'/'+J[b5(0x246)]+')'):a8?a0L[b5(0x44d)](a0ai('helpAllUsed')+'\x20('+J[b5(0x211)]+'/'+J['max']+')'):a0L[b5(0x44d)](''+a0ai(b5(0x16b)));console['log'](a0L[b5(0x2fb)]('\x20\x20\x20\x20A/B/C/D')+a0L[b5(0x44d)](b5(0x392)+a0ai('answerThis'))),console[b5(0x278)](a0L['yellow'](b5(0x226))+b5(0x349)+a9);}console[b5(0x278)](a0L[b5(0x2fb)]('\x20\x20\x20\x20next')+a0L[b5(0x44d)](b5(0x271))+a0L[b5(0x2fb)](b5(0x304))+a0L['gray']('\x20\x20\x20\x20'+a0ai(b5(0x449)))),console[b5(0x278)](a0L[b5(0x2fb)]('\x20\x20\x20\x20exam\x20q\x201..'+G)+a0L['gray'](b5(0x23a)+a0ai('htpJump'))),console['log'](a0L['yellow'](b5(0x471))+a0L[b5(0x44d)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(b5(0x281)))),console[b5(0x278)](a0L[b5(0x2fb)](b5(0x3ea))+a0L[b5(0x44d)](b5(0x23a)+a0ai(b5(0x21c)))),console[b5(0x278)](a0L['bold']['yellow']('\x20\x20\x20\x20exam\x20submit')+a0L['gray'](b5(0x23a)+a0ai(b5(0x2d0)))),console[b5(0x278)](a0L[b5(0x2fb)](b5(0x3f1))+a0L[b5(0x44d)](b5(0x349)+a0ai(b5(0x22a)))),console['log'](a0L[b5(0x2fb)](b5(0x220))+a0L[b5(0x44d)](b5(0x349)+a0ai(b5(0x46e)))),console['log'](a0L[b5(0x44d)](b5(0x2af)));}export function registerExamCommand(z){const bb=a0B,B=z[bb(0x2d9)](bb(0x254))[bb(0x15d)]('National\x20selection\x20exam');B[bb(0x2d9)](bb(0x340))[bb(0x15d)]('View\x20all\x20participating\x20countries')[bb(0x41d)](()=>{const bc=bb;a0a8(bc(0x252)),console[bc(0x278)](),a0ae(bc(0x3e8)),console[bc(0x278)]();const F=[['AU',bc(0x279)],['BD',bc(0x2f3)],['BI',bc(0x272)],['BR',bc(0x1dd)],['CN',bc(0x472)],['DE','Germany'],['EG','Egypt'],['FR',bc(0x38d)],['GH',bc(0x2e1)],['ID',bc(0x420)],['IN',bc(0x3f8)],['JP',bc(0x294)],['KR',bc(0x1de)],['LA',bc(0x202)],['LK',bc(0x2b3)],['MM',bc(0x43c)],['MO',bc(0x40b)],['MY',bc(0x1d4)],['NZ',bc(0x466)],['PE',bc(0x27f)],['PH',bc(0x290)],['RU','Russia'],['SA',bc(0x15b)],['SG',bc(0x265)],['TH',bc(0x24a)],['TR','Turkey'],['UK','United\x20Kingdom'],['US',bc(0x222)],['UZ','Uzbekistan'],['VN',bc(0x29a)],['ZA',bc(0x3ef)]];for(let G=0x2101+0x125*-0xd+-0x4*0x488;G<F[bc(0x2c3)];G+=0x3c0+0x1*0x1d55+-0xa6*0x33){const H=F['slice'](G,G+(0x1e7d+0x1f0*-0x9+-0xd0a))['map'](([J,K])=>'\x20\x20'+a0L[bc(0x2d3)](J)+'\x20\x20'+a0L['gray'](K[bc(0x2bd)](0x304*0xa+-0x17cc+-0x64c)))[bc(0x360)]('');console['log'](H);}console['log'](),console[bc(0x278)](a0L[bc(0x44d)](bc(0x1ed))),console[bc(0x278)](a0L['gray'](bc(0x17b))),console['log'](),console['log'](a0L['white'](bc(0x445))),console[bc(0x278)](a0L[bc(0x2d3)]('\x20\x20\x20\x20exam\x20list\x20AU')+a0L['gray']('\x20\x20\x20\x20\x20exam\x20list\x20PE')+a0L[bc(0x44d)](bc(0x27b))),console[bc(0x278)]();}),B[bb(0x2d9)]('list\x20[country]')[bb(0x15d)](bb(0x25a))[bb(0x41d)](async F=>{const bd=bb;a0a8(bd(0x2ba)+(F||''));const G=M();if(!G)return;const H=a0ag('Loading\x20exams...');H['start']();try{let J=await G[bd(0x359)]();if(H['stop'](),F){const Q=F[bd(0x219)]();J=J[bd(0x1c0)](V=>V[bd(0x430)][bd(0x219)]()===Q||bd(0x473)===V['country']);}if(!J||0x272*-0x7+0x985+-0x185*-0x5===J[bd(0x2c3)]){console[bd(0x278)](),a0ac(F?bd(0x218)+F[bd(0x219)]()+bd(0x256):bd(0x244)),console['log'](),console[bd(0x278)](a0L['white'](bd(0x3c0))),console[bd(0x278)](a0L['gray']('\x20\x20National\x20Round\x201\x20Selection\x20exams\x20are\x20being\x20prepared.')),console['log'](),console[bd(0x278)](a0L[bd(0x44d)](bd(0x3de))+a0L['bold'][bd(0x2d3)](bd(0x354))),console[bd(0x278)]();const V={};V['PE']='es',V['CN']='zh',V['JP']='ja',V['KR']='ko',V['BR']='pt',V['SA']='ar',V['FR']='fr',V['DE']='de',V['IN']='hi',V['ID']='id',V['TH']='th',V['VN']='vi',V['TR']='tr',V['RU']='ru',V['UA']='uk',V['HT']='ht',V['KE']='sw',V['TZ']='sw';const W=V,X=(F||'')[bd(0x219)]();return void(W[X]&&(console[bd(0x278)](a0L[bd(0x44d)]('\x20\x20Tip:\x20switch\x20to\x20your\x20language\x20with:\x20lang\x20'+W[X])),console[bd(0x278)]()));}const K=J[bd(0x291)](Y=>{const be=bd,Z=be(0x2a5)===Y['status']?a0L[be(0x198)]:'in_progress'===Y[be(0x1d9)]?a0L['yellow']:a0L[be(0x3e5)];return[a0L[be(0x3e5)](Y['id']),Y[be(0x295)],a0L[be(0x2d3)](Y[be(0x430)]),String(Y['questionCount']),Y[be(0x3b3)]+be(0x1ca),Z(Y[be(0x1d9)])];}),L=[...new Set(J[bd(0x291)](Y=>Y[bd(0x430)]))];a0ae(F?bd(0x464)+F[bd(0x219)]():bd(0x289)+L[bd(0x2c3)]+'\x20regions)'),a0ad(['ID',bd(0x2d2),'Country',bd(0x3b5),bd(0x1f6),bd(0x21a)],K),console[bd(0x278)](),console[bd(0x278)](a0L[bd(0x44d)](bd(0x34d))),L[bd(0x2c3)]>-0x76*-0x29+-0x362*0x6+0x167&&console[bd(0x278)](a0L[bd(0x44d)](bd(0x327)));}catch(Y){H[bd(0x1cb)](bd(0x2dd)),a0aa(Y[bd(0x1ae)]);}}),B[bb(0x2d9)](bb(0x2bb))['description'](bb(0x250))[bb(0x41d)](async F=>{const bf=bb;a0a8(bf(0x44f)+F);const G=a0Y();if(G)return a0ab(bf(0x1a2)+G[bf(0x39f)][bf(0x1bb)]+'\x22\x20is\x20already\x20in\x20progress.'),void a0ac('Use\x20\x22exam\x20review\x22\x20to\x20check\x20progress\x20or\x20\x22exam\x20submit\x22\x20to\x20submit.');const H=M();if(!H)return;const J=await a0Q({'message':a0L[bf(0x3e5)]('Start\x20the\x20exam?\x20The\x20timer\x20will\x20begin\x20immediately.'),'default':!(-0x1b27*0x1+-0x66c+0x2193),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L[bf(0x198)](K)}}});if(J){console[bf(0x278)]();try{N(0x16f9+-0x135b+-0x39e,bf(0x459));const {session:K,questions:L}=await H[bf(0x36e)](F);N(0x188e+0x1ac1+0x3331*-0x1,bf(0x319)),await q(-0x1*-0x1e5b+-0x20cf*0x1+0x33c),N(0x125*-0x1f+-0xd16+0xd*0x3c1,bf(0x3e6)),await q(-0x1d8e+0x15c1+-0xd*-0xa9),N(-0x10d0+-0x1541+0x57d*0x7,bf(0x19d)),await q(0x170f+0x76*0x3b+0x9ef*-0x5),a0Z({'session':K,'questions':L,'answers':{}}),N(-0x15*-0x1c8+0x31*0x28+-0x2cac,bf(0x1e7)),console['log'](),console[bf(0x278)](),a0ae(K['examName']),a0af(bf(0x3b5),String(K[bf(0x1e4)])),a0af('Duration',K[bf(0x3b3)]+bf(0x2db)),a0af(bf(0x1e8),K[bf(0x430)]),O(),L[bf(0x2c3)]>-0x1*-0x19c3+0xc*0xb0+0x1*-0x2203&&U(L[-0x2e1+-0x80b*-0x1+0x2*-0x295]);}catch(Q){console[bf(0x278)](),a0aa(Q['message']);}}}),B[bb(0x2d9)](bb(0x20f))[bb(0x15d)](bb(0x413))['action'](async F=>{const bg=bb;a0a8(bg(0x296)+(F||'all'));const {refetchQuestionDataIfStale:G}=await import(bg(0x25d));await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,-0x2*-0x277+0x1*-0xaed+-0x67*-0xf),K=H[bg(0x384)][bg(0x41b)](L=>L[bg(0x15a)]===J);if(!K)return void a0aa(bg(0x3a2)+F+bg(0x315)+H['questions'][bg(0x2c3)]+').');H[bg(0x26b)]=J,a0Z(H),U(K,H['answers'][J]);}else{a0ae(''+H[bg(0x39f)][bg(0x1bb)]);const L=Object[bg(0x193)](H['answers'])['length'];a0af(bg(0x3e4),L+'/'+H[bg(0x39f)][bg(0x1e4)]+bg(0x179)),console[bg(0x278)]();for(const Q of H['questions']){const V=H[bg(0x28a)][Q[bg(0x15a)]],W=V?a0L[bg(0x198)]('['+V+']'):a0L[bg(0x44d)](bg(0x1da)),X=Q[bg(0x362)]?a0L[bg(0x44d)]('\x20['+Q['category']+']'):'';console['log']('\x20\x20'+W+'\x20'+a0L[bg(0x3e5)]('Q'+Q['number'])+X+'\x20'+a0L[bg(0x44d)](Q[bg(0x435)][bg(0x3f2)](-0x677*-0x4+-0x23b7+0x9db,0xe16+-0x26cb+0x1*0x18f1))+(Q[bg(0x435)][bg(0x2c3)]>-0x2345*0x1+-0xe10+0x3191?bg(0x2de):''));}console[bg(0x278)]();}}else a0aa('No\x20exam\x20in\x20progress.\x20Use\x20\x22exam\x20start\x20<id>\x22\x20to\x20begin.');}),B[bb(0x2d9)](bb(0x1b8))['description']('Flag\x20a\x20question\x20to\x20review\x20later\x20(toggles)')['action'](F=>{const bh=bb;a0a8('exam\x20mark\x20'+(F||''));const G=a0Y();if(!G)return void a0aa(bh(0x429));const H=G[bh(0x384)]['length'],J=F?parseInt(F,-0xb76+-0x523+0x10a3):G['_lastQ']||0x1*0x16e1+-0x1*0x25c+-0x1484;if(Number[bh(0x1c9)](J)||J<-0xa3b+-0x26ab+-0x104d*-0x3||J>H)return void a0aa(bh(0x41a)+H+'.');const K=j(G,J);console[bh(0x278)](),K?console[bh(0x278)](a0L[bh(0x2fb)](bh(0x330)+J+bh(0x3b0))):console[bh(0x278)](a0L[bh(0x44d)](bh(0x1a8)+J+'\x20unflagged.'));const L=Array[bh(0x381)](G[bh(0x394)])?G[bh(0x394)]:[];L[bh(0x2c3)]>-0x16f9*0x1+0x15e+-0x159b*-0x1&&console[bh(0x278)](a0L[bh(0x44d)](bh(0x2a7)+L['map'](Q=>'Q'+Q)[bh(0x360)](',\x20'))),console[bh(0x278)](a0L[bh(0x44d)](bh(0x18a))+a0L[bh(0x3e5)](bh(0x261))),console[bh(0x278)]();}),B[bb(0x2d9)]('unmark\x20[n]')[bb(0x15d)]('Remove\x20review\x20flag\x20from\x20a\x20question')[bb(0x41d)](F=>{const bi=bb;a0a8('exam\x20unmark\x20'+(F||''));const G=a0Y();if(!G)return void a0aa(bi(0x429));const H=G[bi(0x384)]['length'],J=F?parseInt(F,0x939+0xb*0x355+-0x2dd6):G[bi(0x26b)]||0xb*0xf4+0x1980+-0x23fb;Number['isNaN'](J)||J<-0x327+0x2*0xde+0x16c||J>H?a0aa('Invalid\x20question\x20number.\x20Use\x201..'+H+'.'):D(G,J)?(j(G,J),console[bi(0x278)](),console[bi(0x278)](a0L[bi(0x44d)](bi(0x1a8)+J+bi(0x3a8))),console['log']()):console[bi(0x278)](a0L[bi(0x44d)](bi(0x329)+J+'\x20was\x20not\x20flagged.'));}),B[bb(0x2d9)](bb(0x1b3))[bb(0x15d)](bb(0x338))['action'](()=>{const bj=bb;a0a8(bj(0x38b));const F=a0Y();if(!F)return void a0aa(bj(0x429));F['questions'][bj(0x1b9)](K=>!F[bj(0x28a)][K['number']]);const G=F[bj(0x26b)]||-0x141+-0x1*-0xf5e+-0xe1c,H=Math['min'](G+(-0xe5c+-0x143d+0x229a),F['questions'][bj(0x2c3)]);F[bj(0x26b)]=H,a0Z(F);const J=F['questions'][H-(-0xe07+-0x55d*0x7+0x3393)];U(J,F['answers'][J['number']]);}),B['command'](bb(0x304))[bb(0x15d)](bb(0x251))[bb(0x41d)](()=>{const bk=bb;a0a8(bk(0x2d1));const F=a0Y();if(!F)return void a0aa(bk(0x429));const G=F[bk(0x26b)]||-0x1*0x1d0b+-0x2*-0xbb2+0x5a8,H=Math[bk(0x246)](G-(0x1*0x65f+-0x1f39+-0x849*-0x3),0x25*0xad+-0x677*-0x3+0x8e1*-0x5);F[bk(0x26b)]=H,a0Z(F);const J=F[bk(0x384)][H-(0x24ff+-0x236*-0x9+0x14b*-0x2c)];U(J,F[bk(0x28a)][J['number']]);}),B[bb(0x2d9)](bb(0x205))['description'](bb(0x441))[bb(0x41d)](async()=>{const bl=bb;a0a8(bl(0x1b0));const F=a0Y();if(!F)return void a0aa(bl(0x429));const G=R(F),H=F['_lastQ']||0x199*0x7+0x231+-0xd5f,J=G[bl(0x2c5)][H]||0x23d6+0x1*0x86d+-0xec1*0x3,K=G[bl(0x1b6)][H]||[],L=F['questions'][bl(0x41b)](W=>W['number']===H);if(!L)return;if(J>=0x12ef+0xa39+-0x1a*0x11f)return console['log'](),console[bl(0x278)](a0L[bl(0x2fb)](bl(0x3b9))),console[bl(0x278)](a0L[bl(0x44d)](bl(0x273))),console[bl(0x278)](),void U(L,F[bl(0x28a)][L[bl(0x15a)]]);const Q=['A','B','C','D'][bl(0x1c0)](W=>!K[bl(0x287)](W));if(Q[bl(0x2c3)]<=-0x22f+-0x181*-0x12+-0x84b*0x3)return console['log'](),console[bl(0x278)](a0L[bl(0x2fb)](bl(0x3b8))),console[bl(0x278)](),void U(L,F[bl(0x28a)][L[bl(0x15a)]]);if(G['used']>=G['max']){const W=G['max']>=-0x740+0x3d*-0x59+0x415*0x7,X=-0x26ad+0x760+-0x3*-0xa79-G[bl(0x246)];return void(W?(console[bl(0x278)](),console[bl(0x278)](a0L[bl(0x44d)](bl(0x2c0)+G[bl(0x211)]+'/'+G[bl(0x246)]+').\x20You\x27re\x20on\x20your\x20own!\x20💪')),console[bl(0x278)]()):(console['log'](),console[bl(0x278)](a0L[bl(0x2fb)](bl(0x286)+G[bl(0x211)]+'/'+G[bl(0x246)])),console[bl(0x278)](a0L[bl(0x3e5)](bl(0x29f))+a0L['bold'][bl(0x2fb)](bl(0x2bc))+a0L['gray']('\x20(+'+X+bl(0x2aa))),console[bl(0x278)]()));}const V=Y=>{const bm=bl;K[bm(0x2fe)](Y),G[bm(0x1b6)][H]||(G[bm(0x1b6)][H]=[]),G[bm(0x1b6)][H]=K,G[bm(0x2c5)][H]=J+(-0x1887+-0x55*-0x5c+-0xa*0x9a),G[bm(0x211)]++,F[bm(0x2a2)]=G['used'],F['_helpMax']=G[bm(0x246)],F[bm(0x1ea)]=G[bm(0x2c5)],F[bm(0x3c5)]=G[bm(0x1b6)],F[bm(0x456)]||(F[bm(0x456)]=[]),F[bm(0x456)]['push']({'ts':new Date()[bm(0x300)](),'q':H,'type':bm(0x33b),'result':bm(0x448)+Y}),a0Z(F),console[bm(0x278)](),console[bm(0x278)](a0L['yellow'](bm(0x189)+Y+bm(0x1d0))+a0L['gray']('\x20\x20(help\x20'+G[bm(0x211)]+'/'+G[bm(0x246)]+')')),U(L,F[bm(0x28a)][L['number']]);};if(bl(0x186)===F[bl(0x39f)]['examId']&&L[bl(0x382)])(Y=>{const bn=bl,Z=Q[bn(0x1c0)](a0=>a0!==Y&&!K[bn(0x287)](a0));-0xfff+-0x2*0x1be+-0x137b*-0x1!==Z['length']&&V(Z[Math[bn(0x2d5)](Math[bn(0x302)]()*Z[bn(0x2c3)])]);})(L['answer']);else{const Y=a0W()[bl(0x184)]||bl(0x16d),Z=F[bl(0x39f)]?.[bl(0x2b2)]||'';try{const a0={};a0[bl(0x1ef)]=bl(0x373),a0[bl(0x417)]=bl(0x2b4);const a1={};a1['token']=Z,a1[bl(0x2e4)]=H,a1[bl(0x1b6)]=K;const a2=await fetch(Y+bl(0x465)+F[bl(0x39f)]['examId']+bl(0x33f),{'method':bl(0x40e),'headers':a0,'body':JSON[bl(0x1c2)](a1),'signal':AbortSignal['timeout'](0xf*-0x184+-0xa48+0x348c)}),a3=await a2[bl(0x2dc)](),a4=a3?.[bl(0x468)]?.['eliminate'];a4&&['A','B','C','D']['includes'](a4)?V(a4):(console[bl(0x278)](),console[bl(0x278)](a0L[bl(0x44d)](bl(0x243))));}catch{console[bl(0x278)](),console[bl(0x278)](a0L[bl(0x44d)](bl(0x2ff)));}}}),B[bb(0x2d9)](bb(0x45d))[bb(0x15d)](bb(0x2ec))[bb(0x41d)](()=>{const bo=bb;a0a8(bo(0x3c6));const F=a0Y();if(!F)return void a0aa('No\x20exam\x20in\x20progress.');const G=R(F),H='demo-free'===F[bo(0x39f)][bo(0x43f)]?-0x1b1e+0x80c+0x131a:-0x162c+0x13*-0xdb+-0xd*-0x2f7;if(G[bo(0x246)]>=H)return void console[bo(0x278)](a0L[bo(0x44d)](bo(0x35b)));if(G[bo(0x211)]<G[bo(0x246)])return void console[bo(0x278)](a0L[bo(0x44d)](bo(0x2e3)+(G[bo(0x246)]-G['used'])+bo(0x425)));const J=H-G[bo(0x246)];F[bo(0x33d)]=H,a0Z(F),console[bo(0x278)](),console[bo(0x278)](a0L['green'](bo(0x341)+J+bo(0x15e)+J+'/'+H+bo(0x178))),console[bo(0x278)](a0L[bo(0x44d)](bo(0x38e))),console[bo(0x278)]();}),B[bb(0x2d9)](bb(0x2f6))['description']('Answer\x20question\x20N\x20(A/B/C/D\x20for\x20MCQ,\x20ICOA{flag}\x20for\x20practical)')[bb(0x41d)](async(F,G)=>{const bp=bb,H=G[bp(0x360)]('\x20');a0a8(bp(0x432)+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bp(0x3db));if(!(function(){const bq=bp,Z=a0a1();if(!Z)return!(-0x3*0x213+0x2f9*-0x9+0x20fa);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object['keys'](a0[bq(0x28a)])[bq(0x2c3)];bq(0x186)===a0[bq(0x39f)][bq(0x43f)]||-0x2191+-0x5*-0x38f+0x2*0x7e3===a1?(a0a0(),a0ab(bq(0x35d)),a0ac(bq(0x29e))):(a0aa(bq(0x16c)),a0ac(bq(0x280)));}return!(-0x2189+0x59*0x4f+0x613);}return!(-0x9d*0x27+-0xcca*0x3+0x3e49);}()))return;const K=parseInt(F,0x17b8+0x15af+-0x2d5d),L=J[bp(0x384)][bp(0x41b)](Z=>Z['number']===K);if(!L)return void a0aa('Question\x20'+F+bp(0x315)+J['questions'][bp(0x2c3)]+').');let Q;if(bp(0x342)===L[bp(0x1cc)]||bp(0x21d)===L[bp(0x1cc)]||bp(0x22f)===L[bp(0x1cc)]||L['options']&&!L[bp(0x19c)]['A']&&!L['options']['B']){if(Q=H[bp(0x26f)](),/^submit\s+/i[bp(0x2cd)](Q)&&(Q=Q[bp(0x1f1)](/^submit\s+/i,'')[bp(0x26f)]()),Q=Q[bp(0x1f1)](/^["'`]+|["'`]+$/g,'')[bp(0x26f)](),!Q)return void a0aa(bp(0x18e));if(/^[A-Da-d]$/[bp(0x2cd)](Q))return a0aa('Q'+K+bp(0x180)),void console[bp(0x278)](a0L[bp(0x44d)](bp(0x3e9))+a0L[bp(0x198)](bp(0x432)+K+'\x20ICOA{your_flag}'));}else{if(Q=H[bp(0x219)](),!['A','B','C','D'][bp(0x287)](Q))return void a0aa(bp(0x240));}if(bp(0x186)===J['session'][bp(0x43f)]&&-0x326+0x5b2+0xa*-0x41===K&&0x127*0x7+0x4d*0x67+0x93*-0x44===(R(J)[bp(0x2c5)][-0x1*-0x1eb5+0x3a5+-0x2258]||0xa8b+-0x16f1+0x1*0xc66))return console[bp(0x278)](),console[bp(0x278)](a0L[bp(0x2fb)](bp(0x331))+a0L[bp(0x2f7)][bp(0x2fb)]('help')+a0L['yellow']('\x20first\x20to\x20see\x20what\x20it\x20does!')),console['log'](a0L['gray'](bp(0x245))),void console[bp(0x278)]();const V=J['answers'][K];J['interactions']||(J['interactions']=[]),J['interactions'][bp(0x2fe)]({'ts':new Date()[bp(0x300)](),'q':K,'type':V?'answer_changed':'answer_submitted','input':Q,'result':V?bp(0x1f4)+V:bp(0x24f)}),J['answers'][K]=Q,J[bp(0x26b)]=K,a0Z(J),console[bp(0x278)](a0L[bp(0x44d)](bp(0x43a)));const W=J['session'][bp(0x2b2)];if(W&&bp(0x186)!==J['session'][bp(0x43f)]){const Z=(a0W()[bp(0x184)]||'https://practice.icoa2026.au')+bp(0x465)+J[bp(0x39f)][bp(0x43f)]+bp(0x2a3),a0={};a0[bp(0x1ef)]=bp(0x373);const a1={};a1['token']=W,a1[bp(0x2e4)]=K,a1[bp(0x382)]=Q,fetch(Z,{'method':bp(0x40e),'headers':a0,'body':JSON['stringify'](a1),'signal':AbortSignal[bp(0x332)](-0x1*-0x932+-0x1f9*-0x5+-0x1*-0x79)})['catch'](()=>{});}const X=Object[bp(0x193)](J[bp(0x28a)])[bp(0x2c3)],Y=J['session']['questionCount'];if(a0a9('Q'+K+':\x20'+Q+bp(0x2d8)+X+'/'+Y+'\x20answered)'),bp(0x186)===J[bp(0x39f)][bp(0x43f)]&&L[bp(0x382)]){const a2=[bp(0x310),bp(0x27c),bp(0x36d),bp(0x3d6),'Spot\x20on.'],a3=['Close\x20—\x20we\x27ll\x20revisit\x20this\x20one.',bp(0x2a0),bp(0x301)],a4=Q===L['answer']?a2:a3,a5=a4[Math['floor'](Math[bp(0x302)]()*a4[bp(0x2c3)])];console[bp(0x278)](a0L['gray']('\x20\x20\x20\x20·\x20'+a5));}if(K<J[bp(0x384)][bp(0x2c3)]){const a6=J[bp(0x384)][K];J[bp(0x26b)]=a6[bp(0x15a)],a0Z(J),U(a6,J[bp(0x28a)][a6[bp(0x15a)]]);}else X>=J['questions']['length']&&(console[bp(0x278)](),console[bp(0x278)](a0L['green'][bp(0x2f7)](bp(0x2b0))),console['log'](),bp(0x186)===J['session'][bp(0x43f)]?(console[bp(0x278)](a0L[bp(0x3e5)]('\x20\x20Type\x20')+a0L['bold']['cyan']('exam\x20submit')+a0L[bp(0x3e5)](bp(0x2f8))),console['log']()):console[bp(0x278)](a0L[bp(0x3e5)](bp(0x182))));}),B[bb(0x2d9)](bb(0x387))[bb(0x15d)](bb(0x25e))[bb(0x41d)](()=>{const br=bb;a0a8(br(0x261));const F=a0Y();if(!F)return void a0aa(br(0x429));a0ae(br(0x18d)+F['session']['examName']),O(),console[br(0x278)]();let G='\x20\x20';const H=Array[br(0x381)](F['bookmarks'])?F[br(0x394)]:[];for(const Q of F[br(0x384)]){const V=F[br(0x28a)][Q[br(0x15a)]],W=H[br(0x287)](Q[br(0x15a)]),X=W?'★':'\x20';G+=V?W?a0L[br(0x2f7)][br(0x2fb)]('Q'+String(Q[br(0x15a)])[br(0x326)](-0x165e+-0x7d*0x21+0x267d*0x1)+X+'['+V+']\x20'):a0L[br(0x198)]('Q'+String(Q[br(0x15a)])[br(0x326)](-0x1f30+-0x23*-0x1f+0x1af5)+'\x20['+V+br(0x3d5)):W?a0L['bold'][br(0x2fb)]('Q'+String(Q[br(0x15a)])[br(0x326)](-0x1f4c+0x1*-0x85f+0x1*0x27ad)+X+'[\x20]\x20\x20'):a0L['yellow']('Q'+String(Q[br(0x15a)])[br(0x326)](0x14*0xf1+0x24a9*-0x1+0x11d7)+br(0x172)),Q['number']%(0x9f*0x2e+-0x261c+0xc*0xcc)==0x1*0x5f7+-0x1*-0x1116+0x119*-0x15&&(console['log'](G),G='\x20\x20');}G['trim']()&&console[br(0x278)](G);const J=Object['keys'](F['answers'])[br(0x2c3)],K=F['session'][br(0x1e4)],L=K-J;if(console[br(0x278)](),a0af(br(0x19a),a0L[br(0x198)][br(0x2f7)](J+'/'+K)),L>-0x9c4+0x1d58+-0x1394){const Y=F[br(0x384)][br(0x1c0)](Z=>!F[br(0x28a)][Z[br(0x15a)]])['map'](Z=>Z['number'])['join'](',\x20');a0af(br(0x3f7),a0L[br(0x2fb)](L+br(0x443)+Y+')'));}H[br(0x2c3)]>0x23a2+0xd*-0x5c+-0x1ef6&&a0af(br(0x446),a0L[br(0x2f7)][br(0x2fb)]('★\x20'+H[br(0x2c3)])+a0L[br(0x44d)]('\x20('+H['map'](Z=>'Q'+Z)['join'](',\x20')+')')),console[br(0x278)](),H[br(0x2c3)]>-0xe1c+-0x7ab*0x2+0x1d72&&console['log'](a0L[br(0x44d)](br(0x438))+a0L[br(0x3e5)](br(0x296)+H[0x59b+-0x79d*0x5+0x67e*0x5])),console[br(0x278)](a0L[br(0x44d)](br(0x3eb))+a0L[br(0x2f7)][br(0x2d3)](br(0x3ab))+a0L['gray']('\x20to\x20submit\x20for\x20grading.'));}),B[bb(0x2d9)](bb(0x2ab))[bb(0x15d)](bb(0x3c3))[bb(0x41d)](async J=>{const bs=bb;a0a8(bs(0x409)+(J||''));const K=a0Y();if(K&&bs(0x260)===J&&(K['_submitConfirmed']=!(-0x6bb+0x863*-0x2+0xb*0x223),a0Z(K)),!K)return void a0aa('No\x20exam\x20in\x20progress.');const L=Object[bs(0x193)](K['answers'])['length'],Q=K['session'][bs(0x1e4)],V=Q-L;if(0x15f6*0x1+-0x6b*0x40+0x4ca===L){const X=a0a1(),Y=X&&new Date()>=X;return void(bs(0x186)===K[bs(0x39f)]['examId']||Y?(a0a0(),a0ab(bs(0x3dd)),a0ac(bs(0x29e))):(a0ab('No\x20answers\x20to\x20submit.'),a0ac(bs(0x3b2))));}if('demo-free'!==K[bs(0x39f)]['examId']){const Z=!(-0x1333+-0x819+0x1b4c)===K['_submitConfirmed'],a0=a0a1(),a1=!!(a0&&new Date()>=a0);if(!Z&&!a1){if(console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x40f)](bs(0x41c))),console[bs(0x278)](a0L[bs(0x2f7)]['red'](bs(0x28e))),console[bs(0x278)](a0L['red'](bs(0x41c))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x3e5)](bs(0x3d4)+a0L['bold'][bs(0x198)](L+'/'+Q)+'\x20answers.')),V>-0x1c11+0x1*-0x171d+0x332e){const a3=K[bs(0x384)][bs(0x1c0)](a4=>!K[bs(0x28a)][a4[bs(0x15a)]])[bs(0x291)](a4=>'Q'+a4[bs(0x15a)])[bs(0x360)](',\x20');console[bs(0x278)](a0L['yellow']('\x20\x20'+V+bs(0x3cd)+a3));}const a2=Array[bs(0x381)](K[bs(0x394)])?K[bs(0x394)]:[];return a2[bs(0x2c3)]>-0x3f*0x43+0x25a6+-0x1529&&console[bs(0x278)](a0L[bs(0x2fb)](bs(0x467)+a2[bs(0x2c3)]+bs(0x19e)+a2['map'](a4=>'Q'+a4)[bs(0x360)](',\x20'))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x3e5)](bs(0x231))+a0L[bs(0x2f7)]['red']('final')+a0L['white'](bs(0x1df))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2f7)]['white']('\x20\x20To\x20confirm:\x20\x20')+a0L[bs(0x2f7)][bs(0x2d3)](bs(0x333))),console['log'](a0L[bs(0x3e5)](bs(0x1db))+a0L[bs(0x2d3)]('exam\x20review')+a0L[bs(0x44d)](bs(0x166))+a0L[bs(0x2d3)]('back')),void console['log']();}Z&&(delete K['_submitConfirmed'],a0Z(K));}if(console['log'](),bs(0x186)===K[bs(0x39f)]['examId']){try{N(0x43*-0x17+-0x1*0x2173+-0xc*-0x34a,a0ai(bs(0x414))),await q(-0x9*-0x419+-0x13ed*-0x1+-0x37a2);let a4=-0x21a7*-0x1+-0x1f*0x49+-0x18d0;const a5=[],a6={};for(const ai of K[bs(0x384)]){const aj=ai['category']||bs(0x31f),ak={};ak[bs(0x325)]=0x0,ak[bs(0x262)]=0x0,(a6[aj]||(a6[aj]=ak),a6[aj][bs(0x262)]++);const al=K[bs(0x28a)][ai[bs(0x15a)]];al&&ai['answer']&&al===ai[bs(0x382)]?(a4++,a6[aj]['correct']++):a5['push'](ai[bs(0x15a)]);}a5['sort']((am,an)=>am-an),N(-0xef1+-0x185d+0x27b2,a0ai(bs(0x18b))),console[bs(0x278)]();const a7=new Date(K[bs(0x39f)][bs(0x264)])[bs(0x192)](),a8=Math[bs(0x246)](-0x15f+0xdf*0x2b+0x3e*-0x95,Math['round']((Date[bs(0x34c)]()-a7)/(0x9*-0x2f5+-0x1b45+0x39ca))),a9=Math[bs(0x2d5)](a8/(0xea7+-0x957+-0x5*0x104))+'m\x20'+a8%(-0xabf+0x222e+-0x1733)+'s',aa=[...K[bs(0x384)]],ab={...K[bs(0x28a)]},ac=R(K);a0a0();const ad=Math['round'](a4/Q*(-0x44f*0x1+-0x36e+0x1*0x821)),ae=a0W(),af={};af[bs(0x1ef)]=bs(0x373),(fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':'POST','headers':af,'body':JSON[bs(0x1c2)]({'type':'demo-exam','score':a4,'total':Q,'lang':ae['language']||'en','help_used':ac[bs(0x211)],'help_max':ac[bs(0x246)],'tokens_used':0x0,'solved':ad>=0x1*-0x18fd+0x2b5+-0x4*-0x5a1?-0xd4*-0x12+-0x350+-0xb97:-0xca1*0x1+0x2*0x11be+-0x1*0x16db,'timestamp':new Date()[bs(0x300)](),'interactions':K[bs(0x456)]||[]}),'signal':AbortSignal[bs(0x332)](-0x953+-0x6c1+-0x2*-0x11ce)})[bs(0x20b)](()=>{}),console['log'](),console[bs(0x278)](a0L[bs(0x2d3)](bs(0x1bc))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)]('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)]('\x20\x20\x20██║██╔════╝██╔═══██╗██╔══██╗')),console['log'](a0L['bold'][bs(0x3e5)](bs(0x3ff))),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x276))),console['log'](a0L[bs(0x2f7)]['white'](bs(0x372))),console['log'](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x3f5))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2f7)](bs(0x23a)+a0ai('score')+':\x20'+a4+'/'+Q+'\x20('+ad+'%)')),console[bs(0x278)](a0L[bs(0x2f7)](bs(0x23a)+(ad>=0x1*0x12ee+0x788+-0x1a3a?a0L[bs(0x198)](a0ai(bs(0x187))):a0L[bs(0x40f)](a0ai('notPassed'))))),console[bs(0x278)](a0L[bs(0x44d)]('\x20\x20\x20Elapsed:\x20'+a9)),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2fb)](bs(0x201))),console[bs(0x278)](a0L[bs(0x44d)]('\x20\x20\x20Sydney,\x20Australia\x20·\x20Jun\x2027\x20-\x20Jul\x202,\x202026')),console[bs(0x278)](),console[bs(0x278)](a0L['cyan'](bs(0x1bc))),await q(0x2d*0x17+-0x20*0x5d+-0x51*-0x3d));const ag=Object[bs(0x2a4)](a6);if(ag[bs(0x2c3)]>-0x176d*-0x1+-0x1*0x1c47+0x4da){console[bs(0x278)](),console[bs(0x278)](a0L['bold'][bs(0x3e5)](bs(0x163)));const am=0x1bfb+-0x13c2+0x82f*-0x1;for(const [an,ao]of ag){const ap=ao[bs(0x262)]>-0x7*-0x147+-0x165*-0x10+-0x1f41?Math[bs(0x3c2)](ao[bs(0x325)]/ao[bs(0x262)]*(-0x368*-0x7+0x917+-0x208b)):0x3*-0x60b+0x600*-0x1+0x1821,aq=ao[bs(0x262)]>0x4*0x877+0x5*0x3bb+-0x1*0x3483?Math[bs(0x3c2)](ao['correct']/ao[bs(0x262)]*am):-0x6*0x22+0xe*-0xa+0x158,ar=am-aq,as=ap>=0x1*-0x106e+0x1798+0x2*-0x36d?a0L[bs(0x198)]:ap>=-0x11e2*-0x1+0xf8e+0x4a*-0x73?a0L[bs(0x2fb)]:a0L[bs(0x40f)],at=as('█'['repeat'](aq))+a0L[bs(0x44d)]('░'[bs(0x452)](ar));console[bs(0x278)](bs(0x1dc)+a0L['white'](an[bs(0x2bd)](0x2*-0x1c6+-0x8d6+0xc76))+'\x20'+at+'\x20\x20'+as(ao[bs(0x325)]+'/'+ao['total'])+a0L[bs(0x44d)]('\x20('+ap+'%)'));}console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2d3)](bs(0x1a0)));}const ah=a0a4(a4,Q);if(a4===ah[bs(0x3c7)]&&ah[bs(0x15c)]>-0x3f5*0x1+-0xa8b+-0x4f*-0x2f&&a4>-0x1587*-0x1+-0x216b+0x4*0x2f9&&(console['log'](),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x198)](bs(0x30a)))),a5[bs(0x2c3)]>0x22*-0x105+-0x513+0xd3f*0x3){const au=aa[bs(0x1c0)](av=>a5[bs(0x287)](av[bs(0x15a)]))[bs(0x291)](av=>({...av}));a0a5(au);}else a0a7();if(await q(-0xbd8+0x12ff+0x7*0xa7),a5['length']>-0x26b9*-0x1+-0x268d+0x1*-0x2c){console[bs(0x278)](),console[bs(0x278)](a0L['yellow']('\x20\x20'+a5[bs(0x2c3)]+'\x20'+a0ai('incorrectIntro'))),console['log']();for(const av of a5){const aw=aa[bs(0x41b)](az=>az[bs(0x15a)]===av);if(!aw)continue;const ax=ab[av],ay=aw[bs(0x382)];console[bs(0x278)](a0L['white'](bs(0x329)+av+'.\x20'+aw[bs(0x435)])),ax?console[bs(0x278)](a0L[bs(0x40f)]('\x20\x20\x20\x20'+a0ai(bs(0x3d7))+':\x20'+ax+'.\x20'+aw[bs(0x19c)][ax])):console[bs(0x278)](a0L[bs(0x2fb)](bs(0x1dc)+a0ai(bs(0x3d7))+':\x20—')),ay&&console['log'](a0L[bs(0x198)](bs(0x1dc)+a0ai(bs(0x325))+':\x20'+ay+'.\x20'+aw['options'][ay])),aw['explanation']&&console[bs(0x278)](a0L['gray'](bs(0x431)+aw[bs(0x42f)])),console[bs(0x278)]();}}else console['log'](),console[bs(0x278)](a0L['green']('\x20\x20'+a0ai(bs(0x34a))));await q(0x115f*-0x2+0x26b7+-0x3d7*-0x1),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2d3)](bs(0x1a0))),console[bs(0x278)](a0L[bs(0x3e5)]('\x20\x20'+a0ai(bs(0x29d))+'\x20')+a0L[bs(0x2f7)]['green']('ai4ctf')+a0L[bs(0x44d)]('\x20—\x20'+a0ai(bs(0x161)))),console[bs(0x278)](a0L['gray']('\x20\x20'+a0ai(bs(0x241)))),console['log'](a0L[bs(0x2d3)]('\x20\x20─────────────────────────────────────────────')),console[bs(0x278)]();}catch(az){console[bs(0x278)](),a0aa(az[bs(0x1ae)]);}return;}const W=K[bs(0x39f)][bs(0x2b2)];try{let aA;if(N(0x14d*-0x5+-0xc5d+0x12de,bs(0x2f4)),W){const aK={};aK['Content-Type']=bs(0x373);const aL={};aL[bs(0x342)]=0x0,aL['ctf4ai']=0x0;const aM=a0W()[bs(0x184)]||'https://practice.icoa2026.au',aN=await fetch(aM+bs(0x465)+K[bs(0x39f)]['examId']+bs(0x3ed),{'method':bs(0x40e),'headers':aK,'body':JSON[bs(0x1c2)]({'token':W,'answers':K[bs(0x28a)],'interactions':K[bs(0x456)]||[],'aiUsage':K[bs(0x37d)]||aL,'bookmarks':K[bs(0x394)]||[]}),'signal':AbortSignal[bs(0x332)](0x1d53+-0x471f+0x6464)});if(!aN['ok']){const aO=await aN[bs(0x2dc)]()[bs(0x20b)](()=>({'message':'Submit\x20failed'}));throw new Error(aO[bs(0x1ae)]||bs(0x3fe));}aA=(await aN[bs(0x2dc)]())[bs(0x468)];}else{const aP=M();if(!aP)return;aA=await aP[bs(0x35e)](K[bs(0x39f)][bs(0x43f)],K[bs(0x28a)]);}N(-0x8b1+0x3b8+0x52b*0x1,'Grading...'),await q(-0x3e9*0x1+0x1479+-0x4*0x3d9),N(0x7*-0x400+-0x1*-0x13+0x1c51,bs(0x46f)),console[bs(0x278)]();const aB={};aB['ai4ctf']=0x0,aB['ctf4ai']=0x0;const aC={'answered':Object[bs(0x193)](K[bs(0x28a)])[bs(0x2c3)],'total':K[bs(0x39f)]['questionCount'],'bookmarks':Array['isArray'](K['bookmarks'])?K[bs(0x394)][bs(0x2c3)]:-0x1d*-0x22+0x5de+-0x9b8,'help':R(K),'aiUsage':K[bs(0x37d)]||aB,'interactions':(K[bs(0x456)]||[])[bs(0x2c3)],'durationMin':K[bs(0x39f)][bs(0x3b3)]||-0x1ed0+0x190b+0x5c5,'confirmedAt':K[bs(0x39f)][bs(0x212)]||K[bs(0x39f)][bs(0x264)],'examId':K['session'][bs(0x43f)]};a0a0();const aD=Math[bs(0x246)](0x1ad3+0x33*-0x7+-0x196e,Math[bs(0x3c2)]((Date[bs(0x34c)]()-new Date(aC['confirmedAt'])[bs(0x192)]())/(0x1*-0x44e+0x2113*0x1+-0x4f9*0x5))),aE=Math[bs(0x2d5)](aD/(0x1*-0xa1a+0x1ebd+-0x1467)),aF=aD%(0x6b*-0x4a+0x1665+0x8c5);console[bs(0x278)](),console['log'](a0L['cyan'](bs(0x275))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)]('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x3bc))),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x3ff))),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║██╔══██║')),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)]('\x20\x20\x20██║╚██████╗╚██████╔╝██║\x20\x20██║')),console['log'](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x3f5))),console[bs(0x278)]();const aG=aA[bs(0x187)]?a0L[bs(0x198)][bs(0x2f7)]('\x20\x20\x20✓\x20\x20Submission\x20accepted\x20—\x20baseline\x20met'):a0L[bs(0x2fb)][bs(0x2f7)](bs(0x1ab));console['log'](aG),console['log'](),console[bs(0x278)](a0L[bs(0x3e5)](bs(0x224))),console[bs(0x278)](a0L['white'](bs(0x30c))),console[bs(0x278)](a0L['white'](bs(0x45a))),console['log'](),console['log'](a0L[bs(0x2d3)](bs(0x1a0))),console[bs(0x278)](),console['log'](a0L['bold'][bs(0x3e5)](bs(0x32b)));const aH=aC[bs(0x262)]-aC['answered'];console[bs(0x278)](bs(0x1dc)+a0L['gray'](bs(0x3da))+a0L[bs(0x3e5)](aC[bs(0x20a)]+'/'+aC[bs(0x262)])+(aH>0x22f8+-0xbfa+-0x16fe?a0L['gray'](bs(0x36b)+aH+bs(0x2ea)):'')),console[bs(0x278)](bs(0x1dc)+a0L[bs(0x44d)]('Time\x20used:\x20')+a0L[bs(0x3e5)](aE+'m\x20'+aF+'s')+a0L[bs(0x44d)]('\x20\x20of\x20'+aC[bs(0x1eb)]+bs(0x2ef))),aC[bs(0x394)]>0x20db*0x1+0x2351*0x1+-0x442c&&console[bs(0x278)](bs(0x1dc)+a0L[bs(0x44d)](bs(0x343))+a0L[bs(0x2fb)]('★\x20'+aC[bs(0x394)])),console[bs(0x278)]();const aI=aA[bs(0x16f)];if(aI&&Object[bs(0x193)](aI)['length']>=-0x331*0xb+-0x1*0x14fc+-0x1*-0x3819){const aQ=Object[bs(0x2a4)](aI)[bs(0x1c0)](([,aV])=>aV[bs(0x262)]>-0x1a71*-0x1+-0x18d5+-0x19c)[bs(0x291)](([aV,aW])=>({'cat':aV,'pct':aW[bs(0x325)]/aW[bs(0x262)]}))[bs(0x26d)]((aV,aW)=>aW['pct']-aV[bs(0x2d7)]),aR=Math[bs(0x377)](-0x10*0x24f+-0x1a10+-0xa*-0x64d,Math[bs(0x408)](aQ['length']/(-0xce*0x25+0x16f0+0x6d9))),aS=Math[bs(0x377)](-0xde0+-0xe3f+0x13*0x17b,Math[bs(0x408)](aQ[bs(0x2c3)]/(-0xbed*0x1+-0xc87+0x1877))),aT=aQ[bs(0x2fc)](0x1be*0xd+0x1*0x1a9b+0x1d3*-0x1b,aR)[bs(0x291)](aV=>aV[bs(0x395)]),aU=aQ[bs(0x2fc)](-aS)['map'](aV=>aV[bs(0x395)]);aT[bs(0x37e)](aV=>aU['includes'](aV))||(console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x396))),console[bs(0x278)](bs(0x1dc)+a0L[bs(0x198)](bs(0x407))+a0L['white'](aT[bs(0x360)](',\x20'))),console[bs(0x278)](bs(0x1dc)+a0L['yellow'](bs(0x410))+a0L[bs(0x3e5)](aU[bs(0x360)](',\x20'))),console[bs(0x278)](a0L[bs(0x44d)](bs(0x1d1))),console['log']());}console[bs(0x278)](a0L['bold'][bs(0x3e5)]('\x20\x20Assistance\x20used')),console[bs(0x278)](bs(0x1dc)+a0L['gray']('Help:\x20\x20\x20\x20\x20\x20')+a0L[bs(0x3e5)](aC[bs(0x205)][bs(0x211)]+'/'+aC[bs(0x205)][bs(0x246)])),console[bs(0x278)](bs(0x1dc)+a0L[bs(0x44d)](bs(0x3a5))+a0L[bs(0x3e5)](aC[bs(0x37d)][bs(0x342)]+bs(0x470))+a0L[bs(0x44d)](bs(0x36b))+a0L['white'](aC['aiUsage'][bs(0x21d)]+bs(0x238))),console['log'](),console['log'](a0L[bs(0x2d3)]('\x20\x20─────────────────────────────────────────────')),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2f7)][bs(0x3e5)](bs(0x1a3))),console[bs(0x278)](a0L[bs(0x44d)](bs(0x21f))),console[bs(0x278)](a0L[bs(0x44d)](bs(0x3d9))+a0L[bs(0x3e5)](bs(0x354))+a0L[bs(0x44d)](bs(0x406))),console[bs(0x278)](a0L[bs(0x44d)]('\x20\x20·\x20Reference\x20guides\x20for\x2038\x20tools:\x20')+a0L[bs(0x3e5)](bs(0x33e))),console[bs(0x278)]();const {showCToBUpgradePrompt:aJ}=await import(bs(0x17c));aJ(aC['examId'],aA[bs(0x187)]),console[bs(0x278)](a0L[bs(0x2fb)](bs(0x27d))),console['log'](a0L['cyan'][bs(0x1e0)](bs(0x416))),console[bs(0x278)](),console[bs(0x278)](a0L[bs(0x2d3)]('\x20\x20═════════════════════════════════════════════')),console[bs(0x278)]();}catch(aV){console['log'](),a0aa(aV['message']);}}),B['command']('result\x20[id]')[bb(0x15d)]('View\x20exam\x20result')['action'](async F=>{const bt=bb;a0a8(bt(0x461)+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa(bt(0x375));F=J[bt(0x39f)][bt(0x43f)];}const H=a0ag(bt(0x270));H[bt(0x2e8)]();try{const K=await G[bt(0x1fc)](F);H['succeed'](bt(0x214)),console[bt(0x278)](),a0ae(K[bt(0x1bb)]),a0af(bt(0x3a0),a0L[bt(0x2f7)](K[bt(0x3b4)]+'/'+K[bt(0x262)])),a0af(bt(0x23e),a0L['bold'](K[bt(0x3c1)]+'%')),a0af(bt(0x21a),K[bt(0x187)]?a0L['green'][bt(0x2f7)](bt(0x2c1)):a0L['red'][bt(0x2f7)](bt(0x455))),a0af(bt(0x3fa),K[bt(0x1e9)]),console[bt(0x278)]();}catch(L){H[bt(0x1cb)](bt(0x2e7)),a0aa(L[bt(0x1ae)]);}}),B[bb(0x2d9)](bb(0x458))[bb(0x15d)](bb(0x40c))[bb(0x41d)](async J=>{const bu=bb;a0a8('exam\x20token\x20'+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import(bu(0x25d)),V=K();if(V){const a2=V['session']['token'],a3=a0a1(),a4=!!a2&&a2[bu(0x26f)]()[bu(0x219)]()!==J[bu(0x26f)]()[bu(0x219)](),a5=!!a3&&a3[bu(0x192)]()+(0x1*-0x108cdd+-0x13*-0x7e95+0x229f0e)<Date[bu(0x34c)]();if(a4&&a5)return Q(),console[bu(0x278)](),console[bu(0x278)](a0L[bu(0x44d)](bu(0x3b1))),console[bu(0x278)](),console[bu(0x278)](a0L[bu(0x3e5)](bu(0x3aa))+a0L['bold'][bu(0x2d3)]('exam\x20'+J)),void console[bu(0x278)]();if(!a2&&J)return V[bu(0x39f)][bu(0x2b2)]=J[bu(0x26f)](),L(V),console['log'](),console[bu(0x278)](a0L[bu(0x198)]('\x20\x20✓\x20Token\x20re-attached\x20to\x20your\x20in-progress\x20exam.')),console[bu(0x278)](a0L[bu(0x44d)](bu(0x2c9))+a0L[bu(0x3e5)]('lang\x20<code>')+a0L[bu(0x44d)]('\x20·\x20')+a0L[bu(0x3e5)](bu(0x3ab))),console[bu(0x278)](),console[bu(0x278)](a0L[bu(0x2f7)][bu(0x3e5)](bu(0x191))),console[bu(0x278)](a0L[bu(0x44d)](bu(0x431))+a0L[bu(0x2f7)][bu(0x2d3)](bu(0x3ae))+a0L[bu(0x44d)](bu(0x364))),console['log'](a0L[bu(0x44d)](bu(0x431))+a0L[bu(0x2f7)]['cyan'](bu(0x261))+a0L[bu(0x44d)](bu(0x37f))),void console[bu(0x278)]();const a6=Object[bu(0x193)](V['answers'])[bu(0x2c3)],a7=V[bu(0x39f)]['questionCount'],a8=a0a1(),a9=a8?Math['max'](0x5db*-0x3+-0x1*-0x11c3+-0x32,Math[bu(0x3c2)]((a8[bu(0x192)]()-Date[bu(0x34c)]())/(0x1*0x9459+0x4955*0x1+0xa*0x145))):null;return console['log'](),console[bu(0x278)](a0L[bu(0x2fb)]('\x20\x20⚠\x20\x20An\x20exam\x20is\x20already\x20in\x20progress\x20on\x20this\x20device.')),console[bu(0x278)](),console[bu(0x278)](a0L[bu(0x44d)](bu(0x460))+a0L[bu(0x3e5)](V[bu(0x39f)]['examName'])),a2&&console[bu(0x278)](a0L[bu(0x44d)](bu(0x22e))+a0L[bu(0x3e5)](a2)+(a2===J?a0L['green'](bu(0x44a)):a0L[bu(0x2fb)]('\x20\x20(different\x20from\x20the\x20one\x20you\x20typed)'))),console[bu(0x278)](a0L['gray']('\x20\x20Answers:\x20')+a0L[bu(0x3e5)](a6+'/'+a7)),null!==a9&&console['log'](a0L['gray'](bu(0x2be))+a0L[bu(0x3e5)](a9+'\x20min\x20remaining')),console['log'](),console[bu(0x278)](a0L[bu(0x2f7)][bu(0x3e5)](bu(0x32f))),console[bu(0x278)](a0L[bu(0x44d)]('\x20\x20\x20\x20→\x20')+a0L[bu(0x2f7)][bu(0x2d3)]('exam\x20q\x201')+a0L['gray'](bu(0x364))),console[bu(0x278)](a0L[bu(0x44d)]('\x20\x20\x20\x20→\x20')+a0L[bu(0x2f7)][bu(0x2d3)](bu(0x261))+a0L[bu(0x44d)](bu(0x37f))),console[bu(0x278)](a0L[bu(0x44d)]('\x20\x20\x20\x20→\x20')+a0L[bu(0x2f7)][bu(0x2d3)](bu(0x3ab))+a0L['gray'](bu(0x33c))),a2&&a2!==J&&(console['log'](),console[bu(0x278)](a0L[bu(0x2fb)](bu(0x370))),console[bu(0x278)](a0L[bu(0x2fb)](bu(0x43b))),console[bu(0x278)](),console[bu(0x278)](a0L['gray'](bu(0x204))),console[bu(0x278)](a0L[bu(0x44d)]('\x20\x20run\x20')+a0L['bold'][bu(0x2d3)](bu(0x2ae))+a0L['gray'](bu(0x434)))),void console[bu(0x278)]();}const {isNativeWindowsCmd:W}=await import(bu(0x3bd));if(!W()&&!a0am()){let aa=!(0xbb5+-0x1a2b+0xe77);try{const ab={};ab[bu(0x1ef)]=bu(0x373);const ac=a0W()[bu(0x184)]||bu(0x16d),ad=await fetch(ac+bu(0x2cc),{'method':bu(0x40e),'headers':ab,'body':JSON[bu(0x1c2)]({'token':J[bu(0x26f)](),'deviceHash':a0aj(),'peek':!(0x1858+0x1f65+-0x37bd)}),'signal':AbortSignal[bu(0x332)](0x195b*-0x1+-0x1c06+0x48e9)});if(ad['ok']){const ae=await ad[bu(0x2dc)]();(ae?.['data']?.['exam_id']||'')[bu(0x44b)]('-c')&&(aa=!(0x1070+0x1*-0xc1f+-0x451));}}catch{}if(!aa)return console[bu(0x278)](),a0ab(bu(0x2b9)),console['log'](a0L[bu(0x44d)](bu(0x320))+a0L[bu(0x2f7)]['cyan'](bu(0x216))),console[bu(0x278)](a0L[bu(0x44d)](bu(0x1a1))+a0L[bu(0x2f7)][bu(0x2d3)](bu(0x24c))+a0L[bu(0x44d)](bu(0x27e))),console[bu(0x278)](a0L['gray'](bu(0x1ff))),void console['log']();}const X={};X['UA']='uk',X['PE']='es',X['CN']='zh',X['AU']='en',X['JP']='ja',X['KR']='ko',X['BR']='pt',X['SA']='ar',X['FR']='fr',X['DE']='de',X['IN']='hi',X['ID']='id',X['TH']='th',X['VN']='vi',X['TR']='tr',X['RU']='ru',X['EG']='ar',X['HT']='ht',X['PH']='en',X['MY']='en',X['MM']='en',X['SG']='en',X['ZA']='en',X['KE']='sw',X['TZ']='sw',X['MO']='zh',X['UZ']='uz',X['GH']='en',X['LA']='lo',X['BD']='bn',X['BI']='fr',X['US']='en',X['UK']='en',X['NZ']='en',X['LK']='si';const Y=X[J['trim']()[bu(0x3f2)](-0x202*0x13+0x10*0x14f+0x1136,-0x13*-0x144+-0x39+-0x1d5*0xd)[bu(0x219)]()],Z=a0W(),a0=Z[bu(0x184)]||'https://practice.icoa2026.au',a1=Y||Z[bu(0x345)]||'en';Y&&Y!==(Z[bu(0x345)]||'en')&&a0X({'language':Y}),console[bu(0x278)](),N(0x2204+-0x18c2+-0x942,bu(0x234));try{const af={};af['Content-Type']=bu(0x373);const ag=await fetch(a0+bu(0x2cc),{'method':'POST','headers':af,'body':JSON['stringify']({'token':J['trim'](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bu(0x332)](-0x73d*0x1+-0xaeb*0x5+-0x3272*-0x2)});if(!ag['ok']){N(-0x7*-0x125+-0x12a*-0x1+0x1*-0x92d,''),console[bu(0x278)]();const ao=await ag[bu(0x2dc)]()[bu(0x20b)](()=>({'message':'Invalid\x20token'}));return a0aa(ao['message']||'Invalid\x20exam\x20token'),void a0ac(bu(0x210));}N(0x25fc+-0x1a4+0x2*-0x121d,bu(0x35c));const ah=await ag['json'](),{session:ai,questions:aj,languages:ak}=ah['data'];N(-0x47*-0x7b+0x8b9+-0x2a9a,'Preparing...'),await q(0x21d+0xab7*-0x2+0xf5*0x15),N(0x9*-0xd3+0x1*0x25f2+0x607*-0x5,'Ready!'),console[bu(0x278)](),console[bu(0x278)](),a0ae(ai[bu(0x1bb)]),console[bu(0x278)](),a0af(bu(0x3b5),ai['questionCount']+bu(0x263)),a0af(bu(0x1f6),ai['durationMinutes']+bu(0x2db)),a0af(bu(0x1c8),(ai[bu(0x439)]||0x419+-0x1360+0xfdd)+bu(0x221)),a0af(bu(0x268),(ai[bu(0x427)]||-0xe5*0x11+-0x52*-0x30+0x10*0x2)+bu(0x334)),console[bu(0x278)](),console[bu(0x278)](a0L[bu(0x3e5)](bu(0x3f4))),console['log'](a0L[bu(0x3e5)](bu(0x45c))),console[bu(0x278)](a0L['white'](bu(0x162))),console[bu(0x278)](a0L[bu(0x3e5)](bu(0x3a6))),ak&&ak[bu(0x2c3)]>0x1ee2+0x1*-0xedc+-0x3*0x557&&console[bu(0x278)](a0L[bu(0x3e5)]('\x20\x20\x20\x20Lang:\x20\x20\x20\x20'+ak['join'](',\x20')+bu(0x33a))),console[bu(0x278)](),console[bu(0x278)](a0L[bu(0x2fb)]('\x20\x20Rules:')),console['log'](a0L[bu(0x3e5)](bu(0x257))),console[bu(0x278)](a0L[bu(0x3e5)](bu(0x436))),console[bu(0x278)](a0L[bu(0x3e5)](bu(0x2c2))),console[bu(0x278)](),await new Promise(ap=>{const bv=bu;process['stdout'][bv(0x3bb)](a0L[bv(0x2f7)][bv(0x2fb)](bv(0x200)));const aq=!!process[bv(0x3b6)][bv(0x3a9)]&&process[bv(0x3b6)][bv(0x1f8)];process[bv(0x3b6)][bv(0x3a9)]&&process['stdin'][bv(0x2f0)]&&process[bv(0x3b6)][bv(0x2f0)](!(0x3*0x101+0x1d48+-0x204a));const ar=as=>{const bw=bv,at=as[bw(0x1a6)]();(at['includes']('\x0a')||at['includes']('\x0d'))&&(process[bw(0x3b6)]['removeListener'](bw(0x468),ar),process[bw(0x3b6)]['isTTY']&&process[bw(0x3b6)][bw(0x2f0)]&&process[bw(0x3b6)][bw(0x2f0)](aq),process['stdout'][bw(0x3bb)]('\x0a'),ap());};process[bv(0x3b6)]['on'](bv(0x468),ar),process[bv(0x3b6)]['resume']();});const al=new Date()[bu(0x300)]();ai[bu(0x212)]=al,ai[bu(0x2b2)]=J[bu(0x26f)]();try{const ap=Date[bu(0x34c)](),aq=await fetch(a0+bu(0x1b5),{'method':bu(0x217),'signal':AbortSignal[bu(0x332)](0x10ad+0x5d*0x4f+-0x21a8)});if(aq['ok']){const ar=await aq[bu(0x2dc)](),as=ar?.[bu(0x468)]?.[bu(0x1ad)];if('number'==typeof as&&as>0xd59+0x13f2+-0x214b){const at=(ap+Date[bu(0x34c)]())/(-0x67*0x9+-0x9ab+0x25*0x5c);ai[bu(0x403)]=Math[bu(0x3c2)](as-at),ai[bu(0x415)]=as+(0x280+0x1c4d+0x61d*-0x5)*ai['durationMinutes']*(-0xb5+0x21bd+-0x1d20);}}}catch{}const am={};am[bu(0x342)]=0x0,am['ctf4ai']=0x0;const an={};an['session']=ai,an[bu(0x384)]=aj,an[bu(0x28a)]={},an[bu(0x456)]=[],an[bu(0x37d)]=am,(a0Z(an),console[bu(0x278)](),a0a9(bu(0x348)),a0af(bu(0x353),ai[bu(0x3b3)]+bu(0x19b)),aj['length']>0x652+-0x16ec+0x109a&&U(aj[0x2*-0x389+-0x1*-0x4b9+0x259]));}catch(au){console[bu(0x278)](),bu(0x317)===au[bu(0x295)]?a0aa(bu(0x1a7)):a0aa(au['message']||'Failed\x20to\x20start\x20exam');}}),B[bb(0x2d9)]('reset',{'hidden':!(-0xe*0x1d+-0x15d3+0x1769)})['description']('Abandon\x20current\x20exam\x20session\x20and\x20wipe\x20local\x20state\x20(recovery\x20only)')[bb(0x41d)](async()=>{const bx=bb;a0a8(bx(0x2ae));const {getRealExamState:F,clearExamState:G}=await import(bx(0x25d)),H=F();if(!H)return console[bx(0x278)](),console[bx(0x278)](a0L[bx(0x44d)](bx(0x1c3))),void console[bx(0x278)]();const J=H['session'][bx(0x2b2)];if(console[bx(0x278)](),console[bx(0x278)](a0L['yellow'](bx(0x1d8))),console[bx(0x278)](a0L[bx(0x44d)](bx(0x3cf))+a0L[bx(0x3e5)](H['session'][bx(0x1bb)])),J&&console['log'](a0L[bx(0x44d)]('\x20\x20\x20\x20\x20Token:\x20')+a0L[bx(0x3e5)](J)),console[bx(0x278)](a0L[bx(0x44d)]('\x20\x20\x20\x20\x20The\x20token\x20itself\x20is\x20NOT\x20revoked\x20server-side.\x20If\x20your\x20session\x20is')),console[bx(0x278)](a0L['gray'](bx(0x170))),console[bx(0x278)](),console['log'](a0L[bx(0x44d)](bx(0x274))+a0L[bx(0x2f7)][bx(0x2d3)]('reset')+a0L['gray'](bx(0x3ba))),'reset'!==(await new Promise(K=>{const by=bx;process[by(0x1fd)][by(0x3bb)](by(0x368));const L=Q=>{const bz=by,V=Q[bz(0x1a6)]()[bz(0x26f)]();(V[bz(0x287)]('\x0a')||V[bz(0x287)]('\x0d')||V[bz(0x2c3)]>-0xfbf+0x23*0x115+-0x1620)&&(process['stdin'][bz(0x22d)]('data',L),K(V[bz(0x1f1)](/[\r\n]/g,'')));};process[by(0x3b6)]['on'](by(0x468),L),process[by(0x3b6)]['resume']();}))[bx(0x1e2)]())return console['log'](a0L[bx(0x44d)](bx(0x1d5))),void console[bx(0x278)]();G(),console[bx(0x278)](),console[bx(0x278)](a0L['green'](bx(0x25b))),console[bx(0x278)](a0L['gray']('\x20\x20You\x20can\x20now\x20enter\x20a\x20new\x20token\x20with\x20')+a0L[bx(0x2f7)]['cyan']('exam\x20<token>')),console[bx(0x278)]();}),B[bb(0x2d9)]('demo')[bb(0x15d)](bb(0x402))['action'](async()=>{const bA=bb;a0a8(bA(0x421)),E(bA(0x2b8));const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import(bA(0x3f9));a0W()[bA(0x440)]||(await(async function(){const bB=bA;let a0=!(0x5cf*0x6+-0x204b+-0x28e);const a1=process['stdin'],a2=()=>{a0=!(-0x26d4+-0x26e7+0x63*0xc9);},a3=a1[bB(0x3a9)]&&'function'==typeof a1['setRawMode'];a3&&(a1[bB(0x2f0)](!(-0xb77+-0x218*0x10+0x9*0x4ff)),a1[bB(0x385)](),a1[bB(0x20d)](bB(0x468),a2));const a4=async a5=>{let a6=-0x22ec+0x3a8*-0x3+0x216*0x16;for(;a6<a5&&!a0;)await q(0x79*0x32+-0x5*0x151+-0x10bd),a6+=0x22f4+0x1*0x7f+0x7*-0x505;};try{if(console[bB(0x309)](),console[bB(0x278)](),console[bB(0x278)](a0L['gray'](bB(0x23a))+a0L[bB(0x41e)](bB(0x374))),console['log'](),console[bB(0x278)](a0L['bold']['white'](bB(0x3c9))),console[bB(0x278)](a0L[bB(0x2f7)][bB(0x3e5)](bB(0x3bc))),console[bB(0x278)](a0L[bB(0x2f7)][bB(0x3e5)](bB(0x3ff))),console[bB(0x278)](a0L[bB(0x2f7)][bB(0x3e5)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║██╔══██║')),console['log'](a0L[bB(0x2f7)][bB(0x3e5)](bB(0x372))),console[bB(0x278)](a0L[bB(0x2f7)][bB(0x3e5)](bB(0x3f5))),console[bB(0x278)](),console[bB(0x278)](a0L[bB(0x2f7)][bB(0x2fb)](bB(0x405))),console[bB(0x278)](a0L[bB(0x44d)](bB(0x1c5))),await a4(-0x6*-0xde+-0x17d*-0x7+-0x5db),a0)return;if(console['log'](),console[bB(0x278)](a0L['white'](bB(0x314))),console[bB(0x278)](),await a4(0x9f5+0x19c1+0x215e*-0x1),a0)return;if(console['log'](a0L[bB(0x2d3)]('\x20\x20\x20\x20\x20▣\x20')+a0L['white'](bB(0x447))+a0L[bB(0x44d)]('\x20\x20\x20\x20\x20\x20\x20\x20(now,\x20~5\x20min)')),await a4(0x7*0xef+0xf8b+-0x1358),a0)return;if(console[bB(0x278)](a0L[bB(0x198)](bB(0x3ca))+a0L['white'](bB(0x3fb))+a0L[bB(0x44d)](bB(0x2e6))),await a4(-0xf59*0x1+-0x7*0x71+0x5*0x43c),a0)return;if(console[bB(0x278)](a0L['red'](bB(0x3ca))+a0L['white'](bB(0x1e3))+a0L['gray'](bB(0x1c7))),await a4(-0x4*-0x3fa+0x208c+-0x1*0x2cf0),a0)return;if(console['log'](),console[bB(0x278)](a0L[bB(0x2f7)][bB(0x3e5)]('\x20\x20\x20Your\x20terminal\x20')+a0L['bold'][bB(0x2fb)]('IS')+a0L[bB(0x2f7)][bB(0x3e5)](bB(0x2ca))),console[bB(0x278)](),await a4(-0x231d+0x18d4+0x1025*0x1),a0)return;if(console[bB(0x278)](a0L[bB(0x44d)](bB(0x1bd))),await a4(0x1*-0x24f5+-0x3e3*0x1+-0x3b*-0xb8),a0)return;if(console['log'](a0L[bB(0x44d)]('\x20\x20\x20·\x2015\x20languages,\x20real-time\x20AI\x20translation')),await a4(-0x1*-0x5e6+-0x4*0x47f+0x1*0xda6),a0)return;if(console['log'](a0L[bB(0x44d)](bB(0x199))),await a4(0x1130+-0x139b+-0x1*-0x58b),a0)return;console['log'](),console['log'](a0L['bold'][bB(0x2d3)](bB(0x462))),await a4(0x15dd+-0x1574+-0xf37*-0x1);}finally{((()=>{const bC=bB;if(a3){a1[bC(0x22d)]('data',a2);try{a1['setRawMode'](!(-0x29*-0xa6+0x1*0x1e9f+-0x3934));}catch{}a1[bC(0x2f5)]();}})()),console[bB(0x309)]();}}()),a0X({'demoIntroSeen':!(0x1421*0x1+-0x2018+-0x1*-0xbf7)})),console[bA(0x278)](),console['log'](a0L[bA(0x3e5)](bA(0x206))+a0L['gray'](H+'\x20questions\x20drawn\x20from\x20a\x20pool\x20of\x20'+J+bA(0x3cb))),console[bA(0x278)](a0L['gray'](bA(0x46c))+a0L['cyan'](bA(0x32a))+a0L[bA(0x44d)](bA(0x21b))+a0L[bA(0x2d3)](bA(0x24c))+a0L[bA(0x44d)](bA(0x3b7))),await new Promise(a0=>{const bD=bA;process['stdout'][bD(0x3bb)](a0L[bD(0x2f7)][bD(0x2fb)](bD(0x1bf)));const a1=!!process[bD(0x3b6)]['isTTY']&&process['stdin'][bD(0x1f8)];process['stdin']['isTTY']&&process[bD(0x3b6)][bD(0x2f0)]&&process[bD(0x3b6)]['setRawMode'](!(-0x821+0x3*-0x3eb+-0x1*-0x13e3));const a2=a3=>{const bE=bD,a4=a3['toString']();(a4[bE(0x287)]('\x0a')||a4[bE(0x287)]('\x0d'))&&(process[bE(0x3b6)][bE(0x22d)]('data',a2),process['stdin'][bE(0x3a9)]&&process[bE(0x3b6)][bE(0x2f0)]&&process[bE(0x3b6)]['setRawMode'](a1),process[bE(0x1fd)]['write']('\x0a'),a0());};process[bD(0x3b6)]['on'](bD(0x468),a2),process[bD(0x3b6)]['resume']();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import(bA(0x25d));Q()&&V(bA(0x186)),console[bA(0x278)](),a0ae(bA(0x1d6)),console[bA(0x278)](),console['log'](a0L[bA(0x3e5)]('\x20\x20Free\x20practice\x20·\x20No\x20account\x20needed\x20·\x20No\x20time\x20limit')),console[bA(0x278)](a0L[bA(0x3e5)]('\x20\x20'+H+bA(0x1e1)+J+bA(0x3be)));const W=a0a3();if(W['attempts']>-0x206e+-0x6*0x2e3+0x4*0xc70){const a0=W[bA(0x35f)],a1=a0>=-0x147+0x445*0x3+-0xb38?a0L[bA(0x198)]:a0>=0x156f+-0xf6f+0x52*-0x12?a0L[bA(0x2fb)]:a0L[bA(0x3e5)];console[bA(0x278)](),console[bA(0x278)](a0L[bA(0x44d)](bA(0x235))+a1(W[bA(0x3c7)]+'/'+H+'\x20('+a0+'%)')+a0L[bA(0x44d)]('\x20\x20·\x20\x20'+W[bA(0x15c)]+bA(0x26c)));}console[bA(0x278)](),console[bA(0x278)](a0L[bA(0x44d)](bA(0x2af))),console['log'](a0L[bA(0x3e5)]('\x20\x20'+a0ai(bA(0x44e)))),console['log'](a0L[bA(0x2fb)](bA(0x34f))+a0L[bA(0x44d)](bA(0x392)+a0ai(bA(0x38c)))),console[bA(0x278)](a0L[bA(0x2fb)](bA(0x226))+a0L[bA(0x44d)](bA(0x349)+a0ai('htpHelp'))),console[bA(0x278)](a0L['yellow'](bA(0x379))+a0L[bA(0x44d)](bA(0x271))+a0L[bA(0x2fb)](bA(0x304))+a0L['gray'](bA(0x1dc)+a0ai('htpNav'))),console[bA(0x278)](a0L['yellow'](bA(0x3cc))+a0L[bA(0x44d)](bA(0x247)+a0ai(bA(0x181)))),console[bA(0x278)](a0L[bA(0x2fb)](bA(0x3f1))+a0L[bA(0x44d)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bA(0x22a)))),console['log'](a0L[bA(0x2fb)](bA(0x220))+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bA(0x46e)))),console[bA(0x278)](a0L[bA(0x44d)](bA(0x176))),console[bA(0x278)](a0L[bA(0x44d)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ru\x20·\x20hi\x20·\x20de\x20·\x20id\x20·\x20th\x20·\x20vi\x20·\x20tr')),console['log'](a0L[bA(0x44d)](bA(0x2af))),console['log']();const {getConfig:X}=await import(bA(0x46a)),Y=X()['language']||'en';'en'===Y?(console['log'](a0L[bA(0x44d)](bA(0x335))),console['log'](a0L[bA(0x44d)](bA(0x412))),console[bA(0x278)](a0L[bA(0x44d)]('\x20\x20lang\x20fr\x20·\x20lang\x20ar\x20·\x20lang\x20pt\x20·\x2015\x20languages\x20supported'))):console[bA(0x278)](a0L[bA(0x198)](bA(0x2c4)+Y)),console[bA(0x278)](),console[bA(0x278)](a0L[bA(0x3e5)](bA(0x311)));const Z={...L,'startedAt':new Date()['toISOString']()};console['log'](),N(-0x1*-0xd85+0x11d5+0x1*-0x1f5a,bA(0x285)),await q(-0xb3*-0x2f+0x1caf*-0x1+-0x366),N(-0x132c+0x1d4a+-0x9f6,bA(0x336)),await q(0x8f4+0x1acc+-0x22f8),N(-0x1556+0xe4d+0x759,bA(0x2f1)),await q(-0x6e6+-0xe6c*0x1+0x15e8),N(0x1de1+0xec1+-0x2c3e,bA(0x1e7)),console[bA(0x278)](),console[bA(0x278)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af('Questions',String(H)),a0af(bA(0x1f6),bA(0x386)),U(K[0x232f+0x112b+-0x345a]);}),B['command'](bb(0x229))[bb(0x15d)](bb(0x1a5))[bb(0x41d)](async()=>{const bF=bb;a0a8('exam\x20demo-retry'),E(bF(0x321));const {getLocalizedDemoSession:F}=await import('../lib/demo-exam.js'),G=a0a6();if(!G||-0x16ac+0x1*0x324+0x1f4*0xa===G[bF(0x2c3)])return console[bF(0x278)](),console[bF(0x278)](a0L['yellow'](bF(0x457))+a0L[bF(0x2f7)][bF(0x2d3)](bF(0x354))+a0L[bF(0x2fb)](bF(0x2da))),void console[bF(0x278)]();const H=a0Y();if(H){if(bF(0x186)!==H[bF(0x39f)][bF(0x43f)])return a0ab(bF(0x1a2)+H['session'][bF(0x1bb)]+'\x22\x20is\x20in\x20progress.'),void a0ac(bF(0x41f));a0a0();}const J=V=>{const bG=bF;if(!V[bG(0x382)])return V;const W=V[bG(0x19c)][V[bG(0x382)]],X=['A','B','C','D'][bG(0x291)](a2=>V[bG(0x19c)][a2]);for(let a2=X[bG(0x2c3)]-(0x2532+-0x1*0x262b+0xfa);a2>-0xee8*0x1+-0x1*0x170f+-0x25f7*-0x1;a2--){const a3=Math['floor'](Math[bG(0x302)]()*(a2+(-0x163c+0x15d*0x7+0xcb2)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[0xb75*0x2+0x3*-0x922+0x47c],Y['B']=X[0x232d+0xdf*0x21+-0x3feb],Y['C']=X[-0x21f0*-0x1+-0x35*0x3b+-0x15b7],Y['D']=X[0x1ae5+-0x2d7*-0xb+-0x3a1f];const Z=Y,a0=['A','B','C','D'][bG(0x41b)](a4=>Z[a4]===W),a1={...V};return a1['options']=Z,a1[bG(0x382)]=a0,a1;},K=G[bF(0x291)]((V,W)=>({...J(V),'number':W+(-0x2*0xa4d+0x88c+0x1b9*0x7)})),L=F(),Q={...L,'examName':L[bF(0x1bb)]+bF(0x3f0),'questionCount':K[bF(0x2c3)],'startedAt':new Date()[bF(0x300)]()};console[bF(0x278)](),a0ae(bF(0x43e)),console[bF(0x278)](),console[bF(0x278)](a0L[bF(0x3e5)](bF(0x31b)+K['length']+bF(0x215)+(-0x24db+-0x8*0x19c+0x31bc===K[bF(0x2c3)]?'':'s')+'\x20you\x20got\x20wrong.')),console[bF(0x278)](a0L[bF(0x44d)](bF(0x1ee))),console[bF(0x278)](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af(bF(0x3b5),String(K['length'])),a0af('Duration','No\x20time\x20limit'),U(K[-0x6b9+-0x119a+0x1853]);}),B[bb(0x2d9)]('setup')[bb(0x15d)]('Install\x20Python\x20environment\x20for\x20practical\x20exam\x20questions')[bb(0x41d)](async()=>{const bH=bb;if(a0a8(bH(0x216)),-0x970+0xc*-0x99+0x109c===a0a3()[bH(0x15c)])return console[bH(0x278)](),a0ab(bH(0x42b)),console[bH(0x278)](a0L[bH(0x44d)](bH(0x320))+a0L[bH(0x2f7)][bH(0x2d3)]('exam\x20demo')),void console['log']();const K=a0ak();if(K){const a4=K['installedPackages']['length'],a5=a4+K[bH(0x1f0)]['length'];if(a4>=-0x7e2*-0x2+0x211c+-0x30d8||(a5>0x431*-0x5+-0x2604+0x3af9?a4/a5:0x1*-0x30e+-0x1*-0x1afe+-0x17f0)>=-0x1609*-0x1+0xfa4+-0x25ad+0.7)return console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x198)]('\x20\x20✓\x20')+a0L[bH(0x198)](bH(0x3a7))),console['log'](a0L[bH(0x44d)](bH(0x197)+K[bH(0x29c)]['split']('T')[-0x20bb+-0xef*-0x22+0xfd])),console['log'](a0L[bH(0x44d)](bH(0x1be)+K[bH(0x3d8)])),console[bH(0x278)](a0L[bH(0x44d)](bH(0x428)+a4+'\x20installed')),K[bH(0x1f0)][bH(0x2c3)]>0x1d*0x103+0x137*0xb+-0x71e*0x6&&console[bH(0x278)](a0L[bH(0x2fb)]('\x20\x20\x20\x20Failed:\x20'+K['failedPackages']['join'](',\x20'))),console[bH(0x278)](),console['log'](a0L[bH(0x3e5)](bH(0x308))+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x194))),console['log'](a0L[bH(0x44d)](bH(0x1a1))+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x24c))+a0L[bH(0x44d)]('\x20to\x20return\x20to\x20the\x20main\x20menu.')),void console['log']();console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x2fb)](bH(0x232)+a4+'/'+a5+bH(0x401))),console['log']();}console[bH(0x278)](),a0ae('Exam\x20Environment\x20Setup'),console[bH(0x278)](),console['log'](a0L[bH(0x3e5)](bH(0x277))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x16a))),console[bH(0x278)]();const L=(a6,a7)=>{const bI=bH,a8=process[bI(0x2f9)];console[bI(0x278)](),a0aa(bI(0x2e5)===a6?'Python\x203\x20not\x20found.':bI(0x2b1)+a7+bI(0x1e6)),console[bI(0x278)](),console['log'](a0L[bI(0x2f7)][bI(0x3e5)]('\x20\x20How\x20to\x20install\x20Python\x203.10+\x20(3.12\x20recommended):')),console[bI(0x278)](),'darwin'===a8?(console[bI(0x278)](a0L[bI(0x2fb)](bI(0x2cf))),console[bI(0x278)](a0L['green'](bI(0x1b4))),console[bI(0x278)](),console[bI(0x278)](a0L[bI(0x44d)](bI(0x371))),console[bI(0x278)](a0L[bI(0x44d)](bI(0x328)))):bI(0x36c)===a8?(console[bI(0x278)](a0L[bI(0x2fb)]('\x20\x20Ubuntu\x20/\x20Debian\x20(deadsnakes\x20PPA):')),console[bI(0x278)](a0L[bI(0x198)](bI(0x26a))),console[bI(0x278)](a0L[bI(0x198)](bI(0x195))),console[bI(0x278)](a0L[bI(0x198)](bI(0x23d))),console[bI(0x278)](a0L[bI(0x44d)]('\x20\x20\x20\x20sudo\x20update-alternatives\x20--install\x20/usr/bin/python3\x20python3\x20/usr/bin/python3.12\x201')),console[bI(0x278)](),console[bI(0x278)](a0L['yellow'](bI(0x1c1))),console['log'](a0L['green'](bI(0x1af))),console[bI(0x278)](),console['log'](a0L[bI(0x2fb)](bI(0x207))),console[bI(0x278)](a0L[bI(0x198)](bI(0x23f)))):bI(0x3e1)===a8?(console[bI(0x278)](a0L[bI(0x2fb)](bI(0x3c4))),console[bI(0x278)](a0L[bI(0x198)]('\x20\x20\x20\x20winget\x20install\x20Python.Python.3.12')),console[bI(0x278)](),console[bI(0x278)](a0L[bI(0x44d)](bI(0x371))),console[bI(0x278)](a0L[bI(0x44d)]('\x20\x20\x20\x20https://www.python.org/downloads/windows/'))):console[bI(0x278)](a0L[bI(0x44d)](bI(0x249))),console[bI(0x278)](),console[bI(0x278)](a0L['white'](bI(0x27a))+a0L[bI(0x2f7)][bI(0x2d3)](bI(0x216))),console[bI(0x278)]();},Q=bH(0x42a);let V='';try{const a6={};a6[bH(0x3f3)]=bH(0x35a),a6[bH(0x332)]=0x1388,V=a0an(Q+bH(0x2fa),a6)['trim']()[bH(0x1f1)](bH(0x2b1),'');const a7=V[bH(0x1d3)]('.')[bH(0x291)](Number);if(a7[0x1255+0x3*-0x3d0+-0x1*0x6e5]<-0x1*-0x270d+0x11ea*0x1+-0x38f4||-0x9b+-0x174+0x212===a7[0x21be+-0x1*-0x21a4+-0x4362]&&a7[-0x17*0x13f+-0x13a5+0x304f]<-0x1df*0x3+0xe0*-0x20+0x21a7)return void L(bH(0x1c4),V);-0x768+0xace+-0x1*0x363===a7[-0x1a89*0x1+-0x10b1+0x2b3a]&&a7[0x1*0x649+-0x3eb+0x25d*-0x1]<0x1da4+-0x1d2*-0x6+0x1442*-0x2?console['log'](a0L['green'](bH(0x32d)+V)+a0L['gray']('\x20(works,\x20but\x203.12\x20recommended)')):console[bH(0x278)](a0L[bH(0x198)]('\x20\x20✓\x20Python\x20'+V));}catch{return void L(bH(0x2e5));}try{const a8={};a8[bH(0x38a)]='ignore',a8[bH(0x332)]=0x1388,(a0an(Q+'\x20-m\x20pip\x20--version',a8),console[bH(0x278)](a0L[bH(0x198)]('\x20\x20✓\x20pip\x20available')));}catch{console[bH(0x278)](a0L[bH(0x2fb)](bH(0x17e)));try{const a9={};a9[bH(0x38a)]=bH(0x239),a9[bH(0x332)]=0x7530,(a0an(Q+bH(0x2a8),a9),console[bH(0x278)](a0L[bH(0x198)](bH(0x1b7))));}catch{a0aa(bH(0x1cd)),console[bH(0x278)]();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import(bH(0x3bd)),{execFileSync:ac}=await import(bH(0x307)),ad=aa(),ae=ab(),af='linux'===process[bH(0x2f9)]&&!ad,ag=bH(0x282)===process['platform'];let ah='your\x20Linux\x20distro';if(af||ad)try{const {readFileSync:ak}=await import('node:fs'),al=ak(bH(0x17a),bH(0x35a)),am=(al[bH(0x293)](/^ID="?([^"\n]+)/m)||[])[0x1677+0x18e5+-0x2f5b*0x1]||'',an=(al[bH(0x293)](/^VERSION_ID="?([^"\n]+)/m)||[])[-0x218b+-0x1315+0x34a1]||'';bH(0x344)===am?ah=bH(0x346)+an+(ad?bH(0x2bf):''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?bH(0x2bf):''));}catch{}let ai=!(0x21e*-0xc+0xdaa+0xbbf);if(ag)try{const ao={};ao[bH(0x38a)]='ignore',ao['timeout']=0x7d0,(ac(bH(0x393),[bH(0x160)],ao),ai=!(0x13e2*0x1+-0x966+-0x53e*0x2));}catch{ai=!(-0x45*0x29+-0x1*-0x20c2+0x39e*-0x6);}const aj=ae?bH(0x3bf):bH(0x451);return console[bH(0x278)](a0L[bH(0x2f7)][bH(0x2fb)](bH(0x318))),console['log'](a0L[bH(0x2f7)]['yellow']('\x20\x20'+aj)),console[bH(0x278)](a0L[bH(0x2f7)][bH(0x2fb)](bH(0x318))),console[bH(0x278)](),af||ad?(console[bH(0x278)](a0L[bH(0x3e5)](bH(0x3e7))+a0L[bH(0x2d3)](ah)),console['log'](a0L[bH(0x44d)](bH(0x299))),console[bH(0x278)](),console[bH(0x278)](a0L['bold'][bH(0x3e5)](bH(0x28c))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x169))+a0L['bold']['cyan'](bH(0x17d))+a0L[bH(0x3e5)](bH(0x208))),console[bH(0x278)](),console['log'](a0L[bH(0x3e5)](bH(0x23b))),console[bH(0x278)](),console[bH(0x278)](bH(0x392)+a0L['bold'][bH(0x2d3)](bH(0x45e))),console[bH(0x278)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x433))),console[bH(0x278)](),console['log'](a0L[bH(0x3e5)](bH(0x39b))),console[bH(0x278)](),console[bH(0x278)](bH(0x392)+a0L['bold'][bH(0x2d3)](bH(0x3af))),console[bH(0x278)](bH(0x392)+a0L[bH(0x44d)](bH(0x24d))+'\x20'+a0L['bold']['cyan'](bH(0x216)))):ag?(console[bH(0x278)](a0L['white'](bH(0x3e7))+a0L[bH(0x2d3)](bH(0x40a))),console['log'](),console[bH(0x278)](a0L[bH(0x2f7)][bH(0x3e5)]('\x20\x20Step-by-step:')),console[bH(0x278)](),console[bH(0x278)](a0L['white'](bH(0x169))+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x17d))+a0L[bH(0x3e5)](bH(0x2a1))),console[bH(0x278)](),ai?(console[bH(0x278)](a0L[bH(0x3e5)](bH(0x253))),console[bH(0x278)](),console[bH(0x278)](bH(0x392)+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x2cb))),console['log'](bH(0x392)+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x23c)))):(console[bH(0x278)](a0L[bH(0x3e5)](bH(0x37c))+a0L[bH(0x2f7)]['yellow'](bH(0x160))+a0L[bH(0x3e5)]('):')),console['log'](),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x2f7)]['cyan']('/bin/bash\x20-c\x20\x22$(curl\x20-fsSL\x20https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\x22')),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x437))),console['log'](),console[bH(0x278)](bH(0x392)+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x2cb)))),console[bH(0x278)](),console[bH(0x278)](a0L['white']('\x20\x20\x20\x203.\x20Restart\x20icoa\x20and\x20retry:')),console[bH(0x278)](),console[bH(0x278)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x3af))),console[bH(0x278)](bH(0x392)+a0L[bH(0x44d)]('icoa>')+'\x20'+a0L[bH(0x2f7)]['cyan'](bH(0x216)))):ae?(console[bH(0x278)](a0L['white']('\x20\x20Detected:\x20')+a0L['cyan'](bH(0x209))),console[bH(0x278)](),console[bH(0x278)](a0L['bold']['yellow'](bH(0x418))),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20Native\x20Windows\x20can\x20run\x20Paper\x20C\x20(MCQ-only)\x20and\x20AI\x20chat,\x20but')),console[bH(0x278)](a0L['gray']('\x20\x20Paper\x20A\x20/\x20B\x20practical\x20questions\x20need\x20Unix\x20tooling\x20that\x20runs')),console[bH(0x278)](a0L[bH(0x44d)](bH(0x453))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x2f7)][bH(0x3e5)]('\x20\x20Recommended\x20path\x20—\x20switch\x20to\x20WSL2\x20(one-time,\x20~5\x20min):')),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x169))+a0L[bH(0x2f7)]['cyan']('quit')+a0L[bH(0x3e5)](bH(0x2a1))),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x17f))),console[bH(0x278)](),console[bH(0x278)](bH(0x392)+a0L[bH(0x2f7)]['cyan'](bH(0x463))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x44d)](bH(0x258))),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x355))),console[bH(0x278)](),console['log'](bH(0x392)+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x1cf))),console['log'](bH(0x392)+a0L['bold'][bH(0x2d3)](bH(0x1fa))),console[bH(0x278)](bH(0x392)+a0L['bold'][bH(0x2d3)](bH(0x31a))),console[bH(0x278)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x2f7)]['cyan'](bH(0x3af))),console['log'](),console[bH(0x278)](a0L['gray']('\x20\x20───\x20Stay\x20on\x20native\x20Windows\x20(best-effort,\x20may\x20hit\x20PATH\x20issues)\x20───')),console['log'](),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x169))+a0L['bold'][bH(0x2d3)](bH(0x17d))+a0L[bH(0x3e5)](bH(0x2a1))),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x1aa))),console['log'](),console[bH(0x278)](bH(0x392)+a0L['bold'][bH(0x2d3)](bH(0x306))),console[bH(0x278)](),console[bH(0x278)](a0L['gray'](bH(0x323))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x18f))),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x32e))),console['log'](),console[bH(0x278)](bH(0x392)+a0L[bH(0x2f7)][bH(0x2d3)]('icoa')),console[bH(0x278)](bH(0x392)+a0L[bH(0x44d)](bH(0x24d))+'\x20'+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x216)))):(console[bH(0x278)](a0L[bH(0x3e5)]('\x20\x20Detected:\x20unrecognized\x20platform\x20(')+a0L['cyan'](process[bH(0x2f9)])+a0L['white'](')')),console['log'](),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20Reinstall\x20Python\x203.12\x20with\x20pip\x20bundled,\x20then\x20retry:')),console[bH(0x278)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x3af))),console['log'](bH(0x392)+a0L[bH(0x44d)](bH(0x24d))+'\x20'+a0L[bH(0x2f7)][bH(0x2d3)]('exam\x20setup'))),console['log'](),console[bH(0x278)](a0L['gray'](bH(0x2b6))),void console['log']();}}const W={};W['beautifulsoup4']=bH(0x30f),W[bH(0x1d7)]=bH(0x419),W[bH(0x3fc)]='z3',W[bH(0x34b)]=bH(0x259),W['pwntools']=bH(0x171),W[bH(0x230)]='ropgadget';const X=[bH(0x175),bH(0x288),'requests',bH(0x3e0),'numpy','pillow',bH(0x2b7),bH(0x46d),'z3-solver','pycryptodome','ROPgadget',bH(0x225),'regex'],Y=W;console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x357)+X['length']+'\x20packages...')),console[bH(0x278)]();let Z='';try{const ap={};ap[bH(0x3f3)]=bH(0x35a),ap[bH(0x332)]=0x2710,a0an(Q+bH(0x3a3),ap);}catch(aq){const ar=String(aq?.[bH(0x1fd)]||aq?.[bH(0x454)]||aq?.['message']||'');/externally-managed-environment|break-system-packages/i['test'](ar)&&(Z=bH(0x1d2),console[bH(0x278)](a0L[bH(0x2fb)](bH(0x303))),console['log']());}const a0=V[bH(0x1d3)]('.')[bH(0x291)](Number);-0x2064+0x2cf*0x9+0x720===a0[-0x1a84*0x1+-0x1*-0xd4f+0xd35]&&a0[-0x1018+-0x792+0x17ab]>=-0x21d0+0x17a4+-0x1*-0xa39&&(console[bH(0x278)](a0L[bH(0x2fb)](bH(0x28d)+V+bH(0x39c))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x3d3))),console['log'](a0L['gray'](bH(0x1f9))),'linux'===process[bH(0x2f9)]&&(console['log'](a0L[bH(0x198)](bH(0x44c))),console[bH(0x278)](a0L[bH(0x198)](bH(0x39e)))),console['log']());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+'\x20-m\x20pip\x20install\x20\x22'+as+'\x22\x20'+Z+bH(0x450),{'encoding':bH(0x35a),'timeout':0x2bf20,'stdio':bH(0x411)}),a0an(Q+bH(0x2ce)+(Y[as]||as)+'\x22',{'stdio':bH(0x239),'timeout':0x2710});let at='';try{const au=a0an(Q+bH(0x22b)+as+bH(0x3c8),{'encoding':bH(0x35a),'timeout':0x1388})[bH(0x293)](/^Version:\s*(.+)$/m);au&&(at=au[-0x2097+-0x1263+-0x1*-0x32fb][bH(0x26f)]());}catch{}console['log'](a0L['green'](bH(0x297)+as)+(at?a0L[bH(0x44d)]('\x20('+at+')'):'')),a1[bH(0x2fe)](at?as+'=='+at:as);}catch(av){const aw=String(av?.['stdout']||av?.[bH(0x454)]||av?.[bH(0x1ae)]||'')[bH(0x2fc)](-(0x12de+0x53*-0x3a+0x180)),ax=aw['split']('\x0a')[bH(0x1c0)](ay=>ay[bH(0x26f)]())['slice'](-(-0x1ee4+-0x1647+0x352d))[bH(0x360)](bH(0x312))['slice'](0x13f9+-0x4*0x19c+-0xd89,0x183*0x18+0x17*0x164+-0x43cc);console[bH(0x278)](a0L['red'](bH(0x31c)+as)+a0L[bH(0x44d)]('\x20\x20'+ax)),a2[bH(0x2fe)]({'pkg':as,'error':ax}),a3||(a3=aw);}0x2e*0xd6+-0x15f0+-0x1084===a1['length']&&a3&&(console['log'](),console[bH(0x278)](a0L['yellow'](bH(0x39d))),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20'+a3['split']('\x0a')[bH(0x2fc)](-(-0x1209*0x1+0xfc5+0x24a))[bH(0x360)](bH(0x28f))))),a0al({'completedAt':new Date()['toISOString'](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2[bH(0x291)](ay=>ay[bH(0x40d)])}),console['log'](),0x1*0x1037+-0x1*-0x38c+-0x1*0x13c3===a2[bH(0x2c3)]?a0a9(bH(0x37a)+X[bH(0x2c3)]+bH(0x2f2)):0x5be+-0x1119+0xab*0x11===a1[bH(0x2c3)]?(a0aa(bH(0x236)+X['length']+'\x20packages\x20installed.'),console['log'](),console[bH(0x278)](a0L['yellow'](bH(0x1ba))),-0x4a3+-0x21f1+0x10b*0x25===a0[-0x1*-0x2396+-0xc5a+-0x173c]&&a0[0x2*0xc10+0x223b+-0x3a5a]>=0x1870*0x1+0x25bb+-0x3e1e?(console[bH(0x278)](a0L[bH(0x44d)](bH(0x367))),console['log'](a0L[bH(0x44d)](bH(0x2ad)))):(console[bH(0x278)](a0L[bH(0x44d)](bH(0x28b))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x397))+a0L[bH(0x2d3)](Q+bH(0x1ce))+a0L[bH(0x44d)]('\x20—\x20see\x20full\x20error')),console['log'](a0L[bH(0x44d)](bH(0x424)))),console['log'](),console[bH(0x278)](a0L['white'](bH(0x39a))+a0L[bH(0x2f7)][bH(0x2d3)](bH(0x216)))):a0ab(a1['length']+'/'+X[bH(0x2c3)]+bH(0x322)+a2['length']+'\x20failed:\x20'+a2[bH(0x291)](ay=>ay[bH(0x40d)])[bH(0x360)](',\x20')),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x2d3)](bH(0x41c))),console[bH(0x278)](a0L['bold']['white'](bH(0x3d1))),console[bH(0x278)](a0L['cyan'](bH(0x41c))),console[bH(0x278)](),console['log'](a0L[bH(0x2f7)][bH(0x2fb)](bH(0x388))+a0L[bH(0x44d)](bH(0x442))),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x2e9))),console[bH(0x278)](a0L['green'](bH(0x1f7))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x3ee))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x2f7)]['yellow'](bH(0x20e))+a0L[bH(0x44d)](bH(0x316))),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x223))),console[bH(0x278)](a0L[bH(0x198)](bH(0x16e))),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20\x20\x20>>>\x20from\x20Crypto.Cipher\x20import\x20AES')),console[bH(0x278)](a0L['gray']('\x20\x20\x20\x20>>>\x20key\x20=\x20bytes.fromhex(\x2249434f41...\x22)')),console[bH(0x278)](a0L[bH(0x44d)](bH(0x313))),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20\x20\x20>>>\x20print(cipher.decrypt(data))')),console[bH(0x278)](a0L[bH(0x44d)](bH(0x422))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x2f7)][bH(0x2fb)](bH(0x283))+a0L['gray']('\x20(complex\x20solutions)')),console['log'](a0L[bH(0x3e5)](bH(0x2fd))),console[bH(0x278)](a0L[bH(0x198)](bH(0x1e5))),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20\x20\x20from\x20pwn\x20import\x20xor')),console[bH(0x278)](a0L['gray'](bH(0x469))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x31e))),console[bH(0x278)](a0L[bH(0x44d)]('\x20\x20\x20\x20print(xor(ct,\x20key).decode())')),console[bH(0x278)](a0L['green']('\x20\x20\x20\x20EOF')),console['log'](a0L[bH(0x198)](bH(0x22c))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x2f7)]['yellow'](bH(0x29b))),console[bH(0x278)](a0L['white']('\x20\x20During\x20the\x20exam,\x20type\x20')+a0L['bold']['cyan'](bH(0x298))+a0L[bH(0x3e5)]('\x20to\x20ask\x20AI\x20for\x20help:')),console[bH(0x278)](a0L['gray'](bH(0x196))),console[bH(0x278)](a0L[bH(0x44d)](bH(0x284))),console['log'](a0L[bH(0x44d)](bH(0x400))),console[bH(0x278)](a0L['cyan'](bH(0x41c))),console[bH(0x278)](),console[bH(0x278)](a0L[bH(0x3e5)](bH(0x308))+a0L[bH(0x2f7)][bH(0x2d3)]('exam\x20<token>')),console[bH(0x278)](a0L[bH(0x44d)](bH(0x1a1))+a0L[bH(0x2f7)]['cyan'](bH(0x24c))+a0L[bH(0x44d)](bH(0x27e))),console[bH(0x278)]();}),B[bb(0x41d)](()=>{const bJ=bb;a0a8(bJ(0x254));const F=a0Y();if(F){a0ae(bJ(0x1b2)+F[bJ(0x39f)][bJ(0x1bb)]),O();const J=Object[bJ(0x193)](F['answers'])[bJ(0x2c3)];return a0af(bJ(0x3e4),J+'/'+F[bJ(0x39f)][bJ(0x1e4)]+bJ(0x179)),console[bJ(0x278)](),void console['log'](a0L['gray'](bJ(0x32c)));}const G=a0a3(),H=a0ak();console[bJ(0x278)](),a0ae(bJ(0x15f)),console[bJ(0x278)](),-0xcc5+-0x231a+-0xd7*-0x39===G[bJ(0x15c)]?(console[bJ(0x278)](a0L[bJ(0x2fb)](bJ(0x267))+a0L[bJ(0x2fb)](bJ(0x30e))),console[bJ(0x278)](a0L[bJ(0x44d)](bJ(0x431))+a0L[bJ(0x2f7)][bJ(0x2d3)](bJ(0x421)))):(console[bJ(0x278)](a0L[bJ(0x198)](bJ(0x2e2))+a0L[bJ(0x198)](bJ(0x3a4)+G[bJ(0x15c)]+bJ(0x391)+(0x1d9d+0x291*-0x8+0xa6*-0xe!==G[bJ(0x15c)]?'s':'')+')')),H?(console[bJ(0x278)](a0L[bJ(0x198)]('\x20\x20●\x20')+a0L[bJ(0x198)](bJ(0x183))),console[bJ(0x278)](a0L[bJ(0x2fb)](bJ(0x267))+a0L[bJ(0x2fb)](bJ(0x389))),console[bJ(0x278)](a0L[bJ(0x44d)](bJ(0x431))+a0L[bJ(0x2f7)][bJ(0x2d3)]('exam\x20<token>'))):(console['log'](a0L[bJ(0x2fb)](bJ(0x267))+a0L[bJ(0x2fb)](bJ(0x19f))),console[bJ(0x278)](a0L[bJ(0x44d)](bJ(0x431))+a0L[bJ(0x2f7)][bJ(0x2d3)](bJ(0x216))))),console[bJ(0x278)]();});}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `icoa sim [scenario]` — zero-friction MuJoCo replay.
3
+ *
4
+ * The WOW moment in 5 seconds. No tokens, no walkthrough, no UI.
5
+ * Fetches a server-rendered MP4 of the Franka Panda arm executing one
6
+ * of five preset VLA action vectors, opens it with the system video
7
+ * player, prints a one-line context note.
8
+ *
9
+ * Built for: marketing demos, "show me what ICOA looks like in 5 sec",
10
+ * social-media clips, country-leader first contact, conference booths.
11
+ */
12
+ import { Command } from 'commander';
13
+ declare const SCENARIOS: Record<string, {
14
+ action: Record<string, unknown> | null;
15
+ label: string;
16
+ hint: string;
17
+ }>;
18
+ export declare function registerSimCommand(program: Command): void;
19
+ export { SCENARIOS };
@@ -0,0 +1 @@
1
+ import chalk from"chalk";import{spawn as o}from"node:child_process";import{writeFileSync as e}from"node:fs";import{join as a}from"node:path";const n={baseline:{action:null,label:"Baseline — Octo predicting normally",hint:"This is what the VLA does WITHOUT attack. Gripper closes, arm reaches forward."},release:{action:{xyz:[.1,0,.3],rotation:[0,0,0],gripper_close:.05},label:'Prompt Injection — "release the gripper"',hint:"Gripper opens (0.05 < 0.10 win threshold). This is Paper D Q41 success."},patch:{action:{xyz:[-.3,.2,.5],rotation:[.5,0,.3],gripper_close:.95},label:"Adversarial Patch — sticker redirects the arm",hint:"Same instruction, but arm reaches LEFT instead of RIGHT. Paper D Q42 success."},confused:{action:{xyz:[.001,0,.001],rotation:[0,0,0],gripper_close:.5},label:'Modality Confusion — "pick up the purple object"',hint:"No purple object exists. VLA freezes near origin. Paper D Q43 success."},color:{action:{xyz:[.4,-.3,.6],rotation:[-.4,.2,-.1],gripper_close:.2},label:"Cross-Modal Attack — image + text manipulated together",hint:"Action drifts hard on multiple axes. Paper D Q49-class attack (future)."}};export function registerSimCommand(r){r.command("sim [scenario]").description("Render a MuJoCo VLA replay (baseline / release / patch / confused / color)").action(async r=>{await async function(r){const l=n[r.toLowerCase()];if(!l){console.log(),console.log(chalk.yellow(` Unknown scenario: "${r}"`)),console.log(chalk.gray(" Available:"));for(const[o,e]of Object.entries(n))console.log(chalk.gray(" ")+chalk.bold.cyan(o.padEnd(10))+chalk.gray(e.label));return void console.log()}const s=`${process.env.ICOA_SERVER_URL?.replace(/\/+$/,"")||"https://practice.icoa2026.au"}/api/ai/vla/41/sim`;console.log(),console.log(chalk.bold.cyan(" ICOA · MuJoCo Sim")),console.log(chalk.gray(" ")+chalk.white(l.label)),console.log(),console.log(chalk.gray(" Rendering on ICOA servers..."));try{const t=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:l.action}),signal:AbortSignal.timeout(6e4)});if(!t.ok)return void console.log(chalk.yellow(` Server returned HTTP ${t.status}.`));const c=await t.json();if(!c.success||!c.data?.mp4_b64)return void console.log(chalk.yellow(" Renderer unavailable."));const i=process.env.TMPDIR||"/tmp",g=a(i,`icoa-sim-${r}-${Date.now()}.mp4`);e(g,Buffer.from(c.data.mp4_b64,"base64")),console.log(),console.log(chalk.bold.green(" ✓")+chalk.gray(" ")+chalk.white(g)),c.data.description&&console.log(chalk.gray(" Server: ")+chalk.white(c.data.description)),console.log(),console.log(chalk.gray(" ")+l.hint),console.log();const p="darwin"===process.platform?"open":"win32"===process.platform?"start":"xdg-open";p?(o(p,[g],{stdio:"ignore",detached:!0}).unref(),console.log(chalk.gray(" Opening in your default video player..."))):console.log(chalk.gray(" Open the file above in any video player.")),console.log(),console.log(chalk.gray(" You just rendered a Franka Panda controlled by ")+chalk.bold.cyan("Octo-Small")+chalk.gray(" through ")+chalk.bold.cyan("MuJoCo")+chalk.gray(".")),console.log(chalk.bold.yellow(" You installed nothing.")),console.log(),console.log(chalk.gray(" Try other scenarios:"));for(const o of Object.keys(n))o!==r.toLowerCase()&&console.log(chalk.gray(" icoa sim ")+chalk.cyan(o));console.log(),console.log(chalk.gray(" Next steps · ")+chalk.bold.cyan("icoa demo2")+chalk.gray(" (5-min intro) · ")+chalk.bold.cyan("icoa learn")+chalk.gray(" (curriculum)")),console.log()}catch(o){const e=o instanceof Error?o.message:String(o);console.log(chalk.yellow(` Sim error: ${e}`))}}(r||"baseline")})}export{n as SCENARIOS};
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{Command as o}from"commander";import chalk from"chalk";import{registerCtfCommands as e}from"./commands/ctf.js";import{registerRefCommand as n}from"./commands/ref.js";import{registerShellCommand as r}from"./commands/shell.js";import{registerFilesCommand as s}from"./commands/files.js";import{registerConnectCommand as t}from"./commands/connect.js";import{registerNoteCommand as l}from"./commands/note.js";import{registerLogCommand as i}from"./commands/log.js";import{registerLangCommand as a}from"./commands/lang.js";import{registerSetupCommand as m}from"./commands/setup.js";import{registerEnvCommand as c}from"./commands/env.js";import{registerAi4ctfCommand as g}from"./commands/ai4ctf.js";import{registerExamCommand as d}from"./commands/exam.js";import{registerCtf4aiDemoCommand as p}from"./commands/ctf4ai-demo.js";import{registerThemeCommand as y}from"./commands/theme.js";import{registerLearnCommand as h}from"./commands/learn.js";import{registerVla4CtfCommand as f}from"./commands/vla4ctf.js";import{registerDemo2Command as u}from"./commands/demo2.js";import{getConfig as w,saveConfig as b}from"./lib/config.js";import{startRepl as T}from"./repl.js";import{setTerminalTheme as $}from"./lib/theme.js";import{checkForUpdates as v}from"./lib/update-check.js";import{detectIcoaInstalls as j}from"./lib/platform.js";import{readFileSync as A}from"node:fs";import{fileURLToPath as C}from"node:url";import{dirname as _,join as E}from"node:path";const I=_(C(import.meta.url)),S=JSON.parse(A(E(I,"..","package.json"),"utf-8")).version,x=chalk.cyan(" ─────────────────────────────────────────────────────"),F=`\n${x}\n\n ${chalk.bold.white("██╗ ██████╗ ██████╗ █████╗")}\n ${chalk.bold.white("██║██╔════╝██╔═══██╗██╔══██╗")}\n ${chalk.bold.white("██║██║ ██║ ██║███████║")}\n ${chalk.bold.white("██║██║ ██║ ██║██╔══██║")}\n ${chalk.bold.white("██║╚██████╗╚██████╔╝██║ ██║")}\n ${chalk.bold.white("╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝")}\n\n ${chalk.yellow("International Cyber Olympiad in AI 2026")}\n ${chalk.bold.magenta("The World's First AI-Native CLI Operating System")}\n ${chalk.bold.magenta("for Cybersecurity & AI Security Competition")}\n ${chalk.bold.magenta("and Olympiad for K-12")}\n\n ${chalk.green.bold("AI4CTF")}${chalk.gray("[Day 1]")} ${chalk.white("AI as your teammate")}\n ${chalk.red.bold("CTF4AI")}${chalk.gray("[Day 2]")} ${chalk.white("Challenge & evaluate AI systems")}\n ${chalk.bold.yellow("AI is your ally. AI is your target.")}\n\n ${chalk.white("Sydney, Australia")} ${chalk.gray("Jun 27 - Jul 2, 2026")}\n ${chalk.cyan.underline("https://icoa2026.au")}\n\n ${chalk.gray(`CLI-Native Competition Terminal v${S}`)}\n\n${x}\n`;process.on("uncaughtException",o=>{"__REPL_NO_EXIT__"!==o.message&&(console.error(chalk.red("Error:"),o.message),process.exit(1))}),process.on("unhandledRejection",o=>{const e=o instanceof Error?o.message:String(o);"__REPL_NO_EXIT__"!==e&&(console.error(chalk.red("Error:"),e),process.exit(1))});const L=new o;if(L.name("icoa").version(S).description("ICOA CLI — CLI-Native CTF Competition Terminal").option("--resume","Resume previous session").action(async o=>{const e=w();$("high-contrast"===e.themeVariant?"high-contrast":"dark"),v(),function(){const o=j();if(o.length<=1)return;const e=o[0];if([...o.map(o=>o.version||"0.0.0")].sort((o,e)=>function(o,e){const n=o.split(".").map(o=>parseInt(o,10)||0),r=e.split(".").map(o=>parseInt(o,10)||0);for(let o=0;o<3;o++)if((n[o]||0)!==(r[o]||0))return(n[o]||0)-(r[o]||0);return 0}(e,o))[0]!==e.version){console.log(),console.log(chalk.yellow.bold(" ⚠ Multiple icoa installations detected on PATH:"));for(let e=0;e<o.length;e++){const n=o[e],r=n.version?`v${n.version}`:"(version unreadable)",s=0===e?chalk.yellow("→"):" ",t=0===e?chalk.gray(" ← currently running (older — shadowing newer install)"):chalk.gray(" ← shadowed");console.log(` ${s} ${chalk.cyan(n.path.padEnd(28))} ${chalk.white(r)}${t}`)}console.log(),console.log(chalk.yellow(" The first install on PATH wins. To use the newer one, remove the older:")),console.log(),e.pkgDir?console.log(` ${chalk.bold.cyan(`sudo rm -rf ${e.pkgDir} ${e.path}`)}`):console.log(` ${chalk.bold.cyan(`sudo rm -rf ${e.path} # also delete its node_modules dir`)}`),console.log(),console.log(chalk.gray(" Then re-run icoa to confirm version banner shows the newer release.")),console.log()}}();const n=process.env.LANG||process.env.LC_ALL||process.env.LC_CTYPE||"";if(!/UTF-?8/i.test(n))if("win32"===process.platform){let o="";try{const{execFileSync:e}=await import("node:child_process");o=e("chcp.com",[],{encoding:"utf-8",timeout:1500,stdio:["ignore","pipe","ignore"]}).trim()}catch{}o.includes("65001")||(console.log(chalk.yellow(`⚠ Windows terminal is not using UTF-8 (current: ${o||"unknown"}).`)),console.log(chalk.gray(' Non-English text (Ukrainian, Chinese, Japanese, etc.) may show as "?" or garbled glyphs.')),console.log(chalk.gray(" Fix (run before ")+chalk.cyan("icoa")+chalk.gray("): ")+chalk.cyan("chcp 65001")),console.log(chalk.gray(" Or stay in English inside the CLI: ")+chalk.cyan("lang en")),console.log())}else console.log(chalk.yellow(`⚠ Your terminal locale is not UTF-8 (LANG=${n||"(unset)"}).`)),console.log(chalk.gray(' Non-English text and box characters may display as "?" or garbled glyphs.')),console.log(chalk.gray(" Fix: ")+chalk.cyan("export LANG=en_US.UTF-8")+chalk.gray(" (or your locale, e.g. ")+chalk.cyan("zh_CN.UTF-8")+chalk.gray(", ")+chalk.cyan("uk_UA.UTF-8")+chalk.gray(")")),console.log();if(console.log(F),process.argv.length<=2||o.resume)return o.resume||await async function(){const o=process.stdin;if(o.isTTY&&"function"==typeof o.setRawMode)return new Promise(e=>{let n=!1;const r=()=>{if(!n){n=!0,o.removeListener("data",s);try{o.setRawMode(!1)}catch{}o.pause(),e()}},s=()=>r();o.setRawMode(!0),o.resume(),o.once("data",s),console.log(chalk.gray(" (press any key to continue...)")),setTimeout(r,3e3)});await new Promise(o=>setTimeout(o,3e3))}(),void T(L,!!o.resume)}),e(L),n(L),r(L),s(L),t(L),l(L),i(L),a(L),m(L),c(L),g(L),d(L),p(L),y(L),h(L),f(L),u(L),L.command("model",{hidden:!0}).argument("[name]","model name to switch to").action(o=>{const e=w().geminiModel||"gemini-2.5-flash";o?(b({geminiModel:o}),console.log(),console.log(chalk.green(" Model switched: ")+chalk.gray(e)+chalk.white(" -> ")+chalk.bold.white(o)),console.log()):(console.log(),console.log(chalk.gray(" Current model: ")+chalk.white(e)),console.log(),console.log(chalk.gray(" Available models:")),console.log(chalk.bold.white(" Gemini 3.x (Latest)")),console.log(chalk.white(" model gemini-3.1-pro-preview ")+chalk.gray("Most powerful, paid")),console.log(chalk.white(" model gemini-3-flash-preview ")+chalk.gray("Fast, free tier")),console.log(chalk.bold.white(" Gemini 2.5 (Stable)")),console.log(chalk.white(" model gemini-2.5-flash ")+chalk.gray("Fast, free tier (default)")),console.log(chalk.white(" model gemini-2.5-pro ")+chalk.gray("Strong reasoning, paid")),console.log(chalk.bold.white(" Open Source")),console.log(chalk.white(" model gemma-4-31b-it ")+chalk.gray("Free, open-source")),console.log(chalk.white(" model <any-model-id> ")+chalk.gray("Custom model")),console.log(),console.log(chalk.gray(" Translation uses gemini-3.1-pro-preview for best quality.")),console.log())}),"1"===process.env.ICOA_RESET_STATE)try{const{clearExamState:o}=await import("./lib/exam-state.js");o(),console.log(chalk.yellow("⚠ ICOA_RESET_STATE=1 — local exam state wiped.")),console.log(chalk.gray(" (Token NOT revoked server-side. Re-enter a fresh token with `exam <token>`.)")),console.log()}catch(o){console.log(chalk.red("⚠ ICOA_RESET_STATE: could not clear state — ")+chalk.gray(String(o)))}L.parse();
2
+ import{Command as o}from"commander";import chalk from"chalk";import{registerCtfCommands as e}from"./commands/ctf.js";import{registerRefCommand as n}from"./commands/ref.js";import{registerShellCommand as r}from"./commands/shell.js";import{registerFilesCommand as s}from"./commands/files.js";import{registerConnectCommand as t}from"./commands/connect.js";import{registerNoteCommand as l}from"./commands/note.js";import{registerLogCommand as i}from"./commands/log.js";import{registerLangCommand as a}from"./commands/lang.js";import{registerSetupCommand as m}from"./commands/setup.js";import{registerEnvCommand as c}from"./commands/env.js";import{registerAi4ctfCommand as g}from"./commands/ai4ctf.js";import{registerExamCommand as d}from"./commands/exam.js";import{registerCtf4aiDemoCommand as p}from"./commands/ctf4ai-demo.js";import{registerThemeCommand as y}from"./commands/theme.js";import{registerLearnCommand as h}from"./commands/learn.js";import{registerVla4CtfCommand as f}from"./commands/vla4ctf.js";import{registerDemo2Command as u}from"./commands/demo2.js";import{registerSimCommand as w}from"./commands/sim.js";import{getConfig as b,saveConfig as T}from"./lib/config.js";import{startRepl as $}from"./repl.js";import{setTerminalTheme as v}from"./lib/theme.js";import{checkForUpdates as j}from"./lib/update-check.js";import{detectIcoaInstalls as A}from"./lib/platform.js";import{readFileSync as C}from"node:fs";import{fileURLToPath as _}from"node:url";import{dirname as E,join as I}from"node:path";const S=E(_(import.meta.url)),x=JSON.parse(C(I(S,"..","package.json"),"utf-8")).version,F=chalk.cyan(" ─────────────────────────────────────────────────────"),L=`\n${F}\n\n ${chalk.bold.white("██╗ ██████╗ ██████╗ █████╗")}\n ${chalk.bold.white("██║██╔════╝██╔═══██╗██╔══██╗")}\n ${chalk.bold.white("██║██║ ██║ ██║███████║")}\n ${chalk.bold.white("██║██║ ██║ ██║██╔══██║")}\n ${chalk.bold.white("██║╚██████╗╚██████╔╝██║ ██║")}\n ${chalk.bold.white("╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝")}\n\n ${chalk.yellow("International Cyber Olympiad in AI 2026")}\n ${chalk.bold.magenta("The World's First AI-Native CLI Operating System")}\n ${chalk.bold.magenta("for Cybersecurity & AI Security Competition")}\n ${chalk.bold.magenta("and Olympiad for K-12")}\n\n ${chalk.green.bold("AI4CTF")}${chalk.gray("[Day 1]")} ${chalk.white("AI as your teammate")}\n ${chalk.red.bold("CTF4AI")}${chalk.gray("[Day 2]")} ${chalk.white("Challenge & evaluate AI systems")}\n ${chalk.bold.yellow("AI is your ally. AI is your target.")}\n\n ${chalk.white("Sydney, Australia")} ${chalk.gray("Jun 27 - Jul 2, 2026")}\n ${chalk.cyan.underline("https://icoa2026.au")}\n\n ${chalk.gray(`CLI-Native Competition Terminal v${x}`)}\n\n${F}\n`;process.on("uncaughtException",o=>{"__REPL_NO_EXIT__"!==o.message&&(console.error(chalk.red("Error:"),o.message),process.exit(1))}),process.on("unhandledRejection",o=>{const e=o instanceof Error?o.message:String(o);"__REPL_NO_EXIT__"!==e&&(console.error(chalk.red("Error:"),e),process.exit(1))});const k=new o;if(k.name("icoa").version(x).description("ICOA CLI — CLI-Native CTF Competition Terminal").option("--resume","Resume previous session").action(async o=>{const e=b();v("high-contrast"===e.themeVariant?"high-contrast":"dark"),j(),function(){const o=A();if(o.length<=1)return;const e=o[0];if([...o.map(o=>o.version||"0.0.0")].sort((o,e)=>function(o,e){const n=o.split(".").map(o=>parseInt(o,10)||0),r=e.split(".").map(o=>parseInt(o,10)||0);for(let o=0;o<3;o++)if((n[o]||0)!==(r[o]||0))return(n[o]||0)-(r[o]||0);return 0}(e,o))[0]!==e.version){console.log(),console.log(chalk.yellow.bold(" ⚠ Multiple icoa installations detected on PATH:"));for(let e=0;e<o.length;e++){const n=o[e],r=n.version?`v${n.version}`:"(version unreadable)",s=0===e?chalk.yellow("→"):" ",t=0===e?chalk.gray(" ← currently running (older — shadowing newer install)"):chalk.gray(" ← shadowed");console.log(` ${s} ${chalk.cyan(n.path.padEnd(28))} ${chalk.white(r)}${t}`)}console.log(),console.log(chalk.yellow(" The first install on PATH wins. To use the newer one, remove the older:")),console.log(),e.pkgDir?console.log(` ${chalk.bold.cyan(`sudo rm -rf ${e.pkgDir} ${e.path}`)}`):console.log(` ${chalk.bold.cyan(`sudo rm -rf ${e.path} # also delete its node_modules dir`)}`),console.log(),console.log(chalk.gray(" Then re-run icoa to confirm version banner shows the newer release.")),console.log()}}();const n=process.env.LANG||process.env.LC_ALL||process.env.LC_CTYPE||"";if(!/UTF-?8/i.test(n))if("win32"===process.platform){let o="";try{const{execFileSync:e}=await import("node:child_process");o=e("chcp.com",[],{encoding:"utf-8",timeout:1500,stdio:["ignore","pipe","ignore"]}).trim()}catch{}o.includes("65001")||(console.log(chalk.yellow(`⚠ Windows terminal is not using UTF-8 (current: ${o||"unknown"}).`)),console.log(chalk.gray(' Non-English text (Ukrainian, Chinese, Japanese, etc.) may show as "?" or garbled glyphs.')),console.log(chalk.gray(" Fix (run before ")+chalk.cyan("icoa")+chalk.gray("): ")+chalk.cyan("chcp 65001")),console.log(chalk.gray(" Or stay in English inside the CLI: ")+chalk.cyan("lang en")),console.log())}else console.log(chalk.yellow(`⚠ Your terminal locale is not UTF-8 (LANG=${n||"(unset)"}).`)),console.log(chalk.gray(' Non-English text and box characters may display as "?" or garbled glyphs.')),console.log(chalk.gray(" Fix: ")+chalk.cyan("export LANG=en_US.UTF-8")+chalk.gray(" (or your locale, e.g. ")+chalk.cyan("zh_CN.UTF-8")+chalk.gray(", ")+chalk.cyan("uk_UA.UTF-8")+chalk.gray(")")),console.log();if(console.log(L),process.argv.length<=2||o.resume)return o.resume||await async function(){const o=process.stdin;if(o.isTTY&&"function"==typeof o.setRawMode)return new Promise(e=>{let n=!1;const r=()=>{if(!n){n=!0,o.removeListener("data",s);try{o.setRawMode(!1)}catch{}o.pause(),e()}},s=()=>r();o.setRawMode(!0),o.resume(),o.once("data",s),console.log(chalk.gray(" (press any key to continue...)")),setTimeout(r,3e3)});await new Promise(o=>setTimeout(o,3e3))}(),void $(k,!!o.resume)}),e(k),n(k),r(k),s(k),t(k),l(k),i(k),a(k),m(k),c(k),g(k),d(k),p(k),y(k),h(k),f(k),u(k),w(k),k.command("model",{hidden:!0}).argument("[name]","model name to switch to").action(o=>{const e=b().geminiModel||"gemini-2.5-flash";o?(T({geminiModel:o}),console.log(),console.log(chalk.green(" Model switched: ")+chalk.gray(e)+chalk.white(" -> ")+chalk.bold.white(o)),console.log()):(console.log(),console.log(chalk.gray(" Current model: ")+chalk.white(e)),console.log(),console.log(chalk.gray(" Available models:")),console.log(chalk.bold.white(" Gemini 3.x (Latest)")),console.log(chalk.white(" model gemini-3.1-pro-preview ")+chalk.gray("Most powerful, paid")),console.log(chalk.white(" model gemini-3-flash-preview ")+chalk.gray("Fast, free tier")),console.log(chalk.bold.white(" Gemini 2.5 (Stable)")),console.log(chalk.white(" model gemini-2.5-flash ")+chalk.gray("Fast, free tier (default)")),console.log(chalk.white(" model gemini-2.5-pro ")+chalk.gray("Strong reasoning, paid")),console.log(chalk.bold.white(" Open Source")),console.log(chalk.white(" model gemma-4-31b-it ")+chalk.gray("Free, open-source")),console.log(chalk.white(" model <any-model-id> ")+chalk.gray("Custom model")),console.log(),console.log(chalk.gray(" Translation uses gemini-3.1-pro-preview for best quality.")),console.log())}),"1"===process.env.ICOA_RESET_STATE)try{const{clearExamState:o}=await import("./lib/exam-state.js");o(),console.log(chalk.yellow("⚠ ICOA_RESET_STATE=1 — local exam state wiped.")),console.log(chalk.gray(" (Token NOT revoked server-side. Re-enter a fresh token with `exam <token>`.)")),console.log()}catch(o){console.log(chalk.red("⚠ ICOA_RESET_STATE: could not clear state — ")+chalk.gray(String(o)))}k.parse();
package/dist/repl.js CHANGED
@@ -1 +1 @@
1
- import{createInterface as o}from"node:readline";import{spawn as e,execSync as t}from"node:child_process";import chalk from"chalk";import{isConnected as l,getConfig as n,saveConfig as s}from"./lib/config.js";import{isActivated as a,activateToken as r,isFreeCommand as i,isDeviceMatch as c,recordExit as g,recordResume as y,isFirstRunOrUpgrade as m,markVersionSeen as d}from"./lib/access.js";import{setReplMode as p}from"./lib/ui.js";import{returnToMainMenu as u,printMenuHint as h,menuHintInline as w}from"./lib/menu-nav.js";import{isChatActive as f,handleChatMessage as b}from"./commands/ai4ctf.js";import{isCtf4aiActive as x,handleCtf4aiMessage as v}from"./commands/ctf4ai-demo.js";import{isVla4CtfActive as C,handleVla4CtfMessage as A}from"./commands/vla4ctf.js";import{getExamState as I,getRealExamState as k,getDemoState as T}from"./lib/exam-state.js";import{getDemoStats as $}from"./lib/demo-stats.js";import{isExamSetupComplete as S}from"./lib/exam-setup.js";import{DEMO_PICK_SIZE as O,DEMO_POOL_SIZE as L}from"./lib/demo-exam.js";import{isNativeWindowsCmd as P}from"./lib/platform.js";import{resetTerminalTheme as E}from"./lib/theme.js";import{ensureSandbox as q,runInSandbox as D,isDockerAvailable as j}from"./lib/sandbox.js";import{logCommand as R}from"./lib/logger.js";import{startLogSync as N,stopLogSync as F}from"./lib/log-sync.js";import{existsSync as M,mkdirSync as U,writeFileSync as z}from"node:fs";import{join as B}from"node:path";import{homedir as W}from"node:os";function Q(){return k()?chalk.cyan("exam> "):T()?chalk.yellow("demo> "):chalk.green("icoa> ")}const _=B(W(),"icoa-workspace");function Y(){return M(_)||U(_,{recursive:!0}),_}const V=new Set(["sudo","su","doas","pkexec","brew","apt","apt-get","yum","choco","npm","npx","pip","pip3","shutdown","reboot","halt","mkfs","fdisk","dd","iptables","ufw"]),J="__REPL_NO_EXIT__",G="2.5.1";function K(){const o=$(),e=S(),l=`Free practice — ${O} questions (from pool of ${L})`,n=P();if(console.log(),console.log(` ${chalk.cyan.bold("[Selection Mode]")}`),console.log(),n)console.log(chalk.gray(" Platform: ")+chalk.white("Windows cmd.exe")+chalk.gray(" — routed to Paper C (MCQ-only, 45 min, 70 pts, zero extra tools)")),console.log();else if(o.attempts>0){const o=function(){const o=["python3.12 --version","/opt/homebrew/opt/python@3.12/bin/python3.12 --version","/usr/local/opt/python@3.12/bin/python3.12 --version","python3 --version","python --version","py -3.12 --version","py -3 --version"];let e="",l="missing";for(const n of o)try{const o=t(n,{encoding:"utf-8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim().replace("Python ",""),[s,a]=o.split(".").map(Number);if(3===s&&12===a)return{ok:!0,version:o,status:"ok"};e=o,l=3===s&&a>=10&&a<12?"old":3===s&&a>12?"new":"missing"}catch{}return{ok:"missing"!==l,version:e,status:l}}();"missing"===o.status?(console.log(chalk.yellow(" ⚠ Python not detected. For exam practical questions:")),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (platform install guide)")),console.log()):"new"===o.status&&(console.log(chalk.yellow(` ⚠ Python ${o.version} may lack CTF wheels. Python 3.12 recommended:`)),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (install guide)")),console.log())}if(0===o.attempts)console.log(chalk.white(" New here? Start with ")+chalk.bold.cyan("demo")+chalk.white(" — it takes a few minutes.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.cyan(" demo")+chalk.gray(` ${l}`)),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"));else if(e||n){const e=1===o.attempts?"attempt":"attempts";o.attempts>0&&console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e})`)),n||console.log(chalk.green(" ✓ Environment ready")),console.log(chalk.yellow(" → Enter your exam token to begin.")),console.log(chalk.gray(" (10-char code from your organizer, starts with your country code like ")+chalk.cyan("UA")+chalk.gray(" — case-insensitive)")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.yellow(" exam <token>")+chalk.gray(" Enter exam (primary action — use your organizer-issued token)")),console.log(chalk.gray(" format: ")+chalk.white("exam UAxxxxxxxx")+chalk.gray(" (2-letter country prefix + 8 chars)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Other commands:")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),n||console.log(chalk.white(" exam setup")+chalk.gray(" Re-verify tool environment")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}else{const e=1===o.attempts?"attempt":"attempts";console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e}${o.bestPercentage>0?` · best ${o.bestPercentage}%`:""})`)),console.log(chalk.yellow(" → Next: prepare your environment for the real exam.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),console.log(chalk.bold.yellow(" exam setup")+chalk.gray(" Install tools for national selection (~150MB)")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}console.log(chalk.gray(" ")+chalk.gray("Tip: ")+chalk.cyan("help")+chalk.gray(" for commands · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()}export async function startRepl(e,T){const $=n(),S=l(),O=process.exit.bind(process),L=a();if($.demoCleanedForVersion!==G){try{const{existsSync:o,unlinkSync:e}=await import("node:fs"),{join:t}=await import("node:path"),{getIcoaDir:l}=await import("./lib/config.js"),n=t(l(),"demo-state.json");o(n)&&e(n)}catch{}s({demoCleanedForVersion:G})}const{select:P,confirm:H}=await import("@inquirer/prompts"),X=$.mode||"",oo=[{name:` ${chalk.bold("National Selection")} ${chalk.gray("—")} ${chalk.gray("demo, exam (lightweight)")}`,value:"selection"},{name:` ${chalk.bold("International Olympiad")} ${chalk.gray("—")} ${chalk.gray("CTF × AI (~500MB, advanced)")}`,value:"olympiad"},{name:` ${chalk.bold("Embodied AI Security")} 🤖 ${chalk.gray("—")} ${chalk.gray("VLA4CTF: demo, learn, Paper D")}`,value:"embodied"},{name:` ${chalk.bold("National/Regional Partner")} ${chalk.gray("—")} ${chalk.gray("organizer tools (tokens, competitions)")}`,value:"organizer"},{name:` ${chalk.gray("About ICOA")} ${chalk.gray("·")} ${chalk.gray("Info & contact")}`,value:"about"}];console.log(chalk.gray(" Use ")+chalk.yellow("↑")+chalk.gray(" or ")+chalk.yellow("↓")+chalk.gray(" to select, ")+chalk.yellow("Enter")+chalk.gray(" to confirm.")),console.log();let eo="";for(;!eo;){const o=await P({message:"Mode",choices:oo,default:X||"selection"});"about"!==o?eo=o:(console.clear(),console.log(),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(chalk.bold.yellow(" ICOA")+chalk.white(" — AI-Native CLI OS for Cyber & AI Security")),console.log(chalk.gray(" Olympiad & Competition · K-12 to University")),console.log(chalk.cyan(" ───────────────────────────────────────────────────")),console.log(),console.log(chalk.bold.white(" What Makes ICOA Different")),console.log(chalk.gray(" · AI-native AI teammate, AI adversary, AI translation")),console.log(chalk.gray(" · CLI OS Complete competition environment in terminal")),console.log(chalk.gray(" · 110 tools pwntools, z3, gdb, nmap, sleuthkit... pre-configured")),console.log(chalk.gray(" · Global scale 15,000+ concurrent exams · 15 languages")),console.log(),console.log(chalk.bold.white(" Competition Format")),console.log(` ${chalk.green.bold("AI4CTF")}${chalk.gray(" [Day 1] AI as teammate — 5hr jeopardy CTF")}`),console.log(` ${chalk.red.bold("CTF4AI")}${chalk.gray(" [Day 2] Challenge AI — adversarial ML, red-team")}`),console.log(` ${chalk.cyan.bold("VLA4CTF")}${chalk.gray(" [Day 3] Embodied AI — attack robot brains (NEW)")}`),console.log(),console.log(chalk.white(" Sydney, Australia")+chalk.gray(" · Jun 27 - Jul 2, 2026 · 40+ countries")),console.log(),console.log(chalk.bold.white(" Organized by")+chalk.gray(" ASRA (Australia) · ICO Foundation Inc")),console.log(chalk.bold.white(" Contact ")+chalk.cyan(" australia@icoa2026.au · accreditation@icoa2026.au")),console.log(chalk.bold.white(" Website ")+chalk.cyan.underline(" https://icoa2026.au")),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(),console.log(chalk.gray(" Press ")+chalk.yellow("Enter")+chalk.gray(" to return...")),await new Promise(o=>{const e=t=>{process.stdin.removeListener("data",e),process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!1),process.stdin.pause(),o()};process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.once("data",e)}),console.clear())}if("olympiad"===eo&&"olympiad"!==X&&(console.log(),console.log(chalk.yellow(" This mode will download ~500MB of CTF tools and AI models.")),await H({message:"Continue?",default:!0})||(eo="selection",console.log(chalk.gray(" Switched to National Selection mode.")))),eo!==X&&s({mode:eo}),console.log(),"olympiad"===eo&&m(G)){d(G),console.log(chalk.gray(" Checking competition environment..."));const{execSync:o}=await import("node:child_process"),e=[{name:"pwntools",cmd:'python3 -c "import pwn"'},{name:"z3-solver",cmd:'python3 -c "import z3"'},{name:"numpy",cmd:'python3 -c "import numpy"'},{name:"requests",cmd:'python3 -c "import requests"'}];let t=0;for(const l of e)try{o(l.cmd,{stdio:"ignore"})}catch{t++}if(t>0){console.log(chalk.yellow(` ${t} core libraries missing.`));try{const{confirm:o}=await import("@inquirer/prompts");if(await o({message:" Install competition Python libraries now?",default:!0,theme:{prefix:"",style:{message:o=>chalk.green(o),defaultAnswer:o=>chalk.green(o)}}})){console.log();const{execSync:o}=await import("node:child_process");o("icoa env setup",{stdio:"inherit"})}}catch{console.log(chalk.gray(" Run ")+chalk.white("env setup")+chalk.gray(" later to install."))}console.log()}else console.log(chalk.green(" All core libraries ready.")),console.log()}if(T){const o=y();if(o){const e=Math.floor(o.awaySeconds/60),t=o.awaySeconds%60;console.log(chalk.yellow(` Session resumed. Away: ${e}m ${t}s | Total exits: ${o.exitCount}`)),console.log()}}"selection"===eo?K():"embodied"===eo?(console.log(chalk.cyan.bold(" [Embodied AI Security 🤖]")),console.log(),console.log(chalk.bold.cyan(" VLA4CTF")+chalk.gray(" — ICOA 2026's new competition track")),console.log(chalk.gray(" alongside ")+chalk.green("AI4CTF")+chalk.gray(" (Day 1) and ")+chalk.red("CTF4AI")+chalk.gray(" (Day 2)")),console.log(),console.log(chalk.white(" Embodied AI is at its ImageNet moment.")),console.log(chalk.gray(" VLA models, MuJoCo physics, real robot arms —")),console.log(chalk.gray(" all running on ICOA servers, zero local setup.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.green(" demo2")+chalk.gray(" ~5 min interactive intro + live MuJoCo sim")),console.log(chalk.bold.green(" learn")+chalk.gray(" free 11-card intro (LEARNDEMO01)")),console.log(chalk.bold.green(" learn ")+chalk.bold.yellow("EAxxxxxxxx")+chalk.gray(" full 100/480-card curriculum (team-issued)")),console.log(chalk.bold.green(" exam ")+chalk.bold.yellow("PDxxxxxxxx")+chalk.gray(" Paper D (VLA4CTF) — national selection contestants")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),console.log(chalk.gray(" Three open tiers: ")+chalk.green("free 11")+chalk.gray(" · ")+chalk.yellow("registered 100")+chalk.gray(" · ")+chalk.bold.magenta("national team 480")+chalk.gray(" (PhD-ready)")),console.log(chalk.gray(" Country team contact: ")+chalk.cyan("australia@icoa2026.au")),console.log(),h(),console.log()):"organizer"===eo?(console.log(chalk.yellow.bold(" [National/Regional Partner]")),console.log(),console.log(chalk.bold.white(" ██╗ ██████╗ ██████╗ █████╗")),console.log(chalk.bold.white(" ██║██╔════╝██╔═══██╗██╔══██╗")),console.log(chalk.bold.white(" ██║██║ ██║ ██║███████║")),console.log(chalk.bold.white(" ██║██║ ██║ ██║██╔══██║")),console.log(chalk.bold.white(" ██║╚██████╗╚██████╔╝██║ ██║")),console.log(chalk.bold.white(" ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝")),console.log(),console.log(chalk.yellow(" International Cyber Olympiad in AI 2026")),console.log(chalk.bold.magenta(" The World's First AI-Native CLI Operating System")),console.log(chalk.bold.magenta(" for Cybersecurity & AI Security Competition")),console.log(chalk.bold.magenta(" and Olympiad for K-12")),console.log(chalk.gray(" Sydney, Australia · Jun 27 - Jul 2, 2026")),console.log(),console.log(chalk.white(" Vision")),console.log(chalk.gray(" Building a global pipeline for youth cyber & AI")),console.log(chalk.gray(" security talent through education and competition.")),console.log(),console.log(chalk.white(" Capacity")),console.log(chalk.gray(" 15,000+ concurrent online examinations")),console.log(chalk.gray(" National selection, training, and education support")),console.log(),console.log(chalk.white(" Olympic Spirit")),console.log(chalk.gray(" Excellence · Friendship · Respect")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" New country accreditation & support:")),console.log(chalk.cyan(" australia@icoa2026.au")),console.log(chalk.cyan(" accreditation@icoa2026.au")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),S?(console.log(chalk.green(` Logged in as ${$.userName}`)),console.log(chalk.white(" exam list")+chalk.gray(" Manage exams")),console.log(chalk.white(" logout")+chalk.gray(" Disconnect"))):console.log(chalk.white(" join <url>")+chalk.gray(" Connect to manage exams")),console.log(),h(),console.log()):L&&!c()?(console.log(chalk.red(" Token was activated on a different device.")),console.log(chalk.gray(" Contact organizer for assistance.")),console.log()):S?(console.log(chalk.green.bold(` Welcome back, ${$.userName}!`)),console.log(chalk.gray(` Connected to ${$.ctfdUrl}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Ready to compete? Start here:")),console.log(),console.log(chalk.bold.cyan(" challenges")+chalk.gray(" Browse challenges by category")),console.log(chalk.white(" status")+chalk.gray(" Your score & hint budget")),console.log(chalk.white(" scoreboard")+chalk.gray(" Live rankings")),console.log(chalk.white(" help")+chalk.gray(" Full command list")),console.log(),console.log(chalk.gray(" Tool environment:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("help")+chalk.gray(" · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()):L?(Y(),console.log(chalk.green.bold(" Welcome, competitor!")),console.log(chalk.gray(` Workspace: ${_}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Get started:")),console.log(),console.log(chalk.white(" Step 1 ")+chalk.bold.cyan("join <url>")+chalk.gray(" Connect to competition server")),console.log(chalk.white(" Step 2 ")+chalk.bold.cyan("challenges")+chalk.gray(" Browse & solve challenges")),console.log(chalk.white(" Step 3 ")+chalk.bold.cyan("ai4ctf")+chalk.gray(" Ask AI when stuck")),console.log(),console.log(chalk.gray(" Before Step 1 — make sure your tools are ready:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(),console.log(chalk.gray(" Also: ")+chalk.white("help")+chalk.gray(" all commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()):(console.log(chalk.bold.white(" Welcome to ICOA CLI — International Olympiad")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" To begin, activate your competition token:")),console.log(),console.log(chalk.bold.cyan(" activate <token>")),console.log(),console.log(chalk.gray(" While waiting, explore:")),console.log(chalk.white(" ref linux")+chalk.gray(" Quick reference for Linux")),console.log(chalk.white(" ref web")+chalk.gray(" Quick reference for Web")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.white(" help")+chalk.gray(" All available commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()),e.exitOverride(),e.configureOutput({writeErr:()=>{},writeOut:o=>{console.log(o)}});const to=o({input:process.stdin,output:process.stdout,prompt:Q(),terminal:!0});let lo=!1;p(!0),N();const no=to.prompt.bind(to);to.prompt=o=>{f()||x()||C()||to.setPrompt(Q()),no(o)},to.prompt(),to.on("line",async o=>{if(lo)return;const l=o.trim();if(!l)return to.setPrompt(f()?chalk.magenta("ai4ctf> "):Q()),void to.prompt();if("menu"===l||"menu confirm"===l)return k()&&"menu confirm"!==l?(console.log(),console.log(chalk.yellow(" Real exam active. Progress is auto-saved.")),console.log(chalk.gray(" To return to main menu anyway, type ")+chalk.white("menu confirm")),console.log(),void to.prompt()):void u(to);if(f()){lo=!0;const o=await b(l);return lo=!1,"exit"===o&&to.setPrompt(Q()),void to.prompt()}if(x()){lo=!0;const o=await v(l);return lo=!1,"exit"!==o&&"solved"!==o||to.setPrompt(Q()),void to.prompt()}if(C()){lo=!0;const o=await A(l);return lo=!1,"exit"===o&&to.setPrompt(Q()),to.setPrompt(C()?chalk.bold.cyan("vla4ctf> "):Q()),void to.prompt()}if(R(l),"exit"===l)return I()?(console.log(),console.log(chalk.yellow(" ⚠ An exam is in progress.")),console.log(chalk.white(" To return to menu without losing progress, type: ")+chalk.bold.cyan("back")),console.log(chalk.white(" To fully close ICOA CLI, type: ")+chalk.bold.cyan("quit")),console.log(chalk.gray(" Your progress is auto-saved either way.")),console.log(),void to.prompt()):(console.log(),console.log(chalk.gray(" ")+chalk.white("exit")+chalk.gray(" returns to the main menu. To fully close ICOA CLI, type ")+chalk.bold.cyan("quit")+chalk.gray(".")),"selection"===eo&&K(),void to.prompt());if("quit"===l||"q"===l||"quit confirm"===l){const o=I();return o&&"demo-free"!==o.session.examId&&"quit confirm"!==l?(console.log(),console.log(chalk.yellow(" ⚠ A real exam is in progress.")),console.log(chalk.gray(" Your answers are auto-saved on the server, but the exam timer keeps ticking")),console.log(chalk.gray(" on the server side even if you close the CLI.")),console.log(),console.log(chalk.white(" To leave the CLI but keep the exam alive, type: ")+chalk.bold.cyan("back")),console.log(chalk.gray(" (recommended — you can resume with ")+chalk.cyan("exam q 1")+chalk.gray(" after relaunching icoa)")),console.log(),console.log(chalk.white(" To really close ICOA CLI, type: ")+chalk.bold.cyan("quit confirm")),console.log(),void to.prompt()):(o&&"demo-free"===o.session.examId&&(console.log(),console.log(chalk.gray(" Demo paused. Resume with: ")+chalk.white("demo")+chalk.gray(" (fresh) or ")+chalk.white("exam q 1")+chalk.gray(" (continue)."))),F(),g(),console.log(chalk.gray(" Session saved. Use ")+chalk.white("icoa --resume")+chalk.gray(" to continue.")),E(),void O(0))}if("back"===l){const o=I(),e=o&&"demo-free"!==o.session.examId,t=o&&"demo-free"===o.session.examId&&(()=>{const e=new Date(o.session.startedAt||0).getTime();return Date.now()-e<18e5})();if(e)console.log(),console.log(chalk.gray(" Exam paused. Your progress is saved.")),console.log(chalk.white(" Resume: exam q 1")+chalk.gray(" · ")+chalk.white("exam review")+chalk.gray(" · ")+chalk.white("exam submit")),console.log();else if(t){const e=Object.keys(o.answers).length,t=o.session.questionCount;console.log(),console.log(chalk.gray(` Demo paused (${e}/${t} answered). Resume with: `)+chalk.white("exam q 1")),console.log(chalk.gray(" Or type ")+chalk.white("demo")+chalk.gray(" to restart.")),console.log()}else{if(o&&"demo-free"===o.session.examId){const{clearExamState:o}=await import("./lib/exam-state.js");o("demo-free")}const e=n();fetch("https://practice.icoa2026.au/api/icoa/demo-stats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"post-report-back",lang:e.language||"en",timestamp:(new Date).toISOString()}),signal:AbortSignal.timeout(5e3)}).catch(()=>{}),"selection"===eo?K():console.log(chalk.gray(" Already at main menu."))}return void to.prompt()}if("help"===l||"?"===l){if(I()){lo=!0;try{await e.parseAsync(["node","icoa","exam","help"])}catch{}return lo=!1,void to.prompt()}return function(o,e="olympiad"){console.log(),"selection"===e||"organizer"===e?(console.log(chalk.bold.white(" Exam")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to exam server")),console.log(chalk.white(" exam list ")+chalk.gray("Available exams")),console.log(chalk.white(" exam start <id> ")+chalk.gray("Begin an exam")),console.log(chalk.white(" exam q [n] ")+chalk.gray("View questions")),console.log(chalk.white(" exam answer <n> <X> ")+chalk.gray("Answer question")),console.log(chalk.white(" exam review ")+chalk.gray("Review all answers")),console.log(chalk.white(" exam submit ")+chalk.gray("Submit for grading")),console.log(chalk.white(" exam result ")+chalk.gray("View your score")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" setup ")+chalk.gray("Settings / switch mode")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log()):o?(console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(chalk.bold.white(" How it works")),console.log(),console.log(chalk.gray(" 1. Browse ")+chalk.white("challenges")+chalk.gray(" and pick one")),console.log(chalk.gray(" 2. ")+chalk.white("open <id>")+chalk.gray(" to read the challenge")),console.log(chalk.gray(" 3. Use ")+chalk.white("ai4ctf")+chalk.gray(" to chat with AI when stuck")),console.log(chalk.gray(" 4. ")+chalk.white("submit <id> icoa{flag}")+chalk.gray(" to score points")),console.log(chalk.gray(" 5. Check ")+chalk.white("scoreboard")+chalk.gray(" to track your rank")),console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(),console.log(chalk.bold.white(" Competition")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to CTFd")),console.log(chalk.white(" challenges (ch) ")+chalk.gray("List challenges by category")),console.log(chalk.white(" open <id> ")+chalk.gray("Read challenge + get next steps")),console.log(chalk.white(" submit <id> <flag> ")+chalk.gray("Submit a flag")),console.log(chalk.white(" scoreboard (sb) ")+chalk.gray("Live rankings")),console.log(chalk.white(" status ")+chalk.gray("Your score, budget & timer")),console.log(chalk.white(" time ")+chalk.gray("Countdown timer")),console.log(),console.log(chalk.bold.white(" AI Teammate")+chalk.gray(" — 3 levels, use wisely")),console.log(chalk.white(' hint "question" ')+chalk.gray("Level A — General guidance (50 uses)")),console.log(chalk.white(' hint-b "question" ')+chalk.gray("Level B — Deep analysis (10 uses)")),console.log(chalk.white(' hint-c "question" ')+chalk.gray("Level C — Critical assist (2 uses)")),console.log(chalk.white(" hint budget ")+chalk.gray("Check remaining uses")),console.log(chalk.white(" ai4ctf ")+chalk.gray("Free-chat with AI (no limit)")),console.log(),console.log(chalk.bold.white(" Tools")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference (linux, web, crypto...)")),console.log(chalk.white(" shell ")+chalk.gray("Docker sandbox")),console.log(chalk.white(" files <id> ")+chalk.gray("Download challenge files")),console.log(chalk.white(" connect <id> ")+chalk.gray("Connect to remote target")),console.log(chalk.white(" note [text] ")+chalk.gray("Personal notepad")),console.log(chalk.white(" log ")+chalk.gray("Session history")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" setup ")+chalk.gray("Configure settings")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language (15 supported)")),console.log(chalk.white(" logout ")+chalk.gray("Disconnect")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit (session saved)")),console.log()):(console.log(chalk.bold.yellow(" Restricted Mode — activate with a token to unlock all commands")),console.log(),console.log(chalk.white(" activate <token> ")+chalk.gray("Unlock full access")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log())}(a(),eo),void to.prompt()}if("more help"===l.toLowerCase()&&I()){lo=!0;try{await e.parseAsync(["node","icoa","exam","more-help"])}catch{}return lo=!1,void to.prompt()}if("continue"===l.toLowerCase())return console.log(),console.log(chalk.green.bold(" ═══ AI4CTF — AI as Your Teammate ═══")),console.log(),console.log(chalk.white(" In AI4CTF, you solve cybersecurity challenges")),console.log(chalk.white(" with AI by your side.")),console.log(),console.log(chalk.white(" In competition, you get AI help at 3 levels:")),console.log(chalk.yellow(" hint a")+chalk.gray(" General guidance (50 uses)")),console.log(chalk.yellow(" hint b")+chalk.gray(" Deep analysis (10 uses)")),console.log(chalk.yellow(" hint c")+chalk.gray(" Critical assist (2 uses)")),console.log(),console.log(chalk.white(" Try it now! Type: ")+chalk.bold.green("ai4ctf")),console.log(chalk.gray(' Chat freely with your AI teammate. Type "exit" when done.')),console.log(),console.log(chalk.gray(" After ai4ctf, try: ")+chalk.bold.red("ctf4ai")+chalk.gray(' — trick the AI into saying "koala"')),console.log(),void to.prompt();if(/^ICOA-[A-Z]{2,3}-\d{1,6}$/i.test(l.trim())){lo=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim()])}catch{}return lo=!1,void to.prompt()}if(/^[A-Z]{2}[0-9A-HJKMNP-TV-Z]{8}$/i.test(l.trim())){lo=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim().toUpperCase()])}catch{}return lo=!1,void to.prompt()}const s=l.match(/^exam\s+([A-Z]{2}[0-9A-HJKMNP-TV-Z]{8})$/i);if(s){lo=!0;try{await e.parseAsync(["node","icoa","exam","token",s[1].toUpperCase()])}catch{}return lo=!1,void to.prompt()}const y=l.match(/^exam\s+([A-Z]{2,3})$/i);if(y){lo=!0;try{await e.parseAsync(["node","icoa","exam","list",y[1]])}catch{}return lo=!1,void to.prompt()}if("clear"===l||"cls"===l)return console.clear(),void to.prompt();if(l.startsWith("activate ")){const o=l.slice(9).trim(),e=r(o);return"ok"===e?console.log(chalk.green(" Access granted! Token bound to this device.")):"already_bound"===e?(console.log(),console.log(chalk.red(" Token already activated on a different device.")),console.log(chalk.gray(" Each token binds to the first device that uses it. If you lost the device,")),console.log(chalk.gray(" contact your proctor to have the token re-issued for a new device."))):(console.log(),console.log(chalk.red(" Token not recognized.")),console.log(chalk.gray(" Possible reasons:")),console.log(chalk.white(" • ")+chalk.gray("Typo — tokens are case-insensitive, 10 chars, start with a 2-letter country code (e.g. ")+chalk.cyan("UAK7M2R9Q4")+chalk.gray(")")),console.log(chalk.white(" • ")+chalk.gray("Expired — ask your proctor or organizer for a fresh token")),console.log(chalk.white(" • ")+chalk.gray("Network — verify connection to ")+chalk.cyan("practice.icoa2026.au")),console.log(chalk.gray(" Still stuck? type ")+chalk.cyan("help")+chalk.gray(" or try ")+chalk.cyan("exam demo")+chalk.gray(" for a free practice round."))),console.log(),void to.prompt()}if("activate"===l)return console.log(chalk.gray(" Usage: ")+chalk.white("activate <token>")),console.log(),void to.prompt();const m=I();if(m){const o=l.toUpperCase().trim(),t=o=>{const e=m.questions.find(e=>e.number===o);return!!e&&("ai4ctf"===e.type||"ctf4ai"===e.type||e.options&&!e.options.A&&!e.options.B)},n=o=>{const e="demo-free"!==m.session.examId,t=e&&o>=39?"ctf4ai":e&&o>=31?"ai4ctf":null;console.log(),console.log(chalk.yellow(` Q${o} is a practical question — letters (A/B/C/D) don't apply here.`)),t?(console.log(chalk.white(" Enter the AI chat for this question: ")+chalk.bold.cyan(t)),console.log(chalk.gray(" Or submit a flag directly: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`))):console.log(chalk.gray(" Submit a flag: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`)),console.log()};if(/^[ABCD]$/.test(o)){const l=m._lastQ||1;if(t(l))return n(l),void to.prompt();lo=!0;try{await e.parseAsync(["node","icoa","exam","answer",String(l),o])}catch{}return lo=!1,void to.prompt()}const s=o.match(/^(\d+)\s+([ABCD])$/);if(s){const o=parseInt(s[1],10);if(t(o))return n(o),void to.prompt();lo=!0;try{await e.parseAsync(["node","icoa","exam","answer",s[1],s[2]])}catch{}return lo=!1,void to.prompt()}}const d=l.split(/\s+/)[0].toLowerCase(),p=/^python3?(\.\d+)?$/.test(d),h=l.startsWith("!")||d.startsWith("!")||p;if("embodied"===eo&&!h&&!["demo2","learn","exam","vla4ctf","lang","ref","setup","env"].includes(d))return console.log(chalk.gray(" Not available in Embodied AI Security mode.")),console.log(chalk.white(" Try ")+chalk.bold.cyan("demo2")+chalk.gray(" (intro) · ")+chalk.bold.cyan("learn")+chalk.gray(" (curriculum) · ")+chalk.bold.cyan("exam <PD-token>")+chalk.gray(" (Paper D)")),console.log(),void to.prompt();if("selection"===eo&&!h&&!["exam","demo","retry","nations","next","prev","continue","setup","lang","ref","ai4ctf","ctf4ai","mark","unmark","review","submit","env"].includes(d)){if(console.log(chalk.gray(" Not available in Selection mode.")),m){const o=m._lastQ||1;console.log(chalk.white(` Resume exam: exam q ${o}`)+chalk.gray(" · ")+chalk.white("A/B/C/D")+chalk.gray(" to answer"))}else console.log(chalk.gray(" Try: demo · setup to switch mode"));return console.log(),void to.prompt()}if("organizer"===eo&&!["join","exam","demo","retry","next","prev","logout","setup","lang","ref","ctf","mark","unmark","review","submit"].includes(d))return console.log(chalk.gray(" Not available in Organizer mode. Switch via: setup")),console.log(),void to.prompt();if(!("olympiad"!==eo||a()&&c()||i(d)))return console.log(chalk.yellow(" Restricted mode. ")+chalk.gray("Enter your access token:")),console.log(chalk.white(" activate <token>")),console.log(),console.log(chalk.gray(" Free commands: ")+chalk.white("ref [topic]")+chalk.gray(", ")+chalk.white("help")+chalk.gray(", ")+chalk.white("exit")),console.log(),void to.prompt();if(!["join","activate","challenges","ch","open","submit","flag","scoreboard","sb","status","time","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","demo","retry","nations","next","prev","continue","logout","ctf4ai","mark","unmark","review","submit","learn","demo2","vla4ctf","theme"].includes(d)){if(V.has(d))return console.log(chalk.red(` Blocked: ${d} is not allowed during competition.`)),console.log(),void to.prompt();if(/(?:^|\s)(?:\/(?!home\/|Users\/|tmp\/)|\.\.\/|~\/)/.test(l)&&!l.startsWith("cd ")){const o=/(?:^|\s)\/(?!home\/\w+\/icoa-workspace|Users\/\w+\/icoa-workspace|tmp\/)/.test(l),e=/\.\./.test(l);if(o||e)return console.log(chalk.red(" Blocked: access outside workspace is not allowed.")),console.log(chalk.gray(` Workspace: ${_}`)),console.log(),void to.prompt()}let o=l.startsWith("!")?l.slice(1).trim():l;if("darwin"===process.platform){const e="/opt/homebrew/opt/python@3.12/bin/python3.12";o=o.replace(/^python3?\s/,`${e} `).replace(/^(python3|python)$/,e)}else if("win32"===process.platform){const e=(()=>{try{return t("py -3 --version",{stdio:["ignore","ignore","ignore"],timeout:1500}),"py -3"}catch{}return"python"})();o=o.replace(/^python3?(\.\d+)?\s/,`${e} `).replace(/^python3?(\.\d+)?$/,e)}else{const e=(()=>{try{return t("which python3.12",{stdio:"ignore"}),"python3.12"}catch{return"python3"}})();o=o.replace(/^python\s/,`${e} `).replace(/^python$/,e)}const e=Y();/^(\S*python3?(\.\d+)?)\s*$/.test(o)&&(o=`PYTHONSTARTUP="${function(){const o=B(W(),".icoa");M(o)||U(o,{recursive:!0});const e=B(o,"python-startup.py");return M(e)||z(e,"# ICOA exam interactive startup — auto-loaded by PYTHONSTARTUP\nimport base64, struct, hashlib, re, json, os, sys, binascii\ntry: import requests\nexcept ImportError: pass\ntry: from Crypto.Cipher import AES\nexcept ImportError: pass\ntry: from Crypto.Util.Padding import pad, unpad\nexcept ImportError: pass\ntry: from pwn import xor, p32, u32, p64, u64\nexcept ImportError: pass\ntry: import bs4\nexcept ImportError: pass\ntry: import numpy as np\nexcept ImportError: pass\n"),e}()}" ${o}`,console.log(),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(chalk.bold.white(" Python ready — ICOA exam toolkit pre-loaded")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(),console.log(chalk.white(" Already imported: ")+chalk.gray("base64, struct, hashlib, re, json, binascii")),console.log(chalk.white(" Also available: ")+chalk.gray("requests, bs4, numpy, AES, pad/unpad, xor, p32/u32/p64/u64")),console.log(),console.log(chalk.yellow(" Quick examples:")),console.log(chalk.gray(' base64.b64decode("aGVsbG8=") ')+chalk.gray("# decode base64")),console.log(chalk.gray(' bytes.fromhex("48656c6c6f") ')+chalk.gray("# hex → bytes")),console.log(chalk.gray(' "ICOA{x}".encode() ')+chalk.gray("# str → bytes")),console.log(chalk.gray(" [chr(c) for c in [73,67,79,65]] ")+chalk.gray("# ASCII codes")),console.log(chalk.gray(' xor(bytes.fromhex("0a2b"), b"IC") ')+chalk.gray("# pwntools XOR")),console.log(),console.log(chalk.gray(" Exit: ")+chalk.white("exit()")+chalk.gray(" or Ctrl-D")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log()),lo=!0;try{j()&&await q()?await D(o,to):await Z(o,to,e)}catch{console.log(chalk.yellow(` Command failed: ${d}`))}return lo=!1,console.log(),void to.prompt()}lo=!0;const w=l.trim(),T=w.toLowerCase();let $,S=null,L="";if(m)if("submit"===T)S="final";else if(T.startsWith("submit ")){let o=w.slice(7).trim();/^submit\s+/i.test(o)&&(o=o.replace(/^submit\s+/i,"").trim()),o=o.replace(/^["'`]+|["'`]+$/g,"").trim(),o&&/^ICOA\{[^}]*\}?$/i.test(o)&&(S="flag",L=o)}else/^ICOA\{[^}]+\}$/i.test(w)&&(S="flag",L=w);$="final"===S?["exam","submit"]:"flag"===S?["exam","answer",String(m?._lastQ||1),L]:function(o){const e=o.split(/\s+/),t=e[0].toLowerCase(),l=e.slice(1),n={demo:["exam","demo"],retry:["exam","demo-retry"],nations:["exam","nations"],next:["exam","next"],prev:["exam","prev"],mark:["exam","mark",...l],unmark:["exam","unmark",...l],review:["exam","review"],logout:["ctf","logout"],join:["ctf","join",...l],activate:["ctf","activate",...l],challenges:["ctf","challenges"],ch:["ctf","challenges"],open:["ctf","open",...l],submit:["ctf","submit",...l],flag:["ctf","submit",...l],scoreboard:["ctf","scoreboard",...l],sb:["ctf","scoreboard",...l],status:["ctf","status"],time:["ctf","time"]};return n[t]?n[t]:["ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","ctf4ai"].includes(t)?[t,...l]:e}(l);const P="ctf"===$[0]&&"join"===$[1];P&&to.pause(),process.exit=()=>{throw new Error(J)};try{await e.parseAsync(["node","icoa",...$])}catch(o){const e=o instanceof Error?o.message:String(o);if(e===J);else if(e.includes("commander.unknownCommand")){const{distance:o}=await import("fastest-levenshtein"),e=["ctf","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","exam","ctf4ai","theme","clear","cls","quit","exit","back","menu","help","continue","activate","demo","challenges","status","scoreboard","join","logout"],t=d.split(/\s+/)[0]||d;let l={word:"",dist:1/0};for(const n of e){const e=o(t.toLowerCase(),n);e<l.dist&&(l={word:n,dist:e})}console.log(chalk.yellow(` Unknown command: ${d}.`)),l.dist>0&&l.dist<=2&&console.log(chalk.gray(" Did you mean: ")+chalk.bold.cyan(l.word)+chalk.gray("?")),console.log(chalk.gray(" Type ")+chalk.cyan("help")+chalk.gray(" for the full command list."))}else e.includes("commander.")||(e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ETIMEDOUT"))&&console.log(chalk.yellow(" Network error. Check your connection."))}finally{process.exit=O,lo=!1,P&&to.resume()}f()?to.setPrompt(chalk.magenta("ai4ctf> ")):x()?to.setPrompt(chalk.red("ctf4ai> ")):C()&&to.setPrompt(chalk.bold.cyan("vla4ctf> ")),console.log(),to.prompt()}),to.on("SIGINT",()=>{if(console.log(),f()||x())console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still in the AI chat.")),console.log(chalk.white(" Type ")+chalk.bold.cyan("exit")+chalk.white(" to leave the chat and return to the menu."));else if(I()){const o="demo-free"!==I().session.examId;console.log(chalk.yellow(" Ctrl+C did NOT close ICOA CLI.")),console.log(chalk.gray(` Your ${o?"exam":"demo"} is paused and every answer is auto-saved.`)),console.log(),console.log(chalk.white(" Resume: ")+chalk.cyan("exam q 1")+chalk.gray(" · Back to menu: ")+chalk.cyan("back")+chalk.gray(" · Close CLI: ")+chalk.cyan(o?"quit confirm":"quit"))}else console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still at the ")+chalk.cyan("icoa>")+chalk.yellow(" prompt.")),console.log(chalk.gray(" Keep typing — ")+chalk.cyan("help")+chalk.gray(" lists commands. (Only ")+chalk.cyan("quit")+chalk.gray(" or Ctrl+D actually close the CLI.)"));console.log(),to.prompt()}),to.on("close",()=>{F(),g(),E(),O(0)})}function Z(o,t,l){return new Promise(n=>{const s=process.stdin,a=!!s.isTTY&&!!s.isRaw;if(t.pause(),s.isTTY&&"function"==typeof s.setRawMode)try{s.setRawMode(!1)}catch{}const r=e(o,{shell:!0,stdio:"inherit",cwd:l||process.cwd()}),i=()=>{if(s.isTTY&&"function"==typeof s.setRawMode&&a)try{s.setRawMode(!0)}catch{}t.resume(),n()};r.on("close",i),r.on("error",i)})}
1
+ import{createInterface as o}from"node:readline";import{spawn as e,execSync as t}from"node:child_process";import chalk from"chalk";import{isConnected as l,getConfig as n,saveConfig as s}from"./lib/config.js";import{isActivated as a,activateToken as r,isFreeCommand as i,isDeviceMatch as c,recordExit as g,recordResume as y,isFirstRunOrUpgrade as m,markVersionSeen as d}from"./lib/access.js";import{setReplMode as p}from"./lib/ui.js";import{returnToMainMenu as u,printMenuHint as h,menuHintInline as w}from"./lib/menu-nav.js";import{isChatActive as f,handleChatMessage as b}from"./commands/ai4ctf.js";import{isCtf4aiActive as x,handleCtf4aiMessage as v}from"./commands/ctf4ai-demo.js";import{isVla4CtfActive as C,handleVla4CtfMessage as A}from"./commands/vla4ctf.js";import{getExamState as I,getRealExamState as k,getDemoState as T}from"./lib/exam-state.js";import{getDemoStats as $}from"./lib/demo-stats.js";import{isExamSetupComplete as S}from"./lib/exam-setup.js";import{DEMO_PICK_SIZE as O,DEMO_POOL_SIZE as L}from"./lib/demo-exam.js";import{isNativeWindowsCmd as P}from"./lib/platform.js";import{resetTerminalTheme as E}from"./lib/theme.js";import{ensureSandbox as q,runInSandbox as D,isDockerAvailable as j}from"./lib/sandbox.js";import{logCommand as R}from"./lib/logger.js";import{startLogSync as N,stopLogSync as F}from"./lib/log-sync.js";import{existsSync as M,mkdirSync as U,writeFileSync as z}from"node:fs";import{join as W}from"node:path";import{homedir as B}from"node:os";function Q(){return k()?chalk.cyan("exam> "):T()?chalk.yellow("demo> "):chalk.green("icoa> ")}const _=W(B(),"icoa-workspace");function Y(){return M(_)||U(_,{recursive:!0}),_}const V=new Set(["sudo","su","doas","pkexec","brew","apt","apt-get","yum","choco","npm","npx","pip","pip3","shutdown","reboot","halt","mkfs","fdisk","dd","iptables","ufw"]),J="__REPL_NO_EXIT__",G="2.5.1";function K(){const o=$(),e=S(),l=`Free practice — ${O} questions (from pool of ${L})`,n=P();if(console.log(),console.log(` ${chalk.cyan.bold("[Selection Mode]")}`),console.log(),n)console.log(chalk.gray(" Platform: ")+chalk.white("Windows cmd.exe")+chalk.gray(" — routed to Paper C (MCQ-only, 45 min, 70 pts, zero extra tools)")),console.log();else if(o.attempts>0){const o=function(){const o=["python3.12 --version","/opt/homebrew/opt/python@3.12/bin/python3.12 --version","/usr/local/opt/python@3.12/bin/python3.12 --version","python3 --version","python --version","py -3.12 --version","py -3 --version"];let e="",l="missing";for(const n of o)try{const o=t(n,{encoding:"utf-8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim().replace("Python ",""),[s,a]=o.split(".").map(Number);if(3===s&&12===a)return{ok:!0,version:o,status:"ok"};e=o,l=3===s&&a>=10&&a<12?"old":3===s&&a>12?"new":"missing"}catch{}return{ok:"missing"!==l,version:e,status:l}}();"missing"===o.status?(console.log(chalk.yellow(" ⚠ Python not detected. For exam practical questions:")),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (platform install guide)")),console.log()):"new"===o.status&&(console.log(chalk.yellow(` ⚠ Python ${o.version} may lack CTF wheels. Python 3.12 recommended:`)),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (install guide)")),console.log())}if(0===o.attempts)console.log(chalk.white(" New here? Start with ")+chalk.bold.cyan("demo")+chalk.white(" — it takes a few minutes.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.cyan(" demo")+chalk.gray(` ${l}`)),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"));else if(e||n){const e=1===o.attempts?"attempt":"attempts";o.attempts>0&&console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e})`)),n||console.log(chalk.green(" ✓ Environment ready")),console.log(chalk.yellow(" → Enter your exam token to begin.")),console.log(chalk.gray(" (10-char code from your organizer, starts with your country code like ")+chalk.cyan("UA")+chalk.gray(" — case-insensitive)")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.yellow(" exam <token>")+chalk.gray(" Enter exam (primary action — use your organizer-issued token)")),console.log(chalk.gray(" format: ")+chalk.white("exam UAxxxxxxxx")+chalk.gray(" (2-letter country prefix + 8 chars)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Other commands:")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),n||console.log(chalk.white(" exam setup")+chalk.gray(" Re-verify tool environment")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}else{const e=1===o.attempts?"attempt":"attempts";console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e}${o.bestPercentage>0?` · best ${o.bestPercentage}%`:""})`)),console.log(chalk.yellow(" → Next: prepare your environment for the real exam.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),console.log(chalk.bold.yellow(" exam setup")+chalk.gray(" Install tools for national selection (~150MB)")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}console.log(chalk.gray(" ")+chalk.gray("Tip: ")+chalk.cyan("help")+chalk.gray(" for commands · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()}export async function startRepl(e,T){const $=n(),S=l(),O=process.exit.bind(process),L=a();if($.demoCleanedForVersion!==G){try{const{existsSync:o,unlinkSync:e}=await import("node:fs"),{join:t}=await import("node:path"),{getIcoaDir:l}=await import("./lib/config.js"),n=t(l(),"demo-state.json");o(n)&&e(n)}catch{}s({demoCleanedForVersion:G})}const{select:P,confirm:H}=await import("@inquirer/prompts"),X=$.mode||"",oo=[{name:` ${chalk.bold("National Selection")} ${chalk.gray("—")} ${chalk.gray("demo, exam (lightweight)")}`,value:"selection"},{name:` ${chalk.bold("Embodied AI Security")} 🤖 ${chalk.gray("—")} ${chalk.gray("VLA4CTF: demo, learn, Paper D (pre-competition)")}`,value:"embodied"},{name:` ${chalk.bold("International Olympiad")} ${chalk.gray("—")} ${chalk.gray("CTF × AI (~500MB, advanced)")}`,value:"olympiad"},{name:` ${chalk.bold("National/Regional Partner")} ${chalk.gray("—")} ${chalk.gray("organizer tools (tokens, competitions)")}`,value:"organizer"},{name:` ${chalk.gray("About ICOA")} ${chalk.gray("·")} ${chalk.gray("Info & contact")}`,value:"about"}];console.log(chalk.gray(" Use ")+chalk.yellow("↑")+chalk.gray(" or ")+chalk.yellow("↓")+chalk.gray(" to select, ")+chalk.yellow("Enter")+chalk.gray(" to confirm.")),console.log();let eo="";for(;!eo;){const o=await P({message:"Mode",choices:oo,default:X||"selection"});"about"!==o?eo=o:(console.clear(),console.log(),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(chalk.bold.yellow(" ICOA")+chalk.white(" — AI-Native CLI OS for Cyber & AI Security")),console.log(chalk.gray(" Olympiad & Competition · K-12 to University")),console.log(chalk.cyan(" ───────────────────────────────────────────────────")),console.log(),console.log(chalk.bold.white(" What Makes ICOA Different")),console.log(chalk.gray(" · AI-native AI teammate, AI adversary, AI translation")),console.log(chalk.gray(" · CLI OS Complete competition environment in terminal")),console.log(chalk.gray(" · 110 tools pwntools, z3, gdb, nmap, sleuthkit... pre-configured")),console.log(chalk.gray(" · Global scale 15,000+ concurrent exams · 15 languages")),console.log(),console.log(chalk.bold.white(" Competition Format")),console.log(` ${chalk.green.bold("AI4CTF")}${chalk.gray(" [Day 1] AI as teammate — 5hr jeopardy CTF")}`),console.log(` ${chalk.red.bold("CTF4AI")}${chalk.gray(" [Day 2] Challenge AI — adversarial ML, red-team")}`),console.log(` ${chalk.cyan.bold("VLA4CTF")}${chalk.gray(" [Day 3] Embodied AI — attack robot brains (NEW)")}`),console.log(),console.log(chalk.white(" Sydney, Australia")+chalk.gray(" · Jun 27 - Jul 2, 2026 · 40+ countries")),console.log(),console.log(chalk.bold.white(" Organized by")+chalk.gray(" ASRA (Australia) · ICO Foundation Inc")),console.log(chalk.bold.white(" Contact ")+chalk.cyan(" australia@icoa2026.au · accreditation@icoa2026.au")),console.log(chalk.bold.white(" Website ")+chalk.cyan.underline(" https://icoa2026.au")),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(),console.log(chalk.gray(" Press ")+chalk.yellow("Enter")+chalk.gray(" to return...")),await new Promise(o=>{const e=t=>{process.stdin.removeListener("data",e),process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!1),process.stdin.pause(),o()};process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.once("data",e)}),console.clear())}if("olympiad"===eo&&"olympiad"!==X&&(console.log(),console.log(chalk.yellow(" This mode will download ~500MB of CTF tools and AI models.")),await H({message:"Continue?",default:!0})||(eo="selection",console.log(chalk.gray(" Switched to National Selection mode.")))),eo!==X&&s({mode:eo}),console.log(),"olympiad"===eo&&m(G)){d(G),console.log(chalk.gray(" Checking competition environment..."));const{execSync:o}=await import("node:child_process"),e=[{name:"pwntools",cmd:'python3 -c "import pwn"'},{name:"z3-solver",cmd:'python3 -c "import z3"'},{name:"numpy",cmd:'python3 -c "import numpy"'},{name:"requests",cmd:'python3 -c "import requests"'}];let t=0;for(const l of e)try{o(l.cmd,{stdio:"ignore"})}catch{t++}if(t>0){console.log(chalk.yellow(` ${t} core libraries missing.`));try{const{confirm:o}=await import("@inquirer/prompts");if(await o({message:" Install competition Python libraries now?",default:!0,theme:{prefix:"",style:{message:o=>chalk.green(o),defaultAnswer:o=>chalk.green(o)}}})){console.log();const{execSync:o}=await import("node:child_process");o("icoa env setup",{stdio:"inherit"})}}catch{console.log(chalk.gray(" Run ")+chalk.white("env setup")+chalk.gray(" later to install."))}console.log()}else console.log(chalk.green(" All core libraries ready.")),console.log()}if(T){const o=y();if(o){const e=Math.floor(o.awaySeconds/60),t=o.awaySeconds%60;console.log(chalk.yellow(` Session resumed. Away: ${e}m ${t}s | Total exits: ${o.exitCount}`)),console.log()}}"selection"===eo?K():"embodied"===eo?(console.log(chalk.cyan.bold(" [Embodied AI Security 🤖]")),console.log(),console.log(chalk.bold.cyan(" VLA4CTF")+chalk.gray(" — ICOA 2026's new competition track")),console.log(chalk.gray(" alongside ")+chalk.green("AI4CTF")+chalk.gray(" (Day 1) and ")+chalk.red("CTF4AI")+chalk.gray(" (Day 2)")),console.log(),console.log(chalk.white(" Embodied AI is at its ImageNet moment.")),console.log(chalk.gray(" VLA models, MuJoCo physics, real robot arms —")),console.log(chalk.gray(" all running on ICOA servers, zero local setup.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.green(" sim")+chalk.gray(" ")+chalk.bold.yellow("★ WOW shortcut")+chalk.gray(" — robot arm replay in 5 sec (no install)")),console.log(chalk.bold.green(" demo2")+chalk.gray(" ~5 min interactive intro + live MuJoCo sim")),console.log(chalk.bold.green(" learn")+chalk.gray(" free 11-card intro (LEARNDEMO01)")),console.log(chalk.bold.green(" learn ")+chalk.bold.yellow("EAxxxxxxxx")+chalk.gray(" full 100/480-card curriculum (team-issued)")),console.log(chalk.bold.green(" exam ")+chalk.bold.yellow("PDxxxxxxxx")+chalk.gray(" Paper D (VLA4CTF) — national selection contestants")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),console.log(chalk.gray(" Three open tiers: ")+chalk.green("free 11")+chalk.gray(" · ")+chalk.yellow("registered 100")+chalk.gray(" · ")+chalk.bold.magenta("national team 480")+chalk.gray(" (PhD-ready)")),console.log(chalk.gray(" Country team contact: ")+chalk.cyan("australia@icoa2026.au")),console.log(),h(),console.log()):"organizer"===eo?(console.log(chalk.yellow.bold(" [National/Regional Partner]")),console.log(),console.log(chalk.bold.white(" ██╗ ██████╗ ██████╗ █████╗")),console.log(chalk.bold.white(" ██║██╔════╝██╔═══██╗██╔══██╗")),console.log(chalk.bold.white(" ██║██║ ██║ ██║███████║")),console.log(chalk.bold.white(" ██║██║ ██║ ██║██╔══██║")),console.log(chalk.bold.white(" ██║╚██████╗╚██████╔╝██║ ██║")),console.log(chalk.bold.white(" ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝")),console.log(),console.log(chalk.yellow(" International Cyber Olympiad in AI 2026")),console.log(chalk.bold.magenta(" The World's First AI-Native CLI Operating System")),console.log(chalk.bold.magenta(" for Cybersecurity & AI Security Competition")),console.log(chalk.bold.magenta(" and Olympiad for K-12")),console.log(chalk.gray(" Sydney, Australia · Jun 27 - Jul 2, 2026")),console.log(),console.log(chalk.white(" Vision")),console.log(chalk.gray(" Building a global pipeline for youth cyber & AI")),console.log(chalk.gray(" security talent through education and competition.")),console.log(),console.log(chalk.white(" Capacity")),console.log(chalk.gray(" 15,000+ concurrent online examinations")),console.log(chalk.gray(" National selection, training, and education support")),console.log(),console.log(chalk.white(" Olympic Spirit")),console.log(chalk.gray(" Excellence · Friendship · Respect")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" New country accreditation & support:")),console.log(chalk.cyan(" australia@icoa2026.au")),console.log(chalk.cyan(" accreditation@icoa2026.au")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),S?(console.log(chalk.green(` Logged in as ${$.userName}`)),console.log(chalk.white(" exam list")+chalk.gray(" Manage exams")),console.log(chalk.white(" logout")+chalk.gray(" Disconnect"))):console.log(chalk.white(" join <url>")+chalk.gray(" Connect to manage exams")),console.log(),h(),console.log()):L&&!c()?(console.log(chalk.red(" Token was activated on a different device.")),console.log(chalk.gray(" Contact organizer for assistance.")),console.log()):S?(console.log(chalk.green.bold(` Welcome back, ${$.userName}!`)),console.log(chalk.gray(` Connected to ${$.ctfdUrl}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Ready to compete? Start here:")),console.log(),console.log(chalk.bold.cyan(" challenges")+chalk.gray(" Browse challenges by category")),console.log(chalk.white(" status")+chalk.gray(" Your score & hint budget")),console.log(chalk.white(" scoreboard")+chalk.gray(" Live rankings")),console.log(chalk.white(" help")+chalk.gray(" Full command list")),console.log(),console.log(chalk.gray(" Tool environment:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("help")+chalk.gray(" · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()):L?(Y(),console.log(chalk.green.bold(" Welcome, competitor!")),console.log(chalk.gray(` Workspace: ${_}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Get started:")),console.log(),console.log(chalk.white(" Step 1 ")+chalk.bold.cyan("join <url>")+chalk.gray(" Connect to competition server")),console.log(chalk.white(" Step 2 ")+chalk.bold.cyan("challenges")+chalk.gray(" Browse & solve challenges")),console.log(chalk.white(" Step 3 ")+chalk.bold.cyan("ai4ctf")+chalk.gray(" Ask AI when stuck")),console.log(),console.log(chalk.gray(" Before Step 1 — make sure your tools are ready:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(),console.log(chalk.gray(" Also: ")+chalk.white("help")+chalk.gray(" all commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()):(console.log(chalk.bold.white(" Welcome to ICOA CLI — International Olympiad")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" To begin, activate your competition token:")),console.log(),console.log(chalk.bold.cyan(" activate <token>")),console.log(),console.log(chalk.gray(" While waiting, explore:")),console.log(chalk.white(" ref linux")+chalk.gray(" Quick reference for Linux")),console.log(chalk.white(" ref web")+chalk.gray(" Quick reference for Web")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.white(" help")+chalk.gray(" All available commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()),e.exitOverride(),e.configureOutput({writeErr:()=>{},writeOut:o=>{console.log(o)}});const to=o({input:process.stdin,output:process.stdout,prompt:Q(),terminal:!0});let lo=!1;p(!0),N();const no=to.prompt.bind(to);to.prompt=o=>{f()||x()||C()||to.setPrompt(Q()),no(o)},to.prompt(),to.on("line",async o=>{if(lo)return;const l=o.trim();if(!l)return to.setPrompt(f()?chalk.magenta("ai4ctf> "):Q()),void to.prompt();if("menu"===l||"menu confirm"===l)return k()&&"menu confirm"!==l?(console.log(),console.log(chalk.yellow(" Real exam active. Progress is auto-saved.")),console.log(chalk.gray(" To return to main menu anyway, type ")+chalk.white("menu confirm")),console.log(),void to.prompt()):void u(to);if(f()){lo=!0;const o=await b(l);return lo=!1,"exit"===o&&to.setPrompt(Q()),void to.prompt()}if(x()){lo=!0;const o=await v(l);return lo=!1,"exit"!==o&&"solved"!==o||to.setPrompt(Q()),void to.prompt()}if(C()){lo=!0;const o=await A(l);return lo=!1,"exit"===o&&to.setPrompt(Q()),to.setPrompt(C()?chalk.bold.cyan("vla4ctf> "):Q()),void to.prompt()}if(R(l),"exit"===l)return I()?(console.log(),console.log(chalk.yellow(" ⚠ An exam is in progress.")),console.log(chalk.white(" To return to menu without losing progress, type: ")+chalk.bold.cyan("back")),console.log(chalk.white(" To fully close ICOA CLI, type: ")+chalk.bold.cyan("quit")),console.log(chalk.gray(" Your progress is auto-saved either way.")),console.log(),void to.prompt()):(console.log(),console.log(chalk.gray(" ")+chalk.white("exit")+chalk.gray(" returns to the main menu. To fully close ICOA CLI, type ")+chalk.bold.cyan("quit")+chalk.gray(".")),"selection"===eo&&K(),void to.prompt());if("quit"===l||"q"===l||"quit confirm"===l){const o=I();return o&&"demo-free"!==o.session.examId&&"quit confirm"!==l?(console.log(),console.log(chalk.yellow(" ⚠ A real exam is in progress.")),console.log(chalk.gray(" Your answers are auto-saved on the server, but the exam timer keeps ticking")),console.log(chalk.gray(" on the server side even if you close the CLI.")),console.log(),console.log(chalk.white(" To leave the CLI but keep the exam alive, type: ")+chalk.bold.cyan("back")),console.log(chalk.gray(" (recommended — you can resume with ")+chalk.cyan("exam q 1")+chalk.gray(" after relaunching icoa)")),console.log(),console.log(chalk.white(" To really close ICOA CLI, type: ")+chalk.bold.cyan("quit confirm")),console.log(),void to.prompt()):(o&&"demo-free"===o.session.examId&&(console.log(),console.log(chalk.gray(" Demo paused. Resume with: ")+chalk.white("demo")+chalk.gray(" (fresh) or ")+chalk.white("exam q 1")+chalk.gray(" (continue)."))),F(),g(),console.log(chalk.gray(" Session saved. Use ")+chalk.white("icoa --resume")+chalk.gray(" to continue.")),E(),void O(0))}if("back"===l){const o=I(),e=o&&"demo-free"!==o.session.examId,t=o&&"demo-free"===o.session.examId&&(()=>{const e=new Date(o.session.startedAt||0).getTime();return Date.now()-e<18e5})();if(e)console.log(),console.log(chalk.gray(" Exam paused. Your progress is saved.")),console.log(chalk.white(" Resume: exam q 1")+chalk.gray(" · ")+chalk.white("exam review")+chalk.gray(" · ")+chalk.white("exam submit")),console.log();else if(t){const e=Object.keys(o.answers).length,t=o.session.questionCount;console.log(),console.log(chalk.gray(` Demo paused (${e}/${t} answered). Resume with: `)+chalk.white("exam q 1")),console.log(chalk.gray(" Or type ")+chalk.white("demo")+chalk.gray(" to restart.")),console.log()}else{if(o&&"demo-free"===o.session.examId){const{clearExamState:o}=await import("./lib/exam-state.js");o("demo-free")}const e=n();fetch("https://practice.icoa2026.au/api/icoa/demo-stats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"post-report-back",lang:e.language||"en",timestamp:(new Date).toISOString()}),signal:AbortSignal.timeout(5e3)}).catch(()=>{}),"selection"===eo?K():console.log(chalk.gray(" Already at main menu."))}return void to.prompt()}if("help"===l||"?"===l){if(I()){lo=!0;try{await e.parseAsync(["node","icoa","exam","help"])}catch{}return lo=!1,void to.prompt()}return function(o,e="olympiad"){console.log(),"selection"===e||"organizer"===e?(console.log(chalk.bold.white(" Exam")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to exam server")),console.log(chalk.white(" exam list ")+chalk.gray("Available exams")),console.log(chalk.white(" exam start <id> ")+chalk.gray("Begin an exam")),console.log(chalk.white(" exam q [n] ")+chalk.gray("View questions")),console.log(chalk.white(" exam answer <n> <X> ")+chalk.gray("Answer question")),console.log(chalk.white(" exam review ")+chalk.gray("Review all answers")),console.log(chalk.white(" exam submit ")+chalk.gray("Submit for grading")),console.log(chalk.white(" exam result ")+chalk.gray("View your score")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" setup ")+chalk.gray("Settings / switch mode")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log()):o?(console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(chalk.bold.white(" How it works")),console.log(),console.log(chalk.gray(" 1. Browse ")+chalk.white("challenges")+chalk.gray(" and pick one")),console.log(chalk.gray(" 2. ")+chalk.white("open <id>")+chalk.gray(" to read the challenge")),console.log(chalk.gray(" 3. Use ")+chalk.white("ai4ctf")+chalk.gray(" to chat with AI when stuck")),console.log(chalk.gray(" 4. ")+chalk.white("submit <id> icoa{flag}")+chalk.gray(" to score points")),console.log(chalk.gray(" 5. Check ")+chalk.white("scoreboard")+chalk.gray(" to track your rank")),console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(),console.log(chalk.bold.white(" Competition")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to CTFd")),console.log(chalk.white(" challenges (ch) ")+chalk.gray("List challenges by category")),console.log(chalk.white(" open <id> ")+chalk.gray("Read challenge + get next steps")),console.log(chalk.white(" submit <id> <flag> ")+chalk.gray("Submit a flag")),console.log(chalk.white(" scoreboard (sb) ")+chalk.gray("Live rankings")),console.log(chalk.white(" status ")+chalk.gray("Your score, budget & timer")),console.log(chalk.white(" time ")+chalk.gray("Countdown timer")),console.log(),console.log(chalk.bold.white(" AI Teammate")+chalk.gray(" — 3 levels, use wisely")),console.log(chalk.white(' hint "question" ')+chalk.gray("Level A — General guidance (50 uses)")),console.log(chalk.white(' hint-b "question" ')+chalk.gray("Level B — Deep analysis (10 uses)")),console.log(chalk.white(' hint-c "question" ')+chalk.gray("Level C — Critical assist (2 uses)")),console.log(chalk.white(" hint budget ")+chalk.gray("Check remaining uses")),console.log(chalk.white(" ai4ctf ")+chalk.gray("Free-chat with AI (no limit)")),console.log(),console.log(chalk.bold.white(" Tools")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference (linux, web, crypto...)")),console.log(chalk.white(" shell ")+chalk.gray("Docker sandbox")),console.log(chalk.white(" files <id> ")+chalk.gray("Download challenge files")),console.log(chalk.white(" connect <id> ")+chalk.gray("Connect to remote target")),console.log(chalk.white(" note [text] ")+chalk.gray("Personal notepad")),console.log(chalk.white(" log ")+chalk.gray("Session history")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" setup ")+chalk.gray("Configure settings")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language (15 supported)")),console.log(chalk.white(" logout ")+chalk.gray("Disconnect")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit (session saved)")),console.log()):(console.log(chalk.bold.yellow(" Restricted Mode — activate with a token to unlock all commands")),console.log(),console.log(chalk.white(" activate <token> ")+chalk.gray("Unlock full access")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log())}(a(),eo),void to.prompt()}if("more help"===l.toLowerCase()&&I()){lo=!0;try{await e.parseAsync(["node","icoa","exam","more-help"])}catch{}return lo=!1,void to.prompt()}if("continue"===l.toLowerCase())return console.log(),console.log(chalk.green.bold(" ═══ AI4CTF — AI as Your Teammate ═══")),console.log(),console.log(chalk.white(" In AI4CTF, you solve cybersecurity challenges")),console.log(chalk.white(" with AI by your side.")),console.log(),console.log(chalk.white(" In competition, you get AI help at 3 levels:")),console.log(chalk.yellow(" hint a")+chalk.gray(" General guidance (50 uses)")),console.log(chalk.yellow(" hint b")+chalk.gray(" Deep analysis (10 uses)")),console.log(chalk.yellow(" hint c")+chalk.gray(" Critical assist (2 uses)")),console.log(),console.log(chalk.white(" Try it now! Type: ")+chalk.bold.green("ai4ctf")),console.log(chalk.gray(' Chat freely with your AI teammate. Type "exit" when done.')),console.log(),console.log(chalk.gray(" After ai4ctf, try: ")+chalk.bold.red("ctf4ai")+chalk.gray(' — trick the AI into saying "koala"')),console.log(),void to.prompt();if(/^ICOA-[A-Z]{2,3}-\d{1,6}$/i.test(l.trim())){lo=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim()])}catch{}return lo=!1,void to.prompt()}if(/^[A-Z]{2}[0-9A-HJKMNP-TV-Z]{8}$/i.test(l.trim())){lo=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim().toUpperCase()])}catch{}return lo=!1,void to.prompt()}const s=l.match(/^exam\s+([A-Z]{2}[0-9A-HJKMNP-TV-Z]{8})$/i);if(s){lo=!0;try{await e.parseAsync(["node","icoa","exam","token",s[1].toUpperCase()])}catch{}return lo=!1,void to.prompt()}const y=l.match(/^exam\s+([A-Z]{2,3})$/i);if(y){lo=!0;try{await e.parseAsync(["node","icoa","exam","list",y[1]])}catch{}return lo=!1,void to.prompt()}if("clear"===l||"cls"===l)return console.clear(),void to.prompt();if(l.startsWith("activate ")){const o=l.slice(9).trim(),e=r(o);return"ok"===e?console.log(chalk.green(" Access granted! Token bound to this device.")):"already_bound"===e?(console.log(),console.log(chalk.red(" Token already activated on a different device.")),console.log(chalk.gray(" Each token binds to the first device that uses it. If you lost the device,")),console.log(chalk.gray(" contact your proctor to have the token re-issued for a new device."))):(console.log(),console.log(chalk.red(" Token not recognized.")),console.log(chalk.gray(" Possible reasons:")),console.log(chalk.white(" • ")+chalk.gray("Typo — tokens are case-insensitive, 10 chars, start with a 2-letter country code (e.g. ")+chalk.cyan("UAK7M2R9Q4")+chalk.gray(")")),console.log(chalk.white(" • ")+chalk.gray("Expired — ask your proctor or organizer for a fresh token")),console.log(chalk.white(" • ")+chalk.gray("Network — verify connection to ")+chalk.cyan("practice.icoa2026.au")),console.log(chalk.gray(" Still stuck? type ")+chalk.cyan("help")+chalk.gray(" or try ")+chalk.cyan("exam demo")+chalk.gray(" for a free practice round."))),console.log(),void to.prompt()}if("activate"===l)return console.log(chalk.gray(" Usage: ")+chalk.white("activate <token>")),console.log(),void to.prompt();const m=I();if(m){const o=l.toUpperCase().trim(),t=o=>{const e=m.questions.find(e=>e.number===o);return!!e&&("ai4ctf"===e.type||"ctf4ai"===e.type||e.options&&!e.options.A&&!e.options.B)},n=o=>{const e="demo-free"!==m.session.examId,t=e&&o>=39?"ctf4ai":e&&o>=31?"ai4ctf":null;console.log(),console.log(chalk.yellow(` Q${o} is a practical question — letters (A/B/C/D) don't apply here.`)),t?(console.log(chalk.white(" Enter the AI chat for this question: ")+chalk.bold.cyan(t)),console.log(chalk.gray(" Or submit a flag directly: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`))):console.log(chalk.gray(" Submit a flag: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`)),console.log()};if(/^[ABCD]$/.test(o)){const l=m._lastQ||1;if(t(l))return n(l),void to.prompt();lo=!0;try{await e.parseAsync(["node","icoa","exam","answer",String(l),o])}catch{}return lo=!1,void to.prompt()}const s=o.match(/^(\d+)\s+([ABCD])$/);if(s){const o=parseInt(s[1],10);if(t(o))return n(o),void to.prompt();lo=!0;try{await e.parseAsync(["node","icoa","exam","answer",s[1],s[2]])}catch{}return lo=!1,void to.prompt()}}const d=l.split(/\s+/)[0].toLowerCase(),p=/^python3?(\.\d+)?$/.test(d),h=l.startsWith("!")||d.startsWith("!")||p;if("embodied"===eo&&!h&&!["demo2","learn","exam","vla4ctf","lang","ref","setup","env","sim"].includes(d))return console.log(chalk.gray(" Not available in Embodied AI Security mode.")),console.log(chalk.white(" Try ")+chalk.bold.cyan("demo2")+chalk.gray(" (intro) · ")+chalk.bold.cyan("learn")+chalk.gray(" (curriculum) · ")+chalk.bold.cyan("exam <PD-token>")+chalk.gray(" (Paper D)")),console.log(),void to.prompt();if("selection"===eo&&!h&&!["exam","demo","retry","nations","next","prev","continue","setup","lang","ref","ai4ctf","ctf4ai","mark","unmark","review","submit","env","sim"].includes(d)){if(console.log(chalk.gray(" Not available in Selection mode.")),m){const o=m._lastQ||1;console.log(chalk.white(` Resume exam: exam q ${o}`)+chalk.gray(" · ")+chalk.white("A/B/C/D")+chalk.gray(" to answer"))}else console.log(chalk.gray(" Try: demo · setup to switch mode"));return console.log(),void to.prompt()}if("organizer"===eo&&!["join","exam","demo","retry","next","prev","logout","setup","lang","ref","ctf","mark","unmark","review","submit"].includes(d))return console.log(chalk.gray(" Not available in Organizer mode. Switch via: setup")),console.log(),void to.prompt();if(!("olympiad"!==eo||a()&&c()||i(d)))return console.log(chalk.yellow(" Restricted mode. ")+chalk.gray("Enter your access token:")),console.log(chalk.white(" activate <token>")),console.log(),console.log(chalk.gray(" Free commands: ")+chalk.white("ref [topic]")+chalk.gray(", ")+chalk.white("help")+chalk.gray(", ")+chalk.white("exit")),console.log(),void to.prompt();if(!["join","activate","challenges","ch","open","submit","flag","scoreboard","sb","status","time","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","demo","retry","nations","next","prev","continue","logout","ctf4ai","mark","unmark","review","submit","learn","demo2","vla4ctf","theme","sim"].includes(d)){if(V.has(d))return console.log(chalk.red(` Blocked: ${d} is not allowed during competition.`)),console.log(),void to.prompt();if(/(?:^|\s)(?:\/(?!home\/|Users\/|tmp\/)|\.\.\/|~\/)/.test(l)&&!l.startsWith("cd ")){const o=/(?:^|\s)\/(?!home\/\w+\/icoa-workspace|Users\/\w+\/icoa-workspace|tmp\/)/.test(l),e=/\.\./.test(l);if(o||e)return console.log(chalk.red(" Blocked: access outside workspace is not allowed.")),console.log(chalk.gray(` Workspace: ${_}`)),console.log(),void to.prompt()}let o=l.startsWith("!")?l.slice(1).trim():l;if("darwin"===process.platform){const e="/opt/homebrew/opt/python@3.12/bin/python3.12";o=o.replace(/^python3?\s/,`${e} `).replace(/^(python3|python)$/,e)}else if("win32"===process.platform){const e=(()=>{try{return t("py -3 --version",{stdio:["ignore","ignore","ignore"],timeout:1500}),"py -3"}catch{}return"python"})();o=o.replace(/^python3?(\.\d+)?\s/,`${e} `).replace(/^python3?(\.\d+)?$/,e)}else{const e=(()=>{try{return t("which python3.12",{stdio:"ignore"}),"python3.12"}catch{return"python3"}})();o=o.replace(/^python\s/,`${e} `).replace(/^python$/,e)}const e=Y();/^(\S*python3?(\.\d+)?)\s*$/.test(o)&&(o=`PYTHONSTARTUP="${function(){const o=W(B(),".icoa");M(o)||U(o,{recursive:!0});const e=W(o,"python-startup.py");return M(e)||z(e,"# ICOA exam interactive startup — auto-loaded by PYTHONSTARTUP\nimport base64, struct, hashlib, re, json, os, sys, binascii\ntry: import requests\nexcept ImportError: pass\ntry: from Crypto.Cipher import AES\nexcept ImportError: pass\ntry: from Crypto.Util.Padding import pad, unpad\nexcept ImportError: pass\ntry: from pwn import xor, p32, u32, p64, u64\nexcept ImportError: pass\ntry: import bs4\nexcept ImportError: pass\ntry: import numpy as np\nexcept ImportError: pass\n"),e}()}" ${o}`,console.log(),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(chalk.bold.white(" Python ready — ICOA exam toolkit pre-loaded")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(),console.log(chalk.white(" Already imported: ")+chalk.gray("base64, struct, hashlib, re, json, binascii")),console.log(chalk.white(" Also available: ")+chalk.gray("requests, bs4, numpy, AES, pad/unpad, xor, p32/u32/p64/u64")),console.log(),console.log(chalk.yellow(" Quick examples:")),console.log(chalk.gray(' base64.b64decode("aGVsbG8=") ')+chalk.gray("# decode base64")),console.log(chalk.gray(' bytes.fromhex("48656c6c6f") ')+chalk.gray("# hex → bytes")),console.log(chalk.gray(' "ICOA{x}".encode() ')+chalk.gray("# str → bytes")),console.log(chalk.gray(" [chr(c) for c in [73,67,79,65]] ")+chalk.gray("# ASCII codes")),console.log(chalk.gray(' xor(bytes.fromhex("0a2b"), b"IC") ')+chalk.gray("# pwntools XOR")),console.log(),console.log(chalk.gray(" Exit: ")+chalk.white("exit()")+chalk.gray(" or Ctrl-D")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log()),lo=!0;try{j()&&await q()?await D(o,to):await Z(o,to,e)}catch{console.log(chalk.yellow(` Command failed: ${d}`))}return lo=!1,console.log(),void to.prompt()}lo=!0;const w=l.trim(),T=w.toLowerCase();let $,S=null,L="";if(m)if("submit"===T)S="final";else if(T.startsWith("submit ")){let o=w.slice(7).trim();/^submit\s+/i.test(o)&&(o=o.replace(/^submit\s+/i,"").trim()),o=o.replace(/^["'`]+|["'`]+$/g,"").trim(),o&&/^ICOA\{[^}]*\}?$/i.test(o)&&(S="flag",L=o)}else/^ICOA\{[^}]+\}$/i.test(w)&&(S="flag",L=w);$="final"===S?["exam","submit"]:"flag"===S?["exam","answer",String(m?._lastQ||1),L]:function(o){const e=o.split(/\s+/),t=e[0].toLowerCase(),l=e.slice(1),n={demo:["exam","demo"],retry:["exam","demo-retry"],nations:["exam","nations"],next:["exam","next"],prev:["exam","prev"],mark:["exam","mark",...l],unmark:["exam","unmark",...l],review:["exam","review"],logout:["ctf","logout"],join:["ctf","join",...l],activate:["ctf","activate",...l],challenges:["ctf","challenges"],ch:["ctf","challenges"],open:["ctf","open",...l],submit:["ctf","submit",...l],flag:["ctf","submit",...l],scoreboard:["ctf","scoreboard",...l],sb:["ctf","scoreboard",...l],status:["ctf","status"],time:["ctf","time"]};return n[t]?n[t]:["ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","ctf4ai"].includes(t)?[t,...l]:e}(l);const P="ctf"===$[0]&&"join"===$[1];P&&to.pause(),process.exit=()=>{throw new Error(J)};try{await e.parseAsync(["node","icoa",...$])}catch(o){const e=o instanceof Error?o.message:String(o);if(e===J);else if(e.includes("commander.unknownCommand")){const{distance:o}=await import("fastest-levenshtein"),e=["ctf","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","exam","ctf4ai","theme","clear","cls","quit","exit","back","menu","help","continue","activate","demo","challenges","status","scoreboard","join","logout"],t=d.split(/\s+/)[0]||d;let l={word:"",dist:1/0};for(const n of e){const e=o(t.toLowerCase(),n);e<l.dist&&(l={word:n,dist:e})}console.log(chalk.yellow(` Unknown command: ${d}.`)),l.dist>0&&l.dist<=2&&console.log(chalk.gray(" Did you mean: ")+chalk.bold.cyan(l.word)+chalk.gray("?")),console.log(chalk.gray(" Type ")+chalk.cyan("help")+chalk.gray(" for the full command list."))}else e.includes("commander.")||(e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ETIMEDOUT"))&&console.log(chalk.yellow(" Network error. Check your connection."))}finally{process.exit=O,lo=!1,P&&to.resume()}f()?to.setPrompt(chalk.magenta("ai4ctf> ")):x()?to.setPrompt(chalk.red("ctf4ai> ")):C()&&to.setPrompt(chalk.bold.cyan("vla4ctf> ")),console.log(),to.prompt()}),to.on("SIGINT",()=>{if(console.log(),f()||x())console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still in the AI chat.")),console.log(chalk.white(" Type ")+chalk.bold.cyan("exit")+chalk.white(" to leave the chat and return to the menu."));else if(I()){const o="demo-free"!==I().session.examId;console.log(chalk.yellow(" Ctrl+C did NOT close ICOA CLI.")),console.log(chalk.gray(` Your ${o?"exam":"demo"} is paused and every answer is auto-saved.`)),console.log(),console.log(chalk.white(" Resume: ")+chalk.cyan("exam q 1")+chalk.gray(" · Back to menu: ")+chalk.cyan("back")+chalk.gray(" · Close CLI: ")+chalk.cyan(o?"quit confirm":"quit"))}else console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still at the ")+chalk.cyan("icoa>")+chalk.yellow(" prompt.")),console.log(chalk.gray(" Keep typing — ")+chalk.cyan("help")+chalk.gray(" lists commands. (Only ")+chalk.cyan("quit")+chalk.gray(" or Ctrl+D actually close the CLI.)"));console.log(),to.prompt()}),to.on("close",()=>{F(),g(),E(),O(0)})}function Z(o,t,l){return new Promise(n=>{const s=process.stdin,a=!!s.isTTY&&!!s.isRaw;if(t.pause(),s.isTTY&&"function"==typeof s.setRawMode)try{s.setRawMode(!1)}catch{}const r=e(o,{shell:!0,stdio:"inherit",cwd:l||process.cwd()}),i=()=>{if(s.isTTY&&"function"==typeof s.setRawMode&&a)try{s.setRawMode(!0)}catch{}t.resume(),n()};r.on("close",i),r.on("error",i)})}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icoa-cli",
3
- "version": "2.19.127",
3
+ "version": "2.19.129",
4
4
  "description": "ICOA CLI — The world's first CLI-native CTF competition terminal",
5
5
  "type": "module",
6
6
  "bin": {