From 7417d4205b2c68b86a7a33a192253dad6375573e Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Wed, 19 Dec 2018 22:37:43 -0500 Subject: [PATCH] Stacked perf. --- scripts/plots/skylake/stackedperf.pdf | Bin 12412 -> 30230 bytes scripts/refreshplot.sh | 8 +++++ scripts/stackbar.gnuplot | 50 ++++++++++++++++---------- 3 files changed, 40 insertions(+), 18 deletions(-) create mode 100755 scripts/refreshplot.sh diff --git a/scripts/plots/skylake/stackedperf.pdf b/scripts/plots/skylake/stackedperf.pdf index f61c1efdaa6bf2232b6896f50d56e01386a62b99..364a9033aa014c5a069ad297a3127cff8b4b379c 100644 GIT binary patch literal 30230 zcmbTd18`*R7B(8&b~?6g+vdcc*q9^}+qP}nwmC5-oMd7rH}iexJ9WJtSDZ>B& z00wbOYiCo(&#Seev#F@5v7L!23_m}Nle43#p$&|CW|fXi3`q-e_nF2m6PIkpr3BJ} z0RRdK07>D+;vb}5kd<|3VMc3dbl#&7H)US2CfAHJ>`B(%(Oqs-*Il0f`hswWXGmx7 z_OiSEaqP2RaB*TpaQeQQcaih^=;cDgJ<$1}2mh47tx;pMr+u5p9r4|R(HEJveZW$} zRDtV+(Y#BrkjEu)jG&wc+G3E7{5G;@hib$+`Iw@*HYD z<1RiVv^33dyF$sPfYCiab(=xG|1H2xb_7NKTs6FSwwm!2@h} z3R2}2q>R`agpL4}U-^dW2t)Lp>BQlVsuy?UJBXha)W2Fl$qy3m2~`#wPJsX!>kJkO z4M6s=H0Owa^^pedRb?m#{cep16iG2Wkb)kpgS>n^_c8>JnZL4xu^{&goUU*#1<6*9 zpu47a9kxDrTbjzId5^Cw+NJ%@@=|4Cs)g;S6VWV&ERj7Eu-uhQ%LcXF7?^M1(XzKKjpxSZXDU=3)8p9uzM@7}(TuCK3$`%i~g^--HB z^UyLbZm?DNDF>`Cz~Okbn6LJ$Jr{%zKRAI}R|>aETXig41f}E~Kv^%BlmU3zH6=44 zZ!RC#_l;4wjHLMRR^o4O(iJ4*@#$au>Wy51elkPz8 znLm%rFLX5*6d#iDyK?s6;YA8u5|2h|rQlui(X?rLB4wRY|9pq#~lV; zED@9}d$%oGLl%?zRs9`qB6)AOQ9z)FKtSN5If?{|xLGmg^d(7MB9W|#2ZWhUJ3MUR z>e_~c5NRFMq`XbX@?JGyY*s@_77`)1^8_jMTu-fxW^tBt19g!wKN+&;sPgzd5py=ji@EN`LS8!r zCk=@)MtjX5e{Rk3@vMHcICA%u)*d`A()d#7(MV!UQ|hIq(bgxo8JLT(qvi=WNbXiS z6apAeIB{Jt=;4=Z6k{6u4IY(^7>zaZ&G)vVYO6sZh+-?wrG9enmo^}3zdb=R!6I@7 z@l|q>EVKX`+09*hHexc}D99fFCT+8y2ngi^F3ND#2Xnf5fkXCqk-@`yS*tXsOkGf4 zD{s=+k{5`n$?k!+PfQt#`=+oGK~&GP@A(P#@=(x4SHCllA|Pje0ZCl+1Q+CzVOQ7O zs)BSef~(!uG*r=p)?neGU>g2OPvBe?=%QTN#eGpFI@Cp$y7r}$CB7^5S&=;PN1?NR z|8Hd+Wr*E=z}Ar^Md8q#W9}1=LslY&0YHBG5}uBs2sqWqRN=zAS8p88UYRp8RWso= zyD=%O$5*$yN_T_ItVp+V$$s9pjnmuMFXBp(OYZ6lYUQeKJgxt^9%t#MPPR0EWGs)s z(3AUK%MRRR#|YC7Ap!l@t!ice4Jb7{t&$&3s%G#vn`t*-=Gos^4P*18gV4v3d49o{ zzikh8v>&u#)VZ!WjI<$=p^s*Q6b*JXNh|x{z|K8mOnLY~EBu5t_8=gV;~>-lE@c%nf3P%ASh|YoE>APZ&}dSq02(AEL?v1fqT;8 z>V6#m|v>^>ZUC%yd#W8653cTQ-xb>um?C)01nsIBfUjUPdba z7zKI6g3nY zs)1Vc?@Z}=6c94(-w>;HMAlU&^6^vf2kPMGQc0m;SS9DK0q2iMVc*n=*X3=H3KAT` zQn^~P5!uEoFy}F*{nVjn9>0+n@{w8LY}sd=_t&AUvCt6pfi#SnRee7XQ)*}|vf-BW z(*b6KU~6Gz9jT5bFfW;CEHB~f%!)CzmG#>;oS2d$vam_iNQEV`%d8%l9xn#IfXHBGJ0e)?jyz4xAz;721$&dMlikE~`YxtwGN zcQ*{cfpS(!feRf6Tbe`QJ@f+GGq~v)%L7214ArO{H_IJS2~v1X@A6HjM&v}$v`9Fw zWSHF;EJ$>+od(TOIqw!WEGN7%HEo4D5i;~>gW`hgMW~#lUI#{Rc6)xFdjZ|{R)BnDgg|=okS(_^z`k94KhDXId*06xe%?;KQ%WQS!;qa z4*=W*HUonjsZLP>STeQAVL+~#l+QC_YA!4gbct#4S7l@`FJiV!I?KJb?x{v-*PWTE zQAlyNM)VZ~4AIi~{)BwE$_k1%H+0T1d}$Y5(r7~f*x$4Ez z??6SI*bwofA7Iv>AeDx!edZK5z;GzXVv&js3WXMdM-VDqX2NevY)db!5v>Z;Enah8 z*$<6Bf5o-^E%J>kS6-urStU)`ev#&h`(BTG6l-V&-qA1oVW2ls^9CBj9 zYQs86v9eo%>2R&R>Y1hq0>xf>eh2!PoWymz&rc9zDzS@N3X~@Ehm%HJz^a26Go8G1 zGhjITZAw=oN)3Y19g0Q^2MYNh#!ppuoNR#Xg81S%GXXSsO2bI`h6==FhXJ_wBNCLg zSUG0lLZZ00a=4`@x{at2B4)hhL5H66cSJvaej*rCTa$k!!Jps$q|bkH=0DfZteKgU ziSduaACvjt+4W!fw3xfIgo^WLE)C%2{R4a+42F!K27p0C2*3njFgE=B{LHXF8~*-e z5Vx~+{ts_6Iz~E10NXzq`kw%1bWEQR`+q~spAg4?LoA;V=YK=2pAgqS(C2`k=f5V- z#P|vSQx~Xu*qZ_v6b;Qy|5}Bjp`+>Nq?rEc$RKBGVreLB=MK>Mgct!V?2G_rCU(G= zzr0007x3xs1o%^F{9RT^ING_`|Hq>Kj{g_>&#tHd7*rh%ZJq4@jAiWc4=e?6c69k` z7JpVQ^64dN>S}3hsw^S=$K_vprflkD=i+E=>IC?+|H}WltUr_fXIcL$cbNWm`V;Vf z)jNOizde}%OrHnye^o%gJU!f1)tWEY%}brEvPV>l%9YDh)Y8mRP$ZF=nQ%}71Ibeb z`zdjd^Jl*cVHeC3;}Fk>qY{^*5lI4%7g?e`H-VON=5E?>7&yJSRKGpvR|%J2aF>7x z`!>%!c>BDq@KAVdnO`>fe*ML^hzS77{Z60T$MV(i>j*_d&MdIzPY}fgGZ*@M-p3r0 z9H3f!$XvUuO(yeQF|!FTplQ6JORZh=*2 zn#xlduuYW>u`0OXCqHb4#t(2(s&86oF_Xf-0=ExF6)})q=pUEwLA^bVqkDpmfwlWGi?w0*K zgXQ<*GkM=YvcGC}ueBWAo-~-FZfgt*h*`Jyf`$y7GzH(;mW!&{WLjk!n*`rbvq4gS zR?u2Tj5zQ(RU-xmy%uVku;@zhD6XZKa~8V6yV}82x0&{3ce-`^u9WwMi|(ifK3w*A zb9j`5tcfN$J*>GLiAb_!k1g~x-a!{GSf`^?bwnFN85yHge)7Qpl%Myt^7N7i?31Ax z(Eha0EL+u3D3XGeGz&>Y{ZI}KbN-q?(a|xWy3w#P89k@;+ATDdd|6=kb+k56IPY;W*+zobnZ~k;aomUbMMlyOe>Y4_mW?Ip%T7C;ht{=Kee~YK zqvbvL{o(!L^qVV&a%i%H)w$lZr8!isZ58`aDJ5$?!2^n2__!CMhIJdC80u`bBW6kA z@*_&CKF+K+mp#Gw1jNL+*kS{`IGi*j2147siavUqvKX@UBdx?^bA6*mY?=VWvd!9ovoF{-rtli7N0subsev=xmT-V zVMhion974E?`JC~$@0k3>IwWJ_ZQHcofFdE$yZcM??uBHtmiRLFO({r5@1xcsu?wG z&Y)FK3rwsvD=4Sivm8TsD~^GZ^b_3hsZ(Vz@r2q~AKPpN-PEYbB*W{S&Ot`C`VJM4 zO#~tR@}BSl2Tq(I`*vHvp+z_YX>c1%>`;uzNy)&J+i&v)!->OEhuAXsgdvNVSkMJw}fKlA4 zU$fCv8Mw6%&s6?xC9EU?$BZp81~qZTTCXHTr&O;$OC6n8FxZ}RTl$1~mCkWt+{A_h z-N(R?1fPvbhIc5fPn=h*uwe?p(7?_Sa(pOyNk{tRsmknm+NMe5;q@E%G;ix+izKBC zKEQ2AlbJ-=uG4XX!B~O9f+r;M(!4Vse-xHyl{H!(lvF(0Dw50wZq>sh)NPd67eFnjnKSR@vZ9NUx3~sd#n5DlB(uBeUjf7dtg~XTyu(fWEkPxR zAXAi&rJ+*Jri`-Fcx#78k~Uv4+^u&)77Tqg_CBQlsq0(J1=EDnq`Xha1-MM2z?ko- z?(A!c6kBFWn|0>6sp2|U$EGZJV>GEpueBSgSlG85Hzg;KdcQNu9;;R6-f<}D0$re4 z6_DLZP2(j^l~h#_Bz&_@F>)mBfHgM=_#*BlManEiGj^?O_}rB|*C1j11E)pvua3in zp4BBsX^4{7Nvi@rm>t4!zR7gt>-c;u1a0#zFTCFD_baPKs|M$$@jgKolBr_+E<-bO zJtGA=SDh^V0|mti zqbXh4C|fYgqv(1i9@JaO^wp9>Zcam#xyJpd603e>ifp7oDcJ?ua9W(10xlW;7-A*@ zh3*SM*kZn+8T?fdAga6nHLK=)i!Rk^X^i~gxOdz#gS~FS$ebNf9UV6*aGmlQ!$Y zr7#JxGbY{`iLQLeYMMA7C{*=Xv>)c-W&Gu?Ougib*5%3BrPr-ebG`w$7@tgBhW?g& zQPfs5GM`xDukgo^((M*M6sn1U?clG)v1Qkm>*U6`mMILg(=1zuDKT?z8(Swj2R$sc zylx&_o-f=p?Y+;HcWqs+F7P=cFKmed3RE0bVk~ZOVD-b`k@(w zythj4V=+sOE($otsCe3rI%d*~}TtM-l>VCO! z8LYTa9)40ji-cB z!?nsgT9dyN$NH9idnDfe_{<=Gz zfzv=8c-{`3)r}wCQY#$K?D8^?$#QXW4X-fVjOI4U`V$;Jv>1&n?oc zV?C{&d#Lq=x#3r&K3rY)aQ4N47TRi0FO~^ZNH?`AtIQ8qo_f3NH@1;nTagD>ES!sL zxQZ{4^l;u?xt`)4`0xz_v6TiiDZ-fk?yz^zMo>CVl%h5V^r&+v@avBx{f0=&lpo($ zKBUhYS4)>S4U$GoR4($c^a+SI_Amzwg^M@voHw*@==LTR73v0!GgntmTJ8y3@~GgG zBnVH}tqaz94~}Y#VGP~?PW&o1;wl%P`u11O(Huo@=_|>mMvE)`DuKs-)RJG=AfX$> zAa&%RS#}x7$Y1*p8DFC`iVaXQaO$cvFnLu$-;Tk{Yn7V-i|0PY>1y1-`}|U4v3-_* zfCv;62H#I&Lz&7CYhk@}Kl(|Rnf62QSt4ESfzGRTv0`=XeLro5J4N%Y+{9ZucsA24 z4$;f&sh|dbeg18_F_MXgJuQnlYCVlFWMkZXmAQl?QsJxn{?+>WRv+CoTDo3AyxL=b z)6GMT@2wUI7sKf|a-H%s@%12lntKgGAO%|5@NeUTsBa11x=w=%v#K#cc;*qwsRnp$ zq@XRMX_S#%#W5V$&>>QUGlon}>*Tp7;*+qA@VThv1o@PqIDf5iopnY~SLbE7q8{}u z`i6LU^pnX0W$nUp$0t3j_Q?Mxg9QP@Pd!P(VX$DMZrV;Fjuljv1gaX}2_mXRwWs(! zyt<-IX^F}pZP$-WpiWAZUM^7sOu8c`N0n|WOqUa<-&#;fa-Wg%Ue1+^5ZQW}RV#>j zSMAQ_nr0s&dD!rPS9Wiw=W|{hxoTN#RA_hGPUB(cn(h7Cwl26fpyH#U|A4qhY!#30 zb!xFqr}NO$Y`$zoty0g|bkz_EdgUxk{TN2w=?wdky6?d;WkpH%mH8{2b^}!-#L#+edPAx2QpH?p=L8X;eTA*d< zsq^OhjR?hli^ZG#al8(~IZ z+o?c(SIPo{t{`KUFjCa^T&H%FVA+`4fE&d~^t2=9#!jvw$~?gJ8zqWY6vfMX7NDeO zKCb@O$KQC^H^x=mwISDbCnK?x6Zsaj`YyULzO$N=d}$IEQ>JBqQ>Zh-|2BCxCB{~i zQGc4ry+^_<92cHiTll=?y?L+@xJeoH5yv0YT@4z)^JIU2<2wKK$Jk~4oUzB-K6yI( zm@b0+FJ`KQ)dIJE~^a(z_Sg(~^dw!q@gWJ$uG@3k8s9bB;gYq^iJD7=ol* zdkHfeF6QX8pY~QW?-1QK%(oL>TLvzDWZ*7&(!$~p%{N<|cJE90H|#>UTt zQK<;11^C@{6G@p5ej@~tt-P{z*$vpJalM4{h*FKer+@c)4IRz+&g+YMigs{` zg5$Gg0dc74u}Co`k#{r_b50<-VEt?9w{t&(#8SJ^W#^RH9YiHFI#ln~K);^T7pY@O z0i?WReaud1=-gWors%Dfb_U&9XNi@;$i@1S9|GyAuI_z-PciuRf!t;SF+lfQiQM_T zO`g&N&11NbAxfB-i#8iftzq1qjCLESmvGr=Our&OvacFOVtdABk*C-D_+q&I<#(IL z&|nRQpj2xlU8$0afi8b@);nvFf_ZlQXqbM{zG>PgO$3)*Z_|y@iy&QQ4-hM^9hIe= zgPEMnR0D{6)C0x4QJ3o<1iNzv=-qP9#ix0ftz@dG4rO^s=h$#PO=*~?$W7C%2~BM^ zp7iAqqFF`PjX-=n1WMHb!z~-dDQ^eD)6f%m>^{_FZZR7(kovF{3cWUIfy1#OPngUa z#z0*7aasbZ4s7e=d1bqVyibvNxw3b&F}tX)S|52Bttsvb!ACUUqHrBL57r-he4s9_ zsMe&L<0yV_^51s*T}nA#L-wF~0DNY4Y*O-cW$0<i?<#yy~m}kFa&sS8cDbIKQ`z6f0!n@?9;qq|H&<9Ek5sHxHz!x0@7T$of%f1In zU}Z6k*dY@Zk3<-i2j#a(oMjwbQ9NPA06V%3gfnEn0DHW5gzZ=cO5Caf%!Qf}*!_>F zcuoWbs_a61?yD~$m*Tt&hK);HCah%xI?qrZiJcNfN*pRti(eKu7msd5J-NFQePY@Y zPK*f+yiCVeQ?3TCP_I}hPv{@9Y5kMj+l}pE==)j%hnq476{MxW)BNl(Jud2)f8X2sp1xA{h!_J4D~ihIr=Q^57Egn}S} z;%xIW18;{NkTYjYiex!LZIhtT=_`#wNz0#5(Hs`yl%_2Tmq&1mxXej8zy6nmC&#U8eq*u!ZJAC_jEOf27Q$mcx9b7@%yR1R-Mx5{rl@=ewY#VZ9g zPrhD@LKHrOmA%KRY8Y>x4I%QXHMb>YLs?#_ik0&mxoR}2?m0pZK!p&qh^XQjDu%;K z7&xDWx3SX>VyhvC)YMZOJ*Y_=H};e_(J6D3)s-`ko!RvBpO@PW@-egg40G;(D`(gL z@ixaeX^s4~Y5|wT`KwBx74ph_i9}`hc&N)7_z$2q*E9xTI-ix|);1u4f*|p11kR6My1=z)d*ZtpEY` zVH&hc3t2Q>4Rz*V6aIom286BZ%<~@$PA?aHbeDS@VK2SU!6EwcdYU<17n> zanF@~TQ{yJOHITkr|PsF!8&3#lvP4DuG7IKYAdt^nkPRtn~5Igx_!7S(AqjY{xO|W zwH+Z}ti&$OZvZ>LbgE+Ttu8Lj58qO+($v(w++o*BNu75y`+~`4GuvuL7ma+FA&GN# zYcnwlik+2Mo)Oy(j)Uw=MKcE*{D@2akPDV&)&;q);rlGiO%b}ipHOCE0uw?E)gqg` zRiv{TxmbUa+$cEOc7aP&T)}8-F?nW^SClfX#$*HhTxJOCQL!PJK%F#bwVw>DiyMVD zzukd_o11cr`v}S}Nxp>Bh=T1rWgiuT1@LRR8aN%7< z5?yD${(;zaV(8ty9H`xR!hqku34`oU9!PY9SyRHHVjdrec&{M>Cw#GXf8RmH2wM%H z^rH(P_ZRrW^(P6y?3Q0jwBlG+qaas5JrL=7f%Y5wVC~keknkdu;nNWDzEcRh_s0mi z@5Kl|7Js@TSawT^y3h9@?mpup**+QuQs~G0o|61!0=-N18CB&oYSd@cPgi%G`3+Ly z*M_f9Aqm9xeEnZOz$jl2VikH29Oq!kpv`Z`>qO4!*6SIBa-dS}(tg91@v=xf>Fc-X zLsN2GZ5yaW-=OLn(8CT115x|$gO1B-Xtdw2YJsXUx(TOJ`|)Xp-|ZXWs?ZmMoC|~; zTFDlrw%6JW9iSb>qh2+@Np3G16p&znuR29N?it3M3&W< z?HcCH8uGy=kX#1oT?2Bjys6n^DmHEh%e5Z7CI9{m3{(XvxB_g@YZJ*i^9WVk1Dr}9 z{y{^LHI0Bs0s{MeU{)x^j-}dDX}3Q$f%Lt_2CmpqHYjy|L1Ha8;{1CEqs@ru0I#C} z?NB4|f^ll<*CtFxeA0&prf-i(S}+LA?3E@P339G2a(T`@xMcP36dQy;rt!&L6$c2z zx)k8Am0;?#c%f}}$Y=a=Xa^)2C7Ul`H&1Q*@-TBjRWQl5$Duv)7`SG<15Li?5Isf# zjlp>gy&Y}HJ_K!0ial?PfG9yk=#v@KRJstl@a?`MuHZc&%XXlObO)9T z&D)1N796)7OWF%933L|;mpihmr!ICm6VJ}`jfIE! zl&){QoBDKp6KP>Fmms`^n}B^SI)4zBBY@TNACk7DzhHBOPwdY#VWDy|qztCHgVyY` zb%tyF=A986i|{_QT{Eo59Y;>yd~wH~5g(ga9m6AMkji4f-@(q_^WzZP&$)}3w+oNo zeB-VQPSP+@mct-p_$A}qh33jKkElHVJsRa^P(f7?IorSPc%L6DsSiiSysc`3QCVO4 z%TrB#GVb-Q@7ro9&3wQLPyNJFAU(bMUUl);0D<3zds>}f4fo-8k6V_Q@W^^scwT_Kl$p+mcz)rq^}b}ovbRA&TB^X z>(t}arK{r(ZbtcI(99L2vcqT8oU0GENbkte8;H$(rQYMu$d+g>^p!rYN3TfgOq&OF z6ENC)f5^?L%}-vkFt1=OxL*&9I^~6N#yqs377LcYzJct{6#M;;yY?T{J_`%mzi-+f z4*nk|`ELUI4^=N}>SXL_Y42?3_!s&82a-3m`DD-4#igXxm1rbQtzAu>EsYKT-7Ics zV`=RHp!|0W)!$9lhUTA~IrG2$g#RYk>A2V!0d%aKi~uH9R<=(@nwjZeM7xx;p|z#4 zkgd73DS+{>ZbDARe~5Yxj=#-6bNge{F*9@h)h=RaFKKFNZt= zTPz)&oJA}Q9sgOstl__GCMJ%*0{r(@1DO6Th+q)2{ZuJi+L{9xG%Rg}Y@ICs0siWz zVQJ!Q;q)(^!XK@||9UZV{83J@v9bTp_n#hr+CDW7fBF5d2><`Ee~-xc&lrD3_}5s> z%mC)k_n#I{7M6d{?2paz$Nuc|kN01?i%2K-9f2ceD^N#%^gZQ^x zh_p(%NRE6OvW>C>-2?I(_ZMrk83{D4^MZ5 zHw11ym-Ibe7hF9mz)(P=dFU4Q)0&JnyO0XJ+HeN8;JL+<7Fv6q4|XI3;I-M1xkoeF zoL+rmWy1 z+v?RGL>D2BclSCnB&SUFxD2xbA}$~$sd}&RVT(8G6fIN=jky9%kNSt?U~_bwWZ08u zc3x{h!Ha+RGy4F^ObR(8yv4l5ti|;=_GmpIsfnIw z5=Kl@lFA00iN=Sp0Apg(k>t+J1CfJan9yfje->JQk|CFzN$m>D=+6Lc2_ubZglvXJPhjXEPoNN98Ng*Og$=dSW6+Ns*56j&6 z*<8ypYdo!-mxCcOs+ru#-``eow^4uTuosixUPQ8aVVk)Mnpuk{`1PA$g z1#(}<;16sSV2L*aE51efh^61J>{A9H9aMt$1d7VqzmxXR6|`kS_6CA8E1;5X9jHDj z(va_P->HpoI7{yrCeCJOB|WezR6z||uZo*a7}!|9Ft|AAcvsKZN=V&o{=H^rD#QPj$r z|9GxEl;$YbP{Xa%HM95pbN27rY%>F z9YVXiEo=9y(W_fcOavmGBg5&3(s~8gLqEJLhf*^8UM9_IF6lHRWGj`*i@dv+V)i0W z^Nbr=RNCn1D~*^?WGM+9tRew-;Rtbo05UdHHmyaV2pmzRUX4p>(tK%Ta9|gxE%@17 zMx+`rc7@UlH<;_D(+T~$2fGe8qvQ)DU+?=s(-k>R^e6w+cVRr3kK+KE`})Bt)#(ny z*VnlizISC2AJe&?kq+!^4ye(Jg{*sDv>jG10lbx@Fot%ft+EHuqUc42rrszV|*iy#| zL0^c}(=Pt~V?{iz^`J#7t1BQh-9Nd3lQJ5*G0pHnzW@LM5eeU1*P%lSj8Y6f=M;~i z{2kvG@h6;`S~+>eJ>yGdrNpe#l`9*RD^Cuf`_=b`gO2{Q;&zi!}uot z1jjkauO_VlM1J+_#i|gJZQncOwx_+068)!vGy!Fi5Yp(p^X(XS3vqm@k9SyRtpmk5 zw-fU;rdZ%KQWAH4KWm;2wU=7k4j(U=BZd3N>o4fl;|J2)g$HBZT4N1e6NwXh$z|Fb zGVv+y$?iNT55;7&r8uk3f*{R|uvu<~^a?dHSBI`h}JXplkf^Q`n zi930Umj`Li0r~d}yG6gBM>YIQtS={j4S2U~wp_K75#GK&bjB_EEc5K`YB`O+v9In!;RWG_)sWl2S8!*M1E+wRg~C_aWAwy)=j5`A#vXXZ?|(y)0Joo_v#Yv_(bKY@sP9VX^)~(qluoAn|mS zF*c0OeAZo%T#b``OGvr76tO1fH8!vBQ@0#w_tL|(uI4NbUG9D_i*J~P6A_+(;&cd3 z>QhoTy^Ae#M7-ap4f`lA(Q(~sD(rSD{A@Z>=4xs7Z z>18ET$i9n4f?fHTyMyR4zPuWuxWS*E%1|DFj*n>4+LDnk66f{wE8l|B4!JK8!PzHO zXv%2VOTOhVr#Bw#jihf?NO7^(cwP)h(E0^6+&k}k=;rWtlC~Ks{~|%=fDbI0CySnjjo()4d!t6`F?ZGw#U%)(^!bk$y2Cy}$!es|?2 zxpz1!z#pkgzTV>~Bl&G)IfI~c!(|7=oBo$2W+axW4sc zI1zEr?@cCDYTd2KdO1^>X)a0gJ&TwN`k39zug4upw^FRM#qSFnJ~H{j3Fk^)n_+qk zk91g;Xw;a46^RZ6Uhyf9m6Y69(p9iK63gC0=BQOdde!11PV|ecZNaH>$({8kah85= zu~7wO~b<{iEy|oW$ zRk-{4>VG*-SI`}~@@pN^_!!KGpbozUtV-dHg`V@zx!gpXN4rgH$`r{wi2DiOf+s** zGz4H59gqq4Sz8pRpRDQPHu!CVdQs(}l$Sc1v36vyjb@w3*Y#6=*!bwh4w~IlgV{_5 zn(iL=+maT^lglpS<(+_Qhbz+l3<$$(5sYA|!xKU6S7wy}9btA9QpL(zR3c^$YYLH~ zFlS%UWmbFeeRb&3YS$)@d%}%q0&NMenU+*r(JlRHEOnZCHQ`S{om*rH0iqpk?90sg zESPm11sAQO8T#SF%sf${a;5K@Ea{7jK{hH$f4y)+8dunjmgY-bpE%apnPvOFOG_-e z196Sa7Q9aWzV1Ixlt7Mw5gQjMbz-~9X zar=$OpY2H&oFy&Gyob!eV^4ct9Ga>h?S}UT<_6{miy20|B(Jeb+Lz9$NhAaOt1Bt! z>rSxc6U|d;<#wMDOe|YD;iBesrPxH>6ZMwc^ey2$HQ&t;UT`(*Fv`-jfX~OvZWHo| zep0cR6-n%?S*ZEMp12Dzu^b~mhUJbxfvZ)KgK}`_>o`tbLZ!MLTHI0A&&R;=+S=c? zW6D<&FdLqYXG=3U1=4?!e%=1oUb&YRwE%0TZLxGHh&V^z=_0H5t20UG0=wZtb0Te& zBSxU9v) z#k6PdLwmmyEG%Ghz!RQ2fzUbk4z=Pt7h4Edf$}85J_+YG}t~g zu-DRQtz}y+FJkJ>Ckm9z9weiRaVQV(h9PbX(9aq7fzQ#Gc6mK<-_#GhBZIubE-R27 zcajVaNtw0S$-4Os$t~ljB61S!J0#epy-V7Lx>lVs?8NTFGvR--n`hXG3TVnCho0!enWw-Cd7g)j)*P`gJn|Dty87nJh z#gNx#7u*C-7Yh$QD+zo%Zi}*DNvCS6sy7oYax@bE^u^0Z@xm zuWL8u+Z)!UwpQPc)?{_wTe~?(<=*U_NzZUN)X+3x^NmqCGxLUtR-Q-p<`90l9Ffb= zLomOTxkc?$p;PGaVwfgo?16j&(W!{)g5CzWDMw~Mu_Q_fK2ayf>;$J|PHZy7@BNjL zXO420L=afF72#8@$VxI81^J1g@WJe=z5UX6u(CSAR84+g%J}mz!h?)dv-cDrBjN_* zbg|17^!9D}B=uf+nIrI?dFPvc0lZ$XfgPD0zkWE6FB7zhwc}=CHT82PTH7)D6~aBb zvxs?fFR&F@erG{Yq*W?F5DQ-QxIb@m0-V5mnZ2mncv1NfV&!q!p-AoZLHtk-O#!$M8v; zCDt$29BH9BFw!rN@5a9{I2rQ^Ahcst5e-j$8TE#vFovqiRqRcqwfEN*x^YDBA8y!? z_cQZ6Osv!ZHYu6MqaY6PXS0a(HHwdlmt)6Z4^93umM?e2)p#yl{2saU9Pm^)=8Pv&+_riy2o4SB@i@Si#=5gaKxnAWoh4 zp`aH?GbTdw$4$r%-q9GsHIxV1_7~90iN|c>5}zv>=SL=SLs6ZledE_5yZ0JIimF%% zIJ90PJy5t&Mz#Pvn{RmeB8Fpu?q##|R&%GIn!XF@uL2&csJY^Am*zTs{`o(FLc3#j zGgHNFLw%;R!CXv)ZhMZ2&uJYe38Rhl0=iNk2IOk-HTFF-@vJtgql9?k07MyRdL-B=aPHhL#S4HZ8!|PAbg!ChW$1RuCiF6Dp1b zEl{{q8C45TFmlE7|CIODaZz^dx}efXcQ;B5!_3ei2!cq9bR!@s-Q6wSC`e1UbPWh1 z9THN~DW!n)9`Mx{<9y%up1sdM`wa7g;htyZ9c$*fu63^+fxDhD(N6j($r+n&)1U+X87;ETlUTH1ZPW(5l#tOy{@egCfsp8Q&6{2p)nDV_Zeu zU#dtvSj|;1L81P~5bH~$OsC8~m-6Td)wylYbxgcGD;OvhZWdZkz#8n1b4sw4 z3?LNSD4wTLkl#XtiL2?`J$-^i zAKt}VjeU})hyGBXm-;dOAbHNbxFi|Ymuk6Hxk?`-a{4n?Z`(39=BzlZP_9rC#XZpZ zGN`S&rAq+h+y11p57O*jH>2kBF4Sc#E!+^>r*KAeiE|53fAe&%wz{~w>9e~#iwCm@ zW=gMd%s63D4I=u3_V>%ptU#Zb$kh^jSv{^q#80<0!JUX2^TONrNmmqY>0|u{xA`Z7 z25YY?LB*VzHo_Y3Zv{9!lwX=xDJ%)NjlfrTQ+65fR`@oFqmNgN=gjgRU0t+>%>DGK zCzT1(G_z9uCc{<|2p`BOR`H~<#hD$HA-p2f?O5}6%8FSb1_zLW1banMy|+P%_@nzM zJfvCXy{0aRrOO4WU(nl~5s_SQD$9w2hlZXnnj5aj!t%o;ND*rX9J+K(?)A#0#uUfx z9!MT?ch_lr^(vnn)>uN16f<;sm7Z18P+y83u#Q4Qw)+M0(CWrrY78>($RQ=pWFWRn zOaRMf*>1$RCPU>w%C0e3WWIegHeOY;$hn|355NkFw-!tINxiS8^~ov|}Eih6;&3R0#f#X`uNMZx%_Zw4z|N+8)I zL9O!ZYwN=LQ_VDO9KEa|tW}+w040uIJAeI6c?X;0NwFJ*48wM+-f`9k6=g?Qq510| zq#k){fx?c8ytjUJTMwE5r@ZW})`?1Q2Ahh4-ZxnZQ}3;x5)HBABEnP6No_u??v1eV zhXj!ls#A$cBlO?NfUBE*Bx{*$V<|u@g7*&n6G~~y!y)0qO69l#4FYwI`N=Xs;yBG_ zT4@EvG1u$-fLX|x_9y$-9yc9*HyhcC3lllzTAhZqeG>37o#m8DP9+*euZcbHT`(u; ztIBeHxxpE$t>|TdO=8tUt$E9^yP8+|t!g;FuDCQQF5-A~t%$E#9%l4PEih)>rT_I1 z*NktEF^pPsyY;X%BE=v7HlW)elZV;zBkDt?=bw7_AA%=d;P*a(QEOPY3%dwZ>x&!w!$#7J@)DDEfl0ihbkH^^R6@)=}3YkBJ2@%~vcT4kK7 zNK2VBKa5&~JHIB(xczZ$y;OPsqXfGqPY0xAiA=-B9`%W}UdHeo5%)be7ngzsdq0_q zD)ossd<4t^C?^#(+;Z56#&Gu_QfeI!qzldC6`_-h_OoScqEZ1b#kC_}0T)g|&_iWf zemv!5HfoJ+QfiH_rdSmF`B;D>C*KgO9#I-->$x3rcs1f|l(rbRBL{SJ*2D(~n$?62 zrS-T8HE2Se-A%n;eQi_&K%;S3EK*Y`FBiwEt=oU#9*a-A*JR&9Hr7Y$j2%=ck<2on6xhH zYe9C8+vsM?d*rIK8**QJs8gNs7iiGv*+I@{-J{3mVQgn45O0OXnxi|n-CSPJ2{t{g z-FRe1(Ab)ee%#U6oPc)k8k~gpC%51pWib-hjRFFR#0i~i{sf3Gk%uaY@_?QS4x|-P z(Io_}V%>x~l%?ltd03&7?zzQZdn^l-<&I|&yOEHD+5F`TCIX)pjy2&v5;%JH!K-H3 zXCd?vA>2v`_XMH_>(RUhF`NZ-o5}NIhv%ujN)A?zBgO#;pURxZ6Lo!#@`hY$vn8=m ze(Sb_r|)C9DZq24o6RrVfCSBs0bf0&vZf|x;qMtyY;)I;%pg8rO`i>E&_Rx)cYmevyN)>fi~mdQKl0t=e}F=Pt*u4Z8|B>Ygl^xh3% zCw>?g)OX!|c&Bl7NUsguY8!>!;f>b@FVDEBJ0`g0ZpsZz)v%QG)D3R3ge{}CY_}3D z5oScSV3hIE*o1kn|)$%X|ufnjzarxu1Lfti? z_zbKGMg;t@lWXy`eeNxht7vF9x>ol~!(uiBd7?hab1`D9p_q_y9usr`%_J(~kNtJI z#rC6LL%zvDff8xnAL3B%kcS*I~H6UbJSLU_9QyB_cWq%bJL6v@$fiP$^DZ<u!Cky1%+K|cK$jT1N^Cmvv4{iNubj}0r}G_ghE zO$$MYjkLwr#3jU1r&?}hpNr?{myfo_0ISqR8xu(jb??C-2{Qc3CQgXSNeu57^Yt!h zrpWMyo1_>3Reg zzo&g$F>}eaIUdn5nnDmwT*i-a(?+q~pGoAm79UMECB3J*kq+sbr;&KUNEZK=c?o}( zcAj?j`n*V6z@6FZds-m2+nA;h<6zv+j8Okl>UzU^MuE}6Tmn#dTe(H-FKDe&OF-D&t#j zkMDGw|7-ru1)Jp?v*rgM=8|o5q3?^IZ+w{V|NZy>eyi_CTQDBY_t$^F`o_GuyoW=@#=Rz&bKrye=88i;riQ{|B6bN#lOwzze`KP4f=(S^Ip}( zHo7CW2|P0t#VT1gjVW2i(z!c9M2g0zLe#lr&_N_@<{k93g#CtE05^jS>N;I!5V^2~ zQ8P7UYcX*cy6;U!5@#(=Rc9=zwJ>0o1fk2Ca$dEMPRS0+YM5c1_oGN^rR3o;Y#QjE zM--rGKyT}jAeId)Xl?yxp}V`eoSSdYouy=fZkkTiCWvMzT8yAWwdYeR115z%j!%U z-j4}xpXC6@gt__oEtcLOZxt*Ag7Q~k*Pg#&*%1d*Qa!8m2BAD zpR2=kZR@9KGRN#B@^van-rr%>byd(SWp))S@1dZF2AZ}qJd%-_TCSY8TWeAn4nw*& z|3L^|K`BgG!q>U}m8Fb@C2xYLY?;<9f@0DK$%-U}N*%GV>+Pb*2EYlSr*2OjrW6wAL#142VigwSW3_Mjn75{y&T?}ES7yHMcV&JBKc)urv&-seJa~Jyh&TMu{R9a$WV^Q$QMA8HHJ~^-5P4wbox)tUCgyQWBc~)*Sg&>L%v?6Y1)tf4?#|iVuJ58dXg?ZKN9H^qrJ@t{= zj#$vy0_?DN-9c*2HDbyc%CE?E)&%mr!aXG@6LRw9k=D|cQJ=w|k>p)=9Cd4PY$@a~ zLzr3Qa*YRXKG;swP5Vcm>&si;=mS);Yh$fUAlcFWSW>uzV z-@mF{gH+1&>~^N0n`RR}*Exu?b%}bo?JZxt8-*7;F$ZP9KpXHqOG$6P#z3xaZJJqT zQ?|uW#o1ce6J@G5SVw2m6G5*25ut+0sJ|v?blJ{u`&wGY@;iyjwPH4F!4G@=QNmNY zvq$Ov)8jV{AA3+`&)@`rOwZ5+$NI3j)NQ(MhK%%hERDw}OPao`S{|JkZj*KtexTUx z;<6_|dwt=0#JrH=3HcIo9o%l3=K>NXK$2v^-h^`K<{DD@VS!Y5@v!2jyv~9h)}H!- z(a4$)6UmdwgZXP#4ulFx)8|K-i`762BKl(M0( z%ee5J^0@FE@=tq4Wvioq+7ssl%(GpU>k&>RH`Rxg2nmA6Y#*CRCE>OOD>lIU_vh=j~8 zF(qz(CJ<*}O4L&0?=ixfM6p@56Z7#AS9;&69;tyRkan7nSp0cv-|~E8Q#<_hFplR7 z)$)rym5wA!rK$F4Mbqiy?KxvFGWxwPREzqZY)b}bN3s3-IwX(RPgR%ghD_GH-;Xar zT<)5G?Z8ZR+q!*3|Dl-C{`z{0K$bW93dRxz)&a3`+)9P9LcJzi<}Op6bYfciooM<; zk;T0ZhhX`h&F*7OHV*9%CCj)ILiQ)`tfX}Y7oQ?BTN1FXBQWpb^m-z&=hrtAu}dt| zHCMwn49CEW-!N$N!CRL!q{2{prnak{I+|lOq`dExr_E2WuS48L$#iqtb~JKqU~{VB zrr%;lgGJ*&)ya0LVx5QOyw=k8YbRCw(wPp1$9)_1HFR#%Z5~qX6i3MF*Ga1Htn9H* z#}G^1?8>{xp-68W73D_52v__tFb)z`yl>iEARQ959hm?0^DxQ!u)KI)AwP$egf$h7 zg_)5I^GF|*+z_~ywS`*T;bjmrK5ffD-pBXb5I8{Z-wq-xesjWa%sDr z7PiLy46g6ez4NvI)aII=yjmquKd@UKmaT}kY<*}E(N7Ng!U1@i4 zLgDLMv-bfZZ76jNcW&dC8DFO>HM2IJU3vbhEA#XQ{@pM$o{DXq<-?=NjD2X&-Sd+& z{`Fhq9R%n_MvlAfh71G)h7(LmSwwjf=9=IgW(9)1%@7Z$YhWgJQzo-FIHMNKn-s&a z)@}Smlb|Wm=|0xIj|!+CAK^XM%!i;b;JWXB#y``~dLw*-SU$enPXC5692a+)BVGnK z79YNcz9C4=8iXE6Pjb%+F?G8X=UG6ED(cp$>RYgLL~Ty-^v>!WKd6mB>IO-6)rR&y zZr;(_9%E6L)~3VIk9QS5=njIS;`3R?$^+CN0hnrKt2AaSQrYfcbj@upbTJJ*_ zKew-%dZ4yp+jsCp189(7+dBE&&p`w^2o9V(KJ6QpT6Tt#q;>K>*pH^iVH`ANB1iI+ zc0838gpBx1`Ye~b)9(jU#7^nA`b}&VrlHPN6S^<;9RaT)Z>obq+x(y^aSF}NOoU@D>HQpC51qVoO2He; zUp+S%T;Ad)q$Eid>+p*7y3QxhOhvQkL1nDdH9!f`z|RQ?{LIWd1ksKw4n;HPJ^_62 zCZV0G8k8zy*DT@MW?D}g6*|lVJ=$L&+L^hXG$mS-@iQ2ZV7IY!&}CXuXC~;94b9by12=RhZ#>-qR>hJo#FnznbL%P^;V%*FaeL?DtKIS8@oA}c`_2gIIrAm}JKPt(ts2AJUrFOB zp;X7Mikn)^5ML!e1h&?E>m%PW9kR3FTW|w&Z>&gi-zeNKVkFnU*&aj4P9AS}h$br1 zPnVY_W|9$NOsXk+yfRS{UJ4rTc6~w&_FYA{2|Elv3|<_ADD{neRJLKROPP9R%vP65 z{>0-ALba*}c~#8%{83F|x5TF1CRtPBOgrXh!b3q6RjBanF;uCdH-DvEu<0>r2_0@_ zD&mY!EZw~iI*e-b#)GKWS2XkAUVo)WsQ)H8u}A7A>pcr@42QI;O@HbBK9+!-`7IFA zEcurhyIc8~`=yFH%l2t@n=txJdMDl&!{c&SE!k|o)fBr@uBG3PoYr;AtaIRw-(H;#o7&Om9jnPhHi_)zzuJ(*%~?z zZRQ)|FogqK3}1EOTjnf*mbZ4TvzoDQWYKY7vr*%+ODc&H^Q9$lxJAZZCt^)Gk5W|> zJj`Z-9#8;K#(k~(NQAaGGQLi15SKzqYf)=Y2ZH>R73Y0zJv+35Q`9JgPBI#oy;cN! z{zYoiS$M-ezbdT};6d@+JFkv747MU6E4JrDYJ`KN zxtxS6zpjvZy-l%4NEI2Cmg9mr$ef)S#tDD9kt}L_C##h||P|N_|Y^K9HEKtm9C$U}7rFEeLX|8H@NN%p^Ff z`pi3@UfT+T8)>PK#8QcmZy-@6Ttn~vvCt!Un(At7D{p#ky^>B|QP_Uro_jn9QDjPS z;C^465g7>;W=SD5myZb$=w@j7V@^KqhUluEVw>MA-VnVn#T;*bF)BimW$oOjm|as zeV@wSCDcs<6!ITHZFy_I(1!;LcXH8cIP*Zkauf2zvt<@2v(1%M{GXGs08PA5{8u(L zzT0*)4Mq||3mmIKL-;)Opp3o|c!`&{bc$qXhE27G# zeW%5qTzqX$2CJ-wntk0GcbCfDrn3)cm9jOOCpekvfJE2plGBu*=lv3N&a17D=^s3j zMa}VJs=pPlHxfP6-#3kD6IleU4WRIKH=FRTh&eWb3za`!sB_GIGsM;}kRS-nu;%LJ zBxf6C=|W#4UT$*t&e!a2}xF85d6rueCc-1C;7W$6C{Dl z3*DS|DaX+Sp(l7x5Jw`A(g+J}L`rQ;7Styfbga;yK4X%ZWs{TQs$BPVvIt(Ggr90iB z8aUQE+-^zp+?@!RlH25LndJ+C^A4g;VX`6VG3b0UN9im|g0lAk32WTC9?+fQ{r6$> z37GV?7)Kd{d`KJXWPF1e`UfTRFf>%BWB;CA9l5r^oXXbBs){1r0ox>TR)9Y_{DwA( z0CCY*)O8))R?qD_|i9~O0G@V>zh7#&g@5>)|iV0KDcq|W&WX$s2y zZio6nI)H=P!!M|@`Y}9GL@ua=j0D>$G9)VXF|A8zJr!4@rGmaF zllQBTc0rQZ`bUKH0b=iQ{MxX!vcKMP(xn^tBHZ61fyeCdDpz69SN#!?|N zWYvkRZCV9jh}?I4Fh3in<6>0JI7U0eAod}T6Qa$od_Jr}npZ?qAc6DxZc={XA=6Zk zyhAcXx%~2}ULu_$sb=WdGnY3}JHW>t`1obF8d+kMkt*#pAX)ffnR0MJRqOdRi3fY= zzu&XIym$B4J!=RL*N>gPpg-*N1^t7az7M<1TdA<>KjXVdVPdyQKUNfu%lk4XLYX&# z*<8Xc&OsH5d3L-TD4&Z|-n!XsB+xH;KB$iC<$i+^DfHztMR>w0#310DJ_`>7Mn$Po z=UHUoPkX>`CfQa~^#Qxr%RPG*rxmfza8b;a3QlOo2dcAiqi(B9PQ7*Q6tmZe7C314 zQjW1sd3L5PR4Bx8CLh9OHNiMeIdA$IS-OUDO=9r2Mtua4?~4e_cHWO_4mS#qxFnn8 z=`!M!v5^G@8JP5Pv8M0fKbKhR`Vdc?%5=v-X0ghzkLd|97d}^_wp;HTB)sbrVk64X4qVlgUtUh`BygVg1ET9 zBR`;jxM5dKUP4w$=6?lXaCv+AY8vdTAlN?y4E{VV{}?d%AKkF~-viL6neaD($Y01~0$}%ypFA#t$L(5mlg?f(SRT-AzZgtU1Z6}sQSb7{P98x6_^iQ0u ztUWc1_GQ^FVNG1RQ+=xzW5EzRzME7dg+1&G9h^`j80Q$+vUto%Cfk}c_~HpFaZEo+ zga+|}$zXCKioRd50KwGqC$$p6j?p;e49drg;0DRuzWKsNO|IEP%>^r? zT+m-OM?`Zidsw0}&l~ zyRaviLtNc+e`zZ}8PE4+>B>oK;J?G*zcZe{U0UR<*lg?70A?bqRTod>95_P+5r7+^pOFZHj|xDR5CIVppe$P?1c0NEAoBf# zzP@V)HWuz5P&@b!!3g{hg3*8E-Io>qFqI$PeKoLrTdBS)_EJ0l*1NyQjEnO&VBQV> z>%$hzyDvv|RY8!ek>oG$hFrCie|;9-|9{?nIXOR6_QSjXp7MXeM))7|?r$;r!uPIt z_tmB6|A}{B+R9bqxv-P(E5kQCy*Mt#=F&(djrA{5j$9t8BLCx56uXNfRIV&UkgJP} z2<(7GSPmJgTY9?2))rLk0CorfmOki~k*%#IFB|Nb7?{-1TG!IZSkDGvVQqN(ThbU< zaMQQbgPqv;56b<`LV#TTcJgfyBD%1oG8TrH!?+yKWsJQ#a7Sx{C#XOw2m}@Q<3YvA z!2t_xPpH1hKs>;UbVe5sD)YZ&KoHNx2lAg~K;T6pm!D;@!mx??Nd}9;Trds)Bx7d> zLtr84Cm9F`xd^a7%Q!hNmi3=y++3W$)&~T$U+C+n>wsYJZ+&J5aVn2huHdEw^%?K%#g-}(pQ;Q6gD zAWrZ_r2c6fFd6K`pI>BLKv;I7UuEn(zs?m1Mw9uyEcoIZ%g=3afiKMS7a0WjTVJ>! z9KV<4`h9HNz>6>5Ki9|2&iz~exIw?qGdIjQek*&y0s6H*FwbxO&0pH(g8Zsq znA!h6_dGxK#nxIEmX68#^5oV>#?A&8K6nua@_GOG&Y3f3?R#PN zUTe)<*V*?ZpMbp>#>oO3bYvWMxX?PEH7-&GG|4)LkHI6MpqKhi_7?apo6$X1>cT-a zS-3Y{1`*o@)bUspbe6d$xZ4`YSQP?Thk~4TeL6p&#CMS2AF-dz7V}H$zQMWN+=t{E zaMC}STranapga;b95{*K2fszXiJIp=Hl4nqe3|MS4M`Ap4k`oMV^AGH8D;xiM!iM) zt=7AzqM8ACadVKYXSWsr%F|56bzvn`H?hyrwKs_{fkDYc+ zm8h=ozAjA^IcM)nFV}v(6cgCt$UhIHJ^Q|&-Z{1W`8>YLFHEOZX)Gw%ZgCM|ZZhpi z4~1ocS%U{XyMApv3z5yrAE?2W)fjEQS4WibhB~TSItZ!7w$9JU!T+0kmeo^i z7T3WtW85*!&;Ky980#V^ANW^|4{=e|zpGn}^zz@aM|Hh>; zA@qGjoow3PO|0r-M-ehauFdR%)LAl8^Y_Z1hiqHQm&cAwuOrTAtG)HDJ-}kN#1C|< zS?e*QDI@AJf{_uG=9yxWk|nD{4D)Y1-#i@JLW!TNHaC!gld=15zWLDNrK>&(p&7^M zl*PVR)x2j!9u+)+k*ePJ?Q^(L%`FqZfAr#pj*c#duAAMzJk^)WL=E*re<&$Flnkh* zD-;T$qp|l62KT_z*c7+LDDpDYtHu{C|Br~v>JPgwPt_Fk>J?8SNN9Pj^i^2D&7TWM ztB7Lufuo17X1B0Pfo!GrqvapLh?Fq3Zp}P+2<{D#-*x7Rz2e|*?ZO*AaV`?KlGb#d zObV*ILD|F5OaW`=aK*Y?&JJ1;RNfwJ31`}~1W=uux^(^go?hP;F|z_;T0V@HxGB1q zCwedsZy(;S?10*wNro(vp>L4`3^ZU99#TND5dPDc*eXUkZ&4(qX8H~+FbnS>S&OAf zkCZOtl+jLuulu3vt8Y$!#6)2Zr$6Eee#Cpr!^B-|vzU)F>LVDomu>xk7>qDg?_N)x zJeD1Z5f#E?E|1i0hd~4n1RO70k$FGYp?z0R=a2%9B`r5x@l04Yyk2}fH*!Au?=9%_ zucmv1r@QOg^Ta3}-(|~rmb`I^w&5;b19t^))(zR)SPjpGI?kDp);>LoU3NyPSVm^4?)Sl+hWN7h}=V@|qvJGf#3 zuqGRv=9)s$j!zG5SzxlKdpK|Acap)M%|XLaXBhKE?I z@j*9Iff;dBr@i;u!gd6}@JU|y??NCWZVY(~jg%sk007a(^Q}WTaUJ+TJs}n?=kMBN zfO#gsEfYXZPUwgoTp1bS?`si~-2M`N1TxW+Z)M~=PoIbM(*Zt6O{jEI9j6L45v)jn z_LTenGypD#KJ_PRAQ*)_FQNF>MOJS;YkLS8PPQwgA$xW#N*_M;esV1JJm$=r)vSL) zE@O7R&m#t|rYhPLI?z_#SVGeI2J&-SE|sWwgpq*4OysUFcp3+5S{;-a9LndFwwSa~!*fI=wF2Y~qu?bRF zvi39(pn?jqm);p8KSTe?WMsoYK_;R#@kkO+3hK?zVp#B#KiU;e0OK3`88%P18#Y8i z3ljbDyS+_qZ(tjD7OzZHLC33%P>oZqk{oN!p>s~Xn>?YV!`QBLtlr3Jxcu8UQWiLG z>vPBo=X`%LuSZ~da8O>o<*(q43%4KCi(|H_Zk&`J!?}#dmn@hAs_8S90+Kz2(|Jm% z2owouRbwm+i4QE@qCF*pKi+y34KmlSO;L%X``mmH@AbcI&HhJU1tILDLj(tY-Q!&S z?u0bR)63VCrA`wE^~W8h)1N_Y2rPhalSKUxjT#ad+B)^86;fae1X-y;$rNe2D1_v# z&!_R-!Z41pEIOMf$yL&r7RzKC46CeAMEp3NwnMuA*0PvAVVQI$r?DyDY(6&bPhSBs!|#&;omNe}U_E~;jo%Af02$wKMds>gEWON6q0sChWc{%{YQ zSU2f)kJ{lVha0Lr6KeulvlG@uH#a?R(HCy>{CO$~7K zfG;gD)Kg*bE^8?<#PDt5?aY5eA?(PWdUWOi666SXL3zJ;!uQ%$QT6pcc~HS(AE)>M z9q;~Iw8e{=JUz6<*^cp&NLnp@rB-5RB`R^q3y*30aNf`0Z*Hh zs*-q_tIheF+RDrrP*22)iN2}HY+Ol~H^P@SfcVp(y5`C*TFKv00O-4GrI-oaAdwQ_ zZYxd}s>xuZD>+Pdy{NaT?1Bc=ur8Bia}Hv_l?7d**k^aOgb`>62p>AhnMcjs8bT+v zgb8Sf2EEKY>ZLmW*+LVdE?OJUwJmdLZvkeMWd1y|@|oaj1GM0@EnMQ>zR!lK<+5nQ zG%!o&`?aFZ?OL3X`sr+2EaAQw-R1VUXCBx;Vsib8_?qb+{ zwlTj)6Zqx&y9ub?Ue)~&xiS+O zmwkGyM@1U()_n|pWRp93ga)Oq|faiBFiuz50vhJFsQ#Sp@9u0?;UT@0O?~#=A zJX~J}dInbj6!&tq(ht21+EZ>oL!4}84Z5vrE|^zn4osxZ4Hu|_?+w-5s+Hd%cF_7E zY(PI1)x(7#qyFTM+b_T^<*D0jO_M{c-+ivgau)v$OF7^3G-N!VUL+A~UM?oQa$}kg z3mIU9t(dKO3FY+Hlq z5Fxf$G`$`pClhm0iaJmWA=0dFdkO>k8$wCRFB88&wF21VGkwDivy&IQC!4uq5o@lU zMrLp>B#*9+asBQv5z3{g13h%jaPMqWiasaZ#RkkZZ-0>NXIXTNf4z6OU z>`VxG-eEPk?F5-kUP&Mo!O%^i7@TJ}0zNFeFd_W(7GhkZ-_~y7Rr8YY*ZgbItLk23 zsu+FHAr0I>HLQ~&6kVYgOK*28!xIMzO1cA+Dx7P7VB!j*NZxlRazb%#hazqiIGqS* zM?sSKBbpF-gpPpI9jn%f%z;*bH^$0lJlr~**MQ+9TJvW3!zdhUKM!IL zC<87EJCLh7U`WHLE?>Gd(D35UYNZxO>Xx9pCe~>`U%I;L72^w$*Zi-}J=Q(-mesm( zlp_E+w3R{MC<9HG-5av@mfR@3nZ2ottFxJr-CxPU*czS=3-@m7Z8B|kC2|3r(WM& zRn;2rxh*zbju(6?l#|M6r6`i5VO5NU{Xa>E`^(ONfuq?TKnjZzz><019>r3i9ehLM4p4)tX;`y;dPRsLhDrPNHR*%-lL4s@yz`<$rHIzhol9 z&k@6+!AMdjsS>wxBVTbyut$5ORP%%bNm};>@9~Ct_s*WU`rR;5jC&; z43p0KQ$kFXq5?|+b;CkuGOpo zZ~|4n?Uq_%i?-V7l5$KGksQf1-tPIEREmN}l|qXnoxx)6;xyQ~MzdPD%6U#e6xa}O zBg_6In{vtrGK_d^2aRXD!ARN3cWwA|aNFGk4f7-cD|R+#@S3b6heqUb-)_QZ$OWXD zB(?iTIFd}x5h9mVTe zewuGWJ6tWpHA8wl12U$Bx4tOJNf)%Lw# zsldy~HJTm9t+0Pnu&E`lvPGo};p?knfrxsww5@fQC;sG(*^;8-SBda(*F9cWRh?UX ztBtS~)Jp98ZJ($_Hy;wU+>U7S0MAz==WcoM;)c8Vc&{dQtTlO!!j+I@5es%b2lc9= zX-IRGQ`|%MjFE)da5;(%$WvfOWx3a-*o*h&K!z%#{aQPXy(0f4)_%X1?YK*gbMFw2+-ZfiU#&|w>qHSuUin%@Ylgge)OstqFBZKL7JdOs%7 z(E|reB9V8vptT3JBt?a7F?8Scn;!8EPwT4}>l4=NPYzB!2W$1N_F^D3XTLDs?JWqVp(3w5?`Y>#Q3=t{95UVJ*ymuV=3dGY)%?)SqW-8URFi#Fc z0OnlOr-fP1p=vX(4vs2%0d&)z(jg3N#?Ezt=;xJAe-}I4HZh?8UKZlEGu>0^C$m_R z*%y5pZ3{XzlY9ss2_bsUx=-I$+O;(Z@wbYh9nk}6f0f(axKEa*gJ(6Xv9INW=0a@n zez5801&WFc3F46~u~nd#1ith#rwa;vFTE3*9Ol=t%5MgAX1F^qB%&j~UuJo{ah(+r z_&HU1ZdhY3zP$lE9;SD!+R08G)#kVQ3jq^!if-}YzoBLMV589 zYIgNP$BKpYR9k^@-x><>{uRjus-)c41I`Ba^?7;^WAJwPmif za&cKP7jgA-%NbtiIId;ex0Xg|IYblX8uqJ=X!!H7-;97`Y1a$iVTj+NoTsl^EU_0Y zIozVZfk6{3zs*b+FxmzC@A*%Y*Ww0nP>0;2>Mi1+Uwc3y#S%goC)%TCMLCl4n|=wGWtZHVF{J^uslJP44S+ZX)`&`nuUvjGfet)IWz*FuK^>t=5z$XC8)DUp=W# zEw0VAr{bm3e4otwHz(k?P9FZeDoifxYUuDb`~7(vyvs=JXlFimoEY0tc`FDu!@yF= zxt|8+B{H8XoYRj1U7l;u?-JBHywBz2?PqP>L}e4or`2iATiafK9`G1D%{dh<)TR>! zKH+4ndpZP(VsH@D;p0*DcjM3@X)hH%-hQi*F@dPb8I*P{M~2|)!|lgSV2O|pR1RUw zy*@gEZddk6c6H69_Y1xSK0fXnEUcW}LDT|`9KLpzVhe7m=O}bpwR<(7>cDEa@OJuF zP#a+2o_NG7w<^~rrfc9G*(&Qn@-S;#aDq@{jHa!1RJ=6YQ5LJp1oIumD`ed0-71}+ zbP1wy5rgENp19df+{M9l37?JcDoW%#(qFfip55i`u!(2%RkNG*M%Fe9eqrxV_)Y^0 zer@!NdSN#x@)G_=8gYZX)CcfN;vDY8g7bqRB#nM))SeZGFoVaf*s^XGsY^4jo%=d& z$(+GYN_T3Q4a#S-tcY`CD}ee&sY_d`*Y4T(*4j!^H37WFsIY&hUv0HJzC5~PS)T56 zGw<<8@0ub~hFj_Ts+(Gb77jX+NlF5)wS->rp!4HtSyZuCy0>M@I?_#qU zeV+&pHb8eJ(0JnKs5xx5e6EIcE42k${gR(+h>uy0ZA_6VWR>yp&H$Pczk|{ecJ>Sg z-XbCtZHd3WR!pCX_uByLeX@qjt0G;0HZHVsh@-Z>Zb*WDh;D`~%n)pQ4F?e)xy zdD8PYj>#Rd_TbUH(BBZIzXUVd9C@J5)kOS`wv*N2^l-T(h&lJC#1h zmzz2yO%$80db*0dXG5U3-KoC@7N>h$%-}#(eU5nS=|;4EV4v-ZV1@_w?rffFkDXqn7Ow9p?L~pgdwGM=Os~nD)mX?-Y|8;>lUpjB#@Hp^_ULDx_+rz&1YeJOM zIdIO-5r4gS14oxXnqLm$76J((8bVGS`Ep8hVSH+QiT}%d{Lu-~27RNBZUhyD0CUTn zqV*T{r1Vp~YbHv3Q?k@Q= zwg;gmdv5Nx_{-$8jM0kE-W|VKSzUfbPuyvtbADNE?W+3>du7b@`ROeI`}m!mk>i!% z)3=HH`cDrOtUT|GW7K~Lr^4bB{9s#&AJj9kr_Hw_Fz--+_>~$Xh~hU4+j0#$_1|FF ze;ar)4R9JDW7ZB01L2)&)vvgFVU$afEl|JVaO*xLTV%O0m%4zbZ7U?4K1tHWo4CrWXhp$T>)k4q$1MGbAhlSrJ6etX5tdj3u(1^w$a! zR(bpQ4g75Vh0WJi@zdUMyjScw*XI%>==T%%w1{@x()Rccdt(WeZ6k0NJJeGxa`CY= zu<;Eq__&IPw~Te(`k1lJjbJIO&#&R_${R)k6J*>16xGO2Jdi=87&KN1Z|PSyrdN`& z9k>%xl}S8JNjhLmwz^(8-)u5ke|tUFF4fbudDQojuycGoT6HjZJsLZ#s_4g^{?a)> zo)Fy9`}H~0v|rmyT5-^xx`1;8qo64zBzRFPk6~CRL$|7`jwmulDuOiPP=DF}9#LjG zpdO?T#7h^3BxA5nV?@v@ex5n|e%3VtjY`|5cDyOYTL!b3wuPF8TkX3aa?9)SbF;cm zJ#69Sb!X6y@O>rkM_}ZposGB0WzP?7_x&`Pl!?qv*F*fvmIofnyZP+(*pAEYs6*FJ z^R&OgW-U(UFPy0cCBqX#8?NMl&egK!93#z*KnP0ov=!L+(2qw*$25onT~Z#q2D>SB zdQqJQ%Te4@y}-solAZx`(SuXrh00p(L))IKmG?DRjttB?H1(0>+J+zLG%KQBQ)H{$ zR&1g&QqAHr-!X;@OcP{zK0!-bjX1Jo#stOBI0^{g(Se4@(-B&f8Oh@wZI`1XJwxqlQHlCG6o5>#iRZ4qn}I4+~F?B8m23o;cM=mzUvfPzl8r4Q@M!&yuLX?umsfGPg>v2m+DNOKw>6Fx^pcwtWq!0GIvNS); zJ3}fLzP>&o+N5^w-fG-q7wu65^%^bz8K{1mb$n)sOz6jp;fr@jVSTw9=hjoy#7Tl` z#dOm6(yLy%+~P8xuE#qtVP+%sYm*_eK|!!fWUbjrWUZ8_#{IF@?Kqj2Q7FDYU7HF2N z?b|T{pcBQlU+hQTv;48hkU0-uFS2a3+RLVn==4yj8SAg)MCPsD5v6t;k7?Ag?l@#` z!?)pwV$$jey)WqEgt=!3@iRaf13y5@0)(nW(r@KZi!t%(Xjr^stc;vaJA~7E&NYvu zxs!NqZ7ylF(4h^>W`((!b-u8u4!9{bmK#)On%wJ64bmj>R!sYabz$}+Q?TTRNs>=N zZQ$~)E+Z=$j_W!=>uAt>h~L$3_RA1!QXjnNNS$-AJ%a7rX>iJ;(Yj76vKwbEl)WUq z^37Zeo}w*A&Gx{UV`0o=rJ z8SmWTz~;o}$YG+^RBP7O16}ZzRq%mA@P5=U%K$f@*t~g>Z-!;&2-x%|&dHS^19n-N zBZpjJPEPr3anm8yGShOTVOP7(F1S8!oQ2Qy+fcd%oqBdHpBX*X!oLy5&@#s4HQHBrcCa;~@s2 z#2j6Oe1Rsqel&&+p0UtF0rn;nEoH&isv%wB#(`!wk8g9u9m5Sa21Y9>%%aWdfrkfp zDhCZq2Y9zw$T`ul19Dzo{ayFY2jf-lrH`$Fb&gmQ=!j_{@jzR0V*3kxB17bh@DSTR zlM`lrOUz(LRk5S65{bO3Wz)?sUia$Y0}#;QZ|fS z(|!6SI=05@yVR$Se$s!^yC$`41zR`KX ziaw{Rv9%%~W(3AAn$e-(a37rF7Wz+^))^JEWlSbp923p%;}f%u*NjnJ9||`@W+x;Y z5>dxvA4-AWJQ??a1}TbJ8WS`$ITE5>`E_8_W)OTp?NUuzmnG`yjau&UdiCjQ zeF9d*n`GzHrz+(i3|jl3{&$lZCH)Fu-%PiBuht=9Cy*(XS6B79K%eYZzWnuSM8ZJ7 z43ijm^NLJtgjE)_tlfs|Khn4y7O(n+$PfPKyvwWoPi0W8M6sD^f!I&Z>W^o-!xrO4 zykA`PP0c;ztGIp1IVN1192`r5ZYC;T_(2xr!i+kL@ls2fU}V}sqV-Vc`7mP58e1y!nMsEv&O9M=La;X3 zUc{dJpGGS;A*&mjcx*N4GZ`W+NZ8J*=JKKZy&3&1&r8oW+cRdP8j!S{KQ^gXyD&WT zI%uKwA49UAZdmLr2OrCwI=Oouw_nt=IC5gp3V?d>DzFor2TzszA!b3VS)Yrq?;0%b zjOHJPkdnS*j;4&>nKK_;l^Az(Y8>cjRLuy26fwZ3{p46s!=nd$zx;gi*OY`i%tf~p z@QrxO7MPT;k;x`kNVo8}0Qv|^gx>KY!%bbXAx|o~7Xam}mkI!-Q`v7gFEd8{ZdWBgVtDHe@sVBW@!R z>`+5Yoch1!S9ivU%UG$yQ^ohk9PdD)J>?z01O0CE(h8H=w(lsHWy%j2PB6DGbP3?9 z15KgQV#%ni$mlIP9Br|!NcJyBSY}|oDS*Nf@rVQzyJQnXZs{VQw^(Z(+2e~q6r|Bf zpQUz+v=7T&V{SluQu~E`Rzw4&ISSit)n+|9WAYo~Rr52WrbOJ}1|raNG9nZREr|Pu zj4c6mmXbE)n1$&W1z$e%geDrM@e@hNU%Qwh*t=Z3aEl&(OFV zmnGYng-%4)Sz@hu7W7aollI<~vHv+(Mrd^cAIOFQmTu{_%Su_OwX4!9CLbnq&43*f*q>A_<;huV;sj zxI;KOZdH_~!VSXTtk|z=B~sfjBUxtO3(j7Ni8&cghy?C0IC>yG zB;pP4zn*Mnz5LLaoL&a;v!C{bxC^*xZYUCDFySIM5PjZxsLtzgSt(>+3k8y0Tl2A+ zf6G?Nx%})Yp2eMu4aWlbV0nR&E6*MaUj-AmD8jao-yF$mZGby{jm*iquM{WNR93LN zmQ@l^EOBCM57lm&6iqHK3qUG3RPCWo02E(F{f8b@&@5iCQahPlz<9wxM?ue^2g!n z@`HEi!Z z-VOtEX12sBUi!cV;epKzzXg3R0--vqg0P5v?#I?&c)=EFw^pSs?Smb(x6Z*ki9Q)1 zeXjuTlntemLw`t;w(Ld7pzOxZDY;_Q-nv$OknJu3XDI30B)E{G&_%nbA$*%edpMwe zQR@!%d<>QOy&dfRI6&dJrO)+_jV;Ldn~~u`sQVdw1O4KszY8$Q@uNODm{T|i=Y@T% z;PRE#mn!z2bOd;inHU!qU=HwHB)^fsenAnSD>D8r^(W&frMtc40c)r-L8AD5+o$q) zEU|T4G_$qn^KzjIgdw<-se1e!=l{Xf<@#$t&cQx_{2`z&BoIzE_jjHV3^(<8H}?ZO z+?N7{&#i*j!GZc%)iT}kys8LGHS4_|g?;V_?W&)^+Q}8+Rv~SDr~8}WJ*Oen7)3A3 z!99&4M-0LO=xJ>~_7K4E>BfBu{H0lKyE8acd!O8}Iy>=y)OBB1R=bZYb*gu#N0j-D zD{0oLmU~Y8qAL~-Ht?E&nS|HuDCabwH&k=*gr4`=vj7>ItVSW8yDp)r#FJSek|b zR7gw)-RPA}RhUE$!7Y`FJtIO=dBP-}f& zm)_b&LrTrwY!6U~SdNQX?tUK|x&)?wJXVaRgjj*ZyXV!tLac}=aTK{gL74MR_}8cM z_8f>ObG&Z`m@Ls#R9GxyaekrkB?!%ZuvTT_+2$dtWH)C;`yFZrMWNY;Qw43Y_tgGp zH0~SgFf{H5$tOGOXCbD<X$|5Mb>>~a*PM@Lo z`cLntRC|J8C5QrI|3)7&e(;7||IHtAGI6o|C#}f+e`!NzrVrkb7ML(8-^YYFc>XPd zV9S4{Xv|!h9j?a=<}IuTqCT9Lwx)ihwQnPvix@n-FWG?b`8uV4zVFNl``3VamDQEE z)(O*K+%8)d2zzzZD9ZegEzaxJwc6WjO@>@j8Tw6}jo-AFsY*%o*I>yI;N^o?bM zu})K?Q=@vf1W?j)ozUuuGP`iQ(AZbaj@H-J5u!AM{8lGZ>_$?u;HEFT+T8nXxE;KT zr45g}VX#MT3wn)uGr%Ef@pl8ucd4|V%(PsE^2sUFd2-7HYv2swgFJ3}Vft~NqrNji zwiG|Bv!;t>;Dh*bUVK&Ke|4ZdI$~{RCKe_DJsSrLfSHq<6~N5G$^y{) z$4ko9$kxi_tG$J-8Gz{@z5aEwa(s;b zvEg9l0Q`S0kP^KV$dDcq$jtFjDwXGz{2_Wv)MVh z|B<*k**>gTKfIX#v1S6WeMsydx%x=@KN@y!W&qbebNMU%lQICKs)L%nm5GC?8Q|}C z>+izh%|MDyG+-PcZzn=9W>A_F;6rY6;`ryC5QO3k|AFE=^RhFu!885W0pMU~XJrSN z1OA0Ef7Iq9;NJsa{~s6=D-#qMmBL8aw%*;%ze=+X=IjawlgZcj$a&dh8gW=ztxw%&2 ; exit 1; } + +SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" + +gnuplot -e "filename='plots/skylake/parselinuxtable.txt';name='plots/skylake/stackedperf.pdf'" $SCRIPTPATH/stackbar.gnuplot + +echo "plots/skylake/stackedperf.pdf" \ No newline at end of file diff --git a/scripts/stackbar.gnuplot b/scripts/stackbar.gnuplot index a02e64e0d..fea6fc3b2 100644 --- a/scripts/stackbar.gnuplot +++ b/scripts/stackbar.gnuplot @@ -1,4 +1,4 @@ -set term pdfcairo fontscale 0.5 noenhanced +set term pdfcairo fontscale 0.7 noenhanced set output name set boxwidth 0.8 set style fill solid @@ -20,30 +20,44 @@ set xtics nomirror set ytics nomirror set yrange [0:] +#set key right top; +set key samplen 1 spacing 1.5 # font ",12" +set key width -2 +set key maxrows 4 +set key noenhanced -#set key right -set key outside +set key Left at 14,4.2 #at 5.5,4 +#set key right top +#set key outside +set key invert set style data histograms set style histogram rowstacked set xtic rotate by 300 scale 1 -set style line 1 lt rgb "#A00000" lw 1 pt 1 ps 1 -set style line 2 lt rgb "#00A000" lw 1 pt 1 ps 1 -set style line 3 lt rgb "#5060D0" lw 1 pt 1 ps 1 -set style line 4 lt rgb "red" lw 1 pt 1 ps 1 -set style line 5 lt rgb "#808000" lw 1 pt 1 ps 1 -set style line 6 lt rgb "#00008B" lw 1 pt 1 ps 1 -set style line 7 lt rgb "black" lw 1 pt 1 ps 1 -set style line 8 lt rgb "blue" lw 1 pt 1 ps 1 -set style line 9 lt rgb "violet" lw 1 pt 1 ps 1 +set style line 1 lt rgb "#A00000" +set style line 2 lt rgb "#00A000" +set style line 3 lt rgb "orange" +set style line 4 lt rgb "#5060D0" +set style line 5 lt rgb "#0099FB"# "#00008B" +set style line 6 lt rgb "black" +set style line 7 lt rgb "blue" lw 1 pt 1 ps 1 +set style line 8 lt rgb "#5060D0" lw 1 pt 1 ps 1 + +clamp(a) = (a < 0) ? 0 : a # plot filename using 3 t "stage 1" ls 2, '' using 4 t "stage 2" ls 3, '' using 5:xtic(1) t "stage 3" ls 1 -plot filename using 8 t "stage 1 without utf8 validation" ls 1, '' using ($3-$8) t "utf8 validation (stage 1)" ls 2, '' using 4 t "stage 2" ls 3, '' using ($20 + $15 - $5) t "stage 3 (no number or string)" ls 4, '' using ($5 - $20) t "string parsing (stage 3)" ls 5, '' using ($5 - $15):xtic(1) t "number parsing (stage 3)" ls 6 +plot filename using 9 t "1: no utf8" ls 1,\ + '' using (clamp($3-$9)) t "1: just utf8" ls 2,\ + '' using 4 t "stage 2" ls 3,\ + '' using (clamp($23 + $17 - $5)) t "3: core" ls 4,\ + '' using (clamp($5 - $23)) t "3: strings" ls 5,\ + '' using (clamp($5 - $17)):xtic(1) t "3: numbers" ls 6 -# 1, 2 mem, 3 st1, 4 st2, 5 st3 -# 6, 7 mem, 8 st1, 9 st2, 10 st3 // noutf8 -# 11, 12 mem, 13 st1, 14 st2, 15 st3 // nonumber -# 16, 17 mem, 18 st1, 19 st2, 20 st3 // nostring -# string: $5 - $20 , number $5 - $15, no string no number $5 - ($5 - $20) - ($5 - $15) = $20 + $15 - $5 +#plot filename using (clamp($5 - $23)):xtic(1) t "stage 3: just string parsing" ls 5 +# 1, 2 mem, 3 st1, 4 st2, 5 st3, 6 total +# 7, 8 mem, 9 st1, 10 st2, 11 st3, 12 total // noutf8 +# 13, 14 mem, 15 st1, 16 st2, 17 st3, 18 total // nonumber +# 19, 20 mem, 21 st1, 22 st2, 23 st3, 24 total // nostring +# string: $5 - $23 , number $5 - $17, no string no number $5 - ($5 - $20) - ($5 - $15) = $23 + $17 - $5