From 6536d512259aa6b8191704919569b7d1f83ea371 Mon Sep 17 00:00:00 2001 From: 00raq00 <00raq00@gmail.com> Date: Sat, 16 Sep 2017 15:03:22 +0200 Subject: [PATCH] add .netcore 2.0 tester --- .vs/StructsVsObjects/v15/.suo | Bin 92160 -> 90624 bytes .vs/StructsVsObjects/v15/sqlite3/storage.ide | Bin 1904640 -> 2138112 bytes Runner/Program.cs | 2 + Runner/Runner.csproj | 20 +++ StructsVsObjects.sln | 22 ++- StructsVsObjects/Program.cs | 4 +- StructsVsObjects/SampleStruct.cs | 2 +- StructsVsObjects/StructsVsObjects.csproj | 1 + StructsVsObjectsCore/ClassStatic.cs | 142 +++++++++++++++++ StructsVsObjectsCore/Program.cs | 42 +++++ StructsVsObjectsCore/SampleClass.cs | 22 +++ StructsVsObjectsCore/SampleStruct.cs | 22 +++ StructsVsObjectsCore/StructStatic.cs | 143 ++++++++++++++++++ .../StructsVsObjectsCore.csproj | 25 +++ 14 files changed, 440 insertions(+), 7 deletions(-) create mode 100644 StructsVsObjectsCore/ClassStatic.cs create mode 100644 StructsVsObjectsCore/Program.cs create mode 100644 StructsVsObjectsCore/SampleClass.cs create mode 100644 StructsVsObjectsCore/SampleStruct.cs create mode 100644 StructsVsObjectsCore/StructStatic.cs create mode 100644 StructsVsObjectsCore/StructsVsObjectsCore.csproj diff --git a/.vs/StructsVsObjects/v15/.suo b/.vs/StructsVsObjects/v15/.suo index 2a69e40a946fea1c95d975092be808662eeeec3b..d7d02b5ba0971a189f749d8729599fd8649c7152 100644 GIT binary patch delta 7009 zcmeI0dsx&}8pnU{z;GQ9bhyZMluH;FX8;uxbYQ>~5*fTi3Mvv>WXK~!CAo-Q)K=Go z>27(!Rz12%vF5DZvXZ(A5rZw$}48;Kaejb7ng zJj-nbl5C+>+SQee^Z>x)CwBWU4m~(pE$AD0mD!4rYTI@C29xegkU3T<|1lP|Wboe{gk=vv%8L zz&14s<*l1yuA?dJWA;E3JTG>m*yS9uao9+9<8YatNb{Vsad>U8jE%!O9F4>4qnmNO zyIUtBy$4G1+CXK?^S`vr&|9?(4_!gnL%^BLSA7&zUwN)UWl~CzB#GIoTovyoo-Q68 zZz0jC%2)BavJBTQG=Q0HXt-H7! zQbUtPb!eV=Q=Q)6ZSW%AI=9@W($c25l$67IMBUIV)iCH$gKMpJCXcpe4lr06iyq+? z;E=E6jrg*d9i8JPxgpB$2YX!_BQ8Yec~K-}K@M_Zx(hlLI^}2x&xlL?`-#4R1xmu4 z?-Rz}x#oR=X(SpeLd1mZNP0m~(EX&7eM=}x>`4#v-L$*n{VzV4V>++js6E+trAewc z8Zo&JrE0_U4T0!xsLp*anpg`YaU~#%Qbiv{sA$zVt1=-P3haGVeu=~}YhPmfs`N;lb!+#!82e!SO9o8{MHsOLbw1ox2~Ax4;2#5WEczfy3Y(a0Il2qu>~L7aRvCzaIgCA`2^9cWDi+3WtV2l3) z;g7cXWrY6(KiSe(5%LktdUw3z`bur5oUu}~bHDtP+&-Dq;S=QN%Rg^hJgVu`;Nr0D z?_HtH?2N?J;mO0}vvk_bH4bZxMv6_T;l5JrG3jzv+^F7P|MT&er)=)PTI{7XC6rd> z$(8vO7ojT}W13Z6YN{Gv^+d;uM?UlU@|5e3{hy@!D|IZsRuJpEejN4kEP14IMwzvW z+^2ws%Tp$j2VV8O7Wv6KOtm5-rI2)DMM{)!v(xTGW9F)wr7}%w+MN6-H!sIcBel>f z+#UBsgsVZCDb13~C5=U6-{9TQ}Ec-1`(99JE$ zLSCV~^6abbcZe?q&w-U9-6J5L=U7IH-!adFC14fc193H216~9#fwf}Z@QB|0j@SsA z!K@I@k8y~Px1|daI(h;{NEd@iwtTKrf;hZ`Iokhk zuCA_MV{?s{s^Fr{#BYW)RTAFnY4p6gTD^!G60%hNG5dBO({etW67p5<5L#9o{#a=4 zOi)onI|m-+Q)+n>IlBgOIY}~i8TXUQAF)ut-L)JJsYt|`FZm6-^DDF=E=%PL z_0bOP2~(WKWe}Zl`Kl;n+;u}{e7o9DtqTA&E>OM@er=@MQk4JQckF?rdV_9Cx*C2$?b9b)F2eBc*J`7=s z9qX3iAW-f>Vy(qL(%Sr^WcR;A)(Wh?*FcM0ALy*&?UD}c+T1T9(F&{uQ?5B_28g&2 zKfKZ0FG0|Dt>7S=#^jM#AZukg9&7QguK(i675cL$7y5H`OUW>5&{*C#!t_h0)_kdS zG|3|(DN@WRTc+f5YfHT`Ny+E!fqLVDxmyu2gYFI<8}U!zb+8lc0=oel>=j0c!j?2~=tu~1@`eA*0&zT5 zV=nlrMX~klcxS2-#_E2*tg?4g;&z2dJT%`48&Vtz4i~R%SV?^Zy&5d5OE65NguEGZ7ekuxnK9PV6%N^sm_>&!*{ys$HBy|J(P&QC z6bQv5wPv4M5AR>B!{0^BDx70(J<;hcqSptyR|Z(Ohrzl%#MCX7sZSIF2gMwlX`M)`gLCQ^yaUO&u3$ zT~Bgb9!U#DjKT*FkQ(SY+zw}mXp(KKPL9TY_320L_}uW355_BCdfJ+Maj-uN}(WmW(+NoTeWn?Z#q6&N~A}m1Zfn) zholNzELO>H=*Z7~I(*E2tci<9EKj5XvObd38QnkPxTWqg`^<6PY17q4!;WLVEkV*t zZ};eWlW?qr$Zf?GVqC;Tm&mnx2*q#fRO>urEbx zxL&jbYeYworXi@cA$Sg@i=*K>$h4xO+(rI$2t|wc!sFzjnG`3A(xNGY^W~Ndn!nCK zRuh|Fn$a%&OAaD)P6DyCKPwo;m4bq4y2=8B&1=~;QL zJnRA5E9Pa-ae`iXZW--GWU1_1O3%6{U<*~Dkdie_mOG|WpuB7fMN*wOJqaYvn>{w?{dSI{yGo`^C&BQ#+#tX{YI*)%T ziUv2PkepaXdGhyD$wO`{p*C7`qlz#z+tZ=hC{Y_0g4WoPaO@#}%lcD~9rLEr8zlCm z`p7Nzc=`>&Hv(>VC5^bjq4&TYRQ4Nf` z*+^X8Szhw-!^f*q+rPfBQ@P@RbvUTTLcFMj)BjFL46bNkF> zyvqtF!?Z)WaI)Mo3UhPMWb#e=DJ+CWzu36P^W6%A(0t2%O4YU^|youaKeTBoHBI#R3jKX)H2Nr*{^ z9cS8;`S!fe`OkOG|DQ+hz$w+h8P$WOSt%UHDG=XWym%2kZVEzws4hpLeQ;mv(L0LX z1S6&l7|3SzX2o%ie4(h(NSLBRkjEF!B?d*3>Q;=bB%7vGC3ATgEKJCo`T$1U8vH@0 zCZNo2pNb*YT{`+%h$I9?FYZTw4k8V~@|nxVF!N_c{S5S3V>6<0mX{n2{{Ve0A{Q|o z!P>}UJ?`#WsM?MR*4=eExg{7_j3`AcL6jkuBFYg#K5uq4`mEKMTaNJ>L@mOzyRJCn zHVmvr+>U5Mti@K1>oBk$u>o-hq7BiG=sr@*YV77~j4&E>7-qD`@)+$(1k2lx{xt|jJIiO(F@GBRjP_K-Oaz;8Mmw95 zOa!AnI!&1u8Sku8%;kKKc{gl9VediQ8y&%q(BFpmaWu|Gl?Y;(U#NQsGap9mLp*}` zDS~v(_vl#3Ut;74B36r>oo^tzlykwffNBua^<-1pjT)v~1&Em5kn?G7a!PF=fvFD! zGabpC1v44_u>x>E>B;Pe`^e{+wHn4fTiUTq5}5ARFnwT?5lbw60wV)#iqQR6#yKCy z`R{Rz(-45|p&rBiaJW!{WlXEwh&n_)f)Ut={tCp(Xq=_p5)H3H--Ae0LYZ{3MU_n+ z;@1W99OR_hs5*{?o*=L1-WWQSTMBzCAWXw9D5v2H=mi_y<$^l8^9GnkpRNRbQ0LUJ z<;*Nmj7bvE4XC}CkftL4(rtz&(vwv~PG%U>SbvxZasxS)fl5^7*38F* ze3lricfJfYEUT0ZEOlzG#f*iQWg6WYX5pBnjMoU5bK1JhVGBe6Efd6tR`?V>R; zHE@m0?`2CcC{-#KB@|MdFml#IHcM5S91PA$$Rp>a*I1`}Euc(dB%>R=xB>vCr62n0 z^XHn)C7(6^x^Qjfj`#OwLpND>(oNoJ%Oii^pbgGK1673OCu4!6$_qs9o}89zih9i(A8Jkyn3wK1ZX4oVU4&(=8}Q*AKU5sCuNz>Jb$O>97rBgG{p&fuFp- zVRnYF^XwO2o*Vp2^^Hf@$l}t?Bv*vH5&zm=g5|Vc?+J#yk`*4 zBA7Y*Ir?)EFCY#f4kMmFRA&M5!j{(1z}Ne}BWwMX{txQIC8uQTkSbdT>=<2W?%SXU znsCL9qMuLc-%$qLcSUCV)uC4Kfk`KFc8thJQ9{Q0W9UDQ*pIj}uOZC6j90Sp_FcQX z4hGAdQM-i(dwhl~P$rQ=fvP~ZDN&f{)sW9lKTq_h_Y56DS1Q?h?8JCm!&!b_K{D^r zhhBYJOdmX#4qKt$qtXlW@Htwjcd!D5zrV~gvO?>q?3 z5(EC-ZIcWZhr@2+D+G&+7mQX5Z?%~Wyxs0FTP+n1qs!>%>#gtU=xFKoM7$!OzpJ}* zL$9yI13hGF{>&BrKzENX;J?$~*}S0z1D@_kc`UZJ+uM#6dVBA-i4Kb(*d*TI5^TIs z;ShOA5^cOeMCpqSW{a`9CsZ&4D?fI3OVA zfRfIg3tI=b=HVH8uL#@IQeW?Iki2(iyt--dUK$pm5Rbn~JbdV4ID!We0FSJ1%@P=J zkBpk1BJ%03%yf?H$F;x?Xw1)`&y>J*Qny4`}M*5L0NyiRzrP7j6)F(+2Shu3qaBmp_K8DpJTDi6`gt>u2?ft zbDOwjaw$|L^jS-J_7^1WLbmQf3U163>@g#OZYLQn>C&Ih=sR*nk4K!Q*zw zfsFn82Nl^Rn|>z#YRB29U(EWL9hUbxVP8hyo>jizpSb(cp45NXp8U-s`4ml$I$=*n z<RtOcm(`c~sLb2%Lt;M)8I-N$*;j&om7OA+ew?W?dXoVMY(h~N?D@Zj= z%<*rKFOOY5B@>XAdtvTGM2pHA@CMfVA{)3@^x+2X#SOeg@bW^dPu{@2mv7*w$0T2J zoWP08=WXw5Yw@*t{r+*BFUBUGOB0*l35zES<{vM6W1QWq7tb%V7n$R6&^I=v)qm@` z@e2A8JvMr~x{7?A9j)uv;<2&9R_t&V8&Uft3+kazY~!tV$;cZe(P$7{lGEle_HB%w zX7Ru)JD&Xx`HAEh41K+&4V`U0f%W~J9c57k_OJBUMvku7qd~AsHoIivZDxxJ52~&T z-fDKZc(ci55(L36+C`zSckM*FWIaX>(b!M_*g85H)2OREs`vO?y8WJZZ}<8hkH530 z+t)(of8GY_S>pdc9`ByGAM&c&o{1 zbZ>!1ZD{e7~@5P2N%&2CKXjLbyb(1PJo-X2d^Y!Hip<+_5OrtOT z@oxwzoSkoIj9lhSqSb3Kt?}`qw^ibe#x=!!^BSLkir_N{t)e8gm<@gG?&q3}%bz@w zE8hLauf!>~xZbn7-%|O99LQfZMKl=68~O9d^$JbDb3(d)RjNKMvdhaxLM>l#SI{4N zftQ!5Cc5n>Bqc?YQ1*iUk?-GEZ#~9lJk&`Mb7Nxy3))B|DqbXQ>Sbw6mz^?FqB@c&kC*-HE#eBpt1-ZyE1hFJ1C2i3byphRrAMHN9f7nCcBG3B ztXdvzUW9{7+q7q-Qn{m*lKHqT$_D8H4-&%(nb?^#y+N)Q85f$a<@oM6@?l0C-sRAT z$sy-nxh?jDxoFH)$z%C9NsLE^$*tF}NhEA2g&>sD(%9XC9~_28)(zSA&Kq=IH3@)o?_` zy64DTi&4d%krZ^Z7aHh1FWjo_^m`g23x{0`g4gO6!`O!*W19?q?(RYh7CP|14+jJaYru_U-$B|L^;Gub;@A?>y(3 zGiT16^K9ptZ3pVM9p0|*Ewu87YMK$gs%X5CKlJXE-%A8X#($=1n*K_2G;h5be<=Pl z`~0f|CH5NZ@Y}j*RT0;v6&Y<5S@*cpFR|w zI9@lRvk&DT4(f*%PX07x0o=TQ)S>yaf84fTeqs)iy_EQS;@!lb62D43pLim1f8t=` zmc(}wS0;8Qwj?SOs}oBTa}Et!*)_2mXkSe4*}H99QyVyZfessH!Qu1i%Z>wjE*w5b zhYhuG_y;=N))5Y$O=pg6+t#=k4v*5|j*H;%NV?%DRGS8ePtak*u;znR3)h##-hp-* zLDjAWiJ6HZiHgLx5n0Gf%x|Lwebz{U&S}a-;6Jg?}_(|50Bp* zKRrG%UKYPIk&53Je=&X}Q6E2^$WJ^T|3|_~^iDh!dnfi$JQVvf-ZkE?Isfp7hgO`w zJ6f-QnBH@6+qQ-w_#F6f1sn$Gu(1jbLwp#6Lo0p7;ceTtb$~-Zp-tz&J$#YA48VqB zIQ)ta;U*0q9cBzT)akIP2N3)ty$gCQ1ASwd>D>pn)op%L0x28RZ6+qSb12>yo-8#chJ&0;a`UD34bqq zO?XGRCR`RS4NnO74(Ery2$clO1K+g{```3O%@W^Y;}ZS5@T$4LJYNr^1bzccN=B9p z9ARFQ@9SyQD`dpzfhEP})d)Gr$blup%)L~rc=Rx+HDWl_x`Id)Fce8Hmk4k#HZK#% za9}*l%t!@KvieQyrBFR_DH$?);PBBS z;ct|=A&Zoh3@aHpWVm@jTVG$e1)wP@8HzVGdZ<|^F}QlkkRfJ`s5x}_z#*f|YDoom zRy=B?S;?J7+=h&*A2`fBPf!gRfxJeV>*KzzcunjiXhKEI*O_~9Gz%&2mwxcoa14EK#YLI(eByps_>DGr6h7 zc-av{%_Y=Se45zQ8AQ&{b~ruBZ2}oKx*i*HDRlr74Z*<#ow-_IC8Gc<8Evj~vEtD~ z_(7CXlc{d;=n`o1JePm*Xt>W}bFM%}!Sfqp&dDMh;F*lVM>SjU9tHP>kLvU+85H66 zhMA{HWEc*PS>pPmu%Bl}d`Sc7hYTEIPUpUWHv#)%kbT2z)^L08F>9$k`vdDIFo$XR z+U=Tld!k*uPi%a2ZseSBb?A!V9f8NKcP!K2-5l>*W?ZOWX7@X8)x^^q%pGSMV;9wy z*G#P_vu`v*9qgl@TK(lNr{&+Zkz zc3-b>z|fC+QQOYDAso`5-1o7y#4dh4vD41GCFD1ZSxk2LV0b*jyA9(sFS3JPBK`Di zGbY%t+#TL!7-N9d>$d)}^&C@-PyBOYkG=16>m#$$+;O&j{y(i! zKC$xc#Fd6I%`Q75P;3`}Z1qI=3Tlwu<|}Ko?eO@PVN9~OU7kwXhyR-R9babhJpsK4 zdo)iUph16@#O6jfMs|k38@eZWZ{X+F!~Q4C7k%#-UmET70mh$UDIa7nEebqiAKw~C z?)zEz_bvSf1^%Ghc~1qC_O@=}C+)qTTb7|eWtY5|7-^R#!clvF_wZeY{2c2a$hwhu+h2ZVSxshf0RDn4W^w3?L?V%=!YP2%=Ttbor;o z(okb*xUn?SSQ>3Cjs3JVZkGB|+O>AzK)i3BZfn=-smRsQ4v~WJ=i%$^i3j3K{b|G8 z?zgY{O>B_8_o&r*RLSxMbv2t-*VQhrowsUzIUG!>swqDqIB0ckbxqa!yqc|MdXvjS zFKPZT+1);J)CyR6mFJr2Ir5yH?wxFJkzjh$r*2+6CYG^a?*6z7%Wv7%eOxV)ye zqN*})HGo5@#+vfVI_E61p;|`XM!R%ChYoh}*jNhhczVm;AI59e6ztbh+G%?5u3%x{ z%0Rxg)BiAM6Z^Kd5M1p{o$2ndJ^7DTf0-AD&xPTUBSOt zAB5~IYdF->^Y%~hr{|>YN&DJ%wp>; zuUX!5cNJw`$zfHwY%)suFZGr&TYAj7(}HNbzw|6PAS^Y7-j z&2r;u<2)m-zo^gB+iUk~JMD=Rlby^(>BggWx9Q2AErH3&P6qSeG%%Z|TPIMJV;V(tjo z`YDCm?V~RQ$La6euiYJ(VBgif@KXE023X8KAfN?+1wWcQNb9cOteGE}*P4?O-%qSc zMB~4VkB{9K8y5Xhv{&Q?-%s_Mef=Xd!taH@9i9|=Cv;_~U-0JOyufFH9|UGuA6wtH zruskdU+wo94;h1C2>0}-6Xy1=_T5hv4ut-n_;9#G^To-oS0{T%%-tX#nsn^Rax*Sbrq{&9yiB3@ZE*oEOX*nW_qMk_wK?jc|`+@rc_mLLCSL$nCaf`xq{{| zHv}zn>eJ8<* z2;ue0#P#g_d&6zp;Y8rJd}`WnZjTVZGh6ec#j9%7`sGv0S8ZCmyt2G*H7sXk)zw1= z6`y!fn^ap{zH!xtEwd`mt-|Y{yT(kxOZIZ zK0$a-kCvwT^V_jG7hhmqlneEz(H=0jq#kp8t^~x-m zX{PfX9w?_+<{8<+3T*S9E9~K)Kg~?@aBJ_(3d==*Ewp#PSh%$DSm95PbuuRwMJ-w_ zUQP^(FNs|c-5uE%{$Ai=>saU|Yfk9O;E|SYM-%-)p1d=C!gm>_6~k<5Io2z6w{C`3 zY2)p@*OJ{~!P0MT>+7%Qj8#~~^jGctvr<=r@lYFxw0+Tx_#1oP(}gobSSx2v_P-B= zSD?h1w5uNp^tFp#3f|GOuYc;iQ|iszv;ysBEpdMQSbSdW7qR})YomVcW_^_Yd*dEs zm3g+A@E!Km7+(Z#3&gEWmge8(pK5*(-4mS<`7qKPnG}8>EEQuyZ-+lx~;k0 znTzbh7p6w5(NLdzVr9U*Bo`Y^BgCIR!%WkhJ;wg(-f$bs=;e%pG4}PzypUm3U`H<8 z_k5vg&$>6<$uRobH@;9f-kvow8MlnJbIo*T95iF>y)P90zzj|V0Tqga?Be;UfW7gK zc+4<+;qE?Vh-IIAAeK_3JGS)aR?jRe0l>MC*sfbkw;K-1j zK58w(3cc+~zYI^Xf7dsaXaDW&)UW)l7BGH`PHlysc)dF(U`{^asv0o&oCwFoIAHER z;VJbfcb)LXm};0ie!4Pc=K1<--?szRsd+)8yMCp9s`hT|h zVe!W$+IL1~Y;(G>7?!`g3u)y-%2RVGu~!4jGGj~)R#4`UT|rywYf{_KHqBeKk+%P6 zsurcFTl8xERNc~^)ULB9y_4!}fBAlDzkT*QsV7j zD8zZsrYyVrU&4dzyq8i|OZ#V2AB5Y@((crP4+Sp|E=iOn2E;#!KOEmi_ft1uJJ;LSeUMsb4b``5{#)(f@ze-I-)fIPp6ZYaycf7P zup=-xkhI>g?y|O8)2uxIOa8I`fIo26q_%xBo73n6*w)e1uBy2`Xz4>=|2)69_66$+ zGe9puG1;1n{n(?=uG6#B&4on0_t`Vfa;WD3H45U^JnHom@c#bK7A`e_w;!mMgX&DY z_uwcV&?nO)%X{x>#Cz~pGlu(AOUi&64A7cI)F=?*e1T6Id2#z-q`(vhuXrz=VC`3-g8k3iQb`{W*j3+y>Q84+CjJ1c!H+*n5$nXQKv_K~ubrLuNZ7LQ zS??H4?3xd)B#NqMpjExs(DAEC{mi4`LM9x@gd^9faz85Db)Pct`tQSak7Td=;mc6@ zSO4I1555FkZ(FY_wqZt3ucNE%{UZ==dOxL3T69u>Jj>`xxO2TYTU7Na^63qK#eIb0bY9X3NpLf;9Mhl+#$2%HvZZymFKXkB1UvZDUy{5SbG`bYVF z<`bZ2tucOXG#T@a&iXt0A^lR&w%Td0q8*Wb%>{>(9R{-Vq|m3WygjIMX=fMirfq+M zengMU&dx62C!o38x(>}N%GK#Y?j0zrvsbO}(A;&EIve4$*>Z@P6+Po{59R6euguy^NesVZz z(35PNQ_klyOd@iHG#t{seA+p<0+n2N#lksH zz0ZT809Lo(HEvph>lfbcL5K~&AK&)2p4=Lkr;J^D?IVNpaLy{|yL}L`+}6R=cES{4 z>7$3W>-x;Y3ohNX>sbA-Z(4A?^yfeCbm-H5ds;p`H7}w2(z~|V14rf+qz(Z4Zi!3h z;N|eaG^@)k0*dAvFIfgN|8YCfA1J$=q+u06(fsAbmG<0t=b`qWX^q=d)-kouS>Jf%|@6Vp9CI_}ti+vD;(&Vwc4(j-3}fGd3eOG}bMa06*xv z(dWSfIy!Psq%!>H@S5AaF1}Cupas#)EwFzS{;f7KMB4byfnBb@W;TRz=}X= zU~Hg2NFRr-JFErPB>&s~r~McC*ZLFY7a%*A`(E)q?i)VMH`Lf~T&{njzp0n%6SRZS z9_JU|W%{%p;0#0;9eNwnkzGCz`8qjkELw)paxyg;-(?6=a1y2Scj-Xd+aYyihQh=y z&8PKrn4-Tdou8@CB_)}lFp;^`r5%PoQJ}pfhjvxL#YhA{XeIdy)4t3_KooJV4T|x6 z;I&ndp(hW>w&akJQrx%Wg?KNDA>NBGvpJU#<)36Ca{=)rPbYa&7iBhq>^qpQJn}J7 znJVA{27Ay4CVlN4Wi3znnM%8z=_e#pK9L-etw60ml@)?kG9qJmzOsx}23`JDFMG(?&}RrE3^HGjk5`A4&X4 zd+1W{o=jxUc3)d^>c=z7-PaR+`ti(J0sxeD*YOAe0f zXl4nG8Rg**ruEEXc)|hICNztcBDg3A>`Myol*~f70iJF;oxrpO6&K`IWF>t;W`4G7 z*-X~mH$8KPy)u~xsx~>v>hm+D+3s{=0^*r@c*|}~Kq502Z%_dk6OhQvaS@6MNMvRU z1VaMyGpD<(RY*W0bDE$UK5%gf^ye%AVN5_gGt<33#sow%Gq5}H`p})B%ygfYFV@6TE5ZLFc~^f8YRvNoSm5jgcAfIo6ZCCGZW!N zUw1rpOSQ>N@M-<|ZOAI3^E2Zm9Vn?iv*%*rXSA?!t(KS`uZ!ImeJgNlU{&C?@O%C; z{hf9oZ4V!Pc$iLmc>%y@MwrpHgwP9gRc{y6X$2V*~a6X=}k1dPz3pPwUP(vk; zYpV0y*6-0bd5cLg2NCA)^OvO`DP48Soj-beU94v6d!0H?dbj1u?#aG}b;*HhKR8Ou z9N*yl|L7`4$;gvj#@enoKk#5jJKZzcja-a=dalB^IGBBl^Ff4ge2XYr<1zXW7YKZs z!1Ktrc+L!f9N!`Y1!jGVqtr3_79m2Aa6HBz`Wo@K5dNG?LX2Scl6Y>?fsI~|?6qar z1a&1%HbR8sxN+_O;gmmw@~8vn`IJYt&o|LFR2``Fr#I2_=1>5#c#t1I(SG8L(KGsQ z_{}}V8`s?Z$c`(||M?jc{(hysw|nv|9jv20l1cmFxp}kgkv)*j&!uwo{}tBiFMF;gV(@6JjQn7wXuB=U`u?F zKOW=1$Og|L4g8Ye&~BWZ`yTDsbfD_%Jl$5u6ZI_&QTx58tS&T0JIMv7V*OUN*yj$~ z5jbcE_dFe%f~~`WioNdi2=L+WB*+$-6m!0~e}?kqFL1UC0ZxZ zbQ*dz^sUfJYpd~bBp7))ToE1?>>ga=`7VVP&JSpZs&GgNN3tgk&+A}EUv>;dTbX2+dtW=Zw1zhGtq%L0 zQ|*FW;3NhoG;MP8wovojavk4OwsRWV@MYJ!EosPa4J8=bEvVwHA#jJl(`w#P#usl0 zddoX6;VSpKTy|dE8tTDKbUW*t%x(>xnaOIGZ$o>ArUejC_4P9tzW!-ZU6M>$tv&jFdh*5o1$r*Nh3J?3x$c^0{3fgNX39p!DH?rZ>C z3*HiSU&s1bn!vYIL|tR_Y4<;=s|NRgyT<#rKH8$>c16Q^}2Rv^M_^a&_&YqQE(!R;Aendk0zcc z^jQQU#g)&YzXE4)Jl~)ug-hKkji>Q#FUwY0@q1u8GFyD`ui>O_XN#9S3uo1ECYGSN zVYl({C9lt)pu!IK3JsuL0Y&rM?25U;7fI^(XZZ~VN2A^#sM!Ijug_9+{R{BBDO)`L z2e=~|A9VRJGl!WGuRZt);5IEwyZ0R^o}MjEcoUpP?e0__r5j%WMmQ9)V$~aPkqfhw zM;?ZX-=iXT+$_G!(k#VY0l1AN*<$ersU(eaY*gcLrXKAwXdJ>&O}56wH{lW(CkZbm z-3d4pu_GUFp+=tO^@-U^gI|MY&de6?Y5^W+xD^`CVIKTi;(e`n0NT}d13&(q%2-Tp z6}l!*VfLDW2z%LHeG7UB*9WZI^?v9ea_|ssALh-I5}rTuV>nN*6rE4;d7ggo{2B11 z907wUIxqz<9Y}G*A)ru8A5t``iMKv`hl5^+_QPC-)W`k`$4gf8y)>#tXK0qR{$4o! z(P|?7>V4>^OR}d1V^Pg$c%7Y9)DoD33s8UtzjvdW-_N5uDe#jkKs{zz09z!fgbQhfL}G(Di4rbmE!VfNG{ zxM{syR93V6)GWo|KLbT3TTH+s)K|I{8kG3+69MrO1YToz^sVPMEzR;d0xO2TEnB?u zT_`H~g1Yb`uE2s8_REByz;FPGssObsW29kQ$5V4>p2RnQt0T=C-2*#f_r;e6-b9>y3|jPQ@wDy6ia2VV-eD&VQtG|`$)kFtWq$< ztQ{BtFwh&Mi3*&GBTyzOLQX*12d!WB>CdFV?|!1wWaC2pa3DF;Gf93pRoPpte-}nr z3r~`JKZV;}o;~%|D^T2+Egmr<$>!hku)pekIQ3&XMMFKKCi@v#>cKh;^|9IF6Q4na zyR*fw9)jY3g!3Ui}SRkGO_oN9zGhkY`7lJDroAjy$-TMi+g6ZT; z=2)4ne%Ei|InCHWq+P?%oc-crqnTB^eAV9n?m(yRdoTjmoSkjX5qvYgEt+-5 z&BD`f_Hn?&H_IYtyavn;31+Mj*u(zJUGo7*GtFz)(!C!?+Ep%Xqtfe66%Z?N`U--u zZxhhB5c8d#)Vz~APu46n!wwdgY8^j>%~?K262NCtws_+k@JQcyGF$*c;mg`25DN9} zsOrPi1S-4v6pDLJ;89?1uscq9EEEPW2hIGk(6{tC`n!6IaX7fd*zN0Q4h=o(`_exa zCOlB>Ln{Nx_$MGB-iG>nWL$VyBp7}gCPA1A<4g4d-->XBimK}DhE;(`h*BvAUnK@4 z_Blc!O^4p45jK47_eBbo$i-8rN7Mj;_{|n)?Bus5aUpc%Z|J2zYnHA+gT2I z#`VUt0I`f`fuge*089Iox59-iRKN*0E(Yh+ot{+$Xa~I(E>r>zG^SfcA;s4qshH&X zCOm>CRK4O|sH#>dsvskI;L0+R2a0Ya54Oq`6q&gzR&v=R|1sp1W`K#1W}rEhZ$NV{ zdPx z=m%;??gQd;-h-|JvkM%Ke-oO|0zA+N)d9|R`3vx5HGz2wwF8J=oys0ggD2jZrE`fteVft+$2PhbM(*fJH}CF9^b1f#PnE=RBoZ0EMGg6<{33a9awM zaMsb4NVe-R$=I!_@J^bCjE{}O#%_Di@l>znAjgr8%)0Ig<1(|dAKOMzlSUa2ZJciS zsIMPeQ`w4&_E4qvLTjXy0YxcgV7Gat3_?6o22>GJ2K4(CQJ5c=6%u zR*DBulyWf9d*xuDka93lNI5tOm;6NpE~%sgpqJ7C(Yw+C-lz_Dg2Dk%O5uPgy@m>) zkir2`NZ|m^XN3bemcjwjdW8eLp0i}*q;Y2e8m%;SI3@IMq!iW;ewe56o5A)FsD5b> zsw;JmF6LGDfQ2wR0R7w$(6jQ#486txV&OFg01K%i5`|Yq1PVt*WS(9<8BQM&S|b#N z)`&ML%^Aert3(1tR=1|pp4kEJDGn>R(kYRhm|UniIc6nf@l7+S5XF&PisD8ZWP zlq3!pl#)1+dnIv#yplLnl9D)5Gfo8UR>1~$L@z}u4_ z{JZaWk(Uz#zz?)F^i^VCXk~m)BxoGQ84zrWx9ZzNkD@Ko_!ws3gW>(5{(&9F;&_i> z_vl5w&MUM#WA6ta0(o+7{9$k`JsloqZB3L}dFDFbHDop1v)2|DJs+gh$x3zxoXZ+I zpab1m4ioPPVS&1)>1!uRWF;b}p(x}7yiivBvWU497T|1FSU^%C&_Kyu$ZH zKtS^9tWaeT%u7mT_0!1tn#BP}yHJAh5?QMlo)fw=jsyc{JXD>r(OF9xkO_^O`%dV= zkfa9&xKhulGg`}5->~52sQYkrAsP|O2CuLR6i&c7wlyo0W5E#>=q{wyhn|y1UZ?JG zt+U*CSIouJLMA5W*&P9JPO1!0%&H7DD8=>wyl{g@07q6rWXGZ-zfiNKH5bk~(hENr z75-mfMyG?IBg|afey?T&wcV`-P*58Q3e4C}tSn63)XF|QHz>yqL9Ql&&CG5YpmQD- zhA;0bEd{~&QreQ^l`65~4zX#07`d`8KklrJ?6n6{1%WbR$ME!nLaaGW)bL)Izm zZm&R&H_rPnz_(NA$9+N`PXcli3IpFs)+h&hb0DdWhG|iIU7zE)$sMr|1ig>_N+jg1 zJBi2qFTr$oXJTLAUi540ExgN!#Y5{2bds1u&8K4Xg56OJ4eWq@Mi*Ik8Hdg5(Nhwb zi>k4?E^=F>2K4Onwa%}H9tCg9d!UHF8(JCaZ|p{o4bGwfSwu9Y6=n6G_ zo#X<548*cQ{2Y@joKmX|RWxSU(!L63)j~iXR{f72RR=v8`u73KuFJ$juXUs+F2W{y zWuYuIAR&y>CrImi#-lO7)s)5n6$}0AfpbPgn=>X*ap@Ki#FW4pJ}XxF&(S zkob{W3iUL&ywVs!9%+nvPFU)IM^@~|b5hWUV!d$N5HqhF4-~>}!w=poxl<*tvg z(glF$9TxzdoXH}Casj|;N5#k1OBVo9dvtstkUBmTrH)VZUL7AOq>fJ%*_YbsP3Z!F z3hqnZaVka;b_qU+`|bY}FNOW~17N?s8L5uIw(amI;n%}Yh3^i3H+*?`TX#HhI{3G0267#rmCLObP+}BNaH$#~1eFKf$jR58<`=K*aL&jlh0dGLJISn)95mo|> zjTKm(i*6H)RZjYhLH5Ll!uj?MzX~S;X6JMpbGzDrzj8S^rB*IYnf5CSQe9~ay?x)p z)VKU6qnTyqncKVZ?tQ0nH+m#Hm!!_aP4dRl^a)7FHE9^jFz3TsqE9bN?JbO%$H0~H zxn}+lc1TS!qrT^SH~BXDM)`cWx4Ssc__nbIr#fS>{&~2 z+%n4;%74uy`OJk~+6*NaVz)L!@zxMWo1x0iBpht!mX($A$8OhTlmIFr6=cUwab~1q z`Xt0+r7}D)l?sw%_c=ovHhWO|u5zjqQIm@HRE~9e7D~>R5DVwzYlpB~9CR#s zOGK#_?0#qF90{vD@(igkO*!V2B*t!drcxS+gjjMWcRbUqrP~ugIp43chf^!pw1!r3 zHFn(-QCTa5gA~b`uWpw$E{QB>)>pgFv+1nX(3uP=&p%ymX=`XPLmUjCo>a-}@T63D z0M+AQOBEi#T`-^Pal`;ar35)q15}aqOAj=MsW6a$tIf^@SYadY0Wo2liCdn*mu69e zc}y2jM-1HQkq2QUiSrXH;z#4Zh!2c+f-SNaM&FM9A$mG&ioG*(T_it(OL(8qp`ycg z>#!ZQox3Fr^Y*3#yV}AIqPDat$P@2EK`gK4C4vpDcf*jN1!X9A%3CW5702IdB1Se{Vi{qcd z)~WYn>!N=;Sz;r6V(o%02hK{}_Fu`u^QC?3D}{40VbBn}_}Ri!>>El`%UOun@@ip| zy}vYdHZT0eVL>m8%{GK^+nE2K- zC==(U?j+Hm>>LteL0pBY60Zhc{1ikpLWAAyJy?31FwF(B-o$U43XUa6t>+R_ORWlu zMXE-%oZW9Ld)_mEDaC;uReU$DIt~*bdFc#hAE|0x#X!~{kWnE^(Bb) zVfS{1GKq4!6N%D~B~(mQ%@F>}*BYEt9>`qewOOUYxKFOa)2LgnVHObV$>&+X!r)J* z+rNN`c&2!QJjHq-*2*xW~CyXsr!@+#E|MM z3MEu=u0*878wphrD~fnl-N&MgL^kl{=DLk)P{O%{Dwt}ipkjGPm(aOPwM|ednMXpa znd%Zj#WIfy4&g`7#tJ7wgzk`~9uJhWH3J8!l6wvc_RHvs6dF#9Sm=RrHX>TRA1Xwh zh}ink+^po~29|-K3?_cx3i5oK*MpA|CSo+%=cEF=2)&;ew?_LRV8X^+UBT|g;dl>U zKb*MH*pIvAoCzEp0|9C1!u@oxry>s*2x}Syq1=hPGva%|_| zWk3@@bzxI??r1QaK)k3Lfh4tYfB+9>o_#4VOgrH&(U#Boh2y|Mi z!AjAj78I$d{hKQ5!RQ_?2btw8(H6BxNXXAr zDg>A=tQH9YHD1hAt6W}y^ zO67z=V7}=_o{ljxSOKhX>KBQtsmWMEXVKN{HP1WMcq%49y-c)_!CR}GtxaRNf$|0J z#gH6BN=dy&T%IRvogu{>%?TK0%{R(RYqs3P(wTm(%cN-#Uy2|IanX)yqqOg8zR!HW z_O0^`i@y^;6u&fnn)Y4et9bj^vDgn|7sMvTqS5D~H$^u_M@4<%#o=zDcS9|q?V&lL z0!W;6XK+h!YA_LaF>p(uI&f;hvYxcAGafa*Wvn#%TWhT${xAHG_?!Lb=zrHA^7l3W zWeh3R7%M`Q` z&W|KJ<<@2_D{S*!7t;ZPZCu*{f4c4*S+g7q24S>^=9 zvL`1X0xFn}vXA0SwIe4dAVRHj0s`pf1nd#qbdB>Jjo*SBIeE<4EMZw_@pYid*3qHD~bLNKnzuD^s=5;+2Q`a1PHI;c|_vV`72QQv? zM$w)(?tfJO^z)WZk1Txmyt#cR&-nc8mG=~{9hmI&c+aM(o7>I%(eP(}`Kvb%jbFR^ z>Q7!R&3~h@>F8^1gE~D|d{)}FJY73%zces!bA8PGEqr<7h{hQ-{I_C6CZ;HsvFbAZ zoc1BU-a5{PAf72wC%}n;ruBJN{UN%&fprSnA)y3vWC4Mwz)%EKNy_> zA{{!y3ePWJv#D}TS>@_2R%(9v#;Oa-i)s{9S5&^Sx^7F+hKkB^mBG^*ysoaUdd%R# z)fMY%>IT6V2nN?w)o$2QSyoq7Gq|j>Y{QnVB#$v7xsjc`0K_0Xj&G4{LH5XwV;lvMBzVQ(Dd^DH59QMblo`$`r9ck?Hz7e;G4Lu z23E|?ISTsWdxi9a4+-)w3w#r|=d#?KqoBWwV$#*&mIZA6k#Ktp-^Uz_4I*P%#&Rq+ z2q~>iLOBLEq_VhT+7(%!eP}x3!!jmZl z%dDnz3Krz>UsVtEU2Z?*<{rX}Z|3%M?jZ!&vV&XaK_^3?j{9?i;G?V-5@Msb?qsCF zib^Rah`f2-AuFwxc+BynVDb_tXFo>M;&NpdLR=a8hkj-$M}4ERPjD6nRufO*CP|3x zUzCsmRry99QEpk88HTF6KoT{aBs7m1R|u-shR4R)Of^zav0+{%D&a`^HFi{ap;5H`n35 zNwm3>q5JZKFr_V^Mw82o%HGMHpk+*g*kFjc9bQnToV0%A9Vvkjgqs#%mYoTQ&13Q%*LoP_WsDjRwlU5`>M z5rvxA<@GmllXi&ftCdtjbC~J@LB&f6@Gb~~G>p4jE@C3(@TUv%3dlkQ0cUcH;Pp{= zK`s#GbS8>Y<{}}rw(-@SdQOZ0RT|E0F=l|uUO|)~DTsCq!kZ6Ho*W-3(OtsVKZ6X( zCQ4WwTdn+|M8ndEE}<%_rW~R~RM`qqUJd0BC8G2AY7(koh=vk)qdw7~4Q?z0y5Q&@ z8)HnTJki8$Awll^Rl{X;`O|rpe!%6Q^;dd@3nE&=mC#>F<;6K=wUQ}Kfk>pLKq8c{ zXK;xfIG#EkWh8%4$w;|kK1esYS^E(3&Y!ppHOO&9fSdvdkTWa+a!w$?J0}q2of8Q1 z&Its0=LCYhvl~I)8J!^Sj82euMIlH%g0=i^5tL6|u1hFKUBFI>GnJ!3AmkDA5%7rl z2uOtj%Rzp+lq3_&7Bh8}PK5leAs<7I9*R^(Ye*wVIS_!x<3PZ&deuKtRoFjyix)E%PCW2QH*(z=1nw#L1(kSv+w9u$&CEoX-K0 zZ|epQ_r37ahMBt)1%eQFzsfvj5mkVxCaUL;RO%r}$Yd%fFa)X8LvR8^5b_3wAi~ce z8!G}(&ZLKJXvj`_G`$eyoy`eS4}vFn$|UQZ8;Qs}HxlGsV+iuDF$9Upiptr^3M5@@ zqi2RC#52PZ;+D6xtlucSrLN~Thh7C~M~ zi=eZaN{Lkjc_l4^mJt;PpWNiv*Qjp;tXpxg-;XcS$D5vn2C% zy)pt(Wn~2Q2!%XC=e_a>L0%DwAg_o-kXJ+^$SWcdjpy7-hyRblG)yZWqw(*zJ7#kPiPY&d3-6-Ww|$V`ll^ zO#>2|$W)HK38{D<$l99_8pl+(i7Tp^Ktf}fs!33(nLt7#naZ&@A$yt$vi2rIJoY9; z)O6t3n-D5tPL90^A)XGh_9lb|F_mL)LP$*tj=c#X+hcD+M9m3~y$PW{#ER`pSni!u z?#`ET>`h3LV{byJD^oefC4`jtEuj=seNS|z62B#sWU8rxN{QbRiZPYahUkT4VHiSn zVZMPp-mvrg|2+~}t~nWdPzg8Hq9fMxT|04ENTq}uf=Hx|_Y2I`9Mf4~F76aO4b`&$ zaZJ~qU<#0my}=X+c!DVqkiisKmcbNI-pR6C*36DjH8<6zxGa;~5 z#PMKR#`R#?6W4=)C$0y9oVXr@a^iXr@&-*I;tiTYBqwMJp`4&8guD?#h981FW2$x&~j~F-MaonoA!VxBD5&DxkrL|2ka*5bY_Z7hBE^2=DNB@P!faZP6Wl)4SMck-P628=7o07QQ92oLOHjuEw&rO325L18N+z8XKn2};7KE$3^?gh>Dcq^$pAKfjFq zd4f<&gjpt1pI=766KaWo47J3v47J3v47J3v47J3vC)5%FPpBmVIiZ#a$xutsxdHNo zb1TU6xpMqSGtjvKnSbbYdEEJI-mgy{kO_4>0hxzIKxQ$qq=3vd&Jr`_=e?JHx96do zulo4+Q@3BVr}Ms+9$(n-k>*1Cz?i(h)OUp7JN)1p{-8w%WsClmWi1A~d@=7EhFV77 zL{~NBKfeaHZ4IT2ZQwaa!;532fuPHmWT0hYOj#g_mK=<>L~9JX#Dm?fyPU*F7|P;A zUZN$NLRui|5?tnX{;^owJY~Fwj|{K8J-)|SjP7xz%&RRHxMBy5ZseHy7mOE8EJmn} zPdLAjnVQNxFBbA-Hd{<)O6wyCE_RqMCT$LojBGBt9ZzH~QU+(*7}PNco9vLzW5ZC> zs+;5ko5h9#NcvF_G}lp`6PQBOB2B#67?itf3t1^Od9Qm%jVuB=yUeUN=mM=3xZG`Q z$W5u!*SXx9M)91jcFiFX8y%c|bbvIfRq+RIwZEv2l+?vKSyF1*LH!1rJLEyiIOp?%y zTys|LE-`Ex8(r1jLG|1{y9tqK2wl+Gx`qf_UL-Pr8+EW`np5*Sh!Q?sBEQRM=1@=1Jr5 z60S#3$C;SlVHC{z7$3zs9h^zpHQfY~&KENV}} zCZ4ULUCM015CsQ$z2L-3SuIw&^>V!6L^Yi+s5}e=O=}IY(&}UaA*#ttrJN1~u`Jdohopgi~lc|7=pum#ac z|3%PTu2&(r&t^!)XAsrt0>V83{V44#Tm&83dr zB$9NJo{6N;;r;O*iL&PND+=hn@tR%n7IKscf@bhtDLXeoN|2C{S8*UJui`+^9OA`> zR|2>f1+bZ~Ms5=|ktz99ndhmR$2vd=%fre6L&yT=q|C(xsmCv&Gnwi;?vrg&<4r=P z+-_xOCSE*B96K{XQ;CYq{ZwX2igK<}+0D61MHZnb2P>7mMgfA9{G{vz1hE*T%pim; z=UY&=d4l+*a%}SisYy^d2MA)VMfTY`zE5(r5XstHUs+I!l) zv4PP~qrZ$^5j`_{O5}sc{gH-9X{1wVeQ0<{3qBUy7c2`72z(NFIIt(MG|JRyz_U-po_%HHL_vf20V_uxZWBTPrf5?Y32`*~&fc@}a`EEm&cr1UA zavmr5jcD@r=ECMPIj#pJcJt+AANzmw${;T{41+RNKBm_~Y>9eDRJ;t5xgj)2W<6$H z448aBu@K@3Vj;vE#6plah=m{-#6o}!Vj-Ya5DTHLf>;O@K`c}j zK`d0x2C)=cR2FG&s4Uam5FjJ72oRB3R2Gq0RF+`?1c)$zq8)wcMIhJf!jrjPmyxS8 zFl*|x;^N}rmVZIrmJQ`r*G07zm1~RERMeEOuB(8|85Olfn<^{ISC`k;mep)gIWr)+ zulng4dQY9?HY&}Hz2c#8$-0u|xt|!AQdLvF+|B-v4ZvSE(M&44O>iJ*4IjT2&h;P*Vv#W1< z{MOC?TXNsP{T-0^H*Q?}e>kq>4~J-4ZW-@yGu6QxNY^;N;))-a{h)Z^xL+)P;LFh+ zGSv-@r~Ikh(uZgrC0U5_!#XlEB4Po?0iV8*4bzm8)}Fv9w?`T_ks zeFU_GfBXzRd#i9Di2Mu`aP$M%wy=PXJ6Tr=QtIwOlBV(qTJBTh#1mYJ zr#!)xM9aoz&S60Si;M^qBzK-pK~f+PW{GdFPr|yc^FyX zn{w_rS%Ch(k`IU;Hk%rGZ!rQn`}+t|lJEu=*9rPMxr#(NqGIifLX)Y?suzVOQ~AFw zcFE9Wx&&brqzwFZ zf=Zcz0+un-bE>W@N#7XKy5F4Nv z0^=WiQDB62NQ2}$%8ecE8u?4)Cy{ND(<2?iuZ8ajZw^lm$3oACZVpw3Mu*Jck>GcN z<-uaB-a5@{??2}Mq5lH^B!AR=&b-OoXpS;{z9)R&_O0;^Ha<6gZR|D9GJ5GB>Oa?; z^!a*c?H#z7`)f`e9tQ4{-S{SK;0HRF?}#9!&q}C*sg?>VHU>F~%cs?VY-WPUoiJw*sh^vZZ9pGnq@N z;G!(B5}L+T7YZu2K5|-(j;QJod(0)MRGrqj1nXJV;aq~FtjPTGvNdI^DmGNqL59Fd zYt|I4DL=Pt(}udDvel^P6m6_pQ*mxZdCh;8A+ThWH;dmPt&OGyV9@G1j$J&mCQuU4 z`jX}RT{NK-h2S(wjQDQ?{^-C1AP7Iah!vYeEv`^E6P#69S6%}t3%@R_;L}hMl{Q_U zpkk649xxq0tPj7h{0!;?CDbsG_??mx^pqrO$Oxc_=ec`*8_kbE=ankRY*iQdumW zRQ4{N1Px%uYBeRuyL1xdT{;Q!E}aC)rL$wQp^%3*NWPbiYAyNt;X(XAmGtr<4U%5s zOQq{@$T~U?>47I0((q9w`r(kGUl#Z#f%l%cld{q|3i_)QlWO&^mIZ*@%&!~x1GC(m zqoBWBaXHuFrT{zdcz*k@P0sliB>luUM%SIApntC7GSA_b1-_|mgP>2Cn{yQOmntr2 zINTIq=at6VJIkIFpJ@PKpgTC7*}!|2bWP0{($ z&XIQ_ha#6oW<}bCUk%?L-V~k~j)eXYx-qmNG%{oae;>RyP#YK@2wBfqH(2Yf;g;rq z%)ifH<{w~wqBSNSGaokhm`lwbzW06i`F8r|`3m*V^k3;$>dW+=+Hvh?iG9wk^IQle zo^Wz@l4EmocK#BiCYamYsiScWzpqUKQWK1X*!$!J;SetogwwHTdjY+hjl)cB=P>zh zvZ;ikaN5?>6is<)ONxhB*3|OainWzin>l6Yl^3nvPzEbaZCzPi#p?fPodK5k2GUzd zv$C_eWS1GAv(C&s!AtosuQT`rRHv&+l@)6QoAFgi=hU0*Z)A zsUQ+cGL;G_A}XbVNT>r*QN{uyVg17`w`DFWdXGqy@<9*`xfBn%JQ#9gTMxPWaX@>9 z+^`Xre^G7O+H$MoqFNYmRh4Th>ME*0I#6=Xe>Uufjlf~ee<(&Qg<179M07X`(4i7< zPBiQ)fD)yd4e*CUP-_JssD5hLDfNo(Pz}2n_tqTo7PA$}30b5L3^SFAPb7$yFeh;j zK>? zRQN4Hp72{jHgi3d)Qq4_4DE2+-cZ*Xsv!tJB*qduTUgw36`jY_Xke8a!m>%FsbxGV zyzO%eB8Bzn9&lunkta;ZT~|{E@;7)IHm|DyDYCY@Z1sPdkb9(eJi=<6ufdp93o{;l zjkxVB(D*NsYOMeS)$i+s3tYC5fv!78?gEbMHk_;1G-pXyh{KrvbvkTBQ2&O!<$+)z z===BcmY<5vqd$CaO%TUegmaF9{$2dt7U2D8+Eh5yWOD)e^f$DvC? zGed2IuLOVKo8fB{tTVav=$jpd+$74$`}ZCle4P`Y zS{L`xJr6~6G3dH;q(=Cn6D;&7bz`!4{I@&&(SZj540(IDJtCo+ewAUR+MPWb*YoT_ z$tl!~ypbVEHIbodRFURK8PZAvWi69z7QB`1MMCqLN`zA=ONzV)+T;8B2W> zNlnl)D-aQ}O+-c1IYhj}fb7UbG@F@^6zyaKhm)mmD*K6RLVLfp(#wIwh$22WCy|kosMl#Q*i@S)O^GyT;58F zm2&o%5u~KiE8K2t>d34Y2#DoOCmfn87BZEJqb5kntP*O+RNof7luSxc$K>{Eo+aUP z8x63D7N-n0wKbQmEfl&=adD1`tp|#qDgiY!xeQc?mqEKUGQo>m@8qEYjsgjl3@@+lFOTDDYt7(tahL?C|>1uMFN1DtGG z#)=WWj1?n5#)=UjW5o!_#)?siLsgnrl&cG5otAV~I4!9xot6YhrzHVyKBadbWnxh2nhJo+_#bJ4#ekgH5o{C{0rZ zwPMAbY&`_2S7L_CE2CZs38_~?1+`K|^-4%cshTRM4>i>jqD%-6cohsy$QHV3i6|9P z1*a1c4|pf14M99iodh-nDIrh=I}@~yxl^b$0W9)iP8-%UbCM?!jgk;l&@4f#m=EW3 zAw&rX0$IT{9JEa|EF!23FN7>78Yg6&AeIn3(3wp29rv;1gv(RK1x&R^P$^MWLZ#d) z6;w|ZS>kYl>Is^|RFu4h02VoU%K!nV5d}pfQ<>KQw>*PeqjoD0iIQ0)G?lr`fDa!K z2@5O~yia8}c%Ov!#3vG^#0ionwTjWq z)^SWs-=vM#Cu;gcj4{JFHFKHqj&aDi)W6VQWd72;($_iILq&0aVBK#uSfy4c|6BgM zDLG-#@EIiN+OPdF)saS9<^;3Wzcx>@@Bxi?d>Fa6lM}U#cbHM4&T`QSO4QjXASLQZ zNZD^yFh228qPB#T3Ad%Jpzro!>B}Mg3`IR|aDoOO{n@A&zZ^a@bNe+H7Pege?uJnZ zZas$*%yb&NYGdT(A3b|Rw@z=pF{i_}p-1-}+|#t;`q?Fm&To!y?HrFSDBD=Qp`7Dq zhuHbO^E$U7g&%}Tuqo&j`2Q~Uc)+b8GXZ?vUfDaZqy7*3wLb7qJ9}^Myk714f{2c_ z@W;}pyE~*{)PVHvqcSw|#`89wQm<0A-7-|uF8<-Aa|{UmL|f5*DC2Jt)PY25%SNVm zAC`5`?d;b5-pT78R!P`UNbsZ+B0xs365x$qB}hiE@;-)~n0}=4#Pnl~D}ru}YvCL3 z_SIBO>s$R#_I*dJBV$}IcVk?qr(?ttpZ4}H&eL8nb5PfVPmY}W!ufNKR@HX@^nv9I zdtrzun{A-;ATAUQgy^@uDIKYwXP5QMD+rL~B{r-1p$ogsUJs`rC^h@gpykjAx8+^_ z@U3M|%c};0NhqfbRpCKXN6F9e60p?`9HX)bB%`tn*(X4T>=WP(*(b;wvQLmFgC!wr zI1l9a??|bwR5=+eiO8G5k|0m;KOvsre?q*${{(r1{|S=8{{+b3e*#(s{}b9O_@7V_ z{7+>O{7+>O{7+>O{7+>W{7--k{wF{L|5I56|5I58{}bQ_|Fg=lqlo%kKSI+SZGzlk zA4Q`UBcxY&Qic&58KF*qh)}1ph)}1ph)}0;HbR~E$hZ1>2+pJpop?=CA$tTV3x$N# z6nvjMQ8%b5SVBAn>ndcAcqu!EguGfXQK_XtDaHhOwP1qO(x4P$f}|EqfYgEs;02Ae zUMdSMn95!)m>{nfOpsR#CP*!wN--u#YQYFdEttw)Etnv$7EF*=3nqxQ0w?s3AXW=l z=_NpF!321HAmNYcRFj9&?gZXd*qr-Sd%s^Ng?2K~NXImV{Ca zselWjQVWQLl1!xnE{IAkAQH-Bs{2J3s7YT!F{YX$sCd$MVhf0Un5k530YOTWk&tr1 zs6YauQq#YLlnZ97xT2c=8B&i%#ugAOp8cKJ0)%p63kXt6fQl_3=pt^siY*{WEdeUF zfFMt70U^8sI3G+SXcMziu>}OFRX{>jM8&ZKJ66zS)Bv#qO_QY`fnx{IC!KYLd)%!5 z_kYYgX=LLX;gI7RJ(E%)?&`u{lK44uG#|e_Z zJPt>rw4lGIY8d{DC$nE0&jN}7|KV9P$ElCc(Br{ZOU^0$q*c~9qUt~p1ThuV$D(tz zDcVmo?JwF-j6V8Dm_3+sl0F!?%(&V(n==VV65$uaw}h+1r^eooe-gGrPlm1wtqlzc zeqoL={l25YzWOipUBO3!%`r#?f{9Xt=L8l7imbo>uj;M@zRK##zwhNO-+M0!AX}n< zAs~wiB%my^Dk!*sC6Mq9OZ`PogaZEaDj9nkjI>7vuo zX=_{S(AueX>egNCGIP%Vocq3W-%Fr%{B=4Xzwo~Mf9IZWefOUI21|qEQ(sE8mwc#X zO-XJ1Pbekw_0)N(!O5Q{A4vA!nw*;~Pye>;(ZmlDA5TzB=$1+Q`W+bIrc`>0c6nUB z#05oAfghGH(Tfz&8=;~R!UEhl9hFp7qVt5idW>$O6>x!WAT~T>Wy}CFf5iA0MFcuXQ%w*PMaoSQa zliS89h7`QUUpXmk-I zzE@(UcNLUCbE)uAM?RoSq?;^)#NAdF0_RJoCUZWE3^cfud{N`MXI>5-d?}}{N1F_Y zUMV&{wvAgsd$6!w5*;Zj7Rv9bo3UNJE?mHM=p@B~qa|=BlWf4`eRqMV{FWm^n#m zOz}$5;c{^Tay_W{U@E5ILc*K}TbgM>``ANS%g&bWF043Ww_Z1C`naETqz* zmc3yrThIn=nHAweLc1P^*Mc@cJSQ8FMmfb<=GE76z(T8pYOkS^->-ACf!7kDy46tW z>u#ZSa#rvdqMN+N;z9&4U-+n>3(#4`&;)_h1q3Sn*;r_y98FeH;F~5hxvrwXFN8|) z^P{sa@Y#a(RNG5DNT2&WH5*IVEWMZd+u$*obr9c4UrZcb3m1C=Zl z!X$I^Z51q{Qttfq9QnFojaWjuW}zLZ`w<*fC%4e4LUj&KSovC~A^J@Okt+<&2NONo zA}0$YaR*`uy|Ir#8>5?1P$`R<+e%qD*n6bc#Hd$+(+*Tu2$g!|0QpWjK&oEBNhiW) zmkMnbQmyYAb3_#*EVN9HxX#|GD0YHEcX`H)ZKLRo(s8-Ba!=)U$Ct;eT^KKi??xfJ z5`rt?x5>AXPjNsm2l*x*OLWA4A3qp>U+`M+NU$?l6x&86ohoBLi+z^OWMMY_-S{Wt zvuHq{U4F4^jcdPo$BvSM^{)u>m(~K{J0<}6jtM|3#3X*Q+z>#%(*cm@bO7Qx9T+L_ zI03Q?SX8Fa&v#7#vaX52l{-^>iL|~}BG%bg^x#jw_4sR(U+%vD@Q`C0L=Q%Jp4wVh zo@W?mtJb$tuzXw9=9a3_Yg$@IBZ;VSV`DR0=2F>+A{7hSd52A++n%SkM7LoN1uMwh z*6$GtZ{~cYC6bQR&{j*GD8DVnpKu`-0pKeCaaeq6XmnhhS<@Qt#8P2Nm?%7*LH%3^ z`k;O@Wj9QA5K|7S<4-8CMSvU?|Klz3S0uwdE%N68E%N68HU1p5jXwu%;a9JH-J2SDV{si?XkBd-aqqjTdR`$vD)=g}$?M8VnP<{p5a`}y zdZXPd&F=`7@hJl63qGYV88S^Qb$s`~9mrH{KdWgg+p+0I%>U!Bd6UEO-eH z#{Y(P-v4&2j6o8**S+QSAqrR@J9_v&c0kt0&faqdBOmnGFTOI+g$W!-%F{PGw=Cx{ z0lwUaG)zD)+j!4|o4cQx(D&GVZR;z>-cSvW>^#45fpeb!`IJ#htAG6PPwHO!^pbCV zZuG*tPW;Wm{pZ$J#<2)H&!}q7ZIRd*QeFP{qC2kE_`%V(esBPhLmPgg?DW{d7*)Oa zee7U&`I|!~&I(tBqtm}mKaswX^_cXM^sv+~QV;iB-Xi{7{GNDI{FLCogKq{O2rds! zBK2f0sV96SuTl~YZJqcG*d?UV7KwHrmwG{aoJ{B4(HvJ$+67c<(Lc*jiS@>nb^+CB z;niuVRAB`~^H)EdcE?DXzeag>+K{V;eVCEMZdc2!QxTq#6zYv4R<3 zm^_OH^DNW`W})MRO1XZy0{6c4^1pmI0Sq4E%wDV&h6sd1OCLs zTLjP-n5FE}c7#RKFN`hpJ?@|o)l*rDbL z4PC(V74w7y@H1dT7tmG>=8@=u7nCRhl_<aSj%s$bkf`1WT>y#b-3VPk+k`HlZ9^9T*w6(4Hgo|%K7b!Bkt7hnFW=s_ ze$c+->t$B33nJrN8^9012JkartB!HIqZB_^N&Ns21-)QWoHHz(7vt%#>_=tymA$8I zMp?S_+0wg9*OgAn{U!H}-1~Ev=56g_(-*rSQS3e`h~N-bX&S_vwYX+keCs6_4M^8LO>v2t{XR*tewpkFHAQ<)~% zAUecshO$lg-YeS#M2s=6Y!jeGa;i_5Qx#K}E87IBbLCK6rU~tH3fc>V%VNVtjc*n@ zQ>eBYDlz=z%Qj6EA263~^76-JtUi}J+OfKZqEr6PWt(1z$~L_~0~wEIet^n$R**S@ zg+B+;A9g%|LE13#zLQc-Z&PPhZ-T(>nMzGu><7)r2SNm1+Vq8&8W1GvUX)ZesAs zSn%WEll+5bJA1S`S?Pw-DW&n;)44lx4Y~2z!`ZK9cV}0|=f{u9o{)Jn^W{uu=7P+S z@a6FH;kDs{uz&i+^rzCB)3ejr#EQhok~c~oE9od%Tyk9e=kd?Quc6g%X7K7a7*Qt4 zEAvr#WdMnV&J}0^WPS-~N52FSfYmJ~Q49j<1R+ooy}ZB%AZk+mqB*+yMt2%W=Lie6 z;y^n){fy;-?%-dt1Lb8^SFBEb zc%%H;5Rg9`0`g}=K>ln9$e#@X`LiJ)e>Mc<&xU~f*$|LF8v^oYLqKLWMBB`UXq(v( z?PxaCUoX6$3(W7*pY71epX~tovmGEa+o5e{JGA}T4v;_F0rF=%K;CRux^ukz@OieA z@XLRM2`Ic)0)bDgUU-1M(>+aeu2P_9=u0rA{PFz8nJN+s zs(aJPddCU{AA~=Tr$6j?0E4tKpD-1sbtds9I6RGLf};!sAmT^TT7*Dm$o$h`UaRTF z&@_Rx79l!{pU>4I1QgXGL{r>RREv_U;e0-9qznj630t%OcXoJ-Nenyi^hlNX68b6wUdi|s97XQ{ODM9iMlZxULhL8 zP^bJZTx|=!h=L_N0hP$j&=^HPSP|Ln1=!=&gL zb@r8Wc+5a*Zm^JAyflUt?8l%ZVph=>b63=^7RDOG3KBnt70~fQr2(se)K+7mAws1A ztDsU_jfEvyVwsBC{iTb2 zDQv_M`pEPp5k~<2NjhnG5g?tsEOZH|q*4fIWa=`&#llD9_dp}lmsWhyn`5KHKqPXk zTgDC0g~CeXd;obxZh)LGL>l1)NM||=sVqIsJl9(3*lM7fVraZT4;ZR(7ShX!V#M95 zPX+bFaAGp*x{!K6GlkhF41XPWEp(btbr~uhcP%tUsPGcfX*|hmEOZnL?VV=`od)~k zH0B6I^EQP+CD&8Gqv;JYEUGxL(wx{?!s=23sW@Pvx#k=YEtNPqxHHy0>dhge=9Ijb zhwYNnOG@M4kAF12F+Me35b*@2oUUZ4I3^HZjMJA;pYkA@a-eUhm=> z3rl>-{5hEZu;T%Q@h$TFvP_tl(R#23|Ah|9Dryk8y)eZ}AT!?1J1oFKEo3AQ&_3j| zG=HlP;T;tS%BFfR5VSpCNT`QLpcR6oKv060H(jCc4pVQK~8?1o>#*H7Q`otF_0Hn z&NMc#9PJUpW>0kDU8;##s7k2rGE}OGSZJtFX-)*#t0rQhzfNWtEWDPOBZ^?|D$RlY z0HLyC#E~Qmn48ZTk$N$f{(Sn{^n!H%)Qj*UU5DbGT(^@8cv9`o+(&X7a#M2g?9_SNCCp8}fy+(2{5y_}$R9el`Hs&juhWlqCo7*2ZEA>xo0#gsY%!!&LyZ zNwtLmuWNawoqlvAX#D6%Kv9$nnMi0ty?G?`n^pp8z4WPR<(3pBZ-DrwzRIMr9-x~ZLX?sT-(%Kb!F4$byZt7 zZK86p4Ru7&u#U>ZHc)lgw$rLMQm8@eRZAPG3SukCmSxHr$7xH&Mur6jvR!0NW>Fys z+};st8gq`K`y0ulyle0$00wE}Nhy_+W6LG(3uc&R)!FlAR!^PMIHlp#n%Z&Grkyf% z+$r^^P8wHV+gLxYZgN9?oqZg1?$ux2b7!K4@Y|!#WBLbbN%(gjuQb^EYwq#d&qjYqxMg z^Z48msVuOnW6}(VcdMM2PbhnvS2#~E zDjiyWXZdQ@*x1CEt_;((xH&JQKnmO#r@-|vimNt!j~RK-!7z)o4Gg*m%nl$E&i!m>TF&ye_b6mf0v0HQlYbVEyMNooH3ADo8q7#atWddoI2Re3ZmWQ)|6_gSNO%DQ|IwR}M@l=Smkow7|8Y&g;0a3yA zu`-xUPsDCmX3aGc{(-U17AL8xndBznL4KY=)0%OO8`|FC(g8Intj^{M(Y`q!p_y9& z?*+}hn^-z{=A^%y=?|8TB7nYdTUqXf*qGo;F=xMHd!NgP%s%JreA#*uYwyl9WlF>6 z^K0f@k(!(elHX2tC#TmZ$0gpPqIN`qP*h?KHO@a5KG===p2*qXr zz5%_YDd43jPE!DE(-Z*MGz9=AO#y9_rhv9dQ$X9KDWGlB6ad&X1pt1U0w9~FAPPf4 zVir^Rr2x6+A%Rgc!*^1L-*U@AKS{|8qyM-a$qWg)Q(vYwZ!Ac5Uw&F;C1o#&mSz$g z;`H6WPUy?uRcxn#cxKO;4IB`k3Z|Vh;P{KG%VXOg{^buh{dWC_pMUV4D-J*K)n#tw z=&8hh_A9q{+T6I?DtzkC}Y&!3S@7;9Qm>&!b7eCtgu_wO&>iqBA zc*WZ1Klkis*B^*Ku(>|-?e)6K^k!m_O76YjSB(?*zdEO~PteyX2z>5zz4vz4&8@5$ z@-e!aUMf1?%M~3<+Hcv@eb*V46{n9R(``@pp*p=y#{wcW3wS&Zt};zhy^vpOgAl3>n@FyQcPAcI^AhH5*m(EhyiK`A$3#E~^?) z9~sIvMl(x6_9dvqA&O$5@|`I5VOkm8Dk#wg8(s~EuIR*+|d+cyv=kCb?{ z#qL9GSai0Z6MGQRz@WK+|!K;XH;ALz*LmU7^F3185X!`~) zK%P95WT+FuGAcTtd7a#swN$wsJv^lYh_40#^3@qgV)RA~D;6(C=y0^})$K#WqDZU^G)U4W!Co#fcdm3w*@Xgs|Oh_81EBU@k_h|#;y z9wR?1*2B>DwJt!_^0d@Q4rr)AYU>6xq!{we-=L}#D)piR@(tU7e8V;%nXup@N4qZ= zMQ!6U$MQ0!G@;ILKnbBTP=Wh~sS4Kc0i_GcgfCRr#CGZk@4~}_>ey>Ms>dFQ?F`;WkuAr*Ii$AVV_|1%d1^%BzYQFHzR%#9;^ja9<|5^OY^n zuH1J2hetg1$Ljx-b`Hs5xhfZ?rQpS!fdMf>`&O6Z`hJwV}^mPY2-Rz`abLbb@p_ktn-$ z*V2X0zAg&a&Apu9^)=LKfBk8FPYqVJ-+IV)|IxMg9B$X@-?#MA{f1HKgv{N=P6E7d z<3~R7#l+sOZ~pmPkNoiKOMkiPiet~*f93qjFh2R#1NI0fy|H8TSM&sbRZ9y9zceiF z?qIv#!KU_G4|JDJ>&sFhKg0rY1dvY5T8JHx5l7I@izD*8Dv&Kf;>(tReAyC^{9pqW zHv#2kOXY2(KYZ^?mVkW85|A(b0rI6kKzZpeKb;qtg+S#?e+>C`Wq|n7A0S`)1LT=| zfyk7n=3XFI%J`tRT|no0-atHq zH;~9A3?X&o=|M+~t^UrsA0HXKQBq$rF7?^ew)D>QqVQn&K3=G1(9$SCH+U@Q5HYi) zn=4hZr+}BSiN6(pDqWfS8Hd?Adyb3SitmcA;ObT3^02z>Q9c55CZqrHZXi6;1Y8jY zZ=k@}UpG>V1mI%s__{l1%N;yZ6b(Q+!D(12pbDX~kUWb(o!p>WBUBbrVN$~uLFI)l z0?~Q*QwPmLQm4!qB37SmDMM7mE9aS`}1H3i}m4!|aNaKn@HL@5I1rMRcAkle+>u{s3BHtu) zM#l&j3yIDXXp|^AE)XgUiR$FS+d*}%P)#xHRqNCEVo)s?Dhr9689Zh>>SQL6J{lXe z4OU)tX&{q?xke5H5*gkt=MAVvs9MeO#tZa-fyP-#Pa%pNu9RDPq7Z3hKDdtogh+g} zM;EkPq>DxXfkY)jjoJa!BvcmCi9_RYK-C~r7Sfpm>rR5^a?nWdH~`V=UAam?mkOV& z&E<<)FR|jFSt)#|er3hHvgEI0!xBqk$*&~35=;7gtWQgyW6EDFZ!ce1_Ga1RWtWwm zRQgQm2TNy`W^(uEw&sq@zMQ=|J1+B`Oj~Al_*2T6z91aBzu!ZpeG=115cDKDD+u1y zizG+&;CCI`|Mc{}lSmL`xj2#|ZGD%nUb>Uv`XuV)mvHG_m?pF9Uhf!JeCWD-&6t1g z#q4?!_30jdR^=s=_ugyIuj$FC@4?>t-m87-ETe0Cc#4>JX*7-<=)La_?zW68cbf%sh8w`rDJDyN#-yixBRVp!dCsCx&k^fIKTSIRwyl=8s7 z=4&g4jPITBfD+!@{o0vi)%^-l_Edo9qV_#{ntOJ1Uw0N!KG8en4&18v?n6TPc(0U1 zfd{hNdzd3vpOCy>HHT8_JLjIQQ{Bx-Qd@4u?gM(1d%G_vA6hXa+dHM4`Q+W+qx;Rk z=qS0~`{G(w++Nc+d3yTA0u7b5Q%+yzwB*7R=AP1*IhyQ_v^Rg>mptqqA&yk;eZ`pay9y?#-Pd7fVK!L&7=mTD!hecq}QtP4UiB~ zHU6BuhqGauAB#W$s{hdJ7B`1k|lF`7$C}CFP)Hk zJNLERp4=t5QQ2Q*AJ2AWFU$_jyps7s=DN(;nE~N{gr5$#gmZX!_)~s(5be^{2Eid! zCV0r4*eZGLEhJI_YJs5F3Xnu?5%*9F1mBC%KWdA3&9y)vP}$lbp!aHn09h<2vA~>{ z%GFO8XrWM9NaWLfTpI+8&XH5iw^hnrY`Dx9E*4V#W~-r^Cscr_j?-lMrE|9QCi_eO zN2(1%W;l-f2m;gw!7qOMQGfBQKyttWf4=(#Lzc7G+SLi^v0?~)KY;!aNy;iIN0b6! zkTwnw2vaGSu`M>Z4lkb?4_-_Pnmr9fJPj66)w9DqW_86_NL5eGrv@vrhPZrcKv6z5 Vny1Qp*G2V>&{n18qkO2r{{sRcnDqbv delta 3506 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 F`ycBCe`^2$ diff --git a/Runner/Program.cs b/Runner/Program.cs index 7f675fe..a03b2f9 100644 --- a/Runner/Program.cs +++ b/Runner/Program.cs @@ -16,6 +16,8 @@ static void Main(string[] args) // memory usage of the process. memoryTester("StructsVsObjects.exe", "Class"); memoryTester("StructsVsObjects.exe", "Struct"); + memoryTester("dotnet", "netcoreapp2.0\\StructsVsObjectsCore.dll Class"); + memoryTester("dotnet", "netcoreapp2.0\\StructsVsObjectsCore.dll Struct"); Console.ReadKey(); } diff --git a/Runner/Runner.csproj b/Runner/Runner.csproj index ac7ad8a..c03174d 100644 --- a/Runner/Runner.csproj +++ b/Runner/Runner.csproj @@ -31,6 +31,26 @@ prompt 4 + + true + ..\bin\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + ..\bin\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + true + diff --git a/StructsVsObjects.sln b/StructsVsObjects.sln index 2fbee14..7d1350b 100644 --- a/StructsVsObjects.sln +++ b/StructsVsObjects.sln @@ -6,6 +6,12 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructsVsObjects", "StructsVsObjects\StructsVsObjects.csproj", "{BEA29F4F-D10B-436E-9320-DD16CE79B783}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Runner", "Runner\Runner.csproj", "{A807CCB7-F47E-4197-9A20-BBC597FC1E1C}" + ProjectSection(ProjectDependencies) = postProject + {BEA29F4F-D10B-436E-9320-DD16CE79B783} = {BEA29F4F-D10B-436E-9320-DD16CE79B783} + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD} = {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructsVsObjectsCore", "StructsVsObjectsCore\StructsVsObjectsCore.csproj", "{6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,8 +25,8 @@ Global {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Debug|Any CPU.Build.0 = Debug|Any CPU {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Debug|x64.ActiveCfg = Debug|x64 {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Debug|x64.Build.0 = Debug|x64 - {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Release|Any CPU.ActiveCfg = Debug|Any CPU - {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Release|Any CPU.Build.0 = Debug|Any CPU + {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Release|Any CPU.Build.0 = Release|Any CPU {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Release|x64.ActiveCfg = Release|x64 {BEA29F4F-D10B-436E-9320-DD16CE79B783}.Release|x64.Build.0 = Release|x64 {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -29,8 +35,16 @@ Global {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Debug|x64.Build.0 = Debug|Any CPU {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Release|Any CPU.ActiveCfg = Release|Any CPU {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Release|Any CPU.Build.0 = Release|Any CPU - {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Release|x64.ActiveCfg = Release|Any CPU - {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Release|x64.Build.0 = Release|Any CPU + {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Release|x64.ActiveCfg = Release|x64 + {A807CCB7-F47E-4197-9A20-BBC597FC1E1C}.Release|x64.Build.0 = Release|x64 + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Debug|x64.ActiveCfg = Debug|Any CPU + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Debug|x64.Build.0 = Debug|Any CPU + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Release|Any CPU.Build.0 = Release|Any CPU + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Release|x64.ActiveCfg = Release|x64 + {6A99975A-C2E3-4D8C-A3DB-3A5D1EB6D4FD}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/StructsVsObjects/Program.cs b/StructsVsObjects/Program.cs index 02c9625..f1cc93b 100644 --- a/StructsVsObjects/Program.cs +++ b/StructsVsObjects/Program.cs @@ -16,7 +16,7 @@ static void Main(string[] args) { int readedValue = int.MaxValue / 300; - if (args[0].Equals("Class")) + if (args.Length==0 || string.IsNullOrEmpty(args[0]) || args[0].Equals("Class")) { GC.Collect(GC.MaxGeneration); @@ -26,7 +26,7 @@ static void Main(string[] args) Console.WriteLine(ClassStatic.SampleClass(readedValue, 30)); } - else if (args[0].Equals("Struct")) + if (args.Length == 0 || string.IsNullOrEmpty(args[0]) || args[0].Equals("Struct")) { // Console.ReadKey(); diff --git a/StructsVsObjects/SampleStruct.cs b/StructsVsObjects/SampleStruct.cs index be0b967..9d73f99 100644 --- a/StructsVsObjects/SampleStruct.cs +++ b/StructsVsObjects/SampleStruct.cs @@ -12,7 +12,7 @@ public struct SampleStruct internal int j; internal int z; - public SampleStruct(int i, int j, int z) + public SampleStruct(int i, int j, int z) { this.i = i; this.j = j; diff --git a/StructsVsObjects/StructsVsObjects.csproj b/StructsVsObjects/StructsVsObjects.csproj index a9fffc8..213528d 100644 --- a/StructsVsObjects/StructsVsObjects.csproj +++ b/StructsVsObjects/StructsVsObjects.csproj @@ -62,6 +62,7 @@ + diff --git a/StructsVsObjectsCore/ClassStatic.cs b/StructsVsObjectsCore/ClassStatic.cs new file mode 100644 index 0000000..ec73843 --- /dev/null +++ b/StructsVsObjectsCore/ClassStatic.cs @@ -0,0 +1,142 @@ +using StructsVsObjects; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ClasssVsObjects +{ + public static class ClassStatic + { + static bool logMemory = false; + static bool logTimeInternal = false; + public static int SampleClass(int readedValue) + { + int ss = 0; + Process currentProc; + long memory, memory2; + unchecked + { + currentProc = Process.GetCurrentProcess(); + memory = GC.GetTotalMemory(true); + memory2 = currentProc.WorkingSet64; + if (logMemory) + { + Console.WriteLine($"memory before {memory}"); + Console.WriteLine($"memory before {memory2}"); + } + + { + SampleClass[] sampleClass = new SampleClass[readedValue]; + for (int i = 0; i < readedValue; i++) + { + sampleClass[i] = new SampleClass(i, i * 2, i * 3); + + } + + + int[] tmp = new int[readedValue]; + + var sw = Stopwatch.StartNew(); + + for (int i = 0; i < readedValue; i++) + { + tmp[i] = AddClass(sampleClass[i]); + } + + + for (int i = 0; i < tmp.Length; i++) + ss += tmp[i]; + if (logTimeInternal) + { + Console.WriteLine($"{ss} {sw.Elapsed}"); + } + + Process currentProc2 = Process.GetCurrentProcess(); + long memory12 = GC.GetTotalMemory(true); + long memory22 = currentProc2.WorkingSet64; + if (logMemory) + { + Console.WriteLine($"memory in Class {memory12}"); + Console.WriteLine($"memory in Class {memory22}"); + } + } + + currentProc = Process.GetCurrentProcess(); + memory = GC.GetTotalMemory(true); + memory2 = currentProc.WorkingSet64; + if (logMemory) + { + Console.WriteLine($"memory after Class {memory}"); + Console.WriteLine($"memory after Class {memory2}"); + } + } + return ss; + } + + public static int SampleClass(int readedValue, int count, bool logMemoryInternal = false, bool logTimeInternal = false) + { + + var currentProc = Process.GetCurrentProcess(); + currentProc.Refresh(); + var gcMemoryBefore = GC.GetTotalMemory(true); + var memoryBefore = currentProc.WorkingSet64; + + + logMemory = logMemoryInternal; + ClassStatic.logTimeInternal = logTimeInternal; + var sw = Stopwatch.StartNew(); + int val = 0; + for (int i = 0; i < count; i++) + { + val += SampleClass(readedValue); + } + Console.WriteLine($"SampleClass(int readedValue, int count) {sw.Elapsed}"); + + var currentProc1 = Process.GetCurrentProcess(); + currentProc1.Refresh(); + var gcMemoryAfter = GC.GetTotalMemory(true); + var memoryAfter = currentProc1.WorkingSet64; + + Console.WriteLine($"SampleClass(int readedValue, int count) MEMORY {memoryAfter- memoryBefore}, GC MEMORY {gcMemoryAfter- gcMemoryBefore}"); + + + Console.WriteLine(" physical memory usage: {0}", + currentProc1.WorkingSet64); + Console.WriteLine(" base priority: {0}", + currentProc1.BasePriority); + Console.WriteLine(" priority class: {0}", + currentProc1.PriorityClass); + Console.WriteLine(" user processor time: {0}", + currentProc1.UserProcessorTime); + Console.WriteLine(" privileged processor time: {0}", + currentProc1.PrivilegedProcessorTime); + Console.WriteLine(" total processor time: {0}", + currentProc1.TotalProcessorTime); + Console.WriteLine(" PagedSystemMemorySize64: {0}", + currentProc1.PagedSystemMemorySize64); + Console.WriteLine(" PagedMemorySize64: {0}", + currentProc1.PagedMemorySize64); + + // Update the values for the overall peak memory statistics. + Console.WriteLine(" PeakPagedMemorySize64: {0}", currentProc1.PeakPagedMemorySize64); + Console.WriteLine(" PeakVirtualMemorySize64: {0}", currentProc1.PeakVirtualMemorySize64); + Console.WriteLine(" PeakWorkingSet64: {0}", currentProc1.PeakWorkingSet64); + + return val; + } + + + public static int AddClass(SampleClass cl) + { + if (cl.z < 100) + return cl.i + cl.j + cl.z; + else + { + return cl.i % 1000; + } + } + } +} diff --git a/StructsVsObjectsCore/Program.cs b/StructsVsObjectsCore/Program.cs new file mode 100644 index 0000000..f1cc93b --- /dev/null +++ b/StructsVsObjectsCore/Program.cs @@ -0,0 +1,42 @@ +using ClasssVsObjects; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructsVsObjects +{ + static class Program + { + static void Main(string[] args) + { + unchecked + { + int readedValue = int.MaxValue / 300; + + if (args.Length==0 || string.IsNullOrEmpty(args[0]) || args[0].Equals("Class")) + { + + GC.Collect(GC.MaxGeneration); + GC.WaitForFullGCComplete(); + + + Console.WriteLine(ClassStatic.SampleClass(readedValue, 30)); + + } + if (args.Length == 0 || string.IsNullOrEmpty(args[0]) || args[0].Equals("Struct")) + { + + // Console.ReadKey(); + GC.Collect(GC.MaxGeneration); + GC.WaitForFullGCComplete(); + + Console.WriteLine(StructStatic.SampleStruct(readedValue, 30)); + } + + } + } + } +} \ No newline at end of file diff --git a/StructsVsObjectsCore/SampleClass.cs b/StructsVsObjectsCore/SampleClass.cs new file mode 100644 index 0000000..fea80c4 --- /dev/null +++ b/StructsVsObjectsCore/SampleClass.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructsVsObjects +{ + public class SampleClass + { + internal int i; + internal int j; + internal int z; + + public SampleClass(int i, int j, int z) + { + this.i = i; + this.j = j; + this.z = z; + } + } +} diff --git a/StructsVsObjectsCore/SampleStruct.cs b/StructsVsObjectsCore/SampleStruct.cs new file mode 100644 index 0000000..be0b967 --- /dev/null +++ b/StructsVsObjectsCore/SampleStruct.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructsVsObjects +{ + public struct SampleStruct + { + internal int i; + internal int j; + internal int z; + + public SampleStruct(int i, int j, int z) + { + this.i = i; + this.j = j; + this.z = z; + } + } +} diff --git a/StructsVsObjectsCore/StructStatic.cs b/StructsVsObjectsCore/StructStatic.cs new file mode 100644 index 0000000..7cb38aa --- /dev/null +++ b/StructsVsObjectsCore/StructStatic.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructsVsObjects +{ + + public static class StructStatic + { + static bool logMemory = false; + static bool logTimeInternal = false; + public static int SampleStruct(int readedValue) + { + int ss = 0; + Process currentProc; + long memory, memory2; + unchecked + { + currentProc = Process.GetCurrentProcess(); + memory = GC.GetTotalMemory(true); + memory2 = currentProc.WorkingSet64; + if (logMemory) + { + Console.WriteLine($"memory before {memory}"); + Console.WriteLine($"memory before {memory2}"); + } + + { + SampleStruct[] sampleStruct = new SampleStruct[readedValue]; + for (int i = 0; i < readedValue; i++) + { + sampleStruct[i] = new SampleStruct(i, i * 2, i * 3); + + } + + + int[] tmp = new int[readedValue]; + + var sw = Stopwatch.StartNew(); + + for (int i = 0; i < readedValue; i++) + { + tmp[i] = AddStruct(sampleStruct[i]); + } + + + for (int i = 0; i < tmp.Length; i++) + ss += tmp[i]; + if (logTimeInternal) + { + Console.WriteLine($"{ss} {sw.Elapsed}"); + } + + + Process currentProc2 = Process.GetCurrentProcess(); + long memory12 = GC.GetTotalMemory(true); + long memory22 = currentProc2.WorkingSet64; + if (logMemory) + { + Console.WriteLine($"memory in Struct {memory12}"); + Console.WriteLine($"memory in Struct {memory22}"); + } + + currentProc = Process.GetCurrentProcess(); + memory = GC.GetTotalMemory(true); + memory2 = currentProc.WorkingSet64; + if (logMemory) + { + Console.WriteLine($"memory after Struct {memory}"); + Console.WriteLine($"memory after Struct {memory2}"); + } + } + return ss; + } + } + + public static int SampleStruct(int readedValue, int count, bool logMemoryInternal = false, bool logTimeInternal = false) + { + + var currentProc = Process.GetCurrentProcess(); + currentProc.Refresh(); + var gcMemoryBefore = GC.GetTotalMemory(true); + var memoryBefore = currentProc.WorkingSet64; + + + logMemory = logMemoryInternal; + StructStatic.logTimeInternal = logTimeInternal; + var sw = Stopwatch.StartNew(); + int val = 0; + for (int i = 0; i < count; i++) + { + val += SampleStruct(readedValue); + } + Console.WriteLine($"SampleStruct(int readedValue, int count) {sw.Elapsed}"); + + + var currentProc1 = Process.GetCurrentProcess(); + currentProc1.Refresh(); + var gcMemoryAfter = GC.GetTotalMemory(true); + var memoryAfter = currentProc1.WorkingSet64; + + Console.WriteLine($"SampleStruct(int readedValue, int count) MEMORY {memoryAfter- memoryBefore}, GC MEMORY {gcMemoryAfter- gcMemoryBefore}"); + + Console.WriteLine(" physical memory usage: {0}", + currentProc1.WorkingSet64); + Console.WriteLine(" base priority: {0}", + currentProc1.BasePriority); + Console.WriteLine(" priority Struct: {0}", + currentProc1.PriorityClass); + Console.WriteLine(" user processor time: {0}", + currentProc1.UserProcessorTime); + Console.WriteLine(" privileged processor time: {0}", + currentProc1.PrivilegedProcessorTime); + Console.WriteLine(" total processor time: {0}", + currentProc1.TotalProcessorTime); + Console.WriteLine(" PagedSystemMemorySize64: {0}", + currentProc1.PagedSystemMemorySize64); + Console.WriteLine(" PagedMemorySize64: {0}", + currentProc1.PagedMemorySize64); + + // Update the values for the overall peak memory statistics. + Console.WriteLine(" PeakPagedMemorySize64: {0}", currentProc1.PeakPagedMemorySize64); + Console.WriteLine(" PeakVirtualMemorySize64: {0}", currentProc1.PeakVirtualMemorySize64); + Console.WriteLine(" PeakWorkingSet64: {0}", currentProc1.PeakWorkingSet64); + + return val; + } + + + public static int AddStruct(SampleStruct cl) + { + if (cl.z < 100) + return cl.i + cl.j + cl.z; + else + { + return cl.i % 1000; + } + } + } +} diff --git a/StructsVsObjectsCore/StructsVsObjectsCore.csproj b/StructsVsObjectsCore/StructsVsObjectsCore.csproj new file mode 100644 index 0000000..8c0215a --- /dev/null +++ b/StructsVsObjectsCore/StructsVsObjectsCore.csproj @@ -0,0 +1,25 @@ + + + + Exe + netcoreapp2.0 + AnyCPU;x64 + + + + ..\bin + + + + ..\bin + + + + ..\bin + + + + ..\bin + + +