3zuOj+O=d8Z9qF?3-S0ThDkut}&aKdIo z{G#Gw^RO>%1;wPl1v91J8D(ma@|WiFaR{~rmbogvmw rA^z5 zY#)&X>D8XnysqQ(eko}^%`6zb5)rO2gpV(aV1UhJK{&{cstH5-$SbX2I1L-fIt^t5 z_L~UX_vLP;Y9u0V0Lo5!>MK^u?u1}I5B)3uG(|GTvqg>XiBSOql&YFQMUJa1Hz&I$ zG>e`cfV98*K+FiS&*4c!4}C&q$PkzTAi#kvM}TpaxwK~$R<&uafSdBr$*w1%kCVCL zQfSe&DTWa9IWCqSd
Wod7Vg-44C(yx6sU}w$lcae1EM2iEGRah=>Z~fcajwnN{mosW z`dc&%JP=M&wml)7_l;hmfvfnvtIre+8SU@j?_u%r)6cEHYk(XeGXeV%1?=c&0ZiEc zoHVOYj{2zYyigh{fss+TKNMKJAcm&r_Qb|VMeGFglWv*v$_AreDaqv9Z(J56;xmtI z6SETpOS7woNZP(J@s}uWf2k{d)C5SHc;(;-l(1JYeXM%NItX^~26gm@@CFBVe+A0K zdZmmi%w)d5xK~Rg1Eoeqvf%?_^MZkEiwy)V=c%JXf}aj=a6_;E+SL2iD00 8$oawF;M*WH z*9ES;cHz0%f^9DoCdAIA66TO3YBd%F5s@f}G^$t-9|_B~Apr;-=8GzZCH)Y$4Fx@l zi{-S Y<~SXGoSWz4$(IT?$?dn3dc)pw+VLuE9%ypENJ6UN%j$ zZ}2I{TGcH^ex$Rd-m6YZ`g&$&WVy?KL%be(wp|uBYWVh);CA-CCm~V++bL4Y4jjJ8 z3<%7{k1O7*3y&Hkh X|JYFuPgGUI_Bi5$BWlyCV{LF6MW9Oy3Uu)divmV{weKwt<`yxG;#!d z)x0YBF0TNmhrf5iLfU{r;&%5CHQ1R6AMTjO-B+a?y-NCdzAAZ~qZ1*-!WA}hxpI1H zp1)}WZFrz$tE6ukMO2!n(pCv;*>7y`xaWaB)HDsyVN_xCrEQM|s`}Yjz4JJ{H`hLP z*mvE3J!kE*c4fB+59}&6r%LZ{YdO}5@ uIkRZd@^FV7zj+O@FUgyWV_(V`uUH S z{IjWL$&BYqHij-!r(L0}Gsax>w*}%;)+b$;zAH`vX`<>hSzX$!xMGvM1I@@J8u}X# z-oBBMQ|Rbdi{jX+jcFk&&jF9OEXqD_(`9?%`-$OewN)BBmG_8WY={pbT<~x&eRef> zWtReH7c=(NjC1ve)^kuQ2@wx=>(~F&HTPIsKymV4$}=d?|8{RQva|W|$#wd1%FR}i zvf89a?8SH^h`!RDDwT-R@S@N`hvo=2&JwbV {d$l6SS>CICdH7*&A29- zaqsd1P-6FcSjY@4z?mVXPcAQTqg|}rBKjF6h#6QGR0jm+^f&3ezAm~>Q&q8GJ|HPz z<{>28Aa!v|crOK_`x KW7>`LI5C8Mia zW|x^cEcG9!zpP1VYQw}cPlz@y1BtS&ktFEZY98(k_WtJjy#D(KlK<-FT1Sey*a-my zq>c>)g!aFDT%FBLY)t6>6Epk};X-51Zi5xI7h(0A@Z{<(jbuY0XE62B)M^2}WuriB zy_AME**M%;v51_$c?=jd)MW^ss(u50s1<~!Ug~+p_`Kew|0{$?u~B;cArXQDOeiTz z#OL~U-|OI6{PwIRjHo5neo!2j=2i(Pq~iHBN%rX59_4M{uhZQw)F!U>}t63dr!W zc^*QjEyTm$LDbSGXu$i^3_5GZHA0Ldz+|YlhZVcCMItLWyvvY*{-0|pPKZ7t8dXWs zI!t2Zf5Z^9_p)Ln`eh9lEal~P+AX!quqVwNZN7j}+h9u6us_tuUk`q7VTebx-dvF9 z;LY8S&|#x6%-(IjPWozw;Z}zZkTn&4Mb{ds{r%0@HLdThp5Q~aXs}(e-yXX%`6&f- znAL7ubMDf!nFp2+fD+AgRPgD%6z$qKRR>T0Vt%>$!@1NLs`jDA#@?oVTenL}{&;P@ z SBkz#FwfH$&zz9j~OKS&uA*90ss6UY6u!QmL2&~*Zlxag8ITqRQ`tL>mDBF2> z(aHB_i(%Hx|Iyx8aMh7?YvZtRC%A^-?hXfc5AN>n?hrgUgy8P(?oP1a7Tg^IfqTfE zd1r=qzV8>@vsRs6=X53Aq!y9Ah4uJ?HSh2_itGW+vr$JO?$xA6co#>=DJ*I&0s$tFZJIT&Bq zbvy63=RUEodp++VO~Rk6282*~2?&jqrQd&VK?`MIz{dE(NkD#P!U%(`K&vsGkPQ>A z1OMF0Gd0DI6-EMH5p@HzCM6&&-F0*YjkDq|K-a~17~+oU ;s3bZ;!3<;{LA8Upm^Ob* z{ct4guZ}qG3-$5qNqy}dmOm(D8Soo~GKj=EbMKPh3zk(PU% R?k`cbmeK^@N&1+X3eYHMpmi(4no5UYUZS2 z#Vb_vZVgSy{3|`hnyJI%c-C#C=M=^9k7l$z(`t1P{(i|2M3xm6!EXbS2G6f$*c9X! zVE*2cY`tkT!nB}dGHw7RCc0>KO?&P{K+v~+J)} 9m3YmLTNEWvEP@Fc*rx1S;?Izs=u8*N;(JSxbj zvh9Ks73~xzQWnc4G>(?uNjoUV&~O>r9Hskb)-8#ajmcb^+Mo+W13?@+O0Hs@prGx( z95SmVgL`)zGcs0T2kMUk$aJ*LP(vfeq|g!zpCdn@@oZTvC1Ro+T%(}#&B1PKn)~=v zRYmT_p87EGHH0{2t_U*puV|=4*h# pi(>sH|VK+ys2Q{S~mC*vD}gB{W{FtRY*ja>i9Yxab2V6niL+i5^x<*7QjK zTYr2T(I Hx9h`!OAr+l#{KoL>r? Arz4vZ5LPZ9lgi)V9Wkkv!wwr z7U8D*SXGd&@ASybVaU7A%H2PE!yUU&Wv!c!{z>Yaql%!Q{-pPUx&|~Bw~lS)lAXfH z#C|u7)ej%bl+D;&&$R}CsWPo;*FiiUI$A)tY;+Q_Si0pXe^qpHFJF?3WmCX+X7Ed& z1CMPl(dxqoQhxS^yMaZE4%5PUFN4 }%b6-&q|j-S4USs0>r$Vk zrm2h8IiRm~Cday9HQMG~zPOw#NHP~T(~a+klnuZiwY#s#q?l43QvQmUrf#0R0AUbu z IDu$PGR=pmwko2?~L2&=he!jTWy{gIHM#QM_Bg;YZ`=pZh>g1#e~qsMwS z&Wkgw%`dV?3^~q>K7N;FMLf`T*FyrZ6lf=+mZAw2C8MA?lqlxD+u*fKd(ijGZU0VO z2SbWwj2}ysv;Pb+>&oop8!#p{gD}8#ZJuOW6xz}ct8Lx{tGF)a=s KCgtI&~lSe|4XZjO;vaD7Y zMk+8o$|Q@$du0bEFVTTGTkD<;g{#M2Ztw6lsv2lFtuye61VrUl_kDWr!0jIUW;a84 z>LSF^ErOHpV{FY-DeP|2;|qO++bQNdPb?TF(L54l-DFJHSPdGEW^A}kory#{9KW>u zoUE gQi$vH8p6X?E-kp4dKv-5o9k_3<2R=Y7EEAYM{?+< h zYhUCC(r6f987uvim-aQb9MGT-9XoG$y7U0@f^2k0U^npa@_Q=9LOuoUI_?HfV;)wJ zgPUo3o`Dk3&hg<1u1Hmf9qKvtT88#}ay@wR+?0=!(`dz|(WwD#Ji_T&8C*)TKU9Mf z{aO4bF2oscvXtUgiGOWFd&H`YD_?ZqvS>Q(nP3i1ah5~i$}dZSj$i5?zu5n^&l5dX z+u;OifBC>EHS|9Pe^+AzrN4E135wk|Jq+;ea!dTm%`xcY#H!OI#C_(4QQiXLS~!&9 zxny;Lm0!&l2iOp|(Fe~K-ET*|E^K7xg~D*OhX-;qj5o-rPF&u5E|(FS(0r2Mcn{A- zu?R|{seI>pRk5%42uq2=Y%<&5Pm)k3F^rWVw&;gpA4Gts&k9A2s@)rHsBQWBOsNw* z;pi?TGUePsNKq-nqHg29v^u{W% jE@6FcOy1m^ro36qE$UcLu48Yu34sP KP acv*MfQaxqQd+`hUkoTbKwNVWbZ>B3NcHNkr}A!^Y9-O(}a|7KJ)ywXl&FpW9ad zM&lj-%k|NAYmS$s8w!YkYTM{uptHKo+LsLU&9uU@dl4%)s5?~>IrUf0 K!3S}2so5MqGFz?~$orG~> zqA!Rb`-2)SX%+mKJ!uS@$MeRy`UO?HE|OHh bY3i3ub_dV`v#bL2%ZFlp= zp$G<*9jvZ5>Lz#$=KGZtB%&3y` GNHhsV*GB z$;eCF07Gejyj86O-#a N&?!bzHVf@?6#JL_WO^wlk# 5TKp;U6r7%6{<8T)to(Zh4 zU5Y4Amo^!^N7Iz1r6rH P#PV&mKU|yLvgo z94l!htht5gb^JdQTQmH 8_LcdR%^ms5>#V;$`gg959Zj(_P zS|AB`BUrgO!;k#r3MXj0u7PP}BV6^p3VGg$%&{><{lz$1?&4PqJf@}Al6jAGXj0?H zB&I?X=4C2HV{$RfJ}WEtWmAIw<+=(p5%${t83|v*9}Afm2l|H6YjbJwoBIbxnMv1Q zW_pu2o^#GJZtC*Ryk=%lRciN$agpfNpONcO^i8&7GSOUOZA}d0*lfJZqr{hLq5_z4 zKi%e`W&{(L9X23O&+mRQX*sbTUkfi>UYox!h-gu;iZ;uNY*p|$D#7g`ucCj_q %Qho&Jef_O8 z>VLMje9rL>(tOUjWfPlv5;?KfF*C|kz( mJse 9wk{OfI!7ReX4kHaB^n`bMcr<3APyppN|Grvs|MSV{cz&yD8^&`KZm ~%2=KP7-)u;b;1 z9h!#p9vv<8vQxEpUx1f&$Naoi%b(a94Ce9kt5Qj=o+G68%G$k;EGxa-fVo>quU|d+ zGAK!hZMFIWIPLpjJ-ktCr|IsBD>o@ezex=a)~f)az5qSJ&JGe}EOHa|P9PaCI>2vv zu<)MIzg!YARP^wn_ #)aH^{Lf!aJrEu8MI-+1+kFG-1RrtnXBFVRX_54lu~c$P zU+7_<9=jY@pTi|pgAvCojIh#5j#IO-T|-3YHhocXj)`?BSQw!wRQ;DAjmugVc-!?B znFE;);3EzL+Msq$uCI^B=cM)_DX)bD8GEt@G(7dYYI^ly7GmuIvF*~;_^ K<_ts^DdY7Dv8`zwBs zsF0?QRiO3g#+2V|9`V?(oxuD)jgKfN*PyI+Og0?E?^z@(gud7Y;YFb)bs@f|@hw 86i8gqtTB&-ALUTMNx6G0c-x#lVaV*Riq=B#Zsd9Ua z+9Lh*h5wTsy}f0Pub+YwVqgQb(Cz9MOu87Ndg)uS{-LI&X~4a!w>G1#CKlBQ7@iwu zXuxWXRpm*r_)hlrYJy}$58nG)8Zi#7E*BiPP^3)rIGO!G;P{;lI&xq$-19FdCU!p?xK1xOl7t(#c z;JQFR1BUkf7g?=`bn!+RC>0w3<3b_>LzV&~KFT}T+Bwqe+u6O&h698A{$H3 )?n zVX_9l-FOx?UO`yOq#k%Rvai2nUOxj-#}fSQlfFl?FITHHFn9`94hv4m0j8J7_ JItgDs2^ZbCf@%Xl0O^%9 zJp$5g%}^b!3VIuMl6zG!*;r;wRBAIwI6hVv-Xlm1 >^fvxK!t44LON}EKNq0lz|gA1%V>l=bRuEiLSkz>#iEo zE^?xPcBSkvCe7_R95S3_w;N%ouZ6?xo5V2e(hEJ5*>Mo?)-sBN`8WG+6;*kQ%9fX0 zk;_|ZHvtW^Qr+f;Ah?Li9L68NZrJW!Ti-)1%1SrvPRXxMr$1|o;#CG&@8$L-M0 zG_@s}?`5l+HH%gnX2!qVW_{Nak2p;52JPkW2t8!)tUnwFVXh^1t1^kv1H&7iw; -MUxd!iBsN5i1(SbSuTNFt}Nx#!k@Y!dvj*?*>nZ%CnguZ zEWAAJ)h+62W12w@NS6QPKqQS6u&2$_xV{**!do#g!dD8w&=4fF?b-ruZyRz;bg sF*XLas^s*9fX zg8r(d;r$b%dpZwqV=j~;YwMPuIl0?m9<|>@L9gC*q|5T8*22)i>Ma~EO}<~GlQh5) ze9Rmm=Fuz=!}U?M6q6Hnd<4#9wXbtRE1+pzKBxevY<$SJI2)nN=&FjvJiOxiWJ&wj zGeE$n#i{dC?&T70w27hgXNnHQEsn5U_4vGxuIA|N?8OtO>@%lGBY*~9ZUO|e^!umK zX nquYCy!2r4ks@2J5hz+E4d^$o0k*VnN`nV2O8 tNE%@sPc&j&Vh+qCC* e}aWWe;t$ zL oaPZt>1vGOZVGKZ zC$*aw$sSEGQpPn|$26cXR6h6em3K~T1Uhb}8$o-Eu@;tQJiO~=x6`*& wLKb-P{rs$6U@AD z$W@J<8*T->QwL#`IYn;t-p@sk3T?;zk~<$cuI(Un!p=e31iP>TG4Yl>x7GtvipzJU zTlviM1pS1dWBdY11+(OqoWkTS3ycHl6`x1ub@)$WIJ=0H&Mf!eo!`JGbXP4mGxQg! zKI{2PXIrQ93Z65&Wos(fk@*2?Kj7>IQ8qIoAU`i~R_9?$H&DBr6Fm(%39MoD;e~*u ze#Om+@toWXA!>w2*_;P=6m{(Q#&h4pp4#4H2zsKRnZxC&OQ6I~3nKpOdWuN!A-tFYm#0#+<^ip#9^NXM!dbD&CECB$ zK@&cV5i6ic|Mey5{H+e!I9nSSI{-}@zfJmDtI@eYlYZr_>pS8dhYtco#M36K4*-jL zZIu({cJjW|tjiC8_%F-esop_+^BqDlCtb)y5K!NO@zJvZofmTwxZSRe$zf~VV{KsTjN?k5t!~KPURL;& zSeKA|=+JL*3|?Hd5gG~e64GJa(;2~mDWXt#2U6nKE3ReWkOkd>hGi3L&N*Ptuz!T& z9ew2S&6{Vo(quL&s)3mL)_2f|i`dWpXVg;HyC2bB^eM2U>SW`O^a!-cAb_9x^>)?F zD<4XF1NCRqZV?sjl=AL=IOShE >O^7@X?t4G ;7DjTzh9nFg
C@^1l8I^rZn24#i?t57EJ^wrr+0q ftW{CiKJ?EU6 zO^F>+5V`kL{q`Z&8xc4K_)vnLR20_r!Di?-SY$2*v8V*^{jH*_cc*M=0l8 ziWoZ=hqQ|!(P(2m$JM9J`T_= }Hk%6(H5|g6Fu_N=#}UsVjbLLE3Wz J;|Qy(1pB%lqg^UnO(zZ+9%MM!mdoMCQ&Pl!vS^sYn@UEvcRm%(2M4VNoOW%*Tny znY2}{n~g~?)f+^6W1p8H@@~K`>4kpo)z;n;nNkffE65{^Njr58ZCImASAtSlhTP}| zIc%O(2cNHgaFX6grD7!>rBG3}j~OFFu5%?UO5;9nzxB7`60*GWPg{h+!m<@QS?oxo zC~815Qp8 #NDF)gWk=8GN9G&|#yXSLsYS%#+CHGpSchb`g2 zrGz`_ySyq-Sm?xvuuAN6AE-5UZ#cHpDw<_cIA5J0{nbR6`WV;z`Xv{td#(ll9kIn~ z9N!pwNt)o3RC@vIM=WQ1x? OTPE zPg+Ocn%7qHKz5z1!CK!I6bd%YX=abY%ZxJBH5UwjYVPskeqgK15$`0C^K8Bk>48Z+ z^R3aEpVgW+RlW^t7Q*vEruS&Z==T0m*z2cuID4bFDActU0o``HwDoN5-)}glWhWzC z?KJ4A?YZdv_$?^JrJG$Fw}hOf?kaO{iGmHybpCxO6CN|XF7)}`j&x^j;B!_yL1!5% zCVT Xx>me1zQ@`f&^l^1n04|L zj9m0|?B5>_!Rq@iCSLK5SM?&`dx}r%j|hcPJF)?vMU+#d7ogn!-%?VSt%#;K@XQs^ z=8pZRi1erDp@ |vhC*2oW_arIk^JvagZ&Vy zLj6;&yp5?6?-{0-etL EFDT3t5$bCG)2f6 ztuRcNZI2hv*2V){*R^fT?1UP(Sz)2Z>N0yBwJW(*uHpXe%{h 64q_f8PEsLKAhmkp5ZUoRiOtf&*aF&xg_6!YB6-f-d0 tYm4Ig?qYFYnAsq;DA-y#JeE{OJ_FX^ZqI1 z_^6Nq{phNN{b*ut3XS)5{M4w_X&az*rTOaL?kQ-k=9%+6sl#PiubS7Y9+y3;YTJ-{ z!P*9VIH8J7oSxa@rm4A@i0Duj)b2GMU2>XcKb?n4UX?V_xDygRW9daVvhIZj&(pBD z1KnHXu;%S**Spiwp14?D(^CQCGEM#^L$_iGNx(353TEo)B?JhatV^==(au?+bCHc5 zA$ICWLicH6{13x(k`sGncANNUp4#0HPO*nZl*b)o(+l`qmGw3mgbcse#zkXyNNpul zsK?8X&D&@AsIRYn;E;Letw(9h;T=XvvW%c!rbXT>)%5E>vtgiMv_PBizi(j&Y_9+K zX#V$xcJfmHB>3lsS${`Q0WbNt?X%tj|G9b4-+|Xa`S$;}mC#$Jf7#9DFS_#AD*rFr zySycN>oENn! @PF2# ozYm3PY2Nn4f6+8q{z3Cszbr2W32ZR0T{aR(AF$2kS-<}JAM)x$jsO4v literal 0 HcmV?d00001 diff --git a/ydb/library/benchmarks/gen/tpcds-dbgen/How_To_Guide.doc b/ydb/library/benchmarks/gen/tpcds-dbgen/How_To_Guide.doc new file mode 100644 index 0000000000000000000000000000000000000000..b8f9c6fbb72a59e083eceeff93ab83393a917bac GIT binary patch literal 69070 zcmeHw3wTt;+5hb3`bZWcLb! u-QGyF4^pcy%0kAYP8;3 z`?b`hRQ>nqpW>}*?FUxBYM K>2VTGH36ZyvO`R{qvBBR*^TDBU;n4P5&J|*ysNYn->FLDN z33=A>Cli*5%Jo9rJHjKeWsKvB9)a%eLDsok$LfMR %V@P5FrTn4Ksu&!}+hkr_1HH&NSjP{RyDMelrn1U0?ihxUO^^ z@<+n0;Oun>FGu>JB#_}${l9d6MuZv6ERVWQ`J`)iik|XSebqG#{|142q$`6zY_<`T z>689als}VBW|;i3J4MHSt}n-`KDp?T?%N rtNA)P3lDpqsD8we5c@5 aE~M6~dH1y1ZH;hT!~h$N}Aw zSwj2(KEu3D< N1}EyW+^a}XyfPwe2g!DsnZd+kMd2*N*vzaRdIT&7&Au#!jR zpNNhR?RwgYE<(JbpXn<;EBVRgt1PHbjtmxJ{Rra>{c))HrzQz8zbLJ5?D4#k@pMWb zW%`QGef2rKke*kRSTe@2>s$`>p96KPY9`IE)jC44RxKIp)E1?}LEYzD5>3Wq!Bij_ zjzxWSAzf=p#am(tU5hnn$xt| DHeMTUZi(p4dNir|H8byeJsJo#`{PZOn#Qb>{&=H~_*5{A7@0{p8Vqj< z2UGq?LTe4hv{pX|kXkg6^hY8UT1%`Y74awa3N4 t@JHIV8D$Fklm2>t0 lh*65p$DimF}kMtszDo~of1Vw3-$U+?Scwz zYE{+wMN=xPik3vfNm2~P{S8UUtfp{Mn^HNYa>i7xe10s|s4b0!qKQ~^@(MkvZ` 6HEYZDaFZU zytb&ww^&N77L2t<*=SPu*ai?kltv0IONF*mm-y>JOy+Wiw)pZ@3sx^%vf>hLOemRb znKgNGYiny|vL#R%i#LwZJVR{3p_SSih(4t|5{@>pjd|Qde0{#PA%F6g1jJHaU={<7 z;s-*hXfUorxX^_f!Vw5k`ZBFPmDFNU$c$fW(9sh?M}s(MA^#R+9D{hFhO&u+;fA(K zZLuELkg()YzhFrA&lksYp;JoaL)^w0STVn5CJla!3O>6-co$e7+NB&>D_JAgr-^ zu(i!9XmgAOoaF;2gNe$-=Ey8rS* r-JgAsabZ->65Y%AT-U9@U4V zeyPc*s{Bf4wxCtX02>Dt 0Y--IsJzgDkD zVy)0ITLNh9O@{0mHArY^G^z8_B~8X+P|_^bT4?Q9YeKs$oPa*mYR)^a(ntN )=mv_ zf|5$brI--c8=##-MuTy1Negx`6_-NArpz36T0$6_pomR{W@`b~L^ZV3@N<`}tI(je z*1%i5ivKHWRvY>;7J)n@d^NF_Hq9w*>~iXiZ$S_`QH5m61~ii_GISfoFN*Pl!;;pq zvR1oD>+r3n?qN|ZO)baQmKGfep`_wU`c~FfY75cu`c}!gStbQp-cH|Y49p#@T&FQw znc@LcLyqCv@^By?OT;jsm;zIqgar`es58U25}C;|fZ<^%(?l#{2yi_{#~8+0eNrG2 z4m7dcPy Y+H!Al})GT8Iy~MDBoL!xzD6gNWb(rd)Q&vb)Nb3XYM|P }F K uOQqQ%>^t?Zle80TQI z_(XJ0X%l12YDh(x7bi^3C~=sBU5h`CmWBZin+n~Nvn|xx%!qmeqYNes{^nSUCOgbd zO0Z>*QoEW`!B)4WV{@YYr5QNAXEup2i{OvyFasfIDF3o>G_`dytt0Kk@}cdt3O-%i z83@sAnu5*`cOucsmUQaLC#A|c$y}$KNqy=5X|}dM(&}$ZNL${p`8y2rIvm`J4o;<< zz+AXN4oz%MG_f2%60v3-4TugMg9@O=K?6}4bYN=IneKp6a-%Z2G8Y51BdlB~CrlSe z#p4)((<#%+)l!QT2&sjbfM=00 B)0xHEJ5^J{!yARc0Tw`j6TB$R=qH_@T?p35BwY{isw!19-*iS-n=4SM@nVWt&w3 zyKPx i=XH%uvO98h&F6_rLt zm hT+UMvA4-K$6UF=H6wFgD* `b5$wPhMCS*$T0P_*~}&xmQ5NThJBJLdYTW0iDVVlALI(vPRnMot0IFa z)+~+nn;fdU+_Z@@bn--Lu(07eFnJBLNT#m0CzzbkD>^5dI_?%M&M4&|bveb$SgN!} zg>?Vrpdn?%SRVCVjyV(NI2BX^0az4VI?cES#cRU^w@oTkxgM+L-W|$L>!h9t#e&qn z5GfK^0di3_ipa9tEe#0M3SJDgpNblb52hBfnlKUG2Epv9#>~YygQPN|(RIxATG@I0 z8rvUJMZ>r;nl-KQ3~7`Lxio}BVa}S8tvU=KNA_BI?Lwn MHLRFOu-4`Xd16D4rlNx;}8ju&NxOYYf(V;2-!+%oq?tL0NDHX z;#lLgG~2Do$22Ibj#LW@jJck{{k|A=Mhb0OUk&!e2GeBUFvrM5+3r;RLDw*s>sd4h z*w@)62A3uq1~a 8gY2v#9RnWU_60cVy=bKF5&tH zRXvOc7~)Y{QoLJX6^KJD=_|EhDP!0*(kM%`VYR8*Sh9-in^VSm9x_SN3N7a#)uch~ zHen@+W?2w(A9JW@Szw(SIdXAM-WOqR&YH4}O;IjBx3X-wpzRiLC>TTGq-{5sOJ=wu z!K4l?ULnUbuJ5VlSM@OZ3I?Z)aj#NaX|78|+6+s}Sr+IWEUX%XKiH_l7H_V{oCw`b zk)-t0V~S=Lg{4=yLMDu5F5DF{N4+d%<|&mz5v5454luW1tVD3rXf0}t)>gxynSIY1 zr|-6E^OvWGVnv8IT|h?7xM4*su|&vVfVtdYjD|JoyFJc(E9ez8jf{0Ce`Mk;&0JB! z!f_bp9W1bVV+zW}gPoXf@t%_Heom)vnY!_pLD?|$$Q7egz(S4C<~QbUm2%LeWauzN zH60eIA(`yG(oi(TQrXs67RH1KEzulK@ZKl{(;ASGa}tZJ;Q&s`o3S)?TCfaB{<8#X zj%xBD0g2~rZQd8>N}8oQI L zu*q8W`VB2u{FI%Nfdrx}wOaGmuTu~yWl|WiY>B=I`RkEorO(z{N}zbZ1JYNAx;Pa> z#{Chg2IQ>NA2D_T=yBdlz v5Z2wydqVnLQw_T(`s` zC_g%)yr;5e)%>}23o5iFD{2?4u9L-@zhK#dx&<^tF}KEjzqIU1#+!Fbao4jRlYD7M z=f2IPWKG?^g&I?HDub*P+i*ZjU^y6zeAu?pl9Z*8x4?YM=dQbGV{{ukpX_W?v`KT5 z+N6Lsro0x#tf|8|xV1bG*kBXM4T+|S=S?xz*%q!|x!f+U6US`y$*w#JU3uL6d6HDk z>IL9|R=eQRH49eMpyq)M=oDIQ-CS^F?UK61+BlSBjL+xm|8^EP#e2j7Y>$7QzP% z1O@>^fihqm5C9^;KHz7-5KgLbiQ$blyfKFNL&JN@@b(#=2V42Z0ad^};8I`%& ~l};3vRy zz>B~ifwzEv0K>4Qb1kqAIDQPjqsO{l?|K=( BQFj9dyE zS0K!P=JMd|!_vQd=@jXgYuLev^Q24v?jgISUsLd;^fy&*lm6c55$P*B6PI5iW^ {q>?$Jsl f9L3iWlRAgdIx z)$Jyl-Tb0?MYGBw6%p{#a*fsz4(f9TuC&MCsj0MEl|IaV1Z(BA@nXP2j$X#t#t}{0 zUKyjDw1DI}W4yCQL#YT}1$kElvWY-3n|L@t%lUbr5!1Qz1_}`aPQ!zMp9O9P?gRD% zUBK8 _R-BL|*&WY07FJ@m}I&)oG8 ze$N~* p@&VjHzFsEZ%nIW9rl~*C>W-m?phV&m8`3dREnWHt&R3Rg+Y;B}fzHD=A zws>>!I!R$h`KP3>!fMtir3P2C{mbM(=Z*}~S93(pDXZCA$zSqR@oN@%GTY?MjqvXT z?gHKf-U99(iY5l`C_^0Z958Sg+5p%Jv;pJs2;u}_4&YD#j>%z{y(>8ajx_H};5B>M z907-->0_XeRd8^}UI2BBX7W8XQWWp^?kZ?0t{zZ2@KEWVGyVe{H(XG|yzqq= zZocu;S9d&vA9}-)a~8>7A$ypucgX&T@QAXAjQ{)9pTT%JH1zGZ`_QMz+LcT5#HGMh zKstu(&mI$=Fv1xF>awxm%cg?QYuHC$p8AILe>3*i()Uy^mA=v;8)jZ2!&2i|rD7<1 z-V^{w4Dw)2rjnocoBSjn=a{@a2!HHIOc;UXKsO*T*$Dw*;3cejy$lRL3r}tX(}6?4 zVc-}r<6}b11pcW6lm2@c_^Ul1hbD0Z9R1i4)5pLIIrDigXUsu+%+GQL>=Ei%_TKMB zr |8)4^zJvQ7+jsEA!`AQ7 Kv-EAve^-qBR)#UCNB#q-9djk`{;!L`8)@x2Ic{O6E^1v ze9{)t%VqYfK6uC5xJp#v?dRmMN_d0b#|x!xD+;eb*UE5()gb9~?_fO$i$@vjK``#s zT99=(>RIdXtn^{l^`HG-TII6RYT;OlVgXyc23Q0v0j{&x!O`H3fc>gd@Hjg&q-gB; z=!u5NW6LiERsprH6f^~oeiWsEEnf$$2d;FbpeeWx=6%1`5KsMKLgcaKuL5)+ ij@Ey)SO z%O61zC}ER&$KYlGZ~-tEm ek2lm;i Q|+&zz0U>C2b3%* zIT#K(pe$4Y^MEzLL%@Fn-vRyt42Fzc1pFMJoKQv*z^#Cil}gCT0zk=3A!KF(unw@x z4`t_^a}fv32Ic^Bff^tQqyWAz_xQ2bUU==`YsY{3;~zfp*rSg AnED6dXQj_;7*;nP)XlvmYgfzj>L#CB>{GY#W_i9ZZ#uF;&4tKbmljFKQ5I{_ zk&Wz#L20B2z-QcK@_9V?NFLky>gaa41CCDYSZ}v+*FAh6IUw~$dLNAxY 7Tn++$S!%cL2K~?xPC~_4q6Rf0ZH$ zBRc>;CgP$I=MQD1sm8ewuHtpG#AN)kr<{!I+SXljboN ;|z~z9;0ha?V2R_IgxWPLVPx*MnSHvJLKASFmq|Ug$ z%YpZj1J&54`j>96s1_xb@D+*`ay_G2_(cSnbKPUOs98E(Y*_5c_rq^q%ng6}3ByYo z-g@Dw_Tb|6l9XKf6mnnSVxfalP=rMkYb2V$7HoWc56fBOJZIe5C5GHNM^uj&XAA7? zty!vxOBQQbJNM#&0I#^B_?oNW`EmLR;g#gCI1%}&lDyYR-lLKHOy)4kPW?)i!6 FnkAjx@?Y(oWqd`$$}$cJsyD>NmT;hUKY}0(G_wAzd_p zODS+X2_CJ&aU5ur|1DTU(!@fvN))klt3|l_t?qBZPg5xobx2VU3OcTKw&5rtABMIb zVYW84%4eCqVgP8Ci>B(M-A}+5R>_Ja9Zf7l>m_8~YB73~xV`#Y;w^mWjglj8q2MEB z_7W^Y*~4ge+}RRbk2;Abxgkz?noZ0UYpQn(k7uULOTNKFHBB29)^ubPk>b^ai%Z1C z=X&Oy>um{fhwnTwLF^W%d*;b+h{=aT#Ob02tZc?lmkiawMzWuDcqV{5jSDYaVDN^VHi^Xlof1YQtjY0`(#_kzGO(+%`Sf9>+2) 8JX(1Va3>zCd=3~0>8b&? z0&T$fQr!9k<^cBt-vDOgiQGBBFMxx Z#cL+~sQFl{KFy#NjY zhk;|j3@~^ma3L@om;+P;^MD#)5wHYU3akQZfjVG4a3ydRpaUTw4730VAPH;-t_IqH zYk+HkJAe{AkK_Zc0 MOh+YUx!+X3(j@G3BV4C)3XffTS6K=TMs75?bjP4F1+S-PG7_Be*6 zYcE1^gf~Z=GaV{wx%Ld2?{8dhb-15pw(7?o<}qurt0;Gz)@xixHk#;Pc$%=+bRUNN zoH9XvD%T%by4#V?Nz)nETiZI*jfcil4)R&;(bDan8HejEndnbkaW6C(XUbN4CQZhf zRn8h`7Cmd66fE@VY&1;^qDNfr`i-p4-QUkeT%N_3K^P^JBR{>ix>sh2Q+3Z4r|NEx zgI )e;3F$KC(>T{|MBx9FiDQXR)ithru+CK{7t-Zg%4n>o^tSAE1D3gZTl%^K z%U Gz*Q#93(Y>y*NxEyuwji2R6mR=6yjS}TZ(`&0cZ=fir z;#A$U#i_d6<5&mMRCUjc1AVIw&bZv=Bu$QKwxaT$PTE<~ss_w<-dDKCLb*(uZk)lHe?MRP-hSNgqFiP<-|slC44P$Y&nye$lu?{5PFcj+;*>d@ zEl%0O+2YjnB{L3Xw91L&cC*azoMZ8+8OPdu&{hp|tOlwLWok2-+DN80k*N)2YV(-d zIHop@^}bQ7z2`zNc_UqaHrLoRrpToE{>D)k t6Mo% z!cICacYeK>^JL4?TYk6qs2@+z^+%SRo3WfUopGEaWN+Kd8yNPDOo*%Y*wnB+4zgPf zqE;LAHBJ=WQq5H)q@{Cgj$(d{Q>xugQ^hIOo-IzP_H1!VwL9ZBJ&lr>WifM=-&0{b zY`R%gonwo$-OY5wu|&2xSW%+p&XUd39xvIP_dIY6kTvCB5%ViGX)>LaXO1}RwG~Ic zG&~E IdRlqJub8rSt>^2aib~4=~12<1QI1uG9$1g-kXQUgFk&ZUvsON?kd8@H# zR%PFx#Y7%)8#Yn04rLkXsJZHpZvEoTdDcc(Y^`Q0y6$cx-SCWbBM>)#(eR?YYHa#N zoMILELbRLp8<~*~dvwKir1Mq_@rlHPHy|jTTu$Q=vo^9Em5~&$h!+o;Nkx?-fg~aS zjHG90B*l(jG3Pf%uA*u>LTvZ0>4OEhC7z$WkXb@%dPo#ve^9u$2)o(k2a@=i48AI# zZ@}W4q&UE`Sfr0r;yi%Y@*8{n!WzG?#Sbj;^D6wr0$;Pvmu&MD%Y4BuU$4rSYx32K ze6ijb5aHXENSiG~E>pXcYuMF{=S(<7#dW|~U>tA`FdmoyaLp3Q1(J&jfMp>q8kT>9 z*bYZCjRUxi{)}})x`(!7CsEf0yiyc)@hUGCGL?LL5GEL|7H9vZ6uu!D-J-p{UHqMo z!r( _PzgXnwkvM`M&-2I zC1MT9N%&CotQfyIug^*}`{T)^zcG>Dj*nXFqWxk?zkg{@YhR_u6S3$De4AdhL#90K zD_0mb;qlb`_Ni4>=X=^O$ZMbPZ!2hD9*ZVJ`R$kM{ z3&2-_uK{-gbI@-W0ZRaW`e_YN4-`RdmH~CZmB0?4x{z{0gM2*HDCwO36!Ab J)W})nkxz1KEQYk=O$AgqmV&9a-$xrc?B{v z45i~90X`zbM`E~KvKMVys2S~5fHJ-luntCTWgq$VSzjo6;g<&vcMr<^m5Q3_CA? Ll! -&<&W{N~oTZw!%#H!U{wT&2`-`8#sa*i~@)bta8n1)#C3U?akI8XmkOi>bZ0 z zln%_Kk$=Lv94fWya;OwE4wYusrQn2h*>i?fjy-39#-1}W%Taj3y0n*BG}_BRqrEJX zM$rlDvTB4?msKM`W7UYvx)iIrxH2aDiz{Q!zVFJItH-2Xcl8*?TX(E<+8^#%>Es7L zLfA)pEa!OJ4;dT$F4$u^%h3;eEGLbA*kd{C(hnKSS&n|#V>xN`!ye07mv?55@nrzH zZ2nleu$$YW7qiYFlU>X*$SBKy*bdGp45uW1s4NXFe^cTu%m3E5S1v8Ut1AkGgPcd) z(?x;JO)R^}tz7B>F;6D3Z|5X7LY6GM?Ac%Jo>97(oaE##9R<;>sx>h<>8fUz$djyU zcF}wXRi&JoRkh{~C#b5(*>U=z6nErOXxXLJF7ZlK-ASr3@pmVw&WViDh`ARJTp3fU z-B?`e$H1Gj-)2{H_I`UREQGv|1F!9Vk!qcjA9!;TJDGtu3$b@L@Ma-sRP|&A-kij; zOJwf@Zx&)kRZn){%|g(qYCi{F<1Uh1lvd^$eXg0?!(5oQhq)MS4|BoW9yZt2?Wed# zZ4Yz(+#cpyyFJX8lbzU^<+mp^j=Q_fsKK}!%ESB-hIgjn_5I|BfB^3Vn-w;_0)q=4 z!^< Z<^!V=8g}p<0}?rm~7=aI^Norj(aws#Y#mrH#P9mBC!T9 zPiz8W_%cgWo@K$6Gp^#*AS3^s$GC+r7M0O<@p=pM3i9!_p8OlP2@R*)6&;xoPSoKQ zm3-x70?{krx58hIeEFW$DB@>;j#m`mV=kVeLT`amzpC)KLbUU*R qlv9 zmG-c#@`a!wvy!+KT_~$4V{Csts<>9Z&9l*ZX>0-)j}iG|bMZ~XMHfGaWmqyzH4onK z>USQzo3skW1^6F_%@(V%pU8u^d{S5Bm2!-6o>imH&&LS4nZ_t7E^}Q!I8a=)tKcE= zkhtcWsngk~M#xvaa=Vp|ZbrNlhbA_iZ|bKnWjhsH8{|}s-Cw+pp>o_D$F8G~W4jo( zCct>OIv0%h6ALlbPDHNWbjz1|^7K$h?<%~hbrN3BTMOAArBRaEZIkfN(loIMeS@#K z)lDiTxRU*auQ^_dqYyfF0)7;4rOg%ND1aHLf=|_=!O2r4C|U_LPzjh&0 zQUVQD0@h%fQ+n4Xq1x*rR41oH=y;|9$fxD?_FCf3aAcH{n~)k!4#EL0!W5n*gTV z0br|&*aJWCHMc2yqagiai8SQ+EL-yNi(?JD$W4_}FJ7ro$(LtKri^T?QZfZp1qH z*mol~!e_SBN!)ze0-sq^2C;)lZXK*!RWoURt=18WwQ9*&r?w~+4pM3u&tlQ>m~`gH zQjOZuSSX6UYU;fG8Wwj&EZ*#g{y$NgnYdP!VY%8_r>&H`>a?}7co6Z`fLQhI17wFh zzUA$sdoJ1Mk;mUX@|p13efTDw!B+azru3<2>ATM5fXe}w11<+#4!9g}IpA`@<$%ip zmjf;bTn@Zb4&+(_;QZSA%b))8E0t%Kc6=F202TlE=6swh$UKL+IM)L>f9GKc;GDe$ z;4(lvz?Bv*7jVUJ2f)V$Zw2rqi`WHlPX2X(bNf92ACGwi;99`r0BQdoV42jMU(V6> zq`qyNU(S&)MjYqL%!5AH$LN23!~mHO4s-fvqW~;B^Uc1FP=YI%J7@Z=O J3NoTv5ZqZY8>64#$ ziU;2wBA@&A(Q{tU{DlaR-L7*v;Bvs_fXe}w11<+#4!9g}IpA`@<$%k9k0=M!+?4Z6 zOhx4!lk-sCtL7Zryk*bZ^qfC(3d?CZZ_jg@ɩ+`OI7={u*Uc JxEdr^fmvPxVFOFu)P)y5XU|z?qLdGf0O!hc3(>|68V$kTp{Xf{-j-L z?lCWb@G@6!m1OfTfgm) GjcZm` 7LW*K)%fPRVY?<4P4@d4V{3;e+p{xGT|h{db20 z|7I&-*H@qWrE3M?^=xRp4~iAQQGiwijW~{`v?gfLxO0II>|CHf!;qQ_T!$v*9AP{B z{{TJ(Tn$_UxVM8bH-%Biu22TJw}Zh1*SQ>UIpA`@<$%ipmjfSa4$v;V7B&1dpzOu| p*qH9Mr#1&Z)WYpn&gFp10ha?V2Xb=Yqj)3mljMebBT&l3{|9L&0PO$( literal 0 HcmV?d00001 diff --git a/ydb/library/benchmarks/gen/tpcds-dbgen/Makefile.suite b/ydb/library/benchmarks/gen/tpcds-dbgen/Makefile.suite new file mode 100644 index 000000000000..c572ea5ebd5f --- /dev/null +++ b/ydb/library/benchmarks/gen/tpcds-dbgen/Makefile.suite @@ -0,0 +1,685 @@ +# +# Legal Notice +# +# This document and associated source code (the "Work") is a part of a +# benchmark specification maintained by the TPC. +# +# The TPC reserves all right, title, and interest to the Work as provided +# under U.S. and international laws, including without limitation all patent +# and trademark rights therein. +# +# No Warranty +# +# 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +# CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +# AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +# WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +# INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +# DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +# PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +# WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +# ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +# QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +# WITH REGARD TO THE WORK. +# 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +# ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +# COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +# OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +# INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +# OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +# RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +# ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +# +# Contributors: +# Gradient Systems +# +# +# +################ +## TARGET OS HERE +################ +# OS Values: AIX, LINUX, SOLARIS, NCR, HPUX +OS = LINUX +########### +# No changes should be necessary below this point +# Each compile variable is adjusted for the target platform using the OS setting above +########### +# CC +AIX_CC = xlC +HPUX_CC = gcc +LINUX_CC = gcc +NCR_CC = cc +SOLARIS_CC = gcc +SOL86_CC = cc +CC = $($(OS)_CC) +# CFLAGS +AIX_CFLAGS = -q64 -O3 -D_LARGE_FILES +HPUX_CFLAGS = -O3 -Wall +LINUX_CFLAGS = -g -Wall +NCR_CFLAGS = -g +SOLARIS_CFLAGS = -O3 -Wall +SOL86_CFLAGS = -O3 +BASE_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DYYDEBUG #-maix64 -DMEM_TEST +CFLAGS = $(BASE_CFLAGS) -D$(OS) $($(OS)_CFLAGS) +# EXE +AIX_EXE = +HPUX_EXE = +LINUX_EXE = +NCR_EXE = +SOLARIS_EXE = +SOL86_EXE = +EXE = $($(OS)_EXE) +# LEX +AIX_LEX = flex +HPUX_LEX = flex +LINUX_LEX = lex +NCR_LEX = lex +SOLARIS_LEX = lex +SOL86_LEX = lex +LEX = $($(OS)_LEX) +# LIBS +AIX_LIBS = -lm +HPUX_LIBS = -lm -ll +LINUX_LIBS = -lm +NCR_LIBS = -lm -lc89 +SOLARIS_LIBS = -ly -ll -lm +SOL86_LIBS = -ly -ll -lm +LIBS = $($(OS)_LIBS) +# YACC +AIX_YACC = yacc +HPUX_YACC = bison -y +LINUX_YACC = yacc +NCR_YACC = yacc +SOLARIS_YACC = yacc +SOL86_YACC = yacc +YACC = $($(OS)_YACC) +# YFLAGS +AIX_YFLAGS = -d -v +HPUX_YFLAGS = -y -d -v +LINUX_YFLAGS = -d -v +NCR_YFLAGS = -d -v +SOLARIS_YFLAGS = -d -v +SOL86_YFLAGS = -d -v +YFLAGS = $($(OS)_YFLAGS) +############### +TREE_ROOT=/tmp/tree +# +PROG1 = dsdgen$(EXE) +PROG2 = dsqgen$(EXE) +PROG3 = distcomp$(EXE) +PROG4 = mkheader$(EXE) +PROG5 = checksum$(EXE) +PROGS = $(PROG1) $(PROG2) $(PROG3) $(PROG4) $(PROG5) +# +COMMON_HDR = address.h build_support.h config.h constants.h date.h \ + dcgram.h dcomp.h dcomp_params.h decimal.h dist.h driver.h \ + error_msg.h expr.h genrand.h grammar.h grammar_support.h \ + list.h load.h misc.h nulls.h parallel.h params.h \ + permute.h porting.h pricing.h print.h qgen_params.h query_handler.h \ + release.h r_params.h StringBuffer.h tdef_functions.h \ + tdefs.h template.h scd.h mathops.h scd.h sparse.h validate.h +DISTCOMP_HDR = dcgram.h dcomp.h dcomp_params.h grammar.h nulls.h +QGEN_HDR = eval.h substitution.h keywords.h permute.h qgen_params.h +S_HDR = s_brand.h s_customer_address.h scaling.h s_call_center.h s_catalog.h \ + s_catalog_order.h s_catalog_order_lineitem.h s_catalog_page.h \ + s_catalog_promotional_item.h s_catalog_returns.h s_category.h \ + s_class.h s_company.h s_customer.h s_division.h s_inventory.h \ + s_item.h s_manager.h s_manufacturer.h s_market.h s_pline.h s_product.h \ + s_promotion.h s_purchase.h s_reason.h s_store.h \ + s_store_promotional_item.h s_store_returns.h s_subcategory.h \ + s_subclass.h s_warehouse.h s_web_order.h \ + s_web_order_lineitem.h s_web_page.h s_web_promotional_item.h \ + s_web_returns.h s_web_site.h s_tdefs.h s_zip_to_gmt.h +W_HDR = w_call_center.h w_catalog_page.h w_catalog_returns.h \ + w_catalog_sales.h w_customer_address.h w_customer_demographics.h \ + w_customer.h w_datetbl.h w_household_demographics.h w_income_band.h \ + w_inventory.h w_item.h \ + w_promotion.h w_reason.h w_ship_mode.h \ + w_store.h w_store_returns.h w_store_sales.h w_tdefs.h w_timetbl.h \ + w_warehouse.h w_web_page.h w_web_returns.h w_web_sales.h w_web_site.h \ + dbgen_version.h +HDR = $(COMMON_HDR) $(DISTCOMP_HDR) $(QGEN_HDR) $(S_HDR) $(W_HDR) +# +COMMON_SRC = address.c build_support.c date.c \ + decimal.c dist.c driver.c error_msg.c expr.c genrand.c \ + grammar_support.c join.c list.c load.c misc.c \ + nulls.c parallel.c permute.c pricing.c print.c r_params.c StringBuffer.c \ + tdef_functions.c tdefs.c text.c scd.c scaling.c release.c scd.c sparse.c \ + porting.c validate.c +DISTCOMP_SRC = dcgram.c dcomp.c grammar.c +QGEN_SRC = tokenizer.l substitution.c QgenMain.c qgen.y query_handler.c \ + eval.c keywords.c +S_SRC = s_brand.c s_customer_address.c scaling.c s_call_center.c s_catalog.c \ + s_catalog_order.c s_catalog_order_lineitem.c s_catalog_page.c \ + s_catalog_promotional_item.c s_catalog_returns.c s_category.c \ + s_class.c s_company.c s_customer.c s_division.c s_inventory.c s_item.c \ + s_manager.c s_manufacturer.c s_market.c s_pline.c s_product.c \ + s_promotion.c s_purchase.c s_reason.c s_store.c \ + s_store_promotional_item.c s_store_returns.c s_subcategory.c \ + s_subclass.c s_warehouse.c s_web_order.c s_web_order_lineitem.c \ + s_web_page.c s_web_promotinal_item.c s_web_returns.c s_web_site.c \ + s_zip_to_gmt.c +W_SRC = w_call_center.c w_catalog_page.c w_catalog_returns.c w_catalog_sales.c \ + w_customer_address.c w_customer.c w_customer_demographics.c \ + w_datetbl.c w_household_demographics.c w_income_band.c w_inventory.c \ + w_item.c \ + w_promotion.c w_reason.c w_ship_mode.c w_store.c w_store_returns.c \ + w_store_sales.c w_timetbl.c w_warehouse.c w_web_page.c w_web_returns.c \ + w_web_sales.c w_web_site.c dbgen_version.c +SRC = $(COMMON_SRC) $(DISTCOMP_SRC) $(S_SRC) $(W_SRC) $(QGEN_SRC) mkheader.c checksum.c +# +DBGEN_OBJ = address.o build_support.o date.o \ + decimal.o dist.o driver.o error_msg.o genrand.o \ + join.o list.o load.o misc.o \ + nulls.o parallel.o permute.o pricing.o print.o r_params.o StringBuffer.o \ + tdef_functions.o tdefs.o text.o scd.o scaling.o release.o sparse.o validate.o +DISTCOMP_OBJ = dcgram.o dcomp.o grammar.o error_msg.o StringBuffer.o r_params.o +QGEN_OBJ = address.o date.o decimal.o dist.o error_msg.o expr.o \ + eval.o genrand.o grammar_support.o keywords.o list.o \ + nulls.o permute.o print.o QgenMain.o query_handler.o r_params.o \ + scaling.o StringBuffer.o substitution.o tdefs.o text.o tokenizer.o w_inventory.o y.tab.o \ + release.o scd.o build_support.o parallel.o +S_OBJ = s_brand.o s_customer_address.o s_call_center.o s_catalog.o \ + s_catalog_order.o s_catalog_order_lineitem.o s_catalog_page.o \ + s_catalog_promotional_item.o s_catalog_returns.o s_category.o \ + s_class.o s_company.o s_customer.o s_division.o s_inventory.o s_item.o \ + s_manager.o s_manufacturer.o s_market.o s_pline.o s_product.o \ + s_promotion.o s_purchase.o s_reason.o s_store.o \ + s_store_promotional_item.o s_store_returns.o s_subcategory.o \ + s_subclass.o s_warehouse.o s_web_order.o s_web_order_lineitem.o \ + s_web_page.o s_web_promotinal_item.o s_web_returns.o s_web_site.o \ + s_zip_to_gmt.o +W_OBJ = w_call_center.o w_catalog_page.o w_catalog_returns.o w_catalog_sales.o \ + w_customer_address.o w_customer.o w_customer_demographics.o \ + w_datetbl.o w_household_demographics.o w_income_band.o w_inventory.o \ + w_item.o \ + w_promotion.o w_reason.o w_ship_mode.o w_store.o w_store_returns.o \ + w_store_sales.o w_timetbl.o w_warehouse.o w_web_page.o w_web_returns.o \ + w_web_sales.o w_web_site.o dbgen_version.o +# +OBJ1 = $(S_OBJ) $(W_OBJ) $(DBGEN_OBJ) +OBJ2 = $(QGEN_OBJ) +OBJ3 = $(DISTCOMP_OBJ) +OBJ4 = mkheader.o +OBJ5 = checksum.o +OBJ = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) +# +IDX = tpcds.idx +IDXSRC = calendar.dst cities.dst english.dst fips.dst names.dst \ + streets.dst tpcds.dst items.dst scaling.dst +# +DOC = README HISTORY PORTING.NOTES QGEN.doc \ + ReleaseNotes.txt README_grammar.txt How_To_Guide.doc +DDL = tpcds.sql tpcds.wam source_schema.wam tpcds_source.sql +OTHER= Makefile.suite column_list.txt parallel.sh specification.doc tpcds_ri.sql +WIN_MAKE=dbgen2.vcproj distcomp.vcproj qgen2.vcproj mkheader.vcproj \ + y.tab.c y.tab.h tokenizer.c grammar.vcproj dbgen2.sln Cygwin\ Tools.rules checksum.vcproj +# +FQD = query_templates/* +VARIANTS = query_variants/* +TESTS = tests/*.sh tests/*.sql +ANS = answer_sets/*.ans +QUERY_SRC = $(FQD) $(VARIANTS) +TREE_DOC = +JUNK = tags *.idx columns.h streams.h y.tab.h y.tab.c tokenizer.c \ + y.output .ctags_updated tpcds.idx.h +DBGENSRC = $(SRC) $(HDR) $(OTHER) $(DOC) $(DDL) $(IDXSRC) $(WIN_MAKE) $(QUERY_SRC) $(TESTS) $(ANS) +GENERATED = tables.h streams.h columns.h +DATE_STAMP = `date '+%Y%m%d'` +# +all: .ctags_updated $(PROGS) $(IDX) + +$(PROG1): $(OBJ1) $(IDX) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG1) $(OBJ1) $(LIBS) +$(PROG2): $(OBJ2) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG2) $(OBJ2) $(LIBS) +$(PROG3): $(OBJ3) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG3) $(OBJ3) $(LIBS) +$(PROG4): $(OBJ4) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG4) $(OBJ4) $(LIBS) +$(PROG5): $(OBJ5) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG5) $(OBJ5) $(LIBS) +$(IDX): $(PROG3) $(IDXSRC) + ./$(PROG3) -i tpcds.dst -o $(IDX) + +clean: + -rm -f $(PROGS) $(OBJ) $(JUNK) $(IDX) +.ctags_updated: $(SRC) + -ctags $(SRC) 2> /dev/null + date > .ctags_updated +current_source: + cvs update +depend: $(SRC) $(HDR) + touch columns.h streams.h + -makedepend -f Makefile.suite -Y -- $(CFLAGS) -- $(SRC) 2> /dev/null + date > .depend_updated + rm -f columns.h streams.h +lint: + lint $(CFLAGS) -u -x -wO -p $(SRC1) + lint $(CFLAGS) -u -x -wO -p $(SRC2) +release: current_source depend sum tar zip test_build + rm -f tpcds_`date '+%Y%m%d'`.sum + rm -rf test +tar: $(DBGENSRC) + tar cvzf tpcds_`date '+%Y%m%d'`.tar.gz $(DBGENSRC) tpcds_`date '+%Y%m%d'`.sum +zip: $(DBGENSRC) + zip tpcds_`date '+%Y%m%d'` $(DBGENSRC) tpcds_`date '+%Y%m%d'`.sum +data_set: /data/dbgen_version.dat + touch data_set +/data/dbgen_version.dat: $(PROG1) + rm -f /data/*.dat + ./$(PROG1) -f -sc 1 -dir /data + ./$(PROG1) -f -sc 1 -dir /data -update 1 +sum: $(PROG1) data_set + sum /data/*.dat > tpcds_`date '+%Y%m%d'`.sum +test_build: + (cd tests; sh -x test_list.sh `date '+%Y%m%d'` 1 1) +#### +# Dependencies. Partially hand coded, partially generated by makedepend +#### +$(GENERATED): $(PROG4) column_list.txt + ./$(PROG4) column_list.txt +tokenizer.c: tokenizer.l +y.tab.c: qgen.y + $(YACC) $(YFLAGS) qgen.y +y.tab.o: y.tab.c +y.tab.h: qgen.y + $(YACC) $(YFLAGS) qgen.y +tpcds.idx.h: $(IDXSRC) $(PROG3) + ./$(PROG3) -i tpcds.dst -o tpcds.idx +expr.o: y.tab.h +qgen_error.o: error_msg.c + $(CC) $(CFLAGS) -DQGEN -c -o qgen_error.o error_msg.c +qgen: + @make qgen2$(EXE) +join.o: tpcds.idx.h +driver.o: tpcds.idx.h +mkheader.o: mkheader.c +$(OBJ1) $(OBJ2) $(OBJ3): $(GENERATED) +# DO NOT DELETE + +address.o: config.h porting.h address.h constants.h dist.h r_params.h +address.o: genrand.h decimal.h mathops.h date.h columns.h tables.h tdefs.h +address.o: tdef_functions.h permute.h scaling.h +build_support.o: config.h porting.h decimal.h mathops.h constants.h dist.h +build_support.o: r_params.h genrand.h date.h address.h tdefs.h tables.h +build_support.o: columns.h tdef_functions.h build_support.h pricing.h +build_support.o: StringBuffer.h error_msg.h scaling.h +date.o: config.h porting.h date.h mathops.h dist.h +decimal.o: config.h porting.h decimal.h mathops.h +dist.o: config.h porting.h decimal.h mathops.h date.h dist.h genrand.h +dist.o: address.h constants.h error_msg.h r_params.h dcomp.h grammar.h +driver.o: config.h porting.h date.h mathops.h decimal.h genrand.h dist.h +driver.o: address.h constants.h tdefs.h tables.h columns.h tdef_functions.h +driver.o: build_support.h pricing.h params.h r_params.h release.h parallel.h +driver.o: scaling.h load.h error_msg.h print.h tpcds.idx.h grammar_support.h +driver.o: scd.h +error_msg.o: config.h porting.h error_msg.h grammar_support.h +expr.o: config.h porting.h error_msg.h StringBuffer.h expr.h list.h mathops.h +expr.o: y.tab.h substitution.h eval.h grammar_support.h date.h keywords.h +expr.o: dist.h genrand.h decimal.h address.h constants.h permute.h +genrand.o: config.h porting.h decimal.h mathops.h date.h genrand.h dist.h +genrand.o: address.h constants.h r_params.h params.h release.h columns.h +genrand.o: tables.h streams.h +grammar_support.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +grammar_support.o: grammar_support.h keywords.h error_msg.h qgen_params.h +grammar_support.o: r_params.h release.h substitution.h eval.h +join.o: config.h porting.h date.h mathops.h decimal.h dist.h constants.h +join.o: columns.h genrand.h address.h tdefs.h tables.h tdef_functions.h +join.o: build_support.h pricing.h tpcds.idx.h scaling.h w_web_sales.h +join.o: error_msg.h scd.h r_params.h sparse.h +list.o: config.h porting.h list.h error_msg.h +load.o: config.h porting.h tables.h +misc.o: config.h porting.h date.h mathops.h decimal.h dist.h misc.h tdefs.h +misc.o: tables.h columns.h tdef_functions.h r_params.h genrand.h address.h +misc.o: constants.h +nulls.o: config.h porting.h nulls.h genrand.h decimal.h mathops.h date.h +nulls.o: dist.h address.h constants.h tdefs.h tables.h columns.h +nulls.o: tdef_functions.h +parallel.o: config.h porting.h r_params.h scaling.h tdefs.h tables.h +parallel.o: columns.h tdef_functions.h genrand.h decimal.h mathops.h date.h +parallel.o: dist.h address.h constants.h +permute.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +permute.o: address.h constants.h +pricing.o: config.h porting.h decimal.h mathops.h pricing.h constants.h +pricing.o: columns.h error_msg.h dist.h driver.h genrand.h date.h address.h +pricing.o: w_web_sales.h s_pline.h +print.o: config.h porting.h tables.h print.h tdef_functions.h r_params.h +print.o: date.h mathops.h decimal.h tdefs.h columns.h nulls.h constants.h +print.o: build_support.h dist.h pricing.h +r_params.o: config.h porting.h r_params.h tdefs.h tables.h columns.h +r_params.o: tdef_functions.h release.h +StringBuffer.o: config.h porting.h StringBuffer.h +tdef_functions.o: w_call_center.h constants.h pricing.h decimal.h config.h +tdef_functions.o: porting.h mathops.h address.h date.h w_catalog_page.h +tdef_functions.o: w_catalog_returns.h w_catalog_sales.h w_customer.h +tdef_functions.o: w_customer_address.h w_customer_demographics.h w_datetbl.h +tdef_functions.o: w_household_demographics.h w_income_band.h w_inventory.h +tdef_functions.o: w_item.h w_promotion.h w_reason.h w_ship_mode.h w_store.h +tdef_functions.o: w_store_returns.h w_store_sales.h w_timetbl.h w_warehouse.h +tdef_functions.o: w_web_page.h w_web_returns.h w_web_sales.h w_web_site.h +tdef_functions.o: dbgen_version.h s_brand.h s_customer_address.h +tdef_functions.o: s_call_center.h s_catalog.h s_catalog_order.h +tdef_functions.o: s_catalog_order_lineitem.h s_catalog_page.h +tdef_functions.o: s_catalog_promotional_item.h s_catalog_returns.h +tdef_functions.o: s_category.h s_class.h s_company.h s_customer.h +tdef_functions.o: s_division.h s_inventory.h s_item.h s_manager.h +tdef_functions.o: s_manufacturer.h s_market.h s_pline.h s_product.h +tdef_functions.o: s_promotion.h s_purchase.h s_reason.h s_store.h +tdef_functions.o: s_store_promotional_item.h s_store_returns.h +tdef_functions.o: s_subcategory.h s_subclass.h s_warehouse.h s_web_order.h +tdef_functions.o: s_web_order_lineitem.h s_web_page.h +tdef_functions.o: s_web_promotional_item.h s_web_returns.h s_web_site.h +tdef_functions.o: s_zip_to_gmt.h tdef_functions.h tables.h validate.h +tdefs.o: config.h porting.h tables.h columns.h genrand.h decimal.h mathops.h +tdefs.o: date.h dist.h address.h constants.h tdefs.h tdef_functions.h +tdefs.o: scaling.h w_tdefs.h s_tdefs.h r_params.h +text.o: config.h porting.h decimal.h mathops.h date.h genrand.h dist.h +text.o: address.h constants.h +scd.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h scd.h +scd.o: decimal.h mathops.h build_support.h date.h dist.h pricing.h scaling.h +scd.o: genrand.h address.h constants.h parallel.h params.h r_params.h +scd.o: release.h print.h permute.h +scaling.o: config.h porting.h dist.h constants.h genrand.h decimal.h +scaling.o: mathops.h date.h address.h columns.h tdefs.h tables.h +scaling.o: tdef_functions.h error_msg.h r_params.h w_inventory.h scaling.h +scaling.o: tpcds.idx.h print.h parallel.h scd.h +release.o: config.h porting.h release.h r_params.h +scd.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h scd.h +scd.o: decimal.h mathops.h build_support.h date.h dist.h pricing.h scaling.h +scd.o: genrand.h address.h constants.h parallel.h params.h r_params.h +scd.o: release.h print.h permute.h +sparse.o: config.h porting.h scaling.h genrand.h decimal.h mathops.h date.h +sparse.o: dist.h address.h constants.h sparse.h tdefs.h tables.h columns.h +sparse.o: tdef_functions.h error_msg.h +porting.o: config.h porting.h +validate.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h +validate.o: r_params.h parallel.h constants.h scd.h decimal.h mathops.h +validate.o: permute.h print.h +dcgram.o: config.h porting.h error_msg.h grammar.h dist.h dcomp.h r_params.h +dcgram.o: dcgram.h +dcomp.o: config.h porting.h r_params.h dcomp_params.h error_msg.h grammar.h +dcomp.o: dist.h dcgram.h dcomp.h substitution.h StringBuffer.h expr.h list.h +dcomp.o: mathops.h eval.h grammar_support.h +grammar.o: config.h porting.h grammar.h error_msg.h StringBuffer.h expr.h +grammar.o: list.h mathops.h decimal.h date.h +s_brand.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_brand.o: address.h constants.h s_brand.h print.h columns.h build_support.h +s_brand.o: pricing.h tables.h parallel.h +s_customer_address.o: config.h porting.h w_customer_address.h constants.h +s_customer_address.o: address.h s_customer_address.h date.h mathops.h +s_customer_address.o: decimal.h genrand.h dist.h columns.h build_support.h +s_customer_address.o: pricing.h print.h tables.h nulls.h tdefs.h +s_customer_address.o: tdef_functions.h +scaling.o: config.h porting.h dist.h constants.h genrand.h decimal.h +scaling.o: mathops.h date.h address.h columns.h tdefs.h tables.h +scaling.o: tdef_functions.h error_msg.h r_params.h w_inventory.h scaling.h +scaling.o: tpcds.idx.h print.h parallel.h scd.h +s_call_center.o: config.h porting.h s_call_center.h genrand.h decimal.h +s_call_center.o: mathops.h date.h dist.h address.h constants.h r_params.h +s_call_center.o: scaling.h tables.h build_support.h columns.h pricing.h +s_call_center.o: print.h w_call_center.h permute.h scd.h +s_catalog.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_catalog.o: address.h constants.h s_catalog.h print.h columns.h +s_catalog.o: build_support.h pricing.h misc.h tables.h +s_catalog_order.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_order.o: dist.h address.h constants.h s_catalog_order.h +s_catalog_order.o: s_catalog_order_lineitem.h pricing.h s_catalog_returns.h +s_catalog_order.o: print.h columns.h build_support.h tables.h misc.h +s_catalog_order.o: scaling.h params.h r_params.h release.h w_web_sales.h +s_catalog_order.o: parallel.h +s_catalog_order_lineitem.o: config.h porting.h genrand.h decimal.h mathops.h +s_catalog_order_lineitem.o: date.h dist.h address.h constants.h +s_catalog_order_lineitem.o: s_catalog_order_lineitem.h pricing.h +s_catalog_order_lineitem.o: s_catalog_order.h w_web_sales.h print.h columns.h +s_catalog_order_lineitem.o: build_support.h tables.h parallel.h permute.h +s_catalog_order_lineitem.o: scaling.h scd.h +s_catalog_page.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_page.o: dist.h address.h constants.h s_catalog_page.h +s_catalog_page.o: w_catalog_page.h print.h columns.h build_support.h +s_catalog_page.o: pricing.h tables.h scaling.h tdef_functions.h validate.h +s_catalog_page.o: parallel.h +s_catalog_promotional_item.o: config.h porting.h genrand.h decimal.h +s_catalog_promotional_item.o: mathops.h date.h dist.h address.h constants.h +s_catalog_promotional_item.o: s_catalog_promotional_item.h print.h columns.h +s_catalog_promotional_item.o: build_support.h pricing.h tables.h +s_catalog_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_returns.o: dist.h address.h constants.h s_catalog_returns.h +s_catalog_returns.o: pricing.h s_catalog_order.h s_catalog_order_lineitem.h +s_catalog_returns.o: print.h columns.h build_support.h tables.h parallel.h +s_category.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_category.o: address.h constants.h s_category.h print.h columns.h +s_category.o: build_support.h pricing.h tables.h misc.h +s_class.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_class.o: address.h constants.h s_class.h print.h build_support.h columns.h +s_class.o: pricing.h tables.h misc.h parallel.h +s_company.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_company.o: address.h constants.h s_company.h print.h columns.h +s_company.o: build_support.h pricing.h tables.h parallel.h +s_customer.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_customer.o: address.h constants.h s_customer.h print.h columns.h +s_customer.o: build_support.h pricing.h tables.h scaling.h parallel.h +s_customer.o: w_customer_demographics.h w_customer_address.h permute.h +s_division.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_division.o: address.h constants.h s_division.h print.h columns.h +s_division.o: build_support.h pricing.h tables.h parallel.h +s_inventory.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_inventory.o: address.h constants.h s_inventory.h print.h columns.h +s_inventory.o: build_support.h pricing.h tables.h r_params.h parallel.h +s_inventory.o: scaling.h scd.h +s_item.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_item.o: address.h constants.h s_item.h w_item.h print.h columns.h +s_item.o: build_support.h pricing.h tables.h misc.h parallel.h permute.h +s_item.o: scaling.h scd.h tdef_functions.h r_params.h +s_manager.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_manager.o: address.h constants.h s_manager.h print.h columns.h +s_manager.o: build_support.h pricing.h tables.h parallel.h +s_manufacturer.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_manufacturer.o: dist.h address.h constants.h s_manufacturer.h print.h +s_manufacturer.o: columns.h build_support.h pricing.h tables.h parallel.h +s_market.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_market.o: address.h constants.h s_market.h print.h columns.h +s_market.o: build_support.h pricing.h tables.h misc.h parallel.h +s_pline.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_pline.o: address.h constants.h s_pline.h pricing.h s_purchase.h print.h +s_pline.o: columns.h build_support.h tables.h misc.h parallel.h scaling.h +s_pline.o: permute.h scd.h +s_product.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_product.o: address.h constants.h s_product.h print.h columns.h +s_product.o: build_support.h pricing.h tables.h parallel.h +s_promotion.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_promotion.o: address.h constants.h s_promotion.h w_promotion.h print.h +s_promotion.o: columns.h build_support.h pricing.h tables.h misc.h parallel.h +s_promotion.o: permute.h scaling.h tdef_functions.h scd.h r_params.h +s_purchase.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_purchase.o: address.h constants.h s_purchase.h s_pline.h pricing.h +s_purchase.o: s_store_returns.h print.h columns.h build_support.h tables.h +s_purchase.o: r_params.h misc.h scaling.h parallel.h +s_reason.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_reason.o: address.h constants.h s_reason.h print.h columns.h +s_reason.o: build_support.h pricing.h tables.h misc.h parallel.h +s_store.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_store.o: address.h constants.h s_store.h w_store.h print.h columns.h +s_store.o: build_support.h pricing.h tables.h parallel.h permute.h scaling.h +s_store.o: scd.h +s_store_promotional_item.o: config.h porting.h genrand.h decimal.h mathops.h +s_store_promotional_item.o: date.h dist.h address.h constants.h +s_store_promotional_item.o: s_store_promotional_item.h print.h columns.h +s_store_promotional_item.o: build_support.h pricing.h tables.h parallel.h +s_store_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_store_returns.o: dist.h address.h constants.h s_store_returns.h pricing.h +s_store_returns.o: s_purchase.h s_pline.h print.h columns.h build_support.h +s_store_returns.o: tables.h parallel.h +s_subcategory.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_subcategory.o: dist.h address.h constants.h s_subcategory.h print.h +s_subcategory.o: columns.h build_support.h pricing.h tables.h misc.h +s_subcategory.o: parallel.h +s_subclass.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_subclass.o: address.h constants.h s_subclass.h print.h columns.h +s_subclass.o: build_support.h pricing.h tables.h misc.h parallel.h +s_warehouse.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_warehouse.o: address.h constants.h s_warehouse.h w_warehouse.h print.h +s_warehouse.o: columns.h build_support.h pricing.h tables.h misc.h parallel.h +s_warehouse.o: permute.h scaling.h +s_web_order.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_order.o: address.h constants.h s_web_order.h print.h columns.h +s_web_order.o: build_support.h pricing.h tables.h misc.h +s_web_order.o: s_web_order_lineitem.h params.h r_params.h release.h scaling.h +s_web_order.o: w_web_sales.h s_web_returns.h parallel.h +s_web_order_lineitem.o: config.h porting.h genrand.h decimal.h mathops.h +s_web_order_lineitem.o: date.h dist.h address.h constants.h +s_web_order_lineitem.o: s_web_order_lineitem.h pricing.h s_web_order.h +s_web_order_lineitem.o: print.h columns.h build_support.h tables.h +s_web_order_lineitem.o: w_web_sales.h parallel.h permute.h scaling.h scd.h +s_web_page.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_page.o: address.h constants.h s_web_page.h w_web_page.h print.h +s_web_page.o: columns.h build_support.h pricing.h tables.h scaling.h +s_web_page.o: parallel.h permute.h scd.h tdef_functions.h +s_web_promotinal_item.o: config.h porting.h genrand.h decimal.h mathops.h +s_web_promotinal_item.o: date.h dist.h address.h constants.h +s_web_promotinal_item.o: s_web_promotional_item.h print.h columns.h +s_web_promotinal_item.o: build_support.h pricing.h tables.h parallel.h +s_web_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_web_returns.o: dist.h address.h constants.h s_web_returns.h pricing.h +s_web_returns.o: print.h columns.h build_support.h tables.h w_web_sales.h +s_web_returns.o: s_web_order.h s_web_order_lineitem.h parallel.h +s_web_site.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_site.o: address.h constants.h s_web_site.h w_web_site.h print.h +s_web_site.o: columns.h build_support.h pricing.h tables.h scaling.h +s_web_site.o: permute.h scd.h +s_zip_to_gmt.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_zip_to_gmt.o: dist.h address.h constants.h s_zip_to_gmt.h print.h columns.h +s_zip_to_gmt.o: build_support.h pricing.h tables.h tdef_functions.h +s_zip_to_gmt.o: r_params.h parallel.h tdefs.h +w_call_center.o: config.h porting.h w_call_center.h constants.h pricing.h +w_call_center.o: decimal.h mathops.h address.h date.h genrand.h dist.h +w_call_center.o: r_params.h scaling.h columns.h tables.h misc.h +w_call_center.o: build_support.h print.h tdefs.h tdef_functions.h nulls.h +w_call_center.o: scd.h +w_catalog_page.o: config.h porting.h constants.h w_catalog_page.h date.h +w_catalog_page.o: mathops.h decimal.h genrand.h dist.h address.h +w_catalog_page.o: build_support.h columns.h pricing.h misc.h print.h tables.h +w_catalog_page.o: scaling.h nulls.h tdefs.h tdef_functions.h +w_catalog_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +w_catalog_returns.o: dist.h address.h constants.h w_catalog_returns.h +w_catalog_returns.o: pricing.h w_catalog_sales.h print.h columns.h +w_catalog_returns.o: build_support.h tables.h nulls.h tdefs.h +w_catalog_returns.o: tdef_functions.h parallel.h +w_catalog_sales.o: config.h porting.h w_catalog_sales.h pricing.h decimal.h +w_catalog_sales.o: mathops.h w_catalog_returns.h date.h genrand.h dist.h +w_catalog_sales.o: address.h constants.h columns.h tables.h build_support.h +w_catalog_sales.o: print.h nulls.h tdefs.h tdef_functions.h scaling.h +w_catalog_sales.o: permute.h params.h r_params.h release.h parallel.h scd.h +w_customer_address.o: config.h porting.h w_customer_address.h constants.h +w_customer_address.o: address.h date.h mathops.h decimal.h genrand.h dist.h +w_customer_address.o: columns.h build_support.h pricing.h print.h tables.h +w_customer_address.o: nulls.h tdefs.h tdef_functions.h +w_customer.o: config.h porting.h constants.h columns.h w_customer.h genrand.h +w_customer.o: decimal.h mathops.h date.h dist.h address.h build_support.h +w_customer.o: pricing.h tables.h print.h nulls.h tdefs.h tdef_functions.h +w_customer_demographics.o: config.h porting.h w_customer_demographics.h +w_customer_demographics.o: genrand.h decimal.h mathops.h date.h dist.h +w_customer_demographics.o: address.h constants.h columns.h build_support.h +w_customer_demographics.o: pricing.h tables.h print.h nulls.h tdefs.h +w_customer_demographics.o: tdef_functions.h sparse.h +w_datetbl.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_datetbl.o: address.h constants.h w_datetbl.h print.h columns.h +w_datetbl.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_datetbl.o: tdef_functions.h +w_household_demographics.o: config.h porting.h genrand.h decimal.h mathops.h +w_household_demographics.o: date.h dist.h address.h constants.h +w_household_demographics.o: w_household_demographics.h print.h columns.h +w_household_demographics.o: build_support.h pricing.h tables.h nulls.h +w_household_demographics.o: tdefs.h tdef_functions.h sparse.h +w_income_band.o: config.h porting.h genrand.h decimal.h mathops.h date.h +w_income_band.o: dist.h address.h constants.h w_income_band.h print.h +w_income_band.o: columns.h build_support.h pricing.h tables.h nulls.h tdefs.h +w_income_band.o: tdef_functions.h +w_inventory.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_inventory.o: address.h constants.h w_inventory.h print.h columns.h +w_inventory.o: build_support.h pricing.h tables.h scaling.h nulls.h tdefs.h +w_inventory.o: tdef_functions.h scd.h +w_item.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_item.o: address.h constants.h w_item.h print.h columns.h build_support.h +w_item.o: pricing.h tables.h misc.h nulls.h tdefs.h tdef_functions.h scd.h +w_promotion.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_promotion.o: address.h constants.h w_promotion.h print.h columns.h +w_promotion.o: build_support.h pricing.h tables.h misc.h nulls.h tdefs.h +w_promotion.o: tdef_functions.h +w_reason.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_reason.o: address.h constants.h w_reason.h print.h columns.h +w_reason.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_reason.o: tdef_functions.h +w_ship_mode.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_ship_mode.o: address.h constants.h w_ship_mode.h print.h columns.h +w_ship_mode.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_ship_mode.o: tdef_functions.h +w_store.o: config.h porting.h constants.h w_store.h address.h decimal.h +w_store.o: mathops.h date.h genrand.h dist.h build_support.h columns.h +w_store.o: pricing.h misc.h print.h tables.h scaling.h nulls.h tdefs.h +w_store.o: tdef_functions.h scd.h +w_store_returns.o: config.h porting.h w_store_returns.h pricing.h decimal.h +w_store_returns.o: mathops.h w_store_sales.h constants.h tables.h print.h +w_store_returns.o: columns.h genrand.h date.h dist.h address.h +w_store_returns.o: build_support.h nulls.h tdefs.h tdef_functions.h +w_store_sales.o: config.h porting.h decimal.h mathops.h w_store_sales.h +w_store_sales.o: constants.h pricing.h w_store_returns.h genrand.h date.h +w_store_sales.o: dist.h address.h columns.h build_support.h tables.h print.h +w_store_sales.o: nulls.h tdefs.h tdef_functions.h scaling.h permute.h scd.h +w_store_sales.o: parallel.h +w_timetbl.o: config.h porting.h constants.h w_timetbl.h date.h mathops.h +w_timetbl.o: decimal.h genrand.h dist.h address.h build_support.h columns.h +w_timetbl.o: pricing.h misc.h print.h tables.h nulls.h tdefs.h +w_timetbl.o: tdef_functions.h +w_warehouse.o: config.h porting.h constants.h w_warehouse.h address.h date.h +w_warehouse.o: mathops.h decimal.h genrand.h dist.h build_support.h columns.h +w_warehouse.o: pricing.h misc.h print.h tables.h nulls.h tdefs.h +w_warehouse.o: tdef_functions.h +w_web_page.o: config.h porting.h constants.h w_web_page.h date.h mathops.h +w_web_page.o: decimal.h genrand.h dist.h address.h build_support.h columns.h +w_web_page.o: pricing.h misc.h print.h scaling.h tables.h nulls.h tdefs.h +w_web_page.o: tdef_functions.h scd.h +w_web_returns.o: config.h porting.h pricing.h decimal.h mathops.h +w_web_returns.o: w_web_returns.h w_web_sales.h date.h genrand.h dist.h +w_web_returns.o: address.h constants.h build_support.h columns.h misc.h +w_web_returns.o: print.h error_msg.h tables.h nulls.h tdefs.h +w_web_returns.o: tdef_functions.h +w_web_sales.o: config.h porting.h pricing.h decimal.h mathops.h w_web_sales.h +w_web_sales.o: w_web_returns.h date.h genrand.h dist.h address.h constants.h +w_web_sales.o: build_support.h columns.h misc.h print.h tables.h nulls.h +w_web_sales.o: tdefs.h tdef_functions.h scaling.h permute.h scd.h parallel.h +w_web_site.o: config.h porting.h constants.h address.h w_web_site.h decimal.h +w_web_site.o: mathops.h genrand.h date.h dist.h tables.h columns.h print.h +w_web_site.o: scaling.h build_support.h pricing.h misc.h nulls.h tdefs.h +w_web_site.o: tdef_functions.h scd.h +dbgen_version.o: config.h porting.h dbgen_version.h print.h columns.h +dbgen_version.o: build_support.h decimal.h mathops.h date.h dist.h pricing.h +dbgen_version.o: tables.h misc.h release.h +tokenizer.o: config.h porting.h keywords.h expr.h StringBuffer.h list.h +tokenizer.o: mathops.h y.tab.h qgen_params.h r_params.h release.h +tokenizer.o: substitution.h eval.h grammar_support.h +substitution.o: config.h porting.h error_msg.h dist.h date.h mathops.h +substitution.o: decimal.h misc.h genrand.h address.h constants.h +substitution.o: substitution.h StringBuffer.h expr.h list.h eval.h +QgenMain.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +QgenMain.o: grammar_support.h keywords.h substitution.h eval.h error_msg.h +QgenMain.o: qgen_params.h r_params.h release.h genrand.h decimal.h date.h +QgenMain.o: dist.h address.h constants.h query_handler.h permute.h +QgenMain.o: tdef_functions.h tables.h +qgen.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +qgen.o: grammar_support.h keywords.h substitution.h eval.h error_msg.h +qgen.o: tables.h qgen_params.h r_params.h release.h tdefs.h columns.h +qgen.o: tdef_functions.h query_handler.h dist.h scaling.h +query_handler.o: config.h porting.h StringBuffer.h eval.h substitution.h +query_handler.o: expr.h list.h mathops.h error_msg.h qgen_params.h r_params.h +query_handler.o: release.h genrand.h decimal.h date.h dist.h address.h +query_handler.o: constants.h +eval.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +eval.o: address.h constants.h eval.h expr.h StringBuffer.h list.h +eval.o: substitution.h error_msg.h tdefs.h tables.h columns.h +eval.o: tdef_functions.h build_support.h pricing.h scaling.h y.tab.h +eval.o: permute.h keywords.h dcomp.h grammar.h +keywords.o: config.h porting.h keywords.h expr.h StringBuffer.h list.h +keywords.o: mathops.h y.tab.h substitution.h eval.h error_msg.h +keywords.o: query_handler.h +mkheader.o: config.h porting.h diff --git a/ydb/library/benchmarks/gen/tpcds-dbgen/PORTING.NOTES b/ydb/library/benchmarks/gen/tpcds-dbgen/PORTING.NOTES new file mode 100644 index 000000000000..c122c22b879a --- /dev/null +++ b/ydb/library/benchmarks/gen/tpcds-dbgen/PORTING.NOTES @@ -0,0 +1,201 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +1. General + 1.1 Makefile.suite + 1.2 Executables and usage +2. Platform-Specific Issues + 2.1 Linux + 2.2 AIX + 2.3 Windows +3. Troubleshooting + 3.1 Manifest + 3.1 makedepend +4. Extensions + +1. General +============ +Porting of DBGEN is intended to be very straightforward. The code is written +in C. Any required changes should be limited to the files outlined below. If +you encounter any problems porting the code to a new environment (i.e., one +not mentioned in section 2, please contact Jack Stephens +(jms@gradientsystems.com). + +1.1 Makefile.suite +Copy Makefile.suite to Makefile in the installation directory. +The changes to the Makefile should be limited to the variable +definitions in the first few lines of the file. + CC: ANSI compiler + OS: one of LINUX, WIN32, AIX, SOLARIS, HPUX. + +OS-specific changes are detailed in section 2, below. Once any required +changes have been made, it should be possible to create the required +executables by executing 'make'. + +1.2 Executables and usage +The make command should result in the creation of 3 executables: + -- distcomp: a distribution compiler + -- dbgen2: the data generator + -- qgen2: the query generator + +dbgen2 is the data generator for tpcds. It will produce flat files to +populate the data warehouse schema. See the README file for more +information on its use. + +qgen2 is the query generator for tpcds. It will translate query templates +into valid SQL. See the README file for more information on its use. + +distcomp compiles the ASCII distribution definitons found in the .dst +files into a binary form, stored in tpcds.idx. Both dbgen2 and qgen2 rely +on this binary file, and it must be distributed along with any +executables. It is not necessary to distribute distcomp, or the dst +files. + + +2. Platform-Specific Issues +============================== +The code for these utilites has been structured to minimize the changes +required to move it from one platform to the next. The following sections +detail the environments under which it has been tested and the +configuration changes required. + +2.1 Linux +The testing was completed under RedHat 8.0 on an Intel platform. Makefile +settings/changes were: +OS = LINUX + +2.2 AIX +The testing was completed under AIX 5.1 Makefile settings/changes were: +OS = AIX + +2.3 WINDOWS +The testing was completed under Windows 2000, Professional, using Visual +C++ 6.0. The makefile is not used in this environment, but the +distribution includes workspace and project files which should allow the +executables to be built without further change. The test configuration +stored the source files in c:\tpc\tpcds, but the internal paths appear to +be relative, and should allow rellocation. + +Most windows installations do not include Lex or Yacc, the compiler-generation tools. The +distribution includes files that they would generate (tokenizer.c, qgen.c, y.tab.h). Should +it be necessary to regenerate these files, build the grammar project within the DBGEN2 workspace. + + +3. Troubleshooting +================== +The source files are detailed below. It is likely that most issues can be +resolved with minor corrections to config.h or porting.h. Please forward +any problem reports, and any suggested corrections, to the subcommittee +and Jack. + +3.1 Manifest +Build files +---------------------- +Makefile.suite: make input file +dbgen2.dsp: Project file (windows only) +dbgen2.dsw: Workspace file (windows only) +qgen2.dsp: Project file (windows only) +distcomp.dsp: Project file (windows only) +BUGS: Docuementation +HISTORY: Docuementation +PORTING.NOTES: Docuementation +README: Docuementation + +dbgen2/qgen2 files +---------------------- +build.c: table population routines +build_support.c +build_support.h +columns.h: schema definitions +config.h: porting defines +constants.h: schema definitions +date.c: data type support +date.h: data type support +decimal.c: data type support +decimal.h: data type support +dist.c: distributtion support +dist.h: distributtion support +driver.c: dbgen2 main routines +driver.h: dbgen2 main routines +error_msg.h +genrand.c: RNG routines +genrand.h: RNG routines +grammar.c: general grammar routines, used by qgen2 and distcomp +grammar.h: general grammar routines, used by qgen2 and distcomp +load.c: in-line load stubs +load.h: in-line load stubs +misc.c +misc.h +newqgen.c: qgen2 main routines +newqgen.h: qgen2 main routines +parallel.c: parallelism stubs +parallel.h: parallelism stubs +params.h: command line support +porting.h: porting defines +print.c: table print routines +qgen_params.h: command line support +r_params.c: command line support +r_params.h: command line support +tables.h: schema definitions +tdefs.h: schema definitions +template.c: qgen2 template parsing routines +template.h: qgen2 template parsing routines +text.c: data type support + +Distribution/distcomp files +---------------------- +dcgram.c: grammar definition +dcgram.h: grammar definition +dcomp.c: distcomp main routine +dcomp.h: distcomp main routine +dcomp_params.h: command line options +calendar.dst: distribution definitions; included in tpcds.dst +cities.dst: distribution definitions; included in tpcds.dst +english.dst: distribution definitions; included in tpcds.dst +fips.dst: distribution definitions; included in tpcds.dst +names.dst: distribution definitions; included in tpcds.dst +streets.dst: distribution definitions; included in tpcds.dst +tpcds.dst: distribution definitions + +3.2 Make Depend +The dependecies in Makefile.suite have been hand coded, to aid in portability. If you have trouble compliling for +a particular platform, and makedend is available, then 'make depend' should introduce any required, +platform-specific dependencies. + + +4. Extensions +============= +TBD diff --git a/ydb/library/benchmarks/gen/tpcds-dbgen/QGEN.doc b/ydb/library/benchmarks/gen/tpcds-dbgen/QGEN.doc new file mode 100644 index 0000000000000000000000000000000000000000..7a509f79b35b60048de48112adbf0d8668d2756b GIT binary patch literal 152563 zcmeF4349jS)&J*70^uV>P-Jl*5H)BB3Hv6p1;w&Szzq?zJS359=1Ev;t-(@jTl-eU zs#UAjYF%nwD%Pd@B5rL(ZE0<7|88C0+P=jFs}<${J$IS8^DKD+0hOA8U!Iw{bGLKO zJ@?#m@15EF)P65~{oaFK^pcLLUat544xhv8=>+9+eniaN=;wJyaxRze@7S?J?)qE| z0Yd?|x{tkp0{^(>C*F}~3#;=y@9q76q`3=oIpF<6D?M*tukxJAbMD%9*ESvK{#6kN zdc{RC?-w_C3SO0d;6e8}=X}SGzQI+dbNj%}>g1pTeJ#K4x!g^6eSm&k{av)L=d}*> zyhRu5o9^!fZhe9KpW?UY=RI$Ij^}L}rk|Vjgy)^c^_5@ryi@r7$Co^BE z_W!cyorT<=d#UHu^T;3hmGuAknCB7Q`+xk((V1Tm2}<1re}X`J?%4c{Rb`v6R(lq=f0*xl7A)rH&GbL=_FqZ zecZ#Q jmQs2mf^vNA$DVgF2~}=Zm)=*d z^1MRYrd&_smMww~?fPGvk4?#vNb(s*IV`E|uVtCNw!b!hreFJ9@~;(1` o=vT)5wnV(zuWR%x{BzslEo*%q zY_8|=Nd@I?m5J86);3AppCt*_$!Vg n{*-``(UHrrpmD86Ds$@uZ5 zV T$>0~Ms#|Ej48BlPtDdC#dPL*M7$(SJa*Z~D6 z#2e!+74_7(q9*QFG* sp zTmkLkNrX)J6)kbUxut1UU3CW(8$D`FSl96b3TD+MT3hNW74;KA+2=H_XliMwQ2d_m zS3A%6b!6nPj@Q-HwvtUE-s(54@LS@-%W8jBMSWX5QS2wh5gDk0H82x`P|(V{)|LvS zps}r?GTtI7G{ohMsAUyZwb2|yA&WZ^qFE|BtK3c5L?)3wDQzOrR8^;nx4N#i){jdD zI=f ~&Z1EeK2+}q7SF|)WKo|W0gwW|r#ahV$ zDi!+?Qach_FlF(KSySgXwfc#+=H{jrp(DkhED51&ydn{Y?`|Vm)CTvRmJ+Znyyus% zh1_cjrYA{>5<5*$Naivi;pWgn4)8*#Q)9$Ap%V0w3#n)F!&(!lh6~Ln70fD|J!gKI zKc%&zW~zUjKP3`Dw8KJS(y zg(7T9ITY7d*VWetN=GEKMN>4n%@q4{TK$H$M5}tZu@2Sb2T~B#Q^f`8>fnmz>Wa0J z%j()X Gr% f^Q4=B?z)_=zzIzu zveAvAzgE<(A&TaTl9;4kN+=brjY%VXZbe(YBAnrmN+lpNVys&Va!9=sq6jK{_yGyq z>MIal)BX8{@#31|B9oa`heeb$UeO@TZ;h{M9j-+pVHp=~h^e*prSYa~gd3))vQE8X zvj5R)Sh`q_F`-Qfq)qB? 2?&b)m1 O|+$ zx=lJFD2aGWk<}&j^-Zf2exgqG`W0cSTI6l#q+5?_ 5k>x@ z>GNkTm{(X@ qtSy{Kj zk3(p5ye)!K3n+pXn5P?$R;8732np%2##-t=iL@w%s5@OE2i$6E#(*;#b%8z4*F9?f ztcunOe=$8+e*Sb*%={_w(y5SWN_^DR{Bo78PpQ;h ZJz++X zKT1wY SB&^GBDcv$4mOmguu_$8k&D8?WxE(+TRPI-RKRay~pie|dRX*{uAT zN)5I8i{_s|spHk$KY2;nqSNOunKz?sQGU7VuB!qgHp$YEdKQ+BsH9Cu7pT}SNiQy& zw{Y(C#bqXy#kS|rorUDRcv0E(c{Y<)={u~QTv(El-u!q%v<>nWjJgsL^Ah=x<}FNA zMl)PMYP1QJJbF`l!t{xZ14+2pXJ|$nR@#^b>)O&NTw`kyT;F6ygo$(8B*RLie`Q>x zYc{M8)RQ#P6-}Z6MH7d1QUaMk>(Hk&E|q@2g%K7ucr|4XZ8)dLT^py{t&F#>j>jAQ z(uor%s }pgh80`=5ElGq!SaX$*<78Lq%v(Ky|UT zEJ^Cuj?gx|9#|;3>d2%>ms4O;m_RJ|hPuY7Mf_B(ksp`MV!RiqaM60gK%T8@XlpPA zmo+z2N~ObzN}55`iZweEHChhoK4h%6Vp8uV^XJT7uxQ>S$YMIVh-g~Au4rlsB!Jdf zgsv#^P2Ay=d+R<{dhG}!6nRW_L`;J`>eq(3#H)*}kXn^W(^^_uTwGeRtYFrh^2NzK zSN9?rb@$dd{}ni{c~MUGV0Au3-kw3k6$DUnhSS;3GC zu^pUBXRK;#b5(Uh%39!LU=s>euJjaEICVj2O4x@j@z%B$aYLz5z6i9Nli%8gH>My` zS|j)AlMaS|x_&~(juJK_EG?NruR^IhwiMDi3YkQRQdn6LEg_w1J;lFFMZ6rw;u*1` ztnN9?t!l!SuGgj&)kmsD_ZQX`#~G$5ZCuxaOc>rIJ69@v#TQfm`nr|z`nuYtrfT7o zL{_1dajCPiTZP;e*x~i@B3lOdO?|3u4yj40;s=RE#`-$B6>&*$xD=Pzkp{F{4I;u` zV|5drxyu=#Lek=>5)e|)E0dnPaDyTe`g?`cogbaS SdOdG;d z-JsMF*$F!|>mU>5q8x=nyh;9LViu_E(MyFYe}9r8m@Y< 6D2H ziBLqT6kP+Q*X%G8!yX5n5=^IwedP2?x++Dqi+RA&F?C3^>a;>-(>3)H;ixD}JF3@u z2NgOp&_Kfrrs(`TRzHy>m4b1b;D(l_)x+`jI2Gtn Fh{rJ zNckKgHbdzIGAXgJPU^5{6VXm3BGaF}+}9or8FcFBt#4du2-F+10GN1IgD|daVMwj& zl)1^OCKKq$)OM 9S z6+>q0GVtLmAB`K6u1Sl5sJ#t(Sa3yD4Z~FHCsolk9~8gob6Vn>;}MUUn}d&ASvha& zTIozzSk;LDsS$NFFP;^1mj+@gBV9*x6CRt&y860SbR2yU1K_rnMBOUKyCfF2%-Z1R zU`T Xa;-XtioT#IXq!jV}M6=Y!WLL+OPc<>nWZIkvtbT2QzzxTO z5H_i~8;59iq$edwA-HmNsVN@`4w4M4E*U~%A;?rql0~NsUS;jT3@X =M{GLF*bP#S8jL0QT3T{`k$;}LQ&}N5 zMwR&Lj!2|D*H%-%mfNFCgtxtwcspuX>$@s7V;c0{dWu$@Vvv zLCcSX)8c8Gr`9siPa3G{n38c|go{|oa2YvB_HLlZ#Px)mK@9?ohG0w=I!D@=k;3=M zBasp`H!;LZ__Y;?aHTjL5*XA8rmpahNOi&ylqr$Q1v;s@ay#BAF6eCprMjsG^DhvT z`ija>Mw*eB`nV$^&22TIWP}MUr%R@;PBNABbd6y`m2|T!opfqiDnb$SZBbU#;rn(H zNz~#>4-=`uohq?JUJ* lxnzwo>bOQDQT zc$qKf%fj@QQqtBSOp0v+Gc_0MkMJv+86Y&b$egj*F%V7UR`S)Bw)PDdDECjf<440y zqwYmSLD|;`9Fi!eHTpu`LHVa~v{;wF8K6ik LlE|o<6E5!jib{U?_mGRZ|?I`yK=Buj2 zLETa@LOE46ZJL=-j<+;MeaZg3rfM}~pGei>(hMRFsc>me+R0v-7PZda1f7_;3{2zD zV*%e?nMCK- k|Y8j?lnR z3gesE!KnqBNVbiuCa!OpCoqg)x;6lVF^#6y2yGR+B8!rd5eEYcR45}fWkQ7#tEQ!F zAB}quV=2zuu%fHuhLoWpwIVx)Bjm1zGDv;$Fh*IG?wTeos=EAcu~bvgx9J2k@;ZaK z??v*F(pHUdFautNH&9kHq8dddam83D(#L7WNuW-~EZ1PHhOH}$1fu 97%uQ)&Z5!S=taJo zr;?hd*vVK41=2?ZrjAmB>P{E6Aa#+2!y^)L(aJJ=s~7xfUnsMfs5C3iuzvTd#xS)Y zQ&}y=%#2#aTg{x8EJd*e(6jdN%dT-iQ$$M096I*Q5}`|>oh(e%zKU!q%2(aZs(ZzF z^Wl9>Yb|ERUZi&;1&5Jgn>02bnoKu{KsVtOY^+{hSIt0JQB*5ZnXeujPFJJXI<1CA zTUC*wL(x6iROkj#p{yUfLbT`xO2AsN(O1}Us #w-Bpn+v@6DN6=rdFe^|d`8I}D8}`0Ye0m6Bhe|R*r>uK5NYP6Us-vb5 ztwgQ)!~n2s$7JBfieBc{Yy7HOZ42PNah!d!Z$*|$i0NpHQ#jntMg|Rpj#v$(@$%b+ zJmIj3I*IWVJdD3ObaGTwvYHj8gfS-r#>HxZKgF8mY_KVqWA=WKM+3`q4Iv|h2zvsHlS>lq~-Vhh>$R zPK?W%S-~#Wi0Isf Aq6O;_W-$MTgF_Y* zB?3yz^I8ldGisJKQq({`#7|*qRJcK}Bf0`7gH$z`PEr%1(1b;DmgFvZ%vu;VbHzmc z2-XVuPNLSLykdB7W0#H|HxAF3lq2K>La8VxcWsO)6AETEwaKD>&5O?PnN^S2t!B^_ zW@QX3;d!uqOtNiV-K3U^;HHymQVX5c$A#@U;JPjVix LFu$SyLJ3=1BZE`i0BY8PM%qg|O& zd1}TM7c6XvkFeUX+#NlgqBh`V(7Is}UG-##5X$o+x`E~=n_DP&MO!QDqtr@2Y3$Wa zRcdR4Xi)7=iLYVaT(6Y()y6$W`$54XnW!dc_FE`@U{)D6wY6q&&SXr=7(7zcU@gDe zG!**9CXO35X7u>6 7?03kb`lF`C6^y5F zKCAg^X3` Ttt6W%WaS0oh9$^2*-%?)Z7VFoRKvT% zHt}UC;WV>!;W`|4qp;keX)Su&$Zus+^;)Zm(z()X66~+hljLftxA?A2S+%&^4wG@D z+DstZNMuS(FEwD{uUhOI3aV-Wgu1IRl^;OqJG&H~L6eq5>6K(gto-D;x|V9eQb;Y? zhh_#Is%DlJb~~2xM?fNM0F|>^8Dt+4fr}QU*jJ9>Q0~%;gX;UVyBPO_)(6O76&pY7 zbVR^o(^J|a>xV7zZAol#87!&(tiNBr`1HADvNO8WKQrO875Xslm7Q!lfHRNrr!Sg5 zW6n$oEcFj49pEo?8ftkO4KknpGk+FapjztGhGn~#A%8K-EEs--j1qomxiE_=qKkLb zu7o1Tr=;Y(v^dzlpwo?PUeI!ES&OWu#4l0tW$T5MO78*-w_hk{n4-Ndm~m-fkvY36 zR7|CujP_OQ_nZ}~W-Wpxxk``a3kfS 2mUuTX`@O*$xl&=#xJ+N_j0{u zcNTNR^bd)M5;t3eMYipJF*`4mtgcilGUT(ZTXsaMHfaq}U)iC^Iz3QzwQM@WP+6gN zZM3SUQ*DZ1c4KGC$q^e&ADg;qSk`N$mWR8=2~{4NR`ngCW0Kp@gt4epnbfe#dz5eJ zW$5G2mR0F!bjAAA9rpfZv*s{=J9F{nn0L$rpl2~{^{O+)V+w42no3Ks$j8Jmd-SDB zs_MECDrX%1gDlQfdcvPRznm#~O)I5~^`PiKDV?KO{f3hOKG5V_mQQ7737AAD^6X({m`!RB+A5ru! zq${gn`@!)1ipE5p`lCY&mg|N%eWW>=VNYfTK}Eg|Q(e8enCTbNF=+2P`|Y(`Tifcg zqD}YQ!!7$zY^ RHmM1QF%6dR?R5 zktz+t_L#xuMpty~i0iT=t1ri^YL+}j`)841(HqKaQtHceE`>@5W0j&P7?#+YyH!T{ zIhI3m8y#2bnmywO$a*Q(((8=ux~ZVJ%9emEmQ5LWK_Y6B3E@^*n|BImBD$?XHBUAx z$`ZaB?bR0^=m)V3WMt`V0o6;cg5_M=26fh&GMX1QsqGJmW;P&5s+u$-LXsp6?6Vt3 z1 KV}$e;PN!%Hi-?%c(KsB~*+HjNr6&>XLprjMi%r;d^|F6o3|4k9(w-0w zsqtkqFP|(;9&)l{N?r#d{0jJ|li)erF5(VRW`){jg{59w0f%InAl)%xD)G>s2}} A(;S=XS5aBL-_=;f)`Vl9@=6hq zYNnZGE3ny!qI++(V|g_M siW;+lADs}$N66_U^{VpKB?~4u=ofeih%m=^uxO>hI$UmAp%cR^QPq}E z5+Tk(v>)_|Y@WA9zbzL$gT6Y$K)EV2!g)o4%+6^^YN%K#T1{53)5XcaNEb<2DWY${ zs=Ag|hG8@yjG&;~lBG~uo0^`^Sjf8mwm4#+%bxy8dWDy*S+Lbtn_kLcsMJLw-cUC} zR#l=E;Gyb+^s4 g}BdilwQ{@y