This is a multi-part message in MIME format.
------=_NextPart_000_0056_01C4C57C.CE9081D0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0057_01C4C57C.CE9081D0"
------=_NextPart_001_0057_01C4C57C.CE9081D0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
R=E1ul,=20
En un futuro pr=F3ximo esperamos poder crear incluso formularios creados =
a partir de otros formularios, es decir, que cuando se vaya a crear un =
nuevo formulario el IDE permita no ya s=F3lo crear un formulario en =
blanco, sino un formulario basado en otro ya existente. Para ello el IDE =
incorporar=E1 un sistema de publicaci=F3n de formularios propios.=20
Puede conseguir una funcionalidad parecida creando un formulario =
incluyendole absolutamente todos los componententes y controles que =
pueda necesitar en cualquiera de los procesos. Posteriormente en cada =
proceso podr=E1 ocultar aquellos controles que no requiera o cambiar el =
comportamiento de cualquiera de ellos, por ejemplo:
FUNCTION SelArticulo( oForm, oDbf )
local oSelFrm
WITH OBJECT oSelFrm :=3D TSelFromTable():New( oForm )
:aFields :=3D { {"Codigo", "C=F3digo"}, "Nombre", "PVP" }
:oDbf :=3D oDbf
:cText :=3D "Seleccione el art=EDculo ..."
:oDbBrowse:aCols[ 2 ]:nWidth :=3D 200
:ShowModal()
END WITH
RETURN ( oSelFrm:nModalResult =3D=3D mrOK )
Este ejemplo, le muestra como usar un formulario de nombre TSelFromTable =
para mostrar registros de una tabla de art=EDculos. Este ser=EDa el =
formulario:
Un saludo=20
--=20
Ignacio Ortiz
www.xailer.com
"Ra=FAl Eduardo C=E1rdenas" <
rcardenas@fgs2002.com> escribi=F3 en el =
mensaje news:[email=
418ed80b@ozsrv2.ozlan.local...]
418ed80b@ozsrv2.ozlan.local...[/email]
Hola=20
En la Aplicaci=F3n que estoy desarrollando tengo una gran numero de =
Forms con identicos Metodos, como son:
METHOD FormInitialize( oSender ) CLASS TFormxxxx
// Define el Men=FA de Ordenaci=F3n del Browse
// Definir la Barra de Herramientas - Superior
// Define Barra de Herramientas - Rebar
// Define Barra de Estado - Status Bar Inferior
RETURN Nil
=
//---------------------------------------------------------- -------------=
-------
METHOD SetTag( nTag ) CLASS TFormxxxx
// Rutina para manejar los diferentes Indices de Ordenaci=F3n
RETURN nil=20
=
//---------------------------------------------------------- -------------=
-------
METHOD AddNew() CLASS TFormxxxx
Etc..
La mayoria fueron tomados del Ejemplo DbfData2, pero son tan repetidos =
que me gustaria crear Modulo o una Librer=EDa para no tenerlos en cada =
Form. Hay alg=FAn ejemplo o gu=EDa para crear dicho modulo o Libreria.
Mil Gracias
--=20
Saludos
=20
Ra=FAl Eduardo C=E1rdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email:
rcardenas@fgs2002.com
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com).
Version: 6.0.788 / Virus Database: 533 - Release Date: 11/01/2004
------=_NextPart_001_0057_01C4C57C.CE9081D0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2523" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3D"Courier New" size=3D2>R=E1ul, </FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>En un futuro pr=F3ximo =
esperamos poder crear=20
incluso formularios creados a partir de otros formularios, es decir, que =
cuando=20
se vaya a crear un nuevo formulario el IDE permita no ya s=F3lo crear un =
formulario en blanco, sino un formulario basado en otro ya existente. =
Para ello=20
el IDE incorporar=E1 un sistema de publicaci=F3n de formularios propios. =
</FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>Puede conseguirÂuna =
funcionalidad=20
parecida creando un formulario incluyendole absolutamente todos los=20
componententes y controles que pueda necesitar en cualquiera de los =
procesos.=20
Posteriormente en cada proceso podr=E1 ocultar aquellos controles que no =
requiera=20
o cambiar el comportamiento de cualquiera de ellos, por =
ejemplo:</FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>FUNCTION SelArticulo( oForm, =
oDbf=20
)</FONT></DIV>
<DIV>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>ÂÂ local =
oSelFrm</FONT></DIV>
<DIV>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>ÂÂ WITH OBJECT =
oSelFrm :=3D=20
TSelFromTable():New( oForm )<BR>ÂÂÂÂÂ :aFields =
:=3D {=20
{"Codigo", "C=F3digo"}, "Nombre", "PVP" =
}<BR>ÂÂÂÂÂ=20
:oDbfÂÂÂ :=3D oDbf<BR>ÂÂÂÂÂ=20
:cTextÂÂ :=3D "Seleccione el art=EDculo=20
...."<BR>ÂÂÂÂÂ :oDbBrowse:aCols[ 2 ]:nWidth :=3D =
200<BR>ÂÂÂÂÂ :ShowModal()<BR>ÂÂ END=20
WITH</FONT></DIV>
<DIV>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>RETURN ( oSelFrm:nModalResult =
=3D=3D mrOK=20
)<BR></FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2>Este ejemplo, le muestra como =
usar un=20
formulario de nombre TSelFromTable para mostrar registros de una tabla =
de=20
art=EDculos. Este ser=EDa el formulario:</FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2><IMG alt=3D"" hspace=3D0=20
src=3D"cid:005101c4c574$6cc9a8d0$
0c00000a@ozlan.local" align=3Dbaseline=20
border=3D0></DIV></FONT>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>Un saludoÂ</FONT></DIV>
<DIV><BR>-- <BR>Ignacio Ortiz<BR><A=20
href=3D"http://www.xailer.com">www.xailer.com</A></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Ra=FAl Eduardo C=E1rdenas" <<A=20
href=3D"mailto:
rcardenas@fgs2002.com">
rcardenas@fgs2002.com</A>> =
escribi=F3 en=20
el mensaje <A=20
=
href=3D"news:
418ed80b@ozsrv2.ozlan.local">news:
418ed80b@ozsrv2.ozlan.loca=
l</A>...</DIV>
<DIV><FONT face=3DArial>Hola </FONT></DIV>
<DIV><FONT face=3DArial></FONT>Â</DIV>
<DIV><FONT face=3DArial>En la Aplicaci=F3n que estoy desarrollando =
tengo una gran=20
numero de Forms con identicos Metodos, como son:</FONT></DIV>
<DIV><FONT face=3DArial></FONT>Â</DIV>
<DIV><FONT face=3DArial>METHOD FormInitialize( oSender ) CLASS=20
TFormxxxx</FONT></DIV>
<DIV><FONT face=3DArial>ÂÂÂ //Â Define el Men=FA =
de Ordenaci=F3n=20
del Browse</FONT></DIV>
<DIV><FONT face=3DArial>ÂÂÂ //Â Definir la Barra =
de=20
Herramientas - Superior</FONT></DIV>
<DIV><FONT face=3DArial>ÂÂÂ //Â Define Barra de =
Herramientas=20
- Rebar</FONT></DIV>
<DIV><FONT face=3DArial>ÂÂÂ //Â Define Barra de =
Estado -=20
Status Bar Inferior<BR>RETURN Nil</FONT></DIV>
<DIV><FONT=20
=
face=3DArial> //---------------------------------------------------------- =
--------------------<BR>METHOD=20
SetTag( nTag ) CLASS TFormxxxx</DIV>
<DIV>ÂÂÂ //Â Rutina para manejar los diferentes =
Indices de=20
Ordenaci=F3n</DIV>
<DIV>RETURN nil=20
<DIV><FONT=20
=
face=3DArial> //---------------------------------------------------------- =
--------------------<BR>METHOD=20
AddNew() CLASS TFormxxxx</FONT></DIV>
<DIV>Etc..</DIV>
<DIV>Â</DIV>
<DIV>La mayoria fueron tomados del Ejemplo DbfData2, pero son tan =
repetidos=20
que me gustaria crear Modulo o una Librer=EDa para no tenerlos en cada =
Form. Hay alg=FAn ejemplo o gu=EDa para crear dicho modulo o =
Libreria.</DIV>
<DIV>Â</DIV>
<DIV>Mil Gracias</FONT></DIV></DIV>
<DIV><BR><FONT face=3DArial>-- <BR>Saludos<BR>Â<BR>Ra=FAl Eduardo =
C=E1rdenas=20
S.<BR>Law & Accounting System's, Inc.<BR>Gerente =
General<BR>Celular:Â=20
(507) 672-8838<BR>Email:ÂÂÂ </FONT><A=20
href=3D"mailto:
rcardenas@fgs2002.com"><FONT=20
face=3DArial>
rcardenas@fgs2002.com</FONT></A></DIV>
<DIV><FONT face=3DArial></FONT>Â</DIV>
<DIV><FONT face=3DArial></FONT>Â</DIV>
<DIV>Â</DIV>
<DIV><FONT face=3DArial><BR>---<BR>Outgoing mail is certified Virus=20
Free.<BR>Checked by AVG anti-virus system (<A=20
=
href=3D"http://www.grisoft.com">http://www.grisoft.com</A>).<BR>Version: =
6.0.788=20
/ Virus Database: 533 - Release Date:=20
11/01/2004</FONT></DIV></BLOCKQUOTE></BODY></HTML>
------=_NextPart_001_0057_01C4C57C.CE9081D0--
------=_NextPart_000_0056_01C4C57C.CE9081D0
Content-Type: image/jpeg;
name="Image1.jpg"
Content-Transfer-Encoding: base64
Content-ID: <005101c4c574$6cc9a8d0$
0c00000a@ozlan.local>
/9j/4AAQSkZJRgABAQABLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQE BQoHBwYIDAoMDAsK
CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkF BQkUDQsNFBQUFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/ wAARCACmAMgDASIA
AhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAUGBAcIAwIB/8QAUhAAAAQD AwYHCQwIBQUBAAAA
AQIDEQAEBQYSIQcTIjFBYQgUI0JRYpIJFjJTVHSRoeEVJjM0Q0VSZJPB0fAl KGNxlLPS0yQnOGZz
RHKBsbSE/8QAHAEBAAEFAQEAAAAAAAAAAAAAAAUBAwQGBwII/8QAPxEAAQID AgUUAQMEAwAAAAAA
AQACAwQRBSESEzFR0QYUFRY0NUFSU1RhcXJzkaGisbLSgSIykjNCQ4Ji8PH/ 2gAMAwEAAhEDEQA/
ANHr5SK1axedtTX59Sdn5m9NTMwsUVBK4uOtxAoOwBqAGAIlbLzlet3OmlaJ mVjkSVXUUmDJSyKS
SYCKih1FRKQhCgAuYwgG+ICxxEO9wZYRFM0yiQgqkOAHIVwMN1wEAEWDEQH/ ANvacmKktk7r6E2n
WqlTpZJNUgKSUqhOnunAQzIoqnTTUSEBuiU5sS631R9mvbMwcZDgwwGtb+mo qCQBS5t9OClK3XVr
d89RBKOitdEeS5zv1DJQVIym6tL61pffkUPU65WKTUZqSXWljryypkVDSx0l 07xRYbqhBMUwOGso
iA9Me9fnbRWXqy9MqZCS06iBBUSZM928UDlxK4eCYB17Y3XNZerOS9jK9R6F ZslDCoLT92SBE6kq
unMEKQpliEnEkynTABEoGSmAILXBKzjmJcIuh0+nWiLI0pcs9PrCsU00gZRK bAZFKXzMyRKdRKKR
TkOYonKtgoIgmQ2uK2RtIX6xN34JNW0z0FCbv1ddxUhrGziaa5F58AK9Vcgv u6si5477Kn4wn2Zf
wjMUq1bTpCNTMeXCUWXPLE0khUE5CkMbk/DAGULpCDC7ALgLblHLNRhtBKTp KjaiVkyUs8lL09AE
sxQFRlSogvTgz4AJ7wCL3UR0hG8JhvR52fy1yFNphJGeqVpqhMEnKqujX1jJ mn5UJqWQSTXSdcWX
A6ShhAFAYFMFL2IZD52epVkpwVpU9NR+2l1BffWv6Q4XqwyVkSRhRxfdwdF+ Wv4oMl9CtJd9lT8Y
T7Mv4Q77Kl4wn2Zfwjfs1wiJNU+ZTCtBT1lpsagQ6iYGqpD0tCTIpMlBS6dU 6qJljgImAomAQMYw
PEDldyv03KBY2m2fplPCQlkBlVBl1klBJJijL5oSyxzTahClOIiYwEl0XYom viF6PUGdnYkWGx8m
Wh1KmuTruGb2yE0VIkpIsY5zZgEgG6mWnBl4f/Ki9awk520VQo9RqkuQh5Gn ikEyqyYZsVBEpMBx
FxAdQCzYxHja2ph8oT7Mv4R0JZvL9Z2g0uz8qtK1mflZItLKpQFSpe5aB5UD ApMI8s4qKmHOC6RR
vjicQYQ1vlYtpKZULWU2dVOsEjJyycoaaUQULOrkA5jmMoK03NGOYL4lKJlh wKUNEAAA9yk1Oxpl
0GNKlrKmjugAdF5JzXZq0JXmPLSUOAIsOMC6gqOkk9PAPznpUKhd91T8aT7M v4Q77qn40n2Zfwic
QpNjhm089MV0srx5YT3EZcVAk2DMsAqNnhG9eB7gYMYYrwUkogDqlAeh4nYb RFyNp1ghRbwyHlIP
Uar177qn40n2Zfwh33VPxpPsy/hHl7kk8cX0w9ySeOL6Yv4joCs4yGvXvuqf jSfZl/CA2uqbfCk+
zL+EeXuSTxxfTAaSVvhS+mGI6AmMhr7776l40nYL+EO++peNJ2C/hHl7kl8a X0w9yS+NL6YrrcKu
MhL1776l40nYL+ETNlaxM1ipHTnJgU5dNMVDZohAMOIFAAEQFsTdGyIH3JL4 0vpiWs/J8VUmxTMC
ip0QKRMmJjDnCCIAG0WAR/8AEWI0AiGcFXoLoLojQVNVCsycmIgB5ww/96X9 uNkZJcnUvlEpRlTz
M8eorTZ0ZaVSmJaXIBCS6axhMooS67KD9HwekY1vaWlSKyBRpkpWVFXG8E1K XQbddeL1k1q3uTQU
EDys7NkE80SYTkJcV1UBUkkEiiYgasQNrZ7hg2DGszhia2w4LiDfl6Mn/aiq 2WDBlcdgvYCFPW3y
SGsYWnlmkp1H3QmiSSK5KvITRSKHFgExESCLA7sIldhABDXE0OQSmrWa91Ul 69Ugl1CS02aSWlwE
qpsAHNZkxilMOACL4iziMUmZMlIL08krIVksuNWkpyam6hThlkkEkTHvCJrw hqOI4t4O1425YHLE
GT0KlU6RSp2o1uZmDElpvMqKSfFBPfcAJ4ZjYBiLAG+OP6uLWtizJeXMlGcM InCcxpzXXHCI6q35
bl07UVZFk2jHmNdQGktDcFr3AA1N99W8HDQ0zHItD5bqZVODudKuWdqNTpNp KRPSwGBabRWuComo
qBTZpMrCGbADEERe8ICHSjG4Uk5S61ZquLU2Rn6TJzc/LTacrVBHO38zMZ26 JsTkKc4BeHFjFfEY
RMakhMW5YkKbtZuMiYTxV7RXBDjTKBd+Ff1RS8lZVqRJazQGswWGjTdUsBPC 6+vSV0pwSsmNi6/k
EsdP1SylBqNQWBTOzM5IIqqqCEymULxjGccGDENQs2LH2zK5G8nZuL+8izAv mvmyXF/i3XHp369r
8pr/AIKFbNROC/YuYImEyrpIJpGmBTLfUnU0yiYQMIgUDKAI6Gp8MdK71LLr R6BRZmcm6XPnWps4
pKzoS0wKqZAQWl01TkETAdQABRExQAjmvs2JxDkNvTs2215xrYrgBFf/AHHj HpWVIwIJlIRLB+1v
AMwWTKZGsnY8X95FmBfNfNkuL/FuuPTv17X5RKZGsnY8X95FmBfNfNkuL/Fu uPTv17X5T7DLpZOX
RBRaUrsqCagJCSYQUA5TETRUWcgnvCCJDJGOLCAgJ7t9jwoeWyz1QWqYKydS k0JFIsymqdXOZ1Li
pZkgiBTiIGMmioIALgxBAwlMpdGB19O8q7+R0rO1vA4g8AviUyNZOx4v7yLM C+a+bJcX+Ldcenfr
2vyiUyNZOx4v7yLMC+a+bJcX+Ldcenfr2vykjS8rFn6lWZOlS0nVRqCyy8sV EyhdFeXAplkzGzrC
JSkIImcSmvCxjCJwi1KiCE/miqGApFCEADKiIs8uGLqOOvaG3UL6bX84P8zv 5HSmt4PEHgFRJTI1
k7Hi/vIswL5r5slxf4t1x6d+va/KJTI1k7Hi/vIswL5r5slxf4t1x6d+va/K bxoNlqbM0OnKqpKn
UUlkzGMMwo4iJQER8KM/vQpXk6n8Qp/VGWY84DTHu8TpVkQoJFcWPAaFz/KZ GsnZuL+8izAvmvmy
XF/i3XHp369r8olMjWTs3F/eRZgXzXzZLi/xbrj07/C2vynQHehSvJ1P4hT+ qHehSvJ1P4hT+qGu
Jzl3eJ0quKhcmPAaFz/KZGsnZuL+8izAvmvmyXF/i3XHp3+FtflEpkaydm4v 7yLMC+a+bJcX+Ldc
enf4W1+U6A70KV5Op/EKf1Q70KV5Op/EKf1Q1xOcu7xOlMVC5MeA0LnCaya5 LqONMCcsbZhPjaqa
KQ+5KBgEwJoqC4gYWACEOYTDgzuIvymfKZGsnZuL+8izAvmvmyXF/i3XHp3+ FtflNrW5skrLTdmZ
2hUX3Vm5WoqGNLrzRiI3TyU0kAqGNeup3lCXhApjMIsUwsUYjIxIS1o6LWF5 oeTRqi6KFNZVNWmp
gxiS6ps8cDnAhiCIA1wTCmzkYGuJvl3eJ0pioPJjwGhUCUyNZOzcX95FmBfN fNkuL/FuuPTv8La/
Kfkrkaydm4v7yLMC+a+bJcX+Ldcenf4W1+U6B70KV5Op/EKf1R4zllaWhJrq lQUvETMYP8QpsD/u
gI84TTHu8TpTFQeTHgNC0JKZGcnQ8X949lxfNfNkuL/FuuPTv17X5RKZGcnQ 8X949lxfNfNkuL/F
uuPTv17X5TLm7cEG0ylERlqkSZTc5lDENmQSugJVL7sICLlAPCcpsGARi1Sq whxcBVMI8kGkqIiP
xbW6m/o26hfTvzZn5NrXPjuNf+R0q3CECMSBDF3QFSpTIzk6Hi/vHsuL5r5s lxf4t1x6d+va/KYS
uTPJTS+LcesvY2TvAmIcYkpQl4GlxHwj44Xh27db8psKUXfi/Ku+a+Vd/i37 Uenfr2vp+2Tmbzds
LQmA94w06mhevXh1LjrvG6X17Xxe8OFCnZt5NYzv5HSrz4MJtKMHgFq6XsRk cLmb1DsKDZu86Els
zD/KD9E/TqHW43/yXsRkcJmb1DsKDZu86ElszD/KD9E/TqHW4392ZSbd1SyN n05mkU1asVJWYKmj
KpJHPfYDKHAbgCJbxEzFKZhADmII6LxR7R8JZehSy00jZmZn5JIs+qaZLNFS KmnLFcBUA5QEDHDl
LhQMJUuUF/Bi/rqY5Z/8ireJh8RvgqXL2KyNlzN6iWFBs3edCS2Zh/lB+ifp 1Drcb/5L2IyNBmb1
DsJhm3eXktmYf5Qfon6dQ63G/c0eEZVfd2QpyllF1AqFVCnS0wiuIJXBRRME wBjEAVEROZbTIAsQ
EjGKXOAAbk90T/SGGupjln/yKYmHxG+C4b4WmTKxND4MtrqvRrK2fkZsskge Wn5CRQIoACvJkMJD
kMYdpwEQ6RxxETosPDBUv8E/KJi16YnBYB1/pkmLP9w69YPijuGoiLFfZkTG OLiIrhUmv9rFrVoM
aI4wQB+kZOsqU4G1xbg12ORVBNVA8vMkVSWYxDJjMFA4GKY7NdEdm3VjpboS oqcwhJFPS5I6KQEF
MOKpCVMLqRRu6Qto3ww2AAYgAXtDcFmipWo4JNEoiyiRCVGmT8mArBfIUyit woiW9iwmDZ6Hc17t
bk4rloqhUyUq3S1Go06aXTRp6IAKKEuCJUzJJkAC3XE4GcDaWcABALhY4pqg 35nO9ifMrZZDccHs
t9gr+WhlWl5ZBakyZkEs3dSNKpXSMCIYBeEAYCmZtVwG8Et7yTs1LnQVQNR5 Iia6RpeYKnKpFvEU
zQqlFjajOoIhtbawXqhUrKWnnbL12RkLZDJT0+sU8muRdQ5pcL4mKJVDOJcF ZcgluiUxUsQAyxjF
+avYyvzFp69UqHatKlIVVcFgSvqqAe9JIyxRuuBUzENdOUSeEJy3vALEAs5X aUoZZfMXaTJpXEiI
aEqkW6noOQGNgXTXwDDEdeF77OMwSYRGYEU1FBIYQEzON6XAWAFG1uH4vp65 m7D2wmbOzklLW7EK
hMIgRCfKusU6Y30zJgAOYuAiUwnEoicFRTYpboheKJLq0+m0uWXqA1GZTTSK tNmXOYVjvL3jsY2j
eERG6Dgxg6RAaKquNGXtSFIkQlkUBl8wnmxOmW9dugz8praMzjFsPES32Zf7 sfFAt7REaJTUTzKp
VSy6RBLxRbXdIDeB1y9oIziZRKApduzao3mZpRbF7rczrk7QRME3rCAFMqxO MWw8RLfZl/uw4xbD
xEt9mX+7GWTKJQFLt2bVG8zNKLYvdbmdcnaCBMolAUu3ZtUbzM0oti91uZ1y doIpVeqDOsTjFsPE
S32Zf7sOMWw8RLfZl/uxlkyiUBS7dm1RvMzSi2L3W5nXJ2ggTKJQFLt2bVG8 zNKLYvdbmdcnaCFU
oM6xOMWw8RLfZl/uxiKzlpKOidY0rKS6SixRUMmgXExzAW8IApiLiDjriWJl EoCl27NqjeZmlFsX
utzOuTtBEbX7b0aqUsJeVmVFVVVkLgcWVAB5VIXcSsGBy+kIVVKDOqxKZVLR VNJJenUOeqMouW+h
MoSqAFWJ9MoGmQM37wCPVa3VsF0jpnslVTEOUSmDi0tqH/8AVHOiNbPTK3Zs qh56lz1Oo56ctNBJ
HE0kuBJ1Mo+DeM3GSGcotoBgZwEtuksoE0lV152Yt3MTBFZkZgksNOnwSQET iYGKDXyFLoAkIgU1
4TGFykbOdLxGuIbDJHAc/TkWK2I1zQXPAKuxzTCK0qnVKFUqTLrrElyzM4km KecMLEKNyYMbEWDV
tialFQaWAFBEOSblA+rdCjbdgbdr6erbKV2Ym6PS6EvaKpWsq6lokJwqkyjM GzEmQ4GAgnOmQBuA
AiJmATPi8bSlFX4vyjvmuf5t+0Hp369r6WDaDopwBFJ6j1rIlgyri3xSUWfi /KiL5r5R3+LftB6d
+va+nBoyU7P12bNRVK8aoBKSgTQUpWTuZu4YUrwzJjYuKvgj+93ARnJRV+L8 o75rn+bftB6d+va+
l+WCnyI2wr4HWKAjTqaOkd9i/WH89OscCB+4no0LIiXgBYfuHbLptn9tRY+V LP2vWTMmoW2KhDAJ
TFMrRBAQHWAhFhtglNVGs0ZdHOTkggVUqsqhPmlRBYxkhSWMYpgESkAioCAO PKAxR2UaVmMrubXU
mqrICTPIkKhLllyrZkTKGmDFMYBKKgckmmJmKJXE5bw6OZhjMFZwDnKmfcS2 X+8/tqJ+MPcS2X+8
/tqJ+MV6eTywBVRnka1S1RTmJoqSBCkKmCJlEjJFEom5Qt1O6JxuqFvqiUB0 QHbVm5+cQs7Sk6xN
pTFWJKJFnFSCUAOsBAzhgYABhM44AAbghhjMEwDnK5b4XySMtwQ7apInmzCC Sme48Ymez/umjnr1
wboiCgnxKAl6BANaPnheLArwS8oRimAxTLzggw6/0yTf9w/vDajuWoW6y4ve v+LFrVo/129lvu5S
3AzO3BysOF5tFXC99bJ1t/Rt36W5ZRR+L6b/AAXP826+/wBe19LTfAzN+rlY cL3NVwvfWydb7tu/
HatInqutZ2lVyYp0mlJzIyfJpzSpjlBY6JC6wYWcg72HpGOOW9Dc+2J0t5V/ yKn5J4bKQa8VvsFn
yij8X03+C5/m3X3+va+klFH4vpv8Fz/Nuvv9e19KkU7LvZUy9OJNys7Ikm5N SfSOAmmBIgkQD3jl
TExgwSHAAHwDPrcZhfK7YiVqiNPQn1Z2YJUTUtYsqmsrxaYImJwIowCwmzAF IGIqCLFAzmjXKFSS
n5RR+L6b/Bc/zbr7/XtfSSij8X03+C5/m3X3+va+lCWkyrWLscjSV5+fUSk5 4iKqc0BFjJETUIJk
TGM3PFAClL4RhfAQvDEjO25snSQvK1A2bTTIrnEiLKku3CKAxigICIJlIoIO 4E0xACiIioUWVKKP
xfTf4Ln+bdff69r6SUUfi+m/wXP826+/17X0q/J5X7Dmo9OqCtRPKkmZQk6B DkWOKKd8E3UEoCBQ
BRMCCIiwmBnG9jkBlVsIiWTH3aABmAU4uUSr3lM0kmsYClZxHNgmcA5wOz6U KFFMSij8X03+C5/m
3X3+va+klFH4vpv8Fz/Nuvv9e19Kbl5GVOkkokBjEECmIbOGxDRbb1C+vpF/ slNlyXWKbRZuUNsu
tt6hfX0i9EUDKKPxfTf4Ln+bdff69r6SUUfi+m/wXP8ANuvv9e19KeJTZcl1 im0WblDbLrbeoX19
IuJTZcl1im0WblDbLrbeoX19IuRQMoo/F9N/guf5t19/r2vpJRR+L6b/AAXP 826+/wBe19JKHfi+
n4rnebdb8vvxSh34vp+K53m3W/L78SJKKPxfTf4Ln+bdff69r6SUUfi+m/wX P826+/17X0kod+L6
fiud5t1vy+/FKHfi+n4rnebdb8vvxIkoo/F9N/guf5t19/r2vpJRR+L6b/Bc /wA26+/17X0kod+L
6fiud5t1vy+/FKHfi+n4rnebdb8vvxIkoo/F9N/guf5t19/r2vpYC1DpVYNL GqFMp9RPdTKB5yWT
WMACCAMAmERANMdXS+I68+UO/F9PxXO82635ffilDvxfT8VzvNut+X341BIN QqEA3FQ8vY+zamZe
zlDG9m3/AEahtzD/AMw3pDc6XsfZtTMvZyhjezb/AKNQ25h/5hvSG55iUO/F 9PxXO82635ffilDv
xfT8VzvNut+X34+8Y/OV5wG5lDy9j7NqZl7OUMb2bf8ARqG3MP8AzDekNzpe x9m1My9nKGN7Nv8A
o1DbmH/mG9IbnmJQ78X0/Fc7zbrfl9+KUO/F9PxXO82635ffixj85TAbmWjO GYRJDgn21l5dJGXl
0pGXBNGXIVMhQGZkzCxSiwYmEdW30o+uGkZ+CtbrSf8AwUtzn+XkusP59aO/ 6gb7If3jvixapal0
z/qPdyzOBoa7wcbECJmACLCOP1om/wDP/vcEjSglafJSAzFSUp8sKAklVVii QubMmYgCxXG6IPrx
ze+NRcC7/TpYj/jX/wDqLHRMcft97mWxO0OWLE+RU7ItDpSDXit9gqBTbAUC Vl0UpqkjUjJy4Saa
08BVFEZdihmSiBQYgAY+Aa2MGozR9lyfWUMuCw2Xl01RVz4mK4CU4kKneBtQ kIJgK3ggUbrPF8hG
u1UiqXOWPs7VeJcbs6ibiqKSCGsMyQjXAK2q5fUuiGIMZmvR6T1lqBV1BUnL PIKGUIRM7lYAKAEB
mDquUW1lJdFwEAi4QhVFREsn9ki573pSJOMy6cqsGaBhRKchwT1eCB7xmDC8 UR1mcfRWw9mJs6Bl
bMyxTJlKQBKW7dDMlRDVrupiYpR2AUWa9F3hCqKMl6hmkkkySQoplApQIXAC Bo4AABqBzdjeEfZK
sc129KnK7Pi7eC/oc3Y3hEhCKXIo8lWOa7elTldnxdvBf0ObsbwgSrHNdvSp yuz4u3gv6HN2N4RI
QhcircumoTM3inC7m3wHZmH29Q3o34pdNQmZvFOF3NvgOzMPt6hvRvxskIXI q3LpqEzN4pwu5t8B
2Zh9vUN6N+KXTUJmbxThdzb4DszD7eob0b8bJCFyKty6ahMzeKcLubfAdmYf b1Dejfil01CZm8U4
Xc2+A7Mw+3qG9G/GyQhcircumoTM3inC7m3wHZmH29Q3o34pdNQmZvFOF3Nv gOzMPt6hvRvxskIX
Iq3LpqEzN4pwu5t8B2Zh9vUN6N+KXTUJmbxThdzb4DszD7eob0b8bJCFyKty 6ahMzeKcLubfAdmY
fb1Dejfil01CZm8U4Xc2+A7Mw+3qG9G/GyQhci5p4ahTF4K9uwM4CEpLlEBH UITEkAhr/P8A5xRl
8Ob/AEyZRP8AjT/+iRhH0HqB3of3jvgxajam6v8AUe7l7cCVLP8AB8sGm7Ac Fiv0PNEjqbvWL5QP
Y9scu8B4P8g8n+G1XZ9bJHX8cmttjXWvO1H+WJ8ipySJEpB7LfYKC71i+UD2 PbDvWL5QPY9sTsIh
sUzMszCKgu9YvlA9j2w71i+UD2PbE7CGKZmTCKgu9YvlA9j2w71i+UD2PbE7 CGKZmTCKgu9YvlA9
j2w71i+UD2PbE7CGKZmTCKgu9YvlA9j2w71i+UD2PbE7CGKZmTCKgu9YvlA9 j2w71i+UD2PbE7CG
KZmTCKgu9YvlA9j2w71i+UD2PbE7CGKZmTCKgu9YvlA9j2w71i+UD2PbE7CG KZmTCKgu9YvlA9j2
w71i+UD2PbE7CGKZmTCKgu9YvlA9j2w71i+UD2PbE7CGKZmTCKgu9YvlA9j2 w71i+UD2PbE7CGKZ
mTCK5A4fEkEhwbcoqQHE4ZpIXZvl5GEZPdCP9O2Ub/gR/nyMI7rqEAFlRAOV d8Ya1a090jsj3csb
gPB/kHk/FtquLfWybvv9nX8cgcB4v+QeT8W2q4t9bJu+/wBnX8cmtrfed72J 8ipyS3JB7LfYJCEI
iVlpCEIIkIQgiQhCCJCEIIkIQgiQhCCJCEIIkIQgiQhCCJCEIIuSe6Ef6dso 3/Aj/PkYQ7oQH6u2
UUW+RRxb9vI7vv8AYjuGoXeuJ3rvixaxae6R2R7uWNwHitkDyfjd2q4t9bJt b79m7Dr+OQOA8Rsg
eT811sVcbv1sm27u6dm1tHr+OS21vvO97E+RU5Jbkg9lvsEhCERKy0hCEESE IQRIQhBEhCEESEIQ
RIQhBEhCEESEIQRIQhBEhCEEXJPdCA/V1yii3yKOLft5Hd9/p2Id0IB+DtlF FtSKIO37eR2t94fu
HYjuGoXeuJ3rvjDWsWnukdke7ljcB4jZA8n5rjYq6V362Tbd3fS2bWYvX8cg cB4jZA8n5rjOKulc
+tk23A6PpDq2sxev45LbW+873sT5FTkluSD2W+wSEIRErLSEIQRIQhBEhCEE SEIQRIQhBEhCEESE
IQRIQhBEhCEESEIQRck90IL+rtlGFtSCIO2rl5Ha33h+4diHdCC/q7ZRTNqR RB21cvI7W+8P3DsR
3DULvXE713xhrWLT3SOyPdyxuA8m2QPJ+a4zirpXG/6sm24HR9IdW1mJ1/HI HAeSbIHk/Pm2cVdO
4z/4sm24HR9IdW1mJ1/HJba33ne9ifIqcktyQey32CQhCIlZaQhCCJCEIIkI QgiQhCCJCEIIkIQg
iQhCCJCEIIkIQgiQhCCLknuhBX4O2UU112RRC82rl5Ha27pDVqFnBDuhBf1d soprupFEL13Vy8jg
93dqvBq1CzlR3DULvXE713xhrWLT3SOyPdy4zyL90GpmSHJvQrLhYqdqS1MK cBnk6glLioJlQUFg
zJjB4IB4QiOvBi3b2TusBC3XsXWzMzvaIuLXdbS+26PbNq0WQjcY2pCxJqM+ YjQKueS4nCeKkmpN
A6mVQLbTm4TRDY+gFwuGQfhCd1gIW69i62Zmd7RFxa7raX23R7ZtWiwndYCF uvYutmZne0RcWu62
l9t0e2bVoshFraTYHN/XE+y9bLzvH8hoQndYCFuvYutmZne0RcWu62l9t0e2 bVosJ3WAhbr2LrZm
Z3tEXFrutpfbdHtm1aLIRXaTYHN/XE+ybLzvH8hoQndYCFuvYutmZne0RcWu 62l9t0e2bVosJ3WA
hbr2LrZmZ3tEXFrutpfbdHtm1aLIRTaTYHN/XE+ybLzvH8hoQndYCFuvYutm Zne0RcWu62l9t0e2
bVosJ3WAhbr2LrZmZ3tEXFrutpfbdHtm1aLIQ2k2Bzf1xPsmy87x/IaEJ3WA hbr2LrZmZ3tEXFru
tpfbdHtm1aLCd1gIW69i62Zmd7RFxa7raX23R7ZtWiyENpNgc39cT7JsvO8f yGhCd1gIW69i62Zm
d7RFxa7raX23R7ZtWiwndYCFuvYutmZne0RcWu62l9t0e2bVoshFdpNgc39c T7JsvO8fyGhCd1gI
W69i62Zmd7RFxa7raX23R7ZtWiwndYCFuvYutmZne0RcWu62l9t0e2bVoshF NpNgc39cT7JsvO8f
yGhCd1gIW69i62Zmd7RFxa7raX23R7ZtWiwndYCFuvYutmZne0RcWu62l9t0 e2bVoshFdpNgc39c
T7JsvO8fyGhCd1gIW69i62Zmd7RFxa7raX23R7ZtWiwndYCFuvYutmZne0Rc Wu62l9t0e2bVoshD
aTYHN/XE+ybLzvH8hoQndYCFuvYutmZne0RcWu62l9t0e2bVosJ3WAhbr2Lr ZmZ3tEXFrutpfbdH
tm1aLIRTaTYHN/XE+ybLzvH8hoQndYCFuvYutmZne0RcWu62l9t0e2bVosJ3 WAhbr2LrZmZ3tEXF
rutpfbdHtm1aLIRXaTYHN/XE+ybLzvH8hoWvsundB5TLLkqtBZAbHT0kvVEi JhUJmqJzApiVRA4i
IZkoi+YDC8AaWrAABCEZ0Gy5SyIet5JmCwkupUm80Fakk5AFdZMRJomJGNTk /H461//Z
------=_NextPart_000_0056_01C4C57C.CE9081D0--
Attached files