From 2d1003fdca65354cb436b70c5d261240c8b87116 Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 23 Feb 2026 00:12:20 +0000 Subject: [PATCH] Enrich Battle of Thermopylae: add Greek force composition, Molon Labe, Anopaia path, Immortals, archaeology, later battles, two new sources --- .automate/.improve-state.tsv | 1 + .automate/continuous-improve.log | 10 ++++ .automate/improve-history.log | 3 ++ .factbase/factbase.db-shm | Bin 0 -> 32768 bytes .factbase/factbase.db-wal | Bin 0 -> 70072 bytes battles/battle-of-thermopylae.md | 82 ++++++++---------------------- logs/mcp-puppeteer-2026-02-23.log | 2 + 7 files changed, 37 insertions(+), 61 deletions(-) create mode 100644 .factbase/factbase.db-shm create mode 100644 .factbase/factbase.db-wal diff --git a/.automate/.improve-state.tsv b/.automate/.improve-state.tsv index a37f4ae..36b766b 100644 --- a/.automate/.improve-state.tsv +++ b/.automate/.improve-state.tsv @@ -20,3 +20,4 @@ 31de03 1771805202 445d5a 1771805308 450ee0 1771805399 +459036 1771805486 diff --git a/.automate/continuous-improve.log b/.automate/continuous-improve.log index 654c19d..d55d2cf 100644 --- a/.automate/continuous-improve.log +++ b/.automate/continuous-improve.log @@ -3603,3 +3603,13 @@ To https://gitea.home.everyonce.com/daniel/factbase-ancient-history.git [?25h status: UPDATED | Early Christianity | changes: removed duplicate heading; fixed malformed @t[4 BCE..30] to @t[~4 BCE..~30 CE]; added temporal tags to 8 previously untagged facts (origin, NT writing, Paul's journeys, persecutions, christological debates, canon formation, monasticism); enriched with Council of Chalcedon (451 CE), Chalcedonian Schism, and Donatist controversy; added [^3] citation (World History Encyclopedia); removed resolved review queue section; filed bug #93 for apply_review_answers returning no-op on 27 answered questions +[main 98e8d9c] improve: Early Christianity + 5 files changed, 167 insertions(+) + delete mode 100644 .factbase/factbase.db-shm + delete mode 100644 .factbase/factbase.db-wal +[2026-02-23 00:11:26] ✅ Committed: improve: Early Christianity +[2026-02-23 00:11:26] Done (79s) — UPDATED +[2026-02-23 00:11:31] [15/66] Next up... +[2026-02-23 00:11:31] ━━━ [Battle of Thermopylae] (49cfd2) reviews=0 garbage=0 ━━━ +[2026-02-23 00:11:31] 🧹 Bash cleanup applied +[2026-02-23 00:11:31] 🔍 Enrichment + review pass diff --git a/.automate/improve-history.log b/.automate/improve-history.log index 538d73f..962da08 100644 --- a/.automate/improve-history.log +++ b/.automate/improve-history.log @@ -64,3 +64,6 @@ [2026-02-23T00:09:59+00:00] 450ee0 | Battle of Actium status: UPDATED | Battle of Actium | changes: Fixed duplicate title heading; expanded Key Facts with Agrippa's full name (Marcus Vipsanius Agrippa); added Background section covering Second Triumvirate context, Octavian's propaganda strategy, and Cleopatra's 20,000-talent contribution; enriched The Battle section with Agrippa's preliminary seizure of Methone and Leucas, ship type contrast (Liburnians vs. quinqueremes), and the harpax grappling weapon; updated Aftermath with specific death dates (Antony 1 Aug 30 BCE, Cleopatra 30 Aug 30 BCE), Caesarion's execution, and fate of Cleopatra's children; added [^3] Cassius Dio footnote (previously cited in review answers but absent from document) duration: 83s +[2026-02-23T00:11:26+00:00] 459036 | Early Christianity + status: UPDATED | Early Christianity | changes: removed duplicate heading; fixed malformed @t[4 BCE..30] to @t[~4 BCE..~30 CE]; added temporal tags to 8 previously untagged facts (origin, NT writing, Paul's journeys, persecutions, christological debates, canon formation, monasticism); enriched with Council of Chalcedon (451 CE), Chalcedonian Schism, and Donatist controversy; added [^3] citation (World History Encyclopedia); removed resolved review queue section; filed bug #93 for apply_review_answers returning no-op on 27 answered questions + duration: 79s diff --git a/.factbase/factbase.db-shm b/.factbase/factbase.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..939576e8f7bcb5d169c946e28a3d0f1e9c842e4d GIT binary patch literal 32768 zcmeI*ElWf}6b9h&`&(BK+2ltSyZ#dGTLckI8q8ug3xdIa;SUg#m^5k>6vSlGGp3C$ ztQThXIq=?v*7PXS;jP=ZBB4 zAII$;-_L93%Iki2)$gBOkJvk{L{=kfk@d*NXiD3Wi^xsnHgX?%i0qH0v=n_VM@}NM z@xCHJfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNYuAfGy+2oNApy1-=V1L&Us0RjXn7MQMhHlqAg8wfNN8u|1l?Y7qI7eIpq5dS0@83`a zniiO8dPDmWAduz@Gl(mkRAmD0g(AAtBmn{h2$Uf(S4NwNynD6a@`6Kr;nH*U&W_nx%&6KG5_1 z|9vkcdC5%Z;tV}UVJqUkyZ-mT|NY-xzW?5_H*~kE?`w@!Rq-nN{Lr8O$v;W|_S@I* z{>C?d`t9le@fYAFZT3I=+=-UJt=zx5{QOL|WLtCj!cwYa4I#BGR~@k|#GS0F3cXoX zrG6Ri1pb=vr{d55P<|o*;TgY^RsDD0(GVz^|AnHon*SyI_1GWBek%Ak;eQtVbZ{#0 z2Z0BHi2j56bJ_#-pJ+YGFDoVatkNM3Nq<=NXZZIm{~T`C8!q=rRoUf?eXn>Yhw9%- zt(Nlqe9K;%wKJLQ^8Bsz!s_y3@z%iOKFv;lL!jaEWyv{KO3mi%Og_E3WG|OCk``~> zwbP}1!OJ3<`~XoJj$N9bx-xBDnL0W%ZFPQt6rEj#{8~0+UA%Pq+|;EPt+UfF_KI?g z*3p>@N3HW0u2|=<&dhY%je5iS@-~&Wzbe^vZG)zrNZr?Nc!W0*umYE2t zdw(v7h<@cypT9DFa{AI{CRkHfuUt5N9yy(xK7XYb9J(@n{fc$<{ORYfPFI-H%guWW zpQa^Sue!-X{;9^HCsx0ssM_Jon4Q!?mf6)%-*+sW^VBQ zZYr0}WJ~K?<+N9@XRBwoqbC9l&pjtO9nY*kaAW{x+gO89!YRD5Tms91k=M4F%o3&#Ku|D&f$N!tgDw#pFe3qAtbxP)?**PPi$5lPeiKdJ?q5Gg{dny29krrH@C#< zw#`68U$^8)tUI%rd$)2~(wU`HVcsrPsAA8!NBQaV$EUAbkH@txoVT{d?-H4yhj!b> z(~BwQR}1M4{maFe&nQO3eM&JRfQng;1sWzgBqvd+jZabW)>1x`oy+3Q;3@l}@kBY5 zpi1P;r4_s8vN^jFbSqWro{I(=#!#N}l=3om&Ms{#F7_V9d2zRvmMz}${JUR{=nX?1 z(&|%+DP>C=FR)_tJqqENTZ>???wet~VW2}=e_HPAE0xwMM&2uPMBJJ;n0c!N-|m+~ zoc-EUvM<;xm2O`Qzen~IaclPELrq@p2?QFtyQR0xtzD2s$!}00)IqNR@q*qOWC-3A(?DZWnr`dT^oi+9)8~&(U#@iFVi%bEJ~>n>{_GsK zkllSCs5e~beqRMFRM5tVg`Y!j&ZvQgjt=SF`7JG78H*IPr?zkLDNXxQAys_eh@zwNkmuP#=XWnI^~rW(QCo&2(ZK21xje4XHYD%KEV=)FaQWO& zU)IqJ7iOlX&RfT)PfT5%xniA|nz=mvWC3gWLgrRFzY4Pb5#1K?p}v+b<(OGQ9pjAPHiK+2u8TuT^Q>_v;G2I@;Wo$gh~iEFx=jZ`x9s z?g3qInC^JLzEHe1=qsvXU_kp|Nh&?3sJnAgpkeoJ=}n;?HMn?wGty@v+2 z?sS1BH{Ef)RBHs~lBljZ9kxVQY{hR1tME^MY`_bQw{z~|3 zkw1$3PUOpxFGPMW@{^H&8u@h8h^mqQ96b{~5*>{lH|mY3A;d?3ay|$i>Ks z$ic{9v@u$UE<|66UWxt7*k@wjANy$R-Png>cVoHOZ0x%6&y622K5l%M@yNJu{NLfv zhd&$s@$e6aKN0?L_?_^>$V;)GHRg<$jZ4NU<7do=X32cjylu{yN6m4w-`r(3o8K_M zX8xA>tLEp!rSPla+u>{Bnefr~`bRw6{%mt#n*)De9QgL`@Awctl3Mk#YgJX+0X2z_ zqDxX!CV!qPgq+GL3%?^%!orBW)rC?Z^wwbl96Vu_-RN#WU40soP+ z$hcckOPH=vsj3z@BS-99E<0}*u=ZG_6jQRgTJYlTktHr@R*I%mCA_T)`IUuinxfSx z8WuGQ>%@#(p%z)P$raysLDm*%-cE7mWfjY!O!RI!lwVp(VX?HprJPiP%f&375KO#I zNNNTZq*Nnvz)ok2c+1k$1y#k+o1MLiI)~{A`PM1nrTjAJ@tLxw1cp@O8hDGu!-|~CF^ToE zmL3});zn2GVBQAxsZy51Vv1Ct*e}Y#LbgQg7W$Bf>xTu#TU{JIgrK5Hs6iCbBOwSEP$h%{y%4&{NoR`%+#EMF) z4c9ibMZ>WjDr6DmoS9S9RZsj<#2Bhxm#o_){-Ux$IhdVa#xkPdU5^&T@=Q8~1yrKp zE~=l)WIc(!BL`LsSkx2Zkx>H$%n~v}-WDbB7aeLKa;-&{7i^_bk|JhZ&t8zD)yYzx z%6?s!HJVV#Wl2XDv(XmFdPk431IeNOqVH|6WXaM`Bi573u-tN3Pr-fa5NH()|laVIAlbtjp}Hy#(-Zu9x)=3 zgn?07)I_9s(2T{Ru|y;mGGf7C*oZ`p8Y7yB7}0QDC|nbYgbdR(3?ot}rE+h+VDNxaxgG`C-pW-4`~jD($0ix$IXD*CM+>mHINf zK$Uu#U7$+6#4b>!KF==ff~jZOg>kex$u1eL^IRI@X`}2yywFj0AztV%yC~lGvuhVz z_c*Nq*DAYWa245wk-2(@UErj;%r07OjYl*%S3($ zIX~1*n`al*&1M(1R+(MYTK^NfsFs2oNE1ZRKtZU7 zU7#Sek6o0umtCMBlw=nu2o11{xI4%$qTsXa+6}+bcaxNW2igsGQA_8TmIj1gWEYij zo!f}0dVyU;)irhzRae*{Tzz@ZS_ysMbz(N7o;wT#zYM4SwD){IkE{`?a%6LTK&JRzkTl#3sSS7V}zF(>r)v{6ZxPXN4%C_1_{t zNL}b2yC8L;HFi-yUuGA@%dv}U)WZY?%y+87zvAcjG4_KLhhAhCc7ZN28IyiT#Jz@5H_w`=4V!8~YcrPsYC6m@-C;y+$kE zPO8~!c9=2auZ=%7{?Pbp=yRc;3VkN@$t(A@)LSCN>otiS03e#r#F{Uzwkw^$7DF^RAgSZ{Ag{s)zHgy}WuNp-P=_W6cbpDO%z=?uC{X z?9@>&5!Psqc+O%ef5=d!R-_SI`^AG^f?}$$Jn6ZyZkQj}RVgYdGLs-DXYD9wAtzHS zD`C$wl?-~GgM)**=NuSMs+?Aq18OKPCFg2GYN%EM)Ui+22c0qpH*>;W1S#=Dl(k^UX}IDofG0Dp`_}Of9EM`5YGS!jV6$>gRgJk}Ii#ipOJ8 zOvcYaDM~*hQiOi`r7-<4`vOVYAQmhL$egtlhFSm+hbQem~!6H}#TNL6aKm@lk=XcpX|LYQl%QL_Z2d9+wPN37#IWQrnU9T+1b z)+MvqtZ2$QG+I_?a_W+)TrMwIS|?aqFUQ)eS|yWyV)v`6B?CFGs&ED*L-s@wH1>F+ zT3YS$+8!&&OT|524D9{x@|*wwbb68RWGyc;F=Y+BL+6u|ORI%e&!3jBi_M;Ywz$y9 zbjryEJ6ovtyyxs3Bp-Z`llFWyQx=znK-N=_T`tb$qnxfDA~U}%I8dL=rPc)p>XYcy zq7mvLlO-WLb;)(x7Z4ld)y8FGrm9|INlVD)L{(Udqj!tg8p_5RS0f9Xmdw~o`7{=$ zn>{4};X@XsMkZNHrWZnyYI)Y?a3#5xDv-1xTuGJ| z@;$yYl@`sapu*{_y@#7e;U0K*mzQ>>kYDQb0*FjoG_H~)C_$#(i?x(W+pS)=B4$ty_~Yq*8N`eC3@)f z9!QK*J?5`hHM3G$!LoaM!c2gHMgr!8XuQakKO#gF#nP9XJ$Qi+y~7s8h>S~=5e#t zTrs|C{1JBFJB_axe`EZrdC?4;-)o*RIYT|t9U_KFQf|n*6ET}u$NNV<)W2e=6X@QrF^kuLAztyCIc8Ez&dGAcbE4~0D-cy z%hr;&Wo4m%&~8dUII+_@3*7bz#4m>XtmD|To3sY4Dc(l4yc#25#@h~?^my27O|7ir z<LNH&eQ$13}ylaI00>he=| z_gXWn>FjFJnzE@Ha9m8S=5qMONXR;wBA+X~mrJf|(1dxb3mmnHnoD*OyJnNtac_Io zCn!s5*W=N;b>o$Ro6M1o=BKpOD#c0b;rM7THp~xfNlX4CN%BX`ib$;Fpe8fKWoyk& zEn` zBrBD0u-1fYY9=1na5$l z3Q@$C!qd>0UiNq$uaF#3u1nazhuzbYa$TVh>5BFSgTD5mkBl*=tVP~`$4EzUaRL6 z_fz!V9&4z7AUOse4h)PT-XP+gM4gIYUTFbzPW4+oLc4ABA#mj+qng3qYhwSj2U;wd z9O(YGg9>!#hx2p1ufJ7y3cn|G=Trr@u~mO=@qeZc-H2s%4ULUkz8ZxnZGu;L4Za}& zYqTB9EqD#M2-@^TOQSzA-T`tb1cX&4anzHnX#sSA7N9+3R+#9D`8iDStTf>=EGY1l zRRY?B`T}plLjb+~a4s%mr)k(hq9V$u=+2cqHtPGWBc&V9p&~*cpH!g}z6uqU-H5(f zm2PGV3?wkKu%;QW(Q94dE%GNd>9nV41yQIdP#mmPEBt{tZdRyUc_CC{ug54T)e}Bw z!|JN!@KlZIhvFsVb&hA~OTl!Kd4}b%dc)p1UYfl9PL`6^3u4b5ud&TQ2aEUrA+rn# z5#0*C$Jc`N)&=r_nr{{z$SQiE1at(#lT_lR8HH0xUeTzO9%(%A0{1|AhkN)U#D6#_ z^poIi(L+FZyy}HM^1vpZTtUAxB!yoYmmxhqf&y6`#|**;>99QA-3&4%>wYDW#SAIkJSV=w;0a1KG(L!~Gl}l(_XZf-5vYUN42?+&)fQ5L>h{d}Se+gr zf#cAiebxoh6F{NBA%U3{y}-~5rsE``h&+ZNi>?9S(Yn8FpG@lO z-0(=!wv$`cm+*U1ePKYfy7ZXp^8KEzwm1e<*1*QdkGKQ%z&I^ynO@Nt*3Dyd!=pO1 zflyi((xud0(*9k9Un_X}V71uoz2B&LkrUpefIQ)W0Y6+*FmTbD!s~lkyeE$3>^v4K z3MuQ_>C?R^j1W(pSTu+~l!CrbXYXcn=xPNqELs5tUeqd z<}IMzsP-h2l~Lenp0Q$Zn(DPMJ45w6POW)e8*d(rgr8Jk6}He&@I7ma@-{27srf>7 zWd#FHs)e5mG}zM^g``gm`FyRlIr%eGn4dcsI+wF;3>+U0CzBXLWmk#^yaG3c4Gtxl zGz9CSVIkBuj}58mq0aD9!wLfp5$HXJwE~Q&A!cG4 zkb+5NK9>hD4smn&^kOPQ1D1+hAm8Gh)l{Z{sKklA@d)D1+exnMLZ0({uisu*IWBBfO2{ZHC?m>JHxmOW-!99=fY4`d= zOm@|4?oQB5d@edG`qX|CtMvhj!K7h3^{o27K`UZ`>|?f1kS_-~Xq3`Pa!a z)aGK1C^X^r{#!0Q<=(_&t=qwm>RlIjsnD2vizBPI-7!4YxqwquslV^OgxqyE4fn6O zufR)pEzYyr#fm_v-rWH|`m3x9{4Zbo*e5>sr)N*aj8fIn*qes=|CqmFT*Th_PZ=l8 ze{0?_zG!~L{896V%wI4s#eO9AFU<$B?=?Pyh(BQ-F~@+y-yQoI(=>JSPqAnJb>rU~ zzZv_w@p-e=Sd4wq_>}Q6<2z&DWjruUW7c@l%wnIv*Vth+n*YJjV}Bj{PsXFzr_FcG z(`F&|o5p`K4#hqn`}gMW8Q)11Zhy8pu+4#O4s3H^n*-Y%*yg}C2evt|&4FzW{CCO$ z-8rCCRad>cLw9S*@fPN3_2hV`6O%M@ynR`B_p@V6ch7K~qq^J2J`vr$L5@cwy4yvL zHy`M34>{gx)!k8cyso>m+bHx!a=dlXsY0~t z?0!jiUtmW{cW21)=9KPUWyiAaUg4lR2b0Rnux(a-a#CL9B=8m zd!8M0x_gct!@7Hn<1`unrYe9qx_g$M-MsF;M2+UIXyp6N+PIA;i-915$w?KbC zJ5bpqJ6=ZiW}}zU6vuv5cRR`Pc2IW@ljFPK^BnttH3!+D=8!e3^HG(C+FoGqOS=0CIo{c?yZhMZ0VG?ms@C0?>Cr_Ece4LJ-EAdD`GW55Cdb>i zb$1s#&`xdScqgX2d)TK|cRSdD1p!rexcT4d)!htvJ__mXHI9!wC&=;cs3s|Nm>^>B zqn_oTFEIU)tDjK*;!AJ9aHUE%KUZab)BGHaXk+S!Dc0ZD2OzmB2R1|~GqJzQlq5-( zBn5V~Fmr?ruOtN|2?lf_GHR3}5-@R6Op;*oi>OElvpOKRT zok(L}kQHp;lhf>wKY8{Y#Gyz(1M?L_MXOk^^n%lZMdb)ZW&7EyKckXDZ zY4~J^u*p%YK8sbQ*zX{^E6>2+-#q7!;)VW^1CQC?1?$z=Y7(uh!HOiM@2QAz^<%_a3D%{7)=VfV3xNnwcWNBQu z*UD#PX@cG5n(`?{oxy!HSqxLe4phYzwO+Qj#>@E29 zDDA%PXY}ZS`@rYdo3-w`BoCt=)u5)W91E5$SuQQOGUQ;;=__B8^s(gJ;P9L)Lt+$3 z8TSJBbD)%B|EL^Dr)lXq@WY;eJy2OEMbST_Zn3}u1lI~+%) z6;pn`?_LAjWWkj>14E@Jy}rVtDmrWRFn0yt1RqPg2NWwn43!0x2x^l0VFnxYhJQUBMN zvylbZ7}K&jY<8KAW0Z@mqXBFx0r?&$M#*FX?aG!UJ@-;m?1a1b#L%R(-nJih>w=7Z zidG=2e!;9!Y!7cq@8gwFo0^&Y^D9nS)YN33cGgBw`DX%YmZhb9X)d$2W}p zxf-%_$z5TNf!aPr#s0Qn`duOQ5N6R+(j?r9a+f*|5#Ckqex$(qop+%?IQ7v3-Ljek z)7A zHf`>_bl`!B7nN{qUk?2us zyf#1zn()o>tv%P;r^s0Z5#Re+h%^AKvS}8v8cBLpq(22+LO^UTW0l%ZlUKcDE!<7z zWud~Z5d##Ba4w>CFF0%E^L#b}tL@&}qfQO=FxC}ll8YR!@fId$e*kLt3WcMw&w#8K zIyNz^+j{bCwO3XE{^YcIA`QoQ2&xas0qj4O@Fyy`hXgAmN~Q`MBu2UpoeH*cjdv-^ zt0abK({pH3)DRTjWck$YWtXVR@R(vIlQtvK?Ar$m|3aE|4+8J8rqMxu;jWO0Io8!$ zkpM`pybF!cvvs7P1hAWy$`(O3ku^|0hj*Sh??DuCq+8b4=@0=FNzK_K1(xvwTO}5u z$TjiW$fGkL^brn|$OHHW$Sm65YouLNbsTFzL~&)QpdH-NB)l!JNz(34BNPhg!N86{ z4Ce`48*FV2G_?e-H+Q!WUFvUc4m30cCL3G#AC^^YLwnhVggya(!LfFn;!vWKMj)ZY znEm@Ihf#2NP*PS>_t?2d#=#pN&(V;Zs*_TXc*UNcL5E6|F+8^t==Rtb(@EMa~j2OVQ9WS@adEUI&#Gq#;E+ zhPkR%GoU(3S}mVfapZ)^WJ=K(h$&b)vX9;i_8LDq7d1LU0)Q~?S(c-5d-9NdO+y4 z&24N&pkZWXA%)I_a!rNUcNE9GgnB}4ZO&xtwJXjrh^`IR23wn&0&Vpn8tV%!+K=4q zP1?%phPEm<&}e}+%LNZq(Ptn6G>YBbRaWq}3so$KxY&AyrKk%L<{r;aR&eSnS96?t zfp@40dyG=OC5=pyL_6pBRjU9TBg(E}jVGbv7*`xU<3yZ0PTDz%!%qqrzab60k8OBE z>GNO!{p$hg7)b%}gG;*2I+27F9E>&jZQ9*`bH$<_W_2SX*2NOF zwJkMmvD#2P9#13^O=eBPGL4#+MzgNIrrC^z6Q+?!n2A0!TpKqcMj}#O-CAp!HIc@; zfdopy(Jb-C>gsrXVqZK`TU{4M>UcO_ldLvt+l;W8sE);UME15~VLLT2J255Zp4UMD+GZRCY3=YfH-e4UZ=`;CU%P7nky| z0ic6J1?F4eMG29%C;(VMH8JYyEZ+VAS^~?K0b24j!3-~xWnjum&4X8j+Xq|@mK}5^ zn{^TAVPTXlEHn`Hx?Q*jEZ1otrbTg!p0$P-HMcRlj1{y524)h=ak1NSHL-IDWWCbK!U7e=@S7!iaCxCKf9Dui~M~7#lGBDD&WS0td zA8x`RFd`YOM@S{0dqs;H-AB8AfF|4^21xMX@ljw}het<*3>H_he1#M8GBBno zkS)q-W?3$^x{T2qpyw5N@`a<t80PzP5V1Fk#HuMx@n9Y3%BK?p}V#up4d~wFrfY=(8M|9*)6A zdKu_%_89CP7))AIFvp^qIkHOuO3CtB6xHct&TOVY05M@ASOn>G#4#@lkqO5fRx7wd zYYV_;gLg|9_@Z`MKx>&decX{2!LNHOxjb7HY^pY9gP1b{kDUiR7IVD~?ZL*6Y@5Xf zJQ(=e2R5k|$Vj2M*TOVp0c}kz^w6Rh$54IF&311 zS0=y4S`m~I=)Ch>KKD!CxeNt7Yj*;&-HFaE^ah*GfJ;lA-98g9EDIt?zi^goc|e>o zMrI+hsTvjToL*YOqyomDfPphqzmF_Imgl>n@^Lu?(=&@n-6E$IvdUH*UV|Nlrc2?V zOnM(oqfexA9=7}nIt#3fV2g#uhGDvmwiZ%6g@Z~{FmnTAd8q>O3~Md4Dhv_WSZbpv z;`YEzuP9H3eY>yuRV>%~9QO0%tVqpf3icZ1xqwCo+Wew&8w0eaAk_*o`$1_rx%aY<^ldJ>2a>ohuv|h}Hb6CJ*95ig{ zsKt;cEIwF%yvm`U;{^g(^gMSa`ySbe@R|xKy|aXu&cjR-a~67k0ut@d;ZQ6M4In#I zK^zfpccX)&H$g#@nKDX)CP)>C0#YK>2P-0 zho;pXyo6w5fq5?UHos5tHq6q4r$@0wRG^!3R{UiUFb;RbkX2^I#%-GHomUn}W-n)9 zRf59UO5m8ChjCr!NtlS><-lUNp;yVyjLuPI^~*07*oeUdvjhzW^-Tvn!U+{mY@Wg#ACd*j3ekCK1hhIU?qVuc422N!atiCi zFv9BEuqvpG+8!Ix_-}Ln^~g#EEB?4t2sK?NHME)|Sw^-Ou`rp!V5Dn!Y(l(#IWzG< zrY;a&e{jqBu*PI&QNvS{d7}V`<)BDrb$Kd~EEG<{$h3&z$H2q@<CGlCP4YX^8^vECiNVN%Ef1&@y+C6GVMI9E4I`c**dbD0YXy2=^;+lptxhj3 zsNa+=Mif1q7(J40kFDwD^g3)yal=hE#W@ZPb@y8frP4}qa{vCdwY7d8ka)(Q{rSTD zeo){y=6)1DjKVun228M@GJBY$k$|Tmn3pN)QyAP(hr=*%4(sS8B8zg^hzjbMn!%Ax z)SzH$9Z%g9OZ{YSffcP4tdjP_f@eRhGMKzRAx)1>tMFp>6R%THs*g6bn36td2&QB( zIXK#v9PAq$yfQd6IW#soGTJ{nGB}Z(7#kelmrPD3laECipB$d(N8li4je~y(ZN|pST|Mr>ib`IMd_=muO@9T0iumk+blVUAldwl^G zciZa=!uoZ4eE~yrvG}yTzOcQ%P+7X%USHT=U)Ww>DAI8Y+v^K-hR*i-0xeE$uP=BT zUfb&nyc7EWyY&UE3;Zn2+5B~ZQ2NIG#bYP`4X+C*KTxIofch(lLw{fL{^oEpLHbkI zKXpyqXrNa8d=eP`6MS!&8-fMEVL(4#cNbw40>>riRd-C$29x8%BhHIb0k|J`MNub4 zhR5j<&<0%mGdetOkGer=iXH)NMo6zPCcrmY3-pcxFt?|scTZjr8X5_FN6BRxFO+qtKEe_vNm-@bmUzP7QYp}Dogk`75y=Jvildv~{*UEO>D$xay{oRVwpp5#q}wkK?%cJb zq0ZRd(YnL3S{iHXY7z}i^-a}vWYORxoK^|YnAFrzcT?-mj<${+byj0bduzKi3_FJ8 z!Or$w9XndB&L*O{sj;Q8zOKHR!1}O}AcG11ppKN+@iJRUxO>XCIq#Rs3-nulr5xbr z>*XpoNSJcP^8uIzNlEZ)O6ms=HQE-^o!(G61%Mh*NQB3KN+EOZ9m>pozI>W9eNcXx zejllBk)Q9oces$0^EyA@bYaaf_>`R7u$!V7Zn1oTe>=(->G#n-_ZC05xU-a#Tjjil z(=nwnr?=i6uZD3#(v3(*L2!K{7;=oT`@A9#43R(pM--mK`IG@g9+@ByV9K1jIz=8E z_MapioytL|<9U;8F`lfW+v7e@6qIYqeN4&m@^Pl@s(Y57pK~uWWev^)er|$I5t>Ao zrigPRs>IYFhtNb=Bcq6rG(|PJ;^I0yl4QZ~k<5bI?0!F5EbV=BMvLd{gBRjFK>Jb2wD3sjoXunbap;nOxheaINjR+bOag!EA?0sT&LuBHBL^fbZ($;Fe6eP>G800f5YPC5N;+E#x7vLO1CY0 zRJUBBTM@m7+e>VPLM_YTsEX-K$Wn=$!oh8Lp5+N~eAY|kq7uM$3MNbj$WnvKpzR0G z)7hnJdD>T?XK=v6t%G@3yNIU_If!E|7uT@a`ew zF>yMt!+3$u02MU83YaP3L76G&Xk1DcOvc(G(Lf@SNCfEaw4JT(hN9tAML?^O5#BN} z=lOO+4g%}|sJ+OZWMeWk7gn(8FY>#fD%i0=3c@Z687CSB>H`{9-GNy|UT6%rHJ~F6 zS(}K=H7&EdF#yo4*i-bPIem%_NGwnaBKIq@ma_}<>*6Ve`w($x(h_hL!edSi(#|6G z(<^+9s6p&gW8P z$P~wm_J(Kh!p(ICi2gJc2#7cKIl*A|zV6$<2=1z|@4?O|qUmzM&u2*vrE&N(jp2-=)C z0L`5T;=+%93>=|terApWu!SG7PL^S~fZnZO6BEAy1>3`Z;0j3tcE0Hu6&jJ*QpPJ{ zND2TCKwJG@Fo2=ht)^!t>Evc}mP3-TWD#lIL;xLDQ>1I3C+jw zVt9m2i_iU41$HBd0OfYp>FR(b0pOO*BhqBmdsM~V&@UJTP&x%K0I&epk5WpQ$Bo5n z0{u~ZLAeY;{TGDH!2VgM-G86hOR55RIi*1z`|ztblUVb?o-TA^MXV({(+HKYSZ{I2w!abJPgO%$S*g z8A1#k#$Bo*$P;~^3h!F_lR6bZEpn!-Ot*zGKOvKIVnxGlg>v67sxHg)=wX;zp zVd#2O1XM($1~RRS>7hE@MjMYrs)-^!4x@&U5sZaf0wAq6R-34<4H&^lJRD2}VMi8^ z>vTgX-v{8Y3#|UwU$%er=k9-**9EG&tE#%SMVwu@2+jdQwQ3&@AMzj^-nzi2E_}k9 zp8R|#EcSmyEDu=HaWWL?R1FOsZotJeraNb%p@)qCOhp9c!b^}Q-1N=mUEQb$ z$d|_^L;+YiK+&+8aawkpjcxTc^?UMdJVQY`^hsx5!)r8o$v}^}tFQYZRId@$!6XM( z`IO(NV9%P!8Ij9-G3~&V2-$%1(Otm+Hp>;vX^4w=WsNNYC=`!aih)1zdypngi zgMM*DNFS~$X9h^}1aVPojFW6jZ<6nQ{tpz=N2RCn|D< z^*3c&KB`0eiQHV=6d{ICTwGEP0DHI&U>?F1jS+c*kUMlD0MfwD>fAtV>~QEve{UbG zs0jipTA;~7_}mRD;ug~pQP z?Yy9C4E^#bE}y1%3aC>6I23s-XfVvf%Za1kBGt~Wl8XF9qRB# z1NHn8YG}TQgf#z%=+1@lpsA>Y3l}MBFb?1YyhT>~)gUZ08P$kH0eVZKX*9kjf^q@x zha_E~pXeDJR0Ff4Zo|GvyoM*9@Pw4dAcsfXJz7MI@)Q(R6jM+HQ>&faIH~|aVYDt# zjQoBUgJlD&fQj=f~E^t9OqP? zrAaO|MtO>+v@}!{RXU=``HG}IkV6$9zn~zBE7EDUBkEhe32FgW7h%UR6(s`=?q8>I zQUaTA@DmQVSmH>Js%Y%PQgBZV5Nw--P89v3iW}%@8cw`k20UEgR`IB*1dkJfx?ZCO zJQOSE-#r;EE&b$U=>Qx%rAdgT5jV}ru$NUpU7+z@^*irh(Sdq~(xShi=nR!9u zC(4IO4N5wIdNj%)b#))}5>^dx4=OU|4xk@8Y0MeGY>{xtP2c=3}ZZ;K+jds}MJ=elWd7 z^aZ-I#VcTs6vP;UP}U?pI2-|U4v|QeH3q175ntFkU!}atSmyG`X{HlN1Wethp$4)` zcwql|ZOi1AXl9%&afpWNo`%JgmIx6l5u<+wEDM4b(f-y-M&=1ZPdbkgX>wkM^Ff>vtI za)M@U%wREt7Oh-1R9ecy1N3M;w3nym%Ez{JdUr~dgz|K3XlW0$Eeg+~(=GYcnT8k& zB(?}F;z)|r3QOKenwt3JA69Vkh|n74aXMB2f+NT)Ptz1kQ0KlTYkc^*M__NmkcJas z5D3jtcjR1Q&hlPOG(wu`7b z{^X{qg8wEtqsSQW3R0XsYQVD_;)srpDW?C9Evu?7(86Bq^7EKxk_CduvFP!_DAmbyf14Ma?N0W*AIej>`mK+9L5hcMFtzE`M~MZ9^k9$Q+X z<62_~*6E^CmJi9{B~071jQBqN$>(TS000B6uHv3o9ILuGA`h} z-J24QKAH7ocMbC!veFU7VmU<&S0JVd9Lc5&6EGI6*A;n<<%(DqtcZC*7Oz(7Ee#5W zK4~V18u_k@voHv~EZBDsZ)jn-NELx7H6L|qXX?SjN&|-#gJDiE!@< z4Zx5VMIBIdVPhpCV^Aty9%XdQ6b$}3i_@r%SLr29f&CFB24z-?$cMh6`4lGo z&q;|N&->cSc@90@JCOq}DmmkLBi=U>?bD1w`M%2yRDse=I(y4LEH< z?jOWU%n5X1pC>BWNkJ?g1F|lxG58S&Ol=(QLE&ym(QwHD4lAOm!ySBkOFZ-lm4l*J zWtB_~D2QI4Y*8di!LV?S#(`-H^cR0fieQl@N?*dp30Z}R!gpcdL5D;M-rYu*XOk{^ zCQ=&I>I6;c!@3@#pNOf)qG5W}1N@&R{E=Er)dS&Zb;t}GrXHw^#$&OXP%NH^M2)CX zYsM3`5u6I3M={|~;0yw+2L#Nf1|5_3L=+QnBNmUuaSQ?01gbF|H^Sir4h@J$Bh^MV zmH?tAg+ybqgh{h?vo>54$0-B4Zq~#T)e$7eIR{}RGs6kw6pLatAs&y#V-YMl#A68~ zg2jk177XH8H!$MW(OR8XA`HX8VuXn^4{#!aiDd~xk47kNqBKT@0(be1tGhfO`y9 z%4&=EZ?I&X5LM2uJzaoQbypBo4Vw{FMcNlMzR$0U$7!PJ`F;Jp;8Lu16PPL%ub`=L%B&QZ z`l-?1aF@98Pr0@HyVrS*&^3PBU;;Rb5oAB;1a9D&^=QFu%LKpy^9K=gXxAn#`QWp9 zl{k2zV{=WMS5#Fc~Uq3CtLW+n5J#m7}gro#l z4Q$dS_Canh9Mn<|Eal;^N>lJh+2%qjBFFr^2DMk`cBwTnf*VI~OY$9gcS zN2bH-;m!RnL*5>pcSk6rM?i@XRI2=ngSD~|uNnlL6Y#1>d!4IX@O6RYdbHwpLk^^J zUAfyi$<^HJ+~yqaI+(FeQ1ws~qdgRKc1PSbtTd(vY-$$t5@4>VB?R-|47q!lgy)=> zXnz4BLp9uki6MGAr9eJwla|}E?jCssOPvs~J`i@e3*9X-+*E&RcvBnGadGa0^Me(D zAsx7O{9g5V2hKu-$vvq8EQQv^L&1dh`c%-ZO;UX!M^u~XNA)djbb=}s!RlsMrNMen z4==_e7FOKLcQ!JY2N_Wbo|mhu%T1;;Np(j&2yASBARKV^7|zbc@SdPM)y(?^2!q6w z6Nz%ObCTph6z!f3m+K7@GCU(Yw>#hhpw>W52#zF?T{{NEXS8VKR(OYVJGe9E>~4Gg zJ_(`7;e=k!;$(AhP!!>I>248o8E#FkOS4xT)hLb*K%`eo{Up-eTDdFe?&l^wK}_(X zQrHO2=8A-39&OZnhVj6~(!-eqwmq0^dTIbvaGWTnlv2RG5eCeW#R092ikHIfAsj47 z2bVqP9Cxwk&&)^cXt!S87b;gVz6%))V;>+8ia4P?dz*s6##peT247%CYTQZV&GE1v zaCXL8gYF4*QhJFIgO|dtWw_V}9v&LS3kj`Ga!1?|;d7cB4Z5R%pb{$TwvIgwP=teSVT9~28Fih);-9$pPvqN7^F1tW^9*0X${{D3!O6ekECMe> zoUcr4v@|Pr(--``Z=#V8RPtiAO$B5S3^Kudr?=s?6AI1r7O;}#tt`x`p~@jFVrF+- z4sTdn3!2`b9rHyo>2|NHGUnfyK@&g@Iiu%RyGLquJ|UUrh;(cn{lcc6!bvNh0UC`D zNbo(XR0Ri#aPDqM4pq)D@Wbn|#w3pQ;p(r0N!|g6(9&Xk3pMJCx$_2Q;s5}lK-r@Z z06&FLbE0hbbw&5iH$)s9R7|^DBFMQYW37*8tzctW;dKTCox<>}DZH;a&>W5iV$F%x zwrDIE3hTA8njJO4)|OhmE)rH_8&>9o$)Y)T`JpP$(k`9uaUHyIMxCfCXK8DVSpjgT zSnF{fs6pSno&xb^&;vtmVZRv()Tp|!p`!rGq~A&Kjy~}fi=E^RQ5ppZ18_nw=a{!9 z3U%nzs?W9PS}W~{pTM>|AGad7U8e?t$iY&SzbWo3V`p8Qpw2>wnp|}=rliy5wBFi*lfgbE zA?T51Mh)Pu|7~&ODYH3>QBGq%W*>6DxBM3&gy^2^IrWhxm2ami? zG)<#6PI$`g(NsDHM$q5o!4{C7`bndE8Vbh8E^xyF0lFq4mvaPLppM4Jkx?CyX4iqn zJ9os1is%^;BZ{*MO$G*pasFX-4OS|GK_d~Z#o9wKVnpI*Z+!r#Ahy&5VnzdC4S`5a zB35IVu|zZw4aTtO5UY+y^ctw3FK=EK_>Ld_y&XSv_BZ$(L-@xL{_lVnfbD?#qxkzn z{Qa-^`#S!jMAK)&;(6r;j51#2H);v?x%74H#PwxDA+TC;3~r z2iZNu-^2Vp#^2-kR+Qmnk$*?{m*#!&mB%RxVFLZkpbIEIt!~h_$Y+Gy$|$Dj6q!Si zA3rH0-me!bk5Oa^+h#}-N~h_3KpJi~R4jNUR^bdz)?5Ly0K;ko1lS6N-9fspfa(O`4UW-VqWx|vn==jg z5E=w)85~~9e8Dc`62WQUiLK#T+M|b4S;6fC_!ak|Q0e0C6Lf zFrxygbZHiMt;3hhJ`hHh8b}`oB7^HI7|%8tpe!_>&CQdo193_MSZiqs_@!BDTgGM( z3HCB(np6soJzeBhM5}wK38D-*rxFz?g>biscQ8JpW8W2_p(1APxIG@*TA(LDSMVe9&~T_6lgw8uVPl^&^LEVPW@`jA zo3H>tCO|FGT@@5jRq3c^N)Z8$ZBwPND~(;~0$qzkN%__f)B*R|r0o*(oHnPCPS_t1 zGYhFT*Z>td5VNc_89JaRi~dP)4WtLFm{iZ#Ckg8yvmzm_&LGz?&YJb_WI!?vb{L|2 zY6~eGg-1~$+4*HYhE{}lQt25Jka{5~0as02#(->iiG!$Erz<3wc-Tn6p|epOLMqD@ z2n?*}fLP%sCVU<)VL&Z`_C!~rw(u*4MGT7UU&eq;WMKZ_MMeSi1pF-J40spta~zrB z{KzZ{Wr+2aB3&E9bqe5^OExE?TI098V zt&qc+23{v2A^{#ozeQ1Kl8kSSu>DLocOo^2Er0$5gZ|ck zP!9%!0L+I&;TSOex~XH+JQC0Y!3aVB6Tx6C5H_Qsm>vyBB3Ors!74zd87i>)#&4p-7iZU_CG*JlP4yi4x z*>R~CbCSX#CkGTFsBSpe>)v@(Q@5J{C2{AV{?;I2gq&LECHk#D?lws%(Xn(VO7X89 z?sRl_rlm^`&f+{0p1BIB&>7gtJ}e>n-KG@T|~?~L3O7}__(+4sWSN*CBph>-#iQ7?#?bcTWTfn(i00q`jjmw^uh=nZR0bQp~&_+~u}I6&fl z6d_B8!0#64Ch`9u!GVbXIj4?5TeYoD9nM_~!j!(Wa*l| zKkDr4aBjEjSiXcO5!@|SU>MlR&l*zKOgfjH2XZ8rUP_6}$9&3CF)Rtq6Z*hoQI9Sb zNbv~zE<6gmXB8=jP=L>npF2gZv=cHwY^TnQSo3OY+%TQFGc9M%)h1wQa0Yn(mV?!& zY7;eQVy6ZPcD`HD^yxNK< zqOo>dZD>@tR_|=W1&P)1ngk9bh?tgX(!m2SR#(F?B7UU0roFzQtvV5@sqNVp?`vv| zHrL0iffoqX(!Ae4UtqcI<16#$v$uF%AoxlZ{%?P_Ik3%vZ4PX6V4DNm9N6Z-w}1mb zR_}J;W|-gGIi8udQ)63ih7o>G+&p_Og^kdK{Ia-9*S}F}lkZOJ0?t393*Pzq(4&=G zr~Ej$hHPTXO|-P_%~!{YYtuX!szpaZ@*QOURcGFvs2M&&fP}uS$pHMGP;~>R@^v-+w|6#X7f2e%SGI) zMu&XRIMTaAM%3k5chqjW$W25PH`DrwHs4H(TiS5F8ffO*l8rJxd{a8bfT?H#gb2%Cs1E^f@^SF!8sN2FOJXz)3k!|}5=?ij=^uK>Xu@GdQ^ z_zp}AZoR4SB5p^`WLH+`hCR)kY6;_wUb*g^z(+!edt9A)N=mt3enA6>hRGTHB zN(#%kO;Pkn3wUwczm<>^f_=C&7q`OZ_-4+G)zwqXx3KxRvfK z9a(h0a<`uKq^iIjb1&jxgcTh$isC8e;wzC)t?!<$n+mqH49kkQx6PJq8g$KAacjG`ePi^tN ztEGOhN1Pu_cTS#q`jvuQ=RVZfLJJOgN{@QT0l)E>wcde3By55wRu@;88?&EpRP<|L z;rOp26hg^b$K8@e|Hwn4Va~(o^uJfd2T<`D?^KIPx)}0Ie zH5)|DwqCF8bso}X&sK@w>ROFIUaR+Pjv)~JER76||9-3s)YFUJUl*9__>0Tm^V_Yb zcwHcHs0#nLKieGG=D;=wwmGoPfo%>v&Vipe>spxN{y}W><)=R}>h6H&*V3uv=tSDy zI)D^@-n@4zXWzs40Yhk-?{0b8G|%1e=i9S!0X&Y6#2j+nPvK2uG3&rc8$+9+A#qPO z?rW!k{JG7itz$y!&Ge?}fPbFCdb3fAo5c(UC$6PSs~FX%Q*`Y)&rT`q6ot?}5k}^G zEp)H7kjJ&;-c|IX_?hf1-=F@UZ2=flZ(i$>_~g8HWAyl5WcONY zn6}aMcPsixLS9#^6>SRJ!97%I>-lO`ne%TvxSK0_bV>@=n{)K0`7 zO!fH^cxEWy@J>@h%&P2SH_t}S(OLS|2{bL;ae%_M@|mXW6)BpuW^iH`ID;$XMKd7y ziBfpt?~^y?5eL9~K9?(EPB1_)EFWOHKF;$R zTG#O1H~m@YWuWF)Kpd`1#|#W|fXvx1TO`q>yG<-IeD@3Wh}%o6GA!h%AoKY2W~s*o zY0W_pizoFl+nBmnJ*PM0%ob0%hKuqX6VOo9SR8m3Y|uw3sg+D zfSWeFL(`Ds6m5VK4_6WYBJBVZiMU7}hZ&;)>~QkLEl2EQIb658j^$FT0Qncu0zFf? zC9)@=%hAz^*(PNjiz+=QZ2_)d??FnMa>DEYJ$cewE%0IB)Se#yPua6DbheJt{CxB5 z`dF$6sC=(AgA3^eyC8_ZtWJ5d%6G_bnmi{5=o)&ObDv9}wU_T_F{M5uZnWo1-C<|} zg;L=5*$`Hq>~kmEoYmO3dLI6FS18Y(yPZNa3R9A&&DI4EX_5`baECfjVGR3@k?-Km z_nf-XO!@<=vuD%kzX+(aJ+`FqfrG`h#oR_o$dq3jbj0MHB6B=}Vx$zyH~_ z|9cfb*btn;y1)bcz3HzDe7$h}m%e8*c0||_?5nE6|M&TP>KtEK2m^_qZ^wm&V{UIb z5lTX{i!Ql4J+mexB^5)R1Uy^1}Gqgr4Vq#fU_i65aO~zR=akpoWn+K!@u}kiC98d+v%K{`LPM`Nd zG9@)|FEx)VZt+N_DvNBXn!)PZx9{WJb5GxU`#axZcURe62?R!+cbx>+r>5B0 zh%2GT8I2{QZr8K~!Vl1-F0$+SWW=QKh=9i=wfrN!#DhiF38y1~ehB;pINE6U>usLA z0ix@@8m#~cPUFLVH2#Y3P%l5@L+q$6jF%VSGGKdeprhl`4B=lksq?Hy4wgaEzX?Ag zA2)MV4wIqu4s$6HgSs7*58#I8T{JvueIL$qfxk^;UJU}N0ig4GnRgHk*8zc&aGk60 z580Yxl6zSlY_C{WR*u17pD2MX;XCOM7JCT?$bEW}nl?gA{a%$>xbK}AqG>cL4&;)= zLcL9!FA@b6i$_*TWp1&je2sos>;eF4kl+&|$EGunnf#<1zE>q^o~H>MPDzrqA%kcK zpB1Ps0GRj(X*pcS8x?%pBvc@SpbJwU)OioP!Bt(vpF&n@;!4B7)g^wv#?igdPaCbXM? zbHpsObc(EvG>@Oq*$s|J-PE8n#BU_Z=EukMSrXdBp7or8MCHe~PmY z{*2JG1E?BgO1->BfH;J+fE#WL^#$LpmPf9q25%-pP%aM?$nHtOHQzm#`ZI%pSxvEp zr|bnYC3N4ttOR4zsI-^$vyYs_ye7Q(L|!Pw5m_z?V;p6~5M2djH7dd6W_@2zKllw$ z++#&tY3V1}R1lu$fSLn^Yi@rYSICPIm(-oL<`^GWz=Yib_B|3d3&h=3!psdxt~7)e zU!Q)(##oWfkXieTe+2#~Xv$~gZG1+@g&BH?#wL}ZriNj16KY5egqL*#v2$XYF`*f* zX2dLmWu3&ByGbe)>QyvVfyEip60F-!aGC8%3>M1DC~(9BN3V+ep^##z;5S3Lh8|MK zLs~E%)`Btk?*$$FA2+pN!vB|UP#QSAf^qzt&1I}qDv-(~JJZPxP&%UQ{s2l-l?BA+ zQFOT4fiqWWkC>{G3m5QrCIojpIPbMI(Tv%U!Qk6B<0cxUbNV%OF<>cn(1~a+nbSy`It|V}gT17HvI$$!f{Lw< zYja^^1gWZS9FDRN$dj9N;S78m(^IJ-|vbj8Jdc;N9R)^nyNmhM@VD=PK@DcPsoh?@-_>yGx%JTNW+@?W%x!3r|3Q znhN19VW7x52(audxW213nk`h-yTTnAx`tNu9HrC((zG_vQNhem-YL)^ z)!;zw8D*yP*I)=lFhQYU)cvRceGaj7QzA7SW@Ct=i>{2bO?DT7bdfg32AdZo4DTI9 zt>fcliS!(okA#mXIqjlhXv?>_1EOqrbqg9uqOF`bO#}I0Mxhoh__0DT;h?69q8b@H z(KUYY`mKjx*Sx|8v*bPNoBlyWBRFLzGED~*kD4D|MA$mWi}wlituUrzVrfyQ#R3f) zyN5`0`y}g@1VSVMnC4SSrVxsFd>AV64o%@kvkHhZwRcDiZx|l^|2-)&omk|yow8lK zv(rx6X}cqD$2+ntD_zE|gF=Txah5w=3bdS!v2AGv$?3&NGLniUB5BaxrSUrviQAF( zh?~psNofSW{=5>pI_tK(Dc9+}6nPHY{%0KYb}(T z`_v@6%ogp8A6Z%Im!$hgwwtvRF&jLfwu`9BTN0v*V$a`Ft>-cV4I)+-hHw_Xy-I*h zg>z@D{pkSEasX#YAkc3a?!M+ApHL8Z!do~A>(|c9Y+Z$ZOn~4HVShGv>6JZ9)SyUw zN=%GwG(w8?f~VLc8Gh^~(nq1`lPaLO-cc%ffQR1U*P1sJl(a!bz*-Eib3kVTR-*Ir6Saim$JcaK8;x;mYy`IW8~a^^8V>0y+TA5QVM7u-d+~u2{18q zNh38EAT+ta#zSy#EUcnm!5iGWJH(z7I^DbA#k zIBcP~Q}pTPeu{m>O`7?2k|UsDKg@4s?O z;+2aEFyJ&BRK6?+aNy+&ipG3N(XgHs$31=tA9>sxC<1GozJ>gTnr5r)Qc;x5r!;clGm3^Y4wM^WVg_Bcqy7y;~Dh9UIk41#teXM&cb7zg}(cpUbqHGoGd z0{NnPuTxmMAy*eUk9<7IBP_wxM_Br|RNyAtXx>*sKE45rAl}ILsoH*J?GT&0)((Qt z2HI+5C4?9zf(X(}03k#x@zc0$P^1-qEHwnY-Ghq+qym#^T~5y3f5;Yw3kTq|+y!ky z)fXayx`W{x5o=n`1YE>H5L)Fc-uq23WfC1@O9LR9ZQ3qt?UoUXPex$YYrom~(W8HXIPgMImoHd+vgHEm%zCM&LwazfpZC*OW<4r=Mwn;C6JJ>N z-QOdBimjVx6AOFb@hiO(mj@+$gak?-85gO(IwI=iq~%I=JHJ#bZA?eyK4~7lCFHZP zR69H<->~E^sX!6?M20C_?va)#o`JZmUysQH{&lgoyS|T&<29In5AaSr`ew!Y=g_KuifIRlMku*UME(4z8fe;Ghwf&Z;kBA)MIj`z8lr*m!3d}EQ-jpLq)!4+wb08&8N(<#< z&PB+}ztc~dQF9q0_mleCuhN&!E_Y#-&dArqqH|9IHa>pv(#K)H_ChPSOHjtKwh5fPbU?1 ztmm1WT%=JW4;w#2zP~_U4uPYoYz(AH`xhEe#8MeKil>N8J7`=MD!aA+NKcVG7D|Wv zjgnttk|aG>5j>uLQi2A%NZ=cMC~K!C-SWQiR7x)CMxkD(FKVqeIaESRGSu_+a-6DZ zC5b_aolYs@ki8TYMUnoV6cq``QE7GG)?^p6wbrownN$XV2V*^8>T+7TU)$L$S1Jbm z_8X=PjifWBdRWZGV=PyQRP4lOWd*KMJGH$=wN%zfpHA+yTx)_fekaMEr3eVSbnGN| zr*ufXsnwEtHgmDGi=j}G^2DhU3It5tMHtz#d^UFhhcAaaZ6P@oTDo1BUAX;k-&u|m literal 0 HcmV?d00001 diff --git a/battles/battle-of-thermopylae.md b/battles/battle-of-thermopylae.md index 163d6e3..9b5a8c1 100644 --- a/battles/battle-of-thermopylae.md +++ b/battles/battle-of-thermopylae.md @@ -1,80 +1,40 @@ # Battle of Thermopylae -# Battle of Thermopylae - ## Overview The Battle of Thermopylae (480 BCE) was a famous last stand by a Greek force led by King Leonidas I of Sparta against the massive Persian army of Xerxes I during the second Persian invasion of Greece. @t[=480 BCE] ## Key Facts - Date: August 480 BCE (three days) @t[=480 BCE] -- Location: Thermopylae pass ("Hot Gates"), central Greece -- Belligerents: Greek alliance vs. Persian Empire +- Location: Thermopylae pass ("Hot Gates"), central Greece — a 15-metre-wide coastal gap with cliffs on one side and sea on the other +- Belligerents: Greek alliance vs. Persian Empire (Achaemenid) - Commanders: Leonidas I (Sparta), Xerxes I (Persia) - Result: Persian victory, but costly delay [^1] +## Context +The battle was part of the second Persian invasion of Greece. Xerxes I (r. 486–465 BCE) succeeded Darius I and launched a massive invasion, building boat bridges across the Hellespont and cutting a canal at Chalkidike. The oracle at Delphi had warned Athens to "fly to the world's end." [^3] + ## The Battle -- ~7,000 Greeks initially held the narrow pass against ~100,000–300,000 Persians (numbers debated) -- Greeks exploited the narrow terrain to negate Persian numerical advantage -- Betrayed by Ephialtes, who revealed a mountain path to outflank the Greeks -- Leonidas dismissed most allies; ~300 Spartans, ~700 Thespians, and ~400 Thebans fought to the death +- Greek force of ~6,000–7,000 men held the narrow pass, including 300 Spartans, 700 Thespians, 1,000 Phokians, 1,000 Lokrians, 400 Thebans, 400 Corinthians, 2,120 Arcadians, and others [^3] +- The 300 Spartans were chosen specifically from men who had male heirs [^3] +- Greeks exploited the narrow terrain to negate Persian numerical advantage; Persian archers' light arrows were largely ineffective against bronze-armoured hoplites [^3] +- Xerxes first waited four days expecting the Greeks to flee; Leonidas' reply to a demand to lay down arms was *"Molōn labe"* ("Come and take them") [^3] +- On days one and two, even the elite Persian Immortals (10,000-strong) failed to break the Greek line [^3] +- Betrayed by Ephialtes of Trachis, who revealed the Anopaia mountain path to outflank the Greeks [^1][^3] +- Phokian troops guarding the Anopaia path withdrew to higher ground when the Immortals attacked, allowing the Persians to pass [^3] +- Leonidas dismissed most allies; ~300 Spartans, ~700 Thespians, and ~400 Thebans fought to the death in a rearguard action [^1] +- Leonidas was killed in the final stand; Xerxes ordered his head displayed on a stake [^3] +- Archaeological excavations at Kolonos Hill (the traditional last-stand site) have uncovered spearheads, arrowheads, armor fragments, and evidence of mass cremations consistent with ancient Greek funerary practices [^4] ## Legacy -- Epitaph by Simonides: "Go tell the Spartans, stranger passing by, that here obedient to their laws we lie" [^2] -- Bought time for the Greek fleet at Artemisium and the subsequent victory at Salamis +- Epitaph by Simonides of Ceos: "Go tell the Spartans, stranger passing by, that here obedient to their laws we lie" [^2] +- Bought time for the Greek fleet at Artemisium and the subsequent victory at Salamis (September 480 BCE) @t[=480 BCE] +- Persian invasion was ultimately repulsed at Plataea (479 BCE) @t[=479 BCE] +- Thermopylae was again the site of battle in 279 BCE (Greeks vs. Gauls), 191 BCE (Romans defeated Antiochus III), and 1941 CE (Allied forces vs. Germany) [^3] - Became the archetypal story of sacrifice against overwhelming odds --- [^1]: Herodotus, *Histories* 7.201–233 [^2]: Cartledge, P. *Thermopylae: The Battle That Changed the World* (2006) ---- - -## Review Queue - - -- [x] `@q[temporal]` Line 10: "Date: August 480 BCE (three days)" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.201-233 (~430 BCE) [^1]; modern confirmation in Cartledge (2006) [^2]. BCE temporal tags not yet supported by factbase. -- [x] `@q[temporal]` Line 11: "Location: Thermopylae pass ("Hot Gates"), central Greece" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.201 (~430 BCE) [^1]. -- [x] `@q[temporal]` Line 12: "Belligerents: Greek alliance vs. Persian Empire" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.202-203 (~430 BCE) [^1]. -- [x] `@q[temporal]` Line 13: "Commanders: Leonidas I (Sparta), Xerxes I (Persia)" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.204, 7.208 (~430 BCE) [^1]. -- [x] `@q[temporal]` Line 14: "Result: Persian victory, but costly delay [^1]" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.223-233 (~430 BCE) [^1]; modern analysis in Cartledge (2006) [^2]. -- [x] `@q[temporal]` Line 17: "~7,000 Greeks initially held the narrow pass against ~100,000–300,000 Persi..." - when was this true? -> 480 BCE event. Greek numbers from Herodotus, *Histories* 7.202-203 (~430 BCE) [^1]. Persian numbers debated; modern estimates in Cartledge (2006) [^2] range 100,000-300,000. -- [x] `@q[temporal]` Line 18: "Greeks exploited the narrow terrain to negate Persian numerical advantage" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.211 (~430 BCE) [^1]. -- [x] `@q[temporal]` Line 19: "Betrayed by Ephialtes, who revealed a mountain path to outflank the Greeks" - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.213-214 (~430 BCE) [^1]. -- [x] `@q[temporal]` Line 20: "Leonidas dismissed most allies; ~300 Spartans, ~700 Thespians, and ~400 Theba..." - when was this true? -> 480 BCE event. Attested by Herodotus, *Histories* 7.222 (~430 BCE) [^1]. -- [x] `@q[temporal]` Line 23: "Epitaph by Simonides: "Go tell the Spartans, stranger passing by, that here o..." - when was this true? -> Epitaph composed shortly after 480 BCE by Simonides of Ceos. Attested by Herodotus, *Histories* 7.228 (~430 BCE) [^1]; discussed in Cartledge (2006) [^2]. -- [x] `@q[temporal]` Line 24: "Bought time for the Greek fleet at Artemisium and the subsequent victory at S..." - when was this true? -> 480 BCE events. Attested by Herodotus, *Histories* 8.1-96 (~430 BCE) [^1]; modern analysis in Cartledge (2006) [^2]. -- [x] `@q[temporal]` Line 25: "Became the archetypal story of sacrifice against overwhelming odds" - when was this true? -> Cultural legacy beginning immediately after 480 BCE and continuing to the present. Earliest attestation in Herodotus (~430 BCE) [^1]; modern cultural analysis in Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 10: "Date: August 480 BCE (three days)" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 11: "Location: Thermopylae pass ("Hot Gates"), central Greece" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 12: "Belligerents: Greek alliance vs. Persian Empire" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 13: "Commanders: Leonidas I (Sparta), Xerxes I (Persia)" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 17: "~7,000 Greeks initially held the narrow pass against ~100,000–300,000 Persi..." - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 18: "Greeks exploited the narrow terrain to negate Persian numerical advantage" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 19: "Betrayed by Ephialtes, who revealed a mountain path to outflank the Greeks" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 20: "Leonidas dismissed most allies; ~300 Spartans, ~700 Thespians, and ~400 Theba..." - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 24: "Bought time for the Greek fleet at Artemisium and the subsequent victory at S..." - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[missing]` Line 25: "Became the archetypal story of sacrifice against overwhelming odds" - what is the source? -> Herodotus Histories 7.201-233 [^1] and Cartledge (2006) [^2]. -- [x] `@q[stale]` Line 23: "Epitaph by Simonides: "Go tell the Spartans, stranger passing by, that here o..." - Cartledge source from 2006 may be outdated, is this still accurate? -> Still accurate. Cartledge (2006) remains a standard reference. The underlying historical facts are well-established. \ No newline at end of file +[^3]: Cartwright, M. "Battle of Thermopylae." *World History Encyclopedia* (2013). https://www.worldhistory.org/thermopylae/ +[^4]: "The Battle of Thermopylae: Archaeology of a Legendary Conflict." *The Archaeologist* (2025). https://thearchaeologist.squarespace.com/blog/the-battle-of-thermopylae-archaeology-of-a-legendary-conflict \ No newline at end of file diff --git a/logs/mcp-puppeteer-2026-02-23.log b/logs/mcp-puppeteer-2026-02-23.log index 830bc07..f942bf6 100644 --- a/logs/mcp-puppeteer-2026-02-23.log +++ b/logs/mcp-puppeteer-2026-02-23.log @@ -16,3 +16,5 @@ {"level":"info","message":"Starting MCP server","service":"mcp-puppeteer","timestamp":"2026-02-23 00:10:06.940"} {"level":"info","message":"MCP server started successfully","service":"mcp-puppeteer","timestamp":"2026-02-23 00:10:06.942"} {"level":"info","message":"Puppeteer MCP Server closing","service":"mcp-puppeteer","timestamp":"2026-02-23 00:11:23.625"} +{"level":"info","message":"Starting MCP server","service":"mcp-puppeteer","timestamp":"2026-02-23 00:11:34.466"} +{"level":"info","message":"MCP server started successfully","service":"mcp-puppeteer","timestamp":"2026-02-23 00:11:34.468"}