From de7054804f57e1933b4daaff43ed4bbb039d2bee Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 17 Dec 2022 23:58:44 +0300 Subject: [PATCH 1/2] Move "Quartz" framework workaround to targets file Now consumers don't have to carry around any workarounds we add to our libraries, as they're automatically applied during build using the `osu.Framework.iOS.Workarounds.targets` file. --- .../TemplateGame.iOS/TemplateGame.iOS.csproj | 8 -------- .../template-flappy/FlappyDon.iOS/FlappyDon.iOS.csproj | 8 -------- .../osu.Framework.iOS.Workarounds.targets | 10 ++++++++++ osu.Framework.iOS/osu.Framework.iOS.csproj | 6 ++---- 4 files changed, 12 insertions(+), 20 deletions(-) create mode 100644 osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets diff --git a/osu.Framework.Templates/templates/template-empty/TemplateGame.iOS/TemplateGame.iOS.csproj b/osu.Framework.Templates/templates/template-empty/TemplateGame.iOS/TemplateGame.iOS.csproj index 92eb62d9d0..3b24e750ed 100644 --- a/osu.Framework.Templates/templates/template-empty/TemplateGame.iOS/TemplateGame.iOS.csproj +++ b/osu.Framework.Templates/templates/template-empty/TemplateGame.iOS/TemplateGame.iOS.csproj @@ -14,12 +14,4 @@ - - - - <_LinkerFrameworks Remove="Quartz" /> - - diff --git a/osu.Framework.Templates/templates/template-flappy/FlappyDon.iOS/FlappyDon.iOS.csproj b/osu.Framework.Templates/templates/template-flappy/FlappyDon.iOS/FlappyDon.iOS.csproj index 129d16f4aa..67d756c95d 100644 --- a/osu.Framework.Templates/templates/template-flappy/FlappyDon.iOS/FlappyDon.iOS.csproj +++ b/osu.Framework.Templates/templates/template-flappy/FlappyDon.iOS/FlappyDon.iOS.csproj @@ -13,12 +13,4 @@ - - - - <_LinkerFrameworks Remove="Quartz" /> - - diff --git a/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets b/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets new file mode 100644 index 0000000000..e5daaa70cd --- /dev/null +++ b/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets @@ -0,0 +1,10 @@ + + + + + <_LinkerFrameworks Remove="Quartz" /> + + + diff --git a/osu.Framework.iOS/osu.Framework.iOS.csproj b/osu.Framework.iOS/osu.Framework.iOS.csproj index 8a23018d30..6bfecd0a44 100644 --- a/osu.Framework.iOS/osu.Framework.iOS.csproj +++ b/osu.Framework.iOS/osu.Framework.iOS.csproj @@ -21,9 +21,7 @@ - - true - runtimes - + + From 12fae90282f48558bd62dd8044d06f259b39b5ae Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 18 Dec 2022 00:08:58 +0300 Subject: [PATCH 2/2] Replace DirectX and SharpGen library assemblies with empty shells on iOS --- osu.Framework.iOS.props | 8 ++++++++ .../osu.Framework.iOS.Workarounds.targets | 8 ++++++++ osu.Framework.iOS/osu.Framework.iOS.csproj | 1 + osu.Framework.iOS/stubs/SharpGen.Runtime.COM.dll | Bin 0 -> 5120 bytes osu.Framework.iOS/stubs/SharpGen.Runtime.dll | Bin 0 -> 5120 bytes osu.Framework.iOS/stubs/Vortice.DXGI.dll | Bin 0 -> 5120 bytes osu.Framework.iOS/stubs/Vortice.Direct3D11.dll | Bin 0 -> 5120 bytes osu.Framework.iOS/stubs/Vortice.DirectX.dll | Bin 0 -> 5120 bytes 8 files changed, 17 insertions(+) create mode 100644 osu.Framework.iOS/stubs/SharpGen.Runtime.COM.dll create mode 100644 osu.Framework.iOS/stubs/SharpGen.Runtime.dll create mode 100644 osu.Framework.iOS/stubs/Vortice.DXGI.dll create mode 100644 osu.Framework.iOS/stubs/Vortice.Direct3D11.dll create mode 100644 osu.Framework.iOS/stubs/Vortice.DirectX.dll diff --git a/osu.Framework.iOS.props b/osu.Framework.iOS.props index 88d7e04374..883a2f87b3 100644 --- a/osu.Framework.iOS.props +++ b/osu.Framework.iOS.props @@ -29,6 +29,14 @@ + + + + + + + diff --git a/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets b/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets index e5daaa70cd..0115b6a5bb 100644 --- a/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets +++ b/osu.Framework.iOS/osu.Framework.iOS.Workarounds.targets @@ -1,4 +1,12 @@ + + + + + + + diff --git a/osu.Framework.iOS/osu.Framework.iOS.csproj b/osu.Framework.iOS/osu.Framework.iOS.csproj index 6bfecd0a44..6c4d00492f 100644 --- a/osu.Framework.iOS/osu.Framework.iOS.csproj +++ b/osu.Framework.iOS/osu.Framework.iOS.csproj @@ -22,6 +22,7 @@ + diff --git a/osu.Framework.iOS/stubs/SharpGen.Runtime.COM.dll b/osu.Framework.iOS/stubs/SharpGen.Runtime.COM.dll new file mode 100644 index 0000000000000000000000000000000000000000..49a7616d3ef97eea6d745f1e044551532cdcc46e GIT binary patch literal 5120 zcmeHLdvFuS8UM~0*+3u=LJD~_XH0nn`z%?OWf=$-HgAlLCDTBe;FGkH&pzF$cPDDm zHZd*vqnV}+69ReAOxuJ`9z)`mkfF&yJJY6}3}Ghils;(w$TX8T(6mVhhDo5mUFjr& zO@_%|?Mznex8Hu>?)TokHJzL9r*TA7iGJ}S(P50dwF&syU>NKvx4t-qo}X~M=CHKx zculllv*nCsrYtor$5q2H9XZBiD{IJ_A$N2|XWl^^4ac|^nIge&07B5RgOBnd9JWm}WtRs3GRFT_dXNeA2scI{n6A7V_v&f17$X-3NC zE278&PeW~Qgzf;sQ&+pPcXbEGe$3zC>zC|6 zIG^)QbWqBV9-1$CDm?U{fHC?=x|Zfbq=&vG{ay0VDdJES_#^@E6O^X~TqP*m1g;49 zsuX~<*NDSav;mS_jXWk3=rr_B1N6`=z=^Z~a4Pu(3<($(aJ7IN1l%N`Dxd~9gK~g3 z(GEZl%_E!sR-w=&vLuD3(>DQcqDKI0>2bh?bO_K-zXn`H5>~cTGvHck2aM3S0ly|- zoc2~!!}C|EayVZ;FkZy#Hc_0s@Z45Ix4P)!PBW3!+3ghRSFOxSW+**b!_m@AY47T! zNX~Xx+9grgwplu+=Q^3ACR9faJIH)2>oDpywlPafYHCbp?YJXKoDLStrc#_VT>0qgF*&JZouAuA5nD%^q7qyJ;k~RMrwQMl0xG zcHGi3TtSK1Zl*JuE_U=VT^$mbUE;eQbz2B$+!@ViH#0d)OZAV*N@r9fSK3p^0M`jU zF-?a>QWCmOuJ7SEx4oDZ8htuy}6^=xGMksa46A5*0)N!8HjPiG zjF&5}~(u*_wOo6+3SJ^ON=0O`pFpyZP{4Qg~kDoEoj`(Ch;beX@9v z9sJ%iGtVqKa%#(MC!Rd|Vei9_t6Od#`1HU#AJqNl>xWLib75re$iwG%pRxaa?&Rw) z{QPL_>?=EG8zbHKZTZ=6-rU`{Wy{F<>J2{~enOFk@BNIRC~l-mfhwl6PQLVv)yajL zUeb)47r#2WJ*zuei!Cu&*0EH*PVUaebS=J?<)Y>wGnT}>{$wB-O!|C@fLHaaGo)z6 z)X1Qgfg~KsxTsaBS}J^tzszG6t+?Tk3Gi^Z04u;n-^OinR_;druy9LveYddJrhwl(I%LKKpyNlfbT zHH|wV@%UIsMs~5;xNg?$)Sj>h`5G6l(s(H%*T zIWS@0(LFB)zrSnwZma73JBMoDJbB{ev;X?&)ZP1jG)Zm_{TOPRh+x@9~|LA{oefqhjKg1~^&)!{oNb2n7M+Vs=9d96=zsU-X zTRI&bPXl@jytm4De2I8=aiq|CA{~)izSOt%r6+D_+s}T%jz_m0)H5kl6u@@uhuHauFC6kCzWL3B^&`bs0 z!>(@bU-0*-MT7sCyLjW7z++8?w-7gXJ;!B^jc)FnDbLy3Zdx6>-l=K^rR}(BF(z(P z&b{~*$hbTVqXquYP$XgO%u!Fh{EN;z2A!ME-;Q^*5jnU|-R4v_0o{lf##X@P)B|ia zUfSz1Uk$h-|LUeAmH)hue`Scr687ZBr3FD;q{}Igr~`-usVZ5Jqv1`-Ak&~EnPSNt z@q&zktAc8SuabjxCT96IQu!zR(Ideo2dgyDQ)5UP5o^5U{+cKToM;G8!aK^OG=2=b z9cUp)%TfkE6EYnnJ}xxd;4ySr*k=j4NeR$oXyv<^u++hr04;{ICPP-g@GnCv#To_j zTk(>0^=5=`IYd$wHgLZNXi(_ZpnbdW$_9m>Tzv0n2KKtq>VQle_Ho}cSY3+EXuUn~ zihHODJ^cOHMY!qEy!arLWNs9G*k!UBNx>Soa~o!1JG<)s zj}}AbI><{2X*??#_{=>^A%^^KtoiVC0b<$+YkcVS1uO_!7;+dg$}1&-T|6tD@R(bu zQ(bXau(+!Qv^C)JwP}&7wO5GxX5nvF!4_U+++Q~be8#JX*Uja*9y{jceyqu`k-^ih!K|KZ8E; P_xb0N@WrP8;|Tm0>J*Ik literal 0 HcmV?d00001 diff --git a/osu.Framework.iOS/stubs/SharpGen.Runtime.dll b/osu.Framework.iOS/stubs/SharpGen.Runtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..2a8421e19b98550bf13c2efdd9dddc82dbdf753c GIT binary patch literal 5120 zcmeHLZEO_B8GhH;#t@);)}v{5RGYLw7gZ9$2eHcA@QAnG=0`4QAYT0tQ~DnvAeJ~MZF zcVI~RCsKZ7j(KM0eP`aUd1rP^*S(L^1R^R&y>^Xg6fG}p0zVjr!Jc;4FQ?H9la9?F zl{OxmA05ygIc-}>TTRKDYMPcS$CzwqOj$SO(B_Dovf@mcI(2e&UUYaZ(MD+ksaML* zdD`Bl1@di@k7zO|RXOUWC1_>THdLbNqF@F=b zQNLn4wg#fGtqq+@RBlj7X@m8O%?t|@1*;!SE^8)gNogZmQ!*4?ACD^vx2=pSC@d4L zoJhpYDlK~#5e=6TZqZ*8>0Bd`B)Hs`T@8v)3HSp3R!*uQ1Goq5g%1$Di?$DTE{wRg zZYCW*V-XiY2-1PM5m#52C$Mo4V+9%fYZq@uvK7CV28jh0=EfN1?s@r zlm*VE2Z5Eeh#VR#Q|LCbC52|umw|KXDd0kS2Dpq40|WFTa0N-2*-lNs4b%>d&{u$8 z5UA0{)fCA(E=wuh8PnBMj3NW7 zonFt(0wL%)EEO}dUCdSEs;dTF?0PKYGU_pRFa8p()t(w{5ntc4ZPUwm0 z1{^AKZ`>6nZW!eG9n`qpg^gqhgXJiS=32H#59w;sv>aF09FLUOspK4Gc7)lxbd5Qb z+drIbBngK36!G*a#XyhaiQEDlzj#jl>!S0W2k-yho&4JwxABjOvljPe?j3zV3NEUzp095{yx`yy@2?zW z&p&ct&iNHb&h;%Fd+zAFJx@NP_O0Ie--GX*t@-zt4*%<&t0SKqdGgBs^UlTh{&Mo? zhmOWBzq)6EITC)X@7dq{ZGV4X-^i7!Ek7Loks=L0`T;>vyhs%TRoKcJ`T7G_Bj@vZ zRTFMp{A%R(jNxW%w#sA~*H(=hIh=_Zy0(F3qt+lZSH*mRL}Q{k;rGWIeQH3REk(PyZ!UFn%-oYYlk!@54%9 zY0J@ZO0qq+p$xcg+F4##m(<;XOiao5M{v8Qo5h_;;n#mgjhh52#Gp!Vb4)6d^w`NA!og^K3@ zje$2-!sAoKQ;T=CI5m@fbz!3D!3@QC{z{bY3rf3%&NM zUq63_{?6S0yt=eH|MuaguI7E2_r@3Rjg;f;Xt(T;VRWgwNhwFOY{tYb%DLA*3mG?t zV7$POEd}`v+vX4rUvFaWMd!N-ozLTM$E|I6%i>=3O0>KI-Cn#fb^zB>H+mg-X>Y=~ z1Gp~t>ZT**7p~@B8RD^oHM#cgydW;p>FeI^L8FGEGX5C8kvK3m&g^ z8#7G2j|{Xf=2;l!%1HSO_@hUHO)h5XpeJu4>2Wc~N8Yc2V(1eM0VTYnEK1?Wu-b(d zg0u{!@v|V)MIvZIvjZMOm4$t_pj#9NO@>y!nh8r?v~kd4c;Cs8H6Z*;(|R#Sf&Aro z$$EOz!nZ6UsR|poUpr|~=+>eAKH-%E3hrN&PP{v%f{!7{bYLI%J&oDL*o@cP4X?O| zdO?p5AB3W;USYpeBBP!ZM98aL_iW7PJH&mo(W;0{(ee+|sUR)}e!P5_RzlWB$Vmz* zd>7L2k$aLv%=q6_i{aT4#IPP#_)%-~y=KsYki)QpJTu~0#do0#9&*bJswu2$F05(+ ztrJ{6HzoFF!!4rRE&SY^w}odF_tVQzKH}NJ^W?_8y*|dJ{;m=G7KTioGZ}d1mPGEu zW$~DOlNu4T>t)=yYsEdQh0PZ9aNCzrD=bb>3pFE-tw0TZA1F;gPV*sORiGdA08oXl zMyzQ9H-Qy?P&vI3$Z5Q^i2Mm61Nq5FL4qOTdTX0_E`3ryk_gDT|1$`Szt2As4W9`8 H7)RiLu&ISD literal 0 HcmV?d00001 diff --git a/osu.Framework.iOS/stubs/Vortice.DXGI.dll b/osu.Framework.iOS/stubs/Vortice.DXGI.dll new file mode 100644 index 0000000000000000000000000000000000000000..86740ec3efe21af1856a8fd0feffd1e28661d53a GIT binary patch literal 5120 zcmeHLdu$ZP8UNOp!#s9fy(0b|E^c7a%ey}P;d;=SEtcMmwC z5F4uS}tr$DgY>DQ!Gg z5$V%xIc=FqOHIi!)i6v)jxyQG7_w%_p^mVeGUH5{JbA)AS9E79(MD+uRlhQLC9myI zG)JB&`G_WfQkJ8xT8vgkZ9*lQD*7ckyE%c|FUkNA^t&fY@N4@)K9&C~wC<3TP%bYb z>foIwqQ^&saDrR56HVe>%!|0B|EZBjOc&G3FkV-*P;uBE2jkFq0C>Vz*j-#?qV0-h zTQLxYZB6KSP=!Hg-O>c>6^rR6CJNSeFu1H~s70lTsJUn;x-yR|3b(C<#!{zDjQv$w#zmb#1k`6oo_S}6$pQDYy&beX7(u}0d zXN0f^d>iI=hiM%;eCy_}?QRR9-Hh=Ee15ZTMlt3ELuni~M%a5*3eXG?KSBi z5A@JNvg!9F3QZ(SQfN9o0Gv%v0q4?lz@;<{4A5_Y%Spn_7ODeopcY`59t7SmFh-A+ zl)>|}R63AL9~dv0NSH^I( z6r-SRvs6^iwlhbKtBx9Uu;bB;!>HTX#VjqMsZpJ^;BF{zLM)m|CON%8%gc#q&aKF6 zG@bP@%hpU|^qMv!VOlBG0aMjS%?h(v#?qW@C$mzTeQOCVrjgK+8B53*tsungn5Ct; zf&#O}Or5FMGnoWG1U1;@9{T28Qk96J9M?|zGDN=E7HJ^z9A?|K2n81jcjA3eB;@wl-*ojS%;ez zze>3!qdOUktu$E1u~fZM?#x7WEw+JWBW6D{Rz`h+L~Wuz;rGXDeQH3xONx|C4fktl zNWxK!i5!*6B=_5U506=-WX2CHHND9+TKB}5Nb*RZW$w25ym8_-EthE0j(!uTXs>42 z{aJj|BpNGH0Us!dmM@AemaBb!UlpKU4(e==YQ!xjx8ov!m7L014f1+su~b&xP%NuP zB5yd8PUDu5W4ek9#g=iPgp4X{y@NA8>p)%;+_?s9-^Q`le<{j zv^AWNY`3K=eU6j1mwCNO&FRZTm6)0G<_(FMrf%OjLW1VLK(GGt@}DzphoY~V`#(Ao zzVu`N*UOey`x-y?&M$phsyhDGc{cpaV)^~|9=^9TvhT~ETs-HQ)>`2|z2Xmtk4;_f zx%TmeE9<_v6nXNV`=8!@b(Lpz-fX8WUOwj3Bf-F)<;O*316_{5~sGrs@U zszW;`z5CAdzkTSz^R%~D>U(d&#pZ6D4ti?IyN5|?@8m~iCu)Shb@jq7z((x7)_$?6p-rr5aw`csp>< zV9fUmJ6L5qnP?$S`HzR!jPCG?EbAUV*hnuPJzRY{0Oa4ui<7{g&t&py_tC~S6J7!vpiQAKNug`~!o82ER z@c)J)31?=Fdg}2T0Pn(E(79{;?YOy#s0R0IzSNY~pxc8N#x`Ipb)naWm-Z%%+kk6w zuWow1^q<#quMF{6!kS#W+7-k_<~c5jLg+}4s*(jc8s3x)G7UEVw5XGrGxmRM}kcbW@(@&Zy_ly=J?=u?pH%m9s}9~l<2vU$B} z;ae7wRD})PuN~AcbZgMQS9oQEf_oUHS**=RD+HM~?Bl+tF}o0(9@lyeTt*6Fy%`p? z2^l_o5Tubf^?+|dN?~m^=KDq}*IADFd}p|C7Frb%DOh|vT?*o$CvJHXG2(wiErP9!5wmJ&_oG(1y?W4ski)QJJQLzr#iQPiec~4BR5`M$eq>bx zXzRh{b5mk3Hrytv>xF+Et}Q%^xPSQ=^AXPuehP9KadS+I{mkucCuH&5$iO3~C{nkV z!DI9&)gneWuDyA83VTxp8%@aPwl1YcSeT#&sz=-!fid)bpwt05&4+wcfqu{fKoz=b zv8E2(1XlP#<@8!0r}5Gt@+64d;F+I-1YN}O_BQdn`L^7V2*|nrGiVZjpWhJ+zEye$ GBk*5Yc4+tj literal 0 HcmV?d00001 diff --git a/osu.Framework.iOS/stubs/Vortice.Direct3D11.dll b/osu.Framework.iOS/stubs/Vortice.Direct3D11.dll new file mode 100644 index 0000000000000000000000000000000000000000..e9ac8ae6cf7f22371cae6873ef82930a673461f5 GIT binary patch literal 5120 zcmeHLdu$ZP8UOaMje+1|NCIt|vIY_`*n4+A?6Y|UA3n^>2II3`pib?*y}9$+d%M@& zJ>sKkFcOy9MvXuLkyMFKe^f!QOgUY3 zLTWo*)it0ya>}+6wwjbR)if!^anz{ zJdnGYcbbV#jtk+0T`jMq(Ar?_m`#khA006bwU^qyE` zqJG78Yz;)ATQfRks9d25r5V~QHZv?t6s&$QxvZI}6G}7D>Ip;9ZQy=I;ktRKlsaSx zn@q&jnppNOBpR7WxJ7?;WW#ESB*Epn>{zP!lz=bbZ{nm2=lqCk z>t@2?Gdd6h9)|hd5$ZyRhi?Ab?)71`F^tdi`Kt{piZL%3N|O;7q3;zbK=*9BiZzU+QMIp1@gqpmnynH-|ew%SJ#*l)@`P_fw13CE84AC+F%b+ zB;&X&sdT1IS5GnuISxxkjZ8ap)tKt4As2Cvrd>we<_>1-ab1lXtOYkjffHuYbRxm& z1zKKCm+sz-+^QR_huMy9nZ;|?n{mrdsxFwSQ8X*Uw6v|enGR+rb?4?1S}ZfJC(^c% zQM^HzIhw7f_yz@LiKv2#Y$ytJuz@oRx+iUnZlZ! zyZN5jC#oATsK70bml87!%3B`NxaQ-LV{rpfuSQZ90cCUlXAN%SyP!E zVfGH>g+tj0;(Q}3FwEsdem|w)>LOk~#m+6OQtA%3hDYaqwZ-{GWFM8tl2krPCaDyi z%1S=0D3v`@1rUU$^08HYyDHC4T{d!v7T`V^A=(dNW&Av1+!+b^`6a{87*p??ZzhAG>&|=3ies{*Q~-#vUAd>dO9ioe%!~ z*7+a2^jh@tulCF{$2z{#`}|M;yuZJZeZ{rjt@2P^L#)DZS-+01m zb+qS}D<8 zgF_b1(oWrUhBElRNmMFQ0pAyimM_w((FbkTht=)B`^mNk`Y+Xd|ICkHS^d$r4Q-n~zWj%` zUR>~}Nv94Uh|L|W3Qa%s*f$^kYxA$4Jh$$j+h>p9q!7J4+JhA7rLZaP}Yxkz+xaX6GzEJ~4ep}P78%I!RS zDz`JY?&`{|bw9jdsgq`(TC_O#0^-Vsd0*ze;*x(UWjTEXc2zei>1dYCn7Bu? z-0KfO$|v1WEb@PjA_=AE6g~B_FFM~%=-dSUcHG*WeV_3$FR_xPz#hCX`haVw6TS6# zX>Y=KJ+L+V>ZVsq-n*84Wr)WT)@0jNTnGxT=^RB21%!bTq^e{?j*d4agG`g+WC{KP zv8oGP6;ua&m0ZlTFv^y(lAqy^9tk?Rn5BcBxQV1gVvdjUzoisKpJ*5;;T>gB50KfF^c!z+VjBR?NW# zM$7P$&F`BMwq@W+Rp`L&8l)kyw~pO+3acDYaQC8Y!ikl}Z45)E1O2$|DaWc!sAhasaC}uGXd8s?3?An(+IS0Z_Xt}z=XBxO#cj=JDj)Hz;in^;DYx_WM4MYh z3_Bo~=TBP1q~O6jlgEAcIMu^F5|B(m&3o)~QT>t<8 literal 0 HcmV?d00001 diff --git a/osu.Framework.iOS/stubs/Vortice.DirectX.dll b/osu.Framework.iOS/stubs/Vortice.DirectX.dll new file mode 100644 index 0000000000000000000000000000000000000000..1afb1d23620482f140bdf82a4e8f94b35baa43ef GIT binary patch literal 5120 zcmeHLdvH|M8UJobLO^*$j zv(n@)Fl`3OvQEQc!TIlbb-OUCP zX#aBj!?T>0uf}M5U;gFB2U@%S(&E>q8doiMJh}NIx2PYR)mK z_0*hjk7mm$%S>2mQjV&IVLEbz$yVBsHA4=xhvcLgW6FdH|F)sA^5;x&Yd4jL-1-D|Iu1F)tWOW3e&9-iwl#rhx!DU&q^t zs1x#iKIWC^`%jd5<@NR*sKn*yR zGQgSiAh4X~lTELeD0Bl^l0s8xJ8&jF4y>Z5fz>n!^wJ67Qj##!PYu8g(V{bhTgf>>|J5QP4spqs~Z%-%MpJEzvV7E16P_OmR&<+*~L0 zL^K@^6}eaKkrLB&D!A>7aUA!cnu zBG{DMKAdc%2!{EDDCkp)aUQ|TCD&iPPh6gU?4h~QDvWI9M?vX6fL5M2n=MdwLkk7*}7k(C(A3bnp_m;N@ ztK~Pe8PBxabWywewDB$fD;MVMu~$Dh>$lI=-ZW)FS9;U29g=T;-Ml$k`{3N?9{prl zAA8}eM`xU0`qI1Ii%viL^81~SJ*{@%(fgn0&i%FKqk9MccJ9)^7Y81@c<{Xa_kaHW z%!@yKIdb9T?zzT5aDVrapPoIqwYz)ZV#QrgWe+P-_Mz*9L@C6n7^b0ptdXxgTs3k& znU^=ujLQ6{oH++&&d*?ituaidmBbYpLy ziDPuXX4riheAgr@6N!M2ltfDxL>J0+ZjZYb&?x(K)~^~di^*-c31B6sa#oYPo>?rJ zkv9yNwOAroD4j~-rjet%iW|k2aiZlY@=H!IgW+7Vm>kK-p&r#rtzm|OFCuKK%Y}ug zS)#>aP>Zjns#iC&cvGXhxiQ-0jyJd)-R_7AqDfaB zA0nSb6FOMRv^5-&OsAzQJ&u#Im$+OB&FM);l&G0>6>JHcrfy$3LXPG>M6_3b;rt&m zM|RG7e#L>0Uu@c$G%I)g`H@T84>vyF{qL&Zoiwsf(&hJ_idT8xTKe@_y|eZ{5`J^r z>nF<2PT#g^=Dr7h^*#6Ydj?NTTeErD=3gAW^=N3(J0JSKdvx;8PknIv+v(ZU5)E%u ze-!DR`quRM2ikWo=-aP-{K4Kyuly$X<`0fvdh*EWT{t0BlU?yIlG=j&xbU}0H{Lwm z{0){b+|((kcnZ*K;Jr4C$EWab?(otP3WN?1{%OyCF3a$0k)i+RH zZTYKtwcNGYnML89n_K_!?JuvMep~+8!_95xeVO-0mcsKW$JydHt$?n#shUAaJ8D{t zi7QlaFW(L!SBGGv#LqNE5)RB5@zl$`=-i{wxjX#rxUq#OfV;I&0;P-5?ZOLV3vd;6 zptlY$?K?4E2V9+db<<0w?_J8hGQ?vEYjW+1ydW;Jz{!&+fQ|&IDp`=D;Z4aP)1Ww+ zV#+-6f((PJf@*`WBA+#Ijl76~(!*o8j1cG+I0hv~k(3p4+*J52rU?2({XhxtD3g-- zF|2l=g&-|WDf~>xbdU^Dq1gtHp~}KOOVCY*uBK*K8mA^|MEsh8QS{xQGyplx zjr>%B9?-o&6}sxNrUBeIR(L?=^m-tt@zNx6#)mxNCm{(5x`^ksZQ?ofdHGZ#Am{$i SpjG^R{;6pET*+rB0{;bd;(%5F literal 0 HcmV?d00001