icoa-cli 2.19.122 → 2.19.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/ai4ctf.js +1 -1
- package/dist/commands/demo2.d.ts +16 -0
- package/dist/commands/demo2.js +1 -0
- package/dist/commands/exam.js +1 -1
- package/dist/index.js +1 -1
- package/dist/repl.js +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/commands/ai4ctf.js
CHANGED
|
@@ -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(0x191))/(-0x203*-0x11+0xf36+-0x3168)+-parseInt(a4(0x17b))/(-0x6*0x56b+0x8b*-0x8+0x24dc)*(parseInt(a4(0xaa))/(-0xda6*-0x1+0x229a+0xe9*-0x35))+-parseInt(a4(0x138))/(-0x1daa*-0x1+0x2a5*0x5+-0x2adf)*(parseInt(a4(0x104))/(0x6c8+0x1e80+-0x1*0x2543))+parseInt(a4(0x173))/(0x34f*0x3+0x1f7d+-0x2*0x14b2)+-parseInt(a4(0x156))/(0x519*-0x4+0x3*-0x42c+0x1*0x20ef)+-parseInt(a4(0xab))/(0xb72*0x1+-0xd4e+0x1e4)+-parseInt(a4(0x190))/(0x1d*-0x5e+-0x1*0x872+-0x1321*-0x1)*(-parseInt(a4(0x193))/(-0xe8*0xd+-0x1d5a+0x292c));if(p===j)break;else k['push'](k['shift']());}catch(q){k['push'](k['shift']());}}}(a0b,0x10a4e+0x93a52+0x2b0f*-0xb));function a0b(){const ag=['icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','AgLUDhnvC2vK','icaKia','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','ywK0y3rMsw50zxjJzxb0zwq','ywK0y3rMvgHPBMTPBMC','ywK0y3rMv3jHCff1B3rHq0HPBNq','icdcTYaGuMuTzw50zxi6ia','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','ohrzC1LsDa','E25VuhjVz30','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','ywK0y3rMv3jHCe5VuhjVzW','icbtDgLSBcbHDMfPBgfIBgu6ia','ywK0y3rMsgLUDefcB2r5','icdINjmGuq','igfUC3DLCIb1CgrHDgvKoIa','cIaG','C3vIBwL0idXMBgfNpG','yw5ZD2vYCW','icdIMQaG','ywK0y3rMsgLUDe5LEhrb','vg9Rzw5Z','ywn0Aw9U','ywK0y3rMvgL0Bgu','Dgv4Da','lI4U','ue9tva','icaG4OAsia','lI4VBgLIl2v4yw0TC3rHDguUANm','icdILii','ywK0y3rMv3jHCfrPDgXL','Bwf0y2G','icaGia','ywK0y3rMsgLUDfrLy2HUAxf1zq','y2XLyxi','DxrMltG','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','nda5ndC0muT0zKntyG','xsaGWRCG','icaGigHPBNqGysaVigiGlYbJica','Dg9ju09tDhjPBMC','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','ywK0y3rMv3jHCe5LEhrtDwi','AM9PBG','z3jHEq','icbszxn1Bwu6ia','iokvKokvKokvKa','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','ywK0y3rMrM91BMrgBgfN','icdILzdILzdILzaG','BwLU','ywK0y3rMv291BgrfyxjU','y3rMngfP','ywK0y3rMv3jHCff1B3rHC1rPDgXL','ywK0y3rMrMXHz0HPBNq','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','icaGicaGicaGicaG','ywK0y3rMv3jHCeXPBMuXqM9KEq','icaGicaGigHPBNqGyIaGia','Bg9N','y29UDgLUDwu','icbozxH0oIa','icaGigHPBNqGyG','ywK0y3rMrxHPDe5LEhruAxrSzq','yMfJAW','ndK4mta4mejktvHOBW','y3LHBG','ChvZAa','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','AgLUDhm','ywK0y3rMsgLUDfbYAw5JAxbSzq','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','C3vIBwL0qxr0zw1WDgvK','mtq3nZiWD2nls1jA','ywK0y3rMuMv2zwfSvgL0Bgu','z3jLzw4','CM91BMq','icbbzNrLCIbLEgL0oIa','ywK0y3rMsgLUDem','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','BM93','C3bSAxq','ywK0y3rMuMv2zwfSqM9KEq','AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','ywK0y3rMsgLUDenvC2vZ','q29UDgvUDc1uExbL','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','iokaLca','D2HPDgu','CxvPDa','icdIMQaGww91CIbbstrdveyGDg9Rzw4GyNvKz2v0igLZigv4Agf1C3rLzc4','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','ywK0y3rMu2fTCgXL','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','mtK0nefWuhfNAa','nZa3ntqZtwfqr1zW','C3rKB3v0','nJi5nZbXv05kzhi','icaGihn1yM1PDca8zMXHzZ4Gica','x2XHC3rr','lIbkDw1WihrOzxjLigzPCNn0oG','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','C2vUze1LC3nHz2u','iokaLcb0ExbLia','g1SXqrTBmKS','yw5ZD2vYx3n1yM1PDhrLza','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','ywK0y3rMv3jHCff1B3rHrM9VDgvY','ywK0y3rMuMv2zwfStg9JA05VDgu','ihrVA2vUCYbSzwz0lG','BgvUz3rO','zxHPDa','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','Dg9mB3DLCKnHC2u','icaGicaGicbZDwjTAxqGAwnVyxT3m2XJmg1LxZjFywK0y3rMFq','ywK0y3rMuMv2zwfSu2vLrMXHzW','ywK0y3rMsgLUDe5LEhrc','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','DgLTzw91Da','yM9Sza','ywK0y3rMv3jHCeXPBMuYqM9KEq','ywK0y3rMtgv2zwXZ','z2vTBweTnc0ZmwiTAxq','ywK0y3rMuMvWB3j0','icdILRGGsgLUDca','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','icaGicaGicaGicaGicaGicaGicbLlMCUia','AgfZ','ywK0y3rMt3jdAgf0','ig9UifeZoq','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','CMvWBgfJzq','BwvZC2fNzq','icdILiiG','rNvSBcbXDwvZDgLVBJOGia','m2LdvwPNsa','ndyYnZq0A2L4A1PN','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','icbzB3uGyxjLig9Uife','ywK0y3rMsgLUDei','zxHHBsbXidmX','icbfCNjVCJOG','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','q29TBwfUzcbMywLSzwq','Dg9Rzw5mAw1PDa','ihrVignVBNrPBNvL','zw50zxjLzef0','zMLUza','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','icaGieP1C3qGDhLWzsbMCMvLBhKGDg8Gy2HHDcb3AxrOihrOzsbbssb0zwfTBwf0zs4','icboB3rLoIa1mcuGB2yGC2vJDgLVBIbbssbIDwrNzxqGDxnLzc4','ywK0y3rMrxHPDenTze5LEhq','zxHHBsbXia','icbr','CgfKrw5K','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','CMvK','ywK0y3rMtg9JA2vKvxnL','ywK0y3rMv3jHCff1B3rHqq','icaGice8C2HLBgWGy21KpIaGica','y29TBwfUza','ywrK','CxvLC3rPB25Z','ihbVAw50CYK6cG','ywK0y3rMv3jHCff1B3rHqKHPBNq','quK0q1rgihnLy3rPB24','icbHAtrJDgyGAxmGyxzHAwXHyMXLig9UifeZmEkaKZm4icHbstrdveyGC2vJDgLVBIKU','ywK0y3rM','ywK0y3rMq21Ku2HLBgXmAw5L','zw5JB2rPBMC','BNvTyMvY','C2XPy2u','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','quKGzxjYB3i6ia','Cg9PBNrZ','ywK0y3rMrxHPDenTzejHy2S','icaGicbIywnR','C3vIBwL0ieLdt0f7lI4UFq','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','icaOCMvZDw1PBMCG4OcuihbYAw9YignOyxqGAxmGBM90ihjLBwvTyMvYzwqSigj1Dcb0B2TLBNmGywXYzwfKEsb1C2vKihn0yxKGzgvKDwn0zwqP','ywK0y3rMtg9JA2vKvgL0Bgu','icaGidiUia','yxbWBgLJyxrPB24VANnVBG','sgLKzgvUie1LC3nHz2u','D3jPDgu','icaGihn1yM1PDcbjq09bEY4UlN0','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','zgvZy3jPChrPB24','ywK0y3rMsgLUDe5LEhrd','yxr0ywnOzwreyxrH','icaGicaGicaGicaGica','ywLvC2fNzq','y2f0zwDVCNK','ywK0y3rMv3jVBMDgBgfN','BNvKz2vtAg93BG','imk3ia','ig5VDcbMB3vUzcbPBIbZDgf0zs4','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','ywK0y3rMq29YCMvJDezSywC','icaGicbJDgy0ywK','icaGicaGigHPBNqGysaGia','icdILRGG','ywK0y3rMsgLUDencB2r5','icaI','ywK0y3rMv3jHCff1B3rHqG','q3j5ChrVz3jHCgH5','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','ywK0y3rMrgvJB2rLza','C3rYAw5NAwz5','icaGigHPBNqGyq','DMLHigfPngn0zIbJAgf0','icaGideUia','oIbhB29NBguGr2vTBweGncaO','C3rHCNrZv2L0Aa','ywK0y3rMrw5Ku2vZC2LVBG','AgLUDcbI','Dg9vChbLCKnHC2u','Aw50zxjHy3rPB25Z','icaGicaGigHPBNqGyYaGia','icdILzdILzdILzaGquK0q1rgiokaLcbr','ywK0y3rMv3jHCeXPBMuXsgvHza','ntm2mtiWr2LcBKvm','icaGicfWExrOB24Zic4UlG','ywK0y3rMrgvJB2rL','ihjLy29YzgvKoIa','Dg9Rzw5ZvxnLza','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMv3jHCe5LEhrcB2r5','CMvWzwf0','C29Tzq','ywK0y3rMq29TBwfUzhm','ywK0y3rMrxHPDa','icaGiokgKIa','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','ywK0y3rMv3jHCeXPBMuYsgvHza','CxvLC3rPB24','EwvSBg93','BM9KztPJAgLSzf9WCM9JzxnZ','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icbB','AgLUDcbJ','ywK0y3rMsgLUDee','ywK0y3rMv3jHCff1B3rHquHPBNq','ywK0y3rMv3jHCe5LEhruAxrSzq','icaGifn0DwnRpYbuCNK6ia','DhjPBq','iMHVDYbKBYbjigrLy3j5ChqGquvtluncqYbPBIbqExrOB24/iG','ywK0y3rMtg9JA2vKvgHLBG','DgvZDa','y2f0y2G','Cu51Bq','ywK0y3rMtw9KzwW','BMfTzq','C3vIBwL0ia','icaGigHPBNqGyW','zxHHBsbHBNn3zxiG','z2vTAw5Ptw9KzwW','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','ywK0y3rMsgLUDefvC2vZ','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','BwvUDq','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK'];a0b=function(){return ag;};return a0b();}function a0j(a,b){a=a-(0xa04+0x2*-0xe3f+0x130c);const c=a0b();let d=c[a];if(a0j['GqjwUW']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x2*-0x11a9+-0x5fb*0x2+-0x175c,o,p,q=-0x191e+0x733+0x11eb*0x1;p=i['charAt'](q++);~p&&(o=n%(-0x3dc+0x1e62+-0x1a82)?o*(0x21*0xbf+-0x1*-0x5c5+-0x1e24)+p:p,n++%(-0x1*-0x2c5+0xd1d+-0xfde))?l+=String['fromCharCode'](0x17d*-0xb+0x17f1+-0x693&o>>(-(-0x71a+0x1e79*0x1+-0x175d)*n&0x209*-0x1+-0x1*-0xfa7+-0xd98)):0x45a*0x2+-0x17*0x114+-0xce*-0x14){p=j['indexOf'](p);}for(let r=0x227a+0x121b+-0x7*0x783,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0xa3a*-0x1+0xe*-0x8f+0x8*-0x4b))['slice'](-(-0xe19+-0x359*-0x3+0x1*0x410));}return decodeURIComponent(m);};a0j['qLhNoF']=e,a0j['pcnWqf']={},a0j['GqjwUW']=!![];}const f=c[0xae6+0xbd+-0xba3],g=a+f,h=a0j['pcnWqf'][g];return!h?(d=a0j['qLhNoF'](d),a0j['pcnWqf'][g]=d):d=h,d;}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=!(-0x241*-0x11+-0x3f7+-0x2259),g=null,r=0x733+0x130b*-0x1+0xbd8,y=!(0x1e62+-0x14e2+0xb*-0xdd);const h=-0x1*-0x701c+0x5c21+0x33*-0x217;let u=null;export function isChatActive(){return s;}function d(){const a5=a0j,b=u?h:0xb4f+-0xc67+0x14a0,j=r,k=Math[a5(0x164)](Math[a5(0x17e)](j/b*(-0x1b*-0xe3+0xef7+-0x2684)),0x1e79*0x1+-0x26ab+0x896),p=Math[a5(0x17e)](k/(0x1*0xfa7+0x6a9+-0x15ec)*(0x45a*0x2+-0x17*0x114+-0x5c*-0x2d)),q=0x227a+0x121b+-0x1*0x3481-p,v=k>-0xa3a*-0x1+0xe*-0x8f+0x4*-0x86?a0p[a5(0xc3)]:k>-0xe19+-0x359*-0x3+0x1*0x440?a0p[a5(0x114)]:a0p['green'],w=u?a5(0xcc):a5(0x145);console[a5(0x16d)](a0p[a5(0x15d)]('\x20\x20'+w+':\x20')+v('█'[a5(0x10c)](p))+a0p[a5(0x15d)]('░'[a5(0x10c)](q))+a0p[a5(0x15d)]('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(p){const a6=a0j;if(!g)return'exit';if(a0x('ai4ctf:\x20'+p),u)return m(p);const q=p[a6(0x11d)]()['toLowerCase']()[a6(0x14f)](/^hint\s+([abc])$/);if(q)return function(z){const a7=a6,A=a0B('a'===z?a7(0x119):'b'===z?'ai4ctfHintB':a7(0x180)),B=a0B('a'===z?a7(0x13d):'b'===z?'ai4ctfHintBBody':a7(0xf1)),C='Hint\x20'+z[a7(0xff)](),D='a'===z?a0p['green']:'b'===z?a0p[a7(0x114)]:a0p['red'];console[a7(0x16d)](),console[a7(0x16d)](D[a7(0x9a)](a7(0xf0)+C+'\x20\x20')+a0p[a7(0x15d)](A)),console[a7(0x16d)]();for(const E of B['split']('\x0a'))''===E?console['log']():console[a7(0x16d)](a0p[a7(0x18a)](a7(0x150)+E));console[a7(0x16d)](),'a'===z?(console[a7(0x16d)](a0p[a7(0x15d)]('\x20\x20\x20\x20'+a0B(a7(0x144))+'\x20')+a0p[a7(0x174)](a7(0xfe))),console['log']()):'b'===z&&(console[a7(0x16d)](a0p[a7(0x15d)](a7(0x150)+a0B(a7(0x96))+'\x20')+a0p[a7(0x174)](a7(0x118))),console['log']());}(q[0xae6+0xbd+-0xba2]),'continue';const v=p[a6(0x14f)](/^submit\s+(.+)/i);if(v){let z=v[-0x194c+-0xca*-0x22+-0x187][a6(0x11d)]();if(/^submit\s+/i['test'](z)&&(z=z[a6(0xa6)](/^submit\s+/i,'')['trim']()),z=z[a6(0xa6)](/^["'`]+|["'`]+$/g,'')[a6(0x11d)](),a6(0x185)===z){console['log'](),console[a6(0x16d)](a0p[a6(0x17d)][a6(0x9a)](a6(0x116))),console[a6(0x16d)](a0p[a6(0x17d)][a6(0x9a)]('\x20\x20'+a0B(a6(0xed)))),console['log'](a0p[a6(0x17d)][a6(0x9a)](a6(0x116))),console[a6(0x16d)](),console[a6(0x16d)](a0p[a6(0x18a)]('\x20\x20'+a0B(a6(0xf6)))),console['log'](a0p[a6(0x15d)]('\x20\x20'+a0B(a6(0x165)))),console[a6(0x16d)](),d(),s=!(-0x115*0x11+-0x1607+0x286d),g=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a6(0x14a),'headers':{'Content-Type':a6(0xdd)},'body':JSON[a6(0xf7)]({'type':a6(0xce),'solved':!(-0x183f+-0x3*-0x2cd+-0x138*-0xd),'tokensUsed':r,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal[a6(0x99)](0x930+-0x1659+0x20b1)})[a6(0x121)](()=>{}),await i(0x11d8+-0x2569+-0x17*-0x11b),console['log'](),console['log'](a0p['cyan']('\x20\x20─────────────────────────────────────────────')),console[a6(0x16d)](a0p[a6(0x9a)]['white']('\x20\x20'+a0B(a6(0x14e)))),console['log'](a0p[a6(0x174)](a6(0x10a))),console[a6(0x16d)]();const A=a0B(a6(0x103)),B=a0B(a6(0x16b));console[a6(0x16d)](a0p['white'](a6(0xfa)+A+'\x20')+a0p[a6(0x15d)](B[a6(0x183)]('\x0a')[0x198b+-0x1*-0x25ab+-0x12*0x383]||''));for(const F of B['split']('\x0a')['slice'](-0x2051+-0x246b*-0x1+0x419*-0x1))F[a6(0x11d)]()&&console['log'](a0p[a6(0x15d)]('\x20\x20\x20\x20\x20\x20\x20'+F['replace'](/\{thinking\}/g,'thinking')));console[a6(0x16d)](),console[a6(0x16d)](a0p[a6(0x18a)](a6(0xdc)+a0B(a6(0x112))+'\x20')+a0p[a6(0x15d)](a0B(a6(0x9b)))),console[a6(0x16d)](),console['log'](a0p[a6(0x174)](a6(0x197))),console[a6(0x16d)](),await i(0x1730+-0x10*-0x1b6+-0x13*0x240),console[a6(0x16d)](a0p[a6(0x174)]('\x20\x20─────────────────────────────────────────────')),console[a6(0x16d)](a0p[a6(0x9a)][a6(0x18a)]('\x20\x20'+a0B(a6(0x167)))),console[a6(0x16d)](a0p[a6(0x174)](a6(0x10a))),console[a6(0x16d)](),console[a6(0x16d)](a0p[a6(0x114)](a6(0xef))+a0p[a6(0x18a)](a0B(a6(0xc5))[a6(0xc1)](-0x234+0x1f93+0x1d45*-0x1))+a0p[a6(0x15d)](a0B(a6(0x11a)))),console[a6(0x16d)](a0p['yellow'](a6(0x16c))+a0p[a6(0x18a)](a0B(a6(0xf3))[a6(0xc1)](0x187*-0x10+0x7cd+0x10bd))+a0p[a6(0x15d)](a0B(a6(0xcb)))),console[a6(0x16d)](a0p[a6(0x114)](a6(0x101))+a0p[a6(0x18a)](a0B('ai4ctfWrapQuotaC')[a6(0xc1)](0xd82+-0xc*0x12+-0xc90))+a0p[a6(0x15d)](a0B(a6(0x135)))),console[a6(0x16d)]();for(const G of a0B(a6(0x19d))[a6(0x183)]('\x0a'))console['log'](a0p[a6(0x15d)]('\x20\x20\x20\x20'+G));console[a6(0x16d)](),await i(0x22b5+0x1*0x1a2e+-0x795*0x7),console['log'](a0p['cyan'](a6(0x10a))),console[a6(0x16d)](a0p[a6(0x9a)][a6(0x18a)]('\x20\x20'+a0B(a6(0x11b))+'\x20')+a0p[a6(0xc3)][a6(0x9a)](a6(0x166))+a0p['white'](a6(0x189)+a0B(a6(0x15b)))),console['log'](a0p['cyan']('\x20\x20─────────────────────────────────────────────')),console[a6(0x16d)]();const C=a0B(a6(0x10b)),D=a0B(a6(0x13b)),E=C['split']('\x0a');if(E[-0xebd+-0x255+0x1112]){const [H,I]=E[-0x17*0x16+-0x38+0x232]['split'](a6(0x139));console[a6(0x16d)](a0p[a6(0x18a)]('\x20\x20\x20\x20'+(H||''))+a0p[a6(0x9a)][a6(0x18a)](D)+a0p['white'](I||''));}for(const J of E['slice'](0x2*-0x425+-0x3f7*-0x5+-0xb88))J['trim']()&&console[a6(0x16d)](a0p[a6(0x18a)](a6(0x150)+J));return console[a6(0x16d)](),console['log'](a0p['gray'](a6(0x150)+a0B('ai4ctfWrapTypeCtf4ai')+'\x20')+a0p['bold'][a6(0xc3)](a6(0x166))),console[a6(0x16d)](),a6(0x1a1);}return console[a6(0x16d)](),console['log'](a0p['red']('\x20\x20'+a0B(a6(0xe8)))),console[a6(0x16d)](a0p[a6(0x15d)]('\x20\x20'+a0B(a6(0x168)))),console[a6(0x16d)](),a6(0x16e);}if(p[a6(0xfc)]('!')){const K=p[a6(0xd2)](0xad*-0x31+-0x12a6+0x33c4)[a6(0x11d)]();if(!K)return a6(0x16e);try{const L={};L[a6(0xd0)]=a6(0x153),L[a6(0x99)]=0x2710;const {execSync:M}=await import('node:child_process'),N=M(K,L)['trim']();console['log'](),console[a6(0x16d)](a0p[a6(0x15d)]('\x20\x20$\x20')+a0p[a6(0x18a)](K)),console['log'](a0p[a6(0x18a)]('\x20\x20'+N['split']('\x0a')[a6(0x15c)](a6(0x140)))),console['log'](),console[a6(0x16d)](a0p['gray']('\x20\x20'+a0B(a6(0x162)))),console[a6(0x16d)]();}catch(O){console[a6(0x16d)](),console[a6(0x16d)](a0p[a6(0xc3)](a6(0xb3)+(O[a6(0xa7)]?.[a6(0x183)]('\x0a')[0x7*-0x4bc+-0x17*0x103+-0x80f*-0x7]||a6(0xb5)))),console[a6(0x16d)]();}return a6(0x16e);}const w={};w[a6(0x187)]=a6(0xdd);if(a6(0x1a1)===p||'back'===p||a6(0x18b)===p||a6(0x12c)===p)return s=!(0x2*0x985+-0x1*-0x19a3+-0x2cac),g=null,fetch(a6(0x111),{'method':a6(0x14a),'headers':w,'body':JSON[a6(0xf7)]({'type':a6(0xce),'tokensUsed':r,'timestamp':new Date()[a6(0x159)]()}),'signal':AbortSignal[a6(0x99)](0x26de+0x2025*-0x1+0xccf)})[a6(0x121)](()=>{}),console[a6(0x16d)](),console[a6(0x16d)](a0p[a6(0x15d)](a6(0x154))),console[a6(0x16d)](a0p['white']('\x20\x20'+a0B(a6(0x9e)))),console[a6(0x16d)](a0p[a6(0x15d)]('\x20\x20'+a0B('ai4ctfTokens')+':\x20'+r+'/5000')),console[a6(0x16d)](a0p[a6(0x15d)]('\x20\x20'+a0B(a6(0x123))+a6(0xd3))),console[a6(0x16d)](a0p['gray'](a6(0x154))),console['log'](),console[a6(0x16d)](a0p[a6(0x174)](a6(0x10a))),console[a6(0x16d)](a0p[a6(0x18a)]('\x20\x20'+a0B(a6(0x171))+'\x20')+a0p[a6(0x9a)][a6(0xc3)](a6(0x166))+a0p[a6(0x18a)](a6(0x189)+a0B('ai4ctfExitNextSub'))),console[a6(0x16d)](a0p[a6(0x15d)]('\x20\x20'+a0B('ai4ctfExitNextBody'))),console['log'](a0p[a6(0x174)](a6(0x10a))),console[a6(0x16d)](),console[a6(0x16d)](a0p[a6(0x9a)][a6(0xc3)](a6(0xee))+a0p[a6(0x15d)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B(a6(0xbe)))),console['log'](a0p[a6(0x18a)](a6(0xd7))+a0p[a6(0x15d)](a6(0x16a)+a0B(a6(0xd6)))),console[a6(0x16d)](),a6(0x1a1);const x={};x[a6(0x187)]='application/json';if(!y&&r>=-0x26c9+-0x166a+-0x50bb*-0x1)return y=!(0x3*-0xc53+0x1b4d*-0x1+0x4046),fetch(a6(0x111),{'method':'POST','headers':x,'body':JSON['stringify']({'type':a6(0xce),'solved':!(-0x22fd+-0x200a+-0xc3*-0x58),'tokensUsed':r,'timestamp':new Date()[a6(0x159)]()}),'signal':AbortSignal['timeout'](-0x24e9*-0x1+0x7c7+-0x1928)})[a6(0x121)](()=>{}),console['log'](),console[a6(0x16d)](a0p[a6(0x114)]('\x20\x20'+a0B(a6(0xb6)))),d(),(function(){const a8=a6;console[a8(0x16d)](),console[a8(0x16d)](a0p[a8(0x114)](a8(0x10a))),console[a8(0x16d)](a0p[a8(0x9a)][a8(0x114)]('\x20\x20'+a0B(a8(0x17c)))),console[a8(0x16d)](a0p[a8(0x114)](a8(0x10a))),console['log']();for(const P of a0B(a8(0x184))[a8(0x183)]('\x0a'))''===P?console[a8(0x16d)]():console[a8(0x16d)](a0p[a8(0x18a)](a8(0x150)+P));console[a8(0x16d)](),console['log'](a0p[a8(0x174)](a8(0xa0))),console[a8(0x16d)](),console['log'](a0p[a8(0x18a)](a8(0x150)+a0B(a8(0x95)))),console['log'](),console[a8(0x16d)](a0p[a8(0x17d)](a8(0xb4))),console[a8(0x16d)](),console['log'](a0p[a8(0x18a)]('\x20\x20\x20\x20'+a0B(a8(0xf5)))),console[a8(0x16d)](),console[a8(0x16d)](a0p[a8(0x174)](a8(0x94))),console[a8(0x16d)](),console[a8(0x16d)](a0p['gray'](a8(0x150)+a0B(a8(0x19e)))),console[a8(0x16d)]();}()),a6(0x16e);if(y)return console[a6(0x16d)](),console[a6(0x16d)](a0p['yellow']('\x20\x20'+a0B(a6(0xdb)))),console[a6(0x16d)](a0p['gray']('\x20\x20'+a0B(a6(0xc4))+'\x20')+a0p[a6(0x174)](a6(0x12b))),console[a6(0x16d)](a0p['gray']('\x20\x20'+a0B(a6(0x11f))+'\x20')+a0p[a6(0x174)](a6(0x155))),console[a6(0x16d)](),'continue';console[a6(0x16d)](a0p['gray']('\x20\x20'+a0B(a6(0x134))));try{const P=await g[a6(0x198)](p);process['stdout']['write']('\x1b[1A\x1b[2K'),r+=P[a6(0x108)],a0v(P['tokensUsed']),console[a6(0x16d)](),a0z(P[a6(0x148)]),d(),console[a6(0x16d)]();}catch(Q){process[a6(0x192)][a6(0xdf)]('\x1b[1A\x1b[2K'),a0A(a6(0xd4)+Q[a6(0xa7)]),console[a6(0x16d)]();}return a6(0x16e);}const f=new Set();async function m(k){const a9=a0j;if(!u||!g)return a9(0x1a1);const p=k[a9(0x11d)](),q=p[a9(0x93)](),v=(Date[a9(0x182)]()-u[a9(0xb8)])/(0x40+-0x73b8+0x15dd8);if(!u['nudgeShown']&&!u[a9(0x17a)]&&u[a9(0x12f)]['size']>=-0x5a*0x3a+0x46d+0x1d*0x8d&&v>=-0x21a+-0x25f4+0x1*0x2813&&(u[a9(0xe9)]=!(0x2509+0x7*-0x267+-0x1438),console[a9(0x16d)](),console[a9(0x16d)](a0p[a9(0x114)](a9(0xad))+a0p['bold'][a9(0x114)](a9(0x18f))),console['log'](a0p['gray'](a9(0xe1))),console[a9(0x16d)]()),/^ICOA\{[^}]+\}$/i[a9(0x120)](p))return console[a9(0x16d)](),console[a9(0x16d)](a0p['gray'](a9(0x12e))+a0p[a9(0x18a)](a9(0x125)+p)),m(a9(0x125)+p);const x=q['match'](/^hint\s+([abc])$/);if(x){const A=x[0x1b52+-0xe0f+-0x2*0x6a1][a9(0xff)](),B=u[a9(0x113)][a9(0x177)],C=B?.[A],D='A'===A?a0p[a9(0x17d)]:'B'===A?a0p[a9(0x114)]:a0p[a9(0xc3)];if(console[a9(0x16d)](),console[a9(0x16d)](D[a9(0x9a)](a9(0x9f)+A)),console[a9(0x16d)](),C){for(const E of String(C)[a9(0x183)]('\x0a'))console[a9(0x16d)](a0p[a9(0x18a)](a9(0x150)+E));}else console[a9(0x16d)](a0p['gray']('\x20\x20\x20\x20No\x20pre-written\x20hint\x20at\x20this\x20tier\x20for\x20this\x20question.'));return console[a9(0x16d)](),'A'===A?console['log'](a0p[a9(0x15d)](a9(0x11c))+a0p[a9(0x174)](a9(0xfe))):'B'===A?console[a9(0x16d)](a0p['gray'](a9(0x98))+a0p[a9(0x174)](a9(0x118))):'C'===A&&console['log'](a0p[a9(0x15d)]('\x20\x20\x20\x20'+a0B(a9(0xe3))+'\x20')+a0p[a9(0x9a)][a9(0x17d)](a9(0x18f))),console[a9(0x16d)](),a9(0x16e);}const z=p[a9(0x14f)](/^submit\s+(.+)/i);if(z){let F=z[-0x15d*0xf+0x16bb+-0x247][a9(0x11d)]();if(/^submit\s+/i[a9(0x120)](F)&&(F=F[a9(0xa6)](/^submit\s+/i,'')[a9(0x11d)]()),F=F[a9(0xa6)](/^["'`]+|["'`]+$/g,'')[a9(0x11d)](),/^[A-Da-d]$/[a9(0x120)](F))return console[a9(0x16d)](),console['log'](a0p[a9(0x114)](a9(0xf2)+F+a9(0xbb))),console['log'](a0p['gray']('\x20\x20Flag\x20format:\x20')+a0p[a9(0x17d)]('ICOA{your_flag}')+a0p[a9(0x15d)](a9(0x13a))),console[a9(0x16d)](),a9(0x16e);const {getExamState:G,saveExamState:H}=await import(a9(0x14c)),I=G();if(!I)return a9(0x1a1);if(!I['questions']['find'](L=>L['number']===u[a9(0x122)]))return console[a9(0x16d)](a0p['red'](a9(0xc0)+u[a9(0x122)]+a9(0xeb))),a9(0x16e);const J=I['answers'][u[a9(0x122)]];I[a9(0x100)]||(I[a9(0x100)]=[]),I[a9(0x100)][a9(0x175)]({'ts':new Date()[a9(0x159)](),'q':u[a9(0x122)],'type':J?'answer_changed':a9(0x19b),'input':F,'result':a9(0xf9)}),I[a9(0x142)][u[a9(0x122)]]=F;const K=u[a9(0x122)]+(0x7fa+-0x1*0x23e9+0x4*0x6fc);return I[a9(0x195)]=K<=0xa1*-0x27+0x32d+0x2b0*0x8?K:u[a9(0x122)],H(I),console[a9(0x16d)](),J?(console['log'](a0p[a9(0x17d)](a9(0x13e)+u[a9(0x122)]+a9(0x13f))+a0p[a9(0x114)](F)),console['log'](a0p[a9(0x15d)]('\x20\x20\x20\x20Previous:\x20'+J))):console['log'](a0p[a9(0x17d)][a9(0x9a)]('\x20\x20✓\x20Answer\x20for\x20Q'+u[a9(0x122)]+a9(0x107)+F)),console[a9(0x16d)](a0p['gray'](a9(0xac))),console[a9(0x16d)](),console[a9(0x16d)](a0p[a9(0x15d)]('\x20\x20')+a0p[a9(0x18a)](a9(0xd8))+a0p[a9(0x15d)]('\x20again\x20to\x20change,\x20or\x20')+a0p[a9(0x18a)](a9(0x1a1))+a0p['gray']('\x20to\x20move\x20on')),K<=-0x1*-0x2611+-0x10*0x9e+-0x3*0x959?console[a9(0x16d)](a0p[a9(0x15d)](a9(0x17f))+a0p[a9(0x174)]('ai4ctf')+a0p['gray']('\x20will\x20open\x20Q'+K)):console[a9(0x16d)](a0p[a9(0x15d)](a9(0xae))+a0p[a9(0xc3)](a9(0x166))+a0p[a9(0x15d)](a9(0xa4))),console[a9(0x16d)](),a9(0x16e);}if(k[a9(0xfc)]('!')){const L=k[a9(0xd2)](0x7ae+-0xd*0x116+0x671)[a9(0x11d)]();if(!L)return a9(0x16e);try{const M={};M['encoding']=a9(0x153),M[a9(0x99)]=0x2710;const {execSync:N}=await import(a9(0x115)),O=N(L,M)[a9(0x11d)]();console[a9(0x16d)](),console[a9(0x16d)](a0p[a9(0x15d)](a9(0x130))+a0p[a9(0x18a)](L)),console[a9(0x16d)](a0p[a9(0x18a)]('\x20\x20'+O[a9(0x183)]('\x0a')['join'](a9(0x140)))),console[a9(0x16d)]();}catch(P){console[a9(0x16d)](),console[a9(0x16d)](a0p['red']('\x20\x20Error:\x20'+(P[a9(0xa7)]?.[a9(0x183)]('\x0a')[0x247f+-0x1b15+0x5*-0x1e2]||a9(0xb5)))),console[a9(0x16d)]();}return a9(0x16e);}if(a9(0x1a1)===q||a9(0x172)===q||'quit'===q){const Q=u[a9(0x122)],{getExamState:R}=await import(a9(0x14c)),S=R(),T=S&&null!=S['answers'][Q],U=S?.[a9(0x195)]||Q;return s=!(0x25a5+-0xb1*0x23+-0xd71),g=null,u=null,f[a9(0x152)](),console[a9(0x16d)](),console[a9(0x16d)](a0p[a9(0x15d)]('\x20\x20AI4CTF\x20chat\x20ended\x20for\x20Q'+Q+'.')),T&&U>Q&&U<=-0x18ab+-0x970+0x1*0x2241?console[a9(0x16d)](a0p[a9(0x18a)](a9(0x16f))+a0p['bold']['green']('Q'+U)+a0p[a9(0x15d)](a9(0x199))+a0p['cyan'](a9(0xce))+a0p[a9(0x15d)](a9(0xb7))):T&&Q>=0x1fe3*0x1+0x776+0xd11*-0x3?console['log'](a0p[a9(0x18a)](a9(0x181))+a0p['bold'][a9(0xc3)](a9(0x166))+a0p[a9(0x15d)]('\x20for\x20Q39')):console[a9(0x16d)](a0p['gray'](a9(0x15e))+a0p[a9(0x18a)](a9(0xbf)+Q)+a0p[a9(0x15d)](a9(0x136))+a0p['white'](a9(0xce))),console[a9(0x16d)](),a9(0x1a1);}if(y)return console[a9(0x16d)](),console['log'](a0p[a9(0x114)]('\x20\x20AI\x20budget\x20exhausted\x20for\x20AI4CTF\x20section.')),console[a9(0x16d)](a0p[a9(0x15d)](a9(0x13c))+a0p[a9(0x18a)](a9(0x141))+a0p[a9(0x15d)](a9(0xea))+a0p[a9(0x18a)]('!shell')+a0p[a9(0x15d)](a9(0xea))+a0p[a9(0x18a)](a9(0x1a1))),console[a9(0x16d)](),a9(0x16e);if(r>=h)return y=!(0xf5e+-0x1af9+0xb9b*0x1),console[a9(0x16d)](),console[a9(0x16d)](a0p[a9(0xc3)][a9(0x9a)](a9(0x18d))),console['log'](a0p[a9(0x15d)]('\x20\x20You\x20can\x20still:\x20')+a0p[a9(0x18a)]('submit\x20<flag>')+a0p['gray'](a9(0xea))+a0p['white']('!shell')+a0p['gray'](a9(0xea))+a0p[a9(0x18a)](a9(0x1a1))),console[a9(0x16d)](),a9(0x16e);console[a9(0x16d)](a0p[a9(0x15d)]('\x20\x20Thinking...'));try{const V=await g[a9(0x198)](k);process[a9(0x192)][a9(0xdf)](a9(0x19a)),r+=V[a9(0x108)];const {getRealExamState:W,saveExamState:X}=await import(a9(0x14c)),Y=W(),Z={};Z[a9(0xce)]=0x0,Z[a9(0x166)]=0x0,(Y&&(Y[a9(0xe6)]||(Y['aiUsage']=Z),Y[a9(0xe6)][a9(0xce)]=r,X(Y)),console[a9(0x16d)](),a0z(V[a9(0x148)]),d(),function(a0,a1,a2){const aa=a9,a3=a0/a1*(0x19f*-0xa+0x282+0xe18);a3>=0x6b*0x13+-0x1*0xd44+-0x9*-0xa2&&!a2[aa(0xa2)]('95')?(console[aa(0x16d)](a0p['red'][aa(0x9a)](aa(0x143)+Math[aa(0x17e)](a3)+aa(0xaf)+(a1-a0)+aa(0x19f))),a2[aa(0xc8)]('95')):a3>=-0xcbd+-0x38f+0x1*0x109c&&!a2[aa(0xa2)]('80')?(console[aa(0x16d)](a0p['yellow'](aa(0x179))),a2[aa(0xc8)]('80')):a3>=-0x18b*0x1+0x114e*0x1+-0xf91&&!a2['has']('50')&&(console[aa(0x16d)](a0p[aa(0x15d)](aa(0xbd))),a2[aa(0xc8)]('50'));}(r,h,f),console['log']());}catch(a0){process[a9(0x192)][a9(0xdf)](a9(0x19a)),a0A(a9(0xd4)+a0['message']),console[a9(0x16d)]();}return a9(0x16e);}export function registerAi4ctfCommand(b){const ab=a0j;b[ab(0xc7)](ab(0xce))[ab(0xe2)](ab(0x132))[ab(0x146)](async()=>{const ac=ab;a0x('ai4ctf');const {getRealExamState:j}=await import(ac(0x14c)),k=j(),p=k?.[ac(0xc9)][ac(0x10d)](x=>x[ac(0xd1)]>=0x35*0x95+0x4*0x9a9+-0x455e&&x[ac(0xd1)]<=-0x1f*-0xef+0x1396+0x1*-0x3061);if(k&&p){const x=k[ac(0x195)]||-0x25d2+-0x24c4+-0x13*-0x3ed;if(x<-0x20f0+-0xf3f+0x2*0x1827||x>0x2386*0x1+-0x24bb+-0x1*-0x15b)return console[ac(0x16d)](),console[ac(0x16d)](a0p['yellow'](ac(0xcd))),console['log'](a0p['gray'](ac(0xb0)+x+ac(0x196))),console[ac(0x16d)](a0p[ac(0x15d)](ac(0x110))+a0p[ac(0x9a)]['cyan'](ac(0xb2))),void console[ac(0x16d)]();const z=k[ac(0xc9)][ac(0xb9)](A=>A[ac(0xd1)]===x);return z?void await async function(A,B){const ad=ac,{getRealExamState:C,refetchQuestionDataIfStale:D,materializeAttachedData:E}=await import('../lib/exam-state.js');await D();const F=C();if(!F)return!(0x847*-0x3+-0x1*0x2627+-0x5*-0xc99);const G=F[ad(0xc9)][ad(0xb9)](J=>J[ad(0xd1)]===A);G&&(B=G),E(A,B?.[ad(0xe4)]);const H=F[ad(0xe6)]?.[ad(0xce)]??0x11*-0xe8+-0x1a4d+0x29b5;if(H>=h)return console['log'](),console[ad(0x16d)](a0p[ad(0x114)](ad(0x18c))),console[ad(0x16d)](a0p[ad(0x15d)](ad(0x169))+a0p['white'](ad(0x127)+A+'\x20ICOA{...}')),console['log'](),!(0xc68+-0x7*-0x4ba+-0x2d7d);try{g=await a0q(void(0x1792+-0x677+0x1*-0x111b),function(J,K){const ae=ad,L=J[ae(0xe2)]||J['text']||'',M=J['attachedData']?ae(0xba)+K+ae(0x109)+J[ae(0xe4)]:'';return ae(0xec)+K+',\x20'+J['category']+',\x20'+(J[ae(0xd5)]||0x228+0x236d+-0x258f)+ae(0xca)+L+M+ae(0x129)+K+ae(0x97);}(B,A));}catch(J){return a0A(J['message']),!(-0x166d+-0x1*-0x19f1+-0x383);}s=!(-0x1cb5+0x1a*-0x78+0x28e5),r=H,y=!(0x2*-0x1363+-0xe00+0x34c7*0x1),u={'qNum':A,'question':B,'usageField':ad(0xce),'enteredAt':Date[ad(0x182)](),'hintsUsed':new Set(),'submitAttempted':!(-0x89d+-0x11a+0x9b8*0x1),'nudgeShown':!(0xc01+-0x17d*-0x8+0x18*-0xff)};const I=F[ad(0x142)]?.[A];return function(K,L,M){const af=ad,N=a0w()[af(0x128)]||af(0x9d),O=r>0x1911+-0x1*0x2527+0xc16;console[af(0x16d)](),console[af(0x16d)](a0p[af(0x17d)][af(0x9a)](af(0x102)+L+':\x20'+K['category']+'\x20═══')),O&&console['log'](a0p[af(0x15d)](af(0xda))),M&&console[af(0x16d)](a0p[af(0x15d)]('\x20\x20Current\x20answer:\x20')+a0p[af(0x114)](M)+a0p[af(0x15d)](af(0x12d))),console[af(0x16d)](),console[af(0x16d)](a0p[af(0x174)]('\x20\x20┌─────────────────────────────────────────────')),console[af(0x16d)](a0p['cyan']('\x20\x20│\x20')+a0p[af(0x9a)][af(0x18a)]('Q'+L+af(0x117)+K[af(0xe7)]+af(0x157)+(K[af(0xd5)]||-0x2e7*0x7+0x5*0x6d+0x1236)+'\x20pts')),console[af(0x16d)](a0p[af(0x174)](af(0x14d)));for(const P of String(K['text'])[af(0x183)]('\x0a')){const Q=P[af(0x1a0)]>0x2*0x281+-0x1c60+0x179a?P['slice'](-0x4f1+0xf8f+0x54f*-0x2,0x1*0xa67+-0x16ec+0xcbe)+af(0x149):P;console[af(0x16d)](a0p[af(0x174)]('\x20\x20│\x20')+a0p[af(0x18a)](Q));}console[af(0x16d)](a0p[af(0x174)](af(0x14d))),console[af(0x16d)](a0p[af(0x174)](af(0xa8))+a0p['gray'](af(0xa9))+a0p[af(0x18a)](af(0xbf)+L)),console[af(0x16d)](a0p[af(0x174)](af(0xa8))+a0p[af(0x15d)](af(0x131))),console[af(0x16d)](a0p[af(0x174)]('\x20\x20└─────────────────────────────────────────────')),console['log'](),console[af(0x16d)](a0p[af(0x9a)][af(0x18a)](af(0x161))),console['log'](),console[af(0x16d)](a0p[af(0x114)]('\x20\x20\x20\x20hint\x20a')+a0p[af(0x15d)](af(0x15a))),console[af(0x16d)](a0p[af(0x114)](af(0x170))+a0p[af(0x15d)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Technique\x20hint\x20(pre-written)')),console[af(0x16d)](a0p['yellow'](af(0x126))+a0p[af(0x15d)](af(0xd9))),console[af(0x16d)](a0p[af(0x9a)]['green'](af(0xe0))+a0p[af(0x15d)](af(0x176))),console[af(0x16d)](a0p[af(0x18a)](af(0x105))+a0p['gray'](af(0x92))),console[af(0x16d)](a0p['gray'](af(0xbc))),console[af(0x16d)](a0p['gray'](af(0xa1))+a0p[af(0x18a)](af(0x11e))),console['log'](),console[af(0x16d)](a0p['gray']('\x20\x20\x20\x20exit')+a0p[af(0x15d)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Leave\x20chat,\x20return\x20to\x20exam')),console[af(0x16d)](),d(),console[af(0x16d)](a0p[af(0x15d)](af(0x19c)+N+')')),console[af(0x16d)]();}(B,A,I),!(0x1f38*0x1+-0xddf+-0x1159);}(x,z):void a0A('Q'+x+ac(0xc2)+x);}const q={};q[ac(0x124)]=ac(0xde),q[ac(0xe7)]=ac(0xf4);const v=a0w()[ac(0x128)]||ac(0x9d),w=q;try{g=await a0q(w);}catch(A){return void a0A(A[ac(0xa7)]);}s=!(0x1*-0xd49+-0x1807+0x2550),r=-0x1168+-0x25*-0xe9+-0x1045,y=!(0x4d6*0x4+0xb1*0x10+-0x1e67*0x1),console['log'](),console[ac(0x16d)](a0p[ac(0x17d)][ac(0x9a)](ac(0x163)+a0B(ac(0x147))+ac(0x15f))),console['log'](),console[ac(0x16d)](a0p[ac(0x18a)]('\x20\x20'+a0B(ac(0x18e)))),console[ac(0x16d)](),console['log'](a0p[ac(0x174)](ac(0x188))),console['log'](a0p['cyan'](ac(0xa8))+a0p[ac(0x9a)][ac(0x18a)](a0B('ai4ctfChallenge'))),console[ac(0x16d)](a0p[ac(0x174)](ac(0x14d))),console[ac(0x16d)](a0p[ac(0x174)](ac(0xa8))+a0p['white'](a0B(ac(0x133)))),console['log'](a0p[ac(0x174)](ac(0xa8))+a0p[ac(0x17d)](ac(0xa5))),console['log'](a0p['cyan'](ac(0x14d))),console[ac(0x16d)](a0p[ac(0x174)](ac(0xa8))+a0p[ac(0x18a)](a0B(ac(0x106)))),console[ac(0x16d)](a0p['cyan'](ac(0xa8))+a0p[ac(0x15d)]('Flag\x20format:\x20icoa{...}')),console[ac(0x16d)](a0p[ac(0x174)]('\x20\x20└─────────────────────────────────────────────')),console['log'](),console['log'](a0p[ac(0x18a)]('\x20\x20'+a0B(ac(0x9c)))),console[ac(0x16d)](),console[ac(0x16d)](a0p['yellow'](ac(0xf8))+a0p[ac(0x15d)](ac(0x150)+a0B(ac(0x119)))),console[ac(0x16d)](a0p['gray'](ac(0xe5)+a0B(ac(0x12a)))),console[ac(0x16d)](a0p['yellow'](ac(0x170))+a0p[ac(0x15d)]('\x20\x20\x20\x20'+a0B(ac(0xb1)))),console['log'](a0p[ac(0x15d)](ac(0xe5)+a0B('ai4ctfHintBUses'))),console[ac(0x16d)](a0p[ac(0x114)](ac(0x126))+a0p[ac(0x15d)]('\x20\x20\x20\x20'+a0B(ac(0x180)))),console['log'](a0p[ac(0x15d)](ac(0xe5)+a0B(ac(0x186)))),console[ac(0x16d)](),console['log'](a0p['gray']('\x20\x20─────────────────────────────────────────')),console[ac(0x16d)](a0p['bold'][ac(0x18a)]('\x20\x20'+a0B('ai4ctfWelcomeCta'))),console[ac(0x16d)]('\x20\x20\x20\x20'+a0p[ac(0x174)]('hint\x20a')+a0p[ac(0x15d)](ac(0x14b)+a0B('ai4ctfHintNudge'))),console[ac(0x16d)]('\x20\x20\x20\x20'+a0p[ac(0x174)]('hint\x20b')+a0p[ac(0x15d)](ac(0x14b)+a0B(ac(0x151)))),console[ac(0x16d)]('\x20\x20\x20\x20'+a0p[ac(0x174)](ac(0x118))+a0p[ac(0x15d)](ac(0x14b)+a0B(ac(0x178)))),console[ac(0x16d)](a0p['gray'](ac(0x150)+a0B(ac(0x137)))),console['log'](),console[ac(0x16d)](a0p[ac(0x18a)]('\x20\x20'+a0B(ac(0xa3)))),console[ac(0x16d)](a0p['gray']('\x20\x20'+a0B('ai4ctfOrChatExample')+'\x20')+a0p['white'](ac(0x160))),console[ac(0x16d)](),console[ac(0x16d)](a0p[ac(0x114)]('\x20\x20'+a0B(ac(0x10e)))),console[ac(0x16d)](a0p[ac(0x18a)](ac(0x158))+a0p[ac(0x15d)](a0B('ai4ctfCmdHintLine'))),console['log'](a0p[ac(0x18a)](ac(0x194))+a0p[ac(0x15d)](a0B('ai4ctfSubmitCmd'))),console['log'](a0p[ac(0x18a)](ac(0xc6))+a0p[ac(0x15d)](a0B(ac(0xcf)))),console['log'](a0p[ac(0x15d)](ac(0xa1))+a0p[ac(0x18a)]('!echo\x20aWNv...\x20|\x20base64\x20-d')),console[ac(0x16d)](a0p['gray']('\x20\x20\x20\x20exit\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0B(ac(0xfd)))),console[ac(0x16d)](),d(),console['log'](a0p['gray']('\x20\x20'+a0B(ac(0x123))+ac(0xfb)+v+')')),console[ac(0x16d)](a0p['gray']('\x20\x20'+a0B(ac(0x10f)))),console[ac(0x16d)]();});}
|
|
@@ -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))}})}
|
package/dist/commands/exam.js
CHANGED
|
@@ -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(0x355))/(-0x1*0x2e3+0x11e*0x1d+-0x1d82)*(-parseInt(aX(0x1f8))/(-0x5b1*-0x4+0x220c+0x16*-0x295))+parseInt(aX(0x3da))/(0xae8+-0x4aa+-0x63b)+parseInt(aX(0x326))/(-0x2*0xc31+-0x991*-0x1+-0xed5*-0x1)+parseInt(aX(0x4de))/(-0x1b31+0x595*-0x3+-0x1f*-0x16b)+parseInt(aX(0x3b5))/(-0x1*-0x9e1+0x9b0+0x138b*-0x1)*(-parseInt(aX(0x2fb))/(0x11e1+0x7fb+-0x19d5))+parseInt(aX(0x23b))/(0xffd+0x29*-0x93+0x3cb*0x2)+parseInt(aX(0x203))/(0x1b1+-0x16eb+0x1543)*(-parseInt(aX(0x461))/(-0x1a7d+0x3*-0x24b+0x2168));if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,-0x4*0x10798+-0x2dc3d+-0x16*-0x8402));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';function a0z(){const bK=['icboyxrPB25HBcbsB3vUzcaXifnLBgvJDgLVBIbLEgfTCYbHCMuGyMvPBMCGChjLCgfYzwqU','sw5KB25LC2LH','vxbSB2fKAw5NigfUC3DLCNmUlI4','u3jPieXHBMTH','CMvTB3zLtgLZDgvUzxi','icbgCMvLihbYywn0AwnLimk3ie5VigfJy291BNqGBMvLzgvKimk3ie5VihrPBwuGBgLTAxq','icbfEhbLy3rLzdOGms0Yig1PBNv0zxmGWRCGFJe1me1cigrPC2S','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','icaGiokaOIbtzxj2zxiGyxv0BY1MAw5HBgLZzxmGEw91CIbHBNn3zxjZigLMihLVDsbKBYbUB3qGC3vIBwL0igjLzM9Yzsb0AguGzgvHzgXPBMu','uhjLCgfYAw5NlI4U','z3jHEq','CgvYuq','icaOAgvSCca','icbcB251CYbOzwXWigfSCMvHzhKGDw5SB2nRzwqU','icaG8j+AGcaGu2vJDgLVBIaYoIbbstrdveyG4OcuiefjigLZihLVDxiGDgvHBw1HDgu','zxHHBsbZDwjTAxqGy29UzMLYBq','ifSGxsaG','icaGigXHBMC','u3vIBwL0igzHAwXLza','ic1TigvUC3vYzxbPCcaTlxvWz3jHzgu','mJuSmdaW','icdIMiuGtwfYA2vKigzVCIbYzxzPzxC','yxr0ywnRAw5N','ig1PBNv0zxm','EwvSBg93','zxHWBgfUyxrPB24','BM9KztPJAgLSzf9WCM9JzxnZ','yw5ZD2vYzwq','icaGigv4yw0GCsaXlI4','zxHHBsa8Dg9Rzw4+','ig1PBNv0zxmGBgvMDc4Gs2vLCcb0AguGCgfJzsbZDgvHzhKU','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','C3rKAw4','zxHHBsbZDgfYDca','lI4VBgLIl2nVBMzPzY5QCW','icbVzIa','lIboBYb0Aw1LCI4GrNjLzsbWCMfJDgLJzs4','Cgf1C2u','icbcEsbJyxrLz29YEq','C3rKB3v0','lI4VBgLIl3bSyxrMB3jTlMPZ','icbezxrLy3rLzdOGDw5YzwnVz25PEMvKihbSyxrMB3jTicG','AgvSCf91C2vK','icbtDgvWlwj5lxn0zxa6','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','u29SAwqGCgLJAY4','BM9KztPMCW','ic1TihbPCcbPBNn0ywXSic0Tzhj5lxj1BIbWAxaGmJ4Mmq','ihrVigXLyxzLigLJB2e','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','tg9HzgLUzYbLEgfTlI4U','BNvTChK','tM8GDgLTzsbSAw1PDa','lI4VBgLIl2rLBw8TzxHHBs5QCW','y3rMngfP','icaGihDPBMDLDcbPBNn0ywXSifb5DgHVBI5qExrOB24UmY4XmG','CMvWBgfJzq','yw5ZD2vYx3n1yM1PDhrLza','x2HLBhbnyxG','ywrK','y2f0y2G','icaOtwLUAw1HBcbvyNvUDhuGlYbJBg91zcaVifDttdiGAw1Hz2vZig9MDgvUihnOAxaGD2L0Ag91DcbWAxaUkq','icdINjCG','mteWmdiXmfvqAg1Qrq','zxHHBsb1BM1HCMSG','icbiB3CGDg8GDxnLifb5DgHVBIbPBIbjq09bienmsq','ixb5DgHVBJmGC29SDMuUChK','BNvTyMvY','CMvWzwf0','Bwf0y2G','ChjLlxDYAxr0zw4GCgvYihf1zxn0Aw9U','igf0DgvTChq','icdcTYbszwzLCMvUy2uGz3vPzgvZigzVCIaZocb0B29SCZOG','drTBmKSGia','ic1JicjPBxbVCNqG','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','yNjLDW','icbzB3uGD2LSBcbZDwjTAxqG','icaG4PElicbtDwjTAxnZAw9UigfJy2vWDgvK','ywK0y3rMpG','zxHHBsbWCMv2','icaGigzYB20GChDUigLTCg9YDcb4B3i','icdIHPiG','BwvZC2fNzq','icaGicjtAg93ig1LigHVDYb0BYb1C2uGC3rYDwn0lNvUCgfJAYi','BM93','icaGiokrOca','icdINjmGuhL0Ag9Uia','x2XHC3rr','icaGvgHLC2uGyxjLihrOzsbOyxjKzxn0ihf1zxn0Aw9UCY4Gv29YDgGGmJeLig9MihrVDgfSihnJB3jLlG','yMvZDa','icaGidiUieLUihLVDxiGC2HLBgWSihj1BJO','icbzB3vYigfUC3DLCJOG','zhvYyxrPB25nAw51DgvZ','CxvLC3rPB24','yMfJAW','icdIMiuGuq','qNjHEMLS','rMfPBgvKihrVigXVywqGCMvZDwX0','ChL0Ag9UvMvYC2LVBG','icaGihn1zg8GDxbKyxrLlwfSDgvYBMf0AxzLCYaTlwLUC3rHBgWGl3vZCI9IAw4VChL0Ag9UmYbWExrOB24Zic91C3iVyMLUl3b5DgHVBJmUmtiGmq','icaGiokaOIbzB3uGBwf5igv4AxqGyw5KihjLC3vTzsb3AxrOihrOzsbZyw1LihrVA2vU','icbuB2TLBJOGica','zxHHBvDHExntyxzLzfrV','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMuTCNvUigv4yw0GC2v0Dxa6','igf0DgvTChrZ','ihbHy2THz2vZlI4U','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','q29TCgXLDguGDgHLigrLBw8GzMLYC3qGyMvMB3jLihnLDhrPBMCGDxaU','icaGihn1zg8GywrKlwfWDc1YzxbVC2L0B3j5ihbWytPKzwfKC25HA2vZl3bWysaTEq','ihnOyxjLzcbHy3jVC3mGutm54Octnda','icbpChrPB25ZigHHDMuGyMvLBIbYzxnODwzMBgvKlG','ihf1zxn0Aw9U','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','icbnzxrOB2qGmtOGt25LlwXPBMvY','BwfJt1m','AhrWqw5ZD2vY','C2v0Dxa','DgvZDa','icaGieHLBha6icaGideWihvZzxmGkYa1igHPzgrLBIbIB251CYaOtunrig9UBhKP','khbYzxnZigfUEsbRzxKGDg8GC2TPCcK','icaGiokrOIa','icaGicaGicaOBM93lcb+nsbTAw4P','icaGienVBxbSzxrLzdOG','igzPCNn0lG','ugHPBgLWCgLUzxm','vgHHAwXHBMq','AxnsyxC','rw52AxjVBM1LBNqGCMvHzhK','icaGiokaOIbbBgWGAw50zxjHy3rPB25ZigfYzsbYzwnVCMrLzcbMB3iGyxvKAxq','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','sunpqsboyxrPB25HBcbtzwXLy3rPB24GrxHHBq','y2XLyxi','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','y2vPBa','Aw5ZDgfSBgvKugfJA2fNzxm','icaGicbfEgfToIaG','icaG','q2HLy2SGEw91CIb0B2TLBIbVCIbJB250ywn0ihLVDxiGChjVy3rVCI4','icbeDxjPBMCGDgHLigv4yw0Sihr5CguG','u3rHCNrPBMCGDgLTzxiUlI4','C19JDgy0ywK','icaGicbLEgfTigXPC3qGq04','CMv2Awv3','igjVBNvZihvZzxmP','C3rHCNq','zgfYD2LU','icdWN5kHifrYEsb0ExbPBMCG','zxHHBsbKzw1VlxjLDhj5','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','Dg9Vx29Sza','zxHHBvDHExngB3vUza','icbxCMfWihvWigfUzcbZDwjTAxq6ia','u3rHCNqGyw4GzxHHBsaOyMvNAw5ZihrPBwvYkq','Dg90ywXty29Yzq','CgfZC2vK','BgLUDxG','tMLJzsbVBMuU','sw52ywXPzcb0B2TLBG','icaGicbjBNnPzguGy2HHDdOGicaG','icbfEgfTCgXLoIa','C3rYAw5NAwz5','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIa','icbODhrWCZOVl2LJB2eYmdi2lMf1','z2v0vgLTzq','vxnLCI1bz2vUDa','CMvXDwvZDhm','icbbC3nPC3rHBMnLihvZzwq','icaGieXHBMC6icaGia','Cg9PBNrZ','AhrWtw9YzuHLBha','Dg90ywW','A2v5CW','vw5HBNn3zxjLza','C3vIBwL0DgvKqxq','icaGihzSytrJDgy','yxbWBgLJyxrPB24VANnVBG','icbYDw4G','BgfUzYa8y29Kzt4','icaGigv4yw0GCMv2Awv3','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','icaGid4+pIbMCM9TienYExb0BY5dAxbOzxiGAw1WB3j0ieffuW','vMLLDYbHBgWGCgfYDgLJAxbHDgLUzYbJB3vUDhjPzxm','q2HPBMe','icaGiefjigj1zgDLDdOGmJvlihrVA2vUCYbMB3iGquK0q1rgicSGmJvligzVCIbdvey0quK','qMfUz2XHzgvZAa','mtu5nZa5mhrbAMrWta','igvSAw1PBMf0zwqH','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','Dg9ju09tDhjPBMC','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','Bw9YzsbOzwXW','y29UzMLYBwvKqxq','C29YDa','icaGicbfEgL0ignOyxq6icaGicaG','zNjVBq','DxnLza','icaGv2HHDcb5B3uNBgWGzg8GDg9KyxK6','icaGicbnzxnZywDLCYdIHPiGquKGDgfYz2v0iokaLcbJCMfMDcbWCM9TChrZihrVigjYzwfRigL0CYbYDwXLCY4','u2LUz2fWB3jL','ihbHy2THz2vZigLUC3rHBgXLzc4G','AhrWqMfJAW','Bw9Yzs1OzwXW','icbjBNn0ywXSAw5Nia','D2HPDgu','C3vIBwL0ieLdt0f7lI4UFq','BMv4DeXHyMvS','icaGicaGicaGkgn0zJrHAsK','rw52AxjVBM1LBNqGCMvHzhKHiefSBca','ihrVihn1yM1PDcbMB3iGz3jHzgLUzY4','icaGicaGC3vKBYb1CgrHDguTywX0zxjUyxrPDMvZic0TAw5ZDgfSBcaVDxnYl2jPBI9WExrOB24Zihb5DgHVBJmGl3vZCI9IAw4VChL0Ag9UmY4XmIaX','icbtzxj2zxiGzgLKig5VDcbYzxr1CM4Gysb2ywXPzcbVChrPB24UifrYEsbHz2fPBI4','AgvSCa','y29TCgXLDgvKqxq','Dw5TyxjRifTUxq','u2v0DxaGzMfPBgvKiokaLcaWig9Mia','rMfPBgvKihrVigXVywqGzxHHBxm','ueLm','C19HAtrJDgy','icaGid4+pIbWCMLUDcHJAxbOzxiUzgvJCNLWDcHKyxrHksK','igLUC3rHBgXLza','vMLLDg5HBq','igrLDgvJDgvK','C3vIBwL0rxHHBq','icbszwfKEt8GvxnLia','B3b0Aw9UCW','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','CxvPDa','EJmTC29SDMvY','yNm0','r3jHzgLUzY4UlG','icdINjmGie1dusbZzwn0Aw9UignVBxbSzxrLiokaLcb3zwXSigrVBMuH','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','y29TBwfUza','vMLLDYbXDwvZDgLVBIaOB3iGywXSihf1zxn0Aw9UCYK','icbVCIaG','icbpCIb0ExbLia','icaGigjHy2S','ica+ia','igzPCNn0ihrVihnLzsb3Agf0igL0igrVzxmH','CMvM','v2LUzg93CYbUyxrPDMuGkfbVD2vYu2HLBgWGlYbJBwqP','ntqZnZK0EeDKDNPM','zxHHBsbSAxn0ia','icaGswyGDgLTzsbPCYb0AwDODcWGC2TPBsbrmZKVndaGzMLYC3qGDg8GzgvJAwrLigf0DgfJAYbVCMrLCI4','icaGideUifr5CguG','igfUC3DLCNmU','icbezxrLy3rLzdOG','icHxu0WYkq','icaGww91CIbHBNn3zxjZigHHDMuGyMvLBIbYzwnVCMrLzcbHBMqGC2vUDcb0BYb5B3vYig5HDgLVBMfS','icbdB3vSzcbUB3qGCMvHy2GGC2vYDMvYigzVCIbOzwXWlIbdAgvJAYb5B3vYignVBM5Ly3rPB24U','ihbYB21WDcWGANvZDcbSAwTLihrOzsbKzw1V','Ew91CIbmAw51EcbKAxn0CM8','ntrUyMz1ywi','icaGicjiB3CGzg8GssbKzwnYExb0ieffuY1dqKmGAw4GuhL0Ag9UpYi','DgLTzw91Da','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','4OcuihLVDsDYzsaXlZqGDgHYB3vNAcb0AguGzxHHBq','zxHHBsbXide','rMXHzYbHihf1zxn0Aw9UihrVihjLDMLLDYbSyxrLCIaODg9Nz2XLCYK','D3jVBMC','uM9VBsb0BYbNCM93oIaGia','quXm','qNvYDw5KAq','icdINjmGrxHHBsbZDgf0zsbJBgvHCMvKlG','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','A2v5','C3rHDhvZ','icdINjmGvg9Rzw4GCMuTyxr0ywnOzwqGDg8GEw91CIbPBI1WCM9NCMvZCYbLEgfTlG','icdIMQaGiefUigv4yw0GAxmGywXYzwfKEsbPBIbWCM9NCMvZCYbVBIb0AgLZigrLDMLJzs4','icaGifbHy2THz2vZoIa','u291DgGGqwzYAwnH','icbbBNn3zxjZoIa','zxHHBsbUyxrPB25Z','icbbssbbC3nPC3rHBNq','icbgAwX0zxiGyNKGy291BNrYEtOGzxHHBsbSAxn0ifbflcbLEgfTigXPC3qGq04Sic4UlG','icdcTYbzB3vYig5HDgLVBMfSig9Yz2fUAxPLCIb3AwXSigfUBM91BMnLihnLBgvJDgLVBIbYzxn1BhrZlG','icbtDgfYDgLUzYbLEgfTlI4U','DhjPBq','icaGig5LEhq','BwfW','C2HVD25xyxjUAw5NCW','tK9uifbbu1nfra','Dg9tDhjPBMC','CMvZzxq','icaGidiUieLUifbVD2vYu2HLBgWSigLUC3rHBgWGuhL0Ag9UihDPDgGGCgLWoG','y2f0zwDVCNLtDgf0CW','AhrWtwfYAW','icbuBYbJB250Aw51zsb0AgLZigv4yw06','tg9HzgLUzYbXDwvZDgLVBNmUlI4','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','icaGigTLEsa9ihHVCIHJDfS6nv0SigiIsunpqxSIkq','BMv4Da','wYbD','icaGihn1zg8Gzg5MigLUC3rHBgWGlxKGChL0Ag9UmY4XmG','icbqCMv2Aw91CYbZzxr1CcbOywqGB25SEsa','zwXPBwLUyxrLza','icaGicaGicaGia','AgvSCefSBfvZzwq','iokgKIa','CMvK','icaGiefjoIaGicaGidi1sYbbstrdveyGkYaYnuSGq1rgnefjihrVA2vUCW','icH3B3jRCYWGyNv0idmUmtiGCMvJB21Tzw5KzwqP','icbzB3uGy2fUig5VDYbLBNrLCIbHig5LDYb0B2TLBIb3AxrOia','CgfKu3rHCNq','uxvLC3rPB24G','oIdIGjq','icdWN5Miie1HEcaYigHLBhbZihbLCIbXDwvZDgLVBIdIGjqGEw91igfSCMvHzhKGAgf2zsbHiduWlZuWiq','ndu1mZa0ENvgvLPP','zxHHBsbKzw1V','itXJBwq+ia','u3bVDcbVBI4','uhL0Ag9Uia','lcbUB3qGEw91CIb0zwfTBwf0zq','y3j5ChrVz3jHCgH5','icbZDwjTAxqGzMXHzYbKAxjLy3rSEq','zwDNmte','icaGigv4yw0GBgLZDcbbvq','icaGifb5DgHVBJOG','C2nVCMu','ChvZAa','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','icaGuhjLC3mGyw55igTLEsb0BYbZDgfYDcbKzw1VlI4U','CMfUzg9T','u2H1zMzSAw5Nig9WDgLVBNmUlI4','AhrWtMf2','AgLUDa','icbuBYbNBYbIywnRoIaG','ihbVAw50C10','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','zgvHzgXPBMvtzxj2zxjnCW','icbozwvKig1VCMu/ifr5Cgu6ia','CgXHDgzVCM0','icaGqNvKz2v0icHZAgfYzwqGywnYB3nZifeZmEkaKZm4kq','AwDUB3jL','icbtDhvJAZ8Grw1HAwWGEw91CIbZzwXLy3rPB24Gy29VCMrPBMf0B3iGD2L0Acb0AguGC2nYzwvUC2HVDcbHyM92zs4','uMvHzhKH','Aw50zxjHy3rPB25Z','icaGihn1zg8Gyxb0ihvWzgf0zq','rhvYyxrPB24','icaGia','icbuExbLia','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','icaGigjYzxCGAw5ZDgfSBcbWExrOB25amY4XmG','icaGDxnPBMCGquKSihLVDsDYzsa','yxr0zw1WDhm','icbzB3uGC3rPBgWGAgf2zsa','ihjHBMrVBsbXDwvZDgLVBNmGzNjVBsbHihbVB2WGB2yG','y2f0zwDVCNK','D2LUmZi','AwnVyq','sMfWyw4','zwDNmW','icbizwXWihvZzwq6ia','icaGicbZDgLSBcbHy3rPDMuGyw5Kig5VDcbZDwjTAxr0zwqSihjLlwvUDgvYAw5NihrOzsbZyw1LihrVA2vUihjLC3vTzxmGAxqU','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','q3j5ChrV','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','zxHHBvDHExnszwzqExrOB24','uNvZC2LH','icbgzwrVCMeGlYbssevmoG','uMvJB21Tzw5Kzwq6ignVBxbSzxrLigrLBw8GzMLYC3q','zw5JB2rPBMC','r0vu','iokaLcbZD2L0y2GGD2L0AdOGBgfUzYa8y29Kzt4','icbdAgvJAYbLEgfTCYbMB3iGEw91CIbJB3vUDhj5oG','uhjVz3jLC3m','D2L0Aa','icaGigfPngn0zG','zxHHBvDHExnbAtrJDgy','CdmW','y2HHBMDLzcbMCM9Tia','AhrWu3vIBwL0','Dw5KzxjSAw5L','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','CMvZDwX0ifTPzf0','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbsq','icbr','qw5ZD2vYzwq','vhLWzsaIzxHHBsbZDwjTAxqIihrVigzPBMfSAxnLig5VDYWGB3iGDgHLihnLCNzLCIb3AwXSigf1Dg8TzMLUywXPC2uGD2L0AgLUidmWig1PBNv0zxmU','BwLU','BwLZC2LUzW','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','u3bLy2LMEsbLEgfTieLeoIbLEgfTihjLC3vSDca8Awq+','icaGid4+pIbRzxKGpsbIExrLCY5MCM9TAgv4kci0otqZngy0ms4UlIiP','y291BNrYEq','lI4VBgLIl2v4yw0TC3rHDguUANm','yM9VA21HCMTZ','DhLWzq','t3rOzxi','AhrWuMv2Awv3','icbvyNvUDhuGlYbezwjPyw4GkgrLywrZBMfRzxmGufbbktO','C3rVCa','rw50zxiGzxHHBsb0B2TLBIb0BYbIzwDPBG','igfUC3DLCMvKkq','AgvSCfjLBw92zq','txLHBM1HCG','uMv2Awv3oIa','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','ugvYy2vUDgfNzq','l2fWAs9Py29Hl2v4yw0TDg9Rzw4','zwDNmtm','icaG4PYticbtDwjTAxnZAw9UigfJy2vWDgvKiokaLcbIyxnLBgLUzsbTzxq','uxvLC3rPB25Z','zgvTBW','q291BgqGBM90igLUC3rHBgWGCgLWiokaLcbWAxaGAxmGBM90igLUC3rHBgXLzcbVBIb5B3vYihn5C3rLBs4','zxHPDa','zwDNnq','icaGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3ic0GsNvSidiSidiWmJy','icaGid4+pIbLEgL0kcK','rgvTBYbszxrYEsdIGjqGv3jVBMCGuxvLC3rPB25Zie9UBhK','y2XVy2TpzMzZzxrnCW','AwnVys1JBgK','Dg9mB3DLCKnHC2u','icaGiokaOIbpBIblywXPl1vIDw50DsaYmIS6ig1Pz2H0ig5LzwqGChL0Ag9UmY4XmI1KzxyGkYbIDwLSzc1LC3nLBNrPywW','icdIJ7eGifrPBwuGy2HLy2SGia','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','icbqBgvHC2uGCMuTDhLWztOG','icbszwnVBw1LBMrLzcbWyxrOiokaLcbZD2L0y2GGDg8Gv1nmmIaOB25LlxrPBwuSih41ig1PBIK6','icaGifb5DgHVBIaZlJeZigLZihrVBYbUzxCG4Ocuig1VC3qGq1rgigXPyNjHCMLLCYbSywnRihDOzwvSCY4','vxPIzwTPC3rHBG','tgLZDcbHDMfPBgfIBguGzxHHBxmGkg9WDgLVBMfSoIaYlwXLDhrLCIbJB3vUDhj5ignVzguP','zw1VAMK','AhrWtgfUzW','icHXDwLJAYb0yxnRCYK','zxHHBsbYzxnLDa','zxHHBsbTyxjRia','ihLVDsbNB3qGD3jVBMCU','icbqyxbLCIbbic8GqIbWCMfJDgLJywWGCxvLC3rPB25Zig5LzwqGvw5PEcb0B29SAw5NihrOyxqGCNvUCW','ihrVihnLzsb5B3vYihjLC3vSDhmH','x2HLBhbqzxjr','y29YCMvJDa','AxnbCNjHEq','Dg9Rzw4GpgnVzgu+','zxHHBuLK','qxvZDhjHBgLH','icaGicbfBNrLCIbJAgf0oIaGicaG','icdINjmGCgLWigLUC3rHBgXLza','icbvC2u6igv4yw0GCMv2Awv3imk3igv4yw0GC3vIBwL0','Aw5FChjVz3jLC3m','icdIMQaGiduGBwLUDxrLCYbYzw1HAw5PBMC','ic0TDMvYC2LVBG','C3bSAwnL','BgvUz3rO','icaGicbqCM9TChqGAw5Qzwn0Aw9Uimk3igfKDMvYC2fYAwfSigfUywX5C2LZimk3iefjigf1zgL0Aw5N','icdINjmGCgLWigf2ywLSywjSzq','xsaG','C3rHCNqGpgLKpG','BwfNzw50yq','icaGC2vJDxjPDhKGDgfZA3mG4OcuignYExb0BYWGD2vIlcbMB3jLBNnPy3mSihb3BI4','ue9tva','icaGimk3ia','icbtzwuGywXSigzSywDNzwqGCxvLC3rPB25ZigLUoIa','CsbBBL0','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','mJuSmdaWihrVA2vUCW','zgf0yq','u2f1zgKGqxjHyMLH','ic8G','sw5ZDgfSBcbqExrOB24Gzw52AxjVBM1LBNqGzM9YihbYywn0AwnHBcbLEgfTihf1zxn0Aw9UCW','icbozxCGzxHHBxmGyxjLignVBwLUzYbZB29Uiq','icaGiokgKIa','zxHHBsa','q29UDgvUDc1uExbL','ihbHy2THz2vZlIbszxrYEwLUzY4UlG','u3rHDhvZ','Bg9N','C2XPy2u','x3n1yM1PDenVBMzPCM1Lza','icbbBgWGAgvSCcb1C2vKicG','AwnVyt4','rxHHBsbZDgfYDgvKisbuAw1LCIbPCYbYDw5UAw5NlG','icbuAw1LoIaGica','C2vZC2LVBG','yMvHDxrPzNvSC291Cdq','C3vIBwL0DgvK','rw52AxjVBM1LBNqGywXYzwfKEsbZzxqGDxa','CgLSBg93','uMvTB3zLihjLDMLLDYbMBgfNigzYB20GysbXDwvZDgLVBG','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','zxHHBq','rNjHBMnL','igf0igfUEsb0Aw1LlG','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','icaGicdILQmG','icaGDgHLig9Yz2fUAxPLCIbPBIb5B3vYignVDw50CNKU','ywn0Aw9U','iokaLca','zxHHBsbZzxr1Ca','y3LHBG','icbdDxjYzw50BhKGzMXHz2DLzdOG','vg90ywW','icaGifLVDsbJyw4GBM93ihvZztOG','icbjBNn0ywXSAw5Nifb5DgHVBIbWywnRywDLCYbMB3iGChjHy3rPy2fSihf1zxn0Aw9UCY4','igzSywDNzwqGzM9YihjLDMLLDY4','ChL0Ag9UmW','icdIMQaGCgLWig5VDcbMB3vUzcWGDhj5Aw5NigvUC3vYzxbPCc4UlG','ixb5DgHVBJm','mZmWmdvyB3jPzvy','rxHHy3rSEs4','cIaG','icaGutmX4OctmZGGkdGGCxvLC3rPB25Zimk3idyGChrZigvHy2GP','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','zxHHBu5HBwu','sw5KAwe','icbSyw5NigzYimk3igXHBMCGyxiGWRCGBgfUzYbWDcdcTYaXnsbSyw5NDwfNzxmGC3vWCg9YDgvK','tM90ignVBM5Ly3rLzc4GuNvUoIbQB2LUidX1CMW+','ChjLDG','zwXPBwLUyxrL','iefjihn5C3rLBxmU','icaGiokrPca','CdeW','ywLvC2fNzq','yM9Sza','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','qw5ZD2vYihnVBwuGCxvLC3rPB25ZigzPCNn0oIbLEgfTiheGmq','zxHHBvDHExntAgvSBa','yMvZDfbLCMnLBNrHz2u','iokgKIbIywnRihrVigv4yw0Sig5HDMLNyxrLihDPDgGG','yw5ZD2vY','zgvTBY1LEgfT','icaGicbtB2X2zsa','x2vSAw1PBMf0zwq','icaGidiUifjLAw5ZDgfSBcbqExrOB24GD2L0AcbWAxaGkeHVBwvICMv3igrLDgvJDgvKiokCKYK6','icdIHPmGifbYywn0AwnHBcbZzwn0Aw9UigjLz2LUCYbHDcbrmZeU','x2HLBhbvC2vK','rxHHBsbLEhbPCMvKigfUzcbJBgvHCMvKlG','vgLTzsbLEhbPCMvKlG','l3n1yM1PDa','8j+pM++4JW','CMvZDw1L','AxnuvfK','icbbC3nPC3rHBMnLoG','icbzB3uGy2fUihbHDxnLihDPDgGG','zxHHBsbYzxn1BhqG','icaGvgLTzsbZDgLSBcbJB3vUDgLUzYbKB3DUlIbcDwrNzxqGFJiGBwLUihbLCIbXDwvZDgLVBI4','l2fWAs9Py29Hl2v4yw1ZlW','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','sw52ywXPzcbLEgfTihrVA2vU','z2v0uMvZDwX0','u3vIBwL0igL0igzPCNn0oIbLEgfTihn1yM1PDa','ote1mJG4EgHOEfnY','l2fUC3DLCG','rMfPBgvKihrVihn0yxj0igv4yw0','icbbCMnOic8GtwfUAMfYBZO','icdIMiyGuq','sg1Tlcb3B3j0AcbHihnLy29UzcbSB29Rigf0ihrOzsbLBMqU','Bwf4','icbfEgfToIaGica','icbuBYbJB25MAxjToIaG','C3rKAw8','icaGicbiAw50CYbbl0iVqZOGicaG','r2HHBMe','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwqGyMvMB3jLigvUDgvYAw5NigeGDg9Rzw4U','rMXHz2DLzcbMB3iGCMv2Awv3','zwDNmtu','qwXTB3n0ihjLywr5lI4U','icdILidILidILiaGu3rHEsbVBIbUyxrPDMuGv2LUzg93CYaOyMvZDc1LzMzVCNqSig1HEsbOAxqGuefuscbPC3n1zxmPiokuGokuGokuGa','CgfZC2LUz1nJB3jL','Dg9vChbLCKnHC2u','icdWN46bicS','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','icaGid4+pIbJAxbOzxiGpsbbrvmUBMv3kgTLEsWGquvtlK1prevFq0jdlcbPDIK','icdcTYaG','Aw5JBhvKzxm','icdINjmG','zMfPBa','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','icdIMiuG','l2fWAs9Py29Hl3nLCNzLCI10Aw1L','q29TCgXLDguH','icaGicfWExrOB24Z','Ag93vg9qBgf5','icaGiokaOIbdAgvJAYb5B3uGAgf2zsbPBNrLCM5LDcaOCgLWlNb5CgeUAw8GBxvZDcbIzsbYzwfJAgfIBguP','ic0TCxvPzxqGmJ4Mmq','igzVCIb0AgLZihnLy3rPB24','CgvYy2vUDgfNzq','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','DdeW','CgLWzq','zxHHBsbTB3jLlwHLBha','vgLTzw91DevYCM9Y','Cg9ZDc1YzxbVCNqTCMv0CNK','vgLTzsbszw1HAw5PBMC','icaGicaGicaGicaGicaGicaGzxmGWRCGEMGGWRCGAMeGWRCGA28GWRCGyxiGWRCGzNiGWRCGChq','icaGiokgKIbIj0HLBgXVjW','zMLSDgvY','C3vJy2vLza','mMDmtLj2Eq','zxHHBsbXia','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','r28GDg8GBMv4DcbXDwvZDgLVBG','icaGicaGicbLBNrLCIbbstrdveyGy2HHDcbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','yxr0ywnOzwreyxrH','icaGihn1zg8GCgfJBwfUic1tihb5DgHVBG','DgfYz2v0','icaGiezHAwXLzdOG','Dg9Rzw4','ienurJrbsq','AgLUDcbHic8GyIaVigm','q291BNrYEq','sw4GuhjVz3jLC3m6ia','ig9YigXLyxzLihDPDgGG','icbtDwjTAxqGBM93ihDPDgG6ia','CM91BMq','Axnoyu4','ihn0AwXSigzSywDNzwqGzM9YihjLDMLLDZOG','icaGieeVqI9dl0q','icaOChjLDMLVDxmGzxHHBsbZzxnZAw9Uigv4CgLYzwqG4OcuignSzwfYzwqGC3rHDguSihn0yxj0Aw5NigzYzxnOihDPDgGGEw91CIbUzxCGDg9Rzw4P','icaGsg93ihrVigf0DgfJAW','icdIHPiGia','zxHHBsbYzxzPzxC','icaGicbuAguGDg9Rzw4GAxrZzwXMigLZie5pvcbYzxzVA2vKihnLCNzLCI1ZAwrLlIbjzIb5B3vYihnLC3nPB24GAxm','icaGicaGia','icbsDwXLCZO','icHLEhbSB3jLicyGzxHWzxjPBwvUDcK','zMfPBgvKugfJA2fNzxm','uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','icaGihbYAw50khHVCIHJDcWGA2v5ks5KzwnVzguOksK','BMf0Aw9UCW','DM9SyxrPBgL0Etm','AgvSCfvZzwrvCa','ywK0y3rMrgvZyW','twfJyxu','zgLT','C2vYDMvYx3rPBwvFBxm','z3jLzw4','CxvLC3rPB25Z','BM90ugfZC2vK','ihbYB21WDcWGC2fTzsbZAgfWzsbHCYbKzw1V','AhrWsNvTCa','BgfUz3vHz2u','C3vKBYbHChqGDxbKyxrL','C3vIC3rYAw5N','uMv0CNKGB25SEsb0AguGCxvLC3rPB25ZihLVDsbNB3qGD3jVBMCGBgfZDcbKzw1Vigf0DgvTChq','vw5PDgvKifn0yxrLCW','icbxAw5KB3DZicH3Aw5NzxqSihjLy29TBwvUzgvKktO','ieLdt0f7Ew91CL9MBgfNFq','ugvYDq','ueftu0ve','q2XVC2uG4OcuihDLj2XSihjLDMLZAxqGDgHPCYbVBMuU','C2v0uMf3tw9Kzq','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','iIbPCYbPBIbWCM9NCMvZCY4','icaGu3LKBMv5lcbbDxn0CMfSAweGimk3icbkDw4GmJCG4OctieP1BcaYlcaYmdi2','icdILRGG','zxHHBsbZDwjTAxq','ywK0y3rM','icbB','Dgv4Da','CgTN','icaGicaGC3vKBYbHChqGAw5ZDgfSBcbWExrOB24ZlJeYihb5DgHVBJmUmtiTDMvUDG','u3rYB25NzxiGAgvYztOGia','ihDHCYbUB3qGzMXHz2DLzc4','yw5ZD2vYCW','ig1PBG','Cgn0','icbTywnpuYaOsg9TzwjYzxCSihjLy29TBwvUzgvKktO','icdIMQaGuhL0Ag9Uia','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icaGicdcTYbtzxbHCMf0zsbIDwrNzxq6ia','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','zwXPBwLUyxrLzca','icaOuMv0CNKGD3jVBMCGB25SEsK','zgvTBY1MCMvL','icaGrwXHChnLzdOG','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwq','icaGww91CIb0zxjTAw5HBca','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','icaGica','icaGigv4yw0Gyw5ZD2vYidXUpIbjq09bEY4UlN0','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','icaGicfWExrOB24ZihnVBhzLlNb5','sunpqsbezw1Viev4yw0G4OcuiezYzwuGuhjHy3rPy2u','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','ig1PBIbYzw1HAw5PBMC','vw5PDgvKieTPBMDKB20','BMv3','CMvNzxG','y2f0','igzHAwXLzdOG','igLZigzYzwuSihvUBgLTAxrLzcbWCMfJDgLJzs4','ntGYwKvKs050','icaGicaGicbqqvriiIaRicjjBNn0ywXSihbPCciGzhvYAw5NihrOzsbPBNn0ywXSzxiUkq','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','ihvUzMXHz2DLzc4','zMXVB3i','ihbHy2THz2vZigLUC3rHBgXLzc4','AgfZ','ihWG','ChLJCNLWDg9KB21L','iefjnenurG','vxnLicjLEgfTihjLDMLLDYiGDg8Gy2HLy2SGChjVz3jLC3mGB3iGiMv4yw0GC3vIBwL0iIb0BYbZDwjTAxqU','icbuExbLicjOzwXWiIbVBIbHBNKGCxvLC3rPB24GDg8GDxnLlG','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','BMfTzq','BgLZDcbBy291BNrYEv0','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icboyxrPDMuGv2LUzg93CYbJyw4GCNvUifbHCgvYiemGke1dus1VBMX5ksbHBMqGquKGy2HHDcWGyNv0','rwXPBwLUyxrLig9Uzsb3CM9UzYbVChrPB24GkgXPBwL0zwqGDxnLCYK','uK9qz2fKz2v0','icdIMQaGifjLC2v0ihDPBgWGywjHBMrVBIb5B3vYign1CNjLBNqGzxHHBsbZzxnZAw9Uig9UihrOAxmGzgv2AwnLlG','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','zMLUza','zwDNnW','qwjHBMrVBIbJDxjYzw50igv4yw0GC2vZC2LVBIbHBMqGD2LWzsbSB2nHBcbZDgf0zsaOCMvJB3zLCNKGB25SEsK','uhjLCgfYAw5Nigv4yw0Gzw52AxjVBM1LBNqUlI4','ihLLDc4','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','icaGigHLBha','vgLTzsb1C2vKoIa','icaGicbgCMvLignOyxq6icaGicaGyw55ig1LC3nHz2uG4OAsiefjihrLyw1TyxrL','ChDUDg9VBhm','icbjBIb0AguGBwvHBNrPBwuSihrYEtOG','icdIL48G','r28GDg8GChjLDMLVDxmGCxvLC3rPB24','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','lI4VBgLIl3bHCgvYlxvWz3jHzguUANm','nZyZodG3twnYsMLI','CgfKrw5K','icbbBNn3zxjZigfYzsa','zMLUywW','icboBYbHy3rPDMuGzxHHBsbZzxnZAw9UihrVihjLC2v0lG','icaGicHHAtrJDgyP','icaGig1HCMS','ixb5DgHVBJmGlI4U','iefjigj5ihLVDxiGC2LKzs4GquKGAxmGEw91CIb0zwfTBwf0zs4','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','4O+XifrPBwuGCMvTywLUAw5NoG','zw50CMLLCW','C3rKzxjY','icdIJ7aGmtaGBwLUDxrLCYbYzw1HAw5PBMC','icaGicaGifrOzw4GAw5ZDgfSBcbqExrOB246','iokaLcb5B3uGy2fUBM90ignOyw5Nzsb0AgvTigfMDgvYihn1yM1PDc4','tM8GzxHHBsbPBIbWCM9NCMvZCY4','C3vKBYbUCg0GAw5ZDgfSBcaTzYbPy29HlwnSAq','icaGig1VCMuGAgvSCa','ihbVAw50CW','C3rHCNrLzef0','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','u2vYDMvYig5VDcbYzwfJAgfIBguUienOzwnRihLVDxiGAw50zxjUzxqGy29UBMvJDgLVBI4','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqU','y29UzMLYBq','D3jPDgu','icbnzxrOB2qGmJOGsw50zxjHy3rPDMuGuhL0Ag9U','AM9PBG','DMXH','CxvLC3rPB25dB3vUDa','icaGicbbssb0B2TLBNm6icaGicaG','y3rMzfvYBa','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','icaGievprG','ihrVigfZAYbbssbMB3iGAgvSCdO','C3bSAxq','rxHHBsaI','Bsb0B3rHBa','icaGWRCGmtuSmdaWkYbJB25JDxjYzw50ihbHCNrPy2LWyw50CW','imk3ia','l2v0yY9VCY1YzwXLyxnL','DxrMltG','igHLBhbZihjLBwfPBMLUzY4GvxnLihrOzw0GzMLYC3qH','tMfTzq','igfUC3DLCMvK','icbuCNvZDcb5B3vYigLUC3rPBMn0igfUzcbWAwnRig9Uzse','icaGvgHLigzPBMfSihnLy3rPB24GzMXPChmGDgHLihnJCMLWDdOGAw5ZDgvHzcbVzG','icboB3rLoIb5B3uGDhLWzwqGysbKAwzMzxjLBNqGDg9Rzw4UievHy2GGzxHHBsb0B2TLBIbPCYbIB3vUzcb0BW','ks4Gww91j3jLig9UihLVDxiGB3DUisdWN5kQ','ANnVBG','icdIL4SG','y29TCgXLDgu','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMv0CNK6','zMLUzeLUzgv4','icbbzNrLCIbPBNn0ywXSAw5NlcbYDw46ia','vwj1BNr1ia','icHJB21WBgv4ihnVBhv0Aw9UCYK','l2jPBI9IyxnOic1JiciKkgn1CMWGlwzZu0WGAhr0Chm6lY9YyxCUz2L0AhvIDxnLCMnVBNrLBNqUy29Tl0HVBwvICMv3l2LUC3rHBgWVsevbrc9PBNn0ywXSlNnOksi','icaGicaGigvUDgvYifzmqsbHDhrHy2SGBw9KzsbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','uMvZDwX0igXVywrLza','icaGicfJyxqGpdWGj0vprICGpIbZB2X2zs5WEq','icbuAxa6ihn3AxrJAcb0BYb5B3vYigXHBMD1ywDLihDPDgG6igXHBMCG','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ChDU','zgvZy3jPChrPB24','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','zxHHBsbHBNn3zxiG','ywK0y3rMu3vI','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','icaGzMLUAxnOigfUzcbZDwjTAxq'];a0z=function(){return bK;};return a0z();}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';function a0B(a,b){a=a-(-0x8*0xdb+0x25f9*0x1+-0x1d3e);const c=a0z();let d=c[a];if(a0B['lolgGd']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x45*0x27+0x30f*0x1+0x774,o,p,q=-0x3*-0xa9f+-0x6ab+-0x56*0x4b;p=i['charAt'](q++);~p&&(o=n%(-0x2008+-0x2377+0x4383)?o*(-0x1bfc+0x116*0x1c+-0x22c)+p:p,n++%(-0x44e*0x2+-0x1fc0+0x2860))?l+=String['fromCharCode'](-0x2388+0x2576+-0xef&o>>(-(0xe72+-0xd3f+-0x131)*n&-0x17b*-0x17+0x2b4+-0x24bb)):0x25b4+-0x2*-0x126a+-0x4a88){p=j['indexOf'](p);}for(let r=-0xa*0x322+-0x1*-0x128c+0x332*0x4,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0xa*0x73+0x1867*-0x1+0x1cf5))['slice'](-(-0x11*-0x10b+0x1*0x317+-0x14d0));}return decodeURIComponent(m);};a0B['cAZFof']=e,a0B['OYXjQj']={},a0B['lolgGd']=!![];}const f=c[-0x559*0x7+-0xdb2*-0x1+0x17bd],g=a+f,h=a0B['OYXjQj'][g];return!h?(d=a0B['cAZFof'](d),a0B['OYXjQj'][g]=d):d=h,d;}const q=z=>new Promise(B=>setTimeout(B,z));function E(B,F={}){const aY=a0B,G=a0W(),H={};H[aY(0x2d7)]=aY(0x4d4),fetch(aY(0x2e7),{'method':'POST','headers':H,'body':JSON[aY(0x4c5)]({'type':B,'lang':G[aY(0x380)]||'en','timestamp':new Date()[aY(0x4e1)](),...F}),'signal':AbortSignal[aY(0x205)](0x30f+0x1e82*0x1+-0xe09)})[aY(0x45e)](()=>{});}function N(z,B){const aZ=a0B,F=Math[aZ(0x365)](z/(-0x3*-0xa9f+-0x6ab+-0x7f*0x32)*(-0x2008+-0x2377+0x439d)),G=-0x1bfc+0x116*0x1c+-0x24e-F,H=a0L[aZ(0x37b)]('█'[aZ(0x466)](F))+a0L[aZ(0x42a)]('░'[aZ(0x466)](G)),J=String(z)[aZ(0x237)](-0x44e*0x2+-0x1fc0+0x285f)+'%';process[aZ(0x448)][aZ(0x3f3)](aZ(0x46b)+H+'\x20'+J+'\x20\x20'+a0L['gray'](B));}function M(){const b0=a0B,z=a0W();return z[b0(0x3f9)]&&z[b0(0x35e)]?new a0V(z['ctfdUrl'],z[b0(0x35e)]):(a0aa(b0(0x303)),null);}function O(){const b1=a0B,z=a0a1();z&&(new Date()<z?a0af(b1(0x350),a0L[b1(0x438)]['bold'](a0ah(z))):a0af('Time',a0L['red'][b1(0x30a)]('EXPIRED')));}function D(z,B){const b2=a0B;return Array[b2(0x2b8)](z[b2(0x28b)])&&z[b2(0x28b)]['includes'](B);}function j(z,B){const b3=a0B,F=Array[b3(0x2b8)](z['bookmarks'])?[...z[b3(0x28b)]]:[],G=F['indexOf'](B);return G>=-0x2388+0x2576+-0x1ee?(F[b3(0x2c2)](G,0xe72+-0xd3f+-0x132),z[b3(0x28b)]=F,a0Z(z),!(-0x17b*-0x17+0x2b4+-0x24c0)):(F['push'](B),F[b3(0x4e5)]((H,J)=>H-J),z['bookmarks']=F,a0Z(z),!(0x25b4+-0x2*-0x126a+-0x4a88));}function R(B){const b4=a0B,F={};return F[b4(0x4e8)]=B[b4(0x316)]||-0xa*0x322+-0x1*-0x128c+0x332*0x4,F[b4(0x32c)]=B[b4(0x45c)]||-0xa*0x73+0x1867*-0x1+0x1cf9,F[b4(0x42b)]=B['_helpPerQ']||{},F['eliminated']=B[b4(0x313)]||{},F;}function U(z,B){const b5=a0B,F=a0Y(),G=Number(F?.[b5(0x2e1)][b5(0x3f7)]||-0x11*-0x10b+0x1*0x317+-0x14b4),H=Object['keys'](F?.[b5(0x397)]||{})[b5(0x2c3)],J=R(F),K=J[b5(0x22f)][z[b5(0x465)]]||[],L='ai4ctf'===z[b5(0x28c)]||b5(0x458)===z[b5(0x28c)]||b5(0x3f6)===z['type']||z[b5(0x1e7)]&&!z['options']['A']&&!z[b5(0x1e7)]['B'];F&&function(Y,Z){const b6=b5;if(b6(0x3a2)===Y['session'][b6(0x2ba)])return;const a0=new Set(Y[b6(0x220)]||[]),a1=Number(Y['session'][b6(0x3f7)]||-0x559*0x7+-0xdb2*-0x1+0x17e5),a2=a0a1();if(-0x7d3*0x4+0x4*0x5ac+0x52*0x1b===Z&&a1>=0x1f5*-0x4+-0x71b+0xf17&&!a0['has']('p10')){const a3=a2?Math[b6(0x32c)](0x49d*-0x2+-0x182*0x9+0x5b3*0x4,Math[b6(0x365)]((a2[b6(0x4c8)]()-Date[b6(0x477)]())/(-0xfb*-0x191+-0x1a70e+0x10843))):null;console[b6(0x2da)](),console[b6(0x2da)](a0L[b6(0x42a)](b6(0x453))),console[b6(0x2da)](a0L[b6(0x2f2)](b6(0x2a7))+a0L[b6(0x42a)](b6(0x207))),null!==a3&&console[b6(0x2da)](a0L['gray']('\x20\x20\x20\x20\x20'+a3+b6(0x43e))),console['log'](a0L[b6(0x42a)]('\x20\x20┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄')),a0[b6(0x45d)](b6(0x308)),Y[b6(0x220)]=Array[b6(0x4e7)](a0),a0Z(Y);}if(0x993+-0x9*0x53+-0x68a===Z&&a1>=0x2230+-0x1*-0x397+-0x259f&&!a0[b6(0x3bc)](b6(0x27a))){Object['keys'](Y[b6(0x397)]||{})[b6(0x2c3)];const a4=Object['keys'](Y[b6(0x397)]||{})['filter'](a5=>Number(a5)<=-0x562*0x2+-0x35*0x22+0x11ec)['length'];console[b6(0x2da)](),console[b6(0x2da)](a0L[b6(0x37b)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console['log'](a0L['bold'][b6(0x37b)](b6(0x1ed))),console[b6(0x2da)](a0L[b6(0x42a)]('\x20\x20\x20\x20\x20'+a4+'/30\x20multiple-choice\x20answered')),console[b6(0x2da)](a0L[b6(0x4f0)](b6(0x315))),console[b6(0x2da)](a0L['gray']('\x20\x20\x20\x20\x20Budget\x20~2\x20min\x20per\x20practical\x20question.\x20You\x20can\x20come\x20back\x20with:\x20next\x20/\x20prev.')),console[b6(0x2da)](a0L[b6(0x37b)](b6(0x452))),a0[b6(0x45d)](b6(0x27a)),Y[b6(0x220)]=Array[b6(0x4e7)](a0),a0Z(Y);}}(F,z[b5(0x465)]),F&&L&&function(Y,Z){const b7=b5;if(b7(0x3a2)===Y[b7(0x2e1)]['examId'])return;if(Number(Y['session'][b7(0x3f7)]||0x14cd+0x152+-0x15f7*0x1)<0x62+-0x1*0x2ff+-0x2c5*-0x1)return;const a0=new Set(Y[b7(0x220)]||[]);Z>=0x20c+0x1ef7+-0x14*0x1a5&&Z<=0x2*-0x10ab+0x1ffa+-0x2*-0xc1&&!a0['has'](b7(0x4fe))?(console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x37b)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b7(0x2da)](a0L[b7(0x30a)][b7(0x37b)](b7(0x42e))),console[b7(0x2da)](a0L[b7(0x37b)](b7(0x39d))),console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x4f0)]('\x20\x20\x20Welcome\x20to\x20the\x20practical\x20CTF\x20section.\x20Real')),console[b7(0x2da)](a0L['white'](b7(0x2c9))),console[b7(0x2da)](),console[b7(0x2da)](a0L['bold'][b7(0x4f0)](b7(0x2fe))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x312))+a0L['bold'](b7(0x277))+a0L[b7(0x42a)](b7(0x3e2))),console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x30a)][b7(0x4f0)]('\x20\x20\x20How\x20to\x20work')),console[b7(0x2da)](a0L['gray'](b7(0x2bc))+a0L[b7(0x30a)]['green'](b7(0x390))+a0L[b7(0x42a)](b7(0x232))+a0L[b7(0x2c8)](b7(0x471))+a0L[b7(0x42a)](b7(0x201))),console[b7(0x2da)](a0L[b7(0x42a)]('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L[b7(0x2f2)](b7(0x360))+a0L[b7(0x42a)]('\x20·\x20')+a0L[b7(0x2f2)](b7(0x4f1))+a0L[b7(0x42a)](b7(0x401))+a0L[b7(0x2f2)](b7(0x3e1))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x3d3))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x4e6))+a0L[b7(0x2f2)](b7(0x29e))+a0L[b7(0x42a)](b7(0x30f))+a0L[b7(0x2f2)]('next\x20/\x20prev')),console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x30a)][b7(0x4f0)](b7(0x254))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x3f8))+a0L[b7(0x4f0)](b7(0x434))+a0L[b7(0x42a)](b7(0x348))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x330))+a0L['white'](b7(0x468))),console['log'](),console['log'](a0L[b7(0x438)](b7(0x320))),console[b7(0x2da)](a0L[b7(0x37b)](b7(0x39d))),console['log'](),a0['add'](b7(0x4fe)),Y['shownWarnings']=Array[b7(0x4e7)](a0),a0Z(Y)):Z>=-0x2258+0x1e75+0x40a&&!a0[b7(0x3bc)](b7(0x4b0))&&(console['log'](),console[b7(0x2da)](a0L[b7(0x233)](b7(0x39d))),console[b7(0x2da)](a0L['bold'][b7(0x233)]('\x20\x20\x20🎯\x20\x20Section\x203:\x20CTF4AI\x20—\x20Challenge\x20the\x20AI')),console['log'](a0L['red']('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[b7(0x2da)](),console['log'](a0L[b7(0x4f0)](b7(0x408))),console[b7(0x2da)](a0L['white'](b7(0x25f))+a0L[b7(0x30a)](b7(0x436))+a0L[b7(0x4f0)](b7(0x306))),console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x30a)][b7(0x4f0)]('\x20\x20\x20Q39–40\x20(2\x20questions\x20·\x2016\x20pts\x20each\x20—\x20highest\x20value!)')),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x2c4))),console[b7(0x2da)](),console['log'](a0L['bold'][b7(0x4f0)](b7(0x36a))),console['log'](a0L[b7(0x42a)](b7(0x2bc))+a0L[b7(0x30a)]['red'](b7(0x458))+a0L[b7(0x42a)](b7(0x232))+a0L[b7(0x233)]('ctf4ai>')+a0L[b7(0x42a)](b7(0x37e))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x4c3))+a0L['cyan'](b7(0x360))+a0L[b7(0x42a)](b7(0x401))+a0L[b7(0x2f2)]('submit\x20ICOA{...}')+a0L[b7(0x42a)](b7(0x401))+a0L[b7(0x2f2)](b7(0x3e1))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x4ea))),console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x30a)][b7(0x4f0)](b7(0x38b))),console[b7(0x2da)](a0L['gray']('\x20\x20\x20\x20\x20·\x20AI\x20is\x20your\x20')+a0L[b7(0x233)](b7(0x35c))+a0L[b7(0x42a)](b7(0x240))),console[b7(0x2da)](a0L[b7(0x42a)](b7(0x39e))+a0L[b7(0x4f0)](b7(0x2cf))+a0L['gray'](b7(0x491))),console[b7(0x2da)](),console[b7(0x2da)](a0L[b7(0x438)](b7(0x47b))),console[b7(0x2da)](a0L[b7(0x438)](b7(0x1fa))),console[b7(0x2da)](a0L['red'](b7(0x39d))),console[b7(0x2da)](),a0['add'](b7(0x4b0)),Y[b7(0x220)]=Array[b7(0x4e7)](a0),a0Z(Y));}(F,z[b5(0x465)]),F&&function(Y){const b8=b5,Z=a0a1();if(!Z)return;const a0=Z['getTime']()-Date[b8(0x477)]();if(a0<=-0x565+-0x41*0x68+0x1fcd)return;const a1=a0/(0x151e8+0x5923*-0x4+-0x3f41*-0x4),a2=new Set(Y[b8(0x220)]||[]);let a3=null;if(a1<=0x11*0x1ff+0x56c+-0x275a&&!a2['has']('t1')?a3={'key':'t1','text':[a0L[b8(0x233)][b8(0x30a)](b8(0x3a6)),a0L['red'](b8(0x364))+a0L['bold'](b8(0x38f))]}:a1<=0xd3a*-0x1+0x1a79+-0xd3a&&!a2[b8(0x3bc)]('t5')?a3={'key':'t5','text':[a0L['red']['bold'](b8(0x2c0)),a0L[b8(0x438)](b8(0x4bc))+a0L[b8(0x30a)]('exam\x20submit')]}:a1<=0x1*0x3a4+-0x765*0x1+-0x3cb*-0x1&&!a2['has'](b8(0x34b))&&(a3={'key':b8(0x34b),'text':[a0L['yellow'][b8(0x30a)](b8(0x3e7)),a0L[b8(0x42a)]('\x20\x20Review\x20unanswered\x20questions:\x20')+a0L[b8(0x4f0)]('exam\x20review')]}),a3){console[b8(0x2da)](),console[b8(0x2da)](a0L[b8(0x233)](b8(0x452)));for(const a4 of a3[b8(0x392)])console[b8(0x2da)](a4);console[b8(0x2da)](a0L[b8(0x233)](b8(0x452))),a2['add'](a3[b8(0x211)]),Y['shownWarnings']=Array[b8(0x4e7)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const b9=b5,a1=Math[b9(0x365)](Y/Z*(0x15*0xb5+0x2021+0x176e*-0x2)),a2=-0x13f4+-0x24a*0x2+0x18a6-a1,a3=a0L['cyan']('━'[b9(0x466)](a1))+a0L[b9(0x42a)]('─'[b9(0x466)](a2)),a4=Math['round'](Y/Z*(-0x9a5+-0xd73*0x1+0x177c));console[b9(0x2da)](),console[b9(0x2da)]('\x20\x20'+a3+'\x20\x20'+a0L['white'][b9(0x30a)](''+Y)+a0L[b9(0x42a)]('/'+Z)+'\x20\x20'+a0L[b9(0x42a)]('('+a0+'\x20answered)')+'\x20\x20'+a0L['gray'](a4+'%'));const a5=a0a1();if(a5){const a6=Math[b9(0x32c)](-0x40*0x74+-0x3bd+0x20bd,Math[b9(0x365)]((a5['getTime']()-Date['now']())/(-0x1d7f+-0xbcb*-0x1+-0x4*-0x567))),a7=Math[b9(0x3ba)](a6/(-0x17c9*-0x1+-0xfb9*0x1+0x14e*-0x6))+':'+String(a6%(0x3d*0x40+0x4e8*-0x4+0x49c))['padStart'](-0x1*0x1ca9+-0x568*-0x5+-0x1*-0x1a3,'0'),a8=a6<=-0x1594+0x10b5+-0x51b*-0x1?a0L[b9(0x233)][b9(0x30a)]:a6<=-0x1075*-0x1+-0x409*0x8+0x10ff*0x1?a0L['red']:a6<=-0x12f0+0x1619*-0x1+0x2b61?a0L[b9(0x438)]:a0L['gray'];console[b9(0x2da)]('\x20\x20'+a0L[b9(0x42a)](b9(0x3e4))+'\x20'+a8(a7)+'\x20'+a0L['gray']('(server-authoritative)'));}}(z[b5(0x465)],G,H),F&&D(F,z[b5(0x465)])&&console[b5(0x2da)](a0L[b5(0x438)](b5(0x435)));const Q=function(Y,Z){const ba=b5,a0={};a0[ba(0x399)]=0.2,a0[ba(0x2ae)]=ba(0x31a),a0['key']=ba(0x267);const a1={};a1['pct']=0.33,a1[ba(0x2ae)]='🐨',a1[ba(0x211)]=ba(0x29f);const a2={};a2[ba(0x399)]=0.5,a2[ba(0x2ae)]='🌉',a2[ba(0x211)]=ba(0x3cc);const a3={};a3[ba(0x399)]=0.6,a3['emoji']='🦘',a3[ba(0x211)]='egg9';const a4={};a4[ba(0x399)]=0.8,a4[ba(0x2ae)]='🏖️',a4[ba(0x211)]=ba(0x243);const a5={};a5[ba(0x399)]=0.87,a5[ba(0x2ae)]='🦈',a5[ba(0x211)]=ba(0x299);const a6={};a6['pct']=0x1,a6[ba(0x2ae)]='🎉',a6[ba(0x211)]=ba(0x334);const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math[ba(0x365)](a9[ba(0x399)]*Z);if(!(aa<-0x7*-0x425+0xce1+-0x29e3||a8[ba(0x3bc)](aa))&&(a8[ba(0x45d)](aa),Y===aa))return{'emoji':a9[ba(0x2ae)],'text':a0ai(a9[ba(0x211)])};}}(z[b5(0x465)],G);if(Q&&console[b5(0x2da)](a0L[b5(0x438)]('\x20\x20'+Q[b5(0x2ae)]+'\x20\x20'+Q[b5(0x392)])),console[b5(0x2da)](),z[b5(0x263)]&&console[b5(0x2da)](a0L[b5(0x2f2)]('\x20\x20['+z[b5(0x263)]+']')),z['points']&&z[b5(0x4cd)]>0x143*-0x1e+-0x6b1+-0x5*-0x8e9&&console[b5(0x2da)](a0L[b5(0x2f2)](b5(0x391)+z[b5(0x4cd)]+b5(0x24f))),L){let Y=z['description']||z[b5(0x392)];const Z=a0a2(z['number'],z['attachedData']);if(z[b5(0x35a)]){const a1=/\([^()]*attachedData[^()]*\)/;a1[b5(0x499)](Y)?Y=Y[b5(0x45a)](a1,z[b5(0x35a)]):Y[b5(0x33d)](z['attachedData'])||(Y=Y+'\x0a\x0aFull\x20attached\x20data:\x0a'+z[b5(0x35a)]);}console[b5(0x2da)](a0L['bold'][b5(0x4f0)]('\x20\x20Q'+z[b5(0x465)]+'.\x20')+a0L[b5(0x4f0)](Y[b5(0x3fd)]('\x0a')[-0x2129*0x1+0x1928+0x801]));const a0=Y['split']('\x0a')[b5(0x2db)](0x58a+0x7*0x490+-0x2579);for(const a2 of a0)console[b5(0x2da)](a0L[b5(0x4f0)]('\x20\x20'+a2));if(console[b5(0x2da)](),Z&&b5(0x390)===z[b5(0x28c)]){const a3=Z[b5(0x45a)](process.env.HOME||'','~');console[b5(0x2da)](a0L[b5(0x2f2)]('\x20\x20'+a0ai('examWaysToSolve')+'\x20')+a0L[b5(0x42a)]('('+a0ai(b5(0x489))+'\x20'+a3+'):')),console[b5(0x2da)](a0L['white'](b5(0x478))+a0L['yellow'](b5(0x23d)+a3)[b5(0x3db)](0xfbb*-0x1+-0x2*0x928+0x223f)+a0L[b5(0x42a)]('\x20'+a0ai(b5(0x30d)))),console[b5(0x2da)](a0L[b5(0x4f0)]('\x20\x20\x20\x20②\x20')+a0L[b5(0x438)](b5(0x2fa))[b5(0x3db)](0x4*-0x73c+0x1880+0x490)+a0L[b5(0x42a)]('\x20'+a0ai('examWaysPythonRepl'))),console['log'](a0L[b5(0x4f0)](b5(0x49c))+a0L[b5(0x438)]('!vi\x20solve.py')+a0L['gray'](b5(0x36b))+a0L['yellow'](b5(0x464))),console['log'](a0L[b5(0x4f0)]('\x20\x20\x20\x20④\x20')+a0L[b5(0x438)]('ref\x20python')['padEnd'](-0x21df+0x2f*-0xc7+0x1e8*0x25)+a0L[b5(0x42a)]('\x20'+a0ai(b5(0x26e)))),console[b5(0x2da)](a0L[b5(0x4f0)](b5(0x307))+a0L[b5(0x438)](b5(0x390))[b5(0x3db)](-0x192c+-0x91a*0x1+-0x206*-0x11)+a0L[b5(0x42a)]('\x20'+a0ai(b5(0x279)))),console[b5(0x2da)](),console[b5(0x2da)](a0L['gray']('\x20\x20'+a0ai(b5(0x4bb))+'\x20')+a0L[b5(0x30a)][b5(0x37b)]('submit\x20ICOA{your_flag}')),console[b5(0x2da)]();}B&&(console[b5(0x2da)](a0L['green'](b5(0x47e)+B)),console[b5(0x2da)]());}else{console[b5(0x2da)](a0L['bold'][b5(0x4f0)]('\x20\x20Q'+z['number']+'.\x20')+a0L[b5(0x4f0)](z['text'])),console[b5(0x2da)]();for(const a4 of['A','B','C','D']){const a5=B===a4;K[b5(0x33d)](a4)?console[b5(0x2da)](a0L[b5(0x42a)]['strikethrough'](b5(0x25b)+a4+'.\x20'+z[b5(0x1e7)][a4])+a0L[b5(0x233)]('\x20('+a0ai(b5(0x20a))+')')):a5?console['log'](a0L[b5(0x37b)][b5(0x30a)](b5(0x38e)+a4+'.\x20'+z[b5(0x1e7)][a4])):console[b5(0x2da)](a0L['gray']('\x20\x20\x20\x20'+a4+'.')+'\x20'+a0L['white'](z[b5(0x1e7)][a4]));}console['log']();}const V=b5(0x3a2)===F?.[b5(0x2e1)][b5(0x2ba)],W=J[b5(0x42b)][-0x1*0x4aa+-0x1b1b+0x1fc7]||-0x5*-0x5c7+0x2304+-0x1*0x3fe7;V&&-0xd51+-0x696*-0x3+0x9*-0xb7===z[b5(0x465)]&&-0xf1c+0x30a*-0x3+-0x1*-0x183a===W&&(console['log'](a0L[b5(0x438)]['bold']('\x20\x20'+a0ai('qTutorial'))),console[b5(0x2da)]());const X=J['max']-J[b5(0x4e8)];if(console[b5(0x2da)](a0L['gray'](b5(0x418))),L){const a6=F&&b5(0x3a2)!==F[b5(0x2e1)][b5(0x2ba)]&&z[b5(0x465)]>=-0x11e*0x1+0x1323+-0x11de&&z[b5(0x465)]<=-0x6*-0x576+0x305+-0x23a1,a7=F&&b5(0x3a2)!==F[b5(0x2e1)][b5(0x2ba)]&&z[b5(0x465)]>=-0x1*-0xc9d+0x1255+-0x1ed3&&z['number']<=-0x11*-0x236+0x1c62+-0x41d2;b5(0x3f6)===z[b5(0x28c)]?console[b5(0x2da)](a0L[b5(0x30a)][b5(0x2f2)](b5(0x4d3))+a0L[b5(0x42a)](b5(0x414))):a7?console[b5(0x2da)](a0L[b5(0x30a)][b5(0x37b)](b5(0x278))+a0L[b5(0x42a)](b5(0x359))):a6&&console[b5(0x2da)](a0L['bold'][b5(0x233)]('\x20\x20\x20\x20ctf4ai')+a0L[b5(0x42a)](b5(0x440))),console[b5(0x2da)](a0L[b5(0x438)](b5(0x3a8))+a0L[b5(0x42a)](b5(0x242))),console[b5(0x2da)](a0L[b5(0x438)](b5(0x344))+a0L['gray']('\x20\x20\x20\x20\x20\x20start\x20Python\x20shell'));}else{const a8=J[b5(0x32c)]>=-0x139e+-0x1*-0x8a3+0xb19,a9=X>0x172b+-0x603+-0x4*0x44a?a0L['gray'](a0ai(b5(0x293))+'\x20')+a0L[b5(0x438)]('('+X+'/'+J['max']+')'):a8?a0L[b5(0x42a)](a0ai(b5(0x231))+'\x20('+J[b5(0x4e8)]+'/'+J[b5(0x32c)]+')'):a0L[b5(0x42a)](''+a0ai(b5(0x376)));console[b5(0x2da)](a0L[b5(0x438)](b5(0x368))+a0L[b5(0x42a)]('\x20\x20\x20\x20\x20\x20\x20'+a0ai('answerThis'))),console[b5(0x2da)](a0L[b5(0x438)](b5(0x3d1))+b5(0x230)+a9);}console['log'](a0L[b5(0x438)](b5(0x21e))+a0L[b5(0x42a)](b5(0x2d2))+a0L['yellow'](b5(0x304))+a0L[b5(0x42a)](b5(0x25b)+a0ai(b5(0x24c)))),console[b5(0x2da)](a0L[b5(0x438)](b5(0x43c)+G)+a0L[b5(0x42a)](b5(0x4ac)+a0ai(b5(0x37f)))),console['log'](a0L[b5(0x438)](b5(0x3e0))+a0L['gray'](b5(0x230)+a0ai(b5(0x226)))),console['log'](a0L['yellow'](b5(0x4d7))+a0L[b5(0x42a)](b5(0x4ac)+a0ai(b5(0x28e)))),console['log'](a0L[b5(0x30a)][b5(0x438)]('\x20\x20\x20\x20exam\x20submit')+a0L[b5(0x42a)]('\x20\x20\x20'+a0ai(b5(0x27c)))),console['log'](a0L[b5(0x438)](b5(0x1f3))+a0L[b5(0x42a)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(b5(0x4ed)))),console[b5(0x2da)](a0L[b5(0x438)](b5(0x431))+a0L[b5(0x42a)](b5(0x230)+a0ai(b5(0x2af)))),console[b5(0x2da)](a0L['gray']('\x20\x20─────────────────────────────────────────'));}export function registerExamCommand(z){const bb=a0B,B=z[bb(0x1ef)](bb(0x2e8))[bb(0x41a)]('National\x20selection\x20exam');B[bb(0x1ef)](bb(0x374))[bb(0x41a)](bb(0x4da))[bb(0x2ef)](()=>{const bc=bb;a0a8(bc(0x218)),console[bc(0x2da)](),a0ae(bc(0x248)),console[bc(0x2da)]();const F=[['AU',bc(0x2bb)],['BD',bc(0x4dd)],['BI',bc(0x20d)],['BR',bc(0x483)],['CN',bc(0x4db)],['DE','Germany'],['EG','Egypt'],['FR',bc(0x2e9)],['GH',bc(0x331)],['ID',bc(0x421)],['IN',bc(0x301)],['JP',bc(0x266)],['KR','South\x20Korea'],['LA','Laos'],['LK',bc(0x423)],['MM',bc(0x294)],['MO',bc(0x378)],['MY','Malaysia'],['NZ','New\x20Zealand'],['PE',bc(0x387)],['PH',bc(0x4a0)],['RU',bc(0x26f)],['SA',bc(0x2d1)],['SG',bc(0x4eb)],['TH',bc(0x4a1)],['TR','Turkey'],['UK',bc(0x3af)],['US',bc(0x384)],['UZ',bc(0x2ac)],['VN',bc(0x1e3)],['ZA',bc(0x216)]];for(let G=0xf9*0x19+0x24a2+0x1451*-0x3;G<F[bc(0x2c3)];G+=-0x19cb+0x9a0+0x102e){const H=F[bc(0x2db)](G,G+(0x50a+0x1f*-0xe+0x355*-0x1))['map'](([J,K])=>'\x20\x20'+a0L[bc(0x2f2)](J)+'\x20\x20'+a0L[bc(0x42a)](K['padEnd'](-0x819*-0x4+0x3*-0x6c7+-0x1*0xbff)))[bc(0x3f5)]('');console[bc(0x2da)](H);}console[bc(0x2da)](),console[bc(0x2da)](a0L[bc(0x42a)]('\x20\x2040+\x20countries\x20and\x20regions\x20represented')),console['log'](a0L[bc(0x42a)](bc(0x3b7))),console[bc(0x2da)](),console['log'](a0L[bc(0x4f0)](bc(0x275))),console[bc(0x2da)](a0L[bc(0x2f2)](bc(0x244))+a0L['gray']('\x20\x20\x20\x20\x20exam\x20list\x20PE')+a0L[bc(0x42a)](bc(0x4b1))),console['log']();}),B[bb(0x1ef)](bb(0x3c4))['description'](bb(0x2ad))['action'](async F=>{const bd=bb;a0a8(bd(0x1f9)+(F||''));const G=M();if(!G)return;const H=a0ag('Loading\x20exams...');H[bd(0x4b4)]();try{let J=await G['getExams']();if(H[bd(0x290)](),F){const Q=F[bd(0x338)]();J=J[bd(0x353)](V=>V['country'][bd(0x338)]()===Q||bd(0x20c)===V[bd(0x289)]);}if(!J||-0x271+-0x9*0x163+0x17e*0xa===J[bd(0x2c3)]){console[bd(0x2da)](),a0ac(F?bd(0x4c6)+F['toUpperCase']()+bd(0x3cf):'No\x20exams\x20available\x20for\x20your\x20country\x20yet.'),console['log'](),console[bd(0x2da)](a0L[bd(0x4f0)](bd(0x2d4))),console['log'](a0L[bd(0x42a)](bd(0x420))),console[bd(0x2da)](),console['log'](a0L[bd(0x42a)](bd(0x3d5))+a0L[bd(0x30a)][bd(0x2f2)](bd(0x29c))),console[bd(0x2da)]();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(0x338)]();return void(W[X]&&(console[bd(0x2da)](a0L['gray'](bd(0x417)+W[X])),console[bd(0x2da)]()));}const K=J['map'](Y=>{const be=bd,Z=be(0x2e3)===Y[be(0x212)]?a0L[be(0x37b)]:be(0x2bf)===Y[be(0x212)]?a0L[be(0x438)]:a0L['white'];return[a0L[be(0x4f0)](Y['id']),Y[be(0x3c3)],a0L['cyan'](Y[be(0x289)]),String(Y[be(0x3f7)]),Y[be(0x47f)]+be(0x398),Z(Y[be(0x212)])];}),L=[...new Set(J[bd(0x21f)](Y=>Y['country']))];a0ae(F?'Exams\x20—\x20'+F['toUpperCase']():'Available\x20Exams\x20('+L[bd(0x2c3)]+'\x20regions)'),a0ad(['ID',bd(0x405),bd(0x361),'Questions',bd(0x25a),bd(0x2d9)],K),console[bd(0x2da)](),console[bd(0x2da)](a0L[bd(0x42a)]('\x20\x20Start:\x20exam\x20start\x20<id>')),L['length']>0x196c+0x22d*0x7+-0x1453*0x2&&console[bd(0x2da)](a0L[bd(0x42a)](bd(0x21a)));}catch(Y){H[bd(0x33f)](bd(0x4fc)),a0aa(Y[bd(0x475)]);}}),B[bb(0x1ef)](bb(0x2c7))[bb(0x41a)](bb(0x4bd))['action'](async F=>{const bf=bb;a0a8(bf(0x442)+F);const G=a0Y();if(G)return a0ab(bf(0x3fe)+G['session'][bf(0x300)]+'\x22\x20is\x20already\x20in\x20progress.'),void a0ac(bf(0x3c0));const H=M();if(!H)return;const J=await a0Q({'message':a0L[bf(0x4f0)]('Start\x20the\x20exam?\x20The\x20timer\x20will\x20begin\x20immediately.'),'default':!(0x2490+0x171+0x2f*-0xcf),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L[bf(0x37b)](K)}}});if(J){console[bf(0x2da)]();try{N(0xf76*-0x1+0x12b5+0x3*-0x115,bf(0x26b));const {session:K,questions:L}=await H['startExam'](F);N(-0x187+0xd5c+-0xbb7,bf(0x228)),await q(-0x60d*0x6+0x1b9b+0x97b),N(-0x2d7+-0x12f7+-0xd*-0x1b2,bf(0x3ce)),await q(0x2390+0x1215+-0x34dd*0x1),N(-0x214d+-0xa8+0x224f*0x1,bf(0x4af)),await q(0xd84+-0x1817+0xb29),a0Z({'session':K,'questions':L,'answers':{}}),N(0x646+-0x25e+-0x384,bf(0x257)),console[bf(0x2da)](),console['log'](),a0ae(K[bf(0x300)]),a0af(bf(0x29b),String(K['questionCount'])),a0af(bf(0x25a),K[bf(0x47f)]+bf(0x437)),a0af('Country',K[bf(0x289)]),O(),L[bf(0x2c3)]>0x9*-0x14d+0x2*0xf2c+-0xd*0x16f&&U(L[0x1e76+-0xb*0x2+-0x1e60]);}catch(Q){console[bf(0x2da)](),a0aa(Q[bf(0x475)]);}}}),B[bb(0x1ef)](bb(0x2cd))[bb(0x41a)](bb(0x1f0))['action'](async F=>{const bg=bb;a0a8(bg(0x356)+(F||'all'));const {refetchQuestionDataIfStale:G}=await import('../lib/exam-state.js');await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,-0x6de+-0x143c+0x12*0x182),K=H[bg(0x37c)][bg(0x3cb)](L=>L['number']===J);if(!K)return void a0aa(bg(0x238)+F+'\x20not\x20found\x20(1-'+H['questions'][bg(0x2c3)]+').');H['_lastQ']=J,a0Z(H),U(K,H[bg(0x397)][J]);}else{a0ae(''+H['session'][bg(0x300)]);const L=Object[bg(0x4d0)](H[bg(0x397)])[bg(0x2c3)];a0af(bg(0x276),L+'/'+H['session'][bg(0x3f7)]+bg(0x406)),console[bg(0x2da)]();for(const Q of H[bg(0x37c)]){const V=H[bg(0x397)][Q['number']],W=V?a0L[bg(0x37b)]('['+V+']'):a0L[bg(0x42a)](bg(0x22c)),X=Q[bg(0x263)]?a0L[bg(0x42a)]('\x20['+Q[bg(0x263)]+']'):'';console[bg(0x2da)]('\x20\x20'+W+'\x20'+a0L[bg(0x4f0)]('Q'+Q[bg(0x465)])+X+'\x20'+a0L['gray'](Q[bg(0x392)][bg(0x382)](-0x247*-0x11+-0x17d1+-0xee6,0x77b*-0x1+0xfb*-0x7+0xe94))+(Q[bg(0x392)][bg(0x2c3)]>0x1*0x1fc1+0x10db+0x1020*-0x3?'...':''));}console['log']();}}else a0aa(bg(0x48a));}),B[bb(0x1ef)]('mark\x20[n]')[bb(0x41a)](bb(0x209))[bb(0x2ef)](F=>{const bh=bb;a0a8(bh(0x2b2)+(F||''));const G=a0Y();if(!G)return void a0aa(bh(0x3ea));const H=G[bh(0x37c)][bh(0x2c3)],J=F?parseInt(F,-0x1e69+0x1*0x26d5+0x431*-0x2):G[bh(0x47a)]||0x26c1*-0x1+-0x4*0x473+0x388e;if(Number[bh(0x366)](J)||J<-0x23d3+-0x1*0x21d3+0x45a7||J>H)return void a0aa(bh(0x41e)+H+'.');const K=j(G,J);console[bh(0x2da)](),K?console[bh(0x2da)](a0L[bh(0x438)](bh(0x482)+J+bh(0x2f7))):console[bh(0x2da)](a0L[bh(0x42a)](bh(0x32a)+J+bh(0x3b9)));const L=Array[bh(0x2b8)](G[bh(0x28b)])?G['bookmarks']:[];L[bh(0x2c3)]>-0x93+-0x1*-0xe9e+-0xe0b&&console[bh(0x2da)](a0L[bh(0x42a)](bh(0x2f3)+L[bh(0x21f)](Q=>'Q'+Q)[bh(0x3f5)](',\x20'))),console['log'](a0L[bh(0x42a)](bh(0x2cc))+a0L['white'](bh(0x36c))),console[bh(0x2da)]();}),B['command'](bb(0x4fa))[bb(0x41a)](bb(0x2e6))[bb(0x2ef)](F=>{const bi=bb;a0a8(bi(0x462)+(F||''));const G=a0Y();if(!G)return void a0aa(bi(0x3ea));const H=G[bi(0x37c)][bi(0x2c3)],J=F?parseInt(F,0x120a+0x15e2+-0x27e2*0x1):G['_lastQ']||0x1ae4+-0x1e2*0x8+0x1*-0xbd3;Number[bi(0x366)](J)||J<-0x21cc+-0x1017+0x31e4||J>H?a0aa(bi(0x41e)+H+'.'):D(G,J)?(j(G,J),console[bi(0x2da)](),console[bi(0x2da)](a0L[bi(0x42a)](bi(0x32a)+J+bi(0x3b9))),console[bi(0x2da)]()):console[bi(0x2da)](a0L[bi(0x42a)](bi(0x281)+J+bi(0x396)));}),B[bb(0x1ef)](bb(0x22b))['description'](bb(0x358))[bb(0x2ef)](()=>{const bj=bb;a0a8('exam\x20next');const F=a0Y();if(!F)return void a0aa(bj(0x3ea));F[bj(0x37c)][bj(0x40f)](K=>!F[bj(0x397)][K['number']]);const G=F[bj(0x47a)]||0x2526+-0x22c8+-0x25d,H=Math[bj(0x284)](G+(0x1f69+-0x2674+0xa4*0xb),F['questions'][bj(0x2c3)]);F['_lastQ']=H,a0Z(F);const J=F['questions'][H-(0x149*-0x6+0x2*0xf55+0x2f*-0x7d)];U(J,F[bj(0x397)][J['number']]);}),B['command']('prev')[bb(0x41a)](bb(0x3d7))[bb(0x2ef)](()=>{const bk=bb;a0a8(bk(0x472));const F=a0Y();if(!F)return void a0aa('No\x20exam\x20in\x20progress.');const G=F[bk(0x47a)]||0x14b6+-0x1c57+0x7a2,H=Math[bk(0x32c)](G-(-0x1a*0x81+-0x171c+0x2437),-0x13a2*0x1+-0x5*0x25+0x145c);F[bk(0x47a)]=H,a0Z(F);const J=F['questions'][H-(0xa9*-0x38+-0xe*-0xf1+0x17cb)];U(J,F['answers'][J[bk(0x465)]]);}),B['command'](bb(0x4f8))[bb(0x41a)](bb(0x3c7))['action'](async()=>{const bl=bb;a0a8('exam\x20help');const F=a0Y();if(!F)return void a0aa('No\x20exam\x20in\x20progress.');const G=R(F),H=F[bl(0x47a)]||0x3*0x585+-0x2a5*0x5+-0x355*0x1,J=G['perQ'][H]||-0x23*0xfa+0x1240+0x1*0xfee,K=G['eliminated'][H]||[],L=F['questions'][bl(0x3cb)](W=>W['number']===H);if(!L)return;if(J>=-0x13*-0xe5+0x1*0x1596+-0x1*0x2693)return console[bl(0x2da)](),console['log'](a0L[bl(0x438)](bl(0x23a))),console[bl(0x2da)](a0L[bl(0x42a)](bl(0x407))),console['log'](),void U(L,F['answers'][L['number']]);const Q=['A','B','C','D'][bl(0x353)](W=>!K[bl(0x33d)](W));if(Q[bl(0x2c3)]<=-0x32+0x242+-0x20e)return console[bl(0x2da)](),console[bl(0x2da)](a0L['yellow']('\x20\x20😄\x20Only\x202\x20options\x20left\x20—\x20you\x20got\x20this!')),console['log'](),void U(L,F[bl(0x397)][L[bl(0x465)]]);if(G['used']>=G[bl(0x32c)]){const W=G[bl(0x32c)]>=0x498+0x3*0x138+-0x822,X=0x78e*0x4+0x12f2+-0x4*0xc43-G[bl(0x32c)];return void(W?(console[bl(0x2da)](),console[bl(0x2da)](a0L['gray'](bl(0x2dd)+G[bl(0x4e8)]+'/'+G['max']+bl(0x40a))),console[bl(0x2da)]()):(console[bl(0x2da)](),console[bl(0x2da)](a0L[bl(0x438)](bl(0x268)+G[bl(0x4e8)]+'/'+G[bl(0x32c)])),console[bl(0x2da)](a0L[bl(0x4f0)](bl(0x252))+a0L[bl(0x30a)][bl(0x438)](bl(0x4e3))+a0L[bl(0x42a)]('\x20(+'+X+bl(0x4b3))),console[bl(0x2da)]()));}const V=Y=>{const bm=bl;K[bm(0x247)](Y),G[bm(0x22f)][H]||(G[bm(0x22f)][H]=[]),G['eliminated'][H]=K,G[bm(0x42b)][H]=J+(-0x1a5a*0x1+-0x2291*-0x1+0x1*-0x836),G[bm(0x4e8)]++,F[bm(0x316)]=G[bm(0x4e8)],F[bm(0x45c)]=G['max'],F[bm(0x2b6)]=G[bm(0x42b)],F[bm(0x313)]=G[bm(0x22f)],F[bm(0x258)]||(F[bm(0x258)]=[]),F[bm(0x258)]['push']({'ts':new Date()[bm(0x4e1)](),'q':H,'type':bm(0x44b),'result':bm(0x3a0)+Y}),a0Z(F),console[bm(0x2da)](),console[bm(0x2da)](a0L[bm(0x438)]('\x20\x20💡\x20Option\x20'+Y+bm(0x4df))+a0L[bm(0x42a)](bm(0x42c)+G['used']+'/'+G['max']+')')),U(L,F[bm(0x397)][L['number']]);};if('demo-free'===F[bl(0x2e1)][bl(0x2ba)]&&L[bl(0x310)])(Y=>{const bn=bl,Z=Q[bn(0x353)](a0=>a0!==Y&&!K[bn(0x33d)](a0));0x621+0x4*-0x455+0xb33!==Z['length']&&V(Z[Math[bn(0x3ba)](Math['random']()*Z[bn(0x2c3)])]);})(L[bl(0x310)]);else{const Y=a0W()[bl(0x3f9)]||bl(0x3b8),Z=F['session']?.[bl(0x35e)]||'';try{const a0={};a0[bl(0x2d7)]='application/json',a0[bl(0x4c9)]=bl(0x2a4);const a1={};a1[bl(0x35e)]=Z,a1[bl(0x480)]=H,a1['eliminated']=K;const a2=await fetch(Y+'/api/icoa/exams/'+F[bl(0x2e1)]['examId']+'/help',{'method':bl(0x2ca),'headers':a0,'body':JSON[bl(0x4c5)](a1),'signal':AbortSignal['timeout'](-0x59*0x6c+0x3*0xcdd+0x127d)}),a3=await a2[bl(0x40b)](),a4=a3?.['data']?.[bl(0x305)];a4&&['A','B','C','D'][bl(0x33d)](a4)?V(a4):(console[bl(0x2da)](),console['log'](a0L[bl(0x42a)](bl(0x4f7))));}catch{console[bl(0x2da)](),console['log'](a0L['gray'](bl(0x200)));}}}),B['command'](bb(0x4ee))[bb(0x41a)](bb(0x4b9))[bb(0x2ef)](()=>{const bo=bb;a0a8(bo(0x34d));const F=a0Y();if(!F)return void a0aa(bo(0x3ea));const G=R(F),H=bo(0x3a2)===F[bo(0x2e1)]['examId']?0x6d3+0x20ab*-0x1+0x19e0:-0xf05+-0x33*0xc+0x281*0x7;if(G[bo(0x32c)]>=H)return void console['log'](a0L[bo(0x42a)](bo(0x42d)));if(G[bo(0x4e8)]<G[bo(0x32c)])return void console[bo(0x2da)](a0L[bo(0x42a)](bo(0x261)+(G[bo(0x32c)]-G[bo(0x4e8)])+bo(0x404)));const J=H-G[bo(0x32c)];F[bo(0x45c)]=H,a0Z(F),console[bo(0x2da)](),console[bo(0x2da)](a0L[bo(0x37b)](bo(0x339)+J+bo(0x3ef)+J+'/'+H+'\x20remaining)')),console[bo(0x2da)](a0L[bo(0x42a)](bo(0x3c1))),console[bo(0x2da)]();}),B[bb(0x1ef)](bb(0x4b8))[bb(0x41a)]('Answer\x20question\x20N\x20(A/B/C/D\x20for\x20MCQ,\x20ICOA{flag}\x20for\x20practical)')[bb(0x2ef)](async(F,G)=>{const bp=bb,H=G[bp(0x3f5)]('\x20');a0a8(bp(0x41c)+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bp(0x48a));if(!(function(){const bq=bp,Z=a0a1();if(!Z)return!(0x3*-0x62b+-0x2*0x5e3+0x1e47);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object[bq(0x4d0)](a0[bq(0x397)])[bq(0x2c3)];bq(0x3a2)===a0['session'][bq(0x2ba)]||-0x2*-0x327+0x95*-0xd+0x143===a1?(a0a0(),a0ab(bq(0x317)),a0ac(bq(0x3ad))):(a0aa(bq(0x318)),a0ac(bq(0x283)));}return!(0xa18+-0xcb9*-0x1+-0xa*0x248);}return!(-0x22a8+0x3e*0x6f+0x7c6);}()))return;const K=parseInt(F,0x2244+0x1e47+-0x31*0x151),L=J[bp(0x37c)][bp(0x3cb)](Z=>Z[bp(0x465)]===K);if(!L)return void a0aa(bp(0x238)+F+'\x20not\x20found\x20(1-'+J['questions'][bp(0x2c3)]+').');let Q;if('ai4ctf'===L[bp(0x28c)]||bp(0x458)===L['type']||bp(0x3f6)===L['type']||L[bp(0x1e7)]&&!L['options']['A']&&!L[bp(0x1e7)]['B']){if(Q=H[bp(0x21d)](),/^submit\s+/i[bp(0x499)](Q)&&(Q=Q[bp(0x45a)](/^submit\s+/i,'')[bp(0x21d)]()),Q=Q['replace'](/^["'`]+|["'`]+$/g,'')[bp(0x21d)](),!Q)return void a0aa(bp(0x41b));if(/^[A-Da-d]$/[bp(0x499)](Q))return a0aa('Q'+K+'\x20is\x20a\x20practical\x20question\x20—\x20answer\x20with\x20a\x20flag,\x20not\x20a\x20letter.'),void console[bp(0x2da)](a0L[bp(0x42a)](bp(0x4c4))+a0L[bp(0x37b)](bp(0x41c)+K+bp(0x386)));}else{if(Q=H[bp(0x338)](),!['A','B','C','D'][bp(0x33d)](Q))return void a0aa('Choice\x20must\x20be\x20A,\x20B,\x20C,\x20or\x20D.');}if(bp(0x3a2)===J[bp(0x2e1)][bp(0x2ba)]&&-0x24ec+-0x121*-0x2+0x22ac===K&&0x1074+-0x335*0xb+0x12d3===(R(J)[bp(0x42b)][0x221a+0x78+-0x452*0x8]||0x16d*-0xc+0xc1*-0x7+0x1663))return console['log'](),console[bp(0x2da)](a0L['yellow'](bp(0x4b6))+a0L[bp(0x30a)][bp(0x438)](bp(0x4f8))+a0L['yellow'](bp(0x1f5))),console[bp(0x2da)](a0L[bp(0x42a)]('\x20\x20This\x20question\x20requires\x20you\x20to\x20use\x20help\x20before\x20answering.')),void console['log']();const V=J[bp(0x397)][K];J['interactions']||(J['interactions']=[]),J[bp(0x258)][bp(0x247)]({'ts':new Date()['toISOString'](),'q':K,'type':V?'answer_changed':bp(0x45b),'input':Q,'result':V?bp(0x27b)+V:bp(0x3b0)}),J[bp(0x397)][K]=Q,J[bp(0x47a)]=K,a0Z(J),console[bp(0x2da)](a0L[bp(0x42a)]('\x20\x20\x20\x20✓\x20saved'));const W=J[bp(0x2e1)][bp(0x35e)];if(W&&bp(0x3a2)!==J[bp(0x2e1)]['examId']){const Z=(a0W()[bp(0x3f9)]||bp(0x3b8))+'/api/icoa/exams/'+J[bp(0x2e1)][bp(0x2ba)]+bp(0x327),a0={};a0[bp(0x2d7)]=bp(0x4d4);const a1={};a1['token']=W,a1[bp(0x480)]=K,a1[bp(0x310)]=Q,fetch(Z,{'method':'POST','headers':a0,'body':JSON[bp(0x4c5)](a1),'signal':AbortSignal[bp(0x205)](-0x864*-0x1+0x2*0xf19+-0x130e)})[bp(0x45e)](()=>{});}const X=Object['keys'](J[bp(0x397)])[bp(0x2c3)],Y=J[bp(0x2e1)][bp(0x3f7)];if(a0a9('Q'+K+':\x20'+Q+'\x20✓\x20\x20('+X+'/'+Y+bp(0x292)),bp(0x3a2)===J[bp(0x2e1)]['examId']&&L['answer']){const a2=[bp(0x4c1),bp(0x44e),'On\x20the\x20money.',bp(0x2fc),bp(0x23e)],a3=[bp(0x389),bp(0x32b),bp(0x210)],a4=Q===L[bp(0x310)]?a2:a3,a5=a4[Math['floor'](Math[bp(0x24a)]()*a4['length'])];console['log'](a0L[bp(0x42a)](bp(0x2cb)+a5));}if(K<J[bp(0x37c)][bp(0x2c3)]){const a6=J[bp(0x37c)][K];J[bp(0x47a)]=a6[bp(0x465)],a0Z(J),U(a6,J['answers'][a6[bp(0x465)]]);}else X>=J['questions'][bp(0x2c3)]&&(console[bp(0x2da)](),console[bp(0x2da)](a0L[bp(0x37b)][bp(0x30a)](bp(0x296))),console['log'](),bp(0x3a2)===J[bp(0x2e1)][bp(0x2ba)]?(console[bp(0x2da)](a0L[bp(0x4f0)](bp(0x25c))+a0L[bp(0x30a)][bp(0x2f2)]('exam\x20submit')+a0L[bp(0x4f0)](bp(0x2b5))),console[bp(0x2da)]()):console[bp(0x2da)](a0L[bp(0x4f0)](bp(0x2be))));}),B[bb(0x1ef)](bb(0x4b2))[bb(0x41a)](bb(0x372))[bb(0x2ef)](()=>{const br=bb;a0a8(br(0x36c));const F=a0Y();if(!F)return void a0aa(br(0x3ea));a0ae(br(0x295)+F[br(0x2e1)][br(0x300)]),O(),console[br(0x2da)]();let G='\x20\x20';const H=Array[br(0x2b8)](F[br(0x28b)])?F[br(0x28b)]:[];for(const Q of F['questions']){const V=F['answers'][Q[br(0x465)]],W=H[br(0x33d)](Q['number']),X=W?'★':'\x20';G+=V?W?a0L[br(0x30a)]['yellow']('Q'+String(Q[br(0x465)])['padStart'](0x1822*0x1+-0x375*-0x5+-0x2969)+X+'['+V+']\x20'):a0L[br(0x37b)]('Q'+String(Q[br(0x465)])[br(0x237)](0x32f+-0x1*-0x261a+-0x2947)+'\x20['+V+br(0x2c6)):W?a0L[br(0x30a)]['yellow']('Q'+String(Q[br(0x465)])['padStart'](0xdbd+-0x1a27*-0x1+0xa*-0x3fd)+X+'[\x20]\x20\x20'):a0L[br(0x438)]('Q'+String(Q[br(0x465)])['padStart'](0x1c4a+-0x192e+0x1*-0x31a)+br(0x430)),Q['number']%(-0x143f+0x9c2*-0x2+0x27c9)==-0x2*-0x869+0x25b+0x132d*-0x1&&(console[br(0x2da)](G),G='\x20\x20');}G['trim']()&&console[br(0x2da)](G);const J=Object[br(0x4d0)](F['answers'])[br(0x2c3)],K=F[br(0x2e1)][br(0x3f7)],L=K-J;if(console[br(0x2da)](),a0af(br(0x282),a0L['green']['bold'](J+'/'+K)),L>0x622*0x3+0x2b1*0xd+-0x3563){const Y=F['questions'][br(0x353)](Z=>!F[br(0x397)][Z[br(0x465)]])[br(0x21f)](Z=>Z['number'])[br(0x3f5)](',\x20');a0af(br(0x4d1),a0L[br(0x438)](L+'\x20(Q'+Y+')'));}H[br(0x2c3)]>-0x8*0x1e9+-0x1*0x236a+0x26a*0x15&&a0af(br(0x333),a0L[br(0x30a)]['yellow']('★\x20'+H[br(0x2c3)])+a0L[br(0x42a)]('\x20('+H[br(0x21f)](Z=>'Q'+Z)[br(0x3f5)](',\x20')+')')),console[br(0x2da)](),H[br(0x2c3)]>0x1*-0xe3e+-0x42d+0x5*0x3af&&console[br(0x2da)](a0L['gray'](br(0x48e))+a0L[br(0x4f0)](br(0x356)+H[0x1a83+0x16c9+-0xc53*0x4])),console['log'](a0L[br(0x42a)](br(0x1e6))+a0L['bold'][br(0x2f2)](br(0x38f))+a0L[br(0x42a)](br(0x4f5)));}),B[bb(0x1ef)]('submit\x20[confirmArg]')[bb(0x41a)]('Submit\x20exam\x20for\x20grading\x20(use:\x20\x22exam\x20submit\x20confirm\x22\x20for\x20real\x20exams)')[bb(0x2ef)](async J=>{const bs=bb;a0a8('exam\x20submit\x20'+(J||''));const K=a0Y();if(K&&bs(0x3f2)===J&&(K[bs(0x2dc)]=!(-0x2*0xd74+0x8fe+-0x2*-0x8f5),a0Z(K)),!K)return void a0aa(bs(0x3ea));const L=Object[bs(0x4d0)](K['answers'])[bs(0x2c3)],Q=K[bs(0x2e1)][bs(0x3f7)],V=Q-L;if(-0x95d+0x5*0x9b+0x2*0x32b===L){const X=a0a1(),Y=X&&new Date()>=X;return void(bs(0x3a2)===K[bs(0x2e1)][bs(0x2ba)]||Y?(a0a0(),a0ab(bs(0x46d)),a0ac(bs(0x3ad))):(a0ab(bs(0x3f1)),a0ac(bs(0x30c))));}if(bs(0x3a2)!==K[bs(0x2e1)]['examId']){const Z=!(-0x68f+-0x1d79+0x2408)===K[bs(0x2dc)],a0=a0a1(),a1=!!(a0&&new Date()>=a0);if(!Z&&!a1){if(console['log'](),console[bs(0x2da)](a0L[bs(0x233)](bs(0x452))),console['log'](a0L[bs(0x30a)][bs(0x233)]('\x20\x20⚠\x20\x20FINAL\x20SUBMISSION\x20—\x20please\x20confirm')),console[bs(0x2da)](a0L[bs(0x233)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console['log'](),console['log'](a0L[bs(0x4f0)](bs(0x46f)+a0L[bs(0x30a)][bs(0x37b)](L+'/'+Q)+bs(0x1fc))),V>0x7b*0x33+-0x1d49+0x264*0x2){const a3=K['questions']['filter'](a4=>!K[bs(0x397)][a4[bs(0x465)]])['map'](a4=>'Q'+a4['number'])['join'](',\x20');console['log'](a0L[bs(0x438)]('\x20\x20'+V+'\x20unanswered:\x20'+a3));}const a2=Array[bs(0x2b8)](K[bs(0x28b)])?K[bs(0x28b)]:[];return a2['length']>-0xa88*-0x1+-0x1e01*0x1+0x1379&&console[bs(0x2da)](a0L[bs(0x438)](bs(0x341)+a2['length']+bs(0x367)+a2[bs(0x21f)](a4=>'Q'+a4)[bs(0x3f5)](',\x20'))),console[bs(0x2da)](),console[bs(0x2da)](a0L['white'](bs(0x3dc))+a0L[bs(0x30a)]['red'](bs(0x3dd))+a0L[bs(0x4f0)](bs(0x3e9))),console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)](bs(0x32e))+a0L[bs(0x30a)][bs(0x2f2)](bs(0x42f))),console['log'](a0L[bs(0x4f0)](bs(0x24e))+a0L[bs(0x2f2)](bs(0x36c))+a0L['gray'](bs(0x1f1))+a0L['cyan'](bs(0x481))),void console[bs(0x2da)]();}Z&&(delete K[bs(0x2dc)],a0Z(K));}if(console[bs(0x2da)](),'demo-free'===K['session'][bs(0x2ba)]){try{N(0x1*0x161e+-0x24bb*0x1+0xe9d,a0ai('grading')),await q(0x65a+0x35a*-0x1+-0x12*0x1a);let a4=-0x1e23+0x1f1e*0x1+-0xfb*0x1;const a5=[],a6={};for(const ai of K['questions']){const aj=ai[bs(0x263)]||bs(0x28d),ak={};ak['correct']=0x0,ak[bs(0x4cf)]=0x0,(a6[aj]||(a6[aj]=ak),a6[aj][bs(0x4cf)]++);const al=K[bs(0x397)][ai[bs(0x465)]];al&&ai[bs(0x310)]&&al===ai[bs(0x310)]?(a4++,a6[aj][bs(0x2b7)]++):a5[bs(0x247)](ai[bs(0x465)]);}a5[bs(0x4e5)]((am,an)=>am-an),N(0x7b*0x29+0x363+0x5*-0x48a,a0ai(bs(0x40d))),console['log']();const a7=new Date(K[bs(0x2e1)][bs(0x3ee)])[bs(0x4c8)](),a8=Math['max'](0x107*0x19+0xd1c+-0x26cb,Math['round']((Date[bs(0x477)]()-a7)/(-0xb*-0x2f5+0x1*0x114d+-0x2dec))),a9=Math['floor'](a8/(-0x26db*0x1+-0x1edc+0x45f3))+'m\x20'+a8%(0x14ba+-0x69a+-0xde4)+'s',aa=[...K[bs(0x37c)]],ab={...K[bs(0x397)]},ac=R(K);a0a0();const ad=Math[bs(0x365)](a4/Q*(0xeed*0x2+-0x20de+0x368)),ae=a0W(),af={};af[bs(0x2d7)]=bs(0x4d4),(fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':bs(0x2ca),'headers':af,'body':JSON[bs(0x4c5)]({'type':bs(0x311),'score':a4,'total':Q,'lang':ae['language']||'en','help_used':ac[bs(0x4e8)],'help_max':ac[bs(0x32c)],'tokens_used':0x0,'solved':ad>=0xc7*0x14+-0x10a1+0x151?-0x347*-0x5+0x25e7+-0x3649:-0xe89+-0x10b*-0xf+-0x11c,'timestamp':new Date()[bs(0x4e1)](),'interactions':K['interactions']||[]}),'signal':AbortSignal['timeout'](0x8b7*0x2+0x25*0xfa+-0x6*0x5ac)})['catch'](()=>{}),console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x2f2)](bs(0x34a))),console[bs(0x2da)](),console[bs(0x2da)](a0L['bold'][bs(0x4f0)](bs(0x340))),console[bs(0x2da)](a0L[bs(0x30a)]['white'](bs(0x39c))),console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║███████║')),console[bs(0x2da)](a0L[bs(0x30a)]['white'](bs(0x27e))),console['log'](a0L[bs(0x30a)][bs(0x4f0)](bs(0x4e0))),console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)]('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console[bs(0x2da)](),console[bs(0x2da)](a0L['bold'](bs(0x4ac)+a0ai(bs(0x246))+':\x20'+a4+'/'+Q+'\x20('+ad+'%)')),console[bs(0x2da)](a0L[bs(0x30a)](bs(0x4ac)+(ad>=0x268f*-0x1+-0x3*-0x8e7+-0xd*-0xee?a0L[bs(0x37b)](a0ai(bs(0x4bf))):a0L['red'](a0ai(bs(0x37d)))))),console[bs(0x2da)](a0L[bs(0x42a)](bs(0x3a3)+a9)),console[bs(0x2da)](),console['log'](a0L[bs(0x438)]('\x20\x20\x20International\x20Cyber\x20Olympiad\x20in\x20AI\x202026')),console[bs(0x2da)](a0L[bs(0x42a)](bs(0x2a0))),console[bs(0x2da)](),console['log'](a0L[bs(0x2f2)](bs(0x34a))),await q(0x1e2c+-0x1b79+0x905));const ag=Object[bs(0x3e5)](a6);if(ag[bs(0x2c3)]>-0x258e+0x1631+-0xcf*-0x13){console[bs(0x2da)](),console[bs(0x2da)](a0L['bold'][bs(0x4f0)](bs(0x447)));const am=0x9*0x457+0xb*0x23+-0x2886;for(const [an,ao]of ag){const ap=ao[bs(0x4cf)]>-0x983*-0x3+-0x1*0xd5b+0xf2e*-0x1?Math[bs(0x365)](ao['correct']/ao['total']*(-0x19ce+-0x2333+0x3d65)):-0x1*-0xaf0+0x1271*-0x1+0x781*0x1,aq=ao[bs(0x4cf)]>-0x2bd*-0x9+0x4*-0x7ab+0x607?Math[bs(0x365)](ao[bs(0x2b7)]/ao[bs(0x4cf)]*am):0x1846+0x56b*0x1+-0x2b3*0xb,ar=am-aq,as=ap>=0x698*0x2+0x6e8*0x4+-0x30*0xd8?a0L[bs(0x37b)]:ap>=-0x3*-0xa93+0x1eff+-0x3e86?a0L['yellow']:a0L[bs(0x233)],at=as('█'[bs(0x466)](aq))+a0L[bs(0x42a)]('░'['repeat'](ar));console[bs(0x2da)](bs(0x25b)+a0L[bs(0x4f0)](an['padEnd'](-0x5*-0x250+0xe9e+-0x1a1a))+'\x20'+at+'\x20\x20'+as(ao['correct']+'/'+ao[bs(0x4cf)])+a0L[bs(0x42a)]('\x20('+ap+'%)'));}console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x2f2)](bs(0x2ce)));}const ah=a0a4(a4,Q);if(a4===ah['best']&&ah[bs(0x260)]>-0x2488+0x2518+0x1*-0x8f&&a4>0xa*0x14e+0x195b+0x1d*-0x153&&(console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x30a)]['green']('\x20\x20★\x20New\x20personal\x20best!'))),a5[bs(0x2c3)]>-0x1415+-0x3*0xe9+0x16d0){const au=aa['filter'](av=>a5['includes'](av['number']))[bs(0x21f)](av=>({...av}));a0a5(au);}else a0a7();if(await q(-0x21*0x9f+0x1*0x24f7+0x2*-0x260),a5[bs(0x2c3)]>0x2246+-0xa27+-0x1db*0xd){console[bs(0x2da)](),console[bs(0x2da)](a0L['yellow']('\x20\x20'+a5[bs(0x2c3)]+'\x20'+a0ai('incorrectIntro'))),console[bs(0x2da)]();for(const av of a5){const aw=aa[bs(0x3cb)](az=>az[bs(0x465)]===av);if(!aw)continue;const ax=ab[av],ay=aw[bs(0x310)];console[bs(0x2da)](a0L[bs(0x4f0)](bs(0x281)+av+'.\x20'+aw[bs(0x392)])),ax?console[bs(0x2da)](a0L[bs(0x233)](bs(0x25b)+a0ai('yourAnswer')+':\x20'+ax+'.\x20'+aw[bs(0x1e7)][ax])):console[bs(0x2da)](a0L[bs(0x438)](bs(0x25b)+a0ai('yourAnswer')+bs(0x239))),ay&&console[bs(0x2da)](a0L[bs(0x37b)](bs(0x25b)+a0ai(bs(0x2b7))+':\x20'+ay+'.\x20'+aw[bs(0x1e7)][ay])),aw[bs(0x439)]&&console[bs(0x2da)](a0L[bs(0x42a)](bs(0x2d5)+aw['explanation'])),console[bs(0x2da)]();}}else console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x37b)]('\x20\x20'+a0ai('perfectScore')));await q(-0x2200+0x3d*-0x15+0x2ed1),console[bs(0x2da)](),console[bs(0x2da)](a0L['cyan'](bs(0x2ce))),console[bs(0x2da)](a0L[bs(0x4f0)]('\x20\x20'+a0ai(bs(0x4f2))+'\x20')+a0L[bs(0x30a)][bs(0x37b)](bs(0x390))+a0L[bs(0x42a)](bs(0x2f0)+a0ai(bs(0x377)))),console['log'](a0L[bs(0x42a)]('\x20\x20'+a0ai(bs(0x41d)))),console[bs(0x2da)](a0L[bs(0x2f2)](bs(0x2ce))),console[bs(0x2da)]();}catch(az){console['log'](),a0aa(az[bs(0x475)]);}return;}const W=K[bs(0x2e1)]['token'];try{let aA;if(N(0x119f+0x1*-0x14a8+0x309,bs(0x422)),W){const aK={};aK[bs(0x2d7)]=bs(0x4d4);const aL={};aL[bs(0x390)]=0x0,aL[bs(0x458)]=0x0;const aM=a0W()['ctfdUrl']||bs(0x3b8),aN=await fetch(aM+bs(0x321)+K[bs(0x2e1)][bs(0x2ba)]+bs(0x319),{'method':bs(0x2ca),'headers':aK,'body':JSON['stringify']({'token':W,'answers':K[bs(0x397)],'interactions':K[bs(0x258)]||[],'aiUsage':K['aiUsage']||aL,'bookmarks':K[bs(0x28b)]||[]}),'signal':AbortSignal[bs(0x205)](0x31c6*0x1+-0x6e2*0xa+0x4da6)});if(!aN['ok']){const aO=await aN[bs(0x40b)]()[bs(0x45e)](()=>({'message':bs(0x432)}));throw new Error(aO['message']||'Submit\x20failed');}aA=(await aN['json']())[bs(0x2d0)];}else{const aP=M();if(!aP)return;aA=await aP[bs(0x1e5)](K[bs(0x2e1)]['examId'],K[bs(0x397)]);}N(0x147*-0x1a+-0x1eda+0x1*0x4042,bs(0x1ec)),await q(0xc2*0xa+0x1*-0x353+-0x315),N(-0x704*0x3+-0x18fb+0x2e6b,bs(0x343)),console[bs(0x2da)]();const aB={};aB['ai4ctf']=0x0,aB[bs(0x458)]=0x0;const aC={'answered':Object[bs(0x4d0)](K[bs(0x397)])[bs(0x2c3)],'total':K['session'][bs(0x3f7)],'bookmarks':Array[bs(0x2b8)](K['bookmarks'])?K[bs(0x28b)]['length']:0x26c7+0x2a2*-0x1+-0x2425*0x1,'help':R(K),'aiUsage':K['aiUsage']||aB,'interactions':(K[bs(0x258)]||[])[bs(0x2c3)],'durationMin':K['session'][bs(0x47f)]||-0x1*-0x75f+0x24a5+-0x2c04,'confirmedAt':K['session'][bs(0x4e4)]||K[bs(0x2e1)][bs(0x3ee)],'examId':K[bs(0x2e1)][bs(0x2ba)]};a0a0();const aD=Math[bs(0x32c)](-0xa36*0x1+-0x1*0x25d1+-0x99b*-0x5,Math[bs(0x365)]((Date[bs(0x477)]()-new Date(aC['confirmedAt'])[bs(0x4c8)]())/(0x11f3+0x1088+-0x3*0xa31))),aE=Math[bs(0x3ba)](aD/(0x19d*-0xf+0x631*-0x2+0x24d1)),aF=aD%(0x2b7+-0x65*0x47+0x1988*0x1);console[bs(0x2da)](),console['log'](a0L[bs(0x2f2)](bs(0x3c5))),console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)](bs(0x340))),console['log'](a0L[bs(0x30a)][bs(0x4f0)](bs(0x39c))),console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)](bs(0x4d8))),console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)](bs(0x27e))),console['log'](a0L['bold'][bs(0x4f0)](bs(0x4e0))),console[bs(0x2da)](a0L['bold']['white'](bs(0x2a8))),console[bs(0x2da)]();const aG=aA[bs(0x4bf)]?a0L[bs(0x37b)][bs(0x30a)](bs(0x29a)):a0L[bs(0x438)][bs(0x30a)](bs(0x470));console[bs(0x2da)](aG),console[bs(0x2da)](),console[bs(0x2da)](a0L['white'](bs(0x1ff))),console[bs(0x2da)](a0L[bs(0x4f0)]('\x20\x20\x20exam\x20center.\x20Final\x20scoring\x20and\x20selection\x20are\x20decided\x20by')),console[bs(0x2da)](a0L[bs(0x4f0)](bs(0x2ee))),console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x2f2)](bs(0x2ce))),console[bs(0x2da)](),console[bs(0x2da)](a0L[bs(0x30a)]['white']('\x20\x20Your\x20run'));const aH=aC['total']-aC['answered'];console[bs(0x2da)](bs(0x25b)+a0L[bs(0x42a)]('Answered:\x20\x20')+a0L['white'](aC[bs(0x43b)]+'/'+aC[bs(0x4cf)])+(aH>-0xaaf*-0x1+0x25ed+-0x1034*0x3?a0L[bs(0x42a)](bs(0x33c)+aH+'\x20skipped'):'')),console['log'](bs(0x25b)+a0L['gray'](bs(0x3d2))+a0L[bs(0x4f0)](aE+'m\x20'+aF+'s')+a0L['gray'](bs(0x444)+aC['durationMin']+bs(0x3ff))),aC[bs(0x28b)]>0x2115+0x18b3*-0x1+-0x862&&console[bs(0x2da)](bs(0x25b)+a0L[bs(0x42a)]('Flagged:\x20\x20\x20')+a0L[bs(0x438)]('★\x20'+aC[bs(0x28b)])),console[bs(0x2da)]();const aI=aA[bs(0x225)];if(aI&&Object[bs(0x4d0)](aI)[bs(0x2c3)]>=0x6e8+0x2554+-0x9*0x4ea){const aQ=Object[bs(0x3e5)](aI)[bs(0x353)](([,aV])=>aV[bs(0x4cf)]>0xa27*-0x1+-0x7*0x2d1+-0xeef*-0x2)[bs(0x21f)](([aV,aW])=>({'cat':aV,'pct':aW[bs(0x2b7)]/aW[bs(0x4cf)]}))[bs(0x4e5)]((aV,aW)=>aW[bs(0x399)]-aV['pct']),aR=Math['min'](-0x65*0x15+-0x426*-0x1+-0x1*-0x425,Math[bs(0x4a9)](aQ[bs(0x2c3)]/(0x3*-0xa7b+-0x2333+0x42a7))),aS=Math['min'](-0xa27+0x5c9*0x5+-0x12c4,Math[bs(0x4a9)](aQ[bs(0x2c3)]/(0x1*0x14d1+-0xb9c+-0x932))),aT=aQ[bs(0x2db)](0xe2d*0x2+0x1*-0x6ad+-0x15ad*0x1,aR)[bs(0x21f)](aV=>aV[bs(0x3b2)]),aU=aQ['slice'](-aS)['map'](aV=>aV[bs(0x3b2)]);aT['some'](aV=>aU[bs(0x33d)](aV))||(console['log'](a0L['bold'][bs(0x4f0)](bs(0x26d))),console[bs(0x2da)](bs(0x25b)+a0L['green'](bs(0x395))+a0L['white'](aT[bs(0x3f5)](',\x20'))),console['log']('\x20\x20\x20\x20'+a0L[bs(0x438)](bs(0x20b))+a0L['white'](aU[bs(0x3f5)](',\x20'))),console[bs(0x2da)](a0L[bs(0x42a)]('\x20\x20\x20\x20(relative\x20to\x20other\x20categories\x20—\x20numeric\x20scores\x20go\x20to\x20your\x20exam\x20center)')),console['log']());}console[bs(0x2da)](a0L[bs(0x30a)][bs(0x4f0)](bs(0x4cb))),console[bs(0x2da)](bs(0x25b)+a0L[bs(0x42a)]('Help:\x20\x20\x20\x20\x20\x20')+a0L['white'](aC[bs(0x4f8)][bs(0x4e8)]+'/'+aC[bs(0x4f8)][bs(0x32c)])),console[bs(0x2da)](bs(0x25b)+a0L[bs(0x42a)]('AI\x20tokens:\x20')+a0L[bs(0x4f0)](aC[bs(0x309)][bs(0x390)]+bs(0x3bf))+a0L[bs(0x42a)](bs(0x33c))+a0L[bs(0x4f0)](aC[bs(0x309)][bs(0x458)]+bs(0x35f))),console['log'](),console[bs(0x2da)](a0L[bs(0x2f2)]('\x20\x20─────────────────────────────────────────────')),console[bs(0x2da)](),console['log'](a0L[bs(0x30a)][bs(0x4f0)]('\x20\x20What\x20next')),console[bs(0x2da)](a0L[bs(0x42a)](bs(0x21b))),console[bs(0x2da)](a0L[bs(0x42a)]('\x20\x20·\x20Keep\x20sharpening:\x20')+a0L['white'](bs(0x29c))+a0L[bs(0x42a)](bs(0x3b4))),console[bs(0x2da)](a0L[bs(0x42a)](bs(0x46a))+a0L[bs(0x4f0)](bs(0x1f6))),console[bs(0x2da)]();const {showCToBUpgradePrompt:aJ}=await import(bs(0x3d9));aJ(aC[bs(0x2ba)],aA[bs(0x4bf)]),console['log'](a0L[bs(0x438)](bs(0x3d0))),console[bs(0x2da)](a0L['cyan'][bs(0x27d)](bs(0x4c7))),console[bs(0x2da)](),console['log'](a0L[bs(0x2f2)](bs(0x3c5))),console[bs(0x2da)]();}catch(aV){console['log'](),a0aa(aV[bs(0x475)]);}}),B[bb(0x1ef)](bb(0x27f))[bb(0x41a)]('View\x20exam\x20result')[bb(0x2ef)](async F=>{const bt=bb;a0a8(bt(0x31f)+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa(bt(0x287));F=J[bt(0x2e1)][bt(0x2ba)];}const H=a0ag('Loading\x20result...');H[bt(0x4b4)]();try{const K=await G[bt(0x324)](F);H[bt(0x354)](bt(0x415)),console[bt(0x2da)](),a0ae(K[bt(0x300)]),a0af('Score',a0L[bt(0x30a)](K[bt(0x246)]+'/'+K[bt(0x4cf)])),a0af(bt(0x297),a0L['bold'](K[bt(0x349)]+'%')),a0af(bt(0x2d9),K[bt(0x4bf)]?a0L[bt(0x37b)][bt(0x30a)](bt(0x388)):a0L[bt(0x233)][bt(0x30a)](bt(0x221))),a0af('Submitted',K[bt(0x4d2)]),console[bt(0x2da)]();}catch(L){H[bt(0x33f)](bt(0x484)),a0aa(L[bt(0x475)]);}}),B[bb(0x1ef)](bb(0x2b9))['description'](bb(0x206))[bb(0x2ef)](async J=>{const bu=bb;a0a8('exam\x20token\x20'+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import(bu(0x28a)),V=K();if(V){const a2=V[bu(0x2e1)]['token'],a3=a0a1(),a4=!!a2&&a2[bu(0x21d)]()[bu(0x338)]()!==J[bu(0x21d)]()[bu(0x338)](),a5=!!a3&&a3['getTime']()+(0xb*0x4e722+-0x359732+0x6c7ff*0x4)<Date[bu(0x477)]();if(a4&&a5)return Q(),console['log'](),console[bu(0x2da)](a0L['gray'](bu(0x369))),console[bu(0x2da)](),console[bu(0x2da)](a0L['white'](bu(0x2a9))+a0L[bu(0x30a)][bu(0x2f2)](bu(0x2d6)+J)),void console[bu(0x2da)]();if(!a2&&J)return V[bu(0x2e1)][bu(0x35e)]=J[bu(0x21d)](),L(V),console[bu(0x2da)](),console[bu(0x2da)](a0L[bu(0x37b)](bu(0x213))),console[bu(0x2da)](a0L[bu(0x42a)](bu(0x2f5))+a0L[bu(0x4f0)](bu(0x4d6))+a0L['gray'](bu(0x401))+a0L[bu(0x4f0)](bu(0x38f))),console[bu(0x2da)](),console[bu(0x2da)](a0L['bold'][bu(0x4f0)]('\x20\x20Continue\x20this\x20exam:')),console['log'](a0L[bu(0x42a)](bu(0x2d5))+a0L[bu(0x30a)][bu(0x2f2)]('exam\x20q\x201')+a0L[bu(0x42a)](bu(0x286))),console[bu(0x2da)](a0L[bu(0x42a)](bu(0x2d5))+a0L[bu(0x30a)]['cyan']('exam\x20review')+a0L[bu(0x42a)]('\x20\x20\x20see\x20progress\x20+\x20flagged\x20items')),void console[bu(0x2da)]();const a6=Object[bu(0x4d0)](V[bu(0x397)])[bu(0x2c3)],a7=V['session'][bu(0x3f7)],a8=a0a1(),a9=a8?Math['max'](-0xfa9+0x5f7+0x9b2,Math[bu(0x365)]((a8['getTime']()-Date[bu(0x477)]())/(-0xbc1e*0x2+0xa5f4+0x1bca8))):null;return console[bu(0x2da)](),console[bu(0x2da)](a0L[bu(0x438)](bu(0x214))),console['log'](),console[bu(0x2da)](a0L[bu(0x42a)](bu(0x32d))+a0L[bu(0x4f0)](V[bu(0x2e1)]['examName'])),a2&&console[bu(0x2da)](a0L[bu(0x42a)](bu(0x488))+a0L[bu(0x4f0)](a2)+(a2===J?a0L[bu(0x37b)](bu(0x322)):a0L[bu(0x438)]('\x20\x20(different\x20from\x20the\x20one\x20you\x20typed)'))),console[bu(0x2da)](a0L['gray'](bu(0x217))+a0L[bu(0x4f0)](a6+'/'+a7)),null!==a9&&console[bu(0x2da)](a0L[bu(0x42a)](bu(0x2e0))+a0L[bu(0x4f0)](a9+bu(0x3ae))),console['log'](),console['log'](a0L[bu(0x30a)][bu(0x4f0)](bu(0x227))),console[bu(0x2da)](a0L[bu(0x42a)](bu(0x2d5))+a0L[bu(0x30a)][bu(0x2f2)](bu(0x208))+a0L['gray']('\x20\x20\x20\x20\x20\x20resume\x20at\x20any\x20question')),console['log'](a0L[bu(0x42a)](bu(0x2d5))+a0L['bold'][bu(0x2f2)](bu(0x36c))+a0L[bu(0x42a)](bu(0x43f))),console[bu(0x2da)](a0L[bu(0x42a)](bu(0x2d5))+a0L['bold'][bu(0x2f2)](bu(0x38f))+a0L['gray'](bu(0x41f))),a2&&a2!==J&&(console[bu(0x2da)](),console[bu(0x2da)](a0L[bu(0x438)](bu(0x409))),console[bu(0x2da)](a0L[bu(0x438)](bu(0x2ff))),console['log'](),console[bu(0x2da)](a0L['gray']('\x20\x20If\x20you\x20need\x20to\x20abandon\x20this\x20session\x20(e.g.\x20expired\x20/\x20wrong\x20paper),')),console['log'](a0L[bu(0x42a)](bu(0x4d5))+a0L[bu(0x30a)][bu(0x2f2)](bu(0x2b1))+a0L[bu(0x42a)]('\x20to\x20wipe\x20local\x20state,\x20then\x20re-enter\x20the\x20new\x20token.'))),void console[bu(0x2da)]();}const {isNativeWindowsCmd:W}=await import('../lib/platform.js');if(!W()&&!a0am()){let aa=!(-0x1*0x1fb5+-0x1b56+0x3b0c);try{const ab={};ab['Content-Type']=bu(0x4d4);const ac=a0W()['ctfdUrl']||'https://practice.icoa2026.au',ad=await fetch(ac+bu(0x298),{'method':bu(0x2ca),'headers':ab,'body':JSON[bu(0x4c5)]({'token':J[bu(0x21d)](),'deviceHash':a0aj(),'peek':!(-0x251+0x224+0xf*0x3)}),'signal':AbortSignal[bu(0x205)](0x1c6*-0xc+0x1a85+0xe4b)});if(ad['ok']){const ae=await ad[bu(0x40b)]();(ae?.[bu(0x2d0)]?.['exam_id']||'')['endsWith']('-c')&&(aa=!(-0xf3b+0x18d*-0xa+0x81*0x3d));}}catch{}if(!aa)return console['log'](),a0ab(bu(0x332)),console[bu(0x2da)](a0L[bu(0x42a)](bu(0x474))+a0L['bold'][bu(0x2f2)](bu(0x2f1))),console[bu(0x2da)](a0L['gray'](bu(0x1f2))+a0L[bu(0x30a)][bu(0x2f2)](bu(0x481))+a0L['gray']('\x20to\x20return\x20to\x20the\x20main\x20menu.')),console[bu(0x2da)](a0L[bu(0x42a)]('\x20\x20(Paper\x20C\x20tokens\x20skip\x20this\x20gate\x20—\x20Paper\x20C\x20is\x20MCQ-only)')),void console['log']();}const X={};X['UA']='uk',X['PE']='es',X['CN']='zh',X['AU']='en',X['JP']='ja',X['KR']='ko',X['BR']='pt',X['SA']='ar',X['FR']='fr',X['DE']='de',X['IN']='hi',X['ID']='id',X['TH']='th',X['VN']='vi',X['TR']='tr',X['RU']='ru',X['EG']='ar',X['HT']='ht',X['PH']='en',X['MY']='en',X['MM']='en',X['SG']='en',X['ZA']='en',X['KE']='sw',X['TZ']='sw',X['MO']='zh',X['UZ']='uz',X['GH']='en',X['LA']='lo',X['BD']='bn',X['BI']='fr',X['US']='en',X['UK']='en',X['NZ']='en',X['LK']='si';const Y=X[J['trim']()['substring'](-0x2195+0x1a*0x43+-0x1c9*-0xf,0x1f2a+0x143*-0x8+-0x1510)[bu(0x338)]()],Z=a0W(),a0=Z[bu(0x3f9)]||bu(0x3b8),a1=Y||Z[bu(0x380)]||'en';Y&&Y!==(Z['language']||'en')&&a0X({'language':Y}),console['log'](),N(0x2*-0x155+0x1dff+0x1*-0x1b55,'Validating\x20token...');try{const af={};af[bu(0x2d7)]='application/json';const ag=await fetch(a0+bu(0x298),{'method':'POST','headers':af,'body':JSON[bu(0x4c5)]({'token':J[bu(0x21d)](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bu(0x205)](0x203e+-0x297+0x969)});if(!ag['ok']){N(0x7*0x212+-0x1*-0x2084+-0x223*0x16,''),console['log']();const ao=await ag['json']()[bu(0x45e)](()=>({'message':bu(0x4c2)}));return a0aa(ao[bu(0x475)]||bu(0x323)),void a0ac(bu(0x4ad));}N(-0xfbe+0x1*-0x14a9+0x2485,bu(0x454));const ah=await ag[bu(0x40b)](),{session:ai,questions:aj,languages:ak}=ah[bu(0x2d0)];N(0x662+-0x12bd+0xc97,bu(0x429)),await q(-0x1f13+0x1c04+0x3d7),N(0x171*-0x13+0x149b*-0x1+0x16*0x233,'Ready!'),console['log'](),console[bu(0x2da)](),a0ae(ai[bu(0x300)]),console[bu(0x2da)](),a0af(bu(0x29b),ai['questionCount']+'\x20(30\x20MCQ\x20+\x2010\x20practical)'),a0af(bu(0x25a),ai[bu(0x47f)]+bu(0x437)),a0af(bu(0x2f4),(ai[bu(0x4be)]||0x17*0x139+0x17c2+-0x9*0x5b3)+bu(0x3ed)),a0af('Pass',(ai[bu(0x337)]||0x409+-0x4*0x8ad+0x1ef6)+'\x20points\x20(50%)'),console[bu(0x2da)](),console['log'](a0L[bu(0x4f0)](bu(0x31d))),console[bu(0x2da)](a0L[bu(0x4f0)](bu(0x49a))),console[bu(0x2da)](a0L['white'](bu(0x3fa))),console[bu(0x2da)](a0L[bu(0x4f0)](bu(0x234))),ak&&ak['length']>-0x26*0x9e+0x570+0x1205&&console[bu(0x2da)](a0L[bu(0x4f0)](bu(0x4cc)+ak[bu(0x3f5)](',\x20')+bu(0x274))),console[bu(0x2da)](),console[bu(0x2da)](a0L['yellow'](bu(0x36f))),console['log'](a0L['white'](bu(0x4a4))),console[bu(0x2da)](a0L[bu(0x4f0)](bu(0x428))),console[bu(0x2da)](a0L['white'](bu(0x487))),console['log'](),await new Promise(ap=>{const bv=bu;process[bv(0x448)][bv(0x3f3)](a0L[bv(0x30a)][bv(0x438)]('\x20\x20Press\x20Enter\x20to\x20start\x20the\x20exam\x20timer...\x20'));const aq=!!process[bv(0x441)][bv(0x31c)]&&process[bv(0x441)][bv(0x4a2)];process[bv(0x441)][bv(0x31c)]&&process[bv(0x441)][bv(0x38a)]&&process[bv(0x441)][bv(0x38a)](!(-0x10dd+0xe2*0x15+-0x1ac));const ar=as=>{const bw=bv,at=as[bw(0x222)]();(at[bw(0x33d)]('\x0a')||at[bw(0x33d)]('\x0d'))&&(process[bw(0x441)]['removeListener']('data',ar),process[bw(0x441)][bw(0x31c)]&&process['stdin']['setRawMode']&&process[bw(0x441)]['setRawMode'](aq),process[bw(0x448)][bw(0x3f3)]('\x0a'),ap());};process[bv(0x441)]['on'](bv(0x2d0),ar),process[bv(0x441)][bv(0x31b)]();});const al=new Date()[bu(0x4e1)]();ai[bu(0x4e4)]=al,ai[bu(0x35e)]=J['trim']();try{const ap=Date[bu(0x477)](),aq=await fetch(a0+bu(0x342),{'method':bu(0x273),'signal':AbortSignal['timeout'](0x1cb0+0x1fd2+-0x30ca)});if(aq['ok']){const ar=await aq[bu(0x40b)](),as=ar?.[bu(0x2d0)]?.[bu(0x37a)];if(bu(0x465)==typeof as&&as>-0x197c+0x1*-0x219e+0x3b1a){const at=(ap+Date[bu(0x477)]())/(-0x1*-0xf01+0x22ae+-0x31ad);ai[bu(0x2a3)]=Math['round'](as-at),ai[bu(0x251)]=as+(0x1112+0x134d+-0x2423)*ai[bu(0x47f)]*(0x8f3*-0x3+0x7*-0xd5+0x2494*0x1);}}}catch{}const am={};am['ai4ctf']=0x0,am['ctf4ai']=0x0;const an={};an[bu(0x2e1)]=ai,an[bu(0x37c)]=aj,an['answers']={},an[bu(0x258)]=[],an['aiUsage']=am,(a0Z(an),console[bu(0x2da)](),a0a9(bu(0x2df)),a0af(bu(0x350),ai[bu(0x47f)]+':00'),aj[bu(0x2c3)]>-0x14e6+0xfe0+0x506&&U(aj[-0x1*-0xb17+-0xc*0x1e9+0xbd5]));}catch(au){console[bu(0x2da)](),bu(0x34e)===au['name']?a0aa(bu(0x3f0)):a0aa(au[bu(0x475)]||bu(0x328));}}),B[bb(0x1ef)]('reset',{'hidden':!(-0xf5b*-0x1+-0xcb*-0x22+0xe1b*-0x3)})[bb(0x41a)](bb(0x3cd))[bb(0x2ef)](async()=>{const bx=bb;a0a8(bx(0x2b1));const {getRealExamState:F,clearExamState:G}=await import(bx(0x28a)),H=F();if(!H)return console[bx(0x2da)](),console[bx(0x2da)](a0L[bx(0x42a)](bx(0x3de))),void console['log']();const J=H[bx(0x2e1)]['token'];if(console[bx(0x2da)](),console[bx(0x2da)](a0L[bx(0x438)](bx(0x3c9))),console[bx(0x2da)](a0L[bx(0x42a)](bx(0x4ab))+a0L[bx(0x4f0)](H[bx(0x2e1)]['examName'])),J&&console[bx(0x2da)](a0L[bx(0x42a)]('\x20\x20\x20\x20\x20Token:\x20')+a0L[bx(0x4f0)](J)),console['log'](a0L[bx(0x42a)](bx(0x36d))),console[bx(0x2da)](a0L[bx(0x42a)](bx(0x269))),console[bx(0x2da)](),console[bx(0x2da)](a0L[bx(0x42a)](bx(0x25c))+a0L[bx(0x30a)][bx(0x2f2)](bx(0x223))+a0L[bx(0x42a)](bx(0x33a))),bx(0x223)!==(await new Promise(K=>{const by=bx;process['stdout'][by(0x3f3)](by(0x1f4));const L=Q=>{const bz=by,V=Q[bz(0x222)]()[bz(0x21d)]();(V[bz(0x33d)]('\x0a')||V[bz(0x33d)]('\x0d')||V[bz(0x2c3)]>0x1*-0x1fae+-0xd36+0x34*0xdd)&&(process['stdin'][bz(0x424)](bz(0x2d0),L),K(V[bz(0x45a)](/[\r\n]/g,'')));};process[by(0x441)]['on'](by(0x2d0),L),process['stdin'][by(0x31b)]();}))[bx(0x2a5)]())return console['log'](a0L[bx(0x42a)]('\x20\x20Cancelled.')),void console[bx(0x2da)]();G(),console[bx(0x2da)](),console[bx(0x2da)](a0L[bx(0x37b)](bx(0x20e))),console[bx(0x2da)](a0L[bx(0x42a)](bx(0x236))+a0L['bold'][bx(0x2f2)](bx(0x43d))),console[bx(0x2da)]();}),B[bb(0x1ef)]('demo')[bb(0x41a)](bb(0x44d))[bb(0x2ef)](async()=>{const bA=bb;a0a8(bA(0x23c)),E('demo-enter');const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import(bA(0x457));a0W()['demoIntroSeen']||(await(async function(){const bB=bA;let a0=!(0x1a34+-0xfaa+-0xa89);const a1=process[bB(0x441)],a2=()=>{a0=!(-0x15cd+0x270e+-0x1141*0x1);},a3=a1[bB(0x31c)]&&'function'==typeof a1[bB(0x38a)];a3&&(a1[bB(0x38a)](!(0x18b1*-0x1+0x73a+0x1177)),a1[bB(0x31b)](),a1['once'](bB(0x2d0),a2));const a4=async a5=>{let a6=-0x10ec+-0x7*-0x63+0x4bd*0x3;for(;a6<a5&&!a0;)await q(-0x22*0xf2+-0x53*0x6f+0x9c7*0x7),a6+=0x1fb9+-0xf1a+0x1*-0x104f;};try{if(console[bB(0x4a7)](),console[bB(0x2da)](),console[bB(0x2da)](a0L[bB(0x42a)](bB(0x4ac))+a0L[bB(0x379)](bB(0x49b))),console[bB(0x2da)](),console[bB(0x2da)](a0L['bold']['white']('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console[bB(0x2da)](a0L[bB(0x30a)][bB(0x4f0)](bB(0x39c))),console['log'](a0L[bB(0x30a)][bB(0x4f0)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║███████║')),console[bB(0x2da)](a0L[bB(0x30a)][bB(0x4f0)](bB(0x27e))),console[bB(0x2da)](a0L['bold'][bB(0x4f0)](bB(0x4e0))),console[bB(0x2da)](a0L['bold'][bB(0x4f0)]('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console[bB(0x2da)](),console[bB(0x2da)](a0L[bB(0x30a)][bB(0x438)](bB(0x280))),console[bB(0x2da)](a0L[bB(0x42a)](bB(0x38d))),await a4(0x2043+0x2351*0x1+-0x39d0),a0)return;if(console[bB(0x2da)](),console[bB(0x2da)](a0L[bB(0x4f0)](bB(0x4e9))),console[bB(0x2da)](),await a4(0x14ad*-0x1+0x593+0x27e*0x7),a0)return;if(console[bB(0x2da)](a0L[bB(0x2f2)](bB(0x2ed))+a0L[bB(0x4f0)]('Answer\x2010\x20quick\x20questions')+a0L[bB(0x42a)](bB(0x49d))),await a4(0x1272*-0x1+0x1f52+-0xa24),a0)return;if(console['log'](a0L[bB(0x37b)](bB(0x2ed))+a0L[bB(0x4f0)]('Team\x20up\x20with\x20AI\x20to\x20solve\x20CTFs')+a0L[bB(0x42a)](bB(0x3df))),await a4(0x2*-0x1cf+-0x10c5+0x171f),a0)return;if(console[bB(0x2da)](a0L[bB(0x233)](bB(0x2ed))+a0L['white']('Hack\x20the\x20AI\x27s\x20guardrails')+a0L['gray'](bB(0x4f3))),await a4(-0x6*-0x2cd+0xa*-0x2bd+0xe18),a0)return;if(console[bB(0x2da)](),console[bB(0x2da)](a0L['bold']['white'](bB(0x3a5))+a0L['bold'][bB(0x438)]('IS')+a0L[bB(0x30a)][bB(0x4f0)]('\x20the\x20competition.')),console[bB(0x2da)](),await a4(-0x1f15+0x2267+0xa*0x41),a0)return;if(console[bB(0x2da)](a0L['gray']('\x20\x20\x20·\x20110\x20CTF\x20tools\x20pre-configured')),await a4(0x6*-0xf9+0x28*-0x6d+0xc37*0x2),a0)return;if(console[bB(0x2da)](a0L[bB(0x42a)]('\x20\x20\x20·\x2015\x20languages,\x20real-time\x20AI\x20translation')),await a4(-0x1*0x1af3+0x149f+-0x194*-0x5),a0)return;if(console['log'](a0L[bB(0x42a)](bB(0x400))),await a4(-0x5b6*-0x3+-0x5cf+-0x1*0x833),a0)return;console['log'](),console['log'](a0L[bB(0x30a)][bB(0x2f2)](bB(0x249))),await a4(-0x1*-0x1807+0xf*0x277+0x16b0*-0x2);}finally{((()=>{const bC=bB;if(a3){a1[bC(0x424)](bC(0x2d0),a2);try{a1['setRawMode'](!(0xf19+0xb*0x2e7+-0x2f05));}catch{}a1[bC(0x446)]();}})()),console[bB(0x4a7)]();}}()),a0X({'demoIntroSeen':!(-0x1355+0xa27+0x92e)})),console[bA(0x2da)](),console['log'](a0L[bA(0x4f0)]('\x20\x20Demo:\x20')+a0L[bA(0x42a)](H+'\x20questions\x20drawn\x20from\x20a\x20pool\x20of\x20'+J+bA(0x445))),console['log'](a0L['gray'](bA(0x31e))+a0L[bA(0x2f2)]('Ctrl+C')+a0L[bA(0x42a)](bA(0x363))+a0L['cyan'](bA(0x481))+a0L['gray'](bA(0x2ea))),await new Promise(a0=>{const bD=bA;process[bD(0x448)]['write'](a0L[bD(0x30a)]['yellow']('\x20\x20Press\x20Enter\x20to\x20begin...\x20'));const a1=!!process['stdin']['isTTY']&&process[bD(0x441)][bD(0x4a2)];process['stdin'][bD(0x31c)]&&process['stdin'][bD(0x38a)]&&process[bD(0x441)][bD(0x38a)](!(0x2381+-0x25b7+-0x7*-0x51));const a2=a3=>{const bE=bD,a4=a3[bE(0x222)]();(a4[bE(0x33d)]('\x0a')||a4['includes']('\x0d'))&&(process[bE(0x441)]['removeListener'](bE(0x2d0),a2),process[bE(0x441)][bE(0x31c)]&&process['stdin'][bE(0x38a)]&&process[bE(0x441)][bE(0x38a)](a1),process[bE(0x448)][bE(0x3f3)]('\x0a'),a0());};process['stdin']['on'](bD(0x2d0),a2),process[bD(0x441)][bD(0x31b)]();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import(bA(0x28a));Q()&&V(bA(0x3a2)),console[bA(0x2da)](),a0ae(bA(0x3ab)),console['log'](),console[bA(0x2da)](a0L[bA(0x4f0)](bA(0x425))),console[bA(0x2da)](a0L['white']('\x20\x20'+H+bA(0x262)+J+bA(0x494)));const W=a0a3();if(W[bA(0x260)]>-0x1*0xb53+0x4*0x29b+0x4d*0x3){const a0=W[bA(0x30e)],a1=a0>=0x1*-0x1da5+0x1e22+-0x2d?a0L[bA(0x37b)]:a0>=-0x1*-0x215b+-0xbc3+-0x155c?a0L[bA(0x438)]:a0L[bA(0x4f0)];console[bA(0x2da)](),console['log'](a0L[bA(0x42a)]('\x20\x20Your\x20best:\x20')+a1(W[bA(0x47c)]+'/'+H+'\x20('+a0+'%)')+a0L[bA(0x42a)]('\x20\x20·\x20\x20'+W[bA(0x260)]+bA(0x48c)));}console[bA(0x2da)](),console[bA(0x2da)](a0L['gray'](bA(0x418))),console[bA(0x2da)](a0L['white']('\x20\x20'+a0ai(bA(0x345)))),console[bA(0x2da)](a0L[bA(0x438)](bA(0x368))+a0L[bA(0x42a)](bA(0x36e)+a0ai(bA(0x497)))),console[bA(0x2da)](a0L['yellow'](bA(0x3d1))+a0L[bA(0x42a)](bA(0x230)+a0ai('htpHelp'))),console[bA(0x2da)](a0L[bA(0x438)](bA(0x21e))+a0L['gray'](bA(0x2d2))+a0L[bA(0x438)](bA(0x304))+a0L[bA(0x42a)](bA(0x25b)+a0ai(bA(0x24c)))),console[bA(0x2da)](a0L[bA(0x438)](bA(0x3ec))+a0L[bA(0x42a)](bA(0x3a7)+a0ai(bA(0x4ce)))),console[bA(0x2da)](a0L[bA(0x438)](bA(0x1f3))+a0L['gray'](bA(0x230)+a0ai(bA(0x4ed)))),console[bA(0x2da)](a0L[bA(0x438)](bA(0x431))+a0L['gray'](bA(0x230)+a0ai(bA(0x2af)))),console[bA(0x2da)](a0L[bA(0x42a)](bA(0x351))),console[bA(0x2da)](a0L[bA(0x42a)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ru\x20·\x20hi\x20·\x20de\x20·\x20id\x20·\x20th\x20·\x20vi\x20·\x20tr')),console['log'](a0L['gray'](bA(0x418))),console[bA(0x2da)]();const {getConfig:X}=await import(bA(0x443)),Y=X()[bA(0x380)]||'en';'en'===Y?(console[bA(0x2da)](a0L[bA(0x42a)]('\x20\x20Questions\x20in\x20English.\x20To\x20switch\x20language\x20first:')),console['log'](a0L[bA(0x42a)]('\x20\x20lang\x20es\x20(Español)\x20·\x20lang\x20zh\x20(中文)\x20·\x20lang\x20ko\x20(한국어)\x20·\x20lang\x20ja\x20(日本語)')),console[bA(0x2da)](a0L[bA(0x42a)](bA(0x302)))):console['log'](a0L[bA(0x37b)]('\x20\x20Language:\x20'+Y)),console['log'](),console['log'](a0L[bA(0x4f0)](bA(0x21c)));const Z={...L,'startedAt':new Date()['toISOString']()};console[bA(0x2da)](),N(-0xc0a+-0x1627+-0x1*-0x2231,bA(0x427)),await q(0x4c2+0x266*0x4+-0xd92),N(-0x1f40+0x1303+0xc65*0x1,bA(0x24b)),await q(0xb53*0x3+-0xeda+-0x1257),N(0x1*0x27f+-0x5a0*0x3+0xeb1*0x1,bA(0x335)),await q(-0x2380+-0x1*-0x48a+-0xfc6*-0x2),N(-0xb2a*-0x2+0x3a*-0x57+-0x39*0xa,'Ready!'),console[bA(0x2da)](),console[bA(0x2da)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af(bA(0x29b),String(H)),a0af(bA(0x25a),bA(0x456)),U(K[0xc8d+0x15*-0x9d+-0xc*-0x7]);}),B[bb(0x1ef)]('demo-retry')[bb(0x41a)](bb(0x383))['action'](async()=>{const bF=bb;a0a8(bF(0x4b7)),E(bF(0x34f));const {getLocalizedDemoSession:F}=await import(bF(0x457)),G=a0a6();if(!G||-0x2*0x1093+0x2*0x1132+-0x2*0x9f===G['length'])return console[bF(0x2da)](),console[bF(0x2da)](a0L[bF(0x438)]('\x20\x20No\x20wrong\x20questions\x20to\x20retry.\x20Run\x20')+a0L['bold'][bF(0x2f2)](bF(0x29c))+a0L[bF(0x438)](bF(0x49f))),void console[bF(0x2da)]();const H=a0Y();if(H){if(bF(0x3a2)!==H['session'][bF(0x2ba)])return a0ab(bF(0x3fe)+H[bF(0x2e1)][bF(0x300)]+bF(0x38c)),void a0ac(bF(0x325));a0a0();}const J=V=>{const bG=bF;if(!V[bG(0x310)])return V;const W=V[bG(0x1e7)][V[bG(0x310)]],X=['A','B','C','D'][bG(0x21f)](a2=>V['options'][a2]);for(let a2=X['length']-(-0x158a+-0x1*0x1379+0xaf*0x3c);a2>0x859+0x7*0x203+-0x166e;a2--){const a3=Math[bG(0x3ba)](Math['random']()*(a2+(-0x7b6+0x1*0x33b+0x11f*0x4)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[-0x11ce+-0x1b4f+-0x1*-0x2d1d],Y['B']=X[-0xa*-0x15d+-0x523*-0x1+-0x12c4],Y['C']=X[0x1291*0x2+-0x24f2+-0x2*0x17],Y['D']=X[-0xa3*-0x3b+0xd*0x2a7+-0x2ab*0x1b];const Z=Y,a0=['A','B','C','D'][bG(0x3cb)](a4=>Z[a4]===W),a1={...V};return a1[bG(0x1e7)]=Z,a1[bG(0x310)]=a0,a1;},K=G[bF(0x21f)]((V,W)=>({...J(V),'number':W+(0x1fdc+0x372+-0x234d)})),L=F(),Q={...L,'examName':L['examName']+bF(0x3a1),'questionCount':K['length'],'startedAt':new Date()['toISOString']()};console['log'](),a0ae(bF(0x2a2)),console[bF(0x2da)](),console[bF(0x2da)](a0L[bF(0x4f0)]('\x20\x20Practicing\x20'+K[bF(0x2c3)]+bF(0x493)+(0x2a*0xa8+-0x12d*-0x1+-0x1cbc===K[bF(0x2c3)]?'':'s')+bF(0x2b3))),console[bF(0x2da)](a0L[bF(0x42a)](bF(0x492))),console[bF(0x2da)](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af('Questions',String(K[bF(0x2c3)])),a0af(bF(0x25a),'No\x20time\x20limit'),U(K[-0x21cd+-0x17*-0xd3+0xed8]);}),B['command'](bb(0x498))[bb(0x41a)](bb(0x2d3))['action'](async()=>{const bH=bb;if(a0a8(bH(0x2f1)),-0x10f7+-0x4b3+0x15aa===a0a3()[bH(0x260)])return console[bH(0x2da)](),a0ab(bH(0x48f)),console['log'](a0L[bH(0x42a)]('\x20\x20→\x20')+a0L[bH(0x30a)][bH(0x2f2)](bH(0x23c))),void console[bH(0x2da)]();const K=a0ak();if(K){const a4=K[bH(0x4aa)]['length'],a5=a4+K[bH(0x371)][bH(0x2c3)];if(a4>=0xc87*0x3+0x23b8+-0x4945||(a5>-0xb*-0x93+0x1*0x15bf+-0x1c10?a4/a5:0x1a05*-0x1+0x25d9*-0x1+0x3fde)>=0x2492*-0x1+-0x3a7*-0x5+0x6d*0x2b+0.7)return console['log'](),console[bH(0x2da)](a0L[bH(0x37b)](bH(0x33e))+a0L[bH(0x37b)](bH(0x2e4))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x49e)+K[bH(0x4f9)]['split']('T')[0x1598*0x1+-0x11f+-0x1479])),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x245)+K[bH(0x485)])),console['log'](a0L[bH(0x42a)](bH(0x215)+a4+bH(0x500))),K['failedPackages'][bH(0x2c3)]>0x1*0x24be+0x7a5+-0xb*0x409&&console[bH(0x2da)](a0L[bH(0x438)](bH(0x35d)+K['failedPackages'][bH(0x3f5)](',\x20'))),console['log'](),console['log'](a0L[bH(0x4f0)]('\x20\x20Next\x20step:\x20')+a0L[bH(0x30a)][bH(0x2f2)]('exam\x20<token>')),console[bH(0x2da)](a0L['gray'](bH(0x1f2))+a0L[bH(0x30a)][bH(0x2f2)]('back')+a0L[bH(0x42a)](bH(0x229))),void console[bH(0x2da)]();console['log'](),console['log'](a0L[bH(0x438)](bH(0x22e)+a4+'/'+a5+bH(0x2d8))),console[bH(0x2da)]();}console[bH(0x2da)](),a0ae('Exam\x20Environment\x20Setup'),console[bH(0x2da)](),console['log'](a0L[bH(0x4f0)](bH(0x2f6))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x426))),console[bH(0x2da)]();const L=(a6,a7)=>{const bI=bH,a8=process['platform'];console[bI(0x2da)](),a0aa(bI(0x285)===a6?'Python\x203\x20not\x20found.':bI(0x23f)+a7+'\x20found,\x20but\x203.10+\x20required\x20for\x20the\x20exam.'),console['log'](),console[bI(0x2da)](a0L[bI(0x30a)][bI(0x4f0)]('\x20\x20How\x20to\x20install\x20Python\x203.10+\x20(3.12\x20recommended):')),console[bI(0x2da)](),bI(0x4b5)===a8?(console[bI(0x2da)](a0L[bI(0x438)](bI(0x39a))),console['log'](a0L[bI(0x37b)](bI(0x25e))),console[bI(0x2da)](),console[bI(0x2da)](a0L[bI(0x42a)](bI(0x2eb))),console[bI(0x2da)](a0L['gray']('\x20\x20\x20\x20https://www.python.org/downloads/macos/'))):'linux'===a8?(console[bI(0x2da)](a0L[bI(0x438)](bI(0x28f))),console['log'](a0L[bI(0x37b)](bI(0x490))),console[bI(0x2da)](a0L['green'](bI(0x259))),console[bI(0x2da)](a0L[bI(0x37b)]('\x20\x20\x20\x20sudo\x20apt\x20install\x20-y\x20python3.12\x20python3.12-venv\x20python3.12-distutils')),console[bI(0x2da)](a0L[bI(0x42a)](bI(0x486))),console[bI(0x2da)](),console[bI(0x2da)](a0L[bI(0x438)](bI(0x270))),console['log'](a0L[bI(0x37b)](bI(0x22d))),console[bI(0x2da)](),console[bI(0x2da)](a0L[bI(0x438)](bI(0x329))),console['log'](a0L[bI(0x37b)](bI(0x35b)))):bI(0x264)===a8?(console['log'](a0L[bI(0x438)](bI(0x385))),console[bI(0x2da)](a0L[bI(0x37b)](bI(0x459))),console[bI(0x2da)](),console[bI(0x2da)](a0L[bI(0x42a)]('\x20\x20Or\x20download\x20installer:')),console[bI(0x2da)](a0L[bI(0x42a)]('\x20\x20\x20\x20https://www.python.org/downloads/windows/'))):console[bI(0x2da)](a0L[bI(0x42a)]('\x20\x20\x20\x20https://www.python.org/downloads/')),console[bI(0x2da)](),console[bI(0x2da)](a0L[bI(0x4f0)](bI(0x410))+a0L[bI(0x30a)][bI(0x2f2)](bI(0x2f1))),console[bI(0x2da)]();},Q=bH(0x2f8);let V='';try{const a6={};a6[bH(0x272)]='utf-8',a6[bH(0x205)]=0x1388,V=a0an(Q+bH(0x2c1),a6)['trim']()[bH(0x45a)](bH(0x23f),'');const a7=V[bH(0x3fd)]('.')['map'](Number);if(a7[0xf3f+0x134f*0x1+-0x2*0x1147]<0x24*-0x88+0x8*0x2b0+-0x25d||-0x36+-0x10c9*0x1+0x1102===a7[-0xcaa+-0x1b73+0x281d*0x1]&&a7[-0x3f9*0x1+-0x1650+0x1a4a]<0x166*0xa+-0x15d1+0x7df)return void L(bH(0x4ba),V);0x1e7a+0x1782+-0x35f9===a7[-0x1095+-0x22a6+0x333b]&&a7[-0x2*0x38b+-0x1c1*-0xb+0x2*-0x61a]<0x26ea*0x1+0x1*-0xc64+0x1a7a*-0x1?console[bH(0x2da)](a0L['green'](bH(0x479)+V)+a0L['gray'](bH(0x235))):console[bH(0x2da)](a0L['green'](bH(0x479)+V));}catch{return void L(bH(0x285));}try{const a8={};a8[bH(0x32f)]=bH(0x255),a8[bH(0x205)]=0x1388,(a0an(Q+'\x20-m\x20pip\x20--version',a8),console[bH(0x2da)](a0L[bH(0x37b)](bH(0x2c5))));}catch{console['log'](a0L[bH(0x438)](bH(0x2f9)));try{const a9={};a9[bH(0x32f)]='ignore',a9[bH(0x205)]=0x7530,(a0an(Q+bH(0x433),a9),console['log'](a0L[bH(0x37b)](bH(0x2bd))));}catch{a0aa(bH(0x29d)),console[bH(0x2da)]();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import(bH(0x449)),{execFileSync:ac}=await import(bH(0x43a)),ad=aa(),ae=ab(),af=bH(0x4c0)===process[bH(0x253)]&&!ad,ag=bH(0x4b5)===process[bH(0x253)];let ah=bH(0x202);if(af||ad)try{const {readFileSync:ak}=await import(bH(0x44f)),al=ak(bH(0x402),bH(0x403)),am=(al[bH(0x467)](/^ID="?([^"\n]+)/m)||[])[-0x5*0x4d1+-0x1*-0x185c+-0xa*0x7]||'',an=(al['match'](/^VERSION_ID="?([^"\n]+)/m)||[])[0x2383+0x865+-0x2be7]||'';'ubuntu'===am?ah=bH(0x411)+an+(ad?bH(0x1fe):''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?bH(0x1fe):''));}catch{}let ai=!(0x9d+-0x24bd+0x2421);if(ag)try{const ao={};ao[bH(0x32f)]=bH(0x255),ao['timeout']=0x7d0,(ac('which',[bH(0x46e)],ao),ai=!(-0x26fc+-0x20a4+0x47a0));}catch{ai=!(0x208c+-0x20c9+0x3e);}const aj=ae?'⚠\x20\x20EXIT\x20icoa\x20first\x20—\x20installer\x20cannot\x20run\x20inside\x20the\x20prompt':bH(0x357);return console[bH(0x2da)](a0L[bH(0x30a)][bH(0x438)](bH(0x3ca))),console['log'](a0L[bH(0x30a)]['yellow']('\x20\x20'+aj)),console[bH(0x2da)](a0L[bH(0x30a)]['yellow'](bH(0x3ca))),console[bH(0x2da)](),af||ad?(console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x1fd))+a0L[bH(0x2f2)](ah)),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x45f))),console[bH(0x2da)](),console[bH(0x2da)](a0L['bold'][bH(0x4f0)](bH(0x44c))),console[bH(0x2da)](),console[bH(0x2da)](a0L['white']('\x20\x20\x20\x201.\x20Type\x20')+a0L[bH(0x30a)]['cyan'](bH(0x1e9))+a0L[bH(0x4f0)]('\x20and\x20press\x20Enter\x20to\x20leave\x20icoa')),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x47d))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L['bold']['cyan'](bH(0x381))),console['log'](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)]('sudo\x20apt\x20install\x20-y\x20python3-pip\x20python3-venv')),console[bH(0x2da)](),console['log'](a0L[bH(0x4f0)](bH(0x48b))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)](bH(0x265))),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x42a)](bH(0x2de))+'\x20'+a0L[bH(0x30a)]['cyan']('exam\x20setup'))):ag?(console[bH(0x2da)](a0L[bH(0x4f0)]('\x20\x20Detected:\x20')+a0L[bH(0x2f2)](bH(0x496))),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x30a)][bH(0x4f0)](bH(0x44c))),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x1fb))+a0L[bH(0x30a)]['cyan'](bH(0x1e9))+a0L[bH(0x4f0)](bH(0x451))),console['log'](),ai?(console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x314))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L['bold'][bH(0x2f2)]('brew\x20install\x20python@3.12')),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x30a)][bH(0x2f2)]('brew\x20link\x20--overwrite\x20python@3.12'))):(console['log'](a0L['white']('\x20\x20\x20\x202.\x20Install\x20Homebrew\x20first\x20(we\x20did\x20not\x20find\x20')+a0L[bH(0x30a)][bH(0x438)](bH(0x46e))+a0L[bH(0x4f0)]('):')),console['log'](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)](bH(0x413))),console['log'](),console[bH(0x2da)](a0L['white'](bH(0x3e8))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)]['cyan'](bH(0x26a)))),console[bH(0x2da)](),console[bH(0x2da)](a0L['white'](bH(0x40e))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)]['cyan'](bH(0x265))),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x42a)](bH(0x2de))+'\x20'+a0L[bH(0x30a)][bH(0x2f2)](bH(0x2f1)))):ae?(console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x1fd))+a0L['cyan'](bH(0x1f7))),console['log'](),console[bH(0x2da)](a0L[bH(0x30a)][bH(0x438)](bH(0x2ec))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x3c6))),console['log'](a0L[bH(0x42a)](bH(0x2b4))),console[bH(0x2da)](a0L[bH(0x42a)]('\x20\x20far\x20more\x20smoothly\x20inside\x20WSL2\x20Ubuntu.')),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x30a)][bH(0x4f0)](bH(0x2aa))),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x1fb))+a0L[bH(0x30a)][bH(0x2f2)](bH(0x1e9))+a0L[bH(0x4f0)](bH(0x451))),console['log'](a0L['white']('\x20\x20\x20\x202.\x20In\x20an\x20Administrator\x20PowerShell,\x20run:')),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)](bH(0x39f))),console['log'](),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x4a8))),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x3c2))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L['bold'][bH(0x2f2)]('curl\x20-fsSL\x20https://deb.nodesource.com/setup_22.x\x20|\x20sudo\x20-E\x20bash\x20-')),console[bH(0x2da)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x30a)][bH(0x2f2)]('sudo\x20apt\x20install\x20-y\x20nodejs\x20python3-pip\x20python3-venv')),console['log'](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)](bH(0x3eb))),console[bH(0x2da)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x30a)]['cyan'](bH(0x265))),console['log'](),console['log'](a0L[bH(0x42a)](bH(0x336))),console['log'](),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x1fb))+a0L[bH(0x30a)]['cyan'](bH(0x1e9))+a0L[bH(0x4f0)](bH(0x451))),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x224))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)]('winget\x20install\x20--id\x20Python.Python.3.12\x20-e')),console[bH(0x2da)](),console['log'](a0L[bH(0x42a)]('\x20\x20\x20\x20\x20\x20\x20(Or\x20download\x20from\x20python.org\x20and\x20CHECK\x20both\x20\x22Add\x20Python\x20to')),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x3b6))),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x3ac))),console[bH(0x2da)](),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)](bH(0x265))),console[bH(0x2da)](bH(0x36e)+a0L[bH(0x42a)]('icoa>')+'\x20'+a0L[bH(0x30a)][bH(0x2f2)](bH(0x2f1)))):(console[bH(0x2da)](a0L['white'](bH(0x44a))+a0L[bH(0x2f2)](process[bH(0x253)])+a0L[bH(0x4f0)](')')),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x42a)]('\x20\x20Reinstall\x20Python\x203.12\x20with\x20pip\x20bundled,\x20then\x20retry:')),console['log'](bH(0x36e)+a0L[bH(0x30a)][bH(0x2f2)](bH(0x265))),console[bH(0x2da)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bH(0x42a)](bH(0x2de))+'\x20'+a0L['bold'][bH(0x2f2)](bH(0x2f1)))),console['log'](),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x256))),void console[bH(0x2da)]();}}const W={};W[bH(0x2e2)]=bH(0x1eb),W['pycryptodome']=bH(0x26c),W[bH(0x1ea)]='z3',W[bH(0x2e5)]=bH(0x4fd),W[bH(0x3d4)]=bH(0x419),W[bH(0x3c8)]='ropgadget';const X=['pwntools',bH(0x241),bH(0x4ca),bH(0x2e2),bH(0x455),bH(0x2e5),'scapy','sympy','z3-solver',bH(0x3be),bH(0x3c8),bH(0x375),bH(0x3b1)],Y=W;console[bH(0x2da)](),console[bH(0x2da)](a0L['white'](bH(0x4ef)+X['length']+bH(0x48d))),console[bH(0x2da)]();let Z='';try{const ap={};ap[bH(0x272)]='utf-8',ap[bH(0x205)]=0x2710,a0an(Q+bH(0x450),ap);}catch(aq){const ar=String(aq?.[bH(0x448)]||aq?.[bH(0x3e6)]||aq?.['message']||'');/externally-managed-environment|break-system-packages/i[bH(0x499)](ar)&&(Z='--user\x20--break-system-packages',console[bH(0x2da)](a0L[bH(0x438)](bH(0x20f))),console['log']());}const a0=V[bH(0x3fd)]('.')['map'](Number);-0x11ab+-0xe10+0x1fbe*0x1===a0[0x34*0xb2+-0x1709+-0xd1f]&&a0[0x51e*0x4+0x7a*-0x21+-0x4bd*0x1]>=-0x1*0x1d71+-0x1e13+0x187*0x27&&(console[bH(0x2da)](a0L[bH(0x438)](bH(0x39b)+V+bH(0x1e4))),console[bH(0x2da)](a0L[bH(0x42a)]('\x20\x20\x20\x20Some\x20packages\x20(pwntools,\x20scapy)\x20may\x20not\x20have\x20wheels\x20yet\x20for\x203.13.')),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x25d))),'linux'===process[bH(0x253)]&&(console['log'](a0L[bH(0x37b)](bH(0x394))),console[bH(0x2da)](a0L[bH(0x37b)](bH(0x4f6)))),console['log']());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+'\x20-m\x20pip\x20install\x20\x22'+as+'\x22\x20'+Z+bH(0x347),{'encoding':bH(0x403),'timeout':0x2bf20,'stdio':bH(0x34c)}),a0an(Q+bH(0x46c)+(Y[as]||as)+'\x22',{'stdio':bH(0x255),'timeout':0x2710});let at='';try{const au=a0an(Q+'\x20-m\x20pip\x20show\x20\x22'+as+'\x22\x202>/dev/null',{'encoding':'utf-8','timeout':0x1388})['match'](/^Version:\s*(.+)$/m);au&&(at=au[-0x1*0xcfb+0x11e0+-0x4e4][bH(0x21d)]());}catch{}console[bH(0x2da)](a0L[bH(0x37b)](bH(0x33e)+as)+(at?a0L[bH(0x42a)]('\x20('+at+')'):'')),a1[bH(0x247)](at?as+'=='+at:as);}catch(av){const aw=String(av?.[bH(0x448)]||av?.[bH(0x3e6)]||av?.[bH(0x475)]||'')[bH(0x2db)](-(-0xb67*-0x1+-0x2648+0x3*0x97b)),ax=aw[bH(0x3fd)]('\x0a')['filter'](ay=>ay[bH(0x21d)]())[bH(0x2db)](-(-0xb11+-0x22ab+0x2dbe))[bH(0x3f5)](bH(0x3bd))[bH(0x2db)](-0x17a8+0x4*-0x1c9+0x1ecc*0x1,0x77e+0x76d+0x9*-0x19b);console['log'](a0L[bH(0x233)](bH(0x460)+as)+a0L[bH(0x42a)]('\x20\x20'+ax)),a2[bH(0x247)]({'pkg':as,'error':ax}),a3||(a3=aw);}-0x26b6+0x272+0xd3*0x2c===a1['length']&&a3&&(console[bH(0x2da)](),console[bH(0x2da)](a0L['yellow'](bH(0x30b))),console[bH(0x2da)](a0L[bH(0x42a)]('\x20\x20'+a3[bH(0x3fd)]('\x0a')[bH(0x2db)](-(-0x1cc7+-0x235a+0x4027))[bH(0x3f5)](bH(0x2fd))))),a0al({'completedAt':new Date()[bH(0x4e1)](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2[bH(0x21f)](ay=>ay[bH(0x393)])}),console[bH(0x2da)](),-0x3a7*0x2+-0x12b*-0x1+-0x1*-0x623===a2[bH(0x2c3)]?a0a9(bH(0x4f4)+X[bH(0x2c3)]+bH(0x3bb)):-0xe9e*0x1+-0x1332+0x8*0x43a===a1[bH(0x2c3)]?(a0aa(bH(0x4fb)+X[bH(0x2c3)]+bH(0x3bb)),console[bH(0x2da)](),console['log'](a0L[bH(0x438)]('\x20\x20Troubleshooting:')),0x10df*0x2+0x7*0x503+-0x44d0===a0[0x1316*0x2+-0x8*-0x199+-0x32f4]&&a0[0x1*-0xbc3+-0x247f+0x3043]>=0x258*0x6+-0xdf6+-0xd?(console[bH(0x2da)](a0L[bH(0x42a)](bH(0x2ab))),console[bH(0x2da)](a0L['gray'](bH(0x3d8)))):(console[bH(0x2da)](a0L[bH(0x42a)](bH(0x346))),console[bH(0x2da)](a0L[bH(0x42a)]('\x20\x20\x20\x20•\x20Try:\x20')+a0L['cyan'](Q+bH(0x250))+a0L[bH(0x42a)]('\x20—\x20see\x20full\x20error')),console['log'](a0L[bH(0x42a)](bH(0x2a6)))),console['log'](),console[bH(0x2da)](a0L[bH(0x4f0)]('\x20\x20Rerun\x20when\x20fixed:\x20')+a0L[bH(0x30a)]['cyan'](bH(0x2f1)))):a0ab(a1[bH(0x2c3)]+'/'+X[bH(0x2c3)]+bH(0x4ec)+a2[bH(0x2c3)]+bH(0x3b3)+a2[bH(0x21f)](ay=>ay['pkg'])[bH(0x3f5)](',\x20')),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x2f2)](bH(0x452))),console['log'](a0L[bH(0x30a)][bH(0x4f0)](bH(0x463))),console['log'](a0L[bH(0x2f2)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bH(0x2da)](),console[bH(0x2da)](a0L[bH(0x30a)][bH(0x438)](bH(0x495))+a0L[bH(0x42a)](bH(0x2b0))),console[bH(0x2da)](a0L[bH(0x4f0)](bH(0x1e8))),console[bH(0x2da)](a0L[bH(0x37b)](bH(0x3a9))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x352))),console['log'](),console[bH(0x2da)](a0L['bold']['yellow'](bH(0x3f4))+a0L['gray'](bH(0x370))),console[bH(0x2da)](a0L[bH(0x4f0)]('\x20\x20Start\x20a\x20Python\x20session,\x20type\x20commands\x20one\x20by\x20one:')),console[bH(0x2da)](a0L[bH(0x37b)](bH(0x344))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x4d9))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x288))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x33b))),console['log'](a0L[bH(0x42a)](bH(0x4ff))),console['log'](a0L['gray'](bH(0x2a1))),console[bH(0x2da)](),console[bH(0x2da)](a0L['bold'][bH(0x438)](bH(0x3e3))+a0L['gray'](bH(0x412))),console['log'](a0L[bH(0x4f0)](bH(0x1ee))),console['log'](a0L[bH(0x37b)](bH(0x416))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x473))),console[bH(0x2da)](a0L['gray'](bH(0x4e2))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x22a))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x373))),console[bH(0x2da)](a0L['green'](bH(0x3fb))),console[bH(0x2da)](a0L[bH(0x37b)](bH(0x3aa))),console[bH(0x2da)](),console['log'](a0L['bold'][bH(0x438)](bH(0x219))),console[bH(0x2da)](a0L['white'](bH(0x4ae))+a0L[bH(0x30a)]['cyan'](bH(0x24d))+a0L[bH(0x4f0)](bH(0x3fc))),console['log'](a0L['gray'](bH(0x204))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x476))),console[bH(0x2da)](a0L[bH(0x42a)](bH(0x4dc))),console[bH(0x2da)](a0L[bH(0x2f2)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bH(0x2da)](),console['log'](a0L[bH(0x4f0)]('\x20\x20Next\x20step:\x20')+a0L[bH(0x30a)][bH(0x2f2)](bH(0x43d))),console[bH(0x2da)](a0L[bH(0x42a)]('\x20\x20Or\x20type\x20')+a0L[bH(0x30a)][bH(0x2f2)](bH(0x481))+a0L['gray'](bH(0x229))),console[bH(0x2da)]();}),B[bb(0x2ef)](()=>{const bJ=bb;a0a8(bJ(0x2e8));const F=a0Y();if(F){a0ae(bJ(0x362)+F['session'][bJ(0x300)]),O();const J=Object[bJ(0x4d0)](F[bJ(0x397)])['length'];return a0af(bJ(0x276),J+'/'+F['session'][bJ(0x3f7)]+'\x20answered'),console['log'](),void console[bJ(0x2da)](a0L['gray'](bJ(0x4a5)));}const G=a0a3(),H=a0ak();console[bJ(0x2da)](),a0ae(bJ(0x4a6)),console['log'](),-0x91f+0xa24+-0x3*0x57===G[bJ(0x260)]?(console[bJ(0x2da)](a0L[bJ(0x438)](bJ(0x40c))+a0L[bJ(0x438)](bJ(0x271))),console[bJ(0x2da)](a0L[bJ(0x42a)]('\x20\x20\x20\x20→\x20')+a0L['bold'][bJ(0x2f2)](bJ(0x23c)))):(console['log'](a0L[bJ(0x37b)](bJ(0x3d6))+a0L[bJ(0x37b)]('Demo\x20completed\x20('+G['attempts']+bJ(0x469)+(-0x1*0x44f+-0x1d88+0x5a4*0x6!==G[bJ(0x260)]?'s':'')+')')),H?(console['log'](a0L['green'](bJ(0x3d6))+a0L[bJ(0x37b)](bJ(0x4a3))),console[bJ(0x2da)](a0L[bJ(0x438)](bJ(0x40c))+a0L[bJ(0x438)](bJ(0x291))),console[bJ(0x2da)](a0L[bJ(0x42a)](bJ(0x2d5))+a0L['bold']['cyan'](bJ(0x43d)))):(console['log'](a0L[bJ(0x438)](bJ(0x40c))+a0L['yellow'](bJ(0x3a4))),console[bJ(0x2da)](a0L[bJ(0x42a)](bJ(0x2d5))+a0L[bJ(0x30a)][bJ(0x2f2)](bJ(0x2f1))))),console[bJ(0x2da)]();});}
|
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
|
|
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"].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)})}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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;
|