From bd55e85027c49ebef54627cac8992c23682fcc7f Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Tue, 20 Aug 2024 12:20:19 +0200 Subject: [PATCH] LibGfx: Implement Gfx::AlphaType for SkiaPainter Always assuming unpremultiplied color data only worked for PNGs (which are specced as unpremultiplied) and bitmaps with alpha set to 100%. Properly propagate the Gfx::AlphaType of a bitmap to Skia. The reference tests were updated to reflect this change, but visually it's practically impossible to see the difference. A new test was added to clearly expose this issue. Fixes #1104 --- .../canvas-unpremultiplied-image.html | 12 +++++ .../images/canvas-arcs-and-ellipses-ref.png | Bin 6353 -> 2306 bytes .../canvas-implict-moves-and-lines-ref.png | Bin 10468 -> 4195 bytes .../images/canvas-path-rect-ref.png | Bin 6610 -> 5199 bytes .../Screenshot/images/canvas-text-ref.png | Bin 34011 -> 28763 bytes .../canvas-unpremultiplied-image-ref.png | Bin 0 -> 2359 bytes .../canvas-unpremultiplied-image-ref.html | 9 ++++ Userland/Libraries/LibGfx/PainterSkia.cpp | 46 +++++++++++------- 8 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 Tests/LibWeb/Screenshot/canvas-unpremultiplied-image.html create mode 100644 Tests/LibWeb/Screenshot/images/canvas-unpremultiplied-image-ref.png create mode 100644 Tests/LibWeb/Screenshot/reference/canvas-unpremultiplied-image-ref.html diff --git a/Tests/LibWeb/Screenshot/canvas-unpremultiplied-image.html b/Tests/LibWeb/Screenshot/canvas-unpremultiplied-image.html new file mode 100644 index 00000000000..ee63456d5c4 --- /dev/null +++ b/Tests/LibWeb/Screenshot/canvas-unpremultiplied-image.html @@ -0,0 +1,12 @@ + + + diff --git a/Tests/LibWeb/Screenshot/images/canvas-arcs-and-ellipses-ref.png b/Tests/LibWeb/Screenshot/images/canvas-arcs-and-ellipses-ref.png index 293384e65329ece7ea0883f096b42f210ad2c262..10bac372ebda48846ef95275a151b07285d6e3e5 100644 GIT binary patch literal 2306 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>iU|?X_FMD?l0|UoNPZ!6Kid%2*#%4@S zWjOG${C@hooV=?cTCy!FrHVhaIDqQ z*xYpBlaiK*@g5CNagN3>M*~jqN2&dM;$dEX=gv>2yPyBnO=mxM`1HA-pZC1q{oK}H zs6kNmAB%#300##P3lkG#qk~AJO87MYrqwnA!je$21_zcVFmmEz`uT9BFjM11rkS%- z#35aHJfVHfv#Hh@LP9ljMhwN9JfQ z`6S<{FoC-+`vm8b(#;M6CmN)SnO0VKC~%}WxV!o(<}x`dFxyGY7xuWC2~yaXTEw)o zY&}TfPRr*JzOz}I9N22E&oOS@6Lsc>J$H)*GiPzpvI*C_BzBdbyv(F{&f(irAH}<@ z{D0mb`{-HL>Cj;`!JzttNYKW$7Ye`ozpuZ)qpVRNRYCn#n@;$jEgJ&+*RT2Wzjv!F zlj1RlL(j$6o3GT!xv*B4?cU5-ErBE+l{G8nc~TM;oxk0w{P^VZrzVFE!wDZep0?^& zE^Aw>XP+^!Sk(BxlI{xWsj zix>rgAlVZ)&1dOvZ_hpK&!l*?@y&e8Q+nsiIa{u<71dl_aeKl20tba9CKJll`fj-g zT~rhZlJxMep44yEIN^}PuX$_FuI^uw*zVvFt6;6J{xeEJAV}=Q#8%ILt5}>?F)loqcUQK6p%3^vMJ53~OnuCY8!rim1-zWNra=het@_VMI;Hv*Z z9GVtyB$rBfkPr79KUWCJt zt?1j?X+~crn*4NEG-M09b7)ec9LLXS1sCxXC)HPE?x5Q%>hJ3dAa8 zuReX%-FLb}hu(y{XPj@jIf^+28zHV~pu$}OsU}E;BSz#=V0`&@sVTIS_wVNC~ zoD~u)1?^+z?$zgLDPa+k)B167!nCK33QJTcT!?(Y{A%(%ekMiR#+F>xyQf$EG~j44 zVHK)c{=9b9)R~1w94#fRLWh36{`~s!tm$3WJQ9~1TkPNE%G6H3{foViwQ<5R2d5V^ z?SFnMubF*|U%Xbr;2JaM!vl|JdMdAtKXb*lYDLT8hK=$kEUn+=?|FBrI_j%wx1H8o z1BEV!b2l%WK7aOV*Jp8+(wV2)Zd-kyS|cIgt?<`R_SV<1?``jVqwTFrcImV;8nOm` zJIv6?!GesyB~pWfg94Ky5@Kuw34zNj7X=O^1Qr4nV}cw^f*i>f6SPmOAG|8d0T+kq zbWk8H1h)fZAVecELJSDU!8BqBF)%^QLvjSB5ZvzwRTx6>@)_YFVuav@J;Fm6LI_*o z9>Nep*b4U$h7iIExa)}#!U(el2Mi(1Fl)pVg4>F4J%$i5VaCFQp$a3+I9M=*5Vnq} dU@Z9ho1d@aqpCb(@p4e(#?#f$Wt~$(695Xk$U*=B literal 6353 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 diff --git a/Tests/LibWeb/Screenshot/images/canvas-implict-moves-and-lines-ref.png b/Tests/LibWeb/Screenshot/images/canvas-implict-moves-and-lines-ref.png index ad2dc45ed72d6cca466c800b3ecc131fbf73359b..435ff2c05d5893ba01f1c753df75dc618e175b74 100644 GIT binary patch literal 4195 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 diff --git a/Tests/LibWeb/Screenshot/images/canvas-path-rect-ref.png b/Tests/LibWeb/Screenshot/images/canvas-path-rect-ref.png index e69d6daa079c7d03ce9941347070931efae1346e..bd857a603de6cdcddb91e9fadc575cff71e9e449 100644 GIT binary patch literal 5199 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>iVqjnp6%kcuU=R`Wba4!+xb^lf_k^iW zD-V237r&vmN%5e9go8ugv@jkni6giCtUP56j`Dau4mf`7miMuXWwWYgPf0ltv6yq2 zr&RBf?HOrVYUUjpThyfHs=YW-6uc+(iPq^&dV(xsWs!QzpEu_ko|sp>FLk=@^!xc` zWqS-N&V81<_J7a)>V3hY3{&R%s3mh;=w8*!z~GR;$iSh)z|hFb&~Si>K_G&Gfr%T; zRoKA5z#<0b;#YLaKlEMwT*HN*;u044q#D)LIp=R`W@Uit2bqdrKZ_XHYJ!SD4kJks z)L{I6LQ(_`2dKl5t)oB@)OMJ|v73aX2x>bh*g&F4ZUS+cxWO@oqzGhi$!;xW1`Yd} zKF0(Wh~GR2k4BIjno_8FFypbChp7mZJ_wqGqzF0ih)P;W;etE;k*Wyl52(YD-GpQk zk|LxK28sGbPZhkNEGE$yd2zPU%pOGt{n2y{FB;IoieP|3BLSB1K;hd6DI}0gLQ(`u zyCu6<8CBbb$IBY09qAA>%!xQ29vf?DcW&CWjGQ+=vNAg2{~5_upII&V!VHx59TMhF z%WWB zE)%^S3;s-hel>iu_x$yHpS5yv=xC@e{jPUNI363jc+0k`qfD$Dn^~DwE0mUQOmdAW34E$|bysQOQPGov z6%386uIo(n1j9m)_Sc16ES+jvS@h=td)!6_g$=t-PTwyR9+$asl5}nDOYdV03`f_o z=n2++n*8yweAG(ebvuuRiA`wtZc*4!Bx$0tEw`JIdCe8h-`~~c8Mlv@kIkK~p&(B-2a-+k}E!)-SE0nyL;K`s~+$m5MKJi^b zZ0Xcpr}V8C%{1<1WMBzPT;{jcgmtFbSsn(51kto39Nxhb9v(i+z`!ys&p?AgAYzwe z0wcpyfe1Z8E*%DqSl6oAZ145`HnxPOG3@!he1-ht3$v+I$)VMRek-)jwNE`6F{^3% zhEqJdE-(33+q2rLisdF#!+LMT~+nIm)ZkMahj{Yh= z`MtKe+U;0{4ItUZ(2HSzlYK1rTh||6yWcPA^$)>yQ)ef|ua;DX%6sZb%C3I@?&kH+ zuYJ|e<*&Ub#LhR%iiw+L+5w@6)VI;~a^`hU&isAeC)XP;ZC$mxE_lstDR%xy78WrM zokrCSr#yV`XVe+os}5Ul+i=+Z(bBfQa<#Pm`*-O6REN3Y(7NAyf4u8;{Zhdv*Cl@6 zLM;0DI`w^b1l<1?IwUk65Q<=0y~XD9&mYa5M}L3dlks_1SY@+q)BXCbhv)M_t?9ab z;`{My^?FO$_pCRqjDGb0{+p8E&899;?I-S3h3fpdEL8Vrca&At>mPr&--(fHWCh2< zz3(sXAAh6y^mECq?#fi*Umi$n82P)zqhZxf7h)|wPm-QE7@TaeNdiom}8e0#%;xw;Q*?BZ$>A(BmkDPtFdE?e&XP>f) zDQpmkxcg}0?4)-*$uB;5ISWPq|C?0vKJu_YM8kniEljIdm)QtB-*;ZZ@7kBLKd&!u ze6cd)PObzKw?G6_w@Djs*W2&X&dZ~2Kkk3uy*$p0vyrvLb*o^&%w_ZP*>-+e-+4U0 zm;ZmCCj*C$#to6iss6dXI=glCr1OOsn7Fx&b9*G8T;H#@uWqg(NX3~R&a{9D-p7xr zF79P?NN}`MzAyjY_Ot|7>1X+wj132xYL@M?o6(jW!H_Bxp{qOX*aDWYjW4br=V3Ud zv|-jP9bZQ&>9Y&G8=va7WM27V%G|JtV~wn}POszF1>VPJH6CCRh$uP47bf0gcbxNk zN!0DL3=4FaPOCbp-YU+CU%EAKwIst7*MzIrqotZ(Y4Rm3-I_HSETS7L<=z)D*XGvk z$LjWmZC}6^FlTQDOTN7;ecmRy^i##Fl^NN_ZC94{8#kBCtG)|%)TTFQpKML(lw4x= zkon~E*MU29t&{Ut8!}AsPSB0ZDg9LOCD7R8EaRFjG6$G6Rv*a9>B+A-%vAa+JHGo_ zTC#_H1Yg2ZULE!g45u_VYhBIg`#SYJC0S z`;vGxb27RGOL%Cu^0jytcmo<>krQ%St|OjT8O-|8T6^<(KufTV##e zCOzR1`?Bs;P~`$$-NK(wKR%f(y35bsX5l)&>#fRHLao-DuF`HO;$O3-_V=Sx+K;uT ze%IUZCU~A@aO_+?_6?Vc7`PWGF=@YkadF4vz8&9gW#q5#cxqW;@a&A|yiI5S<#Fh+ zZ@9!ZjX8orR4C%O?I({OdHHU!sh{t1-MaOtkv-{-#rzj{Y8zA8wR0109%Op4YSpB= zFV5}9-flmhZYRvlHs$=JEn8IHR@|@s_-uCE{JY@dn;(MP4WCSFDkkRTr3$awX!!HiK3gfNq@!IGZw%KTllu}b-&gtgr2i$NL8PrU!rzk?;$^1Bba_kaYR-(l3&y&cZL#QkZ;BZjbB2Z|WD z9TFV#{B|to)3J_VVB#(+IApulxjp%ASTch^#D$$JpSy3JUMZz-^^i|tgMxp8<->WC zm_Z6Zu})(KMLwerLnCV?Jgq8hP-wqZXIMDHa7n?7f;}JFKso=#ohycZJC<)w^ZwD3 zz|hEQ$$Xk|%@i3>hMl0lLFRy0=2kFUeZ!lCrB7O{8xAzZWc@zM>bGP0#anXvrV`8z z2b#|L%BQovTvH16Y93$0(x+gBHH}XZ9+?Nq7-k#ZBrtO5oJdUgFJXN}A}AxbKYY71 z#E8wcQ-k)tZU%X@xYj_IeFFoF*b{CY^*firX@-gW6U#K&HCq}}*+JpLSGy|ti{-Hi zhvqSVteOn*$%=z%6Z+0qun9y=IKII#Z9*T|v`-RxpkyZt3XGkhp)(y%fikYb28Hd% z?xunCZ>(Gn(k~EkH~p!bF@r$F1oI8|%$h}NJop+8H2vX|>3ME0;k@t;INluP;PNlX!STm~R+HDBgMe0ZFZYu>ZszQq1pi98HU+`A6X?M{Aj|Jb49 zllfcLrF{Q?CYx~qd#EJi)XWnHetda??&T+rZ|&F zZ+4_rotYsJe7=8Tv-Ts+`l`U1@8V%`35-nK=Q=jOe&n2-{Az~EwoUijd9@Bd-?30r z?ar&e&EO2<-Nw`N^0D8SYnIHXA9}{_*VyUE43Y>CapScUjK2B)y>vj8|H8WDnv8vK zwL$G3jj+dUWmB$g*;sh;#fsIs-`MZeS*YEcR&&4@tdFaH!m3Bx+hx1g8hV!c%8CBX z?t16=@9_7>^Oj!o0=dX5c>b#&cLk3py}t4FNVl7t@BO$s5B;3p?&mu#G&V3avOZlD zKmW&r6~gV?H@&^O{k&u?!`bSjUw>}wxf}#)H#yE+^;TTG|J{qVnaPiu_+3i<>y{k4 z{rmAJ>&H{yvVrP(R?*}G`A4Vx?_Qfz+ABM2&Wl%ixo-=P#%|1-YzS%~II>FLu-9Ds zxc%wo_{DyYpM9D=JNex8k+Z9YAIm({wzVOzFHE~ zKb~xho-Vg~-NE;kN7vunX#K9vMDEATOimq#1jd)WcIr28&a%-`n=9^ayz%YYiah6< z_mRzx35^Gs91iV_;yIRn}C%z#uu()5S5QV$R#U)obpT z)*kM2>7cdB&-pU&0Tbu=h%se^Ui+n24)U*7b~pIx}rwWavp{P#~kdiY6s zEY#0%s{Ho(Z%uu$XBsoZms@Yv#Gh-di?~w7z`$T2$Hcil71mgM%dFD04I%&=W!ApOF2JuQ;t^U|?`N$jQOL5a8Cp zz`&5oGRhpr;gDANn(;!W_!hYXa(WrI3=9>^<_u%sj;3fTWanj*&TNyrXu7^Sw&+^q z$yK2zyF`oQPfy<-XJ)@_`Q%>d=ljfZJof#4`{a~%v_A8Lm$T-6J#Be`pGjr%hKje@ zlkflD`{d2$c3~;|^=qRiudh+v`Q_4+RjViE-j32|dazPR!6ClK%3+$m|2cd6%H!6@ zq-B2_+s^%S_P)=)ZF#wS*&61%HZas0o??jHW%6^gz4yJ(^PYS-9KHVKwzIP*bL;#3 zdni9?=FDr^3^(K%nZ6u-!SrOwg7tHOQtRx@9i$H4e2=|X>kZq$^Thun{n73WlC zefoJ`JveynbOweC>dkx;y7j!`KF_+Q-S+y;X7&6NObiXnvo`c6?EUw3^8JPB5BGlT zJ^9@3dKK$|9hEHHFS;GsP9(Ogmfx8uQ&aF-_3?(>=uJhbpDsABozBoR9c0^t{)D~% z|2|rL=^(rM``Y~1q6`dQ4nFX6=(Ez=`T1PR$w}9|kEK38mvVL0lYPIV^cf}8)fF7# zdET)+X_gm}*VT!hR`Y;)Z8!tNh0#)6C+~irw>RldpN-MYJv+a0HGC{&V)}A) zfuBR%_g&Yxf84#FyO)8XK~GrW%HkD+)R()({JXxmb#FJ=- zR}~;X9GufIr?~IOi>9UClkfjpdrg~x;l-+hEGK4}t`*;K`{nZOaSRL&;k;@NVQaJY zHrx$cmjkk4os>_*kNNlBeJEyRIPi}{;Mv^y+zbrg(hV3N39fl3puoWJ=6pij;n#1Q z?;4q2tztZ|qk>oef_SqfBO?RDF8_fl%|HdK!}mF#xKCOxSCf|aShrtyXQlINSB3)t z90Cda>HmX@URqB|^?vs6&bIc+TVGFpo#(r6yWY-++fwfCJ*&pVU~4utW!u+|p9a<) z^<58V%*xu^u>A21*ky!ax&ZQlQ$`Szsj>+09 z|M%6`nTyp`uCJSaZ61754z-}aaHt=o}!-dffCuI10q24zevFSr>GH3=yE{WvXLZT`>8*R<#DYnPwt za^hC>Ge7UVdj^({jfS9{4sl$6{yzJkTPH`apAmmMT}^)4k00kXf8O8yx4bD4;nDW1 z?dscWH+}7riZ1ul+xC9nlYM2io9cpJhZ@v_JkTA@&v2{quXdFFisBQSo?Q2zSM#>) z|Ci*zqStqnW9-h#GKftR77%L@o=~^r(cF_e^|SXbiZ;u=`FYas?|GhPzfH=k4sgN) zBJs7o>gnlQ<1W^g+irNST0Z}opE#$$0(}+^Zl{Kl``%%y_CH=<)Bg4P+S%goo@Mrj zo?gC_>DjL=gR81D^-sBWvh=o$^LFTYp?y;+PA-+RLy_J$Kd~frG@n&%aY&! zzP>#vKj&)I(GP!Ltn-}k=eO_4{k6-#O0}JVJ7U-Scioep+b{pxRk-u{!6)+jC&m<& zZu;1GEn7kg9u;}fAMZR_=f5@1FwQz{(*2(mMPJXZoo=AQ#PXusbuBx?*K0Djs}Amv z-C^?c)9y+4D+*t$G6eWH9N?I%<}fRIo665m@oMSwZd7qHToF<*a9S>Zzl!nX6O||V z_b*kkLd4R4#(qCn@$;kK5(WuzMkeLrFP|r+%U`Kt?f?EQ98@-xvT*dAne{kIKOz5J zBZGljGv|btFRyXmID6i8JLiOVkwp%#Ss4P-4H%2g+k#4zW4&v|Kcwtw+Fm_PFK;gc z!z&&&hj;sSe`PBBTzoNC|2x~7bAk#CJ)I1R_beG-u1oGKVBFhXc4kW)14AjBu!7vd zSA2#yV*TuQy*ze1TA!i8s+n`b*6e8g1ao`wyHEeQo5xmX!)$yy_2lCIZE*+B_!J!# zT^qi^{$9gX-|Or0q1MV(Y5aU<9=-m-tJRZbt)tc_)St6h_?79~)7`J5peC#A{PXD= z_l`H4u5sU(FTPK~vLN%d=$p6O&YpC>9lai8JJ$qn{oK6_{qd#Kf6L!}@{gS%*?0xR z%^ik6pQuN#mssy#qjYo2%CB7Cj{oh?EBepeuu(FkLFHt--ISc$*Q$>G$hkeO=Evc+ z;U7|1Jj^)-7>=bCFc$s)d-Av)NH(VA;*!|F_!wzmD5? z{=ewU#L{3WmD8XynfqmU?A5BH1+jINpCUkXU|@-D6VD%}INnnVxjt%lbm{ z_Y3#Qo6moX)UJK>&)t0If5rn5y-E&~Qm(Iia`(O8y+6-Vj=i_~cSo+y!t(u|llz^Q z|M`nhsOC`i`%U^}VSgXJohhH}uiEUKYdyJJ-_OrNap#vy*Rm_D<}{Q{78YPQmi1x! zh52U!-Bq8@pa19Nd>^|#6D%)Zp6v1a$MMP4?{oLIEziCfvgvdDBvtk;afcqio#i`i z|5;gqXVbl3fZI!D(fe#HpU*j|?Dl+)@z2MGw|1HSJQY6awBGDJ`zoq-eN~#bGTu&Y z=f6YOv~S!#D?MrYp50%$+T0o#YB%oq+MqXMo}bH@Vkyisrg+V306mWMVFTm6gB$)gt*j zGi^R)ycT7+(8ti&_~}QedF3CjhK<4s1_8?}nZwjUN!736fP*FDOSSb6SQFl`aPUmv zesTB9iNz=D@87FpW!R$XkkH^~Z5C;AwTiWR_e(zU3ycm82N){VHT?_pd$c}@dE14H9M%Yw|JPp3eEqTKKIu7Tme4Nd_G3GoZNU;c`o9J_gK zID0@}QCVqi2!KvXugUk*S%a^Qc!#8Y~H9mP( zI%+*bL!N+wfx>!=eW0w~c00y_z2Pnk2T#ZG^}9~8mN3jvc1Unw@c^YNhGLL-_=hr3 zY5<8V%&QG3`V$B>t^a-2UM7ZJ&J70~EdIV&wpDIFQ-dvsfCR^Pd$6}|OlD|o6i@)W z@r`H00f!2f)wAa`FdUf2!ohRk5%Z+vzKp$1du_Ma{yb?5^3-+?0f~mi^RHJi{w|t( zd_BVhPLRT`=iA~A?A!65k-=ZZA%P)`Yl2_Ve`bbx9t{T=e0;aY9oWYqz)+#Y$i%$i zW8*dM8@HWrPmVU<9>>UVSJ@$ffyLu{&HriFxEU7AX5rvzV0bwX?9f^v1p|iL>66~C z&EDH|{4-Y^!wqvrCgzV%rK9v8d;|qbt+0ZD0Mim{vs}-2JJx^YVgNM)m)hP4^y{R;n|oA$zUl>s87L+1miIZgOChp6|F!DlkNWq$ z%Fb>Bd0)*T;lQ=Kv*&!<_vH1xQz4J$@4E?d%6x{##@m~eE5Eu=;@&so&5X>wX*;g1 z^Z%Eg3`*{`Oe}7X*6aE9{rmhRIo@v@_r%KYEB|NgWnlP~sMV=HEit9f#-#G~dbRcS zu0_8J*Ixf}-~XLw+>dkDv?X@mjNCtm`LBXQ!jmxBX@CAno{ZG@xh6AR=I@?s-M^l% zovt$fXV`1ep1I(L9z(T7PUWYr$LfZgp6y6EyYVC_rmx1ne&_2~wS0U0MNo&use!@% z^2Bzv^f?>Sr^pm$ybitl!F{?<+4*4LAg@&&&f z%{jm=7K400i!41iKYP8(n}#PprLGOv?U^}WZGS~wQ8$0p5@k^9iHRk`AUODBcbJc# zr(eB}k6-LunH^icZc2Z*cfPmXr={1l6Z#+yUdk6SWlzP`mewy#x=H=k7FEm7%_o2PuAL4_{ujiV zSY9ki^_~=Om-cSTlP`}aO%7A(UUnzZ z_LH{T&%VFs{tRlMDLOP9oO#~A`2VG^Cui&XZF@K8ey_oONEk@8D)alEvnl*^Q$@dC z$B)lG<^TQv@7O1E>-+2dJHM&(Lk~1WqmIiMTFP3MmKL45cye9r$+_QE|8Ld%x&8f? zICgtb_qLURv4K%Q!69BJ%a(zGL4qHBRBr$Vd}kirym|9la|Q+m<%cY^ALypl0Q#u8 hw4I;;hwtbA8^7rGeA_iVqjnp6%kcuU?@=Xba4!+xb^lfdxeOr z{PB;BOTVj`GF@6yK0!@MLBk_>O5b{s%u9kS6P0|Ic)j;{@9L!Ac)`1&CC-VdrA16Z zQ6S3beT-S0UUl_!Z%5}Jb@Oa&rk{Ox=ia-vzp4Ls8#^&EFevzOnlUmkFfej6Ff=r< zGB7wC0674a>#&At8Uw?FweA59ci45d@i9DDYv*31#R5{rB*qcJz#y;zq_3fYRbT@H zgF-?h$RtK?799o#jtH>XXv&zx+(j7}=5RS4U;iC@xH#l|9_XL_Kh$GjtGwjjM)d9SoiiV z=K7ycr#m*Y{r&U#JTn_lK>ESDzrVh|y}jLkzTMvH@9%DIPVbkq-Bten-rDHx>tc78 zy}YzEc)6dRp5B`oEwAqEES5IQiP%;0^3Bc7>V9)9l8$sVGPAErUQqk{+u7OX`4<*A zu8rEN6}l>9kxOUI&rhkRr|IV2+VXzSXTMD;Cymn1ym;~?WJSP2qtsI&tHajj-Q5*m z`!)3SwY66n7x$@_F6ostb~{`D_gATz5d)K$P}+fAg^%67zPj4ZBWaX#W5dJ4?f<{s z&VOZNm33vs#l`NcH$S+sG5P6~X=Cy?%cWj&tl)cevRE(r0Oo^aKMR)C*oDj%O_8^ zl)t|>L$~hfDN&|r&z_#1uGMpHhGFu_Nvc|vZ*FdWer;`Z{ulLK1rHCk%h&z*bxYnL zp@HjT{=i+)fleHGpi7=@C_D1WF-wcDsc=?8g))wInee(9}{N^*W^YxtNs;sPh zdUA5R?BXx4uC7iyJ8Q00Y1Yk6sm*M>SyxsBZb~_6{!4hSMd6~Ho150J|GU(C`nHUV zk8-X3=FFX|9lFXS``Q}s>3S>ktG~Q3%)F#hR|^VTj{~pn?XBKf^i(fqhrnskPai*? zoN26X?Us3Y+1dE|zp0k0nU|KFpKo7ZY(H`J>g=sqSL5P;%gMFMU# z*UtROeSU84a{u|~*7G|YI3z8;r#)y~W^&Hni4=<921Z*R-J{qOJZyLayB#qFthe2llg{(t)Ud9JIUPM9FD zb;|PP=}bTF8|-4=ws~{$-m0%>?r+P!p7-v~&Og`L1U7s~V_&l_c6Z&!qvEgbh&?vl zQTzMbG~MVclG{Bet5tq_a&m&=;TeX>GLZ)H`)XdTS;I7Q_wL^p7rV#C#&V16)jT@V z$+9_rRoL29b_<@0Y%RR^g=J^W&rgAi-FT%;R)nvQleI3(xwCtA=DL4BpTFwaUG_FgUtjr(bU_+HSae=T3;3Y5niF+wWhJmvA_6XtwNzygNG{K6xVYG-uwtd8@X{r`S?dV0pz2{x6V9y~}mty%f`+1|3Zw{922tm4?0c$n>XwT)xf!N#>g zJ5D`%mj9B6M8lktQhqGnoPJ(RH|mS&)clZu%XhioKYH}(r22f9ol{n? ze*N`7g4C|wJm%Wv>F8dHK4T%I$gab{6fCTDZckS1K#FRQU2z@9!@z zF1}$R{omZ_3}4Ra``2DwU44AV?05ziog>p5wpM+8wSND|6Kg|_;~O#pOs0Iy%b;d|L~h@Wn1~lWqZZNMXu-P*=GMM zdvjys-(O!h&pCJ}@bcN&=Jx-7JnoaVcH8N7ds}Yy-CdxJHrqTuZ@v8|D6zO%NJ zz7Bi+ob%Du|H@jgWo#+}%ngriU$A#s?}O*h#r^qmPXDvk3SCw5;({V1y>4cnwtV?> zcKMnF%coaYho7BgYF+v&D<^^{CsQnbv70jiF0M|@9i~CKlkRw zM(4k>>t8PoJ~`k1|5WYpGxz`f`~BYj@0ZCxZ(q1@!KG6u@|=D4HJ#E|m+tbUm{opC zDZLfkn0axLtD>SJU!8#H3A?{vE^kUbeXIUT_Wyr>Lsy4g^<5LN@X*D@?u)nHz4A=T zBx8cIt@xXpo84RcD~e)Py-mJr=(y0SRWELjMDw+{<8Ci*Zcd-76)Ll5frO0A8mD;= z7jzXCC8VF8c6QD;9&=d+Cb4@P8dQ6^%=_-}iN?M<6ScsB@%Z!Y@0JD^78UI(eBAc) zwqf$IFYoW){}(!W!2*S;?Pj^RmdxH){XMT#ZF6z+{@Pa}Ki+P?zwiIQ-@(iMOy@YR z-SdlMSLZd`#I=q>scQj96a34-_L)1X`n}RR}a1%Y-X1B zXIpOcT&vPIYZ|t1-+qf@+q$~Ub@BV}ZOslB-JExC&&uBybPfk`}eIv1!)1`c4?voP} zZ(X=D+bnlg{QiA&%eU7VdCxVv+IjifpIgFH!q>%Q-q^6v>Sts;!{#fSQoUcV+pg|A z>&jwx{<|)x)6Jfrn>*XOJWuq{mPP69e6nfh=dGPxe{D_VuG=TBaPG^wxhd=Uvr|)7 z2QBsToo)8^?(XfUDxXQl?Wvfk;yLO6pB*6!FBh#fnP30!=QQ2uMYls@a$Aa@pPQ;5 zfA5!G#qaFYo7z*kzH2?&-^YC0sA`{WZ6yPXj>?CItvNS0Jv%!)+Fw6>-JL%_KPO+F zy28)Hui=Yoo(ZlHp{zXQTXV{ySux;zrOB2SFKd{Mb$JZ z!=xh%9Gm6rYG&BgR{hRjd&y^a*;}3EH%_MPI(6~nWc90avRc>vmc3B(_v`i5;p?yY z${3}bxUkT^e?Onk-_^M`YOB|5Gf?ww zZS~clNX77VF}pgm((d|R-qqNc8`~^tkZ|C|#l`;*KMrz@d(HcG|Np=KuHRmmiMC50 z3|s!Htv-26?(MRNhg#c=v#9HYT~2rUgBpy|eiFyPKPjf11=&>pRONa(CI-+WUE`Lzw(U&FzAbU5KB$?! zKKLUgVn4(8_xH_nB6AOXdU`tgUSipo7Z z(VS;jyK43drd?Joi>~_3$!D3G95QQTo$}qQTl-|K&&@JDT`-kPT(9QepPv>s8>W`M zy|t3rp<4F$y+aHF8wBE+!nS5zjfst2{QKT3ma-=&1i!NX1$8DQ7rFIH?JR!oH^*Y5 zRlnQLHD4p$k9H>?@4Ff4a{b{}qmmZ^uZ7>r*Z-NQ6S?VNGyD3uy-`Q?a~FNR{JTxI zVdb6`b`$58N|@)x%(ts85$3hlD=IiJ`EWb`_Wb*CZ*{gZmd@Ri%^Gm`kFdJmo12@L zckOv4v*yvQt=ZSl&9klk^P}+YyKQ=%|4v^?Ot|~mm1o`Ry?wnO&YIs}6SMPD)i3M! zdlr`-NvQZ5m|W`|@rFM~@>+V!uYj^mnxLZmM8ncY9*>XpmcO}?xLREP_{z(#K0Q4h z8nn?qx{XJ&gulu4=Ke=}tG^qipUX*aTN%83)&76KzrD?tb8??sBCP85Sw3vM&H|08LF)1zAfY8p--=-Kg>=1KWn;v{J!7scJnP${T+AN z%|K?0`|HTVA7=6!zy7G2T%Vx5|Iepxt3M@{{0xlT`85YFtz)~oF4j8t)|OUo@qh1j zzfU_ir}EdAmlEr*O;mR8646Z3UT0hN#bd5isc`OB!PIAuA5S(;_lvgAy}BxNx!>G1 z+1d*iE`0T7cg{_tyCtu0=kdu{1T6Iu{XPG5L5J<(=dW@_C&}5>{5WfVe~I7RUFqlN zP1}1Z`uP=q`@dH{xcAMe4gI}7Q^3=mg_U)w*VI#0yULzwMkW3=&1H%1w*b|LeuBoQ zvNh9;XEQKzbE+rITp6(;;b4<|-H(MSCnuepq`Eq8@2+3#>+kL= zy;wUZ;HdcP*%M5b`_0t~T{R`|k^20aqh6HVtn|{o0Yo6BRmuky=W?uSN z>)p24^!d5Dw|_k|KD}?JZm+EMw!+89`qm`!9J^Zi@zK$zr>BSZbsA~z3;Xx)pQLfx zmU-_ymIwd8<<{{|_IpZhm*e8Dxp%J3 zjoxU#VXAAl*w(zeQF}Q!I6P*X>Hc5O2(DI^7C%1Ldv$gA_m`KKXI)*Tl{G~(*zKs) z)DRwdxh=vQ)O==KSRJl^*X6XIh3tNt2R}~wr~mu&^Z)Pr|4W3^&&;^EGFaVOKHk;m z^~=mlOD^(G{{H0TXM7!;@qm!mj51(gKxn{XEpZpj3JeK3^dNw650+xDBT{K5GjeXm+GpoYaulpA| z|9aIGMo3k-^zpN2X1TYvxb;d&mStzECrH{YO}%-2(L!bSz8kyB?`??o{>^hbv~1Oc zQ}^~(UyZy_wd-rD?(gm0nTyuQtUS9~X-(dvNvhuae!W^Tv@4r@)vNJ4yc4lVM(Jt4W ze1Uz5YhFi$-rQ9RYI{Ha>G<;9ySPOzoUdQD&5d$>xizolH|sCM+*1BtE9-BdT2Ys>qvPS;;A?w}HP@|McXd^0af<1iJFAwiuvp~Osdw?#&1WB5 z)=sr4e-~3S-?gGv`ryr*mj3f>_Evu{OG*1|8}#kyn*(eP2bdVOo2=3!_)k4cIAHX~ z!tPY#s~p>?`+F*jU&l!-GAVs^WnJv*H>3} zmA<~VI{f_U)7oaM1;g3RK;>~)gQ$$mp9cqAI z)ec|gH@E7{48xD#7TnpI4eGh9UH;nbVp+hQyq0;k)z3~(KYwk<-BXvB`(J%${Ac1{ z$NZ$4gzU64Gd}+Pet)&S;+2B}&Dxt7I3haA8DC#q>^{H#Uu7GQWY7|ih10y|+3c)Z z8`N#ZFRC53rsn6TtE)nPzu9~qG(xu~(ztY0aQ!KMc{`g^X}PRA(dLhC?0mE|a#u-a zx0r5;@cNjYlkDsNN#s~q&y5RP8FcgmOO6HC`iHU!*Ze1gn%KX;z1=*Ol~?|KxQ&fX zm$-hO?ca}&kN^Gs{r`hz{!=$EEOc)FU!ZX4>}>P;k4MF?U7l}SJxwQa(~E6l?b394r=D3X$e@t$ z(3dyjmg#JEez_xWIWo4L)86KG`|rEm?{i`;Hx#QXA8US>dt<}Gs;{rKzDUfwczLOJ z_=bdoX1TX~W}Er$&RFR8d}Z+RZS!t!_}p=@nf54ZDQUhbd&TIBX(cmCHe z%knM-{eHbeP+VO6^}i$keYbsDwB_Q&h$)W>lqHs>yxsobwEljRB>1*^vOJKU(fyX9yEA&jD3xes@IO)yN_SBT6y{8@Av!b-`+AkJRejD7^j~rso6F2p{bm@ z`f_RWyd!D3>tl8n(l9xfz z={Ij~PA`9P;ozs`T75M?pHAPlPQh=snQrm3Gg@1I{{C(KsWWHp%m1d_;(9r^x2=8H zU-azE%g2v}o6Q~5)%>Yz zLo=i;3LdQA|Ie!CN5R%M!-_m+21f3WdI^@7#1}R1`}-~Wx9RTlcE59ee|vlF^5Pn= z)4xtNo+_yP{H%Ai@6NivzkYpvoql#!>4gQ3efIIs-n@xfA7^{_$a(w!HK(WPP7AL3 z_QtaCk;~`pTAHi&XdKSd39ioi`RQrkzKc^dgN@S8+}K-PKJ~DiZB@zVXJf{-}EcHr)!0JxgJyVomKPsthrX+w#>_JtrDW9 zc0V38-w@gVC`Eb3>6+l>exV1eo}Zh$?VjJ>>8bOqtG}(u3ab@}-5;~jW)BbR|9=*O3eElh|5d-e zwN*QOU5MhR_51(LGS9zvW~T9C8Ix!CZ*pX%ZJm;6FT2Y>ai7gfrJ{?AT=`|KM4p3- zZ=sw6LG^m`JGtxX>H_zL|NQjSIQ`t3F#X_VKCN7$tAdtxo$`EpYpb+XNye1ZezVPd z=dRZIf2Y1Sy6pP8*t4_EK^>;95;-}!Y4%kgAGKP2T_qa!{Oc0W$?KxG`)$w3$jC@Y zcyM=jdH$Upg-=h3ZcXizx6k`4wr<@znS=jD-P`sBT9v-KvcLX+$jYF|xQ3pCjkcw) zLbh2t95@s$zTuzm_d|O$Z+|~ISzYUrsD9iYr&g}jVQXJqUfy2?>bLvb|1CK&K~bya z=F4_j&cpiq{|E^P2+U@#{`KYMtM7#e8W?kY8X8!c#FQ+nzGVFW_xE_O^m6HKtQ+!= z_sMn&tB39He|5i^oqv-f19(y^>FC|NwxO#+9?8Go|9{`##--pIo=Ko}vbw*T_cWh~ zjQjg+XS0GQ#T3HA)S8q9d?@!KMFQ+xJsb zwWay8IUpJ{F5LZKmv%;C8z-pp=Wb}M{r&CgionNLSBD3lTeX^W-tYZBuUYxw zi@b{WmzVQP3xmDsAZJLLq^1!rrQ{LV=!ht+w{} z_dk5JOZuL9&W!_5$^6~R{pUYBHTAULF0YA7M;ACYzq#`#ukvtp8;|6>dwWlZLCnbC z{r2|u+g{;kXPfV@{G2vLcSd!^`uP3(n$IgTfnB4LvTxr$Q03+q{`&g*@;wvp?XB*Y zGVSW+1hw&)6z1DjhwUoKJbXGlbX5o^CugECBP52-Z@*uc{hV#h!Dja3Yi_Fh&ojxn zQSkU!Z%!gO20oO{G)Qdv`rn}gY8DwR{_7gjcpKp-}*_d=R za&sCh8=GF-o*TccKs|k#{L9y`hj0J!=H}*`SHRKxKzCE}@jh;Gy$C-|Q0Mj-XgKw8 z?yTMA=jU2~zqr`_<_U4akd~d>>3*zzrVjYI6ZswW{yVSA|X|; zFK=#wIyL=rwp~RN&2n!^q^?Qp=Ua&(D1m|M>Ca#;casrs+oC zSORj~8uOcbt3Q26+*z?v#>iz`j;40ll$k~+cbDHZ=$N)HcK0i%piUvxMKQ0I&#yD$ ziFkQ=dHBcfwOj%lKA5qtk*^EzcB@(HBe{C(>LAx!@w`(@@7#$y-S+d9_DrkNCFhg= zefsohhvSx-Z#UC-O_-wS+@>*|i-Y6D48z5V$F$=2{W(2d|KEGhKUd@RyFz>4vWt-Iuw&v6=Pmeg3S(o13l|dTo*1z$f=)N8{tT zy;Z3*CY+mZFaLCte%ziDlhymz_G~SE9cHHQaKOolKjPK-k3KVb9(m-1tjWlFcu94( zu}xLVtc6}vcicC4zdzqNA@}~dLgwSKyGl+P$i2O>@$kf>)Ai%?v=f&4&$qj9?rSWl z%hu9hnmemdrnB~dRpFs$Jg?p?O4A6{dS~u)ZjKrAwOOWyIiJtlKmGVvrkJy5{rdHP zCFjhY%ljBKiYrsoy(#sy)HZ|qe>L0eAx`@FNit>Py4d8cWu>oYNfj1uv^;!y`7+5a zvEJXjpMPvDDW5KFeyUUWu)X)aJ)d5$fBNI&rH%Kt^oDOOOzzvsvaIIkr^-)HK;_K# z?b{#nYW6 zCz6ln{4=q*@gs|Kh8E6@T1*5i!NzkrUk)PvV>AbpWeEGJe<=$@% zqQAHAsK0;3@AfvCV$M!3&ub?&eP@}xy}jMO;6a0#|Jz$zd6~o3Ms1a;SDv~;NZoJE zv{exsLBmitK0(t?&=L;+@X2a_Pq*(sGwtox{jPm78*`tWlMS{G{CdCF{KVmQ{@^7Z ziaFW=3qT{9bLY(Ash?$4`pT~M*PA;#FCX0g`ocoz&(F@@d;>Bt@<7#l+u(*D9}d@- zesy;8$$#ZAzt`~ltEn$_uPpCYm6s2;wyiEYqbf03%~z;UF?3ak?<|v-roLp z&s=3?2_}UE#e=MCm{@%nA8jqG+flkYW~b=Ea5XdtI0L9J4Pfoho0i^Y_o9yd$@7UpaT)zW9u)#Qd61ogLXvPfeA!srayV zhOGxAXD+4R}q@%8xAcC|9R5!b{|+Soi8=*ujuJiR?b{D zMMrYpt}Cz2au12G3^@2@?X`)IXPHi9n${IOjq&xpy&uHaMz{ONZ_~N-M@#*sh_2S} z@BP1uGyjH1_DB7_TQ1mJ|10xI$>})%*x1AIU*5?YZtj}Vaa=EM&kW1rw9-H7-qY6P z-Q9J0nQ!+d?LcFD`~4e}kBjNY*_biD{_ybd8&*&)bsgw*fit~ZRtB|x-?MaU&b})qDIPy^1RiCo|&!db3o9;yQ`hG<@XoqPMx^FaCFr#70(yPEam$LvtryV2z!2IZPd)VS$cEd z+%UAss`;_-<$djNpY6FT#VbF}NV6_I^(87*{B*-o(TpvV?(C~w7L@$zilFMDEty~E zp2*&QzWi-g)!uafifNZh6~25}n7K$fd8$oCg3N|3+(lhcs$ZR?!~J%zF)dp1^6S^v z%dY#*Zae?~togG1^z+kfa{k}SxwSU!dueIM?~NsltNmmzXN&fv+z_sL_It|~ZjWj4x3|w;R{wkL z%dOXDm%Y2Q>~(~c=>BW#c=vCvyJ6t2*D1lirbjaM)01W5QNi|q5~^$~HoW|LJ$`oF zYX0nhF_%o{#Z(+P^xClCfkSbJq-j>jmT9F=ZcSb4*vw{m=}o`=zl^@EgSgVA+{ovqTNC7#K<*52Nv+~zme=koP6hI`LVR8Bhg`ubsgwUsH$?(C6#X;yGr zD6vy$;<43+={tO89-1As&*sn3Et$(+Zq1q*m%ZJg_Di6PlazIsn3jlKdEIZ_SLaK= zuPZ!YWFNKSF6(;U>P3rYS3Wq@#;g2Jck=%`ac0?K$7AMjb8xH(Uf!p7{Ldqgzvew_ zv%}--em-sG76|1OSsb|)t~Az?wO{rj)4ucz08Tak;BUk3f1s`B;fs?Z<))n5#1 ztrMGGmQL3bG`_P-v~F_nuP@8wGnv1op3M^2V3clF`ZCj3)!4MZEZ%!}nPBqQjP1^I ztx~J*F7b4654%-j>iYNfiBi6`O)IPU0=;9O-E$AU^y^#nW$xni*zfOVzM3&j_0azR zeEZwlEtWnC+*k9HXT9;)k_F0vgnD&Je$gr&okPkwxph!VR&uz zmay0Fc|pxF9rsLIorwCkx6^;U^tYcGw|d6X6~WVgF4wYQWt|zf#4GjJ#mVY|>!%u} zDltu~T4*%Qbn3Ay{b}b+_R5)``||6&z3=+sr(FBh*F+j$HZ}gdxq8}bvoxP8^G{zl zuSq){7o;D<5r1C3eoC+O?6~sRV*ixaru=-p{-O8G{LfJv4}Hn)$>VR*)mp#AZ|&mf4e~%&xd^++D8h)St?*i7(=o@6&6}9T}|dQ_noHPd%j>?6dyzlFltsp{r)7 z+11HpCOx^`+nbrpF)RQ7ujjMc{w4FtO8rw_dpPv-+{D#kt^V;F8X82m*Zq2_ZoSD=ipmZ(Lqpd*IT&5Vv=qylUs#O54SrO|Xk{d~(l8*r`F#W}To zi}V@Y$!BkDTy|a3*zJz-y4uWIu?RMux64Y`Zc46X^?uFvXm`Xy|g>Jyf4-Fb?(7UzXMKp-n#z(pLn7B|4FJ7>r$3Y)!({0yQ6h; z`uS()=H3q5;x$F%V#enJ&%nx$k6d?^ye!dO;yL-)`}r4lo9Em}uspXQtLEXM*1q+x z&ds&XzP@g)Zgktf^WbPLEC~7guX;&C>bvmR-BVKkRsD&O-%#|7=e_)CnGIWv9z8nx zaP!mi^7nR6Rr8cNA9&83&a zSF_01F87<8b#2Yf5WP5XvH$4VidXmTl@iX*k(_5~lwu&EbfM<(?w|z?FSnYdY)U6e0O{nvN0|MY%-nz`?4Rc=8cr@Wc_zstVOc{wg?msf~(hI}d9knsGa&_K-yOV^S9fXGY@_;_yJIgf%`8*(d406xUCiZd z(Y!NnXJpO|w5=4{XV+IUYr$9LRr~hrQSuFc>Ge9}%B--hSH5PiFAZ@#&^1vbf0tJ9 zvYyAzMz5#nMqjJjzG!9ea=RsqcIMu@ch7k1^9V+P4Gq_&H@v&k8KQKh>cJM#4O>34 zgeu(LZC>;1+S+9=RlVI}4hC%rWYx9S4CNB-+A;n08Oh79e}48||Np!F<=1z2E3du! z>+8dOtDG5&|E`MPBk`{+e7)POcTZG!%`Z;V70ixU*4usQ~uvMyzXAqzt1M~EAOQCma*@u zOx= zOG9dHqC)hxjy$KW3l^V!{5-vCZ^g!!Tg!T19hX0gzasUep( zg>21oIbpo{UGCMRs+ZUl6D)O9RE`wPkjh@_J-zR##7W)gZCkGX(2-s&{r2{D{pf8u zySyGHuMOcnQt$8l^l$j5W5tyZSC(*3`px{LtbXUabuo{$)9+82yywY@(?u65Z=Q}V zvr&weo#q>pdN+2{t+2?l#X5VU_U(5`o2MUqZo=Dg!3_=9Wj651On7_y^m+T~N4wp3 zO}=ZCpc!A2xa--HqR!Lv3U`S<(E zb{34M6Zz%s)`YH}_IR;=_W8d@Z*&T)=foZfnlpE9>F4k7@87T5_I}^*K3VbVsq5bg zJ-^=NJ^RSi+()~_%}UH{iu{?nAgUbF4dqvsz;eLpLs3(7c^J#sEOvk zDe`L-5*XK8Cd{->x={O)DXd_F=E{u4PiN!{U0>%B$)A)gu|Y4!fcMYxW&BbihW-8h zm3w_l9a8V@@!-9-E_c?7*D6lkN#Ew$$=Ypx$GJ7_tdi+c)|L0`xc`6qlp1{h<15$4 z#~ywTU!V8uTfe=lqi z&(Ht=xZhq(CnCVN#(wLHxxrUX>qDaP*vg0$e6o& zd%ktNX1B8alC=5AsqN)Ub|@WH)ja227{>K|Lqn-k*Ww_VX^$F2)&=eG*cjaXH+ZRNTNy3uJ>iI$HR z{`&Pw`|^>GkClC|Jlk^qtZvP-=u{hH$M?_%TQ;}5HRIcNR;&HerMX8CU)K3vE&r}_GsX>~d&)r!{K zH)BuibNZ+AWWCeBW&g|siuO#XU*+s{VyBayP|?l_*)4Z8o`@-ybL|X2(fq1F=+l%5 z&qKt-KOK$ywmULYbc0@=Ncc96^K%bXuisJlVR7~In>rgmEuAkied!L3qn4WIJQn`T zu+cpFaYI9?#+y%9_iZ>G{_6jkw?R2m4_WFYtmWs9Sbaz@UUzEJL=o<#0rfl1O-xFQ zI511;sEVfAiPQX?5eHuLMAZLHmD#W@$8g5a1B{pZFD>Q%AEv!MvhM4vRDlg!=82z) z|NCpE+BEI-s@k_vKWtW=eR}$EeE2#U!{XoHmTCIWZ?pfqd|%OXGu{I-ONG@BJ-07X zx%6dsd1{x4;M;89xz_1bdn-4;{Ca2S#COH|VP`I0=6~)pw|++?^DO=Ukfx7dZ%aW32$h)F1aCWory=d))9$IR%?vDr!IXe zbXs4R|0UD3by~|?H*|?Ae_c31+5O0mQ@3_UoYV1LJb%W%*uA%|%u<#uj^B}R%1zSP z>-B17Wp}qN>sz%X&0P9Zjf~?DT()viO}JU`|KH!NtE(iJ&AhfY+P-GRf8m=|bJBb_ zCLK+xJiL4T`uu-?e!gX2vuS2aj(Uo^V!gxf*_6 z_<;LoEA{Dp)1?1Tv3`E4`SjD1y`O${)<5mlzFQOf)zL7ptFY+BLG!x%D~d0?xVWs2 z>#F>*SNeX3;q^yP@H*3Ye zt8MyMURYIK$g>Ue-MORX`;&EF-e~I1e-gFfz?apFq*KCQ-`kt&y)!R%jagj5hL_8} zzP-J4d-)NUwe0Kb%@%3SpE-H{uWJtzKixCi|L@o8#OH6KdDb_0P2KfA_2i_drFTB8 zTe|nsQt#WG5zO9yg5}=`zW%jf`h@M5j!xcNa3nqbt!w44_c_%sp1u2@B|GbfjQ8uE zhhyYLw)b)F4}LwLU9F+H=C;z$l@sDQZo2&CSAX)qWzNs_uCEUWR6d{jrB3m@{p39V zr;W#p!W-`Va9FoP{rUZAmusHvc)jVp>f>Jtzpfgcw~Bm~ADP^pv%`7YP37J1r#ttZ z`l$YN&*q}Hsg(!+_ue<}7Q4BtdPYNQg}{bIuCGsPWnb&i?3bJQDeTvmhj*27Zl!Fv zGRt(C^z4vVtD?jI{rxVzp|qW^cZve9y~v@%Sq1xQe(E^;{QmZqnfdM9Fi?Y5o56R6 zf#SC3iw_*o3SA{(HqW9kY5uy(uU`)?G+fJH#r;zI$?4?(KlOfmKH;yL)^RA<^`E`# zyUs<2=Gg3)mnix>@p}CxqkoF}{r2^H-kkg^*#GyRctLV#6Gz1BWv6aA)oDJt?zD|- zH`}gF-ZfG7=a;j6J;-|fUf2JIWqw!L*XYG^L{u0vPYV-1Gt>Cek(--+%@^9&WbCS! z$)7K*?w7%-R{rkJ?lQ|OJN<5N%gs$)V>?Z`>G+Au%l%(pU7a4c^w!qw@9*wb-`bM- z&i(uA*UhV=PQ3p8XKe}(@p8L+frA)gT zTFs3U?(Rr@mGbbCY8itLue8~k?Cb0L%CAcb2u#op*NZmaQyo1mFZtBjv%dB(e@OlP z+^qh5|IXWYj%KH>bzOP-yx7vTE~U#Zjhag5RVEfURlMh)nAqcC>!tGBS4B?EE;eNL zW8-PhzVwI4hqzz(==w49uOF+_6?XUe)!N^B->od@juYaHsJP4|CJ_Gfz|o`ET-V&V z{~<3Yk-fI|!?lm*C9f;(t)g@H{m59SVeK7pjlH->eCF}4l4O@t6O~TpJMoA<+OAT) z{=NSS_ltMcKYieR`A%K`{$#uUC(Y{XpT_=sBeT+OMW4d?y&p5RWolDC{CTk8a{kf( z%5$w>Ghe&6cMg~1fkU^~WnW*n&FI?p`*qUa-(NSM{_p3(>+yEgpB^2!%3iwuM}6(l z|GTyS-Cg&Cf5W`zsV5$XKG&MJUwZFqrM1_^R~xuzd_8FPI@`zE?9r6_6VFb+p7r(M z6Xhe;hg&74Mf{nz=2EJCrA1x2w_p{(VlZ+I9O$^*>JXg{Ssj zHk!WrkJhR>xw4q4kJ2@Nd0mXRZ(Z`|_qxhg*>`ild@nh_ZsNC}(l+)t zwEg5uY^uH2l~1nEnI`+}gw)~Gb@ETbKQ7L8$Xye0THoK_uT>%8VQzYD^PZ)k-GxtQ z|BSnEon8IuZ*jZi1Dm(1*B%X&-}rymjmN6n;zbn~9^6&AEhf|8Wyg=l3nI#vE&Ctr zo_ zeDtEdx&5v@+w&9C8TAhG$6ncgo;h}&eOcwlBX6hfJw4%e+^LQJPx%=)J(GP|V!Out zta0Ms3_0G{4>J8D?$10|)HZ#uXz}N%i}s7`UHT)i%P(ll>Ga{psref7G_m{m%1C{B427Gv2)23di3~ zve%hxs_wb`U*hbq)|aP=YMnKi{771J-=sww=WP7C|Id}7CyMB|M>>T&h1Iuxy%4WcUD02&HhIxLyB&KT?*G6j&!%ttP@C_*$hzxC-(@G= z7Og!{wBI)Gm7(Fs4HDG>Jtd;f-@0P2w;lQ9YyWrkrk!>gZp%cHFHMaO(GE-hz&`I# z=@JWzFqwH8eZF^PD^6FC(jxW;p#eDe?_kj5u4yRY#*t~plYs|Fo z`~T?{?MuF}KZE&M=ghZbliY~|pN@LigrZ_0An z-P2ya)&70_;(hOS{?lb|dDsLu{(2O`!6bICjG2vRL#d$lH`_h#Ga}sMa`^P{B6hI=`!N=a-xs7WmPk7w%US)cvtSXlGx;R0(mMsL^E^}obL%g=TE z7T0F`aU-kXrMIS>$HJz@ev!DuyHn@$zIOi{5h4Dx`mmMyeIYUFYbR=Er#$d}T*fr- zQ-_SERx zEw0y}E&HOikB>Wocj*fK&s!%q2F4zgwzAc^AvWc)Z1u7y7ZNW&kl&WUe9P*?(Uk%$ zI(y#Ev#~%%rAk+pc=g!3o)q2;4$ZdPmw#XT{N$@;(!2POJGScY;@3&M$XjZ*OTn`)ff)0$0SN;+rWu&Mq_CapF$tp>4n06KC7a z-&0_^iaW$TWtGXYmM@>rgXRw!ZWNW5*MGlTo}0SHtyk*kH{NqO#xLT(tUJE{!^L+j zzMIzY|Etw}biMfXRR8q30ux^~>m@zNyO`hpVyEw)x&?EXU!E<0xbkEC+BFlZ7oD(+ z6Zv8MSZ4dmOC{;G6H;pfdd}(`d;Vg(eOs;h-Rh4=HrZ+Tow53VX2Gs$;jY@rK?Z(-P?3gHS%n%n1#yaw_NM_XRSM-W7hlC=&sv#=J$UWt>>Sm zxBklX{d$umr9A_EyZV=CXuEcP__g4Ku4|d5k@rNut|>;oZi~I0Hm5GOF?-!Sx$6XP z?vqJgMQ&2T$G24P|F^!r{@Hy4iTVwTig}_>8%D&-=logz#v&t>G-X!_s8D3`aqE-GOz)U&|F7e&viIyZ=^pzR9jon6L@TEp zQ2TjFJ?;IQ??1{<|9Wt&`{DcQQ~4k6Og^;1?nZh0i+!ObWn$mwN!YIz`|;=CE^cG% zyj6)e_GfH-$r?64e(7rdE>279H@_^~uDidRvvCbS*LKUe^So9zr{5Oe*<`07R}sdy zEBD5OodV6j9+a)tyI(z*_cYJx!)%vlXG<;r@g%nS8dv|7>+HVi|ErdL-nT;0Ra8@} zRwH^EHc3fIiCt4G3_wW3CjX5t<4gMue zl;~A2d$-N8w&1tq>RMy{H=nMG2VI%CXq(9VQ#cQvF2Mn3@+hY3PLLP6VdBBL3#3m+Zf z`zDxw=5S=Z{G7le3t9cex+Ll^7;oP5cV^8Mf4gWkXPLK0FRB;JNUbgS%X)eJ^7oH( zx&6B>^A3g8emJhXX!7P8MV6O1W}J^>efu%WEFpdGsn0G`{&v55)tuB6d|CJIqL|zB z&#hatr~b>r6MGG|?A>t@ltj;ct(MFY*pN4O!y5js_PD9d@1*vfUh%qriu@Q4C zB;w>nxR=gImRfG{zDDwglYR8m&R@S4tgQIDQ)KIs6>@R%KCzMKcy~)(+Tgt8*8&eU z*GC%LPJUkg>(_&>V;|p4Pv5kBpWOGqWz)HUD~0xZ3)re+=(>{#i_6y1|pq z-ahjnZOubt<*V$zS8smzwSLeNnqyTNwd}ms(cR1bCQ8njGw03Px0jdyYPhpP!U9t=n79 z@o?H|rEW-MHfLgsyvBZgp16Pfy@*P)!+(Mg?Xt5tWI8!a{>`q)k~=E@Y%U$xv{Li9 zRsFB&25;g`b_f1nH0`USp<(%3-upLyE@0H3Usv~mf8)dYq+s`rJF^c@E>%mj^PiOy+sekh|8Wf62R+{W=H>_FmVlUX+@7R=R^ZTr1 zb!5D}2zSaeRm03x|8$z4v+sQ;`F1wn!>^8k#&3ci9xqyW@yEN=eSItVXRX@o7xZL; zeAwiJVzCu-?39h4O;F0b@pQGzM5f@mR^P6DJH#5TY+DRkS=aI8y#4=oa0ODd#nn6Tc(V@1U`FPl0&IhOABgKW*0 zDs10mN6N<($GzDR^>O`Wr*Qc@MN5kx6wg2KeBb2$Dc4^$zx^*3{)a!x>}tMyuN1fI z)Srj$>|aq@dtp<3;OSorW=vWBNNe_YuGq>q-yeRvmsBggapT;AcPiWdXk6KD{d>FR z{f|OBCoN#9_U@=-^(0UwD>tYGw-Y^htIiPVLv)QsAu~1 zHShjq{hq$}*Mk$R6Zto={`&R6+Uef6&E*_(ZY`>>D|jmY@y+#T+qr-JTA(@kT(4*F z$=?z-_7WLijvwBTD)`m$W2fesIOD2i58q7n`06-OTjycg)Y|qxpUux$&OE7^ldjSk zB7bFHNXw?=(_(-B#Mc}I)yoGWdZkR?q^$9qYjt$PU0r9TSIzr5E!}3YRrFn2s(9p$4zmYfpEXk>Hse7m8o!hyBzsqye1)JvYZ}%SCVfW%n$h$3&{n`+JVZZuxrtuF7R=#bVdZJ9eI*FGjUme_HIblkby;?)Zk)U95OIJ?!hjH%Uo(AJhNkd|rL?*A&&VKPuO@ z8eL~Ux@}&PyZy%M1vjiizW-TZVQRm#z3{u3W&ZByYwWHI-XA~6#xMQvk~n?+npe#; zjZYsqpb_?C`TQ@8tJ8czojFD`-G~hi;%g_V``cB1dJ^$};e4$|5sijl0rq z6Qi47I&J&Dsr$AriO;P3UR!BDb*0^pka+n$!YWPk{I}*kIJ9@$w66!Brnl_0d+{@2 z@8j2XAO8i$)_%BsRle8qLjKd6KbQaMv#XV?>;BR6_%hGy<|Hph!?i2c9-F*AJ2zHd zq`FS9y8Umk{G60^{LAdO-`X%yX8ZYwYwSmp_rG%6YnfB=FysHCY3KQ~z8=(dJOBFZ zjqDit9J?zC&z2wj^((A3rziwo9I$ zzqeq?uLLPY{@b!4X%UgN{}-)Zb#(LnY4Uy&SJ;pGRQ?S7a%-pPgN*-+R?a?=WPjq< z{u6oirwX;7&f3ctBR5-grCo;B9Lh26d$oTMrn^>9<_SH{&*rr<>I?atn6bLTdm zP9fD-7Z)G@{QUgmWf%WG_DT0xYiD7YGi7q^+vLmly2JgR{d%z0;iJ}-gaYaQ+r7N6 zn@^vg(s8Z&tnJUu>+D`s)z1E!!#mA~j%vg7cYwWGRAMKfLCb=##Z0b6lSIv)3?)9I~E_rU|+4BqRBA)lWDf8_6JSn@z zSJvcCdByzqHtB!o9$0`FJ}Ad7`#96 z`=Yxc+y1eAJ!rK!b$eye9k-p&Cai33``u_5bKZ+r=~c5*ZN!01f$}A#ISNO6B)>AQ z4pIe&LEw+y@Aq%dzb`jk_t(6h75sjD(oa(ovm}2hEjydLZ4LiDE{|M`%bxqs^S*Ab z-n-lF_1U_+mm|Lac_63Xylz*wkAB)}JB_qyyMDab^;PMzO?kvMcKJOfw#$DinWWsD zYkbvq+KYMeB68mLdp2Dy;Jv@Q{NN@#jd}Ohe>`N7P+NI_f!zy9nZtJr4xRq-^WZkK zbqQN@X1jB`_Hj@R^I*S$U9n4TLED7l)-N|jHcxYMl8U~@p3fd? zFz4-$wX@p39@PG~dhyq?-0R{OZS8lwo^|kt%1QU7Lduh*udyFpbIJX^)SYv857$mi ztqu5oInd4>)M7dF$>@67O^yh0-Pg@ZKOE1BAFIvc;Wt>pFW3DtRq*}qV}HB1Nhd0= z>gx%SKcn-6?RIm}uL_AC`yIP{Y^+z!eq+9Ze^tZQuT@)SOYOV4z^>v=)||Cjchdr| zv)BK>yKtF}4G&Y;Oe1gy;U9PQ{=OCb=Y)#(O<<2YvSMMiew->OKB_MrE7+%OzB*^q zDt0XZV-+$`w%O>z!oo>i8TCtqxopSuQ>59!xPSVlW z*lU@NEKXm{d;i0O-cQ%Q9#oZUUA*<0UE}n%zs2uXx!Q}o+xL21*{kNHvY%70^W+^q zzk6^0PP-XrQ#+pai`}esCb$5Qp zE@@-GhecDYc5$xo#$V*eoy7o!|j14)`g2cCY*;vDKr0iw^jUlLPa~R61jE; zp3rrACsMS20=w&xAI*GU^k03CxWggfA17fSz5V>|9i_De-?z#y+Io#W|4;7S{V$ez z|2p{W+1#jv<#rm+LS~c}ErO6LG`zVw^0s7;{f){gAJ3TADqUqSUb)2fTH5K=yIzBR z_t#*a?A5DfQdiiIidbH?Ra^V?pXdKS5328<=Bz)x{9^sJCvEHhY@5BWJ}|b{z*(&J z|Ds#r&1``t_xA2S7$jeJ0+joXYMC=nYq4-P`c(eiH0! z*ym0A>iF@I=iCX?x7l61Zr=M_{Ol_o^_WR|+n09FFZnoC&+gLGWhFZmW7m0$>sKCi zi`-gJURxV5WooSZ&42eVFS45vePZR|oO70|7w)rL!8fP$=i{4-v4yi8YXkmh*4qnC zzP4{(-ktp!*RB;EVte^W?pvwVo7YoHEG54^Ra<|@Btz@`akjtRvtBo6ZaNWJymbA1 zpV{XWv{tU~6n?ul{csyw_mlJI!6Bs_yv)aQuGQB}_jlDE9`o)@_|AWN_Ub2BIX^ks zzx>x*vRbEqzkWZL`!RW*s(EiucKe-=&)xQ4&D!?!i&xF{a-k1(s=jVmYekHsx-YNnxA@iT>_=O_ z>i+eUT$jRj`RVG8UkfTEW7Lm4`?|vL`=X2cS4b!y%@6vcr7j_^o_clu*RPI&QQstz zi>t*nMFQo|Xg_ITG=Z9QNBhaIJs;nA=)KGdkQbT!^ntTsX6~738DI3XZrzce zx$Q^GQa0bSafzGjFGhWR`nCR8-hBJ}76~iYJ8!dh>J(!8{QT@`a8Pi6e}8{{^!9Z- z?axowkKg3$6Zh-ngU3c0dwJ$4G1pCF)J;t&m7L;l=dI{`s;!NWe`+4zwk==1%3^B^ z9=@Cr!(drkU4Qjw=3?uA3sP$X&aA)nwPT<8pSk7dQ*Ye5+xXA*|D{*Wj~*Q>E4Sgf zZg6+;Yfut-b@TZ`Gv;eE(=WaBiKzY1u&+Mw^5+7v$NXLPOC(f}8fex{{JlrE(j9ZU>=iK4=|8V)QUkRsjigsPK=rqliV%JeupKYGJ)FaWL zeq9Wxpm5r=A@#J_X~9f3KA96{ozeC2XBMpHfA=LveDg9J`8mH+9Q{szWWU@isOjFN zvY&JHM|R(@2j}zmO0Ro#(f+HW;r^)8f7wzuFIUu8t9pC#rO}aVKbmLSOf%cPFMc(D zm-p;l_e}SdTCL@Z5c}%*@zv4ifwhZPZcpt~4(zelIOb&-)TJ22Go?TG4(pe@Dj;7^ z*qdwr=KkJdm)Z>rPWhYdn$5c_JwX1CH|v@=AKxgP-hFL>-3q3#<8ux3i(m20TwE;j zn17aDd??rMga|)7vv-r6^X>_+w2N3hanHkKgWF$U8-;2;?lDbnJNW1OJIV8NY^_0~ z6axA!EiEZ0Cmog9Af)bB^X7)3nYT<-z2ek$b`}5LEt1$?_Pz7{bMG!oUxAy)I(_zc zZ&~d6N$}C!hfe1I9+;n-yN-RHe*bg#++*UucGXs-Y}#oT@$}BC z#O;0Zl||vdGmmvkA8GyiXjAe1-_v`T!w&eK{ubyJOt@L*9xJb7axjg% z_SwtV&5LHd`QCo^r}|&PKzW@tN+I5lZ?2O!Ucs*?_UZliM>ie6eT|EJmmit4R%e6L zzWpBi%>9?mPUKpyYj%9wQ_bkqZSNPa;}`pNDo%O6ndw#b%TFe5{q>c>ajjLd8iaYs%~*N-nKFqo~n?!~L-$$cHi&*vXocJTOl z=2`209SN)5@aj_4@qG7P)6ao?n;mldp8Bb8*YED%@$KJI_b^+XC%g7U#@x|Zmm~S- zz>eD|clp1YTK6jc#ZBeq&mCvR+j>h%1>Jw>&NRR6MCSD;@5P^9@h*B8y7SkpJ5|oR z?oCpEf5Q9Ur)$YSU(DQlbp5YWM|VG&k^1R)=cbSTpB9@LrSty$TrvBz_4@u5{9>Y? z)TKW@_>$H9>w%G?d1}?{z6ZHF5AS86*8mdCu++AcSFo!qAh}AsAHPh|3_j&IcS(K7-4E*`m1mnx zy}RqApz@P9H;WFlRsPtpr>qy$CF+RR3SE^Vxj{(PtK`7}Ml)`q4O6+FT#$ddT{J~g zad*w3Zyn};{yts>Zb(1eZ(jW^=dSCTJ3EWnSy?xxelXinIWu>H!1;+F{~W6KOI`Wo zHhii=l|82YMvkWx-;|gvaesire-sP3~6myU;6r5R=>D*Sk8k3jqLn# zB`FhEhp(6VcH+XS(AAZnpH)^@udckb)H~hQ|LiQ&n-9Rgez?{ne40_}sW1Eg|INR< ztJHtK-PX+sv(0jKrq8k}U6t3yC8{M6cW0Jqw%BZ0u+vl`?$>^gol?H+{CxZS1vg(` zUmtz$<&!60o}3i^ebINaQL2}|zP_0qcv-GThLf}NY}4##56-^4y*=MNXG!pKziFGl zf(}Poez=`~`_+W0TA^3CHi&~)8#^^!+LjxAeEz@R?{>fEk^cDk^JU%-HD6u?e)fNU zZtiOC(5I)SUXGit75eJm-`{Uo!ErI6Kq8DSc!`H$(vc3(DO~?Gd}o;)Jb19p_v`EH z=ZnrMxprk-KHew0diVdo-`?If&%bwOie~WoxV<-6!2zK7aQSL6-KaaeO1)<%etmUS zi|u7v#Ll9niP``D{nM(8Jooc3zx@>b__*ymexAD4%+3$f=eThl&os^8XD22q@4ET! z&d$ZvY#Smsr)|3>W0o`HFW2KcJBx3A0$WiSqUuxs=VQCxuO6@RP zo=$(hbN_(@4zIQ2(qea&B%TIGb@Rc42O~G9U9CF2Dt`aJ1C7k#Ya$B&{izhae!~~)-o1u< z_U>IBzJA?N1<_QQn5-`^F1GFMTqPg7qd>9#-=AHHxlK(?GC4OdUk-k1{EeG|NzCCu zRj_W%4ujlVTb`+eEccUT7vEF+dt0LJ`uhL>rtxa|&N4}~W>!dGWLdNQXosNk8sSNs zH*cbegnVh+}f5K{rmNUM~@EmfzB@Gh~RABzP-FlM6+a~M*Y7( z>*Mxv@$$xQNN6mx4!OQAmRJ1#hQ#K-C07?Zvs*vDac6&hyz7=Dox-cHCd4y+Sv&d%+8TR-o!E_-ugn(l0~^y7W9Hw76uA{ZF8 z9alze&6+ZG-=m}5(sA9tUM`=Xqr0i#q0`~*)&Krf_RHA{sd}Z%GtRuUWZ%AhZ$L|l z8ycn-#OyB9O+7WG>{95un4Qz~}GdG_wz*t4L;hoalqcq9^R z{f~Bu?yLcA*Amzuq;S}g!8qkag50*7`<&bPmio=TWssbDZjNR8xjEbP3TyxW{hm|9 zz@pR8FqI+q=BA^c`ZT;3yZ4uE5aj3Qw?51f;La-=Kb~S z*DJP@8^boGoSbc*zv&~Rzy=1UutQ%S9Bh7bbMtFCi7kCDpbZF*b61&w_E1N^Tvht| zT22|neFxs&-yi>W@t(@h-`?H^9dw-K)h(u*RBSwrM>^s8<9>TH{ont7zcCKRoWPWvB?Cz>>Z&pt7ZD!-Ov9Wn`zUJ*M)6@BT_w3=(w|jec_w|pW6~Df` zoL~QMXZ81Y?EG>YtQiD0+~811*t=5BzHU#^(^F!)QJ`#TB%$gx<;Cjt`#|CF*!SzJ ztJ>4dlNlK-M4KAErtL0x==Ap1*2Oht{;BJ=!`E3{TCjhA{VbErHPI^~H>*WUgEP)v z(W);m9wxjGJ~>I%y7JQ!wz_vX{o9+H@9*uE z24~1N+YRok({&gaK+Ugv9_!Yvo5r{zV4>6J=jYdlub(%!Cv;y;rF&G|o{EiY=WYD+ z=g*B#p!~t8eel(-t*f8jIP?76+{?@C>;6=noTPelQ>rnKr*8DNk|iHOX;?3AZ&m3w z$c_%L8F727rYbtK6~BwzTeUT>EqJ+~s`s=r1}eSM=6a{TeSdQ^`L)rF_51&w`o<0} z#5pgli`{*ub9wM`zqZe7qPCv8X3?DWQRDuj&FAfmV{8H!xoFjGB-4G zm7iDj#w_!ZyxYGnet+GQ6B9v2@eISo4vkE0ikh*zN~Y__Z~HHnes0djQbBF+X*!^6 z#L57w#-=jx%Gunwef##Gwf+75UVeObA)r&n8X6dWzulgD``Wcfyiz6!zd?tRu&il$ zKiS_-@M7TRw6hZ?2w3y3Ix@|svgkEy@v}28-@QA>26g|PEt!{HzI=Uq`+D7G`@df% z=S>t+^}4gKb~ZFl?(u+jq~C0sH*cP1&=LW|O(`dZey>ikJd$|0jd#9H<)L{@;DE?) zD|~!xspn+1H1q!O6#)ms>a?P^WK5BK{o~`~GO76niA`qF`|JMR@CC=r>$4BuzWw|0 zxO}$ave?~a7h`LloS4|QQPZ_cL{Cpo%f`~Et8Z??_eV#&Ykqz@JI{8uEu=!b$5Z_L zobPP2wW)Uuzn^^9ae2AFblS3zl|i7h&u1?$e0(f0P3QOG7c6XSo0fw^{o3q@e|~M(vi5!s^rClzvUaREpp}l#sRKny*R8&U!}|~jfsg# zi3pz`x+)~_e%iS?H}BuSUv+b#b9!GmY&3{YakDY_dLn|2->}xpuX;s{Hcv^V#LK?(8bnwuaQLdp}-V7yH`d%f>ao zW=_=zbON=tFZ14aoqi+d=gZ~uZzzKUN?S4G!h*)R7lIc!H1*e0sVpwlo_ow0;E5s)XA-_O}LX>VfH9_(4kxt?GeKncs zHxIRPN3$Cpe&@i>E45_y=WA=Dvwp1zTpYB-V`JuJwK5inUW;?{Y-by#dcAJgnss%R z#`M_jd2_!ut&Q5cY2N31d#k5?-jaFw*q_C}zrWus4i4t9Ll57-fB)o3N`%arDVmd& zng2(|9|;oEi^;G&zb@f9k8q9rOeK)+~8n+?JFuH z6SKgfQ73ZKmseL$A3p5tyR+nF(4!-r$pyyK9?p%hGR?mB<@4v{&5+#0a?a}Gmi+to ztfWI%hn=mn4vaf8%Oq0>R<gOgOf<8~A@ z@^V88xHZP<=Ugn$KRDRTyWR;@^Gw{nqx$~3^*N?4^++Vl%@6x8GCZn`78L}HLE%$%_`0?Q|R!AP4{`~xWdHcGW zYilB9t;=+xx8+<~;<>hX5|{tKfB(MSo@rIO>Y=O7)Jt#p=P^UV%i+$h($%rM%a(dg zE!wcVxDG9yPXCuHNt*r=Bx+-L)OHa+epU=NZ+gE&8ur_t4 zBsaKLP>uN3-F$Mgx_;!Ql+Vx3W?x;EYH@gxYxkS&_m_AINB4ezb+vo307R*Yar(I{ zt@Ga8++6?v@At>YdW*}-KN7KFdPUW@H<{W01eM(++Lr7peSNEbv0m)12>q#=!OIS} z^B0RSf!gzHe!RZ1G1;>CS70io}T!#aN)wxRUsSC*@6zS-s(|M@S*zs-t-w8 zpPikZ{(LW}sk{5^>V$($*Vo5C7hnNL%f~CL!`HX*NPaqJ{XXNSYTzOl?`b-nMJrEE zR+n~LDykiJBQopU9LqNEm48ZJU(>bb=94x%V^iEKWh!S|b>t&EIO#mn%+G)S>FMd$ zkNQqUeACyA-CGqZ{pHxLMrQUmIub%cK^qbr53}0;{Ss`=&Bn@_8NUD4mdwRMiqI(R zS{}A0Vxn1YRP^`$+nV1b#n?>)!`_+Y-^8fV*-&-=d1vNYZ*Q(` zl(G|j@%;I8MQ66xGdHK6es+Ru$IhKMt9EOJt|~}i1c$Bpn-x-aH5Dblqvb7&mXunb zJ9q9{aoYKLfB*gc-M7YVbK2RQy?3vy47S_`E@7_CE)4nktQ)wbFIF%Z1!tA^{1Q9+g-lo@8RLm$|d@S zeNEtEx0{vgqqb(4T*1D`&Bp1yju zR_=@^N4v$N&((i^=KH%m!!-ZiopZPE?k?9aes*TtwA$}?%hmnotx4VIJKOB)n#jx7 z=JZONhkb@cMMZf??wuWm$;W!OIr&^(<_pTld#5CB=T1A?Ex!H#vfX8GH`Vj5sr&ou z=jZ4B2RC;?D!ujx}oSSxUOSLtgF;WM9~pZA`smAaa>yuAE(_x_rnn@V0@;%i&= z{a*F@$jxb+)6akV^5uyKsEr{Y&wOo1;o}_FnK?H%<=)+O^FMdg%X~6dx0+;Ly0SVv|4<8OV45j3|9@JstN3}}+S|v3RlTlkOg?_#fCKyNsEtXk zn^I2l%+`wEx2HMz!I}B?_lq2_CiF^~y7fpD{`l}Pe0^Nu1&|RP?-{dSUt1fwDP?1D z=j{!N&CR}`etMYl+NiBv*P?2FzuhjX6(V7faG+1tx~aL@G60lj_ZTw1{`mN~q*2O- z`qjawrf4o+bNue!>g`ouUtN@XDG3Thp|k@*-`?JyZc+G1WB$cp!Bb(}>V9)h%(LCS z)^WP*eg-y>?VKtJnvak7_kWtW_tVqU_SN6cRNZv#7P~3s`C;$(d)AeoRDMe^I2<^1 zTVlf$HQ!k-GdIpM%gx$(;`DTV>+*Lw+0T-WcHP}o+AYh&ppfwJEpLSXd^_E^Jrz?V zv%kE!cOY4)`Y)-@?7C*|JS(y0u(;OEe7p$(t|yVbm=oVfP5ac}kax_^ImKK-MpsJOfA zZPxvLwa0oS7yE=~URq*V@PJ{rJUARhH%v)9+$MQ!@sUnpdF!$>*Mjup_7s$rqVUS$<`daT^4sbCn zD!g#v!mU|Xjm|`faDmJd*pT$%;$rtU^F7bc&9&Ch=&0p{Diqg?@tA3}wDj1k8yl5> z3qh*uwrlHRvm-P>>kW1bLxt*oy;OhQFjd*Tuc3kAn+C*co}IgP$=TQad2@5~ym|BX z?c2vMZ?|MWIK8syFo0`pMv#7#E0dVS7{J|HR4l#PrA_ zff4zlCI!M=(2YzWI~hR38=$np07?T)#B)K8Mbb+;7vyyYurt7ViQs~~3mRnr1q=hI zNMHa39s}`QMs5_vBy+)6VKIQ60n$r4*8$5lTHuSYz(!${B_b*jda)@6hcMV=uq^3Z zaO@!TlFlU}X2Grkn+#UWBsQCY#Pp072w($;n6JTZMh=7#ki5|nKRB78MJ0YNIM7BT g8mSC)X!=rL&7;Kmwny&^0|Nttr>mdKI;Vst0QU~-(f|Me literal 34011 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 + * { + margin: 0; + } + body { + background-color: white; + } + + diff --git a/Userland/Libraries/LibGfx/PainterSkia.cpp b/Userland/Libraries/LibGfx/PainterSkia.cpp index 2dd2723da2b..03f10765ae3 100644 --- a/Userland/Libraries/LibGfx/PainterSkia.cpp +++ b/Userland/Libraries/LibGfx/PainterSkia.cpp @@ -28,6 +28,33 @@ namespace Gfx { +static SkColorType to_skia_color_type(Gfx::BitmapFormat format) +{ + switch (format) { + case Gfx::BitmapFormat::Invalid: + return kUnknown_SkColorType; + case Gfx::BitmapFormat::BGRA8888: + case Gfx::BitmapFormat::BGRx8888: + return kBGRA_8888_SkColorType; + case Gfx::BitmapFormat::RGBA8888: + return kRGBA_8888_SkColorType; + default: + return kUnknown_SkColorType; + } +} + +static SkAlphaType to_skia_alpha_type(Gfx::AlphaType alpha_type) +{ + switch (alpha_type) { + case AlphaType::Premultiplied: + return kPremul_SkAlphaType; + case AlphaType::Unpremultiplied: + return kUnpremul_SkAlphaType; + default: + VERIFY_NOT_REACHED(); + } +} + struct PainterSkia::Impl { NonnullRefPtr gfx_bitmap; OwnPtr sk_bitmap; @@ -37,7 +64,7 @@ struct PainterSkia::Impl { : gfx_bitmap(move(target_bitmap)) { sk_bitmap = make(); - SkImageInfo info = SkImageInfo::Make(gfx_bitmap->width(), gfx_bitmap->height(), kBGRA_8888_SkColorType, kUnpremul_SkAlphaType); + SkImageInfo info = SkImageInfo::Make(gfx_bitmap->width(), gfx_bitmap->height(), to_skia_color_type(gfx_bitmap->format()), to_skia_alpha_type(gfx_bitmap->alpha_type())); sk_bitmap->installPixels(info, gfx_bitmap->scanline(0), gfx_bitmap->pitch()); sk_canvas = make(*sk_bitmap); @@ -109,25 +136,10 @@ static SkSamplingOptions to_skia_sampling_options(Gfx::ScalingMode scaling_mode) } } -static SkColorType to_skia_color_type(Gfx::BitmapFormat format) -{ - switch (format) { - case Gfx::BitmapFormat::Invalid: - return kUnknown_SkColorType; - case Gfx::BitmapFormat::BGRA8888: - case Gfx::BitmapFormat::BGRx8888: - return kBGRA_8888_SkColorType; - case Gfx::BitmapFormat::RGBA8888: - return kRGBA_8888_SkColorType; - default: - return kUnknown_SkColorType; - } -} - void PainterSkia::draw_bitmap(Gfx::FloatRect const& dst_rect, Gfx::Bitmap const& src_bitmap, Gfx::IntRect const& src_rect, Gfx::ScalingMode scaling_mode, float global_alpha) { SkBitmap sk_bitmap; - SkImageInfo info = SkImageInfo::Make(src_bitmap.width(), src_bitmap.height(), to_skia_color_type(src_bitmap.format()), kUnpremul_SkAlphaType); + SkImageInfo info = SkImageInfo::Make(src_bitmap.width(), src_bitmap.height(), to_skia_color_type(src_bitmap.format()), to_skia_alpha_type(src_bitmap.alpha_type())); sk_bitmap.installPixels(info, const_cast(static_cast(src_bitmap.scanline(0))), src_bitmap.pitch()); SkPaint paint;