Home » Modeling » UML2 » Difference between Metaclass and class
Difference between Metaclass and class [message #476197] |
Mon, 24 September 2007 15:09  |
Eclipse User |
|
|
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
what's the difference between metaclass and class?
I can see that's implemented like this:
return class_.getAppliedStereotype("Standard"
+ NamedElement.SEPARATOR + "Metaclass") != null;
but I don't know what it means.
- -stefan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+AtkIYVWjMSpDwwRAjdrAJ94LmIm9z+1Rog29oecKNb6IBbTnQCf ffjm
MVmuPecOCI6OHXsM7e/4Iuw=
=VZWD
-----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #476203 is a reply to message #476197] |
Mon, 24 September 2007 23:22   |
Eclipse User |
|
|
|
In general OO, a metaclass is the class of a class.
For instance, in Java, ordinary classes are instances of the special
class java.lang.Class, which is a metaclass.
In UML, a metaclass is an instance of the Class element with the
stereotype Standard::Metaclass. The code you describe determines if a
class is a metaclass instead by checking whether the Metaclass
stereotype is applied.
In UML, all element types (classes, associations, attributes,
operations, components, ports, actions, stereotypes) are defined as
metaclasses.
Rafael
SKuhn wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> what's the difference between metaclass and class?
>
> I can see that's implemented like this:
> return class_.getAppliedStereotype("Standard"
> + NamedElement.SEPARATOR + "Metaclass") != null;
>
> but I don't know what it means.
>
> - -stefan
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG+AtkIYVWjMSpDwwRAjdrAJ94LmIm9z+1Rog29oecKNb6IBbTnQCf ffjm
> MVmuPecOCI6OHXsM7e/4Iuw=
> =VZWD
> -----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #476214 is a reply to message #476203] |
Tue, 25 September 2007 10:55   |
Eclipse User |
|
|
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Rafael, thanks for your effort.
I know about the layer architecture of M3=eCore->M2=UML2->M1=UML-Model.
I basically don't understand why do I need the stereotype meta-class in
UMLs Superstructure? All classes here are by default meta-classes (for
M1). And the need of a <<meta-class>> in M2 should be obsolete, because
of this would already exist in M3 within eCore or MOF.
- -stefan
Rafael Chaves schrieb:
> In general OO, a metaclass is the class of a class.
>
> For instance, in Java, ordinary classes are instances of the special
> class java.lang.Class, which is a metaclass.
>
> In UML, a metaclass is an instance of the Class element with the
> stereotype Standard::Metaclass. The code you describe determines if a
> class is a metaclass instead by checking whether the Metaclass
> stereotype is applied.
>
> In UML, all element types (classes, associations, attributes,
> operations, components, ports, actions, stereotypes) are defined as
> metaclasses.
>
> Rafael
>
> SKuhn wrote:
> what's the difference between metaclass and class?
>
> I can see that's implemented like this:
> return class_.getAppliedStereotype("Standard"
> + NamedElement.SEPARATOR + "Metaclass") != null;
>
> but I don't know what it means.
>
> -stefan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+SFbIYVWjMSpDwwRAk6ZAKCC11V9neHjC77wviWXir1xSsg/WwCg m1oD
jLfXWg9mx3JS8T8MYzdbCXA=
=4EZL
-----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #476215 is a reply to message #476214] |
Tue, 25 September 2007 11:03   |
Eclipse User |
|
|
|
Originally posted by: cdamus.ca.ibm.com
Hi, Stefan,
There are types in the UML metamodel that are not metaclasses: the
primitive types (String, Integer, etc.). These are PrimitiveTypes, of
course, so they can't be metaclasses.
However, it is otherwise quite possible to define classes in a metamodel
that are not metaclasses, for the purpose of providing metaclass properties
with complex types (as is commonly done for stereotype attributes in
profiles using the UML2 API).
It seems that the UML metamodel, itself, either deliberately chose not, or
simply happened not, to use non-meta classes.
Cheers,
Christian
SKuhn wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Rafael, thanks for your effort.
> I know about the layer architecture of M3=eCore->M2=UML2->M1=UML-Model.
> I basically don't understand why do I need the stereotype meta-class in
> UMLs Superstructure? All classes here are by default meta-classes (for
> M1). And the need of a <<meta-class>> in M2 should be obsolete, because
> of this would already exist in M3 within eCore or MOF.
>
> - -stefan
>
>
> Rafael Chaves schrieb:
>> In general OO, a metaclass is the class of a class.
>>
>> For instance, in Java, ordinary classes are instances of the special
>> class java.lang.Class, which is a metaclass.
>>
>> In UML, a metaclass is an instance of the Class element with the
>> stereotype Standard::Metaclass. The code you describe determines if a
>> class is a metaclass instead by checking whether the Metaclass
>> stereotype is applied.
>>
>> In UML, all element types (classes, associations, attributes,
>> operations, components, ports, actions, stereotypes) are defined as
>> metaclasses.
>>
>> Rafael
>>
>> SKuhn wrote:
>> what's the difference between metaclass and class?
>>
>> I can see that's implemented like this:
>> return class_.getAppliedStereotype("Standard"
>> + NamedElement.SEPARATOR + "Metaclass") != null;
>>
>> but I don't know what it means.
>>
>> -stefan
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG+SFbIYVWjMSpDwwRAk6ZAKCC11V9neHjC77wviWXir1xSsg/WwCg m1oD
> jLfXWg9mx3JS8T8MYzdbCXA=
> =4EZL
> -----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #476217 is a reply to message #476215] |
Tue, 25 September 2007 17:33   |
Eclipse User |
|
|
|
The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
Ecore.metamodel.uml.
If you want to create a profile that extends UML then one should be
extending the UML.metamodel.uml with the properly marked metaclasses.
The Class#isMetaclass() function that was previously mentioned is used by
the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
classes) to populate certain lists with only metaclasses.
Otherwise, the UML to Ecore does not make use of the <<metaclass>>
stereotype which is probably why UML.merged.uml (the metamodel from which
the api is generated ) does not have the stereotypes present.
- James.
"Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
news:fdb7v7$5m8$1@build.eclipse.org...
> Hi, Stefan,
>
> There are types in the UML metamodel that are not metaclasses: the
> primitive types (String, Integer, etc.). These are PrimitiveTypes, of
> course, so they can't be metaclasses.
>
> However, it is otherwise quite possible to define classes in a metamodel
> that are not metaclasses, for the purpose of providing metaclass
properties
> with complex types (as is commonly done for stereotype attributes in
> profiles using the UML2 API).
>
> It seems that the UML metamodel, itself, either deliberately chose not, or
> simply happened not, to use non-meta classes.
>
> Cheers,
>
> Christian
>
> SKuhn wrote:
>
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Rafael, thanks for your effort.
> > I know about the layer architecture of M3=eCore->M2=UML2->M1=UML-Model.
> > I basically don't understand why do I need the stereotype meta-class in
> > UMLs Superstructure? All classes here are by default meta-classes (for
> > M1). And the need of a <<meta-class>> in M2 should be obsolete, because
> > of this would already exist in M3 within eCore or MOF.
> >
> > - -stefan
> >
> >
> > Rafael Chaves schrieb:
> >> In general OO, a metaclass is the class of a class.
> >>
> >> For instance, in Java, ordinary classes are instances of the special
> >> class java.lang.Class, which is a metaclass.
> >>
> >> In UML, a metaclass is an instance of the Class element with the
> >> stereotype Standard::Metaclass. The code you describe determines if a
> >> class is a metaclass instead by checking whether the Metaclass
> >> stereotype is applied.
> >>
> >> In UML, all element types (classes, associations, attributes,
> >> operations, components, ports, actions, stereotypes) are defined as
> >> metaclasses.
> >>
> >> Rafael
> >>
> >> SKuhn wrote:
> >> what's the difference between metaclass and class?
> >>
> >> I can see that's implemented like this:
> >> return class_.getAppliedStereotype("Standard"
> >> + NamedElement.SEPARATOR + "Metaclass") != null;
> >>
> >> but I don't know what it means.
> >>
> >> -stefan
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2.0.7 (GNU/Linux)
> > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >
> > iD8DBQFG+SFbIYVWjMSpDwwRAk6ZAKCC11V9neHjC77wviWXir1xSsg/WwCg m1oD
> > jLfXWg9mx3JS8T8MYzdbCXA=
> > =4EZL
> > -----END PGP SIGNATURE-----
>
|
|
|
Re: Difference between Metaclass and class [message #476218 is a reply to message #476217] |
Tue, 25 September 2007 17:56   |
Eclipse User |
|
|
|
Originally posted by: cdamus.ca.ibm.com
Hi, James,
Do you mean, then, that in order for my profiles to be correct, I have to
stereotype as <<metaclass>> the classes that I use to define complex types
for my stereotype properties? I don't want them to look like metaclasses
because they really aren't intended to represent "model elements", and I
don't think I'm even allowed (in a profile) to define classes that
specialize UML metaclasses such as Element. Or am I?
Thanks,
Christian
James Bruck wrote:
> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
> Ecore.metamodel.uml.
> If you want to create a profile that extends UML then one should be
> extending the UML.metamodel.uml with the properly marked metaclasses.
>
> The Class#isMetaclass() function that was previously mentioned is used by
> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
> classes) to populate certain lists with only metaclasses.
>
> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
> stereotype which is probably why UML.merged.uml (the metamodel from which
> the api is generated ) does not have the stereotypes present.
>
> - James.
<snip>
|
|
|
Re: Difference between Metaclass and class [message #476221 is a reply to message #476218] |
Tue, 25 September 2007 19:57   |
Eclipse User |
|
|
|
No, a profile is not allow to specialize metaclasses - only extend them
(with stereotypes). You need not worry about using the <<metaclass>>
stereotype for "complex" types.
Kenn
"Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
news:fdc072$cfu$1@build.eclipse.org...
> Hi, James,
>
> Do you mean, then, that in order for my profiles to be correct, I have to
> stereotype as <<metaclass>> the classes that I use to define complex types
> for my stereotype properties? I don't want them to look like metaclasses
> because they really aren't intended to represent "model elements", and I
> don't think I'm even allowed (in a profile) to define classes that
> specialize UML metaclasses such as Element. Or am I?
>
> Thanks,
>
> Christian
>
>
> James Bruck wrote:
>
>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>> Ecore.metamodel.uml.
>> If you want to create a profile that extends UML then one should be
>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>
>> The Class#isMetaclass() function that was previously mentioned is used by
>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>> classes) to populate certain lists with only metaclasses.
>>
>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>> stereotype which is probably why UML.merged.uml (the metamodel from which
>> the api is generated ) does not have the stereotypes present.
>>
>> - James.
>
> <snip>
|
|
|
Re: Difference between Metaclass and class [message #476222 is a reply to message #476221] |
Wed, 26 September 2007 12:43   |
Eclipse User |
|
|
|
This is a multi-part message in MIME format.
--------------070409060307040402080201
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
allright, I didn't get quiet all of it, but let's try another way:
I tried to understand the UML2 Profile mechanism. I found a diagram at
"Modellgetriebene Softwareentwicklung, ISBN 3-89864-310-7"
(Profile.png). I looked at the UML.ecore and everything seems right:
'metaclass' is of type Class and the 'type':Type ref of Extension is
inherited, so I'm not sure if Stereotype is really referenced.
I looked at the XMI serialization of it (upper half of NG.png), found a
association class, and confronted it -for better understanding- with a
normal associaciation (lower half).
Basically I don't understand 2 things:
1) what happens with the 'metaclass' reference, where is it used?
2) Where in the UML-MetaModel can I find the reference to which type
stereotype may be applied?
Number 2)can't be the answer for 1), because if a stereotype could only
be applied on a class and not e.g. an association.
thanks
stefan
Kenn Hussey schrieb:
> No, a profile is not allow to specialize metaclasses - only extend them
> (with stereotypes). You need not worry about using the <<metaclass>>
> stereotype for "complex" types.
>
> Kenn
>
> "Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
> news:fdc072$cfu$1@build.eclipse.org...
>> Hi, James,
>>
>> Do you mean, then, that in order for my profiles to be correct, I have to
>> stereotype as <<metaclass>> the classes that I use to define complex types
>> for my stereotype properties? I don't want them to look like metaclasses
>> because they really aren't intended to represent "model elements", and I
>> don't think I'm even allowed (in a profile) to define classes that
>> specialize UML metaclasses such as Element. Or am I?
>>
>> Thanks,
>>
>> Christian
>>
>>
>> James Bruck wrote:
>>
>>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>>> Ecore.metamodel.uml.
>>> If you want to create a profile that extends UML then one should be
>>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>>
>>> The Class#isMetaclass() function that was previously mentioned is used by
>>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>>> classes) to populate certain lists with only metaclasses.
>>>
>>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>>> stereotype which is probably why UML.merged.uml (the metamodel from which
>>> the api is generated ) does not have the stereotypes present.
>>>
>>> - James.
>> <snip>
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+owgIYVWjMSpDwwRAl3VAJ91kM0+cB6qyELsIh8G/8hN1ht8lACf frp+
657BYkkhtzjdzIkQPgnU1QM=
=/+GM
-----END PGP SIGNATURE-----
--------------070409060307040402080201
Content-Type: image/png;
name="Profile.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="Profile.png"
iVBORw0KGgoAAAANSUhEUgAAA8AAAAKXCAAAAABoQXy8AAAAAXNSR0IArs4c 6QAAAAlwSFlz
AAAewgAAHsIBbtB1PgAAAAd0SU1FB9cJGRQLA4I8f44AACAASURBVHja7F1n eFzF1X5vb9tX
Wq2qJXdsjIFAwHQIpneSAKGH8tFJAgFCEiAEEkIogYSEkkbvEHrvmGoMNuBu q2ul7fX28v2Q
wU3uRRKa93nA2lvmzj0z7z1nzpw5Q3kgICAYrqCJCAgICIEJCAgIgUcEKsP/ FVzSioOPdwmB
BwcK+e4TbAb4AYAiTqytpXcVIgOCzQ6WiGDLwOK6ZCFdVCjB5rTOuLbdnKjS HZsnhiu24sQS
4tIWu1xuYDPZAEyDkWIaU9Xl+jORZKyrzqlI2ZBnBrqrVU8Tyo2FQkgz3EhS KnigBb7IeBQj
FT3ONmjZM0H5VNAUXIvmbMYD5cJjLY+2edvTXZpSOdpyJLBuOmCJtCW5ZiFE pWTJU8q8CUGn
VX/Bp/o8L2+bEduknOoSk3CDRjGSDyf8qsWGL24m7bkMuriZxyI0IfCQxA56 hamaOZY3NAQt
21Aohy7FtYK/PHrRqFJnXV9LZ1AHFXAcnuqrqsC16phyPpxsTNcXHMoxPCFY URkE7YqSjJhK
hm0sJazRdEYuRwumF9JUSY1RpuH5qxcEzSIV8KoypltqzEmy5rkeB6krzmQC lpRVspGiU4uc
YmVrbEuw7YDm5SNGxHbTclW3RAlymUo22ygHhb5AwaJtLqz0BVNuU9kwqbjW HaKjbRn3NmI7
bQA6mjZ0LFIIbnTliAm9RfDJsf6Qlo76KdWlgu2KSvm0eKvI+LJ+vUIFDUYX KEHs4RjeSTZR
aUoo+a3aVl9QZfmSUGaVAsO7rqt5TLBo+m3KzY+p6ILjBZPpUHWHJTK0a4RM zUMprjMVH9g8
HygHSgirrAbGKclezu9GjaqMWAbHddDBHMA5ElOMU26BkpmiEwwV3Gg6p9i8 xZaY5kovUF0w
EStIlCbrllSMGK5res0JA1Mr5tm/Ji26AehsJCb0cIecVEo9o7zFfsqiPa9P ciMJX1ALlPx6
oCYzNp1pkJhitasg2rmNV5/PsBVbo8ZxMOJoNhOjIlnBDWc4pWLXlv2mEW0d TVUcu0kVbcVo
nS4FacajatsEz0+ZRkmtoSyGN2iR4ijLcUMVnfdXOCUn6bLJuWaUMlmxd4q4 pKuqSm1aLHhR
vm20YSg17/nZzIS8Z0UsocSlC3agKkRX6jRTj3051isGx2d1quDTp+CBK6O9 pEE3BFuTv4TA
WwY5RRr75boucpitWKMpAIDtAWBnAMCoNV46HgBQv+xXnarESYMOWZD5gC3j wvKltDWdM7/9
wwHwzX9DDP21dwB0UCUy60sIPMLAJ9nSGs9980eKAfDNf0MMErCsYqPKAYM0 KCHwyAITltcd
b9U0pF+ha9m/6WY9TBqUEHhkQaB1/9qvMIf6KzQs+7eYLJqkQQmBRxY02+xe h5E9XF5FsYQ8
adAhC+KF3jII098V163ityTSnkQDjyxQmXb+O/IqUtJhSIMSDTyyIDMt5S1R rrn1Pwt91SJZ
hkE08AhD0W9vkbkXHmjbyq/iyRyZByYEHmFwC+aWsjubt/Kr1LaVi6RBCYFH FiTPq94i8VXd
G2KZb5YaZJuDFGlQQuARNga2qOwWUcER3wZcvFlqUC7pFmlQQuCRBadcvWXW aW71GZ1usUri
SIMOWRAv9BZBlct8R+Ze6n19FJkHJgQeYeiKy/Z35FWMcJQ4sYgJPdJALVnr Knht+LyJf/FS
nrQnIfDIghj2NwypoexAaF2vq9L7CSbJA00IPLLg68gNfddty3pdFVkoSaSb EAKPLBSppLwJ
t5eH0KsE014faVBC4JGFOF21KVaybwi9SrberiUNSgg8wjSwxn1XXLeipZLV SEMXZBppy3wX
66zVFjPM+tyFagcNOzJx57XffZ361SV7b/AzfxgoTPr9JtZ7gJWDXCFATGhC 4BGGFpVfTQPP
ObPRYIXquXZt6eRb1nr3M32F6RtO4C+CszbRWfzCqUJktWS4PJerIQ1KTOiR ha+l0GrpvZ2m
hm3cfISuiUbv+/Fa766uxUZEL/rZxk3cuMeWxchqBzWeDIGJBh5psFijZ9Vj Lp0d9992b3rH
42Octx44aS13m9GJG7GQyO8ENrHWSZtZ3X2WhddOGpQQeGTBl5mwmjakPDd+ IABMv6Sq8upJ
ANrm5G3fhKnLzr+ScQJH9iu9bMoDMJs1F+9WDzyb7wz4R+/Vf9Wnn1WsUSfk X3XFowDg/flL
pNox+/XznmGBGR181d6vvu4K0/fBpw+y1bvvAeCrWYx5Ou562Ttkmz2XPWzh Z31jdj2BAYBb
FWuvKc/+r2afmRPU4s38hStXe6zLkU5CCDzCwLh9q2V9ZgR3DuA57ORUzfg0 gOseU2mtrO/5
KgB0HlER86Hzf386gBLj0MCck9tKB/wI847PMEaF5ce9DwC33lkuF6VPJvzc X8xJSJ8xm7cr
rHnc3wAIKTUP/PV946CvfudFrYef6P61mo/ecvkvgHmnNvaN+muirHUk7zgS AP58m6KUFz3+
2zsPBPCnvHjTw/fxO3362ZhU0w3lfaasVO2SqwZIg5Ix8MiCY9estpjBZVQe oDz4eDflA/52
a8XsywfrFv0QwIsn6XShC+Gf/R1AUKcMLLogJO/yCnCWRquxSNXory4GcM8/ XKl6jPTUs83B
kAScMiOe52Ns4wO/BFBgRAUYxY6fe60tRcLCzy6cb/vdsX/7GjAiDdv87o2q xS7vnfklgKtu
jolZy6rm/u8pAJPGbfvoc0qvPXk7oy47bfwqW12aHtKkQQmBRxaCjrbahIzf pGgAHD7UylIM
+K3jP/ytzw8J1z7ZCdzW5uTPfHkcS/9uMUCbQRXXJzrU+4EnZgjWX59tPzFZ fy+AP9KRztNe
+FV5boufAe6au037RV8/dly57qE7AR90CShW3MSpCzsO6g0VQq+0XVIR068C IRb+9hPubdt9
VlPlJuCpmyboLV+0vsApwesBpL2Wrj7l4kNvu4ryws/OXsV0sEs1MmlQYkKP LLg1WmjVY73l
KH2vwfHzHmgx++7AzJCVuwP42wRfON/4woxJ6v3TcUBDHjf/AyU7yP/97fqe l8cB70y0Tzge
uOZFUS373i+OXXLNrzBh99O6JRt4QGg/5jfY5sY5WuSRc9Bn0w4QUtyGG4Gr HtIS5++LC2bO
D6QAnkFqx7/y+NfXzsRPgZebC9F/hrDtv34YXPrYj+FTZ1u3nQCgtXWyvtqr xOJdpD0JgUcY
rGzLaqGUbAzapRMWew1F34Lrd8FO7zYCRsc9tUuDFr4O8tZ0AA9m7CogoKRe KNDdN+8G4K8A
MG/Bu7rm+jCfV4VfwWGm1ZXL9QAf7xOQdn17PMYUuusjqu0DSpFENQA0ltjJ AJQuKQowiXjb
lTwg7DLD39Nd/zpPVVXBYXbceV5TH8Bo0pEnAADLJKeu9ipeNkY2NyMEHmli rTFX29zMS9ZR
wXl8X1Gv/9s5ABrv+qRzNusP17YyWMh1twBAf/iGoQaSXiC3FADwznuvTnzZ EaJ8F5Cq1MXg
Orawx/P+LmBWPfPYY/Gl/ip/IZWt17zOHCDZsgMAdLHCAmBr+jyg4qPp3eA4 /PiPip4NDrn9
4FIWRxvuUoD32dX9NQyyydWH8xLI5maEwCMMXsUdv+oxUxKLp0XLkjD1+wCA c59UunzYsbub
HYOFFLv9Cpf6SqxUarj7qHHA/FOdbEdn457v1blASqCCoC0eplb2AZKSzsRL StHRS6YGQQvE
AaocEQGg12JCAMwyawKgeU0HDdiZIB0FAyMIl6URl3o4wKtwy+a8xOLqQVdh 1fKTBiUEHllg
nPxqGpjVrerfLP/59P3NxZsOi4amUJW8L96X+6Kf5QwD2L3V1gV/t4x//xH4 pd838cJdI+6+
WQMYWyqVYFDAYh+TBEKu9cSh6aplBZblrApQou0AQLyNpgFUlDIPqH5DmLct ZTELZCXng8Ay
n4GFw3xMceMBvhASAABUuT612quktHG9pEGHLIgXegvJVVFXPcQr8orSnjM6 c/rFY0KqG68U
MLXU0g0Ax+8UORPIjOo84OTjP+dvWAjMji694ogYmyh7EaA5GMg8Jsic+VGm VALEReJ7qAIW
YOEHgFFoKgNmwWUAQOdtEUDel3YBq+BVfwKIeFepUMDeieCsAsB8uERJbQ+k 4lYJgAap1lkp
/KQNAApxg+xOSAg8wpD3t6zmz6UK81aMcF7QFuIBXM+UGAO7liq+/wIzF3SF fgIEEarGxdv5
x/0cZrjsnwtk7qRUewkOkXojt9z00NPHKLEggKMN9p3HgZePYSZcC8CtcEDA Uy0AcMJmEoCv
N1QG4j5aeema2TNPqHPbzgWOo4uh4x+e+ez1jR0/2AmYYEoCAAlOuxz49OPl VWwGAIYfIECa
gJjQ32lk0707rDYuRnN2hZ97Pive3xd/841dqKCJHxz6Ws21zzjdGeri/QC3 lJGBc8/a8bM3
96Oz/vvmGx/kJsvpMcDPfjXO+a+vN+zCCAG/fXZx5dS/lBTK3eEJICczCpCk 63UAoCSGB1Cd
ZxRA6g3q1Xfe6QeVb/w1MO33Pwt1njE+mWnqeRlAq/JF/3fcXylZ5y1+c+Wa T8yWVdKgRAOP
LES5WGnVY3ZlJVP0NPNr7/mr55yX6y08BNy4w3y65910z/d/AcCak3OAM78v p8/HDflFhdee
7z4zPbPvPuDiP+UWZNvb9zqsj1MB3DKpe1S5szux6798QDmbaAPU7ne7ASD3 RjkJoDfV2wqk
alz3nN2Tie7k1H8DwKn/GN0etDlrzIxJALq/QgIAcPhxX7bOza8SOFly4gJp UKKBRxZkjl0t
fCm2jTq1u/7bn9L8U+fqkduOv/dNqwdoev2231UK9befBwAntgrbAvjzY99P vHfgU1d24UeX
NU4q2h6AC8/86O2axsNvqmJiAPac8crLc5iG438CAI8JuUbgopP7YgBwayY4 HsAlJ2Ac4GOl
QvDJhz8Yt/v3+h9+/PEL3nlr1+/tAQD4H+9E+w//56rFEMasXG21xiJpZYcu KI/IYAvgs739
wfmbqzBteUzI2zZ29QH46UtyfMb6l/DMUTsU/nzMxj39xbOqd/s7aVGigUeW CS37N1/q5+Ul
zTggTB9xF/Duh809G7LrdjREORubSz7C9RATmhB4hMFSmS3R63fd/uvqj37A FFV/quPxDbjP
Dic3OjNdQfWRTjJ0QZxYWwSK1DRgTo352KRde5mHt0vk3+ye+eWn8Q++vwH3 9XV2ZTd6IMs7
ZDkh0cAjTaxMekATdyKAUmjjyx3z/iefdlHHVk/baYNu2/sZ1zt8Y0cDNE+W ExICjzBoAWFF
26ZrxY2SQptSMDNt2kbcFT9k45+YoimKNCgxoUcWvDS3YmKL6DB+lRq/QxK7 EwKPMMSd/Iph
k8N5h+x0r0gITAg8wvAxa+W+I68SNiyS1I6MgUcYmoMB8zvyKqaU10mDEg08 spA2898V122U
9lVIgxICjywUbNveHOUMgY2CGT5LxsDEhB5hqPVFNsvcyxDYKLhCRS3SoEQD jyyIbmFL5aHZ
cukxBi5ZhVgmDUoIPLJAadKWSuUY2mKVHrjkSqiTdBJiQo8wCP70d2UJT7g3 oJAGJQQeYWNg
/TvT61UBJLE7MaFHGBLlovEdGTl6TLE/27tLmpUQeKSgEIzra/QgD68QD6W0 bGcGhzQrIfBI
gY921jyNNDRTTK3JYPBLQn8gB7fqGReokBkmMgb+LurfBq5vuEl2TQYDLfDO Gj/+xL1FCPwd
RBCVbAP3HXmZLF8mObGICT3CoHjedyXdp68oBkmDEgKPNCWcyW7kmHOoYXJt D9mZgZjQIw1G
tPqbPzsb+/+3SGxEuxBJmdXoEW1di7tFBiyXpzRKzjShxVkgN2NxUaJrUnkq UFb4Cttal6sp
e4w/z9hiL83xFnoFW/IXPcYrj+v0eMuyoqIGU3WrNTOYZzW/bTqcCw8sW3YC umnZHst6lOVy
LF2W4VFw4bg0pdMV3u8ytAFa0igpz1SlTc5mXMbVRMeiPZvzQLs2b+lYaPhJ JyEEHmkww8nd
ZTfvckI5nrfcXNhlWJ3SxHiZTQq6yJVC7YEIo7o2pxdbUuHuSGFCR1RJqX0x lwskfLQhVuJ5
wUOF8iymarFi8QHTpQRb8y0cY7qcBs5KNei8y5m6xHO++f6qNGvIjuOxlMtz phXIaE7cc0yh
GNA5oRDQfFlRVMrFUQlWyAdsM0AXDSqUEmVNsQWp2xuzZIyachqd3mgRQjZe imeVLj9bql9a
HWwiu4sOYTDXEBlsCfyLoTRHTklsSfWnRYE2xSxHO7F0Z0gzeI5OBx3JTbJS ma61EbFQy9KW
IXC6UONE3aIrwOeGCppYCBUbbDNq1sisK3pmsTnt5JtTsaTC+G2uxu8PsXJI 4TRfOuCqjuuP
JWpcTQgwgsGX66k4VWIZj0opKYmruF7AoUu2ngk1Jg1dLmqqF4ScEyuliuNm Uc4L6KHoQi7Q
5nA519CTep+/UizqmtU3r3zsXqRBhyrI1ipbBuc/UXIivMpbtq30slWaYPKa LNCFKN/pcznB
oKWeECvaiUampynIdvt107accKaqtVZq9wl8ldbH+5Sl1T6jbaqtq0IxYI5R u8SAXcWVuqwq
OZRX2K6Sn26vnVBIU41msLhwkioIXqk+I5hUFYpyV219orfWoQUqbAQyISrP cblRvJ2mWX9F
MhSHNlKy2NdSKdTlQ7yXqUoydBVHWYxHuRTL66LJBYu04AilYETYhbQnIfBI QyFrTlhIjcOi
OqWnLlHbbTRyS+lmuHTWz6F9FFbJNQu4a/In6uLAxxfsVw8j+dQ0ImtCYIKt Cotb7YdLIxtZ
vxu+OXT9jc1Q+aaXiDxHMsg00iCAW/lHtwvQQGRtN1irH3rS5J+uEl+bTeRJ CEyw2ZTrRlxT
vx6NsPoCiL/Op48effRSiWz9SUxogs2LbGQNA9o1DWc3Ap37Z6W5Pny/z/+n Q4nEiQYm2IyI
rEmsG87fNWr0f4jadB9wekV4jAicEJhgOAyXV8CM/xXds6HiaMp5679ETITA BMMLj+bsA3ep
8IifkWUeIeIgBCYYVnjzFT99HijXxSVevPVJIhBCYILhhHs9KT4dPA+r+tQ2 6k4iEEJggmGE
T96ysmfBguvR+CFXmXk/EQkhMMHwweN0Xd2ZLs04FG1tf6olP0xEQghMMGzw 6XNO4gYYtq1r
DovjmsYufJQIhRCYYLjgRss6fF9IAudXWArbnpbiHyRCGaEgC/qHH95cRDHN L1tsStJsLqoq
rGTO/eeZRC4jEiSUcvjhuK/8UL2uhmSkaFCj9RLqHeTfjxDBEA1MMBxQmDsK PWO8rupqvujl
DT3UKiXEJCEwITDBsMAvdyjzxca2utx8CYcla/KSZUj7TSRyISY0wfDCLpVM gkhhZIN4oYcx
Kvogb//wEWkDQmCCFbFBm4V50eT8b390D0JtdyUNRghMsCK4DeE5XY4v3+mw ngiPEJhgWPGc
o82ab46Q7bcJgQmGGSjbK5CGJAQm2Ixo3ZoPC9EOkTghMMFmREt26z3L7Sjm iMQJgQk2J7Zi
RJTNkZ17CYEJhgA2bg7IrmL8g1fnLGk2QmCCfmzcHBBnZ5kRYWoQEAJ/J6FS TUQIhMAEwxRi
mDQfITDBsAWnEhkQAhMMBRQ2yoJWGSI5QmCCIYCNmg/yqvh2IjpCYIJhCkc1 GokURjZIRo5h
DB9ypkjEQDQwwfBEolibJFIgBCYYpqjnpV4iBUJggiGAjVGllaIaIpIjY2CC IYDYRtwjIUnW
8RMNTDBcUeHKBpEC0cAEwxRWiiHtRwhMMFwRpjiigYkJTTBc4RPLGpECITDB MEXasgmBCYEJ
hivsUKCFSIEQmGCYIlQWTCIFQmCCYYo2n0OckITABMMVNQXXIlIgBCYYro1X 9jgiBUJggmEK
t1kjqwkJgQmGK9giXSBSGOF9gIhg+MJ0cyQpFtHABMMVVRmfTKRACEwwTOGT 82QemBCYYLjC
4ln92x86kQchMMGwQkFtDHz7o0jkMcLQAxAn1vA2oU1jud6NEXmMMNQRDTzc P8FCqZtIgZjQ
BMMUdjXPEykQAhMMdVS+/Wul2GeO40QSDD3CCdyznheS9IeDhCwAZTlnVzzF 9Bj0oAVDkw4x
NAhcR1T10EZkzacEhh+8jBykQxATmmA5NmYa12TYFJHcyAYLwNpSZphLPg8r oX0UAD1Xm40A
QCvDeRGxExVqwpzKJL/O06goXR4TT8R6KkHbYU2XNty+gBPSTAcyn6EiHV5T MWv4TZsS5ZIC
vx5d8npF1IKVstucdbmS4FRYwYhW9EjF5GzZ0x2+zDAqRbsM5XCekOEcRi6Y si54oCXFq3iW
LrAmbE8xKcrlTc90OMazOdf1NNkxAm53hKFMNeiZnOpLUTYTRgUUJ+g+2yny btDVTVMXzdjU
A0nrDg4oD0iuzxSivikL15JlX2ylIipKIQhgsTselcTYRTE2xxhFjuGGVoqn Nb7zu/foekxo
p3nJlMx8EJm4nbWrVFPxd8kVQRR7akuGqAbzAZXN+E0mUIQTciihh4t3F5qy 0aQtVXWELYNm
qtSeSBZUbGmDJetevJOXjEwUqqDJLgJpmikIuqzLBTkju2JWCXuizmVBsVIy 5qVCWlXSDNXP
F2k6L8gl2sezqmyaZjhr6s2dqM6IFHg6L3lFv1WqFdqa0gEmr4X4Ms1lG9rC sp2scWidoSmX
ZWyddUKdUoxLVRdVH0xHC8ppmeIpPc/7i/qYpKFoDUuYaD7Mq54/G7D66lRH NEWUA54RLLoa
2aNp8Aisi8+/YTDwUdk8z4hM2o5Smk8zTbWhNZ73ouWywGjVZlnlwgW/IcnZ Ssj2pyioLMN7
eUk2LbspU9NOM5xO0U5ZMFWRdjg2TQVoLu8pZRFWIc5yqmyUoroJTvWlRZtl y0o4b3v52jzD
2CxtM6rhCUJu56eHhdT+7/GJXfVp1uJUuRjVpHI4JxohDbztFZqzXBBJxBOg ZFsTilLE7PY7
qMpLRT+tc4bO0VzBCnMlNpoIUWrIpLOCHsiE/FnP59NVjnNUzrYDuqTbvMVR Um+sr76PoThf
sibZpPbydYV8uGjIcpZ1FE/T5FjaEuKtIqeGTZvPNiVGLfIUTucN+IW25ryU 82pyFMVU2Jjl
trEK5S/xGmd5wRRLx9rienhhvW67GUn2rGChVEfDrVT4oEOXFbN+qRBIM+F0 LFcS6OrWuMFp
fkOvLtGmxbEsrVFUNixlvGC2Nqpke3OESoNEYIdOVE0tBylNj6c5PSTk7SpN FWnTE0pVJYGn
c8Gq+Y5YlQ0pavse5YUu7VNDRqCUDxetsCOXk9vP36ZN0sIJhqX1QJ5jmxcf 2zfbqgScstHU
rXSNsky9SmPH5EuWGdDFAhfIBPK8z05HCw29Si4n13b7LN6meMlkfFWlmd7A 1exqWOMbFIJb
X2rHvzih3WlpZZxtlyRG6Z7HO0zn9u1s2KIKil2MckWBk9sjJqdxcITqDolz Sny0N1wQKM82
AoplVy2ZlKXVcDmeEBnDpj2U6pys7FCFmJKyeN6JpiWaLbO0G/BsneJo2eYd X4VnDL5+btTy
WJ/BKH56UbUvnRApK2yJ/rnfS4z6dEy2WsgqRpiREl4sy7K0bBb8dkjO+XMx 11F9FGubbsSh
LYby7CwbMNmKTDOs4yqZQg3N0oJjuwJvoqXVc4JShubrnKxdbQXb69uay+UG ywozZtls6LVt
ms0yYAOU4chVlSvURJpQadDGwGFOr/ZYzevzCuFkLBPVNaHozzRY2fqS38nz ViVOwQ7ZRTnQ
meMtIZiRrJIqeeFMOCHoY/S6Ah/J6NvkObPZqoUeS5eyobBWnTJ83Gh2UtMC tjHdmPBpSpAx
dT6SQX2oSIXCXTJHTYSvIhscKkGUqrRKyJq9xsDONfMXg8Bf0Ir8zykOTFlX q71YXyXgjEqa
NX0Ni43a3jjTY4WaOg2dcyZZjKZ0S7K4YAKQqG2LiwA6mgrBftvc4oBkDF0N gNvaQgNAQa3t
/yDp4rKhjcWt8ANubx3Q883MQTay3NvQ0WRxidq1VXqLuTrgK5M5pcGASwOU B4urbV7yQA1n
SmzBEvPbFTQhE7fcxnkhloFr+tJKk5WginJNqaanPH7++B4706TydKhtdCa+ NC67NFppuXpO
tB7osZuQqu6ym4E2wa1ftf8YAiyu5F+Td6t7j5qPvWEhudPeZmcrm1xKNrKJ Q3RmOSUTAWWN
TLW29Fzx9jmDjIEHbwycqA1Omf/xmM3+5S75N9BNXdquel5pWEjt7EdqnxtP Os832IHt6CNS
GBzQQC2qHY9ac1T8uvnrqgMd9a/X01e8IYVhslOIJtPDPptcZfMVpYcChEmD RmAX4DnPqd+U
QjZTYpc4t8kbzie3itT4MGcP95ZXNl9RbIWsqRg8ApcA1sgt90JskD8itTm9 Fx1eyshuYhlb
Z1UspyUqW6+NskO8DyXk3k7CpEEjsNEJT6uqrMGsXddnfHMmcqkBq0eGhdRM j/NtvacNvl9g
/gDHlq+CqaU0khdisMAiBli2OG49XE4DQM5txrSInX51s4+lnuCOROe7Ow/g cXrtsysw80PZ
hUtRhww8gLj144nX/K33Orzw1M+3XUVsnLP12qhq0HvJxLWb4ErRR5g0aAQG IDqpSnzj7g9v
zpFlUQ5v7vc7f/KRePaCWwYg8O2vXYGZPxcc10L4joP/OMC9L//ie7vgT12n jlv076O2XUVq
1lYcAytDsuesMP/u+hTCpMEksK6wbfHBr0tTyd7sWVItHdh214E0CO0AFHX1 oYW8/+sbbtjh
x6tfsYidCdzY1wh+VZeVxVjDPgVVR9NmK8r2lwiTBo/AiVo9YNZstSf2rvFT YcmbP025zgF7
f7jsx0qRSoINOPbOk2Gze7pX/e/HANDTtwMAd/YOAADDBnACgLLVP9Rfmmju t7W5Pq5vC4/W
t3j0xWaMYHOqHcKkQQINMKgpU9RWe+KaifNIjgAAIABJREFUVb3O+MobXFzr WXvv8qNnAcx8
CHfvPOGYVgA33orz6yaerQOIVICZP1wAoP2oCfufsRgAvthl25pDEwoN0CgC DLCd3Qccct+L
x0wHntyp5ZDJ9wP44Suhg6/F+QcAMiQAX5+z6+H7/9ICAEdpnrCFxbSMv+vh 5V+bkzq5AQRe
S3Ied+3VsDPECz2IGjiWMBRjKMQl+BlEN/SeTw4N/ST9wZGP/hhLznr+sz3t R9/9YDye7XuJ
PW3RPZ9/wIEGsPTJEydg1k9LxxTfeOL5PdF+CHUEv/BQNgh4MAEKmFGIAy/p neL2eOP4w34i
zDjlxYcx8VNpm6lY8i7gwgXeOU8/P6ZePeMDAAG7XNryMdgWt845AZdea8qO 9ZxV69f26dq1
febXqoGrSHLMQYPnec4+O8a/8oYApu45eUNv+RG+8LzkhCme94g0OuF5z+Ew zzuQ+Ynnec/g
NM+bsofnPYT7PG//YIfnzWd387zTma88z7sWrOfdg/s8NVP6y1i85nmBwD88 z5sw3vM87yDc
6Hk3hT3PO0j2vNvjL3revvRTnuc9jL95nneBb5v2zfzuXRtxj7mO8/n1K6Zt U+u++y5TPYLB
AQ2Aptl0cAh8S1JZYYMzxOz3xFSgesxcwNHOjKvGYXu/DnDOlfBwxLH/BVJJ gKYdvPnWLxqB
CVd88CUePXayB5zXSAEydXO0bvvmn2Wu3x8of+8cYOmC82E4uJG5DfByAGwJ 6OjLY+5bZx0N
4PhtHgPg+Tx1M7/8xkTCrWuYvJ6NOmqTK59dSjTh4JnQcA1Qanf9oNelWjQ2 mBbnYPFXHTPf
lgERdWAdTHtnznaB+hY4FLPPk4vHej6g4saxNOi87/YpJcyYok6EwzjRnZ4G LK/uuKTOT9h/
PABhOwCzsQ9Y2pwydVZPnQEATgmIAviYTt9ourngvDQAQ5NJtqDlkFWBCGEQ CUyrfC1TPwQq
k41vMC2evrK7JrT/tLcADw1gPURgYUmDCIqBDxTkMuDCQll97u+6KDCsAwhg wMIFYOPS/b4t
SosAsBAF7XoIIVkXAoBaGuA9H8rB5Iu0gYYfRAAoIY90nRWGyMFUdz0Rw2AR 2KVdcMkxQ6Ay
FXOD507O3O620fXSL2b20xQUMojDv4CG51EljAHFAybyUPTTz++l2ED3aCiL QHkurQHgsIL3
Xe4GUI3F9Z7HoSJUgweAPAtIYODL7b482IPP1WzuhOo9dcO3E+m0QPg7WB9P F2nLMhJDIgY5
wK6o2OYsWvcdr2cvPWCshC8ZoIKvQfOYIdUjVFoMlsJzNJCOAQJMjEOBrqut fvLsHsS/Biga
XTSgYIV5K00EsC+eBc3Sj3y9T31/pteoDLjIYP+W/tnkMT8GUKm3N3f0b91w 7kUe2R9i0AhM
I8YplrjVcqIYazmnaCucXXTSmesujcISADd+TAMCXgHw0vtnAZb6WwAfvvYX QOwDRLDYx3dH
Glhw4tw6XPXpbQCuLvoBDoXlZUlZADjuls+B2Re5Fy+bYLUoFx48NP7onV8A +glLTwHgeQWN
9J0V+JslQhjEMTAQWhTeWg9cm7ujWL3Cl/yKheMP+k/tOkr7QcvF7dFnxF0/ OfvugJwcc2jm
pe9fDiwa29N8YPGl0RcCyQigwgNePmHCNOZ19jnglFd+9p+pn+u1XYCOFRay qjkAeCS5407S
J5F/HwzYADC3j0YGHPAn646/N3eqDx4GgEmL/hHfdb6c8s1fltJscYRLg0Xg itLQwWhDIQu7
bH8bS/nRZdYEaclFj6/rljd/9ZT4k992HfYJsup1S+6yrrgMQMR458YHmStO BnBRMzDluCnA
7s8//qx0yWmjATx49DOte52vzQam/mWFRQpP9wcHv/nY65Uzp40D8KMmAPcU gJOnNQO45Yg3
6cnbTQAA3Z8zh33T65sYvDPu278YyzEJgQcHlAdgYuiTeROGQGVG+3uX5VZ6 /frOOFMxrMlP
rvfNLx2y+BtH3P5Lt/C85M9fyryy47ouWvqZHqgIFQjR/dd+Yedjb7vy4z1X +41fNeA2oVR1
+gAXtd5F84Vb16Nut7zPVt8BHNmn3r3rWi/sdxxn93cTdx21aeLYXlo4h3ix Bs+EdkNSy0BD
ujd7fQ6n1fXRB6xrkcEnrUbr1ZteGc2/zIRu+22hjs0zydrPL/jb+t5cRNs3 BDaKm1dIq9mH
voq2bvX11BUtFVNxc2MqgYtPXduFp305qtiOuifkxFkN+Espc/hABL7/lnGY e9rUdVe29TVf
M1BoX1JeuxTu/PvYcX8CIq1RY1ODUoKtEuHv4BG4EPR19w7UHy/vi+uQXcb9 zba/H7fWUt69
YlxpMxCYFfq90EvOLXKq4jLVXvTVw+6pXb+bGXzbD5Ob2Sn65ks/3GOlA9k4 vW6vn1sbkrpZ
q7pnov4z86w1X/fO57XFUQ6QL3sy0JT0Dbi059VJPkN4fj0IHK4O1MBS7TLW vkTI/jIZBACb
ETY1E5kTJlllB43ALi1AlcSBhnRyrS5lkn5LFj886pEpaytFCm6WFaFeqZ+D J9l+nbZYT7ZN
c8nx76zfzbH9vl3gevlmjq0/8Nx///qYFT9hRklaD7e9pSrnyOhZ8Olk6aK1 EPhLlpv44ELg
HosfD6T0AYO83lg0sSCP+3h9BkXVKQmc+4qqrp3tGnx1ADB79CbLp0KxJJBj sAhMQ4RLK4UB
G0ZsPppyO2baTb23/nutX3O/XtgMlSmMLQL49La52zhOLkTB9tiQf/Fx/1iv Seq93vj2z59u
bildedEd//rBicu1sC9nM+tmksyK1wPANS/HE/edAiTZCN7vGb0TAHzYZUq7 1gFYxC8K5rQ2
A9g3aADg/Z391tD8TzS5ec9vCvtM8ZpT4a/nTgKAV1X+EDz3pdr4g7EAOmaa gUPmfTK7tvGA
CADLzEtA/aOWNgkcgHuWpDB5n/4R+/NduSWmsv0BLcA982oCSx+omY633sCu UwBg8Stfzo3v
vfe2APBop1Fz5sNvzGuYvsa5vMryLByRLovwdxDHwFApfqAMMZZGT7oCwMIz WGnOMtXzBRdp
/uZ8XzZX0z/spCt+oX9t26zgGABdMzWED1imSRIftNft1gQs6tdh878sycev QSlYDjDn/zLN
VtjrDUi6RbFOOfrxRQ8MtpROujbsvjwjfM2+33BTwbqXsDNaQAdUGWfc1SD2 Ace0tr3x8KOZ
H/8HeOiVGRk27Dvwj8Dn58b8bseR4uzWw8WO9yciTFssAFzwWpEKmTve2s+M whPcov/d+YH6
xiQAc46MFl5/4NXumsqjlx8IvHqePM26fQ6v0TvdPBmQLDaDZOwiNxv6EfDl lTOkYOWJf591
MYC7fhMSE6z3wk1Xn4RzxzeXP37kqOn6efXtD04BMOv8JJtb+OX9R/4KwFMz nPqvn3Ks9Mev
rGkiYIUsOnYwT5g0mAQuVkUGMqE5ASJQDIzf91mpd8EEzP/fS+7iQGDS4T8E gPm3zdK1mO+w
CwDQjr8LoG/7p9R64xjM+kNbt2L4Gvf8LQD89w7TNdW7ZjygXnUh8PjfswXJ uX3UJTsN8MDa
chEfX1SK5eWMV0sZLueaJiMoHx35n0EOFBP3eyNSzejnTjrzEABAgLLWHb7P cH2TYXAAH+Oq
eoBeo+q+twJmHXDZ/0T4Ei7z4OwXQWfDXEnstq2WFK32TARs1gRw5rsywznl 9479qN+CLon6
Lm+8EP/vhQD4Wh973afZhsyY5M+fmgg3XGv+5zPeDVfNPOsDgFH9McRQn6oK A0vOSzUY2Rra
uSn7O+i/DoTady4uEvHnH4r1Iseze7YgW++POQAW/F9yVGeEttI3u78Gqvgo /ZAyIW3XvPyf
b11qa9xhzoLVPopwaVBAA0AtO3/AuIRI2YXN2WA1VtGA6+4spikt/ekV9wFI XPySm9RCqd/c
DqDMgAKeuhVzzz0dX5/3QdHVD1A+v+6vAO6+wbW1rHHVAkmVgad/nvC8PJt9 +xdzBnheyAsu
uCQ5nmKZDFzXsCzPRlSU6ub8ciPebLPGlu3A8qYO/1tn/uR9AFB1d91+Mp11 DQgc8HpFM8YC
DuqfbdN4D6/eK3ixC/70oyL7+jk4+MF9C4Gql+/lXKeuIQaUSp4N3PViqHT2 bafQDa03AQAe
p4wJOCLlzHsfgOv5gvPrnnvg0C6k/gI4ZSn92cn33BQzYx9+BlhOoQgkwnJW AR75Qmg/7Y37
q0Tl2ll4NmPaLz/8zO1q5Ms30b6fzu327u9RJ0klC8AlJS/+1sv3T3WrrnsW 8PN0csf3X/0f
UP/aty+0xh3mhGyMBKYNpgamTGGgefgMTctgWVhzwm55e7zzWlQ/Kag9la65 +BTghO4q65Tg
3M4pN++3LUQ4HBb+WTQvuha4vm9S8uwdEegdc+OFaL2uQadODPU8RseKHnB9 1JNOb/j02ZbZ
F7y7+gPL8phLXCWtUabAusj7BYZ2vBJvVyem/0/ZqE/T5sIe17M+V3eafDNP 2W/vk8GxWHcs
tJzeNv+OqWmfvx0tmgcDlOjRtx2fq8UdVeGulxqA3S8fd9flLT9pdcotewC0 rfSogOlXBOAe
pXDJedhHujd896UA8LV/7nnYdhuZem4PQImy6Ul3t2C3wxaOeROQIs7Cy34H TDuy2PjK98DZ
AQaozUueBTxa33fOr4BrzrTw5I7BA5qn7wgce5WnpIDaRVUSFMApyTrw4sKg enMjmm87QpYe
PQIpC86ddWjaebG4fOffNUZbqawZJFQaRAKzWnmgEGWJtr7+pIT0K4t83XsB jyfLx/0aqHm4
7BrCC1+NT1z4C6j7fVF+bluwntOAcyz7+38AjNnukjMvBZTX+TbgFQepm44D ojeP6WMxa8H2
i96eiB+JT1bNXbq699OJGks417M5RzRc2kc7LJtj3WzU601c/ZMds9lCSKVt vqJSrC36vD6D
tWTKZLtpN1KhdMrmLIgqG85SsGjTqaGMoJ4TjXjKpWmL5VXL8XjPYW2HtRlw nqX7jJLnoz2K
ylAhQ6uwjqb4dRUhoSzkg17ItpNSIeqpZdqR5lfLtsmiwkUKb739+AXp+jnr MQZWhN6fyaWK
T+XMP4wGokvMA05DLfBhY+GsBmjSMTdw/tfOBstmTMDi+L6yCDBOOYDOREPn UbDZEx41tM93
AP6leOUfAoff2fIpgFE6z/24Bap84q+sJbN2VAx11DkoBkYfep/7zJUAJ/YC gC1ZwIKp6dPh
0ofeH7OjOPBA6K3vtM/h9LANMI5sAYBe2+EAd5fR0AgL9bWLlUWAHxV5FAD/ Unl5mPMag604
jjUIlQaNwBYHc8Asx7wd+vRTN5Csru6qnA2cc1Z5J+SyX+UdScDsCCudD8iX LU1GAN2tiBdk
I9E7AAgv0o1AW8/9lBACPpVp6jgYwgW3aOMsfMxUxo0vlep2eaw68e7qBI64 tqw7Fm0yvl7R
lixeMGTWCSi6VTP3bJ0STKeihDvciB5I+r1gkq1KWkE9oCt91U7ZC+dVJuw6 WigbcRiz5Fo1
rRMzdiAbNuhidUYWODrlM8NWhdVDpsoIrO1SgYKckaSeRs+B5oUKNqNBkV07 G+e6FYYpiIJl
iqYrqgrl8S44xpF1UQxxn55SL0bWHUrJaBpV7mRcPh0+8TwAYNPbAsDHJU3b DxrlKrXzQ4sA
kYvTAAc2llSBxqK/gJmuET3C8zkuFfhqwQ7AQ6qycy0w7Ull8UsHY5FuyRNh CBhb8YOGzSMS
twSHqQ+43YCRD1gAxGIljVZB8xpBA3uIAHD333nNWRKoF1UH4BkzBgB+W2KA +qg+FoDDNc6K
dwGa7BcBgArJ6zGnbrF6M6HSoBFYDVLuqIFS6wtFBbpWcueHw/fuAmyLR9/o m8P3hlHpq+mW
1EYBwDH9VzJi70dK3gwDwKilf/0iuRDJsVqgryZv21UwGdfX4mV1dPsZYzqd 8RozEaFzIBPa
9jhQNM3oHPxKd0QzKFN3KY6WMpRlFFm7g57IOvDygaxp8ZkqvVCddt1cSbDz tT2V6lwpWHYq
SgaW5DLB7mLGKiXlommqXiitjqrYiVBZ5ZgkW3RqrN76FOdySW9eg96jc7zd 0BoqmLxlJEK2
XFYrUBYrOdrfNbGgSioTaZ/CcLAYj6UoNVxq8lx23RrY8XuRA4tOgGneaXsA sHRXBIBM0F+p
A8eqcvOiUhBw2ZwNAA0V2kBPpWJ7GJ0cXy51cDavUEgBn39SJ+lHucWQpDlv HowKg7wE0Khh
3HgeYGA5nG0zMuXnAUtzogAKboRFB+f3944BIALArBuTfl/44It/rhYoQAhr GoBCUc54QM7m
owDDQGiqmABbqloEANV8qWHdnYjJECINIoGD4H1dA40YE7I4anwlbmtTDvYD wI9naB4t7rJY
CroodY+phioD/bNHMaGqLNOFv10A4InfUTm6XHvQUjNfDb2aqoXjsRDyhg2B ZpIJNqemJV0f
gMC5kEu5oslaFi8xpslXRAcuE/Q0ofHrfZHSAvq+Qa0UdJlcgA4X40sDO9oR PdAZ4XSp0NDp
cyTwpaDtyLTKCDnTX1KcfFDJm0Ha5TJhkc74DLksU0IeUqDkCpQp0Y5LcQ5H m5wLmrFgux4r
GA7Fgfb38gxomwMl6rY87ykfPLekyHS+r+63l//sXnnd+/F5Ste461Z0Zcv9 wS5iZpz2VSMc
oCvcJQK0JVQAdHiVgoI6I19TBFsN9ZkCLUOi52wDPIuIw/XkjCpZZ/77q0iE 9ks5sA47K+Bv
r4JZlOzFE1kXWSrbAohj+SwAyZ+yEFVodfEYAE/7jOi0+xE44dxGDgKX8QBT rFQABBtVHwM0
vBP6APBotNqVeoBi0zQA6Fl2PbLl8PFFhEmDOQb2TGYgL6IQSu7x++U/T58R KZ28V2362PGS
CyNuJdAfzJCMg3EsfXz9+2PuugDA5RB3+tHkxtzujUu7GwNzqhdB0kr+nMAB QT875nZhvlLH
S4sGCN6soSuCx/sNmI6f01L1lkqZDKMJvDbjlOuwcPn+KFmneuuK6eP7ZM6z GSlDyRedVwcf
Z687fpgp16+09Vu3LLsAsB9PxT84mIWc61GpGsC1RB8Aw0LQBnSa4TA5RnmR iQDKItsAvCa7
mspabMIn+dT7Lw7yVOH56QzwImVN3Ba0KLd/MhE8ZrD0FIDVKRZAvA0ato2W +Y8OBJ49part
z9M+CZYvrwK+ytQ5IkB1xUQAaG+uoYFpD7uZj3dh0NHGVo4BbEmyAYBjtPWI szRkb9E4wqXB
m0bqobWBAouCOWMFQ7H7g9rOv/5++raWSJkqmtjAPAjAI4fscQ3gaEzuL3eb vdlrgVcydcYf
fzI10kOzvjgmF3yFGZD8czK2DAQ6YGwz+pC9x3mmu3oK6F6X0rc3YVIQJEvV gl7C0AWOFiAZ
x54PrLC/UWTT+LvhM0zvsZwvJgWz8nkvXlcHaFFh3dsyOj6stFdbo7aM9Md1 l1/+D+Bdb1DN
ewMUkzUBNDo+mgXC1bQHNLcWL9GBP+0wvjGJ15LhvoPmv9fa+v4LlE96CY5K jfrw2m48McPt
2Q1QXIz+232Z4h+W+Hr2BWDaPgBJz08BOxvCM891vntzY238YtiRyitAz28D hioBnCx0J5cC
PFW0gaOPSPKXvvS///4fa5lXAqxelAHAoYPrs+lCKaISKg0igQ1PHChJmxPR V5gdcFK8uB2A
V2g6I+P7Sc27GcCtC2btDiCWtcfhDKv2oXlIsbYQA/B8AGUOezGgf/1O6uVf spTFYTtKW3gt
gMv2POiwla0uA0Ccc+VbprU6Di/QDiNo1kSR8jww1rwjbq3d7C+9QZglWVbh s8qF713aBAB0
WVp3j6VNZqX9LjyN7XcInZPh2q866ugjn5fbL28CvErQACB6TqAbUE1VAS7V fR8dcd6Jd7va
uTF8mPW0o7kYjbETtuPisxGxBM69e5eDrs7T+imA42OY4lWHH/eAf0nzUQCT ChYByL4EA5xR
zFE3/ODnab34ew4/WCD9/YQTD3vfteUUEObSfcf+GQj0b7R4WSBj/vS6381X e3+vALaiigDA
2MZ6BFlxcilKqDRoBE6g0R4wqRGTCq4wO9AUyIk3vP3IJS+HaCmMH8VKTQ9c esWBLD31ZMDX
GWOBE3Ni6I/YhtXYqx78y4l38ZTfxV7HLPL1Xrn3efPCrupix6OWjHn+sEsP fTmQOnVlm0sA
AFXorn3woAQD2qJ1XjaTguVSMpu/9JbBFlNrnFloX7fwF8siwkLUevRYNZpd aWeTQqHYP2z4
/l+CrPPV0q+Nr39/FgDey7IAkO9uY4GOT3tsJPe6wSimv5jL6if9Hdl/Wp2T d+svY9rXqd7b
EU7px+6cXuCAv3snwKhw9in+ha3OEvkeAB3G/E4AC7/yRGCX2+sXJPoqc+v+ eiZwVjjV/fpD
2X8H5mVuszA6nOr+vBsdlZlpCsCoN3ZpYxK2sdNdZwHIzO1aAADFrtx6ZMuh KY4EcgzeGLgK
FXnhQOeK5Up6hZ9X/I5/+72l0vfmOcW3D8FjP+3inzdYruk8AHZflAGarnwg 2/fgidPf8H38
fK506vu51DNH41/nP80vMXBIohwCcO/0BXR5dinWe9jtqxhhfsColHWLe/CC R8ZYHiWYFk2X
WdpD20WXD1j17NaLr3xxXrV4/YHLp0p0yVm3ZSl73Eoe3HE2u2ynk9MOeOTN DoOdfsx+ANC0
fVwCgO1aPqsCTmwr7OWGcfo2txsps/68Y4CuY+XsscvK2PtaN1nTwSvte/zq 5rsjZx8yEQAX
T8Uv2+vBryIHH9oI4Kc70HUA7ihXJgM4dtpHM+bu0HJkDEDLcw936FMO3Kaq s1bjsP0Lb6m5
3RG7Iy/sBACj//FeX29ty+EAgJvO4FgAOPeo6vUwjinbZAiVBgeUB2B/+4N3 pq1+7uSMNf2y
FX5f//qSytSTfnq0kJp4B7Dw8RfaoswuP5wO4Om7x7c9A+DSpNt83dIXP1xY VbP36deUK7ud
DODJ+T2++osOK3ZcciHQ9coXpQ8m7PT9g1fP4GMIE8MfOTRw3Z9jAViWw7I0 Z3mZC67IDnbO
zJ2pM/ZfMe/uFQ8aj+2z7tvWlrRmhfV332aUrawcblb4dgCzYhSyLhb2sTN/ OO3b4p+9Bu4L
g7oaaE96zoxJhEuDReCKsqvR+trOA5213JUnEV6Nfg+Alc9OAICuirHdsg6m rJwUr7VlhY7a
W0N5FEaNbr36dABQ5TV6LCe5S3UawJX/agSvarQMhp51zu2DLqRXsttvs9KB S97M/nffrViB
lb8Ei38Qyl3zU3yTxeze6zzro83gI0jGNrZKR3WnX5pIuLS10dnYb0IXFdWR Bt5wftXguQMs
AOCq+53Ay9XCqpP9y/n7v19LhQsuptyXGD3R38Yy1jjjYEUVGgD+kH26lmE8 x+GZjt9cNfiS
OnBVv7Wjb9HtWFeyTnrqlsVhLPdNBEp5dnloskf5zDUY9DrDrT8bNyxN30pV MinC362PxmVj
YBcmq63ngs4Nzj04dkkt/fhcob3H1/rjaet2+yyrxp1zu4KCZHHskssuGSq+ vhVRZQra1nra
6hnfnaW0IS1vC6aX9daw0k/cEDauLeSqsta1JIUu0SV7RQ2aE4tDo51VtlD5 2z55Y/vcQlLw
ug69f5UR7+oXR43aZXrlsb/8bWebZXsuvWRISo3pjQQG7+ljb6DLKwSST75a qGrc8EH4BmHt
3UPi6HSMcGmQCGyFkVey0pZ6wKGT3po1T27xH7DbyscHitArKdSy6K74DfkP KH/b6b8cmlJT
w/Rgul0vXOnXjjuun527BR0p8T6dUGmwCMxlI57q2lvsCS0tP0VfzTrDn1wa aoxd/K2tduct
13K/vGyISo0SrDDpO9+i7OokkGPwTGgd4d7glk2sX4N1hj/RQCHZIi5XbL/4 qvmyISs1iy2T
vvMtwl6mawIRw2AROA7FpuwhUJdaroLScqvv30NXaowWY0nfWS6OPkMkUhgc 0AANy7Q2cAyc
2jIdwWSqh4XU8v4i2eF7OSyF44kUBo3ALmzR2cCUKFuGZ6qQGx5Sq9JNonJW 1MBqgEhhEDVw
Be6GDelKW6YyKisND6lpkpcgfWc5/FGSk2PwxsCFoC5VNmyJ7BbaHJepDCm9 9tWrzcc8NMvc
fq+xq0mtECQm9HJwtE3WAw8egWVMmMMNCebolldRho5svr5k2nuPJENPVH2x qgedosmYbwXk
vEKESGHQTGgHWYEZEhPxEWtI8cJSKv8548bJde2r+cMpEcQLvRy8giSRwqAR WITBx4YEc5Tm
8hBSwLCbzRuuu+SvieaXVhus65ZJ+s63kCsNZFp88AhsQXMtDkMgNbdteZWh NLxI0+cAUyPW
ag4CvoEMgVdsN1/le0QKg0ZgE7FUKrAeu3VtcZRK6sZp4A/+MnvA47Nv7tiE 6jh5HgCoUtWq
Z7y+LJk3WY5yuZwiUhg0AjNgTSbLDYHKMN7GfUWePezPcwY88e6lS9d645vH rc377lkOAEiB
rlXPGHwVSQK1wpeOrrhECoNGYAe9NYp/KFSmml5ux7eecsp633dztPvkAU+s S01+/tjaIrQp
2QaAgrdaauSGCE02A1qOMO0nY+DBIzAPOcUPCROozInfjoEff/uV9b5Pqen/ V181g6KHFa3f
5Zn7XPRf6ckAgMUzFw9UrFiWAMDrWW2pjZEQiAZejoLFOEQKg0VglwNXyw4J E6jiLVtT8f79
V9ztW3+joJ9ozxw8efdTFgA487cA8NnBM6HDvWvydns+CACvHbz3xGPfBoDK FdNG73PcXOCg
x7fb6U3gvF33222/1wfQwCgC0JP8avQ2DIuMgZcj1uxwRAqDRWAHMM30kKgM xy2bXT3o7PuN
+PqHVWZNAE8fFTnnkBnTATz9DgDMf7kbvHL+f/c9ljnjDCBxkvu7i5ee9BqA wx4Ye84RHxxT
wZT6nl05HPj2b26/umf6Z6sVGx3ZDfPIAAAgAElEQVT//+xdZYAcVbb+yq29 eyxjcSNKAgku
QRdfyAKLL/DQxVlgWZaFYAsEWdwtSNAgIbjDQsgiIRDiNj7T3uVy348JQZJJ JmQyM+nU+TM9
1VVdVefe797jp18dIO42Yu0iXgHNn7E/k6dJvleth4gFl4pphOsVdX0JVhfk 2DPKtLZkO32d
HQTw0DZPAofu+t6eYCoAwIUJh2mZHcaVez87eb/7W98Eth9/x964/qPnJ/TB 5AlX3nzTNW/d
Cbx1zXlA1aGfreUJ2e5bhgMwY+0bCkbYT2b4xS7QVrB9LvQUgKHGEg3iZgWw 18lmJlyWWl3q
GDh/Xqelem/hEQAyRlM5dnlnT6A9tYpHBLR+fBgOe+Z/X9jPEz/ZGePeDQPP HHsYgNEX3PzP
kKsCrfz332+DQ+auXVexYymZCD2RjZQNA1CVZf0Wc+izYiBWmXzNokGLQ2pt MxMSF/MZvq+m
6hLbEjFs4kVJg2Du8FUkw2eNAMWZEjEk3QwGMpYWziYa40ZFxpOIlqiP8nSO yVdn7bynx+2s
oCBVaie5QsyxaS2cF9kceCkvmAKbotzyNtsSqaBOMUJWMeESj7Jojw1IPpR6 DMBAMqR2UX5g
Q591y+n51Qptfm3F1qOBpvJ2wVQOrf4EZJlOz4krI0cAOPTiPUfsfMgkoDWY /2lDF+0aWMAk
dSaOufrw7XYYvy8Au+n2sGEpi+zlo2gAJUc+8dp2O4z548aUVeRs6c5K1xB4 8I1SIM848ZZC
WLdEs9w1pSXVLLElUl+ZDRcMI54zFcHwzGhduUe1uAGG0WwtzDfFVVnQpGSs YIq5eF6C3Fxu
58NLh7fywTbXEj1eSRbCgtTGgW1jNV62OLm+XDdkiuRZvoEPWPmqloJY22SH bDEd5XMJ09A5
i3eseD6mtZblE5loa8ClWsvamJKVokNTksYrWTsgGq5kZyMZFoxsOlbbgEKA Mi2ZCuZz+SAi
WRJf3CfvcDIxFVVyiC5oQrI6w9uCQ0IZkxKUgs6xlFIw5XQ80EYkIB+NRb5X fSj1FICz1TDa
Bj84yGDolMy5yLKc6Dmi4fFw8lG3qcxJJdRkaVMoz7GRgsTqYUdnbI7QddUm 18aWthU4RiYZ
L2yrlcr3sm1xtE1YywaXC+hhm24LWRzRK/Mhh1XhZcsyITeXaGL1EFQ2HaIt jyJsWwQiHJf1
0msqg4RDizv5Ci9f87exAC6qeuXDmX8b/z5XQmIAkAWBi1oQIBSpxeC3X5j/ b0RvOXxpQ/Bd
LW/2If0HtxdbfPyQOXNuU6vu37/zXKMQ/99/dVEkXjreoIQyHhOEHkwFUgHe iS0J6iJxKMXh
BLsQyCQqvqNEo9zNUonmcA6hJOJ2YIkSysTzVnh5haIFC3W2qNp2gHOEluUe HbSUHFyB5rxW
QTN5NhM3OKHOohXDTdKGBMYRGsvZXJbLW+FGQ0WeKthqsEXw3FxYUoxGwzHt +kA97KyuUZRq
0/MprxBGoS3mqYzu5IUky9q06+WdAh+ItSqmowJuwQvZUjqpyikhR9EikTKu 3lLCO4RLoVmt
oRuCetoVuZQVb2HEfrRnFwJpD1RGgVyXswMlPpR6CMCejFWKG5gpJu1EXovq wWyCcE3hcBas
4/ZfxggO61DBFQFLMmoa6EA9I/Ic0RjKglbbFNcpFGjZEy1YRDHKSMEkVjgP yYk0ihFTkx1L
yFcvi1j1A6yITjX1ddvqCgKt/MCIukxcudBMc7qoc5K2ig+rnNtePat9Y853 1i5yyN1/nXgY
gKOOWtH44k3HPQM6AAAmcshDA+2gUVOAvfbCF5/fdMHh/bO73NzqaDXcDyLa NbfDD1/ofnnS
DRsB4IpUOR1NtpXQRDUEw9Ut16B0jaSZlFSwBYs3VZb3CvlSym6TkgKSZbkC z7mmzbBaCkYq
RktszrRcOh/OM86KCE0aOI/WXdt0hSCIpnG8xlG25VIqwrrYGlJBc2FOYLmI 7jgS59QWrGgA
g+rACdF8ItnHVUjCUWWJElxKDsqk4JVkCF/iZSMelEC/xrCe0PUBrMhpllsi Uxx0LpSKLBvL
WAXiCSFiO26IbusvuzL4+oAeEcN1sdSAfEGkw20Sr9EMLakB1S31DIHhbc+j XaQLpbxL0UbU
I4aQn1jjQ6mHAEzTICOfEwWb8jTBNEWLqGac1wsuy2vcMlbTQBkOkRwnZ6Ty McG1eL2ZF5r7
p8M0pbeJDhu2VMo2QxXpcIxdRWSHceR4E4Fjt8YFN1LQSrRKnR4kQHXoaEtl wIwIYmuEc2gm
FY7yWoRm8iXhXNiNCFk24B6xxrgbQKfzK8644PXDsOTE/zuutnbiV18BQj0A LGMtBPHVfhyL
6c6fsWvl05gwoe7BBUOGzkeJB/rCZ+pBAfhwnzd3H4xht2c2gmuHT3M4GI5I swUmIlhZOmIq
NsURqimkio6QVyguGTFidrgpwayooFIJxxF5WGqwVFMl2hO4vFXVJEPlY44e rBvU1D+ZVuNW
uDmsctHGTBmoSCpMxGxpYDlXbTQRITmyrgrLtTX9h1pLDBHAGZ8Y550FNJSv Ef+zWoVH/9wl
xV6vrfw3VaP92uxbqg5cc9ddvzn6tKPQHO9qJGxydoDIpD6qxRsq9HS5aUpe c1XOkxtHNiqF
wmAjY4VycUqZ/mFQyA17kNLY5gFZh9YQaS1XWaIFDFemJYfA1kRXrq+lGsvU 0hZOdlmdoSk9
lMCyfhwWhCpU5ddTiNmILhD9m4AB1r92q8Hid08Ehrz16U648wUmAhMPnVDp fXVDyV9Q8+R5
E+C9O3QILj/uuot4PHfL6YCGd/YaaF2zO/DGst3Xe4vftD6Y3HkOT+zg+Bpr QSViqKxs/wSg
3QhQAaAE6A+INTT6oAro+/O1Je0Vn4PtpVF+YXcIh0ED+KnK+vpZKP7WUuHT FmrEWouO7syl
o3/5zy15wXQ+04cDg1dPqHV1QBoA1OA3FbUGAxjSXvv/l1NoBdP5hJ9AA4DL jxgzMfh27QXA
ia8cF7e9fR4yYCMwsbbka+o24Mp39hlKtSSfAI599/LpJclvDr4MGIe9bz3v /n+E+xaWjrtp
vbdI2N3o+P31XtgxsJIOcfwp7AO4C+iTeWykz0f5p67puknsdN4PLNkADv7y 5S+cM04aCBz2
wvIvR/1BLBmOsTce/OXM1Il/HAUMeu/bd+mhI/YB8MjBPy4a+4/DARz0+qqd cWrflVl98Ab2
1G71GnUI2ZRe+UsJmCX6WiGMth9hslUR1TWJrZMXrTz3yqowM7fLHuzMF+hO 142byH+0jqO5
UNf1BtosW+vvoPoK+hdQPfFz5s+Xdw62tutHnhQldY3i88aXevqvOMFI3/q7 f+I3jsTUWbM+
6PS1NUmsWvtoqFv2zbpOntfQJXerpJvWfHZhOw7VGWUXAMP4CX8+gDukexXp 1BgOc6Sbf3dt
rd9k8se22bbzzTqO86I39xQDqzp5Xp8u4nb5L6R6I5ALd3acfcna14E7pEe+ 4YW/AeNHf+3c
e14PvMRBwdYBW+PgcWam80uCb2T2d+CO6J5S7D4wq+FyKjSjRxKLd5+87dY4 eAo/3E9L9gG8
yXS3puVOgejaE3bjWm7ekt5+C+9qq9n1AX8K+wDeRKp7m2s7eniBVQgOaIy/ tnQLevst3DIb
tMTOj5/fgtsH8Lrphe/NwKWgPJp4R43Vsi/6TO02clxqa1msfNpcADbu6WMe VmZKFHFNXJyu
faHb32HFzFQnz2x48fHf8fsrr3p4ce/Er8T4tfV8AG8iPZBm8vvBdWkCT99/ pJm/qbvf4b0D
53ZSQLSOvWHdX3SYznr9Y4D+zrmn98rB02H7BeZ9AG8ivZJYfPEk4upUgYKE ySnlnuXdPo/L
0LmqiDVedN1fdFhP/uFngSEfn//u8t44eJwu+wD2Adx5WlfU0fsLyPCLQFG8 R/H5rP7nEVLi
/m57+vZ9lwWLTnR08AC33FvPt+2U+9W+LCUAoEzslXWPaZ74AN7KaaMCOdYV dXRTXM7uWx5Y
YSQstSBH3QxNPXtK/y5+ynfKRv5nZem2ewHAi6+JwsQDFQDffDQzvstpNFio AGa9d+R4/Pjc
4gXb7HkMALz/9vzg5LFPT+4LLHr9LTMx+XCgvqUvgMv+ZEybq5937NO3tYw7 aw94Zx3u3Pp1
2R7/AYAH71w6fu/DBwNz7zl+2Q0Vo/S5B944HLTRKwOZGD7v68A+gDeJ5r2/ R4HMr+ddz85S
ykq1rUwv/eGTLgWwzdWfOp57JajTjxwC9dRXKgZ/cscxjwHLDlAGfPf0s+/D gwE8cda4U7Fs
kjZ5wvsPz74dePGC7P6zPx7x2jZ98fGJjROE2dOfOhqVYRrAjU3fhEZ+dsHX 0/fc6dZvFoN+
tnHJ6PO+vXPRLOC2S/Y8ffFd9701GCsfb5rLC21eLEYAB3JPD5TBrL2GhAXL j5Dc2olsGlmH
Dum789DR5cOHbbvtxLHjxoyZMH7MgQtIF9NOlWdm3LpRIUJewZ2E5E9gZhNy QHg5IXfgNnIf
viN3488FQs7HHELIARQhK2rGfknIk/1qviBkn8Qsk5BjQUhd9f6EkKraaYQs KotMJ+RKzCVk
uPg8IeQWPEfmKKcSQp6vPpCQt+J97iGEjDiBEEKeY2eSHqN3J+3/xi2Hjpl4 51rfnDaq9jbi
01ZN2ORfmPPWvB8///y7D4dWntYwd9l3C5fOXdXlT7ld5WJCyAw8Rl7a3yKE PIgXyXzcSggh
5fuRh7D0wUGnEULIXXcRQsjfqBbyPP5NCCFnMN+QV6nrCSFkGaaRQmQ/Qoi8 PyGE9BtECPkI
b5HFcg0hOVPHceQKfEJUQi4MriDfxnYkhJDBexFCyA+4sueG6HGl8g9Cv36j QtN++81JI2tv
8afw1k2bnszwUz10LxqtqNhc8mNoAIAafvbxhx66YmVD60whirnYHQA+lUCq p7xjXwoAZ+Lt
lkzDG1JrSQN2gM1Sw1wNH1WE3m+ly5cxS6CweQD6fgDQdgiAKCQMiI4FGFeK qZhD7wTW4gep
i2uQOgQArCgADDv76TGH9piQ1De96vLdF/6He+WY31qhQfyC6r4O3FXOHHWz Bet5an+AUOWs
AJzxURMf5yQKZnvjsv4Ao3+2xwu33g7gg6u+LuUHR6kQCgiCcdlRMLBQua/J od28t2B1Vl17
2VkoAIKwAaMSHgRQwHIF4CxEPIBAAACjHSH7Pnh/jwGYT7L7XYFdPqxbK09E JHF/BvsA7iLS
qOTmc5fwgGe7hoIz7716XL9hzxxtIYGGKgDfYAyVP+0a5aFxxwOXeM8NjoT/ 8WEVSrFojAvQ
KCBYP6NfYx/PKU8DCgMADgDEUgA82ICrgaZsIZlAWXtdgBUchQIsAAi2v9SJ u77eY0OkSY3l
AOJkLReYZbb5SYJbOXXdBKCjm69hn5AFiNhKD8S0I674wzAY0FGBHwDg0JsA c39cVHI98PHs
A/auDUOLAKNRB47DpwB20uiBuwwYNOT8pYCTAtBesJZvAZACBXDvALywHIOx T+ERUALeVHYD
194uSo4BwBfJHgzF4j0xAMAmayXvW6rQ6aJ2DZv7MX1hfgsHMGWGN9tTit++ ARZPULujxAXw
wxPgMCZxN4BHVxwICjH0v+jH45AIzQeW3vIa34rxe976LTD7jYCL4waeuBjA Px+rAuhEu+4I
QJcBxBEA4g23g8FVOBx/Fu6cB2fqe8fTq0Vs0D8AwFL068ExUhAAwMlrVflL yE6ni2eXb+6n
9B1aW7gI7crU5nvKPld8Wj3vjjtrsN8Tpw5c9t/a4NTwjtMO2H889cD4owE0 DMNZT0078sBJ
z4ZKXlAOufPi80dfe/jee4ffZ8pCUKacMOkwMv/9O4fCq48BQD3qqtDUH0A9 0gDZ4fHHEo3z
nuuL2hfP32OsO3uP2wFi1wHAyMe5z7aDhh5sYG1kWA42t46gK8M1V8OmMbEh /Piytg/gDUh6
2c2mAy93tj/w8Uf7PXgycEHw8wXhqw85/XUN+7707LuRc84HBh9bBuD6J1bi ziHL6k89lxMX
upj48oyPmk9Xr2CAowY+TFaWP3coQP8tDuD8XVAGTBkAoPIflUD+8FNemDf6 jt0B/GHYrNm1
5xwCYMKUfQDgjvFqGQCEe26IGM/MgoNu/0JIbS0BAJ6Pt+Mymzb7+nN566Qu c0iNSJy+uXxd
7pjjiDtv9T+NhBBClhNCCFnS4SUNTy4gDiEX47sN/3yfCzd0xt3Uoi57l058 nfzVoaeCuIcQ
8hdU/fbk04cnbvU9ob4fuGsoH91sPYZpWQC9za+UuVoAQMchm9oxk95h8O7j 40d0YovbUKbC
t1+TLitdQ3fi69ivDg24yBoN4LABa3nZpULI34F8EbqrrJAlm8+Mkdpo6XzA BbfssHv9W/mr
OnFuMrf+7+dOcqeW99wQbb89AODAA9f6RmClXlLUzu8HseUD2GvdbE2e67eP bPQ1U/u9+ilz
9J926MSpN26gN+aoV6p6Z/dMW6ek3vAcC4b4+N3yAeyUbrbc1MrHfsdFZ5+d c2KdOvOsDZ2w
Yy8dPCuR7hX5wFU+jnqMus67YIZ7m6ciFCvywQsIVnNveI4OqynU+wDbcgAs tVX77Oxm4OhW
716jKv0x2nIAHGf9ysPdTKbLsT4XfAB3kTad24rLu/RMILCWJ5s5Qqwzdsmf 122/AeKWDGBV
2IpNkT3z6h7kzexG6kStwF9UjPfDNbdkAJtka9mBG3qLrsDJXO/LAfIVqS0U wBC0rYRnfdbV
paQnujLmWK336cB+C5ctFMCuvlVnhJb0wD1bGd6Hiw/gLqKIX+K0S2gjlkHO ZnvJotngj9sW
D2Ax7e8GmyAN/+q/TppzI1Rv0VrK/RHc4gGc7OebL34//ZxWxAHoZCOXggyn 2KaRTz3FeRtZ
n51dDef1b8W8ofi9kXwAdxEpWsxnZ/cOT4nJOL3sgX1leIsFMJdK+Ozs5sGT ksFe9kh9/FHZ
QgFcL/IFn53dS6rl88AHcBdRpftTl4CUz9VuIg6ybzj0AdxFRFJC+wdfFd5E 6nROgGNyjM8u
H8BdM7UaEx04JXM+lzfTmITipuOzy58sXXM2Z+c7mGY+lzcT5T3Fd8D6AO4i UpKSz87upQBr
6z4XfAB3DZkRX5zrZmKzWtjngg/grqGygp/M0M3E2DHX54IP4K4hO8T77Oxe Irbrqy0+gLuI
dPhhBd1MDWG38+lIfv9eH8DrJYv1p0g3U9gNdDqZwW9+4gN4A7/k+CVOu5mi jtXpdjY+fn0A
b2A7SMs+O7uXeCfp49IHcBcRVUb57Oxe0st9150P4K6inO1nMXQzMfom4bfF 56AP4F8oWU7c
Z2f3Upstb4oIXepz0Afwz+SXtOv+wWPY4imm73Xo6fo5ZdL3c2xGABuk1Wdn V9H6Zmrrmnlt
mKa7ZUK1AyFu3Yeb1jqh46y4rS4/uutcP7TsB9ZvwvInAoCqrD2Vjd+KNu0l 5G1OhMc43RGJ
9V2kwYsE09SID6lSppUTNDvCsc2KZPCcmXQSTf1TjC1lRSNTJqTNUJblDeK5 ITNfoZmWFi+w
DlMIOC5RVMYiYZ113JCVL22JaKwGhtVpimJUyTUMBTRxKZMjrEM8QlOwKFsi aAsR1mIYgSUG
cWmK0BQoM1llaqLn2rKXDRtEyHGhlAhPpJ2Wcs/mslFCtUgKZZoqT8oly6I9 UgiDNiltuwN8
AHdAjuy7NDZVAWE6r5pwAGgm2g1VKWdeWOoo6VhSjjcXqAGL+iQl5IO67IRW lfJsrjnklehe
NqxRphZVsgyxCtUtNKlspvWQYqYYJpHxCCibddyQxmoRVaEo6JmgGbW0soIt p8WgJ7Sgqr4Q
jLtGQSJ6OAMGsgY2G8hVeHzWFuNJcZXCVa1wZFZo5QS1JJCyPdEBY4usqgXh UqkKgzMEB5bI
GyyzMs5IGVEtZbKCQ1llbdFMpiyl8LAZ4z8pH8AdUd4vxdHNdoQYleyGyu6P qKZr8w2CvkTk
8ovYdCEfZApZsKlCoFV2HdtbIFJKVkkqLNNKuawZFvIx0WSkxEozxDC0TmVC kg6aV1Ik4tLE
9EI6JN5jJKwc3CoIluXRvNXKRqh0yBLhcIwTgWl6hA56FMu1GPDoPEQmvijI Z2uTnuqG9Dwj
E53i07aShOLaGYdZxYYLkqPHskQWWuN8wWOTYdXRjFDGM1UHISNCOSSRqSk6 EbvrACwQ38TQ
zSQQqxt4LlRRoYDJgjNlKAlHpHSi08QpyZbJIi+FaEV1AizcMiYZKVG8gV9F BVmkC8NNKcIE
KIZPsSE+KbnRdEVG5us5VfYohm2L03mWlmHWNFiVBUmTKDeE5jjrcIasS7xr 8CyVDzoU59oQ
COdRNthcLszIlMFSDAviEo6SddAU54HmcozDMQ4Pwhg2reiMzQVNj+ZlnVPa coLn0LxFiOJk
32wM+ADuiFTWL7DWzcRlg90Q/RZiUxceDri/le9XVQOAtSXloC1bWXQdNLsw G8n3I3U3aXC6
AcDp1rS4Lv28GgCwReWQGpmiq++0iTuw9/MCwJu+CN3NlJG7IwNMC7nFUjaA JkWX8kp32eV0
pKiSGbYEfSDGu91ghQ7SbrF0YLJF1wdwR0RRReUH3hIUgkCW6waeyypbLCMb dhVfhO6IOFXw
hdpuXn3jbjcUteNZr1gY5vFFZ2j9vTvw2oxItPoldbqZkp7aDVbVPGcXi3Uj V3x1tH/vC60l
YdZZfgH37iYLdjdUQWGJXTS1VpKe5wN43VTl0oGtBTi9ZRJIdKwbmqprthsp koErcUD7AO6A
zFh6q9E9e8lz8M5mLcixvP0PYUmx1FphI9Yyfy52JJ0Qv1NeF9OGLC4BZ7PW habXyNDZImGo
bnLFZsXqOu0mkNN8yHUtbdCVRQU2Z1P1mvY/IZculh2YipJiKyLWdTtwwg32 5t1qS6d1GYJT
glHWDduWHSqWKFmWcYvNUNOF+cBcl5d3SW1EgmKxR2KvK9nazZNuyMEWwWWK hIlNaaefvwN3
QPlgl4ep+QnG66eg2R32NGIzxWLdIEKxeZG6cAKQTJkPqe4l05O7QXPQzFyx 6MAJSvUB3BHJ
a4vQm7rc+VXy1k9KxO2GvVHiqWLZgfNiyAdwR2SLRlf/eImP0fWT0R3phC5X NGlmTjrv+4E7
Ik/b2pIZcj39AJQgd0ONNgtWsaQT6lbRGbG6MMrV2fzD7PWqQLgeF8fMoNkd 3TAYq1iyaGW5
6JIZug7ATHzzOxuKjv2bRhlN6AaOBJNFE/3A5/yqlB2SavtW6G6mcAHdEORo Kla3KcELonD6
dPDd9yAjNlXn8Eo82gdwBxJ0KOxDqntJ9Loj+I2OZju5Ay/+e7XN3rIp9zq1 ybjy5N8CVymM
ALBwT2bCS5sK4AhdbEJc1wG4NO0nM3QzceFCN+yNNHE7GWP33ifBQNPJ22yK HlYw1zINTi5r
vW0vYHAhvukVIzgTPoA7GmfPd9t2M5mO2A0TUuDlTi7Nr1TIpGzmpgDYDq7t s8pwjgpAqwhX
bOqrEF31AdzhbOI3225gvxLcpwt+5qn3Hlz96Qq6ADNuKLvssa7zHp9V/1Hd RcOuxEXJR3r3
Dqy63WBekmmjcwD+alGEgvTc3zbhXvf2Xzslpo9XVgpA/qx0k9PdFNb2Adyx dLLZclOXnVQ5
f2POn/+PU/Zfx+H3H/8JwG9oESYZ1hvvuOiStU/77B/VeyH9QumVmLOidw8e zUndoNLprtm5
u3zKhKKZfOv0I9v/ndHaVBiaOGj15rxyoTWsfNzA9v+++bKpObDf7quvm7ls abZku3F9AXz5
Hj1xPIAP581povqPOwl47RPRTT773m47Y0a65mgAaHh5/g8BeqeDBgP4cZqk X/Px9O+Ywbsd
3ZlHdPzC7h0Sn9xsq9vgM6s3TlJ6Zbd1Abh0TeqO3PLAgKaYteqSS9cB4Lbs TUdi5MthINTL
7epOKNsN2UimYXVO+ZzONp/2+hfKi0cCwKop7+uEtcTXTt4ewPnPBzRqJiLT RgNI3/ScLfKZ
ZwZfuRMAXP2sy/HUzNJbRwHXq+kp44FHrjUZ1pv/wBvTMXXOcDr+8bcP7rz4 dDLxaADv3TY7
Ydn9bnr6ssOB9L3lmvzqorLE/95e9M8NP6Hl5XwAd0SqtPkm0w0/ffBoQM1U /vTvkvLVdX4b
Vwa2AYC6KuDdSaRPu7uvsV4ZsnrzWF4XGOOsKQpM8kNjUR4Djp0z41DMG4H3 3b2AL5utih0A
1CeaAZRsB2TbL/6khase0xsHz9O6QyQkWkmnZsnri2uTu2RmK9+2lAK4fo4o bKt/Tz5c/iZw
+ZO15m7K8vneiV8DOOGbUh0mwktOeW4E8K8HRi3nYyuN7GnPVqOPzbnAm1eV Z/r1yX8/7s1H
TxzLNUt0bSyKgTVUBYA3rlH7WQO4hjL7ksRuSMQS7BPGzkyDEHnkuA0HWemS nQ1vRQBWN6YM
NqnZfDkrV9WchH/Htr25QT77gJtfo8vP3Bk4f//m2zn59MkAfnz1zYX27qdM Aq6LHXbd27sJ
4dffuX4cXnz4B2fw5NMA5G58Kd/nAmrNhurIjTEvL3IBysD3h53beluf+Xjo epUOHHcJd8WT
ZQ8/8WXdaQOfBWsB+O72d/Nx9dgbeuHguZzYDTuKKLR2KvxhdqlVVnbCzfLy hy4Dvnt5dMM5
f9Fnna588MHueKZMvuQIGHu0/PDMUZgyZ0jbUXs5bXeb5PKX8dkzwxt3PGnb l67FknuvBWuV
icCLuXDlvRX8uR8qC3HLyoM99ZRjgAan2gJwo8MLV+6X+uq+lc75X8EwMqXh /+yN5y6tyX6x
YQBLHq1uTQDeqDL2VmGzpe+2PrjjSfjAfW70hMeve6llt9yTje8Db3wZPig2 60zvSCy+MH/I
seYLf5q2P1o/+CR43ICm72oGxPDgv7a7lPrwbPdM4NgPzx9YuIn5ubiiqUAU KHwRTEBomcac
MBrX3H/GUZknrs3duK/26h+zrI4AACAASURBVGFDEKqTAEoCcHbDJdvwzz9K Xd/7Bo9QTjeI
0E5B7lQHs88EMgJc/7bQjMuAJZQr94X0x0YjH8EPVk3a9Gjx2rm5GDArUTfh CgChv5R/s3jg
e40V7nkjccwXb/SZeS1sVXCBYccmRtQCtWYgD9QYYksMAGtrMeDThVXmWfsh tpc6JTrvvzu4
QrD+3L2ByXenqF+vZemoZQaX/QbTKt9hmIgvQitdm2v5y91fjSiA8uG/zsK2 R3FPVKP0ppkH
QFwwYyeccdg5R+L91x88GThkh3v2R6j5mMuBhdOG/h3GJdu/SOHkVbdMLrn6 oysuAoYev8aY
ate+N7KeyjdN32Uv6JXh68Zh1Z0TLgPGtt51xs7LHt3+cDBSCGBXAnd/+vDx wATjP3tN6nWD
p7N2NySQ8HynjFiL60oa/wyMn1Xa+MNwlHKGc8NDg3Y8CwCG25w3deaAsj/s CWBOQ2XjZHig
J4XpwtcDP690ho8EcMEJfBawhUIWOA/44tWFqz5RpDZgRSFIOQC4kM4AX9NO /mhYDHPINTz5
YYeCRRklABBNOb82lUdXpMfgt3tyENaK2mIDsOc2V33eFNElPs85XKZvvq1U VQxODXBpTSpZ
VdLG2m6gEKJV02GCDJ2LEOLmIirL6YSGGUSBZpl8vwYtqi94xrXB0ZYrW1A0 t7QhluY92gXt
eA7P2TQLEih4jMnCdjiXcg3Foyxi8aQlodksxxrBbOn/rWv3LwlzAGueBeyK ydXAID0HyH12
giZPfu3dSY/1OwamXf7Xf6gKk7gcQAsE4HX2GAqgrzjqhdNnDPw/2N7uQ75b IxWSm5OGpET2
eBTQciPGAZ+lDoTL4OQXP+rnORaQESWADQKzRh0Pj8aI4OLeB2AJbH7z34UO ZzujHH3i2SPG
tLllFHHfHo4dD3hqSEvqq5euHnrGOOCCu0vw/YK2hwb++TA0uJSzOyh49Dar whT0hFELAH37
AgCVBQPgvhnzpDanX7hpGBAKKG0WAMEL8cDykFfKgaE92qX761AlipEBgAr+ lhO160QqxaPY
AKxn6ZeuZm04iRVsIKK39G2ONIU8znIjpsorBUIIa9sEJaori8nyZq0kqru0 rcu0LeeCLRzH
pEqzlgChjME/IznCRFUWGtNvSdkKJgYUZNiQVJbncpRgsSrhRNOtyqRkARnB AV26KqCLtuIA
sIjiNI7cYZ2ivAVkKgA0NPYBEKcB5CcAHEZgOeiJogUeQ83541NhAAg1S0Bz ZO4tBUpJRz86
3VNk2EQoX+MVYledVsPrirCLAohtpQAa7KGgCTVSboUDD0jaImAHAMM7r60t joL1fe8bPEGP
doMIjTTVGV1qBitbJ3IGHbAj084F7hz0yedRWliy7J2XxuJv5c8vpVfFqU/m hSapEi8ycMAh
azsO3FbxF77sMNWsAFPvkIOxSUPtaZQC5GWDlQDIetgFAowrg1AeA8VqYyDQ lMEDgEbznbDn
WaZUUXQAVknlYjfIq2Ze5Ow2mk0F8rIHinIMh+eJE9LBgc+FAp5mN4R1oUJV s1ZQl9KJLMsJ
PJEKiqNRSpJbAd7zAipFCRlPIC7fGHYsxeZsLpQyRZM0hnmXGI4Tsni7yaIL tszytqK2yoZn
URk6pDO0Xerp6zSX1Gkc4IUBFIIuAMeVAVQDBAbDIlMGiuIgsBbgAkCohAKa yJK5JMhZu/QD
bbLE4xBbk+/oqn9eY8mmGQWARoUBlw2ZMciEAKLLAW0KYATibkhwR+7Wt/cN nmrp3dD0xKW8
zqRMfKNQ9VmBThAqsmzxQODccz/4rnVBOpKcPhY4/vhFcxc3fhal7ppUbfPW ktEGw2FJiZNA
YFW8AQC+WeyU7glHdhjgsWjmhAuDeOfOUg8o18G057kRCajWa9taSi2K+bE1 KsYgCG57OUOG
D3cim9XNFF28PmsIUG2YFUMdF+DNQDhJ2wqlh3VKpHmxTRYlneLSEgk4hDXp JC9YdLJvS4im
BdeRWmJCLgJ4bsBBIWQphHjgXLg8zbgWzXK0LZsujYDlmDbDe5zjMoR3aDBw GAaMGhQty6lq
jbbJrisYpfdn9HWOQlTQAMcF0L4X6EwBKE8CLtrcbVCxBJwFLHMScAsAoIMA Ae3Eg/KCxbTW
oLQJOYGG+rM7k/l5oaAZCcDAwNejKBbfqH0Q5UWAF7JASROgGFcAgPPZrr1v 8KjN3JqhnXKs
2Ym73Bdy9LKYwUt0jsgPXT9tsRe5YHcU/vqD0Iin/lsSP2sQMPVZdQV2TmTi T48OupiT59m9
0HeBUw8AdzwnDtoTlhF0MKcQI5cJwNeUyQG8YEkMAMTyeWBcyHQfuUQAXvLk yu1h8Fx7dKSj
5juxlrGS3lBkVixW5FnFcxsOvAKAzfXswzxorbv3lOJYgNgIgNMJANdSgNQn gIRvmXKMv+7z
iTzwQv/BUBgA0F0LGNL0/UFB8I9d+sxue9z9+PEAPl+z/Lr5nwHM0jSAMdE3 TgBwuzICTMoE
zFwe4EuA7e57/ggAl9/48c69bvCiTlDa/HdhGNIJI9bbvLnrdQCAYxfzb18/ b2q1XT0ZLO2R
gUg9wkbJcSGq0XbKgJ1m1H561SS64bkKc3vggGeqrIsnDXnlyxrjDIAyNYIg BPbR07Tnp5db
GoBsH2t2ScUwy2FZYMzOr0SfM0Y6i15h6k/tByoVYCUA4BXSCRGaEYxiK9PE glYVxmYEYN21
h7uTMhq97pgfjgV4B0BJlgVgORYgNNx1ZPyFqWdXYa9b/3lHufPEO1cAlggA Jd7Xc0ftsO39
O03gn5wSGI/jn7u2dAd9SmHN9m6Sn+9jaGkAQy656V9/zH/01ilVUIkNBGEB if8BB0+/KrVj
5oPbj+19+IXNO93QDSNnWxuuTtiykMrt0v5xwuyKRXP/+RIrTJlR8cMqGjvh T4/V9blzZj9j
TqZwNXDS+63Rh18SUoGsORXYf7sF9MyXah3N++OxgGDpDob0X1751BsNywen wjYARlc+eOya
YZl0uQpgyrz5Q55/hjMVZ8SFQMwgeRsArGa9E+FiDHG5IgMwDbCAZPSKVMAE 9N/w9+klAFC/
ohloSAGQ4AJgYQGFIU8fsvtxYy4F9nioYdyeE68/7Z9AvhkAqrd7dcd5JVNK Dhs3/tiR9yuo
uHn4yaO3W3ZE05od2Pq5JYnWbpc88/I79z/y/nNuAUSUAOWOADA5YLvHR9+8 11H3n3xTb2DQ
b8I2XJZ0Nha64fffNMZLG97cpjfODa8OXz04s7hxunxNJdX0+ozZtnjpnij9 9x90Y86st3ND
b/gTMHraRMOzklRL5T21AGYdBdZZks0e928A6ZWZOuCikrqV//vyiH+nm974 GDgv1dKcDCCS
q0sBCL55fMrUdcY5cQqAPN0cswDApMxOeNQoqd2eXkQpDSwgQ7WkXpHnnPtN M/iP73tzNgBI
V0aBizUA9M3DAAy9fTsgd9i/zhNOmVQO4Ojt/psJ9NkXwD/bfdEPf0VGYN+h H5jOZXvEAOw+
6uOG8N6RA3/64QfssWtussOHpQCAU0Y1yfGxACa9uydAvwXg/L8CmDjxXUti tlV6A4PUX8fi
E0/orA68CZqfQ9gNz47Sv0rDV3+svS0nlWDyuHn/W6lWjB02AcCee77UuBRc 3+G7AMDIh2ct
W9AwZPBR7Uvndfss+6BscPmBAHBbs5QA9hvw4eLy/gfjmRxfApy9y1JdGQb+ VTsGAMz1R/6Y
pSK1EwBgp2fF1B4AcLvDdqIHKgfREHuBqNmVdhCCuqrr7zAuv7AXPMxB+qIb j1zz35yHvl98
wUUdnjzqkCnYyunqB/sNfmCz3+XIufolZxQHw859qzCv+EIpDdAytV4FYvHA 7nmYYDKwpv7h
4teeL1SJe3d8stmyteMXESnbDb26ouhVdWhaSjfhYlLZWnQAtmW4DLdeBaKb 8Is2xlgt3Hz6
4etOhHMrRq9L0G6XI7PmVg9gEWo3uJF4Tu2ygsHaphd92BT8MmbWQrEBOA3Q Tb1Cw4NJBAsA
fnz4LTosWFRq+LrOWu05mTKyex/O6H39D6lCuKsDOdbREJKXGrvs55M92+RB JFqxdbFkjdIW
MLLG9oaHkdKeA3z15jM8E7BZ2jYGrNsSAQA4tdu3uw5EAQBoLVmjaSzrhzWp GE3laCinba6p
HGo21uL0XTi01aat3IiVNU3lqpbkaCnSbPGe7bAheVEJ73g24Sx10FKG6b9M KLCUa8lOqJXS
IGpiIZYTUlV1Cm8aJKrnPWfgD1JJVzf4XkdGWUsm0GU9/ap7doKZJemi6w8s wgIdVZ1N7nrQ
BTtUoCXINd36/dIIr4KiDUowP1nVn2oKCXo4LTTxMoLLRVQt8KK6Q3OMCoBi aMe1HYr1KJey
KcZxaNb18gGadyjGoXiPmIrpuYQihLJ4WgsQ0TM9h3YERxVzcZ1qiTCcpcsq HUtzBStiW7IZ
tbWgTpjIqvKsZ0iObSTSnCuSNj7Gr4pYNom0hSnTcuPiYpFiLUdENuJlJDiM qqTDweBK0XVK
FgfFYNIAF9edpnA+zBnhrMeKlm25sVyeE7P0wAUhyspLjiRnYpm8FQmJedry eOJlw9Aq2jyv
JCcU0gmXdTW54NE6w3qhJG/ZkVSJS+t6pCDabDhfUT9g808RzgkXS3dChbiF 0iIDMEDDcROb
3vWgC2QTig+98tSKcJnrBkku4rHee2+31DYznGCEMjRK8lle5wWHT0YMO56R Qw1RnQ5G6jVX
tDmNCqtE8cQMx3CWA10IZQNNEd7Om25YAKeVpEJmNqBk7YDFKCuDPC3n3GzY U9lSMxPLxZu5
YI73GBuSm4cSzJPAilKIupAmisy1qQqvBzXIOYlosWQADqNKhmJTrujoipwL ZPUQdI4zwmjj
hWDGI4k0taKvlGOktGQx8TQdSikcq0lpwXQUYolsTlfbiCLpGTfApfQsr+k5 PYSCIRUkK8fl
jawdyXiWZ5muG0+bBksg1EVsy/Vs1TagWqRASyadozNLDtv8U0Tm9WLpzOCw fARFB2ANpu2Q
3qDjcS5W5oMMAWF1y6AtqqDwGcqlGwMtooZVnMemQyaVDOvhvB5VQaV4N2/A IzZRacqjbadA
SY4pOSajULaTtZxCkI7mBZeBlS/Je0FBoDgWBVu0NJoWMn0cM0AZEc0yCorM DlkWUgXNJhWq
kSKKScXSaY6E2JQtcGEu0UZEQimcEyBy2LEJrDLXseMGUxoo8EHCu7IWpCnR 7qOBCOmBJGQO
jJqVSaqcWMQN0RQl01LeGtoSy8f16KqIKFOy1BKzHZZyBjISK9l0hla4TDjB WTwVDIbkgkxU
iS6U5vhySgK4XClT2kpLpKAo6QDr0C7vcVppw25nb/5RYdyi6Udi6l6s+AAs QuQFD3nxd8nB
qS7kiJlI78h9nglylOFFPdD2qEGGY9pKW4Khdc+JIXtgXpHyIT3itkVtN2QK q2p1iJRJ3BBh
22IaR1McKN7yQENfWSF6FO2xtsfKbWHBgSVSHuXwahAOwCoaA4/RFIkuRD3D lmji0Ww2FKK8
FrYQonTZZCJJmmUpis/FhFZJyhhlLgqxQswgCBRsLuFSXl4r9Tg+j4Rj01Iq pOnRjCoQSLxk
2ZSkKQwKRHQ5CpWNsmlVweawsmYVVYWlgdL6ylQMWFkDALaWqW3n/i9HoK5q AwzrlgJPQkVD
sfSdJCqFYgOwwchAtoxAbqz4PXJwV4okkrb86n1e/uwVKUy5DAGfHvb3LYmX FQBQu74vwQE1
qAZQpqASMQA17cfD4dVayC9HYEP4Rbf4NNN5UiweOzlk20UWDE0z0IFgNgfl 95XM7UoffyEj
JHHIv+/bbkWapmiOJIqtG/MvzClbzqPaQdYrEq5rulls7UNYznbgejlhw3Nq 869dLJEAYNdd
p3/wP8oOgK+DTz2/1pBssexaYVpXimx0aHCS6gqdKY62+UeR5VraY36OvOeG 3awWjl/sh0t2
Hf3ebZTLWqRIWOBmDLnoAOwJCqupvSLByhaZn9Ia97zxnt3UfPY1H3ddONS/ c9YTqSsB7PYg
C3IsmopuVOkwxEJlrwgRbTJ/ESu7y31XD6duKRI2d+yIsYFeLmbQJtWVttue zDxnw4pVdAAG
QMIbzobelBYAnd3ey3M8/Qtxb98Hp5qzi4PN4voUk14eG8TLQrE4X6iCNaAY Aexp7gblq01p
69bZRdeJKMqvxL1j51T6qmiPz3pHKhYdmKGLryolbIZWLGUDa2x7cH5neiXZ C2x9R3wfzov9
AMwL1m6M9mU4yV8fCBcdw3/NDM/q/dkxlo5icSOVUlbxARiuzkeNDZiY338w WGA4J+CWj5i0
3k3xk5sa85kFoSu+5Ya9BGwbrn984kZsTpRUNEm+S/u3/13ed31nzVY6lxT5 ibpvj72JHkuz
RTIoGqMuGFJsAOZsRQO1gSHKv1vN5WRXKjDPPv7y+vbhK9KylzFBPNUDUB/b KEBGDG+dnS8+
5bdb/4XPf3PBOiM6p7OHbzRHjt3+nI27oHGdxf7feOSlqmn3x+msHQqUntRB d9L5e0ztHICn
vnbgSz01RQRKKRYd2DYLxRZLScPLwyZkA0KSWR5nRzGCzfOlKw5eTxOzH+fG 8YezS5CoGBQC
EBbcjUlk0XPcuvj79OS/rljvdSde+Pa6ewTdcOb6b3jcXWsfe/KJjWTh6UOW r+PoyjkmFn/s
QZCp+ff/5cMO2Gp0sizsv2+f8WKPrfF21i2S2R4WUGxlZVnbdSDo2MBOqbtO 9pzx9orwo3PK
f3jp2DUy72+12x/7mMKtAP4peG0AJIPamLH3PGbt0xtwb6213mUg9dhNHdS+ SyTXf8Pn9LPW
1hY21l9qFdYlJZcIBHH26uGcxa946N67d1t9+NfpB61SJ1XgwZVTf+ypKWIw dLEYsXJ8xCs2
AFtKKyRpQ2uswzB0fBsM5wccSjmzj8X7Sa//+HcfH3M+YLy/qqE1u3fZfgCm fRvm9LudE0Nf
N2k1I4B0lGcBYO6MbDq/+86jN/Aw0VXaWs9xWmsuFYyu18vVvDpTAD/0/w0e pAhWl8gAgEV9
fhL+l+nBagDo2w6nT0TnZ01999V/65YNKcXiZYmxANBSiq+bhT1Wr1LfILov AMwbgY8L+7P9
v4r1Beq/zgqD2t/wvfrogZQJ0A7H5YNe7aXTZgPAN59apaPDALBq3nfWoIm1 oHQbwMLlgR2B
VxdF7XHjAKBh1vflh0ZmHwjguR+S47cfCkCxsj03RUjR5AMzGik2APNQkGW8 DfT2ZXUn3wqd
sNWKG2kAbv8iONk7+8cggKs+radCzXOsUy8DjttG5oS/Z4fu88AXfPkfgQxX lQXw9HXJsFT4
OPCPE9d/l7jLrsXfd91IQNLW60k2wQFY+ch7yciBlwIrz/z7jgBefebavgF7 /i3/LdlmvwMB
3PZEVphwdRWAN+9eKOQOujL25dWYe9hLeOeJN2V+9A0/wXziQZfj4vq/Pft6 S8XnT9+cMXd9
Dvjq3D/irtbAiAv2BXDtY40V6h9uDmPOCZetvIvdbgFzZMVHmHP5hwG97JUR wGfXfwzq/ywh
BAY0eF2CbIgArrpbDK6svuIoYN6UDxBq3HHKhLAkAF+emnweOPXJanF++Yxt Afvwb8vzLw55
xgROfTlKPx2/bzcAVo/VglF1jime2a4XG4AZyDBMeQO6fT+ejjngaNrNRwMc UF6CxdcrwRbg
rDcTlU42IgbvapuKkRUp2th5AYeqVREZQLmdDAEvX0uFwiMWOKGzavdY711a JGOtHfjJNu7p
letviBEFAXDxexdEvrgsdx2aZx6wI4Cvn7obbv682onR1x95+EhcesvZQ9V/ fLoAmH/UoJMS
/3vxu/eUmiWBYcCJQ6bGFl+/z6LVv/bltkDD2ytLzzH+vWdqv70/nnrGPfDm rOh/Zb+Fj5/6
SQ3+ce0lk+LfnNk6A2h7aP4ho4ddrR4/HDgxOX38wjv3+l+lcYpz7U5tU5cG ABomBAD/ye8N
vPWvP93a55lzLzsK+Oviq0/DK3+57D1Lp/HGOeqTE/Dkgzdc4s085T+PAkfM n7Vb8+339gdu
ePz2g/v8cMx5b5YCm1z9qv73utRlubQJSy22wCmazfFcQyg/Sl7afwWXpzXW YS3GLPQ1bKEt
rAs2FWhESY6m2xS2qdyTMuCJR3KKlAtqRrzFCTGcDkmTPNMoyRoBqKGMIXkx KmMF87xaW+dR
vOPShKYc4noskVTCui44hzEFhvECqiE6NOE1O5yzRMYg8CgPLKXJlGZJpuhQ jKVYlBkAsUDl
WYri83bciJtOTmIttEbJNwFRKDYA0xABj9uQhzfAMBzUMJ4WC8mxgM1HF7WM GDMWL08fkjls
R6Xs0bei04/Y4YNnptHWa3Nj4MxMDIDirhSBlxxh8MVjF12SHvHk+gEsOvpa C8kE4M2F7npD
0B2Ege+ffeAUnMFPO6OaRhAAUjARVqvuB86ddOOuFdP+dAsQ+cuMQ3FW1XsB /GXkGTMPuGtw
/DrMapi+ExA6a9bqziBCCRCmJ0wF0lNuPw37vf/8PTD7009UY+fIkc9etOq6 k28Atl0+5Zmj
QlBnjgOuyJ7G4YaFr++FyuH9Hvrn8/Pv+z9gm50kE0zZ44M8T5v/bsXJwLcl N/bBUe8/MH/Y
Zx/8/TTg4D89jtIgg3OZp3cFfqy6BPRBE98BXnjlot1Qdt2sBuDJQ04Hhp90 7oz/AwLfbeJI
/27ZMWaon+1r85bphtpEKh9jqaZISUuijfYIKFssRJsTsAkITHic7gmBgmt5 EGRV43iSDxDH
Cam2VIiTLMeEsxznyOIKmqc5m9i26IheS1gItilNValwq1ZtUgGmrtqwXDOW BBTKY/SomovU
lblN5SGjTZJNVyKGI3BUXoqntVA2UpAsN5aVKLtPExdYVpOzGSaguR5ruiVJ 0ZQ1qzLtsgWi
KLaqCEGz6AAMm0uF8twG3EiWqtAvfJZNGF/HU8aBQNSAev45HPB2SXbMNQBu WLC05MUdYmPv
cm2MAjhOygFIVco28KEs3DoAY6fvY7+3ARWFX2dEmMaz62X7pxgGqHKbR+Pm M6vBoAAAHmfD
pk+CY1Xt8PqqCqOhqYw6aSeC7BdXBACcftVjB8DyAJq8U1WLEyZV/bweoJk+ HECZeQKA/j8C
XuPO1SbL/HH0oxe9Q85DPoi9bvn6KNP8wzgA4YUuhxf32QupWFn5F/iGPxgG X1E9X4VnPV3R
xNr0dqftClx8IY3v/vdjBYcvcQQAXHME3Kp5RzfN2hHAlCn4uim9kgW+wlgA 2PVuLEgNw3de
qF989v8Bh18zd9QmjXTV770w38y5ToBWIWlZ8KRO76urDYypBbJ2icum9WSo no3nKYrWg41B
F5ROt8Voy+Jdi2G9eJsUcIS0qAa5Ni4gt9KcSZrKGIawJqNy8bzA2qWWnZMi oiTSTCETSIuG
kJNZ09RlaLQXdKRWWnCCbFCzVZsPJKtzMiuojB3gaKIJDCw2rDEqApqqG2ya ot14U0kuoNG0
RfMhjbJsyrMYwVDFAkXZpK6ktugAzBixAh/bwPqccYiYbDLbSoNL+RuHAw2K U3EhAHwVrz8O
DjEDOy8ILQXcjMQBQFbSBwDwHJHC13pfMqsm6fXjxeXrD2sg8jpFZbotsD4l 7MMHTq8Ftt/7
ys8GDtt+DCC2uwrKBBdadAfQDEY9kcQZt+0/btiIfYEPtbZ705xoSZ8CTBzY d4/bnx0xbPCf
14gBAOjQjgDo9hDmLEDlBoAmhBryBupLB4K1uRp7OZh8KQBkOB5IaWc1FUrM zBI0RMtBHH7k
/AAY9+JtNVpJDAUAPPbGj80hgVhYQg8GgNieSHuzhsRf3hEAbnu9vsDLADS2 P4jH1DhYVnj9
f3UgQm4xgIunn/BqVY9MkSPq0oQX3UIsH+LkcEbhjGqnqVRojeZCti1E6+h4 a8QMJTjNCPWD
5Di8lJRkW48kGixR4VSHs3hOdhjaI3R4IUVHvNawDY6U6gUkclIuLGV4sekb yfYK+0REnnI9
ljUESmVYzrKjtE3ZnMdZFkWsoAs2LwossSjPlQhFw+bhBU2YruzShHEpygnq xA3rtmjJBUky
KRBG80xGhulRTEmK8fqh6ACsK/DCG2pTSTucwZCKAgojj5kMgLatYQBQ76l0 PxCGQ0jvuwIw
3EodABhQAoBoY7gFyymbmwq5ISbTzvpTIpKWsa4dmFf59XlbblxxGwDMuOvd aQX2pNuRa7e5
mKwIx2ZysgDay2HKqE8+flYcf1c/U6hf0sDxhTEUwIoA3ntm3pdPr7pn6var fVmNAN/a/hIA
oEtAIJYAZ1JMVkGbBJtxLD5SD5miAYD2aIBjozIHZnAAtqDJDI+y1j6gc/sN W/OY/7rmgHOH
jjzjbSDM1g9ezX0y5NVjbxz9Z+D4F486dpuhf38RiDsWiMdQHCTqj/2JbCZ0 D8BrrTf2DH6x
ww4bMHKtVr82pTra22+VEUofflI3vVJ7IbIiAbAC8FpgA3ZGJ8wUDtmXdfXw jgAAW0qJAEBs
4pmwWQYB1tSAEE/lAKCgMQYAR0pnECukY/u00bVB29tmA+aSuti63FlUYr1O rql/P+dTADjr
rIXfPfufv4yOtbetX04LUJosxqWYFQoDdfLkBblXr7/lDpE+5KiGiA07DSQN YLF0FIyPvrzi
6Z8AHALyVDtvAMDhAKK2AA7NLBmKYfcuHa67yiJuMJpdHgCCMoCIcA0AfKOg esaSkSzQCF2h
fpH8+v/sXWWAVGXbvk7X5M72LrAgnaIgigqYmCi2GJjYil2v2B2fotioGCiv ifXagIJYKIiS
AgvL9s7s9OnzfD92gQUWNpjFAeb+ATM7J566njuf+17+7KCZAFw+CiXGwp4A Xn9xrqf6Elz/
/f3jMH/mQS+jodRpCb9iBDiU+pEnm6cD0N4pAfBW7ulpuoQ2mE92JLvhZzad t9bz9M4C8G6U
G5pOIALWWdWCDizFeGtcWAAAIABJREFUbO3AQw4edXQDfsGBMwGg2Ovw/8Cy WSx31fcF6qmq
CgAoESgagOhhOfTNZswX3p/++YwPPpq/fTVOZvnmNpJYbLuxFb3P/nExMKUX 0PPkJ7AUmhQF
gJWSjRyuTBEYLFaGLOz8IXoNvccXRg/5DxTKXuXUVwAXgOeG1UA88hZ+Q7Ik WgAEaZPZh5cA
K3cBIHF/B4/A0dYrkFzUh+VHgDAWAIi+BDBqzlwAS/Z7CQfRH4FG5excBRw2 Davg9Afw9nfR
PAzEHADmrfVg4cLgS+smgSgygLmf5gGHyNNBIzSTR+/sp2wAD59vAfh+AHZf mvO5XvZyV3vd
KzvpfbtRfRVaRxIezdfCKQ2dYLMKV0q9vyFfVV9DeBEeFvHPpaoRAGe7XAAQ 16ACsOgaCTl5
mjEdHDBt2qstWUpjzfFa2rf94Ki+WA30WnEPgPeoQvTq9u56rLu2OhCFVnTf WuDZuaeXDFSn
VgIv1XdG7/2mv2UjMnH2yYD++xIcXP5opRN/xhmxYXIJwFkA0OgbjwKErrv+ 79CC8bnXo/Ml
Lzy+bNXTT55+JrJtBwCc8LOzcXbXiz/656VrzDNx0pGTp6x5/1zVANQmgXsl /b964dun75XU
aRh63bunffDNKcEHEI/UAeMH3ztz+IDPn3zztivy/vkBRZMXnPXaCxdYbmBS /LgXJp/98iWH
A0D+bgzgl6zEaYFjIv6XkaG2itBu5CEWUFvwbxMJmzFHGrE8AMDJz40sveWA PmvfqwxYBwI2
zTkAQNE+E4DlSBow9sXYHXRf8an3qdzty0h2XG8u0i2xWtpuvmoaGnD4VQ9/ nFe5fMIIcJc+
cEB25SEH/AiscRIHlFh/j5kM+sk7B/U0Vh58GfDwZefdKcYqXxgCjH59QNmJ 10x5m0jUFRMa
n1YXAlQDQKPP36AAyzyk7JSg4HqSBu70TX456D719o1Jws6bOHXeqH7PPHW9 tW7kB4OBZ2+7
9i6MHf1saYnNhDe18oEn/6MXPqfdNGn/Ax7v+tRPWcFXToDQLx8ourbmyxOu wSM5wq3dRjx4
MM7hnpztPjv3W+AU7tVH2ZI7JgCA7Oy2a9Cc8Wm/+nNx9LTgn1+OzkCyjQDm QIOEpBbifDiD
qm/KBg3iajg+cMiNb3X+4uOC6ix3+O59AZE1HAAwvWoWgHBWggEueCWefWe2 kXSrd7dg62aa
PVRxVJZnuzJPA9eePGLFsgF3jAVwRdFv628684chJbgqevrUD4ovvhjAhO4L lwk3nQJgwAez
fw/36zIGwFOnRArx5Ilra6S9jt7wtFkB4KYrAeDYYgC451aAZ7ve/nld9qEi gNz7x5Q5nsM4
oMvPeQBwYpHhA4455lvNczAAdHpjvKGMxCElGL2oidI/fPhs0qsQhbEDgCvP X8hkdwd6/wUA
ow/lcMz+f7AH0/heBsrPOH65v+u5LIATTliRbDzItNsdo2kkh04or/rDp3ZX c678j/u/GQC3
lQgh5Mmc4jvJdulN9KfebfL9xOLOQxo/ThqUW9KneEC35wgh5HO5XzdCCJnQ JW8kIaRoL3om
IeTvCf279erWaegb238JOe2gvV8mbae/qGmkY+kv9wNkZ9Gv3nMJIctLRm/+ Z9dTZPcgY6u/
fN57v27riGaFjxzmLmv+JnvTxzjJUBNioYkgNNfCaaTBj3rQ1IV2/hnJQOPH u0cvW8Q4vbof
AQA9/mv6AODS0XQxgDepxFAAfV/4vrRa7d2vBSM0vH+0K16oD12a6Nh0vyEj vBXjSCkXavJ5
yOC3B+eE3ix7sukVd/9h7LMLMNPWXLW1q/9R2jirk0Hb8ikP57xw7za0pK2M 3imdgV1YhHZ0
hnNT4Ld/Wd8tSm2PQVPZcNPn7t0bAT8YwKaTPRgxolUOCT7qbo8h7soX7lze s0PFFH5L41o4
hSWharI3QgB0dcGnlzyW8PeadkLTSwqrpx2U/gbR9t32dllx1fkAY3MXT6t/ 994OfttuB2Db
C1CqlRZ1jzW5tl2a3pNjKzsUvxjx4ZaVqVNZ5M5DbyhpVpEtFkB588f63vkb GE1Dvo+Ld+Ml
+IXnj3O76jRt68KFT+hPTsyAsk0AhkNDFfWdbSJpVgBKItC+3A8jO7q5h3Xk w8WN2c7dIgCH
biLSYFO+norC3XIF/vcXofBOMAbL2jj3sdx3DhuQQWVbxB7ODoGl8nd20hS6 +d2Ec/bMaWh0
0Xm3Jxsqjpk+Dd4sU/0OtevxgsSEgArGIZTJHBaOPpABZduAlARM206mQ2PC dqW0h41/YiMT
3vqPW5CbTqNz9Zs1uLYBxe3afF9co1NngziUbVnAuHLvz39nUNkmACd8YDmk Rc0nyTBde9j4
N5uspnmTOq2laydygAg4s13JLj4KVF6SDZnneZ7lsP/ptDUjg8q26MARkS6H SelIh8rHkrtq
Dxt/L1rvENnRCF5N7NB+xLLaUYL2xaVytvBFhLEsy53kKVti86cffcDOnIFd 3B3F2gyKOJ6I
6ZBvM2mK2AOJ3j68UrbCOmxwuY0bRJsX0Qusj3naNDnLX8HGs0GyPK7SNw/Y +aO/6wI4K5Hg
1UB1PB0a49EItcfBdwPTEnf1FZaVaMduU07XueqzOXA+ia1WdCuU8Md27hrQ dm2mwUIxk2Lc
mxZGLEpcY+5xAK4r2D32IVtUAFS10df16q8RX4KlaGMeZ5yQA4YDe+ItKWhO TauP/O7iQh8L
x/Dy8e5iSwxipwDYZ+15bqR/Fb8Rb7uk9mYWBccBgNn4vMrW9uroDYdITlrD Xp/CocjdU5YP
DRowJI20oN9si7bOkRNqf2NC8Zw9MUDuX7Que9sntXPb6gdjtXdXimnBamSo fSq8SOntdTFu
HUPtbn9j8twiswfOwW5SkTER2jF9neMycGwngE2qtr3pcsW2suztkWRYeyIH 3k1qICuxHemL
Q1ueDBzbC+A6us1O+I5QVp0qg8pMya6L4B25WY0ZdZkhbBeAFWRxHqpdyE+J 5ruJTLfHykzJ
LkvZO3JzjsBnRrC9HFiVbG4HWWpKjtcJdDSlAA5l5ncnkdm8OtUGYiVXBsHt A7CGmIkW7Q87
Awx+Skhp9ceszPzuFHJSEMbn8DSbGcl2cmC/YCXTAQyqpeqZKdkFF1EKDCKG VGdkRrIdkgvA
g+dIWux+Ku+SMlOyZ5Lq2Bn7R7s4sGOjXi2KpkNjLE7IWKF3RUoB75RiVMaN 1C4A0wY0en1a
lE3lSJhkpmQXpBSYnziJb7ci7azbo3VgBQytCEh0jG+3LeQ1dz8OvFl2DW2r D01WIXZds3kK
wm8inKfdUiDdeY8GsIk8JWJBAeh/GcKmEtvtBniz6IaNjpatbXUajV3bbL5i B5l4kDjIUJuJ
BWoLg2xu9Z+1EVkIW52rWD8dTnj9ccek3DXu6q5lLJcQDcYqKGOsrIRM9IIa ymfVKCYoi6fE
csan2pwlG5ouOnyUogWddmtSHLbJiklC2SLlENomDsdQnG4SgUvydB3HUCxx dIB27FpPIttM
ymyY+lWR9pBJ3DricJdPZbCDiX0tIRpu5s9abacMSFsAMGAlXAvGSrJQrXqk sOqzHNnSsyIR
D9EpRYjQDO2rUuo76bFIDmFjRJQprhYAp0tMzFNvFgSVoEgJdW5RiOuBsKcq YEJR/WV+O7tS
UcHA9rtXSwXRCp8/kch2EgmZpZL5a7iCiEUsyqWUemk+IXiqBC9PJzKuhD2U HI5pzv6RzFi2
WgRwjuarlBxW0rrUWxbJjsmWqZhc0uOxmSTLCW61LDsrKNMJ05vk/MFs3aPF ZBdlEd5HBT1M
SbUrLhOF5rMYkbCa5aHdPF+Th2iA03Qull+ZHeVcdT5Oc0luh1UcWpApLkwM PxvmdModl6KC
aGmMXS8nY/y6+n6ZKdkzKRAmzR2rzMTitAxgzh56wcq8Wlfc3i+uCoGwlxix LMvgBV+VEhdl
Lj7AFjqp+SGZi1tcRGLtJFeQTDJsQuGTlE+MSDHbbf6zVnEMs6SfQxTZYpM+ QlkMOM0QGc6k
KRBTrzqFkGgAtEPrMhUTYpLAERY0pzu8A96hbQKWokdmpmT3Z7YNNq8mWQEc GkaSzejA7RSh
Q8ytpNOO5f1ff7VEmwzhLy3ODGmGWqBYgwWgideIBijGyEjL7SAaQGHX4k7Y Er/b2w63+m3W
Octsk6XostvnZ4Y0Qy1QowVvc59ZUGIa/lCRGaC2cuBtIru1v317KZVjEYti mDlrZ2fGNEOt
os1Tt/Ca3nAcsW1Ffsw9Oo1HTW5KcpbOuNDJommGOA7JqxlZk1maGWoNbZ49 SdAa62IVterm
ysb/9+w0PLkpiaF5+WVPru04YBxYlC/+n0hmbWaoBdra4MzIvLwd0W/LGzZl zWtPGOVutER3
HMAv3mbyNkVRFm2wtmEosyb+klmgGdo+iVstPd60K1u4YbsadXu08AyAAbz5 YFedSuiaRdm0
boDTmT/uWJFZoRlqI5lWpH1BPN49e9x2FMCvP+YWTI2iTNXSGYYIlC556674 I7MgM9Q2kgv4
HdBnzQyA20dT7xUkgwJUwHQcUTBNBhQqJ2YQnKG2UVLld+BIK5cBcLvo1fsU YhHNJiAsR1MR
QkyL1mhP8PwfMksyQ22CYHjH0tJmANwOevthv0g7hs0QloCytRiv2SwB7eQm b12XGdsMtYEk
YmYAvG1a1xEAXnWZxQOOQwE2bAJOigk0bNVkuWLzqMygN0eJNl3tbOPzbkiG 7gQzy2ObtM2U
BTuSzK6oxDIYjVAMy1kMTWg5TGkcDZPYMaIfmxn0ZhlNu+Wj5rfahNJiKUFn F6kwbHszy2Mn
idCNXnXxs/4xmgcDgHVMQsVg0zwjMCxllp33aGZsm6GaVGNJaXkK6V0Cv4Ig ZxIa7iQAzxh7
dSMLvrt3LU+ZsOwYTIcAjMnREGij/rKJmaFtjvaAsrWJ9tzkgFWTicz62CkA XjJ91veNH3tN
GRlUBA6O5PDQ4GK8FE1zZvV1t2dGdk8lpX3L0DRdmfPA7aC26sCrFte/909O l4269b3nV4gE
FEebDkUch5gM0cOTLs4MbIbaRlxWjZkZhY7lwBqAirHXrRSkTUFvxS/tX8px si3RrOLYjsXS
Fn1LBr8plzF3MTLbzE3juiRn1kbHcmARgOc8t/idXrbpjyVT6+aXeCoIzbAE IkVFmWvHZ4Y1
5TJmmuN1i0go0+DbqptxkqFm1kbHi9CDXgVGl/Vq+qdnr15EKQwlswYlErXy kQx+9zz5d8vv
bQ9tpK1opjphB4vQG2XAgK/p16JXDiz3i9AiFm8KyWcvyAzqnkvtV2Mphs4M 304CMONsXkDB
O21iNcsR3RCja244LTOmezAx7b5TMM2MEWsniNAAQMtbSkg3ME/zPsoNcvNF ewSf4TILJ3X8
oFGss5WMDryTAKxZWyUeu9Z53CepiWsu2yNVvsw2teMUzpMy22JHb5mNvgGW 2doTcv3DOkdd
dHlmQHcXqmzDNpWKCAx2dTATC70lRVIM4MaLxeaC3s7JjujXZYZ8l6K/t/Nb wU4RnDdRNuhM
begtydsxY18Zbrags5lxA+xiVLCk4+TvDepWa29weZjKzIzsHKtDsdzsobiQ KzOcuxZl9e2w
R28wR7e+amo4uWeV6W6FzX2jahLRUFHZvKrSHq75CVfaHLsne5IIFMqUzduk qXkBkzM5aBvh
GhFEAKgswLpAuAgIWUpC8Jo1tisrlAVUFJZ1QnmRJmK1UJYfkaVYHzu3cnEh G6XkStESimuC
WUhEe/yWo0tSSKC5aCDuBJDMqnarybyoAzXb1KKyuw6BKj0nIifkhJzMKs8T c4s6vrsz6gBC
WzRngrIJdI5YhsTWuyKsEqbrAwmH+BmHDkQElbcTnB6FINWxNG8E1vgNotKs KhMmrNM1hUyS
EUi83usJsbGsGLFNL22GlC61hFezwiYvJ+u9lmSxYZvVLApayXqOYpO8mFRi DOh6c+RUAKBS
hrozZvT7K01X2HaPvDcxtmoiUF7U7E+brVYgEfR6EwqAisKQzHBAmbEXKh1f w5+gieuckvWW
p1bOqsldMXhxICyaJqs6dG5QVirclidG6XTUy4UURCQnQTlGHm3SrBbptDJP z49XyDXd6RrK
XXP4LhF2uRYv1jJymGISxHaZjB3M5nWiS3pu2EhQhAiukKI6JsupXFUBK1bJ YtAjGZHiGsZg
mZosLXs9x0Zl2grzXl1c70NS1n0JoqiEENWjGpIKizV5wVPvrmPBoZ6XiGFl 1xF3tVvWbcKJ
1W5VYhM0pSqrXxnvdHQ8yP1P20VmvckFaCZhcLbPvUrmdDXLTIixXNNQ5Ao2 i0tU0yf+rNa6
uEg2UxGgo55owFazdSOenfBxqpBUkporIjkJidYDZQHVkPVsC1RU4G2NInll suYxGEOgNH/E
rdIq3Kj0yDHe9goRp7Z3JOJhVJ5NVobay4G3AQQxLWqp37c43zTlJF+fSzOM zbuqTYWt59wW
SXJ2hMpJJlmgzkfD0aOuguU5EUHzRuo6kbVe2dBVv+Ox17l9MTnm5SJg2Yg7 4kXE5riYxVGB
epPx2jWS7TgJUdBpOWZl6ZxcZXhozjSJRRx3RY4UY6Q4pAjqSnjTqcolMUrN rxUZUEYgGfWH
BYcH54RywxoL3obFSoapdqpjbZqjYJtygtHdBqfHchHJUqsG7xK5Ae0fHytg mKRAsUTN1h1V
lVwhWTaruyRNorirOdEkksaYXIIyzahSl1tmip2rSRnLRZmkq9JbywbWwpR1 PiFEGDoq21bS
NLg4z5kipVJUzEupLEOJtUnLSXBwU6Yn5LARW4I/SjE+m7FcuapFfBGnk5Rc 1vHZR37qToSg
x9QDpSxL0R7b4HxSXV5pHmyP4rAhtyRLa4o4/hs+mZ+kc+IuDxQqh7bonCDl rSqBE6U8fMhv
ElHrucR051b1UF11ucRWDDUrO2bogajmUvKjtJnHe2si+ZYtePx6qBgekh2m rAK1wOXkyqFs
d41oI7UAprpH02AxffiM2KVCZIjGWEme5rlkKMuBGFH4eq8navOOp15xTN3K C7ur8ksrqhOL
PaKcYFUYwnpDhKbxfH1iJQ/Pejbpr+kWL1d52h9UEPEmzUrZEKnqWJ7DmjRd 645wqr86oCU0
pp6rzOctMcIFFSuk27IqaY6HSiZk1V9Yr2qoL44EZa9W7WY1RuVZM0FE0EJS YuBWLYdwlM3w
lGG5NNZxRJPPW0cRP6V5RTddu0uI0N3+dheLpC4rzLnrRNlhBQWd3UyC7lpO mbwkeiViqgVU
giuMW3ahWmQV5hOtj+HEPT4LPNGM/jXZtJP0CnEUOBzFxbwQ1hebkpnIDsoQ VZ8O3mRiMu+3
iOax9zJoFiDw1WaZFOOmkp6QW2UZ2/JV/yLGO763nmBibI8IBXeSIRZLWYTO DzqMI5Okxbl0
ZNV4pZBjWDRNe5PgTDFp5ARz9IifSRTVRwIhJavex1QqkKNsbozVi1d4PUmd DdRTEs/p/nLd
HVSkhEycJONm8ko52Ql5u6206ISrXnF3WSoXM1hfjH8k762zwikGcEyqSgfd VCm0fNHCMEM7
natlMyHmqkpMlKN+n5AQVJZogXhdEZ8oy2M8ChX2250Vl6rlalq+KYreEEuT AMvQRSHal8yJ
5XEWX6ApanGZ3y371ITAFNXLhsVzpm720vNJtkX5hFAxrxcvc0Oqd+daDmKE KagSPEk7Cy6D
c6k5WYyg8bn7Veav7xV0aDkmWQyr8jbHuKsVyqBgsS5DJHEllOwcZ1R3hPM7 RYKgQGewUOB3
DSXYZvXek6qULCtpMF7EzTytE5b0Lu8UU0CXckVALJkHODQq8mmsKeTo6rza nKr8pNzUpNPG
MI5m1JslYzY7xdhBwrSs1ZzaJXWP2/xR2Zv/2L/hgh4bvvcBgGKgOxAwEykG sKC600HdtY1D
x1b4g0pSTBCvmfRXyoJhBYI5hhxhOCdQmW860QBMIx6gQJQ6mdNkYvPeUDxA 8Wwdb+YkmSj4
WH7IzAYMQpveGB1XFJsxzexIp9q4J1AqSQkiaQyTK+iGu7wI1XmoKESsoV5m zN2oRq8q4Dhd
aPwTAEBvY+byk0t3EUuZzTNa5y1syH3RCW4AJQDgdgOggUIAXQHkIQf5aHr+ t81RWM3coArR
ppitKuyQzoZy/kmmwZhrttgWANe0nMzJ0qV0WExq1bD92nFb1yb/AgD2auai fHQB0MT3Iggo
AvKAwo3lbt0bCmTuBUDY8Kd2kSXsIsGFOmWmhQ83KTc1yXYMflFnq+kwLVGm wVPXSjGjFcnY
smPpEIzOBVCXruu8jQy4ltL0TRJmulBpM01xWXI6CPuUKekd/xa/npUOsxFn zVTrwNnpcKDT
DDK7izs6xzaodkuYHUFjKs7pdl+EOvm+LX8wGLUoDdqXHZJ2gnCrxNIiA71P NVIMYINJh7LJ
tttmdhMAgxLSay9apH8cDrusNxb8b8upJ0YsDdpnSNk74TwEy9DpkD4z1rip p5Brxnxp0C9n
NzoVHmXSK46D6/bXqE8eynP/+f2Wa5pIQhq0rw47I6tHjRBKh84qjfp+6nqc zaTDxsTair27
AJjkp1eWGbl+xON9jz4ham6paeqoSYeqCrxgGh3/Fr8TaJOm3UGuaS1mpBjA qsdKB7FzR9K6
pBn5gmnmB+Z6AhAUsqWmSfs86QBg3WO1uhntF9SSiltsi7m2g474UAFvinVg S02H44QOa+4c
Dpzs+CzGCTa9AByvswCwEW5LTZPSmXSwsrm5uL/Ve1H7Z8UgiTRwmCpxNcUc mOPSQf0UVF+H
Angj89kJWchNIZpWAPaILADkb2Vb83KikQbtiyS5neHJTJjpoAPHGk9qpg7A ESYdJpFXazrU
dLszqwf4ajZTSia07ykffZky6cYhAGxNDW3Z0HpTT4O5TzA5Wse/xU/FPWnQ WUviUwxgVzId
RGirOLQT9pHy2k3SRumVX3TQWwy2qag2/6Xtcuvv52zjl4k3pkztYlkAHEVv uYBVJi2c7y59
1U5whFRJ+elgrXVpXIp1YJB0ADBD+zvGdPtc9V2bvhQ10YErp5Qf1TF9IdGm /P61U7cr2p+R
u3AbM50ybNWrlQCkdVu56nyx7ulQ8ClpZ4V3xmtqxDTorM1GUwxgwUoHr6VV 20Ga+FPhCZsF
18Y2gMtDd9Q5aDqQxKZDNW++s71rvf7+25rpAAAgZG2Mh914TKembeWKx1ED APS8yF+85S9s
JJAGc++N+nYCb8yLudIhEstrpfo0kpRIByMW7d7RaLotzqltOErUPVbY8Gt1 HgDoFtZZvNcN
uKUGFrcMvRuurEjYjZ9Kq3r5d6QlqNuk5PzIDMHL/pNf/CkyZrx2YxU/6mIA mPvJSm7giIMx
d2546b3nF+OjrxZ7vWceBwAvfGL0GnUyQAiAeR/+YqHPFfsAeOzLWrHvVYOB ZS/OkQNj2lAJ
5yEAwL77bvVDkEU6HGTJ42t3giczsEJKh7Az0Uq1EcuU0iGCgg5JVhsQspmE iMcn4eXcglcw
/+RePZ5aCQCLxvctPum/wOJbyurH3wN8dWZJ167nrAAEecaFg4bv8xYApgbA lJLBA3vcDAAv
HTB0/05PAJh1/MDDe10EYG39JgVqZRv6wlkcNmYyez5QgGf+c/wz1UvOu2bv ed7fJ1wD4NPD
n+WrHj1pHla8x5GZcXw1dulg5ZvjPwNwyo3cgQtOmQyoBFh7wtv9R/b9+AoA l97S+5qRP4z4
CRj/+lHHKRfemYq9WzTSQQc2mRx9m7ObMlqvSungHGCVxnVOUkXjuu9L/n2a mVPwf62+2Pjm
iL83fP7u5LlkrGvswMeO9l2Rd+B9+2EsIWRmgXzP7ftST5M/T+60/7F3kh9d 3R+dfBF9EiFk
epcRzz1/VvZT5CfqdELexwmvTr8WzxPyESa8/fbJmEHIUb1ee2+yfAIhdw6Z
|
|
|
Re: Difference between Metaclass and class [message #476229 is a reply to message #476222] |
Thu, 27 September 2007 10:27   |
Eclipse User |
|
|
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
well after looking at the profile impl of uml2treeEditor I found out
that 'metaclass' is an attribute starting with 'base_' so this answers
why I couldn't find 'metaclass' in the XMI. This still reaveals the
question why I can still apply a stereotype to e.g. an Association. Does
<<metaclass>> mean a Class in the M3-Model? And it exists in order not
to specify the M3 language like MOF or Ecore?
- -stefan
SKuhn schrieb:
> allright, I didn't get quiet all of it, but let's try another way:
>
> I tried to understand the UML2 Profile mechanism. I found a diagram at
> "Modellgetriebene Softwareentwicklung, ISBN 3-89864-310-7"
> (Profile.png). I looked at the UML.ecore and everything seems right:
> 'metaclass' is of type Class and the 'type':Type ref of Extension is
> inherited, so I'm not sure if Stereotype is really referenced.
>
> I looked at the XMI serialization of it (upper half of NG.png), found a
> association class, and confronted it -for better understanding- with a
> normal associaciation (lower half).
>
> Basically I don't understand 2 things:
> 1) what happens with the 'metaclass' reference, where is it used?
> 2) Where in the UML-MetaModel can I find the reference to which type
> stereotype may be applied?
>
> Number 2)can't be the answer for 1), because if a stereotype could only
> be applied on a class and not e.g. an association.
>
> thanks
> stefan
>
> Kenn Hussey schrieb:
>> No, a profile is not allow to specialize metaclasses - only extend them
>> (with stereotypes). You need not worry about using the <<metaclass>>
>> stereotype for "complex" types.
>
>> Kenn
>
>> "Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
>> news:fdc072$cfu$1@build.eclipse.org...
>>> Hi, James,
>>>
>>> Do you mean, then, that in order for my profiles to be correct, I have to
>>> stereotype as <<metaclass>> the classes that I use to define complex types
>>> for my stereotype properties? I don't want them to look like metaclasses
>>> because they really aren't intended to represent "model elements", and I
>>> don't think I'm even allowed (in a profile) to define classes that
>>> specialize UML metaclasses such as Element. Or am I?
>>>
>>> Thanks,
>>>
>>> Christian
>>>
>>>
>>> James Bruck wrote:
>>>
>>>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>>>> Ecore.metamodel.uml.
>>>> If you want to create a profile that extends UML then one should be
>>>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>>>
>>>> The Class#isMetaclass() function that was previously mentioned is used by
>>>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>>>> classes) to populate certain lists with only metaclasses.
>>>>
>>>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>>>> stereotype which is probably why UML.merged.uml (the metamodel from which
>>>> the api is generated ) does not have the stereotypes present.
>>>>
>>>> - James.
>>> <snip>
>
>
- ------------------------------------------------------------ ------------
- ------------------------------------------------------------ ------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+73lIYVWjMSpDwwRAhNtAKCN5U1c4AX9l2ta3M9DpJAr2rz4DwCg zrTj
JyUXUhWnbAQ1mpN8prZ4TvU=
=mS5V
-----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #476232 is a reply to message #476222] |
Fri, 28 September 2007 02:06  |
Eclipse User |
|
|
|
SKuhn wrote:
> 1) what happens with the 'metaclass' reference, where is it used?
> 2) Where in the UML-MetaModel can I find the reference to which type
> stereotype may be applied?
A stereotype has an Extension relationship with every metaclass it is
applicable to. You can only create such Extension relationships between
stereotypes and classes that are marked as metaclasses.
You might be interested in this post/article I wrote earlier this month:
http://abstratt.com/blog/2007/09/06/profiles-and-stereotypes -in-textuml/
Cheers,
Rafael
>
> Number 2)can't be the answer for 1), because if a stereotype could only
> be applied on a class and not e.g. an association.
>
> thanks
> stefan
>
> Kenn Hussey schrieb:
>> No, a profile is not allow to specialize metaclasses - only extend them
>> (with stereotypes). You need not worry about using the <<metaclass>>
>> stereotype for "complex" types.
>>
>> Kenn
>>
>> "Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
>> news:fdc072$cfu$1@build.eclipse.org...
>>> Hi, James,
>>>
>>> Do you mean, then, that in order for my profiles to be correct, I have to
>>> stereotype as <<metaclass>> the classes that I use to define complex types
>>> for my stereotype properties? I don't want them to look like metaclasses
>>> because they really aren't intended to represent "model elements", and I
>>> don't think I'm even allowed (in a profile) to define classes that
>>> specialize UML metaclasses such as Element. Or am I?
>>>
>>> Thanks,
>>>
>>> Christian
>>>
>>>
>>> James Bruck wrote:
>>>
>>>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>>>> Ecore.metamodel.uml.
>>>> If you want to create a profile that extends UML then one should be
>>>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>>>
>>>> The Class#isMetaclass() function that was previously mentioned is used by
>>>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>>>> classes) to populate certain lists with only metaclasses.
>>>>
>>>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>>>> stereotype which is probably why UML.merged.uml (the metamodel from which
>>>> the api is generated ) does not have the stereotypes present.
>>>>
>>>> - James.
>>> <snip>
>>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG+owgIYVWjMSpDwwRAl3VAJ91kM0+cB6qyELsIh8G/8hN1ht8lACf frp+
> 657BYkkhtzjdzIkQPgnU1QM=
> =/+GM
> -----END PGP SIGNATURE-----
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
|
|
|
Re: Difference between Metaclass and class [message #624994 is a reply to message #476197] |
Mon, 24 September 2007 23:22  |
Eclipse User |
|
|
|
In general OO, a metaclass is the class of a class.
For instance, in Java, ordinary classes are instances of the special
class java.lang.Class, which is a metaclass.
In UML, a metaclass is an instance of the Class element with the
stereotype Standard::Metaclass. The code you describe determines if a
class is a metaclass instead by checking whether the Metaclass
stereotype is applied.
In UML, all element types (classes, associations, attributes,
operations, components, ports, actions, stereotypes) are defined as
metaclasses.
Rafael
SKuhn wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> what's the difference between metaclass and class?
>
> I can see that's implemented like this:
> return class_.getAppliedStereotype("Standard"
> + NamedElement.SEPARATOR + "Metaclass") != null;
>
> but I don't know what it means.
>
> - -stefan
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG+AtkIYVWjMSpDwwRAjdrAJ94LmIm9z+1Rog29oecKNb6IBbTnQCf ffjm
> MVmuPecOCI6OHXsM7e/4Iuw=
> =VZWD
> -----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #625002 is a reply to message #476203] |
Tue, 25 September 2007 10:55  |
Eclipse User |
|
|
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Rafael, thanks for your effort.
I know about the layer architecture of M3=eCore->M2=UML2->M1=UML-Model.
I basically don't understand why do I need the stereotype meta-class in
UMLs Superstructure? All classes here are by default meta-classes (for
M1). And the need of a <<meta-class>> in M2 should be obsolete, because
of this would already exist in M3 within eCore or MOF.
- -stefan
Rafael Chaves schrieb:
> In general OO, a metaclass is the class of a class.
>
> For instance, in Java, ordinary classes are instances of the special
> class java.lang.Class, which is a metaclass.
>
> In UML, a metaclass is an instance of the Class element with the
> stereotype Standard::Metaclass. The code you describe determines if a
> class is a metaclass instead by checking whether the Metaclass
> stereotype is applied.
>
> In UML, all element types (classes, associations, attributes,
> operations, components, ports, actions, stereotypes) are defined as
> metaclasses.
>
> Rafael
>
> SKuhn wrote:
> what's the difference between metaclass and class?
>
> I can see that's implemented like this:
> return class_.getAppliedStereotype("Standard"
> + NamedElement.SEPARATOR + "Metaclass") != null;
>
> but I don't know what it means.
>
> -stefan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+SFbIYVWjMSpDwwRAk6ZAKCC11V9neHjC77wviWXir1xSsg/WwCg m1oD
jLfXWg9mx3JS8T8MYzdbCXA=
=4EZL
-----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #625003 is a reply to message #476214] |
Tue, 25 September 2007 11:03  |
Eclipse User |
|
|
|
Originally posted by: cdamus.ca.ibm.com
Hi, Stefan,
There are types in the UML metamodel that are not metaclasses: the
primitive types (String, Integer, etc.). These are PrimitiveTypes, of
course, so they can't be metaclasses.
However, it is otherwise quite possible to define classes in a metamodel
that are not metaclasses, for the purpose of providing metaclass properties
with complex types (as is commonly done for stereotype attributes in
profiles using the UML2 API).
It seems that the UML metamodel, itself, either deliberately chose not, or
simply happened not, to use non-meta classes.
Cheers,
Christian
SKuhn wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Rafael, thanks for your effort.
> I know about the layer architecture of M3=eCore->M2=UML2->M1=UML-Model.
> I basically don't understand why do I need the stereotype meta-class in
> UMLs Superstructure? All classes here are by default meta-classes (for
> M1). And the need of a <<meta-class>> in M2 should be obsolete, because
> of this would already exist in M3 within eCore or MOF.
>
> - -stefan
>
>
> Rafael Chaves schrieb:
>> In general OO, a metaclass is the class of a class.
>>
>> For instance, in Java, ordinary classes are instances of the special
>> class java.lang.Class, which is a metaclass.
>>
>> In UML, a metaclass is an instance of the Class element with the
>> stereotype Standard::Metaclass. The code you describe determines if a
>> class is a metaclass instead by checking whether the Metaclass
>> stereotype is applied.
>>
>> In UML, all element types (classes, associations, attributes,
>> operations, components, ports, actions, stereotypes) are defined as
>> metaclasses.
>>
>> Rafael
>>
>> SKuhn wrote:
>> what's the difference between metaclass and class?
>>
>> I can see that's implemented like this:
>> return class_.getAppliedStereotype("Standard"
>> + NamedElement.SEPARATOR + "Metaclass") != null;
>>
>> but I don't know what it means.
>>
>> -stefan
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG+SFbIYVWjMSpDwwRAk6ZAKCC11V9neHjC77wviWXir1xSsg/WwCg m1oD
> jLfXWg9mx3JS8T8MYzdbCXA=
> =4EZL
> -----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #625005 is a reply to message #476215] |
Tue, 25 September 2007 17:33  |
Eclipse User |
|
|
|
The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
Ecore.metamodel.uml.
If you want to create a profile that extends UML then one should be
extending the UML.metamodel.uml with the properly marked metaclasses.
The Class#isMetaclass() function that was previously mentioned is used by
the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
classes) to populate certain lists with only metaclasses.
Otherwise, the UML to Ecore does not make use of the <<metaclass>>
stereotype which is probably why UML.merged.uml (the metamodel from which
the api is generated ) does not have the stereotypes present.
- James.
"Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
news:fdb7v7$5m8$1@build.eclipse.org...
> Hi, Stefan,
>
> There are types in the UML metamodel that are not metaclasses: the
> primitive types (String, Integer, etc.). These are PrimitiveTypes, of
> course, so they can't be metaclasses.
>
> However, it is otherwise quite possible to define classes in a metamodel
> that are not metaclasses, for the purpose of providing metaclass
properties
> with complex types (as is commonly done for stereotype attributes in
> profiles using the UML2 API).
>
> It seems that the UML metamodel, itself, either deliberately chose not, or
> simply happened not, to use non-meta classes.
>
> Cheers,
>
> Christian
>
> SKuhn wrote:
>
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Rafael, thanks for your effort.
> > I know about the layer architecture of M3=eCore->M2=UML2->M1=UML-Model.
> > I basically don't understand why do I need the stereotype meta-class in
> > UMLs Superstructure? All classes here are by default meta-classes (for
> > M1). And the need of a <<meta-class>> in M2 should be obsolete, because
> > of this would already exist in M3 within eCore or MOF.
> >
> > - -stefan
> >
> >
> > Rafael Chaves schrieb:
> >> In general OO, a metaclass is the class of a class.
> >>
> >> For instance, in Java, ordinary classes are instances of the special
> >> class java.lang.Class, which is a metaclass.
> >>
> >> In UML, a metaclass is an instance of the Class element with the
> >> stereotype Standard::Metaclass. The code you describe determines if a
> >> class is a metaclass instead by checking whether the Metaclass
> >> stereotype is applied.
> >>
> >> In UML, all element types (classes, associations, attributes,
> >> operations, components, ports, actions, stereotypes) are defined as
> >> metaclasses.
> >>
> >> Rafael
> >>
> >> SKuhn wrote:
> >> what's the difference between metaclass and class?
> >>
> >> I can see that's implemented like this:
> >> return class_.getAppliedStereotype("Standard"
> >> + NamedElement.SEPARATOR + "Metaclass") != null;
> >>
> >> but I don't know what it means.
> >>
> >> -stefan
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2.0.7 (GNU/Linux)
> > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >
> > iD8DBQFG+SFbIYVWjMSpDwwRAk6ZAKCC11V9neHjC77wviWXir1xSsg/WwCg m1oD
> > jLfXWg9mx3JS8T8MYzdbCXA=
> > =4EZL
> > -----END PGP SIGNATURE-----
>
|
|
|
Re: Difference between Metaclass and class [message #625006 is a reply to message #476217] |
Tue, 25 September 2007 17:56  |
Eclipse User |
|
|
|
Originally posted by: cdamus.ca.ibm.com
Hi, James,
Do you mean, then, that in order for my profiles to be correct, I have to
stereotype as <<metaclass>> the classes that I use to define complex types
for my stereotype properties? I don't want them to look like metaclasses
because they really aren't intended to represent "model elements", and I
don't think I'm even allowed (in a profile) to define classes that
specialize UML metaclasses such as Element. Or am I?
Thanks,
Christian
James Bruck wrote:
> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
> Ecore.metamodel.uml.
> If you want to create a profile that extends UML then one should be
> extending the UML.metamodel.uml with the properly marked metaclasses.
>
> The Class#isMetaclass() function that was previously mentioned is used by
> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
> classes) to populate certain lists with only metaclasses.
>
> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
> stereotype which is probably why UML.merged.uml (the metamodel from which
> the api is generated ) does not have the stereotypes present.
>
> - James.
<snip>
|
|
|
Re: Difference between Metaclass and class [message #625009 is a reply to message #476218] |
Tue, 25 September 2007 19:57  |
Eclipse User |
|
|
|
No, a profile is not allow to specialize metaclasses - only extend them
(with stereotypes). You need not worry about using the <<metaclass>>
stereotype for "complex" types.
Kenn
"Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
news:fdc072$cfu$1@build.eclipse.org...
> Hi, James,
>
> Do you mean, then, that in order for my profiles to be correct, I have to
> stereotype as <<metaclass>> the classes that I use to define complex types
> for my stereotype properties? I don't want them to look like metaclasses
> because they really aren't intended to represent "model elements", and I
> don't think I'm even allowed (in a profile) to define classes that
> specialize UML metaclasses such as Element. Or am I?
>
> Thanks,
>
> Christian
>
>
> James Bruck wrote:
>
>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>> Ecore.metamodel.uml.
>> If you want to create a profile that extends UML then one should be
>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>
>> The Class#isMetaclass() function that was previously mentioned is used by
>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>> classes) to populate certain lists with only metaclasses.
>>
>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>> stereotype which is probably why UML.merged.uml (the metamodel from which
>> the api is generated ) does not have the stereotypes present.
>>
>> - James.
>
> <snip>
|
|
|
Re: Difference between Metaclass and class [message #625010 is a reply to message #476221] |
Wed, 26 September 2007 12:43  |
Eclipse User |
|
|
|
This is a multi-part message in MIME format.
--------------070409060307040402080201
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
allright, I didn't get quiet all of it, but let's try another way:
I tried to understand the UML2 Profile mechanism. I found a diagram at
"Modellgetriebene Softwareentwicklung, ISBN 3-89864-310-7"
(Profile.png). I looked at the UML.ecore and everything seems right:
'metaclass' is of type Class and the 'type':Type ref of Extension is
inherited, so I'm not sure if Stereotype is really referenced.
I looked at the XMI serialization of it (upper half of NG.png), found a
association class, and confronted it -for better understanding- with a
normal associaciation (lower half).
Basically I don't understand 2 things:
1) what happens with the 'metaclass' reference, where is it used?
2) Where in the UML-MetaModel can I find the reference to which type
stereotype may be applied?
Number 2)can't be the answer for 1), because if a stereotype could only
be applied on a class and not e.g. an association.
thanks
stefan
Kenn Hussey schrieb:
> No, a profile is not allow to specialize metaclasses - only extend them
> (with stereotypes). You need not worry about using the <<metaclass>>
> stereotype for "complex" types.
>
> Kenn
>
> "Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
> news:fdc072$cfu$1@build.eclipse.org...
>> Hi, James,
>>
>> Do you mean, then, that in order for my profiles to be correct, I have to
>> stereotype as <<metaclass>> the classes that I use to define complex types
>> for my stereotype properties? I don't want them to look like metaclasses
>> because they really aren't intended to represent "model elements", and I
>> don't think I'm even allowed (in a profile) to define classes that
>> specialize UML metaclasses such as Element. Or am I?
>>
>> Thanks,
>>
>> Christian
>>
>>
>> James Bruck wrote:
>>
>>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>>> Ecore.metamodel.uml.
>>> If you want to create a profile that extends UML then one should be
>>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>>
>>> The Class#isMetaclass() function that was previously mentioned is used by
>>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>>> classes) to populate certain lists with only metaclasses.
>>>
>>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>>> stereotype which is probably why UML.merged.uml (the metamodel from which
>>> the api is generated ) does not have the stereotypes present.
>>>
>>> - James.
>> <snip>
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+owgIYVWjMSpDwwRAl3VAJ91kM0+cB6qyELsIh8G/8hN1ht8lACf frp+
657BYkkhtzjdzIkQPgnU1QM=
=/+GM
-----END PGP SIGNATURE-----
--------------070409060307040402080201
Content-Type: image/png;
name="Profile.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="Profile.png"
iVBORw0KGgoAAAANSUhEUgAAA8AAAAKXCAAAAABoQXy8AAAAAXNSR0IArs4c 6QAAAAlwSFlz
AAAewgAAHsIBbtB1PgAAAAd0SU1FB9cJGRQLA4I8f44AACAASURBVHja7F1n eFzF1X5vb9tX
Wq2qJXdsjIFAwHQIpneSAKGH8tFJAgFCEiAEEkIogYSEkkbvEHrvmGoMNuBu q2ul7fX28v2Q
wU3uRRKa93nA2lvmzj0z7z1nzpw5Q3kgICAYrqCJCAgICIEJCAgIgUcEKsP/ FVzSioOPdwmB
BwcK+e4TbAb4AYAiTqytpXcVIgOCzQ6WiGDLwOK6ZCFdVCjB5rTOuLbdnKjS HZsnhiu24sQS
4tIWu1xuYDPZAEyDkWIaU9Xl+jORZKyrzqlI2ZBnBrqrVU8Tyo2FQkgz3EhS KnigBb7IeBQj
FT3ONmjZM0H5VNAUXIvmbMYD5cJjLY+2edvTXZpSOdpyJLBuOmCJtCW5ZiFE pWTJU8q8CUGn
VX/Bp/o8L2+bEduknOoSk3CDRjGSDyf8qsWGL24m7bkMuriZxyI0IfCQxA56 hamaOZY3NAQt
21Aohy7FtYK/PHrRqFJnXV9LZ1AHFXAcnuqrqsC16phyPpxsTNcXHMoxPCFY URkE7YqSjJhK
hm0sJazRdEYuRwumF9JUSY1RpuH5qxcEzSIV8KoypltqzEmy5rkeB6krzmQC lpRVspGiU4uc
YmVrbEuw7YDm5SNGxHbTclW3RAlymUo22ygHhb5AwaJtLqz0BVNuU9kwqbjW HaKjbRn3NmI7
bQA6mjZ0LFIIbnTliAm9RfDJsf6Qlo76KdWlgu2KSvm0eKvI+LJ+vUIFDUYX KEHs4RjeSTZR
aUoo+a3aVl9QZfmSUGaVAsO7rqt5TLBo+m3KzY+p6ILjBZPpUHWHJTK0a4RM zUMprjMVH9g8
HygHSgirrAbGKclezu9GjaqMWAbHddDBHMA5ElOMU26BkpmiEwwV3Gg6p9i8 xZaY5kovUF0w
EStIlCbrllSMGK5res0JA1Mr5tm/Ji26AehsJCb0cIecVEo9o7zFfsqiPa9P ciMJX1ALlPx6
oCYzNp1pkJhitasg2rmNV5/PsBVbo8ZxMOJoNhOjIlnBDWc4pWLXlv2mEW0d TVUcu0kVbcVo
nS4FacajatsEz0+ZRkmtoSyGN2iR4ijLcUMVnfdXOCUn6bLJuWaUMlmxd4q4 pKuqSm1aLHhR
vm20YSg17/nZzIS8Z0UsocSlC3agKkRX6jRTj3051isGx2d1quDTp+CBK6O9 pEE3BFuTv4TA
WwY5RRr75boucpitWKMpAIDtAWBnAMCoNV46HgBQv+xXnarESYMOWZD5gC3j wvKltDWdM7/9
wwHwzX9DDP21dwB0UCUy60sIPMLAJ9nSGs9980eKAfDNf0MMErCsYqPKAYM0 KCHwyAITltcd
b9U0pF+ha9m/6WY9TBqUEHhkQaB1/9qvMIf6KzQs+7eYLJqkQQmBRxY02+xe h5E9XF5FsYQ8
adAhC+KF3jII098V163ityTSnkQDjyxQmXb+O/IqUtJhSIMSDTyyIDMt5S1R rrn1Pwt91SJZ
hkE08AhD0W9vkbkXHmjbyq/iyRyZByYEHmFwC+aWsjubt/Kr1LaVi6RBCYFH FiTPq94i8VXd
G2KZb5YaZJuDFGlQQuARNga2qOwWUcER3wZcvFlqUC7pFmlQQuCRBadcvWXW aW71GZ1usUri
SIMOWRAv9BZBlct8R+Ze6n19FJkHJgQeYeiKy/Z35FWMcJQ4sYgJPdJALVnr Knht+LyJf/FS
nrQnIfDIghj2NwypoexAaF2vq9L7CSbJA00IPLLg68gNfddty3pdFVkoSaSb EAKPLBSppLwJ
t5eH0KsE014faVBC4JGFOF21KVaybwi9SrberiUNSgg8wjSwxn1XXLeipZLV SEMXZBppy3wX
66zVFjPM+tyFagcNOzJx57XffZ361SV7b/AzfxgoTPr9JtZ7gJWDXCFATGhC 4BGGFpVfTQPP
ObPRYIXquXZt6eRb1nr3M32F6RtO4C+CszbRWfzCqUJktWS4PJerIQ1KTOiR ha+l0GrpvZ2m
hm3cfISuiUbv+/Fa766uxUZEL/rZxk3cuMeWxchqBzWeDIGJBh5psFijZ9Vj Lp0d9992b3rH
42Octx44aS13m9GJG7GQyO8ENrHWSZtZ3X2WhddOGpQQeGTBl5mwmjakPDd+ IABMv6Sq8upJ
ANrm5G3fhKnLzr+ScQJH9iu9bMoDMJs1F+9WDzyb7wz4R+/Vf9Wnn1WsUSfk X3XFowDg/flL
pNox+/XznmGBGR181d6vvu4K0/fBpw+y1bvvAeCrWYx5Ou562Ttkmz2XPWzh Z31jdj2BAYBb
FWuvKc/+r2afmRPU4s38hStXe6zLkU5CCDzCwLh9q2V9ZgR3DuA57ORUzfg0 gOseU2mtrO/5
KgB0HlER86Hzf386gBLj0MCck9tKB/wI847PMEaF5ce9DwC33lkuF6VPJvzc X8xJSJ8xm7cr
rHnc3wAIKTUP/PV946CvfudFrYef6P61mo/ecvkvgHmnNvaN+muirHUk7zgS AP58m6KUFz3+
2zsPBPCnvHjTw/fxO3362ZhU0w3lfaasVO2SqwZIg5Ix8MiCY9estpjBZVQe oDz4eDflA/52
a8XsywfrFv0QwIsn6XShC+Gf/R1AUKcMLLogJO/yCnCWRquxSNXory4GcM8/ XKl6jPTUs83B
kAScMiOe52Ns4wO/BFBgRAUYxY6fe60tRcLCzy6cb/vdsX/7GjAiDdv87o2q xS7vnfklgKtu
jolZy6rm/u8pAJPGbfvoc0qvPXk7oy47bfwqW12aHtKkQQmBRxaCjrbahIzf pGgAHD7UylIM
+K3jP/ytzw8J1z7ZCdzW5uTPfHkcS/9uMUCbQRXXJzrU+4EnZgjWX59tPzFZ fy+AP9KRztNe
+FV5boufAe6au037RV8/dly57qE7AR90CShW3MSpCzsO6g0VQq+0XVIR068C IRb+9hPubdt9
VlPlJuCpmyboLV+0vsApwesBpL2Wrj7l4kNvu4ryws/OXsV0sEs1MmlQYkKP LLg1WmjVY73l
KH2vwfHzHmgx++7AzJCVuwP42wRfON/4woxJ6v3TcUBDHjf/AyU7yP/97fqe l8cB70y0Tzge
uOZFUS373i+OXXLNrzBh99O6JRt4QGg/5jfY5sY5WuSRc9Bn0w4QUtyGG4Gr HtIS5++LC2bO
D6QAnkFqx7/y+NfXzsRPgZebC9F/hrDtv34YXPrYj+FTZ1u3nQCgtXWyvtqr xOJdpD0JgUcY
rGzLaqGUbAzapRMWew1F34Lrd8FO7zYCRsc9tUuDFr4O8tZ0AA9m7CogoKRe KNDdN+8G4K8A
MG/Bu7rm+jCfV4VfwWGm1ZXL9QAf7xOQdn17PMYUuusjqu0DSpFENQA0ltjJ AJQuKQowiXjb
lTwg7DLD39Nd/zpPVVXBYXbceV5TH8Bo0pEnAADLJKeu9ipeNkY2NyMEHmli rTFX29zMS9ZR
wXl8X1Gv/9s5ABrv+qRzNusP17YyWMh1twBAf/iGoQaSXiC3FADwznuvTnzZ EaJ8F5Cq1MXg
Orawx/P+LmBWPfPYY/Gl/ip/IZWt17zOHCDZsgMAdLHCAmBr+jyg4qPp3eA4 /PiPip4NDrn9
4FIWRxvuUoD32dX9NQyyydWH8xLI5maEwCMMXsUdv+oxUxKLp0XLkjD1+wCA c59UunzYsbub
HYOFFLv9Cpf6SqxUarj7qHHA/FOdbEdn457v1blASqCCoC0eplb2AZKSzsRL StHRS6YGQQvE
AaocEQGg12JCAMwyawKgeU0HDdiZIB0FAyMIl6URl3o4wKtwy+a8xOLqQVdh 1fKTBiUEHllg
nPxqGpjVrerfLP/59P3NxZsOi4amUJW8L96X+6Kf5QwD2L3V1gV/t4x//xH4 pd838cJdI+6+
WQMYWyqVYFDAYh+TBEKu9cSh6aplBZblrApQou0AQLyNpgFUlDIPqH5DmLct ZTELZCXng8Ay
n4GFw3xMceMBvhASAABUuT612quktHG9pEGHLIgXegvJVVFXPcQr8orSnjM6 c/rFY0KqG68U
MLXU0g0Ax+8UORPIjOo84OTjP+dvWAjMji694ogYmyh7EaA5GMg8Jsic+VGm VALEReJ7qAIW
YOEHgFFoKgNmwWUAQOdtEUDel3YBq+BVfwKIeFepUMDeieCsAsB8uERJbQ+k 4lYJgAap1lkp
/KQNAApxg+xOSAg8wpD3t6zmz6UK81aMcF7QFuIBXM+UGAO7liq+/wIzF3SF fgIEEarGxdv5
x/0cZrjsnwtk7qRUewkOkXojt9z00NPHKLEggKMN9p3HgZePYSZcC8CtcEDA Uy0AcMJmEoCv
N1QG4j5aeema2TNPqHPbzgWOo4uh4x+e+ez1jR0/2AmYYEoCAAlOuxz49OPl VWwGAIYfIECa
gJjQ32lk0707rDYuRnN2hZ97Pive3xd/841dqKCJHxz6Ws21zzjdGeri/QC3 lJGBc8/a8bM3
96Oz/vvmGx/kJsvpMcDPfjXO+a+vN+zCCAG/fXZx5dS/lBTK3eEJICczCpCk 63UAoCSGB1Cd
ZxRA6g3q1Xfe6QeVb/w1MO33Pwt1njE+mWnqeRlAq/JF/3fcXylZ5y1+c+Wa T8yWVdKgRAOP
LES5WGnVY3ZlJVP0NPNr7/mr55yX6y08BNy4w3y65910z/d/AcCak3OAM78v p8/HDflFhdee
7z4zPbPvPuDiP+UWZNvb9zqsj1MB3DKpe1S5szux6798QDmbaAPU7ne7ASD3 RjkJoDfV2wqk
alz3nN2Tie7k1H8DwKn/GN0etDlrzIxJALq/QgIAcPhxX7bOza8SOFly4gJp UKKBRxZkjl0t
fCm2jTq1u/7bn9L8U+fqkduOv/dNqwdoev2231UK9befBwAntgrbAvjzY99P vHfgU1d24UeX
NU4q2h6AC8/86O2axsNvqmJiAPac8crLc5iG438CAI8JuUbgopP7YgBwayY4 HsAlJ2Ac4GOl
QvDJhz8Yt/v3+h9+/PEL3nlr1+/tAQD4H+9E+w//56rFEMasXG21xiJpZYcu KI/IYAvgs739
wfmbqzBteUzI2zZ29QH46UtyfMb6l/DMUTsU/nzMxj39xbOqd/s7aVGigUeW CS37N1/q5+Ul
zTggTB9xF/Duh809G7LrdjREORubSz7C9RATmhB4hMFSmS3R63fd/uvqj37A FFV/quPxDbjP
Dic3OjNdQfWRTjJ0QZxYWwSK1DRgTo352KRde5mHt0vk3+ye+eWn8Q++vwH3 9XV2ZTd6IMs7
ZDkh0cAjTaxMekATdyKAUmjjyx3z/iefdlHHVk/baYNu2/sZ1zt8Y0cDNE+W ExICjzBoAWFF
26ZrxY2SQptSMDNt2kbcFT9k45+YoimKNCgxoUcWvDS3YmKL6DB+lRq/QxK7 EwKPMMSd/Iph
k8N5h+x0r0gITAg8wvAxa+W+I68SNiyS1I6MgUcYmoMB8zvyKqaU10mDEg08 spA2898V122U
9lVIgxICjywUbNveHOUMgY2CGT5LxsDEhB5hqPVFNsvcyxDYKLhCRS3SoEQD jyyIbmFL5aHZ
cukxBi5ZhVgmDUoIPLJAadKWSuUY2mKVHrjkSqiTdBJiQo8wCP70d2UJT7g3 oJAGJQQeYWNg
/TvT61UBJLE7MaFHGBLlovEdGTl6TLE/27tLmpUQeKSgEIzra/QgD68QD6W0 bGcGhzQrIfBI
gY921jyNNDRTTK3JYPBLQn8gB7fqGReokBkmMgb+LurfBq5vuEl2TQYDLfDO Gj/+xL1FCPwd
RBCVbAP3HXmZLF8mObGICT3CoHjedyXdp68oBkmDEgKPNCWcyW7kmHOoYXJt D9mZgZjQIw1G
tPqbPzsb+/+3SGxEuxBJmdXoEW1di7tFBiyXpzRKzjShxVkgN2NxUaJrUnkq UFb4Cttal6sp
e4w/z9hiL83xFnoFW/IXPcYrj+v0eMuyoqIGU3WrNTOYZzW/bTqcCw8sW3YC umnZHst6lOVy
LF2W4VFw4bg0pdMV3u8ytAFa0igpz1SlTc5mXMbVRMeiPZvzQLs2b+lYaPhJ JyEEHmkww8nd
ZTfvckI5nrfcXNhlWJ3SxHiZTQq6yJVC7YEIo7o2pxdbUuHuSGFCR1RJqX0x lwskfLQhVuJ5
wUOF8iymarFi8QHTpQRb8y0cY7qcBs5KNei8y5m6xHO++f6qNGvIjuOxlMtz phXIaE7cc0yh
GNA5oRDQfFlRVMrFUQlWyAdsM0AXDSqUEmVNsQWp2xuzZIyachqd3mgRQjZe imeVLj9bql9a
HWwiu4sOYTDXEBlsCfyLoTRHTklsSfWnRYE2xSxHO7F0Z0gzeI5OBx3JTbJS ma61EbFQy9KW
IXC6UONE3aIrwOeGCppYCBUbbDNq1sisK3pmsTnt5JtTsaTC+G2uxu8PsXJI 4TRfOuCqjuuP
JWpcTQgwgsGX66k4VWIZj0opKYmruF7AoUu2ngk1Jg1dLmqqF4ScEyuliuNm Uc4L6KHoQi7Q
5nA519CTep+/UizqmtU3r3zsXqRBhyrI1ipbBuc/UXIivMpbtq30slWaYPKa LNCFKN/pcznB
oKWeECvaiUampynIdvt107accKaqtVZq9wl8ldbH+5Sl1T6jbaqtq0IxYI5R u8SAXcWVuqwq
OZRX2K6Sn26vnVBIU41msLhwkioIXqk+I5hUFYpyV219orfWoQUqbAQyISrP cblRvJ2mWX9F
MhSHNlKy2NdSKdTlQ7yXqUoydBVHWYxHuRTL66LJBYu04AilYETYhbQnIfBI QyFrTlhIjcOi
OqWnLlHbbTRyS+lmuHTWz6F9FFbJNQu4a/In6uLAxxfsVw8j+dQ0ImtCYIKt Cotb7YdLIxtZ
vxu+OXT9jc1Q+aaXiDxHMsg00iCAW/lHtwvQQGRtN1irH3rS5J+uEl+bTeRJ CEyw2ZTrRlxT
vx6NsPoCiL/Op48effRSiWz9SUxogs2LbGQNA9o1DWc3Ap37Z6W5Pny/z/+n Q4nEiQYm2IyI
rEmsG87fNWr0f4jadB9wekV4jAicEJhgOAyXV8CM/xXds6HiaMp5679ETITA BMMLj+bsA3ep
8IifkWUeIeIgBCYYVnjzFT99HijXxSVevPVJIhBCYILhhHs9KT4dPA+r+tQ2 6k4iEEJggmGE
T96ysmfBguvR+CFXmXk/EQkhMMHwweN0Xd2ZLs04FG1tf6olP0xEQghMMGzw 6XNO4gYYtq1r
DovjmsYufJQIhRCYYLjgRss6fF9IAudXWArbnpbiHyRCGaEgC/qHH95cRDHN L1tsStJsLqoq
rGTO/eeZRC4jEiSUcvjhuK/8UL2uhmSkaFCj9RLqHeTfjxDBEA1MMBxQmDsK PWO8rupqvujl
DT3UKiXEJCEwITDBsMAvdyjzxca2utx8CYcla/KSZUj7TSRyISY0wfDCLpVM gkhhZIN4oYcx
Kvogb//wEWkDQmCCFbFBm4V50eT8b390D0JtdyUNRghMsCK4DeE5XY4v3+mw ngiPEJhgWPGc
o82ab46Q7bcJgQmGGSjbK5CGJAQm2Ixo3ZoPC9EOkTghMMFmREt26z3L7Sjm iMQJgQk2J7Zi
RJTNkZ17CYEJhgA2bg7IrmL8g1fnLGk2QmCCfmzcHBBnZ5kRYWoQEAJ/J6FS TUQIhMAEwxRi
mDQfITDBsAWnEhkQAhMMBRQ2yoJWGSI5QmCCIYCNmg/yqvh2IjpCYIJhCkc1 GokURjZIRo5h
DB9ypkjEQDQwwfBEolibJFIgBCYYpqjnpV4iBUJggiGAjVGllaIaIpIjY2CC IYDYRtwjIUnW
8RMNTDBcUeHKBpEC0cAEwxRWiiHtRwhMMFwRpjiigYkJTTBc4RPLGpECITDB MEXasgmBCYEJ
hivsUKCFSIEQmGCYIlQWTCIFQmCCYYo2n0OckITABMMVNQXXIlIgBCYYro1X 9jgiBUJggmEK
t1kjqwkJgQmGK9giXSBSGOF9gIhg+MJ0cyQpFtHABMMVVRmfTKRACEwwTOGT 82QemBCYYLjC
4ln92x86kQchMMGwQkFtDHz7o0jkMcLQAxAn1vA2oU1jud6NEXmMMNQRDTzc P8FCqZtIgZjQ
BMMUdjXPEykQAhMMdVS+/Wul2GeO40QSDD3CCdyznheS9IeDhCwAZTlnVzzF 9Bj0oAVDkw4x
NAhcR1T10EZkzacEhh+8jBykQxATmmA5NmYa12TYFJHcyAYLwNpSZphLPg8r oX0UAD1Xm40A
QCvDeRGxExVqwpzKJL/O06goXR4TT8R6KkHbYU2XNty+gBPSTAcyn6EiHV5T MWv4TZsS5ZIC
vx5d8npF1IKVstucdbmS4FRYwYhW9EjF5GzZ0x2+zDAqRbsM5XCekOEcRi6Y si54oCXFq3iW
LrAmbE8xKcrlTc90OMazOdf1NNkxAm53hKFMNeiZnOpLUTYTRgUUJ+g+2yny btDVTVMXzdjU
A0nrDg4oD0iuzxSivikL15JlX2ylIipKIQhgsTselcTYRTE2xxhFjuGGVoqn Nb7zu/foekxo
p3nJlMx8EJm4nbWrVFPxd8kVQRR7akuGqAbzAZXN+E0mUIQTciihh4t3F5qy 0aQtVXWELYNm
qtSeSBZUbGmDJetevJOXjEwUqqDJLgJpmikIuqzLBTkju2JWCXuizmVBsVIy 5qVCWlXSDNXP
F2k6L8gl2sezqmyaZjhr6s2dqM6IFHg6L3lFv1WqFdqa0gEmr4X4Ms1lG9rC sp2scWidoSmX
ZWyddUKdUoxLVRdVH0xHC8ppmeIpPc/7i/qYpKFoDUuYaD7Mq54/G7D66lRH NEWUA54RLLoa
2aNp8Aisi8+/YTDwUdk8z4hM2o5Smk8zTbWhNZ73ouWywGjVZlnlwgW/IcnZ Ssj2pyioLMN7
eUk2LbspU9NOM5xO0U5ZMFWRdjg2TQVoLu8pZRFWIc5yqmyUoroJTvWlRZtl y0o4b3v52jzD
2CxtM6rhCUJu56eHhdT+7/GJXfVp1uJUuRjVpHI4JxohDbztFZqzXBBJxBOg ZFsTilLE7PY7
qMpLRT+tc4bO0VzBCnMlNpoIUWrIpLOCHsiE/FnP59NVjnNUzrYDuqTbvMVR Um+sr76PoThf
sibZpPbydYV8uGjIcpZ1FE/T5FjaEuKtIqeGTZvPNiVGLfIUTucN+IW25ryU 82pyFMVU2Jjl
trEK5S/xGmd5wRRLx9rienhhvW67GUn2rGChVEfDrVT4oEOXFbN+qRBIM+F0 LFcS6OrWuMFp
fkOvLtGmxbEsrVFUNixlvGC2Nqpke3OESoNEYIdOVE0tBylNj6c5PSTk7SpN FWnTE0pVJYGn
c8Gq+Y5YlQ0pavse5YUu7VNDRqCUDxetsCOXk9vP36ZN0sIJhqX1QJ5jmxcf 2zfbqgScstHU
rXSNsky9SmPH5EuWGdDFAhfIBPK8z05HCw29Si4n13b7LN6meMlkfFWlmd7A 1exqWOMbFIJb
X2rHvzih3WlpZZxtlyRG6Z7HO0zn9u1s2KIKil2MckWBk9sjJqdxcITqDolz Sny0N1wQKM82
AoplVy2ZlKXVcDmeEBnDpj2U6pys7FCFmJKyeN6JpiWaLbO0G/BsneJo2eYd X4VnDL5+btTy
WJ/BKH56UbUvnRApK2yJ/rnfS4z6dEy2WsgqRpiREl4sy7K0bBb8dkjO+XMx 11F9FGubbsSh
LYby7CwbMNmKTDOs4yqZQg3N0oJjuwJvoqXVc4JShubrnKxdbQXb69uay+UG ywozZtls6LVt
ms0yYAOU4chVlSvURJpQadDGwGFOr/ZYzevzCuFkLBPVNaHozzRY2fqS38nz ViVOwQ7ZRTnQ
meMtIZiRrJIqeeFMOCHoY/S6Ah/J6NvkObPZqoUeS5eyobBWnTJ83Gh2UtMC tjHdmPBpSpAx
dT6SQX2oSIXCXTJHTYSvIhscKkGUqrRKyJq9xsDONfMXg8Bf0Ir8zykOTFlX q71YXyXgjEqa
NX0Ni43a3jjTY4WaOg2dcyZZjKZ0S7K4YAKQqG2LiwA6mgrBftvc4oBkDF0N gNvaQgNAQa3t
/yDp4rKhjcWt8ANubx3Q883MQTay3NvQ0WRxidq1VXqLuTrgK5M5pcGASwOU B4urbV7yQA1n
SmzBEvPbFTQhE7fcxnkhloFr+tJKk5WginJNqaanPH7++B4706TydKhtdCa+ NC67NFppuXpO
tB7osZuQqu6ym4E2wa1ftf8YAiyu5F+Td6t7j5qPvWEhudPeZmcrm1xKNrKJ Q3RmOSUTAWWN
TLW29Fzx9jmDjIEHbwycqA1Omf/xmM3+5S75N9BNXdquel5pWEjt7EdqnxtP Os832IHt6CNS
GBzQQC2qHY9ac1T8uvnrqgMd9a/X01e8IYVhslOIJtPDPptcZfMVpYcChEmD RmAX4DnPqd+U
QjZTYpc4t8kbzie3itT4MGcP95ZXNl9RbIWsqRg8ApcA1sgt90JskD8itTm9 Fx1eyshuYhlb
Z1UspyUqW6+NskO8DyXk3k7CpEEjsNEJT6uqrMGsXddnfHMmcqkBq0eGhdRM j/NtvacNvl9g
/gDHlq+CqaU0khdisMAiBli2OG49XE4DQM5txrSInX51s4+lnuCOROe7Ow/g cXrtsysw80PZ
hUtRhww8gLj144nX/K33Orzw1M+3XUVsnLP12qhq0HvJxLWb4ErRR5g0aAQG IDqpSnzj7g9v
zpFlUQ5v7vc7f/KRePaCWwYg8O2vXYGZPxcc10L4joP/OMC9L//ie7vgT12n jlv076O2XUVq
1lYcAytDsuesMP/u+hTCpMEksK6wbfHBr0tTyd7sWVItHdh214E0CO0AFHX1 oYW8/+sbbtjh
x6tfsYidCdzY1wh+VZeVxVjDPgVVR9NmK8r2lwiTBo/AiVo9YNZstSf2rvFT YcmbP025zgF7
f7jsx0qRSoINOPbOk2Gze7pX/e/HANDTtwMAd/YOAADDBnACgLLVP9Rfmmju t7W5Pq5vC4/W
t3j0xWaMYHOqHcKkQQINMKgpU9RWe+KaifNIjgAAIABJREFUVb3O+MobXFzr WXvv8qNnAcx8
CHfvPOGYVgA33orz6yaerQOIVICZP1wAoP2oCfufsRgAvthl25pDEwoN0CgC DLCd3Qccct+L
x0wHntyp5ZDJ9wP44Suhg6/F+QcAMiQAX5+z6+H7/9ICAEdpnrCFxbSMv+vh 5V+bkzq5AQRe
S3Ied+3VsDPECz2IGjiWMBRjKMQl+BlEN/SeTw4N/ST9wZGP/hhLznr+sz3t R9/9YDye7XuJ
PW3RPZ9/wIEGsPTJEydg1k9LxxTfeOL5PdF+CHUEv/BQNgh4MAEKmFGIAy/p neL2eOP4w34i
zDjlxYcx8VNpm6lY8i7gwgXeOU8/P6ZePeMDAAG7XNryMdgWt845AZdea8qO 9ZxV69f26dq1
febXqoGrSHLMQYPnec4+O8a/8oYApu45eUNv+RG+8LzkhCme94g0OuF5z+Ew zzuQ+Ynnec/g
NM+bsofnPYT7PG//YIfnzWd387zTma88z7sWrOfdg/s8NVP6y1i85nmBwD88 z5sw3vM87yDc
6Hk3hT3PO0j2vNvjL3revvRTnuc9jL95nneBb5v2zfzuXRtxj7mO8/n1K6Zt U+u++y5TPYLB
AQ2Aptl0cAh8S1JZYYMzxOz3xFSgesxcwNHOjKvGYXu/DnDOlfBwxLH/BVJJ gKYdvPnWLxqB
CVd88CUePXayB5zXSAEydXO0bvvmn2Wu3x8of+8cYOmC82E4uJG5DfByAGwJ 6OjLY+5bZx0N
4PhtHgPg+Tx1M7/8xkTCrWuYvJ6NOmqTK59dSjTh4JnQcA1Qanf9oNelWjQ2 mBbnYPFXHTPf
lgERdWAdTHtnznaB+hY4FLPPk4vHej6g4saxNOi87/YpJcyYok6EwzjRnZ4G LK/uuKTOT9h/
PABhOwCzsQ9Y2pwydVZPnQEATgmIAviYTt9ourngvDQAQ5NJtqDlkFWBCGEQ CUyrfC1TPwQq
k41vMC2evrK7JrT/tLcADw1gPURgYUmDCIqBDxTkMuDCQll97u+6KDCsAwhg wMIFYOPS/b4t
SosAsBAF7XoIIVkXAoBaGuA9H8rB5Iu0gYYfRAAoIY90nRWGyMFUdz0Rw2AR 2KVdcMkxQ6Ay
FXOD507O3O620fXSL2b20xQUMojDv4CG51EljAHFAybyUPTTz++l2ED3aCiL QHkurQHgsIL3
Xe4GUI3F9Z7HoSJUgweAPAtIYODL7b482IPP1WzuhOo9dcO3E+m0QPg7WB9P F2nLMhJDIgY5
wK6o2OYsWvcdr2cvPWCshC8ZoIKvQfOYIdUjVFoMlsJzNJCOAQJMjEOBrqut fvLsHsS/Biga
XTSgYIV5K00EsC+eBc3Sj3y9T31/pteoDLjIYP+W/tnkMT8GUKm3N3f0b91w 7kUe2R9i0AhM
I8YplrjVcqIYazmnaCucXXTSmesujcISADd+TAMCXgHw0vtnAZb6WwAfvvYX QOwDRLDYx3dH
Glhw4tw6XPXpbQCuLvoBDoXlZUlZADjuls+B2Re5Fy+bYLUoFx48NP7onV8A +glLTwHgeQWN
9J0V+JslQhjEMTAQWhTeWg9cm7ujWL3Cl/yKheMP+k/tOkr7QcvF7dFnxF0/ OfvugJwcc2jm
pe9fDiwa29N8YPGl0RcCyQigwgNePmHCNOZ19jnglFd+9p+pn+u1XYCOFRay qjkAeCS5407S
J5F/HwzYADC3j0YGHPAn646/N3eqDx4GgEmL/hHfdb6c8s1fltJscYRLg0Xg itLQwWhDIQu7
bH8bS/nRZdYEaclFj6/rljd/9ZT4k992HfYJsup1S+6yrrgMQMR458YHmStO BnBRMzDluCnA
7s8//qx0yWmjATx49DOte52vzQam/mWFRQpP9wcHv/nY65Uzp40D8KMmAPcU gJOnNQO45Yg3
6cnbTQAA3Z8zh33T65sYvDPu278YyzEJgQcHlAdgYuiTeROGQGVG+3uX5VZ6 /frOOFMxrMlP
rvfNLx2y+BtH3P5Lt/C85M9fyryy47ouWvqZHqgIFQjR/dd+Yedjb7vy4z1X +41fNeA2oVR1
+gAXtd5F84Vb16Nut7zPVt8BHNmn3r3rWi/sdxxn93cTdx21aeLYXlo4h3ix Bs+EdkNSy0BD
ujd7fQ6n1fXRB6xrkcEnrUbr1ZteGc2/zIRu+22hjs0zydrPL/jb+t5cRNs3 BDaKm1dIq9mH
voq2bvX11BUtFVNxc2MqgYtPXduFp305qtiOuifkxFkN+Espc/hABL7/lnGY e9rUdVe29TVf
M1BoX1JeuxTu/PvYcX8CIq1RY1ODUoKtEuHv4BG4EPR19w7UHy/vi+uQXcb9 zba/H7fWUt69
YlxpMxCYFfq90EvOLXKq4jLVXvTVw+6pXb+bGXzbD5Ob2Sn65ks/3GOlA9k4 vW6vn1sbkrpZ
q7pnov4z86w1X/fO57XFUQ6QL3sy0JT0Dbi059VJPkN4fj0IHK4O1MBS7TLW vkTI/jIZBACb
ETY1E5kTJlllB43ALi1AlcSBhnRyrS5lkn5LFj886pEpaytFCm6WFaFeqZ+D J9l+nbZYT7ZN
c8nx76zfzbH9vl3gevlmjq0/8Nx///qYFT9hRklaD7e9pSrnyOhZ8Olk6aK1 EPhLlpv44ELg
HosfD6T0AYO83lg0sSCP+3h9BkXVKQmc+4qqrp3tGnx1ADB79CbLp0KxJJBj sAhMQ4RLK4UB
G0ZsPppyO2baTb23/nutX3O/XtgMlSmMLQL49La52zhOLkTB9tiQf/Fx/1iv Seq93vj2z59u
bildedEd//rBicu1sC9nM+tmksyK1wPANS/HE/edAiTZCN7vGb0TAHzYZUq7 1gFYxC8K5rQ2
A9g3aADg/Z391tD8TzS5ec9vCvtM8ZpT4a/nTgKAV1X+EDz3pdr4g7EAOmaa gUPmfTK7tvGA
CADLzEtA/aOWNgkcgHuWpDB5n/4R+/NduSWmsv0BLcA982oCSx+omY633sCu UwBg8Stfzo3v
vfe2APBop1Fz5sNvzGuYvsa5vMryLByRLovwdxDHwFApfqAMMZZGT7oCwMIz WGnOMtXzBRdp
/uZ8XzZX0z/spCt+oX9t26zgGABdMzWED1imSRIftNft1gQs6tdh878sycev QSlYDjDn/zLN
VtjrDUi6RbFOOfrxRQ8MtpROujbsvjwjfM2+33BTwbqXsDNaQAdUGWfc1SD2 Ace0tr3x8KOZ
H/8HeOiVGRk27Dvwj8Dn58b8bseR4uzWw8WO9yciTFssAFzwWpEKmTve2s+M whPcov/d+YH6
xiQAc46MFl5/4NXumsqjlx8IvHqePM26fQ6v0TvdPBmQLDaDZOwiNxv6EfDl lTOkYOWJf591
MYC7fhMSE6z3wk1Xn4RzxzeXP37kqOn6efXtD04BMOv8JJtb+OX9R/4KwFMz nPqvn3Ks9Mev
rGkiYIUsOnYwT5g0mAQuVkUGMqE5ASJQDIzf91mpd8EEzP/fS+7iQGDS4T8E gPm3zdK1mO+w
CwDQjr8LoG/7p9R64xjM+kNbt2L4Gvf8LQD89w7TNdW7ZjygXnUh8PjfswXJ uX3UJTsN8MDa
chEfX1SK5eWMV0sZLueaJiMoHx35n0EOFBP3eyNSzejnTjrzEABAgLLWHb7P cH2TYXAAH+Oq
eoBeo+q+twJmHXDZ/0T4Ei7z4OwXQWfDXEnstq2WFK32TARs1gRw5rsywznl 9479qN+CLon6
Lm+8EP/vhQD4Wh973afZhsyY5M+fmgg3XGv+5zPeDVfNPOsDgFH9McRQn6oK A0vOSzUY2Rra
uSn7O+i/DoTady4uEvHnH4r1Iseze7YgW++POQAW/F9yVGeEttI3u78Gqvgo /ZAyIW3XvPyf
b11qa9xhzoLVPopwaVBAA0AtO3/AuIRI2YXN2WA1VtGA6+4spikt/ekV9wFI XPySm9RCqd/c
DqDMgAKeuhVzzz0dX5/3QdHVD1A+v+6vAO6+wbW1rHHVAkmVgad/nvC8PJt9 +xdzBnheyAsu
uCQ5nmKZDFzXsCzPRlSU6ub8ciPebLPGlu3A8qYO/1tn/uR9AFB1d91+Mp11 DQgc8HpFM8YC
DuqfbdN4D6/eK3ixC/70oyL7+jk4+MF9C4Gql+/lXKeuIQaUSp4N3PViqHT2 bafQDa03AQAe
p4wJOCLlzHsfgOv5gvPrnnvg0C6k/gI4ZSn92cn33BQzYx9+BlhOoQgkwnJW AR75Qmg/7Y37
q0Tl2ll4NmPaLz/8zO1q5Ms30b6fzu327u9RJ0klC8AlJS/+1sv3T3WrrnsW 8PN0csf3X/0f
UP/aty+0xh3mhGyMBKYNpgamTGGgefgMTctgWVhzwm55e7zzWlQ/Kag9la65 +BTghO4q65Tg
3M4pN++3LUQ4HBb+WTQvuha4vm9S8uwdEegdc+OFaL2uQadODPU8RseKHnB9 1JNOb/j02ZbZ
F7y7+gPL8phLXCWtUabAusj7BYZ2vBJvVyem/0/ZqE/T5sIe17M+V3eafDNP 2W/vk8GxWHcs
tJzeNv+OqWmfvx0tmgcDlOjRtx2fq8UdVeGulxqA3S8fd9flLT9pdcotewC0 rfSogOlXBOAe
pXDJedhHujd896UA8LV/7nnYdhuZem4PQImy6Ul3t2C3wxaOeROQIs7Cy34H TDuy2PjK98DZ
AQaozUueBTxa33fOr4BrzrTw5I7BA5qn7wgce5WnpIDaRVUSFMApyTrw4sKg enMjmm87QpYe
PQIpC86ddWjaebG4fOffNUZbqawZJFQaRAKzWnmgEGWJtr7+pIT0K4t83XsB jyfLx/0aqHm4
7BrCC1+NT1z4C6j7fVF+bluwntOAcyz7+38AjNnukjMvBZTX+TbgFQepm44D ojeP6WMxa8H2
i96eiB+JT1bNXbq699OJGks417M5RzRc2kc7LJtj3WzU601c/ZMds9lCSKVt vqJSrC36vD6D
tWTKZLtpN1KhdMrmLIgqG85SsGjTqaGMoJ4TjXjKpWmL5VXL8XjPYW2HtRlw nqX7jJLnoz2K
ylAhQ6uwjqb4dRUhoSzkg17ItpNSIeqpZdqR5lfLtsmiwkUKb739+AXp+jnr MQZWhN6fyaWK
T+XMP4wGokvMA05DLfBhY+GsBmjSMTdw/tfOBstmTMDi+L6yCDBOOYDOREPn UbDZEx41tM93
AP6leOUfAoff2fIpgFE6z/24Bap84q+sJbN2VAx11DkoBkYfep/7zJUAJ/YC gC1ZwIKp6dPh
0ofeH7OjOPBA6K3vtM/h9LANMI5sAYBe2+EAd5fR0AgL9bWLlUWAHxV5FAD/ Unl5mPMag604
jjUIlQaNwBYHc8Asx7wd+vRTN5Csru6qnA2cc1Z5J+SyX+UdScDsCCudD8iX LU1GAN2tiBdk
I9E7AAgv0o1AW8/9lBACPpVp6jgYwgW3aOMsfMxUxo0vlep2eaw68e7qBI64 tqw7Fm0yvl7R
lixeMGTWCSi6VTP3bJ0STKeihDvciB5I+r1gkq1KWkE9oCt91U7ZC+dVJuw6 WigbcRiz5Fo1
rRMzdiAbNuhidUYWODrlM8NWhdVDpsoIrO1SgYKckaSeRs+B5oUKNqNBkV07 G+e6FYYpiIJl
iqYrqgrl8S44xpF1UQxxn55SL0bWHUrJaBpV7mRcPh0+8TwAYNPbAsDHJU3b DxrlKrXzQ4sA
kYvTAAc2llSBxqK/gJmuET3C8zkuFfhqwQ7AQ6qycy0w7Ull8UsHY5FuyRNh CBhb8YOGzSMS
twSHqQ+43YCRD1gAxGIljVZB8xpBA3uIAHD333nNWRKoF1UH4BkzBgB+W2KA +qg+FoDDNc6K
dwGa7BcBgArJ6zGnbrF6M6HSoBFYDVLuqIFS6wtFBbpWcueHw/fuAmyLR9/o m8P3hlHpq+mW
1EYBwDH9VzJi70dK3gwDwKilf/0iuRDJsVqgryZv21UwGdfX4mV1dPsZYzqd 8RozEaFzIBPa
9jhQNM3oHPxKd0QzKFN3KY6WMpRlFFm7g57IOvDygaxp8ZkqvVCddt1cSbDz tT2V6lwpWHYq
SgaW5DLB7mLGKiXlommqXiitjqrYiVBZ5ZgkW3RqrN76FOdySW9eg96jc7zd 0BoqmLxlJEK2
XFYrUBYrOdrfNbGgSioTaZ/CcLAYj6UoNVxq8lx23RrY8XuRA4tOgGneaXsA sHRXBIBM0F+p
A8eqcvOiUhBw2ZwNAA0V2kBPpWJ7GJ0cXy51cDavUEgBn39SJ+lHucWQpDlv HowKg7wE0Khh
3HgeYGA5nG0zMuXnAUtzogAKboRFB+f3944BIALArBuTfl/44It/rhYoQAhr GoBCUc54QM7m
owDDQGiqmABbqloEANV8qWHdnYjJECINIoGD4H1dA40YE7I4anwlbmtTDvYD wI9naB4t7rJY
CroodY+phioD/bNHMaGqLNOFv10A4InfUTm6XHvQUjNfDb2aqoXjsRDyhg2B ZpIJNqemJV0f
gMC5kEu5oslaFi8xpslXRAcuE/Q0ofHrfZHSAvq+Qa0UdJlcgA4X40sDO9oR PdAZ4XSp0NDp
cyTwpaDtyLTKCDnTX1KcfFDJm0Ha5TJhkc74DLksU0IeUqDkCpQp0Y5LcQ5H m5wLmrFgux4r
GA7Fgfb38gxomwMl6rY87ykfPLekyHS+r+63l//sXnnd+/F5Ste461Z0Zcv9 wS5iZpz2VSMc
oCvcJQK0JVQAdHiVgoI6I19TBFsN9ZkCLUOi52wDPIuIw/XkjCpZZ/77q0iE 9ks5sA47K+Bv
r4JZlOzFE1kXWSrbAohj+SwAyZ+yEFVodfEYAE/7jOi0+xE44dxGDgKX8QBT rFQABBtVHwM0
vBP6APBotNqVeoBi0zQA6Fl2PbLl8PFFhEmDOQb2TGYgL6IQSu7x++U/T58R KZ28V2362PGS
CyNuJdAfzJCMg3EsfXz9+2PuugDA5RB3+tHkxtzujUu7GwNzqhdB0kr+nMAB QT875nZhvlLH
S4sGCN6soSuCx/sNmI6f01L1lkqZDKMJvDbjlOuwcPn+KFmneuuK6eP7ZM6z GSlDyRedVwcf
Z687fpgp16+09Vu3LLsAsB9PxT84mIWc61GpGsC1RB8Aw0LQBnSa4TA5RnmR iQDKItsAvCa7
mspabMIn+dT7Lw7yVOH56QzwImVN3Ba0KLd/MhE8ZrD0FIDVKRZAvA0ato2W +Y8OBJ49part
z9M+CZYvrwK+ytQ5IkB1xUQAaG+uoYFpD7uZj3dh0NHGVo4BbEmyAYBjtPWI szRkb9E4wqXB
m0bqobWBAouCOWMFQ7H7g9rOv/5++raWSJkqmtjAPAjAI4fscQ3gaEzuL3eb vdlrgVcydcYf
fzI10kOzvjgmF3yFGZD8czK2DAQ6YGwz+pC9x3mmu3oK6F6X0rc3YVIQJEvV gl7C0AWOFiAZ
x54PrLC/UWTT+LvhM0zvsZwvJgWz8nkvXlcHaFFh3dsyOj6stFdbo7aM9Md1 l1/+D+Bdb1DN
ewMUkzUBNDo+mgXC1bQHNLcWL9GBP+0wvjGJ15LhvoPmv9fa+v4LlE96CY5K jfrw2m48McPt
2Q1QXIz+232Z4h+W+Hr2BWDaPgBJz08BOxvCM891vntzY238YtiRyitAz28D hioBnCx0J5cC
PFW0gaOPSPKXvvS///4fa5lXAqxelAHAoYPrs+lCKaISKg0igQ1PHChJmxPR V5gdcFK8uB2A
V2g6I+P7Sc27GcCtC2btDiCWtcfhDKv2oXlIsbYQA/B8AGUOezGgf/1O6uVf spTFYTtKW3gt
gMv2POiwla0uA0Ccc+VbprU6Di/QDiNo1kSR8jww1rwjbq3d7C+9QZglWVbh s8qF713aBAB0
WVp3j6VNZqX9LjyN7XcInZPh2q866ugjn5fbL28CvErQACB6TqAbUE1VAS7V fR8dcd6Jd7va
uTF8mPW0o7kYjbETtuPisxGxBM69e5eDrs7T+imA42OY4lWHH/eAf0nzUQCT ChYByL4EA5xR
zFE3/ODnab34ew4/WCD9/YQTD3vfteUUEObSfcf+GQj0b7R4WSBj/vS6381X e3+vALaiigDA
2MZ6BFlxcilKqDRoBE6g0R4wqRGTCq4wO9AUyIk3vP3IJS+HaCmMH8VKTQ9c esWBLD31ZMDX
GWOBE3Ni6I/YhtXYqx78y4l38ZTfxV7HLPL1Xrn3efPCrupix6OWjHn+sEsP fTmQOnVlm0sA
AFXorn3woAQD2qJ1XjaTguVSMpu/9JbBFlNrnFloX7fwF8siwkLUevRYNZpd aWeTQqHYP2z4
/l+CrPPV0q+Nr39/FgDey7IAkO9uY4GOT3tsJPe6wSimv5jL6if9Hdl/Wp2T d+svY9rXqd7b
EU7px+6cXuCAv3snwKhw9in+ha3OEvkeAB3G/E4AC7/yRGCX2+sXJPoqc+v+ eiZwVjjV/fpD
2X8H5mVuszA6nOr+vBsdlZlpCsCoN3ZpYxK2sdNdZwHIzO1aAADFrtx6ZMuh KY4EcgzeGLgK
FXnhQOeK5Up6hZ9X/I5/+72l0vfmOcW3D8FjP+3inzdYruk8AHZflAGarnwg 2/fgidPf8H38
fK506vu51DNH41/nP80vMXBIohwCcO/0BXR5dinWe9jtqxhhfsColHWLe/CC R8ZYHiWYFk2X
WdpD20WXD1j17NaLr3xxXrV4/YHLp0p0yVm3ZSl73Eoe3HE2u2ynk9MOeOTN DoOdfsx+ANC0
fVwCgO1aPqsCTmwr7OWGcfo2txsps/68Y4CuY+XsscvK2PtaN1nTwSvte/zq 5rsjZx8yEQAX
T8Uv2+vBryIHH9oI4Kc70HUA7ihXJgM4dtpHM+bu0HJkDEDLcw936FMO3Kaq s1bjsP0Lb6m5
3RG7Iy/sBACj//FeX29ty+EAgJvO4FgAOPeo6vUwjinbZAiVBgeUB2B/+4N3 pq1+7uSMNf2y
FX5f//qSytSTfnq0kJp4B7Dw8RfaoswuP5wO4Om7x7c9A+DSpNt83dIXP1xY VbP36deUK7ud
DODJ+T2++osOK3ZcciHQ9coXpQ8m7PT9g1fP4GMIE8MfOTRw3Z9jAViWw7I0 Z3mZC67IDnbO
zJ2pM/ZfMe/uFQ8aj+2z7tvWlrRmhfV332aUrawcblb4dgCzYhSyLhb2sTN/ OO3b4p+9Bu4L
g7oaaE96zoxJhEuDReCKsqvR+trOA5213JUnEV6Nfg+Alc9OAICuirHdsg6m rJwUr7VlhY7a
W0N5FEaNbr36dABQ5TV6LCe5S3UawJX/agSvarQMhp51zu2DLqRXsttvs9KB S97M/nffrViB
lb8Ei38Qyl3zU3yTxeze6zzro83gI0jGNrZKR3WnX5pIuLS10dnYb0IXFdWR Bt5wftXguQMs
AOCq+53Ay9XCqpP9y/n7v19LhQsuptyXGD3R38Yy1jjjYEUVGgD+kH26lmE8 x+GZjt9cNfiS
OnBVv7Wjb9HtWFeyTnrqlsVhLPdNBEp5dnloskf5zDUY9DrDrT8bNyxN30pV MinC362PxmVj
YBcmq63ngs4Nzj04dkkt/fhcob3H1/rjaet2+yyrxp1zu4KCZHHskssuGSq+ vhVRZQra1nra
6hnfnaW0IS1vC6aX9daw0k/cEDauLeSqsta1JIUu0SV7RQ2aE4tDo51VtlD5 2z55Y/vcQlLw
ug69f5UR7+oXR43aZXrlsb/8bWebZXsuvWRISo3pjQQG7+ljb6DLKwSST75a qGrc8EH4BmHt
3UPi6HSMcGmQCGyFkVey0pZ6wKGT3po1T27xH7DbyscHitArKdSy6K74DfkP KH/b6b8cmlJT
w/Rgul0vXOnXjjuun527BR0p8T6dUGmwCMxlI57q2lvsCS0tP0VfzTrDn1wa aoxd/K2tduct
13K/vGyISo0SrDDpO9+i7OokkGPwTGgd4d7glk2sX4N1hj/RQCHZIi5XbL/4 qvmyISs1iy2T
vvMtwl6mawIRw2AROA7FpuwhUJdaroLScqvv30NXaowWY0nfWS6OPkMkUhgc 0AANy7Q2cAyc
2jIdwWSqh4XU8v4i2eF7OSyF44kUBo3ALmzR2cCUKFuGZ6qQGx5Sq9JNonJW 1MBqgEhhEDVw
Be6GDelKW6YyKisND6lpkpcgfWc5/FGSk2PwxsCFoC5VNmyJ7BbaHJepDCm9 9tWrzcc8NMvc
fq+xq0mtECQm9HJwtE3WAw8egWVMmMMNCebolldRho5svr5k2nuPJENPVH2x qgedosmYbwXk
vEKESGHQTGgHWYEZEhPxEWtI8cJSKv8548bJde2r+cMpEcQLvRy8giSRwqAR WITBx4YEc5Tm
8hBSwLCbzRuuu+SvieaXVhus65ZJ+s63kCsNZFp88AhsQXMtDkMgNbdteZWh NLxI0+cAUyPW
ag4CvoEMgVdsN1/le0QKg0ZgE7FUKrAeu3VtcZRK6sZp4A/+MnvA47Nv7tiE 6jh5HgCoUtWq
Z7y+LJk3WY5yuZwiUhg0AjNgTSbLDYHKMN7GfUWePezPcwY88e6lS9d645vH rc377lkOAEiB
rlXPGHwVSQK1wpeOrrhECoNGYAe9NYp/KFSmml5ux7eecsp633dztPvkAU+s S01+/tjaIrQp
2QaAgrdaauSGCE02A1qOMO0nY+DBIzAPOcUPCROozInfjoEff/uV9b5Pqen/ V181g6KHFa3f
5Zn7XPRf6ckAgMUzFw9UrFiWAMDrWW2pjZEQiAZejoLFOEQKg0VglwNXyw4J E6jiLVtT8f79
V9ztW3+joJ9ozxw8efdTFgA487cA8NnBM6HDvWvydns+CACvHbz3xGPfBoDK FdNG73PcXOCg
x7fb6U3gvF33222/1wfQwCgC0JP8avQ2DIuMgZcj1uxwRAqDRWAHMM30kKgM xy2bXT3o7PuN
+PqHVWZNAE8fFTnnkBnTATz9DgDMf7kbvHL+f/c9ljnjDCBxkvu7i5ee9BqA wx4Ye84RHxxT
wZT6nl05HPj2b26/umf6Z6sVGx3ZDfPIAAAgAElEQVT//+xdZYAcVbb+yq29 eyxjcSNKAgku
QRdfyAKLL/DQxVlgWZaFYAsEWdwtSNAgIbjDQsgiIRDiNj7T3uVy348JQZJJ JmQyM+nU+TM9
1VVdVefe797jp18dIO42Yu0iXgHNn7E/k6dJvleth4gFl4pphOsVdX0JVhfk 2DPKtLZkO32d
HQTw0DZPAofu+t6eYCoAwIUJh2mZHcaVez87eb/7W98Eth9/x964/qPnJ/TB 5AlX3nzTNW/d
Cbx1zXlA1aGfreUJ2e5bhgMwY+0bCkbYT2b4xS7QVrB9LvQUgKHGEg3iZgWw 18lmJlyWWl3q
GDh/Xqelem/hEQAyRlM5dnlnT6A9tYpHBLR+fBgOe+Z/X9jPEz/ZGePeDQPP HHsYgNEX3PzP
kKsCrfz332+DQ+auXVexYymZCD2RjZQNA1CVZf0Wc+izYiBWmXzNokGLQ2pt MxMSF/MZvq+m
6hLbEjFs4kVJg2Du8FUkw2eNAMWZEjEk3QwGMpYWziYa40ZFxpOIlqiP8nSO yVdn7bynx+2s
oCBVaie5QsyxaS2cF9kceCkvmAKbotzyNtsSqaBOMUJWMeESj7Jojw1IPpR6 DMBAMqR2UX5g
Q591y+n51Qptfm3F1qOBpvJ2wVQOrf4EZJlOz4krI0cAOPTiPUfsfMgkoDWY /2lDF+0aWMAk
dSaOufrw7XYYvy8Au+n2sGEpi+zlo2gAJUc+8dp2O4z548aUVeRs6c5K1xB4 8I1SIM848ZZC
WLdEs9w1pSXVLLElUl+ZDRcMI54zFcHwzGhduUe1uAGG0WwtzDfFVVnQpGSs YIq5eF6C3Fxu
58NLh7fywTbXEj1eSRbCgtTGgW1jNV62OLm+XDdkiuRZvoEPWPmqloJY22SH bDEd5XMJ09A5
i3eseD6mtZblE5loa8ClWsvamJKVokNTksYrWTsgGq5kZyMZFoxsOlbbgEKA Mi2ZCuZz+SAi
WRJf3CfvcDIxFVVyiC5oQrI6w9uCQ0IZkxKUgs6xlFIw5XQ80EYkIB+NRb5X fSj1FICz1TDa
Bj84yGDolMy5yLKc6Dmi4fFw8lG3qcxJJdRkaVMoz7GRgsTqYUdnbI7QddUm 18aWthU4RiYZ
L2yrlcr3sm1xtE1YywaXC+hhm24LWRzRK/Mhh1XhZcsyITeXaGL1EFQ2HaIt jyJsWwQiHJf1
0msqg4RDizv5Ci9f87exAC6qeuXDmX8b/z5XQmIAkAWBi1oQIBSpxeC3X5j/ b0RvOXxpQ/Bd
LW/2If0HtxdbfPyQOXNuU6vu37/zXKMQ/99/dVEkXjreoIQyHhOEHkwFUgHe iS0J6iJxKMXh
BLsQyCQqvqNEo9zNUonmcA6hJOJ2YIkSysTzVnh5haIFC3W2qNp2gHOEluUe HbSUHFyB5rxW
QTN5NhM3OKHOohXDTdKGBMYRGsvZXJbLW+FGQ0WeKthqsEXw3FxYUoxGwzHt +kA97KyuUZRq
0/MprxBGoS3mqYzu5IUky9q06+WdAh+ItSqmowJuwQvZUjqpyikhR9EikTKu 3lLCO4RLoVmt
oRuCetoVuZQVb2HEfrRnFwJpD1RGgVyXswMlPpR6CMCejFWKG5gpJu1EXovq wWyCcE3hcBas
4/ZfxggO61DBFQFLMmoa6EA9I/Ic0RjKglbbFNcpFGjZEy1YRDHKSMEkVjgP yYk0ihFTkx1L
yFcvi1j1A6yITjX1ddvqCgKt/MCIukxcudBMc7qoc5K2ig+rnNtePat9Y853 1i5yyN1/nXgY
gKOOWtH44k3HPQM6AAAmcshDA+2gUVOAvfbCF5/fdMHh/bO73NzqaDXcDyLa NbfDD1/ofnnS
DRsB4IpUOR1NtpXQRDUEw9Ut16B0jaSZlFSwBYs3VZb3CvlSym6TkgKSZbkC z7mmzbBaCkYq
RktszrRcOh/OM86KCE0aOI/WXdt0hSCIpnG8xlG25VIqwrrYGlJBc2FOYLmI 7jgS59QWrGgA
g+rACdF8ItnHVUjCUWWJElxKDsqk4JVkCF/iZSMelEC/xrCe0PUBrMhpllsi Uxx0LpSKLBvL
WAXiCSFiO26IbusvuzL4+oAeEcN1sdSAfEGkw20Sr9EMLakB1S31DIHhbc+j XaQLpbxL0UbU
I4aQn1jjQ6mHAEzTICOfEwWb8jTBNEWLqGac1wsuy2vcMlbTQBkOkRwnZ6Ty McG1eL2ZF5r7
p8M0pbeJDhu2VMo2QxXpcIxdRWSHceR4E4Fjt8YFN1LQSrRKnR4kQHXoaEtl wIwIYmuEc2gm
FY7yWoRm8iXhXNiNCFk24B6xxrgbQKfzK8644PXDsOTE/zuutnbiV18BQj0A LGMtBPHVfhyL
6c6fsWvl05gwoe7BBUOGzkeJB/rCZ+pBAfhwnzd3H4xht2c2gmuHT3M4GI5I swUmIlhZOmIq
NsURqimkio6QVyguGTFidrgpwayooFIJxxF5WGqwVFMl2hO4vFXVJEPlY44e rBvU1D+ZVuNW
uDmsctHGTBmoSCpMxGxpYDlXbTQRITmyrgrLtTX9h1pLDBHAGZ8Y550FNJSv Ef+zWoVH/9wl
xV6vrfw3VaP92uxbqg5cc9ddvzn6tKPQHO9qJGxydoDIpD6qxRsq9HS5aUpe c1XOkxtHNiqF
wmAjY4VycUqZ/mFQyA17kNLY5gFZh9YQaS1XWaIFDFemJYfA1kRXrq+lGsvU 0hZOdlmdoSk9
lMCyfhwWhCpU5ddTiNmILhD9m4AB1r92q8Hid08Ehrz16U648wUmAhMPnVDp fXVDyV9Q8+R5
E+C9O3QILj/uuot4PHfL6YCGd/YaaF2zO/DGst3Xe4vftD6Y3HkOT+zg+Bpr QSViqKxs/wSg
3QhQAaAE6A+INTT6oAro+/O1Je0Vn4PtpVF+YXcIh0ED+KnK+vpZKP7WUuHT FmrEWouO7syl
o3/5zy15wXQ+04cDg1dPqHV1QBoA1OA3FbUGAxjSXvv/l1NoBdP5hJ9AA4DL jxgzMfh27QXA
ia8cF7e9fR4yYCMwsbbka+o24Mp39hlKtSSfAI599/LpJclvDr4MGIe9bz3v /n+E+xaWjrtp
vbdI2N3o+P31XtgxsJIOcfwp7AO4C+iTeWykz0f5p67puknsdN4PLNkADv7y 5S+cM04aCBz2
wvIvR/1BLBmOsTce/OXM1Il/HAUMeu/bd+mhI/YB8MjBPy4a+4/DARz0+qqd cWrflVl98Ab2
1G71GnUI2ZRe+UsJmCX6WiGMth9hslUR1TWJrZMXrTz3yqowM7fLHuzMF+hO 142byH+0jqO5
UNf1BtosW+vvoPoK+hdQPfFz5s+Xdw62tutHnhQldY3i88aXevqvOMFI3/q7 f+I3jsTUWbM+
6PS1NUmsWvtoqFv2zbpOntfQJXerpJvWfHZhOw7VGWUXAMP4CX8+gDukexXp 1BgOc6Sbf3dt
rd9k8se22bbzzTqO86I39xQDqzp5Xp8u4nb5L6R6I5ALd3acfcna14E7pEe+ 4YW/AeNHf+3c
e14PvMRBwdYBW+PgcWam80uCb2T2d+CO6J5S7D4wq+FyKjSjRxKLd5+87dY4 eAo/3E9L9gG8
yXS3puVOgejaE3bjWm7ekt5+C+9qq9n1AX8K+wDeRKp7m2s7eniBVQgOaIy/ tnQLevst3DIb
tMTOj5/fgtsH8Lrphe/NwKWgPJp4R43Vsi/6TO02clxqa1msfNpcADbu6WMe VmZKFHFNXJyu
faHb32HFzFQnz2x48fHf8fsrr3p4ce/Er8T4tfV8AG8iPZBm8vvBdWkCT99/ pJm/qbvf4b0D
53ZSQLSOvWHdX3SYznr9Y4D+zrmn98rB02H7BeZ9AG8ivZJYfPEk4upUgYKE ySnlnuXdPo/L
0LmqiDVedN1fdFhP/uFngSEfn//u8t44eJwu+wD2Adx5WlfU0fsLyPCLQFG8 R/H5rP7nEVLi
/m57+vZ9lwWLTnR08AC33FvPt+2U+9W+LCUAoEzslXWPaZ74AN7KaaMCOdYV dXRTXM7uWx5Y
YSQstSBH3QxNPXtK/y5+ynfKRv5nZem2ewHAi6+JwsQDFQDffDQzvstpNFio AGa9d+R4/Pjc
4gXb7HkMALz/9vzg5LFPT+4LLHr9LTMx+XCgvqUvgMv+ZEybq5937NO3tYw7 aw94Zx3u3Pp1
2R7/AYAH71w6fu/DBwNz7zl+2Q0Vo/S5B944HLTRKwOZGD7v68A+gDeJ5r2/ R4HMr+ddz85S
ykq1rUwv/eGTLgWwzdWfOp57JajTjxwC9dRXKgZ/cscxjwHLDlAGfPf0s+/D gwE8cda4U7Fs
kjZ5wvsPz74dePGC7P6zPx7x2jZ98fGJjROE2dOfOhqVYRrAjU3fhEZ+dsHX 0/fc6dZvFoN+
tnHJ6PO+vXPRLOC2S/Y8ffFd9701GCsfb5rLC21eLEYAB3JPD5TBrL2GhAXL j5Dc2olsGlmH
Dum789DR5cOHbbvtxLHjxoyZMH7MgQtIF9NOlWdm3LpRIUJewZ2E5E9gZhNy QHg5IXfgNnIf
viN3488FQs7HHELIARQhK2rGfknIk/1qviBkn8Qsk5BjQUhd9f6EkKraaYQs KotMJ+RKzCVk
uPg8IeQWPEfmKKcSQp6vPpCQt+J97iGEjDiBEEKeY2eSHqN3J+3/xi2Hjpl4 51rfnDaq9jbi
01ZN2ORfmPPWvB8///y7D4dWntYwd9l3C5fOXdXlT7ld5WJCyAw8Rl7a3yKE PIgXyXzcSggh
5fuRh7D0wUGnEULIXXcRQsjfqBbyPP5NCCFnMN+QV6nrCSFkGaaRQmQ/Qoi8 PyGE9BtECPkI
b5HFcg0hOVPHceQKfEJUQi4MriDfxnYkhJDBexFCyA+4sueG6HGl8g9Cv36j QtN++81JI2tv
8afw1k2bnszwUz10LxqtqNhc8mNoAIAafvbxhx66YmVD60whirnYHQA+lUCq p7xjXwoAZ+Lt
lkzDG1JrSQN2gM1Sw1wNH1WE3m+ly5cxS6CweQD6fgDQdgiAKCQMiI4FGFeK qZhD7wTW4gep
i2uQOgQArCgADDv76TGH9piQ1De96vLdF/6He+WY31qhQfyC6r4O3FXOHHWz Bet5an+AUOWs
AJzxURMf5yQKZnvjsv4Ao3+2xwu33g7gg6u+LuUHR6kQCgiCcdlRMLBQua/J od28t2B1Vl17
2VkoAIKwAaMSHgRQwHIF4CxEPIBAAACjHSH7Pnh/jwGYT7L7XYFdPqxbK09E JHF/BvsA7iLS
qOTmc5fwgGe7hoIz7716XL9hzxxtIYGGKgDfYAyVP+0a5aFxxwOXeM8NjoT/ 8WEVSrFojAvQ
KCBYP6NfYx/PKU8DCgMADgDEUgA82ICrgaZsIZlAWXtdgBUchQIsAAi2v9SJ u77eY0OkSY3l
AOJkLReYZbb5SYJbOXXdBKCjm69hn5AFiNhKD8S0I674wzAY0FGBHwDg0JsA c39cVHI98PHs
A/auDUOLAKNRB47DpwB20uiBuwwYNOT8pYCTAtBesJZvAZACBXDvALywHIOx T+ERUALeVHYD
194uSo4BwBfJHgzF4j0xAMAmayXvW6rQ6aJ2DZv7MX1hfgsHMGWGN9tTit++ ARZPULujxAXw
wxPgMCZxN4BHVxwICjH0v+jH45AIzQeW3vIa34rxe976LTD7jYCL4waeuBjA Px+rAuhEu+4I
QJcBxBEA4g23g8FVOBx/Fu6cB2fqe8fTq0Vs0D8AwFL068ExUhAAwMlrVflL yE6ni2eXb+6n
9B1aW7gI7crU5nvKPld8Wj3vjjtrsN8Tpw5c9t/a4NTwjtMO2H889cD4owE0 DMNZT0078sBJ
z4ZKXlAOufPi80dfe/jee4ffZ8pCUKacMOkwMv/9O4fCq48BQD3qqtDUH0A9 0gDZ4fHHEo3z
nuuL2hfP32OsO3uP2wFi1wHAyMe5z7aDhh5sYG1kWA42t46gK8M1V8OmMbEh /Piytg/gDUh6
2c2mAy93tj/w8Uf7PXgycEHw8wXhqw85/XUN+7707LuRc84HBh9bBuD6J1bi ziHL6k89lxMX
upj48oyPmk9Xr2CAowY+TFaWP3coQP8tDuD8XVAGTBkAoPIflUD+8FNemDf6 jt0B/GHYrNm1
5xwCYMKUfQDgjvFqGQCEe26IGM/MgoNu/0JIbS0BAJ6Pt+Mymzb7+nN566Qu c0iNSJy+uXxd
7pjjiDtv9T+NhBBClhNCCFnS4SUNTy4gDiEX47sN/3yfCzd0xt3Uoi57l058 nfzVoaeCuIcQ
8hdU/fbk04cnbvU9ob4fuGsoH91sPYZpWQC9za+UuVoAQMchm9oxk95h8O7j 40d0YovbUKbC
t1+TLitdQ3fi69ivDg24yBoN4LABa3nZpULI34F8EbqrrJAlm8+Mkdpo6XzA BbfssHv9W/mr
OnFuMrf+7+dOcqeW99wQbb89AODAA9f6RmClXlLUzu8HseUD2GvdbE2e67eP bPQ1U/u9+ilz
9J926MSpN26gN+aoV6p6Z/dMW6ek3vAcC4b4+N3yAeyUbrbc1MrHfsdFZ5+d c2KdOvOsDZ2w
Yy8dPCuR7hX5wFU+jnqMus67YIZ7m6ciFCvywQsIVnNveI4OqynU+wDbcgAs tVX77Oxm4OhW
716jKv0x2nIAHGf9ysPdTKbLsT4XfAB3kTad24rLu/RMILCWJ5s5Qqwzdsmf 122/AeKWDGBV
2IpNkT3z6h7kzexG6kStwF9UjPfDNbdkAJtka9mBG3qLrsDJXO/LAfIVqS0U wBC0rYRnfdbV
paQnujLmWK336cB+C5ctFMCuvlVnhJb0wD1bGd6Hiw/gLqKIX+K0S2gjlkHO ZnvJotngj9sW
D2Ax7e8GmyAN/+q/TppzI1Rv0VrK/RHc4gGc7OebL34//ZxWxAHoZCOXggyn 2KaRTz3FeRtZ
n51dDef1b8W8ofi9kXwAdxEpWsxnZ/cOT4nJOL3sgX1leIsFMJdK+Ozs5sGT ksFe9kh9/FHZ
QgFcL/IFn53dS6rl88AHcBdRpftTl4CUz9VuIg6ybzj0AdxFRFJC+wdfFd5E 6nROgGNyjM8u
H8BdM7UaEx04JXM+lzfTmITipuOzy58sXXM2Z+c7mGY+lzcT5T3Fd8D6AO4i UpKSz87upQBr
6z4XfAB3DZkRX5zrZmKzWtjngg/grqGygp/M0M3E2DHX54IP4K4hO8T77Oxe Irbrqy0+gLuI
dPhhBd1MDWG38+lIfv9eH8DrJYv1p0g3U9gNdDqZwW9+4gN4A7/k+CVOu5mi jtXpdjY+fn0A
b2A7SMs+O7uXeCfp49IHcBcRVUb57Oxe0st9150P4K6inO1nMXQzMfom4bfF 56AP4F8oWU7c
Z2f3Upstb4oIXepz0Afwz+SXtOv+wWPY4imm73Xo6fo5ZdL3c2xGABuk1Wdn V9H6Zmrrmnlt
mKa7ZUK1AyFu3Yeb1jqh46y4rS4/uutcP7TsB9ZvwvInAoCqrD2Vjd+KNu0l 5G1OhMc43RGJ
9V2kwYsE09SID6lSppUTNDvCsc2KZPCcmXQSTf1TjC1lRSNTJqTNUJblDeK5 ITNfoZmWFi+w
DlMIOC5RVMYiYZ113JCVL22JaKwGhtVpimJUyTUMBTRxKZMjrEM8QlOwKFsi aAsR1mIYgSUG
cWmK0BQoM1llaqLn2rKXDRtEyHGhlAhPpJ2Wcs/mslFCtUgKZZoqT8oly6I9 UgiDNiltuwN8
AHdAjuy7NDZVAWE6r5pwAGgm2g1VKWdeWOoo6VhSjjcXqAGL+iQl5IO67IRW lfJsrjnklehe
NqxRphZVsgyxCtUtNKlspvWQYqYYJpHxCCibddyQxmoRVaEo6JmgGbW0soIt p8WgJ7Sgqr4Q
jLtGQSJ6OAMGsgY2G8hVeHzWFuNJcZXCVa1wZFZo5QS1JJCyPdEBY4usqgXh UqkKgzMEB5bI
GyyzMs5IGVEtZbKCQ1llbdFMpiyl8LAZ4z8pH8AdUd4vxdHNdoQYleyGyu6P qKZr8w2CvkTk
8ovYdCEfZApZsKlCoFV2HdtbIFJKVkkqLNNKuawZFvIx0WSkxEozxDC0TmVC kg6aV1Ik4tLE
9EI6JN5jJKwc3CoIluXRvNXKRqh0yBLhcIwTgWl6hA56FMu1GPDoPEQmvijI Z2uTnuqG9Dwj
E53i07aShOLaGYdZxYYLkqPHskQWWuN8wWOTYdXRjFDGM1UHISNCOSSRqSk6 EbvrACwQ38TQ
zSQQqxt4LlRRoYDJgjNlKAlHpHSi08QpyZbJIi+FaEV1AizcMiYZKVG8gV9F BVmkC8NNKcIE
KIZPsSE+KbnRdEVG5us5VfYohm2L03mWlmHWNFiVBUmTKDeE5jjrcIasS7xr 8CyVDzoU59oQ
COdRNthcLszIlMFSDAviEo6SddAU54HmcozDMQ4Pwhg2reiMzQVNj+ZlnVPa coLn0LxFiOJk
32wM+ADuiFTWL7DWzcRlg90Q/RZiUxceDri/le9XVQOAtSXloC1bWXQdNLsw G8n3I3U3aXC6
AcDp1rS4Lv28GgCwReWQGpmiq++0iTuw9/MCwJu+CN3NlJG7IwNMC7nFUjaA JkWX8kp32eV0
pKiSGbYEfSDGu91ghQ7SbrF0YLJF1wdwR0RRReUH3hIUgkCW6waeyypbLCMb dhVfhO6IOFXw
hdpuXn3jbjcUteNZr1gY5vFFZ2j9vTvw2oxItPoldbqZkp7aDVbVPGcXi3Uj V3x1tH/vC60l
YdZZfgH37iYLdjdUQWGJXTS1VpKe5wN43VTl0oGtBTi9ZRJIdKwbmqprthsp koErcUD7AO6A
zFh6q9E9e8lz8M5mLcixvP0PYUmx1FphI9Yyfy52JJ0Qv1NeF9OGLC4BZ7PW habXyNDZImGo
bnLFZsXqOu0mkNN8yHUtbdCVRQU2Z1P1mvY/IZculh2YipJiKyLWdTtwwg32 5t1qS6d1GYJT
glHWDduWHSqWKFmWcYvNUNOF+cBcl5d3SW1EgmKxR2KvK9nazZNuyMEWwWWK hIlNaaefvwN3
QPlgl4ep+QnG66eg2R32NGIzxWLdIEKxeZG6cAKQTJkPqe4l05O7QXPQzFyx 6MAJSvUB3BHJ
a4vQm7rc+VXy1k9KxO2GvVHiqWLZgfNiyAdwR2SLRlf/eImP0fWT0R3phC5X NGlmTjrv+4E7
Ik/b2pIZcj39AJQgd0ONNgtWsaQT6lbRGbG6MMrV2fzD7PWqQLgeF8fMoNkd 3TAYq1iyaGW5
6JIZug7ATHzzOxuKjv2bRhlN6AaOBJNFE/3A5/yqlB2SavtW6G6mcAHdEORo Kla3KcELonD6
dPDd9yAjNlXn8Eo82gdwBxJ0KOxDqntJ9Loj+I2OZju5Ay/+e7XN3rIp9zq1 ybjy5N8CVymM
ALBwT2bCS5sK4AhdbEJc1wG4NO0nM3QzceFCN+yNNHE7GWP33ifBQNPJ22yK HlYw1zINTi5r
vW0vYHAhvukVIzgTPoA7GmfPd9t2M5mO2A0TUuDlTi7Nr1TIpGzmpgDYDq7t s8pwjgpAqwhX
bOqrEF31AdzhbOI3225gvxLcpwt+5qn3Hlz96Qq6ADNuKLvssa7zHp9V/1Hd RcOuxEXJR3r3
Dqy63WBekmmjcwD+alGEgvTc3zbhXvf2Xzslpo9XVgpA/qx0k9PdFNb2Adyx dLLZclOXnVQ5
f2POn/+PU/Zfx+H3H/8JwG9oESYZ1hvvuOiStU/77B/VeyH9QumVmLOidw8e zUndoNLprtm5
u3zKhKKZfOv0I9v/ndHaVBiaOGj15rxyoTWsfNzA9v+++bKpObDf7quvm7ls abZku3F9AXz5
Hj1xPIAP581povqPOwl47RPRTT773m47Y0a65mgAaHh5/g8BeqeDBgP4cZqk X/Px9O+Ywbsd
3ZlHdPzC7h0Sn9xsq9vgM6s3TlJ6Zbd1Abh0TeqO3PLAgKaYteqSS9cB4Lbs TUdi5MthINTL
7epOKNsN2UimYXVO+ZzONp/2+hfKi0cCwKop7+uEtcTXTt4ewPnPBzRqJiLT RgNI3/ScLfKZ
ZwZfuRMAXP2sy/HUzNJbRwHXq+kp44FHrjUZ1pv/wBvTMXXOcDr+8bcP7rz4 dDLxaADv3TY7
Ydn9bnr6ssOB9L3lmvzqorLE/95e9M8NP6Hl5XwAd0SqtPkm0w0/ffBoQM1U /vTvkvLVdX4b
Vwa2AYC6KuDdSaRPu7uvsV4ZsnrzWF4XGOOsKQpM8kNjUR4Djp0z41DMG4H3 3b2AL5utih0A
1CeaAZRsB2TbL/6khase0xsHz9O6QyQkWkmnZsnri2uTu2RmK9+2lAK4fo4o bKt/Tz5c/iZw
+ZO15m7K8vneiV8DOOGbUh0mwktOeW4E8K8HRi3nYyuN7GnPVqOPzbnAm1eV Z/r1yX8/7s1H
TxzLNUt0bSyKgTVUBYA3rlH7WQO4hjL7ksRuSMQS7BPGzkyDEHnkuA0HWemS nQ1vRQBWN6YM
NqnZfDkrV9WchH/Htr25QT77gJtfo8vP3Bk4f//m2zn59MkAfnz1zYX27qdM Aq6LHXbd27sJ
4dffuX4cXnz4B2fw5NMA5G58Kd/nAmrNhurIjTEvL3IBysD3h53beluf+Xjo epUOHHcJd8WT
ZQ8/8WXdaQOfBWsB+O72d/Nx9dgbeuHguZzYDTuKKLR2KvxhdqlVVnbCzfLy hy4Dvnt5dMM5
f9Fnna588MHueKZMvuQIGHu0/PDMUZgyZ0jbUXs5bXeb5PKX8dkzwxt3PGnb l67FknuvBWuV
icCLuXDlvRX8uR8qC3HLyoM99ZRjgAan2gJwo8MLV+6X+uq+lc75X8EwMqXh /+yN5y6tyX6x
YQBLHq1uTQDeqDL2VmGzpe+2PrjjSfjAfW70hMeve6llt9yTje8Db3wZPig2 60zvSCy+MH/I
seYLf5q2P1o/+CR43ICm72oGxPDgv7a7lPrwbPdM4NgPzx9YuIn5ubiiqUAU KHwRTEBomcac
MBrX3H/GUZknrs3duK/26h+zrI4AACAASURBVGFDEKqTAEoCcHbDJdvwzz9K Xd/7Bo9QTjeI
0E5B7lQHs88EMgJc/7bQjMuAJZQr94X0x0YjH8EPVk3a9Gjx2rm5GDArUTfh CgChv5R/s3jg
e40V7nkjccwXb/SZeS1sVXCBYccmRtQCtWYgD9QYYksMAGtrMeDThVXmWfsh tpc6JTrvvzu4
QrD+3L2ByXenqF+vZemoZQaX/QbTKt9hmIgvQitdm2v5y91fjSiA8uG/zsK2 R3FPVKP0ppkH
QFwwYyeccdg5R+L91x88GThkh3v2R6j5mMuBhdOG/h3GJdu/SOHkVbdMLrn6 oysuAoYev8aY
ate+N7KeyjdN32Uv6JXh68Zh1Z0TLgPGtt51xs7LHt3+cDBSCGBXAnd/+vDx wATjP3tN6nWD
p7N2NySQ8HynjFiL60oa/wyMn1Xa+MNwlHKGc8NDg3Y8CwCG25w3deaAsj/s CWBOQ2XjZHig
J4XpwtcDP690ho8EcMEJfBawhUIWOA/44tWFqz5RpDZgRSFIOQC4kM4AX9NO /mhYDHPINTz5
YYeCRRklABBNOb82lUdXpMfgt3tyENaK2mIDsOc2V33eFNElPs85XKZvvq1U VQxODXBpTSpZ
VdLG2m6gEKJV02GCDJ2LEOLmIirL6YSGGUSBZpl8vwYtqi94xrXB0ZYrW1A0 t7QhluY92gXt
eA7P2TQLEih4jMnCdjiXcg3Foyxi8aQlodksxxrBbOn/rWv3LwlzAGueBeyK ydXAID0HyH12
giZPfu3dSY/1OwamXf7Xf6gKk7gcQAsE4HX2GAqgrzjqhdNnDPw/2N7uQ75b IxWSm5OGpET2
eBTQciPGAZ+lDoTL4OQXP+rnORaQESWADQKzRh0Pj8aI4OLeB2AJbH7z34UO ZzujHH3i2SPG
tLllFHHfHo4dD3hqSEvqq5euHnrGOOCCu0vw/YK2hwb++TA0uJSzOyh49Dar whT0hFELAH37
AgCVBQPgvhnzpDanX7hpGBAKKG0WAMEL8cDykFfKgaE92qX761AlipEBgAr+ lhO160QqxaPY
AKxn6ZeuZm04iRVsIKK39G2ONIU8znIjpsorBUIIa9sEJaori8nyZq0kqru0 rcu0LeeCLRzH
pEqzlgChjME/IznCRFUWGtNvSdkKJgYUZNiQVJbncpRgsSrhRNOtyqRkARnB AV26KqCLtuIA
sIjiNI7cYZ2ivAVkKgA0NPYBEKcB5CcAHEZgOeiJogUeQ83541NhAAg1S0Bz ZO4tBUpJRz86
3VNk2EQoX+MVYledVsPrirCLAohtpQAa7KGgCTVSboUDD0jaImAHAMM7r60t joL1fe8bPEGP
doMIjTTVGV1qBitbJ3IGHbAj084F7hz0yedRWliy7J2XxuJv5c8vpVfFqU/m hSapEi8ycMAh
azsO3FbxF77sMNWsAFPvkIOxSUPtaZQC5GWDlQDIetgFAowrg1AeA8VqYyDQ lMEDgEbznbDn
WaZUUXQAVknlYjfIq2Ze5Ow2mk0F8rIHinIMh+eJE9LBgc+FAp5mN4R1oUJV s1ZQl9KJLMsJ
PJEKiqNRSpJbAd7zAipFCRlPIC7fGHYsxeZsLpQyRZM0hnmXGI4Tsni7yaIL tszytqK2yoZn
URk6pDO0Xerp6zSX1Gkc4IUBFIIuAMeVAVQDBAbDIlMGiuIgsBbgAkCohAKa yJK5JMhZu/QD
bbLE4xBbk+/oqn9eY8mmGQWARoUBlw2ZMciEAKLLAW0KYATibkhwR+7Wt/cN nmrp3dD0xKW8
zqRMfKNQ9VmBThAqsmzxQODccz/4rnVBOpKcPhY4/vhFcxc3fhal7ppUbfPW ktEGw2FJiZNA
YFW8AQC+WeyU7glHdhjgsWjmhAuDeOfOUg8o18G057kRCajWa9taSi2K+bE1 KsYgCG57OUOG
D3cim9XNFF28PmsIUG2YFUMdF+DNQDhJ2wqlh3VKpHmxTRYlneLSEgk4hDXp JC9YdLJvS4im
BdeRWmJCLgJ4bsBBIWQphHjgXLg8zbgWzXK0LZsujYDlmDbDe5zjMoR3aDBw GAaMGhQty6lq
jbbJrisYpfdn9HWOQlTQAMcF0L4X6EwBKE8CLtrcbVCxBJwFLHMScAsAoIMA Ae3Eg/KCxbTW
oLQJOYGG+rM7k/l5oaAZCcDAwNejKBbfqH0Q5UWAF7JASROgGFcAgPPZrr1v 8KjN3JqhnXKs
2Ym73Bdy9LKYwUt0jsgPXT9tsRe5YHcU/vqD0Iin/lsSP2sQMPVZdQV2TmTi T48OupiT59m9
0HeBUw8AdzwnDtoTlhF0MKcQI5cJwNeUyQG8YEkMAMTyeWBcyHQfuUQAXvLk yu1h8Fx7dKSj
5juxlrGS3lBkVixW5FnFcxsOvAKAzfXswzxorbv3lOJYgNgIgNMJANdSgNQn gIRvmXKMv+7z
iTzwQv/BUBgA0F0LGNL0/UFB8I9d+sxue9z9+PEAPl+z/Lr5nwHM0jSAMdE3 TgBwuzICTMoE
zFwe4EuA7e57/ggAl9/48c69bvCiTlDa/HdhGNIJI9bbvLnrdQCAYxfzb18/ b2q1XT0ZLO2R
gUg9wkbJcSGq0XbKgJ1m1H561SS64bkKc3vggGeqrIsnDXnlyxrjDIAyNYIg BPbR07Tnp5db
GoBsH2t2ScUwy2FZYMzOr0SfM0Y6i15h6k/tByoVYCUA4BXSCRGaEYxiK9PE glYVxmYEYN21
h7uTMhq97pgfjgV4B0BJlgVgORYgNNx1ZPyFqWdXYa9b/3lHufPEO1cAlggA Jd7Xc0ftsO39
O03gn5wSGI/jn7u2dAd9SmHN9m6Sn+9jaGkAQy656V9/zH/01ilVUIkNBGEB if8BB0+/KrVj
5oPbj+19+IXNO93QDSNnWxuuTtiykMrt0v5xwuyKRXP/+RIrTJlR8cMqGjvh T4/V9blzZj9j
TqZwNXDS+63Rh18SUoGsORXYf7sF9MyXah3N++OxgGDpDob0X1751BsNywen wjYARlc+eOya
YZl0uQpgyrz5Q55/hjMVZ8SFQMwgeRsArGa9E+FiDHG5IgMwDbCAZPSKVMAE 9N/w9+klAFC/
ohloSAGQ4AJgYQGFIU8fsvtxYy4F9nioYdyeE68/7Z9AvhkAqrd7dcd5JVNK Dhs3/tiR9yuo
uHn4yaO3W3ZE05od2Pq5JYnWbpc88/I79z/y/nNuAUSUAOWOADA5YLvHR9+8 11H3n3xTb2DQ
b8I2XJZ0Nha64fffNMZLG97cpjfODa8OXz04s7hxunxNJdX0+ozZtnjpnij9 9x90Y86st3ND
b/gTMHraRMOzklRL5T21AGYdBdZZks0e928A6ZWZOuCikrqV//vyiH+nm974 GDgv1dKcDCCS
q0sBCL55fMrUdcY5cQqAPN0cswDApMxOeNQoqd2eXkQpDSwgQ7WkXpHnnPtN M/iP73tzNgBI
V0aBizUA9M3DAAy9fTsgd9i/zhNOmVQO4Ojt/psJ9NkXwD/bfdEPf0VGYN+h H5jOZXvEAOw+
6uOG8N6RA3/64QfssWtussOHpQCAU0Y1yfGxACa9uydAvwXg/L8CmDjxXUti tlV6A4PUX8fi
E0/orA68CZqfQ9gNz47Sv0rDV3+svS0nlWDyuHn/W6lWjB02AcCee77UuBRc 3+G7AMDIh2ct
W9AwZPBR7Uvndfss+6BscPmBAHBbs5QA9hvw4eLy/gfjmRxfApy9y1JdGQb+ VTsGAMz1R/6Y
pSK1EwBgp2fF1B4AcLvDdqIHKgfREHuBqNmVdhCCuqrr7zAuv7AXPMxB+qIb j1zz35yHvl98
wUUdnjzqkCnYyunqB/sNfmCz3+XIufolZxQHw859qzCv+EIpDdAytV4FYvHA 7nmYYDKwpv7h
4teeL1SJe3d8stmyteMXESnbDb26ouhVdWhaSjfhYlLZWnQAtmW4DLdeBaKb 8Is2xlgt3Hz6
4etOhHMrRq9L0G6XI7PmVg9gEWo3uJF4Tu2ygsHaphd92BT8MmbWQrEBOA3Q Tb1Cw4NJBAsA
fnz4LTosWFRq+LrOWu05mTKyex/O6H39D6lCuKsDOdbREJKXGrvs55M92+RB JFqxdbFkjdIW
MLLG9oaHkdKeA3z15jM8E7BZ2jYGrNsSAQA4tdu3uw5EAQBoLVmjaSzrhzWp GE3laCinba6p
HGo21uL0XTi01aat3IiVNU3lqpbkaCnSbPGe7bAheVEJ73g24Sx10FKG6b9M KLCUa8lOqJXS
IGpiIZYTUlV1Cm8aJKrnPWfgD1JJVzf4XkdGWUsm0GU9/ap7doKZJemi6w8s wgIdVZ1N7nrQ
BTtUoCXINd36/dIIr4KiDUowP1nVn2oKCXo4LTTxMoLLRVQt8KK6Q3OMCoBi aMe1HYr1KJey
KcZxaNb18gGadyjGoXiPmIrpuYQihLJ4WgsQ0TM9h3YERxVzcZ1qiTCcpcsq HUtzBStiW7IZ
tbWgTpjIqvKsZ0iObSTSnCuSNj7Gr4pYNom0hSnTcuPiYpFiLUdENuJlJDiM qqTDweBK0XVK
FgfFYNIAF9edpnA+zBnhrMeKlm25sVyeE7P0wAUhyspLjiRnYpm8FQmJedry eOJlw9Aq2jyv
JCcU0gmXdTW54NE6w3qhJG/ZkVSJS+t6pCDabDhfUT9g808RzgkXS3dChbiF 0iIDMEDDcROb
3vWgC2QTig+98tSKcJnrBkku4rHee2+31DYznGCEMjRK8lle5wWHT0YMO56R Qw1RnQ5G6jVX
tDmNCqtE8cQMx3CWA10IZQNNEd7Om25YAKeVpEJmNqBk7YDFKCuDPC3n3GzY U9lSMxPLxZu5
YI73GBuSm4cSzJPAilKIupAmisy1qQqvBzXIOYlosWQADqNKhmJTrujoipwL ZPUQdI4zwmjj
hWDGI4k0taKvlGOktGQx8TQdSikcq0lpwXQUYolsTlfbiCLpGTfApfQsr+k5 PYSCIRUkK8fl
jawdyXiWZ5muG0+bBksg1EVsy/Vs1TagWqRASyadozNLDtv8U0Tm9WLpzOCw fARFB2ANpu2Q
3qDjcS5W5oMMAWF1y6AtqqDwGcqlGwMtooZVnMemQyaVDOvhvB5VQaV4N2/A IzZRacqjbadA
SY4pOSajULaTtZxCkI7mBZeBlS/Je0FBoDgWBVu0NJoWMn0cM0AZEc0yCorM DlkWUgXNJhWq
kSKKScXSaY6E2JQtcGEu0UZEQimcEyBy2LEJrDLXseMGUxoo8EHCu7IWpCnR 7qOBCOmBJGQO
jJqVSaqcWMQN0RQl01LeGtoSy8f16KqIKFOy1BKzHZZyBjISK9l0hla4TDjB WTwVDIbkgkxU
iS6U5vhySgK4XClT2kpLpKAo6QDr0C7vcVppw25nb/5RYdyi6Udi6l6s+AAs QuQFD3nxd8nB
qS7kiJlI78h9nglylOFFPdD2qEGGY9pKW4Khdc+JIXtgXpHyIT3itkVtN2QK q2p1iJRJ3BBh
22IaR1McKN7yQENfWSF6FO2xtsfKbWHBgSVSHuXwahAOwCoaA4/RFIkuRD3D lmji0Ww2FKK8
FrYQonTZZCJJmmUpis/FhFZJyhhlLgqxQswgCBRsLuFSXl4r9Tg+j4Rj01Iq pOnRjCoQSLxk
2ZSkKQwKRHQ5CpWNsmlVweawsmYVVYWlgdL6ylQMWFkDALaWqW3n/i9HoK5q AwzrlgJPQkVD
sfSdJCqFYgOwwchAtoxAbqz4PXJwV4okkrb86n1e/uwVKUy5DAGfHvb3LYmX FQBQu74vwQE1
qAZQpqASMQA17cfD4dVayC9HYEP4Rbf4NNN5UiweOzlk20UWDE0z0IFgNgfl 95XM7UoffyEj
JHHIv+/bbkWapmiOJIqtG/MvzClbzqPaQdYrEq5rulls7UNYznbgejlhw3Nq 869dLJEAYNdd
p3/wP8oOgK+DTz2/1pBssexaYVpXimx0aHCS6gqdKY62+UeR5VraY36OvOeG 3awWjl/sh0t2
Hf3ebZTLWqRIWOBmDLnoAOwJCqupvSLByhaZn9Ia97zxnt3UfPY1H3ddONS/ c9YTqSsB7PYg
C3IsmopuVOkwxEJlrwgRbTJ/ESu7y31XD6duKRI2d+yIsYFeLmbQJtWVttue zDxnw4pVdAAG
QMIbzobelBYAnd3ey3M8/Qtxb98Hp5qzi4PN4voUk14eG8TLQrE4X6iCNaAY Aexp7gblq01p
69bZRdeJKMqvxL1j51T6qmiPz3pHKhYdmKGLryolbIZWLGUDa2x7cH5neiXZ C2x9R3wfzov9
AMwL1m6M9mU4yV8fCBcdw3/NDM/q/dkxlo5icSOVUlbxARiuzkeNDZiY338w WGA4J+CWj5i0
3k3xk5sa85kFoSu+5Ya9BGwbrn984kZsTpRUNEm+S/u3/13ed31nzVY6lxT5 ibpvj72JHkuz
RTIoGqMuGFJsAOZsRQO1gSHKv1vN5WRXKjDPPv7y+vbhK9KylzFBPNUDUB/b KEBGDG+dnS8+
5bdb/4XPf3PBOiM6p7OHbzRHjt3+nI27oHGdxf7feOSlqmn3x+msHQqUntRB d9L5e0ztHICn
vnbgSz01RQRKKRYd2DYLxRZLScPLwyZkA0KSWR5nRzGCzfOlKw5eTxOzH+fG 8YezS5CoGBQC
EBbcjUlk0XPcuvj79OS/rljvdSde+Pa6ewTdcOb6b3jcXWsfe/KJjWTh6UOW r+PoyjkmFn/s
QZCp+ff/5cMO2Gp0sizsv2+f8WKPrfF21i2S2R4WUGxlZVnbdSDo2MBOqbtO 9pzx9orwo3PK
f3jp2DUy72+12x/7mMKtAP4peG0AJIPamLH3PGbt0xtwb6213mUg9dhNHdS+ SyTXf8Pn9LPW
1hY21l9qFdYlJZcIBHH26uGcxa946N67d1t9+NfpB61SJ1XgwZVTf+ypKWIw dLEYsXJ8xCs2
AFtKKyRpQ2uswzB0fBsM5wccSjmzj8X7Sa//+HcfH3M+YLy/qqE1u3fZfgCm fRvm9LudE0Nf
N2k1I4B0lGcBYO6MbDq/+86jN/Aw0VXaWs9xWmsuFYyu18vVvDpTAD/0/w0e pAhWl8gAgEV9
fhL+l+nBagDo2w6nT0TnZ01999V/65YNKcXiZYmxANBSiq+bhT1Wr1LfILov AMwbgY8L+7P9
v4r1Beq/zgqD2t/wvfrogZQJ0A7H5YNe7aXTZgPAN59apaPDALBq3nfWoIm1 oHQbwMLlgR2B
VxdF7XHjAKBh1vflh0ZmHwjguR+S47cfCkCxsj03RUjR5AMzGik2APNQkGW8 DfT2ZXUn3wqd
sNWKG2kAbv8iONk7+8cggKs+radCzXOsUy8DjttG5oS/Z4fu88AXfPkfgQxX lQXw9HXJsFT4
OPCPE9d/l7jLrsXfd91IQNLW60k2wQFY+ch7yciBlwIrz/z7jgBefebavgF7 /i3/LdlmvwMB
3PZEVphwdRWAN+9eKOQOujL25dWYe9hLeOeJN2V+9A0/wXziQZfj4vq/Pft6 S8XnT9+cMXd9
Dvjq3D/irtbAiAv2BXDtY40V6h9uDmPOCZetvIvdbgFzZMVHmHP5hwG97JUR wGfXfwzq/ywh
BAY0eF2CbIgArrpbDK6svuIoYN6UDxBq3HHKhLAkAF+emnweOPXJanF++Yxt Afvwb8vzLw55
xgROfTlKPx2/bzcAVo/VglF1jime2a4XG4AZyDBMeQO6fT+ejjngaNrNRwMc UF6CxdcrwRbg
rDcTlU42IgbvapuKkRUp2th5AYeqVREZQLmdDAEvX0uFwiMWOKGzavdY711a JGOtHfjJNu7p
letviBEFAXDxexdEvrgsdx2aZx6wI4Cvn7obbv682onR1x95+EhcesvZQ9V/ fLoAmH/UoJMS
/3vxu/eUmiWBYcCJQ6bGFl+/z6LVv/bltkDD2ytLzzH+vWdqv70/nnrGPfDm rOh/Zb+Fj5/6
SQ3+ce0lk+LfnNk6A2h7aP4ho4ddrR4/HDgxOX38wjv3+l+lcYpz7U5tU5cG ABomBAD/ye8N
vPWvP93a55lzLzsK+Oviq0/DK3+57D1Lp/HGOeqTE/Dkgzdc4s085T+PAkfM n7Vb8+339gdu
ePz2g/v8cMx5b5YCm1z9qv73utRlubQJSy22wCmazfFcQyg/Sl7afwWXpzXW YS3GLPQ1bKEt
rAs2FWhESY6m2xS2qdyTMuCJR3KKlAtqRrzFCTGcDkmTPNMoyRoBqKGMIXkx KmMF87xaW+dR
vOPShKYc4noskVTCui44hzEFhvECqiE6NOE1O5yzRMYg8CgPLKXJlGZJpuhQ jKVYlBkAsUDl
WYri83bciJtOTmIttEbJNwFRKDYA0xABj9uQhzfAMBzUMJ4WC8mxgM1HF7WM GDMWL08fkjls
R6Xs0bei04/Y4YNnptHWa3Nj4MxMDIDirhSBlxxh8MVjF12SHvHk+gEsOvpa C8kE4M2F7npD
0B2Ege+ffeAUnMFPO6OaRhAAUjARVqvuB86ddOOuFdP+dAsQ+cuMQ3FW1XsB /GXkGTMPuGtw
/DrMapi+ExA6a9bqziBCCRCmJ0wF0lNuPw37vf/8PTD7009UY+fIkc9etOq6 k28Atl0+5Zmj
QlBnjgOuyJ7G4YaFr++FyuH9Hvrn8/Pv+z9gm50kE0zZ44M8T5v/bsXJwLcl N/bBUe8/MH/Y
Zx/8/TTg4D89jtIgg3OZp3cFfqy6BPRBE98BXnjlot1Qdt2sBuDJQ04Hhp90 7oz/AwLfbeJI
/27ZMWaon+1r85bphtpEKh9jqaZISUuijfYIKFssRJsTsAkITHic7gmBgmt5 EGRV43iSDxDH
Cam2VIiTLMeEsxznyOIKmqc5m9i26IheS1gItilNValwq1ZtUgGmrtqwXDOW BBTKY/SomovU
lblN5SGjTZJNVyKGI3BUXoqntVA2UpAsN5aVKLtPExdYVpOzGSaguR5ruiVJ 0ZQ1qzLtsgWi
KLaqCEGz6AAMm0uF8twG3EiWqtAvfJZNGF/HU8aBQNSAev45HPB2SXbMNQBu WLC05MUdYmPv
cm2MAjhOygFIVco28KEs3DoAY6fvY7+3ARWFX2dEmMaz62X7pxgGqHKbR+Pm M6vBoAAAHmfD
pk+CY1Xt8PqqCqOhqYw6aSeC7BdXBACcftVjB8DyAJq8U1WLEyZV/bweoJk+ HECZeQKA/j8C
XuPO1SbL/HH0oxe9Q85DPoi9bvn6KNP8wzgA4YUuhxf32QupWFn5F/iGPxgG X1E9X4VnPV3R
xNr0dqftClx8IY3v/vdjBYcvcQQAXHME3Kp5RzfN2hHAlCn4uim9kgW+wlgA 2PVuLEgNw3de
qF989v8Bh18zd9QmjXTV770w38y5ToBWIWlZ8KRO76urDYypBbJ2icum9WSo no3nKYrWg41B
F5ROt8Voy+Jdi2G9eJsUcIS0qAa5Ni4gt9KcSZrKGIawJqNy8bzA2qWWnZMi oiTSTCETSIuG
kJNZ09RlaLQXdKRWWnCCbFCzVZsPJKtzMiuojB3gaKIJDCw2rDEqApqqG2ya ot14U0kuoNG0
RfMhjbJsyrMYwVDFAkXZpK6ktugAzBixAh/bwPqccYiYbDLbSoNL+RuHAw2K U3EhAHwVrz8O
DjEDOy8ILQXcjMQBQFbSBwDwHJHC13pfMqsm6fXjxeXrD2sg8jpFZbotsD4l 7MMHTq8Ftt/7
ys8GDtt+DCC2uwrKBBdadAfQDEY9kcQZt+0/btiIfYEPtbZ705xoSZ8CTBzY d4/bnx0xbPCf
14gBAOjQjgDo9hDmLEDlBoAmhBryBupLB4K1uRp7OZh8KQBkOB5IaWc1FUrM zBI0RMtBHH7k
/AAY9+JtNVpJDAUAPPbGj80hgVhYQg8GgNieSHuzhsRf3hEAbnu9vsDLADS2 P4jH1DhYVnj9
f3UgQm4xgIunn/BqVY9MkSPq0oQX3UIsH+LkcEbhjGqnqVRojeZCti1E6+h4 a8QMJTjNCPWD
5Di8lJRkW48kGixR4VSHs3hOdhjaI3R4IUVHvNawDY6U6gUkclIuLGV4sekb yfYK+0REnnI9
ljUESmVYzrKjtE3ZnMdZFkWsoAs2LwossSjPlQhFw+bhBU2YruzShHEpygnq xA3rtmjJBUky
KRBG80xGhulRTEmK8fqh6ACsK/DCG2pTSTucwZCKAgojj5kMgLatYQBQ76l0 PxCGQ0jvuwIw
3EodABhQAoBoY7gFyymbmwq5ISbTzvpTIpKWsa4dmFf59XlbblxxGwDMuOvd aQX2pNuRa7e5
mKwIx2ZysgDay2HKqE8+flYcf1c/U6hf0sDxhTEUwIoA3ntm3pdPr7pn6var fVmNAN/a/hIA
oEtAIJYAZ1JMVkGbBJtxLD5SD5miAYD2aIBjozIHZnAAtqDJDI+y1j6gc/sN W/OY/7rmgHOH
jjzjbSDM1g9ezX0y5NVjbxz9Z+D4F486dpuhf38RiDsWiMdQHCTqj/2JbCZ0 D8BrrTf2DH6x
ww4bMHKtVr82pTra22+VEUofflI3vVJ7IbIiAbAC8FpgA3ZGJ8wUDtmXdfXw jgAAW0qJAEBs
4pmwWQYB1tSAEE/lAKCgMQYAR0pnECukY/u00bVB29tmA+aSuti63FlUYr1O rql/P+dTADjr
rIXfPfufv4yOtbetX04LUJosxqWYFQoDdfLkBblXr7/lDpE+5KiGiA07DSQN YLF0FIyPvrzi
6Z8AHALyVDtvAMDhAKK2AA7NLBmKYfcuHa67yiJuMJpdHgCCMoCIcA0AfKOg esaSkSzQCF2h
fpH8+v/sXWWAVGXbvk7X5M72LrAgnaIgigqYmCi2GJjYil2v2B2fotioGCiv ifXagIJYKIiS
AgvL9s7s9OnzfD92gQUWNpjFAeb+ATM7J566njuf+17+7KCZAFw+CiXGwp4A Xn9xrqf6Elz/
/f3jMH/mQS+jodRpCb9iBDiU+pEnm6cD0N4pAfBW7ulpuoQ2mE92JLvhZzad t9bz9M4C8G6U
G5pOIALWWdWCDizFeGtcWAAAIABJREFUbO3AQw4edXQDfsGBMwGg2Ovw/8Cy WSx31fcF6qmq
CgAoESgagOhhOfTNZswX3p/++YwPPpq/fTVOZvnmNpJYbLuxFb3P/nExMKUX 0PPkJ7AUmhQF
gJWSjRyuTBEYLFaGLOz8IXoNvccXRg/5DxTKXuXUVwAXgOeG1UA88hZ+Q7Ik WgAEaZPZh5cA
K3cBIHF/B4/A0dYrkFzUh+VHgDAWAIi+BDBqzlwAS/Z7CQfRH4FG5excBRw2 Davg9Afw9nfR
PAzEHADmrfVg4cLgS+smgSgygLmf5gGHyNNBIzSTR+/sp2wAD59vAfh+AHZf mvO5XvZyV3vd
KzvpfbtRfRVaRxIezdfCKQ2dYLMKV0q9vyFfVV9DeBEeFvHPpaoRAGe7XAAQ 16ACsOgaCTl5
mjEdHDBt2qstWUpjzfFa2rf94Ki+WA30WnEPgPeoQvTq9u56rLu2OhCFVnTf WuDZuaeXDFSn
VgIv1XdG7/2mv2UjMnH2yYD++xIcXP5opRN/xhmxYXIJwFkA0OgbjwKErrv+ 79CC8bnXo/Ml
Lzy+bNXTT55+JrJtBwCc8LOzcXbXiz/656VrzDNx0pGTp6x5/1zVANQmgXsl /b964dun75XU
aRh63bunffDNKcEHEI/UAeMH3ztz+IDPn3zztivy/vkBRZMXnPXaCxdYbmBS /LgXJp/98iWH
A0D+bgzgl6zEaYFjIv6XkaG2itBu5CEWUFvwbxMJmzFHGrE8AMDJz40sveWA PmvfqwxYBwI2
zTkAQNE+E4DlSBow9sXYHXRf8an3qdzty0h2XG8u0i2xWtpuvmoaGnD4VQ9/ nFe5fMIIcJc+
cEB25SEH/AiscRIHlFh/j5kM+sk7B/U0Vh58GfDwZefdKcYqXxgCjH59QNmJ 10x5m0jUFRMa
n1YXAlQDQKPP36AAyzyk7JSg4HqSBu70TX456D719o1Jws6bOHXeqH7PPHW9 tW7kB4OBZ2+7
9i6MHf1saYnNhDe18oEn/6MXPqfdNGn/Ax7v+tRPWcFXToDQLx8ourbmyxOu wSM5wq3dRjx4
MM7hnpztPjv3W+AU7tVH2ZI7JgCA7Oy2a9Cc8Wm/+nNx9LTgn1+OzkCyjQDm QIOEpBbifDiD
qm/KBg3iajg+cMiNb3X+4uOC6ix3+O59AZE1HAAwvWoWgHBWggEueCWefWe2 kXSrd7dg62aa
PVRxVJZnuzJPA9eePGLFsgF3jAVwRdFv628684chJbgqevrUD4ovvhjAhO4L lwk3nQJgwAez
fw/36zIGwFOnRArx5Ilra6S9jt7wtFkB4KYrAeDYYgC451aAZ7ve/nld9qEi gNz7x5Q5nsM4
oMvPeQBwYpHhA4455lvNczAAdHpjvKGMxCElGL2oidI/fPhs0qsQhbEDgCvP X8hkdwd6/wUA
ow/lcMz+f7AH0/heBsrPOH65v+u5LIATTliRbDzItNsdo2kkh04or/rDp3ZX c678j/u/GQC3
lQgh5Mmc4jvJdulN9KfebfL9xOLOQxo/ThqUW9KneEC35wgh5HO5XzdCCJnQ JW8kIaRoL3om
IeTvCf279erWaegb238JOe2gvV8mbae/qGmkY+kv9wNkZ9Gv3nMJIctLRm/+ Z9dTZPcgY6u/
fN57v27riGaFjxzmLmv+JnvTxzjJUBNioYkgNNfCaaTBj3rQ1IV2/hnJQOPH u0cvW8Q4vbof
AQA9/mv6AODS0XQxgDepxFAAfV/4vrRa7d2vBSM0vH+0K16oD12a6Nh0vyEj vBXjSCkXavJ5
yOC3B+eE3ix7sukVd/9h7LMLMNPWXLW1q/9R2jirk0Hb8ikP57xw7za0pK2M 3imdgV1YhHZ0
hnNT4Ld/Wd8tSm2PQVPZcNPn7t0bAT8YwKaTPRgxolUOCT7qbo8h7soX7lze s0PFFH5L41o4
hSWharI3QgB0dcGnlzyW8PeadkLTSwqrpx2U/gbR9t32dllx1fkAY3MXT6t/ 994OfttuB2Db
C1CqlRZ1jzW5tl2a3pNjKzsUvxjx4ZaVqVNZ5M5DbyhpVpEtFkB588f63vkb GE1Dvo+Ld+Ml
+IXnj3O76jRt68KFT+hPTsyAsk0AhkNDFfWdbSJpVgBKItC+3A8jO7q5h3Xk w8WN2c7dIgCH
biLSYFO+norC3XIF/vcXofBOMAbL2jj3sdx3DhuQQWVbxB7ODoGl8nd20hS6 +d2Ec/bMaWh0
0Xm3Jxsqjpk+Dd4sU/0OtevxgsSEgArGIZTJHBaOPpABZduAlARM206mQ2PC dqW0h41/YiMT
3vqPW5CbTqNz9Zs1uLYBxe3afF9co1NngziUbVnAuHLvz39nUNkmACd8YDmk Rc0nyTBde9j4
N5uspnmTOq2laydygAg4s13JLj4KVF6SDZnneZ7lsP/ptDUjg8q26MARkS6H SelIh8rHkrtq
Dxt/L1rvENnRCF5N7NB+xLLaUYL2xaVytvBFhLEsy53kKVti86cffcDOnIFd 3B3F2gyKOJ6I
6ZBvM2mK2AOJ3j68UrbCOmxwuY0bRJsX0Qusj3naNDnLX8HGs0GyPK7SNw/Y +aO/6wI4K5Hg
1UB1PB0a49EItcfBdwPTEnf1FZaVaMduU07XueqzOXA+ia1WdCuU8Md27hrQ dm2mwUIxk2Lc
mxZGLEpcY+5xAK4r2D32IVtUAFS10df16q8RX4KlaGMeZ5yQA4YDe+ItKWhO TauP/O7iQh8L
x/Dy8e5iSwxipwDYZ+15bqR/Fb8Rb7uk9mYWBccBgNn4vMrW9uroDYdITlrD Xp/CocjdU5YP
DRowJI20oN9si7bOkRNqf2NC8Zw9MUDuX7Que9sntXPb6gdjtXdXimnBamSo fSq8SOntdTFu
HUPtbn9j8twiswfOwW5SkTER2jF9neMycGwngE2qtr3pcsW2suztkWRYeyIH 3k1qICuxHemL
Q1ueDBzbC+A6us1O+I5QVp0qg8pMya6L4B25WY0ZdZkhbBeAFWRxHqpdyE+J 5ruJTLfHykzJ
LkvZO3JzjsBnRrC9HFiVbG4HWWpKjtcJdDSlAA5l5ncnkdm8OtUGYiVXBsHt A7CGmIkW7Q87
Awx+Skhp9ceszPzuFHJSEMbn8DSbGcl2cmC/YCXTAQyqpeqZKdkFF1EKDCKG VGdkRrIdkgvA
g+dIWux+Ku+SMlOyZ5Lq2Bn7R7s4sGOjXi2KpkNjLE7IWKF3RUoB75RiVMaN 1C4A0wY0en1a
lE3lSJhkpmQXpBSYnziJb7ci7azbo3VgBQytCEh0jG+3LeQ1dz8OvFl2DW2r D01WIXZds3kK
wm8inKfdUiDdeY8GsIk8JWJBAeh/GcKmEtvtBniz6IaNjpatbXUajV3bbL5i B5l4kDjIUJuJ
BWoLg2xu9Z+1EVkIW52rWD8dTnj9ccek3DXu6q5lLJcQDcYqKGOsrIRM9IIa ymfVKCYoi6fE
csan2pwlG5ouOnyUogWddmtSHLbJiklC2SLlENomDsdQnG4SgUvydB3HUCxx dIB27FpPIttM
ymyY+lWR9pBJ3DricJdPZbCDiX0tIRpu5s9abacMSFsAMGAlXAvGSrJQrXqk sOqzHNnSsyIR
D9EpRYjQDO2rUuo76bFIDmFjRJQprhYAp0tMzFNvFgSVoEgJdW5RiOuBsKcq YEJR/WV+O7tS
UcHA9rtXSwXRCp8/kch2EgmZpZL5a7iCiEUsyqWUemk+IXiqBC9PJzKuhD2U HI5pzv6RzFi2
WgRwjuarlBxW0rrUWxbJjsmWqZhc0uOxmSTLCW61LDsrKNMJ05vk/MFs3aPF ZBdlEd5HBT1M
SbUrLhOF5rMYkbCa5aHdPF+Th2iA03Qull+ZHeVcdT5Oc0luh1UcWpApLkwM PxvmdModl6KC
aGmMXS8nY/y6+n6ZKdkzKRAmzR2rzMTitAxgzh56wcq8Wlfc3i+uCoGwlxix LMvgBV+VEhdl
Lj7AFjqp+SGZi1tcRGLtJFeQTDJsQuGTlE+MSDHbbf6zVnEMs6SfQxTZYpM+ QlkMOM0QGc6k
KRBTrzqFkGgAtEPrMhUTYpLAERY0pzu8A96hbQKWokdmpmT3Z7YNNq8mWQEc GkaSzejA7RSh
Q8ytpNOO5f1ff7VEmwzhLy3ODGmGWqBYgwWgideIBijGyEjL7SAaQGHX4k7Y Er/b2w63+m3W
Octsk6XostvnZ4Y0Qy1QowVvc59ZUGIa/lCRGaC2cuBtIru1v317KZVjEYti mDlrZ2fGNEOt
os1Tt/Ca3nAcsW1Ffsw9Oo1HTW5KcpbOuNDJommGOA7JqxlZk1maGWoNbZ49 SdAa62IVterm
ysb/9+w0PLkpiaF5+WVPru04YBxYlC/+n0hmbWaoBdra4MzIvLwd0W/LGzZl zWtPGOVutER3
HMAv3mbyNkVRFm2wtmEosyb+klmgGdo+iVstPd60K1u4YbsadXu08AyAAbz5 YFedSuiaRdm0
boDTmT/uWJFZoRlqI5lWpH1BPN49e9x2FMCvP+YWTI2iTNXSGYYIlC556674 I7MgM9Q2kgv4
HdBnzQyA20dT7xUkgwJUwHQcUTBNBhQqJ2YQnKG2UVLld+BIK5cBcLvo1fsU YhHNJiAsR1MR
QkyL1mhP8PwfMksyQ22CYHjH0tJmANwOevthv0g7hs0QloCytRiv2SwB7eQm b12XGdsMtYEk
YmYAvG1a1xEAXnWZxQOOQwE2bAJOigk0bNVkuWLzqMygN0eJNl3tbOPzbkiG 7gQzy2ObtM2U
BTuSzK6oxDIYjVAMy1kMTWg5TGkcDZPYMaIfmxn0ZhlNu+Wj5rfahNJiKUFn F6kwbHszy2Mn
idCNXnXxs/4xmgcDgHVMQsVg0zwjMCxllp33aGZsm6GaVGNJaXkK6V0Cv4Ig ZxIa7iQAzxh7
dSMLvrt3LU+ZsOwYTIcAjMnREGij/rKJmaFtjvaAsrWJ9tzkgFWTicz62CkA XjJ91veNH3tN
GRlUBA6O5PDQ4GK8FE1zZvV1t2dGdk8lpX3L0DRdmfPA7aC26sCrFte/909O l4269b3nV4gE
FEebDkUch5gM0cOTLs4MbIbaRlxWjZkZhY7lwBqAirHXrRSkTUFvxS/tX8px si3RrOLYjsXS
Fn1LBr8plzF3MTLbzE3juiRn1kbHcmARgOc8t/idXrbpjyVT6+aXeCoIzbAE IkVFmWvHZ4Y1
5TJmmuN1i0go0+DbqptxkqFm1kbHi9CDXgVGl/Vq+qdnr15EKQwlswYlErXy kQx+9zz5d8vv
bQ9tpK1opjphB4vQG2XAgK/p16JXDiz3i9AiFm8KyWcvyAzqnkvtV2Mphs4M 304CMONsXkDB
O21iNcsR3RCja244LTOmezAx7b5TMM2MEWsniNAAQMtbSkg3ME/zPsoNcvNF ewSf4TILJ3X8
oFGss5WMDryTAKxZWyUeu9Z53CepiWsu2yNVvsw2teMUzpMy22JHb5mNvgGW 2doTcv3DOkdd
dHlmQHcXqmzDNpWKCAx2dTATC70lRVIM4MaLxeaC3s7JjujXZYZ8l6K/t/Nb wU4RnDdRNuhM
begtydsxY18Zbrags5lxA+xiVLCk4+TvDepWa29weZjKzIzsHKtDsdzsobiQ KzOcuxZl9e2w
R28wR7e+amo4uWeV6W6FzX2jahLRUFHZvKrSHq75CVfaHLsne5IIFMqUzduk qXkBkzM5aBvh
GhFEAKgswLpAuAgIWUpC8Jo1tisrlAVUFJZ1QnmRJmK1UJYfkaVYHzu3cnEh G6XkStESimuC
WUhEe/yWo0tSSKC5aCDuBJDMqnarybyoAzXb1KKyuw6BKj0nIifkhJzMKs8T c4s6vrsz6gBC
WzRngrIJdI5YhsTWuyKsEqbrAwmH+BmHDkQElbcTnB6FINWxNG8E1vgNotKs KhMmrNM1hUyS
EUi83usJsbGsGLFNL22GlC61hFezwiYvJ+u9lmSxYZvVLApayXqOYpO8mFRi DOh6c+RUAKBS
hrozZvT7K01X2HaPvDcxtmoiUF7U7E+brVYgEfR6EwqAisKQzHBAmbEXKh1f w5+gieuckvWW
p1bOqsldMXhxICyaJqs6dG5QVirclidG6XTUy4UURCQnQTlGHm3SrBbptDJP z49XyDXd6RrK
XXP4LhF2uRYv1jJymGISxHaZjB3M5nWiS3pu2EhQhAiukKI6JsupXFUBK1bJ YtAjGZHiGsZg
mZosLXs9x0Zl2grzXl1c70NS1n0JoqiEENWjGpIKizV5wVPvrmPBoZ6XiGFl 1xF3tVvWbcKJ
1W5VYhM0pSqrXxnvdHQ8yP1P20VmvckFaCZhcLbPvUrmdDXLTIixXNNQ5Ao2 i0tU0yf+rNa6
uEg2UxGgo55owFazdSOenfBxqpBUkporIjkJidYDZQHVkPVsC1RU4G2NInll suYxGEOgNH/E
rdIq3Kj0yDHe9goRp7Z3JOJhVJ5NVobay4G3AQQxLWqp37c43zTlJF+fSzOM zbuqTYWt59wW
SXJ2hMpJJlmgzkfD0aOuguU5EUHzRuo6kbVe2dBVv+Ox17l9MTnm5SJg2Yg7 4kXE5riYxVGB
epPx2jWS7TgJUdBpOWZl6ZxcZXhozjSJRRx3RY4UY6Q4pAjqSnjTqcolMUrN rxUZUEYgGfWH
BYcH54RywxoL3obFSoapdqpjbZqjYJtygtHdBqfHchHJUqsG7xK5Ae0fHytg mKRAsUTN1h1V
lVwhWTaruyRNorirOdEkksaYXIIyzahSl1tmip2rSRnLRZmkq9JbywbWwpR1 PiFEGDoq21bS
NLg4z5kipVJUzEupLEOJtUnLSXBwU6Yn5LARW4I/SjE+m7FcuapFfBGnk5Rc 1vHZR37qToSg
x9QDpSxL0R7b4HxSXV5pHmyP4rAhtyRLa4o4/hs+mZ+kc+IuDxQqh7bonCDl rSqBE6U8fMhv
ElHrucR051b1UF11ucRWDDUrO2bogajmUvKjtJnHe2si+ZYtePx6qBgekh2m rAK1wOXkyqFs
d41oI7UAprpH02AxffiM2KVCZIjGWEme5rlkKMuBGFH4eq8navOOp15xTN3K C7ur8ksrqhOL
PaKcYFUYwnpDhKbxfH1iJQ/Pejbpr+kWL1d52h9UEPEmzUrZEKnqWJ7DmjRd 645wqr86oCU0
pp6rzOctMcIFFSuk27IqaY6HSiZk1V9Yr2qoL44EZa9W7WY1RuVZM0FE0EJS YuBWLYdwlM3w
lGG5NNZxRJPPW0cRP6V5RTddu0uI0N3+dheLpC4rzLnrRNlhBQWd3UyC7lpO mbwkeiViqgVU
giuMW3ahWmQV5hOtj+HEPT4LPNGM/jXZtJP0CnEUOBzFxbwQ1hebkpnIDsoQ VZ8O3mRiMu+3
iOax9zJoFiDw1WaZFOOmkp6QW2UZ2/JV/yLGO763nmBibI8IBXeSIRZLWYTO DzqMI5Okxbl0
ZNV4pZBjWDRNe5PgTDFp5ARz9IifSRTVRwIhJavex1QqkKNsbozVi1d4PUmd DdRTEs/p/nLd
HVSkhEycJONm8ko52Ql5u6206ISrXnF3WSoXM1hfjH8k762zwikGcEyqSgfd VCm0fNHCMEM7
natlMyHmqkpMlKN+n5AQVJZogXhdEZ8oy2M8ChX2250Vl6rlalq+KYreEEuT AMvQRSHal8yJ
5XEWX6ApanGZ3y371ITAFNXLhsVzpm720vNJtkX5hFAxrxcvc0Oqd+daDmKE KagSPEk7Cy6D
c6k5WYyg8bn7Veav7xV0aDkmWQyr8jbHuKsVyqBgsS5DJHEllOwcZ1R3hPM7 RYKgQGewUOB3
DSXYZvXek6qULCtpMF7EzTytE5b0Lu8UU0CXckVALJkHODQq8mmsKeTo6rza nKr8pNzUpNPG
MI5m1JslYzY7xdhBwrSs1ZzaJXWP2/xR2Zv/2L/hgh4bvvcBgGKgOxAwEykG sKC600HdtY1D
x1b4g0pSTBCvmfRXyoJhBYI5hhxhOCdQmW860QBMIx6gQJQ6mdNkYvPeUDxA 8Wwdb+YkmSj4
WH7IzAYMQpveGB1XFJsxzexIp9q4J1AqSQkiaQyTK+iGu7wI1XmoKESsoV5m zN2oRq8q4Dhd
aPwTAEBvY+byk0t3EUuZzTNa5y1syH3RCW4AJQDgdgOggUIAXQHkIQf5aHr+ t81RWM3coArR
ppitKuyQzoZy/kmmwZhrttgWANe0nMzJ0qV0WExq1bD92nFb1yb/AgD2auai fHQB0MT3Iggo
AvKAwo3lbt0bCmTuBUDY8Kd2kSXsIsGFOmWmhQ83KTc1yXYMflFnq+kwLVGm wVPXSjGjFcnY
smPpEIzOBVCXruu8jQy4ltL0TRJmulBpM01xWXI6CPuUKekd/xa/npUOsxFn zVTrwNnpcKDT
DDK7izs6xzaodkuYHUFjKs7pdl+EOvm+LX8wGLUoDdqXHZJ2gnCrxNIiA71P NVIMYINJh7LJ
tttmdhMAgxLSay9apH8cDrusNxb8b8upJ0YsDdpnSNk74TwEy9DpkD4z1rip p5Brxnxp0C9n
NzoVHmXSK46D6/bXqE8eynP/+f2Wa5pIQhq0rw47I6tHjRBKh84qjfp+6nqc zaTDxsTair27
AJjkp1eWGbl+xON9jz4ham6paeqoSYeqCrxgGh3/Fr8TaJOm3UGuaS1mpBjA qsdKB7FzR9K6
pBn5gmnmB+Z6AhAUsqWmSfs86QBg3WO1uhntF9SSiltsi7m2g474UAFvinVg S02H44QOa+4c
Dpzs+CzGCTa9AByvswCwEW5LTZPSmXSwsrm5uL/Ve1H7Z8UgiTRwmCpxNcUc mOPSQf0UVF+H
Angj89kJWchNIZpWAPaILADkb2Vb83KikQbtiyS5neHJTJjpoAPHGk9qpg7A ESYdJpFXazrU
dLszqwf4ajZTSia07ykffZky6cYhAGxNDW3Z0HpTT4O5TzA5Wse/xU/FPWnQ WUviUwxgVzId
RGirOLQT9pHy2k3SRumVX3TQWwy2qag2/6Xtcuvv52zjl4k3pkztYlkAHEVv uYBVJi2c7y59
1U5whFRJ+elgrXVpXIp1YJB0ADBD+zvGdPtc9V2bvhQ10YErp5Qf1TF9IdGm /P61U7cr2p+R
u3AbM50ybNWrlQCkdVu56nyx7ulQ8ClpZ4V3xmtqxDTorM1GUwxgwUoHr6VV 20Ga+FPhCZsF
18Y2gMtDd9Q5aDqQxKZDNW++s71rvf7+25rpAAAgZG2Mh914TKembeWKx1ED APS8yF+85S9s
JJAGc++N+nYCb8yLudIhEstrpfo0kpRIByMW7d7RaLotzqltOErUPVbY8Gt1 HgDoFtZZvNcN
uKUGFrcMvRuurEjYjZ9Kq3r5d6QlqNuk5PzIDMHL/pNf/CkyZrx2YxU/6mIA mPvJSm7giIMx
d2546b3nF+OjrxZ7vWceBwAvfGL0GnUyQAiAeR/+YqHPFfsAeOzLWrHvVYOB ZS/OkQNj2lAJ
5yEAwL77bvVDkEU6HGTJ42t3giczsEJKh7Az0Uq1EcuU0iGCgg5JVhsQspmE iMcn4eXcglcw
/+RePZ5aCQCLxvctPum/wOJbyurH3wN8dWZJ167nrAAEecaFg4bv8xYApgbA lJLBA3vcDAAv
HTB0/05PAJh1/MDDe10EYG39JgVqZRv6wlkcNmYyez5QgGf+c/wz1UvOu2bv ed7fJ1wD4NPD
n+WrHj1pHla8x5GZcXw1dulg5ZvjPwNwyo3cgQtOmQyoBFh7wtv9R/b9+AoA l97S+5qRP4z4
CRj/+lHHKRfemYq9WzTSQQc2mRx9m7ObMlqvSungHGCVxnVOUkXjuu9L/n2a mVPwf62+2Pjm
iL83fP7u5LlkrGvswMeO9l2Rd+B9+2EsIWRmgXzP7ftST5M/T+60/7F3kh9d 3R+dfBF9EiFk
epcRzz1/VvZT5CfqdELexwmvTr8WzxPyESa8/fbJmEHIUb1ee2+yfAIhdw6Z
|
|
|
Re: Difference between Metaclass and class [message #625027 is a reply to message #476222] |
Thu, 27 September 2007 10:27  |
Eclipse User |
|
|
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
well after looking at the profile impl of uml2treeEditor I found out
that 'metaclass' is an attribute starting with 'base_' so this answers
why I couldn't find 'metaclass' in the XMI. This still reaveals the
question why I can still apply a stereotype to e.g. an Association. Does
<<metaclass>> mean a Class in the M3-Model? And it exists in order not
to specify the M3 language like MOF or Ecore?
- -stefan
SKuhn schrieb:
> allright, I didn't get quiet all of it, but let's try another way:
>
> I tried to understand the UML2 Profile mechanism. I found a diagram at
> "Modellgetriebene Softwareentwicklung, ISBN 3-89864-310-7"
> (Profile.png). I looked at the UML.ecore and everything seems right:
> 'metaclass' is of type Class and the 'type':Type ref of Extension is
> inherited, so I'm not sure if Stereotype is really referenced.
>
> I looked at the XMI serialization of it (upper half of NG.png), found a
> association class, and confronted it -for better understanding- with a
> normal associaciation (lower half).
>
> Basically I don't understand 2 things:
> 1) what happens with the 'metaclass' reference, where is it used?
> 2) Where in the UML-MetaModel can I find the reference to which type
> stereotype may be applied?
>
> Number 2)can't be the answer for 1), because if a stereotype could only
> be applied on a class and not e.g. an association.
>
> thanks
> stefan
>
> Kenn Hussey schrieb:
>> No, a profile is not allow to specialize metaclasses - only extend them
>> (with stereotypes). You need not worry about using the <<metaclass>>
>> stereotype for "complex" types.
>
>> Kenn
>
>> "Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
>> news:fdc072$cfu$1@build.eclipse.org...
>>> Hi, James,
>>>
>>> Do you mean, then, that in order for my profiles to be correct, I have to
>>> stereotype as <<metaclass>> the classes that I use to define complex types
>>> for my stereotype properties? I don't want them to look like metaclasses
>>> because they really aren't intended to represent "model elements", and I
>>> don't think I'm even allowed (in a profile) to define classes that
>>> specialize UML metaclasses such as Element. Or am I?
>>>
>>> Thanks,
>>>
>>> Christian
>>>
>>>
>>> James Bruck wrote:
>>>
>>>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>>>> Ecore.metamodel.uml.
>>>> If you want to create a profile that extends UML then one should be
>>>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>>>
>>>> The Class#isMetaclass() function that was previously mentioned is used by
>>>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>>>> classes) to populate certain lists with only metaclasses.
>>>>
>>>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>>>> stereotype which is probably why UML.merged.uml (the metamodel from which
>>>> the api is generated ) does not have the stereotypes present.
>>>>
>>>> - James.
>>> <snip>
>
>
- ------------------------------------------------------------ ------------
- ------------------------------------------------------------ ------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG+73lIYVWjMSpDwwRAhNtAKCN5U1c4AX9l2ta3M9DpJAr2rz4DwCg zrTj
JyUXUhWnbAQ1mpN8prZ4TvU=
=mS5V
-----END PGP SIGNATURE-----
|
|
|
Re: Difference between Metaclass and class [message #625035 is a reply to message #476222] |
Fri, 28 September 2007 02:06  |
Eclipse User |
|
|
|
SKuhn wrote:
> 1) what happens with the 'metaclass' reference, where is it used?
> 2) Where in the UML-MetaModel can I find the reference to which type
> stereotype may be applied?
A stereotype has an Extension relationship with every metaclass it is
applicable to. You can only create such Extension relationships between
stereotypes and classes that are marked as metaclasses.
You might be interested in this post/article I wrote earlier this month:
http://abstratt.com/blog/2007/09/06/profiles-and-stereotypes -in-textuml/
Cheers,
Rafael
>
> Number 2)can't be the answer for 1), because if a stereotype could only
> be applied on a class and not e.g. an association.
>
> thanks
> stefan
>
> Kenn Hussey schrieb:
>> No, a profile is not allow to specialize metaclasses - only extend them
>> (with stereotypes). You need not worry about using the <<metaclass>>
>> stereotype for "complex" types.
>>
>> Kenn
>>
>> "Christian W. Damus" <cdamus@ca.ibm.com> wrote in message
>> news:fdc072$cfu$1@build.eclipse.org...
>>> Hi, James,
>>>
>>> Do you mean, then, that in order for my profiles to be correct, I have to
>>> stereotype as <<metaclass>> the classes that I use to define complex types
>>> for my stereotype properties? I don't want them to look like metaclasses
>>> because they really aren't intended to represent "model elements", and I
>>> don't think I'm even allowed (in a profile) to define classes that
>>> specialize UML metaclasses such as Element. Or am I?
>>>
>>> Thanks,
>>>
>>> Christian
>>>
>>>
>>> James Bruck wrote:
>>>
>>>> The UML.metamodel.uml uses the <<metaclass>> stereotype, as does
>>>> Ecore.metamodel.uml.
>>>> If you want to create a profile that extends UML then one should be
>>>> extending the UML.metamodel.uml with the properly marked metaclasses.
>>>>
>>>> The Class#isMetaclass() function that was previously mentioned is used by
>>>> the CreateExtensionAction and the ReferenceMetaclassAction (amongst other
>>>> classes) to populate certain lists with only metaclasses.
>>>>
>>>> Otherwise, the UML to Ecore does not make use of the <<metaclass>>
>>>> stereotype which is probably why UML.merged.uml (the metamodel from which
>>>> the api is generated ) does not have the stereotypes present.
>>>>
>>>> - James.
>>> <snip>
>>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG+owgIYVWjMSpDwwRAl3VAJ91kM0+cB6qyELsIh8G/8hN1ht8lACf frp+
> 657BYkkhtzjdzIkQPgnU1QM=
> =/+GM
> -----END PGP SIGNATURE-----
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
|
|
|
Goto Forum:
Current Time: Sun Aug 31 11:37:40 EDT 2025
Powered by FUDForum. Page generated in 0.14303 seconds
|