From 0cb8c5868ea23b5377af66e772675399fdd4ecb1 Mon Sep 17 00:00:00 2001 From: jdg Date: Sun, 12 Sep 2021 20:19:47 +0200 Subject: [PATCH] First commit 07/10/1996 --- DUMMY.DBF | Bin 0 -> 124745 bytes M.BAT | 1 + M.TXT | 200 +++++++++ MAILINGS.DBF | Bin 0 -> 123583 bytes MAILINGS.DSK | Bin 0 -> 3305 bytes MAILINGS.EXE | Bin 0 -> 63468 bytes MAILINGS.PRJ | Bin 0 -> 6169 bytes MAIL_.H | 99 +++++ MAIL_M.CPP | 334 +++++++++++++++ MAIL_PR.CPP | 1158 ++++++++++++++++++++++++++++++++++++++++++++++++++ MAIL_TL.CPP | 277 ++++++++++++ PRNFILE.OUT | 1 + README.md | 9 + 13 files changed, 2079 insertions(+) create mode 100644 DUMMY.DBF create mode 100644 M.BAT create mode 100644 M.TXT create mode 100644 MAILINGS.DBF create mode 100644 MAILINGS.DSK create mode 100644 MAILINGS.EXE create mode 100644 MAILINGS.PRJ create mode 100644 MAIL_.H create mode 100644 MAIL_M.CPP create mode 100644 MAIL_PR.CPP create mode 100644 MAIL_TL.CPP create mode 100644 PRNFILE.OUT create mode 100644 README.md diff --git a/DUMMY.DBF b/DUMMY.DBF new file mode 100644 index 0000000000000000000000000000000000000000..8ad0b6aa7cab154aacbad4a7b2c9d838885be4b7 GIT binary patch literal 124745 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�Vr6-^-QffHKhX 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�i*XG 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 literal 0 HcmV?d00001 diff --git a/M.BAT b/M.BAT new file mode 100644 index 0000000..a91abbc --- /dev/null +++ b/M.BAT @@ -0,0 +1 @@ +mailings \ No newline at end of file diff --git a/M.TXT b/M.TXT new file mode 100644 index 0000000..7e964f2 --- /dev/null +++ b/M.TXT @@ -0,0 +1,200 @@ +Busqueda: + + CodR CodB + Nombre + P.C P.V + [ Combinados ] + +---------------------------- + + + + MesActual + DiaActual + + + SCmpInx.Registros[DiaActual] El dia 1 es el registro 1 + el registro 0 debe contener el inicio de + todo, -> 0 <- + + Lo unico que debe contener el indice es: + + + long Registros[13]; // Que son los inicios de cada + // uno de los registros por dia... + + // TOTAL: 52 bytes. + + +Codigo Descripcion Unidades Proveedor Costo + + + +14400 bps + +Alicante, 134.000 + + ___ ___ + ---__________--- +___---ùùù ùùù---___ +---___ Dragonet ___--- + ---__________--- + + +Martes / cambiar por miercoles ( 424 09 84 / Reyes ) + +Provedisa + + +a¤ana vienen para, + 926 85 36 50 __ Rosa + + + + + Win + + + + N§ Piso + + + _________________ + / \ +| Balance Diario | + \__________________/ + + 1 Archivo / mes + | + | /--- + | | + | | Hora ( 1, 2, 3, 4, 5, 6 ) * 31 dias + | | + | | + Ã-| Total Vendido ( 1, 2, 3, ..., 31 ) + | | /\ + | | || | Hora 1: + | | ³³___/ Hora 2: + | | À----\ Hora 3: + | | | Hora 4: + | | | Hora 5: + | | | Hora 6: + | | + | | Total Ganado ( 1, 2, 3, ..., 31 ) { Descontando Gastos a Vendido } + | | + | | N§ Tickets, N§ Cambio * 31 dias + | | Ú------------------¿ + | | | 1, 2, 3, ..., 31 | + | | N§ Empleado Nombre | Vendido | + | | + | | + | | Estructura char Hora[6]; + | | de datos long TotalVendido[6]; + | | diaria long BeneficioBruto; + | | long Gastos; + | | int Tickets; + | | int Cambio; + | | hora AperturaCaja; + | | hora FinCaja; + | | + | | + | \___ + | Ú------------------¿ Ú------------------¿ Ú------------------¿ + | | 1, 2, 3, ..., 31 | | 1, 2, 3, ..., 31 | | 1, 2, 3, ..., 31 | + À-> Ref. Nombre | Cant. | | Ventas Pv T. | | Ventas PCosto | + /\ + || | 8 :> 12 + ³³___/ 12 :> 16 + À----\ 16 :> 20 + | 20 :> 24 + | 24 :> 4 + | 4 :> 8 + + Estructura unificada de productos vendidos + + + long CodigoR; + char Nombre[30+1]; + unsigned int Cantidad[31][5]; + unsigned long PrecioVenta[31]; + unsigned long PrecioCosto[31]; + + + + + Productos vendidos, N§ Tickets: xxx.xxx.xx ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ + desde: __ hasta __ Cambio: x.xxx ³ Nombre Vendido ³ + ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Intentos Salir: xxx.xx ³---------------------³ + ³ Ref. Producto T.Unds ³ Salidas Menu P: x ³ ³ +ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ + ³ ³ ³ 8 : 12 x ³ ³ ³ + ³ ³ ³ 12 : 16 xx ³ ³ ³ + ³ ³ ³ 16 : 20 x.xx ³ ³ ³ + ³ ³ ³ 20 : 24 x ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ + ³ ³ ³ 24 : 4 xx ³ + ³ ³ ³ 4 : 8 x ³ Inicio Caja: XX:XX:xx + ³ ³ ³--------------------³ Fin Caja: XX:XX:xx + ³ ³ ³ ToTal Ventas: x.xx ³ + ³ ³ ³ ³ + ³ ³ ³ Gastos: x.xxx ³ + ³ ³ ³--------------------³ + ³ ³ ³ Beneficios: xx.xxx ³ + ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ + ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ + ³ Notas: ³ + ³ ³ + ³ ³ + ³ ³ + ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ + + + + Codigo: 64.621 + Datos: 42.107 + + 101010100 + + 123400000 + + Bar Con ocho basta + Puerto de los azores, n§ 7 + Junto al tacher, + tlf, 492-16-05 ( Antonio, el padre ) + Ya est  cerrado, y todo desmontado para recogerlo + + + + + + + + + 11111111- - + 22222222- - + 33333333- - + 44444444 - - + 55555555 - - + 66666666 - - + 77777777 - - + 88888888 - - + 99999999 - - + 00000000 - + - + - + + + + + + + + Codigos No... + + C¢digo (numerico 9) + Nombre (alfa 35) + Domicilio 35 + Poblacion + Provincia + CP. + Cif/Nif. + Tlf. diff --git a/MAILINGS.DBF b/MAILINGS.DBF new file mode 100644 index 0000000000000000000000000000000000000000..a8e7adbcc25746a8eb0fea49fd1f04e3bb7b9208 GIT binary patch literal 123583 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 TxrG#6myY{ae8soU?Z^KIxLG$7 literal 0 HcmV?d00001 diff --git a/MAILINGS.DSK b/MAILINGS.DSK new file mode 100644 index 0000000000000000000000000000000000000000..ca3124810c7edb611d25cadce9b94c0d1cd2cb2b GIT binary patch literal 3305 zcmc&$&2Jk;6#tE#CLtva3JOgks=5UNvcPSU7O9~@S+6%AjU8KSr?l!uX0zEO3r^Nr zuk%r;gjDsw4G0I|fH)M8I3T$2bpatba6{aS%AbG)7dV7Bv%79=Z`!1(L?+{zdGqG| z_I=H~Le-hKV{%NkS6y?%jg4C+Gu98**?pAt104(agmnPeWYg>z`yF56I%e@0wM0Ur z|MXNcuO(AbAsY+{IhVt8*orW`NxiYDj6r2UMw&_&3u(d4(AmW2o#XUQf*0I5Rd7e~ z5mDa`IdO~dZbjNX?u^geON?zH%sHavNc8`vM-NVrE&8Z8w)@h<#BVr)$MFT})P|=K z$7zfpiE*S+#=CeAAL27))s!+LK_1bPk~}?|)5d3&nSzqn|mS>#UpZy6Nx^tm9F#T?B_|Gqz@13$b{@h+zZ23QK%W9kRVr)*W3nm#m8G*p-}P8kUXhylbw?w(TsKtNMao$>>(eT3xDm z8yVd-mTM#-sJ6;fO%kNn*2;qAPPyhvjgU4?_)IC?weN_QtB#}E>ww}owu2?xwT(?N zY;0l^XGxcb@dW7JW+zlBqvch(n4+Y=NZ}*p{jhlr4+)1* zeuIqtv2eq6nzvFGccX`ba*z}m#fz9gfn0JGi&jamz_3fzm0`XZhOvx%Q7Jq2$`$b| z8E#cC&0)T}xJX_fxU&z$eNIS@v23l`#S*!(ZgFLBI6gSnL>iidq0gI!>FBtIF^aHu z4AF-^f+z75xGMq+#zsdQ*Riu_&H&cxMxtz2Xg_uu|I#fP0p9T1Uo6u049G#k5L*K; zpUk(7wT>MhJKjR1-b36x{7y>KNVjYsU!#xn1tZDwc4`th%htf{9)|Ky;>^w+ah5JV z?K~JsyN0)zFOANWkMgq&KU4pfPwV~|eiVCvF1{q}Y>3|{6*Z&rpW;NmAX2^Y7HeGJ zH$d74xP*72UAPf#6dbI9SN5ZUAG!R_;n_opKrfQ_YA}3FHn~Z?z8$6@=KaATMJbQ( z{yx3Rb=v9cnny#t5~`E`Zbl%tFr1@a-!u$Gc?Zk`nNQr;4BwOZuNojYAgBLAmJ|Aj z2n-@K8274At!nszM1B_n6;usgIB={0A{h4y6%-LiLQuF;K@s68wa3&6byA&D--N&g zN*x@^kB3Qm3aLhGf*Qsj5#H-vb-Ty2BOlxE@(|RglMlt{PW5_y=<#yRE7_I~6nZ>! zsfg&tvjlUpNh3z(5bwa^eqeT~ZAk^H+5QYc@stbl=pV$QjhApp+=ZY_PLlB5EEa$~ q2vzP~rk_W2*Y~7jR}=7W1pa0>ylfA-z4jeK_pbVPe@M5tf&T!gk8dIX literal 0 HcmV?d00001 diff --git a/MAILINGS.EXE b/MAILINGS.EXE new file mode 100644 index 0000000000000000000000000000000000000000..4d40d4be9b4cf156e2dd8201e981b319c9c5c402 GIT binary patch literal 63468 zcmeFa33yaR_BUL&_jFdWcZAT0L?tXr6onv02n{I47O){8V1S@;AaRoJpiT&38iCFQ z9hX7OFb=ERIP=FLYJ-ZAV4^aNEG}#Uf=f3SHN%pGEPcPomy_??rC+xWOiDpVvNc1+aYE6rO!w}V9nNt3;AO=Ujp2x7qA`J z0=xvQ1)c#`0HuH(co=v9umKZ*QNXRhAmADx35Wu8KnqJ!p9MU?ao`ZJ7pMXL0lWgd z2s{Ur17$!lFdvu=Oa-!lOduT?3furNLz4QmK1p2*Yyw2!Az%z}HBhHZQojSN1h#6E z)XRWJ0SgcVY}3FUSP%ROcoLWl+zg}w5x{SeMlZml-lYBnZ~+s5-oPuWP3k2;2`~q+ z0BJxUAP$HEP6(US&jK@myMZA<0?^7fslNqw0WSiN0uzA&Kn!q9ze)Wm@FuVYSP0w< zsDXpJP3o6`@xU-38BhaXX*a1q0Nw>&0OkV^0x5u3vq@bJ%mCtnme5V=Z-94!*MMh$ zhk>a;29OBofFF&U)HOgQuokcb_XFdAWZYSZ z0Ia~RfC^}gM*e|sfWyFEpayss_y_O`@FMUWP!5y<#lU=EHZT>)0y2T&zzskO&=ZIT zLV%xoK<2>TfIkCez&v0gFdi5M3;~h>BTyf;Nqq`90K5%s1eODKU@kBLxC!V9Xo2|& zo7B^R;Xr>N1h^Q#Nxc==2;>8I0S4fB+$Qx7paNJ0i};o+5}JzlmI!vU4R7` z4kQDukl6v#CUq6C3HUvb2OLb?q^BtKL<;aZz;R$N-~<)|j{v#A6yPpk1TYZj0}RpKp)~=qfLD8m_8Z`1 z;BUYy!0!P&kOk1cTYv#TG7tl3fhLsy4DdB@0Qd;l4*Um02ToSz+Auv+y&eQ z3<0hIOh72`ntHSLS>X4;c;H6B3~W?w*8UF21O@=HKnTz(Y}URHJPVWn4+HlBXW3@$ zx4;JA_rL<65740Bto;tC1s(++1m4qa)@}x#1028%U;o3&p9j{!M=73d8ZfI8!5?Q!5K;7(u&kOCNiiy@n}D*-z&2gn2l09OIu z8#Ze{1$F>KfFvLS&_-?6o{!wD{Tz4?cpX>;IDompJrSF=dZ0CYv-W?0H9!Us1N<9# zJp#N3YzFQHh6C3F)*hR+gMkDf6v#z7cLO7UUckhJcXV06oj?@Y{Y`xs+dHtE!TXBy z6$xCC!2fayY=1{L$Q8d!Re8gnKH?x16O#w9Cl7CYhON~7fw_`bGS{G2m}iBsekFUd zDy>R9C^l}B7q^`K`>CAKDYt4J^<{g?8Ve3NdG=lx#*$x-NA*|sYmWiEWG*+&4HiBrvFrEa>9ez^-j1lN5uOqD*dO0da+ef zdm~iharI$W@;c;X6I=fWmU{5Xs>(a3?CCS>!1qm0?iasrPOBR9q;8k${luhg?+#A= zwB_7u&XLb0#ukq)8~F@V7iKKfmyLXuB^Tb}7N)+VVte`&_OE1d_9VIDS2I_{8fL7rhq*H#hj$)fDK&Z_?FXLrjwaLl z(Mg`qm^^d^unbtrDh!wgSpN{=xk1GP*{1A>PC_m{|7Nph?zTtfNVTg*|D@C4ypZBUOnV&@hXAzci>w`j}E~WfIL1FN1Hw|Ay+oDbZpOZ93QT>jt}? zPZ=!hGUL;#X6!~_xmbs|55{Ekr^?Yost^vfA0o~)xFXZ4B#qURpz?ce5#T9i8Q`x` zyjp}AyNQiWEH;GJJFb?ZLo+ryIUgf3UjYl=_RAJfl;RKP=YmDmAw3^Pbxr^YOV&y=Tpw@ri*_ zLm_mP{n4tzT$5EZd5YX=K$}x`#Jy=BOY!(YHdHym^xX3kH;LO;gSp@t*QL(JKr5xv{Y zY)YD(R=@AWzWw{Y*!N|6Yhma@P5QY)ZR)wJS~E_5KfR$^#q2tkIzrM;*Qb81n=~a^Y;o2aRvvh=`pLtqgQZ{HdzQccG@APXEw^p|+QI=gppJQ%WMh&U_GSk>R@5*9L zz{Sln#hGYA&-5!}T!zjwSKFrO#8P9j9*xS`e9gkCWzDL>Nuni8%!&y8cu|isv;=!- zjdtKz$l@Smv8wpksmP~O_cxq-y5Zc4Sj(vp>EHAOGPKHZVO7?#hC}LqwPclR1{jMp zn&FaKWzoEL@~18AH9f>XYo_?^jGbZr7KG-4hUGRg>lXaav3eesXYACFC-S-P)RLE1 zC(5mrqsoz;nP}apJZj)7No)0d<9i{{45u}&Kx0D-b>1c;HrkCEZC22VNT@;<>sDEOJZ^DI zc6Ml${d2KKDF@H0^NeQwTZ6^;%E2y+&t+>-I`qc32D{)S+I*s=1!bnHq{NU`XuVw{ z*6<`yhZ;G#axi6dLR2;wK!_phD+h<_-Wu%qRYU&u&X*9b^4Z&tZon|NR zG+c%a%U35-vvg~jRf?{>y`vzZLjKemkfUy;Mzm;LnW~kOH7oDep_^^jvh?`p5{pvB z!~0Ivf)iunVT_8WYL-t;kj0$`PG~15h=&iHaxI^oFp7c}e!gyM!WvR~Pqso-4&9Oz zTY}u`W-4og&X&MbcCP(YkTvOu$q5v6YCq>L!@7r*c(y>idBJ$|lz6C?K)ks;o|)p2 z6wm;iO;mHTEG3oigf>4|zkF=G!5%^n+7q&*A%YjQ@(x9f`qkvxmKnRtYdk7ezVoxF zWhX!^JE8f*wXqr3zDAsvoLS9mQ)(?gGFEFjW5w5L#w5#>ZL&P1>g?Ye_KlxaJ#>Y3 ztS{?~WALPVC+b!$dst3wq;KmKx!54vjF5sB(FBEoQ2OJl9S_U;Y1z}ObuC1?N?Szy zFV?+|(K~uXKYI^9!^J;(UY8}W_psVkT=zOWzDLlsk6l@3U0J>rSr=+8jj~*8sYjuO z*N1!~?iCM~N#?TV2a00K|B_~MHYXIrK2YyFHAsHBHO%W&m$kBmjm|8eAnhgc2aqc1 zLn2R>m0n1-t5?`ANN+ml`Ho8(_?h3-N-vY|-3=C>iaD-_o8e7Cde(cZ8vSLcsC8O2 zs+k@@N-!j-&A`G4$@sPrh}!B^9j>ulU@L6RY5P~$nv`5hQEwY-EKLGj6^9qbj&&95P^c(o*A5lq z@K~x@Rr(HUDjMn|!dY6+9AQIiv`nm(VvwR{qIF7n?HX&jrO7(U^I=oGUbNMR?q8(# zo@L%vN)G&1m2MYjYKF?Uj2`WpsR4I0vqudT6Zm7i-m|84%kbCY_0v30wGwOOh@k+@ ztFpGIUR?eu7^d%AtP=Nm|H8m5m{$^UydIew^370}7DJnNXPZAy#1TGJyp4h->qBKJ zbm%U6(5$Qqt#xRV_3sZbd91DJS@p$gF{|GDL|bG$Lc^=K>DZKeSIvB9(nP4dzEE^f zIh<4X7%KS^PC`61G6WJw#Lx?r9C`nTT;qy8|VeF)le5lxs#?SbYVtE1p_P#2ZCd7tDWBI|)>7aIr_hVh zVa{R{zpAX|QMT{9xpp-*|;GrDE`UCTc?rAPQ% zTTWgC8J&74<@G=ZRC`iePS%AUDGd>KBaJu&@!r>h>OnhFWFH!oy`=X`-fd<5Eoao0 zA5&af1VS6rj~$y*t7Xg^k8WOvl5gqf`M4R~-O*T9dd9j)?b+3=cb1+;Ya|V(7A-$2 z(M+^i!5C$yqvn8jQDt%{>e&bpO+c%_E_Z%~jB{YMN z4G3Y=sda0ab3YS5LjR6h@&Qv78q@z-q+1T>&JoCl-6Shkw`kG5FwyFHTh3OVG1l8K zf~I|pK|XE2XI`Vr=5twENJ@oa3w6%Y7FZyZ2f4TfMS9GD0%Ew2gn0uO8s$9+RLUAY ztZ&g-*R3{L*F6uc0bVeX9pw2ov^;*bseI`3rb^Y@%=0gSY=?CfrfVK4x9Q4GK4sjw zp~A#VPmWK)@eR%XlVv9tw|SIXbUaL1M1{$)yDX)`)UbQqpG<|MPJqA=njis4+ z-VEo>!1K58Hw*_nM7MYkGVz$DT))E7T*(INF`zn|bqfdavBVx#8L>t087fG{$bKbD zxA+##m$Q7*gZvQ&+cY00p9CbUkp z#;>w8@(F`yPOFq$Zu6BFxA3y>XXVK}PG!j3G=2Acz+{UL!ctO=2qd`vIg?;%fdI+9 zWl_(rBr8}wqEXIj5o_WO99l?Jr5xpLVzi&v!l$+Q9$MSTYo`weSN2z95t zBIQNXaNSyyJ$4;jnCDg*&S^5d$){}OT9djshJG@N!stgIH1sz7g?ne%HCs$lC|{jO zS+|t=sy6(Yd+6=G-K=i=Y1ul_{j$mGd5LV`Fwe*I6EGGxtW$!*fo*~1%-kC{nre0H zO^j_}8=g09SZ#vZ)5sgvnAZK7eqS*0&hI=EwaQXQHs(rWHaasZKI}Gu*<)^lO*}+` zVTVz=*3tr-?yj=ZhEzuwT*%aGF)(Qur^`y~^^WV@VN6Pq`tSz|6G~y=76)3#cvPzQ zBW^wQp7MNOc~(oM;EDE;`M&+{CP}@0t7)5-`PT`yUCXw+O_dpY`gs5OQ}x=WE$q9| zo_hJ4jPiq?pXjHt;lQ88>S|kBz2}7dDrTn#b)p!5(zO1B$y0l7dbawbn8U7_K37(Y)HD59Q9M+Yu+UK07pjUC_HyR8 zFy~C4AfEF)CW{Bt_NUu?g$Es4bfUt2Tt}6S{03duSfj(wx^GPqDnP%dPbJ$uHNt9B zJPi?^gGgQqkMQipFG+iVmgZO#2CYa5#fP?V;vBV8CU!&J@ zH4vDwb>{i0whNx%=LA1uO*{)O%hN#W4pLfvHk&A(R|AHf2q+26XsF3RY|b+gnBA=+ zYrkcs%~xYNdtZ&^+#a;z6_)e0mJ2g>kLXtzHzH+W5170|F%Ni3=gMlVwKUDxEf$B# zH_2FwfR5LQ_p8JS8ga5tEHR39LvOu2vt{jCTe9xSnP(92Da})v2xxpN)9_Sg#8a7J z&beWNtHkJtrq+nI zC{Uj12*T@elK6$I)Q7$&u=L`nMMm*US1~=xve+bD4<79zovo(|)=lwvK`4wd-h8H3 z!}PTH)Rva?TF0JXZ6jOf#rq9TNmCe+p6oH%wVqK}2k@wAHFQ|=cP4vZaiOYSBiMDW zp&pZDP9F-laPgRDG84zDHo^%HX;mA)GlAZC+BC^CvtfF*9GOmW6A@R`ydpRv)q0mk zyj|Vwa;U^(;6H@Xlc;?~unX0KUTjd;LFnRfaj_0dnh~y%r%mEQjmx2NmFTK#b*G^O zs>PwFO)x8>#1ftBew}NE#B*!7^qd&6&RJs^c1w}h z^BY;#i`7~UNrXm2tLMe~>C^i`pN6FEhne&TJWaKx9hqeHJOT1HS+>WD2VE$?3j&>* z;nF*+HPC9))2gbKU^D%};>CmOJto&!RmXr+5%7Awcuswb=u;c$UMe_uMUu)lwvK zJliMfCt*lxO{(2KqUkNxaJqb7|Gg`q4NpNslJUaVq^OV4Bt?u(kF&#cs#JNFH@M<_JBK4yp~hG9 z59W%cg(Ck7Rv03bYCNy2VVk)uO(nuIb>@eq|qOr5aWmuvLQVZ?Fz&X|jA!h3O5mq;sKJsz#;TG^H1~Rfy_ca%LU# z=NSg+O#;uhL+$M^l$Ao!sJ(pzpC!y^G5Rb9pG8+z8li*Zldx5dl?`#zgH zq}SMgz;G*Pkri>&@988@L`$zN`Jrt*oT+nvb<_4}mVTfpso|V>@SB`h)DAn zRrISW&s5W|8hKA-D>6gy+Z(?|%#kbAu-Uhq6L(g7&LR6WX?%;N?#$Tj`9@YIa^>;Q z`<*C3C@#$JQ>$LsW<=k5e{6htPfNWZI2zw$tgJcJt}AOE=+KOTYgzNKg@ekZ8w#&) z_*z{Z{e@kUqQxdeYxw&4<@*{=KJ&b~I%c0gpcVm(zP`I8u-gHR#_bnw&@2l~q_d2b zqsd_4TUhF+$w=t)JrB3!%u+0|x`k0NCQ?5Z_raQ20PTU9wOcjH?{I&*&A4zzA?#8^ zk?nem!DKUvpFHDcqYyX)i&8sEUSqA4!BU`n) zM820S?re$fvW_3L)Xa;R*dKWtHi<3Z;l?D?3Tx3NW`v@UZ$qlNr? z8^)-xr4=GOXys;KeRkO*4J!#RAEV)`{TF>$>8Kr}!VG1M4qsU9su`n^or}US0FbF5 zV@h|=chm(R_hi?O3Byi8V4;U+AXIkf;rR%Y9zrIRg|G*Zhmz}&FicCMSPMI5*chW@ z95D|*4Hw54Tw{#V5a|YSj83i15bLhL*{V2N1G(E9iLoEOIUKy0%As@Kt%{QVOcm%C zJT`&&WKYD-{Eo>9Qfxz}N{wj`t=QZzXUi6!vnEOzd}vc9Sn+%r4QgJAj0Ka(@()H7 zIt<$d_CD-hbJ@j(4()c88Vdp!a~$E@RUrsj#@@$P2F*$e%EK&W7gOz#Wmu2wU3Srq zN&m&!jySkEROMmLlP%6qG!#R4U(Mi+?UYYghSZA!5m_chuHTW^k5z^46?eYM%Is?A zrx~?4Uqute2?;Z9L<4dqU{xAqMZ$dG}LAVflSlpT|y<3~fTLWKuF)$nCPZ=nQS^r!j_L}$>(-#nb`p$*la}Sc7 z3e!tkq40bvi+lZZgYbzc4f2ZS=IQC*mfqB#rT}nUWieVk1C@?uo8o;B>qt5h%vfEz zMOTdJnojaR!-mB2{a6*&k>@xUqbtl%0u|loyq!6$7!A^72^*3c^U|UhI-mu<5PYM;E#R`Z83XS5by(<_M=1~fSrSgMZ?HcUU zu^Zee`Ya`S6KrL^>qzsQiD-0~_@mDR5*ZfAS~#&cY?oy!WPcIXwGB2l?G)QQ&-z}# zx@8ZWPePfO`B3H-6LyUGrg5MyxcS0uQzLe{HQ186fmd%WYWLf(1H}*)Ci2>a&5P#F zYd24uwqL1MMPJ#bydTR*yTyr_s(ws;8&f;En-1Z;f1+wA4VS~j`;Bs@v0U$6PA(-=k)0?3<4~pw6V5xKWiZf}pc{nQ zFtbAc*&|g+9|!UrEmO6--GhTUR#T4AHv0vNu(C0mmI8H@LFtM18TS^;Wh32#!yS6C zgBo~^inz`_xDv~`yJ^ol!ZTjZ=0@BUoSfiGPOuvGd0WnHE)q5=eUiNWzF7ts?Byp~ z=$MIJb1LMu@tB$ZwMckv79W17^e~OkevFVytxQ@2XEuWTVH3dY(Y2yPlDY*avS?~Y zW(o?eQ~x_leeoVY=N_BJr`Dx5(!94wOZzvQTKs*1(jflmI}x7E?UTUXPvr>3EK`v& zB7PM-f}u(MICVdnO#Y7Bt|d0ququbaKls$~#!sh}V(YW%5CeP#`{R8_RwatHua*f8 zJynM1#;>sWC_DN(NA5~g*^M#|vUqxZ9&M?Yjj4Skt;idNK zgtC#_2OI51`U%IdbAih~v!3iiwfB44YV&@_yvG<~{DGm@j8UN=ij{S0$=xdK)RRd$ z0p^^Yo0K6u>PIlx8V8;y7xGl+NS*Ij_&y(DDfkumk(vwmVnRe~ebV55d?Ker? zN1)|78%H1H2m@9URh#>aDQFkgkWPRS@cV3sw(v)O-S1;JA}UNqwf6=YIiwvTE>6FM zBRuc=f?I=hk_byK79I5fGFt8ZrK_f3oX03%u3uw~@H~aUe4t9J^8Q9ZNM&ky#5-M3 za!3aXNLEO1GlO_wn-onAif#XSl6dvc7yZ4%C^{MdjgA;Pp)MTBbacC1191z01IerQ+P z<7%a}D8sV|rWovPR?-y2cId6+9A^B5I;;<1+3v5hx)M7Ul1+R5`$^2s{gBx-@HEUkXskxk5|>v2+{ z^|kb7hf4aRbTtpsaOkQk>%B^fbq7(IJX3t$shXbJ{CrS#kY0y!BkP7n@^$qHi#DRc zi1kyjf75soHq0L3z$(2_wOF@AmKVb=La+S?7K7_d7`K=B<|a4{wYoYJ2ALS=$RFVt zw!}9%!J(_w{Rl@4!S)!+y<$pHVri5ZMo2y_w9^z}yC)k7pR3Kp6i}?ee9gs;HcHiQ z36+aS)#AMmnwyMEc;ZIBV~|A6ZK4-inX;|+=E)e2H8@!P08Cpl_=rOZHr9;-3N=9m z<32E=Df==Se#+`5a4EpTkxm#P_N>8nHMcgoRSe0&!5upYa@Rrb%1of|Vcv}|@kCX7 z^opNt3eIKeP?KK{slsuuvwvUZkfAC$*{~01b{ZOLFfOPz(P&QN{xiXx(MmK%=mvkp zhJ9dkuANb{#eHRJiXY66%kkg zIAwv=R>fyc1H^{WM12gUX*Vcg?+K*{m>QJH?T_c2>Kn-B*XM`VAe%dRHjg2jhXdI> z63iy_A;ssj=yAxv-t;evRALj^I#Z|t9Yq6zsS^|%PworRm#p^-&Uw*ikGkicC1+M(-AJ*%(lKwxv3NS9wEHu!H_(}jwCKM_7!A38b3UeRoFEZB z_c`^gfOm!?ifknEcpV#YI`29jRXK+0D#o(75dxL&!C41!W|M4bqVo~0Ba9ABjV9cJ zPP{^6S+(p@S^Oe(?~?`HTLM>LB-p_E*0$3R=xG8%+J}pOp#OT z#G25m;=VR|;E~P2$PqO8t42Ka&Qu&A1rbyPL9In5EkEqpyD|fgFcXzivyoOFL|MC< zN+!el12|cVGtHP1ko<}g(U-C4!KVb@{XkQKv0SbmY*AqDpy6|e=yrid{g{0ZLSgCV zw6cqV)(6>D>zpGs$c7g58+yJpLZZg$e`c*1*^{yC3N_x+tvDRP@DhMvtr&1U+}yVX zDSMFmYmhn_q}qJjD3dC{#TulR2dN!F3Uj%NVbMqp#wPO{Oi-VSn>!M|>PYTutwwlBw8*|cPKK!B?_&M7bF@^iwDc^5Y}K@Hu#9AilZ@*a&}sM(D_R>cGXl9E20L& z1E#z5V9@Kh`k?w)*WlH0<@Gq zhtnMXY`bp`@Ce4^1)x(*?MjdlC_;@zW>UEOmOw0@MaGuG8l0;rIqiK?{eMY1R6H(a z$sEj9o0tTP`&INJ-jXeJ_$s|-(ZTL&rn`cr)&IX+1>PJLmu2h}k{_R>MR>|up-zJ$ zHI$t4rmM&{skji1X2K1L^Q@v2jmcVJHt?3yw8IA_+r%8v9o-wzd?^9%v)IRy*ZA9} zc*n$aOOs;}j{(iz&SP@ArO|OCIbo@JidZua>+Z}N;W^WSJh@jR#a`5i6(8g&!n2=z zq%NXt>o&??$fvDu;!q6VMgs_Y4yBR zueK{y=f2dgSmnYRF}`QgsPvtS9UYxAK`32hM?XmcqrjO!Jw$l!vo&#=yLehJ$$3P3j!Ya?LayR&ShV%(a#}##UKQ zz;>*&y3@$ezB@6rU*g| zlpwX;anVqa3;|r`b{9nG(!)RADaHB)K~z7(rGpSvk{Q`ocNwL@auRmMUeR(AXGJz9 zCV|-JAuX6gR@N}H$mZ!q6jn|Sh%QP^l9&ff*MB?@R z?3!igTZNis7g`1PKf|o6mesdfEB-zReJZ)Op_x2vzSJT(hhJp&BSuW4ln}Wa4$F zoQO~pn^fy)Ke?LU%fDbyxJH{ko6B zvbP9IEbfJkMtJa`yKr#<&HyM}pal{7bV7Em?(1I2sqQ$wYjnqYAuBXL4aWLAu3HGE zt-K*wnUIaRi*Ovd37K!kSlKk((rm}FXcJB#BYArB0wLbeWoNHK%~{FR=l0|U+>wL+ z2-5&Zr~RQsgc4`AI3=I68GFFqm$lp|NiaxSuKX+9ag5F-pY{GlaS-cn3&%pT({~lD zUqzYvS^ZJZZ3ZsLb;o+Gc|nb0#l(NztDO|K;aZ7cd7x>K&u`+hJEzr_y))YEY@em6 zthC8ks-Y5l6P0XWLt$GOd*^%oAW@G|#%^#{t4^Nt{zWxNelXFOMKRbSiedDMs*W6f z2ki=}m&7c_Tgni8vC%o`crU@33`d@C5tJBlyceAZopkTz>f*ZiY_CSup|GetYBaq1 zwX*EoFHcWDJZ*7Qi6(t-k(Y!3u^xz89PAeSuL;Me~~Cb+|aLM5)7~u=b)s zemcrI&=T8M4&|jJ-hpZlRru25Ets z`54+)mvE4#Q@0vN)4(rj-JvXuCmYCXyI#|U7WjJ%#34X=30@su^6bbIwypbiXs_!@ zg8@)l71!WG9Oxfz@O{x`>!W5n3fG+=pNf`J`e$ZLM_qTDU)LSg{~BHAi_Yfyt*xtF zt^$9h{MSd5{2vy)&CH*<+x1FvZB5VL(xD$O$Gi(Iof(~dxfos4O*GHW5hg7_u10of znZHoS@9jYadV#)> zLRcgl%f_+s>@IdUyN6lXy=)?z#J*J3s@AE$SFP97s=icxtsbf#i0gsw)+Vbqt3p*< zv^#ZgYpwd#dWV*qd@8}i ziTrlVk~6QsE^5SB-2~8KNFRnO9Wj4QgZ4|CGW3ECR_DBbXMC*M5h4#=+fyD|(bJtx zgZwMjiV?6*FwA&YGWUxZe`keDcK53wa>J$HxW5GPn{a8iTZ_K>+i)q{Z3IyqE?M2z z^pf_iS~gX-%0q|tl84^Zt70kcghKAPqq`(r8nEuxUTd}|VOFlSgi1;4h6SFgLZq;D z!vjyl4OVwqhs>bwm(jUz?YjTL*5tY^3{!YM|HKT%jV(2vLdDydyCXS&$TukDKPV($ z8Q^=>KEF7robD$eKR!pzCh@&(*l##u_{Q*qq23@HG$DOMZVb7dUUPGvnc9s^`@taS zAk)(-E>l%_P^K$76a!l&jmWW*m340*ZzvDunjxrbs2MK(5ZrU++!c*;b=XjJ^x$q| zVBloC;@9@vSkcq_go>(#yDN5NH%#%eJ5*U0JR`}Cc=+v5Z<>ng_vbnGyF5qm2ypyb zpoa4E9Q$0JBX|TjJ|$3#`+1H~yO%39cmz1!2DA2;a5P<>BX|TjVs?1VFX4#gzsuzj zJOUhFzy&HwUvmGlmV}khU(%9>_S$$;FKGmI$9E#x3k}UH;&1Kc)7{!jx{f+!z-<`Z zhV_zSscQz@hQn=muS>^b>O-N%JmWjY@X%SIZ-lDD?hE@zSWVdBF!Ui>pvPN){8Ef8 z9HDJfL)#QJbUwURlYn>rYxPDZ9)iK`(z~?YwX9Z?&Rrv!b;Rm`7#1 zY;+cgM(GG#7eS-k(h$CXI$rHQ)hn6iOE~1ao>hFSW^CP7wgws`$-NRr3=UdXBwbCj zPP`{d`(FuaNxkE_1U?AiwH7QcxN(lgiT7QcHXk-3>4Xs_#1r=q(<>|uc$N5CB(?JJ zwhgS}2#SUu?9Gud=)p818U};U%kkPrFzc zN!)iLhh2sHqEom|>}hPIf%0gFBn&l{e`0vt#UHP`$kyZ zdZ5h^r(>Ne>2|bM6}490i1?fl=Z{O(-l45Hlx=B&ku#vx=8i$rzn?aKvi&^*Gw&I_ z@ythJ-kaLD!oX=bbYMEIvIf>XUggAFoN>2dZ7EKQbC1FciT-9L>D|vpNOh9Gx4JLg z*l~L!0(&8+gH(ECz-?ua`YK4ZxebcCG+dkS;>-H(y{vDa9+%_XmPTPPTy>CY^No!T zaLEl&eytU_?8dPEXfKi=ono-}CJCyf2XLnPHfF`XJ-#dU^0hF$iYbkQI|K-K5@XPv zR()|2F;j(ijK-)IhhhR8SHw?XdIOFnp^M>&cP((H;4=x!K+?a0`;|-1OciW3%U`E_a%V zu0pP@wByu%0SZe<0xS8<>C-I!6kqm4*U+QA+_+QMtp`6+r%v3Q3FSpe1laqhE_^`I z1qNf@x^d)kBzlvcD(PnFQDtlyd6CAJ>(qQ~`J3Qgn%rq@@fV~CuQQJ+*I=&qBD?JGJ;v8+^P_F*-!FL2iq2IDa*SKQC%>~?i_geT;zG$bJLYXcHbmXaxf9F%yX zQgS>7RvRRhbTY#8a&u6?mtWL4q(Uki{~c`jwjEe{U-mlIAMO3=*Q)GoqQ!!yQ|c9V zWxfP^An;0=SSK!fg@rDA4F@4be2c4J!952ChcVrzYZs_&$J>k%*SFho1-;4=*EQF& z9f@dPh>(bVLB7R`Y=B;6Def-95JX5_wQNYc2%uLj`va2fI^&~+&}Er|y_dLb12Vpj zrQ^vFn!b9J&>`y;l zdT+f0OYg0*?&26^wz1t}|2VE^u*?q)GQo#Xcl+YqODI%UJ8kqL548>|0%t=m)?kN# z+CN{ImSO3b>S$dWdkC~N(OxYC)}<-X`JdXBrD?Bxg<@k{@lt)qr7r%|<(f3HQT;nx z%Hly>mL}ZZ^Ukd%zFypf3o2>7Sh^a^#bLfInR*2+7t5hiB=*tUusX za8%$p0d7U2)rg9dxW6oWY?8ArHxn*p%D+Kfbrfeo(+!abiAkZK7OwhogT`9s*;P_ zC5+nmKgy!_C%o*21(-Y}V=kGqq_ok;7T*thKHXwmG`ZZ;xI$yW+SPw8xiX%dJr`Fu z(FJQN`*eR=lm6>zNpUFCRSqNaj;&6}la3QTg!FMYm)iT7k2Er`9PV4AF-x&!Bg~Ev zgwKMAaYY6^u<%4L7o%2uY|#mLb?$07w6z9nIw$bT1rBU8_0B-+r}pQDl3P#bmE1$n zdib_}#U4ESo1T@L9=(l%bDHkVSZK{HfoY2YN%6;T>D&sZxO&CArWWT8Gbr^z^6j^M$uG5I>&VwqVT{*r9mK-*#|A3n;-A?C5c%$6jpQY~IcN(i0ILW7l zKqW0qen<)LDrw_`GDrA!%5kjIQm+zc){A3t0ahahk1f24)p&mgM}#^JXz&soQ&*uG zUNS%q^x@taoE=-3#>b2?x-R0P!^3EjdZ6u*9^g%o92j18drdM{oWtKMshEO4G}2|G zYTpdKC9O&aIj*IDO|JtQ}c?x|f1zM+~&<>T*X4~+Q4+n@L1#{WE@WKIdqg>fvQ0CG6oghrAFMvU| z|BS7Omkkez&nKwF<#8(iIX=JJRd6$Pa_bAXJ^{BSXX@#^El%`OIg+V3_cE+&9a7e{ zRxLBi@k+trctLTb95ZCm-7C&I#lO!s?hiYPn{;qD7u^i&_M*O2H9Z8EwvUl?0T zWa<94#JXUU(wDOlkpU4INVkMJBJqN{!&r`%Fnn2}Z0}j4!C#C~O7S-%_K$+K0uu{o zk_Tgz(!V)GjW1Apk!|64T?ZB$b!~y-YBbsa=Skp<5_(TC5zSP5E{?KN5{C(#%~*(A zEW_AhBR@OOid53W0jc$c)cU|Uv5G5^|FykT&T6f5A6_;J!+GM0f58^hUZA`3aCr{p z`d><6gJOUprhTjmzYv_It*j)1rjpI95PLjLX1lINqw!8dF)vA>RkSoKDd6tQ?oyB| zd#Ny}1`>d@ddUG{InQ(>ig6+Te-?$m-F6a16nbN+uIxSP`EhvLqFlR%pBEotP-Jm0 z9S{#i<1{Wx{-zh@{2RsiGh)^|A@x=L@yOyDnZNX*i7GS*Gxh4 zPS2a^`Cv1}dEX9YbXgi)whPWDOjH)A_0GO$UA8*!i?seBu0q0pZtEpyMN8d4ybp8u zmu8}^uXMxh7ZwJ5{O!P*Une+cp2f5+V$BQUOx)FNq+>nlGtc4=0^Eg{jnlL0K-~dJ zx3AaGy^b(s0Y||uV3}Wfs8jTgfzuC`;JpUiVWioD4O;|VVTnNGKpgADNw@=P>a=Y2 zp_rXiH)c4CjlR>$noaQq>1B2V8%Irh1|ej{lxF%blw= z*ds2fp9ax#p`(uJqIt+~Dmo@GAW#rKv;-4^h+qV@8#K`QUdP+Ceyxp*1-t2eJ2Xn~ zlZ3W*A1F0uWlA40ka{+<#R=3$a4lD4TdzVNk+wq8o!gxeC%U^8YcSiLnmrT%-u`e| zF5jHBXwJX5PyJtL&K5Lh+u2|rOt+lH>c~WD$F@39<77pDg)90?X)zHZRFDW=q?|_! zG!`y6MQ{82x^@xW{z8yM-Yx<PuWXtss)M$#Wu)c#0K zRk$Kx&)~&|)3BgpYqa`+4u4d|Tak1iz(`TDc>M_X2H=oX7YzjOIkx=5268s27Xu|% zI>hO~psVZ%VtvVFYpk(&nKZA91o1vp<1b9`OfW&w@{?%$0awOi3DDN!z{-u67Jc&@ zq0wLzU_rVhimZu7R*1!3FD>>iEi3iXoc~W)-n}5&&bcf9j=3x2q(kllanfh*hB)a{ zcb|Ca6PU0!hg-t$3b%&e7d|a~R`}fTJlcq-7ZqXolCjsmBP=bZ8)y`cB$&b&$rr|Z) zA4S`lbW21@BKBBpVa4DJp2XYF_uW9!KVlPixIk+84Ak-sTnTlWLy&dUQ78O@IRtg( zPJDh8EoXiqpEe`!KjYJ8Uvw1i)FD;Ad1p;ryKZx#rQSspf&^ z(FKn@R+#tTLw56x!-m~x4tS2wx6dEMvK;g0n;$92%eUtinsbVZ@*d1zkehE0H)iG) z=grME=N1+g6own`n4MoxxF82X3kx1B%voSY@CAAKIrhAQ{BUD1;mZ>54t^KQt!*Dc zz)2+*30MpBEqU{E2NgK%ZQlO@B{1Wi1x3F%XXc;`=CO{v`SX9DZ!Re@&l-5q;+X81 zm}|D>P0G6`|Kh+|yh6TBgo5$u9&dJL$mzXC#l2?ebPb!#a zUzk&vYoz<Y+r#l7&rpOtW1l^^rrUAuO@54wG{BZ%|< z5ky1O_mA8^7|#d+x1+l%=?4#6%|4)Wv?J!NN8os5)-3ux0%9w^xAGs5W^>i?;ivAVqc2@zX^f z+X8&pMp7Ps+2^tx1I-Yu{!1KxS*ALL>X^sl)Kz|_y>()6$zw;3X7h2>0`cXaBWNHf zE;<8!`-@J$2mqHO++F!@W89JB(WA$Y9|c3i!siHn5%K6zVypc3|DqET#fuY6-_Nuo zM>z8Q@h?Q;5rYhgfuAw`DDM2*&y4?c;z)%?M%#z@wR9(rRP0~NqEmQ3M{0Rn&0Fv1 zY7AfKw(kc*qOklw{Qv>yz;DS&qDuJVEVKE;jvUSRb7qz1t<>H8AEknh1gZ!1egri} z)z3fRc-{48`ZkvgEHRh(Iilm6Kfpiy2YE>O@<$;t9OwV24WKCne*FHOe!#Kc9Cn-? zWsLh=XD-UiH_s`UoA+RW`FbTV8;=3zZW>?)(GV3FS82eUke8pEV;%w~#_>oc@lpIf^1xwTuLVcq)N(5+8Sw?4DG^_kPH4=l7xAn`MiUFKso|v06KkxCJxdkwv3(b$2JNJbfyRC&w ze1f%biBGT=F7XN0!X-YzTDZg~SPPf<1Z&|EpI|Lq;uEZeOMHU0aEVW_7B2A#) zBjY+R|G}a`b7#+EcT66WHG2F#S!~SwJet82uA@FRG55i|B70#0n^TZKFRyR`CO(Sy z987Rnzgy?eW#)dv@ZE3VjW-wJ`zHRKmd0uN8bS_30Z!l-ffq8r!fq?UucE*G9xGpC)XzazgxpUFJyZnH?eb9aRcC&TR=z=19 z0U`{tVfL6~hGJVV8`7Oy015n;7|tEkfoph|S^5tg8O?eAi=X$|*8dg}Yd60GP@Ge4fr>wkrgGcAh>((E34l&F^O%-;}r919jx^sq^d4;)i=HzY2zf8(q z#_qzAGn`N`2Wnt$&fK46NbNN*ACvZOLk46x$ZSQ6&B3JmKm2TE)&Ipd16Gy1mIs+9 z<}4_K&_Sdq~2aCvPm|sw2UQl4qE5=9l4N3?tBai zb8}c$0r^A91^M>E4J;o+i6fsBCbcv$M{{H5oH@CVq)b+Zr9fVoaZ)ZVn9X%S(?Zeu zt!l`eud12*%^hGaa?JKSLk-W(D|)0LKX3N@Tr6LLbU`OsRz2A~t@(BLziV=+p-CxK&qZo}GhA zM^(+G=>9hF2--!inFL>m)?uEPH|L>T*bKJZLK;^oG&v38HMZapERLckgHcgaIdkTK z0oGZ~xkc!8NR`wi7GaePbx0Bo&g>{E7&K@Qo1C*CXOq%db77=7=GYyDIYl&X2iqXK zJ9j}rAr>pq1{}x)9~lOj?@>C#2DClJ5vAkU8Wj`OYf1p8JW z`UIbXgpkqkqY8ff?y>x%>EfdVNaPG`D1G3O+3`FYS2+egOYuAk*R%#c&*Axh*C&<<52)}@vre_{XG)$Sfwlh}ZT|C0{?_I{NS*t@iqagoyT^$N_y-10wq)K+IJ=RVrfH6s$#KfO>BrZ@KG8u|Bg(E zG=R{@#s?k4gH&vkF)}jJV2q8`#YTrl#K!iB4U3Hp__MaQ!pp|sF#4Xmt#{nZ9x24m ziy0$P{yg(=^St>5P#XCUDjPE9d9>wXr;ctnV*>M=+_~6lnHb{dfgfDAhtJOFTK-Qk zzh&B_W~$%m;TSc&2a<_u!EKv@`9pHQ^0^{`D-yUOfh!WYB7rLsxFUfo61XCPD-yUO zfh!WYB7rLsxFUfo61XCPD-yUOfh!XDUoC;=iBakeSUcV=ScM;%Nfjp0&c*$B3suAD zU){@!c$775GizH|*0A5HjUzh?FR=El4Q!BTDF$ACW?EuAhy3vu#aS^CI^abjXbJlq z5%}{l>~9p6mc4foL2nz>5D^M|L_`?7UZ86h_`vYT%NCl=6F#!0S2;APl&Jsa;d{>dM2LscHxB>Vx5jV2_ z_?rMAh5%}+hcqCGh?{_+MBEI_Az~=Nw;OIjf#^^Duv>u%L<|ESCt^4-kajB4fr&(n z0RBnDZR~1Be=~?tt4X3tyB!!oLch&zDCh#1BC3G}`u8;z3DA1`B>tdY_6G;9pJ z$mqrzW&v&_Vl2Ck(VxJ=6#KNZBLFqzTaIczFx zW^~UE%VtfC?nYtLP%ZRlZP;|+0ulEEPvbIJHiNY?TqT2RZ-GyUn8mIU=!HS{05FtV zWe)HZwaVG7g`Ff~4sd~pxj?@peB}Z;M9c#Y67e7!1^q2J_7K`NU9!aTm>|&YO6+0a zGa`Nin5YTQ2l^7R02o3tfPis1bjq<9r%t2 z2fJFJ%SKr-aEyqBz$`Pq9t9>*pLh)TiHOHpvOt&gvfr^c8Qo*cN?0#}?!RD*SWkg2 z$Uv`vG_JwdVs@24uYa*JV0S-!EdjnF;`hJ_BAmceDfn8-t`+D7D)t26CSn;&5$J*# zwj8)f#0p^4wfJ%Y%ZVrlj$el_k!@x4xAWLaU^Ee{SS6!NRoRokGt?2E0yYux2Veqq z#HU%3K(BkTXMhnzJj>2Ax?P?<2V@iRM|O_UwNh*~>nqSLHtc!!9;3TI*&6n5M%M#JA=dzaDGf9y}}9riX6YuQhXZlhv<2I6kO*NZ^k8}aoQUuf*!ECj^g*rzNp90ab}XT}H+|HD3G_Y$#%eZqG4 z0PzOl9!%h2%+wq1dUAdq54$}$rCo2-)Wj6_Qv0dVOY^Xrj*(L5^g9N%NH}QRT zgAk5Or4y^z5P@!&PW*t~D$t+nN!-as3iS66606xLfi7oG+{H2k`s*`^AF@n={>(#S z4YLUJ_bw7^**IaE5yVGqfY2LPk0yT1?iA<_(!@_#mJk;KVmBKuoR0$WPc}lhr3Z*T zs1Ilk9STgn1;nQy9wlNgh!P_9fhZ$lKZvD7900M5h|fT*AmVcn=W5HAvO62t}~PJwud zh;J~Myhg;gWH|^RzC&um4IsWpMyf(Uc#ua+CNyK>&yNI{|qK1fi5dBRc8bCZp zL?ejRL|g>1nTRG3-w@FZ;#(qGKzv6;D+mt}J`ksgkU^X!0$cp-JP~-yktHU9P=QDy zLJguP5gHK5L}&#ZFD61KEMOHqLFhrG_X1%+n4?652r71r2%~^%AR-h=qzncT2BMOP zNCfsF3#up~k=see9&j-rPsV5v$Q3ijfM}#Ju^^g=hy&3=M7%$YCIM;DISf@WR*(;I z)`L&jRl-&51cm7dqK=6FmP;>z^b(B0KEhOm=q=o-5N5%q5LZJ8^wIT2RylEvU{r`G z!NduDvM^2|5|Kmt=#vB*m_V2W8sI?K5uFRc0iu~oL1H1^n&N<1A_LM`h-!Kqtw8mt zkju`a@>P!^3>Wz02*c(4I}lvXCGg^MUIcKO7 z^Mr>x@hK60!>wWCA`oFH*Z;KDYWwTmRt3x~)o#VsBeoOXx;p>M=-7cDh<8V4Lx z(f2b(cWTHB0=S2cGnhFI@{-)}1CYvgH#Gb!p~fPQY=-EvWSt4bA9vhJCm4Bx0AwCf zmsHU>Mdp!BoeuVjJW4H{NM6FwWcSj47+t=PPBO~5KVFw;kCe^>@dC{xky$c9JT6NX zZJyc`ZN3%2OQ^yY1R&ere;$4R zQzX5BB*~5V;|{YxvkJ3Pvl(W?%%+-+H@ov9>XI#di8_piiDt-#EvDa+<)U^oNo1CC ze;IkCaF@`dM&p+vNjCl!B+14vi35`cGXSrl3h~oS>6j91VA+nzJeF0|F72OU0;^G%JSt$a^+M1Gw?cU zlB`<;$LPW;-k>gO6RcZ{B*{#(QZuvpxS3=EZ^lbrN4GfUS5+YUU;YQvC!sWTnD@m<37|H5p|lZKKJJL|__NGqaiJEmYx# zBH6YBkQQJY^*4Ha2a;q9g@Khk+!^QLuD=P_eB3P1tYY`ybi-_qnY0IWOBFRKW*!qT zlg!NP(F`%1;AXfCpc!==z@_w31Ni$GG>2zXD%>u(5H70PT0&81?7u4Dlc*iDC6)i? z0bfp4ERLxBw-R_F)8P_R`OisHC--k&Nq?*u)ck4s%gX-ESI}863~1gNLhB9{y#^ap z*OF$~BWZ>0kv7;6>5RRQYq0xqJvKi2W6xs%!eQ9y2xF5Yiv5iVmg8hXru(fcU+zQvY2u^G<+|3a2Vp_Na zuFmC{CpywmF`u?;bjbg8xVpAP=-lqJS``8(kOX=R*>0rESXO$$zobXR?=#+ zf!2^6nBm{Y#B`X}l5a34pTNX=l1{-Q6KisI58-S&@v(aeKEXsqmz-cvlVm=RG~v&Xj{I5D zg)bmI_(IZ$KS#3oB2vMhCzbp~@&I2<=J1!v%X}$W!e1e)`Ag(={wmqXmy@0RHS!Z* zMSkV0iKe_xEXo?alTpeRGF90|rYmoeCzS2v zWn~B1qU>;O=z1W|7n>f^WiBEl>v{v_#E7T9j)#`_&mwJF?s)tFL zdW2M}pOQ)HXXFm`OLCw36`7-cO`cG{A@kL5$y)U&{(VPu?R%1<9V4x@C+8<=O_D`}!`x7_7p2r%V(<8Vm`3p^>r!=f6ELLi@ z*r>~5r(TPbUJf0;%921kTHLgoC6V4}@zPvN5-qeO(;*f=EwiN1O8Cs<;Xwbxaxs0_ zatWOcr(vf}C^suEJJz=?;p0sqKe^|OwtKN;e z^zO8UehqD-_n@8hp7eVCTAHa}M+@{D=*@Z>9j^DK#d~38QBUHhu4ahjJ(O5buVTPQ`k68d-+zntj-yIf?C-Gh(NO&cTxEanhVFByH&; z(t|!v(&!6h6kS2a(pBUxx|+IZOO^B3R90v^MWa0wot7$A`k3OT3ltAsqIl^p1%_Mo(GF?~?WqQ6 zFZB|dsn+M143FQ=92mAIavEuDxDD&DTPqtB_G=yJ6)U8Q!TYt`;_huVXF zulA%)?ON)`MV*&vH_)rKUbH~#O^0h~v{*~0_iFv+)Nd)Ey(|N1rsZauV;M&CEVs~smJzhX5~O!pis=KEkv1>In&q&u+``_gg`bmKmHwSGVCrq7_+`h#?mKA+yMzW`l$i7wQa(lz=k^j&>9 z-KVdjhxIq;*ZO+;qh3c(>)YsgeJ53{yJ*1rHf?ErpLVqFr@gEP=q=WRbcFQ~t+pPa z_gX)p&saaDORS&MH?6_px%jpUt^1wvtj>N3 z`^Dar5l3^z9W7X*qa{mov|{;=%h^E36|BtBhRt_e$(B3Xu@#Q?Y@4Ga+wSPZK6Z3v zhaBD54~}ct&yF7KFUO56#hJ_6IP=*J&H|R z-Q^6i8O{lxP9HJ@d=7O))Gb~eEE z4jb%xkBxS{&ℑv5Bq^*ksp!_K@o%_PFa~w$ycyz3Mv5UUPlIR=GZ7TV0>CgoH2H zMG0TB@`SHgb;37na>BQ4M#51xH{m<>a>Dm)W5O}EFX1@*HsMEhHsJ)bx_@TP-M_HQ z+`qCO?vreQ`!_bweVRqwXIQQKcQ(WQ2YbnVmaTXH$v$?UXGh(HpL0{5;92W?j=?Ok5X)b>#X&#@Kw45(YdYvy%TFbX3y~*EB zTE`D0t>*`mHt^#~8~LfE&HPN#7Vb^n%6len=hr3g;5R4l=EIZs@Y>|P{I2A;`Qqev z`K!r0`I_W?e1GzX{Hx>x{QKmO_?hI7d7|$Szu0$}U+O!;TlhZX-F%<(Jl|1X==+`z z_8sH3z90Erz7u?!?>wJ@ji!fvT$$xll({}ldCO-}-u3CqF`rfW#b;BR`0YvyzeCCL zJCy>zOPS(NQ111+mFN8)WvM?=+2r>s+x8#|YbX5vcdMLwEdMcw+u2t?xxn7x>(py=S(nnd5lBR4;>8tEcNmo8d>96ch$x%+H zzYB%RoqJ9|$X*0ug0spj0UelqqF_3T0AY zta4AFN|_!Qr_2aUP#y{VLzxq}U6~uWTX{AxRe3Sc3a>8PU@_f}q+qMP3HC%=;oVwC zcyV2^zn+dT2ixnz;L%0!uB-|(+hq88cfilP7q7Y=MUG|g@#^5?ZH0fg4ZhtD_;w${ zxBD1Reur07zu@iEU-0i7v=Cc>gYW|HW^7{*A)VPe+iOX%IUXx58&D zCX?XbO@V(mhla`1@a^WquUiPe?p648E8*8|gK@7f2m@k!)p)F>fv*pR!lTm+V#Y16xkcvge4#R}wpXGCzNVH0A3^ zE54Dm@+o;h`HU=5J|`QLFUSGqOL9W_iszohknd} zZaf0rco8{QLO))|THsCS$R_B(cId$S(1HEXflr|Wr|{$-@QTjk6`&n5b3$fb_}|Uw zRQN*E;KxsgPCQAv(q~92eHQw#kd(qd8Vld3nl6U_z65%(lq{pKk~ipb_(QM3A6h|< z(3S9sRujh75C>aNTC$DgGPVgm(PsEUTS=I0!wq)3$er+&rojiA!H$qw>=W`d`;@!@ zUuX&YnJiiCRHV zsblFGwG#51N|Uwe^eXLM_(Av6iP{77Wo;(>pL^(T?O}RcdxZX}&4NGu80~3!oKChp zL6=*eq^m4*;SWDe|7m%Kdf~%dqA#G`_2=ky@LT%8Z^_o*q=ouA8qzn?h`xzd>6__n zeGB~D?R1g8gMO&*qd(~T={fxX{FskvCVZF)*2DA>>j(5n_%AE1pV3dOU(f{Gm(*+f znzprlL%Z6J(p=kjw9s}2FQ5LRVfZmqZHzqyUq<*a%izDf1^?v~{1+$umsapwy4k&~ z#Gb^az<+rVzRP3qX`Y7fvI2g~I(sv=!+t3{V{gF{;J5U0v}S`G7B<4smeo40Vh_S+ zc?LeqOYm8?I6AX)j_%Cq?7;%gOxDbq#ahE(>FUg5ec`k8a}H!TIR~>m_$mY8s|T#9v7Ojt6FUPg@~WhXU;|zv zikRbH9mb!F3J9<1=|}M6b$I}Wu)T^TA~>LZgi|F$5jZlU=aKGsR{U<)d(j?fzc`vO4J*4;xxt9@1J?Gu4>o@MpdYec z!85S`A$}>&BP1KJctg|1xrgM(^4nbfNdaK-p2p+qjnMcFa82ZeC`a^ku&as>jn%uy z(}mmuxEbjCJmMv~@jLI)C7+uEWr->s5zBA!&cMva<_FXl(}9D z4aelNFzFZ_je0K!eRsg$e;#{NJwR{AQ}}90Uk^Q4 zLtY1bE$BY7oUD=MY`_fDnXCnTJ?QUa)>!52%qz-Tz=$C`OS@L-^M#9Z>8}uO^^i+Bi-6ivH!3@%Z>;~K)^jYZF z9+`hDW)VAm2mKP9d;_z`K1tt3)?(J!5Bg1@Z{?I81Wd?VWScUDe*%5Z2KKH}#lM#Q z+D`iDDePO+n+tlj?qtVhy*tQI+gt1hoA)N zJFu5@_cSL7fQJFQ!E+Jp$3P4gw%NZ0IwJJnxjaIEH6Dgk58q85{4i&?{tl@(GkH ztcy`D43De?_DseYSMoX78Ag-KPQ4ds0)+gm}@F9IF6^sV`l1s(LY(P z!f;y7(6ixYf8+gb92@m3v38b`rgzc>;vgRKL4{>`?PD>f4vEX5hV*z0P}0#~88_(H z_!u85Og_Z>i-!hNw9~*@EY?K5vi(x8aL(4yw~1yyF4VU;e`5TA{^NOBzaih}1pY7O zJF<~{1>R7;0&gf^f!CSx9U0S;N90Mx^`;(BiEl7*MdF)H+(_Tk2;bWX-(up%^V=HX zTN~kTHNv+y!gn;ncQwM%wV0k8_3Z|3=<7>@fB#-z$?W@pi}g8K=kbX4EMEQfka6J54(p zFW-orvGU{Pd1H9vI9`5zzPS92d5+2xc@5`1@v69?T@-jjyD0EF(|*|HtL29FP^34s zhXUVh<~QnVXb(ktLwhLjhW1e44eg=8x0>bQSP$@q_E6vr?V-RM+Czaiw1)!6&$NdE z7xpmDCmiL6-`H9Nms1e05PowT1a)xhaA=+4c;1!t5>n?DXj^f#?#9|f4Zgo$rB>qlcIf3iC`{*x&{BG z^|hk)2pYBi|02~pE|ls$LaNh*RPPf~eLzTcrjY7GLaL7nsXiv8I!8$L2_e;|gjAmv zQhi29^;sd+g+i)}gj8P;QhiBC^<^Q|r9!IXgjAQAQeAFJ^)(^Y*G#ESzfh|8#-v(? zUE06PXxe|5(eb~@sEj7izZZqWF#k&2MbtwtP_sm8sM&);ZsPP(9c=i2)Vk&razoHa zZm|*77V8F_!~yTGqTqdd3f_01;C&|w-glwkeK!i;UqiwBo)o;lj)M0$P%)w?c;APD z_kAgN-;aX#85F#~k%ISG6ui%&;C(X+-n(dgMCH-=i1JeK-b>|(5=QI_{PhVU@o!o^ zxUU{GmfB*n7Lc*UXT$=Jk}KK$*a&c8%4>$hHycPDj=r42ik>r#B`_b0vb)(Dwx1nf zhglPT8NY&e!5Yj(zOh2fHqhgsztO4 ztwzHIh}u2cEbS?6zP4OjrESr+YX`I=+Br?JEVjI2S!vm8dCzjda>8=b@`uHuTlE%t z8@)ikSs$*C(>0L@J|$$F{N^>^=4&!?6kWH9N|FVn4GpjPf?TGw;TS@!`CP zkKwcUJpL^Ikbla*;Fl^_D(#dWN}5ulj8;mO$CPK31{H~l= zsH&?S)Shapnyucf7ONxG2zXSZKBvB-E?3v6Yt@bF4)uH0srj|bv;u9oR;*P?-rNhG zys2#hSDY5VrI#hsl4rTo@_=QIWeIq*!m`e?!LrlxrKOF2wcbtdtM}Kl^-22e`ZRr^ z{(`<-U!(8S_v?rCuk|1G)B1T`v9`2!wDz*zWX-jXu#U7wtfkfmt+T9itZ!OBv>vja zww|>rHoI-0t;80wEw;U3TW33Gv)P^YZ2K+tpnbl5nf*2UFLvVKjxv7jo*Q>7AT&rB0U0YpyT;I785|R^A5-v(;kKW^q;Ca9^(=*$%*t6WT-LuED&vU?Y*z>vP8_!YCG0!Q_SQ8iNo7fuN#m37 zx;klL((A! zCV6}E&g8d~_a}d!oanpQ*TUD@*VcEnuZypnFW*<_tM%RGo93J0d)PPEx8Aqex7GKS z?_J*!-xt1bec$4pW?sQKga*He}Vrw z|MUK({@4BM{2Tn6{M-HS`S<%j@*nhn?my-~;s3>d(tpN(*3VOhrOZruIAw0i!jwfR zi&IvlY)sjjvO8se%Au66QjVwmobqeR>6G&+JfH?#fy6*kz!$hEa7mzLpnafIU}yj@ zmIKj1bzo9pN?>|mM&OaaoWR_`vw;@_uLsr!wg%n`>Qu2bk#`XHS{SJDl1Bi%~B zrzbF0|DqOl5o^Y-VC`8K)|2&OeOWfUm6fmvyNgX_4`Gy^Wg55hro0tz#~)pRlzg17Dr_|r&Memws*Ag_3)!l^Y#lHy4 z|4nc^w_|I0KMo;&iq`&wmzaNGYtfDq#a>wH=Jayf8GnD3N*|!}=`y++*9%|DTC&U7 zAU2GJ*_~_}o55zWr`XeM30ubAV4K($_C74h7wjwcowOsT+3&2758}7*Vm_L$;%oU< zzMH?zkMPg<5Bw*7lK;WaajI}7C@pN6Ql)HCwkhu_2b6=#cgk_)q;eKk#G-oD)@oa| zquL9Wc7z&&9T}sJRquqA6@5RWCTmw|yR|R0ue9UZpPJQjrR6G12TK=AcgtAIWXnUA z*_M|q*Xey=B?@6dOZ13-hklnnU7x8xq|eqD>F4w(t&6QotSey;Hd}XC_gf2XLv3N( z1luIr?Y28@Q*BS#mf7C2b+g}Rf6)Gz{b~C``y%_x_7(PZ_Cbyjj&etZqt%QOpsC%A!zI%~-qkETokNZ9MG4~1gZ|-yM zE}rh58$9(d#V{$#UoeR878gg;DyvB_7#deyQZxoYYDPguX1_u~Dh(Hv*Hj2-bT~9d ze47<;{Gz!qVBB9&9jy#c6dzp<7U84S)ueC#{M>jE5CSS1 zNrL#)x&Z*HuBnJXSk=**3VdOj1Z&F0muykdpuGIdoWgX`&Ov#FGRjBA!C+N&MW_O8 zEsjL1#)L(qgTjSq7Z({x zhU7=%DnxO$AzD=$9Up_l?S?Thn3gxNFbDOeW@P51p9PuSr|xFrQt9}W0k?c@@NbY3XX<}O9zp8JidS) z7VR~FSPUGWO-JhxMvyBsx-1GIghp3ICZcg6TtOhZAB)3LFt;Rzl$4a#RDoMELfero zH!nS>Umk$|>4hRL!H3Js5yj<#9t*WAF?6}4IxL=)Cc*r=!skB7o#>l_)aEk}whW>#iS{{qq*_XSkq>L8<`1`v1jTG11R+NXka-hydsW29y8Vms0HC#s_uJwvnRF#LTQzGDHMeVrij%c&I z)2O~s@JilWQBOfN_`g&%9OFA!pI|mvmLvKubJS-*S@M1fh!}k;hx(=!i5ryqqxOlR zNbH9S)6?^0TaC|=hl_$WFr4M1FbR|*BN|yDr4|VzuaprciBPq{9+NQgLW0?0S#m5_ z4yc7uaH$~?v{YPpa3L{OT)}`8*;I5sRzMo=)hIIPf>TCgvch2_=eYWe>GBeczteHK zR6MWfS*(P<;ZjMhf4%^>hEz*heLYgY>Ny&FwjiFd+>mK2F#E!!h?rZYyj$U(+WOR@ z(s72$53H&ws+3AmUs+mF<*2`<)`SR*cxpj7SAYB?FT^l0ZOeC!X z$`!^^0>YN0bqJS_i&Wy)D7Z%D7pm=cv= zK#O3iB|!+PTudJYP@U>R;V;2#jSd%8h&wO@j9I=E0=s~C0j)ZU3e&`GU1&&tYGE#> zY~yaE&T*hq9O#I047V_3Oy0)yEL}TkiX{}ARwNuV^)Nf(qOvMHj(TvH2YQI9rvz3! zSb`Z%5b$ySfn`Ni!a))3msVQ1oADk3luA(;Ef|D6Rn=pREaRbqQ8~TE{Em_0+NA2Z z6B6oIS|m6eN;4)CTuN328y_q!l99NVORzQ{(|g*uYEys(xJjTeIx>zI3o9OsOdJb$ zN`kn3gam6115JVx;y|CcSs=lJdazGMwU}U}5vr%A)l^pIN5_M=0P4vx23Hpgp*8Rv zi7=eO?DlDSc`=Yg$B>2-O1VVBRU|g|5O{r^L_ma@iB#8&Bz@Bd9D~! z=jQj7K%XISAqAzXsFdJ_9Nepr(=W3>F@_i!60NDsfOCLeOIsX+OK|l{u$qhyfwzc- zQ-Y`#e>i7MahZLCg&m0qJK+O4MYW{3mV|1_$XaA2BO@eKB7`G?DuQ~8Micb9cr*!> z68KmnOUcO51Q%MD_8Ct?c3HnsBJ3l>ta4IVTis_=juB;wsGouL8>n_K=-8?HYxS?)+8Bb*+dP?Yodn9HPN`ettS{})x^cDh~6~DTa7I>ZL66UGszKR ztZjlZT`{5T$u1`b_LpS~nLS|ThLmW=f>tCy9qucBvi80F>H zkE6VNB1T{u+-y`NqCR=TbMDi(rmSoN=~GBTMY!3Bgra34D6J_gFCs%alEEFxkPc*U z2Vyj;qbyl^HaYcUKieGGBjHjC76irR?5GId>?i_av{YE23v7Tugk>mVd5abX zC1$1cK}00rrmHZisK#YuB_$YehPfs=nf-7BlDLG9m{)s=fkN^kRZ(JI{wA1iT<#_w zG;VJbP)8AT5BiSN@LaIkcs=&cgtkc(q*`Z#QSRU3AOeDC_OWfsHB9;g+e_@z9f_b1Of~($&@Qp8I P>m-7XM0!cGA>{u7hqp^< literal 0 HcmV?d00001 diff --git a/MAILINGS.PRJ b/MAILINGS.PRJ new file mode 100644 index 0000000000000000000000000000000000000000..17522300cba4e27703c9dda8127a2ba2e89d3794 GIT binary patch literal 6169 zcmeI0S#VQT7{|Yxq-{tWXhBK~2saS6GBl(GT5zFhl7`G=BMAr+?9evUDkU{-sT-y4 zj*gDXgAelHinxQIFN(bB2oxEYviRzQGmbMLBI3gJ`=48!jx{|g1ekHWxBcb2=l;+6 zzVn@Pw-fJ9H>Fg!8cC<_NH%w=4Q-o}>SR)^<0mQnQ&2@w^XFtBg$^=_4hj3PV819i zBJ7U~adyApCxQo<3VkWgekJ%d(?|o%Iyxpwjtib(lJO)+r@0RO1e^hWW+-Q2{X!<9 zKB99t_!T%0{DxZUZWGgRO0+Og$i>Hi<06g|Fi)~sOy4q1^gHV98^`#AEyJHUyZ~qb zDeRFqQj82T0eL_^!%)B|H#1tsFjNbJ3V|ZP3XEka<6sp7CBTd9&F~Ujz6`tqyb8Pq z>;zs1b^*JAJ;3|GUf>PjO@{F;SZ@RG0Ph0t0UrP#0^{Lw0&pEenFy2ulN3FNWjI%^ zAm5W=P64JuaXm1NVVn+2WzY;@CSV6<0kgTXwrvhu^F=dv8rWRNP}T#t0Zl+N&;lfZ zjX*1KJA>MR%|Hrecfsm})eUP4tR7f*!@38!7q}0&pFvLpTXEP6YyR;l!nXIUZ=4f~?5 zV4^-84Y)!ccfucX2UdB!m+v5p791I32>9!>sGS?hLY|)0RYXoDkE#}Pn^kN$7cL~K zR<`BF#ih5hNSQ_zBUWE5RVs<=t2xLK-LE>+a=#HFru zPqM2gna2N!V{~Osx~~27^eAS&c50T?a1Xs~*E*N-l|s-17d z!AM-SyZIm(^UXzcRcy@Ll4@&FD=M4StUX*E;UP`wjf)pKS7&Fky=hbCt03-*1#=mc zBe+I&-0D{yVbz}NwsRS$tgXWu=^5{t7jqbeNyT%)G1+UI?esrOY zO5Oi=3i)GVBY#I^z7=K-{IqdjZS zb%Ub~AV>Ny_+IF5??|P))IeKPdPBNx!{!W4`-733zTVn%-C%~euXOQI4bSNRx68`F zA}S?Eh1H_(6^@IR)v}nTVzq+KtzBt*!A$gg0a2L0M}sbZpfM=klwwhLqbD3otoDZZ zp_;%Mf5@jBgA#dgSZpy-9t$VaDSp)&C?~R%@W(GN0tjD`sBkutuR)2_SsuU86|gs6 za-j3vuZDc0qs2s}7yA_tNPP`Tq`u5FhAiASqDeH+zS`#JK2@_HD;HH(Cisu9>R6)Q z*z z2~<~puq;ooP|z$`Bxn&FOP}qVV;d*ze8FP+bngmVfv`0VEezN5Vi%Rs_MIzjCZW@P z==IA*iSAF2K(9a4liseb7cTTcWBzmHBf; zi73I|{b80N5k_)t_5I7(=%cD9WsK;sJ`418=;Nd(Yv^cQObQ)P=m)j$d{4KANt1Cn zR!C!Y$Ja)@*>ow&_dL0-F|;ZWkjpqjd|Qy~>iyxET;&djM7|}%!uN1_TaBRxe;|v5 yG + +#define DIBUJA 1 +#define DEPRIME 2 +#define Dibuja_Todos 3 +#define COMPRUEBA 4 +#define STD_BY 5 + +#define NORMAL 0 +#define INTENSO 1 + +#define ATRAS -1 +#define NUEVA_BUSQUEDA 0 +#define ADELANTE 1 + +#define SEC_OPTAR 5 +#define ENCUADRE 3 + +// Niveles de acceso al programa +#define TOTAL 0 +#define USUARIO 1 +#define NINGUNO 2 + + +typedef struct +{ + char FillBgS, FillBgC; + char NumFg, NumBg, NumLn; + char TxtBgN, TxtBgI, TxtFgN, TxtFgI; + char Printer, PrintTo[80]; +} CONFIG; + + +typedef struct +{ + long Codigo; + char NIF[10+1]; + char Nombre[45+1]; + + char Direccion[40+1]; + char Num[4+1]; + char Piso[4+1]; + + char Localidad[25+1]; + char Provincia[15+1]; + + long CodPostal; + + char Cod1; + char Cod2; + char Cod3; +} MAILINGS; + + + + + + + +int Optar( int optar, ... ); +void ponicono(int x,int y,char matriz[18][18], char pos); +void formatea_u_long( unsigned long Numero, char *Inter_Chg); +int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1); +void Error( int code ); + + +// M¢dulo de referencias +void InfoProductos(void); + +// M¢dulo de Compras +void ComprasDiarias( int NivelAcceso ); + +// Informacion de los proveedores +void InfoProveedores(void); + +//ÛÛ +void espera_soltar(void); +void espera_pulsar(void); +void activa_raton(void); +void desactiva_raton(void); +void inicializa_raton_texto(void); +struct Boton_Texto{ + char x; char y; + char Texto[80]; + + int ID_T1; + int ID_T2; +}; + + + +int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto); + +extern int boton_izq, boton_der; +extern int x_raton, y_raton, RATON; + +//ÛÛ + +extern int AnoActual; diff --git a/MAIL_M.CPP b/MAIL_M.CPP new file mode 100644 index 0000000..7a542e3 --- /dev/null +++ b/MAIL_M.CPP @@ -0,0 +1,334 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "d:\program\src_dos\libs\bdatos\bdatos.hh" +#include "mail_.h" + + +CONFIG Config = { + 1, BLUE, + RED, WHITE, BLACK, + BLACK, WHITE, WHITE, BLACK, + 0, { "PrnFile.out" } + }; + +#define OFF 0 +#define ON 1 + +#ifdef __cplusplus + #define __CPPARGS ... +#else + #define __CPPARGS +#endif + + +#define GESTION_DE_SOCIOS 1 +#define LISTA_DE_PRECIOS 2 +#define GASTOS_INTERNOS 3 +#define SALIR 4 + + + +int MenuPrincipal(void); + +void Mailings(void); + +void PideAnoActual(void); + +void DibujaPantallaGastosInt(void); + +int boton_izq; int boton_der; +int x_raton, y_raton, RATON = 1; + + +int main(void) +{ + int ok; + + inicializa_raton_texto(); + if( RATON ) desactiva_raton(); + + + ok = 0; + + + MenuPrincipal(); + sleep( 5 ); + + Mailings(); + clrscr(); + + printf( "\nJos‚ David Guill‚n || _-ùFuTuRe ViSiOnù-_ || 1996 (c)" ); + printf( "\nJoshua G¢mez Garcia | Spiral Software || 1996 (c)" ); + printf( "\n " ); + printf( "\n e-mail: Jose-David.Guill‚n@cs.us.es " ); + printf( "\n infomundo@arrakis.es " ); + printf( "\n " ); + printf( "\n " ); + printf( "\n Ü ÜÄÄ Ü Ü ³ ÚÄÄÄ¿ " ); + printf( "\n Û ÜÄ¿ÛÄÄ ÜÄÄ¿Û\\/Û Ü ÜÄ¿ÜÄ´ ÜÄ¿ ³ þ ³ " ); + printf( "\n Û Û ³Û Û__³Û Û Û_³ Û ³Û_³ Û_³ ÀßßßÙ " ); + printf( "\n" ); + + + _setcursortype(_NORMALCURSOR); + +return 0; + +} + +int MenuPrincipal(void) +{ + _setcursortype(_NOCURSOR); + textcolor( WHITE ); + textbackground( BLACK ); + clrscr(); + + cprintf(" ÜÄÄÄ Ü \n\r"); + cprintf(" Û Û \n\r"); + cprintf(" ÛÄÄÄ ÜÄÄÄ¿ Û ³ ß ÜÄÄÄ¿ ÜÄÄ¿ Û ÚÄÄÜ ÜÄÄ¿ \n\r"); + cprintf(" Û Û ³ Û ³ Û Û ³ ÜÄÄ´ Û ÀÄÄ¿ ÜÄÄ´ \n\r"); + cprintf(" ßÄÄÄ ßÄÄÄ´ ßÄÄÄÙ ß ÛÄÄÄÙ ßÄÄÙ ßÄÄÄ ßÄÄÙ ßÄÄÙ \n\r"); + cprintf(" Å Û \n\r"); + cprintf(" ³ Û \n\r"); + cprintf(" \n\r"); + textcolor( RED ); + cprintf(" ßÜ ÜÜ \n\r"); + cprintf(" ßß ßÜ ÛÜ ÜÛ ßßßÛ ß Û ß ÛÜ Û ÛßßÛ ÛßßÛ \n\r"); + cprintf(" ÜÜßßÜßÜ ß Û ß Û ÜÜÜÛ Û Û Û Û Û Û Û ÜÜ ßÜ \n\r"); + cprintf(" Ü Ü Û Û ÛÜÜÛ Û ÛÜÜ Û Û Û ÛÜÜÛ ÛÜÜÛ \n\r"); + cprintf(" ßß ÜÜß \n\r"); + cprintf(" ÜÜßß \n\r"); + cprintf(" \n\r"); + cprintf(" \n\r"); + cprintf(" \n\r"); + cprintf(" \n\r"); + textcolor( LIGHTGRAY ); + cprintf(" ³ ³ ³\\ ³ ³ ÚÄÄ¿ ÜÜ ÜÜ ÜÜÜ ÜÜÜ Ü |> | _ Å\n\r"); + cprintf(" ³ ³ ³ \\³ ÚÄÄ´ ³ÄÄÙ Û ß Û ÛÜÛ Û ÛßÛ Ûß ÛßÛ |> () |> ( |-| |\n\r"); + cprintf(" ÀÄÄ Á Á Á ÀÄÄÙ ÀÄÄÙ ß ß ß ß ß ßßß ß ßßß \n\r"); + cprintf(" \n\r"); + cprintf(" \n\r"); + textcolor( RED ); + cprintf(" \n\r"); + + return 0; +} + + +int Funcion_Botones(int Funcion, int nBotones, struct Boton_Texto *Boton_Texto) +{ + + char i; + int DEVOLVER = -1; + int longitud, key, key2; + + switch( Funcion ) { + case DIBUJA: + highvideo(); + textcolor(BLACK); + textbackground(11); + gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y); + DEVOLVER = 0; + longitud = strlen( Boton_Texto[nBotones].Texto ); + while( DEVOLVER <= longitud ) { + if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) { + DEVOLVER ++; + textcolor(RED); + cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]); + textcolor(BLACK); + } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]); + DEVOLVER ++; + } + + // cprintf("%s", Texto); + + textbackground(7); // ±SALIR±Ü + cprintf("ß"); // ßßßßßßß + gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1); + for(i = 0; i < longitud; i ++ ) // ±±±±±±±Ü + cprintf("Ü"); // ßßßßßßß + break; + case DEPRIME: + highvideo(); + textcolor(BLACK); + textbackground(11); + gotoxy(Boton_Texto[nBotones].x, Boton_Texto[nBotones].y); + DEVOLVER = 0; + longitud = strlen( Boton_Texto[nBotones].Texto ); + //////////////// + textbackground(BLACK); + while( DEVOLVER <= (longitud+1) ) { + if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) { + DEVOLVER ++; + } + cprintf(" "); + DEVOLVER ++; + } + textbackground(11); + gotoxy(Boton_Texto[nBotones].x+1, Boton_Texto[nBotones].y+1); + DEVOLVER = 0; + while( DEVOLVER <= longitud ) { + + if( Boton_Texto[nBotones].Texto[DEVOLVER] == '&' ) { + DEVOLVER ++; + textcolor(RED); + cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]); + textcolor(BLACK); + } else cprintf("%c", Boton_Texto[nBotones].Texto[DEVOLVER]); + DEVOLVER ++; + } +// cprintf("%s", Texto); // + // ±±±±±±± + break; + case Dibuja_Todos: + for( i=0; i < nBotones; i++) + Funcion_Botones( DIBUJA, i, Boton_Texto); + break; + case COMPRUEBA: + if( bioskey(1)!=0 ) { + key = toupper( getch() ); DEVOLVER = -2; + if ( key == 0 ) { key2 = toupper( getch() ); DEVOLVER = -1; } + for( i=0; i < nBotones && DEVOLVER <= -1; i++){ + if( key == Boton_Texto[i].ID_T1 ) { + if( key == 0 ) { + if( key2 == Boton_Texto[i].ID_T2 ){ + DEVOLVER = (i + 1); + Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto); + delay(150); + //sleep(1); + Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto); + } + } else + { DEVOLVER = (i + 1); + Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto); + delay(150); + //sleep(1); + Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto); + } + } + } + + if( DEVOLVER == -2 ) + { ungetch(key); } + + if( DEVOLVER == -1 ) + { ungetch(key2); } + + + } else if( RATON ) { + DEVOLVER = 0; + for( i=0; i < nBotones && DEVOLVER == 0; i++) { + longitud = strlen( Boton_Texto[i].Texto ); + if ( (x_raton+1) >= Boton_Texto[i].x && (x_raton+1) <= ( Boton_Texto[i].x + longitud -1) && + y_raton == (Boton_Texto[i].y-1) ) { DEVOLVER = (i + 1); + Funcion_Botones( DEPRIME, (DEVOLVER-1), Boton_Texto); + if( RATON ) activa_raton(); + espera_soltar(); + if( RATON ) desactiva_raton(); +// delay(150); + Funcion_Botones( DIBUJA, (DEVOLVER-1), Boton_Texto); + } + } + } + break; + case STD_BY: + Funcion_Botones(Dibuja_Todos, nBotones, Boton_Texto); + do{ + if( RATON ) activa_raton(); + if( RATON ) espera_pulsar(); else while( bioskey(1)==0 ); + if( RATON ) desactiva_raton(); + DEVOLVER = Funcion_Botones(COMPRUEBA, nBotones, Boton_Texto); + }while(DEVOLVER==0 && bioskey(1)==0 ); + + } + return DEVOLVER; +} + +void inicializa_raton_texto(void) +{ + union REGS ent, sal; + + ent.x.ax = 0; + int86(0x33, &ent, &sal); /* averigua si hay rat¢n conectado */ + + if(sal.x.ax==0) { RATON = 0; return; } + + ent.x.ax = 15; + ent.x.cx = 8; + ent.x.dx = 16; + int86(0x33, &ent, &sal); /* fija la raz¢n mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = 0; + ent.x.dx = 639; + int86(0x33, &ent, &sal); /* fija la posici¢n m x. y m¡n. horizontal */ + + ent.x.ax = 8; + ent.x.cx = 0; + ent.x.dx = 199; + int86(0x33, &ent, &sal); /* fija la posici¢n m x. y m¡n. vertical */ + + ent.x.ax = 4; + ent.x.cx = 320; + ent.x.dx = 100; + int86(0x33, &ent, &sal); /* fija la posici¢n del rat¢n */ + + ent.x.ax = 1; + int86(0x33, &ent, &sal); /* muestra el puntero del rat¢n */ +} +void activa_raton(void) +{ + union REGS ent, sal; + + ent.x.ax = 1; + int86(0x33, &ent, &sal); +} + +void desactiva_raton(void) +{ + union REGS ent, sal; + + ent.x.ax = 2; + int86(0x33, &ent, &sal); +} + +void espera_pulsar(void) +{ + union REGS ent, sal; + + do{ + if(bioskey(1)!=0) break; + ent.x.ax = 3; + int86(0x33, &ent, &sal); /* lee posici¢n y estados del bot¢n */ + }while((sal.x.bx & 3)==0); + boton_izq=sal.x.bx & 1; + boton_der=(sal.x.bx >> 1) & 1; + x_raton= (sal.x.cx >> 1) / 4; // / 8 + y_raton= (sal.x.dx)/8; // /8 +} + +void espera_soltar(void) +{ + union REGS ent, sal; + + do{ + ent.x.ax = 3; + int86(0x33, &ent, &sal); /* lee posici¢n y estados del bot¢n */ + }while((sal.x.bx & 3)!=0); + boton_izq=sal.x.bx & 1; + boton_der=(sal.x.bx >> 1) & 1; + x_raton=sal.x.cx >> 1; + y_raton=sal.x.dx; +} + + + + diff --git a/MAIL_PR.CPP b/MAIL_PR.CPP new file mode 100644 index 0000000..9006b67 --- /dev/null +++ b/MAIL_PR.CPP @@ -0,0 +1,1158 @@ +#include +#include +#include +#include + +#include "d:\program\src_dos\libs\bdatos\bdatos.hh" +#include "mail_.h" + +#define NLINEAS_REF 18 + +BDatos BMailings; // Base de datos de Mailingserencias +MAILINGS SMailings; // Estructura de referencias +MAILINGS BHtmp; // Estructura de referencias + +#define COD1 15 +#define COD2 15 +#define COD3 15 + + //123456789-123456789-12345 +char Codigo3[15][25+1] = { " ( sin codigo ) ", + "InfoMundo. Jos‚ David (c)", + "Linea 2 Codigo 3 ", + "Linea 3 Codigo 3 ", + "Linea 4 Codigo 3 ", + "Linea 5 Codigo 3 ", + "Linea 6 Codigo 3 ", + "Linea 7 Codigo 3 ", + "Linea 8 Codigo 3 ", + "Linea 9 Codigo 3 ", + "Linea 0 Codigo 3 ", + "Linea a Codigo 3 ", + "Linea b Codigo 3 ", + "Linea c Codigo 3 ", + "Linea d Codigo 3 " }; + +char Codigo2[15][25+1] = { " ( sin codigo ) ", + "para un miembro de ", + "Linea 2 Codigo 2 ", + "Linea 3 Codigo 2 ", + "Linea 4 Codigo 2 ", + "Linea 5 Codigo 2 ", + "Linea 6 Codigo 2 ", + "Linea 7 Codigo 2 ", + "Linea 8 Codigo 2 ", + "Linea 9 Codigo 2 ", + "Linea 0 Codigo 2 ", + "Linea a Codigo 2 ", + "Linea b Codigo 2 ", + "Linea c Codigo 2 ", + "Linea d Codigo 2 " }; + +char Codigo1[15][25+1] = { " ( sin codigo ) ", + "Programa Realizado por y ", + "Linea 2 Codigo 1 ", + "Linea 3 Codigo 1 ", + "Linea 4 Codigo 1 ", + "Linea 5 Codigo 1 ", + "Linea 6 Codigo 1 ", + "Linea 7 Codigo 1 ", + "Linea 8 Codigo 1 ", + "Linea 9 Codigo 1 ", + "Linea 0 Codigo 1 ", + "Linea a Codigo 1 ", + "Linea b Codigo 1 ", + "Linea c Codigo 1 ", + "Linea d Codigo 1 " }; + +int OrdenMailings; + +extern CONFIG Config; + +void RastreaFicheroGastosi(void); + +void Error( int code ); +void MuestraDatosMailings( void ); + +void DibujaPantallaMatch(void); + +void Imprimir( void ); + +int ComparaRegistrosPrecio( const void *A, const void *B ); + +void EditItemMailings( char columna ); +void MailingsNuevoRegistro( MAILINGS *MSMailings ); +void MuestraMailings( char columna, char como ); +void ObtenCoordenadasMailings( char columna, int *X0, int *Y0, int *X1, int *Y1 ); +void OrdenaMailings(void); + +void ObtenCoordenadasMatchPr( char Row, int *X0, int *Y0, int *X1, int *Y1 ); +void MatchDrawMailings( char Row, MAILINGS MMailings, char como ); +void BuscaMailings( char TipoBusqueda, char *CurrRow, long *CurrMailings ); +int Match_Mailings( MAILINGS A, MAILINGS B ); +void EditMatchMailings( char Row, MAILINGS * MMailings ); +int ObtenMatchMailings( void/*MAILINGS *MMailings*/ ); + + + +void ImprimeMailingserencias( char como ); +void ImprimeCabeceraMailings( char como, FILE *file_out ); +void DibujaPantallaArticulos( void ); + + +// ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +// Û Parte principal del m¢dulo Û +// ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + char CurrRow; // Linea sobre la que estamos + long CurrMailings; // Producto sobre el que estamos posicionados a golpes + + + /**************************************************************************\ +|* *| +|* InfoProducto *| +|* *| +|* Descripci¢n: *| +|* Controla la introduccion de datos y muestreo asi como todo *| +|* el interfaz de usuario... *| +|* *| +|* Entradas: (ninguna) *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void Mailings(void) +{ +struct Boton_Texto BT[6]; +BDatos BDummy; + +BT[0].x = 1; BT[0].y = 1; strcpy( BT[0].Texto, " &Salir "); BT[0].ID_T1 = 0; BT[0].ID_T2 = 31; +BT[1].x = 20; BT[1].y = 1; strcpy( BT[1].Texto, " &Insertar "); BT[1].ID_T1 = 0; BT[1].ID_T2 = 23; + +BT[2].x = 33; BT[2].y = 1; strcpy( BT[2].Texto, " &Borrar ."); BT[2].ID_T1 = 0; BT[2].ID_T2 = 48; +BT[3].x = 47; BT[3].y = 1; strcpy( BT[3].Texto, " &Ordenar"); BT[3].ID_T1 = 0; BT[3].ID_T2 = 24; + +BT[4].x = 58; BT[4].y = 1; strcpy( BT[4].Texto, " b&Uscar"); BT[4].ID_T1 = 0; BT[4].ID_T2 = 22; +BT[5].x = 72; BT[5].y = 1; strcpy( BT[5].Texto, " im&Pr. "); BT[5].ID_T1 = 0; BT[5].ID_T2 = 25; + + char ok = 0; + int BPush, key; + + char oldCol; + char CurrCol; // Columna sobre la que estamos + + _setcursortype( _NOCURSOR ); + DibujaPantallaArticulos(); +/* + if ( BDummy.AbrirReg( "dummy.dbf", sizeof( MAILINGS ) ) == ERROR ) + Error(0x01); +*/ + + if ( BMailings.AbrirReg( "mailings.dbf", sizeof( MAILINGS ) ) == ERROR ) + Error(0x01); +/* + for ( CurrMailings=0; CurrMailings < BDummy.Registros(); CurrMailings++) + { + BDummy.LeeReg( (void *)&SMailings, CurrMailings ); + BMailings.InsReg( (void *)&SMailings, BMailings.Registros(), ARRIBA ); + } + + BDummy.CerrarReg(); +*/ + // Si no hay registros, creamos uno almenos. + if ( BMailings.Registros() == 0 ) + { + MailingsNuevoRegistro( &SMailings ); + if ( BMailings.InsReg( (void *)&SMailings, BMailings.Registros(), ARRIBA ) == ERROR ) + Error(0x02); +/* + for ( long i = 0; i < 1000; i++ ) + { + SMailings.Codigo = 1000 - i; + sprintf( SMailings.Nombre, "%03d-%03d-%03d-%03d", i, i, i, i ); + if ( BMailings.InsReg( (void *)&SMailings, BMailings.Registros(), ARRIBA ) == ERROR ) + Error(0x02); + } +*/ + } + + CurrMailings = 0; CurrRow = 0; + + if ( BMailings.LeeReg( (void *)&SMailings, 0 ) == ERROR ) + Error(0x03); + MuestraDatosMailings( ); + + CurrCol = 0; oldCol = -1; + + do { + if ( CurrCol != oldCol ) + { + oldCol = CurrCol; + } + + MuestraMailings( CurrCol, INTENSO ); + BPush = Funcion_Botones(STD_BY, 6, BT); + MuestraMailings( CurrCol, NORMAL ); + + switch ( BPush ) + { + case 0: // No se pulso ningun BOTON + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + case -2: // Hay una tecla normal en BUFFER + if ( ( key = getch() ) != 13 && key != 27 ) + ungetch( key ); + EditItemMailings( CurrCol ); + _setcursortype( _NOCURSOR ); + if ( BMailings.EscribeReg( (void *)&SMailings, (CurrRow + CurrMailings) ) == ERROR ) + Error(0x04); + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + MuestraMailings( CurrCol, NORMAL ); + CurrCol++; if ( CurrCol > 10 ) CurrCol = 0; + break; + case -1: // Hay una tecla especial en BUFFER + switch( getch() ) + { + // Flecha Izquierda + case 75: + case 15: + CurrCol--; if ( CurrCol < 0 ) CurrCol = 10; + break; + // Flecha Derecha + case 77: + case 9: + CurrCol++; if ( CurrCol > 10 ) CurrCol = 0; + break; + // Flecha Arriba + case 72: + if ( CurrMailings > 0 ) + CurrMailings--; + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + MuestraDatosMailings( ); + break; + // Flecha Abajo + case 80: + if ( ( CurrRow + CurrMailings ) < BMailings.Registros() - 1 ) + CurrMailings ++; + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + MuestraDatosMailings( ); + break; + // Inicio + case 71: + CurrMailings = 0; + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + break; + // Fin + case 79: + CurrMailings = BMailings.Registros()-1; + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + + break; + // AvanceR pido + case 81: + CurrMailings += NLINEAS_REF; + + while ( (CurrMailings + CurrRow) >= BMailings.Registros() ) CurrMailings--; + + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + + break; + // Retroceso R pido + case 73: + CurrMailings -= NLINEAS_REF; + if ( CurrMailings < 0 ) CurrMailings = 0; + + while( ( CurrRow + CurrMailings ) >= BMailings.Registros() && CurrMailings > 0 ) CurrMailings++; + + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + break; + + // Gastos por proveedor + case 82: + BuscaMailings( ATRAS, &CurrRow, &CurrMailings ); + break; + + // Gastos por proveedor + case 83: + BuscaMailings( ADELANTE, &CurrRow, &CurrMailings ); + break; + + } + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + break; + // Imprimir Lista de socios + case 6: + Imprimir(); + DibujaPantallaArticulos(); + if ( BMailings.LeeReg( (void *)&SMailings, CurrRow + CurrMailings ) == ERROR ) + Error(0x03); + MuestraDatosMailings( ); + break; + // Menu Principal + case 1: + ok = 1; + break; + // Eliminar + case 3: + while( kbhit() ) getch(); + if ( Optar( 1, "ATENCION", "Eliminar  un Registro", "confirme eliminacion", NULL ) ) + { + if ( BMailings.DelReg( CurrMailings + CurrRow ) == ERROR ) + Error(0x04); + if ( BMailings.Registros() == 0 ) + { + MailingsNuevoRegistro( &SMailings ); + if ( BMailings.InsReg( (void *)&SMailings, BMailings.Registros(), ARRIBA ) == ERROR ) + Error(0x02); + CurrRow = 0; + } + + CurrMailings--; if ( CurrMailings < 0 ) CurrMailings = 0; + + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + } + break; + // Insertar + case 2: + MailingsNuevoRegistro( &SMailings ); + CurrRow = 0; CurrMailings = BMailings.Registros(); + if ( BMailings.InsReg( (void *)&SMailings, (CurrMailings + CurrRow), ARRIBA ) == ERROR ) + Error(0x02); + + if ( BMailings.LeeReg( (void *)&SMailings, (CurrMailings + CurrRow) ) == ERROR ) + Error(0x03); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + + break; + + // Ordenar + case 4: + OrdenaMailings(); + CurrMailings = 0; CurrRow = 0; + + if ( BMailings.LeeReg( (void *)&SMailings, 0 ) == ERROR ) + Error(0x03); + + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + + CurrCol = 0; + + break; + // Gastos por proveedor + case 5: + BuscaMailings( NUEVA_BUSQUEDA, &CurrRow, &CurrMailings ); + break; + default: + while( kbhit() ) getch(); + break; + } + + } while( !ok ); + + BMailings.CerrarReg(); + +} + + + + /**************************************************************************\ +|* *| +|* MuestraDatosMailings *| +|* *| +|* Descripci¢n: *| +|* Dado un registro, se muestran sucesivamente este y todos *| +|* los que hay por debajo de ‚l, hasta que se agote la base *| +|* o no quepan mas en la pantalla. *| +|* *| +|* Entradas: Registro por el que comenzar *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void MuestraDatosMailings( void ) +{ + int campo; + // Por cada linea hay 12 campos, ehhh!!! + for ( campo=0; campo < 11; campo++ ) + MuestraMailings( campo, NORMAL ); + + gotoxy( 70, 24 ); printf( "%8ld", CurrMailings + CurrRow ); + +} + + /**************************************************************************\ +|* *| +|* MuestraMailings *| +|* *| +|* Descripci¢n: *| +|* Reescribe el campo dado, seg£n la fila, y la intensidad *| +|* *| +|* Entradas: *| +|* columna campo ha mostar *| +|* linea linea en la que nos encontramos *| +|* como intensidad del texto (NORMAL/INTENSO) *| +|* *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void MuestraMailings( char columna, char como ) +{ + char buffer[80]; + char buffer1[80]; + + int X0, Y0, X1, Y1; + + ObtenCoordenadasMailings( columna, &X0, &Y0, &X1, &Y1 ); + + switch( columna ) + { + // Codigo + case 0: + sprintf ( buffer, " %9ld", SMailings.Codigo ); + break; + // NIF + case 1: + sprintf ( buffer, "%-15s", SMailings.NIF ); + break; + // Nombre + case 2: + sprintf ( buffer, "%-45s", SMailings.Nombre ); + break; + // Direccion + case 3: + sprintf ( buffer, "%-33s", SMailings.Direccion ); + break; + // Piso + case 4: + sprintf ( buffer, "%-4s", SMailings.Piso ); + break; + // Localidad + case 5: + sprintf ( buffer, "%-25s", SMailings.Localidad ); + break; + // Provincia + case 6: + sprintf ( buffer, "%-15s", SMailings.Provincia ); + break; + // Cod. Postal + case 7: + formatea_u_long( SMailings.CodPostal, buffer1 ); + sprintf ( buffer, "%6s", buffer1 ); + break; + // Cod 1 + case 8: + sprintf ( buffer, "%25s", Codigo1[ SMailings.Cod1 ] ); + break; + // Cod 2 + case 9: + sprintf ( buffer, "%25s", Codigo2[ SMailings.Cod2 ] ); + break; + // Cod 3 + case 10: + sprintf ( buffer, "%25s", Codigo3[ SMailings.Cod3 ] ); + break; + } + + textbackground( ( como == NORMAL ) ? Config.TxtBgN : Config.TxtBgI ); + strnset( buffer1, 32, X1 ); + + textcolor( ( como == NORMAL ) ? Config.TxtFgN : Config.TxtFgI ); + gotoxy( X0, Y0 ); + cprintf( "%s", buffer ); + +} + + + /**************************************************************************\ +|* *| +|* EditItemMailings *| +|* *| +|* Descripci¢n: *| +|* Se encarga de editar y validar el campo. *| +|* *| +|* Entradas: *| +|* columna campo ha editar *| +|* linea linea en la que nos encontramos *| +|* *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void EditItemMailings( char columna ) +{ + char buffer[80]; + + int X0, Y0, X1, Y1; + + ObtenCoordenadasMailings( columna, &X0, &Y0, &X1, &Y1 ); + + switch( columna ) + { + // Codigo + case 0: + sprintf ( buffer, "%ld", SMailings.Codigo ); + if ( !( InputCadenaG( buffer, 1, 9, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + SMailings.Codigo = atol ( buffer ); + break; + // NIF + case 1: + strcpy ( buffer, SMailings.NIF ); + if ( !( InputCadenaG( buffer, 0, 10, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + strcpy ( SMailings.NIF, buffer ); + break; + // Nombre + case 2: + strcpy ( buffer, SMailings.Nombre ); + if ( !( InputCadenaG( buffer, 0, 37, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + strcpy ( SMailings.Nombre, buffer ); + break; + // Direccion + case 3: + strcpy ( buffer, SMailings.Direccion ); + if ( !( InputCadenaG( buffer, 0, 33, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + strcpy( SMailings.Direccion, buffer ); + break; + // Piso + case 4: + strcpy ( buffer, SMailings.Piso ); + if ( !( InputCadenaG( buffer, 0, 4, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + strcpy ( SMailings.Piso, buffer ); + break; + // Localidad + case 5: + strcpy ( buffer, SMailings.Localidad ); + if ( !( InputCadenaG( buffer, 0, 25, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + strcpy ( SMailings.Localidad, buffer ); + break; + // Provincia + case 6: + strcpy ( buffer, SMailings.Provincia ); + if ( !( InputCadenaG( buffer, 0, 15, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + strcpy ( SMailings.Provincia, buffer ); + break; + // Cod. Postal + case 7: + sprintf ( buffer, "%ld", SMailings.CodPostal ); + if ( !( InputCadenaG( buffer, 1, 5, Config.TxtBgN, Config.TxtFgN, X0, Y0, X1, Y1) >> 8 ) ) + SMailings.CodPostal = atol( buffer ); + break; + // Cod. 1 + case 8: + SMailings.Cod1 = ( (SMailings.Cod1++) % COD1 ); + break; + // Cod. 2 + case 9: + SMailings.Cod2 = ( (SMailings.Cod2++) % COD2 ); + break; + // Cod. 3 + case 10: + SMailings.Cod3 = ( (SMailings.Cod3++) % COD3 ); + break; + } + while( kbhit() ) getch(); +} + + /**************************************************************************\ +|* *| +|* ObtenCoordenadasMailings *| +|* *| +|* Descripci¢n: *| +|* Obtiene las coordenadas de acotacion para el campo pedido *| +|* *| +|* Entradas: *| +|* columna campo del que obtener las coordenadas *| +|* linea linea en la que nos encontramos *| +|* X0 Y0 X1 Y1 Punteros para devolver las coordenadas *| +|* *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void ObtenCoordenadasMailings( char columna, int *X0, int *Y0, int *X1, int *Y1 ) +{ + + // Calculamos la Y0, Y1 para la linea dada ( SOLO columna < 6 ) + + switch( columna ) + { + case 0: + *X0 = 23; *X1 = 10; + *Y0 = *Y1 = 5; + break; + case 1: + *X0 = 59; *X1 = 15; + *Y0 = *Y1 = 5; + break; + case 2: + *X0 = 11; *X1 = 45; + *Y0 = *Y1 = 7; + break; + case 3: + *X0 = 15; *X1 = 33; + *Y0 = *Y1 =10; + break; + case 4: + *X0 = 62; *X1 = 4; + *Y0 = *Y1 =10; + break; + case 5: + *X0 = 15; *X1 = 25; + *Y0 = *Y1 =13; + break; + case 6: + *X0 = 57; *X1 = 15; + *Y0 = *Y1 = 13; + break; + case 7: + *X0 = 17; *X1 = 6; + *Y0 = *Y1 = 16; + break; + case 8: + *X0 = 13; *X1 = 2; + *Y0 = *Y1 = 21; + break; + case 9: + *X0 = 54; *X1 = 2; + *Y0 = *Y1 = 21; + break; + case 10: + *X0 = 50; *X1 = 2; + *Y0 = *Y1 = 23; + break; + } + + +} + + /**************************************************************************\ +|* *| +|* MailingsNuevoRegistro *| +|* *| +|* Descripci¢n: *| +|* Limpia el buffer, para un nuevo registro. *| +|* *| +|* Entradas: (ninguna) *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void MailingsNuevoRegistro( MAILINGS *NSMailings ) +{ + + NSMailings -> Codigo = 0; + NSMailings -> NIF[0] = '\0'; + + NSMailings -> Nombre[0] = '\0'; + + NSMailings -> Direccion[0] = '\0'; + NSMailings -> Piso[0] = '\0'; + + NSMailings -> Localidad[0] = '\0'; + NSMailings -> Provincia[0] = '\0'; + + NSMailings -> CodPostal = 0 ; + + NSMailings -> Cod1 = 0 ; + NSMailings -> Cod2 = 0 ; + NSMailings -> Cod3 = 0 ; + +} + + + + +// ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +// Û Parte secundaria del m¢dulo Û +// Û Û +// Û Secci¢n de Busqueda de refecencias Û +// ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + /**************************************************************************\ +|* *| +|* MuestraImpresionesRed *| +|* *| +|* Descripci¢n: *| +|* Muestra un cuadro con las distintas opciones de impresi¢n *| +|* *| +|* Entradas:(ninguna) *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ + + + /**************************************************************************\ +|* *| +|* ImprimeMailingserencias *| +|* *| +|* Descripci¢n: *| +|* Imprime todas las referencias seg£n se le indique *| +|* *| +|* Entradas: *| +|* Como imprimir las referencias *| +|* *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void Imprimir( void ) +{ + long i, old_reg; + FILE *file_out; + char buffer[80], dev; + static MAILINGS MMailings; + + + old_reg = BMailings.RegActual(); + + MailingsNuevoRegistro( &SMailings ); + if ( ObtenMatchMailings( /*&MMailings*/ ) != OK ) + return; + MMailings = SMailings; + + if ( !Config.Printer ) + { + if ( ( file_out = fopen( Config.PrintTo, "w" ) ) == NULL ) + return; + } else + + file_out = stdprn; + + for ( i=0; i Direccion ), ( ((MAILINGS *)B) -> Direccion ) ); + break; + // Por Precio + case 2: + dev = strcmpi( ( ((MAILINGS *)A) -> Nombre ), ( ((MAILINGS *)B) -> Nombre ) ); + return dev; + case 1: + if ( ( ((MAILINGS *)A) -> Codigo ) < ( ((MAILINGS *)B) -> Codigo ) ) return -1; + if ( ( ((MAILINGS *)A) -> Codigo ) > ( ((MAILINGS *)B) -> Codigo ) ) return 1; + +/* + if ( ( ((MAILINGS *)A) -> Cod1 ) < ( ((MAILINGS *)B) -> Cod1 ) ) return -1; + if ( ( ((MAILINGS *)A) -> Cod1 ) > ( ((MAILINGS *)B) -> Cod1 ) ) return 1; + + if ( ( ((MAILINGS *)A) -> Cod2 ) < ( ((MAILINGS *)B) -> Cod3 ) ) return -1; + if ( ( ((MAILINGS *)A) -> Cod2 ) > ( ((MAILINGS *)B) -> Cod3 ) ) return 1; + + if ( ( ((MAILINGS *)A) -> Cod3 ) < ( ((MAILINGS *)B) -> Cod3 ) ) return -1; + if ( ( ((MAILINGS *)A) -> Cod3 ) > ( ((MAILINGS *)B) -> Cod3 ) ) return 1; +*/ + return 0; + } + return 0; +} + + +void OrdenaMailings(void) +{ +/* +BDatos BMailings; // Base de datos de Mailingserencias +MAILINGS SMailings; // Estructura de referencias + +int OrdenMailings; +*/ +struct Boton_Texto BT[4]; +int devolver; + +BT[0].x = 32; BT[0].y = 9; strcpy( BT[0].Texto, " C&¢digo "); BT[0].ID_T1 = 0; BT[0].ID_T2 = 24; +BT[1].x = 32; BT[1].y = 11; strcpy( BT[1].Texto, " &Nombre "); BT[1].ID_T1 = 0; BT[1].ID_T2 = 49; +BT[2].x = 32; BT[2].y = 13; strcpy( BT[2].Texto, " &Direccion "); BT[2].ID_T1 = 0; BT[2].ID_T2 = 32; +BT[3].x = 32; BT[3].y = 15; strcpy( BT[3].Texto, " &Cancelar operacion"); BT[3].ID_T1 = 0; BT[3].ID_T2 = 46; + + Optar( ENCUADRE, "Elija orden a seguir", NULL ); + + while( ( devolver = Funcion_Botones(STD_BY, 4, BT) ) < 1 || devolver > 4 ) while ( kbhit() ) getch(); + + if ( devolver != 4 ) + { + OrdenMailings = devolver; + BMailings.SortReg( ComparaRegistrosPrecio ); + } + + Optar( ENCUADRE, NULL ); + +} + + + + /**************************************************************************\ +|* *| +|* BuscaMailings *| +|* *| +|* Descripci¢n: *| +|* Busca una referencia por su n§ o descripcion *| +|* *| +|* Entradas: *| +|* ATRAS Busca otra coincidencia hacia atras *| +|* NUEVA_BUSQUEDA Inicia una nueva busqueda *| +|* ADELANTE Busca otra coincidencia hacia delante *| +|* *| +|* Salidas: (ninguna) *| +|* *| + \**************************************************************************/ +void BuscaMailings( char TipoBusqueda, char *CurrRow, long *CurrMailings ) +{ + static MAILINGS MMailings; + char enc; long i; + + + switch ( TipoBusqueda ) + { + case NUEVA_BUSQUEDA: + MailingsNuevoRegistro( &SMailings ); + if ( ObtenMatchMailings( /*&MMailings*/ ) != OK ) + return; + MMailings = SMailings; + i = 0; + break; + case ATRAS: + case ADELANTE: + i = ( *CurrRow + *CurrMailings )+TipoBusqueda; + if ( i < 0 || i >= BMailings.Registros() ) return; + break; + } + + Optar( ENCUADRE, "Comando: Buscar", "Ahora se inica", "la busqueda elegida", NULL ); + enc = 0; + while ( i < BMailings.Registros() && !enc ) + { + if ( BMailings.LeeReg( (void *)&SMailings, i ) == ERROR ) + Error( 0x03 ); + if ( Match_Mailings( SMailings, MMailings ) ) + enc = 1; + else + i++; + } + + Optar( ENCUADRE, NULL ); + + if ( enc ) + { + *CurrRow = 0; *CurrMailings = i; + if ( BMailings.LeeReg( (void *)&SMailings, i ) == ERROR ) + Error( 0x03 ); + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + } else + switch( TipoBusqueda ) + { + case NUEVA_BUSQUEDA: + Optar( 0, "Comando: Buscar", "No se encontr¢", "ninguna coincidencia", NULL ); + break; + case ATRAS: + case ADELANTE: + Optar( 0, "Comando: Buscar", "No se encontr¢", "ninguna coincidencia", NULL ); + break; + } + + DibujaPantallaArticulos(); + + if ( BMailings.LeeReg( (void *)&SMailings, (*CurrRow + *CurrMailings) ) == ERROR ) + Error( 0x03 ); + + // Mostramos datos hasta que se nos acabe la pantalla + MuestraDatosMailings( ); + +} + + /**************************************************************************\ +|* *| +|* Match_Mailings *| +|* *| +|* Descripci¢n: *| +|* Compara dos registros y devuelve la posible coincidencia *| +|* *| +|* Entradas: *| +|* Registros a comparar *| +|* *| +|* Salidas: *| +|* Resultado de la comparaci¢n *| +|* *| + \**************************************************************************/ +int Match_Mailings( MAILINGS A, MAILINGS B ) +{ + int enc = 1; + + if ( B.NIF != '\0' ) + enc = ( strncmpi( A.NIF, B.NIF, strlen( B.NIF ) ) == 0 ); + + if ( B.Codigo != 0 ) + enc = B.Codigo == A.Codigo; + if ( B.Nombre[0] != '\0' ) + enc = ( strncmpi( A.Nombre, B.Nombre, strlen( B.Nombre ) ) == 0 ); + if ( B.Localidad[0] != '\0' ) + enc = ( strncmpi( A.Localidad, B.Localidad, strlen( B.Localidad ) ) == 0 ); + if ( B.Provincia[0] != '\0' ) + enc = ( strncmpi( A.Provincia, B.Provincia, strlen( B.Provincia ) ) == 0 ); + if ( B.CodPostal != 0 ) + enc = A.CodPostal == B.CodPostal; + if ( B.Cod1 != 0 ) + enc = A.Cod1 == B.Cod1; + if ( B.Cod2 != 0 ) + enc = A.Cod2 == B.Cod2; + if ( B.Cod3 != 0 ) + enc = A.Cod3 == B.Cod3; + + return enc; +} + + /**************************************************************************\ +|* *| +|* ObtenMatchMailings *| +|* *| +|* Descripci¢n: *| +|* Obtine los patrones de busqueda necesarios *| +|* *| +|* Entradas: *| +|* Estructura donde guardar el patron de busqueda *| +|* *| +|* Salidas: *| +|* OK La entrada es correcta *| +|* ERROR El usuario interrumpio la busqueda *| +|* *| + \**************************************************************************/ +int ObtenMatchMailings( /*MAILINGS *MMailings*/void ) +{ +struct Boton_Texto BT[6]; + +BT[0].x = 65; BT[0].y = 20; strcpy( BT[0].Texto, " acep&Tar "); BT[0].ID_T1 = 00; BT[0].ID_T2 = 20; +BT[1].x = 65; BT[1].y = 22; strcpy( BT[1].Texto, " &Cancelar"); BT[1].ID_T1 = 00; BT[1].ID_T2 = 46; + + char Row, ok; + int BPush, key, DEV; + + DibujaPantallaArticulos(); + + ok = 0; Row = 0; + + do + { + MuestraMailings( Row, INTENSO ); + BPush = Funcion_Botones(STD_BY, 2, BT); + MuestraMailings( Row, NORMAL ); + + switch ( BPush ) + { + case 0: // No se pulso ningun BOTON + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + case -2: + if ( ( key = getch() ) != 13 && key != 27 ) + ungetch( key ); + EditItemMailings( Row ); + break; + case -1: + switch ( getch() ) + { + // Flecha Izquierda + case 75: + case 15: + // Flecha Arriba + case 72: + Row--; if ( Row < 0 ) Row = 11; + break; + // Flecha Derecha + case 77: + case 9: + // Flecha Abajo + case 80: + Row++; if ( Row > 11 ) Row = 0; + break; + } + break; + case 1: + DEV = OK; ok = 1; + break; + case 2: + DEV = ERROR; ok = 1; + break; + } + + } while ( !ok ); + + return DEV; + +} + + + +void Error( int code ) +{ + + printf( "\nSe produjo un codigo de error %d, subcodigo no disponible \n\r", code ); + switch( code ) + { + case 0: + printf( "\n Error incocumentado " ); + break; + case 1: + printf( "\n Error abriendo " ); + break; + case 2: + printf( "\n Error insertando " ); + break; + case 3: + printf( "\n Error leyendo " ); + break; + case 4: + printf( "\n Error escribiendo " ); + break; + case 5: + printf( "\n Error borrando " ); + break; + }; + + exit(code); +} + + diff --git a/MAIL_TL.CPP b/MAIL_TL.CPP new file mode 100644 index 0000000..26c0d80 --- /dev/null +++ b/MAIL_TL.CPP @@ -0,0 +1,277 @@ +#include +#include +#include +#include +#include +#include +#include + +#define BLANCO EGA_WHITE +#define ENCUADRE 3 +#define SEC_OPTAR 5 + +#include "mail_.h" + +void BEEP(void); + + /**************************************************************************\ +|* *| +|* InputCadenaG *| +|* *| +|* Descripci¢n: *| +|* Edita una cadena en formato gr fico *| +|* *| +|* Entradas: *| +|* Puntero a los datos editados *| +|* 0 alfanumerico 1 numerico *| +|* longitud de la cadena (TEXTO/NUMERO) *| +|* color del texto *| +|* color de fondo *| +|* Limites de acotacion *| +|* *| +|* Salidas: (ninguna) *| +|* *| +|* *| + \**************************************************************************/ +int InputCadenaG(char *s, int numalp, int lmax, int cc, int cf, int X0, int Y0, int X1, int Y1) +{ + // A todas las y les sumaba antes +RoW*12 parametro que indica la linea + + int ls; // longitud cadena + char Status = 0; + char *s1; // puntero a cadena inicial + int c, ok, i; + + s1 = s; // inicio cadena + + textbackground( cf ); + + gotoxy( X0, Y0 ); + for ( i = 0; i < X1; i++ ) + putch( 32 ); + textcolor( cc ); + gotoxy( X0, Y0 ); + cprintf( "%s", s1 ); + + _setcursortype( _SOLIDCURSOR ); + + ls = strlen ( s ); // Longitud de actual + + s += ls; // se coloca en el final + + do{ + c = getch(); // obtiene tecla + + if ( c == 27 ) Status = 1; + + ok = ( c == 27 || c == 13 || c == 0); // 13 = INTRO || Especiales + + if ( c == 8 && ls > 0 && !ok ) { // 8 = Back Space + ls--; + s--; + + *s = '\0'; + + gotoxy( X0, Y0 ); + for ( i = 0; i < X1; i++ ) + putch( 32 ); + textcolor( cc ); + gotoxy( X0, Y0 ); + cprintf( "%s", s1 ); + + + } else { + if ( !numalp && c >= 32 && c <= 254 && ls < lmax) { + + *s++ = c; + ls++; + + *s = '\0'; + + gotoxy( X0, Y0 ); + for ( i = 0; i < X1; i++ ) + putch( 32 ); + textcolor( cc ); + gotoxy( X0, Y0 ); + cprintf( "%s", s1 ); + + } else { + if ( numalp && isdigit(c) && ls < lmax) { + *s++ = c; + ls++; + + *s = '\0'; // Cero final + + gotoxy( X0, Y0 ); + for ( i = 0; i < X1; i++ ) + putch( 32 ); + textcolor( cc ); + gotoxy( X0, Y0 ); + cprintf( "%s", s1 ); + + } + /*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ*/ + else if( c == 27 ) {*s='\0'; ok = 1; } + /*ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ*/ + else BEEP(); + } + } + + }while(!ok); + + _setcursortype( _NOCURSOR ); + + ok = 1; + *s = ' '; + while( ok && ls >= 0 ) { + if(*s==' ') { *s = '\0'; s--; ls--; + } else { s++; ok = 0; } + } + + *s = '\0'; + + while(kbhit()) getch(); // Vacia Buffer impidiendo falsas + // pulsaciones... + + return ( (Status<<8) + (ls&0x00FF) ); +} + +void BEEP(void) +{ + + sound(440); + delay(50); + nosound(); + +} + + +void formatea_u_long( unsigned long Numero, char *Inter_Chg) +{ + char Buffer1[80]; + + int c; + + sprintf(Buffer1, "%lu", Numero); + + Inter_Chg[0]='\0'; + + strrev(Buffer1); + + c = strlen( Buffer1 ); + + while( c >= 3 ) + { + + c -= 3; + strncat( Inter_Chg, Buffer1, 3); + + strrev(Buffer1); + + Buffer1[c] = '\0'; + + strrev(Buffer1); + + if(strlen(Buffer1)!=0) + strcat( Inter_Chg, "." ); + } + + strcat( Inter_Chg, Buffer1); + strrev(Inter_Chg); + + +/*// return Buffer2;*/ +} + + +int Optar( int optar, ... ) +{ +struct Boton_Texto BT[6]; +int devolver = 0; + +BT[0].x = 22; BT[0].y = 15; strcpy( BT[0].Texto, " acep&Tar "); BT[0].ID_T1 = 00; BT[0].ID_T2 = 20; +BT[1].x = 51; BT[1].y = 15; strcpy( BT[1].Texto, " &Cancelar"); BT[1].ID_T1 = 00; BT[1].ID_T2 = 46; + + static char fondo[4096]; + static char Memoria = 0; + + int DEV = 0, ok = 0, linea = 0; + int Center; char *buff; + + va_list ap; + va_start( ap, &optar ); + + if ( Memoria == 1 ) + { + puttext( 21, 5, 63, 17, (void *)fondo ); Memoria = 0; + if ( optar == ENCUADRE ) return DEV; + } + + Memoria = 1; + + gettext( 21, 5, 63, 17, (void *)fondo ); + +textbackground( BLACK ); +textcolor( CYAN ); +gotoxy( 21, 5 ); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"); +gotoxy( 21, 6 ); cprintf("³ ³"); +gotoxy( 21, 7 ); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"); +gotoxy( 21, 8 ); cprintf("³ ³"); +gotoxy( 21, 9 ); cprintf("³ ³"); +gotoxy( 21, 10 ); cprintf("³ ³"); +gotoxy( 21, 11 ); cprintf("³ ³"); +gotoxy( 21, 12 ); cprintf("³ ³"); +gotoxy( 21, 13 ); cprintf("³ ³"); +gotoxy( 21, 14 ); cprintf("³ ³"); +gotoxy( 21, 15 ); cprintf("³ ³"); +gotoxy( 21, 16 ); cprintf("³ ³"); +gotoxy( 21, 17 ); cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"); + + + + textcolor( RED ); + linea = 0; + while ( (buff = va_arg(ap, char *)) != NULL ) + { + Center = (42 - strlen( buff ) ) / 2; + gotoxy( 21+Center+1, ( (linea == 0 ) ? 6 : 8 + linea ) ); + cprintf( "%s", buff ); + linea++; + } + + va_end(ap); + + if ( optar != ENCUADRE ) + { + ok = 0; while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + if ( optar == 1 ) + do { + switch( Funcion_Botones(STD_BY, 2, BT) ) + { + case 0: // No se pulso ningun BOTON + case -2: + case -1: + while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER + if ( optar == 0 ) ok = 1; + break; + case 1: + DEV = 1; ok = 1; + break; + case 2: + DEV = 0; ok = 1; + break; + } + }while( !ok ); + else { espera_pulsar(); espera_soltar(); } + + puttext( 21, 5, 63, 17, (void *)fondo ); + + Memoria = 0; + + } + + return DEV; +} + + + diff --git a/PRNFILE.OUT b/PRNFILE.OUT new file mode 100644 index 0000000..54a81dc --- /dev/null +++ b/PRNFILE.OUT @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..257ec8c --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +#MAILINGS + + +*07/10/1996* + +ToDo: wwtcf? + + +![screenshot](/MAILINGS.png "Screenshot")