Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » EMF newbie wholly unable to "regenerate" EMF: what is wrong?
EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517290] Fri, 26 February 2010 19:48 Go to next message
Paul E. Keyser is currently offline Paul E. KeyserFriend
Messages: 878
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------010208060301090509040501
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Eclipse 3.4.1; Win XP

I am new to EMF.

I have a small model, three interfaces with a total of eight methods
among them; the model is written in annotated Java, and uses only the
annotation "@model", twice with "containment=\"true\"" (I have not yet
been able to find any explanation of the annotations, so all I am doing
is copying from the few examples.)

The little model generates fine, i.e., without errors.

Then I make a change, and want to regenerate. I was unable to discover
from the docco (incl. FAQ) how to regenerate, but from posts on this
newsgroup ("How to regenerate the .genmodel from the java interfaces?"
[2003] and "Best practice to change annotated Java and regenerate model
code" [2006] and "regenerate ecore after schema changes" [2009]) I see
that the standard method is to select the FOO.genmodel file in the
explorer, context-menu -> reload -> follow the wizard.

When I do that, I get the error in the attached screen shot; as a matter
of fact I get that exact same error if I try to regen even without any
changes!

The error message is not very meaningful to me, but comparing my project
with what I have checked in (after a successful generate and before I
did anything at all else) shows these deltas, both additions:

FOO.genmodel:
<genDataTypes ecoreDataType="monitorset.ecore#//Class_">
<genTypeParameters ecoreTypeParameter="monitorset.ecore#//Class_/T"/>
</genDataTypes>

FOO.ecore:
<eClassifiers xsi:type="ecore:EDataType" name="Class_"
instanceClassName="java.lang.Class">
<eTypeParameters name="T"/>
</eClassifiers>


So far, the only way I have found that works is to keep a separate copy
of the interfaces, and when I need to regen, just delete *everything*
and start over. Surely there is a better way? ...

thanks,
Paul


--------------010208060301090509040501
Content-Type: image/png;
name="EMF-Regen-Crash.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="EMF-Regen-Crash.PNG"

iVBORw0KGgoAAAANSUhEUgAAAdgAAAA+CAIAAAAH0Z3lAAAAAXNSR0IArs4c 6QAAAARnQU1B
AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgA ABdwnLpRPAAA
CvJJREFUeF7tnLtu3EYUhjdv4FKv4E5bphXgB1gCKRwgZSpBhcDSXbDYIhBS LVwYgjqnCOAm
gN2tSzUBpMKAUxjQFipYpHDhQoULZm7knLnyspfhLv8FIXC55Mw53wz/OXOG 4g/FupjgAwIg
AAIgkJAAE2JsIAACIAACCQlMEtaNqkEABEAABHhaAhRAAARAAATSEoAQIzMD AiAAAokJQIgT
N0DacRi1gwAIDIGAX4hf3aywgQAIgAAI7IdAUIhLfEAABEAABPZCAEK8F8yo BARAAATCBCDE
6B0gAAIgkJjAvoW4uH9X3Jzx7f5dYtdRPQiAAAgMg8C+hfjhzVn59ZZtfAcf EAABEACBsuwj
xMvXb92tDUwWBXP9LVZsYztbDorXy7MXywdqh3ukjZVHcM4mjm9ybUt0oSr2 UHVLC3EaCOyX
QGchZhLstTB0nJ788OZHFgu/mj1jGw+KX0eDYnZb6ndw5KtGLschxFsRI6uQ NmXW57Q5ubEt
4idAiDcEiMuPjsB2hPjpe9koxMWf2ec/puW/8/lPz9jGdthXdjCIlN6uH/OJ Fe26l0GIayY9
xBRCfHT3Nhw6IAK9hPh7WX4vmfiq7dtT8d/XRiG++31afsmZ/l69PLn65YTt sK/8YOhjqMkq
n+QrcWR5yeJkESDrkLn6+iLPX8go+my5FidI+dZn1sfVmfnHh6W4JP/I7WAJ ExWFu1kO9YMu
WViiry1LZiQ54jGvypxIw7Q7dSHKGO7Amwef2V73hUmGmxNj3ApWV6Mn9V7m FWTimgXQUHw/
Sbt1vOZ52sVMLh3QnQRTQWADAn2E+OmptN7bWRQNQswiX66563n5z896W8/Z wWBQTISY66NU
rkoxpepp9bxciTtfSZI+n+upEHHJqJYkeSYLtOsdVb46c3VJkyHeElTtvBBe C9cyaY/4+Myr
xV2bYRVCBg+/2XUVjkmkRj0C2V471RmSqgct5Yhyza2ruqxmbpF03feY56Pa OO/ZoK/jUhAY
LIF+Qvz09O3pq9y+8nD44bFBiO8W0/Lxqrw/Zxoxf3my/PWE7fCvj1f8J++H 5ojrwNbSslpo
qnhZLdbxa1UELeWbfKrjtS7rHRnSOvnoSAlU3KmI0HCeGmMpo+uOJ4pXYbec EBAHA05Rvxqr
8wqxb8AwAEauItG3py2cgcHfLoO9XWAYCOyGQB8h5spbMPEt+LYuPn/hWzw1 cbd4XhbL8lNe
rq95jvglE+Jr/vVxyX8KCXHkKYhGpaNCHCrHnxh15DiefXalx5LC3kLc0n2q bu6+d6iIeGSB
rVIoxuMo2xJiPOWym7sapR4cgT5CzGT37tPD7b2xxYX4dvG8+Dsvi2trYwfZ T32EODr356kJ
maxQqQmaNDBzxzTWXi9zlpnlH5ZnqBKv/KvOMyhTXbVqk5qoYm0zcyKKNAJh GZJHK3V/5UfM
zIwllx6bCXg5WrhDiBdgoxD7UxOWeXEHD+5WgsEg0J9AZyFmVfV7jvj2t+fe LWh7PA6VklGt
jZlrd9VSlXeaT0M8OyLWq218rYx+rDyJV9TIOTzHaplHVgLPxIKYXKzT8/dq fyXWAM3FOuGR
BcRN3fBErbhWlt9JiJnwy3rptSGAzULscV9k5M0qIlT7d2lcCQKHR6CPEB+e l7AYBEAABAZM
AEI84MaBaSAAAuMgACEeRzvDSxAAgQETgBAPuHFgGgiAwDgIpBHid39d7wgv Wwx6/2GFvyAA
AiCwLQI7EitabBoh3p1jTIWxgQAIgMC2CDA1351e1SWnEeIeEXHLN8rLMRAb CIAACGyLwNEK
cQ/HWr5RflvoUQ4IgAAIyDxnD73qeslhRMTt3yjvj4hv8ulpfn0EkfKOHNm8 2EUm/1kjWwxg
OmK5w75Osrm39Td3XBYbqWJbvU6a2tvg3hfW9o+qic0G7aqqPc5PI8RdDW3/ Rvn3H96en9K3
4fD96Sw7SCF2b57Nb6ct6pE25iqbTM9vhB4NYcBzhbi2qlIT3i1mV1szeA+O JxHi0TYxaVBE
xEquO71RXkfE9N7Yw32yrcCHljNwIa5N3UM82Amvze0qE0J8fTFlIXsdGs9n 2XxrHUNVscO5
fBIhHm8TGw3aNXDscf4BRMSd3iiv7wRHiM9nKlJW02cuH/KjozlxjrhXrV9p jzzNMhF0ZwsV
fcsCxX1OChSxeTVVr2LGeiZ7moftkWKhQ/vpxVvlF3dK1a7MjpjqMYnmDZhJ FZALFck6LhCn
tJaJq/Q0WZejjrsmibbQbMMQbAOIvxZtTwPpJhPm2drNeIqG9g113RxvMSo0 FkgaVJiqBzNm
p68HBoTYrYg4iCbWs7TGFtEnmJ3n+CNi+exE6K8cVbq+UT4YEdfpSzY55aBZ H62Co7qL6xSn
86sRGoj7mU9yqx3rtmc/sWkvu8Td0SnFSqO1PeoI7xDycm9ELCuVIut1xCsT tSXqVzpI+CqS
55NQV8WPFTQjnKztVDtxtpUUCt1UA5WCQFRSG+Cl7TYQFx09xLpC7A3bXcJt HG8hxFoNvQXq
EpQjrDWzWSbsl7GYj2E8R4wm3lkT94hwu14y9Ii46xvlIxGxCpGI7JJcsjlL pbGViH31Uo8t
OkTFPBGZup3mM3MVy02bWEfqqNwSFPe0iKlGZGoGiZYAUadqKEoOqPsywjIH MDpgtGFrzC2q
uDVkQIi267WL1JJLV3Mty9s73kaI7c5goiMlzGd8pFEDmxz81BBIuidjHoiI ycwATexboujX
t0kDHXNE3H646PpG+eYccaRD16rnvWnJhFrNJeX5Wn2qmS+5XEgwiW6sQujl tPZOQhxaH+Na
4DHJE2tHXeAxmjEaVV8jKhkZPyJC7Brcrwp/85nZIdoQQVABxxuFuG2BambD ewgnJpISCxEX
uy54+y2a2GiLXTVxe73qfebQI+Kub5RvGxELcTGetTK6vvOrKx+WRpDLq6RB /WDTRCd5Q0JM
7DFSE9ZzV1YtPIPRwlSdx6jn/r7UhOvCTZ6p9LRIsC7sr+oZCVsu42xJasIa +XwGtK2Cc7CS
NvaDdMHFuq6OW4lmV5cbC6QlMMinU9lDri8ylqAQqacAQ0ugQ72Om4QmruYZ ZkpH3Z7xvk0a
CBGxGl06vVG+bUTsTtvdLm7MVR35cII1FvyqpTrjabnYGpERnOrJLF3Z50Ua i3WuVfpCe5Eq
YJIeIWRhWbVY55yvV3uEDebXULjayDY4GrE7x2TYvgqZkRefyNOKZMXGeHyt m+ONEfEHxxEL
XSiOo7lyq1m9EbGnIjL8kBLQxJs0ce84t/2FQ4+I23siz9zh80Mtbj9P7e4y VL9ycBUIgEAK
AoiIu4owP19HxCnazBVie5luGFYNbrg6MCzmE3siCrcfjDswjwbw/5ADJtZH iTpeg4gYXRAE
QAAEggQQEXccU8TpMiLGXxAAARDYFoE+StTxmmOLiDu6j9NBAARAID0BCHH6 NoAFIAACIycA
IR55B4D7IAAC6QlAiNO3ASwAARAYOQEI8cg7ANwHARBITwBCnL4NYAEIgMDI CUCIR94B4D4I
gEB6AhDi9G0AC0AABEZOAEI88g4A90EABNITgBCnbwNYAAIgMHICEOKRdwC4 DwIgkJ4AhDh9
G8ACEACBkROAEI+8A8B9EACB9AQgxOnbABaAAAiMnACEeOQdAO6DAAikJwAh Tt8GsAAEQGDk
BCDEI+8AcB8EQCA9AQhx+jaABSAAAiMnACEeeQeA+yAAAukJQIjTtwEsAAEQ GDmB/wERRVr7
uC6H7wAAAABJRU5ErkJggg==
--------------010208060301090509040501--
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517295 is a reply to message #517290] Fri, 26 February 2010 20:08 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000601080500080903080709
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Paul,

Comments below.

Paul E. Keyser wrote:
> Eclipse 3.4.1; Win XP
>
> I am new to EMF.
>
> I have a small model, three interfaces with a total of eight methods
> among them; the model is written in annotated Java, and uses only the
> annotation "@model", twice with "containment=\"true\"" (I have not yet
> been able to find any explanation of the annotations, so all I am
> doing is copying from the few examples.)
The Refcard is very handy: http://refcardz.dzone.com/refcardz/essential-emf
>
> The little model generates fine, i.e., without errors.
>
> Then I make a change, and want to regenerate. I was unable to discover
> from the docco (incl. FAQ) how to regenerate, but from posts on this
> newsgroup ("How to regenerate the .genmodel from the java interfaces?"
> [2003] and "Best practice to change annotated Java and regenerate
> model code" [2006] and "regenerate ecore after schema changes" [2009])
> I see that the standard method is to select the FOO.genmodel file in
> the explorer, context-menu -> reload -> follow the wizard.
>
> When I do that, I get the error in the attached screen shot; as a
> matter of fact I get that exact same error if I try to regen even
> without any changes!
>
> The error message is not very meaningful to me, but comparing my
> project with what I have checked in (after a successful generate and
> before I did anything at all else) shows these deltas, both additions:
>
> FOO.genmodel:
> <genDataTypes ecoreDataType="monitorset.ecore#//Class_">
> <genTypeParameters
> ecoreTypeParameter="monitorset.ecore#//Class_/T"/>
> </genDataTypes>
>
> FOO.ecore:
> <eClassifiers xsi:type="ecore:EDataType" name="Class_"
> instanceClassName="java.lang.Class">
> <eTypeParameters name="T"/>
> </eClassifiers>
It looks like an EDataType was created for presenting java.lang.Class.
Likely you already have such an EDataType but it's called Class whereas
this new on is Class_.
>
>
> So far, the only way I have found that works is to keep a separate
> copy of the interfaces, and when I need to regen, just delete
> *everything* and start over. Surely there is a better way? ...
I would have expected your other EDataType to have been matched, but
without more context (a more complete example), I'm not really sure
what's wrong.

Often what's useful is to fix problems directly in your Ecore model
(make that feature use the other EDataType named Class, or reuse
EJavaClass from the Ecore model), delete all the Java code (move it
elsewhere for safe keeping), and then regenerate it all. The resulting
code will have more detailed @model annotations...
>
> thanks,
> Paul
>
>
> ------------------------------------------------------------ ------------
>

--------------000601080500080903080709
Content-Type: multipart/related;
boundary="------------000403060605060607090900"


--------------000403060605060607090900
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Paul,<br>
<br>
Comments below.<br>
<br>
Paul E. Keyser wrote:
<blockquote cite="mid:hm98is$a2m$1@build.eclipse.org" type="cite">Eclipse
3.4.1; Win XP
<br>
<br>
I am new to EMF.
<br>
<br>
I have a small model, three interfaces with a total of eight methods
among them; the model is written in annotated Java, and uses only the
annotation "@model", twice with "containment=\"true\"" (I have not yet
been able to find any explanation of the annotations, so all I am doing
is copying from the few examples.)
<br>
</blockquote>
The Refcard is very handy: <a
href="http://refcardz.dzone.com/refcardz/essential-emf">http://refcardz.dzone.com/refcardz/essential-emf</a><br>
<blockquote cite="mid:hm98is$a2m$1@build.eclipse.org" type="cite"><br>
The little model generates fine, i.e., without errors.
<br>
<br>
Then I make a change, and want to regenerate. I was unable to discover
from the docco (incl. FAQ) how to regenerate, but from posts on this
newsgroup ("How to regenerate the .genmodel from the java interfaces?"
[2003] and "Best practice to change annotated Java and regenerate model
code" [2006] and "regenerate ecore after schema changes" [2009]) I see
that the standard method is to select the FOO.genmodel file in the
explorer, context-menu -&gt; reload -&gt; follow the wizard.
<br>
<br>
When I do that, I get the error in the attached screen shot; as a
matter of fact I get that exact same error if I try to regen even
without any changes!
<br>
<br>
The error message is not very meaningful to me, but comparing my
project with what I have checked in (after a successful generate and
before I did anything at all else) shows these deltas, both additions:
<br>
<br>
FOO.genmodel:
<br>
&nbsp;&nbsp;&nbsp; &lt;genDataTypes ecoreDataType="monitorset.ecore#//Class_"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;genTypeParameters
ecoreTypeParameter="monitorset.ecore#//Class_/T"/&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/genDataTypes&gt;
<br>
<br>
FOO.ecore:
<br>
&nbsp; &lt;eClassifiers xsi:type="ecore:EDataType" name="Class_"
instanceClassName="java.lang.Class"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;eTypeParameters name="T"/&gt;
<br>
&nbsp; &lt;/eClassifiers&gt;
<br>
</blockquote>
It looks like an EDataType was created for presenting java.lang.Class.&nbsp;
Likely you already have such an EDataType but it's called Class whereas
this new on is Class_.<br>
<blockquote cite="mid:hm98is$a2m$1@build.eclipse.org" type="cite"><br>
<br>
So far, the only way I have found that works is to keep a separate copy
of the interfaces, and when I need to regen, just delete *everything*
and start over. Surely there is a better way? ...
<br>
</blockquote>
I would have expected your other EDataType to have been matched, but
without more context (a more complete example), I'm not really sure
what's wrong.<br>
<br>
Often what's useful is to fix problems directly in your Ecore model
(make that feature use the other EDataType named Class, or reuse
EJavaClass from the Ecore model), delete all the Java code (move it
elsewhere for safe keeping), and then regenerate it all. The resulting
code will have more detailed @model annotations...<br>
<blockquote cite="mid:hm98is$a2m$1@build.eclipse.org" type="cite"><br>
thanks,
<br>
Paul
<br>
<br>
<br>
<hr size="4" width="90%"><br>
<center><img src="cid:part1.01030901.04060807@gmail.com"></center>
</blockquote>
</body>
</html>

--------------000403060605060607090900
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-ID: <part1.01030901.04060807@gmail.com>

iVBORw0KGgoAAAANSUhEUgAAAdgAAAA+CAIAAAAH0Z3lAAAAAXNSR0IArs4c 6QAAAARnQU1B
AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgA ABdwnLpRPAAA
CvJJREFUeF7tnLtu3EYUhjdv4FKv4E5bphXgB1gCKRwgZSpBhcDSXbDYIhBS LVwYgjqnCOAm
gN2tSzUBpMKAUxjQFipYpHDhQoULZm7knLnyspfhLv8FIXC55Mw53wz/OXOG 4g/FupjgAwIg
AAIgkJAAE2JsIAACIAACCQlMEtaNqkEABEAABHhaAhRAAARAAATSEoAQIzMD AiAAAokJQIgT
N0DacRi1gwAIDIGAX4hf3aywgQAIgAAI7IdAUIhLfEAABEAABPZCAEK8F8yo BARAAATCBCDE
6B0gAAIgkJjAvoW4uH9X3Jzx7f5dYtdRPQiAAAgMg8C+hfjhzVn59ZZtfAcf EAABEACBsuwj
xMvXb92tDUwWBXP9LVZsYztbDorXy7MXywdqh3ukjZVHcM4mjm9ybUt0oSr2 UHVLC3EaCOyX
QGchZhLstTB0nJ788OZHFgu/mj1jGw+KX0eDYnZb6ndw5KtGLschxFsRI6uQ NmXW57Q5ubEt
4idAiDcEiMuPjsB2hPjpe9koxMWf2ec/puW/8/lPz9jGdthXdjCIlN6uH/OJ Fe26l0GIayY9
xBRCfHT3Nhw6IAK9hPh7WX4vmfiq7dtT8d/XRiG++31afsmZ/l69PLn65YTt sK/8YOhjqMkq
n+QrcWR5yeJkESDrkLn6+iLPX8go+my5FidI+dZn1sfVmfnHh6W4JP/I7WAJ ExWFu1kO9YMu
WViiry1LZiQ54jGvypxIw7Q7dSHKGO7Amwef2V73hUmGmxNj3ApWV6Mn9V7m FWTimgXQUHw/
Sbt1vOZ52sVMLh3QnQRTQWADAn2E+OmptN7bWRQNQswiX66563n5z896W8/Z wWBQTISY66NU
rkoxpepp9bxciTtfSZI+n+upEHHJqJYkeSYLtOsdVb46c3VJkyHeElTtvBBe C9cyaY/4+Myr
xV2bYRVCBg+/2XUVjkmkRj0C2V471RmSqgct5Yhyza2ruqxmbpF03feY56Pa OO/ZoK/jUhAY
LIF+Qvz09O3pq9y+8nD44bFBiO8W0/Lxqrw/Zxoxf3my/PWE7fCvj1f8J++H 5ojrwNbSslpo
qnhZLdbxa1UELeWbfKrjtS7rHRnSOvnoSAlU3KmI0HCeGmMpo+uOJ4pXYbec EBAHA05Rvxqr
8wqxb8AwAEauItG3py2cgcHfLoO9XWAYCOyGQB8h5spbMPEt+LYuPn/hWzw1 cbd4XhbL8lNe
rq95jvglE+Jr/vVxyX8KCXHkKYhGpaNCHCrHnxh15DiefXalx5LC3kLc0n2q bu6+d6iIeGSB
rVIoxuMo2xJiPOWym7sapR4cgT5CzGT37tPD7b2xxYX4dvG8+Dsvi2trYwfZ T32EODr356kJ
maxQqQmaNDBzxzTWXi9zlpnlH5ZnqBKv/KvOMyhTXbVqk5qoYm0zcyKKNAJh GZJHK3V/5UfM
zIwllx6bCXg5WrhDiBdgoxD7UxOWeXEHD+5WgsEg0J9AZyFmVfV7jvj2t+fe LWh7PA6VklGt
jZlrd9VSlXeaT0M8OyLWq218rYx+rDyJV9TIOTzHaplHVgLPxIKYXKzT8/dq fyXWAM3FOuGR
BcRN3fBErbhWlt9JiJnwy3rptSGAzULscV9k5M0qIlT7d2lcCQKHR6CPEB+e l7AYBEAABAZM
AEI84MaBaSAAAuMgACEeRzvDSxAAgQETgBAPuHFgGgiAwDgIpBHid39d7wgv Wwx6/2GFvyAA
AiCwLQI7EitabBoh3p1jTIWxgQAIgMC2CDA1351e1SWnEeIeEXHLN8rLMRAb CIAACGyLwNEK
cQ/HWr5RflvoUQ4IgAAIyDxnD73qeslhRMTt3yjvj4hv8ulpfn0EkfKOHNm8 2EUm/1kjWwxg
OmK5w75Osrm39Td3XBYbqWJbvU6a2tvg3hfW9o+qic0G7aqqPc5PI8RdDW3/ Rvn3H96en9K3
4fD96Sw7SCF2b57Nb6ct6pE25iqbTM9vhB4NYcBzhbi2qlIT3i1mV1szeA+O JxHi0TYxaVBE
xEquO71RXkfE9N7Yw32yrcCHljNwIa5N3UM82Amvze0qE0J8fTFlIXsdGs9n 2XxrHUNVscO5
fBIhHm8TGw3aNXDscf4BRMSd3iiv7wRHiM9nKlJW02cuH/KjozlxjrhXrV9p jzzNMhF0ZwsV
fcsCxX1OChSxeTVVr2LGeiZ7moftkWKhQ/vpxVvlF3dK1a7MjpjqMYnmDZhJ FZALFck6LhCn
tJaJq/Q0WZejjrsmibbQbMMQbAOIvxZtTwPpJhPm2drNeIqG9g113RxvMSo0 FkgaVJiqBzNm
p68HBoTYrYg4iCbWs7TGFtEnmJ3n+CNi+exE6K8cVbq+UT4YEdfpSzY55aBZ H62Co7qL6xSn
86sRGoj7mU9yqx3rtmc/sWkvu8Td0SnFSqO1PeoI7xDycm9ELCuVIut1xCsT tSXqVzpI+CqS
55NQV8WPFTQjnKztVDtxtpUUCt1UA5WCQFRSG+Cl7TYQFx09xLpC7A3bXcJt HG8hxFoNvQXq
EpQjrDWzWSbsl7GYj2E8R4wm3lkT94hwu14y9Ii46xvlIxGxCpGI7JJcsjlL pbGViH31Uo8t
OkTFPBGZup3mM3MVy02bWEfqqNwSFPe0iKlGZGoGiZYAUadqKEoOqPsywjIH MDpgtGFrzC2q
uDVkQIi267WL1JJLV3Mty9s73kaI7c5goiMlzGd8pFEDmxz81BBIuidjHoiI ycwATexboujX
t0kDHXNE3H646PpG+eYccaRD16rnvWnJhFrNJeX5Wn2qmS+5XEgwiW6sQujl tPZOQhxaH+Na
4DHJE2tHXeAxmjEaVV8jKhkZPyJC7Brcrwp/85nZIdoQQVABxxuFuG2BambD ewgnJpISCxEX
uy54+y2a2GiLXTVxe73qfebQI+Kub5RvGxELcTGetTK6vvOrKx+WRpDLq6RB /WDTRCd5Q0JM
7DFSE9ZzV1YtPIPRwlSdx6jn/r7UhOvCTZ6p9LRIsC7sr+oZCVsu42xJasIa +XwGtK2Cc7CS
NvaDdMHFuq6OW4lmV5cbC6QlMMinU9lDri8ylqAQqacAQ0ugQ72Om4QmruYZ ZkpH3Z7xvk0a
CBGxGl06vVG+bUTsTtvdLm7MVR35cII1FvyqpTrjabnYGpERnOrJLF3Z50Ua i3WuVfpCe5Eq
YJIeIWRhWbVY55yvV3uEDebXULjayDY4GrE7x2TYvgqZkRefyNOKZMXGeHyt m+ONEfEHxxEL
XSiOo7lyq1m9EbGnIjL8kBLQxJs0ce84t/2FQ4+I23siz9zh80Mtbj9P7e4y VL9ycBUIgEAK
AoiIu4owP19HxCnazBVie5luGFYNbrg6MCzmE3siCrcfjDswjwbw/5ADJtZH iTpeg4gYXRAE
QAAEggQQEXccU8TpMiLGXxAAARDYFoE+StTxmmOLiDu6j9NBAARAID0BCHH6 NoAFIAACIycA
IR55B4D7IAAC6QlAiNO3ASwAARAYOQEI8cg7ANwHARBITwBCnL4NYAEIgMDI CUCIR94B4D4I
gEB6AhDi9G0AC0AABEZOAEI88g4A90EABNITgBCnbwNYAAIgMHICEOKRdwC4 DwIgkJ4AhDh9
G8ACEACBkROAEI+8A8B9EACB9AQgxOnbABaAAAiMnACEeOQdAO6DAAikJwAh Tt8GsAAEQGDk
BCDEI+8AcB8EQCA9AQhx+jaABSAAAiMnACEeeQeA+yAAAukJQIjTtwEsAAEQ GDmB/wERRVr7
uC6H7wAAAABJRU5ErkJggg==
--------------000403060605060607090900--

--------------000601080500080903080709--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517308 is a reply to message #517295] Fri, 26 February 2010 16:56 Go to previous messageGo to next message
Paul E. Keyser is currently offline Paul E. KeyserFriend
Messages: 878
Registered: July 2009
Senior Member
Thanks for very prompt reply, but I still dunno what is the problem.

Ed Merks wrote:
> Paul,
>
> Comments below.
>

>> I have a small model, three interfaces with a total of eight methods
>> among them; the model is written in annotated Java, and uses only the
>> annotation "@model", twice with "containment=\"true\"" (I have not yet
>> been able to find any explanation of the annotations, so all I am
>> doing is copying from the few examples.)
> The Refcard is very handy: http://refcardz.dzone.com/refcardz/essential-emf
>>
Yep, that is impressively compact, and someone (you, I'd guess?) did a
lot of work; I've signed up & downloaded it.

I do not, however, know enough EMF to interpret what I see on pp. 5-6
where the annotations are listed (e.g., for "containment" I read "The
containment attribute of the EReference is set to the specified value."
which tells me nothing). So, it is possible that my annotations are
bogus. Though I don't see how that would explain generation working fine
and re-generation always failing.

>> The little model generates fine, i.e., without errors.
>>
>> Then I make a change, and want to regenerate. I was unable to discover
>> from the docco (incl. FAQ) how to regenerate, but from posts on this
>> newsgroup ("How to regenerate the .genmodel from the java interfaces?"
>> [2003] and "Best practice to change annotated Java and regenerate
>> model code" [2006] and "regenerate ecore after schema changes" [2009])
>> I see that the standard method is to select the FOO.genmodel file in
>> the explorer, context-menu -> reload -> follow the wizard.
>>
BTW, regarding the ref-card, on p. 1, it is only because I now know that
"reload" means "regenerate" that I can see where that step is being
described. If I were reading that card without already knowing that, I
would not have seen that the answer to "how to re-generate?" is to
"perform a reload" ... Newbies to a system are very easily confused by
changes of terminology -- and of course people familiar with the system
probably do not even notice that there is a change.


> It looks like an EDataType was created for presenting java.lang.Class.
> Likely you already have such an EDataType but it's called Class whereas
> this new on is Class_.
>>
Um -- I don't have any idea what that means, sorry. I didn't call
anything at all in any of my interfaces by the name of either "Class*"
or "Class_*".

>>
>> So far, the only way I have found that works is to keep a separate
>> copy of the interfaces, and when I need to regen, just delete
>> *everything* and start over. Surely there is a better way? ...
> I would have expected your other EDataType to have been matched, but
> without more context (a more complete example), I'm not really sure
> what's wrong.
>
I can attach the three little interfaces if that would help?

> Often what's useful is to fix problems directly in your Ecore model
> (make that feature use the other EDataType named Class, or reuse
> EJavaClass from the Ecore model),

Uh -- this also I do not understand at all. One implication seems to be
that despite the generation succeeding, there must be something wrong
with the annotated java -- is that what you meant? It could well be, but
then why doesn't the system raise an error?

-Paul
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517318 is a reply to message #517308] Fri, 26 February 2010 22:13 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------020701040603050809030406
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Paul,

Comments below.

Paul E. Keyser wrote:
> Thanks for very prompt reply, but I still dunno what is the problem.
>
> Ed Merks wrote:
>> Paul,
>>
>> Comments below.
>>
>
>>> I have a small model, three interfaces with a total of eight methods
>>> among them; the model is written in annotated Java, and uses only
>>> the annotation "@model", twice with "containment=\"true\"" (I have
>>> not yet been able to find any explanation of the annotations, so all
>>> I am doing is copying from the few examples.)
>> The Refcard is very handy:
>> http://refcardz.dzone.com/refcardz/essential-emf
>>>
> Yep, that is impressively compact, and someone (you, I'd guess?) did a
> lot of work; I've signed up & downloaded it.
>
> I do not, however, know enough EMF to interpret what I see on pp. 5-6
> where the annotations are listed (e.g., for "containment" I read "The
> containment attribute of the EReference is set to the specified
> value." which tells me nothing).
Containment itself is defined elsewhere, i.e.,

Containment applies only for references. A containment
reference always has an implicit opposite, even if there
is no explicit opposite and that opposite is effectively a
view on EObject.eContainer(). Whenever an object
is added to a containment reference, it will be removed
from any other containment reference currently holding
it. That's because an object can only have one container,
so adding it to a new container must remove it from the
old container.

> So, it is possible that my annotations are bogus.
It's possible, but that doesn't sound like the case.
> Though I don't see how that would explain generation working fine and
> re-generation always failing.
Nope. The validator just doesn't like the names of the two classifiers
in your model. You've not shown me enough context for me ti know where
they're coming from. You'd probably be better to use Eclipse 3.5 with
EMF 2.5 if you have the choice.
>
>>> The little model generates fine, i.e., without errors.
>>>
>>> Then I make a change, and want to regenerate. I was unable to
>>> discover from the docco (incl. FAQ) how to regenerate, but from
>>> posts on this newsgroup ("How to regenerate the .genmodel from the
>>> java interfaces?" [2003] and "Best practice to change annotated Java
>>> and regenerate model code" [2006] and "regenerate ecore after schema
>>> changes" [2009]) I see that the standard method is to select the
>>> FOO.genmodel file in the explorer, context-menu -> reload -> follow
>>> the wizard.
>>>
> BTW, regarding the ref-card, on p. 1, it is only because I now know
> that "reload" means "regenerate" that I can see where that step is
> being described.
Reload means updating the Ecore and GenModel. Regenerating involves
using the GenModel to produce Java code and the rest of the artifacts.
> If I were reading that card without already knowing that, I would not
> have seen that the answer to "how to re-generate?" is to "perform a
> reload" ... Newbies to a system are very easily confused by changes of
> terminology -- and of course people familiar with the system probably
> do not even notice that there is a change.
Yep, it's hard to know what will confuse people. I know that if someone
gives me a simple set of instructions, I inevitably find a way to make
them *not *work.
>
>
>> It looks like an EDataType was created for presenting
>> java.lang.Class. Likely you already have such an EDataType but it's
>> called Class whereas this new on is Class_.
>>>
> Um -- I don't have any idea what that means, sorry. I didn't call
> anything at all in any of my interfaces by the name of either "Class*"
> or "Class_*".
Have you looked at your Ecore model though? If you read the
introductory overview you'd have been a bit familiarized with the
context of data types. No doubt you're using java.lang.Class in one of
the features you marked with @model. An EDataType is need in the Ecore
model to wrap that Java class. Apparently two have been created. I do
recall a bug like this in older versions of the converter.
>
>>>
>>> So far, the only way I have found that works is to keep a separate
>>> copy of the interfaces, and when I need to regen, just delete
>>> *everything* and start over. Surely there is a better way? ...
>> I would have expected your other EDataType to have been matched, but
>> without more context (a more complete example), I'm not really sure
>> what's wrong.
>>
> I can attach the three little interfaces if that would help?
Better yet, export your project to a zip file and attach that.
>
>> Often what's useful is to fix problems directly in your Ecore model
>> (make that feature use the other EDataType named Class, or reuse
>> EJavaClass from the Ecore model),
>
> Uh -- this also I do not understand at all.
It's probably a good idea to review some of the introductory material. E.g.,

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse .emf.doc/references/overview/EMF.html

> One implication seems to be that despite the generation succeeding,
> there must be something wrong with the annotated java -- is that what
> you meant? It could well be, but then why doesn't the system raise an
> error?
There could well be a bug. If you have an EDataType for java.lang.Class
already, it should be reused. That sounds like a vaguely familiar bug.
How come you're using 3.4?
>
> -Paul

--------------020701040603050809030406
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Paul,<br>
<br>
Comments below.<br>
<br>
Paul E. Keyser wrote:
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite">Thanks
for very prompt reply, but I still dunno what is the problem.
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Paul,
<br>
<br>
Comments below.
<br>
<br>
</blockquote>
<br>
<blockquote type="cite">
<blockquote type="cite">I have a small model, three interfaces with
a total of eight methods among them; the model is written in annotated
Java, and uses only the annotation "@model", twice with
"containment=\"true\"" (I have not yet been able to find any
explanation of the annotations, so all I am doing is copying from the
few examples.)
<br>
</blockquote>
The Refcard is very handy:
<a class="moz-txt-link-freetext" href="http://refcardz.dzone.com/refcardz/essential-emf">http://refcardz.dzone.com/refcardz/essential-emf</a>
<br>
<blockquote type="cite"><br>
</blockquote>
</blockquote>
Yep, that is impressively compact, and someone (you, I'd guess?) did a
lot of work; I've signed up &amp; downloaded it.
<br>
<br>
I do not, however, know enough EMF to interpret what I see on pp. 5-6
where the annotations are listed (e.g., for "containment" I read "The
containment attribute of the EReference is set to the specified value."
which tells me nothing).</blockquote>
Containment itself is defined elsewhere, i.e.,<br>
<blockquote>Containment applies only for references. A containment<br>
reference always has an implicit opposite, even if there<br>
is no explicit opposite and that opposite is effectively a<br>
view on EObject.eContainer(). Whenever an object<br>
is added to a containment reference, it will be removed<br>
from any other containment reference currently holding<br>
it. That&#8217;s because an object can only have one container,<br>
so adding it to a new container must remove it from the<br>
old container.<br>
</blockquote>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite"> So,
it is possible that my annotations are bogus. </blockquote>
It's possible, but that doesn't sound like the case.<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite">Though
I don't see how that would explain generation working fine and
re-generation always failing.
<br>
</blockquote>
Nope.&nbsp; The validator just doesn't like the names of the two classifiers
in your model. You've not shown me enough context for me ti know where
they're coming from.&nbsp; You'd probably be better to use Eclipse 3.5 with
EMF 2.5 if you have the choice.<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite"><br>
<blockquote type="cite">
<blockquote type="cite">The little model generates fine, i.e.,
without errors.
<br>
<br>
Then I make a change, and want to regenerate. I was unable to discover
from the docco (incl. FAQ) how to regenerate, but from posts on this
newsgroup ("How to regenerate the .genmodel from the java interfaces?"
[2003] and "Best practice to change annotated Java and regenerate model
code" [2006] and "regenerate ecore after schema changes" [2009]) I see
that the standard method is to select the FOO.genmodel file in the
explorer, context-menu -&gt; reload -&gt; follow the wizard.
<br>
<br>
</blockquote>
</blockquote>
BTW, regarding the ref-card, on p. 1, it is only because I now know
that "reload" means "regenerate" that I can see where that step is
being described. </blockquote>
Reload means updating the Ecore and GenModel.&nbsp; Regenerating involves
using the GenModel to produce Java code and the rest of the artifacts.<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite">If I
were reading that card without already knowing that, I would not have
seen that the answer to "how to re-generate?" is to "perform a reload"
.... Newbies to a system are very easily confused by changes of
terminology -- and of course people familiar with the system probably
do not even notice that there is a change.
<br>
</blockquote>
Yep, it's hard to know what will confuse people.&nbsp; I know that if
someone gives me a simple set of instructions, I inevitably find a way
to make them <b>not </b>work.<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite"><br>
<br>
<blockquote type="cite">It looks like an EDataType was created for
presenting java.lang.Class.&nbsp; Likely you already have such an EDataType
but it's called Class whereas this new on is Class_.
<br>
<blockquote type="cite"><br>
</blockquote>
</blockquote>
Um -- I don't have any idea what that means, sorry. I didn't call
anything at all in any of my interfaces by the name of either "Class*"
or "Class_*".
<br>
</blockquote>
Have you looked at your Ecore model though?&nbsp;&nbsp; If you read the
introductory overview you'd have been a bit familiarized with the
context of data types.&nbsp; No doubt you're using java.lang.Class in one of
the features you marked with @model.&nbsp; An EDataType is need in the Ecore
model to wrap that Java class.&nbsp; Apparently two have been created. I do
recall a bug like this in older versions of the converter.<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite"><br>
<blockquote type="cite">
<blockquote type="cite"><br>
So far, the only way I have found that works is to keep a separate copy
of the interfaces, and when I need to regen, just delete *everything*
and start over. Surely there is a better way? ...
<br>
</blockquote>
I would have expected your other EDataType to have been matched, but
without more context (a more complete example), I'm not really sure
what's wrong.
<br>
<br>
</blockquote>
I can attach the three little interfaces if that would help?
<br>
</blockquote>
Better yet, export your project to a zip file and attach that.<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite"><br>
<blockquote type="cite">Often what's useful is to fix problems
directly in your Ecore model (make that feature use the other EDataType
named Class, or reuse EJavaClass from the Ecore model), </blockquote>
<br>
Uh -- this also I do not understand at all. </blockquote>
It's probably a good idea to review some of the introductory material.
E.g.,<br>
<blockquote>&nbsp;<a
href=" http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse .emf.doc/references/overview/EMF.html"> http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse .emf.doc/references/overview/EMF.html</a><br>
</blockquote>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite">One
implication seems to be that despite the generation succeeding, there
must be something wrong with the annotated java -- is that what you
meant? It could well be, but then why doesn't the system raise an
error?
<br>
</blockquote>
There could well be a bug.&nbsp; If you have an EDataType for
java.lang.Class already, it should be reused.&nbsp; That sounds like a
vaguely familiar bug.&nbsp; How come you're using 3.4?<br>
<blockquote cite="mid:hm9fpt$4jv$1@build.eclipse.org" type="cite"><br>
-Paul
<br>
</blockquote>
</body>
</html>

--------------020701040603050809030406--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517334 is a reply to message #517318] Sat, 27 February 2010 00:11 Go to previous messageGo to next message
Paul E. Keyser is currently offline Paul E. KeyserFriend
Messages: 878
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080704030407060801010706
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Ed --

> You'd probably be better to use Eclipse 3.5 with
> EMF 2.5 if you have the choice.
....
> How come you're using 3.4?

Why 3.4? Well, er, I'm doing all this inside the company tool, built on
Eclipse, and that's where they are. So, no real prospect of migrating my
work to 3.5 ... until the tool does, and I am well below any level that
would have any influence on that.

>> BTW, regarding the ref-card, on p. 1, it is only because I now know
>> that "reload" means "regenerate" that I can see where that step is
>> being described.
> Reload means updating the Ecore and GenModel. Regenerating involves
> using the GenModel to produce Java code and the rest of the artifacts.

Seems like maybe my problem is a confusion about when/how I want to
"reload" versus "regenerate" ... At this point I no longer know why I
would do which. What I intend is to make a change in the interface and
"re-create" whatever stuff I need to recreate.


I attach several zips of the com.xyz.pqr.monitor project in different
states:

1) when I have just created the interfaces -- the Eclipse exporter
failed to create the empty "model" directory (I think I recall this is a
known bug/feature)

2) after I have created the EMF model -- if I "reload" (context-menu of
the FOO.genmodel -> Reload) after this step, no problems

3) after I have "generated": open the FOO.genmodel in its editor, the
one called "EMF Generator" in the UI, then context-menu on the root
element of the tree, -> "Generate Model" -- if I "reload" (context-menu
of the FOO.genmodel -> Reload) after this step, the problem occurs

I did select "Annotated Java" as the "Model Importer" when doing a
"Reload" -- since that's what I started with and I am *re*-loading --
but maybe the system expects me to reload from the ECore model? (But I
would expect that the ECore model after I would have changed the
interfaces would be out of date, so that I wouldn't want to generate
from the ECore model ...)

4) after the failed reload, with the extra Class_ stuff

thanks,
Paul


--------------080704030407060801010706
Content-Type: application/x-zip-compressed;
name="com.xyz.pqr.monitor-4.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="com.xyz.pqr.monitor-4.zip"

UEsDBBQACAAIAKSYWjwAAAAAAAAAAAAAAAAeAAAAY29tLnh5ei5wcXIubW9u aXRvci8uY2xh
c3NwYXRonZBPTwIxEMXPmvgdNr0zKxfjYVdizJpAIhhYvZLSTpaROi3TlsC3 B/8QjQkcvM2b
/Oa9l6kG23dXbFAiea5VH65VgWy8Je5q9dI+9m7V4O7qsjJOxxh0Wh7ExY9C TrIrVsS2VlGM
Kj6WX2N5mjSej6SXDtA4ChHhzSZwOrNZHtJhNG3mD5Nxez8cN9PyL0ecUFg7 sLjIHWT6vkSB
WdJstdjXp3YXsBzpjZ41vT7c/KNSsAjGC4LgOpOgfXa5I47nrHxOIaej24L4 E67K3y/cA1BL
Bwj0pbHS0AAAAHgBAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAABwAAABj b20ueHl6LnBx
ci5tb25pdG9yLy5wcm9qZWN0vZLBSgMxEIbPFnyHsncTvfWQbqEVb4pQfYCY jGvKZhIn2VJ9
epM0Ky6l4EG8zf/P/PmGIWJ1sP18DxSMw2Vzw66bOaBy2mC3bJ6f7q4Wzaq9 nAlPbgcq3kJQ
ZHxM08m9ECgttMpZdvj4ZP6dmHVooiPBSyePpK4FjK3gY5Xd+l4ogk/Uy2B6 vfWgsqpyk6IS
dXEq1VHHQPXGB2A7HZlylAq5lyUAP1ZICUndkNmhaj41BD+h/IrrNbB7ieYV Qlz/L3ar3sDK
P4FWZzx54sWBoE4fxflrH/t5gTJ3LpNXfuyHzuDDSWCsM/H7L0x/2hdQSwcI 1pkFKu8AAACo
AgAAUEsDBBQACAAIAKSYWjwAAAAAAAAAAAAAAAAoAAAAY29tLnh5ei5wcXIu bW9uaXRvci9N
RVRBLUlORi9NQU5JRkVTVC5NRnWRPU/DMBCG90j5D17YiEUZGFx1AJQFURRR id11ruGEP9Kz
HSX59eSjCgGVzfbz+u7xeS8tnsCH7APIo7OCbfhdmjxFW2rI9he6wPsFvUkD gt3UOlZox81C
Dp05Oo1qTihneNv1vD4TN85icLT1aCsNYSi4CxR/bq4dVhbPWnpfyPApGF9l beloNCDXYAn0
y+HVKamxl2EqN0su8B3OEQnKvAUVx0RuGyRnDdgg2Its5CHPNvwhTfK2dhSy QqovWV1/zG2a
XDvmaGr9Hxua6jS5aGSzlWCOKg5KY+2BK0fAKdqABsYqawbmNKyHwLZBj0fU GDqxI4BJ9m+6
9eXV3DKNRxWwmQZVjL/WCaZl36XJN1BLBwh7LR7/EQEAABoCAABQSwMEFAAI AAgApJhaPAAA
AAAAAAAAAAAAADkAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6 L3Bxci9tb25p
dG9yL0JpbmRpbmcuY2xhc3Ntj81qAkEQhKvVOP4FvIfcI4INXj0ZNCfBg5dc Z3c7y8jujI5j
MHm0HHwAH0qcxQgGcmgoiq+aqtP55whgjEeFGuEpdSUfvr55s/VcOmuC8/xq bGZsrtAg9Nf6
U3Ohbc7LZC1pUGgSnp3PWdLCbHbCUn5E7bzw/IoQVHJ9QRi8DBb38GGX8ftq Ni+kFBtm0dZe
B+PshNDWIXiT7IMQhv/npjfib7KzcnufypspYrT3239UVY9lCfV4D3F1LQ5S aKEa1kYnOoRu
5aN3AVBLBwhxqPSLywAAABgBAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAA ADUAAABjb20u
eHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9tb25pdG9yL0tleS5j bGFzc2WPzWrC
QBSFz1htotYfaKkr9+qiF7pV3IhuKnSRJ5iGMYwkM3EyiumjdeED+FDFG11I 6eLC4Zzvwjnn
358TgHf0AtQEBrHN6Fh+U75zlFmjvXX0ocoAdYH+Vh4kpdIk9Pm1VbEP8Cgw tC4hFac6LxSp
bMPaOkXLGyJQNzJTAi+j8fr+H3mnTTLl1Jc5p89/0kUqi4LDZqQTI/3eMfH6 n5hN5gy1Irt3
sVrplKmQu75VGBcTeOBr8Loalw8QohrRRIvdduXiiVXnqroXUEsHCAn80t7L AAAACAEAAFBL
AwQUAAgACACkmFo8AAAAAAAAAAAAAAAAQAAAAGNvbS54eXoucHFyLm1vbml0 b3IvYmluL2Nv
bS94eXovcHFyL21vbml0b3IvTW9uaXRvckZhY3RvcnkuY2xhc3ONUl1LAkEU PWPp6qZl2beV
ERGK0ECvRVCiIJkFSu/jelu2dndss6j+VfQSPfQD+lHR3XVfir4WZs7M2XPP zL1z395fXgHs
YN1AQmDD0p68u3+Qg6tAetp3hjqQxyNsKIvnewPjAvkLdaukq3xbnvQuyBoa SAms6cCWZLnO
4Jokeee81gHJehwpkKFmu9M9aNfqAputv8/aFUjvsR9z+wJj5cqZwHhN98lE DlMGJgWq37k4
3sD9YtVkKos8ptkh9BPYKlf+c4UMBApZGEgLTLUcn9o3Xo+Cruq5JDDT0pZy z1TghPuYzFkB
qSEdOn7f8W2B0g8nxQLOMjOKOCIuUvEHNf9kZX6kjC/ZIU5k4/dEWMNx0zYN Y+JUWZfKpj8r
EOs42Ozom8CihhNmV/hcoO2wFfjx+X14JHkshcXipkrynIHJzATvqozhZzwj +4SZR14mMMuz
yQgsI4UC5iI27LB5LES4yHYhLqMY4QpWWcO9FilLH1BLBwhS1IJvcwEAAMAC AABQSwMEFAAI
AAgApJhaPAAAAAAAAAAAAAAAAEkAAABjb20ueHl6LnBxci5tb25pdG9yL2Jp bi9jb20veHl6
L3Bxci9tb25pdG9yL01vbml0b3JQYWNrYWdlJExpdGVyYWxzLmNsYXNzhVLL btNAFD3TpnGc
TElpoRAepS0BEvoYxLYIqU0Dsuo6CFuVWKBq4g6Wi2MH20WEvwJWsIAtYsma NZ+BuOMEJBal
ljznXJ/7HN9vvz59BnAf9wxMMaz5yUC8Gb0Vw1epGCRxmCep2B/jE+m/lIFq 2mGuUhllBkoM
c8fytRSRjAPR6x8rP2cwdixn13IeMyzZSRoI5UfhMFNCDV4QT1Ilup1IZtkW w/Re9xlDbb/n
WF7v6aHb9RhmOva26zKsnBa8K3PpjYaK4isPSKbmHlKqVvuAodRJjpSJOs4b mGNYPXscjnks
MJjKclxv2+l0GZr22WFbNSpykWMRlxiqgcp3wvgojAOG5Vb7/2ObYGhwzKCs c1zluKZzlCnH
nhppcYnDGIvLHCtanCVxUt9Vufa5yVEZ+9ziuI07NAH5FAUOST29h7+3p7O0 OUxUGep2GCvn
ZNBXqSf7kWKYtxNfRgcyDbU9+Vh1k5PUV49CbSz8eyGbehEYuBXHKi36UBn9 oD/LUmZUbpo2
rYSGHp1YQ09ZYGWC1AshRaEGTjhL1nNC/Wy8x7mPuMDwAZcLekXT6wW9oelq QZuatt5RwBTu
0rlIxYCvlPA78R90nT+xji9YKzz0u16cG9gkrEK3WYcom78BUEsHCOPDFt3g AQAAGQMAAFBL
AwQUAAgACACkmFo8AAAAAAAAAAAAAAAAQAAAAGNvbS54eXoucHFyLm1vbml0 b3IvYmluL2Nv
bS94eXovcHFyL21vbml0b3IvTW9uaXRvclBhY2thZ2UuY2xhc3ONVFtT00AU /lagaUuRm6hV
RG4iiHa9X8BxppTUydCmTBMYfeosYa3BNKlpcKz/yvHF8cEf4I9yPBsjlA4M tpM95zv7nbPn
ssmv3z9+AniIdQ0XGOadoMU/d7/w9seQtwLfjYKQV//KbeF8EE2pYZBh7EB8 EtwTfpPX9g6k
E2lIMcwEYZNLx3PbHcll6x3pQSi5nngyDEmzWNUZJirH/lYUun5znWGkFPid SPjRrvAOZRrD
DFqSAmnStBo7dSONiwxz76OovcY5PyXbQnwmQ1Y5bNf1svEmjXGGSeIWiFsg buEobEYapmUX
zRIltVg5v3hKU9swzE3DfM3AjAFqHRimElOjrBftnbreKNV2TJthYEt/qyiM YZzU/u3has00
7Fq9Yem2olH/8z2mfvpQqVK0LEUcYEi/pDZTZq/olOWVXYbBUrAvs1jEkoZb DKun1eK22l5f
QQaZcriNZYqg4jEsLa/8TyMyVPedHCYwyTBacX1pHrb2ZGiLPU+qAQeO8HZF 6CqcGLNNGW24
/j6Nm2GWjjnjupQ80elQp1PE35JduhmkJMdbklLMEI5JDYaFs+NsikjY3bYa 2vhxhLJwaO2e
W2jCI+esFRyGjiy7qojJk30oqIvMkDN8X4ZxTrKj4cUZAzjpu1hxIxkKr0Pj /KfSW0QTpWcI
w8hDQ5r0jLocyBLO9eARwqM9eIwwjYP0PC5h6sh+mfCVPny1B+fpf61v/3oP niZ8o29/pgff
RIqymMUcWebJskpS/bTvWPiGla8xaZXWLElgnejTuBtb1afkHgqx5Im8n8gH 9FFS8hEex9wn
8foUz+JIDM/pWUtl/gBQSwcIFGd4vnACAADBBAAAUEsDBBQACAAIAKSYWjwA AAAAAAAAAAAA
AAA8AAAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIvbW9u aXRvci9Nb25p
dG9yU2V0LmNsYXNzpVJLS8NAEJ6tsWnro/VxVG9Ce3HAm0SKFOrFiIeANw9p MoatSbZuNsX4
0zz4A/qjxEmDCpJKwcMyMzvfPL9ZfLy9A8A5HNrQEHASqARfilecPWtMVCqN 0nhbSY+MDZaA
3tSf+xj7aYR3kykF/NsUcKx0hBTEcpYRUvLIutKE4woiwHqiIhNw2h+4v5Fc k0thbmSMY1dm
xhHQ9mSU+ibXJOBqnZhLt671GyqcIafb8MNQwEV/JajWMZJpKNPIGdwLaGpK 1Jy7OVqdpMS1
JlUQzzr8A7nWEh7+laB+I18zlVvpeCrXAV3LmOfq/tB8VjLMnPLe+G3yfVjM uw0tttpsNaDD
9hZsQ3kPO7C7lF3offv3WNtfagefUEsHCOpQ3wgXAQAAYgIAAFBLAwQUAAgA CACkmFo8AAAA
AAAAAAAAAAAAQgAAAGNvbS54eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXov cHFyL21vbml0
b3IvaW1wbC9CaW5kaW5nSW1wbC5jbGFzc41SW2sTQRT+Jt1mk+1qa7232tY2 amOxC/VFiAg2
iRKIqRAt+jjZjHHq3pydSPRXqS8FBX33R4lnLymhLFqWnXPmzPedy8f5/ef7 TwB7uG2ixFBz
Q9+ZfPrsRB+U44eB1KFypB95zr4MhjIYdcg3YTDcCdXIEa4no1g4wn9LfqhE hm0fDI6EqzNs
mWG1KGuekKH8SFLkMcPcdv2QwWiGQ2FhDgs2TFQYFrsyEL2xPxDqJR94gmG5 G7rcO+RKJvc8
aOh3Mqa+umcZocFgi77mWrpNj8fE29iud4tHaqeIRhUXcdnEJYadogrPM/uC u+/5SNS6UgvF
vdjGFVxlMPc7vVan94xh7d9VCDqYClM/1dIkHjqv+622J3wR6BaFuaIJwqBh YpXh7hH/yB2P
ByPnVRCPoyhUWgwPIpGB2hNXRIljYQULDFWutZKDsSbtdoorPZkiZmsxWP1w rFzxVCayL82o
upt0QMp2gkCodB4Rm9hi2Py/YgyVqWa4BVoG+udpMw36aA3oVqXbA7KM7Py9 Y1hfySnBptMi
C2wRtIZz5NkZCOexmKZYwoU8wW6ewPiG5S8n/HIauz/DNXIuwzVcz7l7hE7e Kj+w8uYYN36d
4j+c4VdO+DexdkZ+s4Bfwnp6bpAoyZyMtnATtXL1L1BLBwifPO3w7AEAALkD AABQSwMEFAAI
AAgApJhaPAAAAAAAAAAAAAAAAD4AAABjb20ueHl6LnBxci5tb25pdG9yL2Jp bi9jb20veHl6
L3Bxci9tb25pdG9yL2ltcGwvS2V5SW1wbC5jbGFzc41SXU/UQBQ9s5Ttbqki H4Ki4oLIx5rQ
BOPTEmJC1oRQxWSRhMfZMtTBtlOns4b1V6kvJJrouz/KeNstiLoR03TuvdNz zp17pt9/fP4K
YAMrNioMjUDF3mn/vZe+1V6sEmmU9mScRt6u6O9QtGExLCsdeiKIZJoJT8TH lCstBrj2XvdE
BGaArTLMDlMkMYbqpqRqi2Fkde2AwdpWR8LBCMZc2KgxjPsyES96cVfofd6N BMOkrwIeHXAt
87rctMxrmTEs+lcdvcXgio7hRgbbEc+I01hd84eP0i4QrTqmcNPGNMOjYerP B/ElD97wUCz5
0gjNo8zFDGZprN32IcP8vzvQ+RMe0xjTdJYT/o57EU9Cr2O0TMKWjTsMK7+2 XyVZL02VNuJo
L6VeRqqkfRqINE8czGEs96Ofkt7Ub3rnzeodGSbc9DQhZv5GbDa3COR0VE8H 4pnM7XVL99Zz
KJU7SSJ0ARaZjYdk/NXOMNTOvcECyBl6R+mvs+ihq6aqTtVjioziaPMMzkdK KnBpdSgCDYIu
4Bpl7gCE6xgvJG5gohRYLwWsT5j8cMGvFnvNS1yr5DLcwu2Su0Ho/FvtC+YO z3D32x/8J5f4
tQv+PcwT6n6BbfyXztMhOhWaLF8X8aCYly4PS1iu1n8CUEsHCMPjnEPoAQAA nQMAAFBLAwQU
AAgACACkmFo8AAAAAAAAAAAAAAAASQAAAGNvbS54eXoucHFyLm1vbml0b3Iv YmluL2NvbS94
eXovcHFyL21vbml0b3IvaW1wbC9Nb25pdG9yRmFjdG9yeUltcGwuY2xhc3Ot Vml3E1UYfm5b
MkkYFgtlUZRYKm1TIO5bUOiKlVKQ1iqKyzS9pAOTSZxMKrjv+4b7vn3xHD9V PtCjnKN88oM/
yuNz70yTmGZaXHJOZubOvO/zPvfd7vvHn7/8CuB6fG+gRaAvVyxkTp95IlN6 zMsUiq7tF72M
XSg5mUPBYsTK8XpmlK8MtAl0F718RuYcu1SWGVk4weeiJwOV4b8JxwQ6m6H/ HVigzeZaYGdP
79jK4lnKDxZnZAKrscaAGUlo+IiVO2XlZddRmbfLvnfGxFqsE4iPjk9M9o8P Dgv0jl2iajaO
ywSunvX90u2ZTKYJyz1aczVJbTCxER0Cq/PSH67u8caesZPWnJVxLDefmfA9 281nI80vbjWB
zdhqYItAT3PJklPJ225mWC2O6Ge1ycsF0hHQSxWySRrZZuJKXCXQ6hTzAh31 XA9Pn5Q5P9s7
lYRAysTV6BSI7VUhu5MKPb1TBroENtQ0hk/nZMm3i67AujHbleOVwrT0Jq1p Rwq0jxVzljNl
ebZahy8v82dlY1J0XVouJGTNWsdYExKUWTPhM56HrJI2l0QrUkwif9YuC+xu aiYi/4kVy3nS
8sl5X09U9AYdq1yODm7o0NWswBsN3CCwbTkcEzfhZjqSyaTX9glbeqND2vOj KiS3mrgNt3OT
AbEB251hbglsj6imUCCrdPeauAOMYiLQPSjp9ysi9PhR6+w30Y8BgfWBTuik CckC7ly+gCmT
NUDqnbUwjTqOzFtOv5evFKTrV6NmYERgc2PFDFRsZ0Z6cdzF8pqclamcckmq O4lh3K1S82BD
8i4W2pTy9iET4zgsYNCX41aBMdxIwkuEFdg9Jo5igtG2SiXpzjBNmpZvBD92 i3vpyO6UXU65
RT9lpeYsx54J2OoAKhv3mbhf0Yn7xUA7iUHcTZtSB1rgquUTrBqCEa9YCBAE DkRm5ZDlW5Nn
SjK7/Eaq2fmIys5HmUcr4KmcmDaRA73UERDS/OpZjfxXVsGO4zghsFbFfYZq PtVS3YroIdUG
FpHYplc0JmCq/mWrRuRUdFdaYp41lyu6c9LzJ4v/zruLnbNZigkUTZRQYA6G VvQWa6bW2G7Z
t9ycbMIwBDbAmuuKbF9hoau+lURZtTxjerE57IzuenVqtMCGkIoUZUsI0E8r 9NZTqn10RiOH
4kR9hof2Sm2X3SIAf1qBJwt1faZ5l2mirM6HCTvvWn7Fow9H/5c03Ju+M6vO kJdNHMcramy5
pIoy8BpTqgFL4bxhwsGbDTjRucPTkv0r3Gc4p6w4O4VyOvHeNfEezobzSRVA 9e7lhyHu4IPl
B7oqWJLQtcWQLHkyx77ADrH1aMX17YKcsss2z+J+l/3RUg2f/W5T3WZrOhyC 3sdnJj7HF6rM
a8PbsgPCImeanyhWvJwcsdWgsXnpmb5HGWVDGHVd6emgyLKBb9l+l3cHG/fi dMiDh+nP/yrO
1SYSMBDnKsHV82jhE9B1Dsn29T+jvQUXsepg+nesSc8fPIdN6fO44gLEsQVs n9eSGzg97iDa
NXy+HDFed3Ck60I732xEDzrQi23ow05+2UT0tZTp5nvwi8FvaT718c/hftLA DoOgHNlCOjfw
roysSi9g1098aNF2kryDg0Ybbta4ZiCE3djDu0AG14YA3/Gtkr2n72dcJ/Aj H2kz+LVoxsB2
tV/u65Z5XrLqsm/+AgaPXcDwsfYDCxil7pjAeRxpn+TlPKYWcOw3KgWb3qTd uA8p7Oe6nxsa
IIGh6oZpPCSmnh7Ag6SmNhxDW6qtrY2r43gopHuWWK2899PkwyHdrdpS8G9P 9+06D6tGTwb0
8tH01mrFw9hC49sxoWmlAiNVWv2Yha192I+TOEXSimAbWrbE+NZB4R/Rc/85 vYdJ71HSm16R
3mPwGuhxmgzpDfCL8nfyAspM0MpY33xDyjhM9EJdZJKhjThXc3hcZxsnzKV4 p4n3xFK8OWo+
HoH3JJ7SeJw+l+I9Tbxnl+I9R83nI/Ce4xeFx8mFqxe05osa9wCflMcS6V0L eOkiXq3BxrTb
3qhza6Lq1kTVrYkw6kId8SHZoRA0pkBfb0T8oA4xVkWMVRFjYaAE3sLbIeL1 YTHHWWHvXMT7
jZhf1tVyPMRM4EPqt+Ijjf9xKPuJ/sKq1bJMhXP4tBHtB43Wov9f6utX+Fq7 lEcJvsF3scRf
UEsHCHTT7o9eBgAAWhAAAFBLAwQUAAgACACkmFo8AAAAAAAAAAAAAAAASQAA AGNvbS54eXou
cHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0b3IvaW1wbC9Nb25p dG9yUGFja2Fn
ZUltcGwuY2xhc3OlV3t4HFUV/93dTXaSTNtkKPZJbUOabrbJbgmtYlOgIUlh 7SatTZpAtOJk
M0mnze6G2UmbpPIQFcS3+Cz4FkVBtE3p1oBCEREtgohvpT5QfP2jfn5+fr79 3dnZR9LdJOB+
3+zce+ecc3/3nN85994z/3ngIQDN+IMfHoGNsWQ8PD4xGR69zgrHkwnTTlph Mz46Eu7MdHbr
sYP6sBHhkB8+gQ1JazhsxEbM0ZQRNuJDbCctI6PSMUO4XKC2mPWZhgUWDZiJ QTMx3NE2oqdS
AmuixafIfG8RqDhoTGSFq12r3YadHVock++Odt3WeyZGOcG6UgazIrSpmKkI DRmDAqKfU5ip
NsvQnf6izCdTHzEnZV/ZRkscuEzAG2joFfC1JQeNCgicr2IRFgssiZoJo2ss PmBYPfrACCFo
0WRMH+nVLVP23cHybY4ZBSuJcb9tj24Nh8NFPBZy4FZgNdb4ccHcXt2hx/g/ oeKlWMtlGJGu
7p7WrrYOgbro/GotlfCiVsVyXCiwJRA9oB/SwyN6YjjcbVsMUUspT2b1G3ql H9ar8EORrQ0q
KjKtBhWVmdZGFVVQZatJxRIslq2wimrpOZ+932QIm4piLUFLRs8nHSlQH2iY a5GuTksFtuDl
frysJJmzPK7bYwybKVu68xK8gpHPe7OhlCdmq7ZUcbYWFdtwqUDVMGmaI/7m Ig6ezy4jJHC5
jJBWgVa0+XGFwMpCnfHUYPjq7nZXXhKhXWB1tLQIEbZih4orcRU5abhZtDZQ EkomDyWQV6rY
CY3EjznJ4hpsSyZsI2GnpESnii4pscLMpVARqd0qXiWlyocsw5ika2rs/cY5 daLbZrNTH3XS
x4+9LBVzO0ugkg6/IlNeaJ2dncYELbHRmasbTBP2nUVdK3Bh6XUXlIuavAWX +vOyL59iAq9V
cS1eJ3Ce5IP7IZJI2XoiRtC1pSEUGhlQEQPrkZpxfrb8rQtEFhC5IRXD2M9S 5Srnq2XdHPo5
Dyg4IOB3VyjtjaiII8GxlGF36XHaOb8Yu3sVjHLZdFOIbgrRTaECI5aKlDRS JY2kdlvGkDku
x8dUHJLjijO+d09EwTgj5ZbMw4cPh1ysIYlbsrt506ZmSXEFkyzoPdLI61Vc jxsYOn1wsEMu
YrduEahtWAL7AnN6zBwyDavlBSTrDPMtftwksKoYNVxqKriZnnM7EuubVLwZ t5C+MmuygR2c
G2QhvnMGXMD9/f3zcEPWgreouE3WguVkJ33YMWLEmajt1OGSbDOZUPA24h3I 432HinfiXUws
6dtdo0ZGTODIfJBfjNcjkTlWkZvcWcl7VNwuV7Iys5JWmxYGxmxjxlrexwKg Z7/48QGBZcVi
xcqh4EPc89mQW9YdKu7Eh5l+zsy5ilNXClmBFLF9FB/342PM9fmlVXwC/ZlS 1pFxgYJPcc9L
kF4KPi03TdJNhuFuFdegX7Y+p+Ie3Mtzh5veVxoJwzJjmQyPLITtJT1cYMqp JPfJqb6QKX8L
UKnCMUz5cbz00gukVZzA/Zlq6+RUqzU8JrnIbFhfZDqGjdEKj9kmz6JRbr+c LY0v+XGKZXFe
YRXTeIDxJYdnVa9dAweMmN3S4Lj2yyq+god4zHRys4Dspd2aJ+VCPNTQ68dp 7m1z7CXctRR8
lZzI9yW0r6now1UKvk5O8IycUjCt4JtcEjvy+xMqvoUn3TQtKH83/h/IX3yq 5gukxPZtFb0S
+3e4T1tGPHmI3P4uS75bZVJ+fJ+71awSp+CHAmVOU9r4sYqf4KfyxC5Dk9/S zJLry21oCyqe
8++LEsVZFT/Dz+U9xMm9PUYqOWbJff3SF3Des1ytcFadh45FPBTlj20CniT3 0tr5Q0fJ4Yvm
qEyF5JOyzSRWtzPpDlPeU5ade+YOyYWw9kUSVHUcZjAnleyhF+voBy+fMl4E PPIywCunR14F
nHel++Y1gO9KeWly+kvcd7XzllI10GjlPPYa+Ja/Mu8JLD3uiL3EEfLwvwc+ nnOXOaPyWZ5T
SzgwgEBQWzGFVaewLihOok7+1cu/gPwLBr0n0Sj/QnnLtQ7IKEGvJ5xGWruY drfiApzkt2ew
AZ3OjGrGPjbhIr4reLO+2J37XlqS3/qmsPQoaqawWVsxja0enEbZsXzvEYij qM7370blgxDX
nMJlpyF2+rjcKWyfBi8dfcE0InyifHYFj9G0twBqHEsxynuGhe0YQwTjBHiE 5+obsBc35aBu
wyrscaB281HgXbp6h58OFDL9XOBhviXwsuD9qDuW80i5M3hbwarL3FULWXeK KNfPVr69qPLV
RZUDs5XvLKrMHa+IcnC28l1FlV+N17jKza6yQt/uO43Vs/XvK9BXcvo7c0S7 3iVaMydvPArf
8aBPciroTUOXhAv6nEZ9MFjmNALBYHkaBsl3PBfHNcwU4GHaP82ceJRjj5HW j5NcZzjfEwUI
ml0E3Y6uUDjYlYXi6aCBMqKbJJRQFkooqJlpHAxqyTSuYzKkYUvKHXYJ2RoN Sq9pE2kc6ZPN
Ou1G7Q1eL1G/MdPfOI1beaB4q9fn4+Dbc4Pv5uB7CwfrtfdrHyzQrOdzdBof odwnZ8gJ7S63
3xmk1z+Txme7+P78Vl/TNL7IO6NvGic9ZH1jUxoPSpWA9rD2SIHpAMUf1R7z evJWA0J7PGe1
0fn+jUz/TJ/Tfyq7hDNZ+adLyrtTPKU9405RVCSofU/7gY+B/lGf49hn+/Ih PcR6ATzLiJxl
SH/B+PwSK/Acw/o8mvA7XII/kvx/xj78hYn7V9yMv+EO/J1Hqn/w7PNPHkn+ RQL8G0/ivzgr
BP4kvOSpT1SLMrFW+MUmoYjtolJ0iyoRE4uFJWrEhNAcqmzOsMClSpPo5Pzt 5Mg9eJooniO9
T9D2r/BrYp1mGXqeLV+eUh78xsmB3xKmLLQCW1gnfl9e8T9QSwcIozYQBogI AABDFAAAUEsD
BBQACAAIAKSYWjwAAAAAAAAAAAAAAABFAAAAY29tLnh5ei5wcXIubW9uaXRv ci9iaW4vY29t
L3h5ei9wcXIvbW9uaXRvci9pbXBsL01vbml0b3JTZXRJbXBsLmNsYXNzpZRv b9JQFMafCx0F
hk43nU63uc0xYVNq5quFhRgnS4hsGMElmhhzKVe8W2lrW5bhp1LfLNFE3/uh jKelw6lQSXwB
95zynN89/8r3H5+/AtjEfRUxhju61dFOeu81+52jdSxTepajyY5taHt9py68 CrkqFIY1y2lr
Qjek7QpNdN6QbTmiLy/XmodCD7UJhsVh4F9MhsS2JKfEEM/lDxiUHasl0ohj MgMVSYapqjTF
frfTFE6DNw3BMF21dG4ccEf6fvhQ8d5KlyFfHbOQIkNG1D3uSX3H4C6FLuXy 1eGFlQNFMYUZ
XFVxhWEjoqinXD/ibbFalZ5wuOFmMItrDJN7tf1Ko/bsdb3coK5E30TlHIke 5ZQdkhPdTVdq
XU9St6vS9Uieqsu2yb2uQ514OE7M9tA+PRG9YqmoYoEW4pAfc83gZlt7brpd 27YcT7RqNtXk
Scssn+jC9o005jFJw+OtFsNWbiR26A+PpNmSZrvoDz5OFTPMjQQwqM2+nGEh kkY75YiOdUy9
mB+dkH9nMiRSp0sRyrFG8Oq/AMPncVZRifjputV1dLEr/W2f+X2ZC/6waKEr pimcYIWEq6LA
sPLvRaUunK0qlkFzoM8E/TMkoPgvIHkp8h7QyeicWD9F+iMZMWToO00nsErS LC6QlemLcBFT
dCq4hMshoBAClE+Y/jCITwTPCudilTCW4TrmSHUj0N4MGJtk+ZrkF8y/OMXi tz84W+c4yQHn
FpbCHHZJHY+IfxzEL/U1YbxvLWMlZN6mWv0cslgLmdvkxyKYtYA529f8xaT3 DLlBlfmxiC8j
iTGsB/oN3A3mQ7uCe9ASqZ9QSwcINF0xO28CAADxBQAAUEsDBBQACAAIAKSY WjwAAAAAAAAA
AAAAAABOAAAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIv bW9uaXRvci91
dGlsL01vbml0b3JBZGFwdGVyRmFjdG9yeSQxLmNsYXNzlVVrU9NAFD0LtYUS oQKCoAhKxbYI
y8N3KwgMjIzFx8Awfg3pUsKkCSapWn+VzijO+MEf4I9yvLsNxalpS9ppcvfu Peeeu3d3+/vP
z18AlrCWQBfDguFU+KfaZ37y3uUVxzZ9x+VV37T4Tn2wVtJPfOFu6QYNaunF BGIMM51Qux9N
3zhiiPtHppdeoDzFaInyhC2YNLHCsJyJCs7uM8Q2nJLoBUOfhkuIJ9GNyxoS 6GfozsiAgaJp
i1fVyoFw9/QDSzAMFh1Dt/Z115TjwBmTJTAsRdSQXqQS+gzdE+umXTLtMsNW eB3BfD5bdNwy
F4ZlnniCi8ohp2gK4rbjm4c1HvDnkxjBtQRGGeajSdIwhnGGYcMVun8mKwhh yGYuKoBa4xwc
C8NnmGhbEUNCLsBLUWNYDy+e5iIVPqXhliwiVS+C4I0CxlomYOiXOs72piDh 2+FyzkMiqZrR
cFeqGq2rOmdpiJvqlI42S0kc6lXL3yCpDC8y/+UXhuMKvvlarX0kffc0zP3T +oCiIW6yQyqG
uXbdO9Y/6NzS7TIP4pN06hY1TOCmOryd6gjF39eQRY54Oh2aUPQjDUMYJpYL tDmU4KmGaaQZ
krtO1TXElimvgvHQYzUvCRh6d82yrftVlwLfdrws6hdk4YI9XKEWDGzahuV4 VPSO8I+cEoO2
bdvC3bB0zxMepkh1N93sLJWS9x1ZvfRLoIf80nqMLvoCydzsd3r8gPaVRl0Y kD41wwi3jRRZ
GtnSewWDyk9rGbAU6C1je3LfkDzF1S8NjrjCFBV+pB4T4KV1HTdonsk9Ec40 2cz0piXTbcVE
7QlnutPMtNeSKaOYaJ+FM802M71ryTRP675G1fGAaSZY7Xhu9hQLzTxM8dA8 YbL0XxyCWW6H
GcKDMMzDdphp2gEhmCctMYghr6wCnqn3ClaVd4Sez9X+YApBn79QSwcIJo7U nMMCAABWCAAA
UEsDBBQACAAIAKSYWjwAAAAAAAAAAAAAAABMAAAAY29tLnh5ei5wcXIubW9u aXRvci9iaW4v
Y29tL3h5ei9wcXIvbW9uaXRvci91dGlsL01vbml0b3JBZGFwdGVyRmFjdG9y eS5jbGFzc5VV
S1MTQRD+JglZEhaDyEN5KCJgHsCCiA+CIERQyoBaoajS27IMYTHZjZuNGq/+ Ao8evHryoPgq
tcrCk1X+KLX3QQSyQqhU7cx0z9f99Tc9k1+/v34HcAE3BfgYhhU9Lz0tP5MK jwwpr2uqqRtS
yVRz0qKzmFmTCyY35mWFFmUBAYZx3chKXMmphSKXeH5dohgElTTdVNfLkpov 5KS9sAUyMYh5
fY3n7srKQznLGfrSXrndtO6uJEODjco8UU1lgyHqCdpN2NlJwFBGzWqyWTIo 170aYZPpg2tz
y0pOUfzgpErIKQZ/NLbCEEgRzzD8iIhogCjgOMPI0dTtGw2jCScsfAvD2OG1 7oUnYyshMLSJ
EFBvzU6KqEMwhA50Cehk6D1ccBHdCJJ2fGEpszyzlJpjiKRVjS+V8qvcWJZX c6Rmc1pX5NyK
bKjW2jUGzA21SCUflTRDY8ak5ItywY3UpBZd57xuLJcLZGqNpjflx7KUk7Ws dGd1kytmMvZA
wABD9/4T44pucGnO2dWAfkRFxBCnA+OpnFwkjj3RWNU5uyh7R7IBgxgWMMTQ ddA+ERJGqEOz
3JyrtHXv/4P/a+qgbrOzpKyqiwRRDC6b3BWKujd6SFsuWYNKfVmd2rt/w7iE KwIuMwzUdjFE
XMUEQ/2avnMTx6pJ7VGeuFSVJmCSob8miqSRKRukrHXna6yeocVRblbV1lQt WwkV8zgTb2Go
+5wQt3m5Am93TDuCcLPicfO5JVfM4YxeMhQ+r1rt3OHZ98OWOPQmLmgaN+xu 4kWcpUvrp9fZ
B/vm0ixg3WWyhmxrmFbMel3o20iWPPkZjd3xzzgW/4am+zRp/ojWLbT/RGgL p96j/R1t8OM0
fTvskDEC3aLwC/TWxNGGBLowhDPkEZ1g6CEiQK9j+UNuJtgehnPoc1OXiY6P xniCcr1GXeBN
4gf6X6IzsY3+LzjP8AUJhh2nn34VHm2UHdRQAiaosEnicQ1RTNsc2pyoLgdr Nkp/VsxmUwd/
qIvRYgwXXRopl0Yk/gGtVupPGN9G8q0tl5UraDNf3xU7UokdobxTsAJO47ob cNBeE5rtj1Ha
pZHPjcEwUwPyuSdytgbkC09kqgbkKw+kDzfs7xzmaQyTr8nWAX8BUEsHCJws iZtTAwAAFQgA
AFBLAwQUAAgACACkmFo8AAAAAAAAAAAAAAAARAAAAGNvbS54eXoucHFyLm1v bml0b3IvYmlu
L2NvbS94eXovcHFyL21vbml0b3IvdXRpbC9Nb25pdG9yU3dpdGNoLmNsYXNz pVZtUxtVFH5u
krIlbAtFC620FGppQ4CGWmwVIlLS1EZCKE1sLaXVJSxhIW9NFhXH8Q/4C/QH 6OinWmdw8IPT
b53xi7/HGd+ee3cJb5vEFxh2z55z7nPOec659/LLnz/9DOA1VDT4BC5mS4XI J5ufRspPKpFC
qWjZpUpkw7bykVnnI/2xZWdXNQQEOtaMj4xI3ijmInNLa2bWFtALpWUzf8fI rhs5U+BC0gvO
RXK9JgRaohY1kwL+0OA9gUCMIEH40aZDw9FWCBzTcQQtrWjHCQ0dAueb4+ro RItAq5lIpTM3
UrG4QHvSKpqpjcKSWckYS3km2JksZY38PaNiyW9XGbBXrapAyDP5w1ywgK79 MJvlHaiRf4gR
zWQmJgl0LG0z+1mj7K4/ulxyHASuhpKlSi5iZvNWuWpGzMIK5VLFjMQd8icG kwf7QcDWtJUr
GvZGRXajKQKzaMM59GvoEzjb0FnHebzK1pmxvFElW32hwXroymMiyDYO6HgF FwXm62bi+P6X
SoP2qhnfmcNzTRAEpv9nCoqqIYxoGBY40whKx2VEmJ8ZKxVtgxNYEeivz5Yb QIJf0bkvr3Ju
c6atoKwVy6wkbqqNkpCEvi4JvSYwFkr8e85kiDd0vIlxgeMMEU9vlLkzOL3s 54BHhpxljrAz
vvGkVZUQUUxqeIsACl6ZpEXH25gS0KxqvFC2N1XGCzLjaR0x9Ai0LZsrxkbe jhlVU6LEddzC
O/RjIgInQwnvcZZNdieut3EDGcLcW1BHcn+GdBg9oIo2RpQbdKA50ZwMDXMC PV5bf9oqLlvF
nGRiXsddpJlmlhS4eoEr3seOa/dqo4b3BLq9Fs2YmzLQfR3v4wGbIQNRx2PJ Owht3gEeku0G
J27atGWcRzoe4wOOgoyza5LT2egeoIv3jtaz+2ZeJFjC0g5PZxvSxIOpYlY5 XvKI94D2r0sa
Ttdlgdu1sKeAvmb5E5Ft573UpHvKqaXknlK9DdqgPAeaE6f8gunSRiVr3rLU nbbvZrksq+dl
Fs2MHyZi8rAK/eykn/8RkH9551I6SllTz1Z+rfMt+D4R/hHBZ9BfoPUZjv8A /XsqA3iJz06+
gWE+RxDk6deBUbxMje4sxEl08d29T3OK79OO5i8uEJqyCB5vPfDhDGUfzqoE 7jI9n/QMD22j
V2BoCxee8tuvYreodeMqXpfj58aT0iWEaN+NrLuRA/JeqsUZVHF+JaKsY4ph wgIs9Wu0y5ij
AsNbGHtK8bpAamQbbMGXaAtTe+MbdIZH/Nu46cNzDA27uTm89JJGIA551J1C gjftDPNJkp1Z
HpfvqpzDTsxazlO4TU+hJJm9T97P9J1hdt21GqfcOhxbkjbJ5TH4T/2Obg3R lKaK4V1RK3JW
Fik+p3SE39We71S4PJwfCdrDv2v8mx9+jlQqPLKFO+OB04EXCKpKpfyUpowy 3fMyLSjT4iGT
knZ5GcdxPh8wsYfMf5FVPsIYz5LrMHgzLPHCyGIOy+x8DvexSouFNf4WmK7k bFH1q1rjrIoP
uVIoyeGsn5Ylovj51U4kk5Gj1K0Q0U/8Hd196laJ7meMHV13rStVl2UHY426 WE16XJMk85eg
nflDMi+J/w0+JWf2yAuOzCR5B9R6sq4KuU2t5N8nDo71Z3vG2lcr10casvvG 2ucmKuTBX0Mv
NEH/oi56rg46j/saerEJ+ld10a066LFDW78++rd10UOe6D6U1LPs4j/5G1BL BwhVjCk6DgUA
AAgNAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAACQAAABjb20ueHl6LnBx ci5tb25pdG9y
L2J1aWxkLnByb3BlcnRpZXN1jjEKAjEQRfuBuUPALTW5gAoWCltoZWmjybBG sjthkoDe3sRu
YZ3uvQfDR1ipreX4ET888x4bmhk31fWuQ0B4+En7yYbiKKmd0usbgprfyI6C WQjn4/Ww6S+n
pRZDGerr9xj+xygcSbKnhPC6S9KWx+gDaRZH0tYgJC5iSetKSaxB4JJjyT9R t1fxBVBLBwjD
uZSkjAAAAPAAAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAACcAAABjb20u eHl6LnBxci5t
b25pdG9yL21vZGVsL21vbml0b3IuZWNvcmW1Vctu2zAQvAfIPwjs2aLtXgrB SpDUbhG0aY3a
AXIrGGmtsBFJlaRf+fou9arkh5CnD4ZNzs7ODofS6HwjUm8F2nAlQzLw+8QD GamYyyQkN/Mv
vU/k/Oz0ZASR0hBMpix6YAl4G8GDumqIVacnHn6QTJoAN0Nyb20WULper30l El/phN5eX5EK
YtqQ9cccMez3Bwj7PovuQbAel8YyGUGLPVfSKoYo5ZmBnAHEwrEM6cTBiCeZ QLBQklulSx5p
bn5d1Qw0UoJuto80+6tpCfShrDZTDQu+CQmCfAT5CPIrtjNHN4LPKTOGLzja 4eFcgd1m2LI0
LN+sZFxy6YwtCl3pzww0s2iiKRF3JcKD+R6Ll6XMLpQWAc3SZcIlxYHr4Tcm RvUxpPR2Ni70
f6Du9yQFAdKOEciKZoQeF8Cs1fxuaeEtJVxUpPsiRrTp37Md/QbbDjfd9+4c Y2aZW/CeFCDU
P5mheDySDtOcvkqGA3wFCZpHeZvGMCFBukJ+DXZwh7vQydIdk6H/eWiTqOpO G+3fwsHrIswz
sB1GPsAWC5YZrl+qpYxD0hvUxuJQ7hi6QhXHTXumGAEB1mmr6Y+xHcTv3hKs qa4WPerTQWUa
hFrBS8U9sUkpt9PBnUfD65U8PxbVzaiSUcakegjnf3/kO3/Yivkpk4nfSnOR 5D3Z8xdf9YOK
fr+nJFxovehw6R9QSwcI5UFVlQ0CAAAjBwAAUEsDBBQACAAIAKSYWjwAAAAA AAAAAAAAAAAq
AAAAY29tLnh5ei5wcXIubW9uaXRvci9tb2RlbC9tb25pdG9yLmdlbm1vZGVs rVZdb9owFH2v
1P8Quc/LZTxMEyJ02hBTtbEhlUl9q0xySb3GH7PNR/br5xgbyGinjiZP8b33 nHvOtQ0ZXm95
laxRGyZFRt6mPZKgyGXBRJmRH/PJm/fkenR5MSxRcFlgNfiMYtq8JFvOBntg 3wEvLxL3OD5h
Bi6ZkQdr1QBgs9mkkpep1CXcTW9IKImMrTrMK6YM+lrkS+j3en2ILUniAWOm MbdS1xmBXPJ0
W/9O1S+dcimYC4PRedDiy2fVqmTiZpyRJ4oD5TfKMSPTGGNcSW1RNyCnZK/K KUpjLv1J1zT0
ccSqYlTk+BXXjaN3zRxzqWrNygc7YVgVJiNLWhkkycpg4SzNaP5IS3RxVVG7 lJoPQHmtcNxz
awrwGuHudpzGoV0BuAQZNf2HDous3M1o9MHnh9AK+rLy0DNRGpdse2R5QQ2G bGtQJCmYUdLQ
RYUzLdesQD2hYfxWrzCMIEkwdx33FGG+qY9ewU7pTsSYWjqvlVPhk3F5goFP FTUmInfYpnBG
tdsutwWBoBV7hgXmBKIEONZwtq77boTdv0SZr4y6/OKU7SMTzaVtq/quUFPr bmjA7tfP4mER
eOC1RNRazRYri21/wct/uvuC9dnOHBaE24TzLTUM1u1JF07CjbtFe7ahAwU8 Ym3O93VERIvi
oCf+WLSP8z+OcpuoUXUk6rVsT5xIaPnswL5GLtfYzQR2XH8NoXvJYSymG9GR 7UWyT46/D8Q/
l+ZzAU6+F1z0D1BLBwhKdkzKLwIAAG0IAABQSwMEFAAIAAgApJhaPAAAAAAA AAAAAAAAACUA
AABjb20ueHl6LnBxci5tb25pdG9yL3BsdWdpbi5wcm9wZXJ0aWVz4+VSVrBJ zi+oLMpMzyix
4wVx9VH4ICEVzxQVXi5eroKc0vTMPL/E3FQFWwXf/LzMkvwiIJ2SmgOUK8ov y0xJLYLKlpeX
66VWJOYW5KTq5Rel83IBAFBLBwibuhw7VQAAAGoAAABQSwMEFAAIAAgApJha PAAAAAAAAAAA
AAAAAB4AAABjb20ueHl6LnBxci5tb25pdG9yL3BsdWdpbi54bWxVULtOxDAQ 7CPlH8zq2tgg
GoTspEOiOIkCahQ5i8/CLxwfyvH12Odc4Nysd3Zm9sGHxRryjXHW3gm4o7dA 0Ek/aacEvL0+
dQ8w9G3DB5RGhxn/uPeZW0q5eNN1bUO49OEUtTqkvmTsf5qB3fO0a5uuq5Jg jkq7WiGE45LQ
FV8SvHZJgI+Kri0p2o/89xGpQodxTDi9h1F+jgqhP+uLxYpc8vqOUQs4pBQe GcsDWbacflj4
isx6p5OP1ReuRdKM8ywg02mm00ynF/q+xpe1+7UuT7f3ExoBtoStR8bPALA6 LWfbuvUYbLvG
L1BLBwjYW1qF6QAAAJABAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAADgA AABjb20ueHl6
LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25pdG9yL0JpbmRpbmcu amF2YZ1STVPC
MBA905n+h70JDIYfADL4gTf1IAevabtAtPkwSRVk+O9uk4I4dtDx0mab997u e1vD8xe+RMi1
ZOvNBzOvlkmthNd2lCZpIqTR1oO2S4Z5KYxDhnJBZ22RzR6yZ8z9qBW2dgV7 ery59N6KrPJ4
Qxfcci+0OkmYlShR+b/C77nE4lrTvSLWSeh8Y2iKhSB3UTVNhv1+mkAfroQq hFqCcOBXCEJ5
tAueI1XcQ1GTMF6dZRF6Bl3BkA2Ag+TG1GS9oCKrXI115zpkA1wVEFrwfRA9 kg9Ss7tbkLrA
kkVEeEzDl3AepompslLkR/PsB8W1R1U4aFYA29pNJ9jpkMp8RU7cSldlARZ9 ZRW8kxN8Q0u1
segoLFePq8+59YK0PVxMYDsthXqBH7nuBhCFvwA/90QgbY8Q3/PesUaieR2M hqIZslUXlPYw
zgk+UVVZjofhGJmUUaed1Oyp2xvB/7JRXyv7Hk3bLx29xwaSbzI8ndQvGbR1 +EMKrbSDiZjE
Lk0+AVBLBwgcBFo8gwEAAPQDAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAA ADQAAABjb20u
eHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25pdG9yL0tleS5q YXZhjU/LasMw
EDzb4H/YUx4myB9gkxRKeimlh36BIq8dNXpVXkPUkH+vs05pjr0ss5rZmVGQ 6iR7BOWtOKdv
Eb6isN5p8rEu8iLXNvhI4GMvUBkdBhRouwn7iGL/fvhERSysyrLIoYRXTKAH oCOCdoSxkwqn
TRK02GmHM7U8YVrCSgsUG5Bw+aCoXb+BZyOH4QpB6rie7lm7f3sB61s0AjiB xxO/MK6KPIwH
o9VD4K0FngldO8C9JVxuNTPumT068BKRxuhg7gHOE6ANlGZ6Ssh+GWlxta7h H178l4Wherfo
qWbPRk26rRuNaSqGf/6sbnZboBTuCdci/wFQSwcITC+EuPgAAACfAQAAUEsD BBQACAAIAKSY
WjwAAAAAAAAAAAAAAAA/AAAAY29tLnh5ei5wcXIubW9uaXRvci9zcmMvY29t L3h5ei9wcXIv
bW9uaXRvci9Nb25pdG9yRmFjdG9yeS5qYXZhvZRRatwwEIafbfAdphBIu2D5 AHWXNCGFpTSU
JheQpbFXiS25kraJU3r3jmUtYd31Q9KQJ8ujX5r/m5FUrFZZCisohekHq5qt X0//xWEgBE82
8mQcFFnac3HHGwRhOvYwPLL+p2Wd0cob+zFLs1R1vbEejG0Yilb1Dhl2NY2N RXb5hQsSDkFZ
7B28y3OosFE63zm0uTQC8nxyc7NFKKt1XFYW1RpqY8FTuDMSWxZUGw+9Nb+U RAcchEXuaR79
1sggRy62oI3OeeW8pb1AtNw5MPV8p+AFtfzXyZnDo9Ds2/T9PtVl0jao0ZIJ uS/armqVAKU9
2poLhLgocgE+eErqYF8f+J2lSahPEovglG5a9EbTJs5zTXtE9/W0hE3axWIm y3TJzHISPCdz
j5ur65vPVxeX8OloHajxLTtcsxlDiiLvP4SOPyH9QL+zeuyWxnsw1S1SUwho 6stpid36XGlJ
0GVB49P/pbMh33PTHSlKlMVDFv9egvcVh7dCm6c6gkWSiESjl+Bco38rnHmq 5aNLykj1FFiE
G+/S/nFzu358xVBCNdCEcq91yyLdc3It48UnBxr0h5HI+AeK4vBCZulfUEsH CEouq3a/AQAA
9wUAAFBLAwQUAAgACACkmFo8AAAAAAAAAAAAAAAAPwAAAGNvbS54eXoucHFy Lm1vbml0b3Iv
c3JjL2NvbS94eXovcHFyL21vbml0b3IvTW9uaXRvclBhY2thZ2UuamF2Yb2Y 3W/aSBDAn43E
/zDHVUobHfb17u1CUNKEnFAbEgGR7p7QYg/EjT/oejmVq/K/d7z+/sIEDC9g 7453Z34znvGs
dn7ebsE59HR3teHm8ln0g3stOyAH3w2Nd/6F1m6tmP7Clgi6a6vfN/+rq29c tV3HFC6/aLfa
LdNeuVyAy5cq6pa58lBFe0HXLkd1cGMxz7uok7plgk03K6wVfAyUkRtrkUG/ dLswx6XpdNce
8q7h6tDtBsZNnxF68374WE+b92HhchA0bLsGWqqUGgqyzhHMdDxguo6e53Iv EUTBwJ1/RV14
IFzguOLooSOC3ddWsBVAzzL7yPRn0H2jf+tpdJ+fWiATa47gLqBOFJ21XZhh jhE8aBAyEMQs
kehpkS4SCTpGEciVh6WuVO+D/zum0+8mkJWI4MV0jMtOGAadYGaJDnIm0IiC ZD23TB1MRyBf
MB0hXC4ED/hdkDoeRA6EH+2WIh2ohF6KwsxhNqrBcKVjlWoTlZx2ilRPmQhu OkvA0fX9AC6h
E1rdkYFUrYi38m15Gg+PqNFkRuv7Oj0LsfpL0+h1tDXyjkbe0SLvyPDfTdsj A5zMHseDu+E/
vsYlcVSmo0dPWihch+LDE8zRZfiLRPvm1c2H33A0mV6PbnzflwU/JR1LzT4z 9IdMGnn/ocSk
VE4A04hTxdmPK8t0Xqr3+ETvEtHwF4ce2v3wvqfR9etZkA0OpVH1hucV2EW8 yOTXJYpwkfcf
KvlTIoBPw9HtcPQ3If+9hCAltzlyPxA8wdc6JUVmRdnRi+LjLM+oIURZheHK 5QbycvVnd4Pr
6dN4MLt5eBpNK4zZNxw+4yYOBbo+XRiEG+8fArRAjfs/D/4lWh8Pcn3E5IRu J7WP6vIQ5wRF
7Hm6Pp3ns/vvHwDJOjVxcP8wGk4fxrPJwEf5x0HxEJE6YTyk1D8oLnz15cdw aED8/daEt7+y
/5hqMWepyi3296p8fFbj0Zsv15MJmf+nND8NYIzkM/qIzn02SwrSY1vfjzDR lxTGQxlxqdc2
tQqFRq2BGApXggo6H0hXy4smYVFqzJWN00CKU3IdIBLcAY6sI42CSRJTLrme hk+cour4JHru
gCmdbd9AK04yMbFcpoBsWjoqpJQyuWSYRlWeyoJONGof5MxlJyfakYs/Mk4N ELWhJDDtVKON
jhwglfW2kF0EfTFdMwE6p+KEwUSkU1yoonOFpjDut3N1TxR2+KmoCkcK9m/V /hYXpkN7Wyax
ZlbVcYmvdOrARIlPTJQtRya5ua1nJjnZ9KFJMlV5aqIkxyZvbzKT044vEQT/ WCMEWPZBEMJq
vl/c7q5tpr21ZWyiZyzwDIFGCS/pHOPGXS0W0iY51zVix+Sb9GKHNmN1XIOW LMM0VX+b5Llj
l3NMrIVGp6FOpw5ytt/JwC5W8bcw39pBNECyWHkb6CKqacUFOGonMqiyJfnV /30FTcvu1279
BFBLBwiRAqZGRAQAANUYAABQSwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAADsA AABjb20ueHl6
LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25pdG9yL01vbml0b3JT ZXQuamF2Ya1R
227CMAx9plL/weIBAZrCB5ShaRJ72dAe9gVparpAbktcRDft39emZQMEkybt JbLjc3yObcfF
lpcIwmq2r9+Ze/NMWyPJ+ixN0kRqZz2B9SVDoaQLyFCvWQNvUKwiqdjySQbK rkJRWI9s+Zxv
UBzBNnzHO35PT5PZdJomMIVVp/+CBDIAvSJIQ+jXXGCTcYIC19JgV1quHkDb AhWDSI7PXfyJ
8SxNXJUrKY6aHAngntAUAXp/8NEaGUQng59Gwhri0mg0dDskX+EQ+rpHqryB doaRouwR61FJ
GTgbgsxVDagd1R24cTKIu5o3qAVssQ7jSQYXBfvEcc91i4Rxw5mAsQRz0SAW plJqPovhKTiX
ppCmhPF9F/xKai3trCyAF0Wr0ErdQM88tPo/j99yHrXd4UHxmsD1rf9pL2cn 6qeLZzq7S19a
HCYPJw4/0+QLUEsHCA3fGkJPAQAALgMAAFBLAwQUAAgACACkmFo8AAAAAAAA AAAAAAAAQQAA
AGNvbS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFyL21vbml0b3Iv aW1wbC9CaW5k
aW5nSW1wbC5qYXZhzZPfa9swEMefbfD/cINC24Cl98WE/ogZgS0etIW92tLV UWtLmiy3yUb/
90l2vDhdlj0F9uTz6X589L0TnUyiECaQMKU3RpQrO+v/6b6jc54t+Jk3aBTq nD3nJQJTNVlv
fhD93ZBaSWGVIaLW1TQKo9AZytiDMTdCciHL6dGgL/33a99rXFKZkiCrhG6Q YP3obGWQpLdV
3jT/jvOAJM2KJ2R28Q52nLFuOPl2N7+21oiitTh3B7nJrVByeiwhrbBGaffD o5AOWn+IYyiw
FDJuGzQxVwziuNf9WoKn6/K7TFCPYFcIteJYgeqY4TzBepYUs62KCS1mCXWu c7JrgJL/WT7R
w3j1bqxXJUp0nMiH4bZFJRgwryZse3idANfWlW1gpN0O93co/IzCoLtscOy2 wd9Jg3dUQYcV
aKOsa4t8DHVx2fULmlajubh0SgdvXu2TEFxlL2iM4LhH0+8d4J0fGet+BiqD tjUS9jeZfBbW
Fa4acrNYzhfLT6eF3o7z4GJC0Ss58FIK99k8+7gbq9s+0UCNdqX4NiKVTWvQ HeQWNqoFg7V6
wVFr9yigzs0zCDv2LrN7X8GujHoFia/w4App/4qQZxp7onTNUHvj1LPcyXLo gUM+OP9vad6A
0tFriMJfUEsHCFAWQ/DgAQAA0gUAAFBLAwQUAAgACACkmFo8AAAAAAAAAAAA AAAAPQAAAGNv
bS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFyL21vbml0b3IvaW1w bC9LZXlJbXBs
LmphdmHNU01vnEAMPYPEf3ClSElWYubeIJqq5RClLZWSHHqEwWGnYT5qhmRp lf/eGVi0u/1I
Tyv1hG3M8/Pzg69WSQwryISxI8l27fI554eFqXhy1ZyEgCexrcRD1SIIo9hm /M7sN2LKaOkM
Malsd5HESewDQ+6PPdc4XrzY8HF+fp7n7MMZahmKTtoeGap7HxtCVrzrqr7/ d18gx4qy/orC
XS1E+aLCqzSFGlup06FHShsjIE1nRd5qCN+iQu0qJ40Gcw9ujaBMgx2YCRFO M1R5Vud+v4zX
ecZ9esp24Kib36Ezu4hud2JftqiRKofNIvlQd1KACHuCxw/sATfOQ/awt9GO 5tQGP5I4mhaM
Xtow+jvD6Bc20UQnsmScH4nNQubsfJoV9YNFOjv3ykbPQd2jTL8sH5FINnjA ZHYB4E04kZiS
hRWhG0jDoa/YB+k8cNez6+LLcQlvz3fjSOoWdKVwYcY53Jbvy9e7w3lfyR4U urVpth2F7gdC
/6JyMJoBCJV5xL1B3u+gKnoA6farn8rbgODWZJ5A4xPceSAbfhBsShuavJWL jUAbgmNfbSvC
dJjsTQ5utP+5DM/A+dbfSfwTUEsHCGnhMnq9AQAALgUAAFBLAwQUAAgACACk mFo8AAAAAAAA
AAAAAAAASAAAAGNvbS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFy L21vbml0b3Iv
aW1wbC9Nb25pdG9yRmFjdG9yeUltcGwuamF2Yd1X227bOBB9lgH/w9QoUDmt pfc4SZsm7sJo
6xS1sUCfCpoay2wlUUtRTbyL/PtSvFgXKw2CNsFiX2SKHA7P4Rke0eHR0XAA R3BCeb4TLN7K
M/Metjt05/N59LxqhMNBTuh3EiNQngY3u7+D/C8RpDxjkouApXkyHQ6GA9Xg QvbGHDUDuIgD
pAnLCwww3ag2FxjMLhJSFNP7oi6JJKtdjvcGXq2/IZX3hn0yzO7HV9EMZu8I VXx28w7n/il5
UsYsC2bVyyfd1nNCJ8KzyQTWqLonZYFiEnEKk4kR5DyDakFMMZNEMp4B34Dc IqQ8wgRO1mcW
yUm4PgvqdJhFh8nexJihIBIjJ2e5ThgFWu04fDQaNZgB3kiVqIAm3RpPdwr8 Mxx4mpSnFrsQ
qFYqNNgIN6RMJGxsYJtSYCbcuQ3e3aS8DitP0/Isr6LKT7somXrzxxqsJy1q z+sEKdSdnlPw
2z1jVzPBZwW6UKmC+WK5Ol9czIIYpdszf7SVMj8OQ3W00lAdiFAdiNAdCF0g o/EUNAi2Af9w
5WenkJVJYiF7nkBZiuwQ4lQP31ZP/aBE0i34sxuKuS4ddC2XqlGRNfaEx34d Od2ns8tmeN1T
Kr4OvK3K+rAEiCriTImRUXTlayvh0aTvQ2hIF2WOohfub0Tx5uoHCsEirBFZ IwKqN8U3Ngeo
fxy0a6YVM51VEekG2zAU80t/7GSjpEDH0NXg2/nicr744xisTGaZtyyLWBYb uv0T38++dCa9
x93PJny8WsxXV5+/LmerzkQbuETp5tuDf2wKV24Fv9YFNE8SjElyLuKysoF9 ifqjlSoO40cv
RvAS6q1YkBSVhi9h9AJYARmXQOAHSVhk4vUujep6fVJxW9q+EzxdSlHt+/4z Behar8CMaR9i
JPmTJCV2C8AFP6wGLj6cL5fHLZMwiHSKBqwGmBaKXxEtUillxdTo1mTwn5bO qkF5pobkiv9M
OSuzM7NHls4g0jn2sFrKNVH876WzcllH6/qb2Vr7qq8paxt4qjegMWK9ye6y DXvcz4HFroy1
abEGs2pqvN9xZ7HanjZONfwkGGsP7zF1g7ju0cDTesZp83Zgx9s06uAnYaMP z8nrszt88IH2
bDn4LutY3yWCA9c/8NRH59k2sbZlPNTJLEvLrWOLh6bzVBVpnRKUKbV7/I46 7dFxdRXfR/5O
wBHmAukece/n5rIZ0/uvpEGrn0/nQ4Hunr6ncgtheHjdHQ7+BVBLBwjx5twK nwMAAOQPAABQ
SwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAAEgAAABjb20ueHl6LnBxci5tb25p dG9yL3NyYy9j
b20veHl6L3Bxci9tb25pdG9yL2ltcGwvTW9uaXRvclBhY2thZ2VJbXBsLmph dmHNWW1z2kYQ
/oxn/B8uTmYCGRBNPsaJW4yVjCYxdoHMpP3iEdIC14CO3h22Scb/vXsvkk5C vKRxaL846LS3
u7f77LN7SvvFi+Mj8oK8idhixelkKs/Mc7u4oBefBfEz9aN9fLQIoy/hBEjE 5t796qu3+Jt7
c5ZQybhH54vZ6fHR8RH+YFxWypzTJKbJ5HSr0AdYbRe4NP++CyP8u5/stXF8 L9kBSPccjE88
iGZ0IcCD+Rh/Mw6e352FQpzukroIZThcLWCn4HtIgNNoL9mrBfBQUpbslMyP vUNSJS8TD0qZ
dLfci9j7PLhwFbdTMD1ptcgIJjRpLQXwVswi0moZYHUSokzAHBKpXSdsTOQU yJzFMCNvRmdW
45v26MzL1UESryv7baKCFUqIU1guRzMakUilhBQzrs5C4F6iIkHcA+b+lLeQ b8dHNX2o2rZT
1Tb7WCs5WdNe1hac3uICMdghI1MM9uktSZYzE/ZDGP8Cq//G8DwrskPbT2vR 4CR/rHSgywE3
CRIicBMhwySCbZBtEo7OCgkcYnJH5dRo+fbbjCZfdlSn19db+YqsrTyQ0Urb tMRrtKYs/Kkf
kNtwtgTPxmVx1mMSXusdaIJDJMldiBoYifR5XF2ECnJLQ70kVFFGRsvY0CqZ g5yyOD3CU4pp
I+pPvfHQJHdTGk1JOBOMIBmNGZ8Ls1tJ0HBGvxaq3JpsYiQwUHLJE6HXnaCl IlbNmLAE0AC6
Ha+wgFFMeD+IDQGwbyqcHbu7ylPoDW4wGc6mpyZSO0G5Tlb1huafmlhiYOtW c5MUe54HQW8w
7PS6fgNxW3v46cVjAEJGjM1AlYQI0B3M2luEy0xAdfHkRYE/wyTOwQEm/cUa IggjXKYWSbrM
zD71IkxWhOEmLshygcgyCERMxrBQ5O4RMtCUbnabVUgiqoqY4wnwAGJM0Wcs qSicIaon2loK
dNSJq8XdMoUlsjWgF0BipvahM7gVfwAeHi0PHT0xhgyqq0GdgyYYjwr9MVXl Ols1UQJXOfoC
1hvFJ8bVrI6oFDAb53V/NS4ImGhjZytYU7FoqkPmVnUUjZZpeAskYZKsQOJp IXGr09AQ5Tnn
mKiOKRfSkotBjTad79TBgdyg2oSaEgcLChdE3jEEGSzEa5t9kGHLMC0b/YWR EQYF6HyRU4xK
60GaJcyPdQYfHEtNIqhm8iTb/1xU2Zoja3IYAwKSGU2YW6FbQJhoGOaxD5Jb Fjl0l0PhjqK7
KqTheKy4WGE4c1tOQ6mDbj21VKcj77j8GKRXRVAmYrb8ugxxgpNQxlgZhxkv NolVEIYZxSxf
lAYrQ4qG35Dh6ymNNGxTIPXihsYaL3sp73kTHCDs29Iuz562YVip1m6Tq5EM EWQIINsHXZA6
zbVWMTxiskvHeFv2U8k16ns6m3qXzRUImgqzv65PAzv0vSYJ3FV2lDQSDm1L voQ8PkGWaSwQ
RaIF/lRC+cyf9x4P9ARXdwJtmD+jIV1ZMQ5aaWEpsbWAehuwWOlfWumZ6mqV W7Cbq70M+RfH
RxyT1EgeqRNgY4nC5LliQhJNw2SiMV5haMwBvkKm1QJ5Te4nt2lTdXaiRnTY i3ZabNarwo3j
wB7hrb7kTXYFObAn+TW/5FD5anIYv7J7CLqmzd6U3CpeVw7iVHHadIJmV0oe 1otvG4qe7O/A
klz9QINqPqF2LVFsHVHNha561nCGjNKIl46ok2WIw1WsiMNOT2mnV8MkNnua jwajpdQTmZ6Y
frSpb0zcLaMx2UCnbt+1wUkb76npDnnIiu3BsroGor4Tx3YaHOP6kpsOUf6c Ybwwj/XzoHcR
9N6nLOl+fSjIffD/SGUqPhQURC+vesHwqn8z8IfrDcjwOZaLdm3twm8VpSv1 7sfOYHBwhAbO
CLwBpUw1Y3tv33q1zib+HMwWtNk8bZD7fwXtloZdHhhtzErgLUZz43zjDHsC ZC+cqwmqc2ku
0npJXOPkT+/1YHXd998Fn513OGnVN8+X6mJQcXksDlAqbc4TTpP5074TrzuO rXlja0DBX98k
Mfd4bVYvwzj2FeCv09V6sTSa5GR44mgaqKsgW6pvp5oRyxqtWCeOif5eoStO f24yVFE5wDks
kvLHKUHPCEu/a5uXRdcVPmzlF5imSeys40Xm8cQ+nzTJk2Bw0zkfDPud7tA8 Bb2h33/X6fpN
gk/v/Z7f7wz9i5s0yDcZE6Thyj62l80WsqiSg0+++aJ8AeiL3dVAj0aZR780 yUtt+lMv+P2T
8eKqf+H3/Yt/bbQjJadYqVA2G6Yv9jPsRDjj5ybBuS2LLP5+9Kg6pvS3OOds /gD9V0Msmk4Q
CvsdI9eNgMLq2mhOffVFzQqzuzWjXue/aMjkZd5FnPW6uv17ziBXtfVV9VYj OnmpT65WOnyy
nBsG9PAQ9ckrI6LzlJ+ILZroTkUSyw00+4iIK1lK86VHz+y6/TQ6+i6AxjEZ woS+tSurFalc
128zimL7JFRpy4lQhbHCvx9TlF3DvpcEvue4HObsdi8IP9KJ93ZwSxj2yfuj OlxsQsX5UBdN
NgyWW6I+TFYw+ulEWxj4/aDzMfizc/7RN+Wyq0Dy5oxNjy15pOcQQwZ9u+KO F2YcfSDt9vpn
neOjfwBQSwcIVKAXMKQHAADGHwAAUEsDBBQACAAIAKSYWjwAAAAAAAAAAAAA AABEAAAAY29t
Lnh5ei5wcXIubW9uaXRvci9zcmMvY29tL3h5ei9wcXIvbW9uaXRvci9pbXBs L01vbml0b3JT
ZXRJbXBsLmphdmHlVMtu2zAQPEuA/mELBIgTVNS9EYT0oYPRJCpq91xI5EZm LZEsSTl2i/x7
Scmq7bR1e/GhyImv4XJ2ZpfJ5WUUwiWkVKqN5vXCZsM6OdzoN8+m7MxPkihU JV2WNQKVLVlv
vhH1VZNWCm6lJrxVzVUURqGbSG1/i3nDBeOivjoKeo+b44DbYfwwkPkn7Azt Pjepa4K04cog
wfaeuJvuAuksb0h+w81RMFKpkeRvm9KYv+O8LCQvqi9I7XSUKBn1fxHHUGHN RdwZ1DGTFOJ4
8OK1AH8XWxS2tFwKkPdgFwitZNiA7CPCeYptllaZSzBNqixN3PKc7IKjYL+G TtVot9rZfF2j
QF1aZKPZXdVwCtTnCTsdfRKAa+siG9hLbMd2Hw3fozDo0w2O5Rv8mW/whFvQ kwuUlta9jOwJ
tclF/2RgOoV6cuHkDh695CchcV2sUGvO8IDQUBqAM+8b7RcjK4220wIOK5jc cOsCN4bcFnfT
efHx8yyfn5b41tu+1lPXcBkscfOTZZLAvHhXvNpZ6gqPG2jRLiTbInJhOo3u oLSwkR1obOUK
9x5zDQFtqZfA7f7uXTH3EexCywcQ+ACfXCDlOwhZoTzI1Xq+pqj85NQOboVY Sc6gZGzitPBS
vITtVwXVMD5vZYYMRnGerRZDu2wrIxtLw/wXujxCkhz+lFH4A1BLBwhmg0uJ AAIAAAcIAABQ
SwMEFAAIAAgApJhaPAAAAAAAAAAAAAAAAEsAAABjb20ueHl6LnBxci5tb25p dG9yL3NyYy9j
b20veHl6L3Bxci9tb25pdG9yL3V0aWwvTW9uaXRvckFkYXB0ZXJGYWN0b3J5 LmphdmHtV9tu
2zgQfZYB/wMXKBAlgOUPiGOkG6RAUDQpNnnIKy2NZG5lUUvSdd3C/75DcmhL qnzJJt2nPrSi
peHM4TlzYcYXF8MBu2CTVNZrJYq5mfrf4/YL9/LdXfbOLsbDQc3TL7wAlspF 8m39Pan/UclC
VsJIlSyNKC+Hg+FALGqpTK/NRdNAqiKBtBS1hgQWeYIb0C6ppBH5Onmf8dqA ujzR/N4+hLM/
cQcalSHKB54ivPUdvjrkAFKpILl9mP0NqXGG40DkH6MRm0EhqtFSgxplMmWj kSf1aQ5sMptS
KEaxJuPZlOVSMYOfFzKDMnHWd4bVSn4VGWjGK8ZpFyqVwTRVwA08Pz9bofA3 W4CZy8z5AZ7O
WVpyrZnMu14dPqiyn9Fda+jX85N/fvaSe9sCKlCIIAv5sJyVIqWotKFNKYNv BuNq9jPT7Mdw
EDkCI2IpxSNA5nEzyrXEf95LcLT/dFEHcuQwR0ivQf0wkDbcIPz2SX14+uFE 3oG8cfw7YUSF
u6sUAtlBqNwf8BfA9lz3shyfOzIjkbO4CZ9dXbFqWZb0OWp/6xw8gbv7x6f3 9ze3l9Z4g/9t
2sf/C8xSVZqt5ph2YFNX6HBghkte1wiRz0rYZrZZ11uKpKubU5h5so5tgcIC KiuSrJii4L4S
jFpCKALRdG9xgCB4JOaZDtmEJe2ANvXz2zo1c0wfj+ZNmOjR+vrhKyiFPWCn +0zKEixuTZp/
kOoJXcYPhN89GnlA58IMaKoeMoHwWxq3aje3BXoQMPW7zs44Du8pcgI3tg3E 50kB5pbCYWJ2
AOyikaOcl9q97SSbbQh6JQx2NTPnhqELKFz1GelIPNgS9a/sG1Q3jw7dhEpx 6o/pX7Ire8IK
VntsQ8G2lI6C1mFUpFzDn6LKRFXE9GzrvCXRs0A2tD0+d1x7so8H+gjrGP8d DIDf/5vzwAKY
eLc8GGpn9vKIGeR8WZobDByy9GAssukLtNk/AbYdnwqcGhNXmP+UjK9Nwpor vmDeZbPHYQW4
6KGDhGpuzqGjqE7rO1sV3cEDReG6RdiIVoLRqIMkk36xaxe0Y1vxvewyWzrN oyDfu0bt7xtn
P65LUX3pvbyEapnAYkrryRjXm7OTxw8l0b4xZMcq09L3ppW9u1R4BdOixP5f VHhPdHmvL71H
YXAGYaB8WVrxyII7GztE7DzCOSL8SFoJ9J1y20c4rsycnCEL6xVfnz6e7M4G k0H4fVc+YurY
FaSdEt2m00oFy1JPb38znW3Dshrj87e+R/VFll6mbbPf/6+6NoaElffR9q7f 8h6Rd0fay1Tu
GbWvE9viDvzbk7+laK9m70RSuneC/Yxs2Hjc+1fZcPAvUEsHCJu9unHxAwAA aBEAAFBLAwQU
AAgACACkmFo8AAAAAAAAAAAAAAAAQwAAAGNvbS54eXoucHFyLm1vbml0b3Iv c3JjL2NvbS94
eXovcHFyL21vbml0b3IvdXRpbC9Nb25pdG9yU3dpdGNoLmphdmHtWN9v20YM fpYB/w8cViBy
EMt7jh2va2oMRttkaPyQPQ1nibauke403amZV+R/H++HLDmR42xrgz7kwfD5 juSRHz9SlEfH
x/0eHMMklsWm5OtUT93v0e6G3Xw1T16ZxajfK1h8w9YIscyjvzZ/R8WfZZRL wbUso0rzbNzv
9Xs8L2SpO2WO2wKf2GdmtaL3XOn2iSzXEcYZLxRGmK9oLUuMZucZU2p8SOpy +QljZ25Uh/nD
cAhLXHMxrBSWw0TGMBy6kBcpwmQ5vbrlOk4no+UUVrIETbu5TDA7UsBFiiXX TMQIKceSlXG6
iazyXIOqCuONsioxyzL48jrj4gZ+TKQzGnqXBrDdkW7jzhrRkq74LG/QmqCU JDiNmcLr62uT
D/oFOepUJtYzZHEKsUEC5Krx88SaUpqVmos10DWpPWSxrli2q+ButwpMJFCU MkZMjFpVWIHO
iK18JShfwEBIMRQVBVuiqjINXNFKV6XAxHlym3LykztYvJC/XlkMoiYzKJKH eXmtsJtnH9z3
b46KTnaNgrzUmNQ8rZYZj33UXsFneDGFL/1eYKkR+PzHhCkmDkgoasPBY8wJ 9jsf3PMosC4F
BLMm2OkeypIm73YDcbf7H5a9jY/nJZIpRdmi1CiXl/tgfm1vHYI72IUDC13A VxC2vYWzMzBk
8MfB7tm9OCOcX1wtfrk4n42NMJWA+exES0WkuuvgkQLw1JQCPROVoym0aDoG rmHDMUsML5n2
2/8XPXefdWXFS6UfVEddGrDckFOdkZnOER3KxgLu9xRz6ba9WPS9M1vBRiBC 20DDwUlba/yS
gKckYFu87RxYPC2YdnUCe7NiSmYrR4mQQjNOl1BJUfG0C6Yuoq48Ou01arvg K2rN87cd+bRV
FWCm0BszD9iJU58CXlUFlotNQR3lDHbszpqj0Fnyfthl0NKMuJrlhd5QAD+7 wyDBFSOwzwnX
sA3AaX1eh9I2Q5eGP+2J4IWW/4mWXGiHgyfII7R0Tw8I2+I1AY0j93v3m/nF 2/nFr6deJHjD
hZ0blv77DEK/NWjucjwKFnXUZ2BMe7nQq3q22UKp5eqnylZvD8O8qofbp9Tu 3e2N5N3s920U
73ADN/Qh72l50HOSCUn8uT3+cHkxX1x+/ONqtth6Xj+eUUPeLCmO5uBgOI1o 2Nj4lsF5tVOo
W9wjZjrawEdfxbuDJZEey4IsGho2Qy6wB1PT0QTzqWffZETro6fU+SKlWZZe PDLMUZj5TYpt
PzGwjJ2Y2zI+PJyRbzmtycucCyriPdPbnlZSsJLldUxGkwZ9ap2dU2C773xV gOxI3rzWPPr+
NXgwqgwOTzftvlC3Ftkx3NSAfwtmUHW/sOKp4DwLI0y/NS36uZlAbfCFCU8F 51mY0HpUtZ58
z80L7/P3wY0TWFYm4+YGFxeNctqiRc5vbtnme2RPF4T/ikFPeFNuTRX1/HuQ KXcwGu385dHv
/QNQSwcIpXS1lkoEAAArFQAAUEsBAhQAFAAIAAgApJhaPPSlsdLQAAAAeAEA AB4AAAAAAAAA
AAAAAAAAAAAAAGNvbS54eXoucHFyLm1vbml0b3IvLmNsYXNzcGF0aFBLAQIU ABQACAAIAKSY
WjzWmQUq7wAAAKgCAAAcAAAAAAAAAAAAAAAAABwBAABjb20ueHl6LnBxci5t b25pdG9yLy5w
cm9qZWN0UEsBAhQAFAAIAAgApJhaPHstHv8RAQAAGgIAACgAAAAAAAAAAAAA AAAAVQIAAGNv
bS54eXoucHFyLm1vbml0b3IvTUVUQS1JTkYvTUFOSUZFU1QuTUZQSwECFAAU AAgACACkmFo8
caj0i8sAAAAYAQAAOQAAAAAAAAAAAAAAAAC8AwAAY29tLnh5ei5wcXIubW9u aXRvci9iaW4v
Y29tL3h5ei9wcXIvbW9uaXRvci9CaW5kaW5nLmNsYXNzUEsBAhQAFAAIAAgA pJhaPAn80t7L
AAAACAEAADUAAAAAAAAAAAAAAAAA7gQAAGNvbS54eXoucHFyLm1vbml0b3Iv YmluL2NvbS94
eXovcHFyL21vbml0b3IvS2V5LmNsYXNzUEsBAhQAFAAIAAgApJhaPFLUgm9z AQAAwAIAAEAA
AAAAAAAAAAAAAAAAHAYAAGNvbS54eXoucHFyLm1vbml0b3IvYmluL2NvbS94 eXovcHFyL21v
bml0b3IvTW9uaXRvckZhY3RvcnkuY2xhc3NQSwECFAAUAAgACACkmFo848MW 3eABAAAZAwAA
SQAAAAAAAAAAAAAAAAD9BwAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29t L3h5ei9wcXIv
bW9uaXRvci9Nb25pdG9yUGFja2FnZSRMaXRlcmFscy5jbGFzc1BLAQIUABQA CAAIAKSYWjwU
Z3i+cAIAAMEEAABAAAAAAAAAAAAAAAAAAFQKAABjb20ueHl6LnBxci5tb25p dG9yL2Jpbi9j
b20veHl6L3Bxci9tb25pdG9yL01vbml0b3JQYWNrYWdlLmNsYXNzUEsBAhQA FAAIAAgApJha
POpQ3wgXAQAAYgIAADwAAAAAAAAAAAAAAAAAMg0AAGNvbS54eXoucHFyLm1v bml0b3IvYmlu
L2NvbS94eXovcHFyL21vbml0b3IvTW9uaXRvclNldC5jbGFzc1BLAQIUABQA CAAIAKSYWjyf
PO3w7AEAALkDAABCAAAAAAAAAAAAAAAAALMOAABjb20ueHl6LnBxci5tb25p dG9yL2Jpbi9j
b20veHl6L3Bxci9tb25pdG9yL2ltcGwvQmluZGluZ0ltcGwuY2xhc3NQSwEC FAAUAAgACACk
mFo8w+OcQ+gBAACdAwAAPgAAAAAAAAAAAAAAAAAPEQAAY29tLnh5ei5wcXIu bW9uaXRvci9i
aW4vY29tL3h5ei9wcXIvbW9uaXRvci9pbXBsL0tleUltcGwuY2xhc3NQSwEC FAAUAAgACACk
mFo8dNPuj14GAABaEAAASQAAAAAAAAAAAAAAAABjEwAAY29tLnh5ei5wcXIu bW9uaXRvci9i
aW4vY29tL3h5ei9wcXIvbW9uaXRvci9pbXBsL01vbml0b3JGYWN0b3J5SW1w bC5jbGFzc1BL
AQIUABQACAAIAKSYWjyjNhAGiAgAAEMUAABJAAAAAAAAAAAAAAAAADgaAABj b20ueHl6LnBx
ci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9tb25pdG9yL2ltcGwvTW9uaXRv clBhY2thZ2VJ
bXBsLmNsYXNzUEsBAhQAFAAIAAgApJhaPDRdMTtvAgAA8QUAAEUAAAAAAAAA AAAAAAAANyMA
AGNvbS54eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0b3Iv aW1wbC9Nb25p
dG9yU2V0SW1wbC5jbGFzc1BLAQIUABQACAAIAKSYWjwmjtScwwIAAFYIAABO AAAAAAAAAAAA
AAAAABkmAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9t b25pdG9yL3V0
aWwvTW9uaXRvckFkYXB0ZXJGYWN0b3J5JDEuY2xhc3NQSwECFAAUAAgACACk mFo8nCyJm1MD
AAAVCAAATAAAAAAAAAAAAAAAAABYKQAAY29tLnh5ei5wcXIubW9uaXRvci9i aW4vY29tL3h5
ei9wcXIvbW9uaXRvci91dGlsL01vbml0b3JBZGFwdGVyRmFjdG9yeS5jbGFz c1BLAQIUABQA
CAAIAKSYWjxVjCk6DgUAAAgNAABEAAAAAAAAAAAAAAAAACUtAABjb20ueHl6 LnBxci5tb25p
dG9yL2Jpbi9jb20veHl6L3Bxci9tb25pdG9yL3V0aWwvTW9uaXRvclN3aXRj aC5jbGFzc1BL
AQIUABQACAAIAKSYWjzDuZSkjAAAAPAAAAAkAAAAAAAAAAAAAAAAAKUyAABj b20ueHl6LnBx
ci5tb25pdG9yL2J1aWxkLnByb3BlcnRpZXNQSwECFAAUAAgACACkmFo85UFV lQ0CAAAjBwAA
JwAAAAAAAAAAAAAAAACDMwAAY29tLnh5ei5wcXIubW9uaXRvci9tb2RlbC9t b25pdG9yLmVj
b3JlUEsBAhQAFAAIAAgApJhaPEp2TMovAgAAbQgAACoAAAAAAAAAAAAAAAAA 5TUAAGNvbS54
eXoucHFyLm1vbml0b3IvbW9kZWwvbW9uaXRvci5nZW5tb2RlbFBLAQIUABQA CAAIAKSYWjyb
uhw7VQAAAGoAAAAlAAAAAAAAAAAAAAAAAGw4AABjb20ueHl6LnBxci5tb25p dG9yL3BsdWdp
bi5wcm9wZXJ0aWVzUEsBAhQAFAAIAAgApJhaPNhbWoXpAAAAkAEAAB4AAAAA AAAAAAAAAAAA
FDkAAGNvbS54eXoucHFyLm1vbml0b3IvcGx1Z2luLnhtbFBLAQIUABQACAAI AKSYWjwcBFo8
gwEAAPQDAAA4AAAAAAAAAAAAAAAAAEk6AABjb20ueHl6LnBxci5tb25pdG9y L3NyYy9jb20v
eHl6L3Bxci9tb25pdG9yL0JpbmRpbmcuamF2YVBLAQIUABQACAAIAKSYWjxM L4S4+AAAAJ8B
AAA0AAAAAAAAAAAAAAAAADI8AABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9j b20veHl6L3Bx
ci9tb25pdG9yL0tleS5qYXZhUEsBAhQAFAAIAAgApJhaPEouq3a/AQAA9wUA AD8AAAAAAAAA
AAAAAAAAjD0AAGNvbS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFy L21vbml0b3Iv
TW9uaXRvckZhY3RvcnkuamF2YVBLAQIUABQACAAIAKSYWjyRAqZGRAQAANUY AAA/AAAAAAAA
AAAAAAAAALg/AABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bx ci9tb25pdG9y
L01vbml0b3JQYWNrYWdlLmphdmFQSwECFAAUAAgACACkmFo8Dd8aQk8BAAAu AwAAOwAAAAAA
AAAAAAAAAABpRAAAY29tLnh5ei5wcXIubW9uaXRvci9zcmMvY29tL3h5ei9w cXIvbW9uaXRv
ci9Nb25pdG9yU2V0LmphdmFQSwECFAAUAAgACACkmFo8UBZD8OABAADSBQAA QQAAAAAAAAAA
AAAAAAAhRgAAY29tLnh5ei5wcXIubW9uaXRvci9zcmMvY29tL3h5ei9wcXIv bW9uaXRvci9p
bXBsL0JpbmRpbmdJbXBsLmphdmFQSwECFAAUAAgACACkmFo8aeEyer0BAAAu BQAAPQAAAAAA
AAAAAAAAAABwSAAAY29tLnh5ei5wcXIubW9uaXRvci9zcmMvY29tL3h5ei9w cXIvbW9uaXRv
ci9pbXBsL0tleUltcGwuamF2YVBLAQIUABQACAAIAKSYWjzx5twKnwMAAOQP AABIAAAAAAAA
AAAAAAAAAJhKAABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bx ci9tb25pdG9y
L2ltcGwvTW9uaXRvckZhY3RvcnlJbXBsLmphdmFQSwECFAAUAAgACACkmFo8 VKAXMKQHAADG
HwAASAAAAAAAAAAAAAAAAACtTgAAY29tLnh5ei5wcXIubW9uaXRvci9zcmMv Y29tL3h5ei9w
cXIvbW9uaXRvci9pbXBsL01vbml0b3JQYWNrYWdlSW1wbC5qYXZhUEsBAhQA FAAIAAgApJha
PGaDS4kAAgAABwgAAEQAAAAAAAAAAAAAAAAAx1YAAGNvbS54eXoucHFyLm1v bml0b3Ivc3Jj
L2NvbS94eXovcHFyL21vbml0b3IvaW1wbC9Nb25pdG9yU2V0SW1wbC5qYXZh UEsBAhQAFAAI
AAgApJhaPJu9unHxAwAAaBEAAEsAAAAAAAAAAAAAAAAAOVkAAGNvbS54eXou cHFyLm1vbml0
b3Ivc3JjL2NvbS94eXovcHFyL21vbml0b3IvdXRpbC9Nb25pdG9yQWRhcHRl ckZhY3Rvcnku
amF2YVBLAQIUABQACAAIAKSYWjyldLWWSgQAACsVAABDAAAAAAAAAAAAAAAA AKNdAABjb20u
eHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25pdG9yL3V0aWwv TW9uaXRvclN3
aXRjaC5qYXZhUEsFBgAAAAAiACIA4w0AAF5iAAAAAA==
--------------080704030407060801010706
Content-Type: application/x-zip-compressed;
name="com.xyz.pqr.monitor-1.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="com.xyz.pqr.monitor-1.zip"

UEsDBBQACAAIAPOUWjwAAAAAAAAAAAAAAAAeAAAAY29tLnh5ei5wcXIubW9u aXRvci8uY2xh
c3NwYXRonZBPTwIxEMXPmvgdNr0zKxfjYVdizJpAIhhYvZLSTpaROi3TlsC3 B/8QjQkcvM2b
/Oa9l6kG23dXbFAiea5VH65VgWy8Je5q9dI+9m7V4O7qsjJOxxh0Wh7ExY9C TrIrVsS2VlGM
Kj6WX2N5mjSej6SXDtA4ChHhzSZwOrNZHtJhNG3mD5Nxez8cN9PyL0ecUFg7 sLjIHWT6vkSB
WdJstdjXp3YXsBzpjZ41vT7c/KNSsAjGC4LgOpOgfXa5I47nrHxOIaej24L4 E67K3y/cA1BL
Bwj0pbHS0AAAAHgBAABQSwMEFAAIAAgA85RaPAAAAAAAAAAAAAAAABwAAABj b20ueHl6LnBx
ci5tb25pdG9yLy5wcm9qZWN0vZLBSgMxEIbPFnyHsncTvfWQbqEVb4pQfYCY jGvKZhIn2VJ9
epM0Ky6l4EG8zf/P/PmGIWJ1sP18DxSMw2Vzw66bOaBy2mC3bJ6f7q4Wzaq9 nAlPbgcq3kJQ
ZHxM08m9ECgttMpZdvj4ZP6dmHVooiPBSyePpK4FjK3gY5Xd+l4ogk/Uy2B6 vfWgsqpyk6IS
dXEq1VHHQPXGB2A7HZlylAq5lyUAP1ZICUndkNmhaj41BD+h/IrrNbB7ieYV Qlz/L3ar3sDK
P4FWZzx54sWBoE4fxflrH/t5gTJ3LpNXfuyHzuDDSWCsM/H7L0x/2hdQSwcI 1pkFKu8AAACo
AgAAUEsDBBQACAAIAPOUWjwAAAAAAAAAAAAAAAAoAAAAY29tLnh5ei5wcXIu bW9uaXRvci9N
RVRBLUlORi9NQU5JRkVTVC5NRnXOTQvCMAwG4Ptg/6HsbMMsniZevG+Igvd9 ZCPQNlu7yeav
V6wUPHgLPG/epKwt9ehneUfniW0h9pCnyXmxnUZZfjWiilTVBgvRsoF1e8I4 OTBsaWYnLnoZ
JNmYvG2mYU3t342YjGdy+HxxxWkhhzJwIdgNgK2m0SOg6d8zO9ylyQ+svjs2 oe8R+k6ZggOo
LE1eUEsHCI6QSO2SAAAA7gAAAFBLAwQUAAgACADzlFo8AAAAAAAAAAAAAAAA OQAAAGNvbS54
eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0b3IvQmluZGlu Zy5jbGFzc22O
PQrCQBBGv/UvGi3svYBBcMDWSlErwcLGdpMsYUOyGzcbUY9m4QE8lLhBLQSn fDOPeY/n7Q5g
hr6HBsMo0jmdL1cqjoZyraTVhpZSxVIlHloMw5SfOGVcJbQLUxFZBi987xmC cbDVJiERZbIo
BZ3LmA771ToTuVB25TA33Eqt5gw9bq2RYWUFw+S/t/he/Jr+XlcmEhuZOXXw iZvWXR0Ghibq
abjWNjqomz10HXEvaw7/BVBLBwi9Bxt/tAAAAPMAAABQSwMEFAAIAAgA85Ra PAAAAAAAAAAA
AAAAADUAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9t b25pdG9yL0tl
eS5jbGFzczv1b9c+BgYGIwZedgYmRgbx5Pxc/YrKKv2CwiL93Py8zJL8In3v 1Ep2BhZGBoGs
xLJE/ZzEvHR9/6Ss1OQSRgaWvMTcVEYGEQ1NH4RkcElRZl66NVC2pLIAKCuM Iuuck1hcDJTk
DM5Mz0ssKS0CqhDDVGGjZQdUxBWcX1qUnOqWmQNUxQF0iB5IGRsjAyMDMwMI MAHdxcrAxgBy
HzsDB1CcEyTKwAVkcYNZPABQSwcIvZHRwKwAAADjAAAAUEsDBBQACAAIAPOU WjwAAAAAAAAA
AAAAAAA8AAAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIv bW9uaXRvci9N
b25pdG9yU2V0LmNsYXNzO/Vv1z4GBgYjBiF2BiZGBrnk/Fz9isoq/YLCIv3c /LzMkvwifV8I
HZxaws7AwsggkJVYlqifk5iXru+flJWaXMLIwJKdWlnMyCCkoekDliwtyczR 98ksLrFmZOAM
zkzPSywpLUplZNDFUGDjg81G79RKazugXubElBRGBksNnIqwSjhl5qVk5qVb a4YxMrAVpebm
lwGtlsFtCEgdRxJEE9AX2nhUYnrPi3jV2P0Kcy3Iv1zB+aVFyalumTlAF/Mj wl0PZBAbIwMw
RBhAgAUYDawMbEA+O5DHxMAB5HMycDGAooebgQdM8zLwweX5gSwBMEsQAFBL Bwg0QouK9AAA
APEBAABQSwMEFAAIAAgA85RaPAAAAAAAAAAAAAAAADgAAABjb20ueHl6LnBx ci5tb25pdG9y
L3NyYy9jb20veHl6L3Bxci9tb25pdG9yL0JpbmRpbmcuamF2YZ1Sy27CMBA8 Eyn/sDcoAvMB
UERb6K29lEOvTrKAS/yo47RQxL93Y/MUEUW9JN7szOx4NoanSz5HSLVkq/UP M5+WSa2E07Yf
R3EkpNHWgbZzhmkuTIFsVWTs/W384JwVSelwTA1uuRNa9a8RJjlKVO5W+CuX mD1p6itiXYVO
14ZczATZDqpx1Gu34wja8ChUJtQcRAFugSCUQzvjKVLFHWQVCUOrmQRoE1qC IesAB8mNqch6
RkVSFhW26OrkA1MHXGXgR/B9EHck76UmL88gdYY5Cwj/GPkv/tyLI1MmuUhP /OyNbir3DW+/
QazpgpwXC13mGVh0pVXwTc7xCy3VxmJB4RSVPd3l1gnScnA/hM0oF2oJFzlu OxCEj4DLvRBI
2xPEeb5btpPYvQ4X88XOZK0uKO1gkBJ8qMo8H/T8MTApk0Y9abeX1l0f/peN Oq7oPJq6Xzjc
PQyQfJ3g9aT+yKBuwg0p1NIOlwhJbOPoF1BLBwgAxo6+bgEAAL0DAABQSwME FAAIAAgA85Ra
PAAAAAAAAAAAAAAAADQAAABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20v eHl6L3Bxci9t
b25pdG9yL0tleS5qYXZhjU7LasMwEDxboH/YUx4myB9gkwRKcik99QtUZeOK 6FV5DVVD/r3O
uqU59rLM7szOTNLmonsEE736LF8qfWTlY7AUcyuFFE1dSwE1PGMBOwC9I9hA mM/a4LRpghOe
bcCZWl6wLGFlFaoNaLi+Urah38CT08Nwg6RtXk//rD28HMHHEzoFnMBjzxfG jRRpfHPWPATe
W1zvtSruVT1+8JKRxhxgzoUQCdAnKjM9OVa/jPa4WrfwDy/uvnDU7hY9tezZ mUm3DaNzXcPw
z5/V3W4LVNJPwk2Kb1BLBwipDfvD1gAAAGYBAABQSwMEFAAIAAgA85RaPAAA AAAAAAAAAAAA
ADsAAABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25p dG9yL01vbml0
b3JTZXQuamF2Ya2Rz07DMAzGz6vUd7B2mLoJdQ/QUiEkuMBOPEHWesMs/0jd ioJ4d5q0hQ0x
JCQukR1/X36ObUV5EHuE0qj0pXtN7bNLldHExmVxFEekrHEMT6IVacMk03uq OVTWq1UcwQo2
g/oBGagGfkQgzeh2osQ+EwwV7kjjULrZ3IIyFcoUgjkcV+EmxOs4ss1WUnn0 yBHgzYNngTz7
MpZGsyCtUPPlnF2DcxjrDrlxGnzPC8nZHXaLPWdgTV3TVnaAynI3iHvyzOvy XlTAAbs6WWbw
I29MrHBCeSUkvWcJ2jDkZa8odCNlvg7hqXhLuiK9h+R6CH41+Y5aQxWIqvIE j7qA0Tk99X89
fuIcKtPiRDwHOD/0P83l24bG34Utna5lrBTTx+uTBt/j6ANQSwcI40ByNicB AADKAgAAUEsB
AhQAFAAIAAgA85RaPPSlsdLQAAAAeAEAAB4AAAAAAAAAAAAAAAAAAAAAAGNv bS54eXoucHFy
Lm1vbml0b3IvLmNsYXNzcGF0aFBLAQIUABQACAAIAPOUWjzWmQUq7wAAAKgC AAAcAAAAAAAA
AAAAAAAAABwBAABjb20ueHl6LnBxci5tb25pdG9yLy5wcm9qZWN0UEsBAhQA FAAIAAgA85Ra
PI6QSO2SAAAA7gAAACgAAAAAAAAAAAAAAAAAVQIAAGNvbS54eXoucHFyLm1v bml0b3IvTUVU
QS1JTkYvTUFOSUZFU1QuTUZQSwECFAAUAAgACADzlFo8vQcbf7QAAADzAAAA OQAAAAAAAAAA
AAAAAAA9AwAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIv bW9uaXRvci9C
aW5kaW5nLmNsYXNzUEsBAhQAFAAIAAgA85RaPL2R0cCsAAAA4wAAADUAAAAA AAAAAAAAAAAA
WAQAAGNvbS54eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0 b3IvS2V5LmNs
YXNzUEsBAhQAFAAIAAgA85RaPDRCi4r0AAAA8QEAADwAAAAAAAAAAAAAAAAA ZwUAAGNvbS54
eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0b3IvTW9uaXRv clNldC5jbGFz
c1BLAQIUABQACAAIAPOUWjwAxo6+bgEAAL0DAAA4AAAAAAAAAAAAAAAAAMUG AABjb20ueHl6
LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25pdG9yL0JpbmRpbmcu amF2YVBLAQIU
ABQACAAIAPOUWjypDfvD1gAAAGYBAAA0AAAAAAAAAAAAAAAAAJkIAABjb20u eHl6LnBxci5t
b25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25pdG9yL0tleS5qYXZhUEsBAhQA FAAIAAgA85Ra
PONAcjYnAQAAygIAADsAAAAAAAAAAAAAAAAA0QkAAGNvbS54eXoucHFyLm1v bml0b3Ivc3Jj
L2NvbS94eXovcHFyL21vbml0b3IvTW9uaXRvclNldC5qYXZhUEsFBgAAAAAJ AAkAUQMAAGEL
AAAAAA==
--------------080704030407060801010706
Content-Type: application/x-zip-compressed;
name="com.xyz.pqr.monitor-2.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="com.xyz.pqr.monitor-2.zip"

UEsDBBQACAAIAAWWWjwAAAAAAAAAAAAAAAAeAAAAY29tLnh5ei5wcXIubW9u aXRvci8uY2xh
c3NwYXRonZBPTwIxEMXPmvgdNr0zKxfjYVdizJpAIhhYvZLSTpaROi3TlsC3 B/8QjQkcvM2b
/Oa9l6kG23dXbFAiea5VH65VgWy8Je5q9dI+9m7V4O7qsjJOxxh0Wh7ExY9C TrIrVsS2VlGM
Kj6WX2N5mjSej6SXDtA4ChHhzSZwOrNZHtJhNG3mD5Nxez8cN9PyL0ecUFg7 sLjIHWT6vkSB
WdJstdjXp3YXsBzpjZ41vT7c/KNSsAjGC4LgOpOgfXa5I47nrHxOIaej24L4 E67K3y/cA1BL
Bwj0pbHS0AAAAHgBAABQSwMEFAAIAAgABZZaPAAAAAAAAAAAAAAAABwAAABj b20ueHl6LnBx
ci5tb25pdG9yLy5wcm9qZWN0vZLBSgMxEIbPFnyHsncTvfWQbqEVb4pQfYCY jGvKZhIn2VJ9
epM0Ky6l4EG8zf/P/PmGIWJ1sP18DxSMw2Vzw66bOaBy2mC3bJ6f7q4Wzaq9 nAlPbgcq3kJQ
ZHxM08m9ECgttMpZdvj4ZP6dmHVooiPBSyePpK4FjK3gY5Xd+l4ogk/Uy2B6 vfWgsqpyk6IS
dXEq1VHHQPXGB2A7HZlylAq5lyUAP1ZICUndkNmhaj41BD+h/IrrNbB7ieYV Qlz/L3ar3sDK
P4FWZzx54sWBoE4fxflrH/t5gTJ3LpNXfuyHzuDDSWCsM/H7L0x/2hdQSwcI 1pkFKu8AAACo
AgAAUEsDBBQACAAIAAWWWjwAAAAAAAAAAAAAAAAoAAAAY29tLnh5ei5wcXIu bW9uaXRvci9N
RVRBLUlORi9NQU5JRkVTVC5NRnXOTQvCMAwG4Ptg/6HsbMMsniZevG+Igvd9 ZCPQNlu7yeav
V6wUPHgLPG/epKwt9ehneUfniW0h9pCnyXmxnUZZfjWiilTVBgvRsoF1e8I4 OTBsaWYnLnoZ
JNmYvG2mYU3t342YjGdy+HxxxWkhhzJwIdgNgK2m0SOg6d8zO9ylyQ+svjs2 oe8R+k6ZggOo
LE1eUEsHCI6QSO2SAAAA7gAAAFBLAwQUAAgACAAFllo8AAAAAAAAAAAAAAAA OQAAAGNvbS54
eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0b3IvQmluZGlu Zy5jbGFzc22O
PQrCQBBGv/UvGi3svYBBcMDWSlErwcLGdpMsYUOyGzcbUY9m4QE8lLhBLQSn fDOPeY/n7Q5g
hr6HBsMo0jmdL1cqjoZyraTVhpZSxVIlHloMw5SfOGVcJbQLUxFZBi987xmC cbDVJiERZbIo
BZ3LmA771ToTuVB25TA33Eqt5gw9bq2RYWUFw+S/t/he/Jr+XlcmEhuZOXXw iZvWXR0Ghibq
abjWNjqomz10HXEvaw7/BVBLBwi9Bxt/tAAAAPMAAABQSwMEFAAIAAgABZZa PAAAAAAAAAAA
AAAAADUAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9t b25pdG9yL0tl
eS5jbGFzczv1b9c+BgYGIwZedgYmRgbx5Pxc/YrKKv2CwiL93Py8zJL8In3v 1Ep2BhZGBoGs
xLJE/ZzEvHR9/6Ss1OQSRgaWvMTcVEYGEQ1NH4RkcElRZl66NVC2pLIAKCuM Iuuck1hcDJTk
DM5Mz0ssKS0CqhDDVGGjZQdUxBWcX1qUnOqWmQNUxQF0iB5IGRsjAyMDMwMI MAHdxcrAxgBy
HzsDB1CcEyTKwAVkcYNZPABQSwcIvZHRwKwAAADjAAAAUEsDBBQACAAIAAWW WjwAAAAAAAAA
AAAAAAA8AAAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIv bW9uaXRvci9N
b25pdG9yU2V0LmNsYXNzO/Vv1z4GBgYjBiF2BiZGBrnk/Fz9isoq/YLCIv3c /LzMkvwifV8I
HZxaws7AwsggkJVYlqifk5iXru+flJWaXMLIwJKdWlnMyCCkoekDliwtyczR 98ksLrFmZOAM
zkzPSywpLUplZNDFUGDjg81G79RKazugXubElBRGBksNnIqwSjhl5qVk5qVb a4YxMrAVpebm
lwGtlsFtCEgdRxJEE9AX2nhUYnrPi3jV2P0Kcy3Iv1zB+aVFyalumTlAF/Mj wl0PZBAbIwMw
RBhAgAUYDawMbEA+O5DHxMAB5HMycDGAooebgQdM8zLwweX5gSwBMEsQAFBL Bwg0QouK9AAA
APEBAABQSwMEFAAIAAgABZZaPAAAAAAAAAAAAAAAACcAAABjb20ueHl6LnBx ci5tb25pdG9y
L21vZGVsL21vbml0b3IuZWNvcmWtVV1v2jAUfa/U/xB5z8TAXqaItGoHm6qt GxpU6qubXFKv
sZ3ZDoT9+l3nawmUqN3KAwL73HPPPT5OZpeFSL0taMOVDMnEHxMPZKRiLpOQ 3K0/jT6Qy4vz
sxlESkOwWLLoiSXgFYIHbdUUq87PPPwgmTQBbobk0dosoHS32/lKJL7SCb2/ vSENxPQhu/cl
YjoeTxD2dRU9gmAjLo1lMoIee6mkVwxRyjMDJQOIjWOZ0oWDEU8ygWChJLdK 1zzS3P24aRlo
pAQt9r9p9kvTGuhDXW2WGja8CAmCfAT5CPIbtgtHN4OPKTOGbzja4eFcgd1n 2LI2rNxsZFxz
6YytCl3p9ww0s2iiqREPNcKD9RGLl6XMbpQWAc3SPOGS4sDt8IWJUX0MKb1f zSv976j7vUhB
gLRzBLKqGaGnBTBrNX/ILbylhKuG9FjEjHb9e7WjX2A/4Kb7PpxjzixzC96L AoT6FysUj0cy
YJrT18hwgM8gQfOobNMZJiRIV8lvwQ7ucFc6yd0xGfqXh3aJmu600/4tHLyt wrwCO2DkE+yx
IM9w/VrlMg7JaNIai0O5YxgKVRx37VliBARYp62lP8X2LP7wlmBNc7XoSZ+e VaZBqC38q7gX
NqnlDjp48Gj4fyWvj0VzM5pk1DFpHsLl32/lzk+2ZX7KZOL30lwl+Uj2+tRV x4XeWwWX/gBQ
SwcILUlSVwcCAACQBgAAUEsDBBQACAAIAAWWWjwAAAAAAAAAAAAAAAAqAAAA Y29tLnh5ei5w
cXIubW9uaXRvci9tb2RlbC9tb25pdG9yLmdlbm1vZGVsrVXLbtswELwHyD8I zLla14eiMCyn
aA0XQevWQBwgV1paK2zER0n6oX59KZq0pTopEsc6ibs7szNLUhpeb3mVrFEb JkVG3qc9kqDI
ZcFEmZG7+eTdR3I9urwYlii4LLAafEUxbV6SLWeDPbDvgJcXiXscnzADl8zI g7VqALDZbFLJ
y1TqEu6nNySURMZOHeYVUwZ9LfIl9Hu9PsSWJPGAMdOYW6nrjEAuebqt/6Tq t065FMyFweg8
aPHls2pVMnEzzsgTxYHyB+WYkWmMMa6ktqgbkFOyV+UUpTGX/qJrGvo4YlUx KnL8juvG0Ydm
jrlUtWblg50wrAqTkSWtDJJkZbBwlmY0f6QluriqqF1KzQegvFZo99yaArxG uL8dp3FoVwAu
QUZN/6HDIit3Mxp98vkhdIK+rDz0TJTGJdu2LC+owZDtDIokBTNKGrqocKbl mhWoJzSM3+oV
hhEkCeau454izDf10SvYKd2JGFNL57VyKnwyLo8w8KWixkTkDtsUzqh22+W2 IBB0Ys+wwJxA
lABtDS1dvjCq8otjss9MNFejK+qnQk2tuwcBu18/i4dF4IG3ElFrNVusLHb9 BS+vdPcN65Od
OSwItwenW2oYrNuTczgJ5/oW7cmGDhTwiLU53VeLiBbFQU+8kt3T/J+T3CVq VLVEvZXtiRMJ
HZ9nsK+RyzWeZwI7rn+GcH7JYSzmPKIj24tkHx1/H4if8OanDEd/ZRf9C1BL Bwjg+SSaJgIA
ANMHAABQSwMEFAAIAAgABZZaPAAAAAAAAAAAAAAAADgAAABjb20ueHl6LnBx ci5tb25pdG9y
L3NyYy9jb20veHl6L3Bxci9tb25pdG9yL0JpbmRpbmcuamF2YZ1Sy27CMBA8 Eyn/sDcoAvMB
UERb6K29lEOvTrKAS/yo47RQxL93Y/MUEUW9JN7szOx4NoanSz5HSLVkq/UP M5+WSa2E07Yf
R3EkpNHWgbZzhmkuTIFsVWTs/W384JwVSelwTA1uuRNa9a8RJjlKVO5W+CuX mD1p6itiXYVO
14ZczATZDqpx1Gu34wja8ChUJtQcRAFugSCUQzvjKVLFHWQVCUOrmQRoE1qC IesAB8mNqch6
RkVSFhW26OrkA1MHXGXgR/B9EHck76UmL88gdYY5Cwj/GPkv/tyLI1MmuUhP /OyNbir3DW+/
QazpgpwXC13mGVh0pVXwTc7xCy3VxmJB4RSVPd3l1gnScnA/hM0oF2oJFzlu OxCEj4DLvRBI
2xPEeb5btpPYvQ4X88XOZK0uKO1gkBJ8qMo8H/T8MTApk0Y9abeX1l0f/peN Oq7oPJq6Xzjc
PQyQfJ3g9aT+yKBuwg0p1NIOlwhJbOPoF1BLBwgAxo6+bgEAAL0DAABQSwME FAAIAAgABZZa
PAAAAAAAAAAAAAAAADQAAABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20v eHl6L3Bxci9t
b25pdG9yL0tleS5qYXZhjU7LasMwEDxboH/YUx4myB9gkwRKcik99QtUZeOK 6FV5DVVD/r3O
uqU59rLM7szOTNLmonsEE736LF8qfWTlY7AUcyuFFE1dSwE1PGMBOwC9I9hA mM/a4LRpghOe
bcCZWl6wLGFlFaoNaLi+Urah38CT08Nwg6RtXk//rD28HMHHEzoFnMBjzxfG jRRpfHPWPATe
W1zvtSruVT1+8JKRxhxgzoUQCdAnKjM9OVa/jPa4WrfwDy/uvnDU7hY9tezZ mUm3DaNzXcPw
z5/V3W4LVNJPwk2Kb1BLBwipDfvD1gAAAGYBAABQSwMEFAAIAAgABZZaPAAA AAAAAAAAAAAA
ADsAAABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6L3Bxci9tb25p dG9yL01vbml0
b3JTZXQuamF2Ya2Rz07DMAzGz6vUd7B2mLoJdQ/QUiEkuMBOPEHWesMs/0jd ioJ4d5q0hQ0x
JCQukR1/X36ObUV5EHuE0qj0pXtN7bNLldHExmVxFEekrHEMT6IVacMk03uq OVTWq1UcwQo2
g/oBGagGfkQgzeh2osQ+EwwV7kjjULrZ3IIyFcoUgjkcV+EmxOs4ss1WUnn0 yBHgzYNngTz7
MpZGsyCtUPPlnF2DcxjrDrlxGnzPC8nZHXaLPWdgTV3TVnaAynI3iHvyzOvy XlTAAbs6WWbw
I29MrHBCeSUkvWcJ2jDkZa8odCNlvg7hqXhLuiK9h+R6CH41+Y5aQxWIqvIE j7qA0Tk99X89
fuIcKtPiRDwHOD/0P83l24bG34Utna5lrBTTx+uTBt/j6ANQSwcI40ByNicB AADKAgAAUEsB
AhQAFAAIAAgABZZaPPSlsdLQAAAAeAEAAB4AAAAAAAAAAAAAAAAAAAAAAGNv bS54eXoucHFy
Lm1vbml0b3IvLmNsYXNzcGF0aFBLAQIUABQACAAIAAWWWjzWmQUq7wAAAKgC AAAcAAAAAAAA
AAAAAAAAABwBAABjb20ueHl6LnBxci5tb25pdG9yLy5wcm9qZWN0UEsBAhQA FAAIAAgABZZa
PI6QSO2SAAAA7gAAACgAAAAAAAAAAAAAAAAAVQIAAGNvbS54eXoucHFyLm1v bml0b3IvTUVU
QS1JTkYvTUFOSUZFU1QuTUZQSwECFAAUAAgACAAFllo8vQcbf7QAAADzAAAA OQAAAAAAAAAA
AAAAAAA9AwAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIv bW9uaXRvci9C
aW5kaW5nLmNsYXNzUEsBAhQAFAAIAAgABZZaPL2R0cCsAAAA4wAAADUAAAAA AAAAAAAAAAAA
WAQAAGNvbS54eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0 b3IvS2V5LmNs
YXNzUEsBAhQAFAAIAAgABZZaPDRCi4r0AAAA8QEAADwAAAAAAAAAAAAAAAAA ZwUAAGNvbS54
eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFyL21vbml0b3IvTW9uaXRv clNldC5jbGFz
c1BLAQIUABQACAAIAAWWWjwtSVJXBwIAAJAGAAAnAAAAAAAAAAAAAAAAAMUG AABjb20ueHl6
LnBxci5tb25pdG9yL21vZGVsL21vbml0b3IuZWNvcmVQSwECFAAUAAgACAAF llo84PkkmiYC
AADTBwAAKgAAAAAAAAAAAAAAAAAhCQAAY29tLnh5ei5wcXIubW9uaXRvci9t b2RlbC9tb25p
dG9yLmdlbm1vZGVsUEsBAhQAFAAIAAgABZZaPADGjr5uAQAAvQMAADgAAAAA AAAAAAAAAAAA
nwsAAGNvbS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFyL21vbml0 b3IvQmluZGlu
Zy5qYXZhUEsBAhQAFAAIAAgABZZaPKkN+8PWAAAAZgEAADQAAAAAAAAAAAAA AAAAcw0AAGNv
bS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFyL21vbml0b3IvS2V5 LmphdmFQSwEC
FAAUAAgACAAFllo840ByNicBAADKAgAAOwAAAAAAAAAAAAAAAACrDgAAY29t Lnh5ei5wcXIu
bW9uaXRvci9zcmMvY29tL3h5ei9wcXIvbW9uaXRvci9Nb25pdG9yU2V0Lmph dmFQSwUGAAAA
AAsACwD+AwAAOxAAAAAA
--------------080704030407060801010706
Content-Type: application/x-zip-compressed;
name="com.xyz.pqr.monitor-3.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="com.xyz.pqr.monitor-3.zip"

UEsDBBQACAAIANqWWjwAAAAAAAAAAAAAAAAeAAAAY29tLnh5ei5wcXIubW9u aXRvci8uY2xh
c3NwYXRonZBPTwIxEMXPmvgdNr0zKxfjYVdizJpAIhhYvZLSTpaROi3TlsC3 B/8QjQkcvM2b
/Oa9l6kG23dXbFAiea5VH65VgWy8Je5q9dI+9m7V4O7qsjJOxxh0Wh7ExY9C TrIrVsS2VlGM
Kj6WX2N5mjSej6SXDtA4ChHhzSZwOrNZHtJhNG3mD5Nxez8cN9PyL0ecUFg7 sLjIHWT6vkSB
WdJstdjXp3YXsBzpjZ41vT7c/KNSsAjGC4LgOpOgfXa5I47nrHxOIaej24L4 E67K3y/cA1BL
Bwj0pbHS0AAAAHgBAABQSwMEFAAIAAgA2pZaPAAAAAAAAAAAAAAAABwAAABj b20ueHl6LnBx
ci5tb25pdG9yLy5wcm9qZWN0vZLBSgMxEIbPFnyHsncTvfWQbqEVb4pQfYCY jGvKZhIn2VJ9
epM0Ky6l4EG8zf/P/PmGIWJ1sP18DxSMw2Vzw66bOaBy2mC3bJ6f7q4Wzaq9 nAlPbgcq3kJQ
ZHxM08m9ECgttMpZdvj4ZP6dmHVooiPBSyePpK4FjK3gY5Xd+l4ogk/Uy2B6 vfWgsqpyk6IS
dXEq1VHHQPXGB2A7HZlylAq5lyUAP1ZICUndkNmhaj41BD+h/IrrNbB7ieYV Qlz/L3ar3sDK
P4FWZzx54sWBoE4fxflrH/t5gTJ3LpNXfuyHzuDDSWCsM/H7L0x/2hdQSwcI 1pkFKu8AAACo
AgAAUEsDBBQACAAIANqWWjwAAAAAAAAAAAAAAAAoAAAAY29tLnh5ei5wcXIu bW9uaXRvci9N
RVRBLUlORi9NQU5JRkVTVC5NRnWRPU/DMBCG90j5D17YiEUZGFx1AJQFURRR id11ruGEP9Kz
HSX59eSjCgGVzfbz+u7xeS8tnsCH7APIo7OCbfhdmjxFW2rI9he6wPsFvUkD gt3UOlZox81C
Dp05Oo1qTihneNv1vD4TN85icLT1aCsNYSi4CxR/bq4dVhbPWnpfyPApGF9l beloNCDXYAn0
y+HVKamxl2EqN0su8B3OEQnKvAUVx0RuGyRnDdgg2Its5CHPNvwhTfK2dhSy QqovWV1/zG2a
XDvmaGr9Hxua6jS5aGSzlWCOKg5KY+2BK0fAKdqABsYqawbmNKyHwLZBj0fU GDqxI4BJ9m+6
9eXV3DKNRxWwmQZVjL/WCaZl36XJN1BLBwh7LR7/EQEAABoCAABQSwMEFAAI AAgA2pZaPAAA
AAAAAAAAAAAAADkAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6 L3Bxci9tb25p
dG9yL0JpbmRpbmcuY2xhc3Ntj81qAkEQhKvVOP4FvIfcI4INXj0ZNCfBg5dc Z3c7y8jujI5j
MHm0HHwAH0qcxQgGcmgoiq+aqtP55whgjEeFGuEpdSUfvr55s/VcOmuC8/xq bGZsrtAg9Nf6
U3Ohbc7LZC1pUGgSnp3PWdLCbHbCUn5E7bzw/IoQVHJ9QRi8DBb38GGX8ftq Ni+kFBtm0dZe
B+PshNDWIXiT7IMQhv/npjfib7KzcnufypspYrT3239UVY9lCfV4D3F1LQ5S aKEa1kYnOoRu
5aN3AVBLBwhxqPSLywAAABgBAABQSwMEFAAIAAgA2pZaPAAAAAAAAAAAAAAA ADUAAABjb20u
eHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9tb25pdG9yL0tleS5j bGFzc2WPzWrC
QBSFz1htotYfaKkr9+qiF7pV3IhuKnSRJ5iGMYwkM3EyiumjdeED+FDFG11I 6eLC4Zzvwjnn
358TgHf0AtQEBrHN6Fh+U75zlFmjvXX0ocoAdYH+Vh4kpdIk9Pm1VbEP8Cgw tC4hFac6LxSp
bMPaOkXLGyJQNzJTAi+j8fr+H3mnTTLl1Jc5p89/0kUqi4LDZqQTI/3eMfH6 n5hN5gy1Irt3
sVrplKmQu75VGBcTeOBr8Loalw8QohrRRIvdduXiiVXnqroXUEsHCAn80t7L AAAACAEAAFBL
AwQUAAgACADallo8AAAAAAAAAAAAAAAAQAAAAGNvbS54eXoucHFyLm1vbml0 b3IvYmluL2Nv
bS94eXovcHFyL21vbml0b3IvTW9uaXRvckZhY3RvcnkuY2xhc3ONUl1LAkEU PWPp6qZl2beV
ERGK0ECvRVCiIJkFSu/jelu2dndss6j+VfQSPfQD+lHR3XVfir4WZs7M2XPP zL1z395fXgHs
YN1AQmDD0p68u3+Qg6tAetp3hjqQxyNsKIvnewPjAvkLdaukq3xbnvQuyBoa SAms6cCWZLnO
4Jokeee81gHJehwpkKFmu9M9aNfqAputv8/aFUjvsR9z+wJj5cqZwHhN98lE DlMGJgWq37k4
3sD9YtVkKos8ptkh9BPYKlf+c4UMBApZGEgLTLUcn9o3Xo+Cruq5JDDT0pZy z1TghPuYzFkB
qSEdOn7f8W2B0g8nxQLOMjOKOCIuUvEHNf9kZX6kjC/ZIU5k4/dEWMNx0zYN Y+JUWZfKpj8r
EOs42Ozom8CihhNmV/hcoO2wFfjx+X14JHkshcXipkrynIHJzATvqozhZzwj +4SZR14mMMuz
yQgsI4UC5iI27LB5LES4yHYhLqMY4QpWWcO9FilLH1BLBwhS1IJvcwEAAMAC AABQSwMEFAAI
AAgA2pZaPAAAAAAAAAAAAAAAAEkAAABjb20ueHl6LnBxci5tb25pdG9yL2Jp bi9jb20veHl6
L3Bxci9tb25pdG9yL01vbml0b3JQYWNrYWdlJExpdGVyYWxzLmNsYXNzhVLL btNAFD3TpnGc
TElpoRAepS0BEvoYxLYIqU0Dsuo6CFuVWKBq4g6Wi2MH20WEvwJWsIAtYsma NZ+BuOMEJBal
ljznXJ/7HN9vvz59BnAf9wxMMaz5yUC8Gb0Vw1epGCRxmCep2B/jE+m/lIFq 2mGuUhllBkoM
c8fytRSRjAPR6x8rP2cwdixn13IeMyzZSRoI5UfhMFNCDV4QT1Ilup1IZtkW w/Re9xlDbb/n
WF7v6aHb9RhmOva26zKsnBa8K3PpjYaK4isPSKbmHlKqVvuAodRJjpSJOs4b mGNYPXscjnks
MJjKclxv2+l0GZr22WFbNSpykWMRlxiqgcp3wvgojAOG5Vb7/2ObYGhwzKCs c1zluKZzlCnH
nhppcYnDGIvLHCtanCVxUt9Vufa5yVEZ+9ziuI07NAH5FAUOST29h7+3p7O0 OUxUGep2GCvn
ZNBXqSf7kWKYtxNfRgcyDbU9+Vh1k5PUV49CbSz8eyGbehEYuBXHKi36UBn9 oD/LUmZUbpo2
rYSGHp1YQ09ZYGWC1AshRaEGTjhL1nNC/Wy8x7mPuMDwAZcLekXT6wW9oelq QZuatt5RwBTu
0rlIxYCvlPA78R90nT+xji9YKzz0u16cG9gkrEK3WYcom78BUEsHCOPDFt3g AQAAGQMAAFBL
AwQUAAgACADallo8AAAAAAAAAAAAAAAAQAAAAGNvbS54eXoucHFyLm1vbml0 b3IvYmluL2Nv
bS94eXovcHFyL21vbml0b3IvTW9uaXRvclBhY2thZ2UuY2xhc3ONVFtT00AU /lagaUuRm6hV
RG4iiHa9X8BxppTUydCmTBMYfeosYa3BNKlpcKz/yvHF8cEf4I9
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517340 is a reply to message #517334] Fri, 26 February 2010 20:10 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------010806020202000009070106
Content-Type: multipart/alternative;
boundary="------------060007080807090800000200"


--------------060007080807090800000200
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Paul,

Comments below.

Paul E. Keyser wrote:
> Ed --
>
> > You'd probably be better to use Eclipse 3.5 with
> > EMF 2.5 if you have the choice.
> ...
> > How come you're using 3.4?
>
> Why 3.4? Well, er, I'm doing all this inside the company tool, built
> on Eclipse, and that's where they are. So, no real prospect of
> migrating my work to 3.5 ... until the tool does, and I am well below
> any level that would have any influence on that.
I see. :-)
>
> >> BTW, regarding the ref-card, on p. 1, it is only because I now know
> >> that "reload" means "regenerate" that I can see where that step is
> >> being described.
> > Reload means updating the Ecore and GenModel. Regenerating involves
> > using the GenModel to produce Java code and the rest of the artifacts.
>
> Seems like maybe my problem is a confusion about when/how I want to
> "reload" versus "regenerate" ... At this point I no longer know why I
> would do which. What I intend is to make a change in the interface and
> "re-create" whatever stuff I need to recreate.
Reload updates the models; regenerate produces the artifacts derived
from those models.
>
>
> I attach several zips of the com.xyz.pqr.monitor project in different
> states:
That sounds like 4 times the work. :-P
>
> 1) when I have just created the interfaces -- the Eclipse exporter
> failed to create the empty "model" directory (I think I recall this is
> a known bug/feature)
I'm not sure I follow this comment.
>
> 2) after I have created the EMF model -- if I "reload" (context-menu
> of the FOO.genmodel -> Reload) after this step, no problems
Yes, that would just repeat the process you did already, which had no
problems.
>
> 3) after I have "generated": open the FOO.genmodel in its editor, the
> one called "EMF Generator" in the UI, then context-menu on the root
> element of the tree, -> "Generate Model" -- if I "reload"
> (context-menu of the FOO.genmodel -> Reload) after this step, the
> problem occurs
At this point the FOOPackage will have been created and it has @model
annotations in it too.
>
> I did select "Annotated Java" as the "Model Importer" when doing a
> "Reload" -- since that's what I started with and I am *re*-loading --
> but maybe the system expects me to reload from the ECore model?
No, that's fine.
> (But I would expect that the ECore model after I would have changed
> the interfaces would be out of date, so that I wouldn't want to
> generate from the ECore model ...)
Yep, that's right.
>
> 4) after the failed reload, with the extra Class_ stuff
As I expected, I can't reproduce this problem with 2.6 so I'm sure I
can't reproduce with 2.5 either...

There are quite a few issues here. None of the things you've marked
with @model end up being features, because none of them follow the
"Bean" pattern, i.e, the methods are of the form X getFoo(), so they all
end up being EOperations that you must implement manually. Probably
that's not what you want.

There also appears to be an interesting bug related to the use of Class
as the name of the data type. The generator ends up generating a
getClass_ method in the MonitorPackage; it must do this because
getClass() is used by Java itself . The importer produces a data type
called Class_ from that, but the original data type was called Class.
Hmmm. Now there are two. This can't be a good thing...

I've attached a version that avoids the problem by reusing EJavaClass.
Unfortunately I don't think that will work with 2.4. However, if you
use this annotation, you'll force the importer to reuse EJavaClass.

/**
* @model dataType="org.eclipse.emf.ecore.EJavaClass<?>"
*/
Class<?> type();

>
> thanks,
> Paul
>

--------------060007080807090800000200
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Paul,<br>
<br>
Comments below.<br>
<br>
Paul E. Keyser wrote:
<blockquote cite="mid:hm9nvh$8ui$1@build.eclipse.org" type="cite">Ed --
<br>
<br>
&gt; You'd probably be better to use Eclipse 3.5 with
<br>
&gt; EMF 2.5 if you have the choice.
<br>
....
<br>
&gt; How come you're using 3.4?
<br>
<br>
Why 3.4? Well, er, I'm doing all this inside the company tool, built on
Eclipse, and that's where they are. So, no real prospect of migrating
my work to 3.5 ... until the tool does, and I am well below any level
that would have any influence on that.
<br>
</blockquote>
I see. :-)<br>
<blockquote cite="mid:hm9nvh$8ui$1@build.eclipse.org" type="cite"><br>
&gt;&gt; BTW, regarding the ref-card, on p. 1, it is only because I now
know
<br>
&gt;&gt; that "reload" means "regenerate" that I can see where that
step is
<br>
&gt;&gt; being described.
<br>
&gt; Reload means updating the Ecore and GenModel.


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517631 is a reply to message #517340] Mon, 01 March 2010 14:58 Go to previous messageGo to next message
Paul E. Keyser is currently offline Paul E. KeyserFriend
Messages: 878
Registered: July 2009
Senior Member
Hi Ed --

Hope you had a good weekend -- I only poked a little at this over the
weekend, and just now. The revised version you sent also failed, as
indeed you feared.

Since the range of types that we expect to return in the type() method
is rather limited, I thought we could maybe use "String typeName()" and
specify in the javadoc that only such-and-such a set should be returned,
and that the String must be a Java-class-name. (I'm not sure that will
work all the way through, but ...) Anyway, that design at least allows
for re-load after generate!

> There are quite a few issues here. None of the things you've marked
> with @model end up being features, because none of them follow the
> "Bean" pattern, i.e, the methods are of the form X getFoo(), so they
> all end up being EOperations that you must implement manually.
> Probably that's not what you want.
>
Sounds like there are some fundamental EMF things I do not know here. I
did notice that all the methods in the impl-classes had to be
implemented manually, and I was surprised by that, having somehow gotten
the impression that EMF was "supposed" to generate a lot of that code ...

I was more or less following the example in the Eclipse Help docs --
http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclips e.emf.doc/references/overview/EMF.html
and
http://help.eclipse.org/ganymede/index.jsp?nav=/14_1

What would you recommend as a source for me to look at to understand the
issues around "features" and so on?

thanks,
Paul
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517654 is a reply to message #517631] Mon, 01 March 2010 10:58 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
Paul,

Comments below.

Paul E. Keyser wrote:
> Hi Ed --
>
> Hope you had a good weekend
Canada won gold in hockey. I generally don't watch hockey, but I made
an exception. And a good one it was.
> -- I only poked a little at this over the weekend, and just now. The
> revised version you sent also failed, as indeed you feared.
>
> Since the range of types that we expect to return in the type() method
> is rather limited, I thought we could maybe use "String typeName()"
> and specify in the javadoc that only such-and-such a set should be
> returned, and that the String must be a Java-class-name. (I'm not sure
> that will work all the way through, but ...) Anyway, that design at
> least allows for re-load after generate!
Did you try doing the @model datatype="..." thing? That should avoid
the problem even in the older version
>
> > There are quite a few issues here. None of the things you've marked
> > with @model end up being features, because none of them follow the
> > "Bean" pattern, i.e, the methods are of the form X getFoo(), so they
> > all end up being EOperations that you must implement manually.
> > Probably that's not what you want.
> >
> Sounds like there are some fundamental EMF things I do not know here.
> I did notice that all the methods in the impl-classes had to be
> implemented manually, and I was surprised by that, having somehow
> gotten the impression that EMF was "supposed" to generate a lot of
> that code ...
Yes, for features, but operations represent behavior and EMF doesn't
generally know what behavior you want.
>
> I was more or less following the example in the Eclipse Help docs --
> http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclips e.emf.doc/references/overview/EMF.html
>
> and
> http://help.eclipse.org/ganymede/index.jsp?nav=/14_1
A little less than more.
>
> What would you recommend as a source for me to look at to understand
> the issues around "features" and so on?
Simply follow the standard Java Bean pattern for naming. I.e., <Type>
get<NameOfFeature>() will produce what you want. Only put @model on those.
>
> thanks,
> Paul


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517742 is a reply to message #517654] Mon, 01 March 2010 21:57 Go to previous messageGo to next message
Paul E. Keyser is currently offline Paul E. KeyserFriend
Messages: 878
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------010606010902070505040208
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit


>> Hope you had a good weekend
> Canada won gold in hockey. I generally don't watch hockey, but I made
> an exception. And a good one it was.
:) Well, I noticed that Canada, besides winning the most gold medals,
also -- if we normalize the # of medals against population -- has
outdone the USA by a factor of six. (See attached, for amusement.) Seems
like, except for France & USA, medals track per capita GDP nicely.
What's wrong with USA and France ...? :)

========

>> > There are quite a few issues here. None of the things you've marked
>> > with @model end up being features, because none of them follow the
>> > "Bean" pattern, i.e, the methods are of the form X getFoo(), so they
>> > all end up being EOperations that you must implement manually.
>> > Probably that's not what you want.
>> >
>> Sounds like there are some fundamental EMF things I do not know here.
>> I did notice that all the methods in the impl-classes had to be
>> implemented manually, and I was surprised by that, having somehow
>> gotten the impression that EMF was "supposed" to generate a lot of
>> that code ...
> Yes, for features, but operations represent behavior and EMF doesn't
> generally know what behavior you want.
>>
>> I was more or less following the example in the Eclipse Help docs --
>> http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclips e.emf.doc/references/overview/EMF.html
>>
>> and
>> http://help.eclipse.org/ganymede/index.jsp?nav=/14_1
> A little less than more.
>>
>> What would you recommend as a source for me to look at to understand
>> the issues around "features" and so on?
> Simply follow the standard Java Bean pattern for naming. I.e., <Type>
> get<NameOfFeature>() will produce what you want. Only put @model on those.

Ah, I see -- that *is* implicitly in the example, but the newbie didn't
notice the pattern, or think of it as something that would make a
difference, and the help-docco makes no mention of it.

I tried to make the changes in the ecore-editor, but did not work out
how to, so went back to the 1st stage of the project, and edited the
annotated Java.

Then, when I generated the model-Java, the MonitorSetImpl.java had two
compiler errors, for the missing @model-less methods <code>add(Key key,
Binding binding)</code> and <code>remove(Key key)</code>; trivial to
add, but a little odd to have generated code w/ compiler errors. Also,
I'm unclear on how to use the EMF framework to implement those two
"operational" methods ...

But it is still the case that the body of the method
<code>EList<Binding> getBindings(Key key)</code> requires implementation
(it is just a stub) -- no clue why. And there are a bunch of methods
like <code>Object eGet(int featureID, boolean resolve, boolean
coreType)</code> whose purpose escapes me -- maybe I just ignore them?

(See attached zip.)

I've ordered this book:
http://www.informit.com/store/product.aspx?isbn=978032133188 5 (I have
stashed somewhere the 2005 first edition), and I hope that'll help me.

thanks,
sorry to be such a newbie,
Paul



--------------010606010902070505040208
Content-Type: application/pdf;
name="Medals-PerCapita-ByCountry.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="Medals-PerCapita-ByCountry.pdf"

JVBERi0xLjQNJeLjz9MNCjE1NSAwIG9iaiA8PC9MaW5lYXJpemVkIDEvTCAx ODM1MS9PIDE1
Ny9FIDgwMTAvTiAxL1QgMTUyMDMvSCBbIDY5NiAyMDJdPj4NZW5kb2JqDSAg ICAgICAgICAg
ICAgICAgDQp4cmVmDQoxNTUgMjANCjAwMDAwMDAwMTYgMDAwMDAgbg0KMDAw MDAwMTA3NCAw
MDAwMCBuDQowMDAwMDAxMzI4IDAwMDAwIG4NCjAwMDAwMDE1OTEgMDAwMDAg bg0KMDAwMDAw
MTYzMyAwMDAwMCBuDQowMDAwMDAxNzg1IDAwMDAwIG4NCjAwMDAwMDE5Mzcg MDAwMDAgbg0K
MDAwMDAwMjA4OSAwMDAwMCBuDQowMDAwMDAyNDk5IDAwMDAwIG4NCjAwMDAw MDI1MzUgMDAw
MDAgbg0KMDAwMDAwNDA5OSAwMDAwMCBuDQowMDAwMDA0NTA2IDAwMDAwIG4N CjAwMDAwMDQ2
MTcgMDAwMDAgbg0KMDAwMDAwNDcxMCAwMDAwMCBuDQowMDAwMDA0Nzk4IDAw MDAwIG4NCjAw
MDAwMDc0NjggMDAwMDAgbg0KMDAwMDAwNzcxMCAwMDAwMCBuDQowMDAwMDA3 OTMzIDAwMDAw
IG4NCjAwMDAwMDA4OTggMDAwMDAgbg0KMDAwMDAwMDY5NiAwMDAwMCBuDQp0 cmFpbGVyDQo8
PC9TaXplIDE3NS9QcmV2IDE1MTkxL1hSZWZTdG0gODk4L1Jvb3QgMTU2IDAg Ui9JbmZvIDcg
MCBSL0lEWzxEMkRBREYwRUU4MTdBRjI3N0ZFOTYyOEU0OTE5NTg2Qz48MTgw RDlBQkYxODUy
NEE0RkE4NzBGRTJEQ0VGNDgwODg+XT4+DQpzdGFydHhyZWYNCjANCiUlRU9G DQoKMTc0IDAg
b2JqPDwvTGVuZ3RoIDExMC9DIDEwOC9GaWx0ZXIvRmxhdGVEZWNvZGUvSSAx MzMvTCA5Mi9T
IDQyPj5zdHJlYW0NCnjaYmBgEGBgYEljAAIpKQZUwALGHBMYGBg7GpDEBaCY gUGFgYfPgI3d
oYTdsYyB9Ye4gTfzBJMlC85xb9AEyzMzMKi/BdJMQGwBxIwMDHINED5nLpBm Y2DxtNIGMtgZ
GCybIAoYuQECDACN5Q2gDQplbmRzdHJlYW0NZW5kb2JqDTE3MyAwIG9iajw8 L0xlbmd0aCAy
Ny9GaWx0ZXIvRmxhdGVEZWNvZGUvV1sxIDEgMV0vSW5kZXhbOCAxNDddL0Rl Y29kZVBhcm1z
PDwvQ29sdW1ucyAzL1ByZWRpY3RvciAxMj4+L1NpemUgMTU1L1R5cGUvWFJl Zj4+c3RyZWFt
DQp42mJiYmRgYmBgHMWDBTPOHapuBwgwAHSmAlkNCmVuZHN0cmVhbQ1lbmRv YmoNMTU2IDAg
b2JqPDwvTWFya0luZm88PC9MZXR0ZXJzcGFjZUZsYWdzIDAvTWFya2VkIHRy dWU+Pi9NZXRh
ZGF0YSA2IDAgUi9QaWVjZUluZm88PC9NYXJrZWRQREY8PC9MYXN0TW9kaWZp ZWQoRDoyMDEw
MDMwMTE2Mzc1MCk+Pj4+L1BhZ2VzIDUgMCBSL1BhZ2VMYXlvdXQvT25lQ29s dW1uL1N0cnVj
dFRyZWVSb290IDggMCBSL1R5cGUvQ2F0YWxvZy9MYXN0TW9kaWZpZWQoRDoy MDEwMDMwMTE2
Mzc1MCkvUGFnZUxhYmVscyAzIDAgUj4+DWVuZG9iag0xNTcgMCBvYmo8PC9D cm9wQm94WzAg
MCA2MTIgNzkyXS9Bbm5vdHMgMTU4IDAgUi9QYXJlbnQgNSAwIFIvU3RydWN0 UGFyZW50cyAw
L0NvbnRlbnRzIDE2NCAwIFIvUm90YXRlIDAvTWVkaWFCb3hbMCAwIDYxMiA3 OTJdL1Jlc291
cmNlczw8L0NvbG9yU3BhY2U8PC9DUzAgMTYzIDAgUj4+L0ZvbnQ8PC9UVDAg MTYyIDAgUi9U
VDEgMTY1IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0XS9FeHRHU3RhdGU8PC9H UzAgMTcyIDAg
Uj4+Pj4vVHlwZS9QYWdlPj4NZW5kb2JqDTE1OCAwIG9ialsxNTkgMCBSIDE2 MCAwIFIgMTYx
IDAgUl0NZW5kb2JqDTE1OSAwIG9iajw8L1JlY3RbMTk4Ljk2IDcwNC42NzYg MjM1LjAxNyA3
MjAuNzQ0XS9TdWJ0eXBlL0xpbmsvQlM8PC9TL1MvVyAwL1R5cGUvQm9yZGVy Pj4vQSAxNjgg
MCBSL0gvSS9TdHJ1Y3RQYXJlbnQgMS9Cb3JkZXJbMCAwIDBdL1R5cGUvQW5u b3Q+Pg1lbmRv
YmoNMTYwIDAgb2JqPDwvUmVjdFsyNTUuMTIgNzA0LjY3NiAzMTMuMjk3IDcy MC43NDRdL1N1
YnR5cGUvTGluay9CUzw8L1MvUy9XIDAvVHlwZS9Cb3JkZXI+Pi9BIDE2NyAw IFIvSC9JL1N0
cnVjdFBhcmVudCAyL0JvcmRlclswIDAgMF0vVHlwZS9Bbm5vdD4+DWVuZG9i ag0xNjEgMCBv
Ymo8PC9SZWN0WzQ0MS40MiA3MDQuNjc2IDUyMS45OTUgNzIwLjc0NF0vU3Vi dHlwZS9MaW5r
L0JTPDwvUy9TL1cgMC9UeXBlL0JvcmRlcj4+L0EgMTY2IDAgUi9IL0kvU3Ry dWN0UGFyZW50
IDMvQm9yZGVyWzAgMCAwXS9UeXBlL0Fubm90Pj4NZW5kb2JqDTE2MiAwIG9i ajw8L1N1YnR5
cGUvVHJ1ZVR5cGUvRm9udERlc2NyaXB0b3IgMTcwIDAgUi9MYXN0Q2hhciAx MjEvV2lkdGhz
WzI1MCAwIDAgMCAwIDAgMCAwIDMzMyAzMzMgMCAwIDAgMCAyNTAgMCA1MDAg NTAwIDAgNTAw
IDUwMCAwIDUwMCAwIDAgMCAwIDMzMyAwIDAgMCAwIDAgMCAwIDY2NyA3MjIg MCA2NjcgNzIy
IDAgMzg5IDAgMCAwIDg4OSAwIDAgNjExIDAgMCA1NTYgMCA3MjIgMCAwIDAg MCAwIDAgMCAw
IDU3MCAwIDAgNTAwIDAgMCA1MDAgNDQ0IDAgMCAwIDI3OCAwIDAgMjc4IDAg NTU2IDUwMCA1
MDAgMCAzODkgMzg5IDI3OCA1NTYgMCAwIDAgNDQ0XS9CYXNlRm9udC9UaW1l c05ld1JvbWFu
LEJvbGRJdGFsaWMvRmlyc3RDaGFyIDMyL0VuY29kaW5nL1dpbkFuc2lFbmNv ZGluZy9UeXBl
L0ZvbnQ+Pg1lbmRvYmoNMTYzIDAgb2JqWy9JQ0NCYXNlZCAxNjkgMCBSXQ1l bmRvYmoNMTY0
IDAgb2JqPDwvTGVuZ3RoIDE0OTMvRmlsdGVyL0ZsYXRlRGVjb2RlPj5zdHJl YW0NCkiJpJdb
bxs3EIXf9Sv4KAMNzfsFDQIkcmKkhQujVp7qFhBkJXWRyIZkw0h/fYa7S+2s PONdtC+W4LM8
nB1+OiRPL8Xr16cXi49nQok3b96dLcRMiS8zLW7F7PT8Cr7vZ++Ws9PlUgkt lp9BXa7h2eUT
/BHLvdCqfP5b/rUT2sCnKh9aW+lEVEnaIJbfZvPF3eP2YfddnCz/mb1fzt5f wEynV/er7aEA
XQs4XcC8631rJcR+vT0qQSqlUqkDzZeTzAFPeLG5WX3d4+kOz3iZBTylpXZi t5l9PirE1EKe
z6rLrK/q1ydUgPFewgcq4PLuXorruVZ/hesTXMfh0VKHT6UKVEq/IhavCNOB phZrh7VYk2Qw
z5sh7jc7sVjd3z6sBsvQT+n4V7f9qx9PZ410QYTspG+nu56XmeDNHUx5d/91 M2zAsN1+6rq3
k5tDHeaoDue0dMMlOLyvOD+7xCUcni1rkJT0iV6DwK7Bq34R6rdBMVbLlIZN +Xjx4efSFSs+
XZ0NW6JVlBHY1Fl68JAutX+aeoaig4+EZW+i1CNjQ9YydyI8HjoxW2kNIxqX yz9o0cJkmRvp
DLw0o3XF0iJqfBySqHHT9aHpRz/CNnUCrKdrWv7b3e5p9V0IhvZEzoF+0wC2 Nc4iR2COMctj
ZjnDQuiIzJzMjJlWI25OaWlt1tgtsG56xM0rWM0cPHKLkcCzrJpzzwmscozl h9T8H1YiHVFG
qxUzWq2c0WoHGi1W0mgVt8eQ7WkAc33qOZK1EKQKhUPo2dvH/cPudsXypu0E 4EyCxwa28BKc
oZsCnVV5aAj5yBn6KdwZdVxhZg3DFPRSTkND5yn6YCU1D18AyvplHqJHaRU8 SqvYUVoHHSVV
5CgNN2U03IJ02dPh5rWMqWnS1dPmZrNl2ZiYbgZbQlJwdhPzLWC7zIJmJgbc sLjEuU0MOIvt
nKUYC0YmYo+tMjCjDEcZKVbMSLFyRoodaKRWSSNF3JkXsq0jLficSdIsBGd7 dl9tVzcrjgwz
JdWs9hE5GjbSzFikWWVk9MkiN+s4s/E4i4UyXFoMnNlolOnSVvgJocoyxZhL 0r+wi1onA7+L
0mqljFYrZrTacUaLFTRaxe2hQ+3ozF6+EqgZWyaBjv0xP9/svp2k+Wpbzm1/ Ln8hl2JStmko
qXeeW8UyN5ZtLXMRFzpPhnGz49HWQJcGxUXObTTaGuogAbEbiR0s4QvJZsrJ jwk2SqvEUVrl
jdI62iipskZpuCV0pj2DCu6BqY36X+92G/5YZicFmIoZW8LRi7OblmAFzt7O K85tWoR5bGa4
fdJOOo3lOGieDhRM7QqzNKkgNbtPkmLliRQrUKTYEUVqFSlSxJ15Ib3G7gA+ QzY2rfqwW23X
Gx60SbGlVECW/InMTkst2OZ7t+AZMzcttKB9qLRhZi2ulFjvRRmphNivtzOI Jnhcy+SaZlF9
d4d4U+LLUe9L29Ww4S2fcF7pq3CGwlN5GfgttiuKxpMWOzxpscOTFls8aa3D kxZxm+jIa6GM
TaO6bwSeSZXXKr36dPWWhdNNSkHvIjaEnw1nN341DTJGCFVspzJnNykGgSbk ps0UPuFS6QPP
Z/iPfPZlOCo/y4pDGrOAlqq4IyAtVkBJsQJKih2gpFYBJUXcp/9x+vPBy9zu Nb8/7ve3/E7t
pgSoyXA5QJ7as3bjd1pg1A3dHHfu85Mi1MDtE9tpzm38ShsAtZLuvRvs2RRr sHiK36t9sNJw
ezUtVtZIsbJGih1rpFZZI0XcmrE7bZQm0Hda77WM7Z3279ste6X10660EEq9 Ib9R+9EoTLFc
LzR2+8la7iLqx7IQ7haQhcYiPyXZ+4ofPxQCPyoYZGclGWoBDhwv7Lpw762b nIMCCTH5EsZo
ZEchPTIXOlrN+8P1dEAoObCIuU4Zmu/9yIovOdI2V5NW08pJjQZ2aJPjipbT YaCRGhdbwSeH
Phf7gXgVmQAmNqkMu56NZfspSzmg9ocAAwCSITiUDQplbmRzdHJlYW0NZW5k b2JqDTE2NSAw
IG9iajw8L1N1YnR5cGUvVHJ1ZVR5cGUvRm9udERlc2NyaXB0b3IgMTcxIDAg Ui9MYXN0Q2hh
ciAxMjEvV2lkdGhzWzI1MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMjUwIDAg MjUwIDAgNTAw
IDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDAgMCAwIDAg MCAwIDAgNzIy
IDAgNjY3IDAgMCA1NTYgNzIyIDAgMCAwIDcyMiAwIDAgNzIyIDAgMCAwIDY2 NyA1NTYgMCA3
MjIgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDQ0NCAwIDQ0NCA1MDAgNDQ0IDAg MCA1MDAgMjc4
IDAgMCAwIDc3OCA1MDAgNTAwIDAgMCAzMzMgMzg5IDI3OCA1MDAgMCA3MjIg MCA1MDBdL0Jh
c2VGb250L1RpbWVzTmV3Um9tYW4vRmlyc3RDaGFyIDMyL0VuY29kaW5nL1dp bkFuc2lFbmNv
ZGluZy9UeXBlL0ZvbnQ+Pg1lbmRvYmoNMTY2IDAgb2JqPDwvVVJJKGh0dHA6 Ly9lbi53aWtp
cGVkaWEub3JnL3dpa2kvTGlzdF9vZl9jb3VudHJpZXNfYnlfR0RQXyUyOG5v bWluYWwlMjlf
cGVyX2NhcGl0YSkvUy9VUkk+Pg1lbmRvYmoNMTY3IDAgb2JqPDwvVVJJKGh0 dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvTGlzdF9vZl9jb3VudHJpZXNfYnlfcG9wdWxh dGlvbikvUy9V
Ukk+Pg1lbmRvYmoNMTY4IDAgb2JqPDwvVVJJKGh0dHA6Ly93d3cubnl0aW1l cy5jb20vcGFn
ZXMvc3BvcnRzL29seW1waWNzL2luZGV4Lmh0bWwpL1MvVVJJPj4NZW5kb2Jq DTE2OSAwIG9i
ajw8L0xlbmd0aCAyNTc1L0ZpbHRlci9GbGF0ZURlY29kZS9OIDMvQWx0ZXJu YXRlL0Rldmlj
ZVJHQj4+c3RyZWFtDQpIiZyWeVRTdxbHf2/JnpCVsMNjDVuAsAaQNWxhkR0E UQhJCAESQkjY
BUFEBRRFRISqlTLWbXRGT0WdLq5jrQ7WferSA/Uw6ug4tBbXjp0XOEedTmem 0+8f7/c593fv
793fvfed8wCgJ6WqtdUwCwCN1qDPSozFFhUUYqQJAAMKIAIRADJ5rS4tOyEH 4JLGS7Ba3An8
i55eB5BpvSJMysAw8P+JLdfpDQBAGTgHKJS1cpw7ca6qN+hM9hmceaWVJoZR E+vxBHG2NLFq
nr3nfOY52sQKjVaBsylnnUKjMPFpnFfXGZU4I6k4d9WplfU4X8XZpcqoUeP8 3BSrUcpqAUDp
JrtBKS/H2Q9nuj4nS4LzAgDIdNU7XPoOG5QNBtOlJNW6Rr1aVW7A3OUemCg0 VIwlKeurlAaD
MEMmr5TpFZikWqOTaRsBmL/znDim2mJ4kYNFocHBQn8f0TuF+q+bv1Cm3s7T k8y5nkH8C29t
P+dXPQqAeBavzfq3ttItAIyvBMDy5luby/sAMPG+Hb74zn34pnkpNxh0Yb6+ 9fX1Pmql3MdU
0Df6nw6/QO+8z8d03JvyYHHKMpmxyoCZ6iavrqo26rFanUyuxIQ/HeJfHfjz eXhnKcuUeqUW
j8jDp0ytVeHt1irUBnW1FlNr/1MTf2XYTzQ/17i4Y68Br9gHsC7yAPK3CwDl 0gBStA3fgd70
LZWSBzLwNd/h3vzczwn691PhPtOjVq2ai5Nk5WByo75ufs/0WQICoAIm4AEr YA+cgTsQAn8Q
AsJBNIgHySAd5IACsBTIQTnQAD2oBy2gHXSBHrAebALDYDsYA7vBfnAQjIOP wQnwR3AefAmu
gVtgEkyDh2AGPAWvIAgiQQyIC1lBDpAr5AX5Q2IoEoqHUqEsqAAqgVSQFjJC LdAKqAfqh4ah
HdBu6PfQUegEdA66BH0FTUEPoO+glzAC02EebAe7wb6wGI6BU+AceAmsgmvg JrgTXgcPwaPw
PvgwfAI+D1+DJ+GH8CwCEBrCRxwRISJGJEg6UoiUIXqkFelGBpFRZD9yDDmL XEEmkUfIC5SI
clEMFaLhaBKai8rRGrQV7UWH0V3oYfQ0egWdQmfQ1wQGwZbgRQgjSAmLCCpC PaGLMEjYSfiI
cIZwjTBNeEokEvlEATGEmEQsIFYQm4m9xK3EA8TjxEvEu8RZEolkRfIiRZDS STKSgdRF2kLa
R/qMdJk0TXpOppEdyP7kBHIhWUvuIA+S95A/JV8m3yO/orAorpQwSjpFQWmk 9FHGKMcoFynT
lFdUNlVAjaDmUCuo7dQh6n7qGept6hMajeZEC6Vl0tS05bQh2u9on9OmaC/o HLonXUIvohvp
6+gf0o/Tv6I/YTAYboxoRiHDwFjH2M04xfia8dyMa+ZjJjVTmLWZjZgdNrts 9phJYboyY5hL
mU3MQeYh5kXmIxaF5caSsGSsVtYI6yjrBmuWzWWL2OlsDbuXvYd9jn2fQ+K4 ceI5Ck4n5wPO
Kc5dLsJ15kq4cu4K7hj3DHeaR+QJeFJeBa+H91veBG/GnGMeaJ5n3mA+Yv6J +SQf4bvxpfwq
fh//IP86/6WFnUWMhdJijcV+i8sWzyxtLKMtlZbdlgcsr1m+tMKs4q0qrTZY jVvdsUatPa0z
reutt1mfsX5kw7MJt5HbdNsctLlpC9t62mbZNtt+YHvBdtbO3i7RTme3xe6U 3SN7vn20fYX9
gP2n9g8cuA6RDmqHAYfPHP6KmWMxWBU2hJ3GZhxtHZMcjY47HCccXzkJnHKd OpwOON1xpjqL
ncucB5xPOs+4OLikubS47HW56UpxFbuWu252Pev6zE3glu+2ym3c7b7AUiAV NAn2Cm67M9yj
3GvcR92vehA9xB6VHls9vvSEPYM8yz1HPC96wV7BXmqvrV6XvAneod5a71Hv G0K6MEZYJ9wr
nPLh+6T6dPiM+zz2dfEt9N3ge9b3tV+QX5XfmN8tEUeULOoQHRN95+/pL/cf 8b8awAhICGgL
OBLwbaBXoDJwW+Cfg7hBaUGrgk4G/SM4JFgfvD/4QYhLSEnIeyE3xDxxhrhX /HkoITQ2tC30
49AXYcFhhrCDYX8PF4ZXhu8Jv79AsEC5YGzB3QinCFnEjojJSCyyJPL9yMko xyhZ1GjUN9HO
0YrondH3YjxiKmL2xTyO9YvVx34U+0wSJlkmOR6HxCXGdcdNxHPic+OH479O cEpQJexNmEkM
SmxOPJ5ESEpJ2pB0Q2onlUt3S2eSQ5KXJZ9OoadkpwynfJPqmapPPZYGpyWn bUy7vdB1oXbh
eDpIl6ZvTL+TIcioyfhDJjEzI3Mk8y9ZoqyWrLPZ3Ozi7D3ZT3Nic/pybuW6 5xpzT+Yx84ry
duc9y4/L78+fXOS7aNmi8wXWBeqCI4WkwrzCnYWzi+MXb1o8XRRU1FV0fYlg ScOSc0utl1Yt
/aSYWSwrPlRCKMkv2VPygyxdNiqbLZWWvlc6I5fIN8sfKqIVA4oHyghlv/Je WURZf9l9VYRq
o+pBeVT5YPkjtUQ9rP62Iqlie8WzyvTKDyt/rMqvOqAha0o0R7UcbaX2dLV9 dUP1JZ2Xrks3
WRNWs6lmRp+i31kL1S6pPWLg4T9TF4zuxpXGqbrIupG65/V59Yca2A3ahguN no1rGu81JTT9
phltljefbHFsaW+ZWhazbEcr1FraerLNua2zbXp54vJd7dT2yvY/dfh19Hd8 vyJ/xbFOu87l
nXdXJq7c22XWpe+6sSp81fbV6Gr16ok1AWu2rHndrej+osevZ7Dnh1557xdr RWuH1v64rmzd
RF9w37b1xPXa9dc3RG3Y1c/ub+q/uzFt4+EBbKB74PtNxZvODQYObt9M3Wzc PDmU+k8ApAFb
/pi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2 oiailqMGo3aj
5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24 ri2uoa8Wr4uw
ALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7 urW7LrunvCG8
m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dB x7/IPci8yTrJ
uco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL 1U7V0dZV1tjX
XNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb 42Pj6+Rz5Pzl
hOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy 8f/yjPMZ86f0
NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//wIM APeE8/sKDQpl
bmRzdHJlYW0NZW5kb2JqDTE3MCAwIG9iajw8L1N0ZW1WIDExNi44NjcvRm9u dE5hbWUvVGlt
ZXNOZXdSb21hbixCb2xkSXRhbGljL0ZvbnRTdHJldGNoL05vcm1hbC9Gb250 V2VpZ2h0IDcw
MC9GbGFncyA5OC9EZXNjZW50IC0yMTYvRm9udEJCb3hbLTU0NyAtMzA3IDEy MDYgMTAzMl0v
QXNjZW50IDg5MS9Gb250RmFtaWx5KFRpbWVzIE5ldyBSb21hbikvQ2FwSGVp Z2h0IDAvVHlw
ZS9Gb250RGVzY3JpcHRvci9JdGFsaWNBbmdsZSAtMTU+Pg1lbmRvYmoNMTcx IDAgb2JqPDwv
U3RlbVYgMC9Gb250TmFtZS9UaW1lc05ld1JvbWFuL0ZvbnRTdHJldGNoL05v cm1hbC9Gb250
V2VpZ2h0IDQwMC9GbGFncyAzNC9EZXNjZW50IC0yMTYvRm9udEJCb3hbLTU2 OCAtMzA3IDIw
MDAgMTAwN10vQXNjZW50IDg5MS9Gb250RmFtaWx5KFRpbWVzIE5ldyBSb21h bikvQ2FwSGVp
Z2h0IDAvVHlwZS9Gb250RGVzY3JpcHRvci9JdGFsaWNBbmdsZSAwPj4NZW5k b2JqDTE3MiAw
IG9iajw8L09QTSAxL09QIGZhbHNlL29wIGZhbHNlL1R5cGUvRXh0R1N0YXRl L1NBIGZhbHNl
L1NNIDAuMDI+Pg1lbmRvYmoNMSAwIG9iajw8L0ZpcnN0IDc5NS9MZW5ndGgg MTYzMC9GaWx0
ZXIvRmxhdGVEZWNvZGUvTiAxMDAvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KeNq8 mFtPHEcQhf9K
PyYvTN8vkoUEdlAItkHsRnlAflhgjDcsO2hYkvDvc2qqZgHHs/RTJHDP9nxV 3V2nTq9FVloV
lYMyWhlrlTHKxIxH5W1UxqkcMeNVcXgfVCkF7wHHpAx+jMY/hFuMeGWTVRak 80VZCtQYkTUg
vXUYad4jBY1YNNE88qVkFKXIDvHIl3NWFvmK9worW621ckB0iIoQgw06hxF7 dR5LIKkLGCO4
iLGAS1gSsEMqRxwtrb3yyOeDUR75fMk4KLbig/LIFwoOjnwRMKZswuk98qWS lEe+jEU98uWI
98hXdFAB+QqSIaUt2HfAkhqbCQ5jtipgawaHCQFjimo4AvYfEkYkC9iazV6F giOheHQEBwhL
O6+disjnsUhEPo99RDoqNhmRLxSjIvJFFA+SuAiIjhqhE7boEvaRkI/qix+X IVaikiA4IV/B
PhLyFSyeUAKto8IWUSbM48g6gUeJDFog4cgG+8gaY44qozQosMrUK5jMKI3D PnAU75AUTeU9
mgCo9zhsRj5fwCNfQD0ylRj7KMgXtVGFSo16kASxYB75EvZRkC8BxpTPEBfS +ozNkyQF/UMS
FohTSBIsbtArQVP3IWnQ1M0a1TaGmtzhAQU16INg0ZyGBLRhaGk8YE1q6eDQ dO/eNSfwhlbn
zdmib9ebed+25JPXM5/bfzYn7ZPyzXm3aj8t7slDhMyf7ttmtukfrwbuvOs2 +/uU9AKOAEBu
oPFLc6byEDFrZu0VQ58f7x4uyJJMkhPpwZIX6YG8NAQP9PF6tVy3s28LrHi0 vHns2+ZD392/
X9yPH08fN4Q0s/vFupk9Xj5c9cv7zfjxvu1fTsxPD/D7Hr9Hw4hDLG/b7nF8 jRMfdv80H5Z/
NZ+7/m6xas6aX9bX627TYgL/HOGsz59+X1+3/fPqv6Iu9PGWPx51q1X3d3v9 3TTWPqbFj5uj
fnHXDou9OiA2ycD+/oXxTioq9fKFRyej1zJGGb28H0eJdxLvjIwSZ4Wzwo0K WuGscKKOEbnM
qJ8RzginhdPCaeG0cJq5wlhhqjBUmCmMZEYyI5mRzEhmJDGSGEmMJEYSI5GR yEhkJDISGeFm
pVttGBgJjARGRAXP7zy/k9KPSkjPDz4wHI7n08s/8UrMdoPH9Gyh08Pfzvf3 ySWGM8MnH9En
Yibj88skUb+ZxPwoSXiVxLyVJH6f44C+D2nuRJxJ1GhrdsnAobmv2oOvm7ZX ek8PXjpYLW/W
ZKDmtPm4eCKf/dEvN8v1zafuum0+9vNLDjtsv3Z9u407hq/Wm+Ejgl98mm0W /Yu34/64vDjs
KxPQcbh9sdH5hwE+7HpYdrZ5WrU/zbrV8vpnmXrfrbr+AjmV/H553jMT82/L q9t1+/CgjKyM
BV0QO8nKLsmYeczbjYzazM/Hu5LbRwxoOZHlPJbTWM5iucPEsuJgMTT7e1hh bKH5YXf9xKW5
sPL6ZNzAmVz8wBaXq3bAzlaQ4A41bQ5X3dXt88Gfi5/LXsmlvBIAd8Gebw5x YV4MjzBS3tOG
vm0sRvhR7yXvv4y1kiMaOaORQxo5peFj/rhYxkjwKLGRYCPBZlewlmAtwVqC tQTrHcGFYwuH
Fo4sHFh2xGWOyxyXOS5zXN4RlzgucVziuMRxaUdc5LjIcZHjIsfFHXGB4wLH 8aVA/3Mbhh1x
fK8o+d7xHMc3lvI74uSLSYwjvhHbuEm7PJtc7mIw3PrP3n7J2ArGVDD6bcaV aWa8OEOk968v
zReX8H/wQHiqxj3hsRp3hIc3cL5DCbeE+5345N0/3Bf/z+0v3+O0WTspVnAV jK1gTAWjp5mt
FgbvfamWThNe3Ue+EF7dRz4THmsbwyfC3+qjbTniVh4zWbLoKhhbwZgKRk8z 24qQb0O1PJ58
G+rlId+GennIt6FeHvJtqJYnbeXRkyVLroKxFYypYPQ0s60IuSfWy0PuidXy OHJPrJbHkXti
tTyO3BOr5cmjPLZMliy7CsZWMKaC0dPMtiLknlQtjyP3pHp5yD2pXh5yT6qX h9yTquUpW3ny
ZMmKq2BsBWMqGD3NbCtC7sn18pB7crU8ltyTq+Wx5J5cLY8l9+RqeeTPElSP NFkz+ZvFW5Ct
gUwNpKehbVnIQqVaI0sWKvUakYVKvUZkoVKvEVmo1GtkthrF6aIZVwPZH0H/ CjAA0QB5Nw0K
ZW5kc3RyZWFtDWVuZG9iag0yIDAgb2JqPDwvRmlyc3QgMzk1L0xlbmd0aCA1 NzcvRmlsdGVy
L0ZsYXRlRGVjb2RlL04gNDcvVHlwZS9PYmpTdG0vRXh0ZW5kcyAxIDAgUj4+ c3RyZWFtDQp4
2ryV3W4TMRCFX2WeoPF4xn9SVQnRC6QiqCBcVb2oSoQqQhZFQaJvz5khu0Qp m/gGLhxvdj4f
j+fYXg6VAnFoJIWYAxVFx8QxokcriLJQ5IpeKeaMPpGwcZkkgeVCUi1eSWNC 30gzxsZA2hp6
pqTFNVNDPAplFfRKudlciYoYl6kU6MdClS1eqSbMHxvVivESqGEMC1Mr0Be0 gElYAIdshGdv
iKWRoS2Wb0Nytr5or6XaDDa8mRT+qUlkhJStIaTWElQtTW0QVLTkcXDJslEo ZyuTLS0XA6FV
7EehXCreWPbVkrIyNVSZEwY0F0O4WTUSqhpQ5svLxSu8gh0fFjdugj3douT+ 8HGxvL66OobC
PFT2UGTEzeHfwLth++1hvbj9gpkdecEH52svz8350s1X5/MZHjXa88X5dE5/ KkrUsShpvnLY
gx1Q7IG4Bwrz0FSYbAvlbqM4Od9vlDrfb5Q4329UdL7fKJmM0vnKifRAsQfi HijMQ1Nh/ETF
fqP8RMVuo/xAxW6f/DzFbpv8OMV+l3QyIMyXTWMPxGehO7uV8eSXMvr7v9Pj 0n2HSndhtQv/
s6HH/Wkfj8MxL0CZwHwS9I0gqTdfvxBOp3vjH6L97KPwm+fvq+36afN1FNRR 0a8MHblPm8/O
rY5Vl6ufu+vV47B92D0NmyXkDtj3i7cPz8OP3RH1elgP27twAbfQ+CLcTwm2 MUGdSzCF8evj
WP2/CaY4+TeboIxee6H53ycYxgQP9k+yw3vi3vklwACc20PpDQplbmRzdHJl YW0NZW5kb2Jq
DTMgMCBvYmo8PC9OdW1zWzAgNCAwIFJdPj4NZW5kb2JqDTQgMCBvYmo8PC9T L0Q+Pg1lbmRv
YmoNNSAwIG9iajw8L0NvdW50IDEvVHlwZS9QYWdlcy9LaWRzWzE1NyAwIFJd Pj4NZW5kb2Jq
DTYgMCBvYmo8PC9TdWJ0eXBlL1hNTC9MZW5ndGggNDMxNy9UeXBlL01ldGFk YXRhPj5zdHJl
YW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVT ek5UY3prYzlk
Ij8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1w dGs9IjMuMS03
MDEiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkvMDIv
MjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJk ZjphYm91dD0i
IgogICAgICAgICAgICB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v cGRmLzEuMy8i
PgogICAgICAgICA8cGRmOlByb2R1Y2VyPkFjcm9iYXQgRGlzdGlsbGVyIDcu MC41IChXaW5k
b3dzKTwvcGRmOlByb2R1Y2VyPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K ICAgICAgPHJk
ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6 cGRmeD0iaHR0
cDovL25zLmFkb2JlLmNvbS9wZGZ4LzEuMy8iPgogICAgICAgICA8cGRmeDpT b3VyY2VNb2Rp
ZmllZD5EOjIwMTAwMzAxMjEzNzQxPC9wZGZ4OlNvdXJjZU1vZGlmaWVkPgog ICAgICA8L3Jk
ZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv dXQ9IiIKICAg
ICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8x LjAvIj4KICAg
ICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMTAtMDMtMDFUMTY6Mzc6NDYtMDU6 MDA8L3hhcDpD
cmVhdGVEYXRlPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFjcm9iYXQg UERGTWFrZXIg
Ny4wLjcgZm9yIFdvcmQ8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhh cDpNb2RpZnlE
YXRlPjIwMTAtMDMtMDFUMTY6Mzc6NTAtMDU6MDA8L3hhcDpNb2RpZnlEYXRl PgogICAgICAg
ICA8eGFwOk1ldGFkYXRhRGF0ZT4yMDEwLTAzLTAxVDE2OjM3OjUwLTA1OjAw PC94YXA6TWV0
YWRhdGFEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJk ZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwTU09Imh0 dHA6Ly9ucy5h
ZG9iZS5jb20veGFwLzEuMC9tbS8iPgogICAgICAgICA8eGFwTU06RG9jdW1l bnRJRD51dWlk
OjY2OTg1ZjM2LTJhOTItNDliOS1iODMwLWYzMGVlNzdjODQ3NjwveGFwTU06 RG9jdW1lbnRJ
RD4KICAgICAgICAgPHhhcE1NOkluc3RhbmNlSUQ+dXVpZDpmN2IzNzhlYy03 OWU1LTQ4YmEt
YjU4OC1mMmIwZjY0NGUzY2E8L3hhcE1NOkluc3RhbmNlSUQ+CiAgICAgICAg IDx4YXBNTTpW
ZXJzaW9uSUQ+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAg ICA8cmRmOmxp
PjI2PC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAg PC94YXBNTTpW
ZXJzaW9uSUQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRm OkRlc2NyaXB0
aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDov L3B1cmwub3Jn
L2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmFwcGxp Y2F0aW9uL3Bk
ZjwvZGM6Zm9ybWF0PgogICAgICAgICA8ZGM6dGl0bGU+CiAgICAgICAgICAg IDxyZGY6QWx0
PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQi Pk1lZGFscy1Q
ZXJDYXBpdGEtQnlDb3VudHJ5PC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRm OkFsdD4KICAg
ICAgICAgPC9kYzp0aXRsZT4KICAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAg ICAgICAgIDxy
ZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpPlBhdWwgVC4gS2V5c2Vy PC9yZGY6bGk+
CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC9kYzpjcmVhdG9y PgogICAgICAg
ICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAg ICAgICAgIDxy
ZGY6bGkvPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwvZGM6 c3ViamVjdD4K
ICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRp b24gcmRmOmFi
b3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25z LmFkb2JlLmNv
bS9waG90b3Nob3AvMS4wLyI+CiAgICAgICAgIDxwaG90b3Nob3A6aGVhZGxp bmU+CiAgICAg
ICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpLz4KICAg ICAgICAgICAg
PC9yZGY6U2VxPgogICAgICAgICA8L3Bob3Rvc2hvcDpoZWFkbGluZT4KICAg ICAgPC9yZGY6
RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0 IGVuZD0idyI/
Pg0KZW5kc3RyZWFtDWVuZG9iag03IDAgb2JqPDwvQ3JlYXRpb25EYXRlKEQ6 MjAxMDAzMDEx
NjM3NDYtMDUnMDAnKS9BdXRob3IoUGF1bCBULiBLZXlzZXIpL0NyZWF0b3Io QWNyb2JhdCBQ
REZNYWtlciA3LjAuNyBmb3IgV29yZCkvUHJvZHVjZXIoQWNyb2JhdCBEaXN0 aWxsZXIgNy4w
LjUgXChXaW5kb3dzXCkpL01vZERhdGUoRDoyMDEwMDMwMTE2Mzc1MC0wNScw MCcpL1NvdXJj
ZU1vZGlmaWVkKEQ6MjAxMDAzMDEyMTM3NDEpL1RpdGxlKE1lZGFscy1QZXJD YXBpdGEtQnlD
b3VudHJ5KT4+DWVuZG9iag14cmVmDQowIDE1NQ0KMDAwMDAwMDAwMCA2NTUz NSBmDQowMDAw
MDA4MDEwIDAwMDAwIG4NCjAwMDAwMDk3MzcgMDAwMDAgbg0KMDAwMDAxMDQy MyAwMDAwMCBu
DQowMDAwMDEwNDU2IDAwMDAwIG4NCjAwMDAwMTA0NzkgMDAwMDAgbg0KMDAw MDAxMDUzMSAw
MDAwMCBuDQowMDAwMDE0OTI0IDAwMDAwIG4NCjAwMDAwMDAwMDAgNjU1MzUg Zg0KMDAwMDAw
MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg NjU1MzUgZg0K
MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw MDAwMDAgNjU1
MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN CjAwMDAwMDAw
MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1 NTM1IGYNCjAw
MDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw MDAwIDY1NTM1
IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow MDAwMDAwMDAw
IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz NSBmDQowMDAw
MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw MCA2NTUzNSBm
DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw MDAwMDAwMCA2
NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUg Zg0KMDAwMDAw
MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg NjU1MzUgZg0K
MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw MDAwMDAgNjU1
MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN CjAwMDAwMDAw
MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1 NTM1IGYNCjAw
MDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw MDAwIDY1NTM1
IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow MDAwMDAwMDAw
IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz NSBmDQowMDAw
MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw MCA2NTUzNSBm
DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw MDAwMDAwMCA2
NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUg Zg0KMDAwMDAw
MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg NjU1MzUgZg0K
MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw MDAwMDAgNjU1
MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN CjAwMDAwMDAw
MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1 NTM1IGYNCjAw
MDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw MDAwIDY1NTM1
IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow MDAwMDAwMDAw
IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz NSBmDQowMDAw
MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw MCA2NTUzNSBm
DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw MDAwMDAwMCA2
NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUg Zg0KMDAwMDAw
MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg NjU1MzUgZg0K
MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw MDAwMDAgNjU1
MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN CjAwMDAwMDAw
MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1 NTM1IGYNCjAw
MDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw MDAwIDY1NTM1
IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow MDAwMDAwMDAw
IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz NSBmDQowMDAw
MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw MCA2NTUzNSBm
DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw MDAwMDAwMCA2
NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUg Zg0KMDAwMDAw
MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg NjU1MzUgZg0K
MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw MDAwMDAgNjU1
MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN CjAwMDAwMDAw
MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1 NTM1IGYNCjAw
MDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAw MDAwIDY1NTM1
IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQow MDAwMDAwMDAw
IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUz NSBmDQowMDAw
MDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMDAw MCA2NTUzNSBm
DQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAw MDAwMDAwMCA2
NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUg Zg0KMDAwMDAw
MDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMDAg NjU1MzUgZg0K
MDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAw MDAwMDAgNjU1
MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1NTM1IGYN CjAwMDAwMDAw
MDAgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDAwIDY1 NTM1IGYNCnRy
YWlsZXINCjw8L1NpemUgMTU1Pj4NCnN0YXJ0eHJlZg0KMTE2DQolJUVPRg0K
--------------010606010902070505040208
Content-Type: application/x-zip-compressed;
name=" com.xyz.pqr.monitor-3-classless+beanified-code-generated.zip "
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename*0=" com.xyz.pqr.monitor-3-classless+beanified-code-generated.zip "

UEsDBBQACAAIALaGYTwAAAAAAAAAAAAAAAAeAAAAY29tLnh5ei5wcXIubW9u aXRvci8uY2xh
c3NwYXRonZBPTwIxEMXPmvgdNr0zKxfjYVdizJpAIhhYvZLSTpaROi3TlsC3 B/8QjQkcvM2b
/Oa9l6kG23dXbFAiea5VH65VgWy8Je5q9dI+9m7V4O7qsjJOxxh0Wh7ExY9C TrIrVsS2VlGM
Kj6WX2N5mjSej6SXDtA4ChHhzSZwOrNZHtJhNG3mD5Nxez8cN9PyL0ecUFg7 sLjIHWT6vkSB
WdJstdjXp3YXsBzpjZ41vT7c/KNSsAjGC4LgOpOgfXa5I47nrHxOIaej24L4 E67K3y/cA1BL
Bwj0pbHS0AAAAHgBAABQSwMEFAAIAAgAtoZhPAAAAAAAAAAAAAAAABwAAABj b20ueHl6LnBx
ci5tb25pdG9yLy5wcm9qZWN0vZLBSgMxEIbPFnyHsncTvfWQbqEVb4pQfYCY jGvKZhIn2VJ9
epM0Ky6l4EG8zf/P/PmGIWJ1sP18DxSMw2Vzw66bOaBy2mC3bJ6f7q4Wzaq9 nAlPbgcq3kJQ
ZHxM08m9ECgttMpZdvj4ZP6dmHVooiPBSyePpK4FjK3gY5Xd+l4ogk/Uy2B6 vfWgsqpyk6IS
dXEq1VHHQPXGB2A7HZlylAq5lyUAP1ZICUndkNmhaj41BD+h/IrrNbB7ieYV Qlz/L3ar3sDK
P4FWZzx54sWBoE4fxflrH/t5gTJ3LpNXfuyHzuDDSWCsM/H7L0x/2hdQSwcI 1pkFKu8AAACo
AgAAUEsDBBQACAAIALaGYTwAAAAAAAAAAAAAAAAoAAAAY29tLnh5ei5wcXIu bW9uaXRvci9N
RVRBLUlORi9NQU5JRkVTVC5NRnWRPU/DMBCG90j5D17YiEUZGFx1AJQFURRR id11ruGEP9Kz
HSX59eSjCgGVzfbz+u7xeS8tnsCH7APIo7OCbfhdmjxFW2rI9he6wPsFvUkD gt3UOlZox81C
Dp05Oo1qTihneNv1vD4TN85icLT1aCsNYSi4CxR/bq4dVhbPWnpfyPApGF9l beloNCDXYAn0
y+HVKamxl2EqN0su8B3OEQnKvAUVx0RuGyRnDdgg2Its5CHPNvwhTfK2dhSy QqovWV1/zG2a
XDvmaGr9Hxua6jS5aGSzlWCOKg5KY+2BK0fAKdqABsYqawbmNKyHwLZBj0fU GDqxI4BJ9m+6
9eXV3DKNRxWwmQZVjL/WCaZl36XJN1BLBwh7LR7/EQEAABoCAABQSwMEFAAI AAgAtoZhPAAA
AAAAAAAAAAAAADkAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6 L3Bxci9tb25p
dG9yL0JpbmRpbmcuY2xhc3ONkLFOwzAURa/bQkoIUOaKvQHEk1iZQC0TEkMl xOqmj8hVYhfH
RYVPY+gH8FGIl1KhVsrAYD/LusfHul/fnysA1ziN0FLoZ66k5fsHzV89lc6a 4DzdGTs1No/Q
UejN9JumQtucHiczzkKEfYUz53PirDDzionLFzk7zzT6jSjEOYfNKwrpIH3Y zi+rKT2Ph6OC
S7ZhKNfa62CcvRGw2gLPB//k0ieFRJS3IXgzWQRWuGiW/iV2tUm1A182ihvZ Wh2P3cJnfG8K
YZPN96/q4qQqhbasPem8I3VG6KKu9QDxeh4iWc8jHEtC4UT2Fno/UEsHCDwH BR3uAAAApgEA
AFBLAwQUAAgACAC2hmE8AAAAAAAAAAAAAAAANQAAAGNvbS54eXoucHFyLm1v bml0b3IvYmlu
L2NvbS94eXovcHFyL21vbml0b3IvS2V5LmNsYXNzO/Vv1z4GBgYjBn52BiZG BvHk/Fz9isoq
/YLCIv3c/LzMkvwife/USnYGFkYGgazEskT9nMS8dH3/pKzU5BJ2BjZGBtn8 onT91OSczILi
VP3U3DQgO78oVd8VooSRgT09tcQvMTeVkUFEQ9MHYURwSVFmXro1UEExTIGo Bqa8ZhgjAzfQ
iJDKglSIKu5iZB5XcH5pUXKqW2YOkMMBdKoeyAiguxgZmIGYFeg5FqDb2Rk4 GEB+4GTgAtPc
UD4PiA9UxwskmRj4AFBLBwghxqYNxwAAAA8BAABQSwMEFAAIAAgAtoZhPAAA AAAAAAAAAAAA
AEAAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bxci9tb25p dG9yL01vbml0
b3JGYWN0b3J5LmNsYXNzjVJdSwJBFD1j6eqmZdm3lRERitBAr0VQoiCZBUrv 43pbtnZ3bLOo
/lX0Ej30A/pR0d11X4q+FmbOzNlzz8y9c9/eX14B7GDdQEJgw9KevLt/kIOr QHrad4Y6kMcj
bCiL53sD4wL5C3WrpKt8W570LsgaGkgJrOnAlmS5zuCaJHnnvNYByXocKZCh ZrvTPWjX6gKb
rb/P2hVI77Efc/sCY+XKmcB4TffJRA5TBiYFqt+5ON7A/WLVZCqLPKbZIfQT 2CpX/nOFDAQK
WRhIC0y1HJ/aN16Pgq7quSQw09KWcs9U4IT7mMxZAakhHTp+3/FtgdIPJ8UC zjIzijgiLlLx
BzX/ZGV+pIwv2SFOZOP3RFjDcdM2DWPiVFmXyqY/KxDrONjs6JvAooYTZlf4 XKDtsBX48fl9
eCR5LIXF4qZK8pyBycwE76qM4Wc8I/uEmUdeJjDLs8kILCOFAuYiNuyweSxE uMh2IS6jGOEK
VlnDvRYpSx9QSwcIUtSCb3MBAADAAgAAUEsDBBQACAAIALaGYTwAAAAAAAAA AAAAAABJAAAA
Y29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIvbW9uaXRvci9N b25pdG9yUGFj
a2FnZSRMaXRlcmFscy5jbGFzc4VT21LTUBRdB5DeDpSbCF4BKxZBonhBAS9t KVhpA0MjI0+Z
tBw6wTbBNDjin/gZ6pM++AF+lOPeaWjxAchMzl7nZO2196yd8+fvr98AFvA2 gi6B2arb0D4f
f9EOP3paw3Vs3/W0UituWdUPVk2liravPKvejKBHYODA+mRpdcupaZuVA1X1 BSLZgr5a0NcF
bhZdr6apat0+bCpNNfYJu57S8rm61WwuU3ZINc12ztRZOdtqX3nKqSrKG2rn ZQxju5B9Z+QF
ujfyuwIxWk1Tz5Ty52hlfN+zK0c+a/UHCcbuVj7MSpQ29YKxuW2W84bA4Kmd aRK3LBBdIUny
5CUVTc/sCPTk3D0VwwhGI7hMdS92UeIKxqhbVdDLRkbPUd1U8eK05QQVuSpx DdcF4jXlZ21n
z3ZqAhPpmfPdjoEGInEJvawxITGJKXKyo2G2tVJna3WmwHopiQiirDctcZf1 Rk7ptV1m6oxE
rEWdlZjj9nuJuqGO+eO8RLzV1wOJh1igIbQ+mrrVUOc21BklCz2WSECy0FOJ RRZKhkLG8aFi
MWY9l+hrsZYlVriXPmKFTpeVz5yXEv2tll5LZE6s6nBMEm0yMSeRRJQKFW1H 6UeNivIMq1Kn
roeKbtWq71iezfvwMF52j7yqWrN5M/z/dOf5MgnIguMoL5iaatLfdnLhegWV 66bbGsU4z5HQ
OPsfxFgY4+E52RDEvjD2h+fJgEeqGMAgxSHafaXIz+53DP/EuMAP3AjgLYa3 A3iHYTqA9xje
D6DG8FEAnzB8FsAlhi8C+Iph9huJd2GV1mlqFGIMCTGBUZHGpFjAnFjCosgi K4ooCQPvRRL5
IIPftWBdxxuKcbAFIyj0xv4BUEsHCElMtVqHAgAAuQQAAFBLAwQUAAgACAC2 hmE8AAAAAAAA
AAAAAAAAQAAAAGNvbS54eXoucHFyLm1vbml0b3IvYmluL2NvbS94eXovcHFy L21vbml0b3Iv
TW9uaXRvclBhY2thZ2UuY2xhc3ONVG1T00AQ3hNo2lAoLaDWFwSsCKKN4jsg 2tbUyVBSpkkZ
+ZS5hqMG06SmqWP9V45fHD/4A/xRjps0tGkGxHZ6u89z++xt9rb5/efnLwDY gBIHlwgs63ZL
+NL7KrQ/OULLtgzXdoS9vt2n+kfaZByME5g5oZ+pYFKrKVQbJ0x3OYgRWLCd psB002h3mMBa
x+jbDhPEQElggsmFPZFApjLUK65jWM0tAlMl2+q41HIPqNllcZgkwAUloMdk RavXpDhME1j6
4LrtTUEQzqg2759JgPcE+zWxLL2PQ5rALMbmMTaPsflB2gSTZEUtyCUsKle5 +OGxTK4oyW8l
+R0BIo1h6wC7EVCaNtjLDKiCqtakYl0VvWBCYP50pywW1HpN1ErVuqx6m9j/ sV3xEKvCVdP6
rZr2ffVwXwyItEeMaAlM7lVlSa3WNEVElA4hTcNwhUA2zEXU8W28MnzKHTx/ de2AwHjJPmI8
3IU1DlYJrJ/VF6PVNiPNkZBKwj1YxwxePgIrq2v/09QE9vBBEjIwSyBVMSwm d1sN5qi0YTJv
WGydmgfUMTwckHyTuUXDOsLRIbCIx5wzeiWTdjp4a5lhvDbQ5c7X1dgxc5il ezc+F9IWXBzX
RtfFEmJI77Iedr/vaDJtsX8mHYgxaSoQqb026wunkAkaozC3X/IQaxjcwbsd kmWq49q7sMtB
HJ7JK3bX0VnZ8Do4O3oJee8fSSApWRZz/K6xDgeFc25/VJurGC5zqIn1xU9d fB3gOOFvAlKQ
BQ7i6Ce8KQcecTKEpxCnQngGMc4C+lmYg/kBfxnxlQi+GsJZ/F4L4euIb0T2 b0b0C5H9WxH9
YgQvRfTLI3oen+I25JC5g8w6Wu/D/YCV73D/mx+Ux5VHC7ANMSxH8FnvnfoQ Hvl2Ax779klg
nwb8M3ju2xeBfRnwm0HcFmb0cr3y1x147Z9E4A3+irHEX1BLBwgBlTxUzAIA AOoFAABQSwME
FAAIAAgAtoZhPAAAAAAAAAAAAAAAADwAAABjb20ueHl6LnBxci5tb25pdG9y L2Jpbi9jb20v
eHl6L3Bxci9tb25pdG9yL01vbml0b3JTZXQuY2xhc3Olks9Kw0AQxr+ttbGt Wv8d1ZvQXhzw
JpUiQr0Y8VDw5iEmY9iSZOtmU1ofzYMP4EOJYyoK0paCh2X3m/125sfOvH+8 vgE4w4GHisJx
aFKaTF9o9GwpNZl2xtLtbB+w81BV2BkG44CSIIvp7nHIoURrCkfGxsRhokc5 E6dPcjaWqT+z
KHgxuxue5gon7Y7/1yxlpRoVTifU93Xuugr1gY6zwBWWFS5XeXPhz6OXot2e pGsKwJXOIp3F
AtFrLzSvRvfwrwTzUb/xSty1IIoUzhdXWZqhc69Qs5yasXze4RJU8TUGprAh X+tEvK3fZp9+
9Vk6Kyyy1mVKqtJ9Dxui6qIqaIhuYvNHb4neRgvllGBXYgp75c3+J1BLBwgD PCqVFgEAAGgC
AABQSwMEFAAIAAgAtoZhPAAAAAAAAAAAAAAAAEIAAABjb20ueHl6LnBxci5t b25pdG9yL2Jp
bi9jb20veHl6L3Bxci9tb25pdG9yL2ltcGwvQmluZGluZ0ltcGwuY2xhc3ON VdtPFGcU/33s
wMI61ksrUFGKiroM6IjSm1Dr4gKuBaSCVOl1WAYc3Z3F2cWKvSS++thrfGva 2DSND2AEqiaN
D41NTfvaNE3/kzZNf9/M7DIsg4WE/c53Oef8zu9c5vG/938EcBiFKCoEmtO5 rH519po+fdnR
sznbKuQc3cpOZ/Ruy56w7KkU5SgUgX05Z0o30xlrOm/qZnaScs4xvbc9p8cv mumC97ZKoCHM
qm9QIDpelPb3B41ezU/o54aTPRkza9qFJI8NxyhYObtToMYoFBxrfKZgCrSE aSWK9yv1qros
ej8mEIm3jAooJ3ITZgwRbFKxAarApn7LNgdnsuOmM2KMZ2h9a38ubWRGDceS e/9QKVyw8uSg
fz100a1qDhcIIX0iY+Sp1xRfiXmZvh73RWcN6vBsFPUCrWEeBrx1yEhfMqbM 5n6rYDpGJq9i
OxrIZ3dqMJka7BNofLIXgdiUWSjloSUeymQI/zUQeE5FFNUbsAt7otgtsHdd qiqasVeg2kzl
h5zc1Vk3EWNR7C8zsIw1ZTM428j4NRWj6xYVGloFNppnzHwuc8X0TZ2MrxFv mY3ONdn376WT
AyoOSqjbzMFcwZq00i7+M+blGcsxJ6I4JND2pBYIaskqiEHHYVllRwSG1gs0 leq/aFwx9Ixh
T+n+2eqTllEJ+HkVL+BFpt8DTD701W5YTSwi3XZf6EGMnbIfYrnMRHd4N64N kolgdacvDRjT
fntsGjfyVrovUFuxfGCjxddZZy4k23y/pKmyXhPLnd8aXrGhvS9rtltFDWIb kJQ128MI16lM
xyQm4HhLMcDAmZpfsW0LDTIUmgxTZZgBbcWkcYG6eGpsrGV1xmW+B1XswE4p Dano9KQzKl7F
cSmNqOiTUgSjKl5DP0fmpGkUZhwzlRQQKdaJ4zUPd2PsSJnakdlp1/ew9F0b Dyk+r9TeVdGF
V6RkqDiJlHSTVvEW3qYhBjJqZGbc0blKnxPYPGvnpX0lnpLWIrBUTGJK3qTy w8WbMXmTVXER
l1gDw7kZJ232WrK4NgdG60HpgOSlbNt03KFm5qNwBHb//9gk1OLg5BDjIOJ/ JSqgyLnGT6Ii
a4WrSonfBt5u5O4IV8G1UlvCU/MUKrCZvzGuwHE+TWCLq+Q+wlY87Zp6Btt8 Awd9A8od1M6V
9Kvcs1MBXcXXFTLLvu63BCb9nNbuovEReuVyD00CN3FUyg/5RdK01kXEH2LX AhrlWestroto
u4k67QH089rmmkirvFhC+yI6pCRhRFwYjYwdGKbjETTgLPZjlGPrDQ6WcwT3 pguv1oPgw2vg
/Ut4mQCPugGLv/lQyHr0MeslwnxPwYAnQsgSsrZ85esMOMJ1r1Qe0FoXirHU erEokbblUOZL
YdTSGJDlr83M5Ohkmt+dy66zJs+g70xKx+hEpr6JgUh+ZSA8+QfNUbcw2FEh /Cc8/hP3cKLI
fyLIf3IBCXkWwr8i+U+U+E+U8z9LaNfI7Afk/0MS+BH5/5i0Xl+D/97V/PeV MAf5T5TzfyOU
f3Z0CP8Jl//ESv6VtuVQyvn/lL+fkf/P6eQL8v/lGvyfQsznv9ftoyD/Sd5w evlwbrErFK5d
Dd+7ukfg/Un4ddLWjpuoJsCBOf6cnvN3r8vd8JzWsGPnEs4uk72dJABfoR5f M8/fYB/t68xx
B75zkWqerxLSLjbCOddXF85jzE1DF5tijPYk5igq66uVaoVPOAl9yJ/wUgbc 7kNuKYPcpLWx
VxfxzrwUkot4b15raFvC+DKbXlHcIc675GiBWJdo5gfiu49DeBBgtb2Etb2E tZ1NZvqsViJS
Xy2LnfO2lOEKNxDNx7enDN9OTbjghIdsCRfKgf1EYI/Y7j9z/wv1HzPVvxLg b4Fq1UrANB9Y
EU4lS1YO+TI4HT6cA2VwdnuTr1K5HbntNaEnEljmdgnYVjdzvxPYHwT0J2fu XwEwHSUwHQEw
bvZEteAT2+2SHIcG3NKs4+jIV9X8B1BLBwiMM/lb0gUAACsNAABQSwMEFAAI AAgAtoZhPAAA
AAAAAAAAAAAAAD4AAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6 L3Bxci9tb25p
dG9yL2ltcGwvS2V5SW1wbC5jbGFzc4VW21MTdxT+1gQ2wFIBBRG8BOolCUjE 2pt4h2hTA6Ig
FnqxS1ggGnZDLgr2alsf+tLpOH3xoZ122qkzHR9QK7R1ptPpdLTTx07vf0un 0+/sLiGEoJnJ
/m7nfL/vO3vOSX7577vvAezBFRVrFPjj1lR4ZvZyODWdDk9ZZiJrpcOJqVQy fMKYjXJU4VWw
w0pPhI14MpHKGGFjapxzK204dpGTo+eNeNaxLVewoRQiwRRU9x3pjZyL9ESO HTkTG1RQFzuv
X9TDSd2cCA9k0wlzokuB19SnDJ4NDvdHzhU5+LKzKaPPPvftJxtiH1TgCQSH 6NdtjRkVUFCj
QYVPZnUaKuFTsDaWMI2+3NSokR7UR5OCHrPienJITydk7W6W77cBK+HBBg31 qBaMjRoqHLRm
DVWC5s1OJjIKWmOPihzFaMZAVs8m4t1JPUMffyAYKx3JiG3RVYEWPK6iVUFb KfReZ+zX4xf0
CWNbLJE10noyo2EbtjMOJyLDCrY8/AYF6oSRdWK4nnRKvAE1s2hQH1h5Hhyq ZDDaNLRjFy2M
PiubGE/EqdIyTxvTuUTaGLPfyYiKsIL2h2VOoa9ErBId6JTQ71HQH1hFSNSk alNPunnXFY0W
kHT3Vu44tPdqeBJPUaJDmzkZXnkNI8+Ah03bIlzIsUsSTTWNS054VCs55syq +ZrjF3r1lJ1K
KhjFmuLIKahi5AfzGVyVWbYiasGKyEsrr3HcyLKwAtGRkeBKaSKsW8MO7JRZ RMN+mXlwXMNh
HFFQMW7o2VzaiPYoUKKknTYyVvIigZURFpIEVe6SewbknoZAiYg68evXEEBQ Zqc1HJCZB4Ma
etFHICoY0pM5Y3lhu/4sL+OMmRF8byAqaB6MaDiLF+QkmhlYPBmpxD68ouEc XpWT6RwTvCgT
FymNCMiohhfxkvQGy4mzsDM0jEt6+ojcn7ZmZsVyUkMcO1Wcp8Til3M0Nz5u pCuRQFLyL+iD
SW9/QJrRPr/spzRMI01KeiplmEzx9lLFsWLLAe7ygfK0dv9iA3MwLwrmJbaW QPeqnmI3yWv5
0nJJgjSuZqigcsDKpePGsYR0M83tQh1izmXUNI203QOMjIq32MAe3WEYgsUe w8bEqua3DF5s
kg7LHxGv9EaOm6TP2usqe9T41FBN68e46uQonwrlDtbyW3uLizVYx+djhARC dDxIlxast08E
qD7vHuWOAKwLLaAhdBtr76KRQ+1dNC0B1dEF6OdzLzk8x/UpG0xzXMlwsw27 BVtd2A6Ocua9
Df9cHqfc3hsp8PW6vooUmOsbdn3LQl+jsdg5XuBclndm2bjOV6hUVG8X595Q m8iZR+g6xd1D
x3DI62mXkwXsnscTotBjgzcQDEjyOcVom6iFxbafsi/zO4DuZTJ7mpfIu/Lj Gc7W4Fnucudf
bFNZXoq0iBJamoq1zJTUcqCkliZbS9NyLV7R0lRayxU+36GWd6nlPWq5uoqW g3kth0pqYZNz
6bzPtyV5EGr+yvZtgfMR+hskT0nu6BwfPXOh5k2bF3BsLs/JyaAP0IgPefM1 tOIjm0/IQczz
CTG7ojZiCM/jhJ2uIcQ489jMyuBp9HppwKbo0rrGIxHV6dIKFtHyh9p/wL55 nLzlTk7dCjW3
L2BgKWJbWHHAJ2T3KePwGZV9TpgvePOX2I0bBZHrzDPtzDPtxBkMuZETfj4J KFuvy+8qj0RG
h8tvZxG/rVJ1Nj2WncNuAcPF5OZI7jbL6w6J3CXGPHP+G+zCtza5BueGPLkO l9wiJVXlgo3c
pfTApWS6lCaKKB0ioweok0K5D9V7Axs9N1DPTdmZx8vXoXLD671Jxo5d0zK7 WtkptBNJ+s2i
bPiRkn5ift3HJH4ukGHmZZgFMtahurHmsLKGXyyOPIrnS+1jgot7DzNw7Dp8 bGgTc/eQGJbJ
Ai7E2uqm5mGdbXNEcFKXWVw32ZOa4DxyZ9vmMbOUuK12y/2VVfob6f7ON/AH I/8nC/svFv/f
LJp/Cqj3uNQb+f9tFpdd6mzsGo9fs8v/dbzBUX5GW/Am3i6v+B9QSwcIlW+p yPgFAAAzDAAA
UEsDBBQACAAIALaGYTwAAAAAAAAAAAAAAABJAAAAY29tLnh5ei5wcXIubW9u aXRvci9iaW4v
Y29tL3h5ei9wcXIvbW9uaXRvci9pbXBsL01vbml0b3JGYWN0b3J5SW1wbC5j bGFzc41WW1cT
VxT+DsRMEsYLKFgvlYhUbtVp1d6MFQFjGwmoQFFaexnCIYxMZuJkQsVe/Sl9 7RPlQZZlrdan
PvRHdfU7k4EgyUSz1pw5Z87e395n72+fnX//+/MvAJfwTEObwEjBLRlP1p8a 5ceeUXIdy3c9
wyqVbWOqtrhlFjiu5/hJQ0xgwPWKhizYVrkiDVla5tz1ZE0l+4pwXKCvGfqr wAIxi2uB84ND
+deLZyg/4S7JJDpwUIMe6VD2rllYNYuyf0YWrYrvres4hMMCidz07NzY9ERW YCj/hqqZBDoF
zq74fvmqYRhNvLwYaHbQqaM6jqFboKMo/ezuGa8M5h+Za6Zhm07RmPU9yylm Is3vHDWJ4zih
4S2BweaSZbtatBwjqxZ3g7k65EmB4QjoRoVMikZO63gbZwTabbco0L3X1zuL j2TBzwzNpyCQ
1nEWfQLxaypl16kwODSvoV/gaF0j+6Qgy77lOgKH85Yjp6ulRenNmYu2FOjK uwXTnjc9S63D
j53+itxPiv4340JS1q1155s4QZmDsz7zOWWWA3MptCNNEvkrVkXgQlMzEfwn VrzgSdOnz6OD
UdmbsM1KJTq5YUA7WIFXNFwWON0KR8cH+JCBJJmCtbVsSS93M4h8TqXkYx2f 4CoPWXNs3HKW
yC2B3ohqCgUySveajk/BLCZrupOScT8VocfNQOeGjjGMCxyp6YRBmpUs4L7W BUyZjAa63ldP
U862ZdG0x7xitSQdfzdrGm4JHN9fMeNVy16SXgKfs7zmVmS6oEKSHkghi9uK mpP7yLtTaPMq
2lM6pnFHQGMsp80Sc3iMDjcIK7B7OmYwy2yb5bJ0lkiTpuUb4R9viy8YyIG0 VUk7rp8202um
bS3VvA0SqGzc1/FAuZPw3Zp2ChO4TZsySLTAmdYE0/A1qySSvWGeFW1TeKgY ry3ucON8NOn3
qNHCIks+UpSMqKGbCr19VbGnLxo5FCcqPRh4XdWRLDXwZQWeKu2hWXOSNVFm uXYy1+HH8E5/
bZ8J5QKy8zp1UQ7v8l0AxfPWjYOH9Fo3v12wFKHri5uy7MkC64qcOzFTdXyr JOetisV7a8wh
l0xVHORGzx7u1XXYMB7jiY51PFU3Y73RtbxMd3ym+Vm36hXkLUtdyscb77+L yqiAnnMc6QUs
lBUNv5CqrcNBku90UhYpucLnAP+DJJCExpHOcvUMbZwB/ZtIdR15ga42vMSB yeF/cHB4Y3IT
PcPPcWobYmELvRuB5FF22nNEe4fzk4hz7GP7O4cu9HNnAN0YxGkM4zx3eoh+ iDID/AbuaBji
DjDCh3+E5jSc0wjK9ha6c5lvZeTA8Bbe/YOTtsBOim/gCmK8mBWuXhPCBVzk W8DAeyHAb/yq
ZO+NvMD7Ar9zSpu1X1vgMdCrzstzfbTBIaOG0Y1tTCxsI7vQ9dkWctTNCzzH 3a45Ds8xv4WF
v6lUO3RPEMbrSGOU6xs80BgdmNg9MI2HjqnZl/iKrqkDxxFLx2Ixrtg7QnfH Ka80Utt4yBB/
kx/Z2HfoKaZqeg92KsROcPUtvgvixX7SiGcSr9CId5+aDyLwliADPPaaRrxl 4q004pnUXIzA
s/AowFuFHeJdCvObYNBLL/G4jhYPvq/uSW8iREqiQv12+EFEq6HsWrDDRAay QGwT3+9HWwvQ
2oLnh2D8ET8FPvJ2wc/4NZ78H1BLBwi3eIo28gQAAJkLAABQSwMEFAAIAAgA toZhPAAAAAAA
AAAAAAAAAEkAAABjb20ueHl6LnBxci5tb25pdG9yL2Jpbi9jb20veHl6L3Bx ci9tb25pdG9y
L2ltcGwvTW9uaXRvclBhY2thZ2VJbXBsLmNsYXNzrVd5XFxXFf4uMzADuSQw ZE+ahRIyTBom
pa1LAG3KUicBQoFAi0t8DA/ywjBDZh4lRGu1tm41rnWJWnebarUNtCGl1Zq4 m6rVumtrrVZ/
6n/+7frd994sgTczcYHfm3fvueece853lnvfxX8+9gSAJrzgQ4nArmhiMnx8 9kR46lgyPJmI
G2YiGTYmp2LhbnvSq0UntHE9QpIPXoGdieR4WI/GjKmUHtYnxzhOJHVbpOMS 5jKBWjftlyoW
qBwx4qNGfLyjLaalUgJbuty3sNebBcon9Nk0c5WjtV830yS/kYqQpo8KiGFy G6m2pK5Z80p7
ydBixgk197dwFxJeJuAJNgwKeNsSo3o5BGokVkAKrOoy4nrP9OSInhzQRmI0 N9CViGqxQS1p
qLlDLGux1PixXmD7EdOc2hsOh12cb7RcKcdGbPZhU2GAOrUof2clrsAWuqFH evoH9vW0dQjU
dRUXa66AB9sk1mK7wHXBrqParVo4psXHw/1mkmg350M5Ld8wqHC4UsIHvxrt kCi3RzslKuxR
g0QlpBrtklip8PKaRwzGYLerhXnyiiH1KvgE6oMNhVxzZJrLcTWu8aEpbzam E7GuTx83UqYC
8Vpcx3hnMWzI5/9S0eYV3O3FEi/BSwVWjDPPMpl7rQusxfQyLgLNKi5V5WjF y31g8m3MlTme
Gg3f3N/u8KvwXy+wuSs/Cy1sxQ0SbWhnJupOGWwL5jXFLiRlSKfEjagSWBO1 SsRR2JaIm3rc
TCmOiMR+xbHByBSOC1eXRLfiKhtL6voJQlNtHtGXFXq/yWG3NmUVjQ83sdYL gyVQQcBvsPsD
Sy87OZwh1uX3s08f05N6PKoQGsTNPgwRyEKYSNwCtoy1KsqM53TUnE5qsU5C M53UiekOl72Y
r0zT8LRpsAF2MWW42avwGh9ezVZQlFniMF7L7sMdGYVgpCEnow6OHNWjZrMP I4xmMRcFVueg
s89kNo5Mm6o1kXxAn7Vzl4PDPdqkXhC2jDC3PpJ/65w9VjmqB2andFt9JSnd mdZshy47P0xm
wlmdJTpdp2gLyHY3gYTEFI6xV6twOQuReMrULDhq8zuYq4QxNzEtIO0KSB8i 21UoipbPjMRx
0OgqRzgnGrXBwuKRhkGl4XUSr8/VkAHVjzcI+BzvFecbJd6EO0hL6aaN8Rq3 9jPox52EhBA2
EsJGQtiYo+QtEm9VSlYoJanepD5mHFf0t0u8Q9H9Fv1QX8SPd7L5OyfZzMxM o+NIo3JKtZ+m
PXuaVA/y4V0Cm9wi5uSiH++h0c5E7fU+iffjHpa26ihpvEeLwJXj6TKC4/rw 8PBlhOyDEv0Y
UB3zwxKnVMdcz/ShIx0xfZLtrJ3SWlIzjUTcj4/S8pGs5fdKfByfEFhpWZ4T 7CfzWp9tQQVN
M8YMPZmXJUfJ8mN8GSUSWQbWcPrvMlqlcvRTElEbpM9IfFaBtNEGKZOel8B0 H68nWnrFh/sF
1rklBIvejy+w2XGgdvmihI4xdXt4UOIhnGERWtZkmn9dPmtzuNht5/GIDw+z 5IpzS5zFgn2q
dNhwMcvzN4p2zdRUT2v241FeUuIsO2X4YxKP48vpPMjpg/fnzYNsT72cPPjf onwZjV158YSE
gTE/zrPsTadx+/A1HsoF+i+btx/fIILZudL1LYkJDKjRdyRG0e7HReLFe7p1 O/ieRJ+i/cA+
hJxeYC39UOJHeJrnhTY62nFwSrdTin2xWD/4b1CMRAqAk9mcwf4Jk3TCTtKf Sfwcv3AM7GXK
T+qmnhS4Pa+BWUX/fyMzBlgR/JXEr/EM89A+PPr0VGI6qfpR639wMU06UuG0 OK/jlby9Ze+X
AiWJKZZXcYeZF/2Wjk5DfRWtW37Xb1R2sdAj8bietHBQ9yp/+rKN7XTLw6cU ZShRnx78Vi1R
Hx7Wu8J6V6hPM2te6bxXWu+VXF2FKkpXc9bAt/or9TyMwJzFttoSLuFvN7zY ijUWVT1rM2K6
tT1wZSiwbh4bzmFrSJxFrfqpUz/1Ic9ZBNVPKKt0Cy0FOmjnDlpxFWpwDdbj aV7d/4padFob
SVstV3fzXY5GhJ0tH6AWtTY0j8ApVM9jT2DdIl5UgvMoPZOdXYA4hars/DQq Hoe45Rz2noc4
4KWX82hZxD6BodACOvi8gs+B0Bmq9lhm1lrwjXFsoIUFez3iiOAY0TBxE2Zw CLMZU1uwCT2W
qQf5+OFZvbnTh16usJQdw5UDyvDS0COoPZNBo8wi3pHjdanjtVBnryPc6nhd o4QXcYhxX8Qr
ldPaUlV356iqyaiKFlDlzafqHldVo64u1S0VvtfVJZ5hLnbUXeLS+FJV97na YRRQ5c2n6iFX
VUddXapfKvyoq0sTrtDWF47SBVc7Yph0VDU5dviZlfHz2LhU/mKOvD8jf2Om MuecyhykKcFT
8M6FvKoSQ54FJFWFquBzfKs18FoDr7VUpyh1XDphDbzWoNRaqleUeiU1l6mS RrYX4Bna8Cwb
zG/ZG55nr/gdgngBV+MP2Is/8lP7T+jCn1kxf8mxetCx+qClS/hJ3J82X7A+ SYQIcsdQ2vxQ
KHDbAm4PBd68gLvYcRbwNlXgdzvl39plORM4GXi3x0O73zsUIngf2LWIDxHL wEeExxs4yRX7
fwEfs9Y/yfVPq/XPua0TgcDpwOdz9D1A2pcWMcevtHNK4rSSsAUWLYavZBm+ 6sJABAMXAl/P
0fhNPt8Wge8KT0ngAulpbnv/eq4+Gfi+p8RL0lPdoasUd+DHZOP8p0MWDL8c ygZkP5ED/saA
/J0B+RdqiPUGIbBVeLFbVKJVrOTH9ircJqpxUgTwoKjBU2INnhNr8Q+xXlSJ DWKb2Cx2iius
YG2z4+AEazc1P8tWKEQVe/Zv8ByTMhPAEsZfZenzjL86OwQzoBe/Lyv/N1BL BwjdaQAYfQgA
AEcVAABQSwMEFAAIAAgAtoZhPAAAAAAAAAAAAAAAAEUAAABjb20ueHl6LnBx ci5tb25pdG9y
L2Jpbi9jb20veHl6L3Bxci9tb25pdG9yL2ltcGwvTW9uaXRvclNldEltcGwu Y2xhc3O9lu9v
U1UYx79n7VbWXYaMuQHbgMKA/hjUMVGhc/wYAyvdhnRMGSLedWfdZbf3ltvb wfSdEaKJiYnR
aHxnjG+UF8OozSRRXmniH2V8zrlnbenaMmPiku6ce+5znufz/DjPuX/9/etv AE6gEEALw9GM
nYvfW30vnr/jxHO2Zbi2EzdyeTM+6T2kuZukxwD8DEdsJxvnGdPIF3ic5xZp bjvcE5+Ynr/N
M0q2jWFfPcUVnQz+Zb5aYDiUqlVKG0k+XnQN0poyCm6CoT1tZC3dLTqcYezZ O0ZT9axf5quJ
MVLWNmrQwhiDLxyZJZBxe4EH4cMODR3QGHakDItPFXPz3JnR500y2ZWyM7o5 qzuGeFaLfnfJ
IAcidW3VCSFZ1nja1V0jM27qBdp6IBzZ5IsX0gkpkWhHL/YEsJsh1iScV/TM sp7lgynD5Y5u
FjTsRR9Dx+T0VHJm+uqt9MQM5aO5JYZAlruXZUoO18Gql5SzW5Frlop2UAw0 BLAtgIMMJ+oT
erq88hq3LVc3rBy3XKk9gEGG3gYWggjhiMjpUYbRcOq2vqLHTd3Kxj2XGwQk aVEULd1UFhNJ
USPbKW+Z5Uk9r3LfQcE6b1gLhpWlgI2FGzq5tUje/E8K6odY4VGYAzhGB73i /jWrUMznbcfl
C9N5qhjXsK2JexmeF5MghrCDjgadToY9DbEYOnnSWuFOgV/lOXuFYvJJeKsR beSSZbvG4mp8
SgxGRnKNL1G6Gweh4Y4gldaLGvoxEMBLDOEmpVXGE7HswEm8ouEUTlOS5/WC kdlwb6W6gpQn
/4sjPoxqGMYJhm22u8SdCWuB0rnFWFPrXOSycSYvMLAkta1cQdTs8L8moa38 kujcveHk3Fxk
czQE6kUN4yBLAYcXbFPEjc0RuGCbWc2Lrsll9+8JJzcriMx2YBLTAUwxhJ5Z 9hquiG7dmjG5
7gRwlaFbapQS47ZpkkqCFypnNFwDHeM2fWHhnGlSYatk1sgmInPCibc0vI7L hG3xu7O6WZQ3
wCZaUsfpKMm7LExdQux8R8MNvC3eJAvpjTdzAmFeQwaUuIBRmMjl3VV5+0hr ixpu4V16JjiG
U41bQdNjLrpUYN57YBhoKkt8jqrq/iadhzQG03bRyfCLhmh6u56+z46LiNCd lrQs7siWyumb
4g7DwWffVRTbjduKmjT5Tr9W+vnFZUBjO32itCBIvdsv7mRa2U4rIzQyGluj JXQ+kiLP0f8g
jcBpEk1gJ800Twhd2EWjH914Xik4rhT4f0TPWnl/m1y7ULXXr/Yy0UBIysPZ J3XMKvm+6E/Y
/ye6oo8Rut51KOor4fDP2C9WhWqfVN1JIyj7VNLooXqtmOhTJsJSlvXQYgTR sq2YtDVKM+Hb
tscYul7C8d9rmG9IhT2ejFIoZnG8ID2lrqE8v08++WmM9X8vZQ6i8rcr+gtG nuBk7Ng6XvZh
LRrrP1ZCotYLToHM4hAMaTTqqSsbjeFVjEmoGM7grESK4RzO096wDGlLdye9 p+6gkN5XSKE+
D2l3LdJatK9/oISJWpACgRSxB3erQEJlkJA0z+TsEl6TICEkaVYB8dN7OuEK 5FN6I/SOKJBY
Lcg6UgxiMvQEb6wj3YI3H0X7hko0lNH2UkqADwjtQyqZ+6TkAd2kH1ECPpaY BzwTZcyRMuYI
rmOOMDfgemmVmoiCc1QJDCq4gbpwhFPCzQpND5U/8BnRfE47vqDS/ZIy91VV uQyWSQYVyYZ9
8VVGDUnZv6fsDyv70afsU7H/gZ1iWAf1gq/R6n/oeyhg+MOarH1DMN9SWL6r ghguQwxXQbTC
190tyjeLJUVxRiqjA1k59d4J+KEquKysjakTIGYGbtMOhmWYStlJqaOOsrUq tM3KWpCT8hZs
iKZDFyHycNra/wFQSwcITTMCp4sFAABTDQAAUEsDBBQACAAIALaGYTwAAAAA AAAAAAAAAABO
AAAAY29tLnh5ei5wcXIubW9uaXRvci9iaW4vY29tL3h5ei9wcXIvbW9uaXRv ci91dGlsL01v
bml0b3JBZGFwdGVyRmFjdG9yeSQxLmNsYXNzlVVrU9NAFD0LtYUSoQKCoAhK xbYIy8N3KwgM
jIzFx8Awfg3pUsKkCSapWn+VzijO+MEf4I9yvLsNxalpS9ppcvfuPeeeu3d3 +/vPz18AlrCW
QBfDguFU+KfaZ37y3uUVxzZ9x+VV37T4Tn2wVtJPfOFu6QYNaunFBGIMM51Q ux9N3zhiiPtH
ppdeoDzFaInyhC2YNLHCsJyJCs7uM8Q2nJLoBUOfhkuIJ9GNyxoS6GfozsiA gaJpi1fVyoFw
9/QDSzAMFh1Dt/Z115TjwBmTJTAsRdSQXqQS+gzdE+umXTLtMsNWeB3BfD5b dNwyF4ZlnniC
i8ohp2gK4rbjm4c1HvDnkxjBtQRGGeajSdIwhnGGYcMVun8mKwhhyGYuKoBa 4xwcC8NnmGhb
EUNCLsBLUWNYDy+e5iIVPqXhliwiVS+C4I0CxlomYOiXOs72piDh2+FyzkMi qZrRcFeqGq2r
OmdpiJvqlI42S0kc6lXL3yCpDC8y/+UXhuMKvvlarX0kffc0zP3T+oCiIW6y QyqGuXbdO9Y/
6NzS7TIP4pN06hY1TOCmOryd6gjF39eQRY54Oh2aUPQjDUMYJpYLtDmU4KmG aaQZkrtO1TXE
limvgvHQYzUvCRh6d82yrftVlwLfdrws6hdk4YI9XKEWDGzahuV4VPSO8I+c EoO2bdvC3bB0
zxMepkh1N93sLJWS9x1ZvfRLoIf80nqMLvoCydzsd3r8gPaVRl0YkD41wwi3 jRRZGtnSewWD
yk9rGbAU6C1je3LfkDzF1S8NjrjCFBV+pB4T4KV1HTdonsk9Ec402cz0piXT bcVE7QlnutPM
tNeSKaOYaJ+FM802M71ryTRP675G1fGAaSZY7Xhu9hQLzTxM8dA8YbL0XxyC WW6HGcKDMMzD
dphp2gEhmCctMYghr6wCnqn3ClaVd4Sez9X+YApBn79QSwcIJo7UnMMCAABW CAAAUEsDBBQA
CAAIALaGYTwAAAAAAAAAAAAAAABMAAAAY29tLnh5ei5wcXIubW9uaXRvci9i aW4vY29tL3h5
ei9wcXIvbW9uaXRvci91dGlsL01vbml0b3JBZGFwdGVyRmFjdG9yeS5jbGFz c5VVS1MTQRD+
JglZEhaDyEN5KCJgHsCCiA+CIERQyoBaoajS27IMYTHZjZuNGq/+Ao8evHry oPgqtcrCk1X+
KLX3QQSyQqhU7cx0z9f99Tc9k1+/v34HcAE3BfgYhhU9Lz0tP5MKjwwpr2uq qRtSyVRz0qKz
mFmTCyY35mWFFmUBAYZx3chKXMmphSKXeH5dohgElTTdVNfLkpov5KS9sAUy MYh5fY3n7srK
QznLGfrSXrndtO6uJEODjco8UU1lgyHqCdpN2NlJwFBGzWqyWTIo170aYZPp g2tzy0pOUfzg
pErIKQZ/NLbCEEgRzzD8iIhogCjgOMPI0dTtGw2jCScsfAvD2OG17oUnYysh MLSJEFBvzU6K
qEMwhA50Cehk6D1ccBHdCJJ2fGEpszyzlJpjiKRVjS+V8qvcWJZXc6Rmc1pX 5NyKbKjW2jUG
zA21SCUflTRDY8ak5ItywY3UpBZd57xuLJcLZGqNpjflx7KUk7WsdGd1kytm MvZAwABD9/4T
44pucGnO2dWAfkRFxBCnA+OpnFwkjj3RWNU5uyh7R7IBgxgWMMTQddA+ERJG qEOz3JyrtHXv
/4P/a+qgbrOzpKyqiwRRDC6b3BWKujd6SFsuWYNKfVmd2rt/w7iEKwIuMwzU djFEXMUEQ/2a
vnMTx6pJ7VGeuFSVJmCSob8miqSRKRukrHXna6yeocVRblbV1lQtWwkV8zgT b2Go+5wQt3m5
Am93TDuCcLPicfO5JVfM4YxeMhQ+r1rt3OHZ98OWOPQmLmgaN+xu4kWcpUvr p9fZB/vm0ixg
3WWyhmxrmFbMel3o20iWPPkZjd3xzzgW/4am+zRp/ojWLbT/RGgLp96j/R1t 8OM0fTvskDEC
3aLwC/TWxNGGBLowhDPkEZ1g6CEiQK9j+UNuJtgehnPoc1OXiY6PxniCcr1G XeBN4gf6X6Iz
sY3+LzjP8AUJhh2nn34VHm2UHdRQAiaosEnicQ1RTNsc2pyoLgdrNkp/Vsxm Uwd/qIvRYgwX
XRopl0Yk/gGtVupPGN9G8q0tl5UraDNf3xU7UokdobxTsAJO47obcNBeE5rt j1HapZHPjcEw
UwPyuSdytgbkC09kqgbkKw+kDzfs7xzmaQyTr8nWAX8BUEsHCJwsiZtTAwAA FQgAAFBLAwQU
AAgACAC2hmE8AAAAAAAAAAAAAAAARAAAAGNvbS54eXoucHFyLm1vbml0b3Iv YmluL2NvbS94
eXovcHFyL21vbml0b3IvdXRpbC9Nb25pdG9yU3dpdGNoLmNsYXNzpVZtUxtV FH5ukrIlbAtF
C620FGppQ4CGWmwVIlLS1EZCKE1sLaXVJSxhIW9NFhXH8Q/4C/QH6OinWmdw 8IPTb53xi7/H
Gd+ee3cJb5vEFxh2z55z7nPOec659/LLnz/9DOA1VDT4BC5mS4XIJ5ufRspP KpFCqWjZpUpk
w7bykVnnI/2xZWdXNQQEOtaMj4xI3ijmInNLa2bWFtALpWUzf8fIrhs5U+BC 0gvORXK9JgRa
ohY1kwL+0OA9gUCMIEH40aZDw9FWCBzTcQQtrWjHCQ0dAueb4+roRItAq5lI pTM3UrG4QHvS
KpqpjcKSWckYS3km2JksZY38PaNiyW9XGbBXrapAyDP5w1ywgK79MJvlHaiR f4gRzWQmJgl0
LG0z+1mj7K4/ulxyHASuhpKlSi5iZvNWuWpGzMIK5VLFjMQd8icGkwf7QcDW tJUrGvZGRXaj
KQKzaMM59GvoEzjb0FnHebzK1pmxvFElW32hwXroymMiyDYO6HgFFwXm62bi +P6XSoP2qhnf
mcNzTRAEpv9nCoqqIYxoGBY40whKx2VEmJ8ZKxVtgxNYEeivz5YbQIJf0bkv r3Juc6atoKwV
y6wkbqqNkpCEvi4JvSYwFkr8e85kiDd0vIlxgeMMEU9vlLkzOL3s54BHhpxl jrAzvvGkVZUQ
UUxqeIsACl6ZpEXH25gS0KxqvFC2N1XGCzLjaR0x9Ai0LZsrxkbejhlVU6LE ddzCO/RjIgIn
QwnvcZZNdieut3EDGcLcW1BHcn+GdBg9oIo2RpQbdKA50ZwMDXMCPV5bf9oq LlvFnGRiXsdd
pJlmlhS4eoEr3seOa/dqo4b3BLq9Fs2YmzLQfR3v4wGbIQNRx2PJOwht3gEe ku0GJ27atGWc
Rzoe4wOOgoyza5LT2egeoIv3jtaz+2ZeJFjC0g5PZxvSxIOpYlY5XvKI94D2 r0saTtdlgdu1
sKeAvmb5E5Ft573UpHvKqaXknlK9DdqgPAeaE6f8gunSRiVr3rLUnbbvZrks q+dlFs2MHyZi
8rAK/eykn/8RkH9551I6SllTz1Z+rfMt+D4R/hHBZ9BfoPUZjv8A/XsqA3iJ z06+gWE+RxDk
6deBUbxMje4sxEl08d29T3OK79OO5i8uEJqyCB5vPfDhDGUfzqoE7jI9n/QM D22jV2BoCxee
8tuvYreodeMqXpfj58aT0iWEaN+NrLuRA/JeqsUZVHF+JaKsY4phwgIs9Wu0 y5ijAsNbGHtK
8bpAamQbbMGXaAtTe+MbdIZH/Nu46cNzDA27uTm89JJGIA551J1CgjftDPNJ kp1ZHpfvqpzD
TsxazlO4TU+hJJm9T97P9J1hdt21GqfcOhxbkjbJ5TH4T/2Obg3RlKaK4V1R K3JWFik+p3SE
39We71S4PJwfCdrDv2v8mx9+jlQqPLKFO+OB04EXCKpKpfyUpowy3fMyLSjT 4iGTknZ5Gcdx
Ph8wsYfMf5FVPsIYz5LrMHgzLPHCyGIOy+x8DvexSouFNf4WmK7kbFH1q1rj rIoPuVIoyeGs
n5Ylovj51U4kk5Gj1K0Q0U/8Hd196laJ7meMHV13rStVl2UHY426WE16XJMk 85egnflDMi+J
/w0+JWf2yAuOzCR5B9R6sq4KuU2t5N8nDo71Z3vG2lcr10casvvG2ucmKuTB X0MvNEH/oi56
rg46j/saerEJ+ld10a066LFDW78++rd10UOe6D6U1LPs4j/5G1BLBwhVjCk6 DgUAAAgNAABQ
SwMEFAAIAAgAtoZhPAAAAAAAAAAAAAAAACQAAABjb20ueHl6LnBxci5tb25p dG9yL2J1aWxk
LnByb3BlcnRpZXN1jjEKAjEQRfuBuUPALTW5gAoWCltoZWmjybBGsjthkoDe 3sRuYZ3uvQfD
R1ipreX4ET888x4bmhk31fWuQ0B4+En7yYbiKKmd0usbgprfyI6CWQjn4/Ww 6S+npRZDGerr
9xj+xygcSbKnhPC6S9KWx+gDaRZH0tYgJC5iSetKSaxB4JJjyT9Rt1fxBVBL BwjDuZSkjAAA
APAAAABQSwMEFAAIAAgAtoZhPAAAAAAAAAAAAAAAACcAAABjb20ueHl6LnBx ci5tb25pdG9y
L21vZGVsL21vbml0b3IuZWNvcmWtVF1P2zAUfUfiP1jec+O2e5miBgRrkdDG VlGQeDXuTbDw
R2Y7NN2v33XzQUvZtKrkoansc8899xw7k/NaK/ICzktrMjpKhpSAEXYpTZHR +7urwRd6fnZ6
MgFhHaSzORfPvABSa5n2VWOsOj0h+CCZ8SluZvQphDJlbLVaJVYXiXUFe7i5 ph3E70JWnzeI
8XA4Qtj3hXgCzQfS+MCNgB32jZKdYhBKlh42DKDzyDJmswijxHCNYG2NDNa1 PMbf3173DExY
zer1b1b+cqwFJtBW+7mDXNYZRVCCoARBScd2Fukm8FVx72Uu0Q6Cc6VhXWLL 1rDNZifjUppo
bFMYSxfBVSJUjqsr4PiGdxhuIQcH0YWW5bFlIXC314mUiofcOp2yUlWFNAxN 6Q2q/RInXIJi
D4tpM+MnFv/PFGgwYYpA7njAVCk7TiQPwcnHKsBHyrzoSPeFTth2Dgcn8w3W h6Vy8TpfwxB/
38465YHHBfJfhxVnnGHrGO1h5u9pibs/Pl7PkR7fNNdmAeHV6p8lNDH6FlRA aG8J1lUlbl/a
yiwzOhj106CwNzcpUs3xQGgIUUdD9YyZbpXEiHtf2Vbn4w46dvmn0ti2E0mI sCZwaeJlw5hc
hTTYxqoXmDtbS/AZzbny8DfHcWHnQ4xLfwBQSwcIyAV6j+wBAADDBQAAUEsD BBQACAAIALaG
YTwAAAAAAAAAAAAAAAAqAAAAY29tLnh5ei5wcXIubW9uaXRvci9tb2RlbC9t b25pdG9yLmdl
bm1vZGVszZVLj9owEMfvK+13iLznxpRDVSHCtoWlWrVQVFppryaZBHcT27XN I/vpOzF2gAJ9
H8oJj+fxm//YTv92W5XRGrThUiTkedwhEYhUZlwUCfn8afzsJbkdXF/1CxCV zKDsvQUxaf5E
24r32sAuBl5fRfjDfML0cDMhS2tVj9LNZhPLqoilLujD5J54F0ilhiMnSEuu DDhHqHLa7XS6
9K5xO8odUH4eG1hJ5AJGXENqpa4TQlNZxdv6KVZfdVxJwdFMjU59Iec+K1cF F/ejhJxx9imn
rMIeJsHGKyW1Bd0EIUlLhURx2Iu/sDXzdTCxKjkTKbyHddPRi2YAqVS15sXS jjmUmUlIzkoD
JFoZyLClGUsfWQFoVyWzudRVjyrHSg9rbk1GHSN9mI/iINoNpbhBBk39PsYC L3YaDV65/T49
Mjq3Yl8zUhpyvj1oecEM+N0joUiUcaOkYYsSZlqueQZ6zLz8Vq/CTKPIHYQ2 hdc3dtYbuiPd
QQxLZgwyuC23OHGnb7hozm4I2wWOgdmVxkghLc/rVtBU4wYMl7zMWpvSUoG2 9RyHNVxKnjZC
O95dXZ8rIW7Vu/sIOWi8MhBdQKELj0T/IyZmreaLlYWWqk/3Cv+m5u+gvqD3 uWbOEr8OPCfE
mJwKvGWX5PtHJWytYHpY5i/08HdjDvaCLGGeCZlK0cy8oceBhaEe9fRHc94j 0EeozXfifcDq
zOLD7fto1z/qBfWw/viYfV/hedCoHT5uJtxmv/7VhA3lISQ9orw0EmcIT1Pz laInnym0fgNQ
SwcIoiLWj0sCAADkBgAAUEsDBBQACAAIALaGYTwAAAAAAAAAAAAAAAAlAAAA Y29tLnh5ei5w
cXIubW9uaXRvci9wbHVnaW4ucHJvcGVydGllc+PlUlawSc4vqCzKTM8oseMF cfVR+CAhFc8U
FV4uXq6CnNL0zDy/xNxUBVsF3/y8zJL8IiCdkpoDlCvKL8tMSS2CypaXl+ul ViTmFuSk6uUX
pfNyAQBQSwcIm7ocO1UAAABqAAAAUEsDBBQACAAIALaGYTwAAAAAAAAAAAAA AAAeAAAAY29t
Lnh5ei5wcXIubW9uaXRvci9wbHVnaW4ueG1sVVC7TsQwEOwj5R/M6trYIBqE 7KRDojiJAmoU
OYvPwi8cH8rx9djnXODcrHd2ZvbBh8Ua8o1x1t4JuKO3QNBJP2mnBLy9PnUP MPRtwweURocZ
/7j3mVtKuXjTdW1DuPThFLU6pL5k7H+agd3ztGubrquSYI5Ku1ohhOOS0BVf Erx2SYCPiq4t
KdqP/PcRqUKHcUw4vYdRfo4KoT/ri8WKXPL6jlELOKQUHhnLA1m2nH5Y+IrM eqeTj9UXrkXS
jPMsINNpptNMpxf6vsaXtfu1Lk+39xMaAbaErUfGzwCwOi1n27r1GGy7xi9Q SwcI2FtahekA
AACQAQAAUEsDBBQACAAIALaGYTwAAAAAAAAAAAAAAAA4AAAAY29tLnh5ei5w cXIubW9uaXRv
ci9zcmMvY29tL3h5ei9wcXIvbW9uaXRvci9CaW5kaW5nLmphdmHFVLty2zAQ rMUZ/sNlXOgx
JvQBUjRKYqVLUthFWpA8UYgJgAFAWYpH/54jCOvJyJ6kSEPisbd3t7dkxbNH XiBkWrLN9her
fhomtRJOm0kcxZGQlTYOtCkYZqWoLDKUS1prg2zxLf2BmZt0wjY2Z9/v7z44 Z0RaO7yjC264
E1pdDViUKFG5t8K/con5J033iqKuQh+2FVWxFNRdyxpH49EojmAEH4XKhSpA WHArBKEcmiXP
kHbcQd4EYXvVT1toHwaCIbsFDpJXVROsl7RJa9tgbaK9NsBVDj4FfxFiSPSe avHlM0idY8la
hH/M/Ylfj+OoqtNSZEf1vBSKG4cqtxBGAM9NNz3fTo9YHlbUiV3puszBoKuN gifqBNdoaF8Z
tCSWbcrVCTdOELeD9zN4npdCPcKFrrtbaIkPgMs5EUibI8Sp3jsWKMJr36jf hCI7eUFpB9OM
4DNVl+V07JdtJGnU6w4q0AWxBsMJnMpzj66d5pqXNTaD86MNpXd8CyxQ3RxY YYpyFtbTMa13
fZJ2iQZVhqzNM32XJJBiIVRSWzRJrjNIktnRJQ2x42peURcyVNeUpvDprNbz 7JfJ5xYRbo5l
COcFKiSRMN8ruNYiB3tAdivqCxhO/s5p6vABnBqt6wfROqlNIPk2xeu+e8VR XRne4KnOMJJz
fz441+KfbLWn9cba7/6TtU7zXzHXkRqv2uuA/ZO8wWI0h10c/QZQSwcI7j3o TRwCAACcBgAA
UEsDBBQACAAIALaGYTwAAAAAAAAAAAAAAAA0AAAAY29tLnh5ei5wcXIubW9u aXRvci9zcmMv
Y29tL3h5ei9wcXIvbW9uaXRvci9LZXkuamF2YcVSy27bMBA8W4D+YYscHBsR /QE2AgNBcmjR
5pD+wFoaK4zFRynKjWL430NRqmu3RgsEAXIhdrnLndkZWs43XIJyo8Rz+yLs DyeU0dIbN0+T
NJHKGufJuFIgr6StIaDWITYO4vZ+9YTcx8bZdJomNKUvaEnW5B9BUnu4NecI GXsqsJYafWm8
QTumSykgrohp9+Cd1OUV3VRc13uyLN0kvI+9t1/vSJkClaCIEI9lvInxLE1s s6pkfgTYscCz
hy5qGljSrqM5ijxHxxNi4uAbp6nnQdp4grK+7csBYTRUSvhvrHA5mdPpuAf4 frUtVw3IrPs9
d8tK6s05eUXgeDGMowXUdRcsZiHYj4l9gFs1HqKfvviUZbRCKXXW1HBZYXLK suujYlj1TGlp
2bEaOHWENH7+wfAE+m/kZQ3QxWHt4bKEhmOP4qDP1siC6qFtECsCTeZv0Z11 0fPt1AlUmT7z
linv/sc5U763FoMx7+TLr4nRmy6hDzToFP8fLv3W4b9OHVpP3Qrq7tPkFVBL BwjRdeaNiQEA
ABgEAABQSwMEFAAIAAgAtoZhPAAAAAAAAAAAAAAAAD8AAABjb20ueHl6LnBx ci5tb25pdG9y
L3NyYy9jb20veHl6L3Bxci9tb25pdG9yL01vbml0b3JGYWN0b3J5LmphdmG9 lFFq3DAQhp9t
8B2mEEi7YPkAdZc0IYWlNJQmF5ClsVeJLbmStolTeveOZS1h3fVD0pAny6Nf mv+bkVSsVlkK
KyiF6Qermq1fT//FYSAETzbyZBwUWdpzcccbBGE69jA8sv6nZZ3Ryhv7MUuz VHW9sR6MbRiK
VvUOGXY1jY1FdvmFCxIOQVnsHbzLc6iwUTrfObS5NALyfHJzs0Uoq3VcVhbV GmpjwVO4MxJb
FlQbD701v5REBxyERe5pHv3WyCBHLragjc555bylvUC03Dkw9Xyn4AW1/NfJ mcOj0Ozb9P0+
1WXSNqjRkgm5L9quapUApT3amguEuChyAT54SupgXx/4naVJqE8Si+CUblr0 RtMmznNNe0T3
9bSETdrFYibLdMnMchI8J3OPm6vrm89XF5fw6WgdqPEtO1yzGUOKIu8/hI4/ If1Av7N67JbG
ezDVLVJTCGjqy2mJ3fpcaUnQZUHj0/+lsyHfc9MdKUqUxUMW/16C9xWHt0Kb pzqCRZKIRKOX
4Fyjfyucearlo0vKSPUUWIQb79L+cXO7fnzFUEI10IRyr3XLIt1zci3jxScH GvSHkcj4B4ri
8EJm6V9QSwcISi6rdr8BAAD3BQAAUEsDBBQACAAIALaGYTwAAAAAAAAAAAAA AAA/AAAAY29t
Lnh5ei5wcXIubW9uaXRvci9zcmMvY29tL3h5ei9wcXIvbW9uaXRvci9Nb25p dG9yUGFja2Fn
ZS5qYXZhxVnfb6NGEH62Jf8P2/Sk3EU1tH1sfFacnFNZ1ziR7Ui9J4Tx2KHB 4MJaOveU/72z
sAvLb0wwfkkwLLsz33zfMDurXl31uuSKDAxnd3DNzQsdBr/V+A3/5ofJ6gO7 UHvdnW686hsg
hrNVvh/+U3b/usrWsU3quNe9bq9rbneOS4njbhQwLHPngQLbNV47LijjEaWu udxTuC4beWfp
nlc66imwpnTcDNbggm2Ab6MqfP+p3ydL2Jh2f++B2185Bun3AxwWL0AGyyFf YKAuh2TtuITi
7a2zAkvxR00oAmFT3bQ9ohsGeJ7jetFAoDpxlv+AQT1CHeLCzgUPbBqsvreC pQgZWOYQdOOF
GMzrXwYq/k4+WoNO9y4QZ03KhoK936ae6PYqeHGlo1X0sINoxEAVtviQgL1K A3LjQWbUlYfg
/71u4N9DMNaHiLya9urzBWfMRfBkAza4OoWV4NN+aZkGMW0K7lo3gPDpOPAE vlM0xyMi1ORH
r9vxA9jhURKMtPUtKMHt3MB28l3sJKzr+OZ15khYe0NgOnoYk8/kgnt94RMp 3xBvx3x5nk1O
aNFcw/mZTS+U7v5QVVTuVsXoqBgdVUTHF0A1a08M4Fx7mo3vJ38zizN4lGWj h29aQB0b+eFR
HfXL6E8j65s3N0m/yXS+GE3vWOyzyI9px1Li70zYLRPvfPyU4ZKUE4i5ClPF 5Y8by7Rf89e4
RS0hGmxyMoDtkP8eqHj9dhlkg/eikafwpAFVhqcx+XkDlE/y8VMu/pgIyO1k +mUy/RMh/zUD
QZEIZfQYIpitQ1CWQx+YS0y5PPE3yxRy47grnDjTbk2r7UD4fTy7C6PFYja5 fV4w4v+W4QR+
YpbgMjl61N0b6JBuCc88odLLJFMbIuoxntyPR4vn2Vi7e3yeLtCZ3xsU5Vc4 hILE6/bEyBeu
L0ScoESEX8ffckJfwN8pfkIk6uqCzm0EHA3WNP6ZPlJ2C6yGyNltX3x7GgsH 3ic5wcUW5cY8
OKXUOI3nQEPF4XV7iouvX1940Twl+nt4nE4WjzNtPs6DsoDQSABP4jLfo2xx 6xF9TohlerQN
akieaBryZJ4j0Or8FpFvkd+yE0meB2KV3ZkBGo17wsQu0I+Tb3Ih4fkXM6PO e6+nrm9XkVmp
L7ZSwnU+OJfLwU6eyMXfdXWw2L2IsRVAk6rMdvFLWFoXx6wqmb1SrXqOGh0S 4FprwIflqw+9
VMyeAfz46sfAH77ZWACkGY8IQXmiwDSfqD3bSRBhfVGGKg6skBj8YvRIbobl WRlALG6stPOB
Cmq8Ntgo2RdbuApkwuQU/4qr9qi7ykHVgklOiSyrnEN0pTL6DBDHV6+Ks3Dg 3VhHEzUq8ahe
TNS87Sg9rLTK4IzsrCB4uQg+kp35pWxFGHlsPZE4vXbIWmR3zJIjkBaupLhb aZMR/1RFr2jB
lAVxWQetfrzWKTFcrNAheCC6tGG1Lo5KmkK23sr5bV5+aCEBwO+k/C+0/gus TRvXtkyK61h5
J0DMaOkMyJ/WP3hhV3mnQIlnhcdAibHyOVD0KPcgyLdHDQ06rm8eHeD8JUBg JzUcwKzdPwer
+RZ4cbiKXCvf1Me74HWbAHIdmcKTAyrSZdRLDs8ilPRm6hicy5vlgmUNoJnp WZR5MlrmWW4m
tzA13C1srZ/BYbnBnulyatPQpJbKOten1FDUvK6rH1GblWkn6GHH0JX2GjVI lNcjPjV/ompT
7nInHYvV+zW8K2yDt+yi3AxP+ZmstZtURsVG8ykFkuo119VJog4sk0u85RxD PV2x1+BX5a50
e+k4qzed43isLn5jf9+IqsaB73X/B1BLBwhHUy+cVgUAAFglAABQSwMEFAAI AAgAtoZhPAAA
AAAAAAAAAAAAADsAAABjb20ueHl6LnBxci5tb25pdG9yL3NyYy9jb20veHl6 L3Bxci9tb25p
dG9yL01vbml0b3JTZXQuamF2YaWQTU7DMBCF142UO4y6qNoKuQdIqRBS2UDF ghM4zjSY+g97
UjUg7o7jpPyqSBUbe+x5895nOy52vEYQVrND+8Lcs2faGknWF3mWZ1I76wms rxkKJV1AhnrL
ojyqWENSsfWdDFSclKKwHtn6vnxCQclzMZ/nGcxh0+c8IIEMQI8I0hD6LRcY T5ygwq002LfW
mxvQtkLFIA2n5SrdpHqRZ64plRRfTL4E4IHQVAEGDnjtQEaJZPRpJKwhLo1G Q5dj8g2OYeh7
pMYb6J46UVTcYjupqQBnQ5ClagG1o7YXR5JR+pNlVK2gRop7mM4KODPTcc81 7LCFaXSYgbEE
SxGHVqZRarlI5QnAa2kqaeoE+YNqaCWyoQ5dQJf0G/IsiF5c9qYwHdz/HOq4 9lZWwKvqSHEB
w+TR6l9YHwketd3jt6e+5dk7UEsHCJNAFM1DAQAAAgMAAFBLAwQUAAgACAC2 hmE8AAAAAAAA
AAAAAAAAQQAAAGNvbS54eXoucHFyLm1vbml0b3Ivc3JjL2NvbS94eXovcHFy L21vbml0b3Iv
aW1wbC9CaW5kaW5nSW1wbC5qYXZhxVffc9o4EH6GGf6H7VyngQzI78VlklyY DjO9pBNo5946
xl6IrkZyZZGE6/C/n2z5h2RsknINvIAl72o/7fftSnbOzzttOAfX59FG0OW9 HOmxY0+kk28n
wdvkwem0I8//7i0RfL4iT5t/SfRDkBVnVHJB6CoKh512p60euJC1NleUBZQt h3uN/tL/n3Us
c0kulgT9kEYxElwtiP
Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #517762 is a reply to message #517742] Mon, 01 March 2010 18:30 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
Paul,

Comments below.

Paul E. Keyser wrote:
>
>>> Hope you had a good weekend
>> Canada won gold in hockey. I generally don't watch hockey, but I
>> made an exception. And a good one it was.
> :) Well, I noticed that Canada, besides winning the most gold medals,
> also -- if we normalize the # of medals against population -- has
> outdone the USA by a factor of six.
Yes, that's pretty typical. :-P
> (See attached, for amusement.) Seems like, except for France & USA,
> medals track per capita GDP nicely. What's wrong with USA and France
> ...? :)
You have to consider the snow factor though. Lots of snow helps.
>
> ========
>
>>> > There are quite a few issues here. None of the things you've marked
>>> > with @model end up being features, because none of them follow the
>>> > "Bean" pattern, i.e, the methods are of the form X getFoo(), so they
>>> > all end up being EOperations that you must implement manually.
>>> > Probably that's not what you want.
>>> >
>>> Sounds like there are some fundamental EMF things I do not know
>>> here. I did notice that all the methods in the impl-classes had to
>>> be implemented manually, and I was surprised by that, having somehow
>>> gotten the impression that EMF was "supposed" to generate a lot of
>>> that code ...
>> Yes, for features, but operations represent behavior and EMF doesn't
>> generally know what behavior you want.
>>>
>>> I was more or less following the example in the Eclipse Help docs --
>>> http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclips e.emf.doc/references/overview/EMF.html
>>>
>>> and
>>> http://help.eclipse.org/ganymede/index.jsp?nav=/14_1
>> A little less than more.
>>>
>>> What would you recommend as a source for me to look at to understand
>>> the issues around "features" and so on?
>> Simply follow the standard Java Bean pattern for naming. I.e.,
>> <Type> get<NameOfFeature>() will produce what you want. Only put
>> @model on those.
>
> Ah, I see -- that *is* implicitly in the example, but the newbie
> didn't notice the pattern, or think of it as something that would make
> a difference, and the help-docco makes no mention of it.
It's so obvious as to be self-evident. Joking aside, it's definitely
ingrained Java naming pattern...
>
> I tried to make the changes in the ecore-editor, but did not work out
> how to, so went back to the 1st stage of the project, and edited the
> annotated Java.
>
> Then, when I generated the model-Java, the MonitorSetImpl.java had two
> compiler errors, for the missing @model-less methods <code>add(Key
> key, Binding binding)</code> and <code>remove(Key key)</code>; trivial
> to add, but a little odd to have generated code w/ compiler errors.
EMF's generator only knows about the things in the Ecore model, so if
you have an interface that you mark up with @model, but you choose not
to put @model on some of the operations that will need to be
implemented, then there will be no corresponding EOperations in the
EClass for that interface and EMF will not know to generate stubs for
those operations.
> Also, I'm unclear on how to use the EMF framework to implement those
> two "operational" methods ...
EMF is primarily focused on defined the data model, not on defining
complex behavior.
>
> But it is still the case that the body of the method
> <code>EList<Binding> getBindings(Key key)</code> requires
> implementation (it is just a stub) -- no clue why. And there are a
> bunch of methods like <code>Object eGet(int featureID, boolean
> resolve, boolean coreType)</code> whose purpose escapes me -- maybe I
> just ignore them?
You pretty much ignore them but the framework relies heavily on this.
I'll avoid pontificating about the powers of reflection for the time being.
>
> (See attached zip.)
>
> I've ordered this book:
> http://www.informit.com/store/product.aspx?isbn=978032133188 5 (I have
> stashed somewhere the 2005 first edition), and I hope that'll help me.
Yeah, I'll make another 25 cents. Soon I'll be able to retire! Hehehe.
>
> thanks,
> sorry to be such a newbie,
Considering how rich I'm getting from your extravagant spending, all is
forgiven. :-P

I think you need to take a step back and understand some of the basic
Ecore concepts before trying to sprinkle arbitrary Java interfaces with
@model annotations. Ask yourself "What's the difference between an
EOperation and an EStructuralFeature?" If you can't answer that, you're
not in a good position to understand the implication of adding @model to
an method declaration...
> Paul
>
>


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Olymic medals. Was: Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #518133 is a reply to message #517762] Wed, 03 March 2010 08:28 Go to previous messageGo to next message
Hallvard Traetteberg is currently offline Hallvard TraettebergFriend
Messages: 673
Registered: July 2009
Location: Trondheim, Norway
Senior Member
Ed Merks wrote:
> Paul,
>
> Comments below.
>
> Paul E. Keyser wrote:
>>
>>>> Hope you had a good weekend
>>> Canada won gold in hockey. I generally don't watch hockey, but I
>>> made an exception. And a good one it was.
>> :) Well, I noticed that Canada, besides winning the most gold medals,
>> also -- if we normalize the # of medals against population -- has
>> outdone the USA by a factor of six.
> Yes, that's pretty typical. :-P
>> (See attached, for amusement.) Seems like, except for France & USA,
>> medals track per capita GDP nicely. What's wrong with USA and France
>> ...? :)
> You have to consider the snow factor though. Lots of snow helps.

Perhaps that's why Norway did so well. Washington Post wrote[1] about
how well Norway did and notes that: "people dismiss [Norway's]
accomplishments, assuming snow-packed Norway has it easy".

Since I lived in Ottawa, Canada for a year at age 5, it was great to see
both Norway's and Canada's great success.

[1]
http://www.newser.com/story/81704/tiny-norway-hauls-in-the-m edals-gets-zero-respect.html

Hallvard
Re: Olymic medals. Was: Re: EMF newbie wholly unable to "regenerate" EMF: what is wrong? [message #518259 is a reply to message #518133] Wed, 03 March 2010 15:32 Go to previous message
Paul E. Keyser is currently offline Paul E. KeyserFriend
Messages: 878
Registered: July 2009
Senior Member
Hallvard --

Well, I have respect for Norway, even w/out all the medals! Norway has
handled their North Sea Oil wealth better than any other oil-rich
country, e.g. Here's yet another view, this one from Brooks @ NYT:
http://www.nytimes.com/2010/03/02/opinion/02brooks.html -- acc. to
wikipedia, Brooks hasn't misrepresented the history:
http://no.wikipedia.org/wiki/Jan_Baalsrud

-Paul

Hallvard Trætteberg wrote:
> Ed Merks wrote:
>> Paul,
>>
>> Comments below.
>>
>> Paul E. Keyser wrote:
>>>
>>>>> Hope you had a good weekend
>>>> Canada won gold in hockey. I generally don't watch hockey, but I
>>>> made an exception. And a good one it was.
>>> :) Well, I noticed that Canada, besides winning the most gold medals,
>>> also -- if we normalize the # of medals against population -- has
>>> outdone the USA by a factor of six.
>> Yes, that's pretty typical. :-P
>>> (See attached, for amusement.) Seems like, except for France & USA,
>>> medals track per capita GDP nicely. What's wrong with USA and France
>>> ...? :)
>> You have to consider the snow factor though. Lots of snow helps.
>
> Perhaps that's why Norway did so well. Washington Post wrote[1] about
> how well Norway did and notes that: "people dismiss [Norway's]
> accomplishments, assuming snow-packed Norway has it easy".
>
> Since I lived in Ottawa, Canada for a year at age 5, it was great to see
> both Norway's and Canada's great success.
>
> [1]
> http://www.newser.com/story/81704/tiny-norway-hauls-in-the-m edals-gets-zero-respect.html
>
>
> Hallvard
Previous Topic:[Teneo]: Documentation moved to wiki.eclipse.org, new update site, new examples project
Next Topic:Resolving of id attribute value in xml handler
Goto Forum:
  


Current Time: Fri Apr 26 16:57:55 GMT 2024

Powered by FUDForum. Page generated in 0.04498 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top