From 6e545b86f8e87f26e7a2b83e3dbec13c0f494dc8 Mon Sep 17 00:00:00 2001 From: Nicolas Fort Date: Tue, 5 Dec 2023 16:22:24 -0300 Subject: [PATCH] Firewall: update firewall bridge docs, and general diagram. Add minor fix to ipv4 firewall doc, and update ipv6 --- .../images/firewall-bridge-packet-flow.png | Bin 22625 -> 26485 bytes .../images/firewall-gral-packet-flow.png | Bin 40500 -> 42225 bytes docs/configuration/firewall/bridge.rst | 361 +++++++++++++++++- docs/configuration/firewall/ipv4.rst | 52 ++- docs/configuration/firewall/ipv6.rst | 130 ++++--- 5 files changed, 482 insertions(+), 61 deletions(-) diff --git a/docs/_static/images/firewall-bridge-packet-flow.png b/docs/_static/images/firewall-bridge-packet-flow.png index 9e32315eca7deffb53c007bf2e320e9c0bea3a0b..0d73ebbfd36c83071886bd1b3cf0a2bdca535698 100644 GIT binary patch literal 26485 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 Hy&m{Knhz7E literal 22625 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%0DqRB#^F6&U;6LXbH}P*xU~fboqU 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

wjLZgLJUJXc5>(~A9M78?aDp8#mR92G_`Ph? zckS&Cu+=+p0ktqt`ZgS~*{$q=!PS%D4fDwp^9uIS*gFzPiw_DbsYCU{Wl$nI5b}IS zPD6dGbmEdcE^U>#Fe;;{&7ON9(9N<@dU(VdK!Z;E!tQ0wanhReB3EZv`0)e}r;=B% zkd{sl&+E#mXTx?YDb&Ew8&b9&JuI{@8gVRs(Yl-2u49i2;(YtdMI*Z+KD(z5-!4Uw zU01}tANy^i^L*cy*pPJ}6D|szO}HYX9c(>@OsxvIj1`~y`{&EFtM+c9)S zC%J3wfcdMARsPCR`-Q=Re1ndmAI<%}{OSGuRN?BI>@;$xtgN)0-1`AN+YODMuW6?N zl~}}H%H}(Clci14(#*38j|1K?u}h5Po^!fc=|e(@4Ch#%%U9ogF~VP8(9*+C79@`* zvaT*pm~`&hlTDi4wqs_OeQ;$p$P#l_B+F4$mW_XKRSWtG?b!WTE4rTcvHbiTdhJOv z6n8vc56+yBvr99fH28bj=D)itGvVS|XJtBb+wFAp;+gnm+j^_`KFPO}RK^QIedR=b zI4Z{LS0mHz`wC9>mA)L#zpGKp$&ub9+vpcJ(yO|56+sXW44Vn1Wl3LN4O^UhayqhY z(qZNX(b;pwYce~f*rkqZ zY-x#i0+$J6R$*^;Pe?9U@8*9gmaU7Nzx*te#mZq?&8`N9MB@h0O%3X4)`;CcGJ)5 z=XEy(4*eO3Y5$OSkn6TzYp6s=;VW$f7ucilrlDl4JkoorsHiB7 z3`}eYQ6iu|Q_H;oO6PH>n%9z7$ONkToNIG0Y$s&o=9U9llq1-nyBZl88G-97^RZBu zuYci>*+XXb<#+Srz$=ZD9=X zeA6Bf{72-KlxUNEg~1ROg34o=Yt(TC z#sq_(UrL~!DmXgUe4~BaFUD{TycY+>nqtc0mmg87C(`s|7XF0U zLwa3BBj@lFS8c(ixwpIPzK(^Xqaz<;Vbji`{9bV7OgeAxHY=N(i-5E{ex%9aPjYfV z>9C_hr{yqgiEHAHjE;&S(~2U={L(?PFEYco211x8v5jO1)}k|^?lFMfn~(b5k8QIn zLk4uWD=Kn<1}(MY+`{VpuvbA<7;SAk5DzSiQ%jrJtjF_^ESNUnk9pIjhP23vWQx=GAFgSw)aU=+}uN57-UR*_dq>HbLW$V-`QJUh;H%c3KN)K~gmWKeeSiFiUJg z!yu#YE4yGWUA(=^fTyQNFSuQRmqA*1_hHLIoOM|WDNTRy0E2tjf_R^Db|!aq+2Bsy zqXyW%y^KqB{9R1drIT)~!sjo#kUHB%#mffOFT$$11OB-#5FO+ZzQMvSZC`=q&HiOE z?8h1f6|kL2Q7PEKmbIyg!Qu6s*vP%^+*BUw3CUkX|DHp%i+$wog z@nPBn&Wj-<%k+F(fEgei=FK3a|4{DsGVz~YUD#)&`%(>=R`PkD6kgN%>(ta#lp+dO zp65?~RUU$bUAvIHvwuL(?kDm#0>B4V@mo?g&infpljnjN#$0_cm}05}-L>IPSOcDn zPB55;kIemKApbm!Vm2%0Vt_DApy&T9C+9XoW(InDTTWM8X0ZtiB!r%4vw6 zQJr80fg%32RVXKF`9HMRf*0rtV^qf@VI3-UHQ{)lDBtjGDOe8Gu{R3KH$Q=PBG%ZT z-jHfaDNp`)EZq801=V*5UZdCa_>v4DJz9jPnzJmf8b))7v&f?OK+i2}sNFq!({tD& zlHC%PEBV*WE0Q@NUEb@m88wXd(4NA@N>oWy@B9IrQ9Qg-X`& z^26W#tZYPaJEs)>Z$Zo=;Q^#PDD>|KzP<(oA|Dm-gBHh|;nt(R^5_k@wZp1=_^4(1 zhJcRA3cWP;uP&vuj6lYuo?$A1ZIknxNOvOY=-VaS&B)kW%%B0XR0f;RoN|h&j2JW5 zRu>0XLSFj-d?j2Or<@hNzl5qD+RA9Hg<74c7h)E?;&4)W diff --git a/docs/_static/images/firewall-gral-packet-flow.png b/docs/_static/images/firewall-gral-packet-flow.png index ee4e7b708b0ec11c386dd3360f8c0d5119ebd3ac..3c2611b3df61c92f27d5bf048d1d9da1e5464b8b 100644 GIT binary patch literal 42225 zcmeFZWmJ@5*e*JXilTspl$6p)DBUV33`nQ60wUd=iijYH3?&WHE!`oA2uL?WOSja} zoO|&5_TJw<>-;#m)>-GwS}b7Zop+wN^SZ8Q{N!aN@bSp-5C{Z5Qc_$IfjH-lK%9MY z@d7*}Yr<;)zs}h{Mk-%~hucMi5AZ*!-4k^?CCgWKjxTHs5k?l4=7y}c`Zk7!7PhY~ z?bdK=Mc^WO>_uWWhA-@lEiI^(jm-@a<}YlhIk>3}jPa6I6ozRxAV%_G3c(IH7v zgg{Uukm8S&onn?powY(|j!*vbetcOb_VvN*=p@w-EK~0ve@QiF3Zs8)ueC89W$e;^ ze+B*5PVsQ)t%ppOtpHuhm#^c0qGoHTua>_{Ma}ReeNDf}_MvW#@Fi+Q{taoFZbws+ zM1wG91T#lzQ0073p4-aA%E~GSLxl&&IU`r%e}8&)i;_xsRd~VvGo!`1A9aURf z`}!JS1S|1M2xNeOCUCRlC|x{|Z*jOVqA(z{A5+%+VbI$ z9x&4#$WW4a^yrbvXoY=#{AGBvm%dH0;~B&Rqm8ZY_Dbov6pD=7B>Ct7V>;6kM)tr! zGNb?RnCn{DFKf@kzY-MuHsbi?JVoZF1G%xo#inX^=2%*7Y;2~dre3Z+z~1iqBcrQ` zL;Cyo71HG5!y_Uha$IMJWfRYu4;KXwne{LBWpSJIGIE>tKV#J>>YQ#42@46iixhBL zPk=dLKU&yzCtWUHWMg|iIZ zc3@n3b%>+=rM!}X-?4&faFLiVLEqutW?zA!bX%NorF!leSU4+ju-f(Lw-ag75o~w_ z1mV%qXnbFPm27nd6qj)~txArD3VZEg0X(*5B6Jr&vez&c$yr$Bz9*#0-C03rxnfoY zJPym~pM6P~o}RulP;C9@DL#xs&~a5+PcMOt$1GhXOEtsuqMhC=cmoh&HJ12C)qf-1nJg)er{}ThR}l1w(L~A-Pb5FW1^y> zq7Za=cC^3U1B*^{^JX%!j?*K}QVSJv@plh6Iq8rV78a=FB#9uCmQbclwY)eXA)(a_ z4_MQ>;A6%H%Rj*gD@^PP`SMK&`nj}HX+`H?MaSNEGlj}yC+B+vqW zHOKp=NL1nG8dY9i&3@+7K(dryza)!|d!9NwJ4f+a>I9n}%qInfMn`9T_;9f;id))t zu3aUX$J}oAH|Y_k_9TopR={2ge6J6?wqOd2;8WqWInN89mY0{~UAm-@CL2pTL-@vZ zDW|kI;gR=JyZ!N@^OGk}kf`HhOs(nc@5udu+T)bok8YSdh0Bf6)rIv^Fa8z=Q`+*em;StkC zZx_reD{}vEvm-1rGQ(kIc)^=cq%#>A(p&5487t(hc$t_jl(xKLHt5S(sb&0~yLXEX zny+s!4Xnj2;=)qiCVg=g!RSep-;*ZS+Rz|&e0+>bPK$Gq>JIevM=FA+ng?B`*Auas z{!ma@XjwV_-5d9#@<57ogqgPZ_wV0JR$!s}V3=DiEP0YB7;91_r%@)@dWFr5zxl>O zcJ{qkQO_F5IaG42pyT4kOe;$H^}IS}b(C&~kWgAqj(sbNQrJZjrKP2{wfiSX8l|YD z^wF)I+VsD1h{GhPQ*5}H~N|WDdpg=EZLaA9Eqh7v*x z9<}H8 zi}%!-zkTatO6P!%j!sD~JIo+K=X zwf*YIa|XG%-gJc|f4fhnDtS8EiXMy(3*B^@Wwz!{DoIcA(LZ|W46*jy;dy))+_){0 zQvw2iuP>EHdX8r4t>HY&@fwY9dT;u3wX-Vhm!wdvzbkiKT(%btmn@hkR#$cAmrQ+k zu+edb)UgI}g`I}xk+HFHrh5KYht-jc(9oM`Ps^IU)MRo(qDqI{sJCIYlrHl$=-XW9 z@pPg?LiD58W`}1+EmOeTO-9P{X^kO@l&m!P5~_h&Y&A2)GeYPmX4Cpii%%h-3<==g zO=azB7nSZcTMD9O*Sin|OJxY$SGb9@ug)$lxwaCdOcm%i5g--k+GB}s-_C{rF{FxM zDWgO}+)_$<8W#3bry%Y5{DJd)}3hPeBo3m}1V3+j`4KvHj_tezXuoJpL z|4e>+v9H*9^Of*cr`Z1XfG)TBFjpWMcMH#)?BmC8e}1CK0`obpumziyX?Ty{v$fCz zX^_@@v_i$GJ*KNaM{{Os>MKNOqViR=UqC?b$?@8WPN_RMo6GK`FA*_unqh1B0%Tm6 zMfCKaKXUxP%C)oW^MG-^Gn z9hL_Z+hYY;=;@zAc@+$WO6s%7J7A??nX*hwOi`RhpUj&v_DlUt!ou1ROqC$pV^;vI zWWGB^npbE%{^Za|Ci20PAfb&9HAg#|DFLF??RPI0?%_rS?5anN_nBK7W2#eSenwc~E@so1@yB!yQA-&&!?59Wt*Y zyehHX1OnlE>-NYa_x-KjqhcY$;yC%Oh;hch2ihpwTKXW9i3E;Fw<`PPFDmiBBeSYq z34b*XJ@?kZS4)#M2Or6Pw;LOEZ96j8z-WBOjS1I7!ED(E*)8WvI8SwQn59u{mdf&c zDC+)Zynke^IE7$w-|!j_3;pcLYNiMh58quw4s%ff!W9uQrux-W_tb2bA(NrZjN`4e znoP~olJ;2Xfw$+Sw^uT^QOR?0t{TEF4hqF4Dt621Dz>@&lnBI=#+XMi2P<`%Xpvmr zpI5pP#U!@JDybIgeLhBUSQkATvsW&BiZA2l8o*|x-Bo$A`>?#+IcjT%WK=B!6}Pza z&SlF<@$$>#EcV*nr;om`^ro1m35s~m`g}wsAFSH;^kwm*l5^$GFQHYIw#B+vD|7R- zD^>S&Lkgj8rO%p4KHiD&WVX;m>9}MBtzxp7Y`uNA zTH;#MNPWC9=0dm*Vn1c+CPhfW@KlV8^5=kSCDJK z!eksFaK5;&-bb1aIRd$w!b$)BNKP{hE2Df`Mo14 zLXYdT|F%+(!wmF7u@V*+M}vf(!|d20C@NDu@h$Db@{lbm`38fM{ggpw@?mp=F8PlC z;s7SNurP$Sxv?=ta&Ea_SbVg?cd%xx=)SDAHS$5^q7+ItPRPDvTP06HMpjnV|9D>? zspx~3TVX>7<*@Vqx;H-=7oV2?*zL@b5iN6ccseGnqw7tmF4x*pqf3dJTCq7=@%eML zBI?Tuo;D*c zs5FYl^%=VKB!R}$xBnMn-s z%gK<8n$eXdnJQT}XpQXt8~*4x<>ZRBlA0B3`(<3jVQv<4}8k=|_*uxnE9Gw|&@urrL^3Ni$+(V2~IZQd>R5$3>8koyNfB zTvb-WBjdV{J|!zdg>sdSYkjzD9SUHI=`zvb0xrFoj$?7Dy-G&3$dfOJHOE{D@ncbZ z0-oJ7wZ}@Nq>=lJSx?A#mgQVbr(U-H3h&l^h|-C8cxhN{)s{YWMIdhK`$UT&_-R{ndina8WE zVRnbRNSW9N4gGH**emcuaXd3rc@a^j2@N|c6os;h7CwV$G@R+ii8{>yRR1*t^yL^e zT+hD97+tm|?p)u!0Y(Ln3y=RRCUxOezPd&24M?hLr@MKDjge9E@87>WY>?DLudCjG zUmP4E&Bj#N{0zqtGHnsWszR{P~# z9J#QP1OZjgyGu$^%eN7TK^*LwdwqvYt(c#mU!Z=EfE+L9*unc=_zfEe2b6A4Q(w|t zNQKqp+pkH)VT1fhBKyyvIbhEJgM-jxzj8VbJ{U)5r#yP#eB$T3_*Cc;R)zfh)?%y4 z2h|5bgtSO}a*;bojS92ep8@V|C2J$|kuH`k=a7mWMinLt1?6~Gu5>mP-X$v3`*i1y z&SzTTT|Hq|Z637_(Q&c0nge21tu1z$sIB)SBg|5$r=Q4@zkM4k75+qPzef4B+}6ls zbtKXy)AU<78@AP+vvgwp{+(j$Zl~L|0sNN(a;U|BSsQaDceXg^g@ zKz7@tZ+dw-+h_cq%F8KPLqqLg-5v?c-F>KErBJUrjvp^9kXFQmrDO!(=qstNEoq_~ zwHBuHiSO88rK4*cqeFb-{1@h`_BL-VML>YLpPnONcd_&9lh!cj$(O;p@!<}tD7(qW z$G0C6F)Nof+Va*usp+!LRLx>W3b@XWSRTZbFDwbK*!I@GJy_ubk3Nr|>>4Jv;H^5B|LCW{IF=Y;4(BL1PM0C;+hH|fhneTvX92Zu)`lW}KBqgHFjH&YK%V?|h?m4Pl(1?F1f zE*CG$viEomAsR7rgF+X9#{r-t0&$aw$bOUu%yxeMwfW$;?=Mtu3C238vZ&=MHM|c> z7xV2$(YEH_*f8HnKYLc=bzL2Yp^;H*#!b`xzfIN9u=i}TZz-Fe%r5p|BBNI;!61;` z3EwA8x~lx{=(s#m%QZ0FOfBnX2FUqzJ(CL6@A(G?7Q3%}py@2W#ipLw8d12l!Q!s` zy-y|HgDmIw?~g9}zpnzmqM^EUNhMw0g~jUmJ%+9L4t?cP3-fB8Wg5*$adVc{iSBJodqJnOiZI61Lw=G=z!qrWF+x3AqxVK{#e5j7B;*BrH$P4Ojb3k#&Iw1u8m&7-5*At(2B zL`3Yl-G}c{2)-(IG)5psuEt_(vpV77DmtC$(jVwbc(eaIXogQ8I5gNg8y*~2v0Vuw zL2GGTRGEEeDd%J_{v<7V&2gwiE_Oeh(s=!I{Q+U$OzU%A_oKUnq6x>>I+p%6k+<~q zsYnEA6dU}-GatNagic#h`tC9tnVYH9B>nvPbAfLs2_i?d8n>4Gu2=J54fk|7i~~I8 zBWy^pzYKHDKIX8#bZZXx(XwikJ!@_T|EWE;QMa){g@lA`Y-}uB^}%P~{x>%akGX$H zgc_@`{I~?Fx1}}`N;Soil5^%k(uyJUf%dv7QmEuv)~NX(f0ZeOoFrwUgi>!bDVaa| zOdH!#mLNm^XL@xtSAx=69+%)Y^oGzn`1trN!eSdk@d?XBd+{uSkM`6jLR~d^=GYHb z$15UZVq<#?QsS@Qa9~`LD&eshNyQ^#PJh1Hq>@rl`Fqy4Xr|O~ibc&~V5o2|S5Rj- zvJjOFb;#?1T;V7Y^YHexw53LmYA(Y?&HV>1sc~)v`U~3B2!x~8i3e_Ih zO6bpH7SQuP&^l8ir67vS{TUAKPS3YVoFaXR0@-*GC9;T%h=;*lq}XOiY_Q0z|M*}Ol{_*cWIl>YxW#%jJ%=fijrm1&haOq!xDpmIaAb0%DNl=3VXn*) z)AMSN@96y=D(14k&`u`e<`okQPU-vzT|#ftxKRuvRLIeY+bL5WhUP0O!ez0eOWTW5fUTt6+&u1p#% zGEoekd?e#>QP=b&zo4pja_lW&eMbc<-Jw}xRI+|kHW_Aie7n2V{U*uaQ#Lj>fvqKl zqou+;BH{>IWE5um`pon+^R6F(%ifGgh1;ILhwR=HU5~v$HtmYNf^DctF8})|{oh|o zE%!(EHc1uZLN_+^d`hSU?36t{jrL`9Bcda+_BJD4A0N^+sxlxDbbhDI+xz~`!*9bS zrYZ07sk&l@bO$S;#*w=H?|wO(ArwU2{PN`emOcJNrYl%ngYMJ6_wktadvd|gvNnLZ zDeqHeAfUkG|2U!dqi^gy+#q3@RKVb+-)hiQ;{hR}?AGZ>RwW^tu4qH_D#Jakpx{D| ztEWx@fBg?}?f(l;{r7y;YQ}>G00q*Dq?D9@wKQUt^fW5LGynM61U{f&9}X#X4mEYK zBSHy89M|wE78vD#nT2cq_pTwM1Ym#nZnaXZ5Z0;xLxvJ=-;aFe@9*Ee`}dC}>6ZGv zTWAkNK;!9FdXazh_g4e}bn4Ha6>TZM2hnXiY>9(_a_#NzrUUv%#&45c-FimvVPaw; z9wDI`XFWqWOofJrha0WkK}=W>9bS(_pt478wzeq!sh{$ONT5r>FfR#e0OGP$#gE$DhloAA~hK|+Yl=MxVBe_%jj2_zsk9$!_)a#>go6e!eAERDE;Sz|?nhI@H= zX}<3)b)|f`_XOG&FYgb5fnj|nVR?D%o4-SE0Hc7VCG+y~vQ@Lbe*LzxFn{ig-6MFjX_-49oxvxVyRZL>Kk`IxGzs@_sdT_kp;W3$faah)F(1xkW< zgrM#Vc9X2Go_}#wtf7U9ot+)o4Yb*^)+NN<3I)fj+K;^QfyF~iP{Y0^k9*^UQk@^~ zdAoKW5t=IMfZIiM&g&mL-%@TW_+}pOY~8=+OTJwjjW4ct^x(6=pS z!iLOB94|Gt8$4)kYLWoF_tg{Ggo`Bf7wXn$+heh;yKJn$P|4oG0oX3_eg`ZSP(O-h zX3H``_7iny(8s^=&mtZUU4?yxD~*B7ni09koCgC0E8^Dwc?ANl-`ZU(a=Qy>>R6pz zTrz=xz}A-;N@+z#9h8Akwvm#OLZpmX(T3u=Oagj9FfJfmGgYLakugwddcerdt&)+E z;qT|CU}IANHb6u{(e{~df*$HYvY=T0icPz?tlnD320SX zK$m5JX~Ec4nWIZGbZb2TB=R{tI^uR(*TZtzsATtpouT*9&vR7Krk`%}-+@JYk59e` zR4*zSFrO^PwJ~7u!$7Jq=CZ^JP15(BC_s>5L6^YfI>(Q9c(EkApu=)m+VB|!BO%Bc z42w0uyjz7hXWjuE|JK_Z{$l|WAw8YZHR9Z9eNl#kC9;};@pW{M0j0oeAP$D}^?iZe z%mHBlfS&lkE+ha+-dkp^zqhxCL;>ky=nDL_I|I^Ws3677&8^6!j~R&iXHd+@J2{nM ziD>X6EaE-TS8lhUn4?v$2(MS24vZadHtZ4sL5VFLqb#_a?R|((e*E5u zgb!@GHQ61aCt9ejUw4DB9gL%UHV|ctehhJ)NkJl+FB;x20G$ahgngnE&a8IDWIAuo zVsGTIHkK2{qGnR(bq3`@_>ZEE;`naQjDVEJa$SIAsePS0qj%+haI6A*MI6Qe zh%042z-s%vd&fviD-KNV@V6JVC=!>W?Ew{-+xF_HCh#iVOL?_yNSB!~H6XT(}{Im_Xh!c|}DOPuK$j#Anu;FzUztpKL7`2;2jW$ud?B?Nw^p#6{{6xmJi zINrnBvNTAxG-}++fdk7(PNsF=?o-1ug%FGAkU&p#0cmZ&zh#Vnn@=8!(h_|vkqbO* zHw?W9bSf|yB=D|^u(p?T9$y#~d!(mSZexh_@osfUh#_O?$-^GX zKh9QN!Y`ehoyC&&QC!9-g4=uvz)HTZe|O1cKGBy88v{XsfYmIqUU8Z7W8iY$FhJH4 zUSsL3c6CH{$MD-0K^Q5otYiWI(r@|%+MQyl^+hjNB@SXWSg{8W9$@)VrrOpOpaoIM z08lXAz1v{H4FylA8jRrz`<**e6@IU8+_jbed$B(!YkAoWsR%m&;uak6ePeWq`OZBmu)Aki z55L{}UwA}CNH4{X$T}Hd+Bu9}!5Thmi>QyR;9g<+bM>q2kgM`?ofRUR%1PKs( z|7G?ny){KxgkL}gK=e@oBb133(FWC1Z)c(yxAl}bU{R(J9Z*<_4>s&H1wr(5KUgUR zyrmS{`t4!Uyafm$8X)xh8AOE*Tp5sN_d#`(^Y>5FQX{c$Zzz+J-QI>FQgLmpdVA8B zYS_dHV%Ao_rX@C`gQlRRxmm%$AbDj3(L(vJ53!QJ_3;S^R!q<(IpE3`=wmRDr8l^g zouDNQi;i|})xUY~aaWDID;7-#bnr7RX!(%d7w{E9KnDd6$W#h6DbpY}ka6gF(JrJ! z=v2&@q#|yUpSDG?E#N$oD3ktd=TTdT)fFz=nUJ6@oCDsLyTd24g)|$W$Kd`T)Z3o# z5`*ME3^vOe^at4XQ&|X<$9LuAIs_|jAwGHktM+aygGbXLL1S36S`PUt{bi$n1;EOy zi-YH5pSHKRXKIxffI4igMjl~^_n!lSyS4Q6C_%|8;JTA-egGK@lxZ)p3_NOjF{)O6 z3j|BFqkKa9Nkv7VgZt;JX5T}yva;B8su+=2u@ZQ%|Jqvw-?{K`tTGCL3p$HzP=mRH z3W7|~A^R*2PFPr23V1E-wG1dJBWRsnU8PaS2jeHq931kRC1&{)Nr3P{{OkrbPLbo9 zj;4hC|JqwaMTbs6v5@}bhxp21z8ElfMHE>R)-PXvg(5~>hmtYrKUyT*{tP7sY*7iT zi?xmtv!SopY6$djB^>l1mZT7{>jaG;(Ty8PAi_RmV$6ix`pZ|#4|lhh^Gj?55TCvE-ZmE4033`BR?a( zf`WpStZaB`DKC7;?YGSa-7uW(`pfKtl{XO%Smwsdn*$ohfPhfiws=uptRN8Fa7Bw~ z^(l-6{=|B%rkebB%q^(0$J8~Tl*he(^=blaJ>$K5&s4Kipb9E-M3za6jg7&53_gHB zz>4H_KqLTD=hYr-e7wc_-`daXtDl<nww2u-3F`Vt{wt@+>$SoZn(dBx0&hz&3}Y=r+W?e?vMtM^w0 z72-fn1cMzZ))vKfztFOnbpTWF2&*Qx5JfPuLb%rTJSv9P==*I>!_Z~}#fJ~Qu#FNZ znKs8;q4^IG)w$ceJ*>gs~D+xYl!&!Gx?x}<3qdxQdkz~cfj zH$Y&ZfsOM~zN}Hpe{}|d3tX>+5 z4CoZFT3FCSGXY`fOGwoZMI;uAprfU|dJb+iat<5KtQfHkI@FJ}OaO?Xpdd|y%HTEB z#aK~!e0+R+oG=R%l*GiuSO5+V3RqVCeGf!#0yrZx3rlNU1l()l8z4b|yva8D6J0(U zZ*E4$#l>Ypzap|bfrIt{-7bn&cyBrcE50S563HGMR0kEmrkwD0Xa!{Q{YD78e0{$XPPEI8lHHsGcFF`e6!Y00)CUwJl ztZE+AwAGvKg4pi1)MB(3&RbynsF5=3Q;9fx&F*6u8&+2M_U+qcZLFDy*+@xCw-!2H zLs*rzrTu08$U62aDawDz z0*3CRx{r7HvXZiL=n)>+1qVqzHAF5GzyohmQnDd8a!kqnu_FW{~K+y4mt~+EK<%_zh36Qh6-wlZ}-sq6+5UXVA0HLgQz|FS;HZg5f@X$l zb*j1UzuS{SwnBKlw5{BGp!lli>=h=r5g?Rx_>%0LDiA}_5!T2!cu=u-a&SN zzds6)N+lJ8_d=j=YL6FX$5LYova$pic}K4U*-(blA>O%6NLYIQ(eWD^ zhf8mh$LFpwe^GaV&ma@^sM0n$gOGUjAd<`D&Wr@wgd+5#nZY)x+C(<^p$Yt|nVXgsqUqJp3zbajUshTy^S1pMyuQ$~DPr2V3!r?OOq-tp! z$q}khb~smb$%hQwy965NYmJ}m-ogcYc(nUX49(;jYA1_ zx}Lha^X0d+8TNX_+xs~^OgucQVCn_xBm_1&haJc)IQk@cRaw@_$qA%pJSKzR60=oV z;zM}rjvnnb9G#Kpf(^ZrnD8etOxIOV?d{aG!l;t=+4wM8NH2rsQ3VXJ&u~MZw+RJ2 z3R|%peV*#q8jin0bb>Gig?@nU^<0H@{-IPE^3%6ZPA0C7R!UFVZagg$WsENqMOXxJ zT=b&3IkL>{G@*dKW>z67oOS_1yhCoXnV-LZL0j;o_Q{KCu4Q&Zhp+R33M-|ZS$cbW zrv`tNI$?|Af7?O@TZnX%9lMCZol*OK^t~(TupHOol#+aC%t%5or7+rqt;~EiK{a$|DOh)__T)CZ+5leWv>%9 z;{4FJ?-;ugVZjqoS4T?XK4;9y3HOzY1>XKG>EdU?%GkXs%YM+Vc8TAh)4UPQL!UbC zv1VC~o&~Y}3UNq@pL2mgy# zS`YS|)}1)!V)!@t8zz63i`Z(%vxMzXyj`~(4fn2e{2aP|z9(*vX+=;-e#PDCV0Xy3 zK84Qm4n6&a!l9AnrHey(A;-rApTtd~S1dD^rgQ8(JMD&!Q=@2PlT8*$Y464ct?blzrL1)t(|-jM-Qis9J$@7m~VizapIwQ$PE*Rq@*-o?m&?Dr}v`W!(-n{{AX@?MjiTk}th%|BmaZ z>cfW*T=xH#@W-gMJ2kNpasB=~B?X1{=eD<=JUO4OyLTy0N938O1Dl~?3T=+=`MShd zG*a}N@BNTh94}^r%D%XM8Wp@w%4c@ZBj@b;-_1F{IoU$0i&9Bc*)U}&mq2l%F zKeIAaY|pvpT&`7R^$FJH^#IL>OPp~Gm}OE}Itgh)!uNr(=juLp{aN6*l1y>eskVvi zi+8WvHdS+W8t$>fTWv3CTjI0PD?Q?tGraw?6&*48hd$Wx_#Trc&)LkoU;}sBf?O`Z z)^WYy9l*t-5=qtQ`RVH7f@5_wtnz@908WZYt*s{(8Iwx}d0aCaTBlQEi_rW2wo&m> z`+}0)>acg3?(un9*?#e$!jG3{3@@A=cC1=i+9Kn7CmSnPZd3kcxrd?LY4UcgSiRG6 z@qo3peZ$avfNmCI!^W0Ffd9{mWzNaO%2H57gj|Yytfc6V;w-ffE_P&(zK_oDKD_9Q zNeTWtDpK!4SVS2SL3nf_@SNU2iTHsPr#uA>Ky}7Cp;xZMueZNnaYA=oI)F>YY5cS} zEs*_Q)kUw$O5C{)4byq-evn*IzefbLw*O`Jzk0QjHnzW)Wst8hJK{n@)uh}WWRGb2 zqQjbc&{3VnlZzJ~K5^zB$kWx|91e>ScK0vnR)ntp?@sl>JtI1w^9ZLA$?N>2fn~*8 z6E+Ho?&O5*mIrIOxfY?}I<ynEpAl1rc`SKr9rl2++yV7#oR62pPRs?Jy$UnPgb#uNjAO{R!ftD|Qwc2fK})ntHsmI{3IHJTQBAodR!z{kn+T zJ($NiAG@a4cJxP;)uA_u3pUX*w7Ee|dK~L*`+P6Q-9OsS_7qv!H}v)4gVY^i<=~K* zzJ8sdn@~a317q+>#`$>$cj{Z|WpsHMYU**WR?Y8}kHl8i4reB&^BcgFbGtVy>{i}n zX-Yd-j6Q=nfa3K)K7XF!{$a4%1ke7RU2N#AXV0$as!sFUd9AEuV3EbNTWC?aiER{ z@;BD!%B=c-i-p7|fBpJ)Wjs4AC*v-}l!+g~-nT`oYP&ZfNO10D5L-Jqyl@{$`@$*5 z@p9zm<9ZjhgJRELsuI7#uL6|z0$N4xvG}{aKb`5i2j{DZuPyXh5C5kYpj=Q4VED$a zM;|`){(v*jenCOF)I2=lzkdBfTac5H;nnGS94S=)a47siaVdLji~ZowEwIY7P~^hLFRRGyd*SSy6{Wx)rqL@Py0NNW8b+ma5pO}T5co3 zcp3T|05(_s**g@&C{amfHpSS#h0ulo94|2SQ)hLITFKHhzXTd6ZFw}9ILW&NKt)3^t*cVio*o+Mf9DVn!*}IV&q0wRF z{oN}lf(pllV74nbXz23#zz;&v4pa1}YNXxjRVj4;8#D9~KFfe-eOAX|R6B*(;`FwO zwD~yIV0*;ux+kqnJj5o+BzxPVPk>upIFZpa7{B(6k~8E5PSa<1wvV2NOP=KpM~kfJ z=c_bNJlWBzhUhr)lGR}|Pa)f>%K_x~XO111xnBy#x4qgFj_rVRUOVRI+iyZIX1bRM zJk}BM*b#Uf_+n69rX%b9&yJ2DXf{>$|88yB*{OFw!>6OY5HwYpWbA=LR^<> zZiNrXnGVIk~zN zzC2fP%*_7Plnd7_G5!dE@n; z@$kP2J(n&owB`T4d&ufQ!^t2d2g?=HA=pa3cI5BtD>tdAAj0HYis-j&AB#B=IoZdE zE(?2?B)d1l0Gwv?;|n}miEk1SbGS{YQwBy|s4E#A|3TUh?eGqwIN->**4;9g4!7v|4qeJrF-j=-l3 z1XSa4EaN-@ADlj*Sm^FO-(kqrsjM&TnZ15%>M(o`qA`T4heM7`!|9?;tF4 z-7m@it+*Fm_dX##`NPNa&Nm}&esh<*E-U*~pm?o5<*{kfD}(8~?=X}tdsT&BIt=f> z`gIOo30R_5Q{17mo!)&kTzu(Vf~%F~Q$k9@x^DIpg1RE#_@6zaA-7ny{PuQ(mIVt! zsFl{u|NPxFesX#47Ri+h0!5w^C1`vqzVOa=LPd4OI=`NUn99#G&0#O^-MXCQD?9!D zvq)K4(FC|o@s@0#mXgScrAR!MIop3oaO=L??bL*;s*P+kA|hjBIEnejuLqjZaAfz& z$+qr^it!L^|4_a@E&>#Tbv->d;5fta;hZSox0LX;CO8k()k*Z5G|0b!up&mpJqmmt zj(0TO4H9}e-n7t@Mtc9{xie?ZRDnvVth{`3dHETT*T34^bGL@!t1n)G9A$cT)&`F0 z0}uP8BTjf>tXgo~`Y30dE=XMXyII?GIsB9D8zoXigv(E zA-hI-2xnJE>`=<;uQ_H2@h_Zb##WU?F~6kJ)Jl)5j$5KhuJo_%WbF%CF3h(72@=71 z*fPedRqhf=`X@dK0{LS~r_Z78nuG3)KI>x*7UWqWA;CPy=4W274BVp1%QQ+`zBU{& zHoAY~=3u0yqs5e#1&{OI9CiTf>-k%kF3)}M6iHrn{Cy%}9*@}_?mJ4$sQkh z>|eXm{*LvXqOo+MTe_KHW$smnXO?8>9zJ&_rHhcx&YPKZ*N+yI(`GAP`W?xM;NvId zFrrj?AQ@HV<%LLlkP0%LVyEfu zn~@!ce-9jw8;;A|AL3Gy@%Y#h|3>V(ctVlkw6Cb4+R~R5LE7zk)5zul^4U<`?8?&m z&X(cNcXLi0$#P+NJ&UQXKGIM2`j19;s~mX9{=QyNF~#83@a~|y+i<+P3l#m?iO-CW zN0jlE)+MEwxchP4lmhosXrtS7PqTbwk&EAXwdT9C)9%f)Xoq?TymciMe|NTWipHAt zR(MusjLm;vS>#1syGDo}a4oVcW$+Jpzb3J_@3g0&s`K>k%uAtB;d13KM!FVDHSXKP zL*9?kEywW+p^JLimnrE!lyyB~LV99GNzwZF6ueik^+_6G$Ao30Kc#3#+V7 zPpneV(z$&vGV+i*ARts0OzmOlVaiLNcr&p&JvUQe)*SzVg#XieqRN1!^*b?FCF60L zizof&YkTEJ9R>yFJsNB=9Y1qYa0zz;soe%ggIKwp?;1BpBR&KK(DLx?#OYSnC}XNj zE`m4yU0?r(*(#3&Nh^>EH;IY=EG!^BYKp%vt*u#(|J36c^dux8n1wA&PD#0T`*uKW zttikCv~+ZnkYa%^M@mXg!1vu$?F^gRtqg~OjIk7G1~nIL(8;-KA$)xLO>K>h0d%J; zc3m&d&IiBCqKU_xIbQj~v406l__$S_bCHiZNG65@-$^~{!o*{3wXCdcVs`e^85}t| zcR$!QS%Z{9lRppo%``mF2A_LmFnA>fGB5JCZ7Zv)0#L1uMV38hz7b#wMp;6`wdXd% zS~2c1l)N>`%oV{_1*@ebWf;@#qi(a8ZJJ`oZnm`GLCMX=jOXuoGXA=0#!l_dV19`1 z7D>SI4O&S8&yEqY4e*w5SQAeCdK0yx+*6`(JPgglu^qNwq0+ z3#zEh6#||*(D1>}j|NI7pYstUg4RFHF{2sMYLt<;0(G;zT>Xs?crO)kp8xyM3ghac zW3QqdIzC|6@*k+oPZ{^cIMgE|q8Y7f7oXx*(fY=e^GCh`Q_BlV$reK&(n<+mRO62A zlhXA(T#G8#8zfUxeED64hCL}7V#h-|UgzNQHfY%!u8+||>X9eE}qFF+S zhgT2(gA`}bl?*r+9}t#y=IcvnX=|@^fTE3oiOKKnSyN~#_BKnG*{P`!qN1WezReF8 zvj7?O)26mZNGj*`ues{zXu;}=?OH=;mRdxG-EvE=H+rEvgQbzK@ph|F{paH(4n4ib ziXeWQDTJKt;Wdlg)t!BBD@?~`+~|dGEMGIx$yH+x<%b&LWUPfl zS_}Ej26v#_0s)Ed`1~j#&V{&W5n|7Ao`IxacG z_b=?0>UYnRPS3;}&Fss~lMb&vT`#52N_P4E$~L8fvyVT1t}WVVE!f8HgiYl6;RT=b zdny*u_IG06?W%8VX5$YF3!-*+V^4xGV~5%}q{m!hJ=sq_6euq3DS!5S(-&XeF+T1RD|b@z`S%}*tbiHs+QawwS>gHn zo1W`yp6(ax_6m(YoJ?yUANMc)sHyx6AGh2?!+!k7t!972_Fz-g?Z7eH-#uvR>sgWA zR!h(uGth{HLraXSxAuwEtzZ{FylPv3y!P<7M-8w{>~S55_74SrK8r){cHS2fvcH9x z`~6(yr?&cMOSyAH$0GQ`*OWsxGw&~efpiFMUICTTEPM?~T2)m{x$WH4oZ5D$N>Z1k zy!=%nBBFQi-a*$Az{1RYk)Whs9gZX1;o$fTN9+SYEQ=KvK=A?RXbi&++;)bHtZi-o z{0S2M2@MBGH2}g=<;A_%*ZrmAz$mTu**p$m0kl{D3u$j1Rpr*Uk1h)^5itNMl~B5o z2BkZtK}EW|Lj@6)77>tM(kb02($d`^(%rBY@w*@Q{=WCTTa-BmMjAV&}ODtiW%j6!oO#-@Li_h_{^=yn;wO1 zZ$A90lXc%W#rXQ2VcAJcwQ=5hF|@d6Iy3SH4)B$Mc1jf%vSFdx<9ii@?hmtv8=u2b z{O8Xt8+*&}dD>DzD%ZM(<-+>|Rf@UZUn#WNe(R4a8Vum;z#O+eNH^W?W zoTm5O{0bx=@9LH1Ww`ObeN$K;2=;1(V$f*b2NSP#Fz4+;ZZbMowc?S}%spUK5Cy^{ z23#>48(XR79bP4uZdbT|{@i8qqF!R{DytnS8J~YxSn11eO9N5IqodLtJdv^WE#6Et zR9V~v_p-3s#eWoB+zvYVJnr+%GRTt(G&M<(Cri}eeex!%>!Xi!b-?tH4i?1{O5ksf zR_agv{;g$NLs5Oi*V5WDKb*`Q`>4EU{JQ9Jh4t@+nYziY>1KW}-!ptAtZu&veRs&4 zehamyng@IFbIeF#w~n-no^@y4;wiPqo$#u9b0@ixusfM~u0SFD>fVDh{(*^gXYOR_ z9xGt*gPu=zc9m3G&4uJi+j^F8M_BjQ6YR_zK(97!)BWGJg?XJF^w%y|&$Eq=xEfZ- z0|srsctmoV(>Z77q=FSWU1;X2R`D0bH8qJNb8k+sEWEEjUE{Gt>+82YJ7mf{(7H6R zdn96C-eD!Z?VK6?CIEU4FSugp zb=sqCWwe;v8VidqF_4j0EeQ&-B$8RxWIwgS%W@oGY$Y{_+AlH16_#;UIMgb-BgA~m zCn)yu0=Eej?CviQ-9ip4w{*%sH~QHRZQmvp6UJWIrr>yW59=J}$R9hoT5=`W!O^@K zUd5To3Qtp=3OBzriBy8?qk%#AzBVrUB*YUd71K71$>Hqd$Ni5o$E%NBTo3Y&*0tae zg}9F-D+!ZUFGz=5YZH^LUB_Zp%-DM~9Q(#F}7+w#5AePuw5=!O!#;pU9_B{1}4cmd{oQLrYtQ_ zYhyGEU5fX<{)hhwRvSgv(#lFwLvh1O-0MXN7xX1M8M*^G_JqmDUJ$MApO^k__uyF^hZo}o zHBJshca_iG2)PNp@8^IGlaiJF`GQSJHKb$F(0i^ozixL&0)J&{&09;jVd@Anl0t{Q zpUus0yEI&%Fw-UzLjFOz_28RAeC4z`X8)ikLynIvm@F}kGJgB9yVTp@89S*B-RYI? zBHSD+#-TDtc1_xDsquYk7-#I>dG2*=$r8`o(EMR-u-cSSUfh_@ihqEswXNB}AL;e$ zmhaX+&kyl>$}Q#>xo@=cPFf%$Bg}pG60Y-F-rjRIG)K&5Ny47dj2ZPk7fx--p8o4b zgqbqXB10x~K2}w@s+tm#X1Ri$Fkyx^)gOQ)zkvQQ3Z0tD4u~TV@DXA)Z2745zKqM1 zD?cThr;Wym8D@8drd+J2j>fDc1pYp%QlMxI8Q1cbd*6y@@R~06i;YSC@yf&fE)4Jq zZr|3X_e(M`FlcUT%l5;AnYO4|WZ2))oUodsFI+KfYX8hkj4;e>i7vev+5HCp(r~=e z6#yvg02=bz$<$X;RdtxirHA&LG8t4vFe4%q%DVT_%SNF<9A^o{e%=$q? z7S)DFm9ATo^72OCU!6m8|DW~s8-V7mexj!hU;oDn1~s8Z-}`GTG(zSkB}GX=xPuks zyWAh$hiq5>#Jw!JF2fngOyRfC+kbIeTwNRZU@!!~0tg8}4W@OMLmLM~?V16>{h7n` z8Zfn}0Al?d^u#n6g6L;VYUK4Q=ktg}7h_iOMbTx-u(hN8u8{GfY&OCcojEwuu{GzO z0%74w5Zcx>$I*8&Lr_tzvZ~5;%I}s&k=c!?sHoi;AWxwR%?H}687L`z0BjH7Dh=9v zRsR*A zi+Fu%o(X)e(24@k$`t5H<}nvgzl5%ZvHqv<@YgXhw_&vJNYW8Im=hlFg-Ne_9#Rg} zzAM55%^CB@2@BmvFPmZ?z!;?M(Tf*UFJICy-PCz%uo)S2MZ&Ck&iwd0bbHU@L~pn0 zU*?SDedMS~F)u$lHs%Tl^T8_j5>HJ~O(S|}Ly2@u0h{ar0*mOB6gEJlUBY=B+vvd8 zzx092-@#);fn<1g0Q=OmDMsS8pii_h|*BljBsfWNPMl8Uy z=!7e&V*N8S!;_<&__ntkctt)&_Gi3v8_l_5qCn6P!1!?IE zfc!wY9PG1lVyG)U4@pVY+OFUHQ()R=ht13LyXcss>c7Lw^BxEp68?9KC?TsvAbWGi zy2!1kXJTK^I>nEv&aXY;gx4JXdDbaEvw0)B%?SF1l5%oIxB5Od)V*K>?JQi_CyQC@ z*7nA5EduUbMg_zaLf+-O%Mw4=ZG)~X#eFW2AN2Pddh?^NF)uIW(Li&9+(2_Q98RU@ zaH8i2^Q}6t|F`clw`$bZEsi7G5g-+hzM`FcpN1x-iyGO#!~TAN&s#hZhMn!V%6FUg zXe?uPc^(CWKBuo}^k7Ywtdvw&Cn}vlo9vDc(n<*9R?@Hu$R{*@`0yKFf!uBUevI(q zjXQAJcJ#P8fv8{0hAEwLPwCJ6Mep{ zOkGheSj_DAZ2I8)3!9o%%WId-Fs}Cf=LK~S-v|&OG@qTfNNg-SgGBl0kPNre>CPd& zIND+LTt^<5?*f-VPZ^B=8eQOj#GUL2g&0i$|H*vK_QE0Aj-Y%y@FgONm-2hQ6(rUQPI#04}d)B z=3-{<__tU|%k*5{M;Z9Y>|ELX5^SBD61aEn7SVEWT=#(v7p{b|Q1r;g6KY=GXdpbK zD8yT>QE$}k)mv~8-nu0Lpm>rlWn%zlzYPk)scmfxPVZu#TA6m%$1*T98TUlb>^^%2 zo;|t17@Pnt=e+fC9fa1yKn<}#ziuJ4<5AqFQ6gmB`?k&>mpSj zWGL1Zp3g+81qfcSMFAc9pA#K@1$ppy?>f%T-q8~~caWvGyGQ3A7*!y@zVMrSIUoT@ zBpHf@$UvM-2}!|37kkGR@zMohHvU%fNEv3;1O(~!C7JhB9Ukcad#zD_k1%CxSfCOR z4Pk4Oj@4Yuqxmb5`Ro~Tl{=z!KjFjBdSm?8W&iy#WQqtMS_Oeu^)~WV=;L%_}f4-s^Y;G#u%Z^+h@(WG;&tv)j^#ACn&v0A<1ermnw6mH)Kp+-k zWcA^u46Zm0a-;Bkq?##1jcB0Z0s3ze{>b)+UswKKIQsbPxpTIlw0x6U@0YdLR*ZH( zF#I+vCXRwuMoOlamw$nf?fwk2cL22Wj&SLV?gGQ4>(1LzH2_z`gdX0Q=@YmEG%?Km zriP5;4G%VFV4-UFcf@c915*Ks{^q$=;yOB{H77@FWLMMwKA*R}H(*+2D*o?j4_TpM zSCUxe`j3mdjxgRq#(}WL*+FO()t{^10gO!7=|FB4qDw&+w9SMC7}2bX9h~sx1dWOv zaB~eKBQYR<{Stc0p;1w$`f=gmXM|x8u-po?i&Cc*1VOz+p8D@sUq<43B2a3`fk1=6 zm$7Wx*XDtJwrdEP05V2cSbV7QkGs@WX8~~U66wPb zm@^WRlLP;m92n{RJH09-cmH|j-M(qYA(HF}Y(ZF9_^TnLg3qBN&Y+R!1B~m)A(^-m z0M7oS3jntX1YTUR`~SQbM-kX_(E)oC-Zk9@FbpXMIJ&7OOiiIlnBI~1ccF-)Q(%hw{_JcMPb{eS0`GAyeJlE?BIsx4k z&ekZv)|=@cgG}~S5)x!m_$$|IhaNw&tJK}z!}F0LK)aixF&O~h_=2}}Xf?LHO5 zKmw6IcH5r+4$RkmU`!*K5j+hLrvF(z1`JVGP|ckmDxd}0O64(T351G!TQ;mliUUE# z`yCMB;041x(*B|ACKU=)+w<|cTie@#ZEm6913g$;m$O4I&@OQ4>V)OqaQ8g5!IeN$iG4IdDHwmIClh0ik6 zcPiN2wDUTgrWkQI2l8$R$Vw{%5Z<%`C{ydebOb<*2;3qh5BESQ_yP!|qkyS)I*;aq zp68Al@NB*VU7-yq2M3^*E@oxLB=d=(EZ0E5Vg4%M;_pIZ?N^*YOgODV*yqnpz=hDP z@e%;1fK;HLElI=Y9Bi`Uh2bf(f%vup-}Y@1b0yDeaOdG;BjCFJNBX7pC-n0DUpoY;sC7!$AK)JvTGpj zEQp!Ecf8*y^kjH7)_MHYQ=o-b9&WaxWWPKN1!{#oa2A1_Yv!>G98qH+ulxG>Aw*PI zIV~`q;PJ$8085t)n%f3&A;|3lA8sP-5+arjOUqB-9Yl*|M8h0wsKlBAzzEau=^&&5BeCX|mf!PT$t4y-9{cNjG;9{liFtV} za7(Cp7(Bw1I>)X8VXzTWgFfsZF&V2I$rqR(+7f^g(<7ud<^8Oo1lq-<9 zOdu^Kb%&Riq&5z3b9bY{kWVF*iC>G>1|1W0wmoh6~TbpdE_=>E>};Z}{7@wT+Fb-FEu=6LcjNu4Rk_1_rm;aMbWm zDkgmOot(J5_v$L=bS37son#wM1?GoWOHwCE<#=J8C({)B?JI}l-**G z1&gU@^O{*(!$+#xuQQOEMUanN6XLcumbp4K`o$Mh&+H{4DJl7NXK$o#c24Mo2Tq0O zKi?8m?*D#YXfYH9gJ>J*B}$L9ec=fQHGu-4_79g>Enl#<0+!2krhcp$M^vMpGC>*jku z5ED7I-m9X(3gtOGMELG+-`KFlzyeMIy65t6(R<)6b(TAtyT8g}GPwRXkYZCI*$DI* zvM_=U!!AbHfTj)ZrBz^!7A{s+}`mmAObTBx(dJG*+60oN0Br#U2ksA$FFe%T#jb31?aU9%f<`F*4EZ) zzf(GcY)7OMP`T5u4I$PSDEuKIAwH3jx6YqG?;L2{pQX7QEy^te^Fp9fPr@QNT(R~x z0GSq~9E8zR9<1e0OuEuQj|T=L?o%LH9IiUoOv6gy81Q2AD$(78v7$2u0prT$$Sr-BU)oqlVkooxsBetVsiK#15A9 zPs}EQ8DFvk;bR=21dkp+hU4loTrp^Pu`=jae*yW4QO-ChFcCiYL3&!+WOm7T66ird z!>0hW=Dm)V^tVPPjz87b3Io%i7UJ*<7U6pxIgearjll-~dxxK8X+TT~0SK;XNc4bU zREc@}|CS$W6$2RIy`((K2|bDXEG&6lH$PpueEA$DC?6wVu34hP*pPF72`ba>JN15Z_n#5Nci6iR8+y7+#m>rB1Zdiyk!zu zc(W+v-AIp=j_!gFjLe`6US7!rdKdH{$%wKIOh12?JYyKcMV__u(khOtnrmQ>6d(nVB)}r_G9T>SG1m2#i+W_;D7AUe#E_ldJ0L zdGL25-2Y|d$bJJk5lqv1$F1GWy2o?bh+ix zLwKsV*O->iVai@X$(D>*fy<2rU<%LD9xa3#7qV8YrYxXT6Ea9k8NKCoDEyK22U zbQ{PAZy-uSMEQ92TB!IMn6;=Qje+PdWPEVZ8LMC68T4)zKO=8TBp4YTJWe5LQNga3 z2zDM6q-t(-@$EL^ygr4mVEwAjjrGO$*)Lx*evNHTjnpKo#W=}Ean5~mg!u#IgQ@p! z3$cGzrj3PWq1o~C=g+5HF=WcHiJ~Ln$YHVjBkAGksaa-64U$ICvPTj!1V4(z4h64G zLL@|id6Elg9}$DTSXJ!__>0KFm>Q&$h~cO}klSDf6$VNasD2UxTzvAMeSLl3CFr2f zc4ATB53h53RK~q#vH$B^Rc*@w+(nq@A)xim(DZ%WLIeH964KG4suoK|z|+z2%kQt} zb9z+`r|>?yt2}|E^pGE$PE-rPS4~24xjP;J&odz{?JZ>4g4kttNDU64L~jPop4HM0 zIKr-xlFCAz_BJ>;6`HU+wtq{@oun4X43q_gzJ%FA2-=H%W=+-^hl>?Qb>`cv3m%O; z+O+F9ohM{T->jc)G+5ez7s9wazUQy)PR~qBG`1&3?0VYl zIdxYTwIAPLeNGy%^qc763yx4Fd=&s60E)heCtOMfpIMxrKLRF_oV+;N|3jxCVa=GbB9mFbaV*cVo~Xcq3KlC;+rv#%#SIynJHR{tZwg(1Tj! zaDqi0ib;W+;Z#-Mc?tX_`?AuIq@>e9WaHLj-V#e!VcbRFQ|I18#J@;T=}BLs2MtG$ z655DPTr7)AZ!)QnU2S#FWVcwc#r`z~W{RW+g}FgzEU?@z>>3ngIyGKn$Aity=Y@opcDe@!Zux)+59YEWgmd&M zB}hj|N+*EqVfS>7>&o(|k@umn3DKQrRrHoUw9hpn`c4YuQ_djQQd(X_m9;0V9A0yJ z@>jY6z=$#U#A0(HEIK+`HnY8~C??%s(?7~AFqebw!fX|TPx3wVh_9J9PTpoO+WTG( ztdZ`ks;a6XF)=bwdP8n@s&-;xLU22?w3NsPP?Wq3;(wnPv`d==SYq0K#S2a7QJDNf z6Bp@y<^eFkm^GE#y9=8`p`U9rzJlCn0rN=7#_mq;W|?}fPJ@XnExt38pal2)_s;;x{%+=7p+95e=r{w?RURN`^#Npc z9Fe&fy15fheKVwxp`*)CPMk0QoY*=t5D%;B>^bLT;}a2wWm4%Np72a{rje4ev0u-v z7{>r%I6bUp{;c=+k5@7MnuMaoKNW1JsIj~dEl_UT@BcL4@@@!cKK?KtfBY(M{EXR3 zDPY(uJq{7NmxZk8;_L8mLMX>3g^s6%OuCZJL8=&U>*#0*DW2?SmY0BLze-40XWt=! z`;_AO?oUF6r}-NDM{C~R1Fw3JBqlJx4M!>*WWLO^=K?G-&!DU7w%lN$36@a@1s)~b zH+%qABM%I%o{?K6pH`hct^5<7vRzp*9GNZRzq&~&ab@{iF8evZrz}K+RRRRY$)N%d zns*%qy^ax<$}aZ;8T z??EC#>}w-zHn0e3k6X@XB?&y-$@R`ITm}iL;uArb6G8H)C!+*C%HF_Xi#^G$#5j>| z^pM-;XfO=P-S6J_*#FEcclOi^GNBgkrQiETx};d;ny;Rz?XsUYbc*6ess>QyJBtdK zL{GFQmQw(uZA?wiOkX!p!}(Y|FqKj$_@}R$!zzXnh4Y1l=!=WXumwDLjf&p})g$4L z_VmsG-Emi*S^XXmHj00ALuUaNZB4(vgy_!(u4Nfm5$PF$PQe_^f!~Zf$H}w@%Uu}> zjgQkBRP<$fjG-e92uCP+!<&CX@(GqqS-V?H$%372Kva9Nn!Bo_Q3h*f8>HmBzfn}} z>hDef+@L`|x_MBFeWexW3bDb7K$ia5G3=#UfKT!aX##;-+x>XI=)%**Wr~SCTh++F z)JK?E)LSCe7XaO-jGBV_7jm6Hy>|_FQ!S|vGW#yw=8oz`2g-gq;9n(=1H7q7dz7q} zn+xmjsr21(33n%|eD67~937^H8b?%JqgMDX!;Knk|0LEa)A{xF5Q@$IIwv-gQx7Y- z1HUJee;;WK_TB&bXHNI2*|q{6B=v!rpOk>jw`HtQV7bLhzI^LDbck#m?TtqU`X89! zuZ+rLUJ87O;&^?Y-TP<#sQvPI=zPfDV=FZ^2y?7g|M{s?< zo1n5RkFusgFm)$YeV+vmYmJ&sLjEd`&&SI;EiKYgS~V9+J>AEj=jYk>v3VS7Z)t4H zI4tysfBbnFI#;S>7WaDK;SBL#B@wqNi937N=?~xwfw&jh)0b9+Xa}1s;Us~8bf_jgYkI-O4T}nK@0S&>xbngKH!%pz zoyvRq{dqd&-1Y-r=auh0%qOR5X$`8#z2$u0yy4|N>tDfRFb=MbZkhO0YAXK}9HvZ* z1p-d?6{)N|rS7;0l0?XAYO&$V30CL}kK?8H^^Z>A)skL&^Iqm+`xo9P3uS;@AwFm_ z*gg6f5z!6EHp^k0?qvP5+FTyZ5v|lEmL2M<9}V&~?w7i}{Bg*S9Hx2sgiAa7OUmI= zIA!jxXC`O+ulWE%Dd*!yje#+uoSEOtugqmiwBwdmmhfw5!tSDWztY&lp^n8sHCXPj zB(lHGx-2u+(!BlnVMQs+(#4qTUfVz2d$lZyxS;FyL3N3Gt#QNxn4-~5zarf!afVuO`V(j5)Lg~ab0bqK@(iD{gRP#7}xsK z3A|AOequgXnq(STTE3<0NJ_Yr;&@q*7<~Jt=C3aL0bm_Y;}%Em;6%=tHb8z55E4Fy zJjr%~q`l>5F-=Egjwfc9Gdj^mmToq4sKN+a{=>4*XmTjK%DGQ3a{v4IH zPF<8rBg;b`0606p5#TsKaQi%rD&@u{wZ1uyT0`#vL<+CGNAN77Xu;km6YwVlJ)hZI%vOsJXI$T81D|>x=cV_;(K;hb86gw^ZNR3phlYpI4J7tQ*icojO zF((BBJ0>iLyR$`lAwz91fr=s?;J#oH+H#Q$g@<`G9{q>s>w?+0bFn6=7dt2W`QXrU zWXms-X>$mBB9nXSHAEr5xxn^&?TlKzZQuI~Xkstf*|D)1bziF1tO&F2&q1#x5R|&R zJpZmZvy1bZ5MLoiPWcC2f6hJ;cgd&iK+>1qOU3(`qFKP9dtm!Wq;qxa8gp+3wzX#*9U+)SZEb|SQ z*4j@3Gl;yGenmC18k6T1W}Qsl#|d`(cqh4`z#hv@MU$0e{l^CR+fkz+1}GxPUCWVzC0;G< z_a(i(-y-s^buv^^r&05wAAET2B67~ld(uPwT43v?Gwiu@(_QzBXZhIUnSKqE@KVZ&tsUmea>WCCg5JsATVa(P~n*@ix}T zgewLd#kio2-E34~I@U4}!ScdaA~LY(qD88Y4+J~a3I~g=#R%S`74C9_#iMeMg`{uX z*=mk*fi!XoRjabDV{V`S~-|xMebeWwAsIZ&T$z{NL?R>PMDMrLsJMGY%LWB zuLw!z@2HlIF1vWmr`a~NT(It;sY_^ZnNzqK%P5qbUeN9E+a(_u>}b8CYy1KXg{YXe z6ezScv-@ePhwi{H){4=Od!fW>B8qNgx z19?2ny|Qxhh;YrdwzOtT)-~+)buMEKsr#~%Q9+5C)IWomrP z3g6f2Maz->^&W2dp_nJ;bF|u=FM1ya)@;Sywi24}XH}LfDy})n$H>6~t2cb4 z$(>)9PDdlM$q&!;e}AQmY5jeU&UsLPKchc+^cnXn%J62Y%)XYFPy63NvZMHffn@=9}J(he|2QI zcqSw+E(dmoRQG3efa5s*mVGe@|1`m-pL(>{t^x0H-4VH%bj}^TBAo3rr}mj*+KkSM z+<7(?9d$g-E28+k`$e1V3HT3#Xf0@trXadxwSkM5Uw^^1VsJf0(lB)I&n4eY`{Kpd zJJ#-Q8jMy&j_L4Q>5LUzJEmlS$b)cK#FsBRw0LYgtIlIiDdR`m>!WiwuHA&MN`cv4 zo&`Kx?zcg+E)?8&uc4nyC1vbt>k`X+(Mc){)YNCDLS1O}R|t|Q@Ps|9NAS0s;HOD$ zdeyBw&V3`c4Z>xUf>my|m224~_Lch9M1Lx$`<*?ljb4}VDdwptuWXW)HWtYw|GP4C z^|*{+ThF||MI_P*tST4JQ{YdDxbC8dy%MmwOlPoyiO;5_Wuq<5J_6-2kS}qbQ#^%Q ze?YqCp4&jWHgFpUibXMr0rDodEs?C;gQrI$bPoiR=1mCMUyuG$ck_iXv93EYfZwb5 z_u|Om2U8o!*RT8}eQtZ0Bcw!)Q@Pc5#+#vPKkZd5y)v~L_=uA`Jvzew7ns{F(Hccq9! zp%g%0sPHyX&ZLyC(q(ly*=yC73>URaI}36j{Gd#5Ealn{S{=*%-uikF@`g7&K941)KpNpPf!m_q;yjEEg_a}NN5rxkH80T+np&+qDg5dcv? zM9P^fM()`Zfiw|Yl9UWBfAbTMpBgu3buP>;7(Rzd(z2eF*j19yW zK}!8AKrG5e{*>WF91Jy(QW2Rh0=9PwkUX)npSwi0ALo!*Me>A_F{F5arpI3H%i=JPP%z%ixE!x$~sR;=@-W)MAhFk?;g92g9h#>fx7ckPL&Z zj;tvZ2a5eQ3g7MxL%X4YpSv?Xv+?^>|F7`8#IOFjl#TZaHDLsBAIhdOhAd9sfdHv+ z&aK6$R*)wD3V5L*i!V1oO@Gn|6nF8>Ed?I^-S-MRXE?75Jc8H~_?YNy;kCHce|8-I z*uM)I#Q~mN!t}q>$?rgD>rE}%{+}PXJgu&!r8T`Ef=X+JcMQ^Q&an56)1vbipaT60c_I(ZNO$5)-F`Q~aPyyx54+lP4+N-O84urAh#{2!p^rY$UYwvi}te z-ncIdp2-;tu9&WSy`zQ(k{23O3%kE)7@$bzq3 z!Qqhw^?0wo81`B6;GORD;EHL3-xc6jG2(@xf1;bCT^&<;z`g9_moE%4ZL?EKMNFX8 zp$xbe1pf1?5;ARH#AF?SM-d-C+Po1!`MiWHzX!)XFv&j%-xo5@6x29zdc9UNT;98% zy$^-Ku#OT3YM>R=KS3%ymNG5-h8Xvo|7;>yCZ;fLCMDIc<6*Y|e+P2%^Ewai-hBin z-r-abKwMooP(H{*GBH5DgL3Zaccvr5jnff)%iN>Ya7w;QlA{R+F+5LV)JK35I@F2o zt)@!M3QickPr7|?+iaeb#xx1uE_4~hC>IxL7nXmu(Sh0=O2tbmUa zp5}>k;c@rv&-SPqC%hxNr#PRXY zNzTH_@kH)*NZM9ow)P!MR*o$EAwRYX9g>2xqd^d2N<{thP>{DdAip#Btqgz}_`zp$ zW)JxcO{q||0Z}5tw|6`R9$j9*#eih}4RGTDL&CPw_9+_}O@@N)F|L-81geloeecXp z(CvherUj0Ty;1MpE+#T>7Mri-C@hT?r=*BK*yB%Nl?snO^vDqp1{v9PH8{+NS&V~2 zr~uS6GiRYzHvOSJE038~!+sJPuR{=%+PYjw#urC((~8xL2SMQBzes$FQ;6JY38wliWD*z<%>O z&vI%+m1&VYsZd5x>>~&4$EZa@?gT09Bt$?1U9)XGTMWee$(7H#Chk+Is}TJ!P2`^P4j=y!uKx1;!vRpOCP-;oirzv5AitLPfUEuRpDvLRTm=Hb*~N zp^bH(dvN?|iX_smz(vUfT^Yl>~OcOHf}X#$$c9YDGwS3BR8mP1GS2={W&Hm)~%0smOi zS++`lf)uM|{-jdRIHr?nCz3$F(njypsh5jadzHejkMjJXD2WwPch^lFUgGulC5GQP zKMC6w(+m1kjj^xtENa3S8LL@basx!K5A#!_t0(|vnu5oGRs|$XAAx!!ZfIzTMAf`! zMKue#Sy><3j8s5A9nJ)_x}K|;g3wVR;vr?&a=i-32Z*T*t@Amb(H?x&_)aDQ$8t9d z3H+tbm#1|rZN^Ji#f@)Xgpw~K0}4175qQ!WNu#!HmPMyR+4s}$3mJ^|r`xAdnXcm% zya|qasxxute$zR3)%SlN=L($4l3{>v)1Nzmnhdn}RRK)84J)F5kZFGL)PSz@*jK4= zngtj$YZaMAAiEdl{D|WVqmWBNAixa*quZR>|2-wmurF6@cw6hq8{$% zEP)cY%dJlVr%Dq6EV%?A%;5s#U{C^2g&8;<9Kzt((6c^Ow*xeejHIMTfNuyxPfo50 zq0TDSK(3NJlA4YbP?RRJ-J&HpB4Mf?`w7R@tTNscpT9yZ%rsup7z@W}yk6zAnZJLT zh*#MUTdjD!i_hWmVnwq#BS%Lm5-QzzHn}VA>BW{>$%DSyR8n4>k@4|0DZivuAWU&p z7RbUjH=FEKdN;p_G0bQuzhj(V2r|2nKI$Ixul{*Aa06niAjDRi$0r*UCy4+`nvbkG z{0i~Tac|7o999ytBoNB`(MGU$FKC8eha3Pr>$>mf;&eWQnjh5B!Ks7|CO4%viI5My zUbFru14^ba`TapP%5Ben#3k8nw|g{xyi&upsVN`YIu@}@UfX{<0)?=+XHB|4;BuNa zyl!wzZdBkn<~I>d!ns26H6bY0AqlM!cKx~z-xe)Dn>2gRanTUAOA(Sj!^Iwb^DG(g z-=mwEo#iS;PlQKf%gq?$yfCIv_<9$Y0$g4S_-9+SZ>?4#{40XsI6&kTT;1-2GI@wT z6qkXixTk6z0jf?d1$%~^T&i`w=*Vvm5>dy~eQ(GsOH_pvWq7@F9)9{I&uJ;97fJc99Lk!-2jU> zIF@(^g24-fEO%F?h$fr!QZ#^ZsRWr{&f4tk$yYc22!~LE5~hC&O3r|lLad3ph1zkP z3SRGhTE;b#`X0->l!Nt3ARCG)a+;yIPI5D`Vio&R;x%QuC7d8Lj(vzmh8V!Kv!J-B zp@YN*M9cHYUNh@&Esb1jd36n)}7M5x9A??kJpSGb$1^LGiIM8Jd-{tG2XH6 zs7m4y@)C!bxV0TZRn$hF*if0Hl?iCw+s361$Fx#_XF(PnP<^%`pFp(g0aM-uVF8>j zD5a1b1Ch;#y7e3`E}#yahNfVSbDe}F1JD~%VMq)HupnaCDk*h!3xRhCNnn(SPo$kZ-_DKd;+l1V zf%bXeLYU@zQTDD?2s~PoIh6b}1GCn6+z{MlSA*dUf@izb&(*Z6Qq$i{Sa-*oI7y{lk zec;vw8EUWVD&JbA3b+~d!4q%*i!GqunEaKVw({5(I+X3a{fh+R!*WyCsYAy()p*S5^l zpVBcnsB3JHPIt&dA38|viA$S;b z!?Dh+u!mEo-D#1c3WdrRH8PrY9OzTuHfM|aKu+|&J_)K@I_EE4=!JAE;>dJ`FK&&O z75(aRUb{P+x4j#1R9H0ln;ixZJfKolG5$)Qq>UeGG0^=)J2C@OTPjnaNN1M|YnkmY zWiXNe{tJr8Z2;z*KxKglbOSdj70}xNB9|GkoJdum04E1|FkWUgA_01VLWT3%6M!v& zwJ`3q7X*Z%p&`46q+w_vy6%=YA}*_->kdW?5unEoQafoWZwPlzqqKw&VR)@mF>Oy$ zom1}MEuBx2|>zxJv+kq_eTVxdJ zPX}nrZK@yTpMM=;*Kx+|)}TDZNhl-w1EwYV?xcYcnL^hjfl(}Oz*WPkj{ z9(?Y_4@ZTs`20p~DzGGW7YM%L0g*6lfk}>C1qBqOUWRO<~7LX=@Ax6$;;Nm1A=QDUw z&?>}LT47-a>@4(1_+KGYJ~=+3?mJHL20Zw?_wU20z{E8(FHaE(jp9M1>5b&>vfh}U z_(G=@Eg;9Nmp6I<=K=gN5gQD-IDSp=B7?@Z`e?;8v@r<(t_L6cU2y~a{x+imATXqW zebtZ!SGM*+`L#D6Y+ApuN?izEPSNw6cHCZ%EO(juVo|TZFpbY`vh5r2Zec|K_V{r@ zbyFMchSlB_wI^y1+vjuKDY`>{cnQK zv1S!k-@CKQbw@h(c=z@g>yDRhwS&@7On*jsia0dhTA;v>+g&~sh3gP_~TY%UF0(f7TPLZn**TUAm@nS9QoYITvAv<^V9{~2nKW%1Po ze3~bK)F{)i3bHF+j|5>z4oP?f#a2#_q$`Y~ZmeK+j;x7OR3=CV)>#RAxxGT%c7xQG zeZF5XONnT$~}o8(})onPP^rmXcp6Q^l&>Rt^ZM>bdcxQ#N>tt&(^cU z&~>=Gi=D^J92;@CA6DK3k>`%*Zy-yRy0Kb$Xd%4q%Ijfeq0S;mCSV{k{vNS+!G{Sd zm@#S>P$YkK^QCL)XaYY)uyexph+&yYTK>X_HLxLA?9)c!41`eT2} z`dtdDbgQQ6HHw4)cIBN7+@&JJ6>ZpVDx#0MX#rM~7S8R0bo~jcD9pvpPI+pC7savtTc>Nk3 zh+lm@zF+sSE{rN!bWcaj@~w)dtCF9)ph`&`>*7__z21?dYgS4yv#=YKaZGrcDv15F z_U`sW)lemYKucc#-njA+Vm2w|f2Je4doDShH?c3FWk%9+g5`$3oMk|P1SmZ$K&InJ zudlAx{)t9tygAGOPmM&gB011;MK_ zgx=j3DwkHL?Yz??Me2KTG}PmQVqH}R)Ka!*{F}b;Yhndkd*%*!7EKp3p9K*9nVZXn z@!Q8L*X(iq0%fvSuaJ~<@kWfIag>HhBwk>ReY9Z5k)-|~YjqnNV`>^X<%!alj>X~V z2YVe|659QA?mcD)xclZ!X||A*XA=v3T`KDHf=lsfSf^)X%--0hL?xvEC*3^X=>|g( zm{~}IVdL$YPtc+1{Dgg}^Zmd}Yl676bGI#)PyJeaq_F*Z72&wA;d3ZA%7E`}@TT?u zb+WQ(FM{++7{NOMwU1KY!*jg|4NWKv5g(9RiHCJT{~0C;lHtKDtBYhwS<0~vTxw9( z5?})6gAa{uFr#NVod_ov1||S;^>W1Jj%bA;tCxAqyq%>FdRz?Lc)7ept$Ndmp6H;eV`WT7|4eR zn}1ISi_3MT_OD9+J@G;Jbd;Pc{(Z0E8_Qf+Sqj5N896y{+RU;o^FBEaEcaGZi-4nn zlaX9pfRrwY2!dEbIo#6Xd)-Dd;F=o{Lg{iJ7l1fbzc%CpFH^l(~t{$tDmTH zFaD>2Tky$GE{aVI=qOmnfp}=Y)L{B@5lc(N7!asRZlKn2{o1u8B*g_ECTTgjK8oXY zTsR)g;m8;+cg&QJ7t97T@ds>d%3z+{34xK*W8cQ`#S6f9F2ry5#2>3d$%&YK3!Q8U zE$JW6=u=4{hNvqg6HNYfi4es8R#!62RcOSg4%)fE&@<`v`a6%2Kyr7)3km@H(TD7h zmhyq9c;n_xI$-=q!J9sV95sUNL-(kppgRpks@m$qWT_q%0e-dt8>WllP$);c5ATD8 z6*MP_BOgC{gyhGtlsv)f8u7b^6p*J1C~1)9bOUIy59mg*;6?)Xis?8xRM4$-Q37tkfMHi;%vQ{t0FP@q9*Vc1S$Tr+)ZBi?ZA2)R|uRG{i*{ zcwGRZ?Sg~_*jd&KiT>n}0*7zE*FQ{B!WyzgA(RJT2b)7b1^FOyul;BBjg8z(bAF%H z|GU$S23WbPiz;+cq0Nj!NoK4N{8x4&%HHFh)tP6bfS)Y|V+%{qJxeG>;fk0vX@Ko~ z$QudDcd0;}H3RWTU^n)BAZDkMLM%$TECv%m6+|)&8YVm4GR$C>C+@zt8bP%(QKJuU z5V2@|c?K8MT9`mXO%J+B&{nD22E?RR81hVE{UP>VP);JQo9JQ6mNN7bETm6V0zhU2 z2fw~E`1}dKe*F?(iLqap1ZJ-)G{{a4;!jL}E1b_3`=?j`^BOBkm<-ukwUdkjk8&1q zGdgNcur*7cw5?c~8tdy9px+dRCKqrc8juhZO9#Xl^p(S?yuG~*E+H16Ha2-k9|98G zuPG^X_wP&cIj^e1i+Xc~ECY<15T{UBD75ll6yXn{drFzASLH_RT|Ba4Hc?##BnxV! zbT;ok24`BtcN;kIK$SPQImM}k4=#DYHUxPJE_WKze-9-e-eI@k5PIy(MRs5}F7duT zea5^-IhNnGyL1&U^}>Y~b7#-a!|PY`@~VacgTv?-5qKagA(mgTmp_Ju zCBam33Cxn!q2G!4C8mBk4IfR3|*P{YfDMAVB80>s4W2B-7 znT0H*zz;(n;odR}l!pa}umQ~Z1@KTNbSD{Bkhz|{AtfrJI;Uy1$j1UhNEoTi6Ts1J zq9*WYbs1nHwE=6f>om|YLZK#FiN8IJ47>r7S1_Q9BmacV#6&_04x=eyUrx^64}rVC zY-gFCSN~ketNlp?U%Scw8E{&wzvuW)9UtH<`l1iOt2Y-Uf`&dAq>f&;by~Yn9;k7F zF7VoW;ACCd+evFS1IJf@^B1nudT)01XZ(D`>L#!SxK|KZE^fEi2i9!niXf%Fmo9O7M0>?xdGR(@qa)4KNJg5R^EY+C1$}aXmnTBdm^}sN_ zFtlF)yzbzbX{6MxiaD%<1s|LK^4l-V51xyD)xdB@W9y(2H1v+4h0B|Ugp+T(l zZIA(|&Sr>`15Si8ICK}cIg~Ji6xgJJ9NMqI0rc<(oifY9aU%9rC3|Hu^8@j4ds0Dj1vVqs)zGZ*ttbX<_Mb^Df6-&YK*( z{C9cyxj5c?erQFZZlchSA1F9Q&JR0l1nVCjt?>Hllst;H`Nb2Ub}Q>W**TN2q(p`A zGu9y0hq)*7GW@z@rDHFikk zB|dNV^h7&#Nt@f^p6x{&+qFNonxUF%YHC?9Pla=U z9skYq>p%a;Kk`i2-gXLWF@XOBkM`GS-K#!-z7B6T7KaDRGHs_@??$w!!$(V}VZHIb6fu=0azCyqHAgyUm5cpQEGN78VwD?(j)lOFSh!D3}Nm&By&l&XV65ji=znI;l%R--VpGUK!~ zG&9X%oHmY*#SUMG`c?w7%?FE+OQ^&Y)_=GW|EDD)UH@lDIKO>bUVc6;+Up_(w%<$% zPF?7@q_u(TmDbYIn(ImptUA~n6zH)|zon^OWF}kfe$Z85EWfk6YqCDm&TCI4Dk_?4 z*cNRvP>{O6zt5%LM4XtMEP+juj7X}f5kYqh6q@SuL=?WLeK&Yy zz)n^#d&MjbRV;E{irHG4*;Tt~cR4vXx|OwOf3jDzH0@J{6{re4_ zWOxF+9`?c#(-Gdd`?%a;0UHw&L&|NEpqQ>?JXZ6P-(@p{W;Q*$s-t|VDji~L77nNg z*Ux1+a$hp+uBhBd1s|(g!AF|zY;A4iq;tL59zWOIHv0`RxXj`Lk0bY;y}fjMT#xwE zr@zL&zAkiFP(#ZFGbz%bZ``;6rwU3_Oi!x!Bg4(K$CC=XSNN0j$<6dSGAn0k$Uc4g zUMW*8F@#lpu5>zDUQP~sxIZn7gTt6~BzRX;R??!=l``{$*sH7HdySo)@(lr0y`FgZ z1#m@hUR+|RR!5QfAo1nPaUVWhKw|>~18HXaa&=+Z!eONBBqX7GX;d($49sU-Q3^(U ze0)gU(WJU;E!sFZC^h&~(4t`|EIHXxQBesMQZXL;6I7%E4jF~iGZB_mpJ@6AkK9$= z4mNtZ4VtgNefu^QqPMA~rMtp;?VRRd1C>WcWF-09H*btK=ljD29J2ok+_p6RsD!naD%SjIj9bFFn;IKsd$TmVOKlC&&b8em?tA9kW_`;^ zwwe`Avg709*aZ0fQaHD1$l*q|2jjhaDy5~RyJN43&Q(;w`A(fYIWrL;tYl|b06QZ- zGBWbSu*lZ$&ez;N6(E`S0}vEj@hqCwj8a( zCa_m+KZGSR8Lg@m+FyQztTsNuMFkU+v}X0q-ISYNnk<3=nkDaZ2~w{9d2 z23TyFpS``IXA4=rzR?=-nYAI$p9E%ffV7ZuIa zTMc^Y=&r^<`b^vFb@lbv?ipsP6|Q&5OAjj#!-b2e)+V&TmG8?;&vmEIbtVTSROCF~ zbt}w*jZN$%1z*mfQchQr#0Et~q_0i4joMf5e^GI?9shP}>dzl>tVvgj_29wf%a^%y z>o36OmhP#c(>`1~PhGvqq?k7Il7KSDA{(aQWw=G;ukHHY(4)xx(hrM@N=hN$zI`h& z>%W_rn0VERaED4jKp-8iNG<32OQmcrRuU4DsmaL{^cfLQ)32{isTEs9!Ti#rdukTzdpnb*sZ2xVgbWR*PsEJgyMRO>$GJrtJO!1N zl@)Ob3Hhm};6l@0Hd=am^&=NZN;Jb5m0myFhRN)djUUtjD${QoLyv~$=gnZmylj5% z^pN}%1L-7b&}2MjITloqqXvpCv!#U(6dD^F%j{;cG{%saVaSRvIp%gZa9H;k7Y2_} zb>sH9xAqVJkZIcT5z_VPR8xsVYiA zj1knwV)CAiwKid98k)!4CS5rWXQtXxZR2NVj419|i6GhVB|d?krDgWVj~^fQZq<`n z8bNXQ@$u<^?Qb{Lbk)2+PZaXGoRwA1{KCT2%uEWdH`}x$0iC9rpHyVlA16lX{J8pX zH{GE5^Orli^(xaf-T?u<+ba_rzkS(9?6M$*8%_TB6wYUxl=Lht4$|N3e1ATqxd^EA zTra-8dD!d5`{Kom-O;0i(TF1H7$MC7q1_Z6UEM;6SHa~P{DBJR{QH7}!B}jZWCV}# z%I~@!@36fMTrv!C4xjL)#$nPtDDxv8orPI4lg13b~fpPomIg;__%}I0z6hq?) zA7lygyZ}?nWRdgP90Q6*Jvk#Iquh(U$K!Z)OB2;Zt7Zz2T86Y_>9KPiWX$8&=|^M8 zHz3kEpnM#^{xA5*|8FZXRoj$EV6J&WTqR({&rI_KD)#enBM|$`Kun5ty^8vsBwNQJ zgO;euzIY{uEY2=KjwR!^~4Bc z@LG#scw)SmKWuE{Q$-PELUBYwyX6~e^Yi3UPx(@3W@raW?i4AQ;G<$oE**C;SimdE z-mTfArsr*VqId!&bMJVy7y?h6;7`-89>M%- zQDkJKzq-*~EWYhtOw(9CJ3)G%<|&;t5ruGcoHX?`0E*W(ImNvndtU>-5#YPm$1G$K zdi$GjZ(&A8c{KaZ7`ui`t%0^S9K}&R3#KgPV<#AoiQDp#>F@4GK`$}{H zWoeq}A#~N8Qp%j!vy~pMDUp#HlFo*alqqteZR;~}T9wfquV#+s(%GwnJw#jthbwJA zwZ&M^=F!Z)B#5*-z!cG>?s4MnT6CX2_*gO>jWZpsDm>(x(KlDAmh?D^IZEa+SDV=p z64bLa%szYN2~!<5t@>ap#%DM>MOkY$nLyL@=g{({%FX1^LX#=X!AABHBlQIKG!dmr z#u6{8#_70A6$$IiRHsLGMDl6ReS2%C+0xv#p3`X3`&H})38zA$PvEtNj9;x$X#P(& z;u~a6KibD8k0E~P2)U>fvvYg8yr)HA`vz|>@#Dao4qu9K!FziQ++HyyAv1O#3Wqw>YtvgX?J z(>K;yB6O~jMKA=WM$<5IZ>+oZD(5Q^_V@QQ&P7Pmpo5wC<^~E`01VB=6H#;P8RgVh zaz6yvKTsw3fU5aJ*VjpHuBC`NOqH}FfCllfu-<~3yGI4jzj~ZMdUpcFL=Fu!KwLg! z!`8<3c3EyyrQWyaXEDnUl+hhwoW?!lN^ER}H0TXM!LE#*D+9R`1cZBQ>1pb{nvYKV z1xH0yR{8iatn=v>dt?*hikSrH#ptCYJKA+aP6QYl8jd=;O}9oXL$6j}bw`wsms}d_ zFu(o4TEHPK+N-?GVWU&xAiA?Cb7i26TWf8ay=Q;NSKnegWw(02;-Qu^+EmH1r*v)F zceMzH`p@xD`<|JHs-3&wT2xcyM^*&Qh2$!cQTDAzuM1xcD{WBy66?*#prAmX z;ZG_lWlM!s6uI7WU8PYcP7Ii~ExKX&QnI1h%+QxmX4dK1Q>${#EHd}bcetRh)e=enBBJTZiTd)qg8zvAcwvtj$VO;e%%Jbao<9x_7@#jyRFd?S2rl`_o%d{=pZFl+g z(+%8KB!G)V-3Gb!MFCE`xph@^hj5a6tS}*IY%zU6OT^4}_K^Yx^RDU;^XZBIe&9&- zeI=Nx_SsHjOscl!sclDw9%Q(ggTJR%x{K#V;?tv-Iv?$M@TVjm6|1EtOW}mIo0Ugv zC^3gSi~JskaaB9~PtJ}mDbb3F2_8PCCcHs<+i;qR-}<&N z1P>(&ECMYWfTCmn6_kvI5}RO3|0ntLl}GPi1o{>T`zXtf9$l)XOBY*uLaTB~M#y^9 zd(}t3|1Zb%Kj(d>o4$26TT#$jl!_wdQRV^EXl6FH)*gMRw3lm`fU`nf{n)67&Cbq# z_4>8`-7qe1 z9{Z&LOyqPL2vD(H90}*4=DfNa_Uzn+3kB}cRQo}RU$h2`=^5w@N&&PbZ5^(Bp-GjE zZ=gX-gtl~-tkh=iwL(qWN|waZY`ABYhpQ-!*}PKB zN}U#Fsj}K=JkGKLmEp$5t z#$P-={YCkuhWQssH>Z{DcAtfRs}&B_PIka1%+E(g_;+UX2V!i8I4Fc%pDk5y<+5p( zWuOBankHq7pKidKs$7^ofkGt$-vfLjaR-$b23-iO+#OwQ_GRaX`%T)yF?CND| zR8FTHf4c<|zK--4x|rG4ZacbWvYHA?VkP{`17&$XAp z6bG2N%<7gV)^5{mWJN>Mov7VM4(8vnR{9d4y({~PrDi!QEUQ~v)l<42k>8!CI$kHL zs74>`c_``prlh4mii6r{^lJ={RCrMn`edZ#N}JpFq-jjGp+(594sW@1Rzbl>ScP;4 zNp#0+qOuW((E`rtN$6(6xzmw?f~zuYO$c`VB3iSRc&EMel)|&-ab!QeeCy>kTF|0* zmywA{oQ&6kg_GGK3N4Tv%-jnMT|-x{E*Tm-wT*V>cGIY;V&yin`k0rOr>E@0eXu+ zI9wAgfVMY&oLXCc-=E5&d;j>3lJ+sZ&3D2g(X=S04e8RRV}Bo^!kJT<`E+?Vi`F4<7tk zR$8e4slUHJzXOY?#I@{S^?tcMZe_w(VgaIMmDvvmhlQoW&YI1aj@Lu;sm5g!qCCsL z)FPt6y8`FVi)cAqPfNyNnsRzty(B5qtryc2wb5RrP9|!7dfcX)Z;CAUw3wAMl>JD# zxh(e2Y%CrG(WL78CPCNyQ7Vc*9x7mg-io+0uggPA$?LLt>=#g;4`crx-)`Q?$Ddp% z3;IlEn^t9PLP%!C)Yw>T35CGb$}#zc(WCs4u*-DlbLY-=dB#>@ber`myRwVZ6s$Xf z8aoSZ4S}b4uzuO?^3D-4`D&a}_DDhlsnBh-T7gv<7P~2dbw8MTuV+XPToDBFz?dRF z>Z8|11m0Zl`O}gMjC|)K!uz!7Ot)~{T=%m&i-2DLzQ@qPJ|uWC>G}1i8#)=5;=;*3XIEv^-B1|8m&;62C4>Cd(UWy zO14_JD&WEDStnz|HZ(R(IXh{%e9Hu)rOavkl@{eMvCgFG%B^lUtj@N3^8>*NfDoD*lHbxae*OADy|`Wi+tJxM zwHy0Wvcc9ql@-nJD8znYpoCG0jJGZgQJWn8a$u0;&5rMK%q!7uGY9yMIA zrQ(x%ef#;Dcp&hAEEZC9kn#sg>&s%>$rKAs-a7huIYmRmjro4X+1VTXuG=ZBT1+UE z(lJ)&DCm+;wqLGcH|g4zHQzJ;p;QIb@a$xxJOJHc{?Py$q}MxZd7znHF(B>kZjOX) zZ8c?Qwb0R%++1&Lg7YYgtb>F9i88yc^z6;f?)2Vu+g0}6xpYhWsiuWcR|HfXchEJ< z^?okXMFE->pV_9w8=;eUzBgXmu)gJJII`)?SIP(ai1(j1Z8@G_?z_Ti z4h!l?3Mb~9mO!`*k=)xzxQV>&T1b_e8)%Ux<2CE`xr#H>yof^8`5Z&es~z+GNA2)` zuKf+bL}xqz#L(+o|E>o9uYDw@P69vkT-E)a(@0w;>_f67j8f3}+wlZZ zR+9CXfi5TW^f(>D7ymcT^uIQq|F3@Qf56WGKwvJIK7!n)9*QD9OYtv4Xu=400yXBo z9C|Hwzj5i;#2yJsoB-<3BSXF>W{_u(U;i_Rh7bRXk1o{c*DDg3BJL^u(yE&)mnT(LjNAg9>3e(9qi( zT9f<{A<{&V8mTV=KZeuNqJf}9gvg4D3NwwXK6Ahqic3l=f*^#&Vu{JgGg49*9#Wwa z5plGqW?Jcm^q~;ygCA1L8SvrkH_>yzE#9W4KI_uN$ji$MEGQ$i2JF@Qc?qM{MJO3H zS2wq%>s+G?)~I?BfQp`eb>F`;(9((m@4a8weRF7Ns4G!|1o<6&2$EG1+gXuQfk$iK zzkVGr3c%ywfk^b0;HCeU7XW3(QoSH_^JYzbaO^!$W>P(l4zY;TO{R<=8`rq>yRo&k zYRUmsFLr#kDFPuNiwmu387%DQx;{a|aUZG=21H@eJ@v?uNX8n;9?x}w*p<@~JM)3| z$Ta+j`?P1rdIK9(nTw~-+rOOKg}Hiv%H#KcTdttof)6DF<~l_{Ab}kk9_GfZ8^MJ4moO1` z&vqsUhli&DT}?|%iwK0Wva%Pn@gGB!40XIYd!@i)m_JjyT5HtfsIts)3Fx-TKxvSr zOef|RB`qwnY;0_fWqSQ@@MRjbW|^I=o*vB$X+9VX9b6T}`P@{fcF6i(@3oW}n5;22 zkQqT}y^TgR7d5p3HwsJO)Ik>XR4X!Lq@toCq~KRTlmr^%qr-!qFE1Dw8GEM51u-zM zs(_C=Rwf!i&sEM=8m)4hnwp}8pHzaTj|eUseDP2GK=$tm)pk#&x0@O+cs11sV;#U#9B$Q3F z1H>vCbin=9_fpaKQv>Ox=Njo_f@qGV*5sHNsux5}g`neuu3@uwF}4o`yxBj03?{^7 zhE}VSGQ!UxEkUu}godDEnu6@wpB8SN@9+044y4fNc9*5fWC{U?ncsE3rzn5MTo~x@ zSB2^Bcy;Q00cOLbw4{WAo?Z;3VEK)?Zu`|qG|u+nqeqtf4OEs^t4AHDf(k&2!-3M) zTVg$dxE~OOSkPs&tL7!X{r2(;KMDaQps9M`3hX9-T;jGI(Xgyod6%Y;8dv4Emj>Jf zX2Oq`292m#P%5|`=2ejJlhgW#?D}=1D0!r|6eB@e%mD<>sne&g?OBhyu1V6;(Sgz> zMS557J*Cqa9}SY4LpCnJ<07&tqkPf~cvg@^hInoeMHNxT z5tkJFsfr&1jF1rw0_#rI8k~)o7!pAHX4NcHXl-o;QZ~IlfU50e5JTtcbUiX#7)%+2 z5bczGIwH_x?G^^OK{X!CcmfkaeJtOD;be$w$MoUDZ-Nwv(@0!OstV^0rP;^ZyVQ6O zOivaAMMmwn(Q>f*-3jQx2+F1Y{ABL!(qJeYq1$r(BC@dS(m+#0at=@)U3vNvXl$ci z2Qq3<{1%2v<%5}(i-hQpCg80z29w7n0Py-2BBcb~vHjC5D6~k4w-enBobJbYrZs%b# z*8YiFY!bQ{SU?5_hNlMkr7~@!l`h2)?pY9S!;Y-~mOQVkoe#S57tVX$HG+h4?)>>q zuyb`)x;XCa?93wB7$$rjQVGf2b;t|dM8f-4qlJ2UdJK2(%7J8Gy`+oBK!LOfvERd< z(XoQjg}rhen<;_kX>$vb6#PaJya(L2f1W`LszUwb!>`H4z~JEEL^zE&7Rpg~v88s@ zJ?n?q^A4wlS{sXoUW)_xaj0H-c?62i9=ng1n=>*dkRMW-3tqOxK><$`qnr8W?WB{b;8DRgwwNo*1XLWiY6-)|%z3pA# z1YmT8j-DN~9Al`Bj`#hcPd>JZq^TEY0h01vS3~uk{@1ACs~{q=La&dSR2@$&=Wayny>i2PnGwU|HR z-ow&Bb$uI}tx||u!I#;itB|IE zhTMsyCzxl$g?Vp3KSkKf;3p7*EtCq5N$e_J-w}xT!5=@yMhQ5k*-SO{=uUY=e*Ab7 z;A@BhK@;BJjw$xS+)!ygAWH_Y2_fMD+efi8NfPlYn2!C%;nIOF3c%e5a2zd&S^r1_xZ)|qX{Q*K8;zr*Bh0w8s;VkB z0nC2sV6#M~5ymdD6NR#3pYQ1Curb#>i6Rc}Hw&QwL&adp<*`FhJAUfq&OkW;6(b_^ z=Yu=A!QyP1EM*Z@tOr%D(~1t6vRoPLa>UvQrFX85M7zMAk2a|!yL`wouHu*;AzNEt z528s-N*XA+Ok50zNCJBTAKzT#ENY*PH?(>O|0*656+9tSryoCl+=qOLkc{VP6PXS0 z1v24CBam}PTU#42(@a;YJj_CoJs$(zrAwD!TVcJt2p};voeXSDfRuwc4)g38QR06O zX#kDnwQF=}#Keiz-h>1iGUc}}*1PM*0LzV6CmValHFmVsfg$Mlo;MGb6|btQYM{hA z{?)5jL12i1E^n}mW{4gl0DN|LA^|4!okT{f{|0g~@2G1$(p3JdA3ZCocQ*{NPVtxz zz;^5EnSukK`v9$u=iTpmcW($WoVj>0ga$a;{u0FGJfVZIRWc^94bSaETjGg*00;yn z-r^_GmVW^#I+4a>z9aE>fTp0`4l3s=^gfK1`hqA9#7K;iVY283;6{W}U;a;~__@p9 zJT{ya;l)OUD*8xu`X7F>Hkb<BFaHAb4>1LW zInGAr+3nl6gMxyPT>t@#*b_W2I~21~mVq6c2c{jMD7s^RXAK;Z95AcU{tWqoD~y?u z5e*Qs=;CzK(ZGqTQO6eWOkb2|9Jq_I3BWCoDW4d#fNpt-bY^>Zmx+lfEr{ua=Y2?M zVEBcGBG;ag;WQ;BC1h~s&2f!?52&EeWaW-e0w^;9;;2y#!fL@Aw@!EHiXj4Lz4cWPh*{*5~`^agyvR5p>vcEAY?0%%i0%Cc= zQ*f=pREwOw6VWonJ50SOAgjeUfLKMIYrs_%pB60Eg{UGWW%8|)6IX-~y-tNVNkqI$ z)%$F-_kcMWYyI22{+GN5s^+gA0SEps*pdJLTmP3#j;ACz?;YzXHW|`6GlDsxNtA<#o}8G7hZ3q1Qw)CVW9+`Vimk4${?is? zS*wg>PltQQq3a1bpBc>XP@&|-#eERaR6K%_z;XeGL7EY8L@R-@c*J>{VrP3BDX2)d z)K%r?QVEz0X-R~($MC_{oC2Z=kGm)gwCI@dVz^T8Pr>Zs;*zPF{{(g|W_#QV9NS76 zAB&5N%N!Qcpd)}L0ortZaAhk3u>t<_I4IgiGrzt7uR}i%qx=U+s0`GAK)V5?p%E`6 z4Uk^SfW*6@;h0=lUYV8BMvm8s540S-A}F2cb^7w!D#22kz!>%NeM86F** zdGrUM>}AHd@1lhdx8pY#htmOqGO@8qK_!;YH)ugT!uoo8KZb`ju}JGR;RBaq7I2)= zlMpvKIOy9E+dde=5ws0mcPRMZ5o*!n0H?hRfDds)LZkCzbab?b77~A77IPEI8Y z=O9mUaQsdE-)d{Gl9RKbSB;ia2DSwgf%$|)`2H8nMeNDH0rcDq$QB=8-$0te6&GbL(tV9b3ynYd3ien$Euv|0kldm)|-#AODbaQ@X1(ziBwU!1A zvkfw{p%z5Ar_Mv9)cI&0x(f2X6HGcCFj5ec`ZfOCjU5ujY*qDZzHgn~kkOw#9=(!B zWcGCMCl6V_@IuRS55Lh9xBhIvd@~3g>&QMWQGalyfu!7~>RbB9hu;%J_}CIl$B69Y zoX@?;r8ps!r01So-wx)S@A1JGsgQ%07>Y*y>q}#Y$5ylw`YnEK=@)mh;h$?N;}MaE z7;W9sE3eXw!$*la7H2&zqr;mx7SP@*4XteuUt8NniL^UmFlj)G@@g{I*4Ba%#a!X4 zXNO*BNJxk&?lvkmWz|vv(f2jZ%2>Yv9vjGLxe-@EHxFDHqa+D?WampkZ=cb;Cs6Y+ z<8Miz$f(WPgRR{#S7mZ(iJhLF9w6x~P$-D&iU67cTO!4i|6Ue{6k+3V&l^u{1xbFR zoZWJETcx-4fB*g$v=`=b=TSlWbb)BdD?tFvx#vHDIl>Go;{fC*2390HjTMQzR7HQ& zf%z*b2Yd4mAnKA9?4F#sihn#!wCeww07t-8>$|w@pWy2%^IN2h{S93&3dMVth)5a6 zkWjIM(SmjCPEj4KR~*i$w|t;*_)j)ul}o#*8p6ZA|6qtcPc${T3cjtY05Z;HM^otX zu%L)&E!b+B5?wS|Z{5GI0p%Ftj@dg;<`vRuc&i@rtKJ2~33%Cv;#+s2WA$C`H|ZQK zVjk_-l&5ItBLjqAfWD1PS+UA0ilw?lYDD00I8-}vWhq**OhyX;3`3~T?rUDy$_P^f zAQBz&R_^zI&-2&5_w~)cINlVKoy>A^oauuvNvknhA)$jkQg?Rq_87l0iw6C9FORKy zIk}_7v#$R-=<4gOdTl*T6QPt)7b2xvukauvHwJe@_JrB_oldpNsiXC^PY2ip;Qrmi z7*7MU-E&KWl8};h?NQ0OiQjK+`E%%HSJZp{*(Ltw*NawGRt6qHB|D!%7-^9T3b>Hw zfPjcH=)3)@REaRhyN(j!o68TJK{koiU}_>7X^j$K2Dab4LSSxcqQ zVS3eI#bbynXfOjaC760wLp4HI|KJ$UOJtEGzhO1KTCML#gWN5JARKE^efdNCJg8^q z&YsP+=PQv$5;6231+F_bS%Ho<2QPDjCJz8%H!;(hpMGxim;RN7>$T!E{D+NOb82E( zmXOLM4ibryUYXc6-#XIGNuu$)YM@U;?&z8>_D=*0#^3IuuOuyx_K3efMV9&-yPrQ!^^)LXF|B0!0DA_KFs_sEPejPX0}ayzn9udi3sA zgZ$K-l5!gXVP!TjEmyNK(L{|?U-`v%UwH9ks%6wDze|svu6--?1X5&XZO`xG4B5wz z->_VhcpK9@eU$Gw{X#ZswrZ^6`8obz$T1rNYg)S0_%@ zE!k>nkrei%6)q~WC}&Rpab9e|#H?==TGPl4HhCnMNsmah5p1UKJ7O9$9w)!YY`=g1 zzOOWGZsXp)>nqD9tvT&iX1J}+h>ALHJFKbw)-4k1$(5q?ng0H@vZptm?*3k1;Y*9r zvc{~LjY*C2b0T}KnocH|lR~Wfl*S%uIBMumBwzkLYOYV`#ZY>eCNC@K7TX<{pQ0X$ z`5ShRj!yilQo#_Czl!i8F=q6h?=KC*^@kOhnCr|>hB@sOB&3wQ@0-ak`Dhp3@%#2b z(Ngp0v%)&sW?abul&I&kR3t0;+J`SKc{6i2m-&i3c&!I{Io#(oF8?mFjlUVAh3|ED z+nXNmp7Xuv*Dh64fBa6U6%sz5{~mVlx}WQ{9Whi~uV}l+(|ge)Lcy4AjY?PVr6SA8 zfvcPrl+o)myq~LHP;*=--`-}g{^IsrSwmy^p4&QVM2HnG^G#t^+ir?}Pnl47nI`nd z^WJ~2G&Q^nXKiD5J3*QuF_Bh-C;3xM%+C<+n2GV(mJcM?WHdA$&xdTFBJbyfexLBV z!D&o)#o*x0d^0oo07-4lxbBMaxL0uiyD(;joBTsC6({+JCn$fazS{RI@%!g{>7m}Eg@iJiRM5NUTF#Bb%ISD9 z_26!B>1Y(bQ-meMvzp#yl?#-Thv6^%dQo7qARXZTy037<)MA9;`>RvFi9wKzXSxyz z+A4P?$jO_qeEw2WLBwRsrh|)B4YS-<3=0CMY}cOP&62bQx-FcGdiBt0#ZP-;a{g6( z`=yv`?t1zL&+V+f|18d+e64J&eP6JWd4ZXBg{IhYm}Y-=*6z%_c)9Ex;~{3w^&a(|&`@R{#2Rl}FcJ0&hocjm(2glQvYyp&q{ z=m>*WHdIhZkkxdnxr2pT?UXMG0~=FZLBYxFKSVKt864~+sI7AEn*{NfNR%BdCZ|=4 zt+&?m4(I3RAIi2zxolqH*I_xN;LjH_xd9{nVp zuz{gWN}1s?^rx&bvP+OGmm(gL{QLo9a5__RA#H$2(y_bSiHSHh>%KK`FkrA$-u z*K@ltMehZn7F;q`;0pBb3mmA3HkHdx)_CxMQfzbKwtFv+lEqSii>g_gdN5ofvanHO|Y{OkJ;P)x?a=|89co zK}(=%ECzc)_f_?>?G6&`+Gux^3%{+ob^G>~+&8huq*2SuR_b0i7#9-}edzKbo5I`uNXW`V_8G zU~~!M1pg)zlTS{LhijtZzq|lBdlqEmO_niLO9R(jQ1vZ6M0@`?$xxM> zWydma^$sBjM|lq(6KyUX9WH@z9v*YFKV5V&5qs+VHI(0;kg8^Y&2Vq;+SlsJHO@ui zV9mDEukkFUsZOtxf9sTfmVd3%gIIW9DBFC`|9c1H&Cflo2mQ7)>OE#Vk-afTSEB|_ zbvLePtTjSx=>EESWp$sy+T_b5V`6k5G*F=E*R1Bhg7o-P)d*aPuvDW zzx*C7juU221-Hxf?v_>nMw6Qhbg*YJLX{oDK(MKM(Gn^=s$O)fP~&iJW}*9l2?-H$ zpYO}}?t5b%P}oN09;2+68zj_IWjVy8*Ag30wwbfan!hM3`MBcl9k-wAQv=Sv}Q}t)+KR6#R@zIG`mL_gNT6 z;^gdVCmdU5KXkC+&|v-@nv#=6B^sxmoH4LY zRDUtz2j@7a+3F6D16`muXk_XxnTpdGEqG3V{h3gYz1D8ZZ?pkP6+pcG@!h(VoXQ}pyQPd9` zR&m1B^{EN*A4vDPcHWj|43@o`JfCdMK{`v><;AEwJ@y+C{0apUukvUyMmEMc+w!dD z@a@~`I@M*plyz6IjBz16l&`otiB1cO1U_4VRq|e{JZ;pc=*-Z zwZ0c-_})0nyPpf%*xoQ5m;T?6!XGirCTn z??Hi)y!7pfxF(aIMplQ zeV^aEU6M*4jYv(r5_vl^FOnu$YxTPbKWW z5_t4|Mx~V5c_;VxMc3MVX(6v_ZGobtkssX|KlL=*^vu_7T<^PuagU2$jAGe~^b2UG z&`gseA6mk=cVPrqok(>xW5P9*2^D2!FF`LGe25n*=n~QG-p9zu4`6$N+f7gjNl9>1FFn{rn!qK4+%x42 zkAFZ*NK8NsoJc8X14g|gPW1fYN`Qxqj7*I$d)1GY2wp}8hLoiMv9w<*SuXSq2G{-k zhf39P^ZA7yQ)W$PlZ0=4m8VX|TCEFI4O}}_vxqOiXXVOnOIO`2!RaCOBq_{tOH_Hs z&4P>HYIo?48kc3=j|USB6{$loYr zDIoTg)GXbU`i=-6L1xQndn!doF*RLWF@z7?UkLS=suC0b$=kAGxp?sj6ouxEioAC}ue^}HG~jYwIiF3p3S0mA z%N3*1qARVhqr8Pl8^UbqjXImCJS|>U-VmI;fl_ik;6)_~?~qekP;#06c{XY2F*y^4 zZ^v{;;YjH$d5u&2-F2o3V})+h~;8gDtla_xM)mt=yA z3{_-g_$SwKJ61QjfY#{jBcEPd5fRV1jXsr`_qp4SGtGdbGt`S)2LfYrjg7V%_e$+% zFCVQ?9myK^gLSCC*pdnb^zHZBT70+{40+UrEjUZyIVAWZPoJLAZ3y9(!^g)jby~R% zEu}`O&D-Q?OjB8aFA4iyFx$XWO`Jff1)A+^d;2F)fIfoKINJvgSuj{0`>JPPU;{n@ z(8)wW9i8pTB!i@)sp&x;P#3)v*sYJlRV5^Ro*!aiNu(tg3a-f<mB*}oMErrO>uNOi_PNx-ufEq zJ5_&Oi#qS;o#p^!Q^ooZdkdHOKBAvEyCAqDT3XR5R^vu)eRQZ%|T;dNAy7k45Xz|gvJA?a2DGNBQqX5$6Bn=nzS*lB) z_&4k712TlkE?j)(V#7wc7~P`}d;G*l?au@vX8TINH$7mNxe0cLFRz#%x_#*w+9xOX z^LHuY<^g;04>5hKI?30*@9K|JKst2Uae) z7yBA`E*V%@Xc!pYgJyc^>Qzx2o4X*wfvEKhOrhcptR9*p5e+}n=e1^LX5Oc#o3cii z_EE0|bGaWK9u-zu;7Dpp#^pyHQ0YQ5#p44tpTUQFYF|aWvjXlAG9i`FsGmnjZ$;1t} zDTy+*jBA+sqZYE?$liSFW^u^oUJ2=*y(Lcs5O>)&nsvB-GoE~qkO4aKx%|E<(=##o zK#F`o%xqoxna80=J5Q``p>COz&?jt%9RFztYI^3t;Gc)zW9jR!@Mp|nn2M}cpPn$s z=N}u)v-cZy*^y&%aWMNm&}|23b#}z@pD(pk?iPC!Rkv)B)oa`>csu~_kT1pns)8(?y42vxqhK12HAl2xNGoK40;ZZ ze?Z)WM=ZVf^Q-&%^(9CXmnbM&fU$7~@nWVU@jT*G1ear~od)7q(m**o>u>#ui@Oa1 zg6YK7>L5>&e0f6G2N}M~s62JM1DqfB?Q_Q~INW@PHu*-dOW=RIHhi(oQ~7 zwk?J#R{ExA-M5HjcN_!7_4im&Chpnp8sUlQ#-=|;EjJ*jFXfUECNfMA*>jvy^W_nK z$~@XruyKCOZdDdzztFZL(HMEpTja)lCyoeS%lgJfZ#?|d&N*e2UP)Bqn#7IN)%iiT9L=wI8$cB`Xg@yYU1?`A`u5eg6Il5+j)EhG z3)fXDcQ{)U$PG8Y#{lj!$Rs#JbR@LYZ;v8#*biJ7HLocRJKxYs4w}rx*SkT4(2uG$Ta2PRFi2ZBVHk`DyI^cJJ##@lau;uQ}xob11!bvN=s0VeS6;iQ>;)wD zOeKoene9*0v$$;a?wfWe6O#mMN|*BW_AS?m?Jo>#=kI6xq6Hm`npA`ie_HmHxzmzW z?F$_3PSc|hLd-tKqh@sEfE$kbXSqrRr|?bUsO0^EwuiCX5&hDE|As7;+{c)o4IVp$ zz;`{)_SIP`R!7~-vm}XOcZ<+pIt(}0_IOb_;^8zjpMIlY-L&>|WBwTmo_F-gt*6F( z_%fSH)@*Du8lzW7r5{Oe-fyz+{)`03bc{zdRPfbyF)CR(xo_Y{U0zAWd`@jQN&s_U zP)NvSV&aoQ2UEob1wl16dEtgY+i&mft%1|!V|aK|fXBWr01$YFh<)&$EA$LNV2|gw z3B`kT53E&Kuy&O3y+{qIcO9% zn__L(%MF2>1zD3-{A#>$8^H$gY6^E;lL1H0cIO7g`cL}-o6}5!dbeuqmhMj05#21C zdFn`Myq_Hq{bhuhl84p}e8@YGM6NPn4`1zP3{wlIBJGVR1-8%VbYJ%!Dt36AsLx*q zt4y57=?xvL^ZD!7XP)lt{Vp4omQj-oro|Z2b$RC}kUYk$kkCes5L4_CC(pE6>{il> zpm)jW%LsGUeLl|qilv)OXwEMmEqHQ^sRa{qo)Et}%tb}PyG`-Naec~Y`^mRn7X7gm zwqw@BI-M!5?U1cK>fv2JQwSNvn>9A`Vn;^JG$b}VJ7+u0EvDMI@4UxJH@W51PI{5w zqI8aVk<@P^?-Hd3AX7|%Z!PE~pAkSnqsX(AX+mfv`HafaTLI1GK zL3=wD_iA^*MbO}BTR;AB1=pFmbG{sIO*yl>97PUryJtVkgGw;+`2%Uf{TINJ$fjkvTZJ2+> zu)`}nO%esqAz^gvdVNz1JxubeoQzijd>@S!f6Z|*Qdi^?tkd!PvDcA&v1ReCG}|E2 zwYIgK`jD7FU@<@I0_k^gxc9lUeSx+#Z@DqnLgI;^1uYB$JARO{j^<1xXtZEf*Vpxy z=cFzZp8&)E-aqy{&5;s6>$Q`Ar;(gS-19}-XQ_3{y8%m>TL&bRvSpE8v>T9_`eZ%K zb^Bm%&ehjHtj0(G_SkOx%cTp$392)Z`6Lo?4bn(94xmquB_%(3W%YY{lw2p1)zp?~ z<`q=iA_03z#)c!`RgrTwsc_ERb#xiR$Q5MxXbwW||I@fZm09cc$e$hHP=rNQ{jZWv z_U|q=o0{n!H~#qXW1+MXCsk9&J8npQzZk~52siVWRnWbX{i>+IP&1sHrd9N|!}DV* zAJ^KS6ms;F_s6%Owk^1|JbL80ip-mi&Aob@SKXc9F#noJny^_K-cRE%uFI?R_RZtu z%e6zerV`Wo*LYkt^Nw*T+SQUqHAf3Fn9>A^`NtwzLsXw^ z9k=tzF-&$^CyGVST3}!4UkbiyCoR}S=2oJp{B1_$q4Jx=!nm)hT&Gt}>&x*2}U-rgD^FG|Wi&I5Tp3u!bk!Ydm>O zN#$B$d)s+jF`q;@u0gg#4~EG{cJZQ!q$DvUWp;96`<5&=d(A|dM1+v|#8HZAqBu?dgUT0b0K+~Z zqWwd7a&ai0u$3hPx!dmnk0>H7dn zI&=XvoZwrK1A&T1eOpOuL70N#yro=Vb5k(4r9o64mmkla_frz1`AkjwgOWA$RA^s{+%=9bBomp-BFhF7W~7GXOep4=2$Y!BqRUa`~3NtiE;_G zmCazDD--&MflBlCx$QtA5rLi4nmkXuZxP#1bkd8_5uHJ$6B zD&*Vqk(qkqS?2h=5{l{|rFjan)+p;mf#}9!K^Z5UBfx{u@XUZrb`Pxokt=L$zNgMJ ztt1NVeE_I@mr8SGSK>~+_qSWkGWw~Jx3&GyV0|95G{M1wRo+zDNA_CTDTW~pM zRHso&TEpz~{eD2jd3t%J1Wq(VvI~y8J&)cYRR^DE5Z=NRgptcZUiJB=z)|h%T`(a&QDd7`OsN9?-x%=&J*XM6xaVYlpu%M2g)G7qH9{zmA#D z(eUy2KM$zABOpClWx_d{>oQ*T{%1|iYLBYi*zvCdPMkng(gTdH((U|P$p&R;J^jJkCw#XPW{#2>o(@vouVx!OW*mW^U)Xo5m-V#Yj7W|YoC?jLnW91FhbJbvO%bMGc23azLEFRPO-<*$EQrdcd3Z zl{&D4sM>XU`qvcfdRlic&+{kjFjt`Ubak^qfiJ9vKF=6N!N|lkFX%w$D42zI6g-q6{-##cn!F1ERJ6i zYBi822n@QTobwK{0BgwN0BO0qz#IaUr(CAx-t(HB-$2B$2Sq}$r%!VXCD#l<;1&`G z6J;ACx%j0HOpXx@1BP<8NJtnM-HR#5yu{K^k&v7)xJNp7UqCarzZv8h#nI@@rmVO~ zBq(gOm=nevGyL$Bq3T;jY2K-HMfsc2rBL{@l3w?!+yzh*m3{tF+@^C|Z=iAOp z+-z|HtBuVtSKf??Q_N@>6zObZlZV@Br<_~#*o}KLuF=!~P^p)pBn1!n-~kFm@=|hj zN~9wCP4q@e9lo~cm13Od2CPsq47CHiX_Rb<@k$;RfuyRbKJ;q%M;i^bQX37T;D;=U z?jF}VeYbngX0$6Zck#W8Iat0v?*v<6W22c{GMbH4f?z1TS>|$umZ-32GqSR>9OAIZ;SBucQGF`z@lJB#f{&{#2!6MK_L!1=9N`01)pVtH-l5w8gp+<8k97+z^aPL zCVp#y-T%txJ<%lNl=k$L`Mcio{M_v8;6$iT)r3c$6l z`k)W(o`XrAe6J|Z5x(%)$ioP6HDc-ZL;qe(#_8|HjO3;MGq6QjuvqYEb({aZH4KR% zcx(P=^}lx{h9GQ^0kUtTV!Idd z+$Iu#M>ZdH2r3XOV@9thDIhZ?HY`JWczwmEc=*$^OW^PcA>V(z@agbJkh{EUD{^?7 zFcPrwe`f*txMu_swEcbkY(?zU-4(;9Aaz#zOw&5y??Iqzl_$_Y=3v_7$IS<{i+T&2l!|J zJKq8Xo9X3{!!LMtk;6AaJpq~p7%NPO{ zl#-ByTB|XDSu&L4Lw~M5yZwq5B$nUR=wwU({5yAR+%N-%SO0gs$+D%_;a$~F!UBss zS9X1p6K{XGcl`4^v9N@EnV7&53JFy_ZGxMsYL5|i z0D}v1tE6AK%xRIsr}SZ%aP{h1Aw1)st(f%=(LfE*M9Bpz+0!Oa$9MwNEQ~wYA>?Hv z24P5CgKD`m4k&bRK73x3Ct$Ua6*WP+3CL?lb!GcC3oTyv^(n!zT?u{yY^~$i&fs@L zVS9US5K_rJjum5gnZ7MM7fOlKFT^t?lChpH<30hsi z8@3yL=ToEeLnr&L_3U$Z5*iiF@d59(wzeM+Bc2^z%jjcd#uLgSVA>-%gG@+yH35^y zZKyX6toP_a!@@orwP1_L+uS13+>LRKB*x-3CT_NIq5P*m?Z;Y~m%`Nvnb z7kxnR49tysA}Y#mHpGp*3EW~HoB0b++GK?9LxDr701$Rm5WU0#uCnLqWh; zg=Z8PwRiPfb!yF6|HT4OZ*MH44GeC8T=EQrM5u5ct6E-;+X4c^+mQfCgnb0s>qI~v zPEq)@v9o(PJ8}3V4<9jx{Fe>qjI(tQ@DZnG&x(Pw=*dtgs)YE_ltLp`QAw#j`$Zk< zCT_{n*7k%J2+D`^*?k58fKsr$9K>H}*KJwj%v4|%<-n!|l;%y-U_ZYqD)Z8ZhK9_* zaEb=~Y1XMx{{6qY~+IY0<%h=KV|K$Rp=%F-eL-S?X)0QSCwwG%Fg358s$sNe=9 zO4&e=;L)Q;$Y%=7hIN3;rdDe23v}j=Oidx+hStCX=z{`@z^N$cG9b@ayMu8#++{LO z9B~qHzHl==FMSdVNM#u`k^>e_(Xa(2lVzfGb4A{Jco^Fz7y)Nz0(9d+L?8gDbN*3L zJ{<;(ckXyYv3w+V&y$RS_G{V=Gzws>V>2^^4`2`ogDY@QVD;zuo|p9?ZE(|6R!Pag zI|c>?+x&~K??WG20aPE*nq$Lrx`9{e0C%YjHvkzb$Sgp%A64jxyZJn*5UI_=Zv(A5 z1XL@nR>mHxsj1lmNy3hn=C^h-8d@r0R-! znvV)>U%jQFB2fAj7A~c&8Xb*-&5y-GW*K2#z`CdN+(AYoj9 zSgr@Eav$tH;8?+`xCbP3AQCs!*C$DTBK>FY{O*9b$DsfGxz!NBXU z8|5WA_SS+cp!SvYYrAfd`Oinq-8XP}K`NFSE?c@lj|dTR6@<%Wejf(&rIcqx&S$$2 z4NzGWQf2ei=}J@kYk5V{gIB#D0H*YQKfA%tLJuaVMhAzTvj94KEAoj!Kp+B0(@1O` z95WCBsu7NH@a}*?dxyfzBxIPb%UcDhewP85o!-O9FBq5fD|4QX{rSvPR|9~e+p>b z3j=u{;X$eRYuQi$Apu@ppCF##(1N@qU~`qRxKAM*=VfGdRxU~O$JtmUN9kbdT z!Pl$8kn|070DxgH2Bk=Z4#H!-_v?zI))-sZ+xV+N+CkL9;x4H7y@b;CCkl3V z@Pr+((miVZBO{-I6p6qA6owo&hVACMQ!jz6|H4p_zvkY&;x4|Rq6YRH*bb|uAs(y? z@c2ykik!I>i|V`qy$oj!CP}9AKwH=D`1XV}&DfALEPe1kxjV!gAJgBS^=&j#$xLKg zgS@^CW_NFo%9L#e3dJa>_nJ^QOqRIp@q$U5gpEi{!+XIEO7UwD5KJsAG=mHWc%6L9 zfKeFzhCSGrxxoTfP&vrA;XVvA8Y3h57Uj2obHdpZ2#!cN4IuyupzdkvB|QV6BI|V( znAq+eJ#>(>HPmWMRP)Gj6d+Gj%RDn>gFyi@_&f#02QV*i*voUIPA-QkHXF26zK9fX-!;9?07|P_TNS9HW0|w^WIUh!}3){sb!&LWnvbL8W0E&kKjz{Cm87UixcajQ&tKn#JTfMz^RBp^yNF@a?V{sYii z{1s!P^LP4>>I#>_fmkP^7_&H#cXRsop<(fU=0F zu|#&NQd45el$1AuJ$ZoX#U``-h2WC;)~2Os2ufw!k-`B(W_e?`b2K-)AZs$n4!;M$f;8d6 zTFKD`t*F$%W1<@h<-)7dYmc6Vkz(sloxj7i;J#T$sYZ%H;u9u5W9BOiUD*p+1ffgG|lR z!|`VI4IZetjqzUyeyKb2^B8*LEJw|IpEqSKWyeLA&EF zWp{m`<7|KN;)N-VjDI_%!MnO3Nh#(zNKy%5sHseEU1Yia;cbuSB+fj`+gNO>9@q)g zn?n{a5Fs}UmeVxLBUaY%F~-XT@RuYI{q$5)UV!#f=mIlcm9BXMty??Uix9_xx?j)` z;3O$&9SFB_-#lEuMRah*Hsp%u1g8YfLCHC-;$(a)xT(7azqwIh-b|>y_mK1qKYyuA zPF-Y)Xy}05bkXqxcZhPpVSui{&6pd9bN2xB6Y%8%j?aCws6(j$2n#g)pPr16p^-md2lGiLttWj&ytbRyc5Z z2P$11kRwlMj&N-&KJS4iquP@%TfeuqhR=?)`cKr!nS4luxO!FoR#c$GB4)>`0$=_@ zp6X+LHHf5vUw%nbg)1aq8YHy6mSv2-9V8=j4sFRX&R1HBnWN!dh%~(eI4UN7Kw&pc zhCfO_O~ZEafFwd0wmZn3k_N#hb*25@nwPp7C&v2rhku%mR<5l2i+c{&{#0gNTTHm$Ln{ag)t_d2UcY7QR@U(` z>WO1dcLXgBSa&K02`Zy~CqML;2E7&*J%4eZ5h}v!{Z_kX}7kD7^4Ig@(*lv1>6ya!!x@6 zwlC7?@$S;K)pKa->8|l(Z%Q__>yr|B?4}EC)R%B3wx)ZOq-gW1sE~(i$+4)*pH9GB zed|rXave)4%i!V;=FCL3!tdL+K_6$@zw8sBF*re>DRb0EHFM@6!lGC`>Xeqrcf#ZB zgbrElWt$u#7otp+f>om>)hQ?Q;nLR~v!1yhZ=uX+BS$k!q?PiU%S=K%5({jGy{nv2 zpP7EjKjoa7n(nG)PR>BmKk)Jfqq=t1MmjU`CKUH>b+@u5Mlx)zvzZN-YOC8;P?P|u z=LR$LG(J6yyQEO&OR%c8y7IXs{vz2gcEiQ3!_`D?w0l*v=Xr;Uhx+63UJq0Mxw6=v z>>0XjzC0eBvwAl+xiK#_n8$|kwXEnluoJEC<2vo_@7L9IFUBmNnLT^5GBP5JJIdaR zy^d6+H-z^XumQNgbGdi@?u61%XL0LbUGT;9fiI!X?ofa_ho+@>RKLJ=n#c$@B-eYG zfr_*3)+-TR@INQ06a4>yHEIT z{*2~xqG~3=X1<9!b_PPRME*I52pYgI80{U#7+0m9n0|Nq>2g1XULD8~IvcH0lHoXi z(MV2}g(yIVfd2=6EyOQH6y?N5?v=e3JjTZ1>GbtN*ih z*EVSjhC9!ympS`(N0n<%73=Hme|`3l9!D)bnLsP(2FWIylQK<>*lI{M!!}Ea*!m2D zd}gW|nTag^0=RJzZGx!X4cF||CUl|m+!2qB+KI8T2M_A5gw@FX8-a=nmmXRTqiN|u zfin@w!dI$A&`Il=PtJ(a!%3)1+S*$*c79y80~W*9Ox-~>Y*MRL=W`U(az}Vitp4tD z;O6DA1VGuSnTqg34HC==Z$_wLhw_x%oqVtOFC)u&_vJaA0yfK@kA+1}XQ}qcDS~Az zZ8l#1_LogB^CVgRIMw%B019Vr<`P08pQ0WOx_t&X7uZwsOMcH}Rn#62;v*>7$3+A6 z#Lf+Ztpiwo1Q7@p@nAq8l%vDT~cfN;Dhf+`~uZtF`03k7boZSt$J1hLphk#Sz<8*0gp*sF4 zlG{Iw>vUnH)fvDwTf@rvk7b-%6kabT|NT<^h0)Kp74y*$Q>>zloOM`gFe@^O;ti^w zU7m^-ww5p2xWZ7}4qB`q>PXr3en~PlZ=dQ9QRM#4TFVsWF_fC}^T*!3QJi{aV)^m+ z>r4~+2R>1IYoyJXsROWzgFW;F|1Q8nqhCvgw}CwN1nL4f&HdpJcdJbOTw`pny}jf4 z{bpi6G|ll!Ee@2f>E3rM{Z+FiiOlwKNc-dfzY0FWKKcGQoC?WGbOkI9@TE06+JoDH z_B;76Res*GUK;S<{F)9QR-iFC+GF6f8GyY^{Ya}fa&xO-a`T74OU;s}OSs#wta9cA zEG|E!FPl3{T@~_zaM{5;>R~kyz`g)r zO=>fxP;I-j4xqI}kfrqlFu9Wx$9Zk$epqGhpCcrEQ5Ja+`#0OosmS(+269Q}ILA1n ze{Npt2`0bpX1)`pKX`V_iFQFO7HDA22SNum;0ge209cAAiP2{P+H5)Z=vDj%Z%N_W zPub429cC7mZ+5eHRr2tOq7@Gp2Da~WnO_(w5YSXnc~hf9&$UD8z@v;{IslT;gWc*4 z5{X)|{Ih|1jbOWnF1b;?-$GGKc}{M=7U;o2 z2nh4{7Q!v=(5$dOAFf+kztX8}?;xh;3|-o*s&Bq)#VGh$*y)AE#)?iCd*@vABN^{T z=s1Rg^Wc}r&~JwvIavBsxBjM}}Kn4QpenNiU8*6O z*iLLlRm8tKS94MuzE2G!1a$u=5r$DS<))edMiI1q5Uf&ezR|&tVkU_x%26pdH9!*}ZBm2b zel=9_ z3!jCg5wZ?BD0!&qHY)e5PtLmo>24yK!QP&0X5Dx1!ta@T+C3jPOxtGE+onJI?1yO_ zbq6~{-+957`+yx;Io0B?BW{Y!WjfUde{vcMP~p}rLIy0t?6Itydei9@RLM3v^G z7RNpNF8_5Jx%>kNonNXwP2aF;Zfeo4tCf#SjOW;9{d?e7wGV)0ru9s~g9oP;ue;~* zj{RjpKhQaTNo^Qe@4?;(kd#5n1+u`Gn&suJlnHkSl zewxv&X{kQ{v8F0UfbF~G1}ggBkft1?vdLyMf?noHc-tYiDcgCnLUld)D#YbXE!z!~ zkwIOr*KXTMncD-3{O8Y~NLe3tE0w~&cZL9ApS5Q&z|TZt8KC#ynLh*D-A^;r%bL%l zrDA7W@94xRoASY#wv8Wr|3dWl;`p zHe`l0@ri)F&vMbqNC*=*O`A8|`5dA!#bkBOz%MRuXM6Nf@YR=bi3DR4(bJ>@&Dz z_{r?T#TDh>bO!wcQGiFXWE3O;m^_4A{k-2#G?<+ie3979WZR@@qOr#VNG4)x!P)`T z#U0q^o*zCqEMWR_GTQQP&E3}A&d1pRY4tLvIHa=$9WXB0c!+4uh&O!dUv7qbmpF$79F1#77h_HLYS zuDm*(`6w*DJ>nC@5Y%?ocG155;pU;Q{3EMsmmiyd+@T1fMfp(OR2|*zlncQZ*mZVa zI;-Yo1i$o|$04DZr{?Ag-^ad>J3 zg}zaBAB1-bUoodYYdhNL{`n3})BXNjX#IT6=`a+2JpUDH#of;%lkA~=Z9_}L^umX? zHj(Q^QP&e&u0_ANlHH+csntf}NOHNVz2p2+2}W%6c~-#MFy8yZXwjKUC`T54^%Hw$ zs~1sQ42TV5%W1C<>|}<;un`Vioi^ymIKsur~U2b2Y$;HQ~3U#l0#0>4#pa_$7 zyNPA)h;w?nBZhXb##MbCU!Pe;bbu?qrd31TS1r+$cMO&VT zXV0clH&|KQh@DKtF@cS{>iH}VR@Vsz1 z-F|OGgU)8{PyrXX!(gms%4Q5D{_5qnbWBJ98$IT_T_58ZVOq z+;K>ZPxbh7Q1=q@I1Sxm?tyZpc=)nv$NSceuw#Od*URZQN%>QF2lH*9!$d7tO+Ikv zWp4l1@kxD}_+AfW8jIyL(GndXuH@!wQEo1EiEorNIU~c2+v#o7)V)M)JDA_ThR!f` zD<6D%&!j>`UAo@}k-U5n+V8hDZ^-KocPQO7SG?MwyC0Dj%PQqvbd#dYP z2I$a;%YZWb16sPu1Ky3?YIszv#qUzD83~xBTeHYS)ZGbdNq`b)_R9;XvuDfqhbZdX zvf&1VCE7OHh@2Ti;y=jC%bT*RYzDUIbwY3HlTJq}>8?L~ErYehMic~vNfb`EMo_iC zfIb!mbgd)>rs5dY(!W2jIHHl@H}U8Z9qK`)67z~L_h>=r$B1Pvs!cI(!iO#{h&b%; zS4F#mVw*w3W{Ln&04>f<3u-M`rPIx@m4w-{E$4;o`^fKDon(xC6;<@Esl?xyJYPm%KEGT&>{oEZW_EsL#Lw(pB6db?e%?6V zJ#KMKebx&9LBY|{v83p?qmzB?G2WZicME zXkLmxekk{dwT#HECueXG`eU;-g-du5qf!(BdPmKDm+v8+w5B z2;G$j1FD&%7y(o(c~W^~&^JV2Y^>^}vm1)Y`tbeG^RxfHAMF6GgBKq}J7Q+B1nuGY zU%j0&>)UXlaMrlu;$r&tx2X2|yTns7Gfm?bH<&nEGh@((t0GpXpbL~^`<-z_TAwj6 zIGE6$(aq+vdki$6u{zZYyJ4{VTt?89db6_9QvSezfUhxhZ#@39g1)8`ZGOoVvRmW1 zX!;)J+XE)^w*@z&_?`!`Y>#>;#_?d}nwrcDP4r!t8^68Jt=tK2(q$P3bN0RNn%W&{ ztfg_hmG3;i8E^uj;(6zW=FC87)6_3S6b~%x1JdJyV22PTcF?{ibiDDPonhr+7W8-- zV0I06hUe)xlRl-V*#-#7xA?bL%mdt(!)fjf`T;nZU9sY{9vE(0b5>b#OZpfzQTSdY z;9D~ZY3(bWBc7}zB_~VU*yKU!D-i%GVt(Pz^xMmOk1j&rxHsglN!veDxNGCLzuSHY z?hfKv5jnLfl7+*mW#k5D!s-vyh$1Rn%pa7KmyZXrdZfegYg!VOVjv!D=X7*kQgiV&E|A3GX=IXmg_*3xl&|e8m1T^`$wvg=!wS>Cq?`~_sZ!4u| z61tgx&(EA0%-q1XRO}UOVZ_8diyuF^;0DC@Amiynu9 z#a;W4UOkxx{>q4JnzmwLW(lYs|Dt`Fro6YVJ}KMR6n3I^oujz zi8E@5nn~Gi@AZpYjHgQ~w8%4~IA938P?lb@+jonA6e|_VA^uPMjS>6FGZliOD8*Jyi~w{fiTK>zo08EQTUL_KHFA*W z-IV>Px{6V}M3A|=p6xvOaQfWjVthBUXAD? zv7}$uM0q6AaRU_kq491n?5KFCnLn)9tYKvo2UuD!g7Vsfru9gJ7aU;OR1isaDX!tT z>yh@4pmE8sW!Hm4fl`1kdO=fxSSXHf|1msLD4D*9E&58MD%ABkoi21#Gx*-~y%Qvc zIc?sC1qNeZ#%K0SrYbhXpruEV@Hm;GF}yV$c#PCJPw~u|GnBkWpSIVjl3F7&f4$Dc zKlS_EC5K)4adVjCp6sb!Mk9mT^lhCT1$mbu(T1aDg%dN65D%1fQ*RS>(ZaUUif5`B zEw~j25D$4Jr6efa&K6@c{27sk5}?lB0pOndpfFlfS7!{}8H@}Jo(l`V1-zAO9=r8SZk_V>V;QC9Py>C)+H{-lu%zAW(q?lincMF&xT@613d?T2;l% z%s*iyF7r~Z_n>UCucOvfowDGGjW?S)pY8W&e(Q$f*%!-pZ`~1+rNv~Yl53D0K8S8u zQnQs%H-%2}$3TXsQ4QbG-X0wqO4;4jWl;a6wxTbJ-$BM*8~F8-pf1}9bb}<2MR*GM z*wDM$ZxDzPV8sa6l2Kn=w;e;z58ufUxBD!;8joKZ$T(l;6EetRU6bLN$^f$Eq`VFj zg;fk03Yc_Icc&D-VqPe#>GZQST|(|VqhY($T(RZPJJa|T&y#fgu_A{q^cLu2^A@IN z6sI&Cc)WXe1C+Rtt|ADk#j3)S{klBB3S|Mik4)V2=g|O0H=6kQp%{SrgDxu%zOWNd z=IBkSOKNCDQj>VZ)s{y(wKglPdQ^|Pq_+t%`!aU-I;_iYv4Aw4?9XoB;NAY8BMmnX z7S3ZfmsHeymmM+LvCX9|BPCG)vs+&k4eMgQEjg%GGi?eno7ZxO1i4ei^Ue&N%t?>vG-(w9b7`L)M^xzm4JR@I-ed?;v)h1J z;Q)9ic!tGMIAD#~$0C#3-P?PMp8lcV1qz2be|}U;Q*$#%iEV})9A7B#ao)5uz2K>C zRt%+Y^h{yPY__()zs$`LpN|#qq%-SiBPrDWx;=VV&Pi}bE56%(;NPH6KH zn<4#TDWFb0T?(t1f}Y3u#hrbBlaW#Gd_t>S?^mUCj8(Sa==3i)DtG3LlI7q4M<-0F zZYzn0F!YQPbftD(tFeS;e{ZPRol)U4ppsMcnNBF(5cBFO2Wy6cxFSIi5wSu!01q zpPYsU?U?U(@6UK=ZFP5Tj#E;qj&DX3FaoA?eI1T>Y)g}t1Wb!{hhAbPZuTfnMPc`q z(afBJ7S}f+FjC;Xl-xQQ)S^e^r4iM{lTn(PNObYGLF#y3y)0TF9$*^Y6zmBNc<3xL zH_whiFN!;zafU`KcRp-LMBjJbEAns4Hn`Ocnygpc7Hmrro<*dv!t}!a6Q4X;QJ=GcjoEmR6NpPfRfMFB)0&9O9NyAr6Ow!w)o!6-)x8lj*>Bae&+=B%q@*KtTyF`z^C&^g`eMQ8yf@d#^U-n)uJ46U za!!s6B6}Ujw85j>cmd2d7Q9Z$JQj;`XI`s?JKY=LnGAh`;o9Md0fjt}JMeq=NR78xMV5Cvx- z@nr%cZw?r50gPv;xt|~Qb^uj<#7e-#^4hONBO19Qb>KT~0CRs6%mvcN1hUPLCb$kw zizL96O407%2hAa(1ZX;MT(t+OF<@aS`R%h#5MPdl$G5Z7+i|m0^GJG~tLRBiL?-yy z2SAdG`GMb(lh5|4Bn%3M1{c5^3@_NL_hmq|x#i>n7@3)vYKN8(J?}qQ7!=a#40?)r zefrb|D9`mw*F6dNlh<)Q3EGJy0(QB6&e{liTWrH>0Z+gT^T*|&w!AUY&kqo3zc`5N z^O`j1Q4i`w#*QjI7QKauT_90-W%gsKzjaBCjaV2ub3h!2oatmHKb_ay!DIIv|Ck?` zy12^QzjGWocYk;KcE8`Y+Uj0$Dyd=rH=!Gg`Ky$cR)5NF2j^;D3Aku3CvF+T$SfcL zK{9(KLvdCRt>WSqYY%i@W7A&<2e)j-Ycn4J50spo{93`_9dQW1**5?I##RC96g|+a zP)^Uy>WeY>=o;!7V4FcEcx8 z1kxNEO@#|({(%8Qnm9O3Ee|CGN@#Y*&5@?sy*jv6T*0Cqd*9M1f5LHnt-;0A6mm@| zH#fxnAgR!qArTfIM5hQ$;Cf#;J#>VbmnXwv2?;(x-K-}|yBcX-6H(v_&jgyS=)>@< z!`Zr^VGXP~sa_4IbbwN{L|K&#gJ<=toAhPGfcDYMu;!yjZ$Lav9%iDeOAg>{5@*h+ zZC*sRmm}iaXCHtioO^B9aLNH%GrqJn)l|02Z~PQ7cVA^H0;?}^}KxV zA!^_>M|hJ(Eqzs1FDb6@dEGqLx_U*rvC#BQn+qve;}HkrBAB@2Qd+OB)ydx#my+s6 zEEe=AF#!Jzq9wsdk1N29Lr=Pu(!J`cs;&|{b3iC7?rr1zyEZTF>6KbRIh4StIrm@Wlbzmyu*0j*h>XRic!UnX}v@qm1PVxu#1D#8-_; zy9I*wcIob;_Y^+#;yMSWT!A5}bEaa;Hl5WXWyI?7q>DB5u-TFf+n0|nq!l0sC;4Ze zl9F;A->CbvG$RTij0tOP1x8b665n~|Ok=Te z@uN010mHf;()*6P!#4+aKQ{{6EAA1J;u@xgyc;p#T^W;CM-3p8xL7``RJ=BsBH%C; zsL0~z1c{E^wp3uFs6YkXVKB;ht$}G2hyW_EB{(aV!RY{_qloD9_yQ)rwsQ9UC5^ik zQFnjX(KA417ioX_!0oa-eQ?vY#7>7N*ME&&9jGu5KZ z$!M?7bg7En`>v_eD?bzn1%Gt)TIKg3AzmdV(jDaF*^=Q5q=V+R;6O@mVmaOuBFGE< z*Pe=Ev0V^hA8bvUUlUJ6N65h8;B(LYpgs{1n?Ocbu1V;M*M6ZVcw%C-Dft|V1^Ws` z%rhN@>FMd8(ptRDVH)jSXKNeM49;Mi&acle=kX{I(NFWZ(>h{JKq^==#V2SKbS(ht~&h*^Nlfz~$Y?2P_9_ z8B$o>{$T3*p567(A-hFi$}+r%CN_3sKYsZct)iUVi>%JMl+@6LOXmmG^Nn{5+Vls% z+x6Nm_HD<&9yf#&-sw}Ti*=VF&l+^wzJb^&h(-NrA0!*!T!e@gm33AVzkQipvoUE? zCW2QpKC%}CF|fzLvxxcm5fUpnPTOPfmLCL}@ATZqV>uWXF9P?)Xre0w&iYT^-wI~t zzbd2bzucLJkqNs!=e2Y(QMzC>8LhUA?flgO-ce>?_O^O3e{_S3AIEqkh2z1Z{7sdL zM={zll>8=fBHl&03_v_*~`{z9nwy0YjND46;EJE^cx3AkRRw643BkVeJY zRqRBdX{jJ3Yl1{9)+jhrAnE4+we+Ig%CFx_9Tm(T1uc)Z2HAPi*e`>gtOCr7eU6B3xTULbWPq-W#p0SFo}io==oUIB=Y&cek~($jHGN-9^`*rfgB)YWOS*eZpPiWAZX@o%0D z*^#qayegSK6_CcB_7$a-2IZ4|pz(YiEPdDpS&kOdQRhG25XnJ{rp4Y>wNG5cN;xmZ zD{D~)z~}nNxV2|bi29B`y!i)EVyOfDy-R>TOom=ya)=Z_5fE&}A=>K&_mu~&XaW8G z7!dKH(CZ%T(5_$t5g^ZlTl8fAreQB-SymPRfAbrpW9#*DAv<%J(L}*NQ#ZCZOEPC< zfIAPJ&e~t9!dV*W1_ruH8bC}-(Q6G)hGxW^G`&S|6agjH>*6ZV&o$C@-vP;KTT2$+ zyMO=wO;*<4sQvZpR<=GHqYy5vB1@Yv#$-r`CcG3% znf=;_@|kb!`kQK=K9>RD?VPyy<9}17kp3l~jj1Fw;S7Txt;;6eL`CtDrNP`DyEbA^ zFv<=EwL|BL7?6V>)f_t33eg@m%AXoBP*PdW$;(%&(j|w)hLDgZ%#7YR>;Fiu?7$sDtcKSiU>|6Ef;p^PUWl9Nw-02>zdo$kN$ zjcFwbg!V5l&6NEvhMZ&d!U@Prc1RBpqfo8TDdt7%m;aH)gMM8B0 zlAQ2g7F&lMbApjNFVr}orOG|z@QG4v);ugk!kv>Kv8(~P=0D$P2l;;Ztdw^!HI<}FzrYI({OoVaKOFc9E2QU8 zZk&^69B1d@4*vZcN<%P3uE?N~*TusLfd9~9`@e6&%>17`6G#mbW#A2Bq7O)6#lUK! zLDmrRQj!$2v9S@3COmu}g&Ng%N6Y{$uo~nzguIl9k!1`ox0+qo<4?|XK0D88hWsu5 M ...``. In order to use such custom chain, a rule with action jump, +and the appropiate target should be defined in a base chain. + +.. note:: **Layer 3 bridge**: + When an IP address is assigned to the bridge interface, and if traffic + is sent to the router to this IP (for example using such IP as + default gateway), then rules defined for **bridge firewall** won't + match, and firewall analysis continues at **IP layer**. + +************ +Bridge Rules +************ + +For firewall filtering, firewall rules needs to be created. Each rule is +numbered, has an action to apply if the rule is matched, and the ability +to specify multiple criteria matchers. Data packets go through the rules +from 1 - 999999, so order is crucial. At the first match the action of the +rule will be executed. + +Actions +======= + +If a rule is defined, then an action must be defined for it. This tells the +firewall what to do if all criteria matchers defined for such rule do match. + +In firewall bridge rules, the action can be: + + * ``accept``: accept the packet. + + * ``continue``: continue parsing next rule. + + * ``drop``: drop the packet. + + * ``jump``: jump to another custom chain. + + * ``return``: Return from the current chain and continue at the next rule + of the last chain. + + * ``queue``: Enqueue packet to userspace. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> action + [accept | continue | drop | jump | queue | return] +.. cfgcmd:: set firewall bridge name rule <1-999999> action + [accept | continue | drop | jump | queue | return] + + This required setting defines the action of the current rule. If action is + set to jump, then jump-target is also needed. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + jump-target +.. cfgcmd:: set firewall bridge name rule <1-999999> + jump-target + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall bridge name rule <1-999999> + queue <0-65535> + + To be used only when action is set to ``queue``. Use this command to specify + queue target to use. Queue range is also supported. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall bridge name rule <1-999999> + queue-options bypass + + To be used only when action is set to ``queue``. Use this command to let + packet go through firewall when no userspace software is connected to the + queue. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall bridge name rule <1-999999> + queue-options fanout + + To be used only when action is set to ``queue``. Use this command to + distribute packets between several queues. + +Also, **default-action** is an action that takes place whenever a packet does +not match any rule in it's chain. For base chains, possible options for +**default-action** are **accept** or **drop**. + +.. cfgcmd:: set firewall bridge forward filter default-action + [accept | drop] +.. cfgcmd:: set firewall bridge name default-action + [accept | continue | drop | jump | queue | return] + + This set the default action of the rule-set if no rule matched a packet + criteria. If default-action is set to ``jump``, then + ``default-jump-target`` is also needed. Note that for base chains, default + action can only be set to ``accept`` or ``drop``, while on custom chain, + more actions are available. + +.. cfgcmd:: set firewall bridge name default-jump-target + + To be used only when ``defult-action`` is set to ``jump``. Use this + command to specify jump target for default rule. + +.. note:: **Important note about default-actions:** + If default action for any base chain is not defined, then the default + action is set to **accept** for that chain. For custom chains, if default + action is not defined, then the default-action is set to **drop**. + +Firewall Logs +============= + +Logging can be enable for every single firewall rule. If enabled, other +log options can be defined. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> log +.. cfgcmd:: set firewall bridge name rule <1-999999> log + + Enable logging for the matched packet. If this configuration command is not + present, then log is not enabled. + +.. cfgcmd:: set firewall bridge forward filter enable-default-log +.. cfgcmd:: set firewall bridge name enable-default-log + + Use this command to enable the logging of the default action on + the specified chain. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + log-options level [emerg | alert | crit | err | warn | notice + | info | debug] +.. cfgcmd:: set firewall bridge name rule <1-999999> + log-options level [emerg | alert | crit | err | warn | notice + | info | debug] + + Define log-level. Only applicable if rule log is enable. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + log-options group <0-65535> +.. cfgcmd:: set firewall bridge name rule <1-999999> + log-options group <0-65535> + + Define log group to send message to. Only applicable if rule log is enable. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + log-options snapshot-length <0-9000> +.. cfgcmd:: set firewall bridge name rule <1-999999> + log-options snapshot-length <0-9000> + + Define length of packet payload to include in netlink message. Only + applicable if rule log is enable and log group is defined. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + log-options queue-threshold <0-65535> +.. cfgcmd:: set firewall bridge name rule <1-999999> + log-options queue-threshold <0-65535> + + Define number of packets to queue inside the kernel before sending them to + userspace. Only applicable if rule log is enable and log group is defined. + +Firewall Description +==================== + +For reference, a description can be defined for every defined custom chain. + +.. cfgcmd:: set firewall bridge name description + + Provide a rule-set description to a custom firewall chain. + +Rule Status +=========== + +When defining a rule, it is enable by default. In some cases, it is useful to +just disable the rule, rather than removing it. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> disable +.. cfgcmd:: set firewall bridge name rule <1-999999> disable + + Command for disabling a rule but keep it in the configuration. + +Matching criteria +================= + +There are a lot of matching criteria against which the packet can be tested. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + destination mac-address +.. cfgcmd:: set firewall bridge name rule <1-999999> + destination mac-address +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + source mac-address +.. cfgcmd:: set firewall bridge name rule <1-999999> + source mac-address + + Match criteria based on source and/or destination mac-address. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + inbound-interface name +.. cfgcmd:: set firewall bridge name rule <1-999999> + inbound-interface name + + Match based on inbound interface. Wilcard ``*`` can be used. + For example: ``eth2*``. Prepending character ``!`` for inverted matching + criteria is also supportd. For example ``!eth2`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + inbound-interface group +.. cfgcmd:: set firewall bridge name rule <1-999999> + inbound-interface group + + Match based on inbound interface group. Prepending character ``!`` for + inverted matching criteria is also supportd. For example ``!IFACE_GROUP`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + outbound-interface name +.. cfgcmd:: set firewall bridge name rule <1-999999> + outbound-interface name + + Match based on outbound interface. Wilcard ``*`` can be used. + For example: ``eth2*``. Prepending character ``!`` for inverted matching + criteria is also supportd. For example ``!eth2`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + outbound-interface group +.. cfgcmd:: set firewall bridge name rule <1-999999> + outbound-interface group + + Match based on outbound interface group. Prepending character ``!`` for + inverted matching criteria is also supportd. For example ``!IFACE_GROUP`` + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + vlan id <0-4096> +.. cfgcmd:: set firewall bridge name rule <1-999999> + vlan id <0-4096> + + Match based on vlan ID. Range is also supported. + +.. cfgcmd:: set firewall bridge forward filter rule <1-999999> + vlan priority <0-7> +.. cfgcmd:: set firewall bridge name rule <1-999999> + vlan priority <0-7> + + Match based on vlan priority(pcp). Range is also supported. + +*********************** +Operation-mode Firewall +*********************** + +Rule-set overview +================= + +In this section you can find all useful firewall op-mode commands. + +General commands for firewall configuration, counter and statiscits: + +.. opcmd:: show firewall +.. opcmd:: show firewall summary +.. opcmd:: show firewall statistics + +And, to print only bridge firewall information: + +.. opcmd:: show firewall bridge +.. opcmd:: show firewall bridge forward filter +.. opcmd:: show firewall bridge forward filter rule +.. opcmd:: show firewall bridge name +.. opcmd:: show firewall bridge name rule + +Show Firewall log +================= + +.. opcmd:: show log firewall +.. opcmd:: show log firewall bridge +.. opcmd:: show log firewall bridge forward +.. opcmd:: show log firewall bridge forward filter +.. opcmd:: show log firewall bridge name +.. opcmd:: show log firewall bridge forward filter rule +.. opcmd:: show log firewall bridge name rule + + Show the logs of all firewall; show all bridge firewall logs; show all logs + for forward hook; show all logs for forward hook and priority filter; show + all logs for particular custom chain; show logs for specific Rule-Set. + +Example +======= + +Configuration example: + +.. code-block:: none + + set firewall bridge forward filter default-action 'drop' + set firewall bridge forward filter enable-default-log + set firewall bridge forward filter rule 10 action 'continue' + set firewall bridge forward filter rule 10 inbound-interface name 'eth2' + set firewall bridge forward filter rule 10 vlan id '22' + set firewall bridge forward filter rule 20 action 'drop' + set firewall bridge forward filter rule 20 inbound-interface group 'TRUNK-RIGHT' + set firewall bridge forward filter rule 20 vlan id '60' + set firewall bridge forward filter rule 30 action 'jump' + set firewall bridge forward filter rule 30 jump-target 'TEST' + set firewall bridge forward filter rule 30 outbound-interface name '!eth1' + set firewall bridge forward filter rule 35 action 'accept' + set firewall bridge forward filter rule 35 vlan id '11' + set firewall bridge forward filter rule 40 action 'continue' + set firewall bridge forward filter rule 40 destination mac-address '66:55:44:33:22:11' + set firewall bridge forward filter rule 40 source mac-address '11:22:33:44:55:66' + set firewall bridge name TEST default-action 'accept' + set firewall bridge name TEST enable-default-log + set firewall bridge name TEST rule 10 action 'continue' + set firewall bridge name TEST rule 10 log + set firewall bridge name TEST rule 10 vlan priority '0' + +And op-mode commands: + +.. code-block:: none + + vyos@BRI:~$ show firewall bridge + Rulesets bridge Information + + --------------------------------- + bridge Firewall "forward filter" + + Rule Action Protocol Packets Bytes Conditions + ------- -------- ---------- --------- ------- --------------------------------------------------------------------- + 10 continue all 0 0 iifname "eth2" vlan id 22 continue + 20 drop all 0 0 iifname @I_TRUNK-RIGHT vlan id 60 + 30 jump all 2130 170688 oifname != "eth1" jump NAME_TEST + 35 accept all 2080 168616 vlan id 11 accept + 40 continue all 0 0 ether daddr 66:55:44:33:22:11 ether saddr 11:22:33:44:55:66 continue + default drop all 0 0 + + --------------------------------- + bridge Firewall "name TEST" + + Rule Action Protocol Packets Bytes Conditions + ------- -------- ---------- --------- ------- -------------------------------------------------- + 10 continue all 2130 170688 vlan pcp 0 prefix "[bri-NAM-TEST-10-C]" continue + default accept all 2130 170688 + + vyos@BRI:~$ + vyos@BRI:~$ show firewall bridge name TEST + Ruleset Information + + --------------------------------- + bridge Firewall "name TEST" + + Rule Action Protocol Packets Bytes Conditions + ------- -------- ---------- --------- ------- -------------------------------------------------- + 10 continue all 2130 170688 vlan pcp 0 prefix "[bri-NAM-TEST-10-C]" continue + default accept all 2130 170688 + + vyos@BRI:~$ + +Inspect logs: + +.. code-block:: none + + vyos@BRI:~$ show log firewall bridge + Dec 05 14:37:47 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102 + Dec 05 14:37:48 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102 + Dec 05 14:37:49 kernel: [bri-NAM-TEST-10-C]IN=eth1 OUT=eth2 ARP HTYPE=1 PTYPE=0x0800 OPCODE=1 MACSRC=50:00:00:04:00:00 IPSRC=10.11.11.101 MACDST=00:00:00:00:00:00 IPDST=10.11.11.102 + ... + vyos@BRI:~$ show log firewall bridge forward filter + Dec 05 14:42:22 kernel: [bri-FWD-filter-default-D]IN=eth2 OUT=eth1 MAC=33:33:00:00:00:16:50:00:00:06:00:00:86:dd SRC=0000:0000:0000:0000:0000:0000:0000:0000 DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0 + Dec 05 14:42:22 kernel: [bri-FWD-filter-default-D]IN=eth2 OUT=eth1 MAC=33:33:00:00:00:16:50:00:00:06:00:00:86:dd SRC=0000:0000:0000:0000:0000:0000:0000:0000 DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0 diff --git a/docs/configuration/firewall/ipv4.rst b/docs/configuration/firewall/ipv4.rst index 3fd365e1..9a683d22 100644 --- a/docs/configuration/firewall/ipv4.rst +++ b/docs/configuration/firewall/ipv4.rst @@ -123,9 +123,46 @@ The action can be : .. cfgcmd:: set firewall ipv4 name rule <1-999999> jump-target - To be used only when action is set to jump. Use this command to specify + To be used only when action is set to ``jump``. Use this command to specify jump target. +.. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall ipv4 input filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall ipv4 output filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall ipv4 name rule <1-999999> + queue <0-65535> + + To be used only when action is set to ``queue``. Use this command to specify + queue target to use. Queue range is also supported. + +.. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall ipv4 input filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall ipv4 output filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall ipv4 name rule <1-999999> + queue-options bypass + + To be used only when action is set to ``queue``. Use this command to let + packet go through firewall when no userspace software is connected to the + queue. + +.. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall ipv4 input filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall ipv4 output filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall ipv4 name rule <1-999999> + queue-options fanout + + To be used only when action is set to ``queue``. Use this command to + distribute packets between several queues. + Also, **default-action** is an action that takes place whenever a packet does not match any rule in it's chain. For base chains, possible options for **default-action** are **accept** or **drop**. @@ -140,7 +177,7 @@ not match any rule in it's chain. For base chains, possible options for [accept | drop | jump | queue | reject | return] This set the default action of the rule-set if no rule matched a packet - criteria. If defacult-action is set to ``jump``, then + criteria. If default-action is set to ``jump``, then ``default-jump-target`` is also needed. Note that for base chains, default action can only be set to ``accept`` or ``drop``, while on custom chain, more actions are available. @@ -153,7 +190,7 @@ not match any rule in it's chain. For base chains, possible options for .. note:: **Important note about default-actions:** If default action for any base chain is not defined, then the default action is set to **accept** for that chain. For custom chains, if default - action is not defined, then the default-action is set to **drop** + action is not defined, then the default-action is set to **drop**. Firewall Logs ============= @@ -162,15 +199,12 @@ Logging can be enable for every single firewall rule. If enabled, other log options can be defined. .. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> log - [disable | enable] .. cfgcmd:: set firewall ipv4 input filter rule <1-999999> log - [disable | enable] .. cfgcmd:: set firewall ipv4 output filter rule <1-999999> log - [disable | enable] .. cfgcmd:: set firewall ipv4 name rule <1-999999> log - [disable | enable] - Enable or disable logging for the matched packet. + Enable logging for the matched packet. If this configuration command is not + present, then log is not enabled. .. cfgcmd:: set firewall ipv4 forward filter enable-default-log .. cfgcmd:: set firewall ipv4 input filter enable-default-log @@ -266,7 +300,7 @@ just disable the rule, rather than removing it. Matching criteria ================= -There are a lot of matching criteria against which the package can be tested. +There are a lot of matching criteria against which the packet can be tested. .. cfgcmd:: set firewall ipv4 forward filter rule <1-999999> connection-status nat [destination | source] diff --git a/docs/configuration/firewall/ipv6.rst b/docs/configuration/firewall/ipv6.rst index 83a5f694..0aa8a137 100644 --- a/docs/configuration/firewall/ipv6.rst +++ b/docs/configuration/firewall/ipv6.rst @@ -123,9 +123,46 @@ The action can be : .. cfgcmd:: set firewall ipv6 name rule <1-999999> jump-target - To be used only when action is set to jump. Use this command to specify + To be used only when action is set to ``jump``. Use this command to specify jump target. +.. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall ipv6 input filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall ipv6 output filter rule <1-999999> + queue <0-65535> +.. cfgcmd:: set firewall ipv6 name rule <1-999999> + queue <0-65535> + + To be used only when action is set to ``queue``. Use this command to specify + queue target to use. Queue range is also supported. + +.. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall ipv6 input filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall ipv6 output filter rule <1-999999> + queue-options bypass +.. cfgcmd:: set firewall ipv6 name rule <1-999999> + queue-options bypass + + To be used only when action is set to ``queue``. Use this command to let + packet go through firewall when no userspace software is connected to the + queue. + +.. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall ipv6 input filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall ipv6 output filter rule <1-999999> + queue-options fanout +.. cfgcmd:: set firewall ipv6 name rule <1-999999> + queue-options fanout + + To be used only when action is set to ``queue``. Use this command to + distribute packets between several queues. + Also, **default-action** is an action that takes place whenever a packet does not match any rule in it's chain. For base chains, possible options for **default-action** are **accept** or **drop**. @@ -140,7 +177,7 @@ not match any rule in it's chain. For base chains, possible options for [accept | drop | jump | queue | reject | return] This set the default action of the rule-set if no rule matched a packet - criteria. If defacult-action is set to ``jump``, then + criteria. If default-action is set to ``jump``, then ``default-jump-target`` is also needed. Note that for base chains, default action can only be set to ``accept`` or ``drop``, while on custom chain, more actions are available. @@ -153,7 +190,7 @@ not match any rule in it's chain. For base chains, possible options for .. note:: **Important note about default-actions:** If default action for any base chain is not defined, then the default action is set to **accept** for that chain. For custom chains, if default - action is not defined, then the default-action is set to **drop** + action is not defined, then the default-action is set to **drop**. Firewall Logs ============= @@ -162,15 +199,12 @@ Logging can be enable for every single firewall rule. If enabled, other log options can be defined. .. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> log - [disable | enable] .. cfgcmd:: set firewall ipv6 input filter rule <1-999999> log - [disable | enable] .. cfgcmd:: set firewall ipv6 output filter rule <1-999999> log - [disable | enable] .. cfgcmd:: set firewall ipv6 name rule <1-999999> log - [disable | enable] - Enable or disable logging for the matched packet. + Enable logging for the matched packet. If this configuration command is not + present, then log is not enabled. .. cfgcmd:: set firewall ipv6 forward filter enable-default-log .. cfgcmd:: set firewall ipv6 input filter enable-default-log @@ -266,7 +300,7 @@ just disable the rule, rather than removing it. Matching criteria ================= -There are a lot of matching criteria against which the package can be tested. +There are a lot of matching criteria against which the packet can be tested. .. cfgcmd:: set firewall ipv6 forward filter rule <1-999999> connection-status nat [destination | source] @@ -936,7 +970,7 @@ Rule-set overview .. code-block:: none - vyos@vyos:~$ show firewall + vyos@vyos:~$ show firewall Rulesets Information --------------------------------- @@ -999,7 +1033,7 @@ Rule-set overview .. code-block:: none - vyos@vyos:~$ show firewall summary + vyos@vyos:~$ show firewall summary Ruleset Summary IPv6 Ruleset: @@ -1049,29 +1083,30 @@ Rule-set overview .. opcmd:: show firewall ipv6 [forward | input | output] filter -.. opcmd:: show firewall ipv4 name - .. opcmd:: show firewall ipv6 ipv6-name This command will give an overview of a single rule-set. .. code-block:: none - vyos@vyos:~$ show firewall ipv4 input filter + vyos@vyos:~$ show firewall ipv6 input filter Ruleset Information --------------------------------- - IPv4 Firewall "input filter" + ipv6 Firewall "input filter" Rule Action Protocol Packets Bytes Conditions - ------- -------- ---------- --------- ------- ----------------------------------------- - 5 jump all 0 0 iifname "eth2" jump NAME_VyOS_MANAGEMENT - default accept all + ------- -------- ---------- --------- ------- ------------------------------------------------------------------------------ + 10 jump all 13 1456 iifname "eth1" jump NAME6_INP-ETH1 + 20 accept ipv6-icmp 10 1112 meta l4proto ipv6-icmp iifname "eth0" prefix "[ipv6-INP-filter-20-A]" accept + default accept all 14 1584 + + vyos@vyos:~$ .. opcmd:: show firewall ipv6 [forward | input | output] filter rule <1-999999> -.. opcmd:: show firewall ipv4 name rule <1-999999> +.. opcmd:: show firewall ipv6 name rule <1-999999> .. opcmd:: show firewall ipv6 ipv6-name rule <1-999999> @@ -1084,7 +1119,7 @@ Rule-set overview .. code-block:: none - vyos@vyos:~$ show firewall group LAN + vyos@vyos:~$ show firewall group LAN Firewall Groups Name Type References Members @@ -1119,45 +1154,38 @@ Example Partial Config .. code-block:: none - firewall { - group { - network-group BAD-NETWORKS { - network 198.51.100.0/24 - network 203.0.113.0/24 - } - network-group GOOD-NETWORKS { - network 192.0.2.0/24 - } - port-group BAD-PORTS { - port 65535 - } - } - ipv4 { - forward { - filter { - default-action accept - rule 5 { - action accept - source { - group { - network-group GOOD-NETWORKS + firewall { + ipv6 { + input { + filter { + rule 10 { + action jump + inbound-interface { + name eth1 } + jump-target INP-ETH1 + } + rule 20 { + action accept + inbound-interface { + name eth0 + } + log + protocol ipv6-icmp } } + } + name INP-ETH1 { + default-action drop + enable-default-log rule 10 { - action drop - description "Bad Networks" - protocol all - source { - group { - network-group BAD-NETWORKS - } - } + action accept + protocol tcp_udp } } } } - } + Update geoip database =====================