icoa-cli 2.19.122 → 2.19.124

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 a0j(a,b){a=a-(-0xd14+0x227*-0x9+-0x1*-0x21f1);const c=a0b();let d=c[a];if(a0j['GDhYtd']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0xd*-0x17d+0x16bd+-0x150b*0x2,o,p,q=-0x1bd5+-0x2d1+0x1ea6;p=i['charAt'](q++);~p&&(o=n%(-0x20a2+-0x1*0x1f88+0x402e)?o*(0x1597+0x1*0x24e5+-0x3a3c)+p:p,n++%(0x18f+0x43c*-0x7+0x1c19))?l+=String['fromCharCode'](0x9df+-0x2630+0x1*0x1d50&o>>(-(0xd67+-0x404*-0x7+-0x5*0x84d)*n&0x275+-0x1e83+0x6*0x4ae)):0x1f50+-0x3*0x40c+-0x2*0x996){p=j['indexOf'](p);}for(let r=-0x1*-0x21f1+-0x22f*-0x7+-0x313a,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x1*0x565+-0x1f32+0x355*0xb))['slice'](-(-0xe95+-0x256c+0xa67*0x5));}return decodeURIComponent(m);};a0j['EiRJfZ']=e,a0j['dEftBH']={},a0j['GDhYtd']=!![];}const f=c[0x8*-0x4c+-0x1964+-0x2*-0xde2],g=a+f,h=a0j['dEftBH'][g];return!h?(d=a0j['EiRJfZ'](d),a0j['dEftBH'][g]=d):d=h,d;}(function(b,j){const a4=a0j,k=b();while(!![]){try{const p=-parseInt(a4(0x285))/(0xa00+-0x22a*-0x8+-0x1*0x1b4f)+parseInt(a4(0x20f))/(-0x230f+0x505+0x1e0c)+parseInt(a4(0x260))/(0x1*-0x1f9d+0x2703+-0x763)*(-parseInt(a4(0x20d))/(-0x6f6+0x1*0x232d+-0x1c33))+-parseInt(a4(0x232))/(-0x94a*-0x4+0x2e9+-0x1d2*0x16)+-parseInt(a4(0x1f0))/(-0xb4e+-0xac1*0x1+0x1615)*(-parseInt(a4(0x180))/(-0x46d*-0x4+-0x55*0x59+-0x14*-0x98))+-parseInt(a4(0x1ea))/(0x3*0x830+0x5ef+-0x1e77)+parseInt(a4(0x245))/(0x155b+-0x252b*0x1+-0x1*-0xfd9);if(p===j)break;else k['push'](k['shift']());}catch(q){k['push'](k['shift']());}}}(a0b,0x94dd6+0x2da4*-0x3e+0x804fe));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=!(0x16bd+0xf78+-0x3d2*0xa),g=null,r=-0x1bd5+-0x2d1+0x1ea6,y=!(-0x20a2+-0x1*0x1f88+0x402b);const h=0x6bf0+0x1*0xb879+-0xc2c1;let u=null;export function isChatActive(){return s;}function d(){const a5=a0j,b=u?h:0x18f+0x43c*-0x7+0x2f9d,j=r,k=Math[a5(0x192)](Math['round'](j/b*(0x9df+-0x2630+0x1*0x1cb5)),0xd67+-0x404*-0x7+-0x3*0xdb5),p=Math[a5(0x1d4)](k/(0x275+-0x1e83+0xb*0x296)*(0x1f50+-0x3*0x40c+-0x4*0x4c6)),q=-0x1*-0x21f1+-0x22f*-0x7+-0x3126-p,v=k>-0x1*0x565+-0x1f32+0xc9*0x2f?a0p[a5(0x197)]:k>-0xe95+-0x256c+0x245*0x17?a0p[a5(0x17e)]:a0p[a5(0x243)],w=u?a5(0x21b):a5(0x250);console[a5(0x1e0)](a0p[a5(0x244)]('\x20\x20'+w+':\x20')+v('█'[a5(0x258)](p))+a0p[a5(0x244)]('░'[a5(0x258)](q))+a0p[a5(0x244)]('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(p){const a6=a0j;if(!g)return a6(0x21c);if(a0x(a6(0x23e)+p),u)return m(p);const q=p['trim']()[a6(0x212)]()[a6(0x1d0)](/^hint\s+([abc])$/);if(q)return function(z){const a7=a6,A=a0B('a'===z?'ai4ctfHintA':'b'===z?a7(0x1e4):a7(0x200)),B=a0B('a'===z?a7(0x1ba):'b'===z?a7(0x252):a7(0x275)),C=a7(0x274)+z[a7(0x22e)](),D='a'===z?a0p[a7(0x243)]:'b'===z?a0p[a7(0x17e)]:a0p['red'];console[a7(0x1e0)](),console[a7(0x1e0)](D[a7(0x228)](a7(0x185)+C+'\x20\x20')+a0p['gray'](A)),console[a7(0x1e0)]();for(const E of B[a7(0x237)]('\x0a'))''===E?console[a7(0x1e0)]():console[a7(0x1e0)](a0p[a7(0x184)](a7(0x220)+E));console[a7(0x1e0)](),'a'===z?(console[a7(0x1e0)](a0p['gray']('\x20\x20\x20\x20'+a0B(a7(0x1c6))+'\x20')+a0p[a7(0x280)](a7(0x1cd))),console[a7(0x1e0)]()):'b'===z&&(console[a7(0x1e0)](a0p['gray'](a7(0x220)+a0B(a7(0x218))+'\x20')+a0p[a7(0x280)](a7(0x204))),console[a7(0x1e0)]());}(q[0x8*-0x4c+-0x1964+-0x1*-0x1bc5]),a6(0x23d);const v=p[a6(0x1d0)](/^submit\s+(.+)/i);if(v){let z=v[0x144*0x1c+0x2b*0x95+-0x3c76][a6(0x196)]();if(/^submit\s+/i[a6(0x1e2)](z)&&(z=z[a6(0x219)](/^submit\s+/i,'')['trim']()),z=z[a6(0x219)](/^["'`]+|["'`]+$/g,'')[a6(0x196)](),a6(0x194)===z){console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x243)][a6(0x228)](a6(0x26f))),console[a6(0x1e0)](a0p[a6(0x243)][a6(0x228)]('\x20\x20'+a0B(a6(0x241)))),console[a6(0x1e0)](a0p[a6(0x243)][a6(0x228)](a6(0x26f))),console[a6(0x1e0)](),console['log'](a0p['white']('\x20\x20'+a0B(a6(0x226)))),console['log'](a0p['gray']('\x20\x20'+a0B(a6(0x22c)))),console[a6(0x1e0)](),d(),s=!(-0xd79*0x2+0x14a6+0x64d),g=null,fetch(a6(0x1b2),{'method':a6(0x23b),'headers':{'Content-Type':a6(0x18e)},'body':JSON[a6(0x25b)]({'type':a6(0x1c9),'solved':!(-0xf6*-0x18+0x2496+-0x3ba6),'tokensUsed':r,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal[a6(0x238)](0x2558+-0x240+-0x2*0x7c8)})[a6(0x20e)](()=>{}),await i(0x1ea9+-0x4c9+-0x1404),console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x280)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x1e0)](a0p['bold'][a6(0x184)]('\x20\x20'+a0B(a6(0x1aa)))),console[a6(0x1e0)](a0p[a6(0x280)](a6(0x199))),console[a6(0x1e0)]();const A=a0B(a6(0x1a4)),B=a0B(a6(0x20c));console[a6(0x1e0)](a0p[a6(0x184)]('\x20\x20\x20\x201.\x20'+A+'\x20')+a0p[a6(0x244)](B['split']('\x0a')[-0x15b*-0x13+-0x169a+-0x327]||''));for(const F of B['split']('\x0a')[a6(0x26b)](-0x19*-0x34+-0x553*-0x3+-0x382*0x6))F[a6(0x196)]()&&console[a6(0x1e0)](a0p['gray'](a6(0x272)+F[a6(0x219)](/\{thinking\}/g,a6(0x191))));console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x184)](a6(0x1d6)+a0B(a6(0x242))+'\x20')+a0p[a6(0x244)](a0B(a6(0x1c7)))),console['log'](),console[a6(0x1e0)](a0p[a6(0x280)](a6(0x1e9))),console[a6(0x1e0)](),await i(0x7*0x35b+-0x779+0x20d*-0x4),console['log'](a0p['cyan'](a6(0x199))),console[a6(0x1e0)](a0p['bold'][a6(0x184)]('\x20\x20'+a0B(a6(0x198)))),console[a6(0x1e0)](a0p[a6(0x280)](a6(0x199))),console[a6(0x1e0)](),console['log'](a0p[a6(0x17e)]('\x20\x20\x20\x20\x20\x20\x20hint\x20a\x20\x20\x20')+a0p[a6(0x184)](a0B(a6(0x231))[a6(0x26d)](-0x32b*0xb+-0x4ae*-0x7+-0x231*-0x1))+a0p[a6(0x244)](a0B('ai4ctfWrapQuotaAHint'))),console[a6(0x1e0)](a0p[a6(0x17e)](a6(0x182))+a0p[a6(0x184)](a0B(a6(0x1bc))[a6(0x26d)](-0x1c9b*0x1+-0x84f*-0x3+-0x1*-0x3c8))+a0p['gray'](a0B(a6(0x1e6)))),console[a6(0x1e0)](a0p[a6(0x17e)]('\x20\x20\x20\x20\x20\x20\x20hint\x20c\x20\x20\x20')+a0p['white'](a0B(a6(0x22f))[a6(0x26d)](0x26f6+0x2699+-0x4d75))+a0p[a6(0x244)](a0B('ai4ctfWrapQuotaCHint'))),console[a6(0x1e0)]();for(const G of a0B('ai4ctfWrapQuotaFooter')[a6(0x237)]('\x0a'))console['log'](a0p[a6(0x244)]('\x20\x20\x20\x20'+G));console[a6(0x1e0)](),await i(0x8dd*0x4+0x1075+-0x2c19),console['log'](a0p[a6(0x280)](a6(0x199))),console['log'](a0p[a6(0x228)][a6(0x184)]('\x20\x20'+a0B('ai4ctfWrapNextTitle')+'\x20')+a0p[a6(0x197)][a6(0x228)](a6(0x203))+a0p[a6(0x184)](a6(0x247)+a0B(a6(0x1bf)))),console[a6(0x1e0)](a0p[a6(0x280)](a6(0x199))),console[a6(0x1e0)]();const C=a0B('ai4ctfWrapNextBody'),D=a0B(a6(0x27b)),E=C[a6(0x237)]('\x0a');if(E[0xb9*0x1a+-0x21bf+0xef5]){const [H,I]=E[0x2279+0x26e5*-0x1+0x46c][a6(0x237)](a6(0x24a));console[a6(0x1e0)](a0p[a6(0x184)](a6(0x220)+(H||''))+a0p[a6(0x228)][a6(0x184)](D)+a0p[a6(0x184)](I||''));}for(const J of E[a6(0x26b)](-0x1*0x2093+-0x1a72+0xbce*0x5))J[a6(0x196)]()&&console[a6(0x1e0)](a0p[a6(0x184)](a6(0x220)+J));return console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x244)]('\x20\x20\x20\x20'+a0B(a6(0x1dd))+'\x20')+a0p['bold'][a6(0x197)](a6(0x203))),console[a6(0x1e0)](),a6(0x21c);}return console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x197)]('\x20\x20'+a0B(a6(0x1f2)))),console['log'](a0p['gray']('\x20\x20'+a0B('ai4ctfFlagHint'))),console[a6(0x1e0)](),'continue';}if(p[a6(0x25a)]('!')){const K=p[a6(0x26b)](0x3cf*0x4+0x913*0x3+-0x2a74)[a6(0x196)]();if(!K)return'continue';try{const L={};L[a6(0x18a)]=a6(0x20b),L['timeout']=0x2710;const {execSync:M}=await import('node:child_process'),N=M(K,L)[a6(0x196)]();console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x244)]('\x20\x20$\x20')+a0p[a6(0x184)](K)),console[a6(0x1e0)](a0p[a6(0x184)]('\x20\x20'+N['split']('\x0a')[a6(0x26a)]('\x0a\x20\x20'))),console['log'](),console[a6(0x1e0)](a0p['gray']('\x20\x20'+a0B('ai4ctfFoundFlag'))),console[a6(0x1e0)]();}catch(O){console[a6(0x1e0)](),console['log'](a0p['red'](a6(0x1e8)+(O[a6(0x1cf)]?.[a6(0x237)]('\x0a')[-0x22d*-0x6+0x21aa+0x398*-0xd]||a6(0x1d5)))),console[a6(0x1e0)]();}return a6(0x23d);}const w={};w[a6(0x25c)]=a6(0x18e);if(a6(0x21c)===p||a6(0x277)===p||'quit'===p||a6(0x215)===p)return s=!(-0x1523*-0x1+0x1061+-0x2583),g=null,fetch(a6(0x1b2),{'method':a6(0x23b),'headers':w,'body':JSON[a6(0x25b)]({'type':a6(0x1c9),'tokensUsed':r,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal['timeout'](0x89*0x10+0x13ac+-0x8b4)})['catch'](()=>{}),console[a6(0x1e0)](),console[a6(0x1e0)](a0p['gray'](a6(0x1fb))),console['log'](a0p[a6(0x184)]('\x20\x20'+a0B(a6(0x1c3)))),console[a6(0x1e0)](a0p[a6(0x244)]('\x20\x20'+a0B(a6(0x1b5))+':\x20'+r+a6(0x205))),console[a6(0x1e0)](a0p['gray']('\x20\x20'+a0B('ai4ctfModel')+a6(0x27f))),console[a6(0x1e0)](a0p[a6(0x244)](a6(0x1fb))),console['log'](),console[a6(0x1e0)](a0p[a6(0x280)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x1e0)](a0p[a6(0x184)]('\x20\x20'+a0B('ai4ctfExitNextTitle')+'\x20')+a0p['bold']['red'](a6(0x203))+a0p[a6(0x184)]('\x20—\x20'+a0B(a6(0x19b)))),console[a6(0x1e0)](a0p[a6(0x244)]('\x20\x20'+a0B(a6(0x202)))),console[a6(0x1e0)](a0p[a6(0x280)]('\x20\x20─────────────────────────────────────────────')),console['log'](),console[a6(0x1e0)](a0p[a6(0x228)][a6(0x197)](a6(0x19d))+a0p['gray'](a6(0x193)+a0B('ai4ctfExitCmdNext'))),console[a6(0x1e0)](a0p[a6(0x184)](a6(0x282))+a0p[a6(0x244)](a6(0x253)+a0B(a6(0x263)))),console[a6(0x1e0)](),a6(0x21c);const x={};x[a6(0x25c)]='application/json';if(!y&&r>=0x6e+-0x1c9a+-0x17da*-0x2)return y=!(0x1*0x2f0+0x10ce+0x13be*-0x1),fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x23b),'headers':x,'body':JSON['stringify']({'type':a6(0x1c9),'solved':!(0x2ab+-0xd30+0xa86),'tokensUsed':r,'timestamp':new Date()[a6(0x1e3)]()}),'signal':AbortSignal[a6(0x238)](0x2547+0x16d7+-0x40f*0xa)})[a6(0x20e)](()=>{}),console[a6(0x1e0)](),console[a6(0x1e0)](a0p[a6(0x17e)]('\x20\x20'+a0B(a6(0x206)))),d(),(function(){const a8=a6;console[a8(0x1e0)](),console[a8(0x1e0)](a0p[a8(0x17e)](a8(0x199))),console[a8(0x1e0)](a0p['bold'][a8(0x17e)]('\x20\x20'+a0B(a8(0x17f)))),console['log'](a0p['yellow'](a8(0x199))),console['log']();for(const P of a0B('ai4ctfRevealBody')[a8(0x237)]('\x0a'))''===P?console['log']():console['log'](a0p['white'](a8(0x220)+P));console[a8(0x1e0)](),console[a8(0x1e0)](a0p['cyan'](a8(0x273))),console[a8(0x1e0)](),console[a8(0x1e0)](a0p[a8(0x184)](a8(0x220)+a0B(a8(0x266)))),console[a8(0x1e0)](),console[a8(0x1e0)](a0p[a8(0x243)](a8(0x22a))),console[a8(0x1e0)](),console[a8(0x1e0)](a0p[a8(0x184)]('\x20\x20\x20\x20'+a0B(a8(0x279)))),console[a8(0x1e0)](),console[a8(0x1e0)](a0p[a8(0x280)]('\x20\x20\x20\x20\x20\x20\x20\x20submit\x20icoa{w3lc0me_2_ai4ctf}')),console[a8(0x1e0)](),console['log'](a0p[a8(0x244)](a8(0x220)+a0B(a8(0x1f4)))),console[a8(0x1e0)]();}()),a6(0x23d);if(y)return console['log'](),console[a6(0x1e0)](a0p[a6(0x17e)]('\x20\x20'+a0B(a6(0x27d)))),console[a6(0x1e0)](a0p[a6(0x244)]('\x20\x20'+a0B(a6(0x1ae))+'\x20')+a0p[a6(0x280)]('!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console['log'](a0p[a6(0x244)]('\x20\x20'+a0B(a6(0x1f8))+'\x20')+a0p[a6(0x280)](a6(0x1b0))),console[a6(0x1e0)](),'continue';console[a6(0x1e0)](a0p[a6(0x244)]('\x20\x20'+a0B(a6(0x18c))));try{const P=await g[a6(0x1a2)](p);process[a6(0x211)]['write'](a6(0x23f)),r+=P[a6(0x1fe)],a0v(P[a6(0x1fe)]),console[a6(0x1e0)](),a0z(P[a6(0x1bb)]),d(),console[a6(0x1e0)]();}catch(Q){process[a6(0x211)]['write'](a6(0x23f)),a0A(a6(0x22b)+Q[a6(0x1cf)]),console[a6(0x1e0)]();}return'continue';}const f=new Set();async function m(k){const a9=a0j;if(!u||!g)return a9(0x21c);const p=k[a9(0x196)](),q=p[a9(0x212)](),v=(Date[a9(0x24b)]()-u[a9(0x21a)])/(0x1*-0xfb3f+0x1*-0x19e6e+-0x3840d*-0x1);if(!u['nudgeShown']&&!u[a9(0x257)]&&u[a9(0x217)][a9(0x25f)]>=-0x21be+-0x1edf+0x409f&&v>=0x1*0x1779+-0x1bb7+0x443*0x1&&(u[a9(0x27e)]=!(-0x2bd*0xd+-0x13f1*-0x1+0xfa8),console[a9(0x1e0)](),console['log'](a0p['yellow'](a9(0x1ab))+a0p[a9(0x228)][a9(0x17e)](a9(0x223))),console[a9(0x1e0)](a0p['gray'](a9(0x210))),console[a9(0x1e0)]()),/^ICOA\{[^}]+\}$/i[a9(0x1e2)](p))return console['log'](),console[a9(0x1e0)](a0p[a9(0x244)](a9(0x23c))+a0p[a9(0x184)]('submit\x20'+p)),m(a9(0x229)+p);const x=q[a9(0x1d0)](/^hint\s+([abc])$/);if(x){const A=x[-0x1589+0x1*-0x1619+-0x2ba3*-0x1][a9(0x22e)](),B=u[a9(0x233)]['hints'],C=B?.[A],D='A'===A?a0p[a9(0x243)]:'B'===A?a0p[a9(0x17e)]:a0p[a9(0x197)];if(console[a9(0x1e0)](),console[a9(0x1e0)](D['bold'](a9(0x214)+A)),console[a9(0x1e0)](),C){for(const E of String(C)[a9(0x237)]('\x0a'))console['log'](a0p['white'](a9(0x220)+E));}else console[a9(0x1e0)](a0p['gray'](a9(0x271)));return console[a9(0x1e0)](),'A'===A?console[a9(0x1e0)](a0p[a9(0x244)]('\x20\x20\x20\x20Stuck?\x20Try:\x20')+a0p[a9(0x280)](a9(0x1cd))):'B'===A?console[a9(0x1e0)](a0p[a9(0x244)](a9(0x1cc))+a0p[a9(0x280)](a9(0x204))):'C'===A&&console['log'](a0p[a9(0x244)](a9(0x220)+a0B('ai4ctfHintNextC')+'\x20')+a0p[a9(0x228)][a9(0x243)](a9(0x223))),console['log'](),'continue';}const z=p['match'](/^submit\s+(.+)/i);if(z){let F=z[-0x59b+-0x24c8+0x2a64][a9(0x196)]();if(/^submit\s+/i[a9(0x1e2)](F)&&(F=F[a9(0x219)](/^submit\s+/i,'')[a9(0x196)]()),F=F[a9(0x219)](/^["'`]+|["'`]+$/g,'')[a9(0x196)](),/^[A-Da-d]$/[a9(0x1e2)](F))return console['log'](),console[a9(0x1e0)](a0p['yellow'](a9(0x213)+F+'\x22\x20looks\x20like\x20an\x20MCQ\x20letter,\x20not\x20a\x20flag.')),console['log'](a0p['gray'](a9(0x283))+a0p[a9(0x243)](a9(0x22d))+a0p['gray'](a9(0x201))),console[a9(0x1e0)](),a9(0x23d);const {getExamState:G,saveExamState:H}=await import(a9(0x18f)),I=G();if(!I)return'exit';if(!I[a9(0x1c8)]['find'](L=>L[a9(0x1fa)]===u[a9(0x1b3)]))return console[a9(0x1e0)](a0p[a9(0x197)](a9(0x1f9)+u[a9(0x1b3)]+a9(0x246))),a9(0x23d);const J=I[a9(0x222)][u[a9(0x1b3)]];I[a9(0x286)]||(I[a9(0x286)]=[]),I[a9(0x286)]['push']({'ts':new Date()[a9(0x1e3)](),'q':u[a9(0x1b3)],'type':J?'answer_changed':a9(0x1dc),'input':F,'result':'via\x20ai4ctf\x20chat'}),I['answers'][u[a9(0x1b3)]]=F;const K=u[a9(0x1b3)]+(0x6*-0x2fe+-0x5*-0xb3+0xe76);return I[a9(0x19c)]=K<=0xc2e+-0x203+-0x1*0xa05?K:u[a9(0x1b3)],H(I),console[a9(0x1e0)](),J?(console[a9(0x1e0)](a0p[a9(0x243)](a9(0x208)+u['qNum']+a9(0x249))+a0p['yellow'](F)),console['log'](a0p[a9(0x244)](a9(0x1eb)+J))):console[a9(0x1e0)](a0p[a9(0x243)][a9(0x228)]('\x20\x20✓\x20Answer\x20for\x20Q'+u[a9(0x1b3)]+a9(0x264)+F)),console[a9(0x1e0)](a0p[a9(0x244)](a9(0x251))),console['log'](),console[a9(0x1e0)](a0p[a9(0x244)]('\x20\x20')+a0p[a9(0x184)](a9(0x1b1))+a0p[a9(0x244)](a9(0x1b9))+a0p[a9(0x184)](a9(0x21c))+a0p[a9(0x244)](a9(0x1ed))),K<=0x5*0x709+-0x7db*-0x1+-0x2ae2?console[a9(0x1e0)](a0p[a9(0x244)](a9(0x270))+a0p[a9(0x280)]('ai4ctf')+a0p[a9(0x244)](a9(0x183)+K)):console[a9(0x1e0)](a0p[a9(0x244)]('\x20\x20After\x20exit:\x20AI4CTF\x20section\x20complete.\x20Next:\x20')+a0p[a9(0x197)](a9(0x203))+a0p['gray'](a9(0x1f6))),console[a9(0x1e0)](),a9(0x23d);}if(k[a9(0x25a)]('!')){const L=k[a9(0x26b)](-0x2ab+-0x66*0x2+-0x4*-0xde)[a9(0x196)]();if(!L)return a9(0x23d);try{const M={};M[a9(0x18a)]=a9(0x20b),M[a9(0x238)]=0x2710;const {execSync:N}=await import(a9(0x1ce)),O=N(L,M)[a9(0x196)]();console[a9(0x1e0)](),console[a9(0x1e0)](a0p['gray'](a9(0x287))+a0p['white'](L)),console[a9(0x1e0)](a0p['white']('\x20\x20'+O['split']('\x0a')[a9(0x26a)]('\x0a\x20\x20'))),console[a9(0x1e0)]();}catch(P){console['log'](),console[a9(0x1e0)](a0p[a9(0x197)](a9(0x1e8)+(P[a9(0x1cf)]?.[a9(0x237)]('\x0a')[-0x2*-0x103d+0x2*-0x1b6+-0x2*0xe87]||a9(0x1d5)))),console[a9(0x1e0)]();}return'continue';}if(a9(0x21c)===q||a9(0x277)===q||'quit'===q){const Q=u['qNum'],{getExamState:R}=await import(a9(0x18f)),S=R(),T=S&&null!=S[a9(0x222)][Q],U=S?.[a9(0x19c)]||Q;return s=!(-0x2*0x10bb+-0x1bbf+0x3d36),g=null,u=null,f['clear'](),console[a9(0x1e0)](),console['log'](a0p[a9(0x244)](a9(0x1c4)+Q+'.')),T&&U>Q&&U<=0x77*-0x2b+0xf72+0x1*0x4b1?console['log'](a0p[a9(0x184)]('\x20\x20Next:\x20')+a0p['bold'][a9(0x243)]('Q'+U)+a0p[a9(0x244)](a9(0x1de))+a0p[a9(0x280)]('ai4ctf')+a0p[a9(0x244)](a9(0x20a))):T&&Q>=0x1be2+0xf*-0x21f+0x415?console[a9(0x1e0)](a0p[a9(0x184)]('\x20\x20AI4CTF\x20section\x20complete\x20—\x20')+a0p['bold'][a9(0x197)]('ctf4ai')+a0p[a9(0x244)](a9(0x239))):console[a9(0x1e0)](a0p[a9(0x244)](a9(0x255))+a0p[a9(0x184)](a9(0x234)+Q)+a0p[a9(0x244)](a9(0x1e5))+a0p[a9(0x184)](a9(0x1c9))),console['log'](),a9(0x21c);}if(y)return console[a9(0x1e0)](),console[a9(0x1e0)](a0p['yellow'](a9(0x1ff))),console[a9(0x1e0)](a0p[a9(0x244)](a9(0x1c5))+a0p['white'](a9(0x216))+a0p[a9(0x244)](a9(0x227))+a0p['white'](a9(0x1c2))+a0p['gray'](a9(0x227))+a0p['white'](a9(0x21c))),console['log'](),a9(0x23d);if(r>=h)return y=!(-0x1a*0x3a+0x23c5+-0x1de1),console[a9(0x1e0)](),console[a9(0x1e0)](a0p[a9(0x197)][a9(0x228)](a9(0x1a9))),console[a9(0x1e0)](a0p['gray'](a9(0x240))+a0p[a9(0x184)](a9(0x216))+a0p[a9(0x244)](a9(0x227))+a0p['white'](a9(0x1c2))+a0p['gray'](a9(0x227))+a0p[a9(0x184)](a9(0x21c))),console[a9(0x1e0)](),'continue';console[a9(0x1e0)](a0p[a9(0x244)](a9(0x26e)));try{const V=await g[a9(0x1a2)](k);process[a9(0x211)][a9(0x236)](a9(0x23f)),r+=V['tokensUsed'];const {getRealExamState:W,saveExamState:X}=await import('../lib/exam-state.js'),Y=W(),Z={};Z['ai4ctf']=0x0,Z[a9(0x203)]=0x0,(Y&&(Y[a9(0x1c0)]||(Y[a9(0x1c0)]=Z),Y[a9(0x1c0)][a9(0x1c9)]=r,X(Y)),console[a9(0x1e0)](),a0z(V['text']),d(),function(a0,a1,a2){const aa=a9,a3=a0/a1*(0x1c69+0xbf9*0x2+-0x35*0xfb);a3>=-0x10cf+-0x1c9*0xe+0x1*0x2a2c&&!a2[aa(0x24d)]('95')?(console[aa(0x1e0)](a0p['red'][aa(0x228)](aa(0x261)+Math[aa(0x1d4)](a3)+aa(0x225)+(a1-a0)+aa(0x181))),a2[aa(0x1da)]('95')):a3>=0xaa+-0x13e8+0x138e&&!a2[aa(0x24d)]('80')?(console['log'](a0p[aa(0x17e)]('\x20\x20⚠\x2080%\x20of\x20section\x20AI\x20budget\x20used.')),a2['add']('80')):a3>=-0x11f4+0x309*-0x3+0x1b41&&!a2[aa(0x24d)]('50')&&(console[aa(0x1e0)](a0p[aa(0x244)](aa(0x1db))),a2[aa(0x1da)]('50'));}(r,h,f),console[a9(0x1e0)]());}catch(a0){process[a9(0x211)][a9(0x236)](a9(0x23f)),a0A('AI\x20error:\x20'+a0[a9(0x1cf)]),console[a9(0x1e0)]();}return'continue';}function a0b(){const ag=['yxr0ywnOzwreyxrH','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','lI4U','icaGia','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','yw5ZD2vYCW','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','ywK0y3rMrgvJB2rLza','imk3ia','yM9Sza','C3vIBwL0ia','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','quKGzxjYB3i6ia','ywK0y3rMv291BgrfyxjU','sunpqxT5B3vYx2zSywD9','Dg9vChbLCKnHC2u','ywK0y3rMv3jHCff1B3rHqW','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','ywK0y3rMv3jHCff1B3rHqq','mZq2mJq4nxnAz3nPvG','CxvLC3rPB24','zxHHBsbXia','icdILzdILzdILzaG','D3jPDgu','C3bSAxq','DgLTzw91Da','igzVCIbrmZK','ywK0y3rMrw5Ku2vZC2LVBG','ue9tva','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','y29UDgLUDwu','ywK0y3rMoIa','g1SXqrTBmKS','icbzB3uGy2fUihn0AwXSoIa','ywK0y3rMq29YCMvJDezSywC','ywK0y3rMv3jHCeXPBMuYsgvHza','z3jLzw4','z3jHEq','mtK1oty5otzPqKj3rNe','ig5VDcbMB3vUzcbPBIbZDgf0zs4','iokaLca','zgvZy3jPChrPB24','igfUC3DLCIb1CgrHDgvKoIa','E25VuhjVz30','BM93','icaGice8C2HLBgWGy21KpIaGica','AgfZ','icdILzdILzdILzaGquK0q1rgiokaLcbr','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','vg9Rzw5Z','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','ywK0y3rMsgLUDejcB2r5','icaGicaGicaGicaG','ihb0CW','icbszxn1Bwu6ia','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','C3vIBwL0qxr0zw1WDgvK','CMvWzwf0','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','C3rHCNrZv2L0Aa','C3rYAw5NAwz5','q29UDgvUDc1uExbL','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','ywK0y3rMq21Ku2HLBgXmAw5L','C2L6zq','mJiYvuPpyNzJ','icdIMQaG','ywK0y3rMvgL0Bgu','ywK0y3rMrxHPDenTzejHy2S','ihjLy29YzgvKoIa','sgLKzgvUie1LC3nHz2u','ywK0y3rMuMv2zwfSu2vLrMXHzW','ywK0y3rMrgvJB2rL','ywK0y3rMsgLUDfbYAw5JAxbSzq','icaGigHPBNqGyW','AM9PBG','C2XPy2u','icdILiiG','CgfKrw5K','icbuAgLUA2LUzY4UlG','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icbbzNrLCIbLEgL0oIa','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','icaGicaGia','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','sgLUDca','ywK0y3rMsgLUDencB2r5','zMLUza','yMfJAW','icaGigHPBNqGyG','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','zxHHBsbXidmX','ywK0y3rMv3jHCe5VuhjVzW','ywK0y3rMv2vSy29Tzun0yq','ywK0y3rMtg9JA2vKvgL0Bgu','BNvKz2vtAg93BG','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','y3LHBG','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','icaGicbIywnR','icbgBgfNigzVCM1HDdOG','AgLUDcbH','ndaWmJe4thPzDKrz','Aw50zxjHy3rPB25Z','icaKia','y29TBwfUza','EwvSBg93','ywK0y3rMuMv2zwfSvgL0Bgu','mti4mZm5ner0wgHwEq','ihrVA2vUCYbSzwz0lG','icaGicaGigHPBNqGyIaGia','ihDPBgWGB3bLBIbr','D2HPDgu','icdILRGG','C29Tzq','ywK0y3rMu3vIBwL0q21K','lIbkDw1WihrOzxjLigzPCNn0oG','icbdDxjYzw50igfUC3DLCJOG','zw5JB2rPBMC','ywK0y3rMq29TBwfUzhm','ywK0y3rMvgHPBMTPBMC','ywK0y3rMsgLUDe51zgDL','yxbWBgLJyxrPB24VANnVBG','lI4VBgLIl2v4yw0TC3rHDguUANm','z2vTAw5Ptw9KzwW','DgHPBMTPBMC','BwLU','icaGicaGicaGia','AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','DhjPBq','CMvK','ywK0y3rMv3jHCff1B3rHC1rPDgXL','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','ywK0y3rMrxHPDe5LEhrtDwi','x2XHC3rr','icaGicbJDgy0ywK','Cg9PBNrZ','oIbhB29NBguGr2vTBweGncaO','icaG4OAsia','zxHHBsbHBNn3zxiG','C2vUze1LC3nHz2u','ihbVAw50CYK6cG','ywK0y3rMv3jHCeXPBMuXsgvHza','z2vTBweTnc0ZmwiTAxq','BMfTzq','y2f0zwDVCNK','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','ywK0y3rMv3jHCfrPDgXL','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','xsaGWRCG','iMHVDYbKBYbjigrLy3j5ChqGquvtluncqYbPBIbqExrOB24/iG','ywK0y3rMtg9JA2vKvxnL','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','C3vIBwL0ieLdt0f7lI4UFq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','Cu51Bq','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','ywK0y3rMvg9Rzw5Z','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','ieLdt0f7lI4UFq','ywK0y3rMtgv2zwXZ','igfNywLUihrVignOyw5NzsWGB3iG','ywK0y3rMsgLUDefcB2r5','Dgv4Da','ywK0y3rMv3jHCff1B3rHqG','ywn0Aw9U','ywK0y3rMsgLUDenvC2vZ','ywK0y3rMv3jHCe5LEhrtDwi','ywLvC2fNzq','icaGihn1yM1PDcbjq09bEY4UlN0','ixnOzwXS','ywK0y3rMuMvWB3j0','icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','icbtDgLSBcbHDMfPBgfIBgu6ia','ywK0y3rMsgLUDe5LEhrb','ywK0y3rMv3jHCeXPBMuYqM9KEq','CxvLC3rPB25Z','ywK0y3rM','icaGigHPBNqGyq','ywK0y3rMt3jdAgf0','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','AgLUDcbI','BM9KztPJAgLSzf9WCM9JzxnZ','BwvZC2fNzq','Bwf0y2G','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','ywK0y3rMq21KsgLUDeXPBMu','iokvKokvKokvKa','CM91BMq','q29TBwfUzcbMywLSzwq','icaGidiUia','ywK0y3rMu2fTCgXL','ywK0y3rMsgLUDfrLy2HUAxf1zq','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','ywrK','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','yw5ZD2vYx3n1yM1PDhrLza','ywK0y3rMv3jHCfr5CgvdDgy0ywK','iokaLcb0ExbLia','rNvSBcbXDwvZDgLVBJOGia','Bg9N','ywK0y3rMtw9KzwW','DgvZDa','Dg9ju09tDhjPBMC','ywK0y3rMsgLUDei','icdcTYaGuMuTzw50zxi6ia','ywK0y3rMv3jHCff1B3rHqKHPBNq','icaGihn1yM1PDca8zMXHzZ4Gica','icbfCNjVCJOG','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','nJe2mdy0mfrArLDpuq','icaGifbYzxzPB3vZoIa','icdILii','ihrVig1VDMuGB24','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','icaGigv4Axq','mtHKy0HUBui','ywK0y3rMrxHPDa','ywK0y3rMv3jVBMDgBgfN','icaGicaGicaGicaGica','ywK0y3rMuMv2zwfStg9JA05VDgu','ywK0y3rMsgLUDee','ig9UifeZoq','ywK0y3rMsgLUDefvC2vZ','ywK0y3rMtg9JA2vKvgHLBG','icbr','BNvTyMvY','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icaGigv4AxqGicaGicaGicaGica','BgvUz3rO','Dg9Rzw5ZvxnLza','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','ywK0y3rMsgLUDem','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','ywK0y3rMrxHPDe5LEhrcB2r5','y3rMngfP','AgLUDcbJ','lZuWmda','Dg9Rzw5mAw1PDa','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icdINjmGuq','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ihrVignVBNrPBNvL','DxrMltG','ywK0y3rMv3jHCeXPBMuXqM9KEq','mJG0odryrffkB0S','y2f0y2G','mtq2mZC0C2HnDuT4','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','C3rKB3v0','Dg9mB3DLCKnHC2u','icaI','icdILRGGsgLUDca','BwvUDq','C3vIBwL0idXMBgfNpG','AgLUDhnvC2vK','ywK0y3rMsgLUDe5LEhrc','CMvWBgfJzq','zw50zxjLzef0','quK0q1rgihnLy3rPB24','zxHPDa'];a0b=function(){return ag;};return a0b();}export function registerAi4ctfCommand(b){const ab=a0j;b[ab(0x288)]('ai4ctf')[ab(0x248)](ab(0x1d1))[ab(0x1bd)](async()=>{const ac=ab;a0x(ac(0x1c9));const {getRealExamState:j}=await import(ac(0x18f)),k=j(),p=k?.[ac(0x1c8)][ac(0x186)](x=>x[ac(0x1fa)]>=0x62+0x15db+-0x26*0x95&&x[ac(0x1fa)]<=0x19*0xd3+-0x21d0+0xd5b);if(k&&p){const x=k[ac(0x19c)]||0xb5*-0x1+-0x2*-0x101f+-0x1f88;if(x<-0x23f0+0x2e*-0xb5+0x4495||x>0x6*0x652+-0x3d1*0xa+0x32*0x2)return console[ac(0x1e0)](),console[ac(0x1e0)](a0p['yellow']('\x20\x20ai4ctf\x20is\x20available\x20on\x20Q31–38\x20(AI4CTF\x20section).')),console[ac(0x1e0)](a0p[ac(0x244)]('\x20\x20You\x20are\x20on\x20Q'+x+ac(0x188))),console[ac(0x1e0)](a0p[ac(0x244)]('\x20\x20\x20\x20→\x20')+a0p[ac(0x228)][ac(0x280)](ac(0x27a))),void console[ac(0x1e0)]();const z=k[ac(0x1c8)]['find'](A=>A[ac(0x1fa)]===x);return z?void await async function(A,B){const ad=ac,{getRealExamState:C,refetchQuestionDataIfStale:D,materializeAttachedData:E}=await import(ad(0x18f));await D();const F=C();if(!F)return!(-0x16f8+0x1d18+-0x61f*0x1);const G=F['questions'][ad(0x276)](J=>J[ad(0x1fa)]===A);G&&(B=G),E(A,B?.[ad(0x21d)]);const H=F['aiUsage']?.['ai4ctf']??0x27a+-0xca7+-0x209*-0x5;if(H>=h)return console['log'](),console[ad(0x1e0)](a0p['yellow'](ad(0x19a))),console[ad(0x1e0)](a0p[ad(0x244)](ad(0x1b6))+a0p['white'](ad(0x1a1)+A+ad(0x1b7))),console[ad(0x1e0)](),!(-0xfe9*0x1+0xad6*-0x1+0x1ac0);try{g=await a0q(void(0x2125+-0x17*-0x20+0x1*-0x2405),function(J,K){const ae=ad,L=J[ae(0x248)]||J[ae(0x1bb)]||'',M=J[ae(0x21d)]?'\x0a\x0aATTACHED\x20DATA\x20(also\x20saved\x20to\x20challenges/q'+K+ae(0x281)+J['attachedData']:'';return ae(0x1ee)+K+',\x20'+J[ae(0x1a7)]+',\x20'+(J['points']||-0x1*0x25a2+-0x1*0x1f9d+0x4545)+ae(0x1a3)+L+M+ae(0x224)+K+'.txt\x20(inside\x20the\x20sandbox)\x20rather\x20than\x20asking\x20the\x20contestant\x20to\x20paste\x20the\x20whole\x20blob\x20back.\x0a-\x20Keep\x20responses\x20concise\x20and\x20practical.\x20This\x20contestant\x20has\x20limited\x20time.';}(B,A));}catch(J){return a0A(J[ad(0x1cf)]),!(-0x854*0x1+-0x1a2a+0x227f*0x1);}s=!(0xb85+0xe7d+-0x1a02),r=H,y=!(0x1cd5+0x11*0x140+-0x3214),u={'qNum':A,'question':B,'usageField':ad(0x1c9),'enteredAt':Date[ad(0x24b)](),'hintsUsed':new Set(),'submitAttempted':!(-0x53*-0x16+0x8fb*0x2+-0x1917),'nudgeShown':!(0x4d4+-0x130a+0xe37*0x1)};const I=F['answers']?.[A];return function(K,L,M){const af=ad,N=a0w()['geminiModel']||af(0x1a5),O=r>-0x16c9+0x6*0x3e4+-0x8f;console['log'](),console[af(0x1e0)](a0p[af(0x243)][af(0x228)](af(0x24e)+L+':\x20'+K[af(0x1a7)]+af(0x1d3))),O&&console[af(0x1e0)](a0p['gray'](af(0x21e))),M&&console[af(0x1e0)](a0p[af(0x244)](af(0x189))+a0p[af(0x17e)](M)+a0p[af(0x244)](af(0x230))),console[af(0x1e0)](),console[af(0x1e0)](a0p[af(0x280)](af(0x209))),console[af(0x1e0)](a0p[af(0x280)](af(0x26c))+a0p['bold'][af(0x184)]('Q'+L+'\x20\x20['+K[af(0x1a7)]+af(0x1ac)+(K[af(0x19e)]||-0x235a+0x219f+0x1c1)+af(0x254))),console[af(0x1e0)](a0p[af(0x280)](af(0x1ec)));for(const P of String(K[af(0x1bb)])[af(0x237)]('\x0a')){const Q=P[af(0x1fd)]>-0x304*-0xb+-0x3*0x6b6+-0x667*0x2?P[af(0x26b)](-0x1*0xc6d+-0x1fe*-0xe+0x1*-0xf77,0x47f+0x26e6+-0x133*0x24)+af(0x21f):P;console['log'](a0p['cyan'](af(0x26c))+a0p[af(0x184)](Q));}console['log'](a0p['cyan'](af(0x1ec))),console[af(0x1e0)](a0p[af(0x280)]('\x20\x20│\x20')+a0p[af(0x244)](af(0x1df))+a0p[af(0x184)](af(0x234)+L)),console[af(0x1e0)](a0p[af(0x280)](af(0x26c))+a0p[af(0x244)](af(0x259))),console[af(0x1e0)](a0p[af(0x280)](af(0x207))),console[af(0x1e0)](),console[af(0x1e0)](a0p[af(0x228)][af(0x184)](af(0x1b4))),console['log'](),console[af(0x1e0)](a0p[af(0x17e)](af(0x1ca))+a0p['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20A\x20gentle\x20nudge\x20(pre-written)')),console[af(0x1e0)](a0p[af(0x17e)](af(0x278))+a0p[af(0x244)](af(0x25d))),console[af(0x1e0)](a0p[af(0x17e)](af(0x269))+a0p[af(0x244)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Key\x20breakthrough\x20(pre-written)')),console[af(0x1e0)](a0p[af(0x228)][af(0x243)](af(0x1c1))+a0p[af(0x244)](af(0x1af))),console['log'](a0p[af(0x184)]('\x20\x20\x20\x20!python3\x20...')+a0p['gray'](af(0x256))),console[af(0x1e0)](a0p['gray'](af(0x195))),console[af(0x1e0)](a0p[af(0x244)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0p[af(0x184)](af(0x1ad))),console[af(0x1e0)](),console[af(0x1e0)](a0p[af(0x244)](af(0x1ef))+a0p[af(0x244)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Leave\x20chat,\x20return\x20to\x20exam')),console[af(0x1e0)](),d(),console[af(0x1e0)](a0p[af(0x244)](af(0x1a8)+N+')')),console[af(0x1e0)]();}(B,A,I),!(-0xe9*0x11+-0x13*-0xdd+-0xee);}(x,z):void a0A('Q'+x+'\x20not\x20found\x20in\x20state.\x20Try:\x20exam\x20q\x20'+x);}const q={};q[ac(0x1a6)]=ac(0x265),q['category']='Cryptography';const v=a0w()[ac(0x190)]||ac(0x1a5),w=q;try{g=await a0q(w);}catch(A){return void a0A(A['message']);}s=!(0x1fa3+0x2194+-0x2d*0x173),r=-0x2*0x3f1+-0x12*0x67+-0x2*-0x790,y=!(0x656+-0x2600+-0xb*-0x2e1),console[ac(0x1e0)](),console['log'](a0p[ac(0x243)][ac(0x228)](ac(0x235)+a0B(ac(0x262))+'\x20═══')),console['log'](),console['log'](a0p['white']('\x20\x20'+a0B(ac(0x1d7)))),console[ac(0x1e0)](),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x209))),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x26c))+a0p['bold']['white'](a0B('ai4ctfChallenge'))),console['log'](a0p['cyan'](ac(0x1ec))),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x26c))+a0p[ac(0x184)](a0B('ai4ctfIntercepted'))),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x26c))+a0p[ac(0x243)](ac(0x221))),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x1ec))),console[ac(0x1e0)](a0p[ac(0x280)]('\x20\x20│\x20')+a0p[ac(0x184)](a0B(ac(0x267)))),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x26c))+a0p['gray']('Flag\x20format:\x20icoa{...}')),console[ac(0x1e0)](a0p[ac(0x280)](ac(0x207))),console['log'](),console[ac(0x1e0)](a0p[ac(0x184)]('\x20\x20'+a0B(ac(0x1b8)))),console['log'](),console[ac(0x1e0)](a0p['yellow'](ac(0x1ca))+a0p[ac(0x244)](ac(0x220)+a0B(ac(0x1f5)))),console['log'](a0p[ac(0x244)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B(ac(0x1f7)))),console['log'](a0p[ac(0x17e)](ac(0x278))+a0p[ac(0x244)](ac(0x220)+a0B('ai4ctfHintB'))),console[ac(0x1e0)](a0p[ac(0x244)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B('ai4ctfHintBUses'))),console[ac(0x1e0)](a0p['yellow'](ac(0x269))+a0p[ac(0x244)]('\x20\x20\x20\x20'+a0B(ac(0x200)))),console['log'](a0p[ac(0x244)](ac(0x1f3)+a0B(ac(0x1be)))),console['log'](),console['log'](a0p['gray'](ac(0x1fb))),console[ac(0x1e0)](a0p[ac(0x228)][ac(0x184)]('\x20\x20'+a0B(ac(0x27c)))),console['log']('\x20\x20\x20\x20'+a0p[ac(0x280)](ac(0x284))+a0p['gray'](ac(0x1a0)+a0B(ac(0x18d)))),console[ac(0x1e0)](ac(0x220)+a0p[ac(0x280)](ac(0x1cd))+a0p['gray'](ac(0x1a0)+a0B(ac(0x1d8)))),console[ac(0x1e0)](ac(0x220)+a0p[ac(0x280)](ac(0x204))+a0p[ac(0x244)](ac(0x1a0)+a0B(ac(0x268)))),console['log'](a0p[ac(0x244)](ac(0x220)+a0B(ac(0x24f)))),console[ac(0x1e0)](),console[ac(0x1e0)](a0p['white']('\x20\x20'+a0B(ac(0x1cb)))),console[ac(0x1e0)](a0p[ac(0x244)]('\x20\x20'+a0B('ai4ctfOrChatExample')+'\x20')+a0p[ac(0x184)](ac(0x1d9))),console['log'](),console[ac(0x1e0)](a0p['yellow']('\x20\x20'+a0B(ac(0x18b)))),console[ac(0x1e0)](a0p['white']('\x20\x20\x20\x20hint\x20a\x20/\x20b\x20/\x20c\x20\x20')+a0p[ac(0x244)](a0B(ac(0x1d2)))),console[ac(0x1e0)](a0p['white'](ac(0x1e7))+a0p[ac(0x244)](a0B(ac(0x187)))),console[ac(0x1e0)](a0p['white'](ac(0x24c))+a0p[ac(0x244)](a0B(ac(0x25e)))),console['log'](a0p[ac(0x244)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0p['white']('!echo\x20aWNv...\x20|\x20base64\x20-d')),console[ac(0x1e0)](a0p[ac(0x244)](ac(0x1fc)+a0B(ac(0x23a)))),console[ac(0x1e0)](),d(),console[ac(0x1e0)](a0p[ac(0x244)]('\x20\x20'+a0B(ac(0x1e1))+ac(0x19f)+v+')')),console['log'](a0p['gray']('\x20\x20'+a0B(ac(0x1f1)))),console[ac(0x1e0)]();});}
1
+ (function(b,j){const a4=a0j,k=b();while(!![]){try{const p=-parseInt(a4(0xf3))/(-0x924+-0x19b1+0x22d6)*(parseInt(a4(0xf4))/(0x6ff+0xaf7+-0x47d*0x4))+parseInt(a4(0x18b))/(0x18b9+-0x17d3+-0xe3)*(-parseInt(a4(0x16a))/(-0x5f3*0x5+0x1*0xb65+-0x1*-0x125e))+parseInt(a4(0x106))/(0x15ab+-0x463+-0x1143*0x1)*(parseInt(a4(0xe6))/(-0x1*-0x1c0a+0x2099+0x3c9d*-0x1))+-parseInt(a4(0xfc))/(-0x1358+-0x496+-0x1*-0x17f5)*(-parseInt(a4(0x130))/(0x1225+-0x2105+0xee8))+-parseInt(a4(0x1b2))/(-0x1*-0x2c7+0x1713+-0x19d1)+parseInt(a4(0xd9))/(0x3e*0x2b+-0x1*0xee7+0x3d*0x13)+parseInt(a4(0x175))/(0x1*-0x86e+0xcb3*0x3+-0x768*0x4);if(p===j)break;else k['push'](k['shift']());}catch(q){k['push'](k['shift']());}}}(a0b,-0x1*-0x4b0c5+0xcb642+-0x6fe9a));import a0p from'chalk';function a0b(){const ag=['C3vIBwL0qxr0zw1WDgvK','ywK0y3rMv3jHCff1B3rHqW','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','AgLUDcbJ','icaGicaGigHPBNqGyIaGia','Dg9mB3DLCKnHC2u','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','Dg9Rzw5mAw1PDa','sgLKzgvUie1LC3nHz2u','iokvKokvKokvKa','DMLHigfPngn0zIbJAgf0','CxvLC3rPB25Z','icaGifn0DwnRpYbuCNK6ia','CgfKrw5K','ihrVig1VDMuGB24','zxHHBsbXidmX','ywK0y3rMtg9JA2vKvgHLBG','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','ywK0y3rM','BMfTzq','z3jHEq','icbHAtrJDgyGAxmGyxzHAwXHyMXLig9UifeZmEkaKZm4icHbstrdveyGC2vJDgLVBIKU','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','ywK0y3rMuMvWB3j0','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','BM93','z2vTBweTnc0ZmwiTAxq','ywK0y3rMrgvJB2rL','icdIMQaG','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','ywK0y3rMq29YCMvJDezSywC','yxbWBgLJyxrPB24VANnVBG','C3rYAw5NAwz5','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','icaGigv4AxqGicaGicaGicaGica','ywK0y3rMtgv2zwXZ','y29TBwfUza','oti0nJH1EgXrEgy','ywK0y3rMtw9KzwW','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','ywK0y3rMrxHPDenTze5LEhq','y3rMngfP','ywK0y3rMsgLUDfrLy2HUAxf1zq','C3vIBwL0ieLdt0f7lI4UFq','ywn0Aw9U','iokaLcb0ExbLia','ywK0y3rMsgLUDe5LEhrb','BwvUDq','mJq5odq4ntbzyMLqD28','C3bSAxq','ywrK','y3LHBG','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','ywK0y3rMv2vSy29Tzun0yq','ywK0y3rMsgLUDem','ywK0y3rMt3jdAgf0rxHHBxbSzq','AM9PBG','ywK0y3rMvgHPBMTPBMC','AgLUDhm','ywK0y3rMv3jHCff1B3rHqG','ywK0y3rMrxHPDenTzejHy2S','icbtDgLSBcbHDMfPBgfIBgu6ia','xsaGWRCG','icbzB3uGyxjLig9Uife','icaGicaGicaGicaGica','icaGifbYzxzPB3vZoIa','icbbzNrLCIbLEgL0oIa','icaGigHPBNqGyq','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','cIaG','mty1z2rMyMLv','ywK0y3rMv3jHCff1B3rHqq','ywK0y3rMv3jHCff1B3rHq0HPBNq','ywK0y3rMsgLUDencB2r5','icdILzdILzdILzaGquK0q1rgiokaLcbr','ywK0y3rMq2HHBgXLBMDL','icaGicaGicaGicaGicaGicaGicbLlMCUia','ihbVAw50CYK6cG','icbszxn1Bwu6ia','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','z3jLzw4','yMfJAW','ywK0y3rMv3jHCeXPBMuYqM9KEq','D3jPDgu','ywK0y3rMsgLUDei','icbfCNjVCJOG','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','Cg9PBNrZ','y29UDgLUDwu','zxHHBsbXia','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywLvC2fNzq','C29Tzq','Bwf0y2G','zw5JB2rPBMC','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','C2XPy2u','icaGigHPBNqGyG','C3rKB3v0','yM9Sza','q29TBwfUzcbMywLSzwq','AgLUDhnvC2vK','imk3ia','icdILiiG','igfNywLUihrVignOyw5NzsWGB3iG','C3vIBwL0ia','ywK0y3rMv3jHCff1B3rHC1rPDgXL','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','mtuYntG2ovj6ww9gCW','ywK0y3rMsw50zxjJzxb0zwq','icaGihn1yM1PDcbjq09bEY4UlN0','CMvWBgfJzq','ywK0y3rMv3jHCff1B3rHquHPBNq','DgvZDa','iokaLca','ywK0y3rMv3jHCfrPDgXL','icaGicfWExrOB24Zic4UlG','ywK0y3rMv3jHCfr5CgvdDgy0ywK','CMvWzwf0','ywK0y3rMrM91BMrgBgfN','ihb0CW','Aw50zxjHy3rPB25Z','ywK0y3rMsgLUDe5LEhrd','AgLUDcbH','DhjPBq','igfUC3DLCIb1CgrHDgvKoIa','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','C2L6zq','lI4VBgLIl2v4yw0TC3rHDguUANm','Dg9ju09tDhjPBMC','icdILii','ywK0y3rMsgLUDejcB2r5','icaGiokgKIa','icaGicaGigHPBNqGysaGia','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icbB','iwvJAg8GyvDoDI4UlIb8igjHC2u2ncaTza','lI4U','ywK0y3rMq21Ku2HLBgXmAw5L','icbuAgLUA2LUzY4UlG','BM9KztPJAgLSzf9WCM9JzxnZ','ywK0y3rMrgvJB2rLza','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','icaI','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','Cu51Bq','C2vUze1LC3nHz2u','icdINjmGqw5ZD2vYigzVCIbr','ig9UifeZoq','ywK0y3rMtg9JA2vKvgL0Bgu','sgLUDca','ywK0y3rMq29TBwfUzhm','BNvTyMvY','icaGidiUia','lIbkDw1WihrOzxjLigzPCNn0oG','mZuYody3mgPVEgTNyW','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','ywK0y3rMt3jdAgf0','ywK0y3rMv3jHCff1B3rHqKHPBNq','iMHVDYbKBYbjigrLy3j5ChqGquvtluncqYbPBIbqExrOB24/iG','icaGideUia','ihrVA2vUCYbSzwz0lG','ywK0y3rMtg9JA2vKvxnL','zxHPDa','icbozxH0oIa','icaGihn1yM1PDca8zMXHzZ4Gica','icaGigHPBNqGyW','icaGie5VihbYzs13CML0DgvUigHPBNqGyxqGDgHPCYb0AwvYigzVCIb0AgLZihf1zxn0Aw9UlG','mty4mdm2CuX0q09Q','ywK0y3rMsgLUDe5LEhrc','D2HPDgu','icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','Bg9N','icaGigHPBNqGysaVigiGlYbJica','DxrMltG','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','CMvK','icbr','nZa5nde3tvLcD2zV','mNPPsfDXuq','DgHPBMTPBMC','BNvKz2vtAg93BG','y2f0y2G','icaG4OAsia','icaGia','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','ywK0y3rMrxHPDe5LEhruAxrSzq','n0PfB1PQrq','icdILzdILzdILzaG','CxvPDa','ywK0y3rMv291BgrfyxjU','ywK0y3rMv3jHCe5VuhjVzW','ue9tva','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','yw5ZD2vYx2nOyw5Nzwq','ywK0y3rMv3jHCeXPBMuXsgvHza','ywK0y3rMv3jHCe5LEhrcB2r5','mJvwCvfRugS','C3vIBwL0idXMBgfNpG','ihrVignVBNrPBNvL','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','ywK0y3rMv3jHCe5LEhrtDwi','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','AgLUDcbI','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','ywK0y3rMrxHPDe5LEhrcB2r5','icaGigv4Axq','y2f0zwDVCNK','igzVCIbrmZK','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','BwvZC2fNzq','zxHHBsbHBNn3zxiG','Dgv4Da','icaKia','ywK0y3rMvgL0Bgu','BwLU','CM91BMq','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','icbdDxjYzw50igfUC3DLCJOG','yw5ZD2vYCW','zMLUza','g1SXqrTBmKS','ywK0y3rMvg9Rzw5Z','quKGzxjYB3i6ia','Dg9Rzw5ZvxnLza','Dg9vChbLCKnHC2u','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','icaGicbJDgy0ywK','EwvSBg93','CxvLC3rPB24','DgLTzw91Da','AgfZ','ywK0y3rMrMXHz0HPBNq','vg9Rzw5Z','ywK0y3rMq21KsgLUDeXPBMu','ywK0y3rMv3jHCff1B3rHrM9VDgvY','C3rHCNrZv2L0Aa','ihDPBgWGB3bLBIbr','ntq1oteYvu1cBLvI','icdILRGGsgLUDca','yw5ZD2vYx3n1yM1PDhrLza','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','q29UDgvUDc1uExbL','icaGicaGicaGicaG','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','ywK0y3rMsgLUDfbYAw5JAxbSzq','yxr0ywnOzwreyxrH','y2XLyxi','E25VuhjVz30','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','BgvUz3rO','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','z2vTAw5Ptw9KzwW','ywK0y3rMsgLUDee','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','ywK0y3rMuMv2zwfSvgL0Bgu','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','rNvSBcbXDwvZDgLVBJOGia'];a0b=function(){return ag;};return a0b();}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=!(0x143f+-0xd*-0x165+0x2f*-0xd1),g=null,r=-0x25f*0xc+0x2632+-0x9be,y=!(-0x157+-0x5f2*0x2+0xd3c);const h=0x46*0xd7+0xaca5*0x1+-0x17*0x5d1;let u=null;export function isChatActive(){return s;}function d(){const a5=a0j,b=u?h:0xc3a*0x3+-0x1680+0x55a,j=r,k=Math[a5(0x119)](Math[a5(0x11a)](j/b*(-0x125*-0x17+0x115a*0x1+0x62f*-0x7)),0x2016+0x1*-0x1882+-0x730),p=Math[a5(0x11a)](k/(0x9*-0xbb+-0x1923+0x24b*0xe)*(-0x9a0+-0x14*-0xa3+-0x2*0x184)),q=0x2285+0xb6a+0x27*-0x12d-p,v=k>0x6a*-0x1d+0xc0a*0x1+-0x4*-0x12?a0p[a5(0xf1)]:k>0x1*-0x781+0x1*-0x24ca+0x1*0x2c7d?a0p[a5(0x126)]:a0p['green'],w=u?'AI4CTF\x20section':a5(0x12b);console[a5(0xea)](a0p['gray']('\x20\x20'+w+':\x20')+v('█'[a5(0x1bc)](p))+a0p[a5(0x159)]('░'[a5(0x1bc)](q))+a0p[a5(0x159)]('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(p){const a6=a0j;if(!g)return a6(0xe1);if(a0x('ai4ctf:\x20'+p),u)return m(p);const q=p['trim']()[a6(0x14a)]()[a6(0x1a3)](/^hint\s+([abc])$/);if(q)return function(z){const a7=a6,A=a0B('a'===z?a7(0x140):'b'===z?a7(0x19a):a7(0x17b)),B=a0B('a'===z?'ai4ctfHintABody':'b'===z?a7(0xc1):a7(0x18e)),C=a7(0xd4)+z[a7(0x123)](),D='a'===z?a0p['green']:'b'===z?a0p[a7(0x126)]:a0p['red'];console[a7(0xea)](),console[a7(0xea)](D[a7(0x1a9)]('\x20\x20▸\x20'+C+'\x20\x20')+a0p['gray'](A)),console[a7(0xea)]();for(const E of B[a7(0x176)]('\x0a'))''===E?console[a7(0xea)]():console[a7(0xea)](a0p['white'](a7(0xf9)+E));console[a7(0xea)](),'a'===z?(console[a7(0xea)](a0p[a7(0x159)](a7(0xf9)+a0B(a7(0x173))+'\x20')+a0p['cyan'](a7(0x10d))),console[a7(0xea)]()):'b'===z&&(console[a7(0xea)](a0p[a7(0x159)](a7(0xf9)+a0B(a7(0xe7))+'\x20')+a0p[a7(0x178)]('hint\x20c')),console[a7(0xea)]());}(q[-0x2539+-0x10db+-0x27*-0x163]),'continue';const v=p['match'](/^submit\s+(.+)/i);if(v){let z=v[-0x1412+0x12d8+0x13b][a6(0x1c2)]();if(/^submit\s+/i[a6(0x1b7)](z)&&(z=z['replace'](/^submit\s+/i,'')[a6(0x1c2)]()),z=z['replace'](/^["'`]+|["'`]+$/g,'')[a6(0x1c2)](),'icoa{w3lc0me_2_ai4ctf}'===z){console['log'](),console[a6(0xea)](a0p[a6(0x196)][a6(0x1a9)]('\x20\x20════════════════════════════════════')),console[a6(0xea)](a0p[a6(0x196)]['bold']('\x20\x20'+a0B(a6(0x163)))),console['log'](a0p[a6(0x196)][a6(0x1a9)](a6(0xc4))),console['log'](),console['log'](a0p[a6(0xe8)]('\x20\x20'+a0B(a6(0xcb)))),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0xff)))),console['log'](),d(),s=!(-0x1101*0x1+-0x236f*0x1+0x3471),g=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x101),'headers':{'Content-Type':a6(0x164)},'body':JSON[a6(0x165)]({'type':a6(0x157),'solved':!(-0xd*-0x1b5+-0x53*-0x4b+-0x2e82),'tokensUsed':r,'timestamp':new Date()[a6(0xbf)]()}),'signal':AbortSignal[a6(0x128)](-0x1*0x1a5+0x1*-0x26d+0x179a)})[a6(0xf7)](()=>{}),await i(-0x230e+-0x1902+-0x41ec*-0x1),console['log'](),console[a6(0xea)](a0p[a6(0x178)](a6(0x13b))),console[a6(0xea)](a0p[a6(0x1a9)][a6(0xe8)]('\x20\x20'+a0B(a6(0x1b9)))),console['log'](a0p[a6(0x178)](a6(0x13b))),console['log']();const A=a0B(a6(0x104)),B=a0B('ai4ctfWrapLine1Body');console[a6(0xea)](a0p['white'](a6(0xde)+A+'\x20')+a0p[a6(0x159)](B['split']('\x0a')[0x13*-0x141+-0x2de*0x3+-0x3*-0xacf]||''));for(const F of B[a6(0x176)]('\x0a')[a6(0x1a6)](0x33a*-0x4+0x1d55+-0x836*0x2))F[a6(0x1c2)]()&&console[a6(0xea)](a0p[a6(0x159)]('\x20\x20\x20\x20\x20\x20\x20'+F['replace'](/\{thinking\}/g,a6(0xf5))));console[a6(0xea)](),console[a6(0xea)](a0p[a6(0xe8)](a6(0xd7)+a0B('ai4ctfWrapLine2Head')+'\x20')+a0p[a6(0x159)](a0B(a6(0x198)))),console['log'](),console[a6(0xea)](a0p[a6(0x178)](a6(0x1b1))),console[a6(0xea)](),await i(0x2284+0xceb*0x1+0x93*-0x45),console['log'](a0p[a6(0x178)](a6(0x13b))),console[a6(0xea)](a0p[a6(0x1a9)]['white']('\x20\x20'+a0B(a6(0x1b0)))),console['log'](a0p[a6(0x178)](a6(0x13b))),console['log'](),console[a6(0xea)](a0p['yellow'](a6(0xc3))+a0p[a6(0xe8)](a0B(a6(0x18c))[a6(0x152)](-0x544+-0xb4f+0x1*0x10ad))+a0p[a6(0x159)](a0B(a6(0x1b6)))),console[a6(0xea)](a0p[a6(0x126)](a6(0x149))+a0p['white'](a0B(a6(0x180))[a6(0x152)](0x269f+0x4b0+-0x2b35))+a0p[a6(0x159)](a0B(a6(0xdc)))),console[a6(0xea)](a0p[a6(0x126)]('\x20\x20\x20\x20\x20\x20\x20hint\x20c\x20\x20\x20')+a0p['white'](a0B(a6(0x146))[a6(0x152)](-0x2*0x1229+-0x1bd4+0x4040))+a0p[a6(0x159)](a0B(a6(0x18d)))),console['log']();for(const G of a0B(a6(0x12d))[a6(0x176)]('\x0a'))console[a6(0xea)](a0p[a6(0x159)](a6(0xf9)+G));console[a6(0xea)](),await i(-0x1*0x1a84+0xdc3+0x41d*0x5),console[a6(0xea)](a0p['cyan'](a6(0x13b))),console['log'](a0p['bold'][a6(0xe8)]('\x20\x20'+a0B('ai4ctfWrapNextTitle')+'\x20')+a0p[a6(0xf1)]['bold'](a6(0x16e))+a0p[a6(0xe8)](a6(0x1b8)+a0B(a6(0x10b)))),console[a6(0xea)](a0p['cyan']('\x20\x20─────────────────────────────────────────────')),console[a6(0xea)]();const C=a0B(a6(0x105)),D=a0B(a6(0x100)),E=C['split']('\x0a');if(E[0x21ee+0x155b+-0x3749]){const [H,I]=E[0x7*0x2d7+0x22d*0x7+0x4*-0x8c7][a6(0x176)](a6(0x13a));console[a6(0xea)](a0p[a6(0xe8)](a6(0xf9)+(H||''))+a0p['bold'][a6(0xe8)](D)+a0p[a6(0xe8)](I||''));}for(const J of E[a6(0x1a6)](0x17af*0x1+0x1*0x2407+-0x3bb5))J['trim']()&&console[a6(0xea)](a0p[a6(0xe8)](a6(0xf9)+J));return console[a6(0xea)](),console['log'](a0p['gray'](a6(0xf9)+a0B(a6(0x1bb))+'\x20')+a0p[a6(0x1a9)][a6(0xf1)](a6(0x16e))),console[a6(0xea)](),a6(0xe1);}return console['log'](),console['log'](a0p[a6(0xf1)]('\x20\x20'+a0B('ai4ctfWrongFlag'))),console['log'](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x12a)))),console[a6(0xea)](),a6(0x19e);}if(p[a6(0x12e)]('!')){const K=p[a6(0x1a6)](0x1502+0x1*0x116f+-0x14*0x1ec)[a6(0x1c2)]();if(!K)return a6(0x19e);try{const L={};L[a6(0x1a4)]=a6(0xec),L['timeout']=0x2710;const {execSync:M}=await import(a6(0xca)),N=M(K,L)['trim']();console[a6(0xea)](),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20$\x20')+a0p['white'](K)),console[a6(0xea)](a0p[a6(0xe8)]('\x20\x20'+N[a6(0x176)]('\x0a')[a6(0x17d)](a6(0x18a)))),console[a6(0xea)](),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x1bd)))),console[a6(0xea)]();}catch(O){console[a6(0xea)](),console[a6(0xea)](a0p[a6(0xf1)]('\x20\x20Error:\x20'+(O[a6(0x114)]?.[a6(0x176)]('\x0a')[0x16*0x1a3+0x1368+0x1*-0x376a]||'Command\x20failed'))),console[a6(0xea)]();}return'continue';}const w={};w[a6(0x134)]=a6(0x164);if(a6(0xe1)===p||'back'===p||'quit'===p||a6(0x174)===p)return s=!(0xedb*-0x2+-0x1f3*-0x6+0x1*0x1205),g=null,fetch(a6(0x13e),{'method':a6(0x101),'headers':w,'body':JSON[a6(0x165)]({'type':a6(0x157),'tokensUsed':r,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal[a6(0x128)](0x3c*0x70+-0x78a*0x1+0xd2)})[a6(0xf7)](()=>{}),console[a6(0xea)](),console['log'](a0p[a6(0x159)](a6(0x1a0))),console[a6(0xea)](a0p[a6(0xe8)]('\x20\x20'+a0B(a6(0x15c)))),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x120))+':\x20'+r+'/5000')),console['log'](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x16b))+a6(0x162))),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20─────────────────────────────────────────')),console['log'](),console['log'](a0p[a6(0x178)](a6(0x13b))),console[a6(0xea)](a0p['white']('\x20\x20'+a0B(a6(0xfb))+'\x20')+a0p[a6(0x1a9)]['red'](a6(0x16e))+a0p['white'](a6(0x1b8)+a0B('ai4ctfExitNextSub'))),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x10f)))),console[a6(0xea)](a0p[a6(0x178)]('\x20\x20─────────────────────────────────────────────')),console['log'](),console['log'](a0p[a6(0x1a9)][a6(0xf1)](a6(0x125))+a0p[a6(0x159)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B(a6(0x16d)))),console['log'](a0p[a6(0xe8)]('\x20\x20\x20\x20\x20back')+a0p[a6(0x159)](a6(0x135)+a0B(a6(0x181)))),console['log'](),a6(0xe1);const x={};x['Content-Type']='application/json';if(!y&&r>=-0x5*-0x3b3+-0xd8e+0xe97)return y=!(0x1b1f+-0x4a9*0x4+-0x1*0x87b),fetch(a6(0x13e),{'method':a6(0x101),'headers':x,'body':JSON['stringify']({'type':a6(0x157),'solved':!(0x1*0x1151+-0x1a02+0x8b2),'tokensUsed':r,'timestamp':new Date()[a6(0xbf)]()}),'signal':AbortSignal[a6(0x128)](0x780+-0xd*-0xda+0x2*0x7b)})[a6(0xf7)](()=>{}),console[a6(0xea)](),console[a6(0xea)](a0p[a6(0x126)]('\x20\x20'+a0B(a6(0x14c)))),d(),(function(){const a8=a6;console[a8(0xea)](),console[a8(0xea)](a0p[a8(0x126)](a8(0x13b))),console[a8(0xea)](a0p[a8(0x1a9)]['yellow']('\x20\x20'+a0B(a8(0x142)))),console['log'](a0p[a8(0x126)](a8(0x13b))),console[a8(0xea)]();for(const P of a0B('ai4ctfRevealBody')[a8(0x176)]('\x0a'))''===P?console[a8(0xea)]():console[a8(0xea)](a0p['white'](a8(0xf9)+P));console[a8(0xea)](),console[a8(0xea)](a0p[a8(0x178)]('\x20\x20\x20\x20\x20\x20\x20\x20!echo\x20aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==\x20|\x20base64\x20-d')),console[a8(0xea)](),console[a8(0xea)](a0p[a8(0xe8)](a8(0xf9)+a0B('ai4ctfRevealSeeFlag'))),console[a8(0xea)](),console['log'](a0p[a8(0x196)]('\x20\x20\x20\x20\x20\x20\x20\x20icoa{w3lc0me_2_ai4ctf}')),console[a8(0xea)](),console[a8(0xea)](a0p['white'](a8(0xf9)+a0B('ai4ctfRevealThenSubmit'))),console[a8(0xea)](),console[a8(0xea)](a0p[a8(0x178)]('\x20\x20\x20\x20\x20\x20\x20\x20submit\x20icoa{w3lc0me_2_ai4ctf}')),console[a8(0xea)](),console[a8(0xea)](a0p[a8(0x159)]('\x20\x20\x20\x20'+a0B('ai4ctfRevealLockNote'))),console[a8(0xea)]();}()),'continue';if(y)return console[a6(0xea)](),console[a6(0xea)](a0p['yellow']('\x20\x20'+a0B(a6(0xd3)))),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0xe0))+'\x20')+a0p[a6(0x178)](a6(0x124))),console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x155))+'\x20')+a0p[a6(0x178)](a6(0x1a5))),console['log'](),a6(0x19e);console[a6(0xea)](a0p[a6(0x159)]('\x20\x20'+a0B(a6(0x17e))));try{const P=await g['sendMessage'](p);process[a6(0x1a8)]['write'](a6(0x11f)),r+=P['tokensUsed'],a0v(P[a6(0x122)]),console[a6(0xea)](),a0z(P[a6(0x116)]),d(),console[a6(0xea)]();}catch(Q){process[a6(0x1a8)][a6(0x199)](a6(0x11f)),a0A(a6(0x121)+Q[a6(0x114)]),console[a6(0xea)]();}return a6(0x19e);}const f=new Set();function a0j(a,b){a=a-(-0x1b61+-0x19f*0xa+0x2c56);const c=a0b();let d=c[a];if(a0j['aDOifp']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x1*-0xa7b+-0xece+-0x1*-0x1949,o,p,q=0x466+0x130*0xe+-0x1506;p=i['charAt'](q++);~p&&(o=n%(-0x17b5+-0x1260+0x2a19)?o*(0x1ce+0x1b14*-0x1+0x36*0x79)+p:p,n++%(-0x3*-0x935+-0x204d*-0x1+0x9fc*-0x6))?l+=String['fromCharCode'](0x1*-0xb47+-0x7f*0x1+0xcc5*0x1&o>>(-(-0x24a*-0x3+0x1a7b+0x3*-0xb1d)*n&-0x15a3+0x9*-0xbb+0x1c3c)):0x1278+-0x79d*-0x3+-0x4b*0x8d){p=j['indexOf'](p);}for(let r=0x7*0x577+-0x685+-0x1fbc,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x193d+0xf4*0xe+0x39*-0xad))['slice'](-(0x267b+0x1e23+-0x449c));}return decodeURIComponent(m);};a0j['WgIXdB']=e,a0j['PykkNa']={},a0j['aDOifp']=!![];}const f=c[0x1*0x165f+0x1*0xfc+-0x175b],g=a+f,h=a0j['PykkNa'][g];return!h?(d=a0j['WgIXdB'](d),a0j['PykkNa'][g]=d):d=h,d;}async function m(k){const a9=a0j;if(!u||!g)return a9(0xe1);const p=k[a9(0x1c2)](),q=p[a9(0x14a)](),v=(Date['now']()-u['enteredAt'])/(0x7868+-0x13760+0x1a958);if(!u['nudgeShown']&&!u[a9(0x145)]&&u[a9(0x1ab)][a9(0x1c5)]>=0x120e+-0x719+-0xaf3&&v>=0x1dfe+0x4f*0x22+0x9*-0x47f&&(u[a9(0xf6)]=!(-0x1*0x1899+-0x1226+0x2abf),console['log'](),console['log'](a0p[a9(0x126)](a9(0x10a))+a0p[a9(0x1a9)][a9(0x126)]('submit\x20ICOA{your_flag}')),console['log'](a0p[a9(0x159)](a9(0xef))),console[a9(0xea)]()),/^ICOA\{[^}]+\}$/i['test'](p))return console[a9(0xea)](),console[a9(0xea)](a0p[a9(0x159)]('\x20\x20Detected\x20flag\x20—\x20treating\x20as:\x20')+a0p[a9(0xe8)](a9(0x1af)+p)),m(a9(0x1af)+p);const x=q['match'](/^hint\s+([abc])$/);if(x){const A=x[0xa69+-0x21e*-0x8+0xfa*-0x1c][a9(0x123)](),B=u[a9(0x127)][a9(0x17f)],C=B?.[A],D='A'===A?a0p[a9(0x196)]:'B'===A?a0p['yellow']:a0p['red'];if(console[a9(0xea)](),console['log'](D[a9(0x1a9)](a9(0x131)+A)),console[a9(0xea)](),C){for(const E of String(C)['split']('\x0a'))console[a9(0xea)](a0p['white'](a9(0xf9)+E));}else console[a9(0xea)](a0p[a9(0x159)](a9(0xe5)));return console[a9(0xea)](),'A'===A?console[a9(0xea)](a0p[a9(0x159)](a9(0x151))+a0p[a9(0x178)](a9(0x10d))):'B'===A?console[a9(0xea)](a0p[a9(0x159)](a9(0x15d))+a0p[a9(0x178)]('hint\x20c')):'C'===A&&console[a9(0xea)](a0p[a9(0x159)](a9(0xf9)+a0B(a9(0x1c0))+'\x20')+a0p[a9(0x1a9)][a9(0x196)]('submit\x20ICOA{your_flag}')),console['log'](),'continue';}const z=p[a9(0x1a3)](/^submit\s+(.+)/i);if(z){let F=z[0x38b*-0x5+-0x73*0x49+0x43*0xc1][a9(0x1c2)]();if(/^submit\s+/i['test'](F)&&(F=F[a9(0x1b5)](/^submit\s+/i,'')['trim']()),F=F[a9(0x1b5)](/^["'`]+|["'`]+$/g,'')[a9(0x1c2)](),/^[A-Da-d]$/[a9(0x1b7)](F))return console['log'](),console[a9(0xea)](a0p[a9(0x126)](a9(0xcd)+F+a9(0xee))),console[a9(0xea)](a0p[a9(0x159)]('\x20\x20Flag\x20format:\x20')+a0p[a9(0x196)]('ICOA{your_flag}')+a0p['gray'](a9(0x13c))),console[a9(0xea)](),a9(0x19e);const {getExamState:G,saveExamState:H}=await import('../lib/exam-state.js'),I=G();if(!I)return a9(0xe1);if(!I[a9(0x150)][a9(0x11e)](L=>L[a9(0xd6)]===u[a9(0xcf)]))return console[a9(0xea)](a0p[a9(0xf1)](a9(0xf2)+u[a9(0xcf)]+'\x20not\x20found\x20in\x20state.')),a9(0x19e);const J=I['answers'][u[a9(0xcf)]];I[a9(0x1bf)]||(I[a9(0x1bf)]=[]),I['interactions']['push']({'ts':new Date()[a9(0xbf)](),'q':u[a9(0xcf)],'type':J?a9(0x103):a9(0x132),'input':F,'result':a9(0x14f)}),I[a9(0x11d)][u['qNum']]=F;const K=u[a9(0xcf)]+(0x1a19+-0x13ed+-0x62b);return I['_lastQ']=K<=-0x23f1+0x1ff+0x2218?K:u['qNum'],H(I),console[a9(0xea)](),J?(console[a9(0xea)](a0p['green']('\x20\x20✓\x20Q'+u[a9(0xcf)]+a9(0x1c3))+a0p[a9(0x126)](F)),console[a9(0xea)](a0p[a9(0x159)](a9(0x186)+J))):console[a9(0xea)](a0p[a9(0x196)]['bold'](a9(0xd1)+u[a9(0xcf)]+'\x20recorded:\x20'+F)),console['log'](a0p[a9(0x159)](a9(0x147))),console[a9(0xea)](),console['log'](a0p[a9(0x159)]('\x20\x20')+a0p[a9(0xe8)](a9(0x170))+a0p[a9(0x159)](a9(0x1ae))+a0p[a9(0xe8)](a9(0xe1))+a0p[a9(0x159)](a9(0x153))),K<=0xc6c+-0x2f*-0x36+-0x1630?console[a9(0xea)](a0p[a9(0x159)](a9(0x187))+a0p[a9(0x178)](a9(0x157))+a0p[a9(0x159)](a9(0x12f)+K)):console[a9(0xea)](a0p['gray'](a9(0x16c))+a0p[a9(0xf1)](a9(0x16e))+a0p[a9(0x159)](a9(0xd2))),console[a9(0xea)](),a9(0x19e);}if(k['startsWith']('!')){const L=k['slice'](0x103*0x1d+-0x4*0x84b+0x3d6)[a9(0x1c2)]();if(!L)return a9(0x19e);try{const M={};M[a9(0x1a4)]='utf-8',M['timeout']=0x2710;const {execSync:N}=await import('node:child_process'),O=N(L,M)[a9(0x1c2)]();console[a9(0xea)](),console['log'](a0p[a9(0x159)](a9(0x117))+a0p['white'](L)),console['log'](a0p[a9(0xe8)]('\x20\x20'+O['split']('\x0a')[a9(0x17d)]('\x0a\x20\x20'))),console[a9(0xea)]();}catch(P){console[a9(0xea)](),console[a9(0xea)](a0p[a9(0xf1)](a9(0x19b)+(P[a9(0x114)]?.[a9(0x176)]('\x0a')[-0x2a2*-0x1+-0x1745+0x14a3]||a9(0x1aa)))),console[a9(0xea)]();}return a9(0x19e);}if(a9(0xe1)===q||a9(0x197)===q||a9(0xfe)===q){const Q=u[a9(0xcf)],{getExamState:R}=await import(a9(0x1c6)),S=R(),T=S&&null!=S[a9(0x11d)][Q],U=S?.['_lastQ']||Q;return s=!(0x81d+-0x2c5*0x2+-0x2f*0xe),g=null,u=null,f[a9(0x139)](),console['log'](),console['log'](a0p['gray'](a9(0xe9)+Q+'.')),T&&U>Q&&U<=0x24f1+0x1*0x4f8+-0x29c3?console[a9(0xea)](a0p['white'](a9(0xe2))+a0p[a9(0x1a9)][a9(0x196)]('Q'+U)+a0p[a9(0x159)](a9(0x172))+a0p['cyan'](a9(0x157))+a0p[a9(0x159)](a9(0x108))):T&&Q>=-0xd*-0x181+0xf88+-0x22ef?console[a9(0xea)](a0p['white']('\x20\x20AI4CTF\x20section\x20complete\x20—\x20')+a0p[a9(0x1a9)][a9(0xf1)](a9(0x16e))+a0p[a9(0x159)](a9(0x112))):console[a9(0xea)](a0p[a9(0x159)](a9(0x193))+a0p[a9(0xe8)](a9(0x19f)+Q)+a0p[a9(0x159)]('\x20\x20·\x20\x20Re-enter:\x20')+a0p[a9(0xe8)](a9(0x157))),console[a9(0xea)](),'exit';}if(y)return console[a9(0xea)](),console[a9(0xea)](a0p[a9(0x126)](a9(0x15b))),console[a9(0xea)](a0p[a9(0x159)](a9(0x182))+a0p[a9(0xe8)]('submit\x20<flag>')+a0p[a9(0x159)](a9(0x1ac))+a0p[a9(0xe8)]('!shell')+a0p['gray'](a9(0x1ac))+a0p[a9(0xe8)]('exit')),console[a9(0xea)](),a9(0x19e);if(r>=h)return y=!(0x10d2+-0x1efe+-0xe2c*-0x1),console['log'](),console[a9(0xea)](a0p['red'][a9(0x1a9)](a9(0x10c))),console[a9(0xea)](a0p['gray']('\x20\x20You\x20can\x20still:\x20')+a0p[a9(0xe8)](a9(0x107))+a0p['gray'](a9(0x1ac))+a0p[a9(0xe8)]('!shell')+a0p['gray'](a9(0x1ac))+a0p[a9(0xe8)]('exit')),console['log'](),'continue';console[a9(0xea)](a0p[a9(0x159)](a9(0xc9)));try{const V=await g[a9(0xd0)](k);process['stdout'][a9(0x199)](a9(0x11f)),r+=V['tokensUsed'];const {getRealExamState:W,saveExamState:X}=await import(a9(0x1c6)),Y=W(),Z={};Z[a9(0x157)]=0x0,Z['ctf4ai']=0x0,(Y&&(Y[a9(0x1a1)]||(Y[a9(0x1a1)]=Z),Y['aiUsage'][a9(0x157)]=r,X(Y)),console[a9(0xea)](),a0z(V[a9(0x116)]),d(),function(a0,a1,a2){const aa=a9,a3=a0/a1*(0xb26+0x14d7+-0x1f99);a3>=0x515*0x2+-0x1*-0x1475+-0x1e40*0x1&&!a2[aa(0x129)]('95')?(console[aa(0xea)](a0p[aa(0xf1)]['bold'](aa(0x161)+Math[aa(0x11a)](a3)+'%\x20of\x20section\x20AI\x20budget\x20used\x20—\x20only\x20~'+(a1-a0)+aa(0xdf))),a2[aa(0x177)]('95')):a3>=0x14ab+0x1970+-0x269*0x13&&!a2[aa(0x129)]('80')?(console[aa(0xea)](a0p[aa(0x126)](aa(0xf0))),a2[aa(0x177)]('80')):a3>=0xb1b+-0x26a9+0x1bc0&&!a2['has']('50')&&(console[aa(0xea)](a0p['gray'](aa(0xed))),a2['add']('50'));}(r,h,f),console['log']());}catch(a0){process[a9(0x1a8)][a9(0x199)](a9(0x11f)),a0A(a9(0x121)+a0[a9(0x114)]),console[a9(0xea)]();}return a9(0x19e);}export function registerAi4ctfCommand(b){const ab=a0j;b[ab(0x169)]('ai4ctf')['description']('Chat\x20with\x20your\x20AI\x20teammate')[ab(0x171)](async()=>{const ac=ab;a0x(ac(0x157));const {getRealExamState:j}=await import(ac(0x1c6)),k=j(),p=k?.['questions'][ac(0x1a2)](x=>x[ac(0xd6)]>=-0x31c*-0xa+0x3ee*-0x6+0x277*-0x3&&x[ac(0xd6)]<=0x620+0x1dd3+0xeb*-0x27);if(k&&p){const x=k['_lastQ']||-0x53d+0x1f1d+-0xb3*0x25;if(x<-0x4*-0x10+0x1d8c+-0x1dad||x>0x1*0x1dc1+-0x70a+0x1*-0x1691)return console[ac(0xea)](),console[ac(0xea)](a0p[ac(0x126)](ac(0x15a))),console[ac(0xea)](a0p[ac(0x159)](ac(0x184)+x+ac(0xd8))),console[ac(0xea)](a0p['gray'](ac(0xc2))+a0p[ac(0x1a9)][ac(0x178)](ac(0x154))),void console['log']();const z=k['questions'][ac(0x11e)](A=>A[ac(0xd6)]===x);return z?void await async function(A,B){const ad=ac,{getRealExamState:C,refetchQuestionDataIfStale:D,materializeAttachedData:E}=await import(ad(0x1c6));await D();const F=C();if(!F)return!(-0x1e0a+-0x827+0x2632);const G=F[ad(0x150)][ad(0x11e)](J=>J[ad(0xd6)]===A);G&&(B=G),E(A,B?.[ad(0x138)]);const H=F[ad(0x1a1)]?.['ai4ctf']??0x18df+-0x1fc0+0x6e1;if(H>=h)return console['log'](),console[ad(0xea)](a0p['yellow']('\x20\x20⚠\x20Your\x20AI4CTF\x20token\x20budget\x20is\x20exhausted.')),console[ad(0xea)](a0p[ad(0x159)](ad(0xce))+a0p['white'](ad(0x115)+A+'\x20ICOA{...}')),console[ad(0xea)](),!(0x107c+-0x5*-0x5f3+-0x2e3a);try{g=await a0q(void(-0x171e+0xd6*0x3+-0x2*-0xa4e),function(J,K){const ae=ad,L=J['description']||J[ae(0x116)]||'',M=J[ae(0x138)]?ae(0x143)+K+ae(0xfa)+J['attachedData']:'';return ae(0x14b)+K+',\x20'+J[ae(0x111)]+',\x20'+(J[ae(0x19d)]||0x1d7c+0x1b2c+-0x38a2)+ae(0x192)+L+M+ae(0x189)+K+'.txt\x20(inside\x20the\x20sandbox)\x20rather\x20than\x20asking\x20the\x20contestant\x20to\x20paste\x20the\x20whole\x20blob\x20back.\x0a-\x20Keep\x20responses\x20concise\x20and\x20practical.\x20This\x20contestant\x20has\x20limited\x20time.';}(B,A));}catch(J){return a0A(J['message']),!(-0x1*0x2704+0x16*0x103+0x10c3);}s=!(-0x1*-0xe05+-0x5*0x602+-0x1005*-0x1),r=H,y=!(-0x2132*0x1+-0x3ce+0x2501*0x1),u={'qNum':A,'question':B,'usageField':ad(0x157),'enteredAt':Date[ad(0x15e)](),'hintsUsed':new Set(),'submitAttempted':!(0xed9+0x2b6*-0xc+0x11b0),'nudgeShown':!(-0x1759+0xf75+0x7e5)};const I=F[ad(0x11d)]?.[A];return function(K,L,M){const af=ad,N=a0w()[af(0x13f)]||af(0x15f),O=r>-0xe36+0x4a2+-0x994*-0x1;console[af(0xea)](),console[af(0xea)](a0p['green'][af(0x1a9)](af(0x18f)+L+':\x20'+K[af(0x111)]+af(0x14e))),O&&console[af(0xea)](a0p[af(0x159)]('\x20\x20(resuming\x20—\x20prior\x20chat\x20is\x20not\x20remembered,\x20but\x20tokens\x20already\x20used\x20stay\x20deducted)')),M&&console[af(0xea)](a0p[af(0x159)](af(0x11c))+a0p[af(0x126)](M)+a0p[af(0x159)](af(0x1c4))),console[af(0xea)](),console[af(0xea)](a0p[af(0x178)](af(0x109))),console[af(0xea)](a0p[af(0x178)]('\x20\x20│\x20')+a0p['bold']['white']('Q'+L+af(0xc5)+K[af(0x111)]+af(0x183)+(K[af(0x19d)]||0x2646+-0x28a+0x11db*-0x2)+af(0x1be))),console['log'](a0p[af(0x178)](af(0xc0)));for(const P of String(K[af(0x116)])[af(0x176)]('\x0a')){const Q=P[af(0x13d)]>0x1f6*0x3+-0x15e3+0x103d?P[af(0x1a6)](0x13b2+0x23b5+-0x1*0x3767,-0x4*0x14+-0x1f18+0x1fa1)+af(0xc7):P;console['log'](a0p['cyan']('\x20\x20│\x20')+a0p[af(0xe8)](Q));}console['log'](a0p['cyan'](af(0xc0))),console[af(0xea)](a0p[af(0x178)]('\x20\x20│\x20')+a0p[af(0x159)](af(0x144))+a0p[af(0xe8)]('exam\x20q\x20'+L)),console['log'](a0p[af(0x178)](af(0x1ad))+a0p[af(0x159)](af(0x179))),console[af(0xea)](a0p[af(0x178)](af(0x19c))),console['log'](),console['log'](a0p[af(0x1a9)]['white'](af(0x156))),console[af(0xea)](),console['log'](a0p['yellow'](af(0x188))+a0p[af(0x159)](af(0x195))),console[af(0xea)](a0p[af(0x126)]('\x20\x20\x20\x20hint\x20b')+a0p[af(0x159)](af(0xda))),console['log'](a0p[af(0x126)](af(0xe4))+a0p[af(0x159)](af(0x136))),console[af(0xea)](a0p['bold'][af(0x196)](af(0x1b4))+a0p['gray'](af(0x113))),console[af(0xea)](a0p[af(0xe8)](af(0x1ba))+a0p[af(0x159)](af(0xcc))),console[af(0xea)](a0p['gray'](af(0x194))),console[af(0xea)](a0p[af(0x159)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0p[af(0xe8)](af(0xdd))),console[af(0xea)](),console['log'](a0p[af(0x159)](af(0x110))+a0p[af(0x159)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Leave\x20chat,\x20return\x20to\x20exam')),console[af(0xea)](),d(),console[af(0xea)](a0p[af(0x159)](af(0x133)+N+')')),console[af(0xea)]();}(B,A,I),!(-0x148f+0x1*0x2151+-0x8e*0x17);}(x,z):void a0A('Q'+x+ac(0x102)+x);}const q={};q[ac(0x158)]=ac(0x14d),q['category']='Cryptography';const v=a0w()[ac(0x13f)]||ac(0x15f),w=q;try{g=await a0q(w);}catch(A){return void a0A(A['message']);}s=!(0x159d+-0x2f9*0x1+-0x12a4*0x1),r=-0xa42+0x6ad*0x4+-0x1072,y=!(0x1*0x15f1+0xac1*-0x1+-0xb2f),console['log'](),console['log'](a0p['green'][ac(0x1a9)](ac(0xfd)+a0B(ac(0x118))+ac(0x14e))),console['log'](),console[ac(0xea)](a0p[ac(0xe8)]('\x20\x20'+a0B('ai4ctfSample'))),console[ac(0xea)](),console[ac(0xea)](a0p[ac(0x178)](ac(0x109))),console['log'](a0p[ac(0x178)](ac(0x1ad))+a0p['bold'][ac(0xe8)](a0B(ac(0x190)))),console[ac(0xea)](a0p[ac(0x178)](ac(0xc0))),console['log'](a0p[ac(0x178)](ac(0x1ad))+a0p['white'](a0B(ac(0x1b3)))),console[ac(0xea)](a0p[ac(0x178)](ac(0x1ad))+a0p[ac(0x196)](ac(0x141))),console[ac(0xea)](a0p[ac(0x178)](ac(0xc0))),console['log'](a0p['cyan']('\x20\x20│\x20')+a0p[ac(0xe8)](a0B(ac(0x160)))),console[ac(0xea)](a0p[ac(0x178)]('\x20\x20│\x20')+a0p[ac(0x159)](ac(0x10e))),console[ac(0xea)](a0p[ac(0x178)]('\x20\x20└─────────────────────────────────────────────')),console[ac(0xea)](),console[ac(0xea)](a0p[ac(0xe8)]('\x20\x20'+a0B(ac(0x168)))),console[ac(0xea)](),console[ac(0xea)](a0p[ac(0x126)](ac(0x188))+a0p[ac(0x159)](ac(0xf9)+a0B(ac(0x140)))),console[ac(0xea)](a0p[ac(0x159)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B('ai4ctfHintAUses'))),console[ac(0xea)](a0p[ac(0x126)](ac(0x1a7))+a0p[ac(0x159)]('\x20\x20\x20\x20'+a0B(ac(0x19a)))),console[ac(0xea)](a0p[ac(0x159)](ac(0x185)+a0B('ai4ctfHintBUses'))),console[ac(0xea)](a0p[ac(0x126)](ac(0xe4))+a0p['gray']('\x20\x20\x20\x20'+a0B(ac(0x17b)))),console['log'](a0p[ac(0x159)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B('ai4ctfHintCUses'))),console[ac(0xea)](),console[ac(0xea)](a0p['gray']('\x20\x20─────────────────────────────────────────')),console[ac(0xea)](a0p['bold'][ac(0xe8)]('\x20\x20'+a0B(ac(0x17a)))),console[ac(0xea)](ac(0xf9)+a0p['cyan'](ac(0x1c1))+a0p[ac(0x159)](ac(0xf8)+a0B('ai4ctfHintNudge'))),console['log'](ac(0xf9)+a0p[ac(0x178)](ac(0x10d))+a0p['gray'](ac(0xf8)+a0B(ac(0x16f)))),console[ac(0xea)](ac(0xf9)+a0p['cyan'](ac(0x148))+a0p[ac(0x159)](ac(0xf8)+a0B(ac(0x137)))),console[ac(0xea)](a0p[ac(0x159)](ac(0xf9)+a0B(ac(0x166)))),console[ac(0xea)](),console[ac(0xea)](a0p[ac(0xe8)]('\x20\x20'+a0B(ac(0xdb)))),console[ac(0xea)](a0p['gray']('\x20\x20'+a0B(ac(0x17c))+'\x20')+a0p[ac(0xe8)](ac(0x11b))),console[ac(0xea)](),console[ac(0xea)](a0p[ac(0x126)]('\x20\x20'+a0B(ac(0xd5)))),console['log'](a0p[ac(0xe8)](ac(0xeb))+a0p['gray'](a0B(ac(0x12c)))),console[ac(0xea)](a0p[ac(0xe8)](ac(0xe3))+a0p['gray'](a0B('ai4ctfSubmitCmd'))),console[ac(0xea)](a0p['white']('\x20\x20\x20\x20!<shell\x20cmd>\x20\x20\x20\x20')+a0p[ac(0x159)](a0B(ac(0xc8)))),console[ac(0xea)](a0p[ac(0x159)](ac(0x191))+a0p[ac(0xe8)](ac(0xc6))),console[ac(0xea)](a0p[ac(0x159)](ac(0x167)+a0B('ai4ctfEndSession'))),console['log'](),d(),console[ac(0xea)](a0p[ac(0x159)]('\x20\x20'+a0B('ai4ctfModel')+':\x20Google\x20Gemma\x204\x20('+v+')')),console[ac(0xea)](a0p['gray']('\x20\x20'+a0B('ai4ctfExit'))),console[ac(0xea)]();});}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * demo2 — Embodied AI Security entry-level walkthrough.
3
+ *
4
+ * Free, no-token, ~5-minute interactive intro. Three-act structure:
5
+ * Act 1: five MCQ cards that nudge the student toward discovery
6
+ * (embodied AI / MuJoCo / Franka Panda / generalization gap / VLA ≠ LLM)
7
+ * Act 2: two story cards (ICOA's ImageNet-moment bet + three-tier curriculum)
8
+ * Act 3: live MuJoCo render of real Octo-Small on ICOA servers — the
9
+ * "you didn't install anything but ran a research VLA" reveal
10
+ *
11
+ * All MCQs are unscored. The pedagogy is speculation → reveal, not testing.
12
+ * No state file. No server tokens. No audit log.
13
+ */
14
+ import { Command } from 'commander';
15
+ export declare function runDemo2(): Promise<void>;
16
+ export declare function registerDemo2Command(program: Command): void;
@@ -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";import{createInterface as n}from"node:readline";const t=[{kind:"mcq",title:'1 / 7 · What is "embodied AI"?',question:"Which best describes embodied AI?",options:{A:"AI that runs on physical hardware (servers, GPUs)",B:"AI that perceives the world and TAKES ACTION in it — robots, drones, self-driving cars",C:"AI that talks like a human (chatbots, voice assistants)",D:"AI written in C++ for speed"},answer:"B",reveal:["Embodied AI = AI with a BODY. It sees (camera/sensors), understands instructions, and ACTS in the physical world.","","Chatbots talk. Embodied AI moves things.","The gap between the two is where the next decade of AI happens."]},{kind:"mcq",title:"2 / 7 · What is MuJoCo?",question:"MuJoCo (the thing that just rendered the robot arm video) is:",options:{A:"A robot brand competing with Boston Dynamics",B:"A type of Japanese AI startup",C:"DeepMind's open-source physics simulator — robots train in software FIRST",D:"A snack popular in Australian university cafeterias"},answer:"C",reveal:["MuJoCo = Multi-Joint dynamics with Contact. DeepMind's open-source physics engine.","","Real robots are expensive ($30k+) and breakable. Researchers train policies in MuJoCo first, then transfer to hardware.",'ICOA uses it as the "robot you can break for free" in this olympiad.']},{kind:"mcq",title:"3 / 7 · What is Franka Panda?",question:"The 7-axis arm you saw moving in the sim video is:",options:{A:"A panda-shaped toy robot from a kids' show",B:"Franka Emika Panda — a research-grade 7-DoF arm built in Munich",C:"An anime character",D:"A specific kind of VLA model"},answer:"B",reveal:["Franka Emika Panda — 7-axis robot arm, torque-controlled joints, ~$30k.","",'It is the most-filmed robot in research lab demo videos. Most "robot learning" papers run on a Panda.',"You just controlled one remotely — through ICOA infrastructure — without owning one."]},{kind:"mcq",title:"4 / 7 · Generalization — the real state of the industry",question:"In 2026, where does robotic GENERALIZATION actually stand?",options:{A:"Robots have already replaced most factory workers",B:"Boston Dynamics' Atlas does the dishes at home reliably",C:"No robot autonomously picks fruit in a real farm. Demos work; production-scale generalization is unsolved.",D:"It was a solved problem in the 2010s"},answer:"C",reveal:["Reality check: the canonical UNSOLVED problem is fruit-picking on real farms.","","Every farm: different lighting, soil, plant shape, season. A robot trained on tomatoes can't pick strawberries. Performance robots ≠ production robots.","The gap between viral demos and chaotic real-world reliability is what embodied AI research is actually working on."]},{kind:"mcq",title:"5 / 7 · What controls today's embodied AI?",question:'The "brain" inside a state-of-the-art research robot is most likely:',options:{A:"A Large Language Model (LLM) like GPT-4",B:"A Vision-Language-Action (VLA) model — vision + language + motor action",C:"Rule-based scripts written by engineers",D:"Reinforcement learning trained for years"},answer:"B",reveal:["LLMs are great at text — but can't see, can't act.","","The frontier of embodied AI is VLA = Vision + Language + Action."," · VISION: encodes camera images"," · LANGUAGE: reads your instruction"," · ACTION: outputs motor commands (xyz, rotation, gripper)","","Today, you talked to Octo-Small — an open-source VLA from Berkeley."]},{kind:"story",title:"6 / 7 · ICOA's bet — embodied AI's ImageNet moment",body:["Where computer vision was in 2010, embodied AI is right now.","","Before ImageNet + AlexNet (2012), there was no agreed standard for evaluating","computer vision. Then a single benchmark + a deep network unlocked the entire","modern era of AI.","",chalk.bold.yellow("ICOA 2026 is making the same bet for embodied AI security."),""," · VLA and competing architectures are FAR from mature",' · No agreed standards for "what does VLA safety mean"'," · No public benchmarks for adversarial robustness in robot policies"," · The industry is still figuring out what to even measure","","This olympiad's VLA4CTF track is where the first generation of contestants","will probe + adversarially attack current frontier VLA approaches.","","You won't just compete. You'll generate the first public data points","about how vulnerable today's embodied AI actually is."]},{kind:"story",title:"7 / 7 · More than a competition — the curriculum behind it",body:[chalk.bold.white("ASRA's recent history (the team behind this olympiad):")," · IOAI 2024 Bulgaria — 12-yr-old boy, practical-round GOLD (youngest ever)"," · IOAI 2025 China — Australia's 2 youngest contestants completed first"," scoring round in under 1 hour (of 3 allowed)"," · IAIO 2026 winter — 13-yr-old girl, Honorable Mention alongside global"," top high-schoolers","","Australia is exploring a curriculum from 6th-grade hardcore AI to","middle-schoolers participating in PhD-level projects.","",chalk.bold.cyan("Three open tiers for embodied AI security:")," "+chalk.green("· Free ")+chalk.gray("(this demo) — 10 core entry exercises")," "+chalk.yellow("· Registered ")+chalk.gray("(EA learn token) — 100 research-rapid track")," "+chalk.bold.magenta("· Officials ")+chalk.gray("(ICOA national team) — 480 PhD-ready track"),"","Goal: 1–3 months from zero-foundation middle-schooler to PhD-ready core","capabilities in embodied AI security. We are seeking university +","laboratory partners to validate this learning path.","",chalk.bold.yellow("Now — ready to see the robot move for real?")]}];function r(o=" Press Enter to continue..."){return new Promise(e=>{const a=n({input:process.stdin,output:process.stdout});a.question(chalk.gray(o),()=>{a.close(),e()})})}function s(o){console.log(),console.log(chalk.cyan(" ╭─ ")+chalk.bold.white(o)),console.log(chalk.cyan(" │"))}function i(){console.log(chalk.cyan(" │")),console.log(chalk.cyan(" ╰─")),console.log()}function l(o){for(const e of o)console.log(chalk.cyan(" │ ")+chalk.white(e))}async function c(o){s(o.title),l([o.question]),console.log(chalk.cyan(" │"));for(const e of["A","B","C","D"])console.log(chalk.cyan(" │ ")+chalk.bold.cyan(e+".")+" "+chalk.white(o.options[e]));i();const e=await(a=chalk.gray(" Your guess (A/B/C/D): "),t=["A","B","C","D"],new Promise(o=>{const e=n({input:process.stdin,output:process.stdout}),r=()=>{e.question(a,a=>{const n=a.trim().toUpperCase();t.includes(n)?(e.close(),o(n)):(console.log(chalk.gray(` (please type one of: ${t.join(" / ")})`)),r())})};r()}));var a,t;const c=e===o.answer;console.log(),c?console.log(" "+chalk.bold.green("✓ ")+chalk.gray("Correct.")):console.log(" "+chalk.bold.yellow("✗ ")+chalk.gray("You chose ")+chalk.white(e)+chalk.gray("; the answer is ")+chalk.bold.white(o.answer)+chalk.gray(". Read on:")),console.log();for(const e of o.reveal)console.log(chalk.gray(" "+e));console.log(),await r()}async function d(o){s(o.title),l(o.body),i(),await r()}export async function runDemo2(){console.clear(),console.log(),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(chalk.bold.yellow(" ICOA 2026 · Embodied AI Security Demo")),console.log(chalk.gray(" 5 minutes — 7 cards + a live robot render")),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(),console.log(chalk.white(" ICOA 2026 introduces a new competition track: ")+chalk.bold.cyan("VLA4CTF")),console.log(chalk.gray(" alongside the existing ")+chalk.green("AI4CTF")+chalk.gray(" (Day 1) and ")+chalk.red("CTF4AI")+chalk.gray(" (Day 2).")),console.log(),console.log(chalk.gray(" This demo is your map to the new track.")),console.log(),await r(chalk.gray(" Press Enter to begin..."));for(const o of t)"mcq"===o.kind?await c(o):await d(o);await async function(){console.log(),console.log(chalk.cyan(" ╭─ ")+chalk.bold.white("Final act — see it run, for real")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.white("Now the reveal.")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.gray("You are about to ask an ICOA server to:")),console.log(chalk.cyan(" │ ")+chalk.gray(" 1. Load Octo-Small (Berkeley's VLA, 27M params, ~110MB weights)")),console.log(chalk.cyan(" │ ")+chalk.gray(' 2. Predict a 7-DoF action for instruction "Pick up the red cup"')),console.log(chalk.cyan(" │ ")+chalk.gray(" 3. Replay that action through MuJoCo on a Franka Panda arm")),console.log(chalk.cyan(" │ ")+chalk.gray(" 4. Stream the rendered MP4 back to you")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.bold.yellow("You installed NONE of these locally.")),console.log(chalk.cyan(" │ ")+chalk.gray("No JAX, no MuJoCo, no Octo weights, no 30GB conda env.")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" ╰─")),console.log(),await r(chalk.gray(" Press Enter to render now..."));const n=`${process.env.ICOA_SERVER_URL?.replace(/\/+$/,"")||"https://practice.icoa2026.au"}/api/ai/vla/41/sim`;console.log(chalk.gray(" Rendering on ICOA infrastructure..."));try{const t=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({}),signal:AbortSignal.timeout(6e4)});if(!t.ok)return void console.log(chalk.yellow(` Sim service unavailable (HTTP ${t.status}).`));const r=await t.json();if(!r.success||!r.data?.mp4_b64)return void console.log(chalk.yellow(" Renderer returned no video."));const s=process.env.TMPDIR||"/tmp",i=a(s,`icoa-demo2-${Date.now()}.mp4`);e(i,Buffer.from(r.data.mp4_b64,"base64")),console.log(),console.log(" "+chalk.bold.green("✓ ")+chalk.gray("Saved: ")+chalk.white(i)),r.data.description&&console.log(" "+chalk.gray("Action: ")+chalk.white(r.data.description));const l="darwin"===process.platform?"open":"win32"===process.platform?"start":"xdg-open";l?(o(l,[i],{stdio:"ignore",detached:!0}).unref(),console.log(" "+chalk.gray("Opening in your default video player..."))):console.log(" "+chalk.gray("Open the file above in your video player."))}catch(o){const e=o instanceof Error?o.message:String(o);console.log(chalk.yellow(` Sim error: ${e}`))}}(),console.log(),console.log(chalk.cyan(" ╭─ ")+chalk.bold.white("What you just did")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.gray("· Interacted with Octo-Small, a research VLA")),console.log(chalk.cyan(" │ ")+chalk.gray("· Watched MuJoCo physics render a real robot arm")),console.log(chalk.cyan(" │ ")+chalk.gray("· All running on ICOA infrastructure, zero local setup")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.bold.yellow("Where to next")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.bold.green(" learn ")+chalk.gray(" free 11-card curriculum (LEARNDEMO01) — no token needed")),console.log(chalk.cyan(" │ ")+chalk.bold.green(" learn ")+chalk.gray(" 100/480-card track — ask your country's team for an ")+chalk.bold.yellow("EA")+chalk.gray(" token")),console.log(chalk.cyan(" │ ")+chalk.bold.green(" exam ")+chalk.gray(" Paper D (VLA4CTF) on competition day — requires ")+chalk.bold.yellow("PD")+chalk.gray(" token")),console.log(chalk.cyan(" │")),console.log(chalk.cyan(" │ ")+chalk.gray("Country team contact: ")+chalk.cyan("australia@icoa2026.au")),console.log(chalk.cyan(" │ ")+chalk.gray("Website: ")+chalk.cyan.underline("https://icoa2026.au")),console.log(chalk.cyan(" ╰─")),console.log()}export function registerDemo2Command(o){o.command("demo2").description("Embodied AI Security — 7-card intro + live MuJoCo sim (free, ~5 min)").action(async()=>{try{await runDemo2()}catch(o){const e=o instanceof Error?o.message:String(o);console.log(chalk.yellow("\n demo2 ended: "+e))}})}
@@ -1 +1 @@
1
- (function(z,B){const aX=a0B,F=z();while(!![]){try{const G=-parseInt(aX(0x2eb))/(-0x1*0x1f49+-0x5*0x7a2+0x4574)*(parseInt(aX(0x368))/(0x2*-0x533+-0x1*0x16f7+0x215f))+-parseInt(aX(0x157))/(0xd5b*0x2+0x1*-0x647+-0xa36*0x2)+parseInt(aX(0x12a))/(-0x2a7+0xf*-0x96+0xb75)+parseInt(aX(0x1de))/(0x7bf+0x1ca2+-0x1*0x245c)*(parseInt(aX(0xbe))/(0xf4c+0x1895+0x1*-0x27db))+parseInt(aX(0x26b))/(-0x23eb*-0x1+-0xa8f+-0x1955)*(parseInt(aX(0x2bb))/(0xe*-0x17b+-0xb93*-0x1+-0x1*-0x92f))+parseInt(aX(0x131))/(0x1dd7*0x1+0x1104+-0x2ed2)+parseInt(aX(0x17d))/(-0x153c+-0x1222+0xc2*0x34);if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,0x42dd*-0x17+0x31819+0x827e8));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';import{logCommand as a0a8}from'../lib/logger.js';function a0B(a,b){a=a-(-0x9f7+-0x72*-0x33+0x414*-0x3);const c=a0z();let d=c[a];if(a0B['UkyVlE']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x26fb+-0x24ff+0x4bfa,o,p,q=-0xb38+0x64*0x1e+0x10*-0x8;p=i['charAt'](q++);~p&&(o=n%(0x9*0x36+0x1*0x1d5e+0x10*-0x1f4)?o*(0xd0e+0x263f+-0x330d)+p:p,n++%(0xd0*0x2b+0x193+-0x247f))?l+=String['fromCharCode'](0x4*0x130+0x1d1c+-0x20dd&o>>(-(-0x1a7f+-0x1a13+-0x3494*-0x1)*n&-0x323*-0xa+0x15e7+-0x353f)):0x2c3*-0x7+0x4fe+0xe57){p=j['indexOf'](p);}for(let r=-0x373+-0x2dd+0x328*0x2,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x153d*0x1+-0x219d+0x36ea))['slice'](-(0x2112+-0x18f3+-0x81d));}return decodeURIComponent(m);};a0B['CPtMGc']=e,a0B['uqKvBe']={},a0B['UkyVlE']=!![];}const f=c[-0x1*0x8f5+0x17e3+-0xeee],g=a+f,h=a0B['uqKvBe'][g];return!h?(d=a0B['CPtMGc'](d),a0B['uqKvBe'][g]=d):d=h,d;}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 E(B,F={}){const aY=a0B,G=a0W(),H={};H[aY(0x328)]='application/json',fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':aY(0x29c),'headers':H,'body':JSON['stringify']({'type':B,'lang':G[aY(0x1c2)]||'en','timestamp':new Date()[aY(0x32e)](),...F}),'signal':AbortSignal[aY(0x127)](-0x24ff+-0x17c9+0x5050)})[aY(0x26d)](()=>{});}function a0z(){const bK=['icdINjmGie1dusbZzwn0Aw9UignVBxbSzxrLiokaLcb3zwXSigrVBMuH','y2f0y2G','icbbBgWGAgvSCcb1C2vKicG','q3j5ChrV','AhrWsNvTCa','ihvUyw5ZD2vYzwq6ia','y3vYBcaTzNnttcbODhrWCZOVl2rLyI5UB2rLC291CMnLlMnVBs9Zzxr1Cf8YmI54ihWGC3vKBYaTrsbIyxnOic0','C3rHCNrfEgfT','ihrVigXLyxzLigLJB2e','zxHHBvDHExntyxzLzfrV','Cgf1C2u','icaGWRCGmtuGBgfUz3vHz2vZlcbYzwfSlxrPBwuGquKGDhjHBNnSyxrPB24','icHXDwLJAYb0yxnRCYK','Dg9vChbLCKnHC2u','iIbPCYbPBIbWCM9NCMvZCY4','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','C3rVCa','C2v0Dxa','tM8GDgLTzsbSAw1PDa','C2nHChK','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','iefjihn5C3rLBxmU','CM9Wz2fKz2v0','icbeDxjPBMCGDgHLigv4yw0Sihr5CguG','icaGicbtB2X2zsa','r2vYBwfUEq','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','icaGicaGicaGia','y2XLyxi','zwDNmte','BNvTyMvY','sunpqsboyxrPB25HBcbtzwXLy3rPB24GrxHHBq','CgfKrw5K','Aw5JBhvKzxm','zMLUzeLUzgv4','icbxAw5KB3DZicH3Aw5NzxqSihjLy29TBwvUzgvKktO','icdIL48G','ihLVDsbNB3qGD3jVBMCU','C3vIBwL0DgvKqxq','y29TBwfUza','icaGicbqCM9TChqGAw5Qzwn0Aw9Uimk3igfKDMvYC2fYAwfSigfUywX5C2LZimk3iefjigf1zgL0Aw5N','y3j5ChrVz3jHCgH5','D2LUz2v0igLUC3rHBgWGls1PzcbqExrOB24UuhL0Ag9UlJmUmtiGlwu','zgvTBY1MCMvL','ica0mcSGy291BNrYAwvZigfUzcbYzwDPB25ZihjLChjLC2vUDgvK','icbdDxjYzw50BhKGzMXHz2DLzdOG','icaGig1VCMuGAgvSCa','vMLLDYbLEgfTihjLC3vSDa','ue9tva','u3rHCNrPBMCGDgLTzxiUlI4','icdIMiyGuq','icaGiokrOca','Dg9mB3DLCKnHC2u','4OcuihLVDsDYzsaXlZqGDgHYB3vNAcb0AguGzxHHBq','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','icaOAgvSCca','Dwj1BNr1','zgf0yq','C2v0uMf3tw9Kzq','vgHHAwXHBMq','zxHHBvDHExntAgvSBa','icbtDgfYDdOGzxHHBsbZDgfYDca8Awq+','icbuB2TLBJOGica','icbozxCGzxHHBxmGyxjLignVBwLUzYbZB29Uiq','icaGvgHLC2uGyxjLihrOzsbOyxjKzxn0ihf1zxn0Aw9UCY4Gv29YDgGGmJeLig9MihrVDgfSihnJB3jLlG','tMv3ifPLywXHBMq','zxHHBsbYzxnLDa','icbvC2u6igv4yw0GCMv2Awv3imk3igv4yw0GC3vIBwL0','uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','vw5PDgvKifn0yxrLCW','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','CgvYuq','CgfZC2vK','ugvYy2vUDgfNzq','icaGicaGicHpCIbKB3DUBg9HzcbMCM9Tihb5DgHVBI5VCMCGyw5KienirunligjVDgGGiKfKzcbqExrOB24GDg8','DxnLza','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','mJuSmdaW','mta0mJu0nevlBwv5Ba','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','C3bSAwnL','D3jVBMC','Ew91CKfUC3DLCG','ig1PBNv0zxm','zxHHBvDHExngB3vUza','8j+pM++4JW','Dgv4Da','sw5ZDgfSBcbqExrOB24Gzw52AxjVBM1LBNqGzM9YihbYywn0AwnHBcbLEgfTihf1zxn0Aw9UCW','q2HVAwnLig11C3qGyMuGqsWGqIWGqYWGB3iGrc4','C3rHCNrLzef0','icbszxj1BIb3AgvUigzPEgvKoIa','icaGicaGicaGkgn0zJrHAsK','CMvK','ChDUDg9VBhm','zwXPBwLUyxrLza','zxHHBsa8Dg9Rzw4+','lcbUB3qGEw91CIb0zwfTBwf0zq','icbdB250Aw51zsb0AgLZigv4yw06','zgvTB0LUDhjVu2vLBG','u2v0DxaGzMfPBgvKiokaLcaWig9Mia','icaGiokrPca','ChDU','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','zxHHBsbTB3jLlwHLBha','icbqCMvZCYbfBNrLCIb0BYbIzwDPBI4UlIa','icdINjmGrxHHBsbZDgf0zsbJBgvHCMvKlG','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','igzVCIb0AgLZihnLy3rPB24','zgvTBY1LBNrLCG','BMv3','u2f1zgKGqxjHyMLH','icaGica','icaGiokgKIa','ixzPihnVBhzLlNb5','icaGifLVDsbJyw4GBM93ihvZztOG','ig1PBIbYzw1HAw5PBMC','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','vxnLicjLEgfTihjLDMLLDYiGDg8Gy2HLy2SGChjVz3jLC3mGB3iGiMv4yw0GC3vIBwL0iIb0BYbZDwjTAxqU','icbcEsbJyxrLz29YEq','Dg9Rzw4','icaGu3LKBMv5lcbbDxn0CMfSAweGimk3icbkDw4GmJCG4OctieP1BcaYlcaYmdi2','ueLm','u3jPieXHBMTH','icdIL4SG','igf0igfUEsb0Aw1LlG','m01jA3fduW','icaGign0zJrHAq','zwDNnW','zxHHBsbTyxjRia','icbZDwjTAxqGzMXHzYbKAxjLy3rSEq','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','lI4U','uxvLC3rPB25Z','sg1Tlcb3B3j0AcbHihnLy29UzcbSB29Rigf0ihrOzsbLBMqU','q2HPBMe','igvSAw1PBMf0zwqH','y2f0','ihrVihn1yM1PDcbMB3iGz3jHzgLUzY4','y29YCMvJDa','BgLUDxG','ChjLlxDYAxr0zw4GCgvYihf1zxn0Aw9U','icaGiezHAwXLzdOG','zxHHBu5HBwu','CxvLC3rPB25Z','C3rHCNq','icbMyxiGBw9YzsbZBw9VDgHSEsbPBNnPzguGv1nmmIbvyNvUDhuU','zMXVB3i','zxHHBsbSAxn0ia','BwLU','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIa','DhLWzq','ihbVAw50CW','y29UzMLYBq','ienurJrbsq','BM93','icaGicaGicaGicaGicaGicaGCNuGWRCGAgKGWRCGzguGWRCGAwqGWRCGDgGGWRCGDMKGWRCGDhi','C3vIBwL0ifTJB25MAxjTqxjNxq','BwfYAYbBBL0','icaGicHHAtrJDgyP','zgvTBY1LEgfT','y291BNrYEq','icaGihn1zg8GywrKlwfWDc1YzxbVC2L0B3j5ihbWytPKzwfKC25HA2vZl3bWysaTEq','icaGigjYzxCGAw5ZDgfSBcbWExrOB25amY4XmG','zxHHBsbZDgfYDca','sw52ywXPzcb0B2TLBG','icbVzIa','zgLT','ChLJCNLWDg9KB21L','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','icaGiokaOIbzB3uGBwf5igv4AxqGyw5KihjLC3vTzsb3AxrOihrOzsbZyw1LihrVA2vU','icaGicbfEgfToIaG','lI4VBgLIl2v4yw0TC3rHDguUANm','vgLTzsbLEhbPCMvKlG','CM91BMq','icaGidiUieLUC3rHBgWGsg9TzwjYzxCGzMLYC3qGkhDLigrPzcbUB3qGzMLUzca','uhL0Ag9Uia','vMLLDg5HBq','vhLWzsaIzxHHBsbZDwjTAxqIihrVigzPBMfSAxnLig5VDYWGB3iGDgHLihnLCNzLCIb3AwXSigf1Dg8TzMLUywXPC2uGD2L0AgLUidmWig1PBNv0zxmU','iefjigj5ihLVDxiGC2LKzs4GquKGAxmGEw91CIb0zwfTBwf0zs4','z2v0uMvZDwX0','ywn0Aw9U','tg9HzgLUzYbYzxn1BhqUlI4','zxHHBvDHExnszwzqExrOB24','zw1VAMK','DgvZDa','Bsb0B3rHBa','q29UDgvUDc1uExbL','u3rYB25NzxiGAgvYztOGia','icaGihDPBMDLDcbPBNn0ywXSifb5DgHVBI5qExrOB24UmY4XmG','D2L0Aa','AgfZ','icHLEhbSB3jLicyGzxHWzxjPBwvUDcK','Dg9ju09tDhjPBMC','igf0DgvTChq','y2XVy2TpzMzZzxrnCW','icaGicaGia','r28GDg8GBMv4DcbXDwvZDgLVBG','AgvSCfjLBw92zq','icbtDgfYDcbHifb5DgHVBIbZzxnZAw9Ulcb0ExbLignVBw1HBMrZig9UzsbIEsbVBMu6','ihWG','icaGicbuAguGDg9Rzw4GAxrZzwXMigLZie5pvcbYzxzVA2vKihnLCNzLCI1ZAwrLlIbjzIb5B3vYihnLC3nPB24GAxm','icbqyxbLCIbbic8GqIbWCMfJDgLJywWGCxvLC3rPB25Zig5LzwqGvw5PEcb0B29SAw5NihrOyxqGCNvUCW','ChL0Ag9UmW','vg90ywW','tgfVCW','CMvXDwvZDhm','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwqGyMvMB3jLigvUDgvYAw5NigeGDg9Rzw4U','zxHHBsb1BM1HCMSG','AhrWsgvSCa','uK9qz2fKz2v0','icdIMiuGuq','igfUzcbWCMvZCYbfBNrLCIb0BYbSzwf2zsbPy29H','ig1PBNv0zxmGBgvMDc4Gs2vLCcb0AguGCgfJzsbZDgvHzhKU','ic0TCxvPzxqGmJ4Mmq','ic1JicjPBxbVCNqG','y29TCgXLDgvKqxq','icbfEhbLy3rLzdOGms0Yig1PBNv0zxmGWRCGFJe1me1cigrPC2S','icaGifbHy2THz2vZoIa','u3vIBwL0DgvK','icaGutm54OctndaGkdiGCxvLC3rPB25Zimk3ide2ihb0CYbLywnOiokaLcbOAwDOzxn0ihzHBhvLisK','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','igLUC3rHBgXLza','icaGieHLBha6icaGideWihvZzxmGkYa1igHPzgrLBIbIB251CYaOtunrig9UBhKP','BwLZC2LUzW','Aw5JB3jYzwn0sw50CM8','ywK0y3rMu3vI','C3vJy2vLza','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','icbezw1VoIa','rwD5Chq','uMvJB21Tzw5Kzwq6ignVBxbSzxrLigrLBw8GzMLYC3q','icbbssbbC3nPC3rHBNq','AwnVyq','x2XHC3rr','icbpChrPB25ZigHHDMuGyMvLBIbYzxnODwzMBgvKlG','icaGigjHy2S','zwDNnq','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','ChjLDG','icdIMiuGtMv3ihbLCNnVBMfSigjLC3qH','icHr','rw52AxjVBM1LBNqGywXYzwfKEsbZzxqGDxa','qw5ZD2vYideWihf1AwnRihf1zxn0Aw9UCW','tM90ignVBM5Ly3rLzc4GuNvUoIbQB2LUidX1CMW+','icaGicaGicaGicaGicaGicaGzxmGWRCGEMGGWRCGAMeGWRCGA28GWRCGyxiGWRCGzNiGWRCGChq','ihbYB21WDcWGC2fTzsbZAgfWzsbHCYbKzw1V','Axnoyu4','icbgCMvLihbYywn0AwnLimk3ie5VigfJy291BNqGBMvLzgvKimk3ie5VihrPBwuGBgLTAxq','icaGWRCGmteWienurIb0B29SCYbWCMuTy29UzMLNDxjLza','iokCKYaGka','mZeXnteWA0zQtu9S','sw5KAwe','uMvTB3zLihjLDMLLDYbMBgfNigzYB20GysbXDwvZDgLVBG','uhjVz3jLC3m','zxHHBsbYzxn1BhqG','rgvTBYbJB21WBgv0zwqGka','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','icdcTYbszwzLCMvUy2uGz3vPzgvZigzVCIaZocb0B29SCZOG','Cg9PBNrZ','BM9KztPMCW','yxr0ywnRAw5N','iokgKIbIywnRihrVigv4yw0Sig5HDMLNyxrLihDPDgGG','l2fWAs9Py29Hl2v4yw1ZlW','icaGicbgCMvLignOyxq6icaGicaGyw55ig1LC3nHz2uG4OAsiefjihrLyw1TyxrL','icaGv2HHDcb5B3uNBgWGzg8GDg9KyxK6','icbszxzPzxCGDw5HBNn3zxjLzcbXDwvZDgLVBNm6ia','u3vIBwL0igzHAwXLza','zgvTBW','8j+pLU+4JW','q291BgqGBM90igLUC3rHBgWGCgLWiokaLcbWAxaGAxmGBM90igLUC3rHBgXLzcbVBIb5B3vYihn5C3rLBs4','icbtzxj2zxiGzgLKig5VDcbYzxr1CM4Gysb2ywXPzcbVChrPB24UifrYEsbHz2fPBI4','Bw9Yzs1OzwXW','Cgn0','r3jHzgLUzY4UlG','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','zxHHBsbHBNn3zxiG','uMvZDwX0igXVywrLza','icbszwLUC3rHBgWGuhL0Ag9UidmUmtiGD2L0AcbWAxaGyNvUzgXLzcWGDgHLBIbYzxrYEtO','icdWN5Ieie9UBhKGmIbVChrPB25ZigXLzNqG4OcuihLVDsbNB3qGDgHPCYe','ywLvC2fNzq','icaGig1HCMS','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','itXJBwq+ia','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','icbuExbLia','icaOugfWzxiGqYb0B2TLBNmGC2TPCcb0AgLZigDHDguG4OcuifbHCgvYiemGAxmGtunrlw9UBhKP','rMXHz2DLzdOGica','icbnzxrOB2qGmtOGt25LlwXPBMvY','ihrOzsbJB21WzxrPDgLVBI4','Dg9Rzw4GpgnVzgu+','icaGihn1zg8Gyxb0ihvWzgf0zq','icboyxrPB25HBcbsB3vUzcaXifnLBgvJDgLVBIbLEgfTCYbHCMuGyMvPBMCGChjLCgfYzwqU','twfSyxLZAwe','icaGid4+pIbMCM9TienYExb0BY5dAxbOzxiGAw1WB3j0ieffuW','yMfJAW','y2vPBa','AhrWtMf2','zxHHBsbZzxr1Ca','zxHHBsbXide','zw5JB2rPBMC','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','icdWN5kHifrYEsb0ExbPBMCG','ic0TDMvYC2LVBG','icaGigHLBha','CMfUzg9T','icbdB3vSzcbUB3qGCMvHy2GGC2vYDMvYigzVCIbOzwXWlIbdAgvJAYb5B3vYignVBM5Ly3rPB24U','uxvLC3rPB24G','icbgAwX0zxiGyNKGy291BNrYEtOGzxHHBsbSAxn0ifbflcbLEgfTigXPC3qGq04Sic4UlG','AxnsyxC','icH3B3jRCYWGyNv0idmUmtiGCMvJB21Tzw5KzwqP','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icdIHPiG','CsbBBL0','C2vZC2LVBG','icaGvgHLigzPBMfSihnLy3rPB24GzMXPChmGDgHLihnJCMLWDdOGAw5ZDgvHzcbVzG','icdIHPmGifbYywn0AwnHBcbZzwn0Aw9UigjLz2LUCYbHDcbrmZeU','ywrK','zxHHBsbUzxH0','icaGiokrOIa','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','DMXH','AxnuvfK','AwDUB3jL','ueftu0ve','CgfKu3rHCNq','AhrWuMv2Awv3','Ag93vg9qBgf5','C2vYDMvYx3rPBwvFBxm','vw5HBNn3zxjLza','Aw5ZDgfSBgvKugfJA2fNzxm','icaGicdcTYbtzxbHCMf0zsbIDwrNzxq6ia','EwvSBg93','ieLdt0f7Ew91CL9MBgfNFq','ixb5DgHVBJm','u2H1zMzSAw5Nig9WDgLVBNmUlI4','zhvYyxrPB25nAw51DgvZ','icaGigTLEsa9ihHVCIHJDfS6nv0SigiIsunpqxSIkq','C3vKBYbHChqGDxbKyxrL','uhjLCgfYAw5Nigv4yw0Gzw52AxjVBM1LBNqUlI4','ic1TihbPCcbPBNn0ywXSici','quKGDg9Rzw5ZoIa','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMv0CNK6','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqU','icbtDgvWlwj5lxn0zxa6','ica+ia','icaGigv4yw0GBgLZDcbbvq','yxbWBgLJyxrPB24VANnVBG','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZlW','y29TCgXLDgu','ihbVAw50C10','C3rKAw8','icbuBYbJB25MAxjToIaG','icaOtwLUAw1HBcbvyNvUDhuGlYbJBg91zcaVifDttdiGAw1Hz2vZig9MDgvUihnOAxaGD2L0Ag91DcbWAxaUkq','zxHHBsbWCMv2','nLntAMfHCW','zgvTBY1YzxrYEq','icaGicbuB2TLBJOG','qxvZDhjHBgLH','icbezxrLy3rLzdOG','tM8GzxHHBsbPBIbWCM9NCMvZCY4','icbizwXWihvZzwq6ia','ihn0AwXSigzSywDNzwqGzM9YihjLDMLLDZOG','icbqCMfJDgLJAw5Nia','icdWN5kHie9WDgLVBIa','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','AwnVys1JBgK','icdINjmGCgLWigf2ywLSywjSzq','icbdyw5JzwXSzwqU','CMvM','yw5ZD2vYzwq','ugvYDq','icaGicaGC3rHCNqGuhL0Ag9UihnOzwXS','DdeW','zgvZy3jPChrPB24','icdIJ7eGifrPBwuGy2HLy2SGia','zxHHBsbZDwjTAxqGy29UzMLYBq','ywXS','u29SAwqGCgLJAY4','icbzB3vYigfUC3DLCJOG','CxvLC3rPB24','khbYzxnZigfUEsbRzxKGDg8GC2TPCcK','u3rHDhvZ','zxHHBsbXia','BNvTChK','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','C2XPy2u','icaG','icbzB3vYihj1BG','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','yw5ZD2vYx3n1yM1PDhrLza','ihLLDc4','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','zxHWBgfUyxrPB24','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icbszwfKEt8GvxnLia','zxHHBvDHExnqExrOB25szxbS','l2HLBha','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','ihvUzMXHz2DLzc4','icaGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3ic0GsNvSidiSidiWmJy','icdIJ7aGmtaGBwLUDxrLCYbYzw1HAw5PBMC','icaGswyGDgLTzsbPCYb0AwDODcWGC2TPBsbrmZKVndaGzMLYC3qGDg8GzgvJAwrLigf0DgfJAYbVCMrLCI4','DxrMltG','C29YDa','z2v0rxHHBxm','icaGicjtAg93ig1LigHVDYb0BYb1C2uGC3rYDwn0lNvUCgfJAYi','icaGicaGicaOBM93lcb+nsbTAw4P','ihjLBwfPBMLUzYK','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','D3jPDgu','v2LUzg93CYbUyxrPDMuGkfbVD2vYu2HLBgWGlYbJBwqP','ihf1zxn0Aw9UCYbKCMf3BIbMCM9TigeGCg9VBcbVzIa','icbuAw1LoIaGica','yw5ZD2vYvgHPCW','q3rYBcTd','icbjBIb0AguGBwvHBNrPBwuSihrYEtOG','icbqCMv2Aw91CYbZzxr1CcbOywqGB25SEsa','sgvSCdOGicaGica','tgLZDcbHDMfPBgfIBguGzxHHBxmGkg9WDgLVBMfSoIaYlwXLDhrLCIbJB3vUDhj5ignVzguP','zgfYD2LU','DhjPBq','icaOuMv0CNKGD3jVBMCGB25SEsK','ig5VDcbMB3vUzcaOms0','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','C3vIBwL0DgvK','qNvYDw5KAq','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','rMfPBgvKihrVigXVywqGzxHHBxm','icdINjmGuhL0Ag9Uia','yw5ZD2vYCW','zMLSDgvY','z3jHEq','AhrWqMfJAW','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','y3rMngfP','ywK0y3rM','icaGicaGicbqqvriiIaRicjjBNn0ywXSihbPCciGzhvYAw5NihrOzsbPBNn0ywXSzxiUkq','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icaGicbnzxnZywDLCYdIHPiGquKGDgfYz2v0iokaLcbJCMfMDcbWCM9TChrZihrVigjYzwfRigL0CYbYDwXLCY4','x2HLBhbnyxG','z3jHzgLUzW','C3vIC3rYAw5N','C3vKBYbHChqGAw5ZDgfSBcaTEsbWExrOB24ZlxbPCcbWExrOB24ZlxzLBNy','icaGqNvKz2v0icHZAgfYzwqGywnYB3nZifeZmEkaKZm4kq','yM9VA21HCMTZ','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','zMfPBgvKugfJA2fNzxm','icaGihbYAw50khHVCIHJDcWGA2v5ks5KzwnVzguOksK','l2v0yY9VCY1YzwXLyxnL','icdIMQaGCgLWig5VDcbMB3vUzcWGDhj5Aw5NigvUC3vYzxbPCc4UlG','icaGicbfBNrLCIbJAgf0oIaGicaG','ihjLz2LVBNmP','zxHHBsbKzw1V','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','icbtDhvJAZ8Grw1HAwWGEw91CIbZzwXLy3rPB24Gy29VCMrPBMf0B3iGD2L0Acb0AguGC2nYzwvUC2HVDcbHyM92zs4','ihbHy2THz2vZigLUC3rHBgXLzc4','icaOChjLDMLVDxmGzxHHBsbZzxnZAw9Uigv4CgLYzwqG4OcuignSzwfYzwqGC3rHDguSihn0yxj0Aw5NigzYzxnOihDPDgGGEw91CIbUzxCGDg9Rzw4P','DgLTzw91Da','icbpCIb0ExbLia','icaGicfJyxqGpdWGj0vprICGpIbZB2X2zs5WEq','mtu4nte2DfbfwKjL','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','x2HLBhbvC2vK','C3rHDhvZ','icaGihn1zg8GCgfJBwfUic1tihb5DgHVBG','z3jLzw4','icbr','mJe3mde5n2rTwfrpDq','Dw5KzxjSAw5L','vgLTzw91DevYCM9Y','yM9Sza','yNjLDW','ihrVihnLzsb5B3vYihjLC3vSDhmH','icboyxrPDMuGv2LUzg93CYbJyw4GCNvUifbHCgvYiemGke1dus1VBMX5ksbHBMqGquKGy2HHDcWGyNv0','CMvNzxG','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','zxHHBsbOzwXW','icaGiokaOIbuCNK6ia','zxHPDa','igzVDw5KlcbIDxqGmY4XmcSGCMvXDwLYzwqGzM9YihrOzsbLEgfTlG','icaGWRCGmtuSmdaWkYbJB25JDxjYzw50ihbHCNrPy2LWyw50CW','iokgKIa','x3n1yM1PDenVBMzPCM1Lza','y29UzMLYBwvKqxq','ihf1zxn0Aw9U','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','oJaW','icbbC3nPC3rHBMnLihvZzwq','yw5ZD2vY','C3rYAw5NAwz5','zxHHBsbYzxzPzxC','qwjHBMrVBIbJDxjYzw50igv4yw0GC2vZC2LVBIbHBMqGD2LWzsbSB2nHBcbZDgf0zsaOCMvJB3zLCNKGB25SEsK','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','icaGidiUieLUigfUiefKBwLUAxn0CMf0B3iGug93zxjtAgvSBcWGCNvUoG','uMv0CNKGB25SEsb0AguGCxvLC3rPB25ZihLVDsbNB3qGD3jVBMCGBgfZDcbKzw1Vigf0DgvTChq','yMvHDxrPzNvSC291Cdq','icbzB3uGy2fUihbHDxnLihDPDgGG','imk3ia','yxr0ywnOzwreyxrH','icaGienVBxbSzxrLzdOG','zxHHBuLK','zxHHBv9Pza','ChvZAa','icbxAgf0ig5LEhq','ndC4otG5B3nxthbp','q29TCgXLDguGDgHLigrLBw8GzMLYC3qGyMvMB3jLihnLDhrPBMCGDxaU','icaGigv4yw0GCsaXlI4','icbfEgfTCgXLoIa','zgvHzgXPBMvtzxj2zxjnCW','rMXHz2DLzcbMB3iGCMv2Awv3','icdIMiuGtwfYA2vKigzVCIbYzxzPzxC','CMvZDwX0ifTPzf0','icdINjmGCgLWigLUC3rHBgXLza','l2fWAs9Py29Hl2v4yw0TDg9Rzw4','Bwf4','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','rw52AxjVBM1LBNqGCMvHzhK','icaGicHYzwXHDgL2zsb0BYbVDgHLCIbJyxrLz29YAwvZiokaLcbUDw1LCMLJihnJB3jLCYbNBYb0BYb5B3vYigv4yw0Gy2vUDgvYkq','A2v5CW','ywK0y3rMrgvZyW','icaGid4+pIbLEgL0kcK','igfUC3DLCNmU','Aw5FChjVz3jLC3m','icdcTYaG','icdWN5Miie1HEcaYigHLBhbZihbLCIbXDwvZDgLVBIdIGjqGEw91igfSCMvHzhKGAgf2zsbHiduWlZuWiq','yNm0','igHLBhbZihjLBwfPBMLUzY4GvxnLihrOzw0GzMLYC3qH','icaGihzSytrJDgy','B3b0Aw9UCW','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','icaGiefjigj1zgDLDdOGmJvlihrVA2vUCYbMB3iGquK0q1rgicSGmJvligzVCIbdvey0quK','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','ugHPBgLWCgLUzxm','Dg90ywW','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbsq','ixb5DgHVBJmGC29SDMuUChK','s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','icdIMQaGiduGBwLUDxrLCYbYzw1HAw5PBMC','icbqCMvZCYbfBNrLCIb0BYbZDgfYDcb0AguGzxHHBsb0Aw1LCI4UlIa','igzPCNn0lG','zxHHBq','y2f0zwDVCNLtDgf0CW','mJCWnJK0mefps0DXCW','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','lIboBYb0Aw1LCI4GrNjLzsbWCMfJDgLJzs4','AgLUDcbHic8GyIaVigm','icbxCMfWihvWigfUzcbZDwjTAxq6ia','CMvZzxq','lI4VBgLIl2nVBMzPzY5QCW','A2v5','CdeW','oIdIGjq','icbODhrWCZOVl2LJB2eYmdi2lMf1','quXm','icaGv2vSy29Tzsb0BYb0AguGChjHy3rPy2fSienurIbZzwn0Aw9UlIbszwfS','icboB3rLoIb5B3uGDhLWzwqGysbKAwzMzxjLBNqGDg9Rzw4UievHy2GGzxHHBsb0B2TLBIbPCYbIB3vUzcb0BW','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','icbnzxrOB2qGmJOGsw50zxjHy3rPDMuGuhL0Ag9U','icaGihn1zg8GDxbKyxrLlwfSDgvYBMf0AxzLCYaTlwLUC3rHBgWGl3vZCI9IAw4VChL0Ag9UmYbWExrOB24Zic91C3iVyMLUl3b5DgHVBJmUmtiGmq','icbiB3CGDg8GAw5ZDgfSBcbqExrOB24GmY4XmcSGkdmUmtiGCMvJB21Tzw5KzwqPoG','r2HHBMe','icaGsg93ihrVihDVCMS','icaGigXHBMC','icaGrwXHChnLzdOG','AgLUDa','C3rKB3v0','BwfJt1m','l2fWAs9Py29Hl3nLCNzLCI10Aw1L','icaGiokrOsa','icdIMQaGiefUigv4yw0GAxmGywXYzwfKEsbPBIbWCM9NCMvZCYbVBIb0AgLZigrLDMLJzs4','iokaLca','Dg9Vx29Sza','AgvSCa','yxr0zw1WDhm','CMvWBgfJzq','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','yMvZDfbLCMnLBNrHz2u','icaGigfPngn0zG','icaGicbjBNnPzguGy2HHDdOGicaG','uMvHzhKH','BMfTzq','C3rKAw4','CgLSBg93','icbtzwuGywXSigzSywDNzwqGCxvLC3rPB25ZigLUoIa','sunpqsbezw1Viev4yw0G4OcuiezYzwuGuhjHy3rPy2u','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','zNjVBq','Bw9YzsbOzwXW','ic1TihbPCcaTlxzLCNnPB24','u3vIBwL0igL0igzPCNn0oIbLEgfTihn1yM1PDa','vxPIzwTPC3rHBG','Bwf0y2G','icdIMQaGifjLC2v0ihDPBgWGywjHBMrVBIb5B3vYign1CNjLBNqGzxHHBsbZzxnZAw9Uig9UihrOAxmGzgv2AwnLlG','icaOzgLMzMvYzw50igzYB20GDgHLig9Uzsb5B3uGDhLWzwqP','icaGig5LEhq','C2nVCMu','l3n1yM1PDa','tg9HzgLUzYbLEgfTCY4UlG','C3vIBwL0rxHHBq','icGZmcbnq1eGkYaXmcbWCMfJDgLJywWP','lI4VBgLIl2rLBw8TzxHHBs5QCW','ANnVBG','q29TCgXLDguH','uM9VBsb0BYbNCM93oIaGia','lI4VBgLIl3bHCgvYlxvWz3jHzguUANm','qNjHEMLS','ixb5DgHVBJmGlI4U','BMf0Aw9UCW','icaGihn1zg8Gyxb0igLUC3rHBgWGlxKGChL0Ag9UmY4XmIbWExrOB24ZlJeYlxzLBNyGChL0Ag9UmY4XmI1KAxn0DxrPBhm','icbzB3vYigjLC3q6ia','BgfUz3vHz2u','zxHHBsbZDwjTAxqG','Dg9tDhjPBMC','rvHqsvjfra','AM9PBG','CxvPDa','x2HLBhbqzxjr','icdINjmGvg9Rzw4GCMuTyxr0ywnOzwqGDg8GEw91CIbPBI1WCM9NCMvZCYbLEgfTlG','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','Aw50zxjHy3rPB25Z','icaGzxHHBsbJzw50zxiUiezPBMfSihnJB3jPBMCGyw5KihnLBgvJDgLVBIbHCMuGzgvJAwrLzcbIEq','lI4VBgLIl3bSyxrMB3jTlMPZ','u3vIBwL0igv4yw0GzM9YigDYywrPBMCGkhvZztOGiMv4yw0GC3vIBwL0ignVBMzPCM0IigzVCIbYzwfSigv4yw1Zkq','CgvYy2vUDgfNzq','Aw5KzxHpzG','u2vYDMvYig5VDcbYzwfJAgfIBguUienOzwnRihLVDxiGAw50zxjUzxqGy29UBMvJDgLVBI4','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','rMfPBgvKihrVihn0yxj0igv4yw0','zw50CMLLCW','wYbDica','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','C19HAtrJDgy','icaGicaGC3vKBYb1CgrHDguTywX0zxjUyxrPDMvZic0TAw5ZDgfSBcaVDxnYl2jPBI9WExrOB24Zihb5DgHVBJmGl3vZCI9IAw4VChL0Ag9UmY4XmIaX','CMvZDw1L','icaGid4+pIbRzxKGpsbIExrLCY5MCM9TAgv4kci0otqZngy0ms4UlIiP','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','uMv2Awv3oIa','icaGicfWExrOB24Z','nZKYmtmWyMP4tLnU','icaGidiUieLUifbVD2vYu2HLBgWSigLUC3rHBgWGuhL0Ag9UihDPDgGGCgLWoG','DgfYz2v0','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','CdmW','4PQGicbfweLuigLJB2eGzMLYC3qG4OcuigLUC3rHBgXLCIbJyw5UB3qGCNvUigLUC2LKzsb0AguGChjVBxb0','y3rMngfPpG','icdIMiuG','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','l2fUC3DLCG','icdWN46bicS','x2vSAw1PBMf0zwq','AhrWtwfYAW','u2nVCMu','icbVCIaG','D2HPDgu','icaGid4+pIbJAxbOzxiGpsbbrvmUBMv3kgTLEsWGquvtlK1prevFq0jdlcbPDIK','zMfPBa','icdIMQaGiezjtKfmifnvqK1ju1njt04G4OcuihbSzwfZzsbJB25MAxjT','vhvYA2v5','CMv2Awv3','C3bSAxq','icbqBgvHC2uGCMuTDhLWztOG','rxHHBsbZDgfYDgvKisbuAw1LCIbPCYbYDw5UAw5NlG','AgvSCfvZzwrvCa','icaGicdcTYbbssbPCYb5B3vYia','C3vIBwL0ieLdt0f7lI4UFq','EJmTC29SDMvY','icaGuhjLC3mGyw55igTLEsb0BYbZDgfYDcbKzw1VlI4U','r28GDg8GChjLDMLVDxmGCxvLC3rPB24','icbvyNvUDhuGlYbezwjPyw4GkgrLywrZBMfRzxmGufbbktO','icaGicbZDgLSBcbHy3rPDMuGyw5Kig5VDcbZDwjTAxr0zwqSihjLlwvUDgvYAw5NihrOzsbZyw1LihrVA2vUihjLC3vTzxmGAxqU','icaGicaGC3vKBYbHChqGAw5ZDgfSBcbWExrOB24ZlJeYihb5DgHVBJmUmtiTDMvUDG','igfUC3DLCMvKkq','igfUC3DLCMvK','t3rOzxi','icaGidiUifjLAw5ZDgfSBcbqExrOB24GD2L0AcbWAxaGkeHVBwvICMv3igrLDgvJDgvKiokCKYK6','icbuAxa6ihn3AxrJAcb0BYb5B3vYigXHBMD1ywDLihDPDgG6igXHBMCG','CMvTB3zLtgLZDgvUzxi','icaGicaGicbLBNrLCIbbstrdveyGy2HHDcbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','r0vu','sMfWyw4','CgXHDgzVCM0','vwj1BNr1ia','C2HVD25xyxjUAw5NCW','icaGidiUieLUihLVDxiGC2HLBgWSihj1BJO','vgLTzq','icaGicaGifrOzw4GAw5ZDgfSBcbqExrOB246','zxHHBsb0B2TLBIa','zwXPBwLUyxrLzca','AhrWqw5ZD2vY','ihbHy2THz2vZlI4U','icaGsg93ihrVigf0DgfJAW','icaGia','icaGievprG','BgvUz3rO','iokaLcbZzwuGzNvSBcbLCNjVCG','ic8G','icbozxH0ihn0zxa6ia','AxnbCNjHEq','u291DgGGs29Yzwe','icaGigzYB20GChDUigLTCg9YDcb4B3i','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icbuAgLZihf1zxn0Aw9UihjLCxvPCMvZihLVDsb0BYb1C2uGAgvSCcbIzwzVCMuGyw5ZD2vYAw5NlG','vxbSB2fKAw5NigfUC3DLCNmUlI4','iefjnenurG','zxHHBsbUyxrPB25Z','icGR','D2HPy2G','C3rKzxjY','icaGideUifr5CguG','zwDNmtm','y3LHBG','icaGutmX4OctmZGGkdGGCxvLC3rPB25Zimk3idyGChrZigvHy2GP','D2LUmZi','y2f0zwDVCNK','icbdAgvJAYbLEgfTCYbMB3iGEw91CIbJB3vUDhj5oG','icaGieeVqI9dl0q','icaGicfWExrOB24ZihnVBhzLlNb5','icaGvgLTzsbZDgLSBcbJB3vUDgLUzYbKB3DUlIbcDwrNzxqGFJiGBwLUihbLCIbXDwvZDgLVBI4','zMLUza','icbzB3uGD2LSBcbZDwjTAxqG','BwvZC2fNzq','yNjLDYbSAw5Ric0TB3zLCNDYAxrLihb5DgHVBKaZlJeY','icaGicdILQmG','u3rHCNqGyw4GzxHHBsaOyMvNAw5ZihrPBwvYkq','CxvLC3rPB25dB3vUDa','sw4GuhjVz3jLC3m6ia','ifSGxsaG','Bg9N','ic1TihbPCcbZAg93ici','icbjBNn0ywXSAw5Nia','B25Jzq','icbmyw5NDwfNztOG','CMvWzwf0','q2XVC2uG4OcuihDLj2XSihjLDMLZAxqGDgHPCYbVBMuU','icaGww91CIb0zxjTAw5HBca','qxzHAwXHyMXLiev4yw1ZicG','C19JDgy0ywK','ihbHy2THz2vZlIbszxrYEwLUzY4UlG','vgLTzsb1C2vKoIa','icdINjmG','BwfW','icaGicbLEgfTigXPC3qGueu','u3bLy2LMEsbLEgfTieLeoIbLEgfTihjLC3vSDca8Awq+','zwXPBwLUyxrL','zwDNmW','icaGiefjoIaGicaGidi1sYbbstrdveyGkYaYnuSGq1rgnefjihrVA2vUCW','cGPgDwXSigf0DgfJAgvKigrHDge6cG','drTBmKSGia','ihrVigfZAYbbssbMB3iGAgvSCdO','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl21Hy29ZlW','icHxu0WYkq','twfJyxu','icaGicbbssb0B2TLBNm6icaGicaG','vxnLCI1bz2vUDa','tMf0Aw9UywWGC2vSzwn0Aw9Uigv4yw0','z2v0vgLTzq','Cg9ZDc1YzxbVCNqTCMv0CNK','icbYDw4G','AhrWtw9YzuHLBha','iIbPCYbHBhjLywr5igLUihbYB2DYzxnZlG','rhvYyxrPB24','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','igf0DgvTChrZ','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl3DPBMrVD3mV','icaGicbfEgL0ignOyxq6icaGicaG','C3rYAwTLDgHYB3vNAa','ic1TihbPCcbPBNn0ywXSic0Tzhj5lxj1BIbWAxaGmJ4Mmq','igLZigeGChjHy3rPy2fSihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0AcbHigzSywCSig5VDcbHigXLDhrLCI4','icbSyw5NigzYimk3igXHBMCGyxiGWRCGBgfUzYbWDcdcTYaXnsbSyw5NDwfNzxmGC3vWCg9YDgvK','y3rMzfvYBa','CMvMihb5DgHVBG','ihbVAw50CYaOntaLkq','BwfNzw50yq','tMLJzsbVBMuU','AwnVyt4','igjVBNvZihvZzxmP','zxHHBsbZDwjTAxq','mtrJvLrHuwy'];a0z=function(){return bK;};return a0z();}function N(z,B){const aZ=a0B,F=Math['round'](z/(0x64*0x1e+0xaed*-0x1+0x67*-0x1)*(0x2*0xa68+0xe*0x10a+0x233e*-0x1)),G=-0x1271+0x2*-0x32a+0x115*0x17-F,H=a0L[aZ(0x12f)]('█'[aZ(0x23e)](F))+a0L[aZ(0x10c)]('░'['repeat'](G)),J=String(z)[aZ(0xa0)](0x6d*-0x2b+0x2*-0x12dd+0x380c)+'%';process[aZ(0x195)][aZ(0xf6)](aZ(0x24d)+H+'\x20'+J+'\x20\x20'+a0L[aZ(0x10c)](B));}function M(){const b0=a0B,z=a0W();return z[b0(0x263)]&&z[b0(0x2e5)]?new a0V(z[b0(0x263)],z[b0(0x2e5)]):(a0aa(b0(0x361)),null);}function O(){const b1=a0B,z=a0a1();z&&(new Date()<z?a0af('Time\x20Remaining',a0L[b1(0xa7)][b1(0x134)](a0ah(z))):a0af(b1(0x20e),a0L[b1(0x2ca)][b1(0x134)](b1(0x1c5))));}function D(z,B){const b2=a0B;return Array[b2(0x21b)](z[b2(0x119)])&&z[b2(0x119)][b2(0x28d)](B);}function j(z,B){const b3=a0B,F=Array[b3(0x21b)](z[b3(0x119)])?[...z[b3(0x119)]]:[],G=F[b3(0x1d0)](B);return G>=-0x20ad+-0x1a7f+0x3b2c?(F[b3(0x2be)](G,0x89*0x3f+-0x26c*0x10+0x50a),z[b3(0x119)]=F,a0Z(z),!(0x7*-0x1fd+-0x31*0x65+0x2141)):(F[b3(0x155)](B),F[b3(0xf0)]((H,J)=>H-J),z[b3(0x119)]=F,a0Z(z),!(-0x373+-0x2dd+0x328*0x2));}function R(B){const b4=a0B,F={};return F[b4(0x2b8)]=B[b4(0x12c)]||-0x153d*0x1+-0x219d+0x36da,F['max']=B[b4(0x114)]||0x2112+-0x18f3+-0x80b,F['perQ']=B[b4(0x1c8)]||{},F[b4(0x2cc)]=B[b4(0x1ea)]||{},F;}function U(z,B){const b5=a0B,F=a0Y(),G=Number(F?.[b5(0x95)][b5(0x236)]||-0x1*0x8f5+0x17e3+-0xed0),H=Object[b5(0x165)](F?.[b5(0x10a)]||{})[b5(0x217)],J=R(F),K=J[b5(0x2cc)][z['number']]||[],L=b5(0x110)===z[b5(0x304)]||b5(0x10f)===z['type']||b5(0x9c)===z[b5(0x304)]||z['options']&&!z[b5(0x16f)]['A']&&!z['options']['B'];F&&function(Y,Z){const b6=b5;if(b6(0x297)===Y[b6(0x95)][b6(0x153)])return;const a0=new Set(Y['shownWarnings']||[]),a1=Number(Y['session'][b6(0x236)]||-0x26*-0x1a+-0xaf1+-0x73d*-0x1),a2=a0a1();if(-0x1a3*0x2+0x1*-0x1a2d+0x1d7d===Z&&a1>=0x1fb8+0x319+-0x22a9*0x1&&!a0[b6(0x32c)](b6(0x185))){const a3=a2?Math['max'](-0x1601+-0x1a99+0x309a,Math['round']((a2[b6(0x255)]()-Date[b6(0x308)]())/(0x1*-0xb939+-0x2d2c*0x4+0x25849))):null;console[b6(0x239)](),console[b6(0x239)](a0L['gray'](b6(0x27b))),console['log'](a0L[b6(0x228)](b6(0xd3))+a0L[b6(0x10c)](b6(0x2a1))),null!==a3&&console['log'](a0L[b6(0x10c)](b6(0x2dd)+a3+b6(0x342))),console[b6(0x239)](a0L[b6(0x10c)](b6(0x27b))),a0[b6(0x98)]('p10'),Y[b6(0x20c)]=Array[b6(0x1aa)](a0),a0Z(Y);}if(-0x16ae+0x298+-0x3*-0x6bc===Z&&a1>=0x279+-0x9*0xe9+0x5e0&&!a0[b6(0x32c)](b6(0x1e3))){Object[b6(0x165)](Y[b6(0x10a)]||{})[b6(0x217)];const a4=Object['keys'](Y[b6(0x10a)]||{})[b6(0x10b)](a5=>Number(a5)<=0x1*0xc7f+-0x8f*0x8+-0x3*0x2a3)['length'];console[b6(0x239)](),console['log'](a0L[b6(0x12f)](b6(0x10e))),console[b6(0x239)](a0L['bold'][b6(0x12f)](b6(0x26c))),console['log'](a0L[b6(0x10c)](b6(0x2dd)+a4+'/30\x20multiple-choice\x20answered')),console[b6(0x239)](a0L[b6(0x1ee)](b6(0x97))),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['green'](b6(0x10e))),a0['add'](b6(0x1e3)),Y['shownWarnings']=Array[b6(0x1aa)](a0),a0Z(Y);}}(F,z[b5(0x28a)]),F&&L&&function(Y,Z){const b7=b5;if('demo-free'===Y[b7(0x95)][b7(0x153)])return;if(Number(Y[b7(0x95)][b7(0x236)]||0x2ff*0x1+0x4*0x260+0x41d*-0x3)<-0x1408+-0x2660+0x3a90*0x1)return;const a0=new Set(Y[b7(0x20c)]||[]);Z>=0x1cdc+0xc53*0x3+-0x20db*0x2&&Z<=-0x1354+0x9*0x29d+0xf*-0x45&&!a0[b7(0x32c)](b7(0x1d7))?(console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x12f)](b7(0x112))),console[b7(0x239)](a0L[b7(0x134)][b7(0x12f)]('\x20\x20\x20🚀\x20\x20Section\x202:\x20AI4CTF\x20—\x20AI\x20is\x20your\x20teammate')),console['log'](a0L['green'](b7(0x112))),console[b7(0x239)](),console['log'](a0L[b7(0x1ee)](b7(0x189))),console[b7(0x239)](a0L[b7(0x1ee)]('\x20\x20\x20security\x20tasks\x20—\x20crypto,\x20web,\x20forensics,\x20pwn.')),console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x134)][b7(0x1ee)](b7(0x229))),console[b7(0x239)](a0L[b7(0x10c)](b7(0x284))+a0L[b7(0x134)](b7(0x32b))+a0L['gray'](b7(0x320))),console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x134)][b7(0x1ee)](b7(0x191))),console[b7(0x239)](a0L[b7(0x10c)](b7(0x11f))+a0L[b7(0x134)][b7(0x12f)](b7(0x110))+a0L[b7(0x10c)](b7(0x13f))+a0L[b7(0x266)]('ai4ctf>')+a0L['gray']('\x20prompt,\x20just\x20like\x20the\x20demo')),console[b7(0x239)](a0L[b7(0x10c)]('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L[b7(0x228)](b7(0x180))+a0L[b7(0x10c)](b7(0x150))+a0L['cyan'](b7(0x1f9))+a0L[b7(0x10c)](b7(0x150))+a0L[b7(0x228)](b7(0x1be))),console[b7(0x239)](a0L[b7(0x10c)](b7(0x376))),console[b7(0x239)](a0L['gray'](b7(0x25e))+a0L[b7(0x228)](b7(0x13c))+a0L[b7(0x10c)](b7(0x374))+a0L[b7(0x228)]('next\x20/\x20prev')),console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x134)][b7(0x1ee)](b7(0x118))),console['log'](a0L[b7(0x10c)](b7(0x252))+a0L['white'](b7(0x2ba))+a0L[b7(0x10c)](b7(0x2d9))),console['log'](a0L[b7(0x10c)]('\x20\x20\x20\x20\x20Hints\x20A/B/C:\x20\x20\x20\x20')+a0L[b7(0x1ee)](b7(0x2fa))),console[b7(0x239)](),console[b7(0x239)](a0L['yellow'](b7(0x22f))),console[b7(0x239)](a0L[b7(0x12f)](b7(0x112))),console[b7(0x239)](),a0[b7(0x98)]('s_ai4ctf'),Y[b7(0x20c)]=Array[b7(0x1aa)](a0),a0Z(Y)):Z>=-0x1*-0x215b+0xcf3+-0x2e27&&!a0[b7(0x32c)](b7(0x242))&&(console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x2ca)](b7(0x112))),console[b7(0x239)](a0L[b7(0x134)]['red']('\x20\x20\x20🎯\x20\x20Section\x203:\x20CTF4AI\x20—\x20Challenge\x20the\x20AI')),console[b7(0x239)](a0L[b7(0x2ca)](b7(0x112))),console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x1ee)](b7(0x96))),console[b7(0x239)](a0L[b7(0x1ee)]('\x20\x20\x20using\x20AI,\x20you\x27re\x20')+a0L[b7(0x134)](b7(0x373))+a0L[b7(0x1ee)](b7(0x281))),console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x134)][b7(0x1ee)](b7(0x349))),console['log'](a0L[b7(0x10c)](b7(0x294))),console[b7(0x239)](),console[b7(0x239)](a0L[b7(0x134)][b7(0x1ee)](b7(0x214))),console['log'](a0L[b7(0x10c)](b7(0x11f))+a0L['bold']['red'](b7(0x10f))+a0L['gray']('\x20→\x20')+a0L[b7(0x2ca)](b7(0x1e5))+a0L['gray'](b7(0x363))),console['log'](a0L[b7(0x10c)](b7(0x1a2))+a0L[b7(0x228)]('hint\x20a\x20/\x20b\x20/\x20c')+a0L[b7(0x10c)](b7(0x150))+a0L[b7(0x228)](b7(0x1f9))+a0L[b7(0x10c)](b7(0x150))+a0L[b7(0x228)](b7(0x1be))),console[b7(0x239)](a0L[b7(0x10c)](b7(0x113))),console['log'](),console[b7(0x239)](a0L['bold'][b7(0x1ee)](b7(0xc8))),console['log'](a0L[b7(0x10c)](b7(0x1f8))+a0L['red'](b7(0x1e0))+a0L[b7(0x10c)](b7(0x2ce))),console[b7(0x239)](a0L['gray'](b7(0xa6))+a0L['white']('25,000\x20tokens')+a0L[b7(0x10c)]('\x20shared\x20across\x20Q39–40')),console[b7(0x239)](),console['log'](a0L[b7(0xa7)](b7(0x2ad))),console[b7(0x239)](a0L[b7(0xa7)](b7(0xee))),console[b7(0x239)](a0L[b7(0x2ca)](b7(0x112))),console[b7(0x239)](),a0['add'](b7(0x242)),Y[b7(0x20c)]=Array['from'](a0),a0Z(Y));}(F,z['number']),F&&function(Y){const b8=b5,Z=a0a1();if(!Z)return;const a0=Z[b8(0x255)]()-Date['now']();if(a0<=0x16*-0x1be+-0x1e*-0xf1+-0x50b*-0x2)return;const a1=a0/(0xb1*0x21e+0x1666a+-0x16*0x16ac),a2=new Set(Y[b8(0x20c)]||[]);let a3=null;if(a1<=-0x179c+-0x36*-0x21+0x261*0x7&&!a2[b8(0x32c)]('t1')?a3={'key':'t1','text':[a0L['red'][b8(0x134)](b8(0x104)),a0L['red']('\x20\x20Submit\x20now\x20with:\x20')+a0L['bold'](b8(0x26a))]}:a1<=0x1*0x783+0x676+-0x2f*0x4c&&!a2[b8(0x32c)]('t5')?a3={'key':'t5','text':[a0L[b8(0x2ca)][b8(0x134)](b8(0x178)),a0L['yellow'](b8(0x181))+a0L[b8(0x134)](b8(0x26a))]}:a1<=0x1*-0x902+-0x4ee+0xdfa*0x1&&!a2['has'](b8(0xd1))&&(a3={'key':b8(0xd1),'text':[a0L['yellow'][b8(0x134)](b8(0xed)),a0L[b8(0x10c)](b8(0x378))+a0L[b8(0x1ee)]('exam\x20review')]}),a3){console[b8(0x239)](),console[b8(0x239)](a0L[b8(0x2ca)](b8(0x10e)));for(const a4 of a3[b8(0x2c4)])console['log'](a4);console[b8(0x239)](a0L[b8(0x2ca)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),a2[b8(0x98)](a3['key']),Y['shownWarnings']=Array[b8(0x1aa)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const b9=b5,a1=Math[b9(0x31b)](Y/Z*(-0x255+-0x17ab+-0xd0f*-0x2)),a2=0x18de+0x2ec*0x3+-0x23c*0xf-a1,a3=a0L['cyan']('━'[b9(0x23e)](a1))+a0L['gray']('─'[b9(0x23e)](a2)),a4=Math[b9(0x31b)](Y/Z*(-0xbaf*0x3+0xe1*-0x11+0x3262));console[b9(0x239)](),console[b9(0x239)]('\x20\x20'+a3+'\x20\x20'+a0L[b9(0x1ee)][b9(0x134)](''+Y)+a0L[b9(0x10c)]('/'+Z)+'\x20\x20'+a0L[b9(0x10c)]('('+a0+'\x20answered)')+'\x20\x20'+a0L[b9(0x10c)](a4+'%'));const a5=a0a1();if(a5){const a6=Math[b9(0x161)](-0x1a3d+0x1*-0xd06+0x2743,Math[b9(0x31b)]((a5['getTime']()-Date[b9(0x308)]())/(-0x18d8+-0xc0d+0x28cd))),a7=Math[b9(0x300)](a6/(0x110+-0x5*0x497+0x161f))+':'+String(a6%(-0x1a*0xce+0x2051+-0xb29*0x1))[b9(0xa0)](-0x1082*0x1+0x1e56+-0x3d*0x3a,'0'),a8=a6<=0x2*-0x10e7+-0x1*0x13c3+0x11ef*0x3?a0L[b9(0x2ca)][b9(0x134)]:a6<=0x1a5a*-0x1+-0x21ec+-0x25d*-0x1a?a0L[b9(0x2ca)]:a6<=0x1*-0x23d9+0x6*-0x2b3+-0x333*-0x11?a0L[b9(0xa7)]:a0L['gray'];console[b9(0x239)]('\x20\x20'+a0L[b9(0x10c)]('⏱\x20Time\x20remaining:')+'\x20'+a8(a7)+'\x20'+a0L[b9(0x10c)]('(server-authoritative)'));}}(z[b5(0x28a)],G,H),F&&D(F,z['number'])&&console[b5(0x239)](a0L[b5(0xa7)](b5(0x15d)));const Q=function(Y,Z){const ba=b5,a0={};a0[ba(0x37f)]=0.2,a0['emoji']=ba(0x2c3),a0[ba(0x184)]=ba(0x24a);const a1={};a1['pct']=0.33,a1[ba(0x325)]='🐨',a1['key']=ba(0x35a);const a2={};a2['pct']=0.5,a2['emoji']='🌉',a2[ba(0x184)]=ba(0x2ed);const a3={};a3[ba(0x37f)]=0.6,a3['emoji']='🦘',a3[ba(0x184)]='egg9';const a4={};a4[ba(0x37f)]=0.8,a4[ba(0x325)]=ba(0x37b),a4[ba(0x184)]=ba(0x289);const a5={};a5[ba(0x37f)]=0.87,a5[ba(0x325)]='🦈',a5[ba(0x184)]=ba(0x227);const a6={};a6['pct']=0x1,a6['emoji']='🎉',a6[ba(0x184)]='egg15';const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math[ba(0x31b)](a9[ba(0x37f)]*Z);if(!(aa<-0x25cb+-0x203f+0x460b||a8[ba(0x32c)](aa))&&(a8[ba(0x98)](aa),Y===aa))return{'emoji':a9[ba(0x325)],'text':a0ai(a9[ba(0x184)])};}}(z[b5(0x28a)],G);if(Q&&console[b5(0x239)](a0L[b5(0xa7)]('\x20\x20'+Q[b5(0x325)]+'\x20\x20'+Q[b5(0x2c4)])),console['log'](),z[b5(0x22b)]&&console[b5(0x239)](a0L[b5(0x228)]('\x20\x20['+z[b5(0x22b)]+']')),z[b5(0x371)]&&z['points']>0x3*0xaf1+-0x25*-0x25+-0x262a&&console['log'](a0L[b5(0x228)]('\x20\x20['+z[b5(0x371)]+b5(0xb9))),L){let Y=z[b5(0xd2)]||z[b5(0x2c4)];const Z=a0a2(z['number'],z['attachedData']);if(z[b5(0x151)]){const a1=/\([^()]*attachedData[^()]*\)/;a1['test'](Y)?Y=Y[b5(0x19e)](a1,z[b5(0x151)]):Y[b5(0x28d)](z['attachedData'])||(Y=Y+b5(0x24c)+z['attachedData']);}console[b5(0x239)](a0L[b5(0x134)][b5(0x1ee)](b5(0x130)+z[b5(0x28a)]+'.\x20')+a0L[b5(0x1ee)](Y[b5(0x1f4)]('\x0a')[0x2314+-0x4e*0x1f+-0x19a2]));const a0=Y[b5(0x1f4)]('\x0a')['slice'](-0x1*-0x55d+-0x29d+0x1*-0x2bf);for(const a2 of a0)console[b5(0x239)](a0L[b5(0x1ee)]('\x20\x20'+a2));if(console[b5(0x239)](),Z&&b5(0x110)===z['type']){const a3=Z['replace'](process.env.HOME||'','~');console[b5(0x239)](a0L[b5(0x228)]('\x20\x20'+a0ai('examWaysToSolve')+'\x20')+a0L[b5(0x10c)]('('+a0ai(b5(0x275))+'\x20'+a3+'):')),console[b5(0x239)](a0L['white'](b5(0x29f))+a0L[b5(0xa7)](b5(0x389)+a3)[b5(0x28c)](-0x65b+0x47*-0x2a+0x1235)+a0L[b5(0x10c)]('\x20'+a0ai(b5(0x2a9)))),console[b5(0x239)](a0L['white'](b5(0x198))+a0L[b5(0xa7)](b5(0xa9))[b5(0x28c)](0x1ea8+-0x2600+0x3bc*0x2)+a0L[b5(0x10c)]('\x20'+a0ai(b5(0xe8)))),console[b5(0x239)](a0L[b5(0x1ee)](b5(0x9a))+a0L[b5(0xa7)](b5(0x2df))+a0L[b5(0x10c)]('\x20\x20→\x20\x20')+a0L['yellow'](b5(0x176))),console[b5(0x239)](a0L[b5(0x1ee)]('\x20\x20\x20\x20④\x20')+a0L[b5(0xa7)](b5(0x264))[b5(0x28c)](0xe*-0x256+0xab5+0x161f)+a0L[b5(0x10c)]('\x20'+a0ai(b5(0x324)))),console['log'](a0L[b5(0x1ee)](b5(0x2d2))+a0L[b5(0xa7)](b5(0x110))['padEnd'](0x1*0xa5b+0x23fa+-0x2e35)+a0L[b5(0x10c)]('\x20'+a0ai('examWaysAi4ctf'))),console[b5(0x239)](),console[b5(0x239)](a0L['gray']('\x20\x20'+a0ai(b5(0x2c2))+'\x20')+a0L[b5(0x134)][b5(0x12f)]('submit\x20ICOA{your_flag}')),console[b5(0x239)]();}B&&(console[b5(0x239)](a0L['green'](b5(0xd7)+B)),console[b5(0x239)]());}else{console[b5(0x239)](a0L[b5(0x134)][b5(0x1ee)](b5(0x130)+z[b5(0x28a)]+'.\x20')+a0L[b5(0x1ee)](z[b5(0x2c4)])),console['log']();for(const a4 of['A','B','C','D']){const a5=B===a4;K[b5(0x28d)](a4)?console[b5(0x239)](a0L[b5(0x10c)][b5(0x25f)](b5(0x215)+a4+'.\x20'+z[b5(0x16f)][a4])+a0L[b5(0x2ca)]('\x20('+a0ai(b5(0x2bf))+')')):a5?console['log'](a0L[b5(0x12f)][b5(0x134)]('\x20\x20▸\x20'+a4+'.\x20'+z[b5(0x16f)][a4])):console[b5(0x239)](a0L[b5(0x10c)](b5(0x215)+a4+'.')+'\x20'+a0L[b5(0x1ee)](z[b5(0x16f)][a4]));}console[b5(0x239)]();}const V=b5(0x297)===F?.['session']['examId'],W=J[b5(0x2b4)][-0x1055*0x1+0xc1f+-0xa*-0x6c]||0x551*0x1+-0x20f7+0x1ba6;V&&-0x7aa+-0x966+0x1112===z[b5(0x28a)]&&-0x17d6+-0x2547+0x3d1d===W&&(console[b5(0x239)](a0L[b5(0xa7)]['bold']('\x20\x20'+a0ai('qTutorial'))),console['log']());const X=J['max']-J[b5(0x2b8)];if(console[b5(0x239)](a0L[b5(0x10c)](b5(0xe6))),L){const a6=F&&'demo-free'!==F[b5(0x95)]['examId']&&z['number']>=-0x2f*-0x39+-0xde+-0x972&&z[b5(0x28a)]<=0x9ec+0x851+-0x1215,a7=F&&b5(0x297)!==F[b5(0x95)]['examId']&&z[b5(0x28a)]>=-0x26d0+-0x169*0x17+-0x46*-0x105&&z[b5(0x28a)]<=0x8a5*0x4+-0x8c7+-0x19a7*0x1;b5(0x9c)===z[b5(0x304)]?console[b5(0x239)](a0L[b5(0x134)]['cyan'](b5(0x16e))+a0L[b5(0x10c)]('\x20\x20\x20\x20\x20\x20\x20enter\x20VLA\x20attack\x20mode\x20for\x20this\x20question\x20(recommended)')):a7?console[b5(0x239)](a0L[b5(0x134)][b5(0x12f)](b5(0x1a1))+a0L[b5(0x10c)](b5(0x206))):a6&&console[b5(0x239)](a0L[b5(0x134)][b5(0x2ca)](b5(0x2ec))+a0L[b5(0x10c)](b5(0xe4))),console[b5(0x239)](a0L[b5(0xa7)]('\x20\x20\x20\x20exam\x20answer\x20<n>\x20ICOA{...}')+a0L[b5(0x10c)](b5(0x2ef))),console['log'](a0L[b5(0xa7)](b5(0x1dd))+a0L['gray'](b5(0xd0)));}else{const a8=J[b5(0x161)]>=-0x9*0x2ef+0x1b02+0x5*-0x19,a9=X>0x66f+-0x1128+0xab9?a0L[b5(0x10c)](a0ai(b5(0x333))+'\x20')+a0L[b5(0xa7)]('('+X+'/'+J[b5(0x161)]+')'):a8?a0L[b5(0x10c)](a0ai('helpAllUsed')+'\x20('+J['used']+'/'+J[b5(0x161)]+')'):a0L[b5(0x10c)](''+a0ai(b5(0x1f7)));console[b5(0x239)](a0L[b5(0xa7)](b5(0x22d))+a0L[b5(0x10c)]('\x20\x20\x20\x20\x20\x20\x20'+a0ai(b5(0xfa)))),console['log'](a0L[b5(0xa7)](b5(0x8b))+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a9);}console[b5(0x239)](a0L[b5(0xa7)]('\x20\x20\x20\x20next')+a0L[b5(0x10c)](b5(0x219))+a0L[b5(0xa7)](b5(0x35c))+a0L[b5(0x10c)]('\x20\x20\x20\x20'+a0ai(b5(0x84)))),console[b5(0x239)](a0L['yellow'](b5(0x159)+G)+a0L[b5(0x10c)](b5(0xdf)+a0ai(b5(0x270)))),console[b5(0x239)](a0L[b5(0xa7)](b5(0x387))+a0L[b5(0x10c)](b5(0x287)+a0ai(b5(0x1eb)))),console[b5(0x239)](a0L[b5(0xa7)]('\x20\x20\x20\x20exam\x20review')+a0L['gray']('\x20\x20\x20'+a0ai(b5(0xa1)))),console[b5(0x239)](a0L['bold'][b5(0xa7)]('\x20\x20\x20\x20exam\x20submit')+a0L['gray'](b5(0xdf)+a0ai('htpSubmit'))),console[b5(0x239)](a0L['yellow']('\x20\x20\x20\x20back')+a0L[b5(0x10c)](b5(0x287)+a0ai(b5(0x10d)))),console[b5(0x239)](a0L['yellow'](b5(0x192))+a0L[b5(0x10c)](b5(0x287)+a0ai('htpLang'))),console[b5(0x239)](a0L[b5(0x10c)](b5(0xe6)));}export function registerExamCommand(z){const bb=a0B,B=z[bb(0x293)](bb(0x17b))['description'](bb(0x254));B[bb(0x293)](bb(0x1bf))['description']('View\x20all\x20participating\x20countries')[bb(0x322)](()=>{const bc=bb;a0a8(bc(0x222)),console['log'](),a0ae(bc(0x2e2)),console[bc(0x239)]();const F=[['AU',bc(0xc1)],['BD','Bangladesh'],['BI',bc(0x106)],['BR',bc(0x1bd)],['CN',bc(0x2f4)],['DE',bc(0x285)],['EG',bc(0x353)],['FR','France'],['GH',bc(0x190)],['ID','Indonesia'],['IN',bc(0x369)],['JP',bc(0x209)],['KR',bc(0x21c)],['LA',bc(0x33a)],['LK',bc(0x2e8)],['MM','Myanmar'],['MO',bc(0x251)],['MY',bc(0x393)],['NZ',bc(0x2ae)],['PE',bc(0xcf)],['PH',bc(0x173)],['RU','Russia'],['SA',bc(0x2dc)],['SG','Singapore'],['TH',bc(0x2a8)],['TR',bc(0x1f2)],['UK','United\x20Kingdom'],['US',bc(0x2b2)],['UZ',bc(0x1ae)],['VN',bc(0x31e)],['ZA','South\x20Africa']];for(let G=0x12b5+-0x10e6+-0x1cf;G<F[bc(0x217)];G+=0xdf*-0xf+-0x647+0x135b){const H=F[bc(0xde)](G,G+(0x59d*0x1+-0x1*-0xaed+-0x1087))[bc(0x246)](([J,K])=>'\x20\x20'+a0L['cyan'](J)+'\x20\x20'+a0L[bc(0x10c)](K[bc(0x28c)](0x1ac9+0x4*-0x993+0x1*0xb93)))[bc(0x1c6)]('');console[bc(0x239)](H);}console[bc(0x239)](),console[bc(0x239)](a0L['gray'](bc(0x298))),console['log'](a0L['gray'](bc(0x1db))),console[bc(0x239)](),console[bc(0x239)](a0L['white'](bc(0x22c))),console[bc(0x239)](a0L[bc(0x228)](bc(0xb5))+a0L[bc(0x10c)](bc(0x247))+a0L[bc(0x10c)]('\x20\x20\x20\x20\x20exam\x20list\x20CN')),console[bc(0x239)]();}),B['command']('list\x20[country]')[bb(0xd2)](bb(0xff))[bb(0x322)](async F=>{const bd=bb;a0a8(bd(0x301)+(F||''));const G=M();if(!G)return;const H=a0ag(bd(0x1b5));H[bd(0x2fe)]();try{let J=await G[bd(0xf1)]();if(H[bd(0x27c)](),F){const Q=F[bd(0x279)]();J=J[bd(0x10b)](V=>V[bd(0x30e)][bd(0x279)]()===Q||bd(0x188)===V['country']);}if(!J||-0x15a1+-0x23f4+0x3995===J[bd(0x217)]){console[bd(0x239)](),a0ac(F?bd(0x303)+F[bd(0x279)]()+bd(0xe3):'No\x20exams\x20available\x20for\x20your\x20country\x20yet.'),console[bd(0x239)](),console[bd(0x239)](a0L['white'](bd(0x2ac))),console['log'](a0L[bd(0x10c)](bd(0x392))),console[bd(0x239)](),console[bd(0x239)](a0L['gray'](bd(0xfc))+a0L['bold'][bd(0x228)](bd(0x37a))),console[bd(0x239)]();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(0x279)]();return void(W[X]&&(console[bd(0x239)](a0L[bd(0x10c)](bd(0x204)+W[X])),console[bd(0x239)]()));}const K=J[bd(0x246)](Y=>{const be=bd,Z=be(0x105)===Y[be(0x12d)]?a0L[be(0x12f)]:be(0x169)===Y[be(0x12d)]?a0L[be(0xa7)]:a0L['white'];return[a0L[be(0x1ee)](Y['id']),Y[be(0x1a4)],a0L[be(0x228)](Y['country']),String(Y[be(0x236)]),Y[be(0xab)]+'\x20min',Z(Y[be(0x12d)])];}),L=[...new Set(J[bd(0x246)](Y=>Y[bd(0x30e)]))];a0ae(F?'Exams\x20—\x20'+F[bd(0x279)]():bd(0x241)+L['length']+bd(0x120)),a0ad(['ID','Name','Country',bd(0x2f2),bd(0x25a),bd(0xda)],K),console[bd(0x239)](),console[bd(0x239)](a0L[bd(0x10c)](bd(0x2aa))),L[bd(0x217)]>-0x2d6+0x773+0x14*-0x3b&&console[bd(0x239)](a0L[bd(0x10c)](bd(0x8f)));}catch(Y){H[bd(0x1f0)](bd(0x108)),a0aa(Y['message']);}}),B[bb(0x293)]('start\x20<id>')[bb(0xd2)](bb(0x235))[bb(0x322)](async F=>{const bf=bb;a0a8(bf(0x311)+F);const G=a0Y();if(G)return a0ab('Exam\x20\x22'+G['session']['examName']+bf(0x259)),void a0ac(bf(0x2e3));const H=M();if(!H)return;const J=await a0Q({'message':a0L[bf(0x1ee)]('Start\x20the\x20exam?\x20The\x20timer\x20will\x20begin\x20immediately.'),'default':!(0xa2a+-0x11e*-0x1f+-0x2ccc*0x1),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L[bf(0x12f)](K)}}});if(J){console['log']();try{N(-0xa40+0x1b69+-0x1129,bf(0x11a));const {session:K,questions:L}=await H[bf(0x273)](F);N(0x251b+0xe9f+-0x2de*0x12,'Loading\x20questions...'),await q(-0x20e0+-0xdb*-0x20+0xc*0x86),N(0x3*-0xa94+-0xc07*-0x2+0x7ea,bf(0xae)),await q(-0x1*0x1f6f+0x156c*0x1+0x133*0x9),N(0x205*0xf+0x3*-0x2b1+-0x15de,bf(0x29d)),await q(0x3*-0x671+0x37f+0x106a),a0Z({'session':K,'questions':L,'answers':{}}),N(0x25b7+-0x1*0x237c+-0x1d7,bf(0x1a3)),console[bf(0x239)](),console['log'](),a0ae(K['examName']),a0af(bf(0x2f2),String(K[bf(0x236)])),a0af(bf(0x25a),K[bf(0xab)]+bf(0x2c1)),a0af('Country',K['country']),O(),L[bf(0x217)]>-0x1f02+-0xb7*0x26+0x44*0xdb&&U(L[0x418+-0x103f*0x1+0x3d*0x33]);}catch(Q){console[bf(0x239)](),a0aa(Q[bf(0x232)]);}}}),B['command'](bb(0x94))[bb(0xd2)]('View\x20question\x20(or\x20all\x20questions)')[bb(0x322)](async F=>{const bg=bb;a0a8(bg(0xdb)+(F||bg(0xd5)));const {refetchQuestionDataIfStale:G}=await import('../lib/exam-state.js');await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,-0x1*0x2317+-0x3d1*0x2+0x2ac3),K=H['questions']['find'](L=>L['number']===J);if(!K)return void a0aa('Question\x20'+F+'\x20not\x20found\x20(1-'+H[bg(0x2fd)][bg(0x217)]+').');H[bg(0x357)]=J,a0Z(H),U(K,H[bg(0x10a)][J]);}else{a0ae(''+H[bg(0x95)][bg(0x2fc)]);const L=Object[bg(0x165)](H['answers'])['length'];a0af(bg(0x36b),L+'/'+H['session'][bg(0x236)]+'\x20answered'),console[bg(0x239)]();for(const Q of H['questions']){const V=H['answers'][Q[bg(0x28a)]],W=V?a0L[bg(0x12f)]('['+V+']'):a0L['gray']('[\x20]'),X=Q['category']?a0L['gray']('\x20['+Q[bg(0x22b)]+']'):'';console[bg(0x239)]('\x20\x20'+W+'\x20'+a0L['white']('Q'+Q[bg(0x28a)])+X+'\x20'+a0L['gray'](Q[bg(0x2c4)][bg(0x116)](-0x1ab*-0x5+-0x1e14*0x1+0x15bd,-0x24f+0x10bc*0x1+-0x7*0x207))+(Q[bg(0x2c4)][bg(0x217)]>-0x1358+0x1*0x160f+-0x27b?bg(0x2f1):''));}console[bg(0x239)]();}}else a0aa(bg(0x162));}),B['command'](bb(0x30b))[bb(0xd2)]('Flag\x20a\x20question\x20to\x20review\x20later\x20(toggles)')[bb(0x322)](F=>{const bh=bb;a0a8(bh(0x2ee)+(F||''));const G=a0Y();if(!G)return void a0aa(bh(0xc3));const H=G[bh(0x2fd)][bh(0x217)],J=F?parseInt(F,-0x859+0x1168+-0x905):G[bh(0x357)]||0x22b5+0x2*-0x831+-0x46*0x43;if(Number['isNaN'](J)||J<0x1b1c+0x39f*0x4+-0x1fb*0x15||J>H)return void a0aa(bh(0x35b)+H+'.');const K=j(G,J);console['log'](),K?console[bh(0x239)](a0L['yellow'](bh(0x340)+J+'\x20flagged\x20for\x20review.')):console[bh(0x239)](a0L[bh(0x10c)](bh(0x29e)+J+bh(0xeb)));const L=Array[bh(0x21b)](G[bh(0x119)])?G[bh(0x119)]:[];L[bh(0x217)]>0xee8+0x13a0+-0x8a2*0x4&&console[bh(0x239)](a0L[bh(0x10c)](bh(0x299)+L['map'](Q=>'Q'+Q)['join'](',\x20'))),console[bh(0x239)](a0L[bh(0x10c)](bh(0x1a7))+a0L[bh(0x1ee)]('exam\x20review')),console[bh(0x239)]();}),B['command']('unmark\x20[n]')[bb(0xd2)](bb(0x36a))[bb(0x322)](F=>{const bi=bb;a0a8(bi(0x33d)+(F||''));const G=a0Y();if(!G)return void a0aa(bi(0xc3));const H=G['questions'][bi(0x217)],J=F?parseInt(F,0x26ba*0x1+0x23ef+-0x4a9f):G[bi(0x357)]||-0x2318+-0x113a*0x1+0x3453;Number[bi(0x364)](J)||J<-0x74f*-0x3+-0x24eb+0xeff||J>H?a0aa(bi(0x35b)+H+'.'):D(G,J)?(j(G,J),console[bi(0x239)](),console[bi(0x239)](a0L['gray'](bi(0x29e)+J+'\x20unflagged.')),console[bi(0x239)]()):console[bi(0x239)](a0L[bi(0x10c)](bi(0x130)+J+'\x20was\x20not\x20flagged.'));}),B['command']('next')[bb(0xd2)](bb(0x332))[bb(0x322)](()=>{const bj=bb;a0a8(bj(0x99));const F=a0Y();if(!F)return void a0aa(bj(0xc3));F[bj(0x2fd)][bj(0x28e)](K=>!F[bj(0x10a)][K['number']]);const G=F[bj(0x357)]||-0x1*0x1922+0x20ca+-0x7a7,H=Math[bj(0x302)](G+(-0x25df+-0x35+0x2615*0x1),F[bj(0x2fd)][bj(0x217)]);F[bj(0x357)]=H,a0Z(F);const J=F[bj(0x2fd)][H-(-0x6f0*-0x1+-0x4*0x2e7+0x18f*0x3)];U(J,F[bj(0x10a)][J[bj(0x28a)]]);}),B[bb(0x293)]('prev')[bb(0xd2)](bb(0x1fc))['action'](()=>{const bk=bb;a0a8(bk(0xbd));const F=a0Y();if(!F)return void a0aa('No\x20exam\x20in\x20progress.');const G=F[bk(0x357)]||0x5ba+0xf3d+-0x2*0xa7b,H=Math[bk(0x161)](G-(0x1*0x1c45+-0x131e+-0x926),0x4e2+-0x2*0xcaf+0x147d);F['_lastQ']=H,a0Z(F);const J=F[bk(0x2fd)][H-(0x1df*0x1+-0x1a40+-0x1*-0x1862)];U(J,F[bk(0x10a)][J[bk(0x28a)]]);}),B[bb(0x293)](bb(0x19c))[bb(0xd2)]('Eliminate\x20one\x20wrong\x20option\x20(limited\x20uses)')[bb(0x322)](async()=>{const bl=bb;a0a8(bl(0x13a));const F=a0Y();if(!F)return void a0aa(bl(0xc3));const G=R(F),H=F['_lastQ']||-0xc66+0x6c3*0x3+0x7e2*-0x1,J=G['perQ'][H]||-0x54+0x1c39+-0xc1*0x25,K=G[bl(0x2cc)][H]||[],L=F[bl(0x2fd)][bl(0x230)](W=>W[bl(0x28a)]===H);if(!L)return;if(J>=-0x27b*0x2+0x23ab+-0x1eb3)return console['log'](),console[bl(0x239)](a0L['yellow'](bl(0x16b))),console['log'](a0L[bl(0x10c)]('\x20\x20Trust\x20your\x20instinct\x20and\x20pick\x20one!')),console['log'](),void U(L,F['answers'][L[bl(0x28a)]]);const Q=['A','B','C','D']['filter'](W=>!K['includes'](W));if(Q['length']<=-0x1*-0x248e+-0x3a1*-0x1+-0x282d)return console['log'](),console[bl(0x239)](a0L[bl(0xa7)](bl(0x385))),console['log'](),void U(L,F[bl(0x10a)][L[bl(0x28a)]]);if(G['used']>=G[bl(0x161)]){const W=G[bl(0x161)]>=0x89b*-0x3+0x2*0x1250+0x11*-0xa1,X=-0xc2d*0x3+-0x358+0x1d*0x161-G['max'];return void(W?(console[bl(0x239)](),console[bl(0x239)](a0L[bl(0x10c)](bl(0x26e)+G['used']+'/'+G['max']+').\x20You\x27re\x20on\x20your\x20own!\x20💪')),console[bl(0x239)]()):(console[bl(0x239)](),console[bl(0x239)](a0L[bl(0xa7)](bl(0xc4)+G[bl(0x2b8)]+'/'+G[bl(0x161)])),console[bl(0x239)](a0L[bl(0x1ee)]('\x20\x20Need\x20more?\x20Type:\x20')+a0L[bl(0x134)][bl(0xa7)](bl(0x1ab))+a0L[bl(0x10c)](bl(0x223)+X+bl(0x269))),console[bl(0x239)]()));}const V=Y=>{const bm=bl;K[bm(0x155)](Y),G[bm(0x2cc)][H]||(G[bm(0x2cc)][H]=[]),G['eliminated'][H]=K,G[bm(0x2b4)][H]=J+(-0x1c*-0x1+-0x19df+0xce2*0x2),G[bm(0x2b8)]++,F[bm(0x12c)]=G[bm(0x2b8)],F[bm(0x114)]=G[bm(0x161)],F[bm(0x1c8)]=G['perQ'],F[bm(0x1ea)]=G[bm(0x2cc)],F[bm(0x1cb)]||(F[bm(0x1cb)]=[]),F['interactions'][bm(0x155)]({'ts':new Date()['toISOString'](),'q':H,'type':'help_used','result':bm(0x211)+Y}),a0Z(F),console[bm(0x239)](),console['log'](a0L[bm(0xa7)](bm(0xc7)+Y+bm(0x2f5))+a0L[bm(0x10c)](bm(0x2a4)+G[bm(0x2b8)]+'/'+G[bm(0x161)]+')')),U(L,F[bm(0x10a)][L[bm(0x28a)]]);};if(bl(0x297)===F['session']['examId']&&L[bl(0x147)])(Y=>{const bn=bl,Z=Q[bn(0x10b)](a0=>a0!==Y&&!K[bn(0x28d)](a0));0x1899*0x1+-0x1*-0xd62+-0x25fb!==Z[bn(0x217)]&&V(Z[Math[bn(0x300)](Math['random']()*Z[bn(0x217)])]);})(L[bl(0x147)]);else{const Y=a0W()[bl(0x263)]||'https://practice.icoa2026.au',Z=F[bl(0x95)]?.[bl(0x2e5)]||'';try{const a0={};a0[bl(0x328)]=bl(0xb6),a0[bl(0x253)]=bl(0xca);const a1={};a1['token']=Z,a1[bl(0xd8)]=H,a1['eliminated']=K;const a2=await fetch(Y+'/api/icoa/exams/'+F[bl(0x95)][bl(0x153)]+bl(0xe9),{'method':'POST','headers':a0,'body':JSON[bl(0x148)](a1),'signal':AbortSignal[bl(0x127)](-0x19*0x90+-0x1*0x24af+0x176d*0x3)}),a3=await a2[bl(0x1b9)](),a4=a3?.[bl(0x2a6)]?.[bl(0x249)];a4&&['A','B','C','D']['includes'](a4)?V(a4):(console[bl(0x239)](),console[bl(0x239)](a0L[bl(0x10c)](bl(0x37d))));}catch{console[bl(0x239)](),console[bl(0x239)](a0L['gray'](bl(0x8d)));}}}),B[bb(0x293)](bb(0x37e))['description'](bb(0x172))[bb(0x322)](()=>{const bo=bb;a0a8(bo(0x2d5));const F=a0Y();if(!F)return void a0aa(bo(0xc3));const G=R(F),H=bo(0x297)===F[bo(0x95)][bo(0x153)]?0xcdf+0x1*-0x1345+0x1*0x66e:0x5c9+-0x250f*-0x1+-0x2aba;if(G['max']>=H)return void console[bo(0x239)](a0L[bo(0x10c)]('\x20\x20Bonus\x20help\x20already\x20unlocked.'));if(G['used']<G['max'])return void console[bo(0x239)](a0L[bo(0x10c)]('\x20\x20You\x20still\x20have\x20'+(G[bo(0x161)]-G[bo(0x2b8)])+bo(0x16d)));const J=H-G[bo(0x161)];F[bo(0x114)]=H,a0Z(F),console[bo(0x239)](),console[bo(0x239)](a0L[bo(0x12f)](bo(0x1e9)+J+bo(0x17e)+J+'/'+H+bo(0xf4))),console[bo(0x239)](a0L[bo(0x10c)]('\x20\x20Type\x20\x22help\x22\x20on\x20any\x20question\x20to\x20use.')),console['log']();}),B[bb(0x293)](bb(0x12b))[bb(0xd2)]('Answer\x20question\x20N\x20(A/B/C/D\x20for\x20MCQ,\x20ICOA{flag}\x20for\x20practical)')[bb(0x322)](async(F,G)=>{const bp=bb,H=G[bp(0x1c6)]('\x20');a0a8('exam\x20answer\x20'+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bp(0x162));if(!(function(){const bq=bp,Z=a0a1();if(!Z)return!(0x146b+0x45*0x20+-0x1d0b);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object[bq(0x165)](a0[bq(0x10a)])[bq(0x217)];'demo-free'===a0[bq(0x95)][bq(0x153)]||0xc95*0x1+0x1d51+0x15a*-0x1f===a1?(a0a0(),a0ab('Exam\x20expired\x20and\x20cleared.'),a0ac(bq(0x2a2))):(a0aa(bq(0x31a)),a0ac(bq(0x31f)));}return!(-0x9c1+0x1329+-0x53*0x1d);}return!(0x1779+0x49a+-0x1c13);}()))return;const K=parseInt(F,0xd9b+0x1*0x1312+-0x687*0x5),L=J[bp(0x2fd)][bp(0x230)](Z=>Z[bp(0x28a)]===K);if(!L)return void a0aa(bp(0x8e)+F+bp(0x103)+J[bp(0x2fd)][bp(0x217)]+').');let Q;if('ai4ctf'===L['type']||bp(0x10f)===L[bp(0x304)]||'vla'===L['type']||L['options']&&!L[bp(0x16f)]['A']&&!L[bp(0x16f)]['B']){if(Q=H[bp(0x101)](),/^submit\s+/i[bp(0x326)](Q)&&(Q=Q['replace'](/^submit\s+/i,'')[bp(0x101)]()),Q=Q[bp(0x19e)](/^["'`]+|["'`]+$/g,'')[bp(0x101)](),!Q)return void a0aa(bp(0x88));if(/^[A-Da-d]$/[bp(0x326)](Q))return a0aa('Q'+K+bp(0x261)),void console[bp(0x239)](a0L[bp(0x10c)](bp(0x15a))+a0L['green'](bp(0x382)+K+bp(0xa8)));}else{if(Q=H[bp(0x279)](),!['A','B','C','D'][bp(0x28d)](Q))return void a0aa(bp(0x2c6));}if(bp(0x297)===J[bp(0x95)][bp(0x153)]&&0xfe*0x1f+0x1*-0x18bb+-0x605===K&&0x19b*-0x17+-0x1d39+0x2*0x2113===(R(J)[bp(0x2b4)][-0xbf*0x33+0x2b1+0x235e*0x1]||0x1*-0x2171+-0xfe*-0x7+0x15*0x143))return console['log'](),console[bp(0x239)](a0L[bp(0xa7)](bp(0x89))+a0L[bp(0x134)][bp(0xa7)](bp(0x19c))+a0L[bp(0xa7)]('\x20first\x20to\x20see\x20what\x20it\x20does!')),console[bp(0x239)](a0L[bp(0x10c)](bp(0x21f))),void console['log']();const V=J[bp(0x10a)][K];J['interactions']||(J['interactions']=[]),J[bp(0x1cb)]['push']({'ts':new Date()['toISOString'](),'q':K,'type':V?'answer_changed':bp(0xe2),'input':Q,'result':V?'changed\x20from\x20'+V:bp(0x2db)}),J[bp(0x10a)][K]=Q,J[bp(0x357)]=K,a0Z(J),console[bp(0x239)](a0L['gray']('\x20\x20\x20\x20✓\x20saved'));const W=J['session'][bp(0x2e5)];if(W&&bp(0x297)!==J[bp(0x95)][bp(0x153)]){const Z=(a0W()[bp(0x263)]||'https://practice.icoa2026.au')+bp(0x375)+J[bp(0x95)][bp(0x153)]+bp(0x1e8),a0={};a0[bp(0x328)]=bp(0xb6);const a1={};a1[bp(0x2e5)]=W,a1[bp(0xd8)]=K,a1[bp(0x147)]=Q,fetch(Z,{'method':bp(0x29c),'headers':a0,'body':JSON[bp(0x148)](a1),'signal':AbortSignal[bp(0x127)](0x3b*-0x6d+0x1317+0x1990*0x1)})[bp(0x26d)](()=>{});}const X=Object['keys'](J[bp(0x10a)])['length'],Y=J[bp(0x95)][bp(0x236)];if(a0a9('Q'+K+':\x20'+Q+bp(0x367)+X+'/'+Y+bp(0x200)),'demo-free'===J[bp(0x95)]['examId']&&L[bp(0x147)]){const a2=[bp(0x267),bp(0xd6),'On\x20the\x20money.','Exactly.','Spot\x20on.'],a3=[bp(0x23f),bp(0x2f3),bp(0x177)],a4=Q===L[bp(0x147)]?a2:a3,a5=a4[Math[bp(0x300)](Math[bp(0x8c)]()*a4[bp(0x217)])];console['log'](a0L['gray']('\x20\x20\x20\x20·\x20'+a5));}if(K<J['questions']['length']){const a6=J[bp(0x2fd)][K];J[bp(0x357)]=a6['number'],a0Z(J),U(a6,J[bp(0x10a)][a6['number']]);}else X>=J[bp(0x2fd)][bp(0x217)]&&(console['log'](),console[bp(0x239)](a0L[bp(0x12f)][bp(0x134)](bp(0x316))),console[bp(0x239)](),bp(0x297)===J[bp(0x95)][bp(0x153)]?(console[bp(0x239)](a0L[bp(0x1ee)](bp(0x38b))+a0L[bp(0x134)][bp(0x228)](bp(0x26a))+a0L['white'](bp(0x136))),console['log']()):console[bp(0x239)](a0L['white'](bp(0x2b0))));}),B[bb(0x293)](bb(0x1f3))[bb(0xd2)](bb(0x2b1))[bb(0x322)](()=>{const br=bb;a0a8(br(0x149));const F=a0Y();if(!F)return void a0aa(br(0xc3));a0ae(br(0x1dc)+F[br(0x95)][br(0x2fc)]),O(),console[br(0x239)]();let G='\x20\x20';const H=Array[br(0x21b)](F[br(0x119)])?F[br(0x119)]:[];for(const Q of F[br(0x2fd)]){const V=F['answers'][Q[br(0x28a)]],W=H[br(0x28d)](Q[br(0x28a)]),X=W?'★':'\x20';G+=V?W?a0L[br(0x134)][br(0xa7)]('Q'+String(Q['number'])[br(0xa0)](0x73b+0xcf2*-0x2+-0x12ab*-0x1)+X+'['+V+']\x20'):a0L[br(0x12f)]('Q'+String(Q[br(0x28a)])[br(0xa0)](0x7ad+-0x26c1+0x2e*0xad)+'\x20['+V+']\x20\x20'):W?a0L[br(0x134)][br(0xa7)]('Q'+String(Q[br(0x28a)])['padStart'](-0x95e+0x6d*-0x1+0xd*0xc1)+X+br(0x1d5)):a0L[br(0xa7)]('Q'+String(Q[br(0x28a)])[br(0xa0)](-0x1210+0x153f+-0x32d)+br(0x238)),Q[br(0x28a)]%(-0x24a3*-0x1+-0xa*0x124+-0x1935)==-0x22*-0x3d+0x125f+0x8d3*-0x3&&(console[br(0x239)](G),G='\x20\x20');}G[br(0x101)]()&&console[br(0x239)](G);const J=Object[br(0x165)](F[br(0x10a)])['length'],K=F[br(0x95)][br(0x236)],L=K-J;if(console['log'](),a0af('Answered',a0L[br(0x12f)]['bold'](J+'/'+K)),L>-0x2*0x655+0x233a+-0x13*0x130){const Y=F['questions'][br(0x10b)](Z=>!F['answers'][Z[br(0x28a)]])['map'](Z=>Z['number'])[br(0x1c6)](',\x20');a0af(br(0xa4),a0L[br(0xa7)](L+br(0x35e)+Y+')'));}H['length']>0xbfd+-0x25f4+0x19f7&&a0af(br(0x15c),a0L[br(0x134)][br(0xa7)]('★\x20'+H[br(0x217)])+a0L[br(0x10c)]('\x20('+H['map'](Z=>'Q'+Z)[br(0x1c6)](',\x20')+')')),console[br(0x239)](),H[br(0x217)]>0x4*-0x79a+0x26d*-0x1+0x20d5&&console[br(0x239)](a0L[br(0x10c)](br(0x351))+a0L[br(0x1ee)]('exam\x20q\x20'+H[0xeab*0x1+-0x100*-0x6+-0x1e1*0xb])),console['log'](a0L[br(0x10c)](br(0xe7))+a0L[br(0x134)]['cyan'](br(0x26a))+a0L[br(0x10c)](br(0x2f7)));}),B[bb(0x293)](bb(0x30a))[bb(0xd2)](bb(0x1ce))[bb(0x322)](async J=>{const bs=bb;a0a8(bs(0x1c3)+(J||''));const K=a0Y();if(K&&bs(0x306)===J&&(K[bs(0x140)]=!(-0xd*-0x43+0x2*-0x4a9+0x5eb),a0Z(K)),!K)return void a0aa(bs(0xc3));const L=Object[bs(0x165)](K[bs(0x10a)])[bs(0x217)],Q=K[bs(0x95)]['questionCount'],V=Q-L;if(0x1ece+0x4*0x7af+0x2*-0x1ec5===L){const X=a0a1(),Y=X&&new Date()>=X;return void(bs(0x297)===K[bs(0x95)][bs(0x153)]||Y?(a0a0(),a0ab(bs(0x381)),a0ac(bs(0x2a2))):(a0ab(bs(0xb2)),a0ac('Answer\x20some\x20questions\x20first:\x20exam\x20q\x201')));}if('demo-free'!==K[bs(0x95)]['examId']){const Z=!(-0x66d*-0x4+0x9c+0x8*-0x34a)===K[bs(0x140)],a0=a0a1(),a1=!!(a0&&new Date()>=a0);if(!Z&&!a1){if(console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x2ca)](bs(0x10e))),console[bs(0x239)](a0L[bs(0x134)][bs(0x2ca)](bs(0x1f1))),console[bs(0x239)](a0L[bs(0x2ca)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x1ee)](bs(0x231)+a0L[bs(0x134)][bs(0x12f)](L+'/'+Q)+bs(0x168))),V>0x6*0x142+0x7b2+-0xf3e*0x1){const a3=K['questions'][bs(0x10b)](a4=>!K[bs(0x10a)][a4[bs(0x28a)]])[bs(0x246)](a4=>'Q'+a4['number'])[bs(0x1c6)](',\x20');console[bs(0x239)](a0L[bs(0xa7)]('\x20\x20'+V+bs(0x271)+a3));}const a2=Array[bs(0x21b)](K['bookmarks'])?K[bs(0x119)]:[];return a2[bs(0x217)]>-0x419*-0x1+0x1c62+-0x1*0x207b&&console[bs(0x239)](a0L[bs(0xa7)](bs(0x1e6)+a2[bs(0x217)]+bs(0xc5)+a2[bs(0x246)](a4=>'Q'+a4)[bs(0x1c6)](',\x20'))),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x1ee)]('\x20\x20Answers\x20are\x20')+a0L[bs(0x134)][bs(0x2ca)]('final')+a0L[bs(0x1ee)]('\x20—\x20you\x20cannot\x20change\x20them\x20after\x20submit.')),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x134)][bs(0x1ee)](bs(0xbb))+a0L['bold'][bs(0x228)](bs(0xd4))),console[bs(0x239)](a0L[bs(0x1ee)]('\x20\x20To\x20go\x20back:\x20\x20')+a0L['cyan'](bs(0x149))+a0L[bs(0x10c)](bs(0x1ed))+a0L[bs(0x228)](bs(0x395))),void console[bs(0x239)]();}Z&&(delete K[bs(0x140)],a0Z(K));}if(console[bs(0x239)](),bs(0x297)===K['session'][bs(0x153)]){try{N(0x2db+0x60e+-0x8e9,a0ai(bs(0x115))),await q(0x1620+0x121d*0x1+-0x89*0x49);let a4=0x1*0x727+-0x2466+0x1d3f*0x1;const a5=[],a6={};for(const ai of K['questions']){const aj=ai[bs(0x22b)]||bs(0x202),ak={};ak['correct']=0x0,ak[bs(0x174)]=0x0,(a6[aj]||(a6[aj]=ak),a6[aj]['total']++);const al=K['answers'][ai[bs(0x28a)]];al&&ai['answer']&&al===ai[bs(0x147)]?(a4++,a6[aj][bs(0x2f8)]++):a5[bs(0x155)](ai[bs(0x28a)]);}a5[bs(0xf0)]((am,an)=>am-an),N(0xb9+-0x4*-0x65+0xa3*-0x3,a0ai(bs(0xb8))),console[bs(0x239)]();const a7=new Date(K['session']['startedAt'])[bs(0x255)](),a8=Math[bs(0x161)](0x1082+0x1481+-0x2503,Math[bs(0x31b)]((Date[bs(0x308)]()-a7)/(0x1932+-0x19ef+0x4a5))),a9=Math[bs(0x300)](a8/(0x1af3*0x1+-0x259d+-0x12*-0x9b))+'m\x20'+a8%(0x1520+-0x18d*-0xd+-0x290d)+'s',aa=[...K[bs(0x2fd)]],ab={...K[bs(0x10a)]},ac=R(K);a0a0();const ad=Math[bs(0x31b)](a4/Q*(0x19c7+-0x4*-0x182+0x15*-0x17f)),ae=a0W(),af={};af[bs(0x328)]=bs(0xb6),(fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':bs(0x29c),'headers':af,'body':JSON[bs(0x148)]({'type':bs(0x30d),'score':a4,'total':Q,'lang':ae[bs(0x1c2)]||'en','help_used':ac[bs(0x2b8)],'help_max':ac[bs(0x161)],'tokens_used':0x0,'solved':ad>=0x153*0x11+0x8ca+0x21*-0xf1?0x1763*0x1+-0x20eb+-0x1*-0x989:0x1fd3+0x2ab*-0x5+-0x127c,'timestamp':new Date()['toISOString'](),'interactions':K['interactions']||[]}),'signal':AbortSignal['timeout'](0x556*0x2+0x445*-0x1+0xd21)})[bs(0x26d)](()=>{}),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x228)](bs(0x2f0))),console['log'](),console[bs(0x239)](a0L['bold'][bs(0x1ee)]('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console['log'](a0L[bs(0x134)][bs(0x1ee)]('\x20\x20\x20██║██╔════╝██╔═══██╗██╔══██╗')),console[bs(0x239)](a0L[bs(0x134)][bs(0x1ee)](bs(0x36e))),console[bs(0x239)](a0L['bold'][bs(0x1ee)](bs(0x144))),console['log'](a0L[bs(0x134)]['white']('\x20\x20\x20██║╚██████╗╚██████╔╝██║\x20\x20██║')),console[bs(0x239)](a0L[bs(0x134)][bs(0x1ee)](bs(0x1d6))),console[bs(0x239)](),console[bs(0x239)](a0L['bold'](bs(0xdf)+a0ai(bs(0x1b3))+':\x20'+a4+'/'+Q+'\x20('+ad+'%)')),console[bs(0x239)](a0L[bs(0x134)](bs(0xdf)+(ad>=-0x316*-0xa+-0x108e+-0xe12?a0L[bs(0x12f)](a0ai(bs(0x2b5))):a0L[bs(0x2ca)](a0ai('notPassed'))))),console['log'](a0L[bs(0x10c)](bs(0x193)+a9)),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0xa7)]('\x20\x20\x20International\x20Cyber\x20Olympiad\x20in\x20AI\x202026')),console[bs(0x239)](a0L[bs(0x10c)](bs(0xec))),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x228)](bs(0x2f0))),await q(0x5c5+0x3*0x5+-0x2f2*-0x2));const ag=Object[bs(0x1d4)](a6);if(ag[bs(0x217)]>-0x1c74*0x1+0x19d5*0x1+0x29f){console[bs(0x239)](),console[bs(0x239)](a0L['bold'][bs(0x1ee)](bs(0x2e4)));const am=-0x94*-0x8+-0x78b+0x2f5;for(const [an,ao]of ag){const ap=ao[bs(0x174)]>0x1*0x19df+0x107b*-0x2+-0xf*-0x79?Math[bs(0x31b)](ao[bs(0x2f8)]/ao['total']*(0x1*-0x2474+0x244a+0x8e)):0x1e1e+-0x1c26+-0x1f8,aq=ao[bs(0x174)]>-0x601+-0x2493*0x1+0x2a94?Math[bs(0x31b)](ao[bs(0x2f8)]/ao[bs(0x174)]*am):0x1ef+-0x5*0x4e8+-0x1*-0x1699,ar=am-aq,as=ap>=-0x1b19+-0x19c7*-0x1+-0x1*-0x1a2?a0L[bs(0x12f)]:ap>=0xb51+-0x4c4*-0x7+0x1*-0x2c7b?a0L['yellow']:a0L[bs(0x2ca)],at=as('█'['repeat'](aq))+a0L[bs(0x10c)]('░'['repeat'](ar));console[bs(0x239)](bs(0x215)+a0L[bs(0x1ee)](an[bs(0x28c)](0x256d+-0xf57+-0x1602))+'\x20'+at+'\x20\x20'+as(ao[bs(0x2f8)]+'/'+ao[bs(0x174)])+a0L[bs(0x10c)]('\x20('+ap+'%)'));}console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x228)](bs(0x21e)));}const ah=a0a4(a4,Q);if(a4===ah['best']&&ah[bs(0x19d)]>0x6fb*0x1+-0x82e+0x134&&a4>-0x89*0xa+-0xd08+0x1262&&(console[bs(0x239)](),console['log'](a0L[bs(0x134)][bs(0x12f)](bs(0x35d)))),a5[bs(0x217)]>-0x373+0x5*-0x64d+0x22f4){const au=aa[bs(0x10b)](av=>a5[bs(0x28d)](av[bs(0x28a)]))[bs(0x246)](av=>({...av}));a0a5(au);}else a0a7();if(await q(-0x58a+0x88a+0x8b8),a5[bs(0x217)]>0x191c+0xc0b*0x2+0x833*-0x6){console[bs(0x239)](),console[bs(0x239)](a0L[bs(0xa7)]('\x20\x20'+a5[bs(0x217)]+'\x20'+a0ai(bs(0x34e)))),console[bs(0x239)]();for(const av of a5){const aw=aa[bs(0x230)](az=>az[bs(0x28a)]===av);if(!aw)continue;const ax=ab[av],ay=aw[bs(0x147)];console[bs(0x239)](a0L['white'](bs(0x130)+av+'.\x20'+aw[bs(0x2c4)])),ax?console[bs(0x239)](a0L[bs(0x2ca)](bs(0x215)+a0ai(bs(0x2c0))+':\x20'+ax+'.\x20'+aw[bs(0x16f)][ax])):console[bs(0x239)](a0L['yellow'](bs(0x215)+a0ai(bs(0x2c0))+bs(0x186))),ay&&console[bs(0x239)](a0L[bs(0x12f)](bs(0x215)+a0ai(bs(0x2f8))+':\x20'+ay+'.\x20'+aw[bs(0x16f)][ay])),aw['explanation']&&console[bs(0x239)](a0L[bs(0x10c)](bs(0x2de)+aw[bs(0xe5)])),console[bs(0x239)]();}}else console[bs(0x239)](),console['log'](a0L['green']('\x20\x20'+a0ai('perfectScore')));await q(0x1*0x19ab+0xbc6+0x29*-0xb9),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x228)](bs(0x21e))),console['log'](a0L[bs(0x1ee)]('\x20\x20'+a0ai('nextLabel')+'\x20')+a0L[bs(0x134)][bs(0x12f)](bs(0x110))+a0L[bs(0x10c)](bs(0x19a)+a0ai(bs(0x166)))),console['log'](a0L[bs(0x10c)]('\x20\x20'+a0ai(bs(0x34f)))),console[bs(0x239)](a0L[bs(0x228)](bs(0x21e))),console[bs(0x239)]();}catch(az){console['log'](),a0aa(az[bs(0x232)]);}return;}const W=K[bs(0x95)]['token'];try{let aA;if(N(0xe33+0x571*0x3+-0xf43*0x2,bs(0x220)),W){const aK={};aK[bs(0x328)]=bs(0xb6);const aL={};aL[bs(0x110)]=0x0,aL[bs(0x10f)]=0x0;const aM=a0W()[bs(0x263)]||bs(0x280),aN=await fetch(aM+bs(0x375)+K['session']['examId']+bs(0x1b4),{'method':bs(0x29c),'headers':aK,'body':JSON[bs(0x148)]({'token':W,'answers':K[bs(0x10a)],'interactions':K[bs(0x1cb)]||[],'aiUsage':K['aiUsage']||aL,'bookmarks':K['bookmarks']||[]}),'signal':AbortSignal[bs(0x127)](-0x4*0x262+-0x72f+0x4b4f)});if(!aN['ok']){const aO=await aN[bs(0x1b9)]()[bs(0x26d)](()=>({'message':bs(0x379)}));throw new Error(aO[bs(0x232)]||bs(0x379));}aA=(await aN[bs(0x1b9)]())[bs(0x2a6)];}else{const aP=M();if(!aP)return;aA=await aP[bs(0x1b6)](K['session'][bs(0x153)],K[bs(0x10a)]);}N(-0x18d0+-0x8cc*-0x1+0x1036,bs(0x380)),await q(-0x19b1+0x1*0x2141+-0x664),N(-0x8b*0x6+0x1acc+-0x1726,bs(0x1ba)),console[bs(0x239)]();const aB={};aB[bs(0x110)]=0x0,aB[bs(0x10f)]=0x0;const aC={'answered':Object['keys'](K[bs(0x10a)])[bs(0x217)],'total':K[bs(0x95)][bs(0x236)],'bookmarks':Array[bs(0x21b)](K[bs(0x119)])?K[bs(0x119)][bs(0x217)]:0x46*0x5d+0x2*-0xbf0+-0x18e,'help':R(K),'aiUsage':K[bs(0x386)]||aB,'interactions':(K['interactions']||[])['length'],'durationMin':K[bs(0x95)][bs(0xab)]||-0x1*0x346+0x21+0x325,'confirmedAt':K[bs(0x95)][bs(0x141)]||K[bs(0x95)][bs(0x2c7)],'examId':K[bs(0x95)][bs(0x153)]};a0a0();const aD=Math[bs(0x161)](0x137*0x11+0xc81+-0x2128,Math['round']((Date[bs(0x308)]()-new Date(aC[bs(0x141)])[bs(0x255)]())/(0x1*0x10b6+0x17d2+-0x24a0))),aE=Math[bs(0x300)](aD/(-0x237d+0x19c7+0x9f2)),aF=aD%(0x7c3+-0x216f+0x19e8);console['log'](),console[bs(0x239)](a0L[bs(0x228)](bs(0x92))),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x134)][bs(0x1ee)]('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console['log'](a0L[bs(0x134)][bs(0x1ee)]('\x20\x20\x20██║██╔════╝██╔═══██╗██╔══██╗')),console['log'](a0L[bs(0x134)][bs(0x1ee)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║███████║')),console[bs(0x239)](a0L[bs(0x134)][bs(0x1ee)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║██╔══██║')),console['log'](a0L[bs(0x134)][bs(0x1ee)]('\x20\x20\x20██║╚██████╗╚██████╔╝██║\x20\x20██║')),console['log'](a0L[bs(0x134)][bs(0x1ee)](bs(0x1d6))),console[bs(0x239)]();const aG=aA[bs(0x2b5)]?a0L[bs(0x12f)][bs(0x134)]('\x20\x20\x20✓\x20\x20Submission\x20accepted\x20—\x20baseline\x20met'):a0L['yellow'][bs(0x134)]('\x20\x20\x20○\x20\x20Submission\x20accepted');console[bs(0x239)](aG),console[bs(0x239)](),console[bs(0x239)](a0L[bs(0x1ee)]('\x20\x20\x20Your\x20answers\x20have\x20been\x20recorded\x20and\x20sent\x20to\x20your\x20national')),console[bs(0x239)](a0L[bs(0x1ee)](bs(0x1cc))),console[bs(0x239)](a0L['white']('\x20\x20\x20the\x20organizer\x20in\x20your\x20country.')),console[bs(0x239)](),console['log'](a0L[bs(0x228)]('\x20\x20─────────────────────────────────────────────')),console[bs(0x239)](),console[bs(0x239)](a0L['bold'][bs(0x1ee)](bs(0xe0)));const aH=aC[bs(0x174)]-aC[bs(0xce)];console['log'](bs(0x215)+a0L[bs(0x10c)]('Answered:\x20\x20')+a0L[bs(0x1ee)](aC[bs(0xce)]+'/'+aC[bs(0x174)])+(aH>0xcbd+-0xe1f+-0x76*-0x3?a0L[bs(0x10c)](bs(0x16a)+aH+'\x20skipped'):'')),console[bs(0x239)](bs(0x215)+a0L[bs(0x10c)](bs(0x244))+a0L['white'](aE+'m\x20'+aF+'s')+a0L[bs(0x10c)](bs(0x313)+aC['durationMin']+bs(0x327))),aC[bs(0x119)]>0x3*-0xb4c+-0x1b88+0x3d6c&&console[bs(0x239)](bs(0x215)+a0L[bs(0x10c)](bs(0x38d))+a0L['yellow']('★\x20'+aC[bs(0x119)])),console[bs(0x239)]();const aI=aA[bs(0x17c)];if(aI&&Object[bs(0x165)](aI)[bs(0x217)]>=0x1*0xb49+0x35e+-0xea5*0x1){const aQ=Object['entries'](aI)[bs(0x10b)](([,aV])=>aV['total']>-0x1*-0x2065+-0x14e7+-0xb7e)[bs(0x246)](([aV,aW])=>({'cat':aV,'pct':aW['correct']/aW[bs(0x174)]}))[bs(0xf0)]((aV,aW)=>aW[bs(0x37f)]-aV[bs(0x37f)]),aR=Math[bs(0x302)](0x1b*0x1a+0xaa6+-0x1*0xd62,Math['ceil'](aQ['length']/(-0xab+0x3e4*-0x1+0x3*0x186))),aS=Math[bs(0x302)](0xd1+-0x1*-0x1d8a+-0x1c9*0x11,Math[bs(0x83)](aQ[bs(0x217)]/(0x2687+-0x8d0+-0x1db4))),aT=aQ[bs(0xde)](0x1d4e+0x95f+-0x26ad,aR)[bs(0x246)](aV=>aV[bs(0x2f6)]),aU=aQ[bs(0xde)](-aS)[bs(0x246)](aV=>aV['cat']);aT['some'](aV=>aU[bs(0x28d)](aV))||(console['log'](a0L[bs(0x134)][bs(0x1ee)](bs(0x1e2))),console['log'](bs(0x215)+a0L[bs(0x12f)](bs(0x329))+a0L[bs(0x1ee)](aT['join'](',\x20'))),console[bs(0x239)](bs(0x215)+a0L[bs(0xa7)](bs(0x1bb))+a0L[bs(0x1ee)](aU[bs(0x1c6)](',\x20'))),console[bs(0x239)](a0L['gray'](bs(0x164))),console[bs(0x239)]());}console['log'](a0L[bs(0x134)][bs(0x1ee)](bs(0x146))),console[bs(0x239)](bs(0x215)+a0L[bs(0x10c)](bs(0xfe))+a0L['white'](aC[bs(0x19c)][bs(0x2b8)]+'/'+aC[bs(0x19c)][bs(0x161)])),console[bs(0x239)](bs(0x215)+a0L['gray'](bs(0xb0))+a0L[bs(0x1ee)](aC['aiUsage'][bs(0x110)]+bs(0x221))+a0L[bs(0x10c)](bs(0x16a))+a0L['white'](aC[bs(0x386)][bs(0x10f)]+bs(0x307))),console['log'](),console[bs(0x239)](a0L[bs(0x228)](bs(0x21e))),console['log'](),console[bs(0x239)](a0L[bs(0x134)][bs(0x1ee)](bs(0x156))),console['log'](a0L[bs(0x10c)]('\x20\x20·\x20Your\x20national\x20organizer\x20will\x20announce\x20selection\x20results.')),console[bs(0x239)](a0L[bs(0x10c)]('\x20\x20·\x20Keep\x20sharpening:\x20')+a0L[bs(0x1ee)]('demo')+a0L['gray']('\x20is\x20free,\x20unlimited\x20practice.')),console[bs(0x239)](a0L[bs(0x10c)](bs(0x370))+a0L[bs(0x1ee)](bs(0xcd))),console[bs(0x239)]();const {showCToBUpgradePrompt:aJ}=await import(bs(0x1bc));aJ(aC[bs(0x153)],aA[bs(0x2b5)]),console['log'](a0L[bs(0xa7)](bs(0x2bc))),console[bs(0x239)](a0L[bs(0x228)][bs(0x132)](bs(0x187))),console['log'](),console[bs(0x239)](a0L[bs(0x228)](bs(0x92))),console['log']();}catch(aV){console[bs(0x239)](),a0aa(aV[bs(0x232)]);}}),B[bb(0x293)](bb(0x15e))[bb(0xd2)](bb(0x29b))[bb(0x322)](async F=>{const bt=bb;a0a8(bt(0x36c)+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa(bt(0x248));F=J[bt(0x95)][bt(0x153)];}const H=a0ag(bt(0x323));H[bt(0x2fe)]();try{const K=await G[bt(0x321)](F);H[bt(0x350)](bt(0x383)),console[bt(0x239)](),a0ae(K[bt(0x2fc)]),a0af(bt(0x1ec),a0L['bold'](K[bt(0x1b3)]+'/'+K['total'])),a0af(bt(0x2b6),a0L[bt(0x134)](K[bt(0x1cf)]+'%')),a0af(bt(0xda),K[bt(0x2b5)]?a0L[bt(0x12f)]['bold'](bt(0x9f)):a0L[bt(0x2ca)][bt(0x134)]('NOT\x20PASSED')),a0af(bt(0x348),K[bt(0x292)]),console[bt(0x239)]();}catch(L){H[bt(0x1f0)]('Failed\x20to\x20load\x20result'),a0aa(L[bt(0x232)]);}}),B[bb(0x293)](bb(0x390))[bb(0xd2)](bb(0x286))[bb(0x322)](async J=>{const bu=bb;a0a8(bu(0x210)+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import('../lib/exam-state.js'),V=K();if(V){const a2=V['session'][bu(0x2e5)],a3=a0a1(),a4=!!a2&&a2[bu(0x101)]()['toUpperCase']()!==J[bu(0x101)]()[bu(0x279)](),a5=!!a3&&a3['getTime']()+(-0x7945*0x6d+-0xb372+0x4fcd13)<Date[bu(0x308)]();if(a4&&a5)return Q(),console[bu(0x239)](),console['log'](a0L[bu(0x10c)](bu(0x126))),console['log'](),console[bu(0x239)](a0L[bu(0x1ee)](bu(0x1f5))+a0L[bu(0x134)][bu(0x228)]('exam\x20'+J)),void console[bu(0x239)]();if(!a2&&J)return V[bu(0x95)]['token']=J[bu(0x101)](),L(V),console[bu(0x239)](),console[bu(0x239)](a0L[bu(0x12f)](bu(0x1c9))),console[bu(0x239)](a0L['gray'](bu(0x2e0))+a0L['white']('lang\x20<code>')+a0L[bu(0x10c)](bu(0x150))+a0L[bu(0x1ee)](bu(0x26a))),console['log'](),console[bu(0x239)](a0L[bu(0x134)][bu(0x1ee)](bu(0x2cf))),console[bu(0x239)](a0L['gray'](bu(0x2de))+a0L[bu(0x134)][bu(0x228)](bu(0x86))+a0L[bu(0x10c)](bu(0x1ca))),console[bu(0x239)](a0L['gray'](bu(0x2de))+a0L['bold']['cyan']('exam\x20review')+a0L['gray'](bu(0x38a))),void console[bu(0x239)]();const a6=Object[bu(0x165)](V[bu(0x10a)])[bu(0x217)],a7=V['session']['questionCount'],a8=a0a1(),a9=a8?Math[bu(0x161)](0x2515*-0x1+-0xc*0x5b+0x49*0x91,Math[bu(0x31b)]((a8[bu(0x255)]()-Date[bu(0x308)]())/(-0x18ab8+-0x1*0x10bad+-0x380c5*-0x1))):null;return console[bu(0x239)](),console[bu(0x239)](a0L[bu(0xa7)](bu(0x199))),console[bu(0x239)](),console[bu(0x239)](a0L[bu(0x10c)]('\x20\x20Exam:\x20\x20\x20\x20')+a0L[bu(0x1ee)](V[bu(0x95)][bu(0x2fc)])),a2&&console[bu(0x239)](a0L[bu(0x10c)](bu(0x2ab))+a0L['white'](a2)+(a2===J?a0L[bu(0x12f)](bu(0xf5)):a0L[bu(0xa7)](bu(0x1b1)))),console['log'](a0L[bu(0x10c)]('\x20\x20Answers:\x20')+a0L['white'](a6+'/'+a7)),null!==a9&&console[bu(0x239)](a0L[bu(0x10c)](bu(0xf9))+a0L[bu(0x1ee)](a9+bu(0x2e1))),console[bu(0x239)](),console[bu(0x239)](a0L[bu(0x134)][bu(0x1ee)]('\x20\x20To\x20continue\x20this\x20exam:')),console[bu(0x239)](a0L[bu(0x10c)](bu(0x2de))+a0L[bu(0x134)][bu(0x228)](bu(0x86))+a0L[bu(0x10c)](bu(0x1ca))),console['log'](a0L[bu(0x10c)]('\x20\x20\x20\x20→\x20')+a0L[bu(0x134)][bu(0x228)](bu(0x149))+a0L[bu(0x10c)]('\x20\x20\x20see\x20progress\x20+\x20flagged\x20items')),console[bu(0x239)](a0L[bu(0x10c)](bu(0x2de))+a0L[bu(0x134)][bu(0x228)](bu(0x26a))+a0L[bu(0x10c)]('\x20\x20\x20finish\x20and\x20submit')),a2&&a2!==J&&(console[bu(0x239)](),console[bu(0x239)](a0L[bu(0xa7)](bu(0x18a))),console[bu(0x239)](a0L[bu(0xa7)](bu(0x2d4))),console[bu(0x239)](),console[bu(0x239)](a0L[bu(0x10c)]('\x20\x20If\x20you\x20need\x20to\x20abandon\x20this\x20session\x20(e.g.\x20expired\x20/\x20wrong\x20paper),')),console[bu(0x239)](a0L['gray'](bu(0x257))+a0L[bu(0x134)][bu(0x228)](bu(0x2af))+a0L[bu(0x10c)]('\x20to\x20wipe\x20local\x20state,\x20then\x20re-enter\x20the\x20new\x20token.'))),void console[bu(0x239)]();}const {isNativeWindowsCmd:W}=await import(bu(0x1cd));if(!W()&&!a0am()){let aa=!(-0x4*-0x251+-0xf2*-0x25+-0x2c3d);try{const ab={};ab[bu(0x328)]='application/json';const ac=a0W()[bu(0x263)]||bu(0x280),ad=await fetch(ac+'/api/icoa/exam-token',{'method':bu(0x29c),'headers':ab,'body':JSON[bu(0x148)]({'token':J['trim'](),'deviceHash':a0aj(),'peek':!(0x4*-0xe5+-0x5*0x55+0x53d)}),'signal':AbortSignal[bu(0x127)](-0x7*0x18a+-0x1a7a+0x1c64*0x2)});if(ad['ok']){const ae=await ad['json']();(ae?.[bu(0x2a6)]?.[bu(0x154)]||'')['endsWith']('-c')&&(aa=!(0xa7d+0x217e+-0x3*0xea9));}}catch{}if(!aa)return console['log'](),a0ab(bu(0x33c)),console[bu(0x239)](a0L['gray'](bu(0x93))+a0L[bu(0x134)][bu(0x228)](bu(0x85))),console['log'](a0L['gray'](bu(0x128))+a0L[bu(0x134)][bu(0x228)](bu(0x395))+a0L[bu(0x10c)](bu(0x34a))),console[bu(0x239)](a0L[bu(0x10c)](bu(0x38c))),void console[bu(0x239)]();}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']()['substring'](-0x18b6+-0x3*-0x1be+0x137c,0x9b*0x19+0x2*0x4b5+-0x188b*0x1)[bu(0x279)]()],Z=a0W(),a0=Z[bu(0x263)]||bu(0x280),a1=Y||Z[bu(0x1c2)]||'en';Y&&Y!==(Z[bu(0x1c2)]||'en')&&a0X({'language':Y}),console['log'](),N(0x25da+-0x3*-0xa45+-0x44a9,'Validating\x20token...');try{const af={};af['Content-Type']=bu(0xb6);const ag=await fetch(a0+bu(0x160),{'method':bu(0x29c),'headers':af,'body':JSON[bu(0x148)]({'token':J[bu(0x101)](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bu(0x127)](-0x2caf+-0xffc+-0xb*-0x911)});if(!ag['ok']){N(-0x1ad2+-0x15c1+0x3093,''),console[bu(0x239)]();const ao=await ag['json']()[bu(0x26d)](()=>({'message':bu(0x312)}));return a0aa(ao[bu(0x232)]||'Invalid\x20exam\x20token'),void a0ac('Check\x20your\x20token\x20or\x20contact\x20your\x20proctor.');}N(-0x5e2+0x577+0x1*0x89,'Loading\x20exam...');const ah=await ag['json'](),{session:ai,questions:aj,languages:ak}=ah[bu(0x2a6)];N(0x3b*0x15+0x1b8a+-0x2025,'Preparing...'),await q(-0x1b91+-0x1894+-0x34ed*-0x1),N(-0x15d*0x11+0x7*0x40f+-0x3e*0x14,bu(0x1a3)),console['log'](),console[bu(0x239)](),a0ae(ai[bu(0x2fc)]),console[bu(0x239)](),a0af(bu(0x2f2),ai[bu(0x236)]+bu(0x1b7)),a0af('Duration',ai['durationMinutes']+bu(0x2c1)),a0af(bu(0x339),(ai['totalScore']||0x5*-0x55+0x20fb+-0x1ebc)+bu(0x305)),a0af('Pass',(ai['passingScore']||0x4a8*0x7+0x1fd1+0x1*-0x401e)+bu(0x265)),console[bu(0x239)](),console['log'](a0L[bu(0x1ee)]('\x20\x20Assistance:')),console[bu(0x239)](a0L[bu(0x1ee)](bu(0x34c))),console[bu(0x239)](a0L[bu(0x1ee)](bu(0x122))),console[bu(0x239)](a0L['white'](bu(0x24b))),ak&&ak[bu(0x217)]>-0x13a*-0x10+-0x24c4+0x1125*0x1&&console[bu(0x239)](a0L[bu(0x1ee)]('\x20\x20\x20\x20Lang:\x20\x20\x20\x20'+ak[bu(0x1c6)](',\x20')+'\x20—\x20switch\x20with:\x20lang\x20<code>')),console['log'](),console[bu(0x239)](a0L[bu(0xa7)]('\x20\x20Rules:')),console[bu(0x239)](a0L[bu(0x1ee)]('\x20\x20\x20\x20•\x20All\x20interactions\x20are\x20recorded\x20for\x20audit')),console['log'](a0L[bu(0x1ee)]('\x20\x20\x20\x20•\x20Server\x20auto-finalises\x20your\x20answers\x20if\x20you\x20do\x20not\x20submit\x20before\x20the\x20deadline')),console[bu(0x239)](a0L[bu(0x1ee)](bu(0x317))),console[bu(0x239)](),await new Promise(ap=>{const bv=bu;process[bv(0x195)][bv(0xf6)](a0L[bv(0x134)][bv(0xa7)](bv(0x179)));const aq=!!process[bv(0x1a5)]['isTTY']&&process[bv(0x1a5)]['isRaw'];process[bv(0x1a5)][bv(0x9d)]&&process['stdin'][bv(0x2a7)]&&process[bv(0x1a5)][bv(0x2a7)](!(0x20f3+0x4*-0x7fa+0xe*-0x13));const ar=as=>{const bw=bv,at=as['toString']();(at[bw(0x28d)]('\x0a')||at[bw(0x28d)]('\x0d'))&&(process[bw(0x1a5)][bw(0x205)](bw(0x2a6),ar),process[bw(0x1a5)][bw(0x9d)]&&process[bw(0x1a5)][bw(0x2a7)]&&process[bw(0x1a5)][bw(0x2a7)](aq),process[bw(0x195)][bw(0xf6)]('\x0a'),ap());};process[bv(0x1a5)]['on'](bv(0x2a6),ar),process[bv(0x1a5)][bv(0x1d9)]();});const al=new Date()[bu(0x32e)]();ai[bu(0x141)]=al,ai[bu(0x2e5)]=J[bu(0x101)]();try{const ap=Date[bu(0x308)](),aq=await fetch(a0+bu(0x197),{'method':bu(0x208),'signal':AbortSignal[bu(0x127)](0x11d+-0x22*-0x47+0x12d*0x1)});if(aq['ok']){const ar=await aq[bu(0x1b9)](),as=ar?.[bu(0x2a6)]?.[bu(0xa3)];if(bu(0x28a)==typeof as&&as>-0x255b+-0x17b*0x13+0x417c){const at=(ap+Date['now']())/(0x24*0xfe+0x1067+0x3*-0x115f);ai[bu(0x330)]=Math['round'](as-at),ai[bu(0x15b)]=as+(-0x13ba+-0x1e7c+0x16*0x24b)*ai[bu(0xab)]*(-0x1*0x128c+0x11ed+-0x13*-0x3d);}}}catch{}const am={};am[bu(0x110)]=0x0,am['ctf4ai']=0x0;const an={};an['session']=ai,an[bu(0x2fd)]=aj,an[bu(0x10a)]={},an[bu(0x1cb)]=[],an['aiUsage']=am,(a0Z(an),console['log'](),a0a9(bu(0x1f6)),a0af('Time\x20Remaining',ai['durationMinutes']+bu(0x145)),aj[bu(0x217)]>0xcb1+-0x232e+0x167d&&U(aj[-0x143c*0x1+0x6f0+0xd4c]));}catch(au){console[bu(0x239)](),bu(0x133)===au['name']?a0aa(bu(0x1d1)):a0aa(au['message']||bu(0x1d3));}}),B[bb(0x293)](bb(0x182),{'hidden':!(-0x1*0x1a5+-0x6bc*0x2+0xf1d*0x1)})[bb(0xd2)](bb(0x14a))['action'](async()=>{const bx=bb;a0a8('exam\x20reset');const {getRealExamState:F,clearExamState:G}=await import(bx(0x319)),H=F();if(!H)return console['log'](),console[bx(0x239)](a0L['gray']('\x20\x20No\x20active\x20exam\x20session\x20to\x20reset.')),void console[bx(0x239)]();const J=H[bx(0x95)]['token'];if(console[bx(0x239)](),console[bx(0x239)](a0L[bx(0xa7)](bx(0x1b0))),console['log'](a0L[bx(0x10c)](bx(0x318))+a0L['white'](H[bx(0x95)][bx(0x2fc)])),J&&console[bx(0x239)](a0L[bx(0x10c)](bx(0xc0))+a0L['white'](J)),console[bx(0x239)](a0L[bx(0x10c)](bx(0x336))),console['log'](a0L['gray'](bx(0x1fe))),console[bx(0x239)](),console[bx(0x239)](a0L[bx(0x10c)](bx(0x38b))+a0L[bx(0x134)][bx(0x228)](bx(0x182))+a0L['gray'](bx(0x1e7))),bx(0x182)!==(await new Promise(K=>{const by=bx;process[by(0x195)][by(0xf6)](by(0xb4));const L=Q=>{const bz=by,V=Q[bz(0x1c4)]()['trim']();(V['includes']('\x0a')||V[bz(0x28d)]('\x0d')||V[bz(0x217)]>0x3cf*0x8+0x5b4*-0x1+-0x18c4)&&(process['stdin']['removeListener'](bz(0x2a6),L),K(V['replace'](/[\r\n]/g,'')));};process[by(0x1a5)]['on'](by(0x2a6),L),process[by(0x1a5)][by(0x1d9)]();}))[bx(0x2a0)]())return console[bx(0x239)](a0L[bx(0x10c)](bx(0xcc))),void console[bx(0x239)]();G(),console['log'](),console[bx(0x239)](a0L[bx(0x12f)](bx(0x2d7))),console[bx(0x239)](a0L['gray']('\x20\x20You\x20can\x20now\x20enter\x20a\x20new\x20token\x20with\x20')+a0L[bx(0x134)][bx(0x228)](bx(0x2cd))),console['log']();}),B[bb(0x293)](bb(0x37a))[bb(0xd2)](bb(0x170))[bb(0x322)](async()=>{const bA=bb;a0a8(bA(0x121)),E(bA(0x2da));const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import(bA(0x1b8));a0W()[bA(0x2d0)]||(await(async function(){const bB=bA;let a0=!(0x276+0x3*0x198+-0x73d);const a1=process[bB(0x1a5)],a2=()=>{a0=!(0x15e9*-0x1+-0xb4b+0x2134);},a3=a1[bB(0x9d)]&&'function'==typeof a1[bB(0x2a7)];a3&&(a1[bB(0x2a7)](!(-0xd40+0x3*-0x38b+0x17e1)),a1[bB(0x1d9)](),a1[bB(0x23c)](bB(0x2a6),a2));const a4=async a5=>{let a6=0x1*0x1acf+0x67d+0x1*-0x214c;for(;a6<a5&&!a0;)await q(0x11*-0x5+-0x17b2+0x43*0x5d),a6+=0x4c4*-0x3+0x3*0x385+0x11*0x3d;};try{if(console[bB(0x288)](),console[bB(0x239)](),console[bB(0x239)](a0L[bB(0x10c)](bB(0xdf))+a0L[bB(0x314)](bB(0xd9))),console[bB(0x239)](),console[bB(0x239)](a0L[bB(0x134)][bB(0x1ee)](bB(0x1a9))),console[bB(0x239)](a0L[bB(0x134)][bB(0x1ee)](bB(0x2d8))),console[bB(0x239)](a0L[bB(0x134)][bB(0x1ee)](bB(0x36e))),console[bB(0x239)](a0L[bB(0x134)][bB(0x1ee)](bB(0x144))),console['log'](a0L['bold'][bB(0x1ee)](bB(0x9b))),console[bB(0x239)](a0L['bold'][bB(0x1ee)]('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console[bB(0x239)](),console[bB(0x239)](a0L[bB(0x134)][bB(0xa7)](bB(0x175))),console['log'](a0L[bB(0x10c)](bB(0x2e6))),await a4(-0x6*-0x228+-0x6f*0x3f+0x1825),a0)return;if(console[bB(0x239)](),console[bB(0x239)](a0L[bB(0x1ee)](bB(0x377))),console[bB(0x239)](),await a4(-0x33*-0x14+0x1ce5+0x1e89*-0x1),a0)return;if(console[bB(0x239)](a0L['cyan'](bB(0x234))+a0L[bB(0x1ee)](bB(0x360))+a0L[bB(0x10c)](bB(0xf3))),await a4(0x3aa+0x10b3+-0x11a1),a0)return;if(console[bB(0x239)](a0L[bB(0x12f)]('\x20\x20\x20\x20\x20▣\x20')+a0L[bB(0x1ee)]('Team\x20up\x20with\x20AI\x20to\x20solve\x20CTFs')+a0L[bB(0x10c)](bB(0x30c))),await a4(0x84b*-0x1+0x1d92+-0x128b),a0)return;if(console[bB(0x239)](a0L[bB(0x2ca)]('\x20\x20\x20\x20\x20▣\x20')+a0L['white']('Hack\x20the\x20AI\x27s\x20guardrails')+a0L[bB(0x10c)](bB(0x2c9))),await a4(-0x5b3*0x5+0x7*-0x531+0x445a),a0)return;if(console[bB(0x239)](),console[bB(0x239)](a0L['bold']['white'](bB(0x240))+a0L['bold'][bB(0xa7)]('IS')+a0L[bB(0x134)][bB(0x1ee)](bB(0x38f))),console[bB(0x239)](),await a4(-0xe*0x18d+0x2423+0x81*-0x11),a0)return;if(console['log'](a0L[bB(0x10c)](bB(0x366))),await a4(-0x1e9*0xd+-0x7d4+0x2239),a0)return;if(console['log'](a0L[bB(0x10c)](bB(0x277))),await a4(0xff5+0x118c+-0x1ff1),a0)return;if(console[bB(0x239)](a0L[bB(0x10c)](bB(0x13e))),await a4(-0x53f+0x37*0x73+0x52*-0x33),a0)return;console[bB(0x239)](),console['log'](a0L[bB(0x134)][bB(0x228)](bB(0x1fb))),await a4(-0x682*0x5+-0x67+0x3091);}finally{((()=>{const bC=bB;if(a3){a1[bC(0x205)](bC(0x2a6),a2);try{a1[bC(0x2a7)](!(0x5e6+-0x351*-0x9+-0x11df*0x2));}catch{}a1[bC(0x276)]();}})()),console[bB(0x288)]();}}()),a0X({'demoIntroSeen':!(0x13aa+0x1265+0x1*-0x260f)})),console[bA(0x239)](),console[bA(0x239)](a0L[bA(0x1ee)](bA(0x352))+a0L[bA(0x10c)](H+bA(0xf8)+J+bA(0x17f))),console[bA(0x239)](a0L[bA(0x10c)](bA(0x14f))+a0L[bA(0x228)](bA(0xfb))+a0L[bA(0x10c)]('\x20or\x20leave\x20with\x20')+a0L[bA(0x228)](bA(0x395))+a0L[bA(0x10c)](bA(0x2ea))),await new Promise(a0=>{const bD=bA;process[bD(0x195)][bD(0xf6)](a0L[bD(0x134)]['yellow'](bD(0x2d6)));const a1=!!process[bD(0x1a5)][bD(0x9d)]&&process[bD(0x1a5)][bD(0x90)];process['stdin'][bD(0x9d)]&&process[bD(0x1a5)][bD(0x2a7)]&&process[bD(0x1a5)]['setRawMode'](!(-0x26e9+-0xb32+0x321c));const a2=a3=>{const bE=bD,a4=a3[bE(0x1c4)]();(a4[bE(0x28d)]('\x0a')||a4['includes']('\x0d'))&&(process['stdin'][bE(0x205)]('data',a2),process[bE(0x1a5)][bE(0x9d)]&&process['stdin'][bE(0x2a7)]&&process[bE(0x1a5)][bE(0x2a7)](a1),process['stdout'][bE(0xf6)]('\x0a'),a0());};process[bD(0x1a5)]['on'](bD(0x2a6),a2),process[bD(0x1a5)]['resume']();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import(bA(0x319));Q()&&V('demo-free'),console[bA(0x239)](),a0ae(bA(0x1a8)),console[bA(0x239)](),console[bA(0x239)](a0L[bA(0x1ee)](bA(0x365))),console[bA(0x239)](a0L[bA(0x1ee)]('\x20\x20'+H+'\x20random\x20questions\x20from\x20a\x20pool\x20of\x20'+J+bA(0x207)));const W=a0a3();if(W[bA(0x19d)]>0x10f*0x1+-0x99f*0x1+0x448*0x2){const a0=W[bA(0x1a0)],a1=a0>=-0xb05*0x1+-0x183*0x9+0x18f0?a0L[bA(0x12f)]:a0>=-0x1add+-0x1*0x511+0x202a?a0L[bA(0xa7)]:a0L['white'];console[bA(0x239)](),console[bA(0x239)](a0L[bA(0x10c)](bA(0x1c1))+a1(W['best']+'/'+H+'\x20('+a0+'%)')+a0L[bA(0x10c)](bA(0x16a)+W[bA(0x19d)]+bA(0x25c)));}console[bA(0x239)](),console[bA(0x239)](a0L[bA(0x10c)](bA(0xe6))),console['log'](a0L[bA(0x1ee)]('\x20\x20'+a0ai(bA(0xa2)))),console[bA(0x239)](a0L[bA(0xa7)](bA(0x22d))+a0L[bA(0x10c)](bA(0x331)+a0ai(bA(0x212)))),console['log'](a0L[bA(0xa7)](bA(0x8b))+a0L['gray'](bA(0x287)+a0ai(bA(0x33e)))),console[bA(0x239)](a0L[bA(0xa7)](bA(0x1b2))+a0L[bA(0x10c)]('\x20/\x20')+a0L[bA(0xa7)](bA(0x35c))+a0L['gray'](bA(0x215)+a0ai(bA(0x84)))),console[bA(0x239)](a0L['yellow'](bA(0x29a))+a0L[bA(0x10c)](bA(0x2dd)+a0ai(bA(0x258)))),console[bA(0x239)](a0L[bA(0xa7)](bA(0x359))+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bA(0x10d)))),console[bA(0x239)](a0L[bA(0xa7)]('\x20\x20\x20\x20lang')+a0L['gray'](bA(0x287)+a0ai('htpLang'))),console[bA(0x239)](a0L['gray'](bA(0x362))),console[bA(0x239)](a0L[bA(0x10c)](bA(0x309))),console[bA(0x239)](a0L[bA(0x10c)](bA(0xe6))),console[bA(0x239)]();const {getConfig:X}=await import(bA(0x183)),Y=X()[bA(0x1c2)]||'en';'en'===Y?(console[bA(0x239)](a0L[bA(0x10c)]('\x20\x20Questions\x20in\x20English.\x20To\x20switch\x20language\x20first:')),console['log'](a0L[bA(0x10c)]('\x20\x20lang\x20es\x20(Español)\x20·\x20lang\x20zh\x20(中文)\x20·\x20lang\x20ko\x20(한국어)\x20·\x20lang\x20ja\x20(日本語)')),console[bA(0x239)](a0L[bA(0x10c)](bA(0x262)))):console[bA(0x239)](a0L[bA(0x12f)](bA(0x23d)+Y)),console[bA(0x239)](),console[bA(0x239)](a0L[bA(0x1ee)]('\x20\x20Starting\x20exam...'));const Z={...L,'startedAt':new Date()[bA(0x32e)]()};console[bA(0x239)](),N(-0x2d*0x8c+-0x1302*-0x1+0x59a,bA(0x18c)),await q(-0xb17+-0xb8*-0x29+-0x1199),N(0x24c1+0x1*0x1d6f+-0x4208,bA(0xaa)),await q(-0xa*0x352+-0xdd4+0x2fd0),N(0x1*-0x467+-0x1d3d+-0x21f4*-0x1,'Almost\x20ready...'),await q(-0x1*0x23e3+-0x29*0x15+0x27d6),N(-0x254*-0x6+-0xd67+-0x9*0x5,bA(0x1a3)),console[bA(0x239)](),console[bA(0x239)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af(bA(0x2f2),String(H)),a0af('Duration','No\x20time\x20limit'),U(K[0x108b+0x1a23+-0x2aae]);}),B['command'](bb(0xbf))[bb(0xd2)](bb(0x14d))[bb(0x322)](async()=>{const bF=bb;a0a8('exam\x20demo-retry'),E(bF(0x256));const {getLocalizedDemoSession:F}=await import('../lib/demo-exam.js'),G=a0a6();if(!G||0x497+-0x7a*0x1f+0xa2f===G[bF(0x217)])return console[bF(0x239)](),console['log'](a0L['yellow']('\x20\x20No\x20wrong\x20questions\x20to\x20retry.\x20Run\x20')+a0L[bF(0x134)][bF(0x228)]('demo')+a0L[bF(0xa7)](bF(0x17a))),void console[bF(0x239)]();const H=a0Y();if(H){if(bF(0x297)!==H[bF(0x95)][bF(0x153)])return a0ab('Exam\x20\x22'+H[bF(0x95)][bF(0x2fc)]+bF(0x27a)),void a0ac(bF(0x1ad));a0a0();}const J=V=>{const bG=bF;if(!V['answer'])return V;const W=V[bG(0x16f)][V['answer']],X=['A','B','C','D'][bG(0x246)](a2=>V[bG(0x16f)][a2]);for(let a2=X['length']-(0x3*0x48d+-0x158e*0x1+-0x2e*-0x2c);a2>0x1b59+0x19*-0x165+0x784;a2--){const a3=Math[bG(0x300)](Math[bG(0x8c)]()*(a2+(-0x1*-0x173c+0x4*0x4fe+0x1*-0x2b33)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[0x73c+-0x2427+0x1ceb],Y['B']=X[-0xbfb*0x3+-0x12b3+0x1*0x36a5],Y['C']=X[0x13c9+-0x8fd+-0xaca],Y['D']=X[-0x221*-0x2+-0x5*-0x7c5+0x1*-0x2b18];const Z=Y,a0=['A','B','C','D'][bG(0x230)](a4=>Z[a4]===W),a1={...V};return a1[bG(0x16f)]=Z,a1[bG(0x147)]=a0,a1;},K=G[bF(0x246)]((V,W)=>({...J(V),'number':W+(0x19+0xbd3+-0xbeb)})),L=F(),Q={...L,'examName':L[bF(0x2fc)]+bF(0x102),'questionCount':K[bF(0x217)],'startedAt':new Date()[bF(0x32e)]()};console[bF(0x239)](),a0ae('Demo\x20Retry\x20—\x20Wrong\x20Questions\x20Only'),console[bF(0x239)](),console[bF(0x239)](a0L[bF(0x1ee)](bF(0xc6)+K['length']+bF(0x142)+(-0xfdb+0xc06+0x3d6===K[bF(0x217)]?'':'s')+bF(0x291))),console[bF(0x239)](a0L[bF(0x10c)](bF(0x358))),console['log'](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af('Questions',String(K[bF(0x217)])),a0af(bF(0x25a),bF(0x27e)),U(K[0x23e*-0x2+-0x1493+0x190f]);}),B[bb(0x293)](bb(0x27d))['description'](bb(0x2c5))[bb(0x322)](async()=>{const bH=bb;if(a0a8(bH(0x85)),0x62f+0x1e91*0x1+0x1c0*-0x15===a0a3()[bH(0x19d)])return console[bH(0x239)](),a0ab(bH(0x158)),console[bH(0x239)](a0L[bH(0x10c)](bH(0x93))+a0L['bold'][bH(0x228)](bH(0x121))),void console['log']();const K=a0ak();if(K){const a4=K[bH(0xa5)]['length'],a5=a4+K['failedPackages'][bH(0x217)];if(a4>=-0x1dda+-0x2de*0x8+0x34d2||(a5>-0xf*0x5+-0x44*0x11+0x4cf?a4/a5:0xb*0x2+-0x2b3*0x6+0x101c)>=0xa*0x389+0x1*-0x1af+0xa9*-0x33+0.7)return console['log'](),console['log'](a0L[bH(0x12f)](bH(0x245))+a0L[bH(0x12f)](bH(0x35f))),console['log'](a0L[bH(0x10c)](bH(0x152)+K[bH(0x345)][bH(0x1f4)]('T')[0x1*-0x170d+-0x1*-0xf1+0x14*0x11b])),console[bH(0x239)](a0L[bH(0x10c)]('\x20\x20\x20\x20Python:\x20'+K['pythonVersion'])),console[bH(0x239)](a0L[bH(0x10c)](bH(0x347)+a4+bH(0x34b))),K[bH(0x11b)]['length']>0x2076+0xb2*0x29+-0x3cf8&&console[bH(0x239)](a0L['yellow'](bH(0x2fb)+K['failedPackages']['join'](',\x20'))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x21a))+a0L[bH(0x134)][bH(0x228)]('exam\x20<token>')),console['log'](a0L[bH(0x10c)](bH(0x128))+a0L[bH(0x134)][bH(0x228)]('back')+a0L['gray'](bH(0x34a))),void console['log']();console[bH(0x239)](),console['log'](a0L[bH(0xa7)](bH(0xfd)+a4+'/'+a5+bH(0x243))),console[bH(0x239)]();}console['log'](),a0ae('Exam\x20Environment\x20Setup'),console[bH(0x239)](),console[bH(0x239)](a0L['white']('\x20\x20Installing\x20Python\x20packages\x20for\x20practical\x20questions.')),console[bH(0x239)](a0L['gray'](bH(0x346))),console['log']();const L=(a6,a7)=>{const bI=bH,a8=process[bI(0x20a)];console[bI(0x239)](),a0aa(bI(0x34d)===a6?'Python\x203\x20not\x20found.':bI(0x31d)+a7+bI(0x13d)),console[bI(0x239)](),console[bI(0x239)](a0L[bI(0x134)][bI(0x1ee)](bI(0x18f))),console[bI(0x239)](),bI(0x100)===a8?(console['log'](a0L[bI(0xa7)]('\x20\x20macOS\x20(Homebrew,\x20recommended):')),console['log'](a0L['green'](bI(0x310))),console[bI(0x239)](),console[bI(0x239)](a0L[bI(0x10c)](bI(0x139))),console[bI(0x239)](a0L['gray'](bI(0x24f)))):bI(0x2f9)===a8?(console[bI(0x239)](a0L[bI(0xa7)](bI(0x1fd))),console[bI(0x239)](a0L[bI(0x12f)](bI(0x30f))),console[bI(0x239)](a0L[bI(0x12f)](bI(0x391))),console[bI(0x239)](a0L[bI(0x12f)](bI(0x1c0))),console[bI(0x239)](a0L[bI(0x10c)](bI(0x18e))),console['log'](),console[bI(0x239)](a0L[bI(0xa7)]('\x20\x20Fedora\x20/\x20RHEL:')),console[bI(0x239)](a0L[bI(0x12f)]('\x20\x20\x20\x20sudo\x20dnf\x20install\x20-y\x20python3.12')),console[bI(0x239)](),console[bI(0x239)](a0L['yellow']('\x20\x20Arch\x20/\x20Manjaro:')),console[bI(0x239)](a0L[bI(0x12f)](bI(0x12e)))):bI(0x22a)===a8?(console[bI(0x239)](a0L[bI(0xa7)](bI(0x28f))),console[bI(0x239)](a0L[bI(0x12f)](bI(0x32a))),console[bI(0x239)](),console[bI(0x239)](a0L[bI(0x10c)](bI(0x139))),console[bI(0x239)](a0L[bI(0x10c)](bI(0x25d)))):console['log'](a0L[bI(0x10c)](bI(0xb7))),console[bI(0x239)](),console[bI(0x239)](a0L['white']('\x20\x20After\x20installing,\x20run:\x20')+a0L[bI(0x134)][bI(0x228)](bI(0x85))),console[bI(0x239)]();},Q=bH(0x338);let V='';try{const a6={};a6[bH(0x87)]='utf-8',a6[bH(0x127)]=0x1388,V=a0an(Q+bH(0x8a),a6)[bH(0x101)]()[bH(0x19e)](bH(0x31d),'');const a7=V['split']('.')[bH(0x246)](Number);if(a7[0x1dc1+0x61d+-0x2*0x11ef]<0x1a3a+0x40f*0x8+0x3aaf*-0x1||0x4*0x15e+0x2195+-0x270a===a7[0x3*0x7f+0x1*0xa1f+-0x4*0x2e7]&&a7[0x1038+-0x1d7d+-0x2*-0x6a3]<0x7d*-0x34+0x2*0x12d6+0xc3e*-0x1)return void L(bH(0x19b),V);-0xe21*-0x1+0x45*0x54+-0x24c2===a7[0x1ed6+0x1508*0x1+0x8a5*-0x6]&&a7[0x52f*-0x4+0x1*-0x22df+0x379c]<0x7*0x56f+0x3f3*0x9+-0x4988?console[bH(0x239)](a0L[bH(0x12f)](bH(0x109)+V)+a0L[bH(0x10c)](bH(0x91))):console['log'](a0L[bH(0x12f)](bH(0x109)+V));}catch{return void L('missing');}try{const a8={};a8[bH(0xba)]=bH(0x9e),a8[bH(0x127)]=0x1388,(a0an(Q+bH(0x1ac),a8),console[bH(0x239)](a0L[bH(0x12f)](bH(0xcb))));}catch{console['log'](a0L[bH(0xa7)](bH(0x11e)));try{const a9={};a9['stdio']=bH(0x9e),a9['timeout']=0x7530,(a0an(Q+'\x20-m\x20ensurepip\x20--upgrade',a9),console[bH(0x239)](a0L[bH(0x12f)](bH(0x15f))));}catch{a0aa(bH(0x37c)),console[bH(0x239)]();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import('../lib/platform.js'),{execFileSync:ac}=await import('node:child_process'),ad=aa(),ae=ab(),af=bH(0x2f9)===process['platform']&&!ad,ag=bH(0x100)===process[bH(0x20a)];let ah='your\x20Linux\x20distro';if(af||ad)try{const {readFileSync:ak}=await import(bH(0x372)),al=ak(bH(0x11d),bH(0xef)),am=(al[bH(0x1af)](/^ID="?([^"\n]+)/m)||[])[-0x4c6*-0x7+0x199*-0x13+-0x30e]||'',an=(al['match'](/^VERSION_ID="?([^"\n]+)/m)||[])[-0x1c57*-0x1+-0x1*0xaba+0x2e*-0x62]||'';bH(0x2a5)===am?ah=bH(0x20b)+an+(ad?bH(0x250):''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?bH(0x250):''));}catch{}let ai=!(0x13*0xc2+0xad3+-0x1938);if(ag)try{const ao={};ao[bH(0xba)]=bH(0x9e),ao[bH(0x127)]=0x7d0,(ac(bH(0x224),['brew'],ao),ai=!(0x21a7*0x1+-0xe0*0x2c+0x4d9*0x1));}catch{ai=!(0x16f4+-0x26d8+0xfe5);}const aj=ae?bH(0x1e4):bH(0x25b);return console['log'](a0L[bH(0x134)][bH(0xa7)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bH(0x239)](a0L[bH(0x134)][bH(0xa7)]('\x20\x20'+aj)),console[bH(0x239)](a0L[bH(0x134)][bH(0xa7)](bH(0x1d2))),console['log'](),af||ad?(console['log'](a0L[bH(0x1ee)](bH(0xc2))+a0L[bH(0x228)](ah)),console[bH(0x239)](a0L[bH(0x10c)](bH(0xbc))),console[bH(0x239)](),console['log'](a0L[bH(0x134)][bH(0x1ee)](bH(0xb3))),console['log'](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x226))+a0L[bH(0x134)]['cyan'](bH(0x1c7))+a0L[bH(0x1ee)](bH(0x341))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x20d))),console[bH(0x239)](),console[bH(0x239)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x134)][bH(0x228)](bH(0xad))),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x117))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x1ee)]('\x20\x20\x20\x203.\x20Restart\x20icoa\x20and\x20re-run\x20exam\x20setup:')),console[bH(0x239)](),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)]('icoa')),console[bH(0x239)](bH(0x331)+a0L[bH(0x10c)](bH(0x268))+'\x20'+a0L['bold'][bH(0x228)]('exam\x20setup'))):ag?(console[bH(0x239)](a0L[bH(0x1ee)](bH(0xc2))+a0L[bH(0x228)](bH(0x196))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x134)][bH(0x1ee)](bH(0xb3))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x226))+a0L['bold'][bH(0x228)](bH(0x1c7))+a0L[bH(0x1ee)](bH(0x274))),console['log'](),ai?(console[bH(0x239)](a0L[bH(0x1ee)](bH(0x203))),console[bH(0x239)](),console['log'](bH(0x331)+a0L[bH(0x134)][bH(0x228)]('brew\x20install\x20python@3.12')),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x233)))):(console[bH(0x239)](a0L['white'](bH(0x31c))+a0L[bH(0x134)][bH(0xa7)](bH(0x135))+a0L[bH(0x1ee)]('):')),console['log'](),console['log'](bH(0x331)+a0L[bH(0x134)][bH(0x228)]('/bin/bash\x20-c\x20\x22$(curl\x20-fsSL\x20https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\x22')),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x20f))),console[bH(0x239)](),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0xea)))),console[bH(0x239)](),console['log'](a0L[bH(0x1ee)](bH(0xb1))),console['log'](),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x356))),console[bH(0x239)](bH(0x331)+a0L[bH(0x10c)](bH(0x268))+'\x20'+a0L[bH(0x134)][bH(0x228)](bH(0x85)))):ae?(console[bH(0x239)](a0L['white'](bH(0xc2))+a0L[bH(0x228)](bH(0xf7))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x134)][bH(0xa7)](bH(0x2bd))),console[bH(0x239)](a0L[bH(0x10c)](bH(0x137))),console[bH(0x239)](a0L[bH(0x10c)](bH(0x337))),console['log'](a0L[bH(0x10c)](bH(0x2ff))),console['log'](),console[bH(0x239)](a0L[bH(0x134)][bH(0x1ee)]('\x20\x20Recommended\x20path\x20—\x20switch\x20to\x20WSL2\x20(one-time,\x20~5\x20min):')),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x226))+a0L[bH(0x134)][bH(0x228)](bH(0x1c7))+a0L[bH(0x1ee)]('\x20to\x20leave\x20icoa')),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x14c))),console[bH(0x239)](),console['log'](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x14b))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x10c)](bH(0x123))),console['log'](a0L[bH(0x1ee)](bH(0x2a3))),console[bH(0x239)](),console[bH(0x239)](bH(0x331)+a0L['bold'][bH(0x228)](bH(0x272))),console[bH(0x239)](bH(0x331)+a0L['bold']['cyan']('sudo\x20apt\x20install\x20-y\x20nodejs\x20python3-pip\x20python3-venv')),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L['bold'][bH(0x228)]('sudo\x20npm\x20install\x20-g\x20icoa-cli')),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x356))),console[bH(0x239)](),console['log'](a0L[bH(0x10c)]('\x20\x20───\x20Stay\x20on\x20native\x20Windows\x20(best-effort,\x20may\x20hit\x20PATH\x20issues)\x20───')),console['log'](),console[bH(0x239)](a0L['white'](bH(0x226))+a0L[bH(0x134)][bH(0x228)](bH(0x1c7))+a0L[bH(0x1ee)](bH(0x274))),console[bH(0x239)](a0L['white'](bH(0x1df))),console[bH(0x239)](),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x296))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x10c)](bH(0x2b7))),console[bH(0x239)](a0L['gray'](bH(0x111))),console['log'](a0L[bH(0x1ee)](bH(0x19f))),console['log'](),console['log'](bH(0x331)+a0L[bH(0x134)][bH(0x228)]('icoa')),console[bH(0x239)](bH(0x331)+a0L[bH(0x10c)](bH(0x268))+'\x20'+a0L[bH(0x134)][bH(0x228)](bH(0x85)))):(console['log'](a0L[bH(0x1ee)]('\x20\x20Detected:\x20unrecognized\x20platform\x20(')+a0L[bH(0x228)](process[bH(0x20a)])+a0L[bH(0x1ee)](')')),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x10c)](bH(0x384))),console[bH(0x239)](bH(0x331)+a0L[bH(0x134)][bH(0x228)](bH(0x356))),console[bH(0x239)](bH(0x331)+a0L['gray'](bH(0x268))+'\x20'+a0L[bH(0x134)][bH(0x228)](bH(0x85)))),console[bH(0x239)](),console[bH(0x239)](a0L['gray'](bH(0x124))),void console[bH(0x239)]();}}const W={};W[bH(0x14e)]=bH(0x16c),W[bH(0x315)]=bH(0x26f),W[bH(0x1fa)]='z3',W[bH(0x1a6)]=bH(0x2e7),W[bH(0x2cb)]=bH(0x2d3),W[bH(0x33f)]=bH(0x282);const X=['pwntools',bH(0x295),bH(0x33b),bH(0x14e),bH(0xdc),bH(0x1a6),bH(0x27f),'sympy',bH(0x1fa),'pycryptodome',bH(0x33f),'volatility3',bH(0x138)],Y=W;console['log'](),console[bH(0x239)](a0L['white'](bH(0x23b)+X[bH(0x217)]+bH(0x213))),console[bH(0x239)]();let Z='';try{const ap={};ap[bH(0x87)]=bH(0xef),ap[bH(0x127)]=0x2710,a0an(Q+bH(0x260),ap);}catch(aq){const ar=String(aq?.[bH(0x195)]||aq?.[bH(0x225)]||aq?.['message']||'');/externally-managed-environment|break-system-packages/i[bH(0x326)](ar)&&(Z='--user\x20--break-system-packages',console[bH(0x239)](a0L[bH(0xa7)](bH(0x36f))),console[bH(0x239)]());}const a0=V[bH(0x1f4)]('.')[bH(0x246)](Number);0x197d+0x8ed+-0x2267===a0[-0xfa8+0x1504*0x1+-0x4*0x157]&&a0[-0x17aa+-0x585+-0x3a6*-0x8]>=-0x1781+-0x236c+0x3afa&&(console['log'](a0L['yellow']('\x20\x20⚠\x20Python\x20'+V+'\x20detected')),console[bH(0x239)](a0L[bH(0x10c)]('\x20\x20\x20\x20Some\x20packages\x20(pwntools,\x20scapy)\x20may\x20not\x20have\x20wheels\x20yet\x20for\x203.13.')),console[bH(0x239)](a0L[bH(0x10c)](bH(0x2b3))),bH(0x2f9)===process[bH(0x20a)]&&(console['log'](a0L['green'](bH(0x1ff))),console[bH(0x239)](a0L[bH(0x12f)](bH(0x1d8)))),console[bH(0x239)]());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+bH(0xaf)+as+'\x22\x20'+Z+bH(0x343),{'encoding':bH(0xef),'timeout':0x2bf20,'stdio':'pipe'}),a0an(Q+bH(0x344)+(Y[as]||as)+'\x22',{'stdio':bH(0x9e),'timeout':0x2710});let at='';try{const au=a0an(Q+bH(0x23a)+as+'\x22\x202>/dev/null',{'encoding':bH(0xef),'timeout':0x1388})[bH(0x1af)](/^Version:\s*(.+)$/m);au&&(at=au[0x2605+0x5b2*0x2+-0x3168][bH(0x101)]());}catch{}console[bH(0x239)](a0L[bH(0x12f)](bH(0x245)+as)+(at?a0L[bH(0x10c)]('\x20('+at+')'):'')),a1[bH(0x155)](at?as+'=='+at:as);}catch(av){const aw=String(av?.[bH(0x195)]||av?.[bH(0x225)]||av?.['message']||'')[bH(0xde)](-(0xa50+0x1c6b+-0x252b)),ax=aw[bH(0x1f4)]('\x0a')[bH(0x10b)](ay=>ay[bH(0x101)]())['slice'](-(0x1c4c+-0x9*0x297+-0x4fb))['join'](bH(0x335))[bH(0xde)](-0x22*-0x117+0x3b*-0xa1+0xd,0x1*-0x2251+-0x3e1*-0x5+0xf64);console[bH(0x239)](a0L[bH(0x2ca)]('\x20\x20✗\x20'+as)+a0L[bH(0x10c)]('\x20\x20'+ax)),a2[bH(0x155)]({'pkg':as,'error':ax}),a3||(a3=aw);}-0x10d+0x92*0x16+-0x9*0x147===a1[bH(0x217)]&&a3&&(console['log'](),console[bH(0x239)](a0L[bH(0xa7)](bH(0x388))),console[bH(0x239)](a0L['gray']('\x20\x20'+a3[bH(0x1f4)]('\x0a')[bH(0xde)](-(0x1271+-0x1561+-0x17b*-0x2))[bH(0x1c6)]('\x0a\x20\x20')))),a0al({'completedAt':new Date()['toISOString'](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2[bH(0x246)](ay=>ay['pkg'])}),console['log'](),0x3*0x284+-0x13*-0x17b+0x23ad*-0x1===a2[bH(0x217)]?a0a9('Environment\x20ready!\x20All\x20'+X[bH(0x217)]+bH(0x125)):0x983+0x1*0x17ff+-0x2182===a1[bH(0x217)]?(a0aa(bH(0x2d1)+X[bH(0x217)]+bH(0x125)),console[bH(0x239)](),console['log'](a0L[bH(0xa7)]('\x20\x20Troubleshooting:')),-0x95f*-0x1+0x2*-0x11d7+0xd29*0x2===a0[0xa97+-0x1*-0x6e9+-0x1180]&&a0[0x7da+0x4*0xdf+-0xb55]>=0x102*0xd+0xc33+-0x8*0x328?(console[bH(0x239)](a0L['gray']('\x20\x20\x20\x20Python\x203.13\x20is\x20too\x20new\x20—\x20most\x20CTF\x20libraries\x20lack\x20wheels.')),console[bH(0x239)](a0L[bH(0x10c)](bH(0xdd)))):(console['log'](a0L[bH(0x10c)]('\x20\x20\x20\x20•\x20Check\x20you\x20have\x20internet\x20(pip.pypa.io\x20must\x20be\x20reachable)')),console[bH(0x239)](a0L['gray'](bH(0x13b))+a0L[bH(0x228)](Q+bH(0xe1))+a0L['gray'](bH(0x218))),console['log'](a0L['gray']('\x20\x20\x20\x20•\x20On\x20Kali/Ubuntu\x2022+:\x20might\x20need\x20python3.12-dev\x20+\x20build-essential'))),console['log'](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x2c8))+a0L[bH(0x134)]['cyan']('exam\x20setup'))):a0ab(a1[bH(0x217)]+'/'+X[bH(0x217)]+'\x20packages\x20installed.\x20'+a2[bH(0x217)]+'\x20failed:\x20'+a2['map'](ay=>ay['pkg'])[bH(0x1c6)](',\x20')),console[bH(0x239)](),console[bH(0x239)](a0L['cyan'](bH(0x10e))),console[bH(0x239)](a0L[bH(0x134)][bH(0x1ee)]('\x20\x20How\x20to\x20use\x20Python\x20in\x20ICOA\x20CLI')),console[bH(0x239)](a0L['cyan'](bH(0x10e))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x134)][bH(0xa7)](bH(0x38e))+a0L[bH(0x10c)](bH(0x278))),console['log'](a0L[bH(0x1ee)](bH(0x2b9))),console[bH(0x239)](a0L[bH(0x12f)](bH(0x1e1))),console[bH(0x239)](a0L['gray']('\x20\x20\x20\x20→\x20b\x27Hello\x27')),console[bH(0x239)](),console[bH(0x239)](a0L['bold']['yellow'](bH(0x18d))+a0L[bH(0x10c)](bH(0x32d))),console['log'](a0L[bH(0x1ee)](bH(0x334))),console['log'](a0L[bH(0x12f)](bH(0x1dd))),console[bH(0x239)](a0L['gray'](bH(0x394))),console[bH(0x239)](a0L['gray'](bH(0x1da))),console['log'](a0L[bH(0x10c)](bH(0x1ef))),console[bH(0x239)](a0L[bH(0x10c)]('\x20\x20\x20\x20>>>\x20print(cipher.decrypt(data))')),console[bH(0x239)](a0L['gray'](bH(0x167))),console[bH(0x239)](),console[bH(0x239)](a0L[bH(0x134)][bH(0xa7)](bH(0xc9))+a0L[bH(0x10c)]('\x20(complex\x20solutions)')),console['log'](a0L[bH(0x1ee)](bH(0x18b))),console[bH(0x239)](a0L[bH(0x12f)](bH(0x129))),console[bH(0x239)](a0L[bH(0x10c)](bH(0x21d))),console[bH(0x239)](a0L[bH(0x10c)](bH(0x107))),console[bH(0x239)](a0L[bH(0x10c)](bH(0xac))),console[bH(0x239)](a0L[bH(0x10c)](bH(0x11c))),console['log'](a0L[bH(0x12f)](bH(0x216))),console[bH(0x239)](a0L[bH(0x12f)](bH(0x22e))),console['log'](),console[bH(0x239)](a0L[bH(0x134)][bH(0xa7)](bH(0x355))),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x283))+a0L['bold'][bH(0x228)](bH(0x194))+a0L[bH(0x1ee)](bH(0x24e))),console[bH(0x239)](a0L['gray']('\x20\x20\x20\x20\x22How\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console[bH(0x239)](a0L[bH(0x10c)](bH(0xf2))),console['log'](a0L[bH(0x10c)](bH(0x171))),console['log'](a0L[bH(0x228)](bH(0x10e))),console['log'](),console[bH(0x239)](a0L[bH(0x1ee)](bH(0x21a))+a0L[bH(0x134)]['cyan'](bH(0x2cd))),console[bH(0x239)](a0L['gray'](bH(0x128))+a0L['bold'][bH(0x228)](bH(0x395))+a0L[bH(0x10c)](bH(0x34a))),console[bH(0x239)]();}),B[bb(0x322)](()=>{const bJ=bb;a0a8(bJ(0x17b));const F=a0Y();if(F){a0ae(bJ(0x237)+F[bJ(0x95)]['examName']),O();const J=Object[bJ(0x165)](F['answers'])[bJ(0x217)];return a0af(bJ(0x36b),J+'/'+F[bJ(0x95)][bJ(0x236)]+bJ(0x201)),console['log'](),void console['log'](a0L[bJ(0x10c)](bJ(0x143)));}const G=a0a3(),H=a0ak();console['log'](),a0ae(bJ(0x28b)),console[bJ(0x239)](),-0x2*0x443+0xe52+-0x35*0x1c===G[bJ(0x19d)]?(console[bJ(0x239)](a0L[bJ(0xa7)](bJ(0x2e9))+a0L[bJ(0xa7)](bJ(0x354))),console[bJ(0x239)](a0L[bJ(0x10c)](bJ(0x2de))+a0L[bJ(0x134)][bJ(0x228)](bJ(0x121)))):(console[bJ(0x239)](a0L[bJ(0x12f)]('\x20\x20●\x20')+a0L[bJ(0x12f)](bJ(0x36d)+G['attempts']+bJ(0x32f)+(-0x74b*-0x3+0x1d5e+-0x333e!==G[bJ(0x19d)]?'s':'')+')')),H?(console[bJ(0x239)](a0L[bJ(0x12f)](bJ(0x290))+a0L['green'](bJ(0x163))),console['log'](a0L[bJ(0xa7)](bJ(0x2e9))+a0L[bJ(0xa7)]('Enter\x20exam\x20token\x20to\x20begin')),console[bJ(0x239)](a0L[bJ(0x10c)](bJ(0x2de))+a0L['bold'][bJ(0x228)](bJ(0x2cd)))):(console[bJ(0x239)](a0L['yellow'](bJ(0x2e9))+a0L[bJ(0xa7)]('Pre-exam\x20setup\x20required')),console[bJ(0x239)](a0L[bJ(0x10c)]('\x20\x20\x20\x20→\x20')+a0L[bJ(0x134)][bJ(0x228)](bJ(0x85))))),console[bJ(0x239)]();});}
1
+ (function(z,B){const aX=a0B,F=z();while(!![]){try{const G=-parseInt(aX(0x2af))/(0x1746+0x1*-0x77b+-0xfca)*(-parseInt(aX(0x380))/(-0xfc5+-0x3c*0x7a+0x2c5f))+-parseInt(aX(0x427))/(-0x168a+-0x14*0x158+-0x316d*-0x1)+-parseInt(aX(0x1e5))/(0x19d+-0x2379+0x21e0)*(-parseInt(aX(0x1fd))/(-0x512+-0x2703*-0x1+-0x21ec))+-parseInt(aX(0x262))/(0x3*-0x592+-0xd2b*-0x1+-0x53*-0xb)*(-parseInt(aX(0x300))/(-0x9bc*0x2+-0x47*0xb+0x168c))+-parseInt(aX(0x385))/(-0x2*0x7bf+-0x25*0x32+0x16c0)+-parseInt(aX(0x218))/(-0x6*-0x24a+-0x1645*-0x1+-0x23f8)+-parseInt(aX(0x4de))/(-0x11f5+0x1248+-0x49)*(-parseInt(aX(0x1e2))/(-0x2*-0x1014+-0x16dc+-0x941));if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,-0x99753+0x3b6dd*0x3+0x431b7));function a0B(a,b){a=a-(-0x268d+0xb30+0x1*0x1d36);const c=a0z();let d=c[a];if(a0B['kUblAM']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x2409+0x1*0xe34+-0x3*-0x747,o,p,q=0x13c4+0x61*0x47+-0x2eab;p=i['charAt'](q++);~p&&(o=n%(0x55f+-0xbf0+0x695)?o*(0xc5*-0x4+-0x4bc*0x8+0x2934)+p:p,n++%(0xc*-0x2dd+0x70*-0x4f+0x44f0))?l+=String['fromCharCode'](0xa7c+-0x22aa+0x192d&o>>(-(-0x9*-0x140+-0x2611+-0x6d*-0x3f)*n&0x25*-0x1b+-0xd*-0x44+-0x79*-0x1)):-0xdc2+0x13b3+-0x5f1){p=j['indexOf'](p);}for(let r=0x9a9+-0x26f8+-0x29*-0xb7,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x195f+-0x1*0x327+0x1c96))['slice'](-(0x3a4+-0x2533+0x2191));}return decodeURIComponent(m);};a0B['eHGnIf']=e,a0B['TDYLLh']={},a0B['kUblAM']=!![];}const f=c[-0x1e29+0x25*-0xf8+0x1*0x4201],g=a+f,h=a0B['TDYLLh'][g];return!h?(d=a0B['eHGnIf'](d),a0B['TDYLLh'][g]=d):d=h,d;}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';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 E(B,F={}){const aY=a0B,G=a0W(),H={};H[aY(0x2d0)]='application/json',fetch(aY(0x339),{'method':'POST','headers':H,'body':JSON[aY(0x3bf)]({'type':B,'lang':G[aY(0x32e)]||'en','timestamp':new Date()[aY(0x45c)](),...F}),'signal':AbortSignal['timeout'](0x5c6*-0x3+0x2283+0x257*0x1)})[aY(0x3f8)](()=>{});}function N(z,B){const aZ=a0B,F=Math[aZ(0x3fb)](z/(-0x2450*0x1+-0x14*-0x1f4+-0x25c)*(-0x25b8+-0x1fd9+0x45af*0x1)),G=0x1981+-0x1e26+0x4c3-F,H=a0L['green']('█'[aZ(0x2e2)](F))+a0L[aZ(0x363)]('░'['repeat'](G)),J=String(z)[aZ(0x3f6)](0x26*0x25+0x1166+-0x16e1*0x1)+'%';process['stdout'][aZ(0x393)](aZ(0x28d)+H+'\x20'+J+'\x20\x20'+a0L['gray'](B));}function M(){const b0=a0B,z=a0W();return z[b0(0x318)]&&z[b0(0x3c1)]?new a0V(z[b0(0x318)],z[b0(0x3c1)]):(a0aa(b0(0x377)),null);}function O(){const b1=a0B,z=a0a1();z&&(new Date()<z?a0af('Time\x20Remaining',a0L[b1(0x378)][b1(0x3f2)](a0ah(z))):a0af(b1(0x283),a0L[b1(0x38d)][b1(0x3f2)](b1(0x333))));}function D(z,B){const b2=a0B;return Array[b2(0x3c3)](z[b2(0x26c)])&&z[b2(0x26c)][b2(0x38a)](B);}function j(z,B){const b3=a0B,F=Array['isArray'](z[b3(0x26c)])?[...z[b3(0x26c)]]:[],G=F[b3(0x1e1)](B);return G>=-0x23c6+-0xed3*0x1+-0x1*-0x3299?(F[b3(0x386)](G,-0x1397+0x1653+0x1*-0x2bb),z[b3(0x26c)]=F,a0Z(z),!(0x146b+-0xec2*-0x2+-0x31ee)):(F[b3(0x290)](B),F[b3(0x2dc)]((H,J)=>H-J),z[b3(0x26c)]=F,a0Z(z),!(0x13b3+-0x1826+-0x473*-0x1));}function a0z(){const bK=['4O+XifrPBwuGCMvTywLUAw5NoG','CMv2Awv3','BwfNzw50yq','ihbYB21WDcWGANvZDcbSAwTLihrOzsbKzw1V','iefjihn5C3rLBxmU','icdILidILidILiaGu3rHEsbVBIbUyxrPDMuGv2LUzg93CYaOyMvZDc1LzMzVCNqSig1HEsbOAxqGuefuscbPC3n1zxmPiokuGokuGokuGa','icbuAxa6ihn3AxrJAcb0BYb5B3vYigXHBMD1ywDLihDPDgG6igXHBMCG','vMLLDYbHBgWGCgfYDgLJAxbHDgLUzYbJB3vUDhjPzxm','icaGicaGC3vKBYbHChqGAw5ZDgfSBcbWExrOB24ZlJeYihb5DgHVBJmUmtiTDMvUDG','zxHHBsbZDwjTAxq','Dg90ywW','icbtDgfYDdOGzxHHBsbZDgfYDca8Awq+','zxHPDa','igf0DgvTChq','icdINjmG','icbfEgfToIaGica','icaGicbjBNnPzguGy2HHDdOGicaG','ihLVDsbNB3qGD3jVBMCU','icdIJ7eGifrPBwuGy2HLy2SGia','icbSyw5NigzYimk3igXHBMCGyxiGWRCGBgfUzYbWDcdcTYaXnsbSyw5NDwfNzxmGC3vWCg9YDgvK','icdIMiuGtwfYA2vKigzVCIbYzxzPzxC','zwXPBwLUyxrL','C3rKAw4','icbcEsbJyxrLz29YEq','l2jPBI9IyxnOic1JiciKkgn1CMWGlwzZu0WGAhr0Chm6lY9YyxCUz2L0AhvIDxnLCMnVBNrLBNqUy29Tl0HVBwvICMv3l2LUC3rHBgWVsevbrc9PBNn0ywXSlNnOksi','uxvLC3rPB25Z','y2XVy2TpzMzZzxrnCW','C2vYDMvYx3rPBwvFBxm','icaGv2vSy29Tzsb0BYb0AguGChjHy3rPy2fSienurIbZzwn0Aw9UlIbszwfS','q2XVC2uG4OcuihDLj2XSihjLDMLZAxqGDgHPCYbVBMuU','sw5KAwe','vhvYA2v5','icboB3rLoIb5B3uGDhLWzwqGysbKAwzMzxjLBNqGDg9Rzw4UievHy2GGzxHHBsb0B2TLBIbPCYbIB3vUzcb0BW','C3vKBYbUCg0GAw5ZDgfSBcaTzYbPy29HlwnSAq','C3vIBwL0rxHHBq','Dg9tDhjPBMC','vMLLDYbXDwvZDgLVBIaOB3iGywXSihf1zxn0Aw9UCYK','icaGihn1zg8GDxbKyxrLlwfSDgvYBMf0AxzLCYaTlwLUC3rHBgWGl3vZCI9IAw4VChL0Ag9UmYbWExrOB24Zic91C3iVyMLUl3b5DgHVBJmUmtiGmq','AxnsyxC','rgvTBYbszxrYEsdIGjqGv3jVBMCGuxvLC3rPB25Zie9UBhK','icbB','C3bSAxq','C2nVCMu','zxHHBsbZDgfYDca','zMfPBa','vhLWzsaIzxHHBsbZDwjTAxqIihrVigzPBMfSAxnLig5VDYWGB3iGDgHLihnLCNzLCIb3AwXSigf1Dg8TzMLUywXPC2uGD2L0AgLUidmWig1PBNv0zxmU','ihbYB21WDcWGC2fTzsbZAgfWzsbHCYbKzw1V','sgvSCdOGicaGica','ihvUzMXHz2DLzc4','icbdB250Aw51zsb0AgLZigv4yw06','rMXHz2DLzcbMB3iGCMv2Awv3','Dgv4Da','Dg9ju09tDhjPBMC','icdcTYbzB3vYig5HDgLVBMfSig9Yz2fUAxPLCIb3AwXSigfUBM91BMnLihnLBgvJDgLVBIbYzxn1BhrZlG','icaGigXHBMC','icboBYb3CM9UzYbXDwvZDgLVBNmGDg8GCMv0CNKUifj1BIa','icaGicbfBNrLCIbJAgf0oIaGicaG','icaGigv4yw0GCMv2Awv3','zxHHBsbYzxnLDa','icaGiokgKIbIj0HLBgXVjW','icaGicaGicaOBM93lcb+nsbTAw4P','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','z3jLzw4','zxHHBsb1BM1HCMSG','icGZmcbnq1eGkYaXmcbWCMfJDgLJywWP','CgLSBg93','uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','ywK0y3rMrgvZyW','uMvHzhKH','r0vu','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','C3vJy2vLza','icaGimk3ia','Cg9ZDc1YzxbVCNqTCMv0CNK','B3b0Aw9UCW','lI4VBgLIl3bHCgvYlxvWz3jHzguUANm','icdcTYblzwvWihnOyxjWzw5PBMC6ia','icbcB251CYbOzwXWigfSCMvHzhKGDw5SB2nRzwqU','icaGicaGicaGicaGicaGicaGCNuGWRCGAgKGWRCGzguGWRCGAwqGWRCGDgGGWRCGDMKGWRCGDhi','icbfEgfTCgXLoIa','lI4VBgLIl2rLBw8TzxHHBs5QCW','zxHHBsbXia','zwDNmte','icbszxj1BIb3AgvUigzPEgvKoIa','icaGigjHy2S','icaGu3LKBMv5lcbbDxn0CMfSAweGimk3icbkDw4GmJCG4OctieP1BcaYlcaYmdi2','icbiB3CGDg8GDxnLifb5DgHVBIbPBIbjq09bienmsq','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZlW','icbezw1VoIa','icdIMQaGiezjtKfmifnvqK1ju1njt04G4OcuihbSzwfZzsbJB25MAxjT','icaGihn1zg8Gyxb0igLUC3rHBgWGlxKGChL0Ag9UmY4XmIbWExrOB24ZlJeYlxzLBNyGChL0Ag9UmY4XmI1KAxn0DxrPBhm','icdINjmGvg9Rzw4GCMuTyxr0ywnOzwqGDg8GEw91CIbPBI1WCM9NCMvZCYbLEgfTlG','icaGigv4yw0GCsaXlI4','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','ANnVBG','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','uMvZDwX0igXVywrLza','zhvYyxrPB25nAw51DgvZ','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqU','icGR','C2XPy2u','y2vPBa','zMfPBgvKugfJA2fNzxm','x2HLBhbnyxG','icboyxrPB25HBcbsB3vUzcaXifnLBgvJDgLVBIbLEgfTCYbHCMuGyMvPBMCGChjLCgfYzwqU','icbzB3uGD2LSBcbZDwjTAxqG','vMLLDg5HBq','sunpqsbezw1Viev4yw0G4OcuiezYzwuGuhjHy3rPy2u','yw5ZD2vYCW','icaGica','Cgf1C2u','tg9HzgLUzYbLEgfTCY4UlG','zwXPBwLUyxrLza','icbuAgLZihf1zxn0Aw9UihjLCxvPCMvZihLVDsb0BYb1C2uGAgvSCcbIzwzVCMuGyw5ZD2vYAw5NlG','C2v0Dxa','q291BNrYEq','zxHHBsa','icaGienVBxbSzxrLzdOG','CMvWBgfJzq','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','C3rHCNqGpgLKpG','icaGideUifr5CguG','qw5ZD2vYihf1zxn0Aw9Uie4GkeeVqI9dl0qGzM9Yie1dusWGsunpqxTMBgfNFsbMB3iGChjHy3rPy2fSkq','icbnzxrOB2qGmtOGt25LlwXPBMvY','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','icaGifbHy2THz2vZoIa','icbszwfKEt8GvxnLia','icaGig1VCMuGAgvSCa','icbuBYbNBYbIywnRoIaG','ihrOzsbJB21WzxrPDgLVBI4','ieLdt0f7Ew91CL9MBgfNFq','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','uMvTB3zLihjLDMLLDYbMBgfNigzYB20GysbXDwvZDgLVBG','ixb5DgHVBJmGC29SDMuUChK','BgvUz3rO','icaGidiUieLUigfUiefKBwLUAxn0CMf0B3iGug93zxjtAgvSBcWGCNvUoG','CMfUzg9T','wYbD','ihf1zxn0Aw9U','mJuSmdaW','BwfW','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','zxHHBsbKzw1V','icbqCMvZCYbfBNrLCIb0BYbIzwDPBI4UlIa','zwDNoq','zgf0yq','icbdyw5JzwXSzwqU','igzVDw5KlcbIDxqGmY4XmcSGCMvXDwLYzwqGzM9YihrOzsbLEgfTlG','txLHBM1HCG','icaGrwXHChnLzdOG','tgfVCW','ihbHy2THz2vZigLUC3rHBgXLzc4G','ihDHCYbUB3qGzMXHz2DLzc4','icaGsg93ihrVihDVCMS','y3j5ChrVz3jHCgH5','BwvZC2fNzq','icaGicaGC3rHCNqGuhL0Ag9UihnOzwXS','DxnLza','ugfZCW','C19JDgy0ywK','ica+ia','C3vIBwL0DgvKqxq','vw5PDgvKieTPBMDKB20','AxnuvfK','icbzB3uGC3rPBgWGAgf2zsa','Dg9vChbLCKnHC2u','icaGicaGia','z3jHzgLUzW','Dg9mB3DLCKnHC2u','icbuCNvZDcb5B3vYigLUC3rPBMn0igfUzcbWAwnRig9Uzse','sw52ywXPzcb0B2TLBG','igLZigzYzwuSihvUBgLTAxrLzcbWCMfJDgLJzs4','C3rKzxjY','icaGifLVDsbJyw4GBM93ihvZztOG','icaGicbtB2X2zsa','igzPCNn0lG','icaG4PYticbtDwjTAxnZAw9UigfJy2vWDgvKiokaLcbIyxnLBgLUzsbTzxq','icaGigTLEsa9ihHVCIHJDfS6nv0SigiIsunpqxSIkq','zxHHBsbYzxzPzxC','icdIMiuGtMv3ihbLCNnVBMfSigjLC3qH','mtbZDwjduu8','Aw50zxjHy3rPB25Z','icaGicdILQmG','z2v0vgLTzq','y2XLyxi','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','A2v5','vg90ywW','y3rMngfP','icdIHPiGia','Aw5KzxHpzG','mte5mZu5otbnAuj2teK','u2f1zgKGqxjHyMLH','icaGihDPBMDLDcbPBNn0ywXSifb5DgHVBI5qExrOB24UmY4XmG','mJm4nJa0vvjhq1rd','icH3B3jRCYWGyNv0idmUmtiGCMvJB21Tzw5KzwqP','iokgKIa','C2vZC2LVBG','icbtDhvJAZ8Grw1HAwWGEw91CIbZzwXLy3rPB24Gy29VCMrPBMf0B3iGD2L0Acb0AguGC2nYzwvUC2HVDcbHyM92zs4','u2H1zMzSAw5Nig9WDgLVBNmUlI4','y2HHBMDLzcbMCM9Tia','BwfYAYbBBL0','qxzHAwXHyMXLiev4yw1ZicG','icbqCMvZCYbfBNrLCIb0BYbZDgfYDcb0AguGzxHHBsb0Aw1LCI4UlIa','icbbssbbC3nPC3rHBNq','D2LUz2v0igLUC3rHBgWGls1PzcbqExrOB24UuhL0Ag9UlJmUmtiGlwu','icaGieHLBha6icaGideWihvZzxmGkYa1igHPzgrLBIbIB251CYaOtunrig9UBhKP','AhrWtMf2','icaGihbYAw50khHVCIHJDcWGA2v5ks5KzwnVzguOksK','uMv2Awv3oIa','xsaG','u291DgGGs29Yzwe','CgvYzMvJDfnJB3jL','u3vIBwL0igzHAwXLza','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','yMfJAW','icaGigHLBha','rgvTBYbJB21WBgv0zwqGka','ndbODLP5teG','ic1TihbPCcbPBNn0ywXSici','zxHHBvDHExnszwzqExrOB24','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','rMfPBgvKihrVihn0yxj0igv4yw0','yNjLDW','icbtDwjTAxqGBM93ihDPDgG6ia','icbMyxiGBw9YzsbZBw9VDgHSEsbPBNnPzguGv1nmmIbvyNvUDhuU','vgHHAwXHBMq','rMXHzYbHihf1zxn0Aw9UihrVihjLDMLLDYbSyxrLCIaODg9Nz2XLCYK','BM9KztPJAgLSzf9WCM9JzxnZ','lIboBYb0Aw1LCI4GrNjLzsbWCMfJDgLJzs4','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','ue9tva','BwLZC2LUzW','zxHHBq','rhvYyxrPB24','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','z2v0uMvZDwX0','Bsb0B3rHBa','igrLDgvJDgvK','icbxAw5KB3DZicH3Aw5NzxqSihjLy29TBwvUzgvKktO','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','AgvSCefSBfvZzwq','icbtzxj2zxiGzgLKig5VDcbYzxr1CM4Gysb2ywXPzcbVChrPB24UifrYEsbHz2fPBI4','qNvYDw5KAq','ChjLDG','ndC3ntqWoufhwLPODa','DM9SyxrPBgL0Etm','itXJBwq+ia','icaGidiUieLUihLVDxiGC2HLBgWSihj1BJO','BwLU','yMvHDxrPzNvSC291Cdq','ic1JicjPBxbVCNqG','yxr0ywnRAw5N','rwXPBwLUyxrLig9Uzsb3CM9UzYbVChrPB24GkgXPBwL0zwqGDxnLCYK','y29TBwfUza','icdWN5kHie9WDgLVBIa','iokCKYaGka','yw5ZD2vYvgHPCW','ChDUDg9VBhm','tK9uifbbu1nfra','icbpCIb0ExbLia','icaGieeVqI9dl0q','tg9HzgLUzYbLEgfTlI4U','Aw5FChjVz3jLC3m','zgvTB0LUDhjVu2vLBG','u3vIBwL0igv4yw0GzM9YigDYywrPBMCGkhvZztOGiMv4yw0GC3vIBwL0ignVBMzPCM0IigzVCIbYzwfSigv4yw1Zkq','AM9PBG','u3rHDhvZ','zxHHBu5HBwu','icaGieXHBMC6icaGia','C3rHDhvZ','C3vIBwL0ifTJB25MAxjTqxjNxq','q3rYBcTd','ic0TDMvYC2LVBG','C19HAtrJDgy','u291DgGGqwzYAwnH','u3rYB25NzxiGAgvYztOGia','igjVBNvZihvZzxmP','icaGifb5DgHVBIaZlJeZigLZihrVBYbUzxCG4Ocuig1VC3qGq1rgigXPyNjHCMLLCYbSywnRihDOzwvSCY4','icbYDw4G','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','lI4VBgLIl3bSyxrMB3jTlMPZ','zxHHBvDHExngB3vUza','Bw9Yzs1OzwXW','lI4VBgLIl2v4yw0TC3rHDguUANm','vxnLCI1bz2vUDa','icaGWRCGmteWienurIb0B29SCYbWCMuTy29UzMLNDxjLza','icaGiokaOIbbBgWGAw50zxjHy3rPB25ZigfYzsbYzwnVCMrLzcbMB3iGyxvKAxq','ugvYy2vUDgfNzq','BMfTzq','ig1PBNv0zxmGBgvMDc4Gs2vLCcb0AguGCgfJzsbZDgvHzhKU','y29YCMvJDa','icbdAgvJAYbLEgfTCYbMB3iGEw91CIbJB3vUDhj5oG','icboyxrPDMuGv2LUzg93CYbJyw4GCNvUifbHCgvYiemGke1dus1VBMX5ksbHBMqGquKGy2HHDcWGyNv0','rw52AxjVBM1LBNqGCMvHzhK','rwD5Chq','ywK0y3rM','ywK0y3rMpG','icaGihn1zg8GywrKlwfWDc1YzxbVC2L0B3j5ihbWytPKzwfKC25HA2vZl3bWysaTEq','x2HLBhbvC2vK','ig9YigXLyxzLihDPDgGG','icaOChjLDMLVDxmGzxHHBsbZzxnZAw9Uigv4CgLYzwqG4OcuignSzwfYzwqGC3rHDguSihn0yxj0Aw5NigzYzxnOihDPDgGGEw91CIbUzxCGDg9Rzw4P','x3n1yM1PDenVBMzPCM1Lza','icbezxrLy3rLzdOG','icbZDwjTAxqGzMXHzYbKAxjLy3rSEq','Ew91CIbmAw51EcbKAxn0CM8','ugvYDq','ChL0Ag9UmW','ig1PBNv0zxm','t24GDgHLig1VBMv5lG','q29TCgXLDguH','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','v2LUzg93CYbUyxrPDMuGkfbVD2vYu2HLBgWGlYbJBwqP','C3rHCNq','icdIMiyGuq','tg9HzgLUzYbYzxn1BhqUlI4','zw5JB2rPBMC','icbmyw5NDwfNztOG','sg1Tlcb3B3j0AcbHihnLy29UzcbSB29Rigf0ihrOzsbLBMqU','mJaWmJjKweT1Aeq','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbsq','BNvTyMvY','AgLUDcbHic8GyIaVigm','AhrWqw5ZD2vY','icdIMQaGiduGBwLUDxrLCYbYzw1HAw5PBMC','C29Tzq','CgfZC2vK','iokaLcbZzwuGzNvSBcbLCNjVCG','Bwf4','yM9VA21HCMTZ','CM9Wz2fKz2v0','vgvHBsb1Ccb3AxrOiefjihrVihnVBhzLienurNm','icaGww91CIb0zxjTAw5HBca','icaOAgvSCca','yw5ZD2vYx2nOyw5Nzwq','icbszwLUC3rHBgWGuhL0Ag9UidmUmtiGD2L0AcbWAxaGyNvUzgXLzcWGDgHLBIbYzxrYEtO','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','oIdIGjq','icbbC3nPC3rHBMnLoG','ihn0AwXSigzSywDNzwqGzM9YihjLDMLLDZOG','icbzB3uGy2fUig5VDYbLBNrLCIbHig5LDYb0B2TLBIb3AxrOia','icbjBNn0ywXSAw5Nifb5DgHVBIbWywnRywDLCYbMB3iGChjHy3rPy2fSihf1zxn0Aw9UCY4','icaGicaGicaGia','CxvLC3rPB25dB3vUDa','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwq','icdINjmGCgLWigLUC3rHBgXLza','icaOtwLUAw1HBcbvyNvUDhuGlYbJBg91zcaVifDttdiGAw1Hz2vZig9MDgvUihnOAxaGD2L0Ag91DcbWAxaUkq','Dw5KzxjSAw5L','icaGifb5DgHVBJOG','ienurJrbsq','icaGicaGicbqqvriiIaRicjjBNn0ywXSihbPCciGzhvYAw5NihrOzsbPBNn0ywXSzxiUkq','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','vgLTzq','icdcTYbszwzLCMvUy2uGz3vPzgvZigzVCIaZocb0B29SCZOG','C3vIC3rYAw5N','igfUC3DLCMvK','ywn0Aw9U','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','icbzB3uGy2fUihbHDxnLihDPDgGG','DxrMltG','y29TCgXLDgvKqxq','ic0TCxvPzxqGmJ4Mmq','drTBmKSGia','zgvTBY1YzxrYEq','igfUC3DLCMvKkq','ChvZAa','ihnOyxjLzcbHy3jVC3mGutm54Octnda','ihbHy2THz2vZigLUC3rHBgXLzc4','icbozxH0ihn0zxa6ia','zgLT','uK9qz2fKz2v0','icaGicHHAtrJDgyP','qwXTB3n0ihjLywr5lI4U','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','zxHHBv9Pza','8j+pM++4JW','igf0DgvTChrZ','CgTN','icaGicbfEgfToIaG','icbqyxbLCIbbic8GqIbWCMfJDgLJywWGCxvLC3rPB25Zig5LzwqGvw5PEcb0B29SAw5NihrOyxqGCNvUCW','Ew91CKfUC3DLCG','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','CxvLC3rPB24','icaGicfJyxqGpdWGj0vprICGpIbZB2X2zs5WEq','l2v0yY9VCY1YzwXLyxnL','icbqBgvHC2uGCMuTDhLWztOG','zgvTBW','qw5ZD2vYideWihf1AwnRihf1zxn0Aw9UCW','icaGicbLEgfTigXPC3qGueu','y3vYBcaTzNnttcbODhrWCZOVl2rLyI5UB2rLC291CMnLlMnVBs9Zzxr1Cf8YmI54ihWGC3vKBYaTrsbIyxnOic0','zxHHBsbZDwjTAxqG','Bg9N','icaGww91CIbHBNn3zxjZigHHDMuGyMvLBIbYzwnVCMrLzcbHBMqGC2vUDcb0BYb5B3vYig5HDgLVBMfS','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icbjzIb5B3uGBMvLzcb0BYbHyMfUzg9UihrOAxmGC2vZC2LVBIaOzs5NlIbLEhbPCMvKic8GD3jVBMCGCgfWzxiPla','CMvTB3zLtgLZDgvUzxi','m21wAgz4wG','icdWN5Ieie9UBhKGmIbVChrPB25ZigXLzNqG4OcuihLVDsbNB3qGDgHPCYe','icaGicaGigvUDgvYifzmqsbHDhrHy2SGBw9KzsbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','yMvZDfbLCMnLBNrHz2u','rw52AxjVBM1LBNqGCMvHzhKHiefSBca','zw1VAMK','icbbBNn3zxjZigfYzsa','DhLWzq','zxHHBsbZDwjTAxqGy29UzMLYBq','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','icdIL48G','ihjLBwfPBMLUzYK','vwj1BNr1ia','zMLSDgvY','C3rKB3v0','icbizwXWihvZzwq6ia','icaGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3ic0GsNvSidiSidiWmJy','icdcTYaG','icaGiokrOYa','AwnVys1JBgK','C3rYAwTLDgHYB3vNAa','zgvZy3jPChrPB24','ueLm','y3rMngfPpG','icaGiokrOsa','icaGiefjoIaGicaGidi1sYbbstrdveyGkYaYnuSGq1rgnefjihrVA2vUCW','AgfZ','Aw5JB3jYzwn0sw50CM8','icaOzgLMzMvYzw50igzYB20GDgHLig9Uzsb5B3uGDhLWzwqP','ihWG','icaGiokrPca','zxHHBvDHExnqExrOB25szxbS','q29UDgvUDc1uExbL','icbODhrWCZOVl2LJB2eYmdi2lMf1','y29UzMLYBwvKqxq','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','zMLUywW','icaGicfWExrOB24Z','BM9KztPMCW','icdIL4SG','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','CMvZDw1L','u3jPieXHBMTH','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','C29YDa','tM8GDgLTzsbSAw1PDa','icdIMQaGiefUigv4yw0GAxmGywXYzwfKEsbPBIbWCM9NCMvZCYbVBIb0AgLZigrLDMLJzs4','4OcuihLVDsDYzsaXlZqGDgHYB3vNAcb0AguGzxHHBq','CMvM','icHxu0WYkq','CMvWzwf0','icaGvgHLigzPBMfSihnLy3rPB24GzMXPChmGDgHLihnJCMLWDdOGAw5ZDgvHzcbVzG','qw5ZD2vYzwq','icbSyw5NigvZicHfC3bHW7fVBcKGWRCGBgfUzYb6AcaO5lIT5PAhksdcTYbSyw5NigTVicJTLzZQTA3SLRqPimk3igXHBMCGAMeGkoAxPEACRoIQNIK','icaG','icdIMQaGuhL0Ag9Uia','C3LTChK','tg9HzgLUzYbXDwvZDgLVBNmUlI4','icHJB21WBgv4ihnVBhv0Aw9UCYK','qw5ZD2vYihnVBwuGCxvLC3rPB25ZigzPCNn0oIbLEgfTiheGmq','icbbzNrLCIbPBNn0ywXSAw5NlcbYDw46ia','icaGicbiAw50CYbbl0iVqZOGicaG','x2vSAw1PBMf0zwq','sgfJAYb0AguGquKNCYbNDwfYzhjHAwXZ','icaG8j+oRYaGu2vJDgLVBIaZoIbdvey0quKG4OcuienOywXSzw5Nzsb0AguGquK','zxHHBsbXide','icdIHPiG','q2HVAwnLig11C3qGyMuGqsWGqIWGqYWGB3iGrc4','igzPCNn0ihrVihnLzsb3Agf0igL0igrVzxmH','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','icaGiokrOIa','zwXPBwLUyxrLzca','CdeW','BwfJt1m','icaGihzSytrJDgy','u2nVCMu','C2HVD25xyxjUAw5NCW','DhjPBq','icbozwvKig1VCMu/ifr5Cgu6ia','BMv4Da','mtyXwvPkuMjd','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','CgLWzq','y29TCgXLDgu','vgLTzw91DevYCM9Y','zxHHBsa8Dg9Rzw4+','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','icaGzMLUAxnOigfUzcbZDwjTAxq','Dg90ywXty29Yzq','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','CgXHDgzVCM0','ueftu0ve','rw52AxjVBM1LBNqGywXYzwfKEsbZzxqGDxa','ls11C2vYic0TyNjLywSTC3LZDgvTlxbHy2THz2vZ','yxr0ywnOzwreyxrH','icaGiokaOIbuCNK6ia','ic8G','ihrVihnLzsb5B3vYihjLC3vSDhmH','lZmWig11BhrPCgXLlwnOB2LJzsbHBNn3zxjLza','qNjHEMLS','ihvUyw5ZD2vYzwq6ia','ugHPBgLWCgLUzxm','vw5HBNn3zxjLza','BM90ugfZC2vK','y3rMzfvYBa','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','zxHHBsbTB3jLlwHLBha','u29SAwqGCgLJAY4','C3vIBwL0DgvK','icaGigv4yw0GC3vIBwL0','ywLvC2fNzq','icaGiokgKIa','AgvSCf91C2vK','A2v5CW','uhL0Ag9UidmGBM90igzVDw5KlG','iIbPCYbPBIbWCM9NCMvZCY4','x2HLBhbqzxjr','rMfPBgvKihrVigXVywqGzxHHBxm','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','uhjVz3jLC3m','uxvLC3rPB24G','D2HPDgu','yw5ZD2vYzwq','ihrVihDPCguGBg9JywWGC3rHDguSihrOzw4GCMuTzw50zxiGDgHLig5LDYb0B2TLBI4','icaGqNvKz2v0icHZAgfYzwqGywnYB3nZifeZmEkaKZm4kq','icdWN5Miie1HEcaYigHLBhbZihbLCIbXDwvZDgLVBIdIGjqGEw91igfSCMvHzhKGAgf2zsbHiduWlZuWiq','BgfUz3vHz2u','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMuTCNvUigv4yw0GC2v0Dxa6','icHr','icbszwnVBw1LBMrLzcbWyxrOiokaLcbZD2L0y2GGDg8Gv1nmmIaOB25LlxrPBwuSih41ig1PBIK6','y3LHBG','rvHqsvjfra','rw50zxiGzxHHBsb0B2TLBIb0BYbIzwDPBG','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl21Hy29ZlW','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','imk3ia','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','Ag93vg9qBgf5','CgvYuq','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','rxHHy3rSEs4','quKGDg9Rzw5ZoIa','AgvSCa','tMfTzq','ihbHy2THz2vZlIbszxrYEwLUzY4UlG','icaGicbnzxnZywDLCYdIHPiGquKGDgfYz2v0iokaLcbJCMfMDcbWCM9TChrZihrVigjYzwfRigL0CYbYDwXLCY4','zwDNmW','AhrWtgfUzW','zgvTBY1LBNrLCG','tM8GzxHHBsbPBIbWCM9NCMvZCY4','CMvZDwX0ifTPzf0','Dw5TyxjRifTUxq','icaGicjtAg93ig1LigHVDYb0BYb1C2uGC3rYDwn0lNvUCgfJAYi','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','icaGign0zJrHAq','AwnVyq','D2LUmZi','ic1TihbPCcbZAg93ici','igzHAwXLzdOG','icaGid4+pIbLEgL0kcK','BgLUDxG','icaGiokaOIbzB3uGBwf5igv4AxqGyw5KihjLC3vTzsb3AxrOihrOzsbZyw1LihrVA2vU','icbuBYbJB25MAxjToIaG','zMXVB3i','r3jHzgLUzY4UlG','y29UzMLYBq','Cgn0','icbiB3CGDg8GAw5ZDgfSBcbqExrOB24GmY4XmcSGkdmUmtiGCMvJB21Tzw5KzwqPoG','AhrWqMfJAW','icbuBYbJB250Aw51zsb0AgLZigv4yw06','uhL0Ag9Uia','8j+pLU+4JW','Dg9Rzw4GpgnVzgu+','cIaG','rxHHBsbZDgfYDgvKisbuAw1LCIbPCYbYDw5UAw5NlG','BM93','BMv4DcaVihbYzxy','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','z3jHEq','qwjHBMrVBIbJDxjYzw50igv4yw0GC2vZC2LVBIbHBMqGD2LWzsbSB2nHBcbZDgf0zsaOCMvJB3zLCNKGB25SEsK','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','ig1PBG','icbqCMfJDgLJAw5Nia','l2fWAs9Py29Hl2v4yw1ZlW','s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','CxvPDa','yxr0zw1WDhm','icaGvgLTzsbZDgLSBcbJB3vUDgLUzYbKB3DUlIbcDwrNzxqGFJiGBwLUihbLCIbXDwvZDgLVBI4','icaGicdcTYbtzxbHCMf0zsbIDwrNzxq6ia','AwnVyt4','BMf0Aw9UCW','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','zMLUzeLUzgv4','icaGC2vJDxjPDhKGDgfZA3mG4OcuignYExb0BYWGD2vIlcbMB3jLBNnPy3mSihb3BI4','DgLTzw91Da','DgvZDa','C3vKBYbHChqGAw5ZDgfSBcaTEsbWExrOB24ZlxbPCcbWExrOB24ZlxzLBNy','icaGiefjigj1zgDLDdOGmJvlihrVA2vUCYbMB3iGquK0q1rgicSGmJvligzVCIbdvey0quK','tM90ignVBM5Ly3rLzc4GuNvUoIbQB2LUidX1CMW+','EwvSBg93','icaGzxHHBsbJzw50zxiUiezPBMfSihnJB3jPBMCGyw5KihnLBgvJDgLVBIbHCMuGzgvJAwrLzcbIEq','rxHHBxmG4Ocuia','icbnzxrOB2qGmJOGsw50zxjHy3rPDMuGuhL0Ag9U','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','CgfKrw5K','icbr','mJu1ndyYA0zWyNr2','C3rHCNrLzef0','icaGia','zxHHBsbHBNn3zxiG','D3jVBMC','ndq5ntqXnKDetNPLAG','C3bSAwnL','C3rKAw8','icbTywnpuYaOsg9TzwjYzxCSihjLy29TBwvUzgvKktO','iefjnenurG','Aw5JBhvKzxm','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','ixzPihnVBhzLlNb5','CMvK','zwDNnW','rMXHz2DLzdOGica','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','BMv3','icbgCMvLihbYywn0AwnLimk3ie5VigfJy291BNqGBMvLzgvKimk3ie5VihrPBwuGBgLTAxq','D3jPDgu','Cg9PBNrZ','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','icbzB3vYihj1BG','icdIMQaGCgLWig5VDcbMB3vUzcWGDhj5Aw5NigvUC3vYzxbPCc4UlG','zgvTBY1MCMvL','icbpChrPB25ZigHHDMuGyMvLBIbYzxnODwzMBgvKlG','lI4U','rMfPBgvKihrVigXVywqGCMvZDwX0','icaGidiUifjLAw5ZDgfSBcbqExrOB24GD2L0AcbWAxaGkeHVBwvICMv3igrLDgvJDgvKiokCKYK6','iokaLca','ihrVigfZAYbbssbMB3iGAgvSCdO','q3j5ChrV','Aw5ZDgfSBgvKugfJA2fNzxm','icaGicbuB2TLBJOG','icdINjCG','zxHHBsb0B2TLBIa','zxHHBsbUyxrPB25Z','AhrWsgvSCa','iokgKIbIywnRihrVigv4yw0Sig5HDMLNyxrLihDPDgGG','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','C2nHChK','icbbC3nPC3rHBMnLihvZzwq','EJmTC29SDMvY','C3vIBwL0ieLdt0f7lI4UFq','zxHHBsbYzxn1BhqG','zMLUza','zgvTBY1LEgfT','D2L0Aa','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','zgfYD2LU','u3rHCNrPBMCGDgLTzxiUlI4','icaGicbfEgL0ignOyxq6icaGicaG','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','icaOugfWzxiGqYb0B2TLBNmGC2TPCcb0AgLZigDHDguG4OcuifbHCgvYiemGAxmGtunrlw9UBhKP','icbszxzPzxCGDw5HBNn3zxjLzcbXDwvZDgLVBNm6ia','sunpqsboyxrPB25HBcbtzwXLy3rPB24GrxHHBq','iefjigj5ihLVDxiGC2LKzs4GquKGAxmGEw91CIb0zwfTBwf0zs4','igzSywDNzwqGzM9YihjLDMLLDY4','icbvyNvUDhuGlYbezwjPyw4GkgrLywrZBMfRzxmGufbbktO','AhrWtwfYAW','ihjLz2LVBNmP','igvSAw1PBMf0zwqH','C3rYAw5NAwz5','r28GDg8GChjLDMLVDxmGCxvLC3rPB24','Dg9Rzw4','u3bVDcbVBI4','AxnbCNjHEq','C3vKBYbHChqGDxbKyxrL','DdeW','uhjLCgfYAw5NlI4U','CMvXDwvZDhm','zw50CMLLCW','AhrWuMv2Awv3','icdWN46bicS','vxnLicjLEgfTihjLDMLLDYiGDg8Gy2HLy2SGChjVz3jLC3mGB3iGiMv4yw0GC3vIBwL0iIb0BYbZDwjTAxqU','r28GDg8GBMv4DcbXDwvZDgLVBG','icdINjmGuhL0Ag9Uia','ig5VDcbMB3vUzcaOms0','ic1TigvUC3vYzxbPCcaTlxvWz3jHzgu','ihrVihn1yM1PDcbMB3iGz3jHzgLUzY4','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIa','r2vYBwfUEq','icaGicaGifrOzw4GAw5ZDgfSBcbqExrOB246','CMvZzxq','ChLJCNLWDg9KB21L','icbtzwuGywXSigzSywDNzwqGCxvLC3rPB25ZigLUoIa','yxbWBgLJyxrPB24VANnVBG','icboBYbHy3rPDMuGzxHHBsbZzxnZAw9UihrVihjLC2v0lG','u3rHCNqGyw4GzxHHBsaOyMvNAw5ZihrPBwvYkq','AwDUB3jL','icbbBgWGAgvSCcb1C2vKicG','icaGig5LEhq','icaGicfWExrOB24ZihnVBhzLlNb5','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','l3n1yM1PDa','zxHHBuLK','icaGicaGicHpCIbKB3DUBg9HzcbMCM9Tihb5DgHVBI5VCMCGyw5KienirunligjVDgGGiKfKzcbqExrOB24GDg8','DMXH','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMv0CNK6','icbjBNn0ywXSAw5Nia','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','C3vKBYbHChqGAw5ZDgfSBcaTEsbUB2rLANmGChL0Ag9UmY1WAxaGChL0Ag9UmY12zw52','y2f0zwDVCNK','qMfUz2XHzgvZAa','icaGiokaOIbdAgvJAYb5B3uGAgf2zsbPBNrLCM5LDcaOCgLWlNb5CgeUAw8GBxvZDcbIzsbYzwfJAgfIBguP','x2XHC3rr','vgLTzsbLEhbPCMvKlG','igLZigeGChjHy3rPy2fSihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0AcbHigzSywCSig5VDcbHigXLDhrLCI4','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','rxHHBsaI','y2f0','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','yM9Sza','q2HPBMe','zxHHBsbZzxr1Ca','iokaLcb5B3uGy2fUBM90ignOyw5Nzsb0AgvTigfMDgvYihn1yM1PDc4','CgfKu3rHCNq','4PQGicbfweLuigLJB2eGzMLYC3qG4OcuigLUC3rHBgXLCIbJyw5UB3qGCNvUigLUC2LKzsb0AguGChjVBxb0','y2f0y2G','q291BgqGBM90igLUC3rHBgWGCgLWiokaLcbWAxaGAxmGBM90igLUC3rHBgXLzcbVBIb5B3vYihn5C3rLBs4','icdINjmGCgLWigf2ywLSywjSzq','CM91BMq','icdIHPmGifbYywn0AwnHBcbZzwn0Aw9UigjLz2LUCYbHDcbrmZeU','icaGicaGicaGkgn0zJrHAsK','yw5ZD2vY','u3vIBwL0DgvK','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','ihjHBMrVBsbXDwvZDgLVBNmGzNjVBsbHihbVB2WGB2yG','zw5KC1DPDgG','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','sw5KB25LC2LH','ywrK','igHLBhbZihjLBwfPBMLUzY4GvxnLihrOzw0GzMLYC3qH','zNjVBq','icaGvgHLC2uGyxjLihrOzsbOyxjKzxn0ihf1zxn0Aw9UCY4Gv29YDgGGmJeLig9MihrVDgfSihnJB3jLlG','C2v0uMf3tw9Kzq','icbgzwrVCMeGlYbssevmoG','CMvNzxG','ihnRAxbWzwq','igfUzcbWCMvZCYbfBNrLCIb0BYbSzwf2zsbPy29H','u2LUz2fWB3jL','zxHHBsbWCMv2','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','Bwf0y2G','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwqGyMvMB3jLigvUDgvYAw5NigeGDg9Rzw4U','CxvLC3rPB25Z','zxHHBsbSAxn0ia','Axnoyu4','icdIMiuGuq','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','rNjHBMnL','y291BNrYEq','tMf0Aw9UywWGC2vSzwn0Aw9Uigv4yw0','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','vgLTzsb1C2vKoIa','icaGicjiB3CGzg8GssbKzwnYExb0ieffuY1dqKmGAw4GuhL0Ag9UpYi','zxHHBsbOzwXW','zxHHBvDHExntAgvSBa','icaGv2HHDcb5B3uNBgWGzg8GDg9KyxK6','ihrVigXLyxzLigLJB2e','sMfWyw4','icdIMQaGifjLC2v0ihDPBgWGywjHBMrVBIb5B3vYign1CNjLBNqGzxHHBsbZzxnZAw9Uig9UihrOAxmGzgv2AwnLlG','icbtDgvWlwj5lxn0zxa6','u3rHCNqGDgHLigv4yw0/ifrOzsb0Aw1LCIb3AwXSigjLz2LUigLTBwvKAwf0zwX5lG','icbezxrLy3rLzdOGDw5YzwnVz25PEMvKihbSyxrMB3jTicG','mty1otqYouXbtfnXra'];a0z=function(){return bK;};return a0z();}function R(B){const b4=a0B,F={};return F[b4(0x4c7)]=B[b4(0x24e)]||-0x3*0xa4e+-0x4d9+0x23c3,F[b4(0x26b)]=B[b4(0x491)]||-0xa9f+0xc17+-0x164*0x1,F[b4(0x33b)]=B[b4(0x324)]||{},F[b4(0x49a)]=B['_eliminated']||{},F;}function U(z,B){const b5=a0B,F=a0Y(),G=Number(F?.[b5(0x1e8)][b5(0x27a)]||-0x1983+-0x1d1d+0x36be),H=Object[b5(0x321)](F?.['answers']||{})['length'],J=R(F),K=J['eliminated'][z[b5(0x264)]]||[],L=b5(0x24b)===z[b5(0x2b7)]||b5(0x1df)===z[b5(0x2b7)]||b5(0x3e3)===z[b5(0x2b7)]||z[b5(0x472)]&&!z[b5(0x472)]['A']&&!z[b5(0x472)]['B'];F&&function(Y,Z){const b6=b5;if(b6(0x398)===Y[b6(0x1e8)][b6(0x3e1)])return;const a0=new Set(Y[b6(0x2fc)]||[]),a1=Number(Y['session'][b6(0x27a)]||0xf1*-0x23+0x26d1*0x1+0x2db*-0x2),a2=a0a1();if(0x328+-0x2022+0x1d04===Z&&a1>=-0x20d2+-0xee8+-0x17f1*-0x2&&!a0[b6(0x2ca)](b6(0x2f8))){const a3=a2?Math['max'](0x1946+-0x25bf*-0x1+0x11*-0x3b5,Math[b6(0x3fb)]((a2[b6(0x1d9)]()-Date[b6(0x360)]())/(-0xdd15*-0x1+0x13*-0xbda+0xee79))):null;console['log'](),console[b6(0x2aa)](a0L[b6(0x363)]('\x20\x20┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄')),console[b6(0x2aa)](a0L[b6(0x332)](b6(0x43a))+a0L['gray'](b6(0x2df))),null!==a3&&console[b6(0x2aa)](a0L['gray']('\x20\x20\x20\x20\x20'+a3+b6(0x245))),console['log'](a0L[b6(0x363)](b6(0x1db))),a0[b6(0x405)](b6(0x2f8)),Y[b6(0x2fc)]=Array[b6(0x407)](a0),a0Z(Y);}if(0x41c+-0x1a89+-0x1d*-0xc7===Z&&a1>=-0x25b3*-0x1+-0xdbe+0x3*-0x7ef&&!a0[b6(0x2ca)]('p30')){Object['keys'](Y['answers']||{})[b6(0x4b0)];const a4=Object[b6(0x321)](Y[b6(0x496)]||{})[b6(0x2bd)](a5=>Number(a5)<=-0x1799*-0x1+0xed5+0x4*-0x994)['length'];console[b6(0x2aa)](),console[b6(0x2aa)](a0L[b6(0x466)](b6(0x1dc))),console['log'](a0L[b6(0x3f2)][b6(0x466)]('\x20\x20✓\x20\x20MCQ\x20section\x20complete\x20—\x20well\x20done!')),console[b6(0x2aa)](a0L[b6(0x363)](b6(0x497)+a4+b6(0x312))),console[b6(0x2aa)](a0L[b6(0x329)](b6(0x3fc))),console[b6(0x2aa)](a0L['gray']('\x20\x20\x20\x20\x20Budget\x20~2\x20min\x20per\x20practical\x20question.\x20You\x20can\x20come\x20back\x20with:\x20next\x20/\x20prev.')),console[b6(0x2aa)](a0L[b6(0x466)](b6(0x1dc))),a0['add']('p30'),Y[b6(0x2fc)]=Array[b6(0x407)](a0),a0Z(Y);}}(F,z['number']),F&&L&&function(Y,Z){const b7=b5;if('demo-free'===Y[b7(0x1e8)][b7(0x3e1)])return;if(Number(Y[b7(0x1e8)][b7(0x27a)]||-0x1*0xaee+-0x320+-0x6b*-0x22)<-0x1d92*-0x1+0x24b2+-0x421c)return;const a0=new Set(Y['shownWarnings']||[]);Z>=0x141c+0x2582*0x1+-0x397f&&Z<=-0x1693+-0x375+0x45d*0x6&&!a0[b7(0x2ca)](b7(0x235))?(console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x466)](b7(0x370))),console['log'](a0L[b7(0x3f2)][b7(0x466)]('\x20\x20\x20🚀\x20\x20Section\x202:\x20AI4CTF\x20—\x20AI\x20is\x20your\x20teammate')),console[b7(0x2aa)](a0L[b7(0x466)](b7(0x370))),console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x329)](b7(0x444))),console['log'](a0L[b7(0x329)](b7(0x372))),console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x3f2)][b7(0x329)]('\x20\x20\x20Q31–38\x20(8\x20questions\x20·\x206\x20pts\x20each)')),console[b7(0x2aa)](a0L[b7(0x363)](b7(0x4d8))+a0L[b7(0x3f2)](b7(0x3af))+a0L[b7(0x363)](b7(0x3b9))),console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x3f2)][b7(0x329)](b7(0x4c3))),console[b7(0x2aa)](a0L[b7(0x363)](b7(0x460))+a0L[b7(0x3f2)][b7(0x466)](b7(0x24b))+a0L[b7(0x363)]('\x20→\x20')+a0L[b7(0x42a)](b7(0x24c))+a0L['gray'](b7(0x42b))),console['log'](a0L[b7(0x363)]('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L['cyan'](b7(0x265))+a0L[b7(0x363)](b7(0x338))+a0L['cyan'](b7(0x3ab))+a0L[b7(0x363)](b7(0x338))+a0L[b7(0x332)]('!python3\x20...')),console[b7(0x2aa)](a0L[b7(0x363)]('\x20\x20\x20\x20\x20Free\x20chat:\x20\x20\x20\x20\x20\x20any\x20message\x20→\x20AI\x20teammate')),console['log'](a0L['gray'](b7(0x3b4))+a0L[b7(0x332)](b7(0x434))+a0L[b7(0x363)](b7(0x3a6))+a0L['cyan'](b7(0x361))),console[b7(0x2aa)](),console['log'](a0L['bold'][b7(0x329)](b7(0x32c))),console[b7(0x2aa)](a0L[b7(0x363)]('\x20\x20\x20\x20\x20AI\x20tokens:\x20\x20\x20\x20\x20\x20')+a0L[b7(0x329)](b7(0x4b5))+a0L[b7(0x363)]('\x20for\x20this\x20section')),console[b7(0x2aa)](a0L['gray'](b7(0x2ed))+a0L[b7(0x329)]('pre-written\x20per\x20question')),console[b7(0x2aa)](),console[b7(0x2aa)](a0L['yellow'](b7(0x36c))),console[b7(0x2aa)](a0L[b7(0x466)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b7(0x2aa)](),a0[b7(0x405)](b7(0x235)),Y[b7(0x2fc)]=Array[b7(0x407)](a0),a0Z(Y)):Z>=-0x1*-0x1577+0x1*-0x615+-0xf3b&&!a0['has'](b7(0x4c9))&&(console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x38d)](b7(0x370))),console[b7(0x2aa)](a0L[b7(0x3f2)]['red'](b7(0x2f0))),console[b7(0x2aa)](a0L[b7(0x38d)](b7(0x370))),console['log'](),console[b7(0x2aa)](a0L[b7(0x329)](b7(0x2e3))),console[b7(0x2aa)](a0L[b7(0x329)]('\x20\x20\x20using\x20AI,\x20you\x27re\x20')+a0L['bold'](b7(0x21f))+a0L[b7(0x329)](b7(0x42c))),console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x3f2)][b7(0x329)]('\x20\x20\x20Q39–40\x20(2\x20questions\x20·\x2016\x20pts\x20each\x20—\x20highest\x20value!)')),console[b7(0x2aa)](a0L[b7(0x363)]('\x20\x20\x20\x20\x20Prompt\x20injection\x20·\x20adversarial\x20analysis\x20·\x20AI\x20auditing')),console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x3f2)][b7(0x329)]('\x20\x20\x20How\x20to\x20attack')),console['log'](a0L[b7(0x363)](b7(0x460))+a0L[b7(0x3f2)]['red']('ctf4ai')+a0L['gray'](b7(0x1e7))+a0L[b7(0x38d)](b7(0x2c7))+a0L['gray'](b7(0x456))),console[b7(0x2aa)](a0L[b7(0x363)](b7(0x438))+a0L['cyan'](b7(0x265))+a0L['gray'](b7(0x338))+a0L[b7(0x332)]('submit\x20ICOA{...}')+a0L[b7(0x363)](b7(0x338))+a0L[b7(0x332)]('!python3\x20...')),console[b7(0x2aa)](a0L[b7(0x363)](b7(0x342))),console[b7(0x2aa)](),console['log'](a0L[b7(0x3f2)][b7(0x329)](b7(0x410))),console[b7(0x2aa)](a0L[b7(0x363)]('\x20\x20\x20\x20\x20·\x20AI\x20is\x20your\x20')+a0L[b7(0x38d)]('target')+a0L['gray'](',\x20not\x20your\x20teammate')),console[b7(0x2aa)](a0L[b7(0x363)](b7(0x36d))+a0L[b7(0x329)]('25,000\x20tokens')+a0L[b7(0x363)](b7(0x291))),console[b7(0x2aa)](),console[b7(0x2aa)](a0L[b7(0x378)](b7(0x408))),console[b7(0x2aa)](a0L['yellow']('\x20\x20\x20If\x20time\x20is\x20tight,\x20skim\x20Q39/40\x20first\x20to\x20decide\x20attack\x20order.')),console[b7(0x2aa)](a0L[b7(0x38d)](b7(0x370))),console['log'](),a0[b7(0x405)](b7(0x4c9)),Y[b7(0x2fc)]=Array[b7(0x407)](a0),a0Z(Y));}(F,z[b5(0x264)]),F&&function(Y){const b8=b5,Z=a0a1();if(!Z)return;const a0=Z[b8(0x1d9)]()-Date['now']();if(a0<=0x397+-0xf47+0x10*0xbb)return;const a1=a0/(0x5eef*-0x3+-0x143b4+-0x11ef*-0x2f),a2=new Set(Y[b8(0x2fc)]||[]);let a3=null;if(a1<=0xb92+-0x19*-0x9b+-0x1ab4&&!a2[b8(0x2ca)]('t1')?a3={'key':'t1','text':[a0L[b8(0x38d)][b8(0x3f2)](b8(0x326)),a0L[b8(0x38d)](b8(0x203))+a0L[b8(0x3f2)]('exam\x20submit')]}:a1<=0x1091*-0x1+0x112f+-0x33*0x3&&!a2['has']('t5')?a3={'key':'t5','text':[a0L['red']['bold'](b8(0x267)),a0L['yellow']('\x20\x20Wrap\x20up\x20and\x20submit:\x20')+a0L['bold'](b8(0x431))]}:a1<=-0x5*0x219+-0x12d1*-0x1+0x2*-0x425&&!a2['has'](b8(0x3c5))&&(a3={'key':b8(0x3c5),'text':[a0L['yellow']['bold']('\x20\x20⏰\x2010\x20minutes\x20remaining'),a0L[b8(0x363)](b8(0x3b7))+a0L['white'](b8(0x4dc))]}),a3){console['log'](),console[b8(0x2aa)](a0L[b8(0x38d)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));for(const a4 of a3[b8(0x45b)])console['log'](a4);console[b8(0x2aa)](a0L[b8(0x38d)](b8(0x1dc))),a2['add'](a3[b8(0x1dd)]),Y[b8(0x2fc)]=Array[b8(0x407)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const b9=b5,a1=Math[b9(0x3fb)](Y/Z*(-0xe*-0x2be+0x206f*0x1+-0x46b5)),a2=-0xafd*0x2+0x1988+0x370*-0x1-a1,a3=a0L[b9(0x332)]('━'['repeat'](a1))+a0L[b9(0x363)]('─'[b9(0x2e2)](a2)),a4=Math[b9(0x3fb)](Y/Z*(0xda*-0x19+0x521+0x108d*0x1));console[b9(0x2aa)](),console['log']('\x20\x20'+a3+'\x20\x20'+a0L['white']['bold'](''+Y)+a0L['gray']('/'+Z)+'\x20\x20'+a0L[b9(0x363)]('('+a0+b9(0x28f))+'\x20\x20'+a0L[b9(0x363)](a4+'%'));const a5=a0a1();if(a5){const a6=Math[b9(0x26b)](-0x1*-0x4d6+-0x2*-0x45a+-0xd8a,Math[b9(0x3fb)]((a5[b9(0x1d9)]()-Date[b9(0x360)]())/(-0x21*0xc+0x1f00+0x147*-0x14))),a7=Math[b9(0x354)](a6/(-0x2537*-0x1+0x1de9+-0x4*0x10b9))+':'+String(a6%(0x66a*0x6+0x2300+0x24a0*-0x2))[b9(0x3f6)](0x539*0x7+-0x1505+0x238*-0x7,'0'),a8=a6<=-0x1ac4+-0x831+0x2331?a0L[b9(0x38d)][b9(0x3f2)]:a6<=0x1*0x19cf+-0x21a0+-0xb1*-0xd?a0L['red']:a6<=-0x1*0x1260+-0x29*-0xb5+-0x845?a0L[b9(0x378)]:a0L['gray'];console[b9(0x2aa)]('\x20\x20'+a0L[b9(0x363)](b9(0x428))+'\x20'+a8(a7)+'\x20'+a0L[b9(0x363)]('(server-authoritative)'));}}(z[b5(0x264)],G,H),F&&D(F,z[b5(0x264)])&&console[b5(0x2aa)](a0L[b5(0x378)](b5(0x43c)));const Q=function(Y,Z){const ba=b5,a0={};a0['pct']=0.2,a0[ba(0x2b5)]=ba(0x29a),a0[ba(0x1dd)]=ba(0x343);const a1={};a1[ba(0x357)]=0.33,a1[ba(0x2b5)]='🐨',a1[ba(0x1dd)]='egg5';const a2={};a2['pct']=0.5,a2[ba(0x2b5)]='🌉',a2[ba(0x1dd)]=ba(0x38e);const a3={};a3['pct']=0.6,a3[ba(0x2b5)]='🦘',a3['key']=ba(0x4ba);const a4={};a4['pct']=0.8,a4[ba(0x2b5)]=ba(0x35c),a4['key']=ba(0x47a);const a5={};a5[ba(0x357)]=0.87,a5[ba(0x2b5)]='🦈',a5[ba(0x1dd)]='egg13';const a6={};a6[ba(0x357)]=0x1,a6[ba(0x2b5)]='🎉',a6[ba(0x1dd)]='egg15';const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math[ba(0x3fb)](a9[ba(0x357)]*Z);if(!(aa<0x97f+0x40*0x5+-0xabe||a8[ba(0x2ca)](aa))&&(a8[ba(0x405)](aa),Y===aa))return{'emoji':a9[ba(0x2b5)],'text':a0ai(a9[ba(0x1dd)])};}}(z[b5(0x264)],G);if(Q&&console[b5(0x2aa)](a0L[b5(0x378)]('\x20\x20'+Q[b5(0x2b5)]+'\x20\x20'+Q[b5(0x45b)])),console[b5(0x2aa)](),z['category']&&console[b5(0x2aa)](a0L['cyan'](b5(0x450)+z[b5(0x3e8)]+']')),z[b5(0x394)]&&z[b5(0x394)]>0x1*-0x1e0d+0x2*-0x2f+-0x1e6d*-0x1&&console[b5(0x2aa)](a0L['cyan'](b5(0x450)+z['points']+'\x20points]')),L){let Y=z[b5(0x2c5)]||z['text'];const Z=a0a2(z[b5(0x264)],z[b5(0x30e)]);if(z[b5(0x30e)]){const a1=/\([^()]*attachedData[^()]*\)/;a1[b5(0x374)](Y)?Y=Y[b5(0x4a0)](a1,z[b5(0x30e)]):Y[b5(0x38a)](z[b5(0x30e)])||(Y=Y+'\x0a\x0aFull\x20attached\x20data:\x0a'+z['attachedData']);}console[b5(0x2aa)](a0L['bold'][b5(0x329)]('\x20\x20Q'+z[b5(0x264)]+'.\x20')+a0L[b5(0x329)](Y['split']('\x0a')[0x1b9+0x2*-0x3b5+0x5b1]));const a0=Y[b5(0x451)]('\x0a')[b5(0x48e)](-0x23dd+0x5d8+0x1e06);for(const a2 of a0)console[b5(0x2aa)](a0L[b5(0x329)]('\x20\x20'+a2));if(console[b5(0x2aa)](),Z&&b5(0x24b)===z['type']){const a3=Z[b5(0x4a0)](process.env.HOME||'','~');console[b5(0x2aa)](a0L[b5(0x332)]('\x20\x20'+a0ai('examWaysToSolve')+'\x20')+a0L['gray']('('+a0ai('examWaysSavedTo')+'\x20'+a3+'):')),console[b5(0x2aa)](a0L[b5(0x329)]('\x20\x20\x20\x20①\x20')+a0L[b5(0x378)](b5(0x21a)+a3)[b5(0x37e)](0x1ca9+-0x2a0+0x1*-0x19d5)+a0L[b5(0x363)]('\x20'+a0ai(b5(0x41f)))),console[b5(0x2aa)](a0L[b5(0x329)](b5(0x2c8))+a0L[b5(0x378)]('!python3')['padEnd'](0x98a+0xb89*0x1+-0xad*0x1f)+a0L[b5(0x363)]('\x20'+a0ai(b5(0x2cf)))),console[b5(0x2aa)](a0L['white'](b5(0x2f6))+a0L[b5(0x378)](b5(0x38c))+a0L[b5(0x363)](b5(0x1e0))+a0L['yellow'](b5(0x4af))),console['log'](a0L[b5(0x329)](b5(0x2c2))+a0L[b5(0x378)]('ref\x20python')['padEnd'](-0x8*0x26c+0x770*-0x5+0x38b0)+a0L[b5(0x363)]('\x20'+a0ai(b5(0x1ff)))),console['log'](a0L[b5(0x329)](b5(0x2ce))+a0L[b5(0x378)]('ai4ctf')[b5(0x37e)](0x127f+-0x18*-0x178+-0x25*0x173)+a0L[b5(0x363)]('\x20'+a0ai('examWaysAi4ctf'))),console[b5(0x2aa)](),console[b5(0x2aa)](a0L[b5(0x363)]('\x20\x20'+a0ai(b5(0x23d))+'\x20')+a0L['bold'][b5(0x466)]('submit\x20ICOA{your_flag}')),console['log']();}B&&(console['log'](a0L[b5(0x466)]('\x20\x20Your\x20answer:\x20'+B)),console[b5(0x2aa)]());}else{console[b5(0x2aa)](a0L[b5(0x3f2)][b5(0x329)](b5(0x37f)+z['number']+'.\x20')+a0L[b5(0x329)](z[b5(0x45b)])),console[b5(0x2aa)]();for(const a4 of['A','B','C','D']){const a5=B===a4;K[b5(0x38a)](a4)?console[b5(0x2aa)](a0L['gray'][b5(0x2c4)](b5(0x382)+a4+'.\x20'+z[b5(0x472)][a4])+a0L[b5(0x38d)]('\x20('+a0ai(b5(0x384))+')')):a5?console[b5(0x2aa)](a0L[b5(0x466)][b5(0x3f2)]('\x20\x20▸\x20'+a4+'.\x20'+z['options'][a4])):console['log'](a0L[b5(0x363)](b5(0x382)+a4+'.')+'\x20'+a0L[b5(0x329)](z[b5(0x472)][a4]));}console['log']();}const V=b5(0x398)===F?.['session'][b5(0x3e1)],W=J[b5(0x33b)][-0x22db*0x1+-0xa38+0x3*0xf07]||0xa65+0xaeb*0x3+-0x2b26;V&&-0x239*0x10+-0x844*-0x2+0x130a===z[b5(0x264)]&&-0x7*0x17c+-0xe76+0x18da===W&&(console[b5(0x2aa)](a0L['yellow']['bold']('\x20\x20'+a0ai('qTutorial'))),console[b5(0x2aa)]());const X=J[b5(0x26b)]-J[b5(0x4c7)];if(console[b5(0x2aa)](a0L[b5(0x363)](b5(0x362))),L){const a6=F&&b5(0x398)!==F['session']['examId']&&z[b5(0x264)]>=-0x12aa+0x11*-0x203+0x20a*0x1a&&z[b5(0x264)]<=0x337*-0x1+0x166c+-0x130d,a7=F&&b5(0x398)!==F[b5(0x1e8)][b5(0x3e1)]&&z[b5(0x264)]>=0x1fe9+0x15c+-0x2126&&z['number']<=0x1d63+0x1*0x106b+-0x16d4*0x2;b5(0x3e3)===z[b5(0x2b7)]?console[b5(0x2aa)](a0L[b5(0x3f2)][b5(0x332)](b5(0x2fa))+a0L[b5(0x363)](b5(0x2b1))):a7?console['log'](a0L['bold'][b5(0x466)]('\x20\x20\x20\x20ai4ctf')+a0L[b5(0x363)]('\x20\x20\x20\x20\x20\x20\x20\x20enter\x20AI4CTF\x20chat\x20for\x20this\x20question\x20(recommended)')):a6&&console[b5(0x2aa)](a0L[b5(0x3f2)]['red'](b5(0x34b))+a0L['gray'](b5(0x20e))),console[b5(0x2aa)](a0L[b5(0x378)]('\x20\x20\x20\x20exam\x20answer\x20<n>\x20ICOA{...}')+a0L[b5(0x363)](b5(0x253))),console[b5(0x2aa)](a0L[b5(0x378)](b5(0x2d5))+a0L[b5(0x363)](b5(0x4c6)));}else{const a8=J[b5(0x26b)]>=-0x239+0xf9f+0x8*-0x1a9,a9=X>0x3cb*0x4+0xb78*0x1+-0x1aa4*0x1?a0L['gray'](a0ai('helpRemove')+'\x20')+a0L[b5(0x378)]('('+X+'/'+J[b5(0x26b)]+')'):a8?a0L[b5(0x363)](a0ai(b5(0x214))+'\x20('+J[b5(0x4c7)]+'/'+J[b5(0x26b)]+')'):a0L[b5(0x363)](''+a0ai('helpUsedUp'));console['log'](a0L['yellow'](b5(0x228))+a0L[b5(0x363)](b5(0x4d0)+a0ai(b5(0x224)))),console[b5(0x2aa)](a0L[b5(0x378)](b5(0x1fb))+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a9);}console[b5(0x2aa)](a0L[b5(0x378)](b5(0x3dd))+a0L['gray'](b5(0x310))+a0L[b5(0x378)](b5(0x217))+a0L[b5(0x363)](b5(0x382)+a0ai(b5(0x1f2)))),console[b5(0x2aa)](a0L[b5(0x378)](b5(0x484)+G)+a0L[b5(0x363)]('\x20\x20\x20'+a0ai('htpJump'))),console[b5(0x2aa)](a0L[b5(0x378)]('\x20\x20\x20\x20mark')+a0L[b5(0x363)](b5(0x279)+a0ai(b5(0x3bc)))),console[b5(0x2aa)](a0L[b5(0x378)](b5(0x461))+a0L['gray'](b5(0x2e6)+a0ai(b5(0x3c9)))),console['log'](a0L[b5(0x3f2)]['yellow'](b5(0x31d))+a0L[b5(0x363)](b5(0x2e6)+a0ai('htpSubmit'))),console[b5(0x2aa)](a0L[b5(0x378)]('\x20\x20\x20\x20back')+a0L[b5(0x363)](b5(0x279)+a0ai(b5(0x359)))),console[b5(0x2aa)](a0L[b5(0x378)](b5(0x45e))+a0L[b5(0x363)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai('htpLang'))),console['log'](a0L[b5(0x363)](b5(0x362)));}export function registerExamCommand(z){const bb=a0B,B=z[bb(0x221)]('exam')[bb(0x2c5)](bb(0x41a));B[bb(0x221)](bb(0x36f))[bb(0x2c5)](bb(0x42f))[bb(0x287)](()=>{const bc=bb;a0a8(bc(0x3a4)),console[bc(0x2aa)](),a0ae(bc(0x2b9)),console[bc(0x2aa)]();const F=[['AU','Australia'],['BD',bc(0x3e9)],['BI',bc(0x216)],['BR',bc(0x313)],['CN',bc(0x3f3)],['DE',bc(0x3d3)],['EG',bc(0x24a)],['FR',bc(0x418)],['GH','Ghana'],['ID',bc(0x404)],['IN',bc(0x446)],['JP',bc(0x422)],['KR',bc(0x1f6)],['LA',bc(0x4c0)],['LK',bc(0x2da)],['MM',bc(0x4be)],['MO','Macau'],['MY','Malaysia'],['NZ','New\x20Zealand'],['PE',bc(0x255)],['PH',bc(0x315)],['RU','Russia'],['SA',bc(0x1e3)],['SG',bc(0x40e)],['TH',bc(0x205)],['TR',bc(0x447)],['UK',bc(0x4cc)],['US','United\x20States'],['UZ','Uzbekistan'],['VN',bc(0x494)],['ZA',bc(0x236)]];for(let G=0x1a70+-0x21cc+-0x3*-0x274;G<F[bc(0x4b0)];G+=0xcb9+0x4fd*0x2+-0x1e4*0xc){const H=F[bc(0x48e)](G,G+(0xa4b*0x2+-0x121*-0xb+-0x107f*0x2))[bc(0x4b6)](([J,K])=>'\x20\x20'+a0L[bc(0x332)](J)+'\x20\x20'+a0L[bc(0x363)](K[bc(0x37e)](-0x1307*-0x2+-0x23e*-0xd+-0x4324)))[bc(0x22d)]('');console[bc(0x2aa)](H);}console[bc(0x2aa)](),console[bc(0x2aa)](a0L[bc(0x363)]('\x20\x2040+\x20countries\x20and\x20regions\x20represented')),console[bc(0x2aa)](a0L[bc(0x363)](bc(0x365))),console[bc(0x2aa)](),console['log'](a0L[bc(0x329)](bc(0x247))),console[bc(0x2aa)](a0L['cyan']('\x20\x20\x20\x20exam\x20list\x20AU')+a0L['gray'](bc(0x2a7))+a0L[bc(0x363)]('\x20\x20\x20\x20\x20exam\x20list\x20CN')),console['log']();}),B[bb(0x221)]('list\x20[country]')[bb(0x2c5)]('List\x20available\x20exams\x20(optional:\x202-letter\x20country\x20code)')[bb(0x287)](async F=>{const bd=bb;a0a8(bd(0x414)+(F||''));const G=M();if(!G)return;const H=a0ag(bd(0x499));H[bd(0x25c)]();try{let J=await G['getExams']();if(H['stop'](),F){const Q=F[bd(0x4cf)]();J=J[bd(0x2bd)](V=>V[bd(0x419)][bd(0x4cf)]()===Q||'ALL'===V[bd(0x419)]);}if(!J||-0x1e0+0x94f*-0x4+0x271c===J[bd(0x4b0)]){console[bd(0x2aa)](),a0ac(F?bd(0x3d2)+F[bd(0x4cf)]()+'\x20yet.':'No\x20exams\x20available\x20for\x20your\x20country\x20yet.'),console['log'](),console[bd(0x2aa)](a0L[bd(0x329)]('\x20\x20New\x20exams\x20are\x20coming\x20soon!')),console[bd(0x2aa)](a0L[bd(0x363)](bd(0x492))),console['log'](),console[bd(0x2aa)](a0L[bd(0x363)]('\x20\x20In\x20the\x20meantime,\x20try:\x20')+a0L[bd(0x3f2)][bd(0x332)]('demo')),console[bd(0x2aa)]();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(0x2aa)](a0L[bd(0x363)](bd(0x42e)+W[X])),console['log']()));}const K=J[bd(0x4b6)](Y=>{const be=bd,Z=be(0x31c)===Y[be(0x231)]?a0L[be(0x466)]:be(0x22a)===Y[be(0x231)]?a0L['yellow']:a0L[be(0x329)];return[a0L['white'](Y['id']),Y[be(0x244)],a0L['cyan'](Y['country']),String(Y[be(0x27a)]),Y[be(0x489)]+be(0x366),Z(Y[be(0x231)])];}),L=[...new Set(J[bd(0x4b6)](Y=>Y[bd(0x419)]))];a0ae(F?bd(0x37a)+F['toUpperCase']():bd(0x1ed)+L[bd(0x4b0)]+bd(0x3bd)),a0ad(['ID',bd(0x340),bd(0x49d),bd(0x441),'Duration',bd(0x22e)],K),console['log'](),console[bd(0x2aa)](a0L[bd(0x363)](bd(0x433))),L['length']>-0x71*-0x5+0xd7+0x13*-0x29&&console[bd(0x2aa)](a0L['gray']('\x20\x20Filter\x20by\x20country:\x20exam\x20list\x20PE,\x20exam\x20list\x20CN,\x20...'));}catch(Y){H[bd(0x454)](bd(0x325)),a0aa(Y['message']);}}),B[bb(0x221)](bb(0x4a2))[bb(0x2c5)](bb(0x3da))[bb(0x287)](async F=>{const bf=bb;a0a8(bf(0x453)+F);const G=a0Y();if(G)return a0ab('Exam\x20\x22'+G[bf(0x1e8)]['examName']+'\x22\x20is\x20already\x20in\x20progress.'),void a0ac(bf(0x3cb));const H=M();if(!H)return;const J=await a0Q({'message':a0L['white'](bf(0x425)),'default':!(-0xdb2+0x19c4+-0xc12),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L[bf(0x466)](K)}}});if(J){console[bf(0x2aa)]();try{N(-0x2*0x61f+-0x4*0x337+-0x85e*-0x3,bf(0x41b));const {session:K,questions:L}=await H['startExam'](F);N(-0x499*-0x1+-0x6f6+0x27b*0x1,bf(0x2e9)),await q(0x26bb+-0x8e*-0x42+-0x4a8f),N(-0x2*-0x12a9+0x3+-0x2519,'Preparing\x20exam\x20environment...'),await q(0x1*-0xb73+0x1e1*0x3+-0xd3*-0x8),N(0x9d+0x9*0x7a+-0x5*0xe9,bf(0x3b3)),await q(-0x47*-0x71+0x1eab+-0x3d6c),a0Z({'session':K,'questions':L,'answers':{}}),N(-0x911+0x66e+0x307,'Ready!'),console[bf(0x2aa)](),console[bf(0x2aa)](),a0ae(K[bf(0x22f)]),a0af(bf(0x441),String(K[bf(0x27a)])),a0af(bf(0x20d),K[bf(0x489)]+bf(0x257)),a0af(bf(0x49d),K[bf(0x419)]),O(),L[bf(0x4b0)]>0x79b+0x93e+-0x10d9&&U(L[-0x1231+0x8a9+0x7a*0x14]);}catch(Q){console[bf(0x2aa)](),a0aa(Q['message']);}}}),B[bb(0x221)]('q\x20[n]')[bb(0x2c5)](bb(0x44c))[bb(0x287)](async F=>{const bg=bb;a0a8(bg(0x479)+(F||'all'));const {refetchQuestionDataIfStale:G}=await import(bg(0x23f));await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,0x2*0xf4a+-0x14e6+-0x2*0x4d2),K=H[bg(0x413)][bg(0x3ad)](L=>L[bg(0x264)]===J);if(!K)return void a0aa(bg(0x328)+F+bg(0x3ce)+H['questions'][bg(0x4b0)]+').');H[bg(0x3eb)]=J,a0Z(H),U(K,H[bg(0x496)][J]);}else{a0ae(''+H[bg(0x1e8)][bg(0x22f)]);const L=Object[bg(0x321)](H['answers'])[bg(0x4b0)];a0af(bg(0x327),L+'/'+H[bg(0x1e8)][bg(0x27a)]+'\x20answered'),console['log']();for(const Q of H['questions']){const V=H[bg(0x496)][Q['number']],W=V?a0L[bg(0x466)]('['+V+']'):a0L[bg(0x363)](bg(0x4b3)),X=Q[bg(0x3e8)]?a0L['gray']('\x20['+Q[bg(0x3e8)]+']'):'';console[bg(0x2aa)]('\x20\x20'+W+'\x20'+a0L[bg(0x329)]('Q'+Q[bg(0x264)])+X+'\x20'+a0L['gray'](Q[bg(0x45b)][bg(0x285)](-0x3*-0x1ab+-0x4*-0x752+0x2249*-0x1,-0x1*-0x11d2+-0x1c1*0x6+-0x71*0x10))+(Q[bg(0x45b)]['length']>0x1*0x12b9+-0x541+-0x34f*0x4?bg(0x39a):''));}console[bg(0x2aa)]();}}else a0aa(bg(0x25a));}),B[bb(0x221)](bb(0x1ec))[bb(0x2c5)](bb(0x206))[bb(0x287)](F=>{const bh=bb;a0a8('exam\x20mark\x20'+(F||''));const G=a0Y();if(!G)return void a0aa('No\x20exam\x20in\x20progress.');const H=G['questions'][bh(0x4b0)],J=F?parseInt(F,-0x1b2d+0xd*-0x251+0x3954):G[bh(0x3eb)]||0x2141+-0x21f7+0xb7;if(Number[bh(0x415)](J)||J<-0x209f+-0x1*0x643+0x26e3||J>H)return void a0aa('Invalid\x20question\x20number.\x20Use\x201..'+H+'.');const K=j(G,J);console[bh(0x2aa)](),K?console[bh(0x2aa)](a0L['yellow'](bh(0x416)+J+bh(0x3ba))):console[bh(0x2aa)](a0L[bh(0x363)](bh(0x25d)+J+bh(0x458)));const L=Array['isArray'](G[bh(0x26c)])?G[bh(0x26c)]:[];L[bh(0x4b0)]>0x12a*-0x16+0xf2f+0xa6d&&console[bh(0x2aa)](a0L['gray']('\x20\x20Currently\x20flagged:\x20'+L[bh(0x4b6)](Q=>'Q'+Q)[bh(0x22d)](',\x20'))),console[bh(0x2aa)](a0L['gray'](bh(0x3d7))+a0L[bh(0x329)](bh(0x4dc))),console[bh(0x2aa)]();}),B[bb(0x221)](bb(0x348))['description'](bb(0x4ae))['action'](F=>{const bi=bb;a0a8(bi(0x467)+(F||''));const G=a0Y();if(!G)return void a0aa('No\x20exam\x20in\x20progress.');const H=G['questions'][bi(0x4b0)],J=F?parseInt(F,-0x19*-0xbc+0x1*0xb35+-0x1*0x1d87):G['_lastQ']||0x7*-0x4e1+-0x196c+0xf6*0x3e;Number[bi(0x415)](J)||J<-0x9e8+0x1*0x190f+-0xf26||J>H?a0aa(bi(0x288)+H+'.'):D(G,J)?(j(G,J),console[bi(0x2aa)](),console[bi(0x2aa)](a0L['gray']('\x20\x20☆\x20Q'+J+'\x20unflagged.')),console[bi(0x2aa)]()):console[bi(0x2aa)](a0L['gray'](bi(0x37f)+J+bi(0x4c2)));}),B[bb(0x221)](bb(0x2ff))[bb(0x2c5)](bb(0x3cc))['action'](()=>{const bj=bb;a0a8('exam\x20next');const F=a0Y();if(!F)return void a0aa(bj(0x346));F['questions'][bj(0x371)](K=>!F[bj(0x496)][K[bj(0x264)]]);const G=F[bj(0x3eb)]||0x1073+-0x1*0x1f89+-0xf17*-0x1,H=Math[bj(0x21c)](G+(-0x3*0x4e+0x35*0x19+-0x221*0x2),F[bj(0x413)][bj(0x4b0)]);F[bj(0x3eb)]=H,a0Z(F);const J=F[bj(0x413)][H-(-0x2257+0x1*0x409+0x1e4f)];U(J,F[bj(0x496)][J[bj(0x264)]]);}),B['command'](bb(0x217))[bb(0x2c5)](bb(0x3c0))[bb(0x287)](()=>{const bk=bb;a0a8(bk(0x40f));const F=a0Y();if(!F)return void a0aa(bk(0x346));const G=F[bk(0x3eb)]||-0x1*-0x25bf+0x12d*-0x1a+0x66*-0x12,H=Math['max'](G-(-0x2702*0x1+-0xc67+-0x19b5*-0x2),0x7*0x586+-0x25cc+-0xdd);F['_lastQ']=H,a0Z(F);const J=F[bk(0x413)][H-(0xb*0x166+-0x1733+0x7d2)];U(J,F[bk(0x496)][J[bk(0x264)]]);}),B['command']('help')['description'](bb(0x220))['action'](async()=>{const bl=bb;a0a8(bl(0x41e));const F=a0Y();if(!F)return void a0aa(bl(0x346));const G=R(F),H=F[bl(0x3eb)]||-0xd7*-0x5+0x1633+-0x1a65,J=G[bl(0x33b)][H]||0x1ed3+0x175*0x11+-0x3798,K=G[bl(0x49a)][H]||[],L=F[bl(0x413)][bl(0x3ad)](W=>W[bl(0x264)]===H);if(!L)return;if(J>=0xbdd*-0x1+-0x1df*-0xb+-0x8b6)return console['log'](),console['log'](a0L[bl(0x378)](bl(0x32d))),console[bl(0x2aa)](a0L['gray'](bl(0x4d3))),console[bl(0x2aa)](),void U(L,F[bl(0x496)][L['number']]);const Q=['A','B','C','D'][bl(0x2bd)](W=>!K[bl(0x38a)](W));if(Q[bl(0x4b0)]<=-0x5*-0x5+0x111*-0x5+0x3d*0x16)return console['log'](),console['log'](a0L['yellow'](bl(0x2b0))),console['log'](),void U(L,F['answers'][L['number']]);if(G[bl(0x4c7)]>=G[bl(0x26b)]){const W=G[bl(0x26b)]>=0x1*0x1522+0x1*0x1f99+-0x349d,X=-0x1*-0x4a8+0x23*-0x10c+0x201a-G[bl(0x26b)];return void(W?(console[bl(0x2aa)](),console[bl(0x2aa)](a0L[bl(0x363)](bl(0x3dc)+G['used']+'/'+G[bl(0x26b)]+').\x20You\x27re\x20on\x20your\x20own!\x20💪')),console[bl(0x2aa)]()):(console['log'](),console['log'](a0L[bl(0x378)](bl(0x2bf)+G[bl(0x4c7)]+'/'+G['max'])),console[bl(0x2aa)](a0L['white'](bl(0x2fe))+a0L[bl(0x3f2)][bl(0x378)]('more\x20help')+a0L['gray'](bl(0x48d)+X+bl(0x238))),console[bl(0x2aa)]()));}const V=Y=>{const bm=bl;K[bm(0x290)](Y),G[bm(0x49a)][H]||(G[bm(0x49a)][H]=[]),G[bm(0x49a)][H]=K,G[bm(0x33b)][H]=J+(0x209+-0xc49+-0x1*-0xa41),G[bm(0x4c7)]++,F[bm(0x24e)]=G[bm(0x4c7)],F[bm(0x491)]=G['max'],F[bm(0x324)]=G[bm(0x33b)],F[bm(0x2ee)]=G[bm(0x49a)],F[bm(0x4df)]||(F['interactions']=[]),F['interactions'][bm(0x290)]({'ts':new Date()[bm(0x45c)](),'q':H,'type':bm(0x320),'result':bm(0x2f7)+Y}),a0Z(F),console['log'](),console['log'](a0L[bm(0x378)](bm(0x222)+Y+bm(0x3be))+a0L['gray'](bm(0x270)+G[bm(0x4c7)]+'/'+G['max']+')')),U(L,F[bm(0x496)][L['number']]);};if(bl(0x398)===F[bl(0x1e8)][bl(0x3e1)]&&L[bl(0x3fe)])(Y=>{const bn=bl,Z=Q[bn(0x2bd)](a0=>a0!==Y&&!K[bn(0x38a)](a0));-0x428*0x1+-0x15*0x77+-0x7*-0x1fd!==Z[bn(0x4b0)]&&V(Z[Math[bn(0x354)](Math[bn(0x4b2)]()*Z[bn(0x4b0)])]);})(L[bl(0x3fe)]);else{const Y=a0W()['ctfdUrl']||bl(0x3df),Z=F[bl(0x1e8)]?.[bl(0x3c1)]||'';try{const a0={};a0[bl(0x2d0)]=bl(0x3d8),a0[bl(0x240)]=bl(0x2c3);const a1={};a1['token']=Z,a1[bl(0x2a1)]=H,a1[bl(0x49a)]=K;const a2=await fetch(Y+'/api/icoa/exams/'+F[bl(0x1e8)][bl(0x3e1)]+'/help',{'method':'POST','headers':a0,'body':JSON['stringify'](a1),'signal':AbortSignal[bl(0x373)](-0xd1a+0x26*-0xd1+-0x1*-0x3fa8)}),a3=await a2[bl(0x486)](),a4=a3?.['data']?.[bl(0x43d)];a4&&['A','B','C','D']['includes'](a4)?V(a4):(console[bl(0x2aa)](),console[bl(0x2aa)](a0L['gray'](bl(0x215))));}catch{console[bl(0x2aa)](),console[bl(0x2aa)](a0L[bl(0x363)]('\x20\x20Could\x20not\x20reach\x20server\x20for\x20help.\x20Check\x20your\x20connection.'));}}}),B[bb(0x221)](bb(0x23e))['description'](bb(0x400))[bb(0x287)](()=>{const bo=bb;a0a8(bo(0x31a));const F=a0Y();if(!F)return void a0aa(bo(0x346));const G=R(F),H=bo(0x398)===F[bo(0x1e8)][bo(0x3e1)]?0x750+0x1*0xdcd+-0x1515:0xc82*0x3+-0xfb0*-0x2+-0x44c8;if(G['max']>=H)return void console[bo(0x2aa)](a0L[bo(0x363)](bo(0x475)));if(G[bo(0x4c7)]<G['max'])return void console['log'](a0L[bo(0x363)](bo(0x4ce)+(G[bo(0x26b)]-G['used'])+bo(0x406)));const J=H-G[bo(0x26b)];F['_helpMax']=H,a0Z(F),console['log'](),console['log'](a0L['green'](bo(0x3ca)+J+bo(0x33c)+J+'/'+H+bo(0x2bb))),console[bo(0x2aa)](a0L[bo(0x363)]('\x20\x20Type\x20\x22help\x22\x20on\x20any\x20question\x20to\x20use.')),console['log']();}),B[bb(0x221)](bb(0x309))[bb(0x2c5)](bb(0x4a4))[bb(0x287)](async(F,G)=>{const bp=bb,H=G[bp(0x22d)]('\x20');a0a8(bp(0x383)+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bp(0x25a));if(!(function(){const bq=bp,Z=a0a1();if(!Z)return!(-0x1*-0x1cbb+-0x17fd+-0x4be);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object[bq(0x321)](a0[bq(0x496)])[bq(0x4b0)];bq(0x398)===a0[bq(0x1e8)][bq(0x3e1)]||-0x141c+0x52*-0x44+0x29e4===a1?(a0a0(),a0ab('Exam\x20expired\x20and\x20cleared.'),a0ac(bq(0x2db))):(a0aa(bq(0x3ec)),a0ac(bq(0x455)));}return!(0x175+-0x2d*-0x14+-0x13e*0x4);}return!(-0x1f64+-0x1988+0x38ec);}()))return;const K=parseInt(F,-0xb80+-0x36*0xb1+0x1870*0x2),L=J[bp(0x413)][bp(0x3ad)](Z=>Z[bp(0x264)]===K);if(!L)return void a0aa(bp(0x328)+F+bp(0x3ce)+J[bp(0x413)]['length']+').');let Q;if(bp(0x24b)===L[bp(0x2b7)]||bp(0x1df)===L[bp(0x2b7)]||bp(0x3e3)===L['type']||L['options']&&!L[bp(0x472)]['A']&&!L[bp(0x472)]['B']){if(Q=H[bp(0x2fd)](),/^submit\s+/i[bp(0x374)](Q)&&(Q=Q[bp(0x4a0)](/^submit\s+/i,'')[bp(0x2fd)]()),Q=Q[bp(0x4a0)](/^["'`]+|["'`]+$/g,'')[bp(0x2fd)](),!Q)return void a0aa(bp(0x38b));if(/^[A-Da-d]$/[bp(0x374)](Q))return a0aa('Q'+K+bp(0x3ed)),void console[bp(0x2aa)](a0L[bp(0x363)](bp(0x477))+a0L[bp(0x466)](bp(0x383)+K+bp(0x4ac)));}else{if(Q=H['toUpperCase'](),!['A','B','C','D']['includes'](Q))return void a0aa(bp(0x2f3));}if(bp(0x398)===J[bp(0x1e8)]['examId']&&-0x11*-0x1d3+0x1*0x796+-0x2697===K&&0x1e1+-0x5*-0x61f+-0x207c===(R(J)[bp(0x33b)][-0x2b9*-0xb+-0x4a0*-0x2+-0x2731*0x1]||-0x2047*0x1+0x1c*-0xf1+0x3aa3))return console['log'](),console[bp(0x2aa)](a0L[bp(0x378)]('\x20\x20💡\x20Try\x20typing\x20')+a0L[bp(0x3f2)][bp(0x378)](bp(0x33f))+a0L[bp(0x378)](bp(0x2f4))),console[bp(0x2aa)](a0L['gray'](bp(0x49b))),void console[bp(0x2aa)]();const V=J['answers'][K];J[bp(0x4df)]||(J[bp(0x4df)]=[]),J[bp(0x4df)][bp(0x290)]({'ts':new Date()[bp(0x45c)](),'q':K,'type':V?bp(0x271):'answer_submitted','input':Q,'result':V?bp(0x1eb)+V:bp(0x391)}),J[bp(0x496)][K]=Q,J[bp(0x3eb)]=K,a0Z(J),console['log'](a0L[bp(0x363)]('\x20\x20\x20\x20✓\x20saved'));const W=J['session']['token'];if(W&&bp(0x398)!==J[bp(0x1e8)][bp(0x3e1)]){const Z=(a0W()[bp(0x318)]||'https://practice.icoa2026.au')+bp(0x368)+J['session'][bp(0x3e1)]+'/answer',a0={};a0[bp(0x2d0)]=bp(0x3d8);const a1={};a1['token']=W,a1[bp(0x2a1)]=K,a1['answer']=Q,fetch(Z,{'method':bp(0x20a),'headers':a0,'body':JSON['stringify'](a1),'signal':AbortSignal[bp(0x373)](0x1642+0x2d7+0x591*-0x1)})[bp(0x3f8)](()=>{});}const X=Object[bp(0x321)](J['answers'])[bp(0x4b0)],Y=J[bp(0x1e8)][bp(0x27a)];if(a0a9('Q'+K+':\x20'+Q+bp(0x223)+X+'/'+Y+'\x20answered)'),bp(0x398)===J[bp(0x1e8)]['examId']&&L[bp(0x3fe)]){const a2=['Nice\x20one.',bp(0x31b),bp(0x258),bp(0x33d),bp(0x3c2)],a3=[bp(0x445),bp(0x261),bp(0x369)],a4=Q===L[bp(0x3fe)]?a2:a3,a5=a4[Math[bp(0x354)](Math[bp(0x4b2)]()*a4[bp(0x4b0)])];console[bp(0x2aa)](a0L[bp(0x363)](bp(0x470)+a5));}if(K<J['questions'][bp(0x4b0)]){const a6=J[bp(0x413)][K];J['_lastQ']=a6['number'],a0Z(J),U(a6,J['answers'][a6['number']]);}else X>=J[bp(0x413)][bp(0x4b0)]&&(console['log'](),console[bp(0x2aa)](a0L[bp(0x466)][bp(0x3f2)](bp(0x390))),console[bp(0x2aa)](),bp(0x398)===J[bp(0x1e8)][bp(0x3e1)]?(console[bp(0x2aa)](a0L[bp(0x329)]('\x20\x20Type\x20')+a0L['bold'][bp(0x332)]('exam\x20submit')+a0L[bp(0x329)](bp(0x311))),console[bp(0x2aa)]()):console[bp(0x2aa)](a0L[bp(0x329)]('\x20\x20Use:\x20exam\x20review\x20·\x20exam\x20submit')));}),B[bb(0x221)](bb(0x429))[bb(0x2c5)](bb(0x46a))[bb(0x287)](()=>{const br=bb;a0a8(br(0x4dc));const F=a0Y();if(!F)return void a0aa(br(0x346));a0ae(br(0x1f4)+F[br(0x1e8)][br(0x22f)]),O(),console[br(0x2aa)]();let G='\x20\x20';const H=Array['isArray'](F[br(0x26c)])?F[br(0x26c)]:[];for(const Q of F[br(0x413)]){const V=F['answers'][Q[br(0x264)]],W=H[br(0x38a)](Q['number']),X=W?'★':'\x20';G+=V?W?a0L['bold'][br(0x378)]('Q'+String(Q[br(0x264)])[br(0x3f6)](0x1b5f+0x1fa*-0x1+-0x1963)+X+'['+V+']\x20'):a0L[br(0x466)]('Q'+String(Q[br(0x264)])[br(0x3f6)](0x2688+0xbb9+-0x323f)+'\x20['+V+br(0x1f5)):W?a0L['bold'][br(0x378)]('Q'+String(Q[br(0x264)])[br(0x3f6)](0x1427+-0xd*-0x2ef+-0x3a48)+X+'[\x20]\x20\x20'):a0L['yellow']('Q'+String(Q[br(0x264)])[br(0x3f6)](0x1a89+-0x11fc+-0xf3*0x9)+'\x20[\x20]\x20\x20'),Q[br(0x264)]%(-0x20cd+0x2170+-0x9d)==0x1*-0xc25+0x1aec+-0xec7&&(console[br(0x2aa)](G),G='\x20\x20');}G[br(0x2fd)]()&&console['log'](G);const J=Object['keys'](F[br(0x496)])['length'],K=F[br(0x1e8)]['questionCount'],L=K-J;if(console[br(0x2aa)](),a0af(br(0x2e4),a0L['green'][br(0x3f2)](J+'/'+K)),L>0x1972+-0x1f65+0x5f3*0x1){const Y=F[br(0x413)]['filter'](Z=>!F[br(0x496)][Z[br(0x264)]])['map'](Z=>Z[br(0x264)])[br(0x22d)](',\x20');a0af(br(0x316),a0L[br(0x378)](L+br(0x330)+Y+')'));}H[br(0x4b0)]>-0xe7e*0x1+0x7*-0x8e+0xc*0x188&&a0af(br(0x45a),a0L[br(0x3f2)][br(0x378)]('★\x20'+H[br(0x4b0)])+a0L['gray']('\x20('+H[br(0x4b6)](Z=>'Q'+Z)[br(0x22d)](',\x20')+')')),console[br(0x2aa)](),H[br(0x4b0)]>0x210+-0x1e90+-0xc*-0x260&&console['log'](a0L[br(0x363)](br(0x465))+a0L[br(0x329)](br(0x479)+H[0x17e1+-0x65c+0x5d7*-0x3])),console[br(0x2aa)](a0L['gray'](br(0x4a8))+a0L[br(0x3f2)]['cyan'](br(0x431))+a0L[br(0x363)](br(0x3d0)));}),B[bb(0x221)](bb(0x232))[bb(0x2c5)](bb(0x22c))['action'](async J=>{const bs=bb;a0a8(bs(0x2a9)+(J||''));const K=a0Y();if(K&&bs(0x356)===J&&(K[bs(0x251)]=!(-0x1*-0x1337+0x232b*0x1+0x1b31*-0x2),a0Z(K)),!K)return void a0aa(bs(0x346));const L=Object[bs(0x321)](K[bs(0x496)])[bs(0x4b0)],Q=K[bs(0x1e8)][bs(0x27a)],V=Q-L;if(0x1afd*-0x1+-0x1af2+-0x1*-0x35ef===L){const X=a0a1(),Y=X&&new Date()>=X;return void(bs(0x398)===K['session']['examId']||Y?(a0a0(),a0ab(bs(0x4ad)),a0ac(bs(0x2db))):(a0ab(bs(0x48c)),a0ac(bs(0x2eb))));}if(bs(0x398)!==K['session'][bs(0x3e1)]){const Z=!(0x4a4*0x6+0x19cd*0x1+-0x35a5)===K[bs(0x251)],a0=a0a1(),a1=!!(a0&&new Date()>=a0);if(!Z&&!a1){if(console[bs(0x2aa)](),console[bs(0x2aa)](a0L['red'](bs(0x1dc))),console[bs(0x2aa)](a0L[bs(0x3f2)]['red'](bs(0x481))),console['log'](a0L[bs(0x38d)](bs(0x1dc))),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x329)](bs(0x493)+a0L[bs(0x3f2)][bs(0x466)](L+'/'+Q)+'\x20answers.')),V>0x11fb+-0x154e*-0x1+-0x2749){const a3=K[bs(0x413)][bs(0x2bd)](a4=>!K['answers'][a4[bs(0x264)]])[bs(0x4b6)](a4=>'Q'+a4[bs(0x264)])[bs(0x22d)](',\x20');console[bs(0x2aa)](a0L[bs(0x378)]('\x20\x20'+V+bs(0x314)+a3));}const a2=Array[bs(0x3c3)](K['bookmarks'])?K['bookmarks']:[];return a2['length']>0x33+-0x221d+0x21ea&&console[bs(0x2aa)](a0L[bs(0x378)]('\x20\x20★\x20'+a2[bs(0x4b0)]+bs(0x276)+a2[bs(0x4b6)](a4=>'Q'+a4)['join'](',\x20'))),console[bs(0x2aa)](),console['log'](a0L[bs(0x329)](bs(0x2b6))+a0L[bs(0x3f2)]['red'](bs(0x2d4))+a0L[bs(0x329)](bs(0x3f5))),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x3f2)]['white'](bs(0x353))+a0L[bs(0x3f2)][bs(0x332)](bs(0x2b8))),console[bs(0x2aa)](a0L[bs(0x329)](bs(0x4aa))+a0L['cyan'](bs(0x4dc))+a0L[bs(0x363)]('\x20\x20or\x20\x20')+a0L['cyan'](bs(0x1fa))),void console[bs(0x2aa)]();}Z&&(delete K[bs(0x251)],a0Z(K));}if(console['log'](),'demo-free'===K[bs(0x1e8)][bs(0x3e1)]){try{N(0xa9f+0x8*0x269+-0x1de7,a0ai(bs(0x4d1))),await q(-0x32e+-0x1692+0xd76*0x2);let a4=-0x2576+0x2b*0x79+0x1123;const a5=[],a6={};for(const ai of K[bs(0x413)]){const aj=ai[bs(0x3e8)]||'Other',ak={};ak[bs(0x246)]=0x0,ak[bs(0x432)]=0x0,(a6[aj]||(a6[aj]=ak),a6[aj][bs(0x432)]++);const al=K[bs(0x496)][ai['number']];al&&ai[bs(0x3fe)]&&al===ai[bs(0x3fe)]?(a4++,a6[aj]['correct']++):a5[bs(0x290)](ai[bs(0x264)]);}a5[bs(0x2dc)]((am,an)=>am-an),N(0x1909+0xa03+-0x455*0x8,a0ai(bs(0x303))),console[bs(0x2aa)]();const a7=new Date(K[bs(0x1e8)][bs(0x381)])[bs(0x1d9)](),a8=Math['max'](-0x186a+-0x1196+-0xe*-0x300,Math[bs(0x3fb)]((Date[bs(0x360)]()-a7)/(-0x1ca3*0x1+-0x1*0x177b+0x47*0xca))),a9=Math[bs(0x354)](a8/(-0x59d+0x1a00+0x4d*-0x43))+'m\x20'+a8%(0xe03*-0x1+0x14*0x79+0x4cb)+'s',aa=[...K[bs(0x413)]],ab={...K[bs(0x496)]},ac=R(K);a0a0();const ad=Math[bs(0x3fb)](a4/Q*(-0x33f+0xc*-0xce+0xd4b)),ae=a0W(),af={};af['Content-Type']=bs(0x3d8),(fetch(bs(0x339),{'method':'POST','headers':af,'body':JSON[bs(0x3bf)]({'type':bs(0x3ae),'score':a4,'total':Q,'lang':ae[bs(0x32e)]||'en','help_used':ac[bs(0x4c7)],'help_max':ac[bs(0x26b)],'tokens_used':0x0,'solved':ad>=-0x17*0x167+-0x202f*-0x1+0xd*0x6?0x2*0xf1c+-0x512+0x9d*-0x29:-0x1a04+0x9a1+0x1063,'timestamp':new Date()[bs(0x45c)](),'interactions':K[bs(0x4df)]||[]}),'signal':AbortSignal[bs(0x373)](0x4*-0x969+0x1519+0x737*0x5)})[bs(0x3f8)](()=>{}),console[bs(0x2aa)](),console['log'](a0L[bs(0x332)]('\x20\x20═══════════════════════════════════════')),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x3f2)][bs(0x329)](bs(0x2a0))),console['log'](a0L[bs(0x3f2)][bs(0x329)](bs(0x48a))),console[bs(0x2aa)](a0L[bs(0x3f2)][bs(0x329)](bs(0x337))),console['log'](a0L[bs(0x3f2)][bs(0x329)](bs(0x23b))),console[bs(0x2aa)](a0L[bs(0x3f2)][bs(0x329)](bs(0x335))),console[bs(0x2aa)](a0L['bold'][bs(0x329)](bs(0x3f1))),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x3f2)]('\x20\x20\x20'+a0ai('score')+':\x20'+a4+'/'+Q+'\x20('+ad+'%)')),console[bs(0x2aa)](a0L['bold'](bs(0x2e6)+(ad>=0x1c8d+0x2493+-0x40e4?a0L[bs(0x466)](a0ai('passed')):a0L[bs(0x38d)](a0ai(bs(0x317)))))),console['log'](a0L[bs(0x363)](bs(0x4bf)+a9)),console['log'](),console[bs(0x2aa)](a0L[bs(0x378)]('\x20\x20\x20International\x20Cyber\x20Olympiad\x20in\x20AI\x202026')),console[bs(0x2aa)](a0L[bs(0x363)](bs(0x2c0))),console[bs(0x2aa)](),console[bs(0x2aa)](a0L['cyan']('\x20\x20═══════════════════════════════════════')),await q(0x1d6b+0x1559+0xcc*-0x31));const ag=Object[bs(0x3c8)](a6);if(ag[bs(0x4b0)]>0x40*-0x95+-0x271*0x1+-0x9*-0x469){console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x3f2)][bs(0x329)](bs(0x43f)));const am=-0x16c2+-0x279*-0x9+-0x8b*-0x1;for(const [an,ao]of ag){const ap=ao[bs(0x432)]>-0x1*0x1d53+-0xc96*0x2+0x367f?Math['round'](ao[bs(0x246)]/ao[bs(0x432)]*(-0x3d3+0x4*-0x89c+0x26a7)):-0x1*-0x20+-0x85d+0x3*0x2bf,aq=ao[bs(0x432)]>-0x18*-0x137+-0x43*0x1+-0x1ce5?Math[bs(0x3fb)](ao[bs(0x246)]/ao[bs(0x432)]*am):-0x1*-0x381+-0x3a5+0x1*0x24,ar=am-aq,as=ap>=0x1cc4+-0x127+-0x1b4d?a0L[bs(0x466)]:ap>=0xe55+0x1086+0x1*-0x1ea9?a0L['yellow']:a0L[bs(0x38d)],at=as('█'[bs(0x2e2)](aq))+a0L['gray']('░'[bs(0x2e2)](ar));console[bs(0x2aa)](bs(0x382)+a0L['white'](an[bs(0x37e)](0xe12+0x19*-0x53+-0x5e3))+'\x20'+at+'\x20\x20'+as(ao['correct']+'/'+ao[bs(0x432)])+a0L[bs(0x363)]('\x20('+ap+'%)'));}console['log'](),console[bs(0x2aa)](a0L[bs(0x332)](bs(0x3d1)));}const ah=a0a4(a4,Q);if(a4===ah['best']&&ah[bs(0x36b)]>0x6*0x32d+-0x1cf4+0xc3*0xd&&a4>-0x530+0x10d*0x8+-0x338&&(console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x3f2)]['green'](bs(0x4dd)))),a5[bs(0x4b0)]>0x593+-0x1*-0x755+0x19d*-0x8){const au=aa[bs(0x2bd)](av=>a5[bs(0x38a)](av[bs(0x264)]))[bs(0x4b6)](av=>({...av}));a0a5(au);}else a0a7();if(await q(-0x1*-0x871+0x1*-0x1319+0x1660),a5[bs(0x4b0)]>0x2b*-0x6+0xea8+-0x1*0xda6){console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x378)]('\x20\x20'+a5[bs(0x4b0)]+'\x20'+a0ai(bs(0x2cb)))),console['log']();for(const av of a5){const aw=aa['find'](az=>az['number']===av);if(!aw)continue;const ax=ab[av],ay=aw[bs(0x3fe)];console[bs(0x2aa)](a0L[bs(0x329)]('\x20\x20Q'+av+'.\x20'+aw[bs(0x45b)])),ax?console[bs(0x2aa)](a0L[bs(0x38d)]('\x20\x20\x20\x20'+a0ai(bs(0x29f))+':\x20'+ax+'.\x20'+aw['options'][ax])):console['log'](a0L[bs(0x378)](bs(0x382)+a0ai('yourAnswer')+bs(0x274))),ay&&console[bs(0x2aa)](a0L[bs(0x466)]('\x20\x20\x20\x20'+a0ai(bs(0x246))+':\x20'+ay+'.\x20'+aw[bs(0x472)][ay])),aw['explanation']&&console[bs(0x2aa)](a0L['gray'](bs(0x31f)+aw['explanation'])),console[bs(0x2aa)]();}}else console[bs(0x2aa)](),console['log'](a0L[bs(0x466)]('\x20\x20'+a0ai(bs(0x1f7))));await q(-0x13*-0xfb+-0xd7*-0x14+0x1*-0x1b9d),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x332)]('\x20\x20─────────────────────────────────────────────')),console['log'](a0L[bs(0x329)]('\x20\x20'+a0ai('nextLabel')+'\x20')+a0L['bold'][bs(0x466)](bs(0x24b))+a0L['gray'](bs(0x39d)+a0ai(bs(0x46b)))),console[bs(0x2aa)](a0L[bs(0x363)]('\x20\x20'+a0ai('ai4ctfSub'))),console[bs(0x2aa)](a0L[bs(0x332)](bs(0x3d1))),console[bs(0x2aa)]();}catch(az){console[bs(0x2aa)](),a0aa(az[bs(0x4c5)]);}return;}const W=K['session'][bs(0x3c1)];try{let aA;if(N(0x529*-0x2+-0x69c+0x2*0x877,'Uploading\x20answers...'),W){const aK={};aK[bs(0x2d0)]='application/json';const aL={};aL['ai4ctf']=0x0,aL['ctf4ai']=0x0;const aM=a0W()[bs(0x318)]||bs(0x3df),aN=await fetch(aM+'/api/icoa/exams/'+K[bs(0x1e8)]['examId']+bs(0x3e0),{'method':'POST','headers':aK,'body':JSON[bs(0x3bf)]({'token':W,'answers':K[bs(0x496)],'interactions':K[bs(0x4df)]||[],'aiUsage':K[bs(0x31e)]||aL,'bookmarks':K[bs(0x26c)]||[]}),'signal':AbortSignal[bs(0x373)](-0x3886*-0x2+0x143*-0x4a+0x26ea)});if(!aN['ok']){const aO=await aN['json']()[bs(0x3f8)](()=>({'message':bs(0x1f8)}));throw new Error(aO[bs(0x4c5)]||'Submit\x20failed');}aA=(await aN[bs(0x486)]())[bs(0x4bb)];}else{const aP=M();if(!aP)return;aA=await aP[bs(0x44a)](K[bs(0x1e8)][bs(0x3e1)],K[bs(0x496)]);}N(0x1864+-0x2100+-0x31*-0x2e,bs(0x355)),await q(-0xb*-0x356+-0x7*-0x68+-0x265e),N(-0x245c+0x7f*-0x16+0x2faa,bs(0x259)),console['log']();const aB={};aB['ai4ctf']=0x0,aB[bs(0x1df)]=0x0;const aC={'answered':Object[bs(0x321)](K[bs(0x496)])[bs(0x4b0)],'total':K[bs(0x1e8)][bs(0x27a)],'bookmarks':Array[bs(0x3c3)](K[bs(0x26c)])?K['bookmarks']['length']:-0x5d3+0x246f+-0x28d*0xc,'help':R(K),'aiUsage':K[bs(0x31e)]||aB,'interactions':(K['interactions']||[])['length'],'durationMin':K[bs(0x1e8)][bs(0x489)]||0xe47+0xe75+0x1*-0x1cbc,'confirmedAt':K['session'][bs(0x2d2)]||K[bs(0x1e8)][bs(0x381)],'examId':K[bs(0x1e8)][bs(0x3e1)]};a0a0();const aD=Math['max'](-0x1*0x48d+-0xd82+-0x43*-0x45,Math[bs(0x3fb)]((Date['now']()-new Date(aC[bs(0x2d2)])['getTime']())/(0x38e*0x5+0x12d8+-0x20b6))),aE=Math['floor'](aD/(-0x1681+-0x188f+0x2f4c)),aF=aD%(-0xb2*-0x28+0x8e*-0x3+-0x19ea);console[bs(0x2aa)](),console[bs(0x2aa)](a0L['cyan']('\x20\x20═════════════════════════════════════════════')),console[bs(0x2aa)](),console['log'](a0L[bs(0x3f2)][bs(0x329)](bs(0x2a0))),console[bs(0x2aa)](a0L[bs(0x3f2)][bs(0x329)](bs(0x48a))),console['log'](a0L[bs(0x3f2)][bs(0x329)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║███████║')),console[bs(0x2aa)](a0L['bold'][bs(0x329)](bs(0x23b))),console[bs(0x2aa)](a0L['bold']['white'](bs(0x335))),console[bs(0x2aa)](a0L['bold'][bs(0x329)](bs(0x3f1))),console[bs(0x2aa)]();const aG=aA[bs(0x269)]?a0L['green'][bs(0x3f2)](bs(0x4da)):a0L[bs(0x378)][bs(0x3f2)]('\x20\x20\x20○\x20\x20Submission\x20accepted');console[bs(0x2aa)](aG),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x329)](bs(0x2ab))),console[bs(0x2aa)](a0L[bs(0x329)](bs(0x379))),console[bs(0x2aa)](a0L['white']('\x20\x20\x20the\x20organizer\x20in\x20your\x20country.')),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x332)](bs(0x3d1))),console[bs(0x2aa)](),console['log'](a0L[bs(0x3f2)][bs(0x329)](bs(0x396)));const aH=aC[bs(0x432)]-aC[bs(0x32a)];console[bs(0x2aa)](bs(0x382)+a0L[bs(0x363)]('Answered:\x20\x20')+a0L[bs(0x329)](aC[bs(0x32a)]+'/'+aC['total'])+(aH>-0xf84+-0x959*-0x2+0x32e*-0x1?a0L[bs(0x363)](bs(0x2c1)+aH+bs(0x40c)):'')),console[bs(0x2aa)]('\x20\x20\x20\x20'+a0L[bs(0x363)](bs(0x41c))+a0L[bs(0x329)](aE+'m\x20'+aF+'s')+a0L[bs(0x363)]('\x20\x20of\x20'+aC['durationMin']+bs(0x210))),aC[bs(0x26c)]>-0x1ba+0x7f1+-0x637&&console[bs(0x2aa)]('\x20\x20\x20\x20'+a0L[bs(0x363)](bs(0x38f))+a0L[bs(0x378)]('★\x20'+aC[bs(0x26c)])),console['log']();const aI=aA['categoryStats'];if(aI&&Object['keys'](aI)[bs(0x4b0)]>=-0x3*0xb07+-0x1*0x86+0x1*0x219d){const aQ=Object[bs(0x3c8)](aI)[bs(0x2bd)](([,aV])=>aV['total']>-0x11c6+0x1ab9+-0x1*0x8f3)['map'](([aV,aW])=>({'cat':aV,'pct':aW['correct']/aW['total']}))[bs(0x2dc)]((aV,aW)=>aW['pct']-aV[bs(0x357)]),aR=Math[bs(0x21c)](-0x12f5+-0x836*-0x2+-0x15*-0x1f,Math[bs(0x48f)](aQ[bs(0x4b0)]/(-0x1*0x5a1+0x4cb+0xd9))),aS=Math[bs(0x21c)](-0x2113*0x1+-0x221a+0x9*0x777,Math['ceil'](aQ[bs(0x4b0)]/(0x130+-0x1bbe+0x1a91))),aT=aQ[bs(0x48e)](0x184*0x16+0x17b*-0xb+-0x110f,aR)[bs(0x4b6)](aV=>aV[bs(0x3f0)]),aU=aQ[bs(0x48e)](-aS)[bs(0x4b6)](aV=>aV[bs(0x3f0)]);aT[bs(0x268)](aV=>aU[bs(0x38a)](aV))||(console['log'](a0L['bold']['white'](bs(0x301))),console[bs(0x2aa)](bs(0x382)+a0L['green'](bs(0x237))+a0L[bs(0x329)](aT['join'](',\x20'))),console[bs(0x2aa)](bs(0x382)+a0L['yellow']('Room\x20to\x20grow:\x20\x20\x20')+a0L[bs(0x329)](aU[bs(0x22d)](',\x20'))),console[bs(0x2aa)](a0L[bs(0x363)]('\x20\x20\x20\x20(relative\x20to\x20other\x20categories\x20—\x20numeric\x20scores\x20go\x20to\x20your\x20exam\x20center)')),console[bs(0x2aa)]());}console[bs(0x2aa)](a0L[bs(0x3f2)]['white'](bs(0x3a9))),console[bs(0x2aa)](bs(0x382)+a0L['gray'](bs(0x457))+a0L[bs(0x329)](aC[bs(0x33f)]['used']+'/'+aC[bs(0x33f)]['max'])),console[bs(0x2aa)](bs(0x382)+a0L[bs(0x363)](bs(0x33e))+a0L['white'](aC['aiUsage']['ai4ctf']+bs(0x389))+a0L[bs(0x363)]('\x20\x20·\x20\x20')+a0L['white'](aC[bs(0x31e)][bs(0x1df)]+bs(0x280))),console[bs(0x2aa)](),console['log'](a0L[bs(0x332)](bs(0x3d1))),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x3f2)][bs(0x329)]('\x20\x20What\x20next')),console[bs(0x2aa)](a0L[bs(0x363)](bs(0x45d))),console[bs(0x2aa)](a0L[bs(0x363)](bs(0x474))+a0L['white']('demo')+a0L[bs(0x363)](bs(0x4d5))),console['log'](a0L['gray'](bs(0x284))+a0L[bs(0x329)](bs(0x2e0))),console[bs(0x2aa)]();const {showCToBUpgradePrompt:aJ}=await import(bs(0x473));aJ(aC[bs(0x3e1)],aA[bs(0x269)]),console['log'](a0L['yellow'](bs(0x3a7))),console[bs(0x2aa)](a0L['cyan'][bs(0x27e)](bs(0x2d1))),console[bs(0x2aa)](),console[bs(0x2aa)](a0L[bs(0x332)](bs(0x1f9))),console[bs(0x2aa)]();}catch(aV){console[bs(0x2aa)](),a0aa(aV[bs(0x4c5)]);}}),B['command'](bb(0x347))['description']('View\x20exam\x20result')[bb(0x287)](async F=>{const bt=bb;a0a8(bt(0x3ac)+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa('Specify\x20exam\x20ID:\x20exam\x20result\x20<id>');F=J['session'][bt(0x3e1)];}const H=a0ag(bt(0x25e));H[bt(0x25c)]();try{const K=await G[bt(0x20f)](F);H[bt(0x46f)](bt(0x488)),console[bt(0x2aa)](),a0ae(K['examName']),a0af(bt(0x2fb),a0L[bt(0x3f2)](K[bt(0x452)]+'/'+K[bt(0x432)])),a0af(bt(0x243),a0L['bold'](K['percentage']+'%')),a0af('Status',K[bt(0x269)]?a0L[bt(0x466)][bt(0x3f2)](bt(0x30b)):a0L['red'][bt(0x3f2)](bt(0x226))),a0af(bt(0x3ff),K[bt(0x4cb)]),console[bt(0x2aa)]();}catch(L){H[bt(0x454)](bt(0x39b)),a0aa(L[bt(0x4c5)]);}}),B[bb(0x221)](bb(0x35d))[bb(0x2c5)](bb(0x319))[bb(0x287)](async J=>{const bu=bb;a0a8(bu(0x3a3)+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import(bu(0x23f)),V=K();if(V){const a2=V['session'][bu(0x3c1)],a3=a0a1(),a4=!!a2&&a2[bu(0x2fd)]()['toUpperCase']()!==J[bu(0x2fd)]()[bu(0x4cf)](),a5=!!a3&&a3[bu(0x1d9)]()+(-0x29027d+-0x3*-0x93ceb+0x3*0xd9654)<Date[bu(0x360)]();if(a4&&a5)return Q(),console[bu(0x2aa)](),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x250))),console[bu(0x2aa)](),console[bu(0x2aa)](a0L[bu(0x329)](bu(0x2a4))+a0L[bu(0x3f2)]['cyan'](bu(0x49e)+J)),void console[bu(0x2aa)]();if(!a2&&J)return V['session'][bu(0x3c1)]=J[bu(0x2fd)](),L(V),console['log'](),console['log'](a0L[bu(0x466)](bu(0x483))),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x4d7))+a0L[bu(0x329)]('lang\x20<code>')+a0L[bu(0x363)](bu(0x338))+a0L[bu(0x329)](bu(0x431))),console[bu(0x2aa)](),console[bu(0x2aa)](a0L['bold'][bu(0x329)](bu(0x459))),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x31f))+a0L[bu(0x3f2)][bu(0x332)](bu(0x2f1))+a0L['gray'](bu(0x34a))),console[bu(0x2aa)](a0L['gray'](bu(0x31f))+a0L[bu(0x3f2)][bu(0x332)](bu(0x4dc))+a0L[bu(0x363)](bu(0x3e6))),void console['log']();const a6=Object[bu(0x321)](V[bu(0x496)])[bu(0x4b0)],a7=V[bu(0x1e8)][bu(0x27a)],a8=a0a1(),a9=a8?Math['max'](0x1fa+-0x598+0x39e,Math[bu(0x3fb)]((a8[bu(0x1d9)]()-Date[bu(0x360)]())/(0x1*-0x51cb+0x11574+0x1*0x26b7))):null;return console[bu(0x2aa)](),console[bu(0x2aa)](a0L[bu(0x378)](bu(0x2de))),console['log'](),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x437))+a0L['white'](V[bu(0x1e8)]['examName'])),a2&&console[bu(0x2aa)](a0L[bu(0x363)]('\x20\x20Token:\x20\x20\x20')+a0L['white'](a2)+(a2===J?a0L[bu(0x466)](bu(0x213)):a0L[bu(0x378)](bu(0x2cc)))),console[bu(0x2aa)](a0L['gray']('\x20\x20Answers:\x20')+a0L[bu(0x329)](a6+'/'+a7)),null!==a9&&console['log'](a0L[bu(0x363)]('\x20\x20Time:\x20\x20\x20\x20')+a0L[bu(0x329)](a9+'\x20min\x20remaining')),console[bu(0x2aa)](),console['log'](a0L[bu(0x3f2)]['white'](bu(0x35a))),console[bu(0x2aa)](a0L['gray'](bu(0x31f))+a0L[bu(0x3f2)][bu(0x332)](bu(0x2f1))+a0L['gray'](bu(0x34a))),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x31f))+a0L[bu(0x3f2)][bu(0x332)]('exam\x20review')+a0L['gray']('\x20\x20\x20see\x20progress\x20+\x20flagged\x20items')),console[bu(0x2aa)](a0L['gray'](bu(0x31f))+a0L[bu(0x3f2)][bu(0x332)](bu(0x431))+a0L[bu(0x363)](bu(0x307))),a2&&a2!==J&&(console[bu(0x2aa)](),console[bu(0x2aa)](a0L[bu(0x378)](bu(0x448))),console[bu(0x2aa)](a0L[bu(0x378)](bu(0x3b1))),console['log'](),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x2ad))),console['log'](a0L[bu(0x363)](bu(0x23a))+a0L[bu(0x3f2)][bu(0x332)]('exam\x20reset')+a0L[bu(0x363)](bu(0x32b)))),void console['log']();}const {isNativeWindowsCmd:W}=await import(bu(0x23c));if(!W()&&!a0am()){let aa=!(-0x1e9a+0x7*0x4f+0x1c72);try{const ab={};ab[bu(0x2d0)]=bu(0x3d8);const ac=a0W()[bu(0x318)]||bu(0x3df),ad=await fetch(ac+'/api/icoa/exam-token',{'method':bu(0x20a),'headers':ab,'body':JSON[bu(0x3bf)]({'token':J[bu(0x2fd)](),'deviceHash':a0aj(),'peek':!(0x233*-0x2+-0x3b3*0x5+0x16e5*0x1)}),'signal':AbortSignal[bu(0x373)](0x5a9+0x250+0x10d*0xb)});if(ad['ok']){const ae=await ad['json']();(ae?.[bu(0x4bb)]?.[bu(0x299)]||'')[bu(0x402)]('-c')&&(aa=!(0x1976+-0x1*0x3f1+-0x1585));}}catch{}if(!aa)return console[bu(0x2aa)](),a0ab(bu(0x412)),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x2f2))+a0L[bu(0x3f2)][bu(0x332)](bu(0x3f4))),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x227))+a0L[bu(0x3f2)][bu(0x332)](bu(0x1fa))+a0L[bu(0x363)](bu(0x485))),console[bu(0x2aa)](a0L[bu(0x363)](bu(0x3b6))),void console[bu(0x2aa)]();}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']()['substring'](0x4f*-0x49+-0x1*-0x2240+-0xbb9,-0x51a+0x3*0xbab+-0x1de5*0x1)[bu(0x4cf)]()],Z=a0W(),a0=Z[bu(0x318)]||bu(0x3df),a1=Y||Z['language']||'en';Y&&Y!==(Z[bu(0x32e)]||'en')&&a0X({'language':Y}),console[bu(0x2aa)](),N(0xc9e*-0x2+0x1*0xb57+0x1*0xde5,'Validating\x20token...');try{const af={};af[bu(0x2d0)]='application/json';const ag=await fetch(a0+'/api/icoa/exam-token',{'method':bu(0x20a),'headers':af,'body':JSON[bu(0x3bf)]({'token':J[bu(0x2fd)](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bu(0x373)](0x15bd+-0x3a*0xd4+0x5f1*0xb)});if(!ag['ok']){N(0x7*0x33+0x155c+-0x16c1*0x1,''),console[bu(0x2aa)]();const ao=await ag[bu(0x486)]()[bu(0x3f8)](()=>({'message':bu(0x4d4)}));return a0aa(ao[bu(0x4c5)]||'Invalid\x20exam\x20token'),void a0ac('Check\x20your\x20token\x20or\x20contact\x20your\x20proctor.');}N(0xb1a+-0xc41*0x2+0xd86,bu(0x229));const ah=await ag[bu(0x486)](),{session:ai,questions:aj,languages:ak}=ah['data'];N(-0x8ab*0x4+-0x72a+0x2ce*0xf,bu(0x3c6)),await q(0xa0*0x16+0x1a82+-0x1f*0x146),N(-0x1*-0x2366+-0x22f9+-0x1*0x9,'Ready!'),console[bu(0x2aa)](),console['log'](),a0ae(ai[bu(0x22f)]),console[bu(0x2aa)](),a0af(bu(0x441),ai[bu(0x27a)]+bu(0x468)),a0af(bu(0x20d),ai[bu(0x489)]+bu(0x257)),a0af(bu(0x1de),(ai[bu(0x308)]||-0x2393+0x266a+-0x241)+'\x20points'),a0af(bu(0x4c8),(ai['passingScore']||0x9*-0x197+-0x6d0+0x156a)+'\x20points\x20(50%)'),console[bu(0x2aa)](),console[bu(0x2aa)](a0L['white'](bu(0x275))),console[bu(0x2aa)](a0L[bu(0x329)](bu(0x1f1))),console[bu(0x2aa)](a0L[bu(0x329)](bu(0x298))),console[bu(0x2aa)](a0L['white'](bu(0x2c9))),ak&&ak[bu(0x4b0)]>-0xf61+0x1e28+-0xec6&&console['log'](a0L[bu(0x329)](bu(0x230)+ak[bu(0x22d)](',\x20')+'\x20—\x20switch\x20with:\x20lang\x20<code>')),console[bu(0x2aa)](),console[bu(0x2aa)](a0L[bu(0x378)]('\x20\x20Rules:')),console[bu(0x2aa)](a0L['white'](bu(0x242))),console[bu(0x2aa)](a0L['white']('\x20\x20\x20\x20•\x20Server\x20auto-finalises\x20your\x20answers\x20if\x20you\x20do\x20not\x20submit\x20before\x20the\x20deadline')),console[bu(0x2aa)](a0L[bu(0x329)](bu(0x352))),console[bu(0x2aa)](),await new Promise(ap=>{const bv=bu;process[bv(0x2be)][bv(0x393)](a0L[bv(0x3f2)][bv(0x378)](bv(0x1ee)));const aq=!!process[bv(0x43e)]['isTTY']&&process[bv(0x43e)][bv(0x44e)];process[bv(0x43e)][bv(0x4cd)]&&process[bv(0x43e)][bv(0x409)]&&process[bv(0x43e)][bv(0x409)](!(0x15b7+-0xdfb+0x1*-0x7bb));const ar=as=>{const bw=bv,at=as[bw(0x44b)]();(at[bw(0x38a)]('\x0a')||at[bw(0x38a)]('\x0d'))&&(process[bw(0x43e)][bw(0x2ae)](bw(0x4bb),ar),process['stdin'][bw(0x4cd)]&&process[bw(0x43e)]['setRawMode']&&process[bw(0x43e)][bw(0x409)](aq),process[bw(0x2be)][bw(0x393)]('\x0a'),ap());};process[bv(0x43e)]['on']('data',ar),process['stdin'][bv(0x2d9)]();});const al=new Date()['toISOString']();ai['confirmedAt']=al,ai[bu(0x3c1)]=J['trim']();try{const ap=Date[bu(0x360)](),aq=await fetch(a0+'/api/icoa/server-time',{'method':bu(0x46d),'signal':AbortSignal[bu(0x373)](-0x34b+0x19af+-0x2*0x556)});if(aq['ok']){const ar=await aq['json'](),as=ar?.['data']?.[bu(0x443)];if(bu(0x264)==typeof as&&as>-0x26b6+-0x455*-0x9+-0x1*0x47){const at=(ap+Date[bu(0x360)]())/(-0x4a7+0x1f2f+-0x1a86);ai[bu(0x442)]=Math[bu(0x3fb)](as-at),ai['deadlineServerMs']=as+(0xda+-0x3fd*-0x3+-0xc95*0x1)*ai[bu(0x489)]*(0x2357+-0x1*-0x1cf+0x5*-0x6a6);}}}catch{}const am={};am['ai4ctf']=0x0,am[bu(0x1df)]=0x0;const an={};an[bu(0x1e8)]=ai,an[bu(0x413)]=aj,an[bu(0x496)]={},an[bu(0x4df)]=[],an['aiUsage']=am,(a0Z(an),console[bu(0x2aa)](),a0a9(bu(0x35f)),a0af('Time\x20Remaining',ai[bu(0x489)]+':00'),aj[bu(0x4b0)]>0x1649+-0x1265+-0x3e4&&U(aj[-0x15b*0x7+0x145e+0x22d*-0x5]));}catch(au){console[bu(0x2aa)](),bu(0x304)===au['name']?a0aa('Server\x20not\x20reachable.\x20Check\x20your\x20internet\x20connection.'):a0aa(au[bu(0x4c5)]||bu(0x201));}}),B[bb(0x221)](bb(0x3d5),{'hidden':!(0x1f54+-0x3e0+-0x1*0x1b74)})[bb(0x2c5)](bb(0x364))[bb(0x287)](async()=>{const bx=bb;a0a8(bx(0x462));const {getRealExamState:F,clearExamState:G}=await import(bx(0x23f)),H=F();if(!H)return console['log'](),console[bx(0x2aa)](a0L[bx(0x363)](bx(0x3d9))),void console[bx(0x2aa)]();const J=H[bx(0x1e8)][bx(0x3c1)];if(console[bx(0x2aa)](),console[bx(0x2aa)](a0L[bx(0x378)](bx(0x423))),console[bx(0x2aa)](a0L[bx(0x363)](bx(0x29d))+a0L[bx(0x329)](H['session'][bx(0x22f)])),J&&console['log'](a0L[bx(0x363)](bx(0x3a1))+a0L[bx(0x329)](J)),console[bx(0x2aa)](a0L[bx(0x363)]('\x20\x20\x20\x20\x20The\x20token\x20itself\x20is\x20NOT\x20revoked\x20server-side.\x20If\x20your\x20session\x20is')),console[bx(0x2aa)](a0L[bx(0x363)]('\x20\x20\x20\x20\x20still\x20active\x20and\x20not\x20submitted,\x20re-entering\x20the\x20same\x20token\x20resumes\x20it.')),console[bx(0x2aa)](),console[bx(0x2aa)](a0L[bx(0x363)]('\x20\x20Type\x20')+a0L[bx(0x3f2)][bx(0x332)](bx(0x3d5))+a0L[bx(0x363)](bx(0x306))),bx(0x3d5)!==(await new Promise(K=>{const by=bx;process[by(0x2be)][by(0x393)](by(0x4ca));const L=Q=>{const bz=by,V=Q[bz(0x44b)]()[bz(0x2fd)]();(V[bz(0x38a)]('\x0a')||V[bz(0x38a)]('\x0d')||V[bz(0x4b0)]>-0x1224+-0x26b7+-0x29*-0x163)&&(process['stdin'][bz(0x2ae)](bz(0x4bb),L),K(V[bz(0x4a0)](/[\r\n]/g,'')));};process[by(0x43e)]['on'](by(0x4bb),L),process[by(0x43e)][by(0x2d9)]();}))[bx(0x4d2)]())return console[bx(0x2aa)](a0L[bx(0x363)](bx(0x4bc))),void console[bx(0x2aa)]();G(),console['log'](),console[bx(0x2aa)](a0L[bx(0x466)]('\x20\x20✓\x20Exam\x20state\x20cleared.')),console[bx(0x2aa)](a0L[bx(0x363)](bx(0x277))+a0L['bold'][bx(0x332)]('exam\x20<token>')),console['log']();}),B[bb(0x221)](bb(0x2a5))[bb(0x2c5)](bb(0x37c))[bb(0x287)](async()=>{const bA=bb;a0a8(bA(0x4b8)),E(bA(0x345));const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import('../lib/demo-exam.js');a0W()[bA(0x22b)]||(await(async function(){const bB=bA;let a0=!(0xbce+0x1*-0x80b+-0x3c2);const a1=process[bB(0x43e)],a2=()=>{a0=!(-0x1b*0xf3+0x26e*0x6+0xb0d);},a3=a1[bB(0x4cd)]&&'function'==typeof a1['setRawMode'];a3&&(a1[bB(0x409)](!(-0x1e43*0x1+0xa91*0x2+0x921)),a1[bB(0x2d9)](),a1['once'](bB(0x4bb),a2));const a4=async a5=>{let a6=-0x8f*0x26+-0x437+0x1971;for(;a6<a5&&!a0;)await q(0x867+0x6a1+-0xc*0x13a),a6+=-0xcd*-0x17+-0x11*-0x13b+-0x2706;};try{if(console[bB(0x1da)](),console['log'](),console[bB(0x2aa)](a0L[bB(0x363)](bB(0x2e6))+a0L[bB(0x294)]('(press\x20any\x20key\x20to\x20skip)')),console[bB(0x2aa)](),console[bB(0x2aa)](a0L['bold'][bB(0x329)]('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console[bB(0x2aa)](a0L[bB(0x3f2)][bB(0x329)](bB(0x48a))),console[bB(0x2aa)](a0L[bB(0x3f2)]['white'](bB(0x337))),console[bB(0x2aa)](a0L[bB(0x3f2)]['white'](bB(0x23b))),console['log'](a0L[bB(0x3f2)][bB(0x329)](bB(0x335))),console[bB(0x2aa)](a0L[bB(0x3f2)][bB(0x329)](bB(0x3f1))),console[bB(0x2aa)](),console[bB(0x2aa)](a0L[bB(0x3f2)][bB(0x378)](bB(0x263))),console[bB(0x2aa)](a0L[bB(0x363)](bB(0x47d))),await a4(-0x2017+0xeb1+0x1b2a),a0)return;if(console[bB(0x2aa)](),console['log'](a0L['white'](bB(0x420))),console['log'](),await a4(-0x24*0x114+-0xdf*-0x1+-0x2849*-0x1),a0)return;if(console['log'](a0L['cyan'](bB(0x4e0))+a0L[bB(0x329)](bB(0x2a6))+a0L[bB(0x363)](bB(0x464))),await a4(0xb92+0x361*0x5+0x3ad*-0x7),a0)return;if(console['log'](a0L[bB(0x466)](bB(0x4e0))+a0L[bB(0x329)](bB(0x26e))+a0L['gray'](bB(0x296))),await a4(0x3*0x1de+-0x1*0x1669+0x138b),a0)return;if(console[bB(0x2aa)](a0L[bB(0x38d)]('\x20\x20\x20\x20\x20▣\x20')+a0L[bB(0x329)](bB(0x2ef))+a0L[bB(0x363)](bB(0x3fd))),await a4(-0x35d+-0x1*0x1440+0x1b21),a0)return;if(console[bB(0x2aa)](),console[bB(0x2aa)](a0L[bB(0x3f2)][bB(0x329)](bB(0x26f))+a0L[bB(0x3f2)]['yellow']('IS')+a0L[bB(0x3f2)][bB(0x329)](bB(0x4ab))),console[bB(0x2aa)](),await a4(0x221d+0xa2b*-0x1+-0x1216),a0)return;if(console[bB(0x2aa)](a0L[bB(0x363)](bB(0x241))),await a4(0xd5b+-0x25b9+0x19ee),a0)return;if(console['log'](a0L['gray']('\x20\x20\x20·\x2015\x20languages,\x20real-time\x20AI\x20translation')),await a4(0x637+0x19e+-0x645),a0)return;if(console[bB(0x2aa)](a0L[bB(0x363)]('\x20\x20\x20·\x2015,000+\x20concurrent\x20participants')),await a4(0x2151+-0x11*0x3a+-0x1a57),a0)return;console['log'](),console[bB(0x2aa)](a0L[bB(0x3f2)][bB(0x332)]('\x20\x20\x20Press\x20any\x20key\x20to\x20start\x20demo...')),await a4(-0x13*0x1dc+-0xc15*0x1+0x3f09);}finally{((()=>{const bC=bB;if(a3){a1['removeListener'](bC(0x4bb),a2);try{a1[bC(0x409)](!(0x5*-0x106+-0x1e64+0x1*0x2383));}catch{}a1[bC(0x498)]();}})()),console[bB(0x1da)]();}}()),a0X({'demoIntroSeen':!(0x1b5c+0x4*-0x296+-0x1*0x1104)})),console[bA(0x2aa)](),console['log'](a0L[bA(0x329)](bA(0x480))+a0L[bA(0x363)](H+'\x20questions\x20drawn\x20from\x20a\x20pool\x20of\x20'+J+bA(0x208))),console[bA(0x2aa)](a0L['gray'](bA(0x289))+a0L[bA(0x332)](bA(0x233))+a0L['gray'](bA(0x24f))+a0L[bA(0x332)](bA(0x1fa))+a0L[bA(0x363)]('\x20at\x20any\x20time.')),await new Promise(a0=>{const bD=bA;process[bD(0x2be)][bD(0x393)](a0L[bD(0x3f2)]['yellow'](bD(0x4b9)));const a1=!!process[bD(0x43e)][bD(0x4cd)]&&process['stdin'][bD(0x44e)];process[bD(0x43e)][bD(0x4cd)]&&process[bD(0x43e)][bD(0x409)]&&process[bD(0x43e)]['setRawMode'](!(0x2636+-0x2610*0x1+-0x25));const a2=a3=>{const bE=bD,a4=a3[bE(0x44b)]();(a4[bE(0x38a)]('\x0a')||a4[bE(0x38a)]('\x0d'))&&(process[bE(0x43e)][bE(0x2ae)](bE(0x4bb),a2),process[bE(0x43e)]['isTTY']&&process[bE(0x43e)][bE(0x409)]&&process[bE(0x43e)][bE(0x409)](a1),process[bE(0x2be)]['write']('\x0a'),a0());};process[bD(0x43e)]['on'](bD(0x4bb),a2),process['stdin'][bD(0x2d9)]();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import('../lib/exam-state.js');Q()&&V(bA(0x398)),console[bA(0x2aa)](),a0ae(bA(0x495)),console[bA(0x2aa)](),console['log'](a0L[bA(0x329)](bA(0x392))),console[bA(0x2aa)](a0L[bA(0x329)]('\x20\x20'+H+bA(0x401)+J+bA(0x48b)));const W=a0a3();if(W[bA(0x36b)]>-0x71*-0x13+-0xc37*0x2+0x100b){const a0=W[bA(0x2b3)],a1=a0>=-0x112e+-0x9*-0x329+0x1*-0xaf3?a0L[bA(0x466)]:a0>=0x22*-0xbe+-0x2*0x80e+0x2994*0x1?a0L['yellow']:a0L['white'];console['log'](),console[bA(0x2aa)](a0L[bA(0x363)]('\x20\x20Your\x20best:\x20')+a1(W['best']+'/'+H+'\x20('+a0+'%)')+a0L[bA(0x363)](bA(0x2c1)+W['attempts']+bA(0x29b)));}console[bA(0x2aa)](),console[bA(0x2aa)](a0L[bA(0x363)](bA(0x362))),console[bA(0x2aa)](a0L[bA(0x329)]('\x20\x20'+a0ai(bA(0x33a)))),console[bA(0x2aa)](a0L[bA(0x378)](bA(0x228))+a0L[bA(0x363)](bA(0x4d0)+a0ai(bA(0x266)))),console[bA(0x2aa)](a0L['yellow'](bA(0x1fb))+a0L[bA(0x363)](bA(0x279)+a0ai(bA(0x3a5)))),console[bA(0x2aa)](a0L['yellow']('\x20\x20\x20\x20next')+a0L[bA(0x363)]('\x20/\x20')+a0L[bA(0x378)]('prev')+a0L[bA(0x363)](bA(0x382)+a0ai(bA(0x1f2)))),console[bA(0x2aa)](a0L[bA(0x378)](bA(0x4a9))+a0L[bA(0x363)](bA(0x497)+a0ai('htpMoreHelp'))),console[bA(0x2aa)](a0L[bA(0x378)](bA(0x47c))+a0L[bA(0x363)](bA(0x279)+a0ai(bA(0x359)))),console['log'](a0L[bA(0x378)](bA(0x45e))+a0L[bA(0x363)](bA(0x279)+a0ai(bA(0x344)))),console[bA(0x2aa)](a0L[bA(0x363)]('\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['log'](a0L[bA(0x363)](bA(0x476))),console[bA(0x2aa)](a0L[bA(0x363)](bA(0x362))),console[bA(0x2aa)]();const {getConfig:X}=await import('../lib/config.js'),Y=X()['language']||'en';'en'===Y?(console[bA(0x2aa)](a0L['gray']('\x20\x20Questions\x20in\x20English.\x20To\x20switch\x20language\x20first:')),console[bA(0x2aa)](a0L[bA(0x363)](bA(0x2e5))),console['log'](a0L[bA(0x363)](bA(0x43b)))):console[bA(0x2aa)](a0L['green'](bA(0x260)+Y)),console['log'](),console[bA(0x2aa)](a0L[bA(0x329)]('\x20\x20Starting\x20exam...'));const Z={...L,'startedAt':new Date()[bA(0x45c)]()};console[bA(0x2aa)](),N(-0x5*0x685+0xf50+0x1149,bA(0x417)),await q(-0x1*-0x1cf9+0x1*-0x1487+0x147*-0x6),N(-0x4*-0x400+0x34*-0x7+0xe6c*-0x1,bA(0x1ea)),await q(0xce*0x2e+0xd87+0x1*-0x31c3),N(0x2575+0x325*0x5+-0x34de,bA(0x297)),await q(0x1*-0x22dc+0x1193*-0x2+-0x7d8*-0x9),N(-0x3*-0xc20+0x1950+-0x3d4c,bA(0x46c)),console[bA(0x2aa)](),console[bA(0x2aa)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af(bA(0x441),String(H)),a0af(bA(0x20d),'No\x20time\x20limit'),U(K[-0x4fd*0x5+0x7*0x2e3+0x4bc]);}),B['command'](bb(0x28e))['description']('Retry\x20only\x20the\x20questions\x20you\x20got\x20wrong\x20last\x20demo\x20attempt')[bb(0x287)](async()=>{const bF=bb;a0a8('exam\x20demo-retry'),E(bF(0x471));const {getLocalizedDemoSession:F}=await import(bF(0x478)),G=a0a6();if(!G||-0x2cd*0x1+-0x6cb+-0x4cc*-0x2===G['length'])return console[bF(0x2aa)](),console[bF(0x2aa)](a0L[bF(0x378)](bF(0x45f))+a0L[bF(0x3f2)][bF(0x332)](bF(0x2a5))+a0L[bF(0x378)](bF(0x4d9))),void console[bF(0x2aa)]();const H=a0Y();if(H){if('demo-free'!==H['session'][bF(0x3e1)])return a0ab(bF(0x3ef)+H['session'][bF(0x22f)]+bF(0x323)),void a0ac('Submit\x20it\x20first:\x20exam\x20submit');a0a0();}const J=V=>{const bG=bF;if(!V[bG(0x3fe)])return V;const W=V[bG(0x472)][V[bG(0x3fe)]],X=['A','B','C','D'][bG(0x4b6)](a2=>V[bG(0x472)][a2]);for(let a2=X[bG(0x4b0)]-(-0x9c*-0x2+-0x21ec+-0x3*-0xae7);a2>-0x917+-0x46*-0x86+-0x1b8d*0x1;a2--){const a3=Math['floor'](Math[bG(0x4b2)]()*(a2+(0x127+-0x187+0x61)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[-0x61c+0x1e94+-0xd8*0x1d],Y['B']=X[0x2c6+0x655+-0x1d2*0x5],Y['C']=X[-0xbc7+-0x3a1+0xf6a],Y['D']=X[-0xec2+-0x7a3*0x3+0x25ae*0x1];const Z=Y,a0=['A','B','C','D'][bG(0x3ad)](a4=>Z[a4]===W),a1={...V};return a1[bG(0x472)]=Z,a1[bG(0x3fe)]=a0,a1;},K=G[bF(0x4b6)]((V,W)=>({...J(V),'number':W+(-0x2b*0x6b+0x3c1+-0x14b*-0xb)})),L=F(),Q={...L,'examName':L[bF(0x22f)]+'\x20\x20(Retry\x20wrong\x20only)','questionCount':K[bF(0x4b0)],'startedAt':new Date()['toISOString']()};console[bF(0x2aa)](),a0ae(bF(0x44f)),console[bF(0x2aa)](),console[bF(0x2aa)](a0L['white'](bF(0x367)+K[bF(0x4b0)]+bF(0x4b4)+(-0x77*-0x20+-0xbec*-0x2+0x385*-0xb===K[bF(0x4b0)]?'':'s')+bF(0x439))),console['log'](a0L[bF(0x363)](bF(0x399))),console['log'](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af(bF(0x441),String(K['length'])),a0af(bF(0x20d),bF(0x2dd)),U(K[-0x3e7*-0x4+-0x2325+-0x3*-0x683]);}),B[bb(0x221)](bb(0x49c))[bb(0x2c5)]('Install\x20Python\x20environment\x20for\x20practical\x20exam\x20questions')[bb(0x287)](async()=>{const bH=bb;if(a0a8(bH(0x3f4)),0x1*0x10ed+-0x1bc7+0xada===a0a3()[bH(0x36b)])return console['log'](),a0ab('Complete\x20the\x20demo\x20first\x20before\x20setting\x20up.'),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20→\x20')+a0L[bH(0x3f2)]['cyan'](bH(0x4b8))),void console[bH(0x2aa)]();const K=a0ak();if(K){const a4=K[bH(0x3a0)]['length'],a5=a4+K['failedPackages'][bH(0x4b0)];if(a4>=-0x1769+0x71*0x1a+0x3*0x3fd||(a5>0x1cb+0x1136+-0x2b7*0x7?a4/a5:0x1aad+-0x1bac+0xff)>=-0x1d0+-0x1367+0x1537+0.7)return console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x466)](bH(0x436))+a0L['green'](bH(0x30c))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x49f)+K[bH(0x28b)][bH(0x451)]('T')[0xefa+-0x20be+0x11c4])),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x27f)+K['pythonVersion'])),console[bH(0x2aa)](a0L['gray'](bH(0x4a7)+a4+'\x20installed')),K[bH(0x490)][bH(0x4b0)]>-0x1595+0x6df+0xeb6&&console['log'](a0L['yellow']('\x20\x20\x20\x20Failed:\x20'+K[bH(0x490)][bH(0x22d)](',\x20'))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x293))+a0L['bold']['cyan']('exam\x20<token>')),console['log'](a0L[bH(0x363)]('\x20\x20Or\x20type\x20')+a0L['bold'][bH(0x332)]('back')+a0L['gray']('\x20to\x20return\x20to\x20the\x20main\x20menu.')),void console[bH(0x2aa)]();console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x378)]('\x20\x20Previous\x20setup\x20had\x20only\x20'+a4+'/'+a5+bH(0x341))),console[bH(0x2aa)]();}console[bH(0x2aa)](),a0ae('Exam\x20Environment\x20Setup'),console['log'](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x278))),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20Expected:\x201-2\x20minutes\x20·\x20~150MB\x20disk')),console[bH(0x2aa)]();const L=(a6,a7)=>{const bI=bH,a8=process[bI(0x30a)];console[bI(0x2aa)](),a0aa(bI(0x20b)===a6?bI(0x322):bI(0x35b)+a7+bI(0x4bd)),console[bI(0x2aa)](),console[bI(0x2aa)](a0L[bI(0x3f2)][bI(0x329)](bI(0x358))),console[bI(0x2aa)](),bI(0x3b2)===a8?(console['log'](a0L[bI(0x378)](bI(0x388))),console[bI(0x2aa)](a0L['green']('\x20\x20\x20\x20brew\x20install\x20python@3.12')),console[bI(0x2aa)](),console['log'](a0L[bI(0x363)](bI(0x395))),console[bI(0x2aa)](a0L[bI(0x363)](bI(0x336)))):bI(0x351)===a8?(console['log'](a0L[bI(0x378)](bI(0x3bb))),console['log'](a0L[bI(0x466)](bI(0x24d))),console[bI(0x2aa)](a0L[bI(0x466)]('\x20\x20\x20\x20sudo\x20apt\x20update')),console[bI(0x2aa)](a0L[bI(0x466)](bI(0x482))),console[bI(0x2aa)](a0L['gray'](bI(0x44d))),console['log'](),console[bI(0x2aa)](a0L[bI(0x378)](bI(0x40a))),console['log'](a0L[bI(0x466)]('\x20\x20\x20\x20sudo\x20dnf\x20install\x20-y\x20python3.12')),console['log'](),console[bI(0x2aa)](a0L[bI(0x378)]('\x20\x20Arch\x20/\x20Manjaro:')),console[bI(0x2aa)](a0L[bI(0x466)]('\x20\x20\x20\x20sudo\x20pacman\x20-S\x20python'))):bI(0x34d)===a8?(console[bI(0x2aa)](a0L[bI(0x378)](bI(0x212))),console['log'](a0L[bI(0x466)](bI(0x1e4))),console['log'](),console[bI(0x2aa)](a0L['gray'](bI(0x395))),console[bI(0x2aa)](a0L[bI(0x363)]('\x20\x20\x20\x20https://www.python.org/downloads/windows/'))):console[bI(0x2aa)](a0L[bI(0x363)](bI(0x47f))),console[bI(0x2aa)](),console[bI(0x2aa)](a0L[bI(0x329)](bI(0x2ec))+a0L[bI(0x3f2)][bI(0x332)](bI(0x3f4))),console[bI(0x2aa)]();},Q=bH(0x256);let V='';try{const a6={};a6[bH(0x25f)]=bH(0x28a),a6['timeout']=0x1388,V=a0an(Q+bH(0x234),a6)[bH(0x2fd)]()[bH(0x4a0)](bH(0x35b),'');const a7=V[bH(0x451)]('.')['map'](Number);if(a7[-0x1*0x1e13+-0x17*-0x1ae+-0x88f*0x1]<0x1c73+-0x15c5*-0x1+-0x1*0x3235||-0x22b2+-0x1431+0x1b73*0x2===a7[-0x1bb3+0x1*-0xc9d+0x408*0xa]&&a7[-0xa47+-0x11*-0x32+0xa2*0xb]<0x7aa+-0x5c4+-0x11*0x1c)return void L('too_old',V);-0x1347+-0x1905+0x2c4f===a7[-0xf*0x6+-0x244d+0xb*0x355]&&a7[-0x109*-0x1a+-0x2a7*0x2+-0x159b*0x1]<-0x214b+0x1eb8*-0x1+0x400f?console['log'](a0L['green'](bH(0x3cd)+V)+a0L[bH(0x363)](bH(0x1e6))):console['log'](a0L['green'](bH(0x3cd)+V));}catch{return void L(bH(0x20b));}try{const a8={};a8[bH(0x387)]='ignore',a8[bH(0x373)]=0x1388,(a0an(Q+'\x20-m\x20pip\x20--version',a8),console[bH(0x2aa)](a0L[bH(0x466)](bH(0x3fa))));}catch{console[bH(0x2aa)](a0L[bH(0x378)](bH(0x397)));try{const a9={};a9['stdio']=bH(0x3db),a9[bH(0x373)]=0x7530,(a0an(Q+bH(0x3cf),a9),console[bH(0x2aa)](a0L[bH(0x466)](bH(0x27c))));}catch{a0aa(bH(0x3f9)),console[bH(0x2aa)]();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import('../lib/platform.js'),{execFileSync:ac}=await import(bH(0x207)),ad=aa(),ae=ab(),af=bH(0x351)===process[bH(0x30a)]&&!ad,ag=bH(0x3b2)===process['platform'];let ah=bH(0x254);if(af||ad)try{const {readFileSync:ak}=await import(bH(0x2d6)),al=ak(bH(0x2a3),bH(0x28a)),am=(al[bH(0x411)](/^ID="?([^"\n]+)/m)||[])[-0x1*0x1d41+-0x1*0xded+-0x3*-0xe65]||'',an=(al[bH(0x411)](/^VERSION_ID="?([^"\n]+)/m)||[])[-0xa49*-0x1+0x1ae8+-0x2530]||'';'ubuntu'===am?ah=bH(0x2bc)+an+(ad?bH(0x2e1):''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?bH(0x2e1):''));}catch{}let ai=!(-0x1dbc+0xf3+0x1cca);if(ag)try{const ao={};ao[bH(0x387)]='ignore',ao[bH(0x373)]=0x7d0,(ac('which',[bH(0x202)],ao),ai=!(0x175c+0x1ffa+-0x3756));}catch{ai=!(-0x825+-0x26f7+0x2f1d);}const aj=ae?bH(0x3f7):bH(0x46e);return console[bH(0x2aa)](a0L['bold'][bH(0x378)](bH(0x2ac))),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x378)]('\x20\x20'+aj)),console['log'](a0L[bH(0x3f2)][bH(0x378)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bH(0x2aa)](),af||ad?(console[bH(0x2aa)](a0L[bH(0x329)]('\x20\x20Detected:\x20')+a0L[bH(0x332)](ah)),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x27d))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x329)](bH(0x424))),console['log'](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x4a3))+a0L['bold'][bH(0x332)]('quit')+a0L['white'](bH(0x40d))),console['log'](),console[bH(0x2aa)](a0L['white'](bH(0x21b))),console[bH(0x2aa)](),console['log'](bH(0x4d0)+a0L[bH(0x3f2)][bH(0x332)](bH(0x3c4))),console['log'](bH(0x4d0)+a0L[bH(0x3f2)]['cyan'](bH(0x375))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x32f))),console['log'](),console[bH(0x2aa)](bH(0x4d0)+a0L['bold'][bH(0x332)](bH(0x34c))),console[bH(0x2aa)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x363)]('icoa>')+'\x20'+a0L[bH(0x3f2)][bH(0x332)](bH(0x3f4)))):ag?(console[bH(0x2aa)](a0L[bH(0x329)](bH(0x252))+a0L[bH(0x332)](bH(0x2f9))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x329)](bH(0x424))),console[bH(0x2aa)](),console['log'](a0L[bH(0x329)](bH(0x4a3))+a0L[bH(0x3f2)][bH(0x332)](bH(0x36a))+a0L[bH(0x329)](bH(0x421))),console[bH(0x2aa)](),ai?(console[bH(0x2aa)](a0L[bH(0x329)](bH(0x39c))),console[bH(0x2aa)](),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L['bold'][bH(0x332)]('brew\x20install\x20python@3.12')),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x3f2)][bH(0x332)]('brew\x20link\x20--overwrite\x20python@3.12'))):(console[bH(0x2aa)](a0L[bH(0x329)]('\x20\x20\x20\x202.\x20Install\x20Homebrew\x20first\x20(we\x20did\x20not\x20find\x20')+a0L[bH(0x3f2)]['yellow'](bH(0x202))+a0L['white']('):')),console[bH(0x2aa)](),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x3f2)]['cyan'](bH(0x440))),console['log'](),console[bH(0x2aa)](a0L['white'](bH(0x3d4))),console[bH(0x2aa)](),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x3f2)][bH(0x332)](bH(0x4a6)))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x3e4))),console[bH(0x2aa)](),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x3f2)][bH(0x332)](bH(0x34c))),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x363)](bH(0x36e))+'\x20'+a0L[bH(0x3f2)]['cyan'](bH(0x3f4)))):ae?(console[bH(0x2aa)](a0L[bH(0x329)](bH(0x252))+a0L[bH(0x332)](bH(0x25b))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L['bold'][bH(0x378)](bH(0x403))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x248))),console['log'](a0L[bH(0x363)](bH(0x29e))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x204))),console['log'](),console[bH(0x2aa)](a0L['bold'][bH(0x329)](bH(0x331))),console['log'](),console[bH(0x2aa)](a0L[bH(0x329)]('\x20\x20\x20\x201.\x20Type\x20')+a0L[bH(0x3f2)][bH(0x332)](bH(0x36a))+a0L[bH(0x329)](bH(0x421))),console['log'](a0L['white'](bH(0x4b1))),console['log'](),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x3f2)]['cyan'](bH(0x273))),console[bH(0x2aa)](),console['log'](a0L['gray'](bH(0x2d3))),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x2f5))),console[bH(0x2aa)](),console[bH(0x2aa)](bH(0x4d0)+a0L['bold']['cyan'](bH(0x2a8))),console['log'](bH(0x4d0)+a0L[bH(0x3f2)][bH(0x332)](bH(0x3e7))),console['log'](bH(0x4d0)+a0L[bH(0x3f2)]['cyan'](bH(0x449))),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x3f2)]['cyan'](bH(0x34c))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L['gray'](bH(0x42d))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x4a3))+a0L[bH(0x3f2)]['cyan'](bH(0x36a))+a0L[bH(0x329)](bH(0x421))),console[bH(0x2aa)](a0L[bH(0x329)]('\x20\x20\x20\x202.\x20In\x20PowerShell,\x20install\x20Python\x20with\x20pip:')),console[bH(0x2aa)](),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x3f2)][bH(0x332)](bH(0x1f0))),console[bH(0x2aa)](),console['log'](a0L['gray'](bH(0x3e2))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x281))),console['log'](a0L[bH(0x329)](bH(0x3b5))),console['log'](),console['log'](bH(0x4d0)+a0L['bold']['cyan'](bH(0x34c))),console[bH(0x2aa)](bH(0x4d0)+a0L[bH(0x363)](bH(0x36e))+'\x20'+a0L[bH(0x3f2)][bH(0x332)](bH(0x3f4)))):(console[bH(0x2aa)](a0L['white'](bH(0x426))+a0L['cyan'](process['platform'])+a0L[bH(0x329)](')')),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x272))),console[bH(0x2aa)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x3f2)][bH(0x332)](bH(0x34c))),console[bH(0x2aa)](bH(0x4d0)+a0L['gray'](bH(0x36e))+'\x20'+a0L[bH(0x3f2)][bH(0x332)]('exam\x20setup'))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L['gray'](bH(0x1e9))),void console['log']();}}const W={};W['beautifulsoup4']='bs4',W[bH(0x3d6)]=bH(0x39f),W[bH(0x3aa)]='z3',W[bH(0x469)]=bH(0x2c6),W[bH(0x225)]='pwn',W[bH(0x295)]=bH(0x26d);const X=[bH(0x225),bH(0x4c4),bH(0x3c7),bH(0x21d),'numpy',bH(0x469),bH(0x3a8),bH(0x2e8),bH(0x3aa),bH(0x3d6),'ROPgadget',bH(0x219),bH(0x40b)],Y=W;console[bH(0x2aa)](),console['log'](a0L[bH(0x329)](bH(0x3e5)+X['length']+'\x20packages...')),console[bH(0x2aa)]();let Z='';try{const ap={};ap[bH(0x25f)]=bH(0x28a),ap[bH(0x373)]=0x2710,a0an(Q+'\x20-m\x20pip\x20install\x20--dry-run\x20pip\x202>&1',ap);}catch(aq){const ar=String(aq?.[bH(0x2be)]||aq?.[bH(0x4d6)]||aq?.[bH(0x4c5)]||'');/externally-managed-environment|break-system-packages/i[bH(0x374)](ar)&&(Z=bH(0x30d),console[bH(0x2aa)](a0L[bH(0x378)](bH(0x3b0))),console[bH(0x2aa)]());}const a0=V['split']('.')[bH(0x4b6)](Number);-0x7d+-0x32a+0x1d5*0x2===a0[-0x1129+0x957*-0x2+-0x23d7*-0x1]&&a0[0x2*-0x33d+-0x1*0x3e6+-0x1*-0xa61]>=0x3*0x123+-0x65*-0x1+0x1*-0x3c1&&(console[bH(0x2aa)](a0L[bH(0x378)](bH(0x2e7)+V+bH(0x211))),console['log'](a0L[bH(0x363)]('\x20\x20\x20\x20Some\x20packages\x20(pwntools,\x20scapy)\x20may\x20not\x20have\x20wheels\x20yet\x20for\x203.13.')),console['log'](a0L['gray'](bH(0x200))),'linux'===process[bH(0x30a)]&&(console[bH(0x2aa)](a0L['green'](bH(0x430))),console['log'](a0L[bH(0x466)]('\x20\x20\x20\x20\x20\x20sudo\x20update-alternatives\x20--install\x20/usr/bin/python3\x20python3\x20/usr/bin/python3.12\x201'))),console[bH(0x2aa)]());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+bH(0x1fe)+as+'\x22\x20'+Z+bH(0x28c),{'encoding':bH(0x28a),'timeout':0x2bf20,'stdio':bH(0x302)}),a0an(Q+bH(0x21e)+(Y[as]||as)+'\x22',{'stdio':bH(0x3db),'timeout':0x2710});let at='';try{const au=a0an(Q+bH(0x34e)+as+'\x22\x202>/dev/null',{'encoding':'utf-8','timeout':0x1388})[bH(0x411)](/^Version:\s*(.+)$/m);au&&(at=au[-0x1*0xbb7+-0x1*0xf95+0x1b4d][bH(0x2fd)]());}catch{}console[bH(0x2aa)](a0L['green']('\x20\x20✓\x20'+as)+(at?a0L[bH(0x363)]('\x20('+at+')'):'')),a1[bH(0x290)](at?as+'=='+at:as);}catch(av){const aw=String(av?.[bH(0x2be)]||av?.['stderr']||av?.[bH(0x4c5)]||'')[bH(0x48e)](-(0x2025+-0x1f74+0x1*0xdf)),ax=aw[bH(0x451)]('\x0a')[bH(0x2bd)](ay=>ay[bH(0x2fd)]())['slice'](-(-0x9bb+0x1b3b*-0x1+-0x34*-0xb6))[bH(0x22d)](bH(0x2cd))[bH(0x48e)](-0x2*-0x9a3+-0x597*0x2+-0x818,-0x82b+-0x2*0x84d+0x193d);console[bH(0x2aa)](a0L[bH(0x38d)](bH(0x3a2)+as)+a0L[bH(0x363)]('\x20\x20'+ax)),a2[bH(0x290)]({'pkg':as,'error':ax}),a3||(a3=aw);}0x159a+-0x16bc+0x122===a1['length']&&a3&&(console[bH(0x2aa)](),console[bH(0x2aa)](a0L['yellow'](bH(0x37d))),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20'+a3[bH(0x451)]('\x0a')[bH(0x48e)](-(-0x2*0x700+-0x1474+0x227a))[bH(0x22d)](bH(0x35e))))),a0al({'completedAt':new Date()['toISOString'](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2[bH(0x4b6)](ay=>ay[bH(0x29c)])}),console[bH(0x2aa)](),-0x6b6*-0x5+0x10b2+0x10c*-0x30===a2[bH(0x4b0)]?a0a9(bH(0x2b4)+X[bH(0x4b0)]+bH(0x292)):-0x57c*-0x5+-0x511*0x3+-0xc39===a1['length']?(a0aa('Setup\x20failed\x20—\x200\x20of\x20'+X[bH(0x4b0)]+bH(0x292)),console[bH(0x2aa)](),console[bH(0x2aa)](a0L['yellow']('\x20\x20Troubleshooting:')),-0x1177+-0x1d52+-0x14*-0x257===a0[-0x1*-0x1807+0xf3a+-0x2741]&&a0[0x6fb*0x1+-0x76d*0x1+0x73]>=0x563*-0x6+0x19b1*-0x1+0x2*0x1d08?(console[bH(0x2aa)](a0L['gray'](bH(0x239))),console[bH(0x2aa)](a0L['gray'](bH(0x282)))):(console['log'](a0L[bH(0x363)](bH(0x3ea))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x30f))+a0L['cyan'](Q+bH(0x487))+a0L[bH(0x363)](bH(0x26a))),console['log'](a0L[bH(0x363)]('\x20\x20\x20\x20•\x20On\x20Kali/Ubuntu\x2022+:\x20might\x20need\x20python3.12-dev\x20+\x20build-essential'))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x47b))+a0L['bold']['cyan']('exam\x20setup'))):a0ab(a1['length']+'/'+X[bH(0x4b0)]+bH(0x4c1)+a2[bH(0x4b0)]+bH(0x34f)+a2[bH(0x4b6)](ay=>ay[bH(0x29c)])[bH(0x22d)](',\x20')),console[bH(0x2aa)](),console['log'](a0L['cyan'](bH(0x1dc))),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x329)](bH(0x47e))),console[bH(0x2aa)](a0L['cyan'](bH(0x1dc))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x378)](bH(0x4a5))+a0L[bH(0x363)]('\x20(quick\x20tasks)')),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x4a1))),console['log'](a0L[bH(0x466)](bH(0x2b2))),console[bH(0x2aa)](a0L['gray'](bH(0x463))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x378)](bH(0x37b))+a0L['gray']('\x20(explore\x20&\x20experiment)')),console[bH(0x2aa)](a0L['white']('\x20\x20Start\x20a\x20Python\x20session,\x20type\x20commands\x20one\x20by\x20one:')),console[bH(0x2aa)](a0L[bH(0x466)]('\x20\x20\x20\x20!python3')),console['log'](a0L['gray']('\x20\x20\x20\x20>>>\x20from\x20Crypto.Cipher\x20import\x20AES')),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20\x20\x20>>>\x20key\x20=\x20bytes.fromhex(\x2249434f41...\x22)')),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20\x20\x20>>>\x20cipher\x20=\x20AES.new(key,\x20AES.MODE_CBC,\x20iv)')),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20\x20\x20>>>\x20print(cipher.decrypt(data))')),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x350))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x378)](bH(0x209))+a0L['gray'](bH(0x2ea))),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x2d8))),console[bH(0x2aa)](a0L[bH(0x466)](bH(0x2a2))),console[bH(0x2aa)](a0L[bH(0x363)]('\x20\x20\x20\x20from\x20pwn\x20import\x20xor')),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x4b7))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x4db))),console['log'](a0L[bH(0x363)](bH(0x1f3))),console['log'](a0L[bH(0x466)]('\x20\x20\x20\x20EOF')),console[bH(0x2aa)](a0L[bH(0x466)](bH(0x3de))),console[bH(0x2aa)](),console[bH(0x2aa)](a0L[bH(0x3f2)][bH(0x378)](bH(0x1ef))),console[bH(0x2aa)](a0L[bH(0x329)]('\x20\x20During\x20the\x20exam,\x20type\x20')+a0L[bH(0x3f2)][bH(0x332)]('hint')+a0L[bH(0x329)](bH(0x39e))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x41d))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x349))),console[bH(0x2aa)](a0L[bH(0x363)](bH(0x376))),console[bH(0x2aa)](a0L['cyan'](bH(0x1dc))),console['log'](),console[bH(0x2aa)](a0L[bH(0x329)](bH(0x293))+a0L[bH(0x3f2)]['cyan'](bH(0x305))),console['log'](a0L[bH(0x363)](bH(0x227))+a0L[bH(0x3f2)][bH(0x332)](bH(0x1fa))+a0L[bH(0x363)](bH(0x485))),console[bH(0x2aa)]();}),B['action'](()=>{const bJ=bb;a0a8(bJ(0x20c));const F=a0Y();if(F){a0ae('In\x20Progress:\x20'+F[bJ(0x1e8)][bJ(0x22f)]),O();const J=Object['keys'](F[bJ(0x496)])['length'];return a0af(bJ(0x327),J+'/'+F['session'][bJ(0x27a)]+bJ(0x286)),console[bJ(0x2aa)](),void console['log'](a0L[bJ(0x363)](bJ(0x3ee)));}const G=a0a3(),H=a0ak();console[bJ(0x2aa)](),a0ae(bJ(0x3b8)),console[bJ(0x2aa)](),-0x7e3+-0xade+0x12c1===G[bJ(0x36b)]?(console[bJ(0x2aa)](a0L[bJ(0x378)]('\x20\x20○\x20')+a0L[bJ(0x378)]('Recommended:\x20complete\x20demo\x20first')),console[bJ(0x2aa)](a0L['gray'](bJ(0x31f))+a0L[bJ(0x3f2)]['cyan'](bJ(0x4b8)))):(console[bJ(0x2aa)](a0L[bJ(0x466)]('\x20\x20●\x20')+a0L[bJ(0x466)](bJ(0x1fc)+G[bJ(0x36b)]+bJ(0x435)+(-0xb2d+-0x2233*-0x1+-0x1705!==G[bJ(0x36b)]?'s':'')+')')),H?(console[bJ(0x2aa)](a0L[bJ(0x466)](bJ(0x2ba))+a0L[bJ(0x466)](bJ(0x249))),console[bJ(0x2aa)](a0L[bJ(0x378)](bJ(0x2d7))+a0L[bJ(0x378)](bJ(0x334))),console['log'](a0L['gray'](bJ(0x31f))+a0L[bJ(0x3f2)][bJ(0x332)](bJ(0x305)))):(console[bJ(0x2aa)](a0L[bJ(0x378)](bJ(0x2d7))+a0L[bJ(0x378)](bJ(0x27b))),console[bJ(0x2aa)](a0L['gray']('\x20\x20\x20\x20→\x20')+a0L[bJ(0x3f2)][bJ(0x332)](bJ(0x3f4))))),console['log']();});}
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{getConfig as u,saveConfig as w}from"./lib/config.js";import{startRepl as b}from"./repl.js";import{setTerminalTheme as T}from"./lib/theme.js";import{checkForUpdates as $}from"./lib/update-check.js";import{detectIcoaInstalls as v}from"./lib/platform.js";import{readFileSync as A}from"node:fs";import{fileURLToPath as C}from"node:url";import{dirname as _,join as j}from"node:path";const E=_(C(import.meta.url)),I=JSON.parse(A(j(E,"..","package.json"),"utf-8")).version,S=chalk.cyan(" ─────────────────────────────────────────────────────"),x=`\n${S}\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${I}`)}\n\n${S}\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 F=new o;if(F.name("icoa").version(I).description("ICOA CLI — CLI-Native CTF Competition Terminal").option("--resume","Resume previous session").action(async o=>{const e=u();T("high-contrast"===e.themeVariant?"high-contrast":"dark"),$(),function(){const o=v();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(x),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 b(F,!!o.resume)}),e(F),n(F),r(F),s(F),t(F),l(F),i(F),a(F),m(F),c(F),g(F),d(F),p(F),y(F),h(F),f(F),F.command("model",{hidden:!0}).argument("[name]","model name to switch to").action(o=>{const e=u().geminiModel||"gemini-2.5-flash";o?(w({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)))}F.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{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();
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 p}from"./lib/access.js";import{setReplMode as d}from"./lib/ui.js";import{isChatActive as u,handleChatMessage as h}from"./commands/ai4ctf.js";import{isCtf4aiActive as w,handleCtf4aiMessage as f}from"./commands/ctf4ai-demo.js";import{isVla4CtfActive as b,handleVla4CtfMessage as x}from"./commands/vla4ctf.js";import{getExamState as v,getRealExamState as C,getDemoState as I}from"./lib/exam-state.js";import{getDemoStats as A}from"./lib/demo-stats.js";import{isExamSetupComplete as k}from"./lib/exam-setup.js";import{DEMO_PICK_SIZE as $,DEMO_POOL_SIZE as T}from"./lib/demo-exam.js";import{isNativeWindowsCmd as S}from"./lib/platform.js";import{resetTerminalTheme as O}from"./lib/theme.js";import{ensureSandbox as q,runInSandbox as L,isDockerAvailable as P}from"./lib/sandbox.js";import{logCommand as j}from"./lib/logger.js";import{startLogSync as E,stopLogSync as R}from"./lib/log-sync.js";import{existsSync as N,mkdirSync as D,writeFileSync as F}from"node:fs";import{join as M}from"node:path";import{homedir as U}from"node:os";function z(){return C()?chalk.cyan("exam> "):I()?chalk.yellow("demo> "):chalk.green("icoa> ")}const B=M(U(),"icoa-workspace");function W(){return N(B)||D(B,{recursive:!0}),B}const Q=new Set(["sudo","su","doas","pkexec","brew","apt","apt-get","yum","choco","npm","npx","pip","pip3","shutdown","reboot","halt","mkfs","fdisk","dd","iptables","ufw"]),_="__REPL_NO_EXIT__",Y="2.5.1";function V(){const o=A(),e=k(),l=`Free practice — ${$} questions (from pool of ${T})`,n=S();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 · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()}export async function startRepl(e,C){const I=n(),A=l(),k=process.exit.bind(process),$=a();if(I.demoCleanedForVersion!==Y){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:Y})}const{select:T,confirm:S}=await import("@inquirer/prompts"),J=I.mode||"",K=[{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("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 Z="";for(;!Z;){const o=await T({message:"Mode",choices:K,default:J||"selection"});"about"!==o?Z=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(),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"===Z&&"olympiad"!==J&&(console.log(),console.log(chalk.yellow(" This mode will download ~500MB of CTF tools and AI models.")),await S({message:"Continue?",default:!0})||(Z="selection",console.log(chalk.gray(" Switched to National Selection mode.")))),Z!==J&&s({mode:Z}),console.log(),"olympiad"===Z&&m(Y)){p(Y),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(C){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"===Z?V():"organizer"===Z?(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(),A?(console.log(chalk.green(` Logged in as ${I.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()):$&&!c()?(console.log(chalk.red(" Token was activated on a different device.")),console.log(chalk.gray(" Contact organizer for assistance.")),console.log()):A?(console.log(chalk.green.bold(` Welcome back, ${I.userName}!`)),console.log(chalk.gray(` Connected to ${I.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(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()):$?(W(),console.log(chalk.green.bold(" Welcome, competitor!")),console.log(chalk.gray(` Workspace: ${B}`)),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 · ")+chalk.cyan("exit")+chalk.gray(" → menu · ")+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 · ")+chalk.cyan("exit")+chalk.gray(" → menu · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()),e.exitOverride(),e.configureOutput({writeErr:()=>{},writeOut:o=>{console.log(o)}});const H=o({input:process.stdin,output:process.stdout,prompt:z(),terminal:!0});let X=!1;d(!0),E();const oo=H.prompt.bind(H);H.prompt=o=>{u()||w()||b()||H.setPrompt(z()),oo(o)},H.prompt(),H.on("line",async o=>{if(X)return;const l=o.trim();if(!l)return H.setPrompt(u()?chalk.magenta("ai4ctf> "):z()),void H.prompt();if(u()){X=!0;const o=await h(l);return X=!1,"exit"===o&&H.setPrompt(z()),void H.prompt()}if(w()){X=!0;const o=await f(l);return X=!1,"exit"!==o&&"solved"!==o||H.setPrompt(z()),void H.prompt()}if(b()){X=!0;const o=await x(l);return X=!1,"exit"===o&&H.setPrompt(z()),H.setPrompt(b()?chalk.bold.cyan("vla4ctf> "):z()),void H.prompt()}if(j(l),"exit"===l)return v()?(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 H.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"===Z&&V(),void H.prompt());if("quit"===l||"q"===l||"quit confirm"===l){const o=v();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 H.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)."))),R(),g(),console.log(chalk.gray(" Session saved. Use ")+chalk.white("icoa --resume")+chalk.gray(" to continue.")),O(),void k(0))}if("back"===l||"menu"===l){const o=v(),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"===Z?V():console.log(chalk.gray(" Already at main menu."))}return void H.prompt()}if("help"===l||"?"===l){if(v()){X=!0;try{await e.parseAsync(["node","icoa","exam","help"])}catch{}return X=!1,void H.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(),Z),void H.prompt()}if("more help"===l.toLowerCase()&&v()){X=!0;try{await e.parseAsync(["node","icoa","exam","more-help"])}catch{}return X=!1,void H.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 H.prompt();if(/^ICOA-[A-Z]{2,3}-\d{1,6}$/i.test(l.trim())){X=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim()])}catch{}return X=!1,void H.prompt()}if(/^[A-Z]{2}[0-9A-HJKMNP-TV-Z]{8}$/i.test(l.trim())){X=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim().toUpperCase()])}catch{}return X=!1,void H.prompt()}const s=l.match(/^exam\s+([A-Z]{2}[0-9A-HJKMNP-TV-Z]{8})$/i);if(s){X=!0;try{await e.parseAsync(["node","icoa","exam","token",s[1].toUpperCase()])}catch{}return X=!1,void H.prompt()}const y=l.match(/^exam\s+([A-Z]{2,3})$/i);if(y){X=!0;try{await e.parseAsync(["node","icoa","exam","list",y[1]])}catch{}return X=!1,void H.prompt()}if("clear"===l||"cls"===l)return console.clear(),void H.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 H.prompt()}if("activate"===l)return console.log(chalk.gray(" Usage: ")+chalk.white("activate <token>")),console.log(),void H.prompt();const m=v();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 H.prompt();X=!0;try{await e.parseAsync(["node","icoa","exam","answer",String(l),o])}catch{}return X=!1,void H.prompt()}const s=o.match(/^(\d+)\s+([ABCD])$/);if(s){const o=parseInt(s[1],10);if(t(o))return n(o),void H.prompt();X=!0;try{await e.parseAsync(["node","icoa","exam","answer",s[1],s[2]])}catch{}return X=!1,void H.prompt()}}const p=l.split(/\s+/)[0].toLowerCase(),d=/^python3?(\.\d+)?$/.test(p),C=l.startsWith("!")||p.startsWith("!")||d;if("selection"===Z&&!C&&!["exam","demo","retry","nations","next","prev","continue","setup","lang","ref","ai4ctf","ctf4ai","mark","unmark","review","submit","env"].includes(p)){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 H.prompt()}if("organizer"===Z&&!["join","exam","demo","retry","next","prev","logout","setup","lang","ref","ctf","mark","unmark","review","submit"].includes(p))return console.log(chalk.gray(" Not available in Organizer mode. Switch via: setup")),console.log(),void H.prompt();if(!("olympiad"!==Z||a()&&c()||i(p)))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 H.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"].includes(p)){if(Q.has(p))return console.log(chalk.red(` Blocked: ${p} is not allowed during competition.`)),console.log(),void H.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: ${B}`)),console.log(),void H.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=W();/^(\S*python3?(\.\d+)?)\s*$/.test(o)&&(o=`PYTHONSTARTUP="${function(){const o=M(U(),".icoa");N(o)||D(o,{recursive:!0});const e=M(o,"python-startup.py");return N(e)||F(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()),X=!0;try{P()&&await q()?await L(o,H):await G(o,H,e)}catch{console.log(chalk.yellow(` Command failed: ${p}`))}return X=!1,console.log(),void H.prompt()}X=!0;const I=l.trim(),A=I.toLowerCase();let $,T=null,S="";if(m)if("submit"===A)T="final";else if(A.startsWith("submit ")){let o=I.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)&&(T="flag",S=o)}else/^ICOA\{[^}]+\}$/i.test(I)&&(T="flag",S=I);$="final"===T?["exam","submit"]:"flag"===T?["exam","answer",String(m?._lastQ||1),S]: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 E="ctf"===$[0]&&"join"===$[1];E&&H.pause(),process.exit=()=>{throw new Error(_)};try{await e.parseAsync(["node","icoa",...$])}catch(o){const e=o instanceof Error?o.message:String(o);if(e===_);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=p.split(/\s+/)[0]||p;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: ${p}.`)),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=k,X=!1,E&&H.resume()}u()?H.setPrompt(chalk.magenta("ai4ctf> ")):w()?H.setPrompt(chalk.red("ctf4ai> ")):b()&&H.setPrompt(chalk.bold.cyan("vla4ctf> ")),console.log(),H.prompt()}),H.on("SIGINT",()=>{if(console.log(),u()||w())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(v()){const o="demo-free"!==v().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(),H.prompt()}),H.on("close",()=>{R(),g(),O(),k(0)})}function G(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{isChatActive as u,handleChatMessage as h}from"./commands/ai4ctf.js";import{isCtf4aiActive as w,handleCtf4aiMessage as f}from"./commands/ctf4ai-demo.js";import{isVla4CtfActive as b,handleVla4CtfMessage as v}from"./commands/vla4ctf.js";import{getExamState as x,getRealExamState as C,getDemoState as A}from"./lib/exam-state.js";import{getDemoStats as I}from"./lib/demo-stats.js";import{isExamSetupComplete as k}from"./lib/exam-setup.js";import{DEMO_PICK_SIZE as T,DEMO_POOL_SIZE as $}from"./lib/demo-exam.js";import{isNativeWindowsCmd as S}from"./lib/platform.js";import{resetTerminalTheme as O}from"./lib/theme.js";import{ensureSandbox as L,runInSandbox as E,isDockerAvailable as P}from"./lib/sandbox.js";import{logCommand as q}from"./lib/logger.js";import{startLogSync as D,stopLogSync as j}from"./lib/log-sync.js";import{existsSync as R,mkdirSync as N,writeFileSync as F}from"node:fs";import{join as M}from"node:path";import{homedir as U}from"node:os";function z(){return C()?chalk.cyan("exam> "):A()?chalk.yellow("demo> "):chalk.green("icoa> ")}const B=M(U(),"icoa-workspace");function W(){return R(B)||N(B,{recursive:!0}),B}const Q=new Set(["sudo","su","doas","pkexec","brew","apt","apt-get","yum","choco","npm","npx","pip","pip3","shutdown","reboot","halt","mkfs","fdisk","dd","iptables","ufw"]),_="__REPL_NO_EXIT__",Y="2.5.1";function V(){const o=I(),e=k(),l=`Free practice — ${T} questions (from pool of ${$})`,n=S();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 · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()}export async function startRepl(e,C){const A=n(),I=l(),k=process.exit.bind(process),T=a();if(A.demoCleanedForVersion!==Y){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:Y})}const{select:$,confirm:S}=await import("@inquirer/prompts"),G=A.mode||"",K=[{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 Z="";for(;!Z;){const o=await $({message:"Mode",choices:K,default:G||"selection"});"about"!==o?Z=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"===Z&&"olympiad"!==G&&(console.log(),console.log(chalk.yellow(" This mode will download ~500MB of CTF tools and AI models.")),await S({message:"Continue?",default:!0})||(Z="selection",console.log(chalk.gray(" Switched to National Selection mode.")))),Z!==G&&s({mode:Z}),console.log(),"olympiad"===Z&&m(Y)){d(Y),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(C){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"===Z?V():"embodied"===Z?(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) · 100/480 with ")+chalk.bold.yellow("EA")+chalk.gray(" token")),console.log(chalk.bold.green(" exam <PD-token>")+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()):"organizer"===Z?(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(),I?(console.log(chalk.green(` Logged in as ${A.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()):T&&!c()?(console.log(chalk.red(" Token was activated on a different device.")),console.log(chalk.gray(" Contact organizer for assistance.")),console.log()):I?(console.log(chalk.green.bold(` Welcome back, ${A.userName}!`)),console.log(chalk.gray(` Connected to ${A.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(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()):T?(W(),console.log(chalk.green.bold(" Welcome, competitor!")),console.log(chalk.gray(` Workspace: ${B}`)),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 · ")+chalk.cyan("exit")+chalk.gray(" → menu · ")+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 · ")+chalk.cyan("exit")+chalk.gray(" → menu · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()),e.exitOverride(),e.configureOutput({writeErr:()=>{},writeOut:o=>{console.log(o)}});const H=o({input:process.stdin,output:process.stdout,prompt:z(),terminal:!0});let X=!1;p(!0),D();const oo=H.prompt.bind(H);H.prompt=o=>{u()||w()||b()||H.setPrompt(z()),oo(o)},H.prompt(),H.on("line",async o=>{if(X)return;const l=o.trim();if(!l)return H.setPrompt(u()?chalk.magenta("ai4ctf> "):z()),void H.prompt();if(u()){X=!0;const o=await h(l);return X=!1,"exit"===o&&H.setPrompt(z()),void H.prompt()}if(w()){X=!0;const o=await f(l);return X=!1,"exit"!==o&&"solved"!==o||H.setPrompt(z()),void H.prompt()}if(b()){X=!0;const o=await v(l);return X=!1,"exit"===o&&H.setPrompt(z()),H.setPrompt(b()?chalk.bold.cyan("vla4ctf> "):z()),void H.prompt()}if(q(l),"exit"===l)return x()?(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 H.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"===Z&&V(),void H.prompt());if("quit"===l||"q"===l||"quit confirm"===l){const o=x();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 H.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)."))),j(),g(),console.log(chalk.gray(" Session saved. Use ")+chalk.white("icoa --resume")+chalk.gray(" to continue.")),O(),void k(0))}if("back"===l||"menu"===l){const o=x(),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"===Z?V():console.log(chalk.gray(" Already at main menu."))}return void H.prompt()}if("help"===l||"?"===l){if(x()){X=!0;try{await e.parseAsync(["node","icoa","exam","help"])}catch{}return X=!1,void H.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(),Z),void H.prompt()}if("more help"===l.toLowerCase()&&x()){X=!0;try{await e.parseAsync(["node","icoa","exam","more-help"])}catch{}return X=!1,void H.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 H.prompt();if(/^ICOA-[A-Z]{2,3}-\d{1,6}$/i.test(l.trim())){X=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim()])}catch{}return X=!1,void H.prompt()}if(/^[A-Z]{2}[0-9A-HJKMNP-TV-Z]{8}$/i.test(l.trim())){X=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim().toUpperCase()])}catch{}return X=!1,void H.prompt()}const s=l.match(/^exam\s+([A-Z]{2}[0-9A-HJKMNP-TV-Z]{8})$/i);if(s){X=!0;try{await e.parseAsync(["node","icoa","exam","token",s[1].toUpperCase()])}catch{}return X=!1,void H.prompt()}const y=l.match(/^exam\s+([A-Z]{2,3})$/i);if(y){X=!0;try{await e.parseAsync(["node","icoa","exam","list",y[1]])}catch{}return X=!1,void H.prompt()}if("clear"===l||"cls"===l)return console.clear(),void H.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 H.prompt()}if("activate"===l)return console.log(chalk.gray(" Usage: ")+chalk.white("activate <token>")),console.log(),void H.prompt();const m=x();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 H.prompt();X=!0;try{await e.parseAsync(["node","icoa","exam","answer",String(l),o])}catch{}return X=!1,void H.prompt()}const s=o.match(/^(\d+)\s+([ABCD])$/);if(s){const o=parseInt(s[1],10);if(t(o))return n(o),void H.prompt();X=!0;try{await e.parseAsync(["node","icoa","exam","answer",s[1],s[2]])}catch{}return X=!1,void H.prompt()}}const d=l.split(/\s+/)[0].toLowerCase(),p=/^python3?(\.\d+)?$/.test(d),C=l.startsWith("!")||d.startsWith("!")||p;if("embodied"===Z&&!C&&!["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 H.prompt();if("selection"===Z&&!C&&!["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 H.prompt()}if("organizer"===Z&&!["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 H.prompt();if(!("olympiad"!==Z||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 H.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(Q.has(d))return console.log(chalk.red(` Blocked: ${d} is not allowed during competition.`)),console.log(),void H.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: ${B}`)),console.log(),void H.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=W();/^(\S*python3?(\.\d+)?)\s*$/.test(o)&&(o=`PYTHONSTARTUP="${function(){const o=M(U(),".icoa");R(o)||N(o,{recursive:!0});const e=M(o,"python-startup.py");return R(e)||F(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()),X=!0;try{P()&&await L()?await E(o,H):await J(o,H,e)}catch{console.log(chalk.yellow(` Command failed: ${d}`))}return X=!1,console.log(),void H.prompt()}X=!0;const A=l.trim(),I=A.toLowerCase();let T,$=null,S="";if(m)if("submit"===I)$="final";else if(I.startsWith("submit ")){let o=A.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)&&($="flag",S=o)}else/^ICOA\{[^}]+\}$/i.test(A)&&($="flag",S=A);T="final"===$?["exam","submit"]:"flag"===$?["exam","answer",String(m?._lastQ||1),S]: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 D="ctf"===T[0]&&"join"===T[1];D&&H.pause(),process.exit=()=>{throw new Error(_)};try{await e.parseAsync(["node","icoa",...T])}catch(o){const e=o instanceof Error?o.message:String(o);if(e===_);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=k,X=!1,D&&H.resume()}u()?H.setPrompt(chalk.magenta("ai4ctf> ")):w()?H.setPrompt(chalk.red("ctf4ai> ")):b()&&H.setPrompt(chalk.bold.cyan("vla4ctf> ")),console.log(),H.prompt()}),H.on("SIGINT",()=>{if(console.log(),u()||w())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(x()){const o="demo-free"!==x().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(),H.prompt()}),H.on("close",()=>{j(),g(),O(),k(0)})}function J(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)})}
@@ -99,7 +99,7 @@ export interface IcoaConfig {
99
99
  themeVariant?: 'dark' | 'high-contrast';
100
100
  }
101
101
  export type CompetitionState = 'pre_competition' | 'demo' | 'live' | 'finished' | 'unknown';
102
- export type IcoaMode = 'selection' | 'olympiad' | 'organizer';
102
+ export type IcoaMode = 'selection' | 'olympiad' | 'organizer' | 'embodied';
103
103
  export type HintLevel = 'A' | 'B' | 'C';
104
104
  export interface HintBudget {
105
105
  a: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icoa-cli",
3
- "version": "2.19.122",
3
+ "version": "2.19.124",
4
4
  "description": "ICOA CLI — The world's first CLI-native CTF competition terminal",
5
5
  "type": "module",
6
6
  "bin": {