From 36a3e96c7256a3f01d683609095e6b789fd54eaa Mon Sep 17 00:00:00 2001 From: fivetran-catfritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Tue, 21 Oct 2025 20:18:11 -0500 Subject: [PATCH 1/2] feature/readme-add-examples --- README.md | 12 ++++++++++++ images/streamlit_example.png | Bin 0 -> 166111 bytes 2 files changed, 12 insertions(+) create mode 100644 images/streamlit_example.png diff --git a/README.md b/README.md index 4893596..808da38 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,18 @@ The following table provides a detailed list of all tables materialized within t | [linkedin_ads__creative_report](https://fivetran.github.io/dbt_linkedin/#!/model/model.linkedin.linkedin_ads__creative_report) | Each record represents the daily ad performance of each creative. | | [linkedin_ads__url_report](https://fivetran.github.io/dbt_linkedin/#!/model/model.linkedin.linkedin_ads__url_report) | Each record represents the daily ad performance of each url. | +Many of the above reports are now configurable for [visualization via Streamlit](https://github.com/fivetran/streamlit_ad_reporting). Check out some [sample reports here](https://fivetran-ad-reporting.streamlit.app/ad_performance). + +### Example Visualizations + +Curious what these tables can do? The Linkedin models provide advertising performance data that can be visualized to track key metrics like spend, impressions, click-through rates, conversion rates, and return on ad spend across different campaign structures and time periods. Check out example visualizations in the [Fivetran Ad Reporting Streamlit App](https://fivetran-ad-reporting.streamlit.app/ad_performance), and see how you can use these tables in your own reporting. Below is a screenshot of an example dashboard; explore the app for more. + +
+
+
+
+
!wEHmtVM4d9r31^tk*Jek{wu~?SjP1Aie zo0k5ahraV~y|-qxgC6-pMV94^CNbQ8%&M21z4XUEAuL!Th=Mp2%w+3td^ zy%KATABXDFk7$;(P`9( )xHD3@EXZ9}6jY?9w vm;+K+(Yx?8PpL(>JbH*cE@_&&KT9h)f$8#)yVxqL8>x% zd$Z-pFlD&Q48`Dn?7DPz5fyn5KzSrEHeuKQura(9%)OYmF#`p{qM;vfu|yU04Jkyv zDb#N^*ypLFX@gzC;Tik5J`? V&Eo$uq#MsIceUv$*6< LZ=niMQ9tyj!C7zSnsi)Io6xcB zm2ttX>5w!{aONXPlLqOrvn69c%|3Clq1hrQ8=g034$iZ$xQo`%MF9mVh0__A>`DQ( zmivQS&P|Jqe)&(}rw+#?$bcTQ>aq=Z6Sx}d8$D!HtF z==^mW$tgGRh-q`O700HqT7etuRIH@s4R7k8GS;t6>ZeN-x5;dT5TWfu*BcN7UMF1^ zDW<$rJbsu FK9!@N1U%@luPYAjt(c){)(Z&223K=4KmCVm(U6nu(WAK~(Nf zpWhSyzF0-oi^_`b+1VbPHc4Zz?0GOKMh}vB@;bXLjAr-ZVrUVC{buDR${GqhRnUg|mS5LKLoXyx(`N4~^MXE4%h7>r|Ib z=d`Zcx;iZ-HP49@56k291)^Xa@ntBuI3;#22G{AAs38-gh1uS(KesC6FwO=KlF2^# zey2V)S+49UcykL?w{;ZF6B2;Tqq!hN)w@x) 3J3{y;Pc%Q_%Pl<}jHUyHMEjrBgrs|d}_+R`e~Pr2&GpWdJ% zb2PVQ`{SnlT6ro&Uv@)VZ#aPPXmkw&(H92xNNzZxOJgkwsP@i$i!k~++|*(4;%0D< zFE;+?*Pb;rcdBbB(_I3hLI$u5MuChZj5y%4Ye9E~QFH1X5UMd`@L0>V4GB120#Ri@ z%U65~vCCc(dTrj( T| z7pObCSKDY0=K;VGYPJ&%`7c_e8G+PjOav9EciP%okhkEtV>(HC4V_V5mh@aEXgBF!YjO$nT&e8taV!X?adc!QE z@dw;b@|+Bu8^l)4SZ%Y=s?}w~$sShTpBm&Laov6@Mvyl5!^$>EQLRr~w`cO-!SdtM z*xOzkQSWbHDmb&*j1^vwQs6%=9%Nj*j0J+^tJ$D<4gYiYMHC6bv$|)!H4>iM^IpKI zDE?+uJUAhbd;(HS<1x8VG? *J;O<1Z|YD@6sOn#{@B{bvlJx}E_>nJ`E``G(&89T<@% zvY!HkGE*D=teSnCUYN4q`}6?@zv}M#30#$6dw%3%vs2;t$Gvx&BYeAn*?_ {G7#tPe(m9#rP^k2)f)yy&1cv^w*(H^@A&Ww^gs-A zUETEHMDy(VJEFR23;q<}nly_zRslp#LV1!3l|H^Jujn??_^{7`dU9VySZ&X~jsk)6 z{MD}c0;}4qdSX*4_4{g5?{#LXM%P0+4L b*d0fY{J(g+Q%B6pws7WT!+n3b@}n 3T`;e=As{$O<6fxDebNZ=DD3buo_5ps+ist0PKje3^VHNIRCbsj zgK#~cw6iGP^3Ru~bCJ9rel%Uw<(zPGbo}xX*9~f)Z>*w*pDOrSL;qgMs`IW+7Rd13 zvX_nyjiB@RqPf({;VjE`>nY=u?HVVdL$fc^aQ#p>NPokF7EPlp)l^Ym8OMc_C3n1G zj+qZxDsW|Y5Y;+QkLMKVNYgnLZ|%Vx9@cwn`7Y{H6moz2;Vy097dCb9vXr#_CbqSW zbf?w}V<$`%VIjt{b_#@d--DjL1lG(~iVr;yGNA*Sw;zg|v?&PduuPt*z7Ba@jaD_Z zm|U)T6iA1tjRo%ryc}UyB|G`X18zm`Ku2KT`DKXkoFqFtcibNNoM~=_l^Evx6DB zYKtA>Q~%LJspQQ#{QSou2hgFc!83zfA||b_+(|ZkDiDv+H~u;hoeLo;;UwBJHY zsniDWTrW2GEsgtn{8WG$g>7~u?p>7>aV?(aJ%$tk>vF;)0KdBfeF@m4g WjlyU+CLrzv$Ci8yFexi=s(z=ZYbjRy8y5Kwd4x>*Ibx1u1iYO|O z%;b5aDsGmfydaX?cpx#wN}t+ieH1)T?1m9=afX9>=wFQIz+r!JQBr|Q9oG1?ZXrqa z50=2}Dm)v3ufT~lmp( 2Eff0|~YDiC;I__N%y5TN#i8qf54eRg!G`8=Vv^#w^ZTiC}_pl269 zPu^W`6A9$?mg%90)Ob?My5c%^AT@>UDsGW=qHJeOCSAcjbEI%kyiKN1pj4c@0fR%O z_HPJSWq29sk{qMzR8j2K@qWU}o;s=clIQYcM3Mtea*mmXjpd`8WDqHDbSKXv+wy0U zQ1f 7T?~uNw zQe#WwW@tt8=h@oE4Px242;8K+&1ubxdfQUo<-W;IwF@1jadUlPyO=0Qx%w2m;jPx_ zQ(cVV7r>~y)Uw+oNF|C`&!Uaqk3u@Xd7YTD@bi0tQU|XCr(Kl;L|MwKBZ 2d!z-+ZV^^JOPl1-9Pawy2aqUE~zwB4G6cVxMtm2F!t$)1kM zn 03d_v_S2+=j}Lxr7B_ka4HR88^g!)Eu2&Xr|iA#p9?;U96BPw9&>7?YOM17UZy; z_%Mcq6crWL#p8RlSo =LP zX|*m*Qdt6k(s(rQJ(kwXosjT*F2NZP@$V zd5>fIvx8cIn~VSZ7Z=ygeb6r~w5fh(ir|VB$+xi%)qtJuq@`)=f?!nrLL@u*)$Bez z6v}~a522fO3VK8#eCvrm`5?b($6&QZZ-LcUo)(+88E9s=j!$!BTFl1}Qf($T_!oQ* zrkAH>Z%Wv|-&?J%qnRXg5wuNGcwzLQ@0M7=JRf-{B%joC*PeP%U4Lct+C7yhiIcaD zuS7k*T@zhS|9B^Yx8>+jitnqG+lElTw4edl5mI%N6~pvX)5PM+xOq#xnor6##= zV?+B7m{H&t2KCQB#i+W*fD&9_qUy8bPk#u+o{lqCPhxXfM5Wp2+mGBlu}Fr#`yrlE zQr290I(*lbe{oj5j)n4h%|YMykDHOZQm^C$qYHYcJ3-u?H*G0S; NtJ0sm@av~1 z;QgNjR3U0~_ONb*a>cwmJg;9xIFOo3yP|q4_q^8!P1-B6DpIv(F)5qnFxgURX%45l zRBdXXKO1E&OuN-Oi#z>Or7@2iTHT#kF07`K;v_BD#$dnj#=QagjkI}c55CjP`TW`P zq5jk06i(3`n;ix!ootY7Mjm-fXyUmAueaC&N0XDo(}45bL!}zd9?Bp$M>1};G~T32 zs{L^5-(1-oO}%D9)4=GRflR?(63m{FLAaS}W} zd21c^uE1;A>P0xIWAhKB!ouV3CzS7Njr63N?`LPh_vYoM83g$_y&6?5yHiY}bMloO zUaEhI>6voL_ww4^q5;Y383eohQilnl7ImBDAD}JyRL w|}ksh`3E6}uN_5uvn zm^1SYq7JFYl+R-XTs{d>dH5CW7vR67lKUx{`&DqJ3^=078;0g9xyPwIG8&T2`rk}l zr10sbMr4|#olgSC+siDkkuKX&HiT!Vef{RnzA4qJr^;cC_rgQR)*$8R&g;<7A*dU? zu4DVl){D}OMwA(evg_Jh?4+BN!dh)BcR|;B0Lg%-URF-z(z?TP-+1vO!_KE&Cl{#Z zlN>){Bdok?+$_g~7x@Pw=K74VYRa#N@G1}V&j>t68uqoDZd~BVTC4Mnavn28a>v;s zo-sJj5AW3UF!2LFHCUXxzc{eT@|6G7C`e5(IKX)jI+52SLC7~qDfm3~rUWvwhTB7y zYeqHE<8a 4Ke(gCS=B*Lk)Z|N5jyd()=o)jhx8H%VRy#ZY5Bt)S?%9Kaaht5~?+H92N{M=2 zz3_MxRAsPtREjhuyf*aHv--TEr_F%mW-c;ID9M;!6s{(S+|b+z;QqY5R(;($BiLp; zOckE(obdw7MCi3Npey}L{ld7}*3r-4%daPn9c<3mV9SgM=gN_m_T$Zv`WeSN2Xc)= z3Igpl-VP&|CqBmd*kLDW;*aW|NjX0l>SUOZ(dP?IG}~Y`&zKQ>i#%Uluq>2O5Wevx zUF|N<8A4 ;e*R1oxtsvjP+WjWbwH(#b04+X_%ph#n-9EG4`!j!sWcfA3{y zZpgq>6wCOc+<<+0dU~lL?~}zH(&`@ma=xIbJ5}LsDp~so%t$9tp*<5_cP!2yIEW&F zK-9GAE7=LMmF3ySSMsez!S-vcqIGljX@m3G J+~D;s^pJq8LP6w z&Dq~oPu#VOk7>Szt9|`iI>l9CkGuRRa=vJSC(5BRvPX@{khR$>Pfbcr5m8tV-Fvpz zKQ;pEiP@d_@;NWWC|u8>)NyT~w48D_w_Vj6>$66$yI8bY1AK(XYF$MLK0s-aC-X>{ zz7PAHNwELGzk0?%S#8>db#yqg#?L@jmS(Sp#xZWAp!@p980US)&YC7-*hHDo`)Z?) zDTB+#Se)W@&AP09Z_3@vymI`Owmwd;nq?PAQt7?uQEenDvD@Y7v=6xLD5|F&TplJo zl%4c&bH f eDDvr3xa3#lQE153trl`Yq0Ab318D(DVM}D*aw9hsy^(BMPA^CLeJ>y)Ddx>d$0P z E-48a7Luv`@GNoyk&uI44A_N=CA;-$-Dy0k*0RIyv6EVsxg)GL@a%zO zZo=(_ng!94X`>I6>Kie3?lWnYT_-nvp64QR?HBKDJtL5sQ3 ^A+AgxEcg+zA_+i8&W!72R7d2uZ^d;Fcs`9MXsNJ zeIL+3p7~z&AHA9r7uMV~l6v0U%c>p0pXiV-HJ9P$ie X^ML)hObQ)e$Ke zuxGoa!>)lo_`t2a9gfE`DjhfyK~Yl_PJ$~RD@w;}v|q<9EdKI~uJ-65L59p}s$2hE zDsfGxytN1@S8gCLLL(3jiL-aDmoY4~S<45Rnk76dZ}UESYS`>xt_{Z?>@v7~+f}{W ziJ8@x;0SdaaP1qcT#3lqCoBy`bNtfk^JZ! zIE$b)bS6^NJer
k3oH&cm^%n1eZ|iQgmIV$l%aj*mZru~)nYOIt z+`5YiWe&cKBHE{-M4^#)z3h}{zSbl}MC?rOq-q6)tvSr3DgKhgi5khM! ot7RP6<*>n7cOfLtCjTujYZA~A$VMA(Ib%3)&_s0)5Bs1O% zrTn)0+aC)OD5KIA_0%o(#fk?ydi5)CAXJ$iM9TZ+<~oOx^Ast>yn(HdeRj8JQf8qe zi{4$n;WzWHA(7HfQ2YcdF>QL&C&{mIlP@NaVkQ$SC+rTw^TO9Kpnh0W?`uEfr(;br zI7x@0JOiXb2H|#YT< HH1NPZXTm%CaP@ RhsF8+6BaI#U<(yxOQn$ zYrF466Ml+FVG*XDwAFW=+tGxwLU)P+07As^R>wyXzp=Kri|Q~D11BdTo5gb{DFixR zyb`Qly9OIPA!BRG*^3nkv4 c zFc2G7afkgCrav?-OT1m*&5l~BZ5VtQ$2#enY~%y{IVwxM_Qhkxa&8Q%nF+N_#3#C? z6O!$kh_l6=Izd;QXKlj=z^C7@%}=eZTQ{Ec!lr1bR!>f+5BzrppJ#pfY~&BE%My 3Bb59TQG_x|54#{4O56YdZbKFg;ZA5gYBDj<8iNMh?dne4<_LH zv{zGZ!t%i#>@x>CDKCb*gGJsvz@JZgHHTl+w7(c07T%33Y=12DgLJRv{Cv^2>usQ+ z$KPJI4O4xm2pB_imiROBjxK4uqv?77U2MC2DjCaZs|XXunot)Kpv|Y#9@o7;> 2{r|7W}oNu~z+w5Zz3b zzhl&i4wWS1zDvotO2*WI#{%_u{`T>W)x?r!Z*)qL#LTP2b+^VZHKAOM7dOs!`&~yb z0diIqfT_gx5}t*a7*1u1PrY05sqC2b#gETNugZk`uOP#-H8Al|Aug&l1B!zrnO^&d z{qMO9Exd*Yx$!M$rSU^)+$akPGuo$ ~>n-Kt%F%+Kcm*wZJSYaf=s9K`Nm}YG~;pOpz61zsSPFnab*~GD8jr1RAQNU7s z!xWtw%cYxQJMpO+Xk2H<{Wj$ =1)TN)X^c#jquO5Z7=c_xMc7;vi3OM{1h?&q>TL1M2prQajRSq57N6;m7gN6Np zjD}{MY?>$QRfxQ_7lwq|B-&EKndR!A|AZ(P^u_Qbmq#GNzmi6e# z!!>{^jpYQ%X()I$Rs?HCl@Kk&Ef{_n2p42$?@h}2LCl_yTz%zyEAcl(U0n@Z@EVIK z`?EdYlt1s*E9mQyZ5)Q$^|2Co0sTFigBcBF!LoWcRA0I%`ib#Yy03nHDdn|X7iv*r%LY>E=yAqok`vfk3>&BHX9T9rcGk&9Ja|yNoFg{g`!hS|Ve-})XS?=y4 z#Umdn4a%djW*-pMdX5aQDo{@BjsS?1P~o@6?PvAhxIp&s;1J03-eDwtuxvL3f1z#r zH|fKO4K`#yDSnX&;AqSz$a`8dq5JHLXk1Zh(%H)2ma{mKwWE{zb!Eg^xE&(Ex6y|~ zujOL!eJ|^LZj0fPT09Swhn%o7v&d_+3^w QsK+veG-Y3J`}uIZg#KRHZM@&R|36*XtYcDc@1locIk?R>CdwYM zxE z@^Lhdebx>55B4G(=n=d(;66YJ7n(UO1M^C#*2yVywMU^q_a8#aPTzl21Mh)+1; zurv+4+s;fhq3qDMpt&+N@9%%BV@@8klu}&jA68sx0^$>t6ps^nTX2YpnLg?hDTtt$ z6l{>AhYlA1mYO5G3jc}yoq`r%$PP8HAlQ#@hvyFeF4qKhpH7<^&@QhnKAcKnTM6re zy321unNRsgvOeD152x?4|Lurm?u?k+Q<1uCG7vnH)ocViZrJ->KEAE&hkP_n^m|nT zU*jL)y Eq{XEH=;os6 1l=XCwJuFlMFxfoM3ly^Li`8Rw1`Ohz>F@CpI!UB7;`l>$z_Jp5i}U6)6Fy z^{Pgi<<)7Cb_iU&t1$0$U16?Xf4vD~Af~~dNMSD5I%87&e#r+W=f>u|^(LhZo}}Qb zw_O!m4|c$IGqkJW`fo?5cL(5=*4AOa`={5l`HY#uN*Mat)o6jy%8Kdg+Fnto>YbRq zLI$+mS6@aNi%eeXC*P=aNY|j=bS>BMnwqZL;0^X;`+Ps-S>$Q{QIs)rl`YWpPhO6U z`~2BtBn5l^u~!RvD%><6)yO?KZ*xM4SOYe&dl4VN5|NZc*Fw-wdh8fi6QYEWye|JJ zjzuFijkBItk{htrtOW|)=XFyJUZpVAIx*%`;ahZ;ru>TjP22X)coJuT>iw?A KSA>XF{vmCMO;M-F6r!jBV OP_P>l zGqc8Ln~$Y5ekr=X#Tfz*3hM=_B-+P)sKgBG0#)$vKE~#zyycg@CqHdV-n%X}qT1_s zu%jNi?ot=3>J~+yV)4%+_{XvoVPWXKDaNuO3;ey@(vR UB6cK zUF2~V)8gV3KM6m7XN~r&tTB%l3R`}G67fQRZ~?^My@VP}O1$*c%|JLgqM4m*GAxWe z!)!+6=Sz4McS4t9p-7onA&caU%xUM>OpX(irE7ArmtQzzqciWT@V1QMcG 0$E1##RI`$F>S1;5FBzs zD;JGPdXn+DcqV%uaTvq|oklbF GX17SU7jmy1mmu} zylO1a)lCsGe~OSMBBURUkB&8K*ky-wBJ!h2)^ix~ThH}k5f1F^V(y6@TP+__3T>v< zgrm?scvJE#V}Q`0i)b>kF@#w1-8U%(Zm?`EEi(^d7YNckP~^XU6Izxm5-5O3h$*l# z?{APA``)DtYY2xqM<Aw&vvcBSoGP&p4REHPKA9_O0wUzBG9P=2$9tI* !MY-YgcHs$r&QKYH2SS{B`b z &z0WTL9gfTjXpno= z_IbV2 sfx Y$We-(0dkXME_o^g%4eLO=*>590} zk6;%2tUESt_6DqZ=pJVEf( *mnN_-5FYSUf#)uv&PfG2WOy>wgr!)@=)}5b_c)nxnq`XElj}u##l+v@p z!QQv7d}V-t(&~1y01uI#X} wTZ0? U9Vc!b2W}0)qjCXOD`lbJJER~q-M|8odu)(-O1>N$Z0HGsh z@oQi3d`G44S&P`+|4X_$JDFdzC7mySb+&S(KdyKe+N?yy&VI}lY+QZF&dn9yAxprV zuSw3%?c%YlsljC{aTo_Vzg2xxR!NzF2Oh Urw~xGG>zi~%NmeB zsgvt`3=6w7unj@a`^xf1K2%LL@~&NpDjo;N#Wz^ rQ=8<)f+>CboJiX<;JCkf-g9*~Qw zQ|2{D4O8>sGiV-Q48<*OJPcNhup;hTe4u_b=zF|&G*4P!_e;l+>fF0x99-Rg9&FL- zb{aH1QL=wB)u^$xD-7w}in|}5bPwcG#Ol?>yyb#*$iLl;(38A~jdx;;)_Qzh-nC~# z`Nbp7JVD+%gL?m6n=ocd2hFB4Ybu9@yV23H481HrpEf?=IJPd^7-Oqa(6n|9hL64R zW#?wAT!;gV1^qQWX$20XfJ#>w*su67 zSI?Z)6lwH&>BEXUfUXf0CAi{n(NAG^a|T2;W3uQx0fHH+IZLCqciuQStO*zo6Ofk3 z&`yJt@tcY0*e*QkOIx;;#q_Z3a`JzWwmwNOox4fObN28DM2E3f>)!bmNXyDEG?6P5 zc#%zZ?Pl|oC&t$_|H6v~!e78Cc#fbQ$G!TV9QU(jXan|n*LGQdI2aic$qrCo#t=IC z{oqw3{P%86_5;8tfh9wQ*M7$aUQ2Tmlr}Dd*@d{HpD6k7K1plsfc(h8&&8C;`B vHUV$GYqpApL=x5$d5@<)j#d{tvhbZLcXmI*qKY zzJY%wl6Ylu15X&EP0I05g8ijv{5#m1%ZpsMf3J981G!F?K0OtF*s6a!*I%-XW{=|K z6)-7jTj^y~fadN`{8@yvH*v;bn#> >IXINhG z;MIFD6+Ym_rlxWsu$lilNE3*-Jz_uN&8=6V(8G8Kn}o B?5U zGONINa$ZAEbGX~OfPU+ScyDaqXYov4dH2A3nBC0zv01G$_+g>JpO5b8DF5zu@aLJi z{T^ts+nUG3s^INyH`^fX`XZeEUL9`d6(i+}ll!lMkHEX~H!aGF1+Pfof4-Fm@bwMu z-Mq2_|N77?Pr%j$PCOGQkX^*@+5V4L--zjNd PG0%a|2X3R z4d6dc&kg$jt-ya2P(a-OCqn-dp+Bjc|7oHBm%9GnIq)BkNuVU-e+Sv0w$#7s;QtR1 zk_QvQkH6I+{a-BiTLk_;p8pS>R?9h(-yd1q`1(dZE0A$F70 x4 z%>Qu(j6jAjaQgZ4KPOTC$?ClFYnu{4(a%fq uBid=n`O*EL6R}X;@^T?Htv|zVw7_%*1>nA+ip~D zEtvmO>ex!J&%u>Y^4edjmGaHCp3HZZq`KF!Zx< +1SXf$~Af~)4Q$*bol`p@UvvY88fYe-FtEt_;`H$5sXU0ZHt2 xNBPbM3U{OVhrtC-&_dIoD1%=$(XC!+*Vv{%do!$~wAQxod%` z 2{5^NUlu-N8D7!4t0NNE$KutlV2ks6jWg zM1@~bM0z&NhT);XL7~%D!#5h1`onM|A59~#{Q%eD@tK7&J%EE++Rvbf3zJa8WakGn zf4~I@U< uRF{`D5mVF}Nqy}iAk z0^MGAGVQpcr|I8a5!rD|(T{J1D>;fBbOmPwGmI4B?6rfXmIrWfaQJ&>8_!&N)llL- z) `HbM{*G!*- z=(96lD#2VYpi?U l`1ANcV9sD8%slTWk3V@4M>c&c}6%kTYq z&G0< 8=hVQ@6795JO*Kij!BoeGQAC54 zF4_F2-Q>o;TF@yow@sOMjJv-~1wKrdty?QCr?j#6ALI5ilV>@D-anOvA{=VG8(km- zOpX|+am~{ZOcO~yHC=A~lNv6=gBt3WZ7r_Z#}(}lD4EcUal_M2aX)q#bLJT|9{k#O zw=l2MKw5uZzG8}`*-^I!TK;^y;d?Y%D0~fd;sXC#)pJmlE3|FN>9$kgjATrAaBT~e zn{snyjZz( $Rs)&-gUVWc`$jCg9hJqeuYsv!T2O+xpxB zQ12uh*uqF#FIYGSBDDNYp2L9gF#~;vU(*=X@2cs3-u9`t8kavcx(shYxl)ztXlO9h z&ANstrweu) #mUZFMeCzdSg0iY= zq5=u)b2~qKeu19M)bTu^+Nr4YHC)uq)HEi%>5Ov40<(V$1b+ #EWzB)LeVPQ*AQre0FaF~)$N}+Ns)qRz%CNaZu3cqHX5-jg$ z7gOffzbf%I+ZC?Rod>!MOAvj%r16GOyI4qh{rukZ7`B=28zp`|fIfH)fzMx0lRxX1 zW!%mX3}^?rqDBbv)_8noY!Nqoi;u~ IbyJw H;LEKU zMc&{bK_;TmKVcp|N)ggtk*j59hKb(;rz@7`Z6T|dp){aeem z_Z-`2kR*qGgBM0#wng 2G||L zDdaq7L-UQ)Vh5}0hq7fVoIEcKTt57)KRns5hh};Y9@oO>;~Aqwl)=JtNiC !D%Xq9<%|Y9T7=++>8cXz1bEqZ#EXG>kSWNZ9B$N8R=f zXTea-wD+^cO3NeTjt?Ciow0Ay`i44U6g)mHTVjQAgvSY14AqPa4W)efRla)LJ&=$J z-w}Qf5X|@C{A!s8o96-0u*NEL=Xmt6SU=dY@bt%o{p6HZM6EF#pvpIAoni^f^4*o0 z_C;$8Pd!PC@;$4%oFXIGdla_WV>i2V_M&B zr~1QrvAhLgnst(jhIKlB9f!4#Qfz|nmzFJCr)(|+hQ(EY_8DK)v-4|=Jm=2o>VN(~ zTYRMmT0EH9g7!~%?K7yu4Z(@P+^MLFfB#%`=d9s!dFsxd+QWT0`p=l&GEdXi=L+HT z6GnKBu`e3We1TTn7Kd|o^shBEa~QR9 zb8|x*tsp#DPmPvgcQ+n_Sv66bY7*p#<$wpLoHMny%R?FKoyiD|_HXTlea(lnrb80} z{6ul{G#mnFC!z4#@QT(8?Td5kj0`opAEW$Hq9^iRM<0tdqK)Yv4~ZkOHBr+msfVfd z #qC?Mv`F(i+8DI=G_N1Ni MLMFat*cT@x{6seIGP v^8J=A3ISdg145OF?PB97m*O#huLU&L`pB zg2c^jUYBR|BgM5qw~>kh`UpW^`K$vWZ_9^5P$<-Rrv?;!`Ac*}@C9Q2dfB6RpYe&g z8Y|R_@ES=-l#?{-@@*8b-RnPWh>C(Gz@)-H6Mk9-siGiuU+Q>9=>~=5Z0W?tcpSVn zn HQhAMxy-FLikhKjwRfMJ8y%mY~*r5jK%y$I5TZL!S7M? zs2qax(5*bat)Jqw_)1}b7wM6RSyRu}Z>r_@I&Dx5F
;^KgouFYnG z*#gdEmX10uzWq(h(*oE-O6mNahfM-du`b@)5;~RxA8(UXv7i>Kf$TB&;;3HS00dsr zK^Q>$QOvIm4>p0U*I^K&5aY%_=5y7-dd^d%o?+Nd@{tOj8|EQg$`ibM5A}PettbbT zT-}t(tL<8jQV&s%-`q(#)xqbxMGk+Kf(GV2cOSs5q2O?|XZ9u}>lvHeptFI&z9-Le z4CwNSLeiCcEj<$et;i3#sHvU8oMA-tVdH4oYOsfrmx?2g`3S; 3P^B25NVWl+ 6BV=NpUk!+h& zH pg{2o7Ycb2bF=wB!M!Y9-xZ1<$D%IuWOu6$ol`xV5J z%++>LsaMM4oU*QCV?lY}qsy`T=Ylnhl-o|7j~&(^Yq+N7%9F==k0b&nD&@!>BlC+N z6NOd67U@x#>fGN@p5MY$yVtuXHD;p&fTV2F6{s=zpdLauj4Hx_lkiiftSL_dcm9;i zj6jeKEjUVeVCt8tEANy%pi{Fjt2hNK#X)|?D+RBjsU-LEcYNA!AMCNK%v^cb^2xDh zGcS=&uk=@|LfT!Ahy70t3{vt+YUdkm%nvCgtj%;kjA_v%uM`KhZbel!xHr_=&WX>e z$nXdZN+E PCr!fzK`H32u=>?lE8Yc!zeseKAD!MSnubbapYD4(M zRjL^l3ptLxHDio`*_r0gh|a0URAhLM^z@M=yI*u3UmQY5QC-p=t;iP7S@nVuMUQ}k zOKjduo$Saxa~ 0BNRTzlkbQ*-Qt_k>ID6kwW9=7SD;l6Jq9#vz_x#*Q7?rJ!3| zGxfbs8)7RAJ4B8f8%D|sw5uu?Xwc}7$nEh71U0y>^x5A0=uv#7nh}0=h6euQJ`mX6 zSIZnt%W#c19$QY(eQ`=FquLrx7W;6XCitne-XS#Q812bA1Hxskqd-Yl`c!1xd#mFi z#Tz)qJc*`{9BJ2f=)GS@QUG9VhLaF6sE3{J=6<$Y b=e_G$N}LAg<6dSOfO1K;+IR%+qsN~NpY z-SMBhMxv>5+jte2-Q!VtI@in){Wl?J+huLCS)h2<7mTD?^nqU DZGn6cJ~ zu;k8TeAl1-+iB_r9Cqxjo&)4T&ExXzQhm9!d(LUDAQ$bq%IQsxc6*>IG;%*Tsp-@D zIFNdCD?)&6)G(@jM8fsOdc47G?vzLvkIW=ou lUb*HZDr5nK&r19FYcSK?akrqGQ%br7-8xxzR2 }rNm{0VmEF~Xwigs1?l zurlQ@xF_FqZoZJQa~^88Wa^)`{Q`X^c3e+b>3(jcZYcuWvWJPLLl@0@HPx&1N{rW+ ztA9BsS-iVQRAoo`wDcArJ1rax0>*t`dzZfrfVE+5BU4y5sj%H|xk6 k^coH2^P3s3_Mnl5*8OL2IU=(t< z@QK@C$=t$b#PRE97N_Y_+!MhvnD6muTv8G@mE>vuaGA`**ze9pcP-{A*NhExBhJ>~ z-)TAUMrv4aKgrH#uX>>|rFh|VQa$_PzQn_Sbj6n1BI2{G z&545%Fe44yYv6;^&sA<&5VV0< 6p*8fBEv(@^#TrEUe>WO+~ zdzm(RO<$pFvHdz{VFt&1=6Mxxr|sOb)aLf$uK=n^)!R^Dq@ww?FF+=x@@I48?J+$3 z`oFnttHibN+N@3K4N(U7vyCxlTki>AVF(y+PMG9Aj%z{HtoO2bzE9q!t1=xHE(zXU zxB3j^5M>l^8gR!=HXn$TKRgS%Sa@}Cx;#4L+xPeH7ii}>+1JJ;QofnpnowCvv5%=9 zmWfiA7eE%t|8>IHvqi2+>u1b`Uc}e9j*8xYN8}%Mwu@x#YeXudOP?5Ce2FFycW1+g z$}do7_<@zDCj;^0pczkyT^ptq<%0fL#W$_Rc!cj8 qC^mx zB7J!ZJ#Jm$ZQ5CBDBPi!vWO>;iW)lUYv RRF4mWJmIH&U7rQ{t7sW~8=vj$>Z zqTDSl`Xgj!Y0$cM4X+NbWLqHWRr!Hrx;E*ScNx+i0l_L&CN(e=KJB;&iLPeocU0oO zs-BB5!*9RyGJ{?>A*7z0RG|Ts2$kwKEgL0ypGDElBEI!^@}`aE0zmK0#pDJ@`X4OU zQ&^vj2!aXZO*)wlU`tOy1{#%|8J=H=wfl^*aiiM^+k+<2=ST032t zWf3fQ?Ta9_!>L>xeBXn8aWR1ESDb-6^1g21EGw<}5 FXp|+S=oM(Ykr_-bv rfY1$OEDwq}Zwqu2jDIB7J@9)aMVogIEX=v #^%L0cZbX0+ z_631tt|z`TL~}UKE`w;W`uZtrJV~(sH^7*VsipcXnLy76vkrRj;JYcM^xmC(f2>TU zf(@{vZ4(2BueO};uy9QZrK{|(udaRo0CZ`^I7!TQ@RKxJZ~x=d z2G*d
#ujlrfEY$LIzL* zRz+MpSj!Kw4!2(d{#*0Kx>ORZ*m`j(ITp1=#xDcFVz%R+d~n1V&Lw+$W{&aPlm%M2 zl?Qt-$f*`r!1G(-1EkEve30L2y13+UUt#<2iAU&kl#xnxNw*-tT~QG=8bG&4HKkbj zIA;t;*71?UUh{2-Ee3*DpEKSE(()uns!D0EkNMYtn3nL%uHcvo(y_Q}eEROZj=U`n z*v@B}>y=N)?8gBR@w99cyq$+JF}5aa+#gtHDI1(=)Ym;joh+ nWQY6Ky4jVq5l1CA+)<|8k)UvQuQ4!om2HLWJLMWfo+_wxH{T zx3iX3Y?)R)zv5nw{47Y=!d}VLG_Y(|)aCTcLmJ@c`T0tB-)$W&F6pk^E#lE0kOQ#Y zqxAIx$f#J+b|<8%(SL{_+(*~MGoi$tt1UE-ptw3|J;tXS9L ynxwACGIL6Ep1Fu$PJiz-8(5ywDx9uvIFrx!GdjWNOa`h2Bx0`c e8MfWqK`Ees^>aydBu>h4 zDOq8at|ZH=e_myCTi(&k% N57K4X2b|wrCb&83`mm! zmjnL!zyI)~e|zhKvHXAXum7$V1_p#DdHn4wz`X;v{NH|%wgR4qj)lPDtN*jF7~23$ zrxu5-SFij}t`0o&MRGvUzp&|J{O|Ae|K7m= P)5=~Kp6`pa{B-e42&DBc zEiL@Dy4vr@JUk_)^e-*`y`dvDUz|@1;+Y27|1rAK?+_i;N@U*wSu20}^7^q>aPidb zdyw(fi7MEGV|+@~Zh^Au(7&<)YPPG#_^WfDH2(Kwj{o1lWy^fof}(u-#fIVkWnTw0 z&-ZM6d@6L1y0>)r@;9{z2XX);Dp-tXHt=0TeK~5d;CuJ(YX#6GGR|pZY#!!i{7>Zl z(e|=p)|C%@k@ZaPv?V()Z%|pnIkwiOF8bSbAFB5)_{*RJ?5@w-UYokemXkU5OYS%S z-$IUbR*6UzeTyfn%a5J%E*Ef>);;{F41NI7fLR>`n)1SkkNpQ(q+Fu(T~RtY zAsaez3|no}t$IcZrk9VlekAoHqH-&bPnw1A4 WZ_>g0DA}w}SXaRx^uSB}Q&$Y&Ic#(x?(PcxIF2`|%YG(re X@;3>f zp~w3ke=Ee!o(we{I5?&PVOW$chq*uNP{gy6e(fX 6nBp0{ao(stn(8_5 zN4NJwm8lXki~AOzLF;SY##1thOMmi_2c)_F)a(GyC`@d*ocP-L7;go;WG`zy4}5ld z&UA)?EtrrydbhxNCE!-wjE48NJq9aH+WG)D-g=TX&`$N&+M0-barKw(vP#2_x>~RY zPm^X*>_mw!Xx2TCH`g}BTfZ&1=2kA@aEYPK-x5N&0;5FbzRR`J<*g$<(G5*y&EN#c zrF%m&W(0eHJCT`b-_2dSaC?Fo`vtxR3ksU6o<&$`{ll$cuh}~Ek~vHGtQsw+EXB5W z$W6vGyHhpAkD@R69aiL0pR8AzjYa|;UOy8VI7kiN6WlOnaG#ZX5%B8pHEuJH3iE6m z@!4zuKo_eG_s#sJ{mxso^Qdxt9z{r=Ycw3J4X513{B2QJE(Yn3FuN+p01?nBPy~L? z=siq3QHs>MjY;+%u_t&RQgW5!BAP{k{e{4 vNXIp~}2b0jz!D8*Il=0)Wm9dNf z+1)IP4Ppi)ep@{?a-tP`91XW?8kfGxXwevs{TouYQdrchRsRt^(iYOt=h%x9Ng(H* zfAvg7a=#eiHHbpba@|r%6a`ZXyo#w%vq9rQr5EayXKk$&g^Oai<%s#;$;mroPRIBM zWH+eI%ZWUe)tjU-bFi(St_#le3F1dC788$( qlyu}U~bWc`keygfi8 zZBJ0Oih4e*d*fSRZvxs0{d`{PlTNM(eNUXhk0u`FB#Rw-jcP9RR>!&x@`${l;Psl+ z8%-7M$M4IRA=8A-eb@Pq7{{{Vxj#~OJs*4jco)Eut>10^U%de8<{L{ubpK*Rh~p#D zs@@~XInFjlA_DvzU&S?LpgY)ts%=_HFf;fej-ROj_3z`tgA@NlLCezpxZE&iE^PpF z0 HhlRCjaT(FG# >Y=$+~ZN#eeAXz=Gqy;2TV6S#;?-p z1d9kE$+RESDQN+H)B=3xC8ai3pjl|E8Xd>AkvPXd{YOC8&LS la4q*niRWV^l|=9NC3;HCKo7wMnGPn`1AHH|Mx)nIXO$9H zaw}sXm*3+EkHp=h1Q`1+Q(!%waUtYf+~B!|%ivc4o3czM?3a4I*uJ)jY +8?kp^auIXEcNr7*y3Ls}O0 z^LlRij(7Hix2SR;MBi11sNMmv;@CanEhX2taR$;lhpz*pfS0Fy&g@$4U8#`Nkz%96 z;C8-g;Zk|SVJN9CT@OSV^<;tjL}u@YKohF+?+ N(M+zELTq~PS2s0kTn6utl0J37EUVZ(|8_v-GqkyT(~iTjG-+Ov1WxB ztCN4Sf!kVSAzb0!An13b)&bV8ZSY!d=w_}EuhQJs%v;AH_tjOi*F0Y>*oNKLBRJ{% z92c)*2RcYt4V!L^CsmvuM)NMbi!*qkqhmM!-UTp4nQ1h@=H~HM(9XGs+P2@?(;aAE z*a?1|5DVO@hV&lA?Ch8>&AI`}7KO&5tfMT(pB$goBH>r}
jK+6>^G8pS^hHf?Ua--77dJnU0 zag5eyL!9~0Bw-m|Y;Uf2?vAy1x>7-}TbVaz$l6g74IODw&0z71@Ed;?=54J! )v4RX|J=@i9JtG-1(CvVH+LdUj58BHw8A AFsdKrVk>uO%whAZowOLXEpvcDth8!h0 zZRXgZ?B_IxB4jSD=OI|;W&a09P2ZO!UvqH)cSnA6MUKg~nO$`-c0J*5cgSO@zdL~$ zA8MD%KWF)8lpxP@m6%9Qj%2CCL^lrcfi^NA<`YFVRL8(+ky*}N!Y)yM)7X}$kHjzM zL)%S{l*YQ&i-Qk}y+soB+UhlytA;Z-rGD*9)WmJhRyjVpA`f&rSF7dr&2=q9M?Q!W zycqpjW0io>siu^9#FBiGZvjJRzLi3KSl(!$x;Y%thF4ZE(V OU e;FC_VvkfuV{+<8d|UDHA+0ISl%@5 zwwKx#mH|;+;kNI&q$?yYHTTIeoq3^AXNv39GC^peoyI(2@i2dX>U}xDJ%=rdCzPhv zKJ`=IN-?&a>?2+ATn>}_-2T4s$-#_~$~VmzC9BSFO`V_RtzgnUiivI!fXPtnRe3#^ z^#00_p*hq(>n_K^R@K_Iq!<{jbLhb!rNmv4^;A!-Ur3N2id(CA=x#A49Cty0ApygO zx(|zjs4iO*2;VBK@RCXZ)2Q^>aTmYbt3ugEwT 8-0A=E2a-}Y-Z?>Y(~cK)TiHLE-JbmOAd6n9QxddggP RA*ium2lC@o{OiM`3XKS*z%bj@T z4-=kNbfU>Mg6(k@7vyyO$t$`5+({XW?K(%a+)KQksyv;EK;K~I{0+cJMd~`6*)6tI zE%OzOG5t&(8tY?M#h!n{N9dE?7v{?tZP&ci*q2Lg!>BLw<9Q{2$550&DrMYOM=|S_ zWi7ogySwT;-m@kL9;V0lp$GnJw$6JV--mywZO>#y-N?@Wy;Wbmk!Vos<$mva7E8A4 z3@argSJ~xLX91k=M{in_J0H_Cm>iF~@r*MfC1IDYRtS97ZoHeapFF$#JVWVy!3~Zo z%!ot~23R^TJLo^E4BuSd R-%vnup+TXA#5mlDVCmkjBM053g{OxnO0lVBTm4cOz+Hdmq}YicaO&~3d3JE zpUx6%mFO@x^jh_8-|p(Yk;M7wAXI?ykBAw; tw$j&)(C{xv75Lv+~Nlx-Rx`NrcjkGMUoLr~LR}CF0_AI#9GG zo2shO`HSAkTObo57UxeE }er3wAQ;hYehaiy5%Zr0`*6|9RslKvw7Ggb9%?r;q zBFJQYbg5jJqBrWathCzFIaRE7dfZkRREEGicK67Wt~B|2XdKsd^>?#+os;B-J|`3Z zx=Mnzf6+GJ>he}KrqX1PL-IO4wbk+{B2t`&Ly>Zw&uT$9*_7am<_smOvboa0-RR1} z)cM+Pv2;VCbTIdCY|cR V!`F=ymnR!&KeFPe<1L+E+q7jbsc}wT&+LO?T?|8s-b~QfQrG zPhd?J6e+Mulcw@g`OS2~DFOfeQs;U{z8S!b#~#LVHMw IrFzR<0&Z9Vcx;a}ZnBlq{1-!fS4 zp@ ao5=!H|H{1G2{`GPj{-kY>8gG`jTW_TJ+-K!>(BmOvYOQ~-w@<;ZWIT6o zS!G-~ZK_D2Djl0=(CXE|hWV*`JS;MZFh1RKHAG5HcW@R*4}W9T)2>>(Eiap_M&P;q zAC}u9?Uo9nd2~6FN6Lchnw7UTi!^@Tm#4u>j!MDR*N!@50~My55}xc(yS%@*xK-OE zYV_kVD2NaiY$?PO9Hgeb%mOT2^N`*RL$?f`t9911u8~M|i)%yQg^G;n#aq#hbjC>M z{RCVyD|Il0?a#JdfxF2|^RdNf`;!Re1iH{LX5Le~FTu?4DGK$>D``8Ka?5ZlNTheX z2PXZ&5|_|#=WP!q(NRM4k6(qp3sG<3e|CE>A%$~JYml?E^-%EJ%L8L58Bww@uD@?9 zU}px_@bq&1hji0~v-tz5mn=eC=)JpTjR*Ydz?c|&={y=>QE|z8U$2$AO2NKFqPV_Z zp74I5=nlTvzR>d9*PPeiL(}EszUZH<3zzWOYyOiR$Vz Qh`ugP+a6-iOT9x7nL++5i Pks;KzOXE^{| zUhxyW)3@ -#Pq;4z%7iy*BuPk=Iu_a;$Z1p=;U ze>OD(JKm-n6kF@(qV@Ro#Bhq+Gr8BJ#RiaO&WoBwS|fGKGKToAwPBG3;d5}(hQx85 za8mqxA*M&0tv ;)Z#$d;g9rksN !l9!{2j$TcVTW5Q~zv zmG~#xJKfm}sB5cQkg#hwI$o5>7a!&3%rzbE8qNq}x$mV?qQx^eD^NBfdopL1nqVYR zK}F$OAiU&4Z*X^{DY({#PY~Gb_3piqHe56muv(kkW079+3+g<6fXZ^r<3{E-6WBU< z=*!DD){hp)sVRUHwSOpCNJ0<5yVr&R+?{}y5>LvqPW&^>vkfZ~S?-m&hh9TCCIyN( z*V)I2m~Qb(?C#J#@j`wDTvUTT;3{FztmZ?B{#C^zOHCkp5H`H6ZtB uZ5B!jpSGkdV-Qpibk%taIyeV;{*v{J3lwi=sMVF(61!H{F-R;K9dr zy(~GMp1)XM(v%eirI3TYW-ls_;}%;_5{CU( %p(qY{5VH74*Q)V1e=OY@SvecW{pWW$c_ zcOj($9Ww0AS=rsFBAM*Fr=_{9Q^eU<(e1O~oR)YNx(PLVS&qOdq>-!VO50vD;T0hG zv{kj_$OxhLk@&9S#(;8#@U1#T3wnowwS;YhN3{}LynhXu=4qQsp(pm-;hun*t)+mP z(FGcB!XAHldTZI=MekaRM?2VEGwwO3p2XQ&l3f7FHNLqK)jFhbyE!Q*;o{{I;&U zuf>wC>Yco!Uz9f4a&kNzSKzqCn;^73OWNT&zaFT?$>eJgNXfi8dShV_>FS6JyeH|F zE;b~+aTFq>_#-xsudQy}`@AQ~b|jht-0NM;e5Yww31-Gnzr34fK{z1Vh^OaV%t4bG z3V6M7*N-^p-fJ$Kx$0Yi#e8cNn4PV)!y^c`*>N~gsP@{p>oMd)%WVM$Q5Ibig|->k zRl#kWOy_L&|8^_3L0S~Ig_-@G&v|ja6kg-y6NxM$wy*1z%D_l|;@lwa1cDMY@rjKm zQ1*93PY#RdUZA3C@OyYpd-!|{_K8wZY9T _B&; zj)LGn^5xsh61hNxOPI