From 8f66df0238d331a316c934d08f7cb88fed234f18 Mon Sep 17 00:00:00 2001 From: oddlama Date: Thu, 21 Mar 2024 16:31:51 +0100 Subject: [PATCH] feat(toplogy): add png and jpg image rendering; add iamge-name small cards --- flake.nix | 41 ++++++ fritzbox.png | Bin 0 -> 108810 bytes pkgs/html-to-svg/main.js | 6 +- topology/icons/devices/cloud-server.svg | 3 + topology/icons/devices/router.svg | 3 + topology/icons/devices/switch.svg | 3 + topology/options/nodes.nix | 63 +++++++-- topology/topology/renderers/svg/default.nix | 149 +++++++++++++------- 8 files changed, 202 insertions(+), 66 deletions(-) create mode 100644 fritzbox.png create mode 100644 topology/icons/devices/cloud-server.svg create mode 100644 topology/icons/devices/router.svg create mode 100644 topology/icons/devices/switch.svg diff --git a/flake.nix b/flake.nix index 7a8a3ba..c11360a 100644 --- a/flake.nix +++ b/flake.nix @@ -186,6 +186,47 @@ { renderer = "d2"; nixosConfigurations = self.nodes; + + nodes.fritzbox = { + name = "FritzBox"; + deviceType = "router"; + hardware.image = ./fritzbox.png; + # interfaces.wan0.network = "internet"; + interfaces.wan0.physicalConnections = [ + { + node = "ward"; + interface = "wan"; + } + ]; + }; + + nodes.fritzbox-no-img = { + name = "FritzBox No HImg"; + deviceType = "router"; + interfaces.wan0.physicalConnections = [ + { + node = "ward"; + interface = "wan"; + } + ]; + }; + + nodes.fritzbox-device = { + name = "FritzBox No D&HImg"; + deviceType = "device"; + interfaces.wan0.physicalConnections = [ + { + node = "ward"; + interface = "wan"; + } + ]; + }; + + # TODO: + #nodes.fritzbox = config.lib.nodes.mkRouter {}; + #nodes.fritzbox = config.lib.nodes.mkSwitch {}; + #nodes.fritzbox = config.lib.nodes.mkWifiAP {}; + #nodes.printer = config.lib.nodes.mkWifiAP {}; } ]; }; diff --git a/fritzbox.png b/fritzbox.png new file mode 100644 index 0000000000000000000000000000000000000000..ed0731ac1e766ffdf65611b48306dfba3e258e2d GIT binary patch literal 108810 zcmYKG2O!n$|38kujy;Yoj+L1m$DY}H@9a>7ki8N|_9jGR?@eWsP4*5Uin6i^A-~K0 z{(rvzyK}pB+?{h?uj_d|pO1AFrK6=xfJco7K@fqeih>>lp&=m%CX9mxo(YmE-3Px3 zb&!|WQI(fxaCLuf=ip=uLF`E{lOCw_$k6sZk}hO2#O8_=eNw9BUB(n&kEd8l>=pAW+(xX=*&(5p!Gk(mtzK7#Q>FCzL!`!4>2Tu_`@Qj&ggNsqTRbs-5zm{}^i+aW z-we_6QtF?V9z0y{8bvE+#hEF7u~A*on_+KW|4kP#-7q%$m#NOzQK%5W|gXG zO8lQGS^70g`{ZQ4a_6eBtK0JA`h!(>Y=qy`J$d&+NHeGor!8kv0~{i=yYK5P7S7g@v8F`+K{4yDI{_{{o>9XZNZ*4K){FS+H!>l@*|y+h4iuCCT6! zTvrtn4+!F6zWo>GTO{obp2YT4)l|gZM889bB^>tkkPSRV<*8`wDgWHr+1AAql6SYY z_OyM%;N#$F&!DWTsq-+HkP?CzAXNof1K+Q|+n?1kZ}_qPf$SjyLF%&*4{48I-HcCt zGxJpRPfU}Xt4HpuzoAn#67x1_{b4Ie>mDvYme|ug?m9-du^Nxn;^wf9{rCEpqW0Q50a`uk*DGdW;-XF7 zA}t;J7ujciIh2Wv^5JkQ{wJUR|KA*Tg=^nMqoO}$C&%-b%6VRUlNunk;;~n85%7(h z9FG%{$Qk$9bc19eiw!?%X#LnP^JP4}Oyq-oAE_SimmOHSM7hc18@qCO#Avxqe`1WV=Y9 z6tNE=6ffHOb}HAye06p8Qlkna96hjuK3E2lS~+-qczLZujv1ZLKplq$+0-F^{rZJ` z@Sq)Q)d9M}?c{)ZYmF}gJ}HmDQJ^6x z7ei#x>P--*gdT3)DX2N$5NE&{W-o|mF-H=muzGemxqk*8df!`B(NjF3K_YuV8YGA!$eEivwzmJacqr5cp(T@B9X*MY`w zFrm#;e|te{V@pe=W^*GVTG4}u4<9}xz|PYy0{*>~%bUPTv{_^oLf%%|;axd?B)=3P zq|}GBef&6`=Px$&@As(4%DWElU24u$yz*Jjzt>W%tgJ|B>4c~#T$W^2`>)99nJv!= z$NCAE#!2wauDA7KL(|*hsK5>)MXG9C?qRu_xsdSP@RiZ8$&-tF{zXD7Cy_OpWIj230A!Hz2O?YTz z6nMNon9QE42JYdeck8C7xM;vRaPcqP&Ih$)SyQm=!kneGcJRFiyb8nAmLOCKeHNr9 zs5juuTX4e5Qg2+m6FY2$Y{G2&jn$cW(75aZ3UDn+`EJ+J(ozu7>bN=2Ck#7((x(5K z7X~P)t6bYcy@6Dl!;RyM_@0K3?>wi*(a#$P66kXt1pSk|3X}$yf))&ct?0V)^32-W z8Wt>*i!0+$Z|c}?sa$Uw=8(Z;s4#*bOxZ%>o7W*xlvw(z41C&2dxqq})#;pnCs?Q( z{+#ikgk3T|)dv?9!?%6&zqf{1d*Pc`g!Wr}N~}MiGz^rqsfo$OMu~QgQoAK({vy~* z7Z-k4z1mk8{BK7{QN|_Hssvc*l{Ga5vyM?}`QYa+ja=oCqRHJ0Z?e)U@z6vKT$Xpe z>w<0qmx6AtS1=CDK3H__EE$^?12K+_ zF1eGlv$eZBsd7ARSDt*t>hZ-kB4aRY`&3+5L}b#X5z~q>$)#ql#|nvB*{6r`T=6cS zT{foH#h&+JpurH~!Ch7;wwwUcI^*9lPMVDw@F*|;5sZDebNqT~ z+}hF6k*pI7b;+4JlpPmGU@iC*5pHGHR2`O{=F<2A-yZa7=Ef`=B!U5SxQ*kyxgFf6 zE8u^eZ@9*UFH)6OG7a+9X#O`N!B$!xuRYJo+&gc`)nR8h&|Ng1*th}5FY_*v(edxfpM4|z5)QaY287I8` zI0uAf!AWkQeQz6L^vi`p7~ki2(Kpd>K=EhjyPc%fbo~3P&&9=s77GRjXrr`}zQmVj z`w=VqkI<|#i<<|KaM0X7n%>Xz$?ITw@3mv*B4WtG!@06)Tf{zuGYr~|l?esdGzNx! z$=XsE&QQlI>jG72GVWn1)&Gi+3PI)L_7UMb39|>_z|-l^A_U*KG0oHQg*pWW;^|&& zXZd_1xg#H)Z{_Vxaa)NG&XzuGon5Y=<^H+6evqn$2^K5dI?@~3BXwvQzoa=FXl&gj zzYcss?Vu>p!@n0x_?-z`x)z1ZT=w$Xbay!2y6M zfwlb^5g3>BKixJ|U?S1omJ|_*03~GO?d^@(NsU@iD&VX8^oej<5Ys-7-{ISUJ)7%$ zGStG>Y1<)lQ5nE1pRFMKI{=O$olcBBrOOMLjo(-J6$MAxG#BRX9mON|HlH{(e$x%*Tge zNe>rJ8Yq*-8+RYi6n$-Q28|cY&rmtW6aNQbA?!24#{+%|1YxdnIdwS0ubtt3-v8Bn z72`u+{=GM~Z@)1ITVro2<>{2d&c&dW^FNIpblcvo6M_Vzc4SE^7%?$1zN^95#BoXw zaoT1a>y2BNDT>{8y!MD zaZ2N2$=5a?7Gi~{2?R4W!2=P__?L>r-W5GrVzMLlMb4$tbqZQAYN8{tIm>x*{_EEa zZ(~-Q!mF#A|G`gyuv)okC*;WL33At$ZUS1D|D6S0&jrPSZR9CVFfEug_@wsviq!AL zMxrh&*FkHiVw$+{oEGKA+tDqCcDH}aGV%`9K(}vEq;HdY`Em_g7HEVrNCbHT2|6fc z9d3%GQ9DYy`#RV%y)avn!QTHH8-W1~_txG$zxS=OR)<|jK&f4a-M;Vwpx+z;_?ooj z1Gk<((YZ@+HJ{ufy zG53Yh{tGlTR1WQl&X4>^`ruPrTWn7R5wAFPZd8C&#}?H3hX=N5JZFhbzA)dlkY*^o z0QL|oBVVf5{~IbUtBUA49x%!yze7qq%pN}Xkm%5Z~o(qhc;{Sh5P2!NKOUgnoGkkBTy^9bZiBpIMuH!C8~9!V%PDF8LOVF3G9z z&1y4v+D#@(kDYuK1rNMh;%K^y9RvRydDfIKkLtq=Eln{4P!d4&9l1BU!{@sEd>n9n z(#&4+_2Y}|o))N+`Hk)M^6kyCLgHA=StGE>6}x`?U?QXw54A%2PWtW26-?@wRZ&pK zVQEZ<+M1wM5|gdnD_mF9AU#<$+PxN{0XHVGUn%r_01vqE;({M)XnhR&H# zI|w5K%(u!~L?RYZJ%qKJu-dlHXna&?)|t24^y2~V;JZFL(ySex=(lk27A918_7Rl` zq1LL^H8kKo?ptbkI_H>~2ugY?jgRFv;+G5GEy*%j+L%WsZF#pcZ`F;z-17hxGQdZ^XM~*T zn1Q{6T+usi;h1CVWYZ%X$KhtJ-SK|Cuvnq~nMiWd=O(Ll3lffY{|~ld6BqE`R~j-| zNZzw;Sls0a+A&*s<&Y8CXH)A;1DFjyK7P~9zso%KA;qWs(&iPj`B_@nyWTXX{uU=f z`Ten=bw~Pg_)20}4VwFJ}T0Cd$_6Lh^p1du&9H#cBRNx~VKnc$^6HZ@8G z;*^-x2&l?rnHNrv-5qR%OK&Dzs1QC;r=kblIc&Lt)$mL`m6Y6PPJt7!h#5kC>_Bm`I~!3=J1yqH{1O=)3{l z=?yJw$q!O=Wu&LHoXget$4!!p-eW-X2H+KpyuzU`-$JM=(aht--rn zxwsI%INMWXO>U007Jpp5;H1RiJmb;`z{P?8cT-Z*!=vJ;Rv1#E=uHDUa?wyE2}KE! zMqvQrloU($8KygJmgL>Q3`Iavdds;*k zJK$iTfk9SYE;k3-MV?SZdo!LDStmZi(M8x*z-u-ce#JNAp%)%78_n+_Qc20$Dd(+U7eg5J$QjIj0;)RY&`3NLm5%!oa0 zxYU3XfFe+DfL*3%WXQ3TlM=SC-;ob0D-c>{-)vnPpM3N$uw#WtQCGo4WSJwhe9aeEHTT|s_4K5zQ5Az{ zT0pt9;@9!T>xjLdD;?)QVjh{8n8=FKQaB_&;g14fUPD{E@!g=n*IjS6s4^s69s;aE zXSF@Pp+fS=kwiweb3k2M00GZs#{--LFj~_pivRHsPYY1v!44UvvyPi*mny8uDn)wf z+1W}3lQQ+DihzlIg zdMkGlTvO!f;DEgeuws%*=f-h6<|-W3NQbq-6rR;VgNP2fv+)aidI_0SyNi@Spu2<} z%==Z<(~v#bkSw6r;8*5<0`L^T_ONtZI9F)-7^j67D`)b96<5~ul@|A(LpOiB@p*3% z9N6lhKHq9!VH48I2xl($B2$yl63YxY{~1+;*?oxeZoSVLyV);0;0@WCCooS9x_$|R zh#D{1?7~Z)Z+=isBTE?Id+-3L7nnKY5kO$5s=5yt-;ASB(h(X;haL3fNI=3Bm|zxj zm}aCn7z*`MyAXnxRY^C6r2jL4t4&>cN$K0{eeYHrtPt=(I{~e-v|Mdu6c5!1UD2V^ zXssUGY(6ePEB#TdYB|2PB)0mFMyTes^TX7X-M{#a9|VGGF!=v}7rcu`y$lnigD6m; z1urh9j*gBV+3PqUQ9mKFOS~C4v__~ zjDwU}(aa5*QeA{0s-q6om`M=SX*T?D`L_6mgpP>2Yh{8RE4&awdJJ^QCp{a~Ta`!+^u$X7tLE42}h)CSt;fB&`w>yfDBfb!z4Sn2rZ42y@3d$HD7@K^eue z(}Lg~qG!m1u@!YOB9GA6z|FEVT&i)yN3}!5L1WIJm2W(XqrdfVl{L9ULI4^AZ1wpG zKlsW8X~BHa2MBQugwyd?rh2bg5kPCtb) z*_uw9o}|__#=Bil$ui+EYGGMou)!G+hVNWtgb|7@YzTPw#xYQSK(}{ta?(+Uz+4e_lW(8)gP!tf$lkX$W}NNRc{)vptWiY;A9Q2iDLS-7A z0k!Nv6jdXbIm&C^;)(nG(*-L)CqUm~P43Em@Iv7pVUbSvccj>eUB+l}2M|TTc&k2~ zYC7O#swpo3Yu0kO&%i83`g^-2UV$mtSCUXs7l>xMWd;~)a>)`~s{ZZSn=gCyl?2_e z(O`fYf_>;J%FXJHM)r|lO$L+5M!rqldD_RXj^m_pdTZ%5&ku$W_$kijpC&wGk%s*?C{y{gN~sWt~_t%{$u-@MqH}`9rj8w zCryH$llA*82ugiWq;MdLC4L|5B%VG}FLnsrs-Ls$Y4+Fv;w3R0tM7>jQ2oFM*D66* z)J2MkMZMT-#y<3Idu3hbQo6XSrIQJv@$Gt>X#}(_3ZD6Vzc=GjE9a2owi=f0qdhcf zPY&kif|HQ}wqb?gt-4~)gMY|(mXU{d7i=m7_&6*LaYJtm4euy#U$xpI{f#AsxiWimU z-AXY0-U{Gk6r)l&>#$`F8>^{5U5=+&)tCE~1PP%3szsJP5q+x>{c?VOp7`fvoYLc7 zy0jo8QCcOQGD%%Zwf8N^b=$^x%x_YKYjP+mv{DtIKx*dMcq&=j#RZn@|jG8 zk%EOcB2!5!XT^1FCGlA3!8d`SqDGi^S&p0DLu)wZP}{ZK_|D%$-wqA8!9+J~Mtv3f zkX%a@IW`-ArHV=)Bb~$-V5$<) zj4?_hHT6eK$prz&0veRDnVEc%9?1{$X~DiiaReMtW|D+~Jco>f(!7tPuu6MDPKW}k ztEw_mNAjk;`SFj-;Iy|Q$u}eRnU=ach21hhn4^mQy^XkJAVaLau6SI~O^t|2f ztS|mGmh{_S@Gl&P7MZ(TNWUi^k`m5|S_?T`Tmg9M^DM;Je>8yA{G3T{dOBZTWW z*A-#ymfuMfp2VC&4;2^l*v*6fBjP4XmK2&?U!lb(jA8v?YykmVn5(YSI5 z%z4<-!@-mS%08{AD-qLnv3X!jx8P!2;JXT3>Z=tTT4ceVC+IKeJ+ zP~el)wL)*v(nA{^DV#rHoisjbzsjV(-u3Y!KdWNYsc^{HMGA=^HRQ8gjWdVGE?kgL zt&zVDDJc4ucNhCs4=`)%9AgDw2+`9U{~f>PAuS2#q7{c?%z z^R*=ecorB`;A^qR-E6Fb2T+ZT@i&Xd43-A--|fDpmgIdF^OcDBUN^1^z~3#4>PJsg zT_P7bn$7u9dp{ig$zAB+QQGiN-j3rj3E#72pSt(&U&$~ay8|Hkq-Wd|A;k{e6geZm zoEF2YcW$w`cor6N###q+s<#(|Dx=81-Lh@cK6lxrVA38(*({^CEFfdYY-v^n>?nt@mXVQ>PMJaC@K2>r5%iD$gtdg z$x6VxfmoXJwiTIhnXjUC?-ykkb`T!kQ39g9Gn4x&yWD8OojZiNVrxjjncwe!q4D&- zPsAQ=(CTW%6bAajyjUUDuQiexNj?L1a;C9WN3q;{=&ST+{_WB)5Bn$&_geRDJUqxi zkJgwkc8JD(ot`4YfC7BJzP_I14+^6N7)pn}=A!kE8R4LNX=rGiK$Yk!CzscvFhVt& zX3cGT%uy3cLjK5~xvAnXN>YN7X@}DCXaK8$6DRV`7rjUi7pSO?j(9*t4YoCrd#8?y z3N0|Fw^?kM$OM~|aqJ%I`_B-d5*QfXxgpcOdI!)8yFP;dg02oO8sHJ5 z3Zd6OR+H6$62O{Fa!0vyqS6Ii`|e`M6a! z?g_BZZ>>Dv1OAx2g{2bcYO74YJ5Ov*h?!waG8;hGm1BTHH(AWuF_F#r^!Dw zFfNu4rd%2ie9X%u0?&x_(0dXnu{G8ZRE=eK9ZG$NVi7!mFB(;N4L>~|XS*hc8M}C^ ztdPX?mA=dT%JQy%qQb5RCO8xIqOzd&KZ)X^_7$AdtwAzl@l?`jO1{ZtiYmO|d0sT` zM!N^}2krcHbab>v^5*Io__uV{0-v|DrWDt!WM3_T+EXfEG^$$q7;83rcKH(QEI`-* zrvTO?{^Ip5>DScsLRS7u=Yun=#j1Z;2(?BuMm}sGDvjF3#R`#&&D3CpL13CR`Ja|s zy#{g&|JzvC{wkvic8VCFUgUE|LNXr~+7wrZ*jyZmkYgC}Q$*$(Y8qPqv(FkAf!-5b zy#sUspbpG0Es_6?2Z%H0dLgIpTl)*$irL!`0otlTk={iBXR0Y5{PCClv&YWPnx5@E z6fwY1%ja%i*~j01C-8J^_3!CU`nz`uOi8Hna_}SOEpfCWj1!zvu{#m~sDq|Wii*Q8 zR3!t>h7|&fDJin_eEZa2Zf1G^3^VcPDF1Q>Iq#apSnfgfkE^9)&K~cZeJmNv%Bd_2 zuN~H0JP4p|GBPso%KK>N!r`-8CCHg+!K}tVbPUsOkEUJ5i+4N62&>3T^U8BxHdMZP zeJdWH5wtyl(%0wYLS9GkhV50ZHzn$fZXC0!lY~LsXy@-8GCG2`XE@$Ty)>;n!mUkw z8dL1R73G4sQ0*q6V z7rbKjMzO*&KHA$%3la=IA~v87=F4_J*=?|b6(7^vtdn^1wxZ5iQ5}gO(iV$ z{G+etD+7o1>R0(|Kl}7t>$s^dyjm@QdIq}ot!-^ofxAy-F?V>-L&OZMxuc)M^BqCb zz^?!111nT3(pyr!xw?<)@cB8EYRr^G9N%GPX7);P=m|fV#z4Um4ZIT7$`TI)*eeg4 z$yKf8HE@2F3Sd3R-an>q?y;@{T;|@)9pL(TGXai^9TGe-PaN`dHY51V*Iht3h1E0X z(USh>7?TBWtHrRM0~gqcOPkA*gY=kds@gpkQe42l5{oOAtz&tL|FOxnN)sJ#g^Y)+!IWBQ9q_n)@yM1aw9ivO4>6gp0Q4V=)no`ZA7B& z@Am(;nz~9d5X1n>Rrp#ww_^>|Do~l=euEy?4+0_a1N1>xVU{&#ThCwan5Dmc+XbGq z9H`a%wK+94^$qyFUA`k@WBEoE-}@*Z^`7p`@rj7AeUyE-3+Mvi{N2V0dQN#dDx!E~ z^Gr{z9p3_BCbyhZuWUx;9yyFlT&pcQ5?#8cKhZp74Qu#HSc~jKmc+peO!mfON$gY4 zyHEJvnw6h#o`?5X_uABTct}M*wD{g&Gvro2T3ZW}WYSmVTEI0 z@+Qoj2fGKEsKGk9bDHZweb;ZD1bj?xUS51`E5dvb1!-C48G9!NT5)i5v)IVU2#zLE z9n;MH%xB)dWa^)!4Z;+EE*ey8Rmvj~q18JRf|>}LsW?E|&9Ko#PhPn4@zl6@2-r&$ zg)}@iZTl#&*1Zg$-g#l4b1pT(w`S;d)t0-`YQV_|^!m3NOv!_t)^=K=jl*N7`dzgd zwQDxEgLF;kX`0>Xd{~KpX>QlRmma2p*7N=s;Ukhec$l0XmUama5YX0&Kt)A>j7NV( z%_qER!7!d+R%%Y!;#7Xk6hS^+DjsZ!H3&p%6~cI zMF+fk@By|wsoO1yfcraX@2Rj(2lO(NCTj%9y#e_-+!}{W#$CVIBf*pzAUTlQ0_YB? z3y0S!tocV?e+dTaXxnT?mWK!NYnN2H&}*Cz(U2~(b!N~mmW5|jWfaC5+S<`lp;juGArrcq@s>W4vb7W2UhTm|uXe?6kn)PY69B*^Pg;Se zA|1+h@ec-!63tMu52WXS*aj>qx81KomDSbxi@UcalB$MVcOL>$HDmuzj%qNEfjXe^ z>s*R7Q>Nx#Ug_e5Q!8$AN1D<6iCDd|b#)maOlvgkR$2c))k>DUL z^_hH13kvTY-#Z=}r9LDLAarapLt=mNdJ6a68ycn|PYT5dtT464*`Q~=WA9Uv zg5U)eD#9Q%_Mk9nc{xpOn}5<0PhNH}4Z519d=#Mj@^ZIPmnRJb4#Vgb>x>lua^XJI1xOBn)+z%|<42E_o6Y;BxiWkAJTT(oNaF|0sbQCL`5hcnf6{WA$b$bj=X)GClwfoQ%hf{+i{HW&Bs z4o>qpDVbdJKMhu9Y9Ue-Kq$8?Uh-~@Xhrv3)K*|ej;Wbh&(stt2#j@AB)(s$oCwp| z*w8CuIT2&o{&}yh?R^-#&)4UBh3ZA^f>cLpBpJqS#t0w9B$}DYx?*<^8#|RY)qyut z7AZ_Sp5jaoWEegIWU4Rm_j)tvEB05mzq<~k+-bx4VQ5)o?UvfKL|=vfJ}@*?1V%7W zCuM+)54?&WlgjjclLg8(*2Yx&9<1%!q7E@siw*Smg6OvI6*^G!ShnF98e-y8L@9t! zXdOsd(1^HL+1g_2>+7dyW!>ps1p-y?BnV;5JS@`dIy&M9f@|p*Q=*0w)6;$Xl}2^C zxMu>jJF@N(b4SmHM%yO#RTsP7vhUIKQnA%U3;Rg3jop1c7RQNaXm}syJ8W(L29gZ1 zR^DYbukQM<9l>z4VPUJj_eDEdK<-&&;hAde;^SEu7%(k{;rhS(ZwGh?@xOp#+# zZm=dZ<$5#v47ZwQeQ9bQCf3g0OO%*lz#Q_V;6egkF9>91G4HH|yzo?O=;hQGKvamI zU5V@E@8&gbHT_lS+I=d2b}teTi;-n?D?P#o&sunX$5Yl?*Qknx$YFH``J8Ug@`51T z4j6$l6|>YNL$AXX3=R2E$q`Cr2Gks3-kGC*1i6AHuk|?|^kcuAs-M71>Mj5Hmvxe- zyw^?*7{Y*>do6!1{pbnztivXv+Zy@)Hv~Cg-qt=E*Z{6O5p!Mn67M z`Wn?m<0G|PrWBE5cJ=p{p~J@xgFn^f+kOzQsK%%Oqy|#TT_XZzKVe=gpD=x!goMWs zl%Aa$;}+TXL6#cVYR{55*-b`$*kqI##g{JOg4M~50;dEXfgn&0`hjvy+tJXPh|5wZ zXy>6uuUG@scma_H4a{3^v5T&5tcOO@qqo}Z)v$&)r>~4glVyRwVMHxNs?62!csZzv1ThonC4FAO+ zJ<|bTn;050suV>{jIJJ>O&1R7!)bGg)%z@7Ez9&d*Ntng18@VPj8PznwFbzH?{57Z zal$~7T2b$d`@^sD+4C`^$?>8*Li8T2m)`2MO-+#iD*!vt+TXt=!uolYHu`zHQN!C!@?&bEF+&|mj5O!s;vzM@XuOEG+rEk2a z#wjA>eJMP7s*O)R;CV!ix}oembNk@gx*KbIU}e!1Qu|7`WaaJ)^WlwSAzotUuK$+k zH94t^f0OG_3TL#_Msv7_?oAH>t3d%bmn#FHsaHSh;4z9z`Ia|yXNo*gW(EmQQM+fo zuYK>sVi9rV>}m+zqqi*!7}QJlLTW7pmfq@Q!~|D`Nl|?^w~2~~9yy}-A3w5`8>lqO zixZh{wKm4-!K9$5ITiuC#>vIS z#>>ml-W_O_8h6_h#$eSOxlt`E`#nfF3@M&PD0Oo&{@BI_Ese*bd*Q=V;C}&f2$l(0 zgs%Ut{D7x$n`Z?h8jN&^XsTwS4n%0XB@;5tj5zPWDnH*uKzJ8aB)Pn4!*b;68_#&s zXx!Y2uXA@|r^;#9r~j3gi@z2>QX}%K7e!#B+Q&+=jQg`7_}S#4xbiX<%3QiD2BC~iSVD)k!B;scBy!-huTt5OXn!j`$X2Kh=yBvEWLH zfUN_^>MCr`@&y5)Q1(V(aBiyiEa2Oimzsv^@sPJAB4>!4Z#q5og1z^$7y!^^YU`uubKjLppq%=* z^L#YuJ=$uC_m$)k*A~gt1S~yIuPjn)y--ArH5vTr-kBM4kXhM2{R@J8E2^uG@0e?8 zWcEC@;$JwGcwBi;m0JD^Okwiob!We$l(p0hqi=)*90v3wHt31~wSn}+-}_O#_?)Q6 z2nR~+9Q~(`<>L6viHKDh9E~CETvC(?{|e2}%6K3;$6@EGVBbmJ>d7&))Cs{u9~)2MMd`j1XgHTzpF-# zpdKkT&zK^3V;ePP!p~ozn#roW&AFR>;844seczIM3Y);n+eWpGmEA>83GL}$izaQ{ zqWcY(V_8E@jmO)EY7)(Cr7A41ZhbH}km^pajJmIHXoz|`^%Ia<7=IactPDIDxPHJf z13EN}?UcB3Zs)}}-!%e|8HWMB&_w7_t1zMsLO<0zuS`HrikYk$WMmtk=bV31VPVqv zQ>r$Kj7{p#pR_mdWMiWQ2;jb68pz**1q22$pp*b*0JRY0Kbf^=Eq_O~zK%Rg{aV%V z(|df*%~J7Q*P_<^Xcx`}Pm+UW%^X>o>{!#`2^r`sGAFLR%P;`rJrJ@tDg`tawZqV;SiKI z2A{b?px}q)!A4(Gx~W7|kKXH>)`7Uo?GcvCKf673j|V~vI46$-h7z6HFq5`#*;D)AZG_#p-C1Fass{8r~>GyKm@Ag z1`;7YnicU2`B(xfq~5?D$QVK0vuU9_;Gb8DlU{TnGLZ5LeBeW>w%2hYkt22=KxF~| zsR-T!iaRm9ZAD+cP&n38gD@6Dc5iPAX<^jT{coq+6Q33h)?LO{vJePfXe}^1hti-$ zbA#6h`i16C`nS=v%8Y{S7JhoOCSORQL||?4d1c?Clf4}!oHQn^o%}5gRrS!B<)pwaHED9OH4Z%iLz?ehEl025+k1Xg)H1c8j3y#H2Kl)y7VAu$sZxI=q{mEyZ23_Rg4fQ79iG{(gk#IU4QL+7c9MB zyex2hgfxMpO~FkY{1DBykUme1UyX|tb+3j}JZQ_;&00K|)lx}|r@fa#SDRZ+Vs^)i z(c6brCrK{d`@BWNjxedm z^jsTt2zuS_kd7E}?(9j^{`@Z9>@zF+vp^{-;$fMA6$_;ojo8`*O{aKDPVK7?yoMP0=nOFXETW@ejGgK-Au?(Olf+iKApNn@ackD( z%OzA3kfzpDR^oUkf4E;rmft{=rKN1|!d^7AR2)VlT=Z}=gJt!zEI00kpKW3*=g=~L z@H{W?_xrnZT1-B?&}raS|M{uf-!gEX2Qb*OGLF!m??P~{OdcC{9I1pnY)wj$7@FU7 z{dRZ0*)A|Xr4`QlxdDmD4@;F9=DZMlkj4-Twhp*5xQB#x! z$WB(w1{V~#22Lm@%@zC|Bq&C#*PbFX=_zXEgZhzbM-DmcinHL19Re2vty`cN zoc00=zqO=8OB0bM2+RPZ+twssmh>O#yiq-@&y@~H9QajY$9_O2RK_I_7f{Q(GkbcOvpYc-N zHaRUXn=*6Fw(yJ(LN;CrdeSz&xQU>eQGo;`VWgo;KztWOS%K57U0U%NLaJQkc-YVt zI@I9?@MMIg-_JW;?{m%R}2NfzQCC; zkRgqy6?^3?84n5o=)pJ7pc}l-IbgOEmgsRP6ikjCk4w}4{Z14l+8wDw9hJd2)u4ax zb>^M#A=!&@GhhPB*Lk!P?n)E=ONX}OTPG)&J1DP0DWFS;A$Loa$f|Qw= znczxo__a%>f$0XUk^E<(S^JWG8Y1Gq+8j5vrc(ExF22f=;Xhl+yUybaLD){kPCgry zP@6l|jL7m^zPL1%%6W9GLZdt0^vC-*Obp#)m3hs`ikT{%=!VE2(P_wLxIR$(FzKf` zi#2pZfRgszDoV52Z#yR3K5apqi-l>1%mSbZg5luAuS3SIR?cNy4Rfstzu-)k)+U3h zp0qCWfQrBCy9&F_Hvwp?36;E?9a);Kc$g#k@~`0C7r*&{uY2_f3cSc%xw88``|uGR z)f3-+gsI81jBro!`>ePYbA3Y}7o4JlBT9U|kHi*6JBJ@8V~i|u4ZATdX3ZncHkz>A ze7xpF>vlycHrn6IO1lX69d zqTtx`=Cs0nq0*Z<07pP}Mm(#3WCZ@>@ci@o7*)AjnNiKQ~8VOnJa5>%ir8a;D=wi~gZ zuHRjEsF%CLoKYMldvmMbJ(a#(5P~+iQisNYuS*Rq4S>YkaaQSJ=WjhW#;zBh)wHvg z9spe1+p_oV0f+^q*X}O2Qi20!;SL!fn3ZpS3T8}`?;#U7L`2x)VlmqViR411e z5^CQ2n96?J8=ATP>t?&O$5}`eWA7tE2FJE>VS9Au_M;;w4UzuLIPyW>PDtjnh~){`;!|z!8L3UAd4rK-<2(6Z^nY#xzsQ%|fXH zU6Ln_%n7gP6^JTn^8gl>oX5wZ3_q>R^}gtEByIF-J^Q~MtT5(3wji6SNy99dtz2X8H?5&bRt z_NVSwl`i|t5b!q-EEpAXDYnrQ9psC>jPZmzIzE0pQI@{?P6UG6x}2%K5IGJ81|nC< zhXsy-0s?IdFFNtPqQwirgJ@<;DY}?Gg)$Bp$ovGaoX4$z1KxoX&8{5{;6-#kEcCuS zTgC?AT@iqUAN{T9_{+s;?iusDv~ae;83c2{Xj%Q7#B8H@wHiVMQhjSn%^qO?gTOX$ zRw*<{DXCT*-U`%wUj3Ox+uKG@cAh0U&gROC@@RZ!<&AIEzZ)YF_R9|6Pe6f}&B{?@ zNJ#TaX#Hx$0wu=I^d;d%EwR4x77Y+^?U{&}hTj8AHGh&Fij92bM_Q z5=Jl`%o+P51+*n!ZuBAdSZBBX2)86N5PuFXGkg5g@Tbx~V-D4r)Ug47+~a^eK%=y6 zHt_Uf6!e z`3j=TaY}uiYO5ex57@l@CI}gUd{7-zUQ`H1)1D=l0(vqfwjt5z*w~Nn5%m3FBiF#r z6A*70|Mh_!j~*1-fF-Z~9KF*T0s(=ho0F~SZi9F%Q8di;CI=G=Abo+ui{P4TYim&@ z+5Y8zK-QcGXI(?CFV7x>th?_{Rio?0k?r?RwHZmnEFHoeLC!U!7ZRthzF*sK`W|LW zTD}YmB=<)xI@~+3h9NCAqSJ^7wK*m+hV&yA>xB1c=8WCEld93t7BTsz)?ztmMB(L(rwZLIS0P&VFPZ8KD4m;RN#t%6#(i2 zZVe5Z1yG4;XlR<;*03^0S%C-)lw^!ddAdds5fMuG^vaQK2-&XnmX!`DOtlRhh_igWl%%W_vcL-UPog^!p zWF=&8MI|A7Wo2cPy=9NAGO|}zMn*Qj^L{?R?{PT%(eu#jnk^&!W2I`J`;O_-%-mhXC3?|K%HwHW6lD5+ zK|CmPu<;pnJA)Kj?xU|yezUsS_&N?BZ7bQ^S1SjyveJ4l2mLyDMf8?Xq^SWo$~+qH z^`0Q%+KX3g@#3Il=(&&p?+4oDPDn5AWL2`No*c?vas3R@3X=)cDnV z`>3`6&y7a%>DQ`$a(p9V<5#XnBPiLcx?pRHM)Rc*nxU=lYPm~i2QS!%r zqzW|)g}!mqOS|Q$0mqwRecg4m()}<8p}vTlOd+_Ao!VNHqlQ?S=$PzzW<5JUzvQ!x z$;Hi`rp5UdW_|GlI70g@+rEHwDh;&Enz?v<>0daZX{?zlr1o>qR0k(k`*U;lyO>E| zz8sbtod|=*Vy16%kS4Iwd4GT_#pz zRP@v2LciBB=GBig3?khfOc{n`w&cmGi<_oh8eP{)w7KQlMr8X(E|G_BC zzsNGMgkg%oZlC4_*e$t`>ipMxH=4FADem#g=@kKDqeG{3D+2FRp|EK<;04p(2TwrT z0166I6O%g#g%bWF04Xi4=1@e+?b%sb0BwSvdhXyv;rJaw%FT7pT#}#vhF2E5Mc=T; zS6?sv`*A8NF^T(*R5X))ND!UCPEa!FN#CV|!_Wy)rcPLS(l+24#OrYM`C3Z>_a&|O zTT7qaxIfHb2AVEp84(tJElsLcc0P4!5XGJ)2e0?+GIx(S8om9_wxf_fQ!%pzHUM-w zK)lND=crQ&qMi}aB=3~gVpPc!b_&bgqtka~cJmEbd<_X-X~Fa@Z^_xVze{X^ansn_`$>NHz0dkZ zqY?L*U08lhsdE0VCo#5<*ma>76p-?oqg-|5XU{CEiY(F(l#^nTRA|$^Mpi@~(sE`~ zCBdU^S3MQ{b}n^`#)FD$Ku$b92A&r*r65=xs@k7z z4#ap9j?cP(ql}9X)El6;{PN{pdqPcN$X7btz}69m)Njcp)zpbYzmpUi=uku#M1^H@ zsls6TNbD;V%kSmK?adbpX~n_3w4ky>A<~G**$@-bTY7H2I3GggK>Ww>esUd0)`mF| zJjGZT9%B1bq{Bj}c;6A-0l310hoHv(P)rYiKm2kuBCSPS}ZAz8n*=D(;}cR3#% zMIyg3Esd#{a1d0mq9DSB96C16TnsO#_|jAH7?3hb7h=O+fM||@51&7FfZh`%BorZS z5o=7{&E)H{p=4JSF7qV)c+L`WZ+2xc1Dw2&^8nEw9lYoByrviDXS^n35{q*HQSmnZ zZKo51*cFhHcu6sUpcX9rpfUvF;R7_ZprFu{{XCfV6DFs&2&TKR3tlX=6GH?-%5iRr zY`I=rS-(^W5bj{OpWUdOX&)Jh;Uj0_lW%%c$0cP&>t1;+dy4Bl7C%Gib(aBdg6s~f zD_#EhDQ^D}IgIGo}iev<3! zo-Rtz^f{`}Wi>@YmB}Q>q@-?0MD6vTZ%BhCXSC0LsOYpzi4KK#j$4r5 zX(xMI_ta0j2}+LM+n)c>;X5FOz94E!kx=Q!^3Rb??P!os4yGmX(7M`s ztd5+1SLUs!@C3~Ui0oRg-@StRDhuKhQ*1L`z%mn75{FiuTi4y}lgDT^dmmzhA+IHR zw=Ct13kr5aNZO|*JEZ5eED9DgfX&iJk=ojLt23Z$ggBLyIP74=|V zar*|+m5AW5js*;NUa(L?{tS$kAW#M*3tWC^?c>PE$g639?%oVpVQ_yQPV;6;o5vNF z*-%vJxoI$29|LsCc5rM}oWz6OFD$OK5rx>U(d19Ee>|I*>h^2=^qpU6eW-N|-t;Rq zLf~HqUdoSh@GC|6%#X4>e>V>8Fi)()B_SnIHjqN9s9Xmt)Oz8d)f*pm=t$sGAg{Jm z(1`9Az;4$|Aqy~W)Y!ZEo_ldKL9HiS#n zzBhR*@^ZwmdwKUt7`8xp+_Of8rZ!@Vq+2)Js6Sl~QlK>wR^1hSE4+1Zf*!LVi>kr< zL~-&nu=IS|%>1{mq>|q3pj(qVoDGbNi#zOxqgC`;_E9LP=~MIDrfjityyV-ZKMq#v ztXVPm@uChVL05L1TRH7P2=h6B<)9%20ea5QAn!(avxb+xd}*n$Lnr+Jsd!km-5lCP z=$mBQ{qhMe+N=)8l-JtBlomGWqpoaziWqN#Ch7J8>a98H!$4`b-Rk8}-$1q+;(hXO z9BHVpsX4Ajp94Tz4RpdVkRFRy!2Ilr1zH%42S4Z@8)!EWmY{XTFpH(jOhN9M?3OG& zHN;SWtQPdO6C3Zcyo5S6b(eANqV^5FxtQIKtgwo#c8+gz2=}nD`%DAablL3o7yI-_ zY|+A?wm|}+4CURBk-Z{QC;aB|7Q5pVt19uTMduTpVWH+$9DwAh%UM#pIfh!nj+qJ~ zL>;boua(5EwzsqdI3TR+m>AOVZXtdL1ANu+mBTbl!XU*}XPt8~Zp=qo#7h~11f8V= zfiFf6YxHyXEt{9wgmDaAN=fBkW-oSM1cr^*?X2yO8bRfkOkF?rH{dyVq&i%PI;;gR zW*w%bHlMQyZqOr10`=XxOR}S^wG5U-op;!t?C~1Zpsd!-ddw~)0Gy`(8Vj+BOi%%IR&*39cFK%a( z!xdMYre)-`3rg9)1`sa5`3Mgl(ifH-b@84G1_CH3r}m1i=g%zZw)Ed;8}55crN^`c{;r@0gst3TmviHO^^|b#8bBh#!02 zzauZubpiziZ;I&mVj74^v4vG{s$&RB+vBva@7q5VreQGr*Oqs6qVH=Jo$3%lLQ0-N zjUf+&z|4*?X3i!D%3q&^$M!a#%jV?U%}x8uOmZh5oW-ZIUe5i!Nj}@fM;QWfMc87= zYVaF<25@4CQ4rx2m5&S>@KJNwqv9^%wu&K=n6s`tMh$iA-O)E;kzs^>w2Y~xu@y-q zT~*9@0FJkJr{tQEd%m-U?}><9ZGNPMzf;ZBTv=Od0WZRf`Bwa~jej#3#b;pCY&?cW z4KRIlWjY*+ZE(KUREC^Sx3;!oW~(K)^d*Waa43ybLoZR$dqd4nD&-O;CMG&@BJU@> zGJGIXAwioJ*faEDxM;4fsq+@!UQc*I{c4}AwP%^Dx+|t}ltljiv5sx%iP=G~Q-QgJ zxPnqXWlk;^@6K`fM4-jsm#g@UuC|>GcS|G7C#U2nBjZiHRIB^+KRGQ9D8|@wkYu?{ zTbH+3m&@k;d`Ctp7?Tq+r`W#a*u3FlW^63;N^fU63pLZyf&m!Bdqt*v?VCwzY)NX_ z+ubIvfD_r+NiA5I)g3lXCZ= z;4V&r>Fh4u4TndzP4$QmK~p0b^i*crLa5M z6AsYc?S1TDo^ud`EXNmnD-XQp$x}Kp550vVQ)35hT~BlL6i z0@WN8H^`j9ZZLN>K`GOikJ@2-_RbB0KN}luO-%@NPH646&1fOMLrl*SJYTG0y~p16 z$w*q{onML=pSY1S;Sv3ok2ExyZ$>v)Xiw`hlCeiGVOamUQXUcf+d`$23wYy6OOxa?Mh( zxW0V(_B%)B6U?wjl%_rRmy~c+H{(9Xh7xgZvD(;{(df9#*$BjANd#KDuBZ@S9Z<%wm6(ll>N%kt^Edzwbm`Ps?f@bE4NQdBWLqfIp=&Mu5pCSgST@S2&Kogk-Y4q{j9 z&^q5IwId_C%!ET$gMEp`nz_b4KJ-pbP8j8!pU9lNZbNN+6vDz%~$1 zNgl6cz;3x9^lONYj-JuV)q>}-jPjyuny@;q)N_)DUVK`nn-+MZ%%*JIxNLlO-(&8t8!VXc{$;d<7!cA> z#fdSaHN0fC?17msUCSNQZZax`b}qZl>q~0S_Sefzbhg52L;~~+In49&wbzCG8nLz+ z{d&3;8Xwtf-hAEo5x0*DIsN_T&!4vsv(+H%kHDq&+C=5^4yG_kjM$z>*x^9`8;ajS zzmKQ7m;55g`=9VoL4R<14Y?S;dm~`Z$Hcg<%EHb7N8^sCQG;A}buqG?k=uKI3_=kB zNkPFtTalZRgkyIeLffzWdtiXn!_!mY@E0^6RsQSyHDiy8C+=l=^(>XTsn*!Qv3ph8 z=W5Ey1len`s>(_#CMG6_Y6Imq(~@Oe=|dEZz}K5_ zdW7Ot6r&v<2Np2V7d9kZx zT@amp1=ZVCl8zHeuSM+GStX8|rRB2mgM(xwoa^*adorot-^1JVm-al)ED+xEhVPYz zS*Z>a<>ezaM1H);;S^x~8`ZD{Aio0Qph&KY`I&WmfYlO)xecZhUqE!O;OGuC7$Ttf zmd{;+W#lJu9*ToRO0h<~CERh0bOO3oLrLe0R? z0k5v0ocZVWH#ZDxZ@1ydwCWU8uLoOl0ol-q&ep!Wgr&wmkB`mx%UA@SN4yH@r|F+$ z?YA<6i4-!iq#X$bi)BkLe3jhU3bo3R_7D0Q@Kcn$YE}2-rCwgN;;G1mLi3`Ur-FVyKouW&b$|Yn- zCx*Rvl4t!iM3o`uya*v;sejSF;znr9p4fMO2niI%-|nlcUqTBRLFkzN^YW4^Yvc%6 z(0~F%cpa2y%IFcfWXe%lcwHF$wju158>!$X?w#_dVbTkd;#O3gko^J!tH`ZeM>bIC z$+`~#rqoM$8}*E3YHEtOav~J8QD|Vezds~KAfW>6Gmvxp;!gM%?CauA>_bcTvt4W{ zt^Sy}pX~T~z5xU!I^(%@8{8xB-@i9L*qmZRMX9AoogIPN3vWSUv)KG@pJ@rZ)~s!r zq~jtU0GtjJQ?;(VfH9-{Q#dM}U%teD!5emWT9{LUTV&#m_3hf^av-UR{VLi=R=(;? z7rrX_B@6DOiA_-&m2FQJlO|BjpjJZ!QI@VCa}e-qEm zz`6#rwzs!8dR#^y1eCLbK#n&oEm?q}<^}im{*uk_K#VweQ)I(%nC%=%()*tNB~AF% z2Pvj1&>ctw#&{4`;YD8Wdb3IRR(?Lr_wXCTJL59hwCmQxj+@~V8$mN$!CmHH*+)0{ zpwj&%Z&5lLXjnv*J`R|VmlUtOKE)DBwJ0t-#fP@mb?f|~pzoGBHHR2pJ({$cqS>WD6&ZcCI(;+2cpJoobCrMYPAwo!kw3 zRyRVvoYvP}zQH8t8)I5Bmen)2?nJUMX;C&VKmOL1fDRjuCYVy8b%R9072~v&_mBp# zF?Hlc52FlFz-XSBke>Kp(!Mgz)x3}NLd4r14qIpOHQxg^AoF|%pV048%J62 z_-yXD>xCAu<*?Y8mh170iQxq{hbJc|mqR9Bt&X0atW-+y=z1FznSh9h2-1Y~*^MQ~ z@tWe|>r&DUS^1S8QU7pJe75)QGn1`sZYqi-wn5b&n3y=x;iEnsJoD& z4E-LilQyAIx9^oQJvK-~j0!76`Rras8bf1ZmFo=;^0dBW13U^S+;f@i;pQdBw{>Kj zalnf^Rwt3R#P?aEB}N$;8T}dYVjG;XJ)V?QR1erG!a+yomjsqGyJVqHrUzQt;! zeC-PiHW{WwwG3(Z&FC=y<$xvOa=p;_cp5k<*Z20mZXd3$uYW_!@dX4v+WE&m0qo)! zY&}4gbcdVIFWMJ{;!P|GH(Nu*o8t55TiJtqP1U|z<0tuEpYIC3zJ<)j!nfH7(^nC` zFUBWHkEr6{WJcZKZ~nlmf~eVKwsj}mz&A!P?2uM|9KP4Xd8$UdXr=wT(Mn4UQV=5w z{oi2=Rf9~)2p#fCZrFL{i4YUfhsSw8FV2pZQ|^k@#cO{0KP|vj$kCxH___BeoL2@} zSzT=g0cEl4*0cvR*@N|c53#Es#vrFw5|k%ZE*lBP2{5x&Ju@GDK>O>j*!@*UO^b2s zdfK=?L}sUdq=j^9RT$2`F_kQh)mu!wTBSH?#d?*l$hUK;8`QGwkX!RCb{*vy#x z;)!`$oKVDoGei$71-}9ED2BwtOiDKz$RO}Iu7jHV;(Upn$WVWs`^F%F9}@JriB0P7 zTT$e+HwNc7rOY6wY4_55e5QoU^C_t9QQn3_M%ev1@jK~rn`oytdCjL!^iUJvCF<2v zZ>sa<5kv9_w5#ZIEif>!kqZ1dmB26iy3Dn_o+%%<9RtMfCW0|@GJT+k2G_x_fbO4R zt3Ww>ic;z8@Ao|dB@j4?N;^40_Y55h1eO4k1it|{r>3E4&Xzt~^~$rg1VjEBMDZ*@ zodv$!j%r2{02x7K1=73(IYXxNC~#jBBJ8bLJB#5dS1#P7Ji zf9@1b?5j8$V)x}0lopV?zRoPZ>Zrq*jl>fbU41uZCG?7y=vp`ASwg-bdW*Q!ws|fX z(828n(6(xEvQRTM&V<1iFn65XWex^kC`ZMmrHrjb6c+-&{BA^*7Ruv<@34k?NWV*S zfA4sI%f+dAs^YnmhM7D^z$B3@8p&ZyRx^9{3?CpZh+Kr{Jyu~yrTFdVbVDi1%w)k&pFV~2^=3`Rq0iE<0}lmT*W>!$?M?{-&FIfA zN7QNwFzds=5Vf&+rOh+DWJK?HWQ_K}H2g(`Q<4}j|C%2m6V)H6se2yp2{c&MdN#(f zXzEf{XJm=5@AEtMqLdA|)O(I8rD6_#z+y2r%^3vb9aP1jX93N2%L5Toywt`F6v7j;CTQ*uQAI6z-IdeX0Xv3X}zC zk|3A}y4D4>$Yy)nfvB&J#YrUb8p&(f`AJRsRIh$IeB&zn2jMD;mR44H6BTwRjDE5D z)%RL@6h&rhvk$%p@40H4>+9hf*`Z?f2s=;vp{UdOo>cmVcu8GK>|^CBbiX6ORRTi` zEPuwdTR^P2xKyZ`XFInT^kAI-PJG_7@b~nCb{?AKh63k#xk(kdEVS--G2i5m*~1#S znm2Q{>DufA(4 zhp%I^yKTo<|>sN+tP|e8Uk(oocc$LMoY@6DG z_49BGZy9YVsW!ghNP2k&31q4f#HgH~IQKo#(<5{8hN?yHwS9-^(xqTT1+~(@ygLCW z(>*q$KFqsE=OYqPLD}Y^(63b3O}OBxcFZ-_vV1Nn;m6f4(VI8;*X&EyGzt=ey@v}6 z3sCFHLT&jhwTo5=kP>eT`>UM zBL+StsOky@72wmLb%lf(IG_P@gwA1E`obMN1F(ePElLy4{sq8>c+FWn2@++XRYQq>k5u z?^{RL_vX^h*sukssyk3r>@qKnKhfbC4*xl~OXJz3#;8aM9=-}K^O(nz_M$Lxs!q$h zC$r>2B0xwR1}wOwz*U#;Lyv&>B9fR2_LgG!<5FwoU@S@=&q^OcR+m3w@$ZhP1Vz)1 z0gCk5GHi2b?ci{QA4u#@pRj^ZOMYY*0bVxA6}rw`Ev2Z-?π+b$PA12+VDB~$(g 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 Z{iu(6XgS&Z@zMa08c$b0mvv4FO#oiPVGsZS literal 0 HcmV?d00001 diff --git a/pkgs/html-to-svg/main.js b/pkgs/html-to-svg/main.js index f250060..b6788d6 100644 --- a/pkgs/html-to-svg/main.js +++ b/pkgs/html-to-svg/main.js @@ -13,7 +13,8 @@ program .argument("", "output svg") .option("--font ", "Sets the font") .option("--font-bold ", "Sets the bold font") - .option("-w, --width ", "Sets the width of the output", 680) + .option("-w, --width ", "Sets the width of the output. Use auto for automatic scaling.", "auto") + .option("-h, --height ", "Sets the height of the output. Use auto for automatic scaling.", "auto") .action(async (input, output, options) => { if (!options.font) { console.error("--font is required"); @@ -27,7 +28,8 @@ program const markup = html(await fs.readFile(input, { encoding: "utf8" })); const svg = await satori(markup, { - width: options.width, + ...(options.width != "auto" && {width: options.width}), + ...(options.height != "auto" && {height: options.height}), embedFont: true, fonts: [ { diff --git a/topology/icons/devices/cloud-server.svg b/topology/icons/devices/cloud-server.svg new file mode 100644 index 0000000..96e93ba --- /dev/null +++ b/topology/icons/devices/cloud-server.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/topology/icons/devices/router.svg b/topology/icons/devices/router.svg new file mode 100644 index 0000000..99ba7d4 --- /dev/null +++ b/topology/icons/devices/router.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/topology/icons/devices/switch.svg b/topology/icons/devices/switch.svg new file mode 100644 index 0000000..eaca268 --- /dev/null +++ b/topology/icons/devices/switch.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/topology/options/nodes.nix b/topology/options/nodes.nix index e733743..ac275e5 100644 --- a/topology/options/nodes.nix +++ b/topology/options/nodes.nix @@ -6,11 +6,13 @@ f: { inherit (lib) attrValues + elem flatten flip literalExpression mkDefault mkIf + mkMerge mkOption types ; @@ -38,19 +40,33 @@ in defaultText = literalExpression ''""''; }; + hardware = { + description = mkOption { + description = "A description of this node's hardware. Usually the device name or lost of the most important components."; + type = types.lines; + default = ""; + }; + + image = mkOption { + description = "An image representing this node, usually shown larger than an icon."; + type = types.nullOr types.path; + default = null; + }; + }; + icon = mkOption { description = "The icon representing this node. Usually shown next to the name. Must be a path to an image or a valid icon name (.)."; type = types.nullOr (types.either types.path types.str); default = null; }; - # FIXME: TODO emoji / icon - # FIXME: TODO hardware description "Odroid H3" - # FIXME: TODO hardware image - deviceType = mkOption { - description = "TODO"; - type = types.enum ["nixos" "microvm" "nixos-container"]; + description = '' + The device type of the node. This can be set to anything, but some special + values exist that will automatically set some other defaults, most notably + the deviceIcon and preferredRenderType. + ''; + type = types.either (types.enum ["nixos" "router" "switch" "device"]) types.str; }; deviceIcon = mkOption { @@ -64,14 +80,37 @@ in default = null; type = types.nullOr types.str; }; + + preferredRenderType = mkOption { + description = '' + An optional hint to the renderer to specify whether this node should preferrably + rendered as a full card, or just as an image with name. If there is no hardware + image, this will usually still render a small card. + ''; + type = types.enum ["card" "image"]; + default = "card"; + defaultText = ''"card" # defaults to card but is also derived from the deviceType if possible.''; + }; }; - config = { - # Set the default icon, if an icon exists with a matching name - deviceIcon = mkIf (config.topology.isMainModule && config.icons.devices ? ${nodeSubmod.config.deviceType}) ( - mkDefault ("devices." + nodeSubmod.config.deviceType) - ); - }; + config = let + nodeCfg = nodeSubmod.config; + in + mkIf config.topology.isMainModule (mkMerge [ + # Set the default icon, if an icon exists with a matching name + { + deviceIcon = mkIf (config.icons.devices ? ${nodeCfg.deviceType}) ( + mkDefault ("devices." + nodeCfg.deviceType) + ); + } + + # If the device type is generic device, try to render as an image + # and set the default image to the deviceIcon. + (mkIf (elem nodeCfg.deviceType ["router" "switch" "device"]) { + preferredRenderType = mkDefault "image"; + hardware.image = mkDefault (config.lib.icons.get nodeCfg.deviceIcon); + }) + ]); })); }; diff --git a/topology/topology/renderers/svg/default.nix b/topology/topology/renderers/svg/default.nix index 2b4b2f6..49b2438 100644 --- a/topology/topology/renderers/svg/default.nix +++ b/topology/topology/renderers/svg/default.nix @@ -1,3 +1,13 @@ +# TODO: +# - disks (from disko) + render +# - hardware info (image small top and image big bottom and full (no card), maybe just image and render position) +# - render router and other devices (card with interfaces, card with just image) +# - render nodes with guests, guests in short form +# - nginx proxy pass render, with upstream support +# - more service info +# - impermanence render? +# - stable pseudorandom colors from palette with no-reuse until necessary +# - search todo and do { config, lib, @@ -19,18 +29,25 @@ types ; - htmlToSvgCommand = inFile: outFile: '' + fileBase64 = file: let + out = pkgs.runCommand "base64" {} '' + ${pkgs.coreutils}/bin/base64 -w0 < ${file} > $out + ''; + in "${out}"; + + htmlToSvgCommand = inFile: outFile: args: '' ${lib.getExe pkgs.html-to-svg} \ --font ${pkgs.jetbrains-mono}/share/fonts/truetype/JetBrainsMono-Regular.ttf \ --font-bold ${pkgs.jetbrains-mono}/share/fonts/truetype/JetBrainsMono-Bold.ttf \ - --width 680 \ + --width ${toString (args.width or "auto")} \ + --height ${toString (args.height or "auto")} \ ${inFile} ${outFile} ''; - renderHtmlToSvg = html: name: let + renderHtmlToSvg = card: name: let drv = pkgs.runCommand "generate-svg-${name}" {} '' mkdir -p $out - ${htmlToSvgCommand (pkgs.writeText "${name}.html" html) "$out/${name}.svg"} + ${htmlToSvgCommand (pkgs.writeText "${name}.html" card.html) "$out/${name}.svg" card} ''; in "${drv}/${name}.svg"; @@ -46,13 +63,13 @@ content = head (splitString "" withoutPrefix); in '''' else if hasSuffix ".png" file - # FIXME: TODO png, jpg, ... - then '' - " - '' + then '' ''; - mkRootContainer = contents: + mkRootContainer = twAttrs: contents: /* html */ ''
+
${contents}
+
''; - mkRootCard = twAttrs: contents: - mkRootContainer - /* - html - */ - '' -
- ${contents} -
- ''; + mkCardContainer = mkRootContainer "bg-[#101419] rounded-xl"; spacingMt2 = ''
@@ -161,36 +171,73 @@ ''; - mkInfoCardNetwork = node: - mkRootCard "rounded-xl" - /* - html - */ - '' - ${mkTitle node} + mkNetCard = node: { + width = 680; + html = + mkCardContainer + /* + html + */ + '' + ${mkTitle node} - ${concatLines (map mkInterface (attrValues node.interfaces))} - ${optionalString (node.interfaces != {}) spacingMt2} - ''; + ${concatLines (map mkInterface (attrValues node.interfaces))} + ${optionalString (node.interfaces != {}) spacingMt2} - mkInfoCardFull = node: let + ${mkImageMaybe "w-full h-24" node.hardware.image} + ''; + }; + + mkCard = node: let services = filter (x: !x.hidden) (attrValues node.services); - in - mkRootCard "rounded-xl" - /* - html - */ - '' - ${mkTitle node} + in { + width = 680; + html = + mkCardContainer + /* + html + */ + '' + ${mkTitle node} - ${concatLines (map mkInterface (attrValues node.interfaces))} - ${optionalString (node.interfaces != {}) spacingMt2} + ${concatLines (map mkInterface (attrValues node.interfaces))} + ${optionalString (node.interfaces != {}) spacingMt2} - ${concatLines (map mkService services)} - ${optionalString (services != []) spacingMt2} + ${concatLines (map mkService services)} + ${optionalString (services != []) spacingMt2} -
- ''; + ${mkImageMaybe "w-full h-24" node.hardware.image} + ''; + }; + + mkImageWithName = node: { + html = let + deviceIconImage = config.lib.icons.get node.deviceIcon; + in + mkRootContainer "" + /* + html + */ + '' +
+ ${mkImageMaybe "w-12 h-12 mr-4" (config.lib.icons.get node.icon)} +

${node.name}

+
+

${node.deviceType}

+ ${mkImageMaybeIf (node.hardware.image != null -> deviceIconImage != node.hardware.image) "w-16 h-16 ml-4" deviceIconImage} +
+ + ${mkImageMaybe "w-full h-24" node.hardware.image} + ''; + }; + + mkPreferredRender = node: + ( + if node.preferredRenderType == "image" && node.hardware.image != null + then mkImageWithName + else mkCard + ) + node; }; }; in { @@ -206,18 +253,16 @@ in { config = { lib.renderers.svg.node = { - mkInfoCardNetwork = node: renderHtmlToSvg (html.node.mkInfoCardNetwork node) "card-network-${node.name}"; - mkInfoCardFull = node: renderHtmlToSvg (html.node.mkInfoCardFull node) "card-node-${node.name}"; + mkNetCard = node: renderHtmlToSvg (html.node.mkNetCard node) "card-network-${node.id}"; + mkCard = node: renderHtmlToSvg (html.node.mkCard node) "card-node-${node.id}"; + mkPreferredRender = node: renderHtmlToSvg (html.node.mkPreferredRender node) "preferred-render-node-${node.id}"; }; renderers.svg.output = pkgs.runCommand "topology-svgs" {} '' mkdir -p $out/nodes - ${concatLines (flip map (attrValues config.nodes) ( - node: - htmlToSvgCommand ( - pkgs.writeText "node-${node.name}.html" (html.node.mkInfoCardFull node) - ) "$out/nodes/${node.name}.svg" - ))} + ${concatLines (flip map (attrValues config.nodes) (node: '' + cp ${config.lib.renderers.svg.node.mkPreferredRender node} $out/nodes/${node.id}.svg + ''))} ''; }; }