From e7a3bcca1f579d1d310bf8a4f21cadcd6e34ff95 Mon Sep 17 00:00:00 2001 From: Loki Date: Sat, 15 Aug 2026 21:50:30 +0000 Subject: [PATCH] =?UTF-8?q?Direction=20=C2=AB=20Terre=20=C2=BB=20:=20nouve?= =?UTF-8?q?lle=20identit=C3=A9=20visuelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reprise de la maquette fournie (LOKI — direction Terre) : bruns chauds, vert sauge, argile, et des surfaces en CARTES arrondies séparées par une gouttière au lieu d'une colonne à filets. - Palette transposée sur les jetons EXISTANTS (--bg, --panel, --accent…) et non par réécriture des 1200 lignes : les 300 usages de variables suivent d'eux-mêmes. Rôles clarifiés — sauge = sélection et action, argile = chiffres et avertissements, terre cuite = arrêt et danger. - Polices Bricolage Grotesque + IBM Plex Mono EMBARQUÉES dans le binaire et servies par Loki (/fonts/), pas par Google Fonts : une instance locale ou coupée d'internet doit s'afficher correctement, sans qu'un tiers apprenne qui consulte l'interface. Sous-ensemble latin, 106 Ko au total. - Structure en cartes : barre latérale en pile de cartes, colonne de chat en panneau unique, carte de saisie posée un ton au-dessus. Liseré sauge sur la discussion active, bulle de question au coin bas-droit rentré. - Bouton d'envoi en sauge : il reprenait --text, donc un brun indistinct du reste ; l'arrêt reste en terre cuite. Bornage au bureau (min-width:721px) : sur téléphone la barre latérale est un tiroir plein écran et le fil occupe toute la largeur — des cartes n'y grignoteraient que des pixels utiles. Vérifié au navigateur, thèmes clair ET sombre, plus un rendu 390 px : polices réellement chargées (200 sur les trois woff2), aucun débordement horizontal, tiroir mobile inchangé. --- internal/loki/ui/fonts/bricolage.woff2 | Bin 0 -> 76888 bytes internal/loki/ui/fonts/plexmono-400.woff2 | Bin 0 -> 14708 bytes internal/loki/ui/fonts/plexmono-500.woff2 | Bin 0 -> 14888 bytes internal/loki/ui/index.html | 113 ++++++++++++++++++++-- internal/loki/ui/src/index.tmpl.html | 4 + internal/loki/ui/src/styles.css | 109 +++++++++++++++++++-- internal/loki/web_server.go | 24 ++++- 7 files changed, 237 insertions(+), 13 deletions(-) create mode 100644 internal/loki/ui/fonts/bricolage.woff2 create mode 100644 internal/loki/ui/fonts/plexmono-400.woff2 create mode 100644 internal/loki/ui/fonts/plexmono-500.woff2 diff --git a/internal/loki/ui/fonts/bricolage.woff2 b/internal/loki/ui/fonts/bricolage.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fcc4eb1eb7ccc8fcacbd60586a61be5e6d4fee13 GIT binary patch literal 76888 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 literal 0 HcmV?d00001 diff --git a/internal/loki/ui/fonts/plexmono-400.woff2 b/internal/loki/ui/fonts/plexmono-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0804aaff92260b5359330f63e05b9ac25ccabeee GIT binary patch literal 14708 zcmV-)Ig7@3Pew8T0RR9106BC35dZ)H0HGiN067o<0RR9100000000000000000000 z0000QOdEz$9EMf~U;uu?K%G5`TK0we>7U<4oqgE|L^X$*rj z8;_19%I%W^bO(SBuPiMn*f#0ijzrPkb7(X&f{g=!B742;|Gy8w1P?Xm&z;E?bn2ER0SB@N_|ohnR#tmztr{aO7{OhZ>6~^sZ*r{s<4EH4Dw+^f;SyWMD_#BD1JaCUG$UB8U?kpU?cMV6-Uq|O<_fGpiN*+6o|bB1jrJ2rAzlx?#_2c zgagkjBm=2TmlU1Tnn7(K5WM|?iUDakwSHWmB<1+|}P?0FC<>z&ptG-EseJQc5 zFBw?2b#}sz4`c{~Q(|%m&viCct)AK3lD)!xYEuGG z&U7YI6WD%wR{d6~RQ^6aleH;nb8x9zKC&cxVxk+-0+iUo#S7RHwwMeY;_1g)UR)B% zPD;dT!vEYoEZTIUck@nZ)IvxM{X))62l}sFHFvkN8H85e-vo`Q@nyesFCci_p^Z#w zRAl{{|B2Jur{F?pJT){`Wcrn5lnf!f?d9`Ux5YtA1Y{))X@4Mqy8%dq zAnU9M8_1AT$fQE%6tY|)I}~#AzoG!t26*_935S4oEXnXn=ltc2FFl9$Aa9W)`^aDb zigz(=DbWhZa{htLOR-1Mdg5bQa_HEPNOj0m&?O1Py20#1OS5+!pW$A(yCt!ab8 z4Cb(a<=0vf1twYHF{=m^(?UVM#{*CkK(rtSh|cj^u;Ena3&jnK#;OdP7n{d;cd?NS z?AnFxd0B3=p9&2U2bg^ZDO{}Z3|_?n zM;NSeLajE+aWgD|@B_V&6c-^ukTj!VDHAsIg60q)A($Uf*c;Q-Nc*++E2fL0lk*WE zEbKVKz)$F{fDA#9$d)a84@i8O!*$>Oy`rmro{BXHox|hk-b4J^0umfr3^6!wAR>J= zzLm_IJu#@kd&fv2Oqxqtq(??%lDZ^BI4r~vN6xpCBQjQTZ=5g-gV=Hd9VqZk1lkNO zM>u^_Fk%Qlz+`ZB5Y-WbCM8mYd=Dg_L7aJ-LKG*f{Yab`q6Q+^GNnt695LVIr4I!1 zmJ!DwnxZL0RmoU-Pu9LB4m?dE>h6#*XH1_qb;{(S#0%$-#gQdLntnJS)ghr&{t2!Vo~#c?vkiUkKO zC}M6RL5_f^BLerEK8zLkKzcp}fqCp-MXcu>QELL0mSbT8SoR~Z9T)(BIqQOa%1O{; zrc?g^JtzelY>Yv#0a6M72FT$+0y5xXI0QV5k)8!QG4UaQdzf*+6faGkCjU>_hBr;5 zbLn1skWC?!IAoMZjcKZ;Yo^V@5@9pO;tn$moWT-$l3w$($p12`KfJhZmmo zk%}c^@Qm=K22I)&8@g+*UoqlH1kenM`=HncD5^pCjBZhP*KNT6|Hs7qf8*+Kz}3@L z;#JL6^i{%@J6GmiiC(F?TzlCC0n7l_13Q32YCwzvKn$_YA7W5&jsJ6ths6m}p-UE~ zK#7u+tLBfz2gOf-Mh%)IaF;Ayib~$Nrbv}7O;xhRYS*bvw;Z|HniPrF%0q#_W~g<= zRUBW))9nA4&x*x(~_QnM;&v@adl3*;H-1b zyXcHn`t|5FsLy~Q!zPRxGj7(DX){L5TV}zc6_(UnZoM_uT4#gRO!ZOUxvLaeq-gTG zMV4A@iDe!$NyTWZ&2Y>i9iFd`IhI<9y9=qiV~*z7tvMEHj)R(0iJLxgce=?m7_>FC zEv{aSc)8YyVgXQj=3{NhhV_FRVo;uU?5xyd&!k7P_9V4bAJ8Rd@DXK^x!n04+r&VfCmCJcY{VUf8^_5(%)e4Nwg=9oIyYunl zq84-W04ugC;Fmdmn$1*u{&~*dvs}O6vUA^aI61V2uLf%x=xNplWszC$jz(Nq?9X3- z@Kg`p;7zrs)_9e{4Q+$wEvt4^5~v=n!2-bvzNX?G4-k(-8bxMwG3<&b&xV79l}IXWnsD^wo8Pq2W(e zpWDvx+tFE9NUg+-d5N)=)oVwysbamL#0t-HA3=TWWd}hEbf`ZWZT2D_tGA)N@^K zCj0|SfA@2)wO#0(FV5zSMHkw+n`$8o$I(td3PPXWD{Yhtgc7+ddRJ?i^^&%!c8u1s zUh#OIQEFyU7*V*A9!e&_=n8kfWS&i=<~BCgcRX;Op%<)|B-|79EUY5fy}P5pVM6mT z-CJVZ6@a>R18A*;H(`m8hH6-5Z|rV{2ly{h0-1wnq3LRGd0-@$|QmF9w6QWOca#XK$*$R2o$b( z#x-+q%Ww|pG6#m%D^F&s6#gx_*4zlT0B<^x*szT{hBz0FmBh<3aziW}VDR11z9vOJslu3liO3HDTed(Dvz>z8Lu1usSSUT9^ae*W+@j~GV_DVSn4gj#$|1L z9Rq`+I!+nm7Lq3uNfLuajHWb{(o&63Ajd{he^#5SG)3o(R()AB*AaX{ib+etjbTg2 zE!o?$n9BGh<}x*dI}R@F?B{nhtvLWH1B?hrl_|>ehZAQWFm`uM0IGa*Z^>2odiU>% zI1#eZk;Ik^S-K@rWkc7sD|4SbkZjvvQD}@pEXr1!aQiS5yt$43C2pQDnf2+mjo6fS zHx9;F15^$eAyIh4$P1(-u%-a=6wy9$EO8xLiWQ!X3YLTGj^mE6)GE z@>}`C!-)nG2DrO}OHBfIS8vX-lQ!cgGQIplTs4X(`|x6i&4opB(dt*mp%@Wj@PMYO z<1055mTO-v#KPW@_W8+lyZCTOWr;nKOr&fe4%&r+WzkZ6xz(?EYGAl+9S710tCd)_ zIkU|((;Zc`U|=}=w$^1t$>4AU5MF*1IDSsz&Zf`pirG%U+;m{=U;Dw-{9py@*Z+9v zQt3zRTyRvFmauHN>6k!stI?WVoBBZo?pHzbr$YWzx__^IUiM4*Y3_Lkkw>i| zn1QjHS9d9Yw7J?l%p$sZN36yPe+=eN!l$p<;_Gnu;Sv$w%o)pRq6o>CTzgAh6g!LP z`Obnf4}h(1cm9QiVDUz`q$dF`hvqORVM}p4b#JJw9V(i`puoVm+}gwzmTi6Zlo^v# zk))x^6xBh!yuQYktbpbLB_db8lfheI2K&+ywOm)Oc!T6*q1=f^U0?GP8PV^pO`7x-Ay>nD=PLeZO2tb?yBXI!`w|BVMXmAC zKBonLI_`>DY^f`BgcAXhGic|gU$JNj3qtLJVOazlBq};E=QtN^i`=$87}Blu4`(nz z2t(AJZ8|`Cbb)~u)T=>4ZR%m6UenI>mBS{qFUSk-`tKXc7r_I#-*A~VOtQ3)-@dZm z3>`2TgOhV~y826JjEUUdO5Ya!G7Q;48Z@EQ61noKbbV148b?23cimZs{(eMC?*E(u zWIZU@``OyjOYX4cPtH;nj#_1|^Y?tT{tst|%bt|%o!&Ql02l9>+M63TwC`M5z#@3J z>aB>gCg>NSs{u(BbpATLD9|V(B&w!svBp}?g~t(_5Ai_{S;@%wzdVY@mcv_Qh2|;U z?So7MEsi&ad2`6&0EXj87=c7f0K8TToWZ4-P>WYwuy=)?AVY}3no~xPN+__ZCZ@iI z0okA2$hxRs9ImpycyyP+E(?1vB_~k41U3P!q&%xoQVAxMC0vyKQpo;3tBlZ!6GAU& z3e5LvG^{&7#Nw9p@SR`sXl0>I&!lfYdvACSjv}yjTJ67@S!=FF$y%YRxv07n>#Q=? z`XBrmz8!?B-!$o@YBuMJe%F=)2_h6l__F{tuwkoef64FFE9+m9F9}&rLm%boD?GC`o}6 z#C(3IN%972Frwu)(%kc`!zplhAmflqWas8wi+$QYrYRYNqbw&h=SETrw6f?eKw!ta zyNp~Qov*Z?0sC6Xnd|5q4w+s56tb*W5(1R*0>8B7@(mhDf2Qy1)8` zem4~b_if6Iq4|T=4c9qP2Tut9xhG>s>wJ!J%-y>72RB2*-~6yph``7qScc}wMr-n* zvDko};-o~e$P zG3HO|5Cv&0+O1Z0CDa(s9tLTuk-FyRK!2%&`+&(AkQt*BqsCMYf~d7Uh=beq?i_qv0@J zL7%eA$m`#=b^EC@g{)(GZ|j#OGsTig7<-lYr9_b-lH_ZO`s-*AqcC%Bk3yYZ9aA&6 zW0rmC{)xjBnN(YUZ+7Pvh~IPtMmXn#bhAuf><#}QelJb)7E4IG3RsKuSYygpDXh-cur8C<(p>K(Wu$56MDXk!&Q|sCVBj=vrJ)jH4roCbOZ*1MKe~1xFi&Vx3|iczNSxX3{79 z@m8+fIoCRGpjoG8e%zZBnu(&Ddf+dGZV3&ob6WD*@}mj36U4Bwopb`LW6&@}Of@0y60O$Q3OHj+Pw-;aiV_qb4!js)T<$#$rzZuxl!g zh8ghGT1)iX$%JlZpF4p>SafdTd!`lPV~Yx>uK-^@e&69f%rSHu7n>mFYK z547@-?soA|g)zWTEA329*7sZ9X1I{UKdDJf+P9sy47RbBW#lgTuu4HxX&Lm~i1?`^ zk33A&(dlh6D8xFUbuTyv1)>%@j{gAu(9efi{ef2_-9o5Z7u?nG=P1l=xn2A%yk*{T zM`0iqW|DuL5coIPpvFQ(V zLS;h4b+I}y_EV@P;?XEg|H1az>=q{4LIH7f^p71lzzNOa8uHOOUziAk-6@j5Mm%|;Cb}&&zTXo1!D(^63|Ru9@li|l4@Qeo<@l%!F~7skBezaF zvG-`t*leCDpOv%6L>R13xr&FJ0}aihRDbby7HD(p%&UQ?CC<(x$}|-;4hhqQ)hu%$ zV83ubaPWb*Jsv|8VoebnitVcNq*{y9K=|idurjsQuCdn7=cmj<>&9Kt8i*IUP zQvP0D7405}X4)*GbL9`?SJjS1;~!Qy#+!Quu~obEDl%_$VR$-d2bOm#~JfE;tlm-Htez>C@U0RCKF6M=DXE~GI={7~i8D@(IA#U|Sd8dp{3zcdDh#A7zh@|0`wrF$z%_r|AO!z{Om$9kZx@zB;T zP1v)fbPc>>O<+mc^XM&K*fr>13imDb4wl`9x~69QI#L-u25pA>H%E_E{5p~mqQA8* zq4ZjA+5Sh_ZmlH#5uaXo1j$t-)9d={bhwOWCJ(^?8$5TFhEOoYW|h zNkMMlmovd4eI|?T$k|BHF^L8f`Z)Y-X#G+en`nIz#ELn_%*f)`zudT5k1en|0ZqKx z4miB#NblmHmHl<^kM)N7#bp<5sQ z(3-5+`3h|`V+tw*HHBeEk{e;9i5%>n8DsZu=8~f3&=)X%C=|YM9%?X)?8fX zb5X+i=XOah?sKiKMXNVjclNm%Hd!R7v)>*20*xS;Lw>=MrY`f*-=64$H~UQe&G*v` zFekZolnZNM6%`oWAdXT~yvYZP=)n}JULseTbl0rt74jx)J_eLI9Lk?>QJUi>wNKJx zmZ1Afv4t=wZL^haaUZn%<+TN!TE8~H28Y~(?#;IHbGWl-FNv{(^3Cq84lu#3?k%=5 zbogZPygc>w*z0OW=Ns?oKv6GdZYF8aBkz)yz`jhQ8i=4%?F0=(YTB2uCDQ+PqBW$= z%!BGr9gM!0h(`qGFcnT6W)dDDUiL8@pQ=rHZ)Dec=YQ+y-AG8u;_TD&%uP@afi*^FJSf&G={dFA!Dv$;8b^TQ?=|CRtZ&)#-sH# z8uR$5rzRs)F+hAO-cS%bl~;_*!WHwTV#mJ-G4wGX=4TYm&bG0s2CNd57ng@3OMa@^ z{+*xmgya8iPOeV70H$4_&gIUI@xYxMoEzXVp4q*7s|!BLgMV04BwoN4J9%ac#_1sa z_~FXtMVTLAv}T=ZH&uGzJ?4qrM4pO%7{^%8DzkgTJ_riiY)}~TL1C+qeT$`F-D2Ba z`&iS-cYoSUCU5@fF4>FJa9Y^x7S0b9@O_^|Wv#o*+HYFix9glPOLtCl$9l&z8?XCF zY;pgd^wqcjPro8(!F>I4%56*Un1yd*C==DDZ*dboIA%P$+80U`xAF|tI=QkV6Wfw% zznE5Ph$^VEgGbUK#89l4E@n5HAPYiu^#XX|s(sc1O_c&Z0CN#*&iB^yc9=8Qe5wG} zyY1U!#_A(dMBL|3_x7p#B+h>;1FE*X`TqG3hXKXA_PzC1U5Iy?zHF$<1;sRn%w~PR zTWBYjH3l>lVhWo8JHhNTj>(1Kmxx?er*Jjcamq4K-q28P`BVG8uNDd+0=-zP)h`aM z*mcd!nVI=aO{yN6F{5UvEU7_Vr-i$zt5@vUhZrpO=>T}$Zj(ad2`vdpJc_pC z-w6i%!fu`t%*Ex2t`~-H%DyqYAUKpV6P~7YFErqfgMU~CZ4E2PKv6Oc9Wgk!WdTeM z-f`ZK6T9lwQ-2(_7RvN?or95~JMfv|I4KkVtoz~}#2i;NC(#3M(eoyi#XJxZl^V#a za715oWkqbQx)y|2OFcghgRHDqH|Pe^c04KA+)xu&tM2XQEz~Ffc)L4cL!V~sX=TfB1VzW9!&VWV)?4VNjT+_CF;FyAA-$uaX zS|ZI^+}R zB%1rfcTt&oseUh2mFlfiRuCy!*a#sT|GX!M@%_Hwk}Elx%hFQbd;dr>P?}slH2s|a zInnz0X}|JkxudWgHAAT zvvOH<%Yh<#q0!&y4+gqhr0+G+%mE7v`Jpru%lJ$ks~$#!y!7{}#*8YpDkDlY zzE3aIa&Ry&z+l>}ogL!0`DSjAlkti9v1@(pQUPLL?X=w8Yl{tgHUx_IKB1 zVn9@hR_Z~0$geTw17*_MH1NRll#@d@SL%Px?2=qqyMA1ui(^j1&fhi~HvYBK@D?{v zJAH7*Qhoo~-1+wfB2kaJGN-xDZ4%I!Qg>|ISz(3NnqrsM#hf??T;0Tp>s0-8NIMia zorNr&&M7{ksM(Y^+kM>b49#9mnYDATh#2aAvz1~Zo#)us2QPh6{M1_t=JXxdw~w83 zQp-~04am*(`8t|M2yuONp>b&C?nq5zSs4#KvU|ge-J)TxkUK2e9gUp-(xqD3mG=b= zyeNNRLh$)j372rTBk)-7#(4+K{Fa0U@&5+2pr(pndd!?An_GWA1s#h@A&?5Xyzb)o zM>w@k$t@IWw^Uj$2J#E2_FQ;A6Nl}(u`T{IUuNd9$#-AFve9&&U9OkhW<0&wN1{&0 z#!4J)!8BI2K^^jXpf|_}kGCwyqdaA)SWhYa*~t~@A15Xxew_YGJ#S)T#n-{Yz9tEX z_40o$J-lN^NvH^sxf_N0ah+k?DUoauomp(R%a8J32gudJ^?yG(&L&_JbK`Qw1tdO+ z@J)JL)@@YLqLumKLh*m}g26NJmnTSUP}FVQJ**hI?s;6qEz+uH?1s(U)x@ag_uQL2 zn~cR5pkXK#CihUcDQV)0U~7Ck;)6d4oSS?Bpz{`1D*=;|JY6_e9(Y9yYzVrBmy_5d zTmh&%fK{WBXf^iR9TsR=dT2QeJA8L3!^J>_=)6Z_ZeUw!_S1VrUe;7^E3!b+e2*Grd*%1#BmmG&sg z{iZ)LIepWQao4Yq-sH~RaxxEG%3f-~ugglwT8Fn|H*oRTe6s}FWhRowzv*EsCLxvo zGi}+W_L<)=p?a1kZ|l$b@cq0s&nq(n{Ua&|^&{H;7&tQjh*zN}T1bCURk0IwYRRSD z*U2&}`Khj*+glfU|7oGV%gtHcJa9`^*BRMckQvFy^RdS?6x>Poiyh(o%(!UXJv=$w zvHsTnBKIxAvtxXB=fA=DftQs6F`}xRVlgU`$9V3bW zMl^8(RWYZZvTs8}Ty;8SSVhl!)6Y5<3oMZO@Bvz0%<*Efo?-vNz`rR;1RmSL?_Y`F z7eWxy4*!vZaHF6d`R%Dlo#*S(j&3j z47&u79j*nbrG$cZ#09CPgn|JC45cfzlu|*!T)I+A3FWMNxB8;n1Zc|mti?l9BYvd6 z9;W%R{zjPQC;IF98~U4JnxE=#g=zgWey+cvzoowurs+k&8Tr$Flm9ZCImE5Zf8qZ9 zdJF>z{yTleR4niHtKhl*>a7^wN-X+)guLjR=uF9Qxot5IOSk57>`5<#(;KfSkupur z;I_<+Z<^f9WE(KC&8aJN)I4iSReVM2kGM)Z?=SEOEqpCYRD7%Ps`q$mSaUMuL zkWT-)8}O*z_%Gd2)yz@d%*oQvx!W@(UgBW9j-5PWxEn#oHkFQqJg%yPG$A_%9(ivT z_==iGF38ik_*!c&X8g$gfKj9?fgiaaz=l#L|Ac*CCPInvh{4@n9u!LPvBQtt57?e0 zNV8CCDuZbMvL|~qC&s%cqbhLXy}Njn%12RpP?V%<8^)cYBMlfFlSNZ%G(BzF0GS#Ep)EG&?N|SQ>4l9g7MY?v z&ly=E)?+k53;rEj*5NlPOs?uoMXNN?KEf1DTGr3KqP`jnWR7t$H zVDt^)0}UReApIa{mC>8gB{OD%K~JD7y%j2m#j5dyCCNglstVM&sz8!6zf2}c73BT6 zn)y(?LgmRSqCLt`G>)=U0P0DpoGbELz$KP!E0FV`nH9u){1S|3LHr9Pq^v)qc1>$w z@~hU^rmDI}WRLZU%zv(jo~ZaTmak*MJDm`HbaMJHDt_VQV<-4T$rn!0wo9^$w-LEnssgB{hX5igxr?vd512rK=LF1z?r8r^`xb`>a|4*Hwl%0PPhz!-7hir zy*_E7r62e~ba18@B6Vm-#=v=9x>|V>_bT|HR!)bIc@~uB&GDj*9RNA~4k=PBm)xRG z?7*+^&jljLdBU!)MvE}fNM-+NVPd+L^S!oV#t}s9&@d|c3mUWro|$Y#WDKjF5LQTe zsge%~iDE4DV0~zCja@o{f>30`T)2QNlxYfp&WQD6ao>|g$Q#E2g8K+y$nW`llKYey zPW9U`5^m%>@eEQo;#r&7(q%A+-&N#IHnmoX9k4$fIXKQnW)q_gGqY^8^ujj+5(FJ1 z8@Z2_QTG`0{mMxHV7`m->VZ-8H!bE0?Y{l;d+8%?7hRZ`ncE3$&D}}AR z0>C49LE@%fw;-*G_x)alSasB7GF@asyFuwAv$Fow*3^T?AD}q4aIQ57Xy`NywG)rR20c%G>0jKeCX620H z4Pptu8$*n;bXqF`^slR?kr+F`$c^LR>*gHWB}_Q5S_=b@4;VRRl*RpDn4es5AJ?KD znAj%FC0iP<1SUeHp zNi)o%VXB@ju)mu+K5nhMYO zE+_!ZVN{H{d*e2(vK4uIdlE;m4+Pzw*pDV;>xqAxP%F10nfc13jACOco!(Rs8a8{6VEbe*Q?>WDA?GI(xH7|Z3Wk3p=*RTKb)TAX`mLyPHuY3 zW9cjc5^kkf_1RJHOdZ`FV}Z5wBpoE3p6jUufa%I`jCa;6**C`3sSbT3rG^M*WvQq z|HW+1HG`^2 z24a+U%ol~w)jW}o73ys$lO=fsfwGq@9B2`sqR*frUf05x=v813<5Um9oPEWIuG~4f zb|kcJT#?xtgGuVcIEN?mq}NLm9=Jt^TXmyDH#&syPO_%pSe)~O62^@V0V!AqM+^WG z@m3MLiIX_yoio6CS0)*KghqVhL~EyA>ZK)W<7A`t7E@_mS+uP(P2IR#kOpYkHLP1^ zf^je?NzWNwJr7{^{37N!Hjz%Og)L{!X>NVOLOj(h^eV>{2#h@pYphQHq#Li1+;o@2zPRy;4;r6(wq z`%!fEOM_a@Hq)w0EOGx>Iw*V3>+Fyud&)g!aIbvAlM}gPx9*bi@O)P6J(e<#TJuT& zOVRL9@0W}};ftry-H^OmyD%cfo2`w0{J)R90{GT%;gcd6KOqhykPkd5D>*rUaI0y* zh*h*Y>3b(V?$w3fxpy(^7Y?9$-t+^96;>NiELst%$x@ajc+3f63IGSxeybpe?O;}~ z5E2x%&)&p_ej-X9YCxHM@zM6Fsm`BH*PST?G2zV*nV42oTTs1sB=KLyp}>yE7t@3jgKdfks=yB3ZML2}va;3J^Xi ze;~;m;+yic->_IKnIRo>qID;tz|%ueuo6zUBwSGKa-r(ouub_!v)DixMQ%V!#zjRHecxvaUAs*l)qYau)^_n{HkS_={hP zinZ7i{L^^b5HA=0iwwO%{7dF&toJcBLjrW>%=x1EpAESU1;A2*Kx;WpTTaLhxb0xo z%!Ny^x^K71p8UoOp9oCSe9CNK#N0`+#meWLxuMpL>;aen&Sw*Drva8_`aJP=JU3{j z3KE-$dM7|y2yWo%f;I@KbG=&XDZfa)#`zdhs&Cu9%8S*~PfVlt0txzo)~z+7sf3i3 zUqIR>U7XoTvc#?lJl}>~J*#VD&!X0Q7bI+TLXDUBLEMfCM|ZK~wF9t|i<6j!Vj(#E zopOTllxoKMW5~vCzPlQmL`FSzaJ)K=Sk$a!J<3%C)DGu&Bu#PP#GJd=$WwXnQcS%F=E)>*yyP&>PzJ<807pXt(!(v=ou8@FY$!`jOg3Kpj%7zoX()b8Qkb1z7O zHNDjm*FqwNxBNBb~sUVV}Q>_A~r75M{=uJFoGpu8vLR!*y#{zmzPj($a zGDT!P0gG9W5LR;>;ZBOLlNz&t2PL4rzE)?}@yFA-0p{{ahJjZ2d3djGbz07d^Hix0 zaVbJuA9g)8v%i*ch}Uo^s_EL`7s#B4bjTUg-+Ueh40CgX-&W?OR_hTfo({fpgMLn7 zO2@_~E?&dMrjo&~7%XP(y1Hu&ee`yXk6gz!@b-sv z&X}=;?M-*5pa*c{-)?D0IfYMy~4cmMC z{#P`vtat4g%%L*R{j>uY+ ze;sU)AqZpW;!gu+easBNGQO4yC1er|Z&-4=a;@64Ytu`R8o`Qn#iGTbwS;HHJmMZv zYRSmlwrAVR>fI!&RPRpX`ph}bF?sZaI-eo7SHy+oj$SvMU|A&Bp z%HMec`48aIlD$J*`M8aB|MTDWEh>e9HW)yFe_Z-@s%DaZ4EhY2pNhv*5Xla&rxXsf z1jOQ~(x_YmSHwZ|3De`CqA8<=qaxyi7mQIRA&Zm?6e~@4z@VlSn+|sJgOQP-q=!o( zijGHQiB^ncDW5tUEXu?J~L?wCfab3^?B(ARdpm zm~s&iKs!kA_u&xGDhm#k9003vmlZ_GvkFGcjS9}*T!q0umlNJAXAMX#flU&5iV1SX*i|ZYDaV=4m$Chk}F?(0r&Cp<|<4@moB|A@S**3CzT@mR;cox`|K zfzH$j{`NS@-S77I^jV5m-qa7{?=Nj|%fY52ZU2oo);vwd-#UF?m;1CI7tZz%$nNN9 z`|NCb@6KbCt!?LtdQupF*2jMF=QeHUKGo-`HUixs5H%6;L=e;u;Y0)?URCeo9rq3g zj$Clb71un)hNpRkXL)XH=j&^))AwmTI3Yp%W+dYzBrN(uVPOGWnX`5sBt{Vbzy|n; z3`NEGyDG5`TK0we>7U<4oqgBk~kX$*s4 z8;g)7Y@0^(;5-1)W%qZIqX;$*All&dD1wax0vS0<_W$3Glf#Od!4D&*z_JoluvXSW zsEk5)EqB|2(WYJDMSUVJ(l{cz$2~7|j<9~@xk3Ech{cHv5`@CB^sGC(EaM3cv*rEh z3jh35(rOK4*aI8S*z~r%^4DiP<40)eBVL~We!o7~KCg$t5%vHoB(jMepNf#taX`XE z*bl}8sP7S-IkS7&fG=P2(&34GAzUq`PAR8fWPr9An}C7abRs#B5EKvuiHM_=mQVz3 z6z%CEU41TpbJe=YpRVg`U0=1|zKDmvZ$IY+T$V^2rRhrR3L2L!f7#8y(rp01EP?;G z*1z4NuHvqS>FH@6!hS@blPs|g2=l)%3wrtZkZ}8CfP~9Ceo43=;o_Im-d)*Fc`M~m zf&zFtAOTpmT(0Sy8PCKMT&hGRoK}Wc`V-ts0L;5zJ842FypD$gk*-!LiBeC*CTH^H z%(gF+O<5|pEL}E4vaQ?);m2(0u%&B|3n3z&s*Cpl&bL$rFwkHTj;z3)Tg1A21Q#lH zEpU`z8m?gE|LQa6|G&-3RQJ6qNz=x%TGIy7sc91gS&fF$T}};2QvK?;{*=C+{y-bG zZ6Ym0m%g+snpuR{oH=qt6eJFbf*^3X;r^dZv)!>gJ~;&ZdLZs|ZK~1Vv9!CR5qK?I zU_$vomP{xg5$URgS4XH2VnEK1A zmLSm!;sQlG|DMNwieI|McVgeja0HDcAY4#mRAk*yiyrMsZ2VnQTQ^hcLjefF9|i8HUo(CPv<4U#U#NnvN9vEogKYxgrJ`edh&~D0LK7i9BP3rlzD9sldLc#&5Oay-YgG_KNvQ5@Y*fi zn$StW+(22vq{-6!n6wwKT$g7}5)EAXmW$b&;+rN46u>?#aW>!JSnkGAY~TdW)RM+U-d0F2oSBC}Y4X9s(sy_9FI%mxGKD-5 zCd^l$T2gSN%#LFd$dk?&E&BjWCSwID)KvG5Nf9ZFW6~sv63Um!XLJ6Rz+NGf=&*tn zq||Gfzai^hFtLmkq}&`9^G!G2aQ(GuP^DZM3k?ZL9Gh=ODN3K(*L_Tpd+!Q=ZJodD z4}abYd&Zf_6f0Q43RbX!6|5iyf*_~U%rj-lmWu&hh*!--Q7H2aOj$4n;)1#`f)gwi z_|`UoPd%<+$H&4D6qux;xHtvrb;yQ2`yIg(3; zA;49=dRS^oL8wwr)Sq*?A9UB1;gT-|Y|9=3zpx12} z^);Y+WG}D~1q$eZ*(d~N8fpSs3ruZMl)U5q=vhLRX4k<^qG<=~q zAIOLDHa?1%`7GYfZ(KyOPFu8S@pzk$+YP4R39=Lls?uj|#MG#LHZ}#?QO)LFygwg& zv=X2BjEQe_0LFrL542@~))Ht?G)Nsx1_k*4AHo06Mn%Brc+@tk9L0_jMs7cn;R-a9Weyyokg@m>1W}#tJ#SAdn zBvS;bMZ{F-WbhtPGqs|+;-j9KMj395w(9)_9W?Wru2_?|(3Lq8UA^{h*I=su_bq&0 zK6_Per$Iw@+hLbI_B!N%gFbh}un~vtcht#ajyrv#*Qtx=&R@86c7p}xn&(6Fec&S> zTkKN{EwbEF%Y5b&1J+n+m33C@v({FdY_`QV8*O)HeQ3H=#;|iJ<5bE8X#nt3xRqHT zB4DFJMMy#i5CD@~21Ck&rUPiIf~Fg2abT#u4E3DhJJ9bsL3{f09>mF44xxM0cVKVs zp+#@qWIADgAz#u?w;P+Sbt3)m;Oa$*PPD(UjDtoVtl=lu=f^Lce4g@5LPMi%LM=}XH`1Z!S_695ed*M{|k5Qyu z)aiPq{@p|ESjTQ%0Bg1KC62?+%QHz_*824`tgM#?P8n2>>Mv5;*=lRnSdh+nslaBd ze;Y5QldX;~d~VSEC4po>PKQ?q8^8ssleIt^dBBN7PZvu=p#()_CBardXwtGXowWU9 zHT`;>BJSQw1Vm}*Sg4xYG(hG9Y6HkBFslVH{}=Q=gZd5ZX#lwfDQ-O#2AOn6C8U+8 zpT@w`GR1Zx@`&axm%PU$o`BQYEy?x#SO>sWEZYm)YPGK>5j=2ZoU_tmge|X7f>%#i zm00tIT2DP%0d-2tA!|zrpH%ATb(OHII>7hT6iQp2#HU;L`zt-Twk~%{JE!J(>U4j? zaG&PN$6g5aqMsEskH3!?VVqDA4H*oi{Lu~BL4On0T}x^uE|u5;)5*wF!w=m|*Y zJa7)xe#4;4}lo zE2ng>w3D-O5_|g0x-`-3>1^R-@cA znuo!AmKpo!{RZ#*L@`W4L`lNYllGn(Ny;21w98U3l0!Ju;aL^XUn4&fQliPdnFYZS z{$Iz$K;TuPLY9FcuI`6gX5}2&4jT(_RVoWyf$NYM zCv9)&=s#g-Z2I@U7yS)gaJLR_EPuM5Eh!}nqZkS{}FfVo2#hJ5*55{!m{wnTI$+g0m}__GBBSddbEhVDTa~E zZ_rv}wYygg!Q%RG!joo0=M0&<>e$HYJhrm&fjgDnrb~N#MeQ;b90`I3Veww5b9ZDX zqwxRs0m1bq(Mp0@nuRw(3f%)|?}RxEW4{DkM7s z#do=f{LW}Vl4QlPDkeMZ;Z}O`mgG56%1Up}#qnB|&?qNU)!ooAmZ-oB+9>b8G@v|M z`B(-}%&^yTL8uc3Dj?x*WnN5w3J(2@NNc6IO;rm$4_e&=j`d+MT%4+hDmBU#5XwPV z*EUQg7Mk66`MBV<)v4J-ExM-?kCF0d%6qoMe05B_L3gvkyO*vowb^TcE2Z!Ej~Q@U zG?$MJYo0_2fp$`0)>d9xwLFq@BVcPSh9~iMe_TnAp<6ciIhqZior{ASpWF(wCa|Gp z6ZP!Q;ZG@D#GXw0*ix_q+An(?RN5@2N8*DV0$t2|>zk)ok7+d9mu6h;vGa?s(i$h< z%@(kdQSyYwS1Iyu&P%<~6X`&Jhs;-b8a!n>?|gLMbUAe#2rupZdIuwQ;VSxH8U{ew8uucS}JDE3J_8Z z($U&>=sJTCYOQMYdcey^gdpm(bU2?L+d+l(+t)+gEdKkEky(agbaHwS3Kq>}laDs3 z7t*6}TMXu=Frgg?2O(E9ZQVH3{wEZ5pMH9A`DESsrDkR&&Ka3~s8C|` zA40K_!%3Kyz{;UCMMj5A66G_pQFYdI&hHTkxCar5WX1p99fVr_{q7%5xUS+^RA}3qJx$Az|)vDX@cWu%;;ut+98H$-;Z<_buZG1X82c0iiPdPVmG_ zG~-jFF@TrKeykkC%3dt*25vtF5bIYqQ0w%(cMGBWfF!L4S=jDniCL@=E)u35+op`V zv4i-}tC*Oh_FDSEZ%%2Q(na+O4}-oIAU;qV$Y`sMwiWRN%7QHW_6-ss+nP%w>&c(x zD0b{=I}(UuVzEm%E!)gdUslJOjk@yQ$antlwB*A!wbOgA`Az;il{~3`z4_kc2Gtr? z0WY)ATj_dL_fH#Cu4g5w4?OJiDuWPiD+xmamoPQpFQ;q=nEX1#Z)D*y3c0Uj(ASa_ z94|)0iU79)P<-~UDVUJ|hq63j!ab7Gsg=K~>`%hMZNZPi%f*$1bx_j8pT9`b>AlUu zVCew?YbQ@3T_*(8emu6iwICi^pi07kbEKJfhwHnrB{>*J)q{An7l2C#W<8x60lrrr zHR~yfIleNW%io$ObX9E0l8DuCcea~Uqy6`#p@V<-f^BB&vP%!`WGh5xcW&UWYSy)I;`ZDy1z;XiA~s-y+z)jB5+WZW_S$Qd4pp! zg>R38N{(6&V*?J&F$7wKan>yrGY&Li%T5pFU@#y#!7^kiz$m3ZEuZeC=6U`kD>?VY zYX}LeGILCTizeH;R5^P4daNbxD!Ibi!${vj3=X@iE36KYIkWzE75z_TMFR`llMHFR zlV+Ewn3kZZ@NnFoNHIJuJUX2bF;B4tSRDidly82AOWn*f_W>11SpEs z#T`Lu-4NwKqQ7j?mW090e9q5~)n+zAj2S?f60sf~*Q_#=qsGtdvYWupA&m=W*oWxI z9@F#>ho?Rmjm{XGg{_l=Q-Wk>?S{3uFSuaENGVIGMMvUYVp@H%g`Y5G)KvSrbNlK) ztPFthv7d*T+VEir(z{F4@M}-J@7@07_oi+?`TbfG)3pEl{YoEi+X{8OsdAxkM`GnO zbBT(x&~8!oZ~{L`V@KD0x{E1qnjE8)J8n}Q$|Z}W@V?5B-ayEk#i&_Tv68=3u9o?1 z>=^FPi--<(C=d4Lp!)7+utmLe$szoc#Rg8i)pzT)E`hb5Lt{_R><=V4+R;~KcWP-r zq;}iOnX>HEnvkwL&33zQ1UjeB`TeD@!N9)FeM9-CNytQHUb0SUn|*U z2$z|GW_x?Au)d|_rbERG)XK`LTEc-8wU?^pYm2Esw95!5kDoi>gEj*^ajTBzbhAT&#{kWk`{!_7N%kv4}`h8}J z%A~uJy^mh$PWSnqC5}U!WuGjV{>7zNqM7^N8#RX#F^g}IH|R%wFz7#RECPqMklk15 zv@2flS6Rg}maDWe92R_r!;r{b?W%Ke*okj(gA@LaWi~Qk;_xA2G%=W5PUMjpOeVW& zvB{y*nI8$Rt=TA-+_kpTwT$;19V zZACD558tYh!rfE}Uqz;79SEQQr8M*FFG0^d9X+KnQyrahU0|ll6MEw7-%ewnUysz@ z<8K6XN|S`P#@~wT!cVU`c;A2DJr5+l)HfRQBp@RRaH9Urp_Ep`9nCdpMb-yk;!uh% zCne0;lWyJ90PIOG*%L6P^y@xO*MHpK%RCPG{NJhCDBlL<*|gEFL+?(ePqQ}j04Ns# zn!8V>G{39ms5o+;zn9f@{hzkdTgu%~RPfs>#XzxtTj{IwyRPwuA7Y)h%frimg&<66 z9?t%F+3+tFby1I8YGgsKn(ZbA*2ptWD9U`}5gp~`bB~H9y=)Zn>)841I)2m5gc3G; z+Tk5LrX8NmwO}IleQ{#9_`!6%MVqYbs?;Ve_~{SC-ErbRd&Gj#mJWZ>KW)$8;Iuvc zUt9>N zcm~&sjVRW~iCv=W({W~1va*Fe#*yZr%2g(@a*q3l>YA=KC9k>3ktFRk4ZB9av7NDLBqqpF1DT=QPL{{uWVYt6X)rU*9u!h`W9Jo#`(qKQ5XU zYZ^(06cPRr+vqRT7St@LNgMs8JvK700iN0jpFR?6-HS>`SB-pfC7nl<0n=2n6+zr= zuLsx9WMdkcz~=ED0n4dFfIJ!PtXyOu##VNf*Sbd_@w%3(s_H!%UxH|#RaeQVsGH?^ zw{x0KYLHM(HepFQvd>oA8D9|_uFrC9Z;0y}NBCfHi?q($iP>_A-wqoS_= zO_Bl&_9;7zx~YL8vBn@3G1=b&Fr+qrA&VTFT9b5j@RWM}DLY-FQ1Q47f-1wD8P4+5 zSl9%IN*KY%V!=={bT2}U$oCKLV1V_>cXax@Bv{Ybkz5XBB{`OIirGwr$)*V`H#|Hu zJTX`y`yM(uLlqshwhrJ7SD}_<>`k+;X@Qg$%cGY>IKxW~i_&ldcN?bK=b2|hftjWA zx^Glpa7{H#GERdSrW`Gv zaeaB`EI?RM28pLsq_6Ur17i*8la@?$#h~lUWchwlL*|NOp*wHVr23kc7JZGBc54R|y?r6=et|lt4wx>0GDf=hwmKu7U5mruYT0R6WF0vF z2Sh&NhkWwCpB4UH+flM~t>V8e8|W+a*e)CDxsLygMa3QN1L&KOMMSIEq?0>avu=^59T74+~u-sPAjJ=cfDde-?glwXBmR zPV7Rwsfd}U=VTcG+E%)mc|k=8OK_f)N&i`Md2$RPfN2 zXA{AX2=w({sCPY`@CZEd*_IGob;NGWd24z!TmBVoyg)d1Y5#@2zpdTB^%ky+l+DY{ znGv0nayN)dZ-+e_8J_jgq?~JWP+u1E`-$s$b)A-|ptI=;;_>UC30=OD5!e|G3^2+! z!D#b2`_H@?kr}!Fd{P^!4P%-cjPmnn>VrNjqL^KQtrF|{UsJi;DMZ9S`WzR+=;W|O zMo&ghzK-_dSoKT zdgpu>;xV$7O-!eUHPL2e^)hLhQYNrjZAU<@ms~GJp&#Y+bHj=Qc7NRC zDUVwPYEG(}v;~GCPogOEns*)Jf34R&FQ>i7JtzNKuy;5p zFzt~OpNn@hcGyy}Nm;?={;qc<{=*T<(&Vz)>@~Es+!-+&mRpOJzsSh zra%r3+z%k%Zx~VPNEO)e8`5%G#?LDTRH}h$)fFn0DQCsx>Ob5q1fh^9P+{7A!R)&( zt-Sf!e(&pLktObb>UR9xU^$p(InbEv?##%+P!1rM@!*m324@UeWa<(;`p$nG3Wf9E z9W=f~rq11|J=q$#fFL7~J%7%oMoK&NA zOlw1UZ1o4t%`@Q}vcX;V%BggeGKN0?v!06n$;zs5tJJA=+f7`S@pAk!%gAjv!e-4G z*|`(n-Lp7Gq(O7X%aI-wYRrxd{S*63_e=Ye487T*5gwF!Id?P$BXX~)>yrW%Gn-K3 zwI0t=6|jibS3aE3-Y6m2REsn;u2?HolQBcbyc?mgRNN1-OSe+%<1tu<1Co#z8+9n4 z==T>fl%Bj#k?*OGSESdvYt_&SZjnhn<;CJ}HlXz6Q_6gALm~#NcUQF2e+*uT!%$0^ zW9Q!#`nG7i`&aDuP2Stuy{R>IQ)|cG*2zBQYn!jS=EFpQ)#3~~`~o50P9_TX=n10% zrHpwK3>G~tu)8KEW$$w}3@4qW+GW8^Tpi~VxpuJ#Jg63+&GZ0M&tOyN+2r$i^Jpu@ z1)B=QD}RxXdn5hU>a5h*My=wm*TQhq$Ver48;S|+_-OuPWX^}^8dfGF~X>X(nM@f=mSKdG?=f@5G!R8Tu7(}$i*@ne`1+H8Cq7MSnm~K zEyYW=zJZJhNG5HT8T5Lk-l&&lX>;Pfw~F^_EUnaNT^w!V&C?0H=g5I0O8lia7iVV4 zCIHv}ea~yTGs}O6*6dY~n{=~uP2@E4=ywI;NmS}2aY31YrlMAZ3#?9C>74%l`Eg_S zlievHRY4)(>}i$#lB=PY(g@ifTQKz>>2gQhQHj!|U+5j0?=D|;Bb;7e5v>0((WCJy z?0`^?k~vCzIo@Sgzu)=cyHQ&I?c=LO8=1u%X&xSK^{v0T%(v{(dLIna=nf>yKTy=Y z1y_QdWz7v!;@R$H$_?0GKIE>~X5d4#AxnC6^-Fkg~*lcMH_FzZ#f%*_odf+HrR zp{FAK6&j3sg~mVV(xGo?1qzj3&OyH26R|r*Cw&+y>GgOp{1%3Hj{!X4DlI%F`O@zx zl)tGZPKj2krZEQ3H4zCJC@@-2EKqeZ;zo73tBmwUqrS{l-5?|l6{-t|Na-Gl{_LX} z=^00}f7mMyZ!Ev%qOYqL*mIqd--5da6P{cBNbvY22=wLtTTaERV>sz;dhXLtaL-n~(Z!=8ty=2Gx^LL&Y^R$BH(WbvU}k|`{)wwOlfKLZADCNquvZq@eH z>bX~gcUgRv%Fy{4xO!PVEzV#5EpI;qi+h9uBfmrE?y0?%dF-xqQ(6mTGmgx9&gJU0 zwMB8I&Lkr@^DZ{mXo{THwa)2n6y`EE&!9dq;R-4Pbp>~HgZZLUJJia)e-xcrHYFpj z)C%aN{#W2Fd_46lnd~bnp1%eBs-Hx^s;;TfRQaU#+r~RJ18RV;>smJGPdXAIiA{FjhkD3@6gZge% zfxV~Q$6mvDI9w@|yU!1!DF^MlIPlY`PlMwG{eBAkKMT?n zgCd|>t}KvoTYKKCy;jgy`Xf0m^hTw{xhmI-jVc$e%2m(RcqMmgSOCt|`izoVX5Vau z+GQY8v-Wm07Fw3NZuYp_271Kr?|Jr5)|D;I{^g$=zj1@f{>i!q%!WfM@zJbE!`>jU8@`&Y6HbSj$PaqGZ=fY}u#PXa8(GE}*oZ%76VWaD# zOU6Xp!EL=k9q5ig>{vD$;`_-M9-URSSDkXwlfl^GMj-Q`ELl=0YZ1hMzr_?#vs3@g$^eOlf)DZ#6#?c4G=O7FZI2X0G z4)I&RGkQD+@o%|IWwxa0{B(!N8;ICV-4NH(J)-RIz3`sz*n4GPJ0*F+FVYKpFMj7m zykl?4!*eKLkGFC`sXvbV=q%a?H zh#(8ZvW#R_lC9ejV;KZ?n&}Rr=t;~j??wv}Q9TY++4_W~3^?oqgxo4;g!X?_Wh+W3 z5naCqfG>89$mG{l+<%hFhhp)X0RoJF;b1D=>SYjb6jxh zct)S5j6$KDItUP4A%M!N^{UuTdX91x4gj%#8HT_v@hb4%TMGr2LjW+=uTIIdrb)Nw!W!Zy%dUca1^&erw5BqU~2pkjp$68)Q zupBgMYKjzcSmh{u;r7qsGGTkzC~A0g$yh@8f-&RaDAZvv$R%|I(?J+#pzeZt*|21$ zxA0or(=czBqiM&|SDho@jwugH1@pA|O0az=}@{GMcodYO8J&!lLftxGrax`O=HO)=UszP0_F|;p6 zEVyNxa)}gtEy<$Q9QKwDL>#N+?F7@Ah7ll8k;o0E$hU)MBkL z3z9pYreWE7<1JtyW)r5oRDyu8X3YATAnA__E9I zC_~}L3~yzI4M#YO39W;yE*-$oco3~yPNe}09H%L_v#;Q}X*kRr8S31pP7UDhX**LH zeu1gZqT>q|r0o(W+_PF(2LnGgQ7CCdqp(-3u2>GZj|-xHnfN-~Q9H_nddxE2~n+ObI1rP|>E15EE*I~6I4jxbw1Ckk~hQtMH#H3f+SjMcI@Nr{;B>>1| zp$)PCQ}r?;hkz=C<|@<+$YLWUIE2wCaN{Z3XU>gKFZ#k`Mn92N)~lT+jdiBp%?)f7Zh@5*)6z59mHJetFgIGb78 z^5*XHGA&%X5UAh}7WKuDFFV7{7Mu+(k6@S_n-2oCQ4+QvTUy)D63bw`+FOpWubT;v zYR8ipP@nfPA?+OW=q>^%iR;{Fx}-pJ8O@58?M`O!!Al@1q+*ns@t6X@G?jV7)eo%P9qt%KgpZFt={P7h{|^@<3?srJNEXu5m6rwI=3DcTd&X=_gf6O255 zMw&P_9M^_)E9#~m%yI$Z9yP9v&LkAOSw2VXzt{V@HmQ9rG;GrezsRYN-qnua_H<7# zu5AKexYStGq;hj;(Aww}HMA+#@A0F3jc^e=*g{Z;lY{M4M;K0&q=2Cd;y{DM!bI-p zzzy&oRAA(%P*+0S-m3uUg;Nq49o%|C<){nzH6F`DK z8tHsAqg50CgR`NUYU$RC(Wu>wu2ysNCZkxO02gyInm%Z}-_p$VrpuXMvyD$u!c zOJ~Q44BW9w1;nrlu2=z>7`TjBQUKsp%kuJBMDt7zqDVS-=aJ6CE9M%W;yP}h*mW~B zRLmFuqw&_5r^#S4qZD8)n1dK^v(Dp{!sKIfm1ebovf*w5E~F<`IG=`7;caiZ<7km% z#1J2q#(wS>i2Fb209IjDn=rh~ASS%-#MW3&6oqna(@*dASFiJ`d9=wTgpGT=^`4%&^!UtK zRO6XG)4tv4YA4c*)2b^(B+omiZ$wO5Y5)6j*IoJX);+^FcsNfFV6JVS{g$_!Cyyhl zZE*(Qof8Jq_ulxK)YemW1g55CWNX!x7rW(5fAOL&5853lt&f#;Xik#YEqYso*UTol^*~#kP*FWZ` zI|mhOZx|3XxzNHaNNtfnG4EKpT3GMxy?}vjwP*@ZC>Krepg;qL4*wCyTk$i63r2V+a{quZ6P*q}S0KGASYGKGDrv ze?Jz+NQ;uCJD<;U ziEp*&&l&i)hcsKI8`6XCy*6Vdx>C!8$`Js=0)q%62^<(|5{P7JuI+n~2JIAs0OtY= zBllaFeFD&r8qD#A>)FQfU$Qecr$@$}l@Z`My$AxlkM8bB7=>a-Wmqm?pkFO%m#qp= z%FjS?bXh=GKqnz)K+J~_4`g9H^lJsUBUE>T8C5Qk#0|%}iAS!;bt`Om&$=me z+s}uXRJl#)EH(-TsjnD*eXhS<{|Cc}RQCsHhz@)9KGna*KZIb2e8OHe%`4W^!D508 za1PK-{wm3BM5MjVKy6YU9(TBN7v@s8x7RsA;^FcvBHp!y9U@JTh6H=;d`VgAfvwaD z0CT{(#fE#0@`PVJR<8e5tX!s(8>w|vURGgWTq}?)l6noO8dn&H>f`s;5BzZNyr(sv zA26cP+M`-BZRfT}koGk!t>gqw1KPqy8M*3Op(2 zu};!Hfh$0*-ib+~^u@8ZAA0TD%_cn^`{P{4Za^uIMeM}f&FNm+RDzDSk8`={(S6Ed-?D9{(ZAm)05WjA8^HJuO zF5J4q0t5?W!99m|i#T)uFSM=~Q2=A=c!M>^erOu)gP0Dt{P^JhfNfl+)8i7rl0CgJ+&ggf5=@LZjM3#upWW79>Cwvl~l_>uxo(1idz@B)yn$KIDPR~mVu8Z^vBmJ+)@8He-!%9D7M;O!=yE7)>>ipz zTb%u!OC#>rw+oUsI?&ka?oW}4umVQJF#A3nPWEK?dVAR2?-itRMdRE;rp`bHcM(*@ zoro=6-Jk&=EoD1T%9B4dQ>hQWk&boPWC-TLUTF{wm|YthK*>=plt9Hyp6+opnW1vr zPf3Cp=FX&qn*{8rU6DR*!-dpw zx@93Se&+!2o`oecEL(;iPtMUdWS6wkbt!<=6BTw!7#Ih*utMi*nHadIB?L!nkF5YS zi?qh5q9vFGdm4HTU|bSDuRteg6TI>zxWbK=>Q*f?19#wP)Dmc0sJk`PtkZA+T#RY6 z0e4OL5$7qxFVB=q%vxyrg{_=_J=3xB^-L%!j0@LOD<GKQs zeSW{-njzoq&3C;8mv}x1qyCuF|&<#&5y%hB>+j+9RAdI%}==xa^U4p zj1q^rB_EGXyHn8PHsN=(CSb58|DjO`LP3aI0IGkBsL)W~kzoG!O&C6GzSa=&V*wwUz zS3uS5cmMaSUH?_`8qW{IbNv_GKa(IcE}wUlVjYCQWXQ9De6H4Ti_CvQUKTWmug~=( zzQ2_K!A)?sDm6z7{ru`5^DpIXi=Ait9bQ{8TLhkO3CsZ_1WWo?4$c<+?)?U_hZqKQ zHW79G+3W%a6@Gz$?(7@h(rNry!I3@>>ANlOWjjL=l0fcOZ2 zFD-+WQ;+xc9-;JsuGBV+@;tdwyPs^b%V=PbH8HDc(boz4jhL#(0Ppb`4&W;&G^mFQgE*l&bG?m%u>nC`M?~WgyRxwOUsyl} z2%Q***_er5z0X0#7*N2RSHQe8R}bKZZc?Fy1u}5J&@pllHI=$bs9#l$2*KS=s1&Ya z%2qirE;t@IG9ZbwyLr1gVd_?-WCRB8WqQy|9adu{7GeXoV5@GFF@$Zpi(jnGl!qI} zVh8##fZ6yRgE|@Y+kSleGFt(y8lfv1;0%Uh5f0RAi>;s?L#t8%+6Te^{sEaE7sP1? z3IQg9Lcc*FFkWjZu%`uZ)!lp>#n`q@n5^8U(sZ8Z%C}W~)!Swwq?9K4Hh8RK>?BDf zuL##eOq+U19cERQ9&!`kU0t-PRjeulD>DrnrzX{U*tBTYf~m4M!J;{@0B2H51yonuCQ7cp$DY}qIA3kks!B)7s|pb z)T9Z4%-SWnno%|Dvdmd8AEC8TDg(V}#KoWU!2S>@VPIrpW&yCWv2$=LRmR25!^_7n zpj=Q$SiVS6qQ!_6CtiX?Nsv`#mQ+(*bGo}Oc)qh^JhEp@4SjhZxQmatZfZ$1m@0Fef>UuCPRAKI6Bl9u7vW-T$0gBXOlFk4AzLac(iN{M3o=f@8Cb+Z zbY@6NHnx0H{cl)k8I5&zR7(y2IUg%kkL8JfMYUf>&nHds>i;2!i6R2aFrypTP-uVL zpO9<(SG|d{lK%Voh=OOfFJ87keiLN3UQHdy>4vDr%{{ZgFPdO?0<5tYG9qiTmkC*+ zLsv(ZB$OXdVEme2nF*qW@nuxz>JU_hM1rsioWPnPJhn;YOA%u_E6Sm=`^`G_vzi6t_U3Rvx(>?BUX}QFC7wI+&f_c-{CZMJe3S zmo+2#%0}N@6fM}sEbV2XrC#$L_ + diff --git a/internal/loki/ui/src/index.tmpl.html b/internal/loki/ui/src/index.tmpl.html index a2cbe29..1e8ea46 100644 --- a/internal/loki/ui/src/index.tmpl.html +++ b/internal/loki/ui/src/index.tmpl.html @@ -33,11 +33,15 @@
+ +

…
fork de AJEAN
+
diff --git a/internal/loki/ui/src/styles.css b/internal/loki/ui/src/styles.css index 3f57e70..b93154b 100644 --- a/internal/loki/ui/src/styles.css +++ b/internal/loki/ui/src/styles.css @@ -1,9 +1,42 @@ -/* ===== Palette ===================================================== - Un seul thème (« Clean ») : noir et blanc, sobre. Deux variantes — claire par - défaut, sombre via data-theme="dark" sur . Toutes les couleurs de l'UI - passent par ces variables ; rien d'autre ne code une couleur en dur. */ -:root{color-scheme:light;--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--bubble:#f0f0f0;--bg:#ffffff;--panel:#fafafa;--border:#e0e0e2;--text:#0a0a0a;--dim:#6b6b70;--accent:#0a0a0a;--accent-bg:rgba(0,0,0,.05);--row-bg:rgba(0,0,0,.03);--row-bg-on:rgba(0,0,0,.042);--ok:#0a0a0a;--warn:#6b6b6b;--err:#c0392b;--mag:#6b6b6b;--code-bg:#f5f5f5;--danger-bg:#fbeae8;--warn-bg:#f2f2f2;--add:#1a7f37;--add-bg:rgba(26,127,55,.10);--del:#cf222e;--del-bg:rgba(207,34,46,.10)} -[data-theme="dark"]{color-scheme:dark;--bubble:#232326;--bg:#0b0b0c;--panel:#161618;--border:#33333a;--text:#f2f2f4;--dim:#a0a0a8;--accent:#f5f5f5;--accent-bg:rgba(255,255,255,.07);--row-bg:rgba(255,255,255,.04);--row-bg-on:rgba(255,255,255,.055);--ok:#f5f5f5;--warn:#8e8e8e;--err:#f2777a;--mag:#8e8e8e;--code-bg:#000000;--danger-bg:#2e1a19;--warn-bg:#1c1c1c;--add:#4ac26b;--add-bg:rgba(74,194,107,.13);--del:#f85149;--del-bg:rgba(248,81,73,.13)} +/* ===== Polices ===================================================== + Bricolage Grotesque (titres et texte) + IBM Plex Mono (chiffres, chemins, + code). Servies par Loki (/fonts/, embarquées dans le binaire) et NON par + Google Fonts : une instance locale ou coupée d'internet doit s'afficher + correctement, sans qu'un tiers apprenne qui consulte l'interface. + swap : le texte s'affiche tout de suite dans la police de repli, puis bascule + — jamais de blanc au chargement. */ +@font-face{font-family:'Bricolage Grotesque';src:url('/fonts/bricolage.woff2') format('woff2');font-weight:400 700;font-display:swap;font-style:normal} +@font-face{font-family:'IBM Plex Mono';src:url('/fonts/plexmono-400.woff2') format('woff2');font-weight:400;font-display:swap;font-style:normal} +@font-face{font-family:'IBM Plex Mono';src:url('/fonts/plexmono-500.woff2') format('woff2');font-weight:500;font-display:swap;font-style:normal} + +/* ===== Palette « Terre » =========================================== + Bruns chauds, vert sauge et argile. Deux variantes — claire par défaut, + sombre via data-theme="dark" sur . Toutes les couleurs de l'UI passent + par ces variables ; rien d'autre ne code une couleur en dur. + + Rôles : --accent = sauge (sélection, marche, liens) · --warn = argile + (chiffres, mesures, avertissements) · --err = terre cuite (arrêt, danger). + --row-bg / --code-bg sont les deux fonds encastrés d'un panneau. */ +:root{color-scheme:light; + --font:'Bricolage Grotesque',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; + --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; + --bg:#f3efe8;--panel:#ffffff;--bubble:#efe9df;--border:rgba(44,38,34,.12); + --text:#2c2622;--dim:#7a7069; + --accent:#5f7f52;--accent-bg:rgba(95,127,82,.12); + --row-bg:#f7f4ee;--row-bg-on:#f4f1ea; + --ok:#5f7f52;--warn:#a9662f;--err:#c05a3f;--mag:#a9662f; + --code-bg:#f7f4ee;--danger-bg:#f8e9e4;--warn-bg:#f6efe4; + --add:#5f7f52;--add-bg:rgba(95,127,82,.12);--del:#c05a3f;--del-bg:rgba(192,90,63,.12); + --shadow:0 1px 2px rgba(44,38,34,.06)} +[data-theme="dark"]{color-scheme:dark; + --bg:#211d1a;--panel:#2b2622;--bubble:#38312a;--border:rgba(236,229,221,.12); + --text:#ece5dd;--dim:#a99d92; + --accent:#9ab68c;--accent-bg:rgba(154,182,140,.15); + --row-bg:#332d28;--row-bg-on:#38312a; + --ok:#9ab68c;--warn:#d2a07a;--err:#c9705c;--mag:#d2a07a; + --code-bg:#211d1a;--danger-bg:#3a2621;--warn-bg:#332b23; + --add:#9ab68c;--add-bg:rgba(154,182,140,.15);--del:#c9705c;--del-bg:rgba(201,112,92,.15); + --shadow:none} /* Safari iOS peint un rectangle gris/noir sur TOUT élément touché (bouton, lien, résumé de section, bulle repliable…). C'est un retour tactile par défaut, hors de notre charte et impossible à styler : on le coupe. Nos états :active/:focus @@ -1207,3 +1240,67 @@ button:hover{border-color:var(--dim);color:var(--text)} .node-target-opt.on{border-color:var(--accent);color:var(--accent)} .node-target-opt.off{opacity:.6} .node-target-opt input{margin:0} + +/* ===== Direction « Terre » : surfaces en cartes ======================= + La charte pose des CARTES arrondies séparées par une gouttière, au lieu + d'une colonne à filets. Bloc en fin de feuille pour prendre le pas sur les + règles de structure d'origine sans les réécrire. + Bureau UNIQUEMENT : sur téléphone la barre latérale est un tiroir plein + écran et le fil occupe toute la largeur — y poser des cartes ne ferait que + grignoter des pixels précieux. */ +@media (min-width:721px){ + /* Coque : le fond « terre » se voit dans la gouttière entre les deux cartes. */ + body{padding:12px;gap:12px} + html[data-pwa="1"] body{padding-top:calc(12px + env(safe-area-inset-top))} + + /* Barre latérale : pile de cartes, sans filet ni bordure de colonne. */ + .side{width:312px;border-right:0;padding:0;background:transparent; + display:flex;flex-direction:column;gap:12px;overflow-y:auto;overscroll-behavior:contain} + .sidecard,.side>details{background:var(--panel);border:0;border-top:0;border-radius:20px; + box-shadow:var(--shadow);margin:0;padding:2px 16px} + .sidecard{padding:15px 18px 14px;display:flex;flex-direction:column;gap:2px} + .side>details[open]{padding-bottom:14px} + .side>details>summary{height:42px} + /* L'étiquette « Paramètres » n'est plus un filet mais un intertitre entre + deux cartes : le fond de la coque fait déjà la séparation. */ + .side-sep{border-top:0;margin:10px 0 0;padding:0 6px} + /* Blocs encastrés DANS une carte : un ton plus chaud, sans bordure — deux + cadres imbriqués alourdiraient inutilement. */ + .side .slist{background:var(--row-bg);border-color:transparent;border-radius:14px} + + /* Colonne principale : une seule grande carte qui contient fil et saisie. */ + .main{background:var(--panel);border-radius:20px;box-shadow:var(--shadow);overflow:hidden} + #chat{padding:26px max(20px,calc(50% - 360px)) 8px} + /* Le dégradé qui fait disparaître le fil sous la carte de saisie doit fondre + vers le PANNEAU, pas vers le fond de la coque. */ + #composer{background:linear-gradient(to bottom,transparent 0,var(--panel) 34%)} + /* Carte de saisie : posée SUR le panneau, donc un ton au-dessus, et sans + bordure — c'est l'élévation qui la détache. */ + #inputbar,#ctxmeta{background:var(--row-bg-on);border-color:transparent} + #input{background:transparent} +} + +/* --- Terre : densité et accents ------------------------------------- */ +@media (min-width:721px){ + /* Gouttière resserrée : la charte empile beaucoup de cartes, 12 px entre + chacune repoussait « Actions » loin sous la ligne de flottaison. */ + .side{gap:8px} + .side>details>summary{height:38px} + + /* Discussion active : un LISERÉ sauge à gauche, pas un cadre complet — c'est + la marque de sélection de la charte, et elle se lit sans alourdir. */ + .side .preset{border:0;border-left:3px solid transparent;border-radius:14px;background:transparent} + .side .preset.active{background:var(--row-bg-on);border-left-color:var(--accent)} + .side .preset:hover{background:var(--row-bg)} + + /* Bulle de question : coin bas-droit rentré, comme une bulle qui pointe vers + son auteur. */ + #chat .msg.user{border-radius:20px 20px 6px 20px} +} +/* Action principale en sauge : c'est la couleur d'action de la charte, et elle + se distingue enfin du texte (le bouton reprenait --text, donc un brun sombre + indistinct du reste). L'arrêt, lui, reste en terre cuite. */ +#send{background:var(--accent);border-color:var(--accent);color:#fff} +#send:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff;opacity:.88} +#stop{background:var(--err);border-color:var(--err);color:#fff} +#stop:hover{background:var(--err);border-color:var(--err);color:#fff;opacity:.88} diff --git a/internal/loki/web_server.go b/internal/loki/web_server.go index 34bdc68..5121d95 100644 --- a/internal/loki/web_server.go +++ b/internal/loki/web_server.go @@ -9,6 +9,7 @@ import ( "net/http" "os" "os/exec" + "path" "regexp" "runtime" "strconv" @@ -18,7 +19,7 @@ import ( ) //go:generate go run ../../tools/assemble-ui ui -//go:embed ui/index.html ui/marked.min.js +//go:embed ui/index.html ui/marked.min.js ui/fonts/*.woff2 var uiFS embed.FS // cmdWeb starts the HTTP server on the given port (default 8090). @@ -115,6 +116,27 @@ func newWebMux() *http.ServeMux { w.Header().Set("Cache-Control", "public, max-age=86400") w.Write(b) }) + // Polices embarquées (Bricolage Grotesque + IBM Plex Mono, sous-ensemble + // latin). Servies par Loki et non par Google Fonts : une instance locale ou + // derrière un réseau fermé doit s'afficher correctement sans appeler un tiers, + // et sans lui signaler qui consulte l'interface. + mux.HandleFunc("/fonts/", func(w http.ResponseWriter, r *http.Request) { + name := path.Base(r.URL.Path) + if !strings.HasSuffix(name, ".woff2") { + http.NotFound(w, r) + return + } + b, err := uiFS.ReadFile("ui/fonts/" + name) + if err != nil { + http.NotFound(w, r) + return + } + w.Header().Set("Content-Type", "font/woff2") + // Immuables : leur nom change si leur contenu change (nouvelle version + // de l'image), donc un an de cache est sans risque. + w.Header().Set("Cache-Control", "public, max-age=31536000, immutable") + w.Write(b) + }) // api enregistre une route /api/* protégée par la clé de pilotage (web_auth.go). api := func(path string, h http.HandlerFunc) { mux.HandleFunc(path, requireWebAuth(h)) } api("/api/ping", handlePing)