Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » Writing a DiffModel as .uml
Writing a DiffModel as .uml [message #90703] Thu, 19 July 2007 11:24 Go to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Hello NG,
today I found the Compare-Framework and I think that's the thing what I
am always was looking for ;)
Well, I had some tries. I have two Models represented by .uml-files. So
loaded them:


EObject genObject = ModelUtils.load(generatedModelURI);
EObject refObject = ModelUtils.load(referenceModelURI);


Now I want to look if they are equal(means: if they represent the same
model):


MatchModel match = new MatchService().doMatch(genObject, refObject, new
NullProgressMonitor());
DiffModel diff = new DiffMaker().doDiff(match);

To simply use the UML Model Editor to compare the difference between
both it would be fine if there is a possibility to write the diff into
an .uml-file or make a org.eclipse.uml2.uml.Model out of it. Is it possible?

greets
J.R.
Re: Writing a DiffModel as .uml [message #90718 is a reply to message #90703] Thu, 19 July 2007 11:27 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Sorry that I forgot the prefix [EMF Compare].
It was my first posting here.
Re: Writing a DiffModel as .uml [message #90762 is a reply to message #90703] Thu, 19 July 2007 12:16 Go to previous messageGo to next message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
Jan,

I find your need to be a little confusing. The DiffModel returned by
DiffMaker#doDiff(MatchModel) is not based on the UML metamodel and
cannot then be serialized as an UML model.

Why exactly do you want the differences to be serialized as an UML
model? Or more precisely, what do you expect to find in the DiffModel?

You could also save the diffModel using ModelUtils.save(diffModel, path)
then transform it through ATL from diff to uml.

greets,
Laurent

Jan Reimann a écrit :
> Hello NG,
> today I found the Compare-Framework and I think that's the thing what I
> am always was looking for ;)
> Well, I had some tries. I have two Models represented by .uml-files. So
> loaded them:
>
>
> EObject genObject = ModelUtils.load(generatedModelURI);
> EObject refObject = ModelUtils.load(referenceModelURI);
>
>
> Now I want to look if they are equal(means: if they represent the same
> model):
>
>
> MatchModel match = new MatchService().doMatch(genObject, refObject, new
> NullProgressMonitor());
> DiffModel diff = new DiffMaker().doDiff(match);
>
> To simply use the UML Model Editor to compare the difference between
> both it would be fine if there is a possibility to write the diff into
> an .uml-file or make a org.eclipse.uml2.uml.Model out of it. Is it
> possible?
>
> greets
> J.R.
Re: Writing a DiffModel as .uml [message #90824 is a reply to message #90762] Thu, 19 July 2007 12:45 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Laurent Goubet schrieb:
> Why exactly do you want the differences to be serialized as an UML
> model? Or more precisely, what do you expect to find in the DiffModel?

It would be fine if the differences would be serialized as an UML model
because I think it would be very simple to see which elements are
different. That means precisely that if the DifModel is null (or
contains no elements) both models represent the same UML Model. That was
my idea or my expectation ;)

> You could also save the diffModel using ModelUtils.save(diffModel, path)
> then transform it through ATL from diff to uml.

Sounds good. What is ATL?

greets
J.R.
Re: Writing a DiffModel as .uml [message #90844 is a reply to message #90824] Thu, 19 July 2007 13:21 Go to previous messageGo to next message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000308040605060907040404
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

I don't fully understand what you need to do with the differences model
but have you tried to compare your two models through EMF Compare's GUI
and if yes, isn't the result displayed what you expect to see as a
result for your two models comparison (see attached example result.png)?

And if you need to compare programmaticaly your two models and then give
an interpretation of the result, an "empty" differences model (where the
two compared models are considered equal) should look as the attached
example result.diff; with a single "root" element which is an empty
DiffGroup.

This result has been obtained through :
<pre>
final ResourceSet resourceSet = new ResourceSetImpl();

final EObject model1 = ModelUtils.load(new File("model1.uml"), resourceSet);
final EObject model2 = ModelUtils.load(new File("model2.uml"), resourceSet);

final MatchModel match = new DifferencesServices().modelMatch(model1,
model2, new NullProgressMonitor());
final DiffModel diff = new DiffMaker().doDiff(match);

ModelUtils.save(diff, "result.diff");
</pre>

Yet again, if you run EMF Compare under eclipse, "to see which elements
are different", it would be easier to create a ModelInputSnapshot,
saving it on disk as an "emfdiff" to allow you to open it within our
compare editor under eclipse. This can easily be done through EMF
Compare GUI.

Laurent

Jan Reimann a
Re: Writing a DiffModel as .uml [message #90874 is a reply to message #90824] Thu, 19 July 2007 13:34 Go to previous messageGo to next message
Stephane LACRAMPE is currently offline Stephane LACRAMPEFriend
Messages: 217
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------070307090706080209070806
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

ATL is Model to Model transformation language and tools. It enables you to transform one
model into another, typically a diff model into a uml model.

But still I agree with Laurent, I am not sure to understand your need and I would think
that the EMF Compare GUI is what you are looking for.

Stephane LACRAMPE
Obeo

Jan Reimann a


Stephane LACRAMPE
Obeo Canada
Re: Writing a DiffModel as .uml [message #91259 is a reply to message #90844] Mon, 23 July 2007 09:53 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Ok the Compare GUI sounds good. But how can I run it or use it? The
thing is that I can't find a documentation of Compare.

greets
J.R.
Re: Writing a DiffModel as .uml [message #91289 is a reply to message #91259] Mon, 23 July 2007 10:07 Go to previous messageGo to next message
Stephane LACRAMPE is currently offline Stephane LACRAMPEFriend
Messages: 217
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080409050508030502010503
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Using is is supposed to be pretty much straightforward :

If you have installed EMF Compare inside Eclipse, make sure that you add the file
extension .uml in the "Model File" content-type. of the the preference panel (in "General"
then "Content types"), and then all you have to do is right click on a couple of models
and compare them as you would do fore files. Or compare with a repository version of your
model, again as you would do for files, then the gui will open.

Stephane LACRAMPE
Obeo

Jan Reimann a


Stephane LACRAMPE
Obeo Canada
Re: Writing a DiffModel as .uml [message #91303 is a reply to message #91289] Mon, 23 July 2007 10:28 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Stéphane LACRAMPE schrieb:
> If you have installed EMF Compare inside Eclipse, make sure that you add
> the file extension .uml in the "Model File" content-type. of the the
> preference panel (in "General" then "Content types")

Yes I installed EMF Compare inside Eclipse but there is no content-type
"Model File" as you described it.
But fortunately the Compare GUI opened anyway. And it's great. It's
exactly what I meant and more :) Thank you for that. So now another
question came up :) Is it possible to open the Compare GUI with some
Code? That would be perfect if I could run it for somebody else
"automatically" for presenting him the differences of two models.
And is there any documentation of Compare online?

greets and a lot of thanks
J.R.
Re: Writing a DiffModel as .uml [message #91318 is a reply to message #91303] Mon, 23 July 2007 12:37 Go to previous messageGo to next message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------040609050100050506060706
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

This isn't a normal behavior, there *should* be a content type named
"Model File" under eclipse : window => preferences => General => Content
Types for you to add the files to use EMF Compare with. "*.ecore",
"*.uml" and "*.emfdiff" are filled automatically, which is why EMF
Compare's GUI opened for your models.

Opening the compare editor by code is not possible as yet for some of
the needed packages are not visible by third party contributions. It
should be possible in the final 0.7 release via
" org.eclipse.emf.compare.ui.editor.ModelCompareEditorLauncher #open(File) ".

As for documentation, apart from the javadoc found under eclipse in
"Help => help contents => EMF Compare - Developer Guide => References",
we do not have any accessible online.

Laurent Goubet
Obeo

Jan Reimann a
Re: Writing a DiffModel as .uml [message #91332 is a reply to message #91318] Mon, 23 July 2007 14:09 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Laurent Goubet Wrote:
> This isn't a normal behavior, there *should* be a content type named
> "Model File" under eclipse : window => preferences => General => Content
> Types for you to add the files to use EMF Compare with. "*.ecore",
> "*.uml" and "*.emfdiff" are filled automatically, which is why EMF
> Compare's GUI opened for your models.

Strange...I cn't find it. Under "File Associations" those
file-extensions can be found but that's not what you mean?


> Opening the compare editor by code is not possible as yet for some of
> the needed packages are not visible by third party contributions. It
> should be possible in the final 0.7 release via
> " org.eclipse.emf.compare.ui.editor.ModelCompareEditorLauncher #open(File) ".

Ok.

> As for documentation, apart from the javadoc found under eclipse in
> "Help => help contents => EMF Compare - Developer Guide => References",
> we do not have any accessible online.

It's a pitty because EMF Compare - Developer Guide => References is
empty :( Maybe that's the same reason like the problem above?
Re: Writing a DiffModel as .uml [message #91366 is a reply to message #91332] Mon, 23 July 2007 14:41 Go to previous messageGo to next message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------070807030309050300080609
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

Comments below.

Jan Reimann a
Re: Writing a DiffModel as .uml [message #91459 is a reply to message #91366] Tue, 24 July 2007 07:51 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Laurent Goubet schrieb:
> content-types appeared with eclipse 3.1, which version of eclipse are
> you running?
Eclipse Version: 3.3.0
Build id: I20070621-1340

> Which version of EMF Compare are you running?
EMF Compare 0.7.0.v200706130300. Downloaded with the Eclipse Update
Manager about one week ago when I did my first post here in this group
:) Downloaded from
http://download.eclipse.org/technology/emft/updates/site-int erim.xml
For this version Javadoc is displayed as well in Eclipse. That's Ok so
far. But it would be perfect if the Javadocs would be online to click
through it ;)

> EMF Compare 0.7.0 RC2 (version 0.7.0v200707130729 as
Well I see that it is newer than my version. But my Eclipse Update
Manager doesn't tell me that I can download a newer one. Strange.

greets
J.R.
Re: Writing a DiffModel as .uml [message #91524 is a reply to message #91459] Tue, 24 July 2007 09:15 Go to previous messageGo to next message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------090506010507010004090108
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

EMFCompare RC2 is indeed the version you have, mine was slightly newer
as it is a source version I downloaded from the CVS.

The javadoc is not yet online, but will be in the future. It will be put
online with the rest of the documentation when we'll start writing and
uploading it.

As for the "Model file" content type, I attached here a screenshot of
the eclipse preferences where it belongs. If you don't have it, it might
be caused by a conflict with another of your plugins as this screenshot
has been taken with the exact same versions of EMF Compare and eclipse
than yours.

Laurent Goubet
Obeo

Jan Reimann a
Re: Writing a DiffModel as .uml [message #91569 is a reply to message #91524] Tue, 24 July 2007 09:33 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
This is a multi-part message in MIME format.
--------------020007040104050105050408
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Your screenshot indeed looks different than mine. Another thing that
attracts attention is that there is an EMFCompare-Preference-Node on the
left side on your screenshot. There isn't any possibility to make some
settings in my composition of Eclipse and Compare. Do you think that it
is a conflict with another plugin? Fact is that Eclipse didn't say
anything about some conflicts and besides that there isn't the Model
File content type and EMFCompare-Preferences-Node all works fine.

greets
J.R.

--------------020007040104050105050408
Content-Type: image/png;
name="preferences.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="preferences.png"

iVBORw0KGgoAAAANSUhEUgAAAnUAAAJWCAIAAACxreabAAAACXBIWXMAAAsT AAALEwEAmpwY
AAAAB3RJTUUH1wcYCRsj4OKkMAAAIABJREFUeNrt3Xm8HHWd7/9PdffZk5BD khOScMiC7AhE
QDYhEJDFESYYvLIYF7zCTDIzisudO+D80BlFf+P8fNzxXtCEK4ygo6ARcB0Q IouojGgIIBCQ
LASykIRzTk7O6aW6qn5/1EmlUsu3q7qr99fzkUce3dVV3+qqPue8+1NdXR/N siwBAACJSrEL
AABIXCZw6vXX38yuAQAgupUrv+C+q3mOD9vJumD+3MmTp0ybNp39BQCA2u7d u0ZH92zYuNmd
sgfk6/XX33ziCW9/19knH3fcYSKSTqfZawAAqBmGISJ/+tNrv37iD+uefc6O 2P35aofr4gtO
O+Jts8fHsoWCPpY1xsez7DgAAML09vb09aQ7Ozt6+3pe+fPWNQ8/ZUfs/s9f F5933jmLTti1
a/TRR58b2zuWzersNQAAoujp6eib1Dcw0H/5+xbbn65O1K/XX3/z1dcsPbh/ ypbX3hwaGmNP
AQAQV39/3+BhA28N7fmP764+4PzhsbGxbFbv7u5kHwEAGlDfVNmzp3QROGVK 39jw/rsvbd6w
bcfukkvNmjnt6LkL3EstWH1XyaU2LP2Qs1Q2q4+NTTy9/fna2dU5MpTjnCYA QGPqnmzs2TN2
+iknHXro9FQq+PoNpmm+/vqu3z39zJSpfbnRtIj8acMr23bs/uh/u+zEk+Zm MsEZVywa657Z
fOe9PxaR4xYcISKvvbllweq7rrruEmvezOLgNDlILNPSROxTlrSUJiOS2bJb 27Tje6vueuPD
1x02MGgPNTKsT+nvPiBf0ynN1PK9UzKaiIg9iKZpMslMT9XTRs7YW5C1L7+1 K28UdaO7Vw4a
6Jg9p7e3t0NELE0TEc0SS7NXP7E4Pw2IhZ8YxMcV6NrI0Mie00856eD+yeNj ecVsB/dPPv2U
k3739DP9Bx0sItt27L7+g1fMmzc9O66LhJ5adOSRs6//4BUrv/PDd550jCUy 46urLrv8jPGR
nKzbbOQLgYukX9omIpddfsaPv72q75+/IpZYmmUU8+lUzwH5qqWku7vLEtH2 xbOI9BdSMyZP
tjoym3eMvbB1z46cWSgU84XCzhH95U35gZldJ5w4c9bsyft+yididcmS8+wx Tz31jFNPPXPh
wlNmzJgZdz8+8MC9d975zfe//4PXXHMtP1X8pQR4TwYRmXbwlGLRiDKbiDjV 6pzZU7PZQsml
5syeKiLpTMbOQWM8ZxWsju7uK677nIh877YvZEzR09rVf/3/iMgDN3/GLFp6 LqcV8yKSzqTt
n8aOTFpLyQH5mkqlMpm0tb/utDrGjYOsTKavM9/drQ/r3X0d+YJeKBRy+UIu X8hm8y+9OLJ3
LHvhxUf1T+2x9v+4T9x88MePjY2P/eBH3//4x69a9c3vzDp0MPoefPzxR+68 85t33XHvzOkz
LRGdyzjy1xLgJwYiI3vGwo7xuo2N50Qkk5nIuO07hvv6ukTk3Re+1z/zLx/6 6cRSY3kRyWRS
mmgiks+bVrFoGeMPbn5DRC6aO+d7//DJq7/8v+y7o//yT0YuX9BNzTDtLNfE /sKrZh+7dh0f
1iSdOSDHJu0pGml951u5vRkjl9Oz4/l8oZDPF7K5QjaXy2bz47n8unUjh8ye tPi8I8U5LO36
ge8+6KDLlrz/e/fe9cD9P/ibv/usfRg5iq/+yz+JyMzpM81M2tI0PhNumz+W VLDgoAdKME0z
4pypdMp5I1YsGoe/7ZBLLr7KM88v/vN7+wtiTUQkk07bN4xCUVKWXphIrgc3 v3HR3Dl2uIpI
bmhMTMO0LDENu361fxw1S7MrWdfx4bTW2ZGxRNM0y7JES0nGzI4P5baMW3pX x9DQ+Natw7m8
nssVsrn8eC4/bkdsNv/cc69fdPFxmmXZfx0115/Irs7MwMwBEdn91s60SLoz c/75p4nI5z73
z+vWrf3kJ/9eRH71q4e++MV/tCeed96FImLPIyIXXbbokUeeCpzHmU09lD3b pz51429/+8Rv
f/vEX/3V311wwSX9/QeLyNq1Tz/22CM/+cmPLr30fUuXXjU4eFjgCFu2vPbw wz//znfuvPTS
9334wx+3lwXFCBomXwnYNvsjoWm6Xiw5m125dnVOZFw6ncrmJo4P/9vXP3lA vh75Peehjo6M
iHR2ddhJmR/Pa5lMOqO98alPzvna/7Ij1p7zjRs+YZcERtGyikUR6exMOwFo B+yBx4c7NNfJ
TaJJasfb53eKZCzpnNU/4+jZRcM0TKtomIZhGYYUDbNomntHRjtd1br7h72j Iz02tldEzjvn
Ak2ko2PfofAZs49YepSlF5/47aNf/OI//p+v/9+eju6P/fUHxZILL7rk8cef PuecU0TkwR8/
VhzL/eYPv/bP46xCPZQ9z9e+dsvqH/w8N/bJaz6yVEzrqqs/tPaZpz/zmRVf +uK/fmLFp3/6
0/t3bt82b+7cXz36S/8It9/+v5988vEf/+ih73//O1u3vDZj+nQtRQhUrxRh 3yLuWzLytb0U
i4ZlmVFmc/JSRHTdKBoTqfzMug3ObCeduEBEnIfs9/iZTNo+PqzrxU4xilZG RNyV60Vz56y6
7C8nFjCKum6JSGdmIpUtkVTqwHxNp+wPdTVrosIVS2TSb158aHt+NKfn8vnx XD6bLWRzufFs
fjyXG8/ms7lcNlfo7k5f9MO/mSg9rAOOARfyuXvv/e67zjrn1FNO7+rp7Ny3 qQvmv21S/yQR
eeSRh0TkiHlH9E3tE5GHf/mLCy+4qNP1BdyDZhyknifiUJO6+mbNPkREvrnq f1/1gQ8+9tga
ETnlhFO7ujuvvOaaQraQSqUCRxgYmCkiI0PDf/uJG/LZfDqlZToy/IhTv4L3 ZKgLvWhYYorI
f/78F56HLn7PJZ6/JR2dHfbdXL5omBMhmi8UPeVgvlC0Tz0qpjQR6eqYWKqo 6yIdHWbxul/8
zAlX2XegeNXFfyGaFAyrqOt2/WqJJpYlmiZm0VO/ah2d7itLWFnD2nvmMWeK mJYYpmXalWtQ
/drV0Sma82QnftwvumyRiNx00+cvv3Tp5EkH9U7ucX9dqaevW0R+/evHnDlF 5Hf/9RtDNzoP
6nBm6+zqKDlPxKG6e7omdvRY7r77fmDf7pvSu+9oQPAIK1b8rVk0ln3sv910 483nLT5/yqTJ
/HwDQL0UCrp92cEVKz724H8+5Uz/86vPF/L7jxtrmiau48O5vJ7P5ezbe0dz njGdKV3ddu5k
7MO8pqkV8kUjrTnh+vK1Hzvyjm/ZEfvytR+zLMswJk4K7pzIck3E0gvGgfmq aV1dGftbr3Yl
muvt6H9+4x82vPVfbwyP5wrZbG48mxvP5cez+Ww2l8vnc3k9ly98+oZLuroH J44oT1S/IiIP
/vgx+8bUGQf19HV7rlzR1dUpIueeu/jRR9c4c4pIIVewH3JmizJPxKGc2/bM gRM9Ixx6+Ox/
/tIt77n4vdevuPbxxx+99baVXIKjmsUIx/rAMQ8o61fdsMyJ05Euuvg0Z/pF ctqzz766/+ci
lRaRrq6JEiuf152vzP74/jXObPbt/d+m1dLuXMgVTRFJmxOV4Z+WfcT+/7i7 /91+JkVLM/ad
bNXV2eFcOcLQC+K5vkSXXb9qYlmWJjL5bQcXsvrcGX2v7tqze8g+LJyfOCyc L+TyhUK+uOic
o977npO6ujrE0vbV2/t/3g8/Zm7YPurq7BCRj1373x99dM0zz/5xwVFzv/GN 2678wFWLF5/v
mS3KPBGHcm47Mx9+zNx77vnejBkDixefHzjCt751+/z5C86/8HwR0Qv6yK49 swYH+BHnbyV4
T4a6MA3DPn947dpXXN9b8UpZB/zZL+iGXiyK7+QmEVl032n2Q5ZIRjc8YWHq uqRSa6/+iPvE
m3XXfERETEssQzdNM9XRsS/LJ55QPuU9v0mzS+mJQlSk69B+fa9eFDkrlUpl tKfXvz6ezWVz
+WyukMsX8vnieecdvfy6CxbMm2mXrZamadYBn4Z0up6lh/3QokWL7vzWXStX fvN3//WbKz9w
9eyBQ/PZwuSD+tyzRZkn4lD7d+iiRXd+664f/mD133/uhg9+cNmZp78rny0E jrBo0bkXX/Ju
Efm7v/3EWaeel0ppio0CUPuAZRe0laJpmUbp85tSBxyzlWLRKhSK37/niRKD d1ki0tWZsZNs
LG+IpHrETKUtI+gHzTTNrJmSvOGsSxOxNN/5Tam0dHR2uN4NWJpoc06Y3Tet L/3Sm5Om9rzj
mFl3PfD7TdvznRnt+GPnXXDBce99z8JDZ/dbmtjHlJ21b9+2fd3v14vr2Ldj x7Ydz/z+JfdD
73nPRWe/6107dwztGd47bcbUg6b2dXRkPLNFmSfKbO7b9sxfeOufdu8cntw3 xZ7ZP8L0GSds
enXz+j9tEpGZs6ZNn9nfwflN/KUEhzxQr78SprX/BKVw3V0pdyX63PObZs6Y UnKpDZs3iUjn
vnzd/mbhkIFOXTQpmoofwO1vFvYl0cQB4lRaxN2f7nM3/fdZc2ZPXHV44hzi iZQVscTa99mq
5lwI0a5WJ774qu1fmWVZmqZx3Abxf3P4YwkSFuF+/4cXtry+dXr/rJJz7hra Nnjo7FNPPlZE
vv39h9eue2H29Pkll9q6a+PCE4/98JUXaJb17/c80nvrVzPp/tIltTE0vuKz H77yfDszLU22
vfHGF7/0f/eXYlOmHpzhzB0AQKM65og5IrLl9a2ed1j+Ym7w0NnHHDEnk06J yMWLjhWRtete
OGApbaK8dFt44rEXLzrWXmrJhQvvl8/23vrVA5cKqBzHV3x2yYUL3QE6ZerB B9Sv//ZvN+3e
9SavHwAAlZg2feATn/jSAR8lvvQy+QoAQEXOmj4g7vObROTPr7y8ceNOdg0A AOWZP3/GWWce
f0C+ZjoyU/unD/3xxZUrv8AOgtodd9x17bUf2rzpdXYFADhu+fLtC99xjH0Z XRqrAgCQPPIV
AADyFQAA8hUAAPIVAACQrwAANKqol6r/j9U/YWc1l6uXXspOAIBGz1f+XjcX 3g8BQH1xfBgA
APIVAADyFQAA8rUONE3TNM19l5cEANrNq989+dXvnlzLNb722obXXtvQWPma YATa7W3tBrQV
pmzcRQhyAGgQf7775PP+Yb1l1nq9p59xWlUjNtMg+9ffRx4tY978QffdTRu3 VDJO2YurR/A8
yQpXBCCiV+4++fyb1otIXTLg9DNO+91vnzrssAWNkq928WdZll2AuotRd13o figsRAOHck/3
L+6syDNayUXcz9MzP6odru6smjd/sAGjy35KlUc4gOjWf/sd775xnWVmNUtM 01r/7Xd4Zjjq
w39MZEX+OnV490aR06oaseXkqzqT/Inrz7aSQwUu4o5G/4KKRZyn4X6IZG3M utZJOOdR93RP
BFY+Qqw3B56R/atQFOvu6eQ3ICIv3rHwwhuftIp7RbNE5IK//7Um9p9oTdMs u5598CsLj/no
2oh/PRThevoZp/kmnxaxit3x5kb33ZkD8yNuYEXnNzkFa2DguStLz3lMcctl z+IlozFwEfWT
RL0qRfuf5xfGrnEDa0r/9LJHqPz9gWcVYU/JM91/LBpoN3/61sILP/tz0Uek OCT6sKWPiD5s
6cNSHLGKw5Y+bBVHrOKIaaj+jER/w6oX8up/J598Uthnse5AjR6uUpvPXytM tTIWJ0dbI4Pr
O0Liq3AOjFO/AoWcKfqQ/ZdaE7H2/e+RL5iKX8DoHzblsnsrebYzB+bveHNj rHBNIF9j1YUV
VpBlLO45pEwJ23qqWgvav8D273Dco8r+cYTPd4F9Fq5Yd/+XTvzL//ENEcvS RKx9R4TtZJF9
59AYybzHLZmvr27crv4INm64lpOvzjHhsKDynFvkPukpYra5VxFxcfUiTqw6 EVtyK1DVREww
YBr2VKnAiU7KErHAyX+77r7/94TLP/UVSxNN5L5//Z/7K9l9Tv27Zytf0WGH LXh1o/fY7443
1p/6zomPYF97Y7gRz2+KcspSyZOY3GEc9lAZo6kfIllJ7lglbHlZ7tS+zpFh PnwF3PG5+qsn
vO9TN4mIacppNzxbpRUp4rNK4SqN8/1XtCp3PrkrubDp0aOu8hEqj/OIG+WJ VYpXwHHaDc/+
8F/ffsUNnzbNOtQ81QtXSeTz1yjFJdo8YqNP90yMdbfsRUoOGFh0Rlk7mQqU dMann/vBv769
xcKV+hWIWqcSkED1nPmZ52q8xqoma+x8pWU3AAAJ5+vVSy9lZ6E9+StXalkA JdH/FQAA8hUA
APIVAADyFQAAkK8AAJCvAACQrwAAoHxcvwnle2TNGnYCAJCvSNi1136InQAA jqeeupl8RQI2
b3qdnQAAgVr281enxToAALWXQP166213+yeuWL4sYvjR0g4AQL4GhGtglIZN t8OVTAUAkK8l
mKbpmVLQDUXlGhiuTkVrPxpY4PrnsSzLGdDzKAAAzZ2vRcMQESdkdb04lsvH GsEdus5tz5TA
edwT/Y8CAFAvCZzfZBhWV2dnT/fEvymTe/N60X5o9T2rnP/9mWoLvBsWw555 3DkaZQQAAJom
X00x94yOD+3ZOzQyumtodOubbxnFiWJ26Qeuc/73sCzLnY6WS9iKFPPYNat6 cTSjL/5we9mP
tsb2zps/OG/+YLu97vXaZPV6Pa9FG74uqHW+7hnN7t6zd+dbozuH9u4eHh0a GR/P5hUZWbJI
LblGitSm+1vp/Cs7ddz/4iars1RVI989PanVzZs/uGnjlk0btzRg1NUgaexh qxdjscZ3vxbR
F+HXv50l8Pnr0Mj4eC5XKBpOgqaUse2PWPeUsAJUPU/J2EYd/zonEg+fu+IQ xd1airLqOj69
xEV5+ar0DqDabyzKHr++73jQLvm6YvmyMr7/GhiQYXf9ZzCVcReNFrqev1P+ Keqg+uIPt7sf
cupF//zOnO5FPPOr73qmuAcMnE0xj7uuDRzc//ztPeMpm5y7mzZu8b+DKbl7 1Xc9U5zxw2Zz
5nGXa/6h/C+uYr2eN2fRd0LgD5L7UcVSihECt1exIepFouyukr8aaIv6VR2l aHPuvyOev3GB
CRFW7wYmkz9rPbkbMZvD7tq3w8b0rzTKE4s4eOBfXv/twN2l2L3+RdQvh/qZ xFp1WHZGmTni
Tij7YIl7KcWPYuDg6p9e9fMp+YuQ1OEfNGu+OlbfsyrwVCYQsYHlSGApE0Yd QnE/71RHbPRB
Etk/5a1d/RdfkQFl51DinyYmNWDETateYkXZEHeVr3gCJV87tGm+Eq4oOxUq /AuiOIzsDkI7
ydyHav13ywjFSoK2vLWr/9b7j9+6b/uPiJY3bDV+DBIZMO6mNdSGBJa/td8i JCLJ6/sHfs+1
qgui2ZVRyMatKe0E9X+02TgnTNVm7bGOW9b9xyDxd2/uY9rVqwjVGxJr1WGf W3NOMvUrhS9C
/0z4P5H1T4kbTorzmxQZHHgKkn+0wPHdEz1TAudRV9hRnnnEveQ5cUZKnc0U 8eXwD+tMifVk
FJsTNrN7ReqdUN5PUZQNKe91KTlyyT3PyU1NbeJSgtdff/Ott928evWaNY88 sXLlF8ouQ8tL
Sj64bTp33HHXtdd+iP6viPVOq81DIpFPwdHgbvny7YvPP3vp0sUrln+B+hUN rfWu0BSxIm+9
AxhkCdpNPc8fLrtxLN9tJWnQLIjVsF3BniFfq1WGltE4FgCAZlHP84fNfTRN s2/k8rq6eLWv
4O/vuqOYIkGtdfxLieuyxmWMSfceAEBD1K9yYOPYgm6U0ThWgtq+RmkcG7eV rGJMCelfCwCg
fq1P/eo0jhWR6I1jyxCloq2wlSz1KwCgUepXu3GsYZn9UybtGhot6Ho2p7uH cg/oP4QbvUz0
zOkpN/1JqXg04ioAANSvdatfncaxIlKycaxE68Fessqs9g6lhAUA1Ll+dRrH Prl2/a7h0ZKN
Y9V55i86nY9OFVMCU7xkRnrGjNK/FgBAvpZfv0aP2LiNY8Pau5ZsJSsx281K Es1o4aFoAqpY
JNYXBAPn5xI5ANqxfuV7ru0TroQcAPK1RvVrIgtGKVXRmOEadh1zObBfrIRc 6Lzk/J4VhTWv
DhtEMYW3CwAavX6tfEG0QOi6G4eVnBJxfjd1FvoTVzEFAKKj/yuaJpLtf2WP 4BSs6sj0r8jf
l42XAwD1K1pEzVIt8CLslfQHBUD9Sv2KqsRVJUVnYH1Z4ZOJfgJzYOgmuzkA qF9bp34Nu/YT
lw6uTcRu2rjFPSUs7Zx5yphfPTEwRJ1PcMNOpKJ4BVC3fK3B+cNhVwxOMHEV XQFQScSqp3hC
UTEx4vxhpWfJHpxxZwCApq9fq5dzgVeQqEaQAwDaRNN8/qo4qJtU/1fPbWcG RZNX2uY0dRlN
JQqA+rV06ano7RplirqolVLHkAEAaND6Nez/knVtyQoyqSozsH7lZwgA0ND1 a9j/6sAr2au1
vH6uUSpa+649JoUsAKBB69eS2dY4xWKVTmMGAFC/Jl+/xo1YT+NVf/gpur2W bNfqLOVuSOdZ
ip6vUdy55gV2AoBW9dHFx9YiX2vw/ddqdHt1J7EEdXil52uFPn/thewEAC34 x+2Oh1qkfkU7
27zp9RbeurnzDuUlBlpMq11/mJoSANBq+Ur9CgBAa9avQIWq1B6HrjtAu+Hz VzRr/iV1dcOw
PnSJ5GisjngAyNfQMrTa5w8DnrZxlcdh4uHHVY4BUL/Glsg1h7lwcfXKWXde OrfDSl51uPqX
Kq81rGctNJQFyNdGrF8b5MJJUZ4GIVrLclYdllHmKbmUPyZL9mxXJzrHjYHW 1kznD9uJ5ajv
jnOeBpf4T/D9mcRv8zBv/qD9z8kz+7YnydzzRK+MPUt5RggbcNPGLc6/KMMC oH6tZ/2q6P/q
riPdd90XOAysOP3LurvO+S9/qC5JA+eXkIspcm3FsLdZsdo8eEK07HmiLOU+ Juxkp/uhuGUx
AOrXRqlf1RWtO7GcmPRPV09xh2vcCjVsfM9olL/q+rVy0U/ZdYrdstOxkrCk hAXI16r/fayk
/2sl/P1c3dWkumus86i7Wk2ky2yb168lM8n+ZwebHZDqw63qedyPej439Uz0 rNpzN1b2l7Eg
gKbT3P1fKwxXdV9Y9ZFbz6MJdplt5/q15Cvuz6TAlIpVZYbNrB6k5LlUnilh wwKgfq16/apW
x0Op5GXj1K8A0I75Wpv+r+7DsO4pJU8U8szpXla9LvdnqFGem2dKyXWhwvdn AED9WumC/u/n
+O8qbni+2OMZzd/eNeyLQGETA5+bfzTPc+CnkPoVQOvh+k1ooPpV8ZNAh1QA 1K+1WzC6ystE
Ck3qVwCoT75Sv6Iu788AoAE1wfWbfvKzR9vkxbj0L86lfgUA8pX6FQm49ba7 /RNXLF8WOLPn
BOyIB+3ptQCA+hVtF66BURo2Pcp3pQCA+pX6FWKapn0jnU4bhiEiBd2INUJg nwZP5erutQAA
1K9el733POf2j3/6q4iLRJxTMb97vdFXjSiKhiEidsgWdEPXi2O5fKxw9aSp 093B/RDJCoD6
NbGkTJC93jo+gRZmGFZvT5d9u6e7U0Q2bd3pfuNV8u2X/6pYnnAFAOrX2OHq VJZOBPqrTHui
Z4aI80d5PvZtxVDqKW3OFHPP6Lhhmf1TJu0aGi3oejanu994lfzZIEcBUL8m vKA/5DxJFjYl
4vzllbnuxFVMgW3PaDavF3XdEJHdw6PFoul8IhuX52LRlLAA6qjt+r9e9t7z 7H8VjuMUrOrI
9K+u8lW3mKGR8V1v7dk5tOfJtet3DY8Oje4dHctFX1zRicHpueTutQAAbVe/ 1qb/a43LR8/q
3AelKWRFZMXyZbG+/+pkasS7nN8EoBXytaqfvyZ+cLXy0WI9Jfecng9riVh2 AgDytYr1a8Q8
c991TwnLOWeeMuYvI7Pdg/tXx8lNAEC+Nlb9GhZLgQdgPbcDJ0acX7Euf/Ea 6+kBAFoY/XMA
AGjsfG3k/q/VQG0KAKB+BQCgdprg89c274oKAKB+pX4FACDpfG23z18BAGjx +pVL3wEAGko9
P3+NdWE8T4IGXu6Oq7oDAFowX+OGa2CUhk2XCJeQJVYBAA2inp+/mvtommbf yOX1WCM4jVM8
Na5non+esEcBAGju+lVEioYhInavz4Ju6HpxLJdXp6m7TnUfBw47euyZx7Mg R5IBAC1YvxqG
1dXZ2dPdKSI93Z1TJvfm9aJ7KM+A1j4VPk/3CFSuAIBWq19NMfeMjhuW2T9l 0q6h0YKuZ3O6
e6hqfy/WqWKFz24BAC1Tv+4Zze7es3fnW6Misnt4dGhkfDybr/0uIFkBAC1V vw6NjI/ncoWi
8eTa9buGRy3LSinz3n0s1z5QHHh015numcefo4qHAABolHyN9f3XFcuXxfr+ a2AEeiY6d93T
w+YhVgEArVm/hkUpAADNjusPAwDQ2PlK/xwAAKhfAQCgfgUAgPqV+hUAQL5S vwIA0Jb1q/tS
Elw0GABA/ZrwgjS9AQBQvya8oCdcw/q/Ch1eAQB1Vc/rN8Vd0B+ugX1eKXYB ANSv+xcM+1+d
uO7a1Lmav6L1OgAA7VW/hv3vsOMz1gX66fAKAGj3+jWKsJ50nhJW0TMHAID2 ql9jRWzJ3q7+
3OXFBgBQvwbEqv+2tY87UD1zemYAAKDJ8pXrNwEA0GT1a0SUqgAA6lfqVwAA +doM9SsAANSv
1K8AAPKV+hUAAOrX8nA9RQBA5ZK8vsTqe1bFSspbb7vbP3HF8mWK2Kv7Bf3d 6Vu9FUVpXQAA
aJd8jRuugVEaNr1BStvaRx3hCgDNqJ6fv5r7aJpm38jldXXS+A/e+tu7Onf9 fWHDmsJ65veX
quqK2TNUySmKp+1ZSv2cowwLAGiv+lVEioYhIqYpIlLQDV0vjuXyZReUzu2S BV/gUormsmU/
gbAp/qVK9iSIsiKOJAMA9auIiGFYXZ2dPd2dItLT3Tllcm9eL7qH8g/oL2FL VmxO9qifTBnh
WokqFZpUrgBA/Srs6WHlAAAgAElEQVSmmHtGxw3L7J8yadfQaEHXszndPVSU AasRhDWoBav0
tIVmtwBA/bpnNLt7z96db42KyO7h0aGR8fFs6ePDJVvABsZk3Mj0ryVKEdwI FSfJCgDtXr8O
jYyP53KFovHk2vW7hkcty0rFzHt/C1hniiJmojSODYxkT8RG7EEb62l7hnV3 4qPZLQC0ab7G
+v7riuXLYn3/NbD/a2CWRJlTcTJR9MEjDhXWuTbiOGGLqFcEAGjf+rVhv+cK AECFuP4wAACN
na/0zwEAgPoVAADqVwAAqF+pXwEA5Cv1KwAAbVm/BraLqSpPXxp+VgAA0dXz +69xF6xjy3Eu
3QAAaM36VV3UuqvMwIapiTRhDaxoacIKAGju+tUfroo2roqOqmU3YY3yHGjC CgBorPo17H9/
XeiONE+l6GnjGqv8Lcm5yL76OVC5AgAaqH4N+19RTaq730ipZqiJFJqBJS9N WAGA+rVR6tdK
hJWMERMubgkbOGxYGQ0AoH6tZ/1aRuGo6Hjqf0jdclUiNGGN8hxowgoAaKb6 NTCurH3883ge
Km+Kc1vdO9a/COEKAORrs9avAABQv1ZlwegoKAEA1K8AAJCvzVC/AgBA/QoA APlK/QoAAPWr
jasYAgCoXycSkdY0AICm0DTXb6IvDQCA+rVGC0Zp4CrhvVqphgEA7V6/Bl7p 19//tZKOsPw0
AABasH4t2f/VubSvogBVd4QFAKDt6teS/V8Di1r3XU9Fy6sLAKB+rQhpCgCg fi1nQf8hX3UD
18Bil+asAADqV286xmrg6u/b6plf0dIVAIAGyleuPwwAQJPVrwAAUL9SvwIA yFfqVwAAqF8B
AKB+pX4FAJCv1K8VKHmZi0qug8E1NACA+rUqC3r6v0bPmzomUxk9a8lRAGgB 9H+tbrhy5QoA
oH5t9Po1rDr0VIruKtDzqKc6dKYoSsywlrHqpj1RKlp/tep/thK5x63/Rhml MwCg7erXwKsH
B17jMLDhq7qOVDSCLdliVtG0R/2cFdVt4DxOakZvW0uDWwCgfi2n/6uiLpSE ripcYQmofs4J
csKen2kAoH49YMEy+r960iWwiKw8tBIfFgBA/Vq7+hVll8juY9ccCgYA6tcY Cyr6v5Y8AFty
zrC+sFGOuCrmiXKw2r+4+tnSxRYAqF+TXFDR/zVwhsDOr2FD+UcOW2/gGVWB zy1sRVEWj/ts
w4Ytme4AgCbIV67fBABAk9Wv1UNtBwCgfgUAgPq1GepXAACoXwEAoH6lfgUA kK+tVL9yuSUA
APVr6QUD+8yUl6M0lgEAVFvTXL8pWTSWAQBQv8arShVT1MWxupVs2I3oPWgB ANSvDVe/Oleu
9/8vIV1RFUWq/xK+6qHCUtn9aOCC1McAQP1a5/q1ZP/XuPWrOq09V88vmYKB DVb9d6vRgxYA
QP1a/oKV9H+tS5I5Faq4WvrwIwUAkOb6/DVio9PEP+9Ur7c2zwEAQP1auwU9 EegJPMWxX8VD
0Q8ae2ajMysAoCnrV1H2NA1rkhqYoIq2rBKnwWpgP9qwYQEA5GuT1a8AAFC/ JrYgAADUr9Sv
AADylfoVAADqVwAAqF+pXwEA5GsT1q9c4QEAQP1a0/6vAABQvwIAQP1a2wU9 BW5g/5ySLVqd
u2W3jwUAwKOV+79KtBatnhE8Iws9XAEATV2/1rL/a10GBABQv9ahfm20/q/U rACAVqhfowRe
Xfq/UsICAJq4fq2w1gzsveqZHr1FK81cAQDtUr9KzP6vYdPDZlMvCABAffKV 778CANCU9SsA
ANSv1K8AAPKV+hUAAOpXAACoX6lfAQDka2vVr1wgAgBQY0leX2L1PatiJeWt t93tn7hi+bKw
jIxyBX8AAFotX+OGa2CUhk0HAKCJ1PPzV3MfTdPsG7m8Xvba/Y1dxXdkWNH2 tWTzV3UfWQAA
GqJ+FZGiYYiIaYqIFHRD14tjuXzYzGX0fw1r/uo/pBzWFFaC2sEKB6gBAI1c vxqG1dXZ2dPd
KSI93Z1TJvfm9aJ7qArPKw5LRIlwxlPJ8pT6FQDQoPWrKeae0XHDMvunTNo1 NFrQ9WxOdw+V
4HnFnt52TsSGdbhzl6clwxsAgAaqX/eMZnfv2bvzrVER2T08OjQyPp7NR8/I uAdm3S3nEgxI
SlgAQGPVr0Mj4+O5XKFoPLl2/a7hUcuyUuXmfcR2rWER61nWM5tU0EcWIvL5 Ox5iJwAgXyuq
X6NH7Irly2J9/9UfZmHnKKnnDIxD/8SSU4jViD66+Fh2AgDytab1K99zBQC0 qoa4/nB9UYkC
ABo6X2mDAwAA9SsAANSvAABQvwIAQL5Sv6LW5s0fZCcAaGEJfD+njK+xKq5N 6MzAab0tmaOb
Nm6ZN39w08YtdXkmget1T6/XcwNAvgaEK21coeZJrHoFWJT1Eq4AGqh+Ne0O cyLpdNowDBEp
6Ia6ePX0iVNcs5AqtiUrWneMOQWuP9v8D3mmqO96pjjrDZtNMY+7Clc8GeIZ QJL5GquNaxhF
B1a0QKCGFYjqY7Oeh/zBHHY3cP6wYSM+q4iDA0Bi+WoYVm9Pl33bbua6aetO +659ReJY1yVG
61HnkOJEJ/9D6ogtI+8TLMSJWwAJ52usNq72UV/ngDDnMSEsljxFpBx4qHbT xi2eu2WEYiVB
W97aAbSPBL6fU0YbVwcvAOKWlQ1ytpR/7XzjCEDC9WuCbVzdGcz5TW1SvIad 3+R+yBNggacg
+YcKHNw/rDMlcB5Fed0IAQ+gZfM1bhvXwC6qgf1ZSdaWSdDAKe4wK69UDRs5 bIpijf6HFOsK
PCWKoAWQfP3K91wBAPDg+sMAADR2vvIlHAAAqF8BAKB+BQCA+hUAgHaWSXCs JqpfuW5Uzdy5
5gV2AtAmPrr4WPdd0zT0fM409Zr9uS3quSrmZUf3vgQRTUtpWrqjqzuVStci X6NfZ9hz7Qj/
Xef6Eg57ijsUA7vuBD4qId+mdVZE1lbV56+9kJ0AtP5v+h0Peabo+Vxnh7Xy wRdWP/7KK1uH
W2ZLB/p7l5xx+I1Xnl40ijXK12TrV08PO8U8YbOVTE1iFQCqx7KMlQ8+/+qO /O3/cNWikxa0
zHa9sGnH5+94aOXP1338kncqZqvD5692FnoqVH/BWg3aPp4a1zPRP08NnhsA tJ7Vj7+y/PIz
WylcReTYeTOXX37GDx9/OZ1R1ait/PmrE4r+Ujjs6LFnnig1NMp4XaLsz0R2 e6yPAGKtkQ8X
gAj1q/nK1uFzFx5u2h3CW8i5C9/2ytbhTCajF/Ta1a9h/0d4JWKXsE6tGfg3 LqkuPfwBTfwd
T20OCdQg/Gpz3AVo2l/5VKtvoOrXP/nvv4b97342zgHYCv820eSu2d7MWs7r zgsHoOnzVflo
Hc4fDjsHuOxqgMN0TfRez3mxAl8yzyH9sIn+I/+BS0UZX72sYn5+/IDo9Kr9 fnRn0rmioZ5S
DV0R5mmyz18D/xqG/Y3znD8VFt7uXrPuefiLWY36NfC2IhEl6ItbJXNUke6K ofzhqpifw8JA
dKZe0eK9PWkRGc8aEQevcHWRpGubr1Hq1+j9X0v+RY51Vz1P9LUg2ZSN9aYq LFMTLB8V37EG
UH6+mlUcxD+9Qc6matPrN6FZ+EtG95Fb5wN4zyVKKsl+9xp5dwUkolgs/1dp 6kGZ4ZGiiEzq
S9s37Imewf1TWipfo1+/Caiw+qze96fDPmsga4Gy5Qv5RBa3b8yc0bdj55g9 ZeaMvnwh759S
/W3qpX5F0wj88NsfnFFObgqMSf/4YR+3u0/CCpuf6AWiKxT0RBb333Bu+6dQ v4JYtdS3y/ig
PWwV6oto+m+XcdFNAH56oVjeggvmTxeRwTlT7buDc6Zu2LjLM6B92z+lpfKV cEUDFsRVTUSK
VyBSvurlF5TrX97m3D7qyFn2UO4Bw6YcdeQsZ9mw29SvQALFcTOODyAwcY86 cpZ6CvUrVQIA
tD6j3Os9vPDiNveyzt0XXtzmGTxwirNs2O0WrF/VrVsBAK2kWDDacKvrUL9S jAJAW6nk89dG
pv5aYK3r17BwLeMas1zIEAAaPIAG+nsf/d3vu8zJLbZhv1izZqC/N51WXSYx +f455XF6ybn7
q7jb4yhm4CJ2ANCAUun0X55++FfvfWpXblcrbVdBe+vrDzy39OwjMh216q9u 169h/1dSZSe1
CACgZtKZzpuXLfrGz57+9MrHXtk63DLbNdDf+/5zjrrluos1ZY2a/Oev6v6v YUlZRlsSDgsD
QCPLZDpS6cwNVyz+7FUXplKpGtREHZlM9QbXi0UnpjRNs0xrZGS0pvVryVBM /PwmTpgCgAZk
WVahoDfI1Qrr8PYi8fo1yh4v2Zm1ZB9WGrUCABpZkuc3rb5nVfQ3NWGnL/mn SPhlad3zAwDQ
mvnKxREBAKhn/QoAAPlK/QoAQDz0zwEAVNHw8M6xsVHLMltpo3p6Jk2bdkjt 8pVwBQB4wjWd
lvkL5vf19bXMRuXz+R3btw8P75w6dYZiNj5/BQBUy9jY6LTp01spXEWkq6tr 2vTpY2Oj6tka
9PNXrn0IAC3AsswWC1dbX19fySPeCRwfvvW2u/0TVyxfFhac7m+scuklAEBL qjRfb73t7sAo
DZsOAEBb5OuO0UrLR9OcqJHT6bRhGCJS0GO3qg+82KHnMoq8WgCAdqlfRaRo GCJih2xBN3S9
OJbLR4lS9xR3/5zAqyFyJBkA2sH993/Xub1kyTXNuyEJnN9kGFZXZ2dPd6eI 9HR3Tpncm9ft
Jj4TZxR7ziv2X2rYjk8bP1sA0OaWLLnG/ufO2nasX00x94yOG5bZP2XSrqHR gq5ncxPdiCL2
fxUO/wIAotW1dlHrvmvfdopd/5zuh/yLN26+7hnN5vWirhsisnt4tFg0nU9k y8BxYACAP1z9
GemJT/tG4JxRRmvEfB0aGR/P5QpF48m163cNj1qWlYp52FnRzJUmrwDQ5qWq Z2JcTuh6YrXa
W1Fpvq5YvizW9189Melu5hplOgCg5XkO4fqzNqlVNHS+KqIUAIBKIjDw4G0Z R3TDhpIGPz7s
SLx/DsUrABCxnnOJ1XEYZc7oozVKvtI/BwBQeaYG3i05PWxO9eLVQ/8cAAAa O1+pXwEAoH4F
AFRdPp9vz41q4vrV/mqs+5KKZV9ekesyAkA19PRM2rF9+9jYWIuF647t23t6 Jqlnq0P/V/tG
lHODy7uWU4ItZrmYFABUYtq0Q4aHd27csLFkN/Kme98wbdoh1c3XuP1f7Us1 EVoA0CamTp0x
deqMNtzwJK7vX27/18D2rp4C177rvh1W+6pjW70uRXkd/QkAALA/X2dOrvSj x7j9Xz3lrDsd
/RmZYC9YxboCY9W+HbhSSnAAgFod+r9GL2r9D1W7R6x6FTSpBQBErV8rHyKR /q/u8tF9SNad
bYrjukmFq3oV1KwAgNrla7L9X+XAdnWNiePDAICq52us/q/Ol1bDzlFyV4pO 0FqWpQ5d94Ce
OcM+ZPUPqJjieQKEKwCguvlaSf9X/21/boXNr1gk+sS4U4hVAEDt6lf6vwIA 4NEi1x8uWVlS
egIAmjVf6Z8DAEBL1a8AAFC/AgBAvlK/AgBA/QoAQN3Vuv+r0IUGAEC+RgnX WP1fxdfrDQAA
8jVA2f1fA8vZwDZwlLwAgLbL10r6v0q0rq40XgUANJf693/1NFV1LqPvKWRp vAoAaK/6tZL+
r1G6utag8ysAAA2Xr1Xq/8pxYABAW+drGf1fJbwJa1jc8lIBANooXyvp/xo2 RUJavQIA0Eb1
K/1fAQDw4PrDAAA0dr5y/WEAAKhfAQCgfgUAgPoVAADytdHrV8Wlneo4FAAA YWrd/9WOMc/1
DpP6emtg752ScyY1JgAAieVrGf1fG0F5MUm4AgBqV7/G7f/qXF7Y+d9dy/qr W3/5GyvqAhfx
d5ZVzO8U2WH9aN2DkMEAAGmE/q+ewHNu+9vmlDxU60luf0x6FgnszOOfX72U Zx6OIQMApF79
X8vukFNGI9i4i9BrFgDQEPVrJf1f44obyXF7x9JrFgDQKPlaXv/XCg+ihpW/ 9I4FALRIvsbq
/6qI25KtYf3zxBo2yqOKKe4PdMs4zQoAQL7GkGD/1yitYaP0hVXP4zkdKdZK w5Zy3yVxAQBC
/1cAAKqB6w8DANDY+Ur/HAAAqF8BAKB+BQCA+hUAAPK1EetXLp8EAGheLdX/ FQCAFsnXJu3/
CgBAo9evifR/Des9F9i3zj0ULyEAoDXzNZH+r7HQbBUA0OAapf9rYCGrmA4A QIvXr7Xs/woA
QLvka1L9X8Nat9LSFQDQjvmaSP9XAADI1/0S7P/q/+RVPV04fxgA0ML1K99z BQDAo4GuPxxW
jFKkAgDaOl85TxgAgIarXwEAIF+pXwEAoH4FAKCt6tfG7/NKJ1oAQFz16f9q q+TE4JJXdGq6
NjtcowoAyNcDwjVu/9dEut9EWZA2OwCAJq5f4/Z/LVm9ObcVNWisXrDuKxg7 izh3Fev1r9Sz
rGft7hns2+7B1cs6E3krAADkq0jV+r96ki+RIjWsc3uUeQJvh01xR7WnP0HJ ZQEALaAO/V+1
feLGibNghbHtHiSwv2wiK6rGkwcAtFH9Grf/a1U/c01kkGrUkdSmAEC+xlNe /9daCqyV3Udl
oxwrruqTAQCQr16J9H/1nKwUOKWMJPPUju4xFe0EAucJnF5ytDLWS/oCAPma ZP9XdWvYwIcU
vWBjdeNRLxvlGYbNGbZs4DMnWQGAfC0dpZWLWB0CANBoGvr6w9Y+jbnvSH0A QC3ylf45AAA0
Qf0KAAD5Sv0KAAD1KwAA1K+2WN+I5WKEAIB6acr+r03X2xUAQL7GDtf69n/l coMAgNasXyvv
/+pv3xbWHjXwCkqKvq2xur1SDQMAGihfq9T/NW6FGrHHqnopfiAAAIlopv6v USKWHqsAgBap
X8vr/1qNFOToLgCgdfK1vP6viq6rcWtWRW9XAACaNV/L7v/qRGyUVq+eyIzY 29UzpRpdZgEA
SD5fK+z/Gqs9qmJKyUGijEbQAgAaqH6tXv/X2qDLLAAgcU1z/eHqhV+Dd5kF ALR7vtI/BwCA
JqtfAQCgfgUAgHylfgUAgPoVAIAGV8/+r8JXYgAA5GtYuMbq/+rvEwcAAPka IJH+r55y1t+3
1blr3yaeAQAtnq8V9n+N2LfVU/hSAQMAGlkd+r8GRqynbyudXAEA7V6/xu3/ 6uepRD0VLS8S
AKAd87W8/q9hhSxHfQEA5KtIBf1fneK1ZJdWAADaK1/j9n9152jYXYnQJpYy FwDQ4vVrs/d/
BQAgcVx/GACAxs5Xrj8MAAD1KwAA1K8AAFC/AgBAvjZW/Rr25Ve+FAsAoH4t nZ3qvIyeptHH
BACgfetXW3lXkOC6EwCAdqxfwwpQf7cc526U7jrO3bClNBdedQBAtWUSHCtK /WpfW9j531N0
+q/vH9hLR9EvNnCpsJ6yAAA0Tf0a9n/c+jXB+QEAaPr6Nex/RVjG6vZKd1gA QDvWryV5Dg4D
AED9Wrp+jUvd7dX/qGKK+wNd/4e1AAC0cv0qQe1dHeLqsh74qGJK4FL+NZK4 AIBmyleuPwwA
QD3rVwAAyFfqVwAAqF8BAKB+BQCAfKV+BQCg+evXBK/QxMWeAAA1k8D1JW69 7W7/xBXLl4WF
XOB19mt/RSf/2j0XqXDucrUpAECt8/XW2+4OjNKw6QAAkK+RmKZp30in04Zh iEhBNyopK+0b
irZ0YTO7jwCX7AEQ1inPPZFDygCAuuVr0TBExA7Zgm7oenEslw+b2R9g7oSL 27e15MzqZjsc
+wUAVEkC5zcZhtXV2dnT3SkiPd2dUyb35vWi/VDE/q+ekjR6b9dqNIIldAEA DVG/mmLuGR03
LLN/yqRdQ6MFXc/mdPuhKP1f/fEWPYkrbATrr3EBAGiUfN0zms3rRV03RGT3 8GixaDqfyJYs
EBXxVu3YUzwH4hYAUP98HRoZH8/lCkXjybXrdw2PWpaVKvewc2Df1rDzm6Kc f5TUOUp0kwUA
1DRfVyxfFuv7r/6UCjtlKUqeKWYO7Pyqntk/Z9h0AACqXr/yPVcAADxS7AIA AMhXAADIVwAA
yFcAAEC+AgBAvgIAQL4CAADyFQAA8hUAAPIVAACQrwAAkK8AAJCvAACAfAUA gHwFAIB8BQAA
5CsAAOQrAADkKwAAIF8BACBfAQAgXwEAaHMZdgGq7fN3PMROAEC+Akn66OJj 2QkA2hDHhwEA
IF8BACBfAQAgXwEAAPkKAECj4vxhAEAVDQ/vHBsbtSyzlTaqp2fStGmHkK9A o3jyD2vZCWhh
Z5280B+u6bTMXzC/r6+vZTYzn8/v2L59eHjn1KkzyFegUVy99FJ2AlrSf6z+ iX/i2Nhoi4Wr
iHR1dU2bPn3jho3qfOXzVwBAtViW2WLhauvr6yt5xJt8BQAgeeQrAADkK1rX vPmD8+YPRp+5
lk+MVwdofPff/13yFW2XmiWzc978wU0bt2zauKVhk4+UBeoYlpVkZ71yl/OH UXVOatoh2uxb
AQDkKxouopyIdcpBd/o6dz2PuoPZE9Lupfy1pmc0/+rC1ugvWO31qocKfMIA qlHULllyTVh5
6kzxzGPf9T9KvqJ1BOalO5Cil7z+R9WDOzHpCWnFDJ6gjT4ngMS5I3PJkmvs /xWxat/2T/Hc
Jl/RUhFb9qMVDl6bSp2XGGiEMjfuo0nm665d23kx0FAJVHlFSLwB7RyuikPH Uv3Dwo7U00+/
9PTTL/GSoDY1a+Dh3HpVya23XgBJlbkJ1K8XX3yuiNx336/Y16h22Djh6j5R yJ+4ntOIAqd4
pns+u1UMHjiPf5GwNaqHApAU+7NVf9Hp+ZDVM5t6ypIl17gfrfr5TblcgRcS 1aNIuOh3FTME
jq8YLWzBiGtUD1Uy1wHEitgoE+NOqdnx4czYWI5XEUi2QAcAzh8GqlWjA6hB RduwUoZhGIbB
ywYAqIZ8Pt+eG0X9CtRUYA9qoFX19EzasX37tOnTW6kLbD6f37F9e0/PpBL5 WigU+QkAauOs
kxeyE9BWpk07ZHh458YNG0t2I2+69w3Tph1SIl9zeZ2fAABAlUydOmPq1Blt uOH0pwMAIHmZ
PPUrAACJ5yufvwIAkHy+mqbFXgAAIOF81TSNvQAAQML5Wih4rz98xx13sV9Q Ej8nAKDK1xde
+JNn0rXXfoj9AgBAXE89dfP+fL32o1eIyFO/e86ZtHnT6+wjAAAqwfdfAQBI XoZP0QAASD5f
z1+8WESeeupV9gUAAEnh+DAAAOQrAADNIPPImjXsBQAAEs5XPn8FACBxHB8G AIB8BQCAfAUA
oD1lbvz3p9cOzzibPQEASTNNQ8/nTFO3atUItKjnqhgYHd32DU0TTUtpWrqj qzuVSrf5Jocu
u3Zo2nHjv6KOBYDE6flcZ4e18sEXVj/+yitbh1tmuwb6e5eccfiNV55eNIqe sGnDTQ7NVzGL
6XRaLJ3fBABIlmUZKx98/r4H/3zPqptabNOuuu6WaVPWffySdwZu8qs78rf/ w1WLTlrQMtv7
wqYdn7/joZU/D9jk8Hy1iulMSohXAKiC1Y+/8o0vf+qt3dkW265bv3zDX//T 1/7q0jMt0/Jv
8qr/eWUrhauIHDtv5vLLz7juK/cEbnJwvmqG3tGVqSRf39y9ef3m7LoXN2za skNE5g3OPPGY
BUfN7RmYNpdfLQDtXb+ar2wdNi3r3cf3mqbZMtuVSqV++Xz2la3DmUxGL+j+ TT534eGttL22
cxe+LXCTQ/PVMvWOjoyU+9bq+Q1v/Oevnjlt4dHL3vfu+YMzLUs2vb7j2Rc3 3H3/Mxefmznu
8Dn8ggFoW5qWEhHDsFpv00zDEhFN0wI3uaVfUy3inBnNKHZ0dhhlrea5V9/Y sHnbZ65//+Cc
gede2vDAQ78VkQvOfsc1l59/9jvf/sBDv7FEjidiAbS3lsxXwzRFRGu/VzP6 JmfELHR0pMvI
1zd3b37w0Wc+ff37B+cMfG3VDx9+4g8zp/eLyHd+9PAN113x7rNPvuzCM/+/ lT8YmFrkQDGA
ts5X0xIRvYVCtkukWOozyAbc3u5MOlc0KtnqWDJi6plMuow1vbgp+86FRw/O GXh187aHn/jD
249Z8JUbPy6WXPupf1n1nZ9ecPbJg3MGTl149IubsgPT+P0C0L6KhikiZnVO I+3tmfgDPp41
nCmBt5OUFl0v8fFqhdvrbJd70ypX0bOKGZUZzShkMpkyVvTsixs+uPTdpiXz 58761tf+h4iY
IuPjOUtkUm+P/cblhKMXfOdHv1x08tH8ggFo43y1RKQap/tM6kvvHdsfpc5t e132o1U6zcgo
Vb9Wsl73diW762p50lVmzsyDf/b8m2f1xV5y8+s7Bg+daYlYlgxM7xeRVzdv u+mWVSLyiY+/
375yx2GDMzdv2cFvF4C2zteiKSLFYsIHTKcelBkeKTrDDo8UJ/Wlh0eK9ro8 j1bpTYNyq61E
tss93dlS911nimIeZ4bq7ZCAfF31N+8UkVu+fHvcJe0EtZ+pJTI+nrPD9Us3 XrfgsFmm7H8U
ANqZblgiki/kEx/ZP6Y9ZepBmR07x6qxxn167TcNsZ5bJdslIjt2jjkhat/2 TJk5o8+Zki/k
3XedRSrbJ73x8lVErvs//zUv/nrmDs7c9NqO446eLyKiyaubt46N5666/IJ5 drhaIppsem3H
YYMz+e0C0Nb1q2GKSKGQ/Aew/jGdKdVYnf9NQ6znVsl2icjgnKmeGdyz+aeI yMwZfeoZqlu/
isiqv3nnLV9eF3fJ449e8NxLGyby1ZIZ0/uvvPyCY4+eb1kT5y9rljz30obj j17AbxeA9s5X
ERG9UEw+5Hxj2lM2bNw1OGfqho27qv2mIdZzq2S7Fsyf7mzOgvnT7Rncs/mn 2PtBPUPV87U8
x8/v+fb9z5xx6tsH5wyIyKO//uP373v4A0suOO7oBZollshrb7z5+2de+siS k/jtAtDW+Vo0
RUTXE66c1iT0zWgAAAKZSURBVL+8bcH86etf3mbfPerIWetf3mavRdd1z6OJ M0p9kFn29oY9
c/eAzmYqprjv2junGq9CVfJ1YNrcc07Z/bNf/uYv3n3m4OyBSy4863v3PXzu 2e8QS0yR17e+
+bNf/mbRKYN8+RVAm6ve9SXWv7ztqCNnObcDH61SxJasX5PaLvuuZ0qUvaHe OQ2dryJy2onv
kHV//PrtPzj5pKOPP2rBt2/9RxF5/qWNz6/f8IdnXlp0yuBpJ76DXy0A7Z6v piUihlGVwV94
cdu+FN8/JfB2wvla6vs5Fa7X2S5nKM+UwM307A3/3SrtjeTz1Y7Y+YdOe25j 9vv3//K1LTtE
5LDBmccfveAjS06icgUA2XcpwWLBaKWNKlm9ttj2lpOvj6xZU+EQA9Pmnj9N zj+Fi0gAQGgU
1fKTv1pslBl8fX9Hi22vI8b1/c9fvFhEnnrqVX4HACDxv8YD/b0i8i8/ekOk o2W26uHNb4jI
QH9vOp0O3ORHf/f7LnNyi72Wv1izJmSTQ/KVH38AqJJUOv2Xpx9+x79/+8iT 3nVox9tbadPW
/P4bS88+ItORCdzkr9771F+996Tp3dNbZnsL2ltff+C5wE0OzddZc2bzOwAA 1ZDOdN68bNE3
Dn763l898ZOtP2mZ7Rro733/OUfdct3FmqSCN/lnT3965WOvbB1uh02mfgWA WstkOlLpzA1X
LP7sVRemUimt+u1SOzJV/KuuF+2LM2iaJpqmWaY1MjLKJpOvAFBrlmUVCnot r8nHJjeOFLsA
AADyFQAA8hUAAPIVAACQrwAAkK8AAJCvAACAfAUAgHwFAIB8BQAAsQRcH/GW L9/OfgEAIMl8
XXz+2ewUAACSzNelSxezRwAASDJfVyz/ArsDAIBE/P9KOnTLd6w8+gAAAABJ RU5ErkJggg==
--------------020007040104050105050408--
Re: Writing a DiffModel as .uml [message #91598 is a reply to message #91569] Tue, 24 July 2007 09:44 Go to previous messageGo to next message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------020703060309040000030602
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

It could then come from your eclipse configuration. Did you try
launching eclipse with the -clean flag to allow it to properly detect
the new plugins?

Laurent Goubet
Obeo

Jan Reimann a
Re: Writing a DiffModel as .uml [message #91611 is a reply to message #91598] Tue, 24 July 2007 11:41 Go to previous messageGo to next message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
I tried it but it's still the same :(
Re: Writing a DiffModel as .uml [message #91642 is a reply to message #90844] Tue, 24 July 2007 14:38 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
I just want to post my solution. I wrote a JUnit-Test and now it works
fine. After the test ran you can use the Compare GUI to let you show the
differences. This mixture of JUnit-Test and Compare-GUI works good :)


public void testModelsAreEqual(){
EObject genObject;
EObject refObject;
try {
genObject = ModelUtils.load(generatedModelURI);
refObject = ModelUtils.load(referenceModelURI);

MatchModel match = new MatchService().doMatch(genObject, refObject,
new NullProgressMonitor());

DiffModel diff = new DiffMaker().doDiff(match);

ModelUtils.save(diff, "DiffModel.emfdiff");

EList<EObject> contents = diff.eContents();
for (EObject object : contents) {
if(object instanceof DiffGroup){
DiffGroup group = (DiffGroup)object;
assertEquals("Generated Model and Reference Model are not equal", 0,
group.getSubDiffElements().size());
}
}
} catch (IOException e) {
System.out.println("Loading models to compare failed");
} catch (InterruptedException e) {
System.out.println("Error while trying to match the models");
}
}


greets
J.R.
Re: Writing a DiffModel as .uml [message #608808 is a reply to message #90703] Thu, 19 July 2007 11:27 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Sorry that I forgot the prefix [EMF Compare].
It was my first posting here.
Re: Writing a DiffModel as .uml [message #608811 is a reply to message #90703] Thu, 19 July 2007 12:16 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
Jan,

I find your need to be a little confusing. The DiffModel returned by
DiffMaker#doDiff(MatchModel) is not based on the UML metamodel and
cannot then be serialized as an UML model.

Why exactly do you want the differences to be serialized as an UML
model? Or more precisely, what do you expect to find in the DiffModel?

You could also save the diffModel using ModelUtils.save(diffModel, path)
then transform it through ATL from diff to uml.

greets,
Laurent

Jan Reimann a écrit :
> Hello NG,
> today I found the Compare-Framework and I think that's the thing what I
> am always was looking for ;)
> Well, I had some tries. I have two Models represented by .uml-files. So
> loaded them:
>
>
> EObject genObject = ModelUtils.load(generatedModelURI);
> EObject refObject = ModelUtils.load(referenceModelURI);
>
>
> Now I want to look if they are equal(means: if they represent the same
> model):
>
>
> MatchModel match = new MatchService().doMatch(genObject, refObject, new
> NullProgressMonitor());
> DiffModel diff = new DiffMaker().doDiff(match);
>
> To simply use the UML Model Editor to compare the difference between
> both it would be fine if there is a possibility to write the diff into
> an .uml-file or make a org.eclipse.uml2.uml.Model out of it. Is it
> possible?
>
> greets
> J.R.
Re: Writing a DiffModel as .uml [message #608815 is a reply to message #90762] Thu, 19 July 2007 12:45 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Laurent Goubet schrieb:
> Why exactly do you want the differences to be serialized as an UML
> model? Or more precisely, what do you expect to find in the DiffModel?

It would be fine if the differences would be serialized as an UML model
because I think it would be very simple to see which elements are
different. That means precisely that if the DifModel is null (or
contains no elements) both models represent the same UML Model. That was
my idea or my expectation ;)

> You could also save the diffModel using ModelUtils.save(diffModel, path)
> then transform it through ATL from diff to uml.

Sounds good. What is ATL?

greets
J.R.
Re: Writing a DiffModel as .uml [message #608816 is a reply to message #90824] Thu, 19 July 2007 13:21 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000308040605060907040404
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

I don't fully understand what you need to do with the differences model
but have you tried to compare your two models through EMF Compare's GUI
and if yes, isn't the result displayed what you expect to see as a
result for your two models comparison (see attached example result.png)?

And if you need to compare programmaticaly your two models and then give
an interpretation of the result, an "empty" differences model (where the
two compared models are considered equal) should look as the attached
example result.diff; with a single "root" element which is an empty
DiffGroup.

This result has been obtained through :
<pre>
final ResourceSet resourceSet = new ResourceSetImpl();

final EObject model1 = ModelUtils.load(new File("model1.uml"), resourceSet);
final EObject model2 = ModelUtils.load(new File("model2.uml"), resourceSet);

final MatchModel match = new DifferencesServices().modelMatch(model1,
model2, new NullProgressMonitor());
final DiffModel diff = new DiffMaker().doDiff(match);

ModelUtils.save(diff, "result.diff");
</pre>

Yet again, if you run EMF Compare under eclipse, "to see which elements
are different", it would be easier to create a ModelInputSnapshot,
saving it on disk as an "emfdiff" to allow you to open it within our
compare editor under eclipse. This can easily be done through EMF
Compare GUI.

Laurent

Jan Reimann a
Re: Writing a DiffModel as .uml [message #608818 is a reply to message #90824] Thu, 19 July 2007 13:34 Go to previous message
Stephane LACRAMPE is currently offline Stephane LACRAMPEFriend
Messages: 217
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------070307090706080209070806
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

ATL is Model to Model transformation language and tools. It enables you to transform one
model into another, typically a diff model into a uml model.

But still I agree with Laurent, I am not sure to understand your need and I would think
that the EMF Compare GUI is what you are looking for.

Stephane LACRAMPE
Obeo

Jan Reimann a


Stephane LACRAMPE
Obeo Canada
Re: Writing a DiffModel as .uml [message #608844 is a reply to message #90844] Mon, 23 July 2007 09:53 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Ok the Compare GUI sounds good. But how can I run it or use it? The
thing is that I can't find a documentation of Compare.

greets
J.R.
Re: Writing a DiffModel as .uml [message #608846 is a reply to message #91259] Mon, 23 July 2007 10:07 Go to previous message
Stephane LACRAMPE is currently offline Stephane LACRAMPEFriend
Messages: 217
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080409050508030502010503
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Using is is supposed to be pretty much straightforward :

If you have installed EMF Compare inside Eclipse, make sure that you add the file
extension .uml in the "Model File" content-type. of the the preference panel (in "General"
then "Content types"), and then all you have to do is right click on a couple of models
and compare them as you would do fore files. Or compare with a repository version of your
model, again as you would do for files, then the gui will open.

Stephane LACRAMPE
Obeo

Jan Reimann a


Stephane LACRAMPE
Obeo Canada
Re: Writing a DiffModel as .uml [message #608847 is a reply to message #91289] Mon, 23 July 2007 10:28 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Stéphane LACRAMPE schrieb:
> If you have installed EMF Compare inside Eclipse, make sure that you add
> the file extension .uml in the "Model File" content-type. of the the
> preference panel (in "General" then "Content types")

Yes I installed EMF Compare inside Eclipse but there is no content-type
"Model File" as you described it.
But fortunately the Compare GUI opened anyway. And it's great. It's
exactly what I meant and more :) Thank you for that. So now another
question came up :) Is it possible to open the Compare GUI with some
Code? That would be perfect if I could run it for somebody else
"automatically" for presenting him the differences of two models.
And is there any documentation of Compare online?

greets and a lot of thanks
J.R.
Re: Writing a DiffModel as .uml [message #608848 is a reply to message #91303] Mon, 23 July 2007 12:37 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------040609050100050506060706
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

This isn't a normal behavior, there *should* be a content type named
"Model File" under eclipse : window => preferences => General => Content
Types for you to add the files to use EMF Compare with. "*.ecore",
"*.uml" and "*.emfdiff" are filled automatically, which is why EMF
Compare's GUI opened for your models.

Opening the compare editor by code is not possible as yet for some of
the needed packages are not visible by third party contributions. It
should be possible in the final 0.7 release via
" org.eclipse.emf.compare.ui.editor.ModelCompareEditorLauncher #open(File) ".

As for documentation, apart from the javadoc found under eclipse in
"Help => help contents => EMF Compare - Developer Guide => References",
we do not have any accessible online.

Laurent Goubet
Obeo

Jan Reimann a
Re: Writing a DiffModel as .uml [message #608849 is a reply to message #91318] Mon, 23 July 2007 14:09 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Laurent Goubet Wrote:
> This isn't a normal behavior, there *should* be a content type named
> "Model File" under eclipse : window => preferences => General => Content
> Types for you to add the files to use EMF Compare with. "*.ecore",
> "*.uml" and "*.emfdiff" are filled automatically, which is why EMF
> Compare's GUI opened for your models.

Strange...I cn't find it. Under "File Associations" those
file-extensions can be found but that's not what you mean?


> Opening the compare editor by code is not possible as yet for some of
> the needed packages are not visible by third party contributions. It
> should be possible in the final 0.7 release via
> " org.eclipse.emf.compare.ui.editor.ModelCompareEditorLauncher #open(File) ".

Ok.

> As for documentation, apart from the javadoc found under eclipse in
> "Help => help contents => EMF Compare - Developer Guide => References",
> we do not have any accessible online.

It's a pitty because EMF Compare - Developer Guide => References is
empty :( Maybe that's the same reason like the problem above?
Re: Writing a DiffModel as .uml [message #608851 is a reply to message #91332] Mon, 23 July 2007 14:41 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------070807030309050300080609
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

Comments below.

Jan Reimann a
Re: Writing a DiffModel as .uml [message #608857 is a reply to message #91366] Tue, 24 July 2007 07:51 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
Laurent Goubet schrieb:
> content-types appeared with eclipse 3.1, which version of eclipse are
> you running?
Eclipse Version: 3.3.0
Build id: I20070621-1340

> Which version of EMF Compare are you running?
EMF Compare 0.7.0.v200706130300. Downloaded with the Eclipse Update
Manager about one week ago when I did my first post here in this group
:) Downloaded from
http://download.eclipse.org/technology/emft/updates/site-int erim.xml
For this version Javadoc is displayed as well in Eclipse. That's Ok so
far. But it would be perfect if the Javadocs would be online to click
through it ;)

> EMF Compare 0.7.0 RC2 (version 0.7.0v200707130729 as
Well I see that it is newer than my version. But my Eclipse Update
Manager doesn't tell me that I can download a newer one. Strange.

greets
J.R.
Re: Writing a DiffModel as .uml [message #608861 is a reply to message #91459] Tue, 24 July 2007 09:15 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------090506010507010004090108
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

EMFCompare RC2 is indeed the version you have, mine was slightly newer
as it is a source version I downloaded from the CVS.

The javadoc is not yet online, but will be in the future. It will be put
online with the rest of the documentation when we'll start writing and
uploading it.

As for the "Model file" content type, I attached here a screenshot of
the eclipse preferences where it belongs. If you don't have it, it might
be caused by a conflict with another of your plugins as this screenshot
has been taken with the exact same versions of EMF Compare and eclipse
than yours.

Laurent Goubet
Obeo

Jan Reimann a
Re: Writing a DiffModel as .uml [message #608864 is a reply to message #91524] Tue, 24 July 2007 09:33 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
This is a multi-part message in MIME format.
--------------020007040104050105050408
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Your screenshot indeed looks different than mine. Another thing that
attracts attention is that there is an EMFCompare-Preference-Node on the
left side on your screenshot. There isn't any possibility to make some
settings in my composition of Eclipse and Compare. Do you think that it
is a conflict with another plugin? Fact is that Eclipse didn't say
anything about some conflicts and besides that there isn't the Model
File content type and EMFCompare-Preferences-Node all works fine.

greets
J.R.

--------------020007040104050105050408
Content-Type: image/png;
name="preferences.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="preferences.png"

iVBORw0KGgoAAAANSUhEUgAAAnUAAAJWCAIAAACxreabAAAACXBIWXMAAAsT AAALEwEAmpwY
AAAAB3RJTUUH1wcYCRsj4OKkMAAAIABJREFUeNrt3Xm8HHWd7/9PdffZk5BD khOScMiC7AhE
QDYhEJDFESYYvLIYF7zCTDIzisudO+D80BlFf+P8fNzxXtCEK4ygo6ARcB0Q IouojGgIIBCQ
LASykIRzTk7O6aW6qn5/1EmlUsu3q7qr99fzkUce3dVV3+qqPue8+1NdXR/N siwBAACJSrEL
AABIXCZw6vXX38yuAQAgupUrv+C+q3mOD9vJumD+3MmTp0ybNp39BQCA2u7d u0ZH92zYuNmd
sgfk6/XX33ziCW9/19knH3fcYSKSTqfZawAAqBmGISJ/+tNrv37iD+uefc6O 2P35aofr4gtO
O+Jts8fHsoWCPpY1xsez7DgAAML09vb09aQ7Ozt6+3pe+fPWNQ8/ZUfs/s9f F5933jmLTti1
a/TRR58b2zuWzersNQAAoujp6eib1Dcw0H/5+xbbn65O1K/XX3/z1dcsPbh/ ypbX3hwaGmNP
AQAQV39/3+BhA28N7fmP764+4PzhsbGxbFbv7u5kHwEAGlDfVNmzp3QROGVK 39jw/rsvbd6w
bcfukkvNmjnt6LkL3EstWH1XyaU2LP2Qs1Q2q4+NTTy9/fna2dU5MpTjnCYA QGPqnmzs2TN2
+iknHXro9FQq+PoNpmm+/vqu3z39zJSpfbnRtIj8acMr23bs/uh/u+zEk+Zm MsEZVywa657Z
fOe9PxaR4xYcISKvvbllweq7rrruEmvezOLgNDlILNPSROxTlrSUJiOS2bJb 27Tje6vueuPD
1x02MGgPNTKsT+nvPiBf0ynN1PK9UzKaiIg9iKZpMslMT9XTRs7YW5C1L7+1 K28UdaO7Vw4a
6Jg9p7e3t0NELE0TEc0SS7NXP7E4Pw2IhZ8YxMcV6NrI0Mie00856eD+yeNj ecVsB/dPPv2U
k3739DP9Bx0sItt27L7+g1fMmzc9O66LhJ5adOSRs6//4BUrv/PDd550jCUy 46urLrv8jPGR
nKzbbOQLgYukX9omIpddfsaPv72q75+/IpZYmmUU8+lUzwH5qqWku7vLEtH2 xbOI9BdSMyZP
tjoym3eMvbB1z46cWSgU84XCzhH95U35gZldJ5w4c9bsyft+yididcmS8+wx Tz31jFNPPXPh
wlNmzJgZdz8+8MC9d975zfe//4PXXHMtP1X8pQR4TwYRmXbwlGLRiDKbiDjV 6pzZU7PZQsml
5syeKiLpTMbOQWM8ZxWsju7uK677nIh877YvZEzR09rVf/3/iMgDN3/GLFp6 LqcV8yKSzqTt
n8aOTFpLyQH5mkqlMpm0tb/utDrGjYOsTKavM9/drQ/r3X0d+YJeKBRy+UIu X8hm8y+9OLJ3
LHvhxUf1T+2x9v+4T9x88MePjY2P/eBH3//4x69a9c3vzDp0MPoefPzxR+68 85t33XHvzOkz
LRGdyzjy1xLgJwYiI3vGwo7xuo2N50Qkk5nIuO07hvv6ukTk3Re+1z/zLx/6 6cRSY3kRyWRS
mmgiks+bVrFoGeMPbn5DRC6aO+d7//DJq7/8v+y7o//yT0YuX9BNzTDtLNfE /sKrZh+7dh0f
1iSdOSDHJu0pGml951u5vRkjl9Oz4/l8oZDPF7K5QjaXy2bz47n8unUjh8ye tPi8I8U5LO36
ge8+6KDLlrz/e/fe9cD9P/ibv/usfRg5iq/+yz+JyMzpM81M2tI0PhNumz+W VLDgoAdKME0z
4pypdMp5I1YsGoe/7ZBLLr7KM88v/vN7+wtiTUQkk07bN4xCUVKWXphIrgc3 v3HR3Dl2uIpI
bmhMTMO0LDENu361fxw1S7MrWdfx4bTW2ZGxRNM0y7JES0nGzI4P5baMW3pX x9DQ+Natw7m8
nssVsrn8eC4/bkdsNv/cc69fdPFxmmXZfx0115/Irs7MwMwBEdn91s60SLoz c/75p4nI5z73
z+vWrf3kJ/9eRH71q4e++MV/tCeed96FImLPIyIXXbbokUeeCpzHmU09lD3b pz51429/+8Rv
f/vEX/3V311wwSX9/QeLyNq1Tz/22CM/+cmPLr30fUuXXjU4eFjgCFu2vPbw wz//znfuvPTS
9334wx+3lwXFCBomXwnYNvsjoWm6Xiw5m125dnVOZFw6ncrmJo4P/9vXP3lA vh75Peehjo6M
iHR2ddhJmR/Pa5lMOqO98alPzvna/7Ij1p7zjRs+YZcERtGyikUR6exMOwFo B+yBx4c7NNfJ
TaJJasfb53eKZCzpnNU/4+jZRcM0TKtomIZhGYYUDbNomntHRjtd1br7h72j Iz02tldEzjvn
Ak2ko2PfofAZs49YepSlF5/47aNf/OI//p+v/9+eju6P/fUHxZILL7rk8cef PuecU0TkwR8/
VhzL/eYPv/bP46xCPZQ9z9e+dsvqH/w8N/bJaz6yVEzrqqs/tPaZpz/zmRVf +uK/fmLFp3/6
0/t3bt82b+7cXz36S/8It9/+v5988vEf/+ih73//O1u3vDZj+nQtRQhUrxRh 3yLuWzLytb0U
i4ZlmVFmc/JSRHTdKBoTqfzMug3ObCeduEBEnIfs9/iZTNo+PqzrxU4xilZG RNyV60Vz56y6
7C8nFjCKum6JSGdmIpUtkVTqwHxNp+wPdTVrosIVS2TSb158aHt+NKfn8vnx XD6bLWRzufFs
fjyXG8/ms7lcNlfo7k5f9MO/mSg9rAOOARfyuXvv/e67zjrn1FNO7+rp7Ny3 qQvmv21S/yQR
eeSRh0TkiHlH9E3tE5GHf/mLCy+4qNP1BdyDZhyknifiUJO6+mbNPkREvrnq f1/1gQ8+9tga
ETnlhFO7ujuvvOaaQraQSqUCRxgYmCkiI0PDf/uJG/LZfDqlZToy/IhTv4L3 ZKgLvWhYYorI
f/78F56HLn7PJZ6/JR2dHfbdXL5omBMhmi8UPeVgvlC0Tz0qpjQR6eqYWKqo 6yIdHWbxul/8
zAlX2XegeNXFfyGaFAyrqOt2/WqJJpYlmiZm0VO/ah2d7itLWFnD2nvmMWeK mJYYpmXalWtQ
/drV0Sma82QnftwvumyRiNx00+cvv3Tp5EkH9U7ucX9dqaevW0R+/evHnDlF 5Hf/9RtDNzoP
6nBm6+zqKDlPxKG6e7omdvRY7r77fmDf7pvSu+9oQPAIK1b8rVk0ln3sv910 483nLT5/yqTJ
/HwDQL0UCrp92cEVKz724H8+5Uz/86vPF/L7jxtrmiau48O5vJ7P5ezbe0dz njGdKV3ddu5k
7MO8pqkV8kUjrTnh+vK1Hzvyjm/ZEfvytR+zLMswJk4K7pzIck3E0gvGgfmq aV1dGftbr3Yl
muvt6H9+4x82vPVfbwyP5wrZbG48mxvP5cez+Ww2l8vnc3k9ly98+oZLuroH J44oT1S/IiIP
/vgx+8bUGQf19HV7rlzR1dUpIueeu/jRR9c4c4pIIVewH3JmizJPxKGc2/bM gRM9Ixx6+Ox/
/tIt77n4vdevuPbxxx+99baVXIKjmsUIx/rAMQ8o61fdsMyJ05Euuvg0Z/pF ctqzz766/+ci
lRaRrq6JEiuf152vzP74/jXObPbt/d+m1dLuXMgVTRFJmxOV4Z+WfcT+/7i7 /91+JkVLM/ad
bNXV2eFcOcLQC+K5vkSXXb9qYlmWJjL5bQcXsvrcGX2v7tqze8g+LJyfOCyc L+TyhUK+uOic
o977npO6ujrE0vbV2/t/3g8/Zm7YPurq7BCRj1373x99dM0zz/5xwVFzv/GN 2678wFWLF5/v
mS3KPBGHcm47Mx9+zNx77vnejBkDixefHzjCt751+/z5C86/8HwR0Qv6yK49 swYH+BHnbyV4
T4a6MA3DPn947dpXXN9b8UpZB/zZL+iGXiyK7+QmEVl032n2Q5ZIRjc8YWHq uqRSa6/+iPvE
m3XXfERETEssQzdNM9XRsS/LJ55QPuU9v0mzS+mJQlSk69B+fa9eFDkrlUpl tKfXvz6ezWVz
+WyukMsX8vnieecdvfy6CxbMm2mXrZamadYBn4Z0up6lh/3QokWL7vzWXStX fvN3//WbKz9w
9eyBQ/PZwuSD+tyzRZkn4lD7d+iiRXd+664f/mD133/uhg9+cNmZp78rny0E jrBo0bkXX/Ju
Efm7v/3EWaeel0ppio0CUPuAZRe0laJpmUbp85tSBxyzlWLRKhSK37/niRKD d1ki0tWZsZNs
LG+IpHrETKUtI+gHzTTNrJmSvOGsSxOxNN/5Tam0dHR2uN4NWJpoc06Y3Tet L/3Sm5Om9rzj
mFl3PfD7TdvznRnt+GPnXXDBce99z8JDZ/dbmtjHlJ21b9+2fd3v14vr2Ldj x7Ydz/z+JfdD
73nPRWe/6107dwztGd47bcbUg6b2dXRkPLNFmSfKbO7b9sxfeOufdu8cntw3 xZ7ZP8L0GSds
enXz+j9tEpGZs6ZNn9nfwflN/KUEhzxQr78SprX/BKVw3V0pdyX63PObZs6Y UnKpDZs3iUjn
vnzd/mbhkIFOXTQpmoofwO1vFvYl0cQB4lRaxN2f7nM3/fdZc2ZPXHV44hzi iZQVscTa99mq
5lwI0a5WJ774qu1fmWVZmqZx3Abxf3P4YwkSFuF+/4cXtry+dXr/rJJz7hra Nnjo7FNPPlZE
vv39h9eue2H29Pkll9q6a+PCE4/98JUXaJb17/c80nvrVzPp/tIltTE0vuKz H77yfDszLU22
vfHGF7/0f/eXYlOmHpzhzB0AQKM65og5IrLl9a2ed1j+Ym7w0NnHHDEnk06J yMWLjhWRtete
OGApbaK8dFt44rEXLzrWXmrJhQvvl8/23vrVA5cKqBzHV3x2yYUL3QE6ZerB B9Sv//ZvN+3e
9SavHwAAlZg2feATn/jSAR8lvvQy+QoAQEXOmj4g7vObROTPr7y8ceNOdg0A AOWZP3/GWWce
f0C+ZjoyU/unD/3xxZUrv8AOgtodd9x17bUf2rzpdXYFADhu+fLtC99xjH0Z XRqrAgCQPPIV
AADyFQAA8hUAAPIVAACQrwAANKqol6r/j9U/YWc1l6uXXspOAIBGz1f+XjcX 3g8BQH1xfBgA
APIVAADyFQAA8rUONE3TNM19l5cEANrNq989+dXvnlzLNb722obXXtvQWPma YATa7W3tBrQV
pmzcRQhyAGgQf7775PP+Yb1l1nq9p59xWlUjNtMg+9ffRx4tY978QffdTRu3 VDJO2YurR/A8
yQpXBCCiV+4++fyb1otIXTLg9DNO+91vnzrssAWNkq928WdZll2AuotRd13o figsRAOHck/3
L+6syDNayUXcz9MzP6odru6smjd/sAGjy35KlUc4gOjWf/sd775xnWVmNUtM 01r/7Xd4Zjjq
w39MZEX+OnV490aR06oaseXkqzqT/Inrz7aSQwUu4o5G/4KKRZyn4X6IZG3M utZJOOdR93RP
BFY+Qqw3B56R/atQFOvu6eQ3ICIv3rHwwhuftIp7RbNE5IK//7Um9p9oTdMs u5598CsLj/no
2oh/PRThevoZp/kmnxaxit3x5kb33ZkD8yNuYEXnNzkFa2DguStLz3lMcctl z+IlozFwEfWT
RL0qRfuf5xfGrnEDa0r/9LJHqPz9gWcVYU/JM91/LBpoN3/61sILP/tz0Uek OCT6sKWPiD5s
6cNSHLGKw5Y+bBVHrOKIaaj+jER/w6oX8up/J598Uthnse5AjR6uUpvPXytM tTIWJ0dbI4Pr
O0Liq3AOjFO/AoWcKfqQ/ZdaE7H2/e+RL5iKX8DoHzblsnsrebYzB+bveHNj rHBNIF9j1YUV
VpBlLO45pEwJ23qqWgvav8D273Dco8r+cYTPd4F9Fq5Yd/+XTvzL//ENEcvS RKx9R4TtZJF9
59AYybzHLZmvr27crv4INm64lpOvzjHhsKDynFvkPukpYra5VxFxcfUiTqw6 EVtyK1DVREww
YBr2VKnAiU7KErHAyX+77r7/94TLP/UVSxNN5L5//Z/7K9l9Tv27Zytf0WGH LXh1o/fY7443
1p/6zomPYF97Y7gRz2+KcspSyZOY3GEc9lAZo6kfIllJ7lglbHlZ7tS+zpFh PnwF3PG5+qsn
vO9TN4mIacppNzxbpRUp4rNK4SqN8/1XtCp3PrkrubDp0aOu8hEqj/OIG+WJ VYpXwHHaDc/+
8F/ffsUNnzbNOtQ81QtXSeTz1yjFJdo8YqNP90yMdbfsRUoOGFh0Rlk7mQqU dMann/vBv769
xcKV+hWIWqcSkED1nPmZ52q8xqoma+x8pWU3AAAJ5+vVSy9lZ6E9+StXalkA JdH/FQAA8hUA
APIVAADyFQAAkK8AAJCvAACQrwAAoHxcvwnle2TNGnYCAJCvSNi1136InQAA jqeeupl8RQI2
b3qdnQAAgVr281enxToAALWXQP166213+yeuWL4sYvjR0g4AQL4GhGtglIZN t8OVTAUAkK8l
mKbpmVLQDUXlGhiuTkVrPxpY4PrnsSzLGdDzKAAAzZ2vRcMQESdkdb04lsvH GsEdus5tz5TA
edwT/Y8CAFAvCZzfZBhWV2dnT/fEvymTe/N60X5o9T2rnP/9mWoLvBsWw555 3DkaZQQAAJom
X00x94yOD+3ZOzQyumtodOubbxnFiWJ26Qeuc/73sCzLnY6WS9iKFPPYNat6 cTSjL/5we9mP
tsb2zps/OG/+YLu97vXaZPV6Pa9FG74uqHW+7hnN7t6zd+dbozuH9u4eHh0a GR/P5hUZWbJI
LblGitSm+1vp/Cs7ddz/4iars1RVI989PanVzZs/uGnjlk0btzRg1NUgaexh qxdjscZ3vxbR
F+HXv50l8Pnr0Mj4eC5XKBpOgqaUse2PWPeUsAJUPU/J2EYd/zonEg+fu+IQ xd1airLqOj69
xEV5+ar0DqDabyzKHr++73jQLvm6YvmyMr7/GhiQYXf9ZzCVcReNFrqev1P+ Keqg+uIPt7sf
cupF//zOnO5FPPOr73qmuAcMnE0xj7uuDRzc//ztPeMpm5y7mzZu8b+DKbl7 1Xc9U5zxw2Zz
5nGXa/6h/C+uYr2eN2fRd0LgD5L7UcVSihECt1exIepFouyukr8aaIv6VR2l aHPuvyOev3GB
CRFW7wYmkz9rPbkbMZvD7tq3w8b0rzTKE4s4eOBfXv/twN2l2L3+RdQvh/qZ xFp1WHZGmTni
Tij7YIl7KcWPYuDg6p9e9fMp+YuQ1OEfNGu+OlbfsyrwVCYQsYHlSGApE0Yd QnE/71RHbPRB
Etk/5a1d/RdfkQFl51DinyYmNWDETateYkXZEHeVr3gCJV87tGm+Eq4oOxUq /AuiOIzsDkI7
ydyHav13ywjFSoK2vLWr/9b7j9+6b/uPiJY3bDV+DBIZMO6mNdSGBJa/td8i JCLJ6/sHfs+1
qgui2ZVRyMatKe0E9X+02TgnTNVm7bGOW9b9xyDxd2/uY9rVqwjVGxJr1WGf W3NOMvUrhS9C
/0z4P5H1T4kbTorzmxQZHHgKkn+0wPHdEz1TAudRV9hRnnnEveQ5cUZKnc0U 8eXwD+tMifVk
FJsTNrN7ReqdUN5PUZQNKe91KTlyyT3PyU1NbeJSgtdff/Ott928evWaNY88 sXLlF8ouQ8tL
Sj64bTp33HHXtdd+iP6viPVOq81DIpFPwdHgbvny7YvPP3vp0sUrln+B+hUN rfWu0BSxIm+9
AxhkCdpNPc8fLrtxLN9tJWnQLIjVsF3BniFfq1WGltE4FgCAZlHP84fNfTRN s2/k8rq6eLWv
4O/vuqOYIkGtdfxLieuyxmWMSfceAEBD1K9yYOPYgm6U0ThWgtq+RmkcG7eV rGJMCelfCwCg
fq1P/eo0jhWR6I1jyxCloq2wlSz1KwCgUepXu3GsYZn9UybtGhot6Ho2p7uH cg/oP4QbvUz0
zOkpN/1JqXg04ioAANSvdatfncaxIlKycaxE68Fessqs9g6lhAUA1Ll+dRrH Prl2/a7h0ZKN
Y9V55i86nY9OFVMCU7xkRnrGjNK/FgBAvpZfv0aP2LiNY8Pau5ZsJSsx281K Es1o4aFoAqpY
JNYXBAPn5xI5ANqxfuV7ru0TroQcAPK1RvVrIgtGKVXRmOEadh1zObBfrIRc 6Lzk/J4VhTWv
DhtEMYW3CwAavX6tfEG0QOi6G4eVnBJxfjd1FvoTVzEFAKKj/yuaJpLtf2WP 4BSs6sj0r8jf
l42XAwD1K1pEzVIt8CLslfQHBUD9Sv2KqsRVJUVnYH1Z4ZOJfgJzYOgmuzkA qF9bp34Nu/YT
lw6uTcRu2rjFPSUs7Zx5yphfPTEwRJ1PcMNOpKJ4BVC3fK3B+cNhVwxOMHEV XQFQScSqp3hC
UTEx4vxhpWfJHpxxZwCApq9fq5dzgVeQqEaQAwDaRNN8/qo4qJtU/1fPbWcG RZNX2uY0dRlN
JQqA+rV06ano7RplirqolVLHkAEAaND6Nez/knVtyQoyqSozsH7lZwgA0ND1 a9j/6sAr2au1
vH6uUSpa+649JoUsAKBB69eS2dY4xWKVTmMGAFC/Jl+/xo1YT+NVf/gpur2W bNfqLOVuSOdZ
ip6vUdy55gV2AoBW9dHFx9YiX2vw/ddqdHt1J7EEdXil52uFPn/thewEAC34 x+2Oh1qkfkU7
27zp9RbeurnzDuUlBlpMq11/mJoSANBq+Ur9CgBAa9avQIWq1B6HrjtAu+Hz VzRr/iV1dcOw
PnSJ5GisjngAyNfQMrTa5w8DnrZxlcdh4uHHVY4BUL/Glsg1h7lwcfXKWXde OrfDSl51uPqX
Kq81rGctNJQFyNdGrF8b5MJJUZ4GIVrLclYdllHmKbmUPyZL9mxXJzrHjYHW 1kznD9uJ5ajv
jnOeBpf4T/D9mcRv8zBv/qD9z8kz+7YnydzzRK+MPUt5RggbcNPGLc6/KMMC oH6tZ/2q6P/q
riPdd90XOAysOP3LurvO+S9/qC5JA+eXkIspcm3FsLdZsdo8eEK07HmiLOU+ Juxkp/uhuGUx
AOrXRqlf1RWtO7GcmPRPV09xh2vcCjVsfM9olL/q+rVy0U/ZdYrdstOxkrCk hAXI16r/fayk
/2sl/P1c3dWkumus86i7Wk2ky2yb168lM8n+ZwebHZDqw63qedyPej439Uz0 rNpzN1b2l7Eg
gKbT3P1fKwxXdV9Y9ZFbz6MJdplt5/q15Cvuz6TAlIpVZYbNrB6k5LlUnilh wwKgfq16/apW
x0Op5GXj1K8A0I75Wpv+r+7DsO4pJU8U8szpXla9LvdnqFGem2dKyXWhwvdn AED9WumC/u/n
+O8qbni+2OMZzd/eNeyLQGETA5+bfzTPc+CnkPoVQOvh+k1ooPpV8ZNAh1QA 1K+1WzC6ystE
Ck3qVwCoT75Sv6Iu788AoAE1wfWbfvKzR9vkxbj0L86lfgUA8pX6FQm49ba7 /RNXLF8WOLPn
BOyIB+3ptQCA+hVtF66BURo2Pcp3pQCA+pX6FWKapn0jnU4bhiEiBd2INUJg nwZP5erutQAA
1K9el733POf2j3/6q4iLRJxTMb97vdFXjSiKhiEidsgWdEPXi2O5fKxw9aSp 093B/RDJCoD6
NbGkTJC93jo+gRZmGFZvT5d9u6e7U0Q2bd3pfuNV8u2X/6pYnnAFAOrX2OHq VJZOBPqrTHui
Z4aI80d5PvZtxVDqKW3OFHPP6Lhhmf1TJu0aGi3oejanu994lfzZIEcBUL8m vKA/5DxJFjYl
4vzllbnuxFVMgW3PaDavF3XdEJHdw6PFoul8IhuX52LRlLAA6qjt+r9e9t7z 7H8VjuMUrOrI
9K+u8lW3mKGR8V1v7dk5tOfJtet3DY8Oje4dHctFX1zRicHpueTutQAAbVe/ 1qb/a43LR8/q
3AelKWRFZMXyZbG+/+pkasS7nN8EoBXytaqfvyZ+cLXy0WI9Jfecng9riVh2 AgDytYr1a8Q8
c991TwnLOWeeMuYvI7Pdg/tXx8lNAEC+Nlb9GhZLgQdgPbcDJ0acX7Euf/Ea 6+kBAFoY/XMA
AGjsfG3k/q/VQG0KAKB+BQCgdprg89c274oKAKB+pX4FACDpfG23z18BAGjx +pVL3wEAGko9
P3+NdWE8T4IGXu6Oq7oDAFowX+OGa2CUhk2XCJeQJVYBAA2inp+/mvtommbf yOX1WCM4jVM8
Na5non+esEcBAGju+lVEioYhInavz4Ju6HpxLJdXp6m7TnUfBw47euyZx7Mg R5IBAC1YvxqG
1dXZ2dPdKSI93Z1TJvfm9aJ7KM+A1j4VPk/3CFSuAIBWq19NMfeMjhuW2T9l 0q6h0YKuZ3O6
e6hqfy/WqWKFz24BAC1Tv+4Zze7es3fnW6Misnt4dGhkfDybr/0uIFkBAC1V vw6NjI/ncoWi
8eTa9buGRy3LSinz3n0s1z5QHHh015numcefo4qHAABolHyN9f3XFcuXxfr+ a2AEeiY6d93T
w+YhVgEArVm/hkUpAADNjusPAwDQ2PlK/xwAAKhfAQCgfgUAgPqV+hUAQL5S vwIA0Jb1q/tS
Elw0GABA/ZrwgjS9AQBQvya8oCdcw/q/Ch1eAQB1Vc/rN8Vd0B+ugX1eKXYB ANSv+xcM+1+d
uO7a1Lmav6L1OgAA7VW/hv3vsOMz1gX66fAKAGj3+jWKsJ50nhJW0TMHAID2 ql9jRWzJ3q7+
3OXFBgBQvwbEqv+2tY87UD1zemYAAKDJ8pXrNwEA0GT1a0SUqgAA6lfqVwAA +doM9SsAANSv
1K8AAPKV+hUAAOrX8nA9RQBA5ZK8vsTqe1bFSspbb7vbP3HF8mWK2Kv7Bf3d 6Vu9FUVpXQAA
aJd8jRuugVEaNr1BStvaRx3hCgDNqJ6fv5r7aJpm38jldXXS+A/e+tu7Onf9 fWHDmsJ65veX
quqK2TNUySmKp+1ZSv2cowwLAGiv+lVEioYhIqYpIlLQDV0vjuXyZReUzu2S BV/gUormsmU/
gbAp/qVK9iSIsiKOJAMA9auIiGFYXZ2dPd2dItLT3Tllcm9eL7qH8g/oL2FL VmxO9qifTBnh
WokqFZpUrgBA/Srs6WHlAAAgAElEQVSmmHtGxw3L7J8yadfQaEHXszndPVSU AasRhDWoBav0
tIVmtwBA/bpnNLt7z96db42KyO7h0aGR8fFs6ePDJVvABsZk3Mj0ryVKEdwI FSfJCgDtXr8O
jYyP53KFovHk2vW7hkcty0rFzHt/C1hniiJmojSODYxkT8RG7EEb62l7hnV3 4qPZLQC0ab7G
+v7riuXLYn3/NbD/a2CWRJlTcTJR9MEjDhXWuTbiOGGLqFcEAGjf+rVhv+cK AECFuP4wAACN
na/0zwEAgPoVAADqVwAAqF+pXwEA5Cv1KwAAbVm/BraLqSpPXxp+VgAA0dXz +69xF6xjy3Eu
3QAAaM36VV3UuqvMwIapiTRhDaxoacIKAGju+tUfroo2roqOqmU3YY3yHGjC CgBorPo17H9/
XeiONE+l6GnjGqv8Lcm5yL76OVC5AgAaqH4N+19RTaq730ipZqiJFJqBJS9N WAGA+rVR6tdK
hJWMERMubgkbOGxYGQ0AoH6tZ/1aRuGo6Hjqf0jdclUiNGGN8hxowgoAaKb6 NTCurH3883ge
Km+Kc1vdO9a/COEKAORrs9avAABQv1ZlwegoKAEA1K8AAJCvzVC/AgBA/QoA APlK/QoAAPWr
jasYAgCoXycSkdY0AICm0DTXb6IvDQCA+rVGC0Zp4CrhvVqphgEA7V6/Bl7p 19//tZKOsPw0
AABasH4t2f/VubSvogBVd4QFAKDt6teS/V8Di1r3XU9Fy6sLAKB+rQhpCgCg fi1nQf8hX3UD
18Bil+asAADqV286xmrg6u/b6plf0dIVAIAGyleuPwwAQJPVrwAAUL9SvwIA yFfqVwAAqF8B
AKB+pX4FAJCv1K8VKHmZi0qug8E1NACA+rUqC3r6v0bPmzomUxk9a8lRAGgB 9H+tbrhy5QoA
oH5t9Po1rDr0VIruKtDzqKc6dKYoSsywlrHqpj1RKlp/tep/thK5x63/Rhml MwCg7erXwKsH
B17jMLDhq7qOVDSCLdliVtG0R/2cFdVt4DxOakZvW0uDWwCgfi2n/6uiLpSE ripcYQmofs4J
csKen2kAoH49YMEy+r960iWwiKw8tBIfFgBA/Vq7+hVll8juY9ccCgYA6tcY Cyr6v5Y8AFty
zrC+sFGOuCrmiXKw2r+4+tnSxRYAqF+TXFDR/zVwhsDOr2FD+UcOW2/gGVWB zy1sRVEWj/ts
w4Ytme4AgCbIV67fBABAk9Wv1UNtBwCgfgUAgPq1GepXAACoXwEAoH6lfgUA kK+tVL9yuSUA
APVr6QUD+8yUl6M0lgEAVFvTXL8pWTSWAQBQv8arShVT1MWxupVs2I3oPWgB ANSvDVe/Oleu
9/8vIV1RFUWq/xK+6qHCUtn9aOCC1McAQP1a5/q1ZP/XuPWrOq09V88vmYKB DVb9d6vRgxYA
QP1a/oKV9H+tS5I5Faq4WvrwIwUAkOb6/DVio9PEP+9Ur7c2zwEAQP1auwU9 EegJPMWxX8VD
0Q8ae2ajMysAoCnrV1H2NA1rkhqYoIq2rBKnwWpgP9qwYQEA5GuT1a8AAFC/ JrYgAADUr9Sv
AADylfoVAADqVwAAqF+pXwEA5GsT1q9c4QEAQP1a0/6vAABQvwIAQP1a2wU9 BW5g/5ySLVqd
u2W3jwUAwKOV+79KtBatnhE8Iws9XAEATV2/1rL/a10GBABQv9ahfm20/q/U rACAVqhfowRe
Xfq/UsICAJq4fq2w1gzsveqZHr1FK81cAQDtUr9KzP6vYdPDZlMvCABAffKV 778CANCU9SsA
ANSv1K8AAPKV+hUAAOpXAACoX6lfAQDka2vVr1wgAgBQY0leX2L1PatiJeWt t93tn7hi+bKw
jIxyBX8AAFotX+OGa2CUhk0HAKCJ1PPzV3MfTdPsG7m8Xvba/Y1dxXdkWNH2 tWTzV3UfWQAA
GqJ+FZGiYYiIaYqIFHRD14tjuXzYzGX0fw1r/uo/pBzWFFaC2sEKB6gBAI1c vxqG1dXZ2dPd
KSI93Z1TJvfm9aJ7qArPKw5LRIlwxlPJ8pT6FQDQoPWrKeae0XHDMvunTNo1 NFrQ9WxOdw+V
4HnFnt52TsSGdbhzl6clwxsAgAaqX/eMZnfv2bvzrVER2T08OjQyPp7NR8/I uAdm3S3nEgxI
SlgAQGPVr0Mj4+O5XKFoPLl2/a7hUcuyUuXmfcR2rWER61nWM5tU0EcWIvL5 Ox5iJwAgXyuq
X6NH7Irly2J9/9UfZmHnKKnnDIxD/8SSU4jViD66+Fh2AgDytab1K99zBQC0 qoa4/nB9UYkC
ABo6X2mDAwAA9SsAANSvAABQvwIAQL5Sv6LW5s0fZCcAaGEJfD+njK+xKq5N 6MzAab0tmaOb
Nm6ZN39w08YtdXkmget1T6/XcwNAvgaEK21coeZJrHoFWJT1Eq4AGqh+Ne0O cyLpdNowDBEp
6Ia6ePX0iVNcs5AqtiUrWneMOQWuP9v8D3mmqO96pjjrDZtNMY+7Clc8GeIZ QJL5GquNaxhF
B1a0QKCGFYjqY7Oeh/zBHHY3cP6wYSM+q4iDA0Bi+WoYVm9Pl33bbua6aetO +659ReJY1yVG
61HnkOJEJ/9D6ogtI+8TLMSJWwAJ52usNq72UV/ngDDnMSEsljxFpBx4qHbT xi2eu2WEYiVB
W97aAbSPBL6fU0YbVwcvAOKWlQ1ytpR/7XzjCEDC9WuCbVzdGcz5TW1SvIad 3+R+yBNggacg
+YcKHNw/rDMlcB5Fed0IAQ+gZfM1bhvXwC6qgf1ZSdaWSdDAKe4wK69UDRs5 bIpijf6HFOsK
PCWKoAWQfP3K91wBAPDg+sMAADR2vvIlHAAAqF8BAKB+BQCA+hUAgHaWSXCs JqpfuW5Uzdy5
5gV2AtAmPrr4WPdd0zT0fM409Zr9uS3quSrmZUf3vgQRTUtpWrqjqzuVStci X6NfZ9hz7Qj/
Xef6Eg57ijsUA7vuBD4qId+mdVZE1lbV56+9kJ0AtP5v+h0Peabo+Vxnh7Xy wRdWP/7KK1uH
W2ZLB/p7l5xx+I1Xnl40ijXK12TrV08PO8U8YbOVTE1iFQCqx7KMlQ8+/+qO /O3/cNWikxa0
zHa9sGnH5+94aOXP1338kncqZqvD5692FnoqVH/BWg3aPp4a1zPRP08NnhsA tJ7Vj7+y/PIz
WylcReTYeTOXX37GDx9/OZ1R1ait/PmrE4r+Ujjs6LFnnig1NMp4XaLsz0R2 e6yPAGKtkQ8X
gAj1q/nK1uFzFx5u2h3CW8i5C9/2ytbhTCajF/Ta1a9h/0d4JWKXsE6tGfg3 LqkuPfwBTfwd
T20OCdQg/Gpz3AVo2l/5VKtvoOrXP/nvv4b97342zgHYCv820eSu2d7MWs7r zgsHoOnzVflo
Hc4fDjsHuOxqgMN0TfRez3mxAl8yzyH9sIn+I/+BS0UZX72sYn5+/IDo9Kr9 fnRn0rmioZ5S
DV0R5mmyz18D/xqG/Y3znD8VFt7uXrPuefiLWY36NfC2IhEl6ItbJXNUke6K ofzhqpifw8JA
dKZe0eK9PWkRGc8aEQevcHWRpGubr1Hq1+j9X0v+RY51Vz1P9LUg2ZSN9aYq LFMTLB8V37EG
UH6+mlUcxD+9Qc6matPrN6FZ+EtG95Fb5wN4zyVKKsl+9xp5dwUkolgs/1dp 6kGZ4ZGiiEzq
S9s37Imewf1TWipfo1+/Caiw+qze96fDPmsga4Gy5Qv5RBa3b8yc0bdj55g9 ZeaMvnwh759S
/W3qpX5F0wj88NsfnFFObgqMSf/4YR+3u0/CCpuf6AWiKxT0RBb333Bu+6dQ v4JYtdS3y/ig
PWwV6oto+m+XcdFNAH56oVjeggvmTxeRwTlT7buDc6Zu2LjLM6B92z+lpfKV cEUDFsRVTUSK
VyBSvurlF5TrX97m3D7qyFn2UO4Bw6YcdeQsZ9mw29SvQALFcTOODyAwcY86 cpZ6CvUrVQIA
tD6j3Os9vPDiNveyzt0XXtzmGTxwirNs2O0WrF/VrVsBAK2kWDDacKvrUL9S jAJAW6nk89dG
pv5aYK3r17BwLeMas1zIEAAaPIAG+nsf/d3vu8zJLbZhv1izZqC/N51WXSYx +f455XF6ybn7
q7jb4yhm4CJ2ANCAUun0X55++FfvfWpXblcrbVdBe+vrDzy39OwjMh216q9u 169h/1dSZSe1
CACgZtKZzpuXLfrGz57+9MrHXtk63DLbNdDf+/5zjrrluos1ZY2a/Oev6v6v YUlZRlsSDgsD
QCPLZDpS6cwNVyz+7FUXplKpGtREHZlM9QbXi0UnpjRNs0xrZGS0pvVryVBM /PwmTpgCgAZk
WVahoDfI1Qrr8PYi8fo1yh4v2Zm1ZB9WGrUCABpZkuc3rb5nVfQ3NWGnL/mn SPhlad3zAwDQ
mvnKxREBAKhn/QoAAPlK/QoAQDz0zwEAVNHw8M6xsVHLMltpo3p6Jk2bdkjt 8pVwBQB4wjWd
lvkL5vf19bXMRuXz+R3btw8P75w6dYZiNj5/BQBUy9jY6LTp01spXEWkq6tr 2vTpY2Oj6tka
9PNXrn0IAC3AsswWC1dbX19fySPeCRwfvvW2u/0TVyxfFhac7m+scuklAEBL qjRfb73t7sAo
DZsOAEBb5OuO0UrLR9OcqJHT6bRhGCJS0GO3qg+82KHnMoq8WgCAdqlfRaRo GCJih2xBN3S9
OJbLR4lS9xR3/5zAqyFyJBkA2sH993/Xub1kyTXNuyEJnN9kGFZXZ2dPd6eI 9HR3Tpncm9ft
Jj4TZxR7ziv2X2rYjk8bP1sA0OaWLLnG/ufO2nasX00x94yOG5bZP2XSrqHR gq5ncxPdiCL2
fxUO/wIAotW1dlHrvmvfdopd/5zuh/yLN26+7hnN5vWirhsisnt4tFg0nU9k y8BxYACAP1z9
GemJT/tG4JxRRmvEfB0aGR/P5QpF48m163cNj1qWlYp52FnRzJUmrwDQ5qWq Z2JcTuh6YrXa
W1Fpvq5YvizW9189Melu5hplOgCg5XkO4fqzNqlVNHS+KqIUAIBKIjDw4G0Z R3TDhpIGPz7s
SLx/DsUrABCxnnOJ1XEYZc7oozVKvtI/BwBQeaYG3i05PWxO9eLVQ/8cAAAa O1+pXwEAoH4F
AFRdPp9vz41q4vrV/mqs+5KKZV9ekesyAkA19PRM2rF9+9jYWIuF647t23t6 Jqlnq0P/V/tG
lHODy7uWU4ItZrmYFABUYtq0Q4aHd27csLFkN/Kme98wbdoh1c3XuP1f7Us1 EVoA0CamTp0x
deqMNtzwJK7vX27/18D2rp4C177rvh1W+6pjW70uRXkd/QkAALA/X2dOrvSj x7j9Xz3lrDsd
/RmZYC9YxboCY9W+HbhSSnAAgFod+r9GL2r9D1W7R6x6FTSpBQBErV8rHyKR /q/u8tF9SNad
bYrjukmFq3oV1KwAgNrla7L9X+XAdnWNiePDAICq52us/q/Ol1bDzlFyV4pO 0FqWpQ5d94Ce
OcM+ZPUPqJjieQKEKwCguvlaSf9X/21/boXNr1gk+sS4U4hVAEDt6lf6vwIA 4NEi1x8uWVlS
egIAmjVf6Z8DAEBL1a8AAFC/AgBAvlK/AgBA/QoAQN3Vuv+r0IUGAEC+RgnX WP1fxdfrDQAA
8jVA2f1fA8vZwDZwlLwAgLbL10r6v0q0rq40XgUANJf693/1NFV1LqPvKWRp vAoAaK/6tZL+
r1G6utag8ysAAA2Xr1Xq/8pxYABAW+drGf1fJbwJa1jc8lIBANooXyvp/xo2 RUJavQIA0Eb1
K/1fAQDw4PrDAAA0dr5y/WEAAKhfAQCgfgUAgPoVAADytdHrV8Wlneo4FAAA YWrd/9WOMc/1
DpP6emtg752ScyY1JgAAieVrGf1fG0F5MUm4AgBqV7/G7f/qXF7Y+d9dy/qr W3/5GyvqAhfx
d5ZVzO8U2WH9aN2DkMEAAGmE/q+ewHNu+9vmlDxU60luf0x6FgnszOOfX72U Zx6OIQMApF79
X8vukFNGI9i4i9BrFgDQEPVrJf1f44obyXF7x9JrFgDQKPlaXv/XCg+ihpW/ 9I4FALRIvsbq
/6qI25KtYf3zxBo2yqOKKe4PdMs4zQoAQL7GkGD/1yitYaP0hVXP4zkdKdZK w5Zy3yVxAQBC
/1cAAKqB6w8DANDY+Ur/HAAAqF8BAKB+BQCA+hUAAPK1EetXLp8EAGheLdX/ FQCAFsnXJu3/
CgBAo9evifR/Des9F9i3zj0ULyEAoDXzNZH+r7HQbBUA0OAapf9rYCGrmA4A QIvXr7Xs/woA
QLvka1L9X8Nat9LSFQDQjvmaSP9XAADI1/0S7P/q/+RVPV04fxgA0ML1K99z BQDAo4GuPxxW
jFKkAgDaOl85TxgAgIarXwEAIF+pXwEAoH4FAKCt6tfG7/NKJ1oAQFz16f9q q+TE4JJXdGq6
NjtcowoAyNcDwjVu/9dEut9EWZA2OwCAJq5f4/Z/LVm9ObcVNWisXrDuKxg7 izh3Fev1r9Sz
rGft7hns2+7B1cs6E3krAADkq0jV+r96ki+RIjWsc3uUeQJvh01xR7WnP0HJ ZQEALaAO/V+1
feLGibNghbHtHiSwv2wiK6rGkwcAtFH9Grf/a1U/c01kkGrUkdSmAEC+xlNe /9daCqyV3Udl
oxwrruqTAQCQr16J9H/1nKwUOKWMJPPUju4xFe0EAucJnF5ytDLWS/oCAPma ZP9XdWvYwIcU
vWBjdeNRLxvlGYbNGbZs4DMnWQGAfC0dpZWLWB0CANBoGvr6w9Y+jbnvSH0A QC3ylf45AAA0
Qf0KAAD5Sv0KAAD1KwAA1K+2WN+I5WKEAIB6acr+r03X2xUAQL7GDtf69n/l coMAgNasXyvv
/+pv3xbWHjXwCkqKvq2xur1SDQMAGihfq9T/NW6FGrHHqnopfiAAAIlopv6v USKWHqsAgBap
X8vr/1qNFOToLgCgdfK1vP6viq6rcWtWRW9XAACaNV/L7v/qRGyUVq+eyIzY 29UzpRpdZgEA
SD5fK+z/Gqs9qmJKyUGijEbQAgAaqH6tXv/X2qDLLAAgcU1z/eHqhV+Dd5kF ALR7vtI/BwCA
JqtfAQCgfgUAgHylfgUAgPoVAIAGV8/+r8JXYgAA5GtYuMbq/+rvEwcAAPka IJH+r55y1t+3
1blr3yaeAQAtnq8V9n+N2LfVU/hSAQMAGlkd+r8GRqynbyudXAEA7V6/xu3/ 6uepRD0VLS8S
AKAd87W8/q9hhSxHfQEA5KtIBf1fneK1ZJdWAADaK1/j9n9152jYXYnQJpYy FwDQ4vVrs/d/
BQAgcVx/GACAxs5Xrj8MAAD1KwAA1K8AAFC/AgBAvjZW/Rr25Ve+FAsAoH4t nZ3qvIyeptHH
BACgfetXW3lXkOC6EwCAdqxfwwpQf7cc526U7jrO3bClNBdedQBAtWUSHCtK /WpfW9j531N0
+q/vH9hLR9EvNnCpsJ6yAAA0Tf0a9n/c+jXB+QEAaPr6Nex/RVjG6vZKd1gA QDvWryV5Dg4D
AED9Wrp+jUvd7dX/qGKK+wNd/4e1AAC0cv0qQe1dHeLqsh74qGJK4FL+NZK4 AIBmyleuPwwA
QD3rVwAAyFfqVwAAqF8BAKB+BQCAfKV+BQCg+evXBK/QxMWeAAA1k8D1JW69 7W7/xBXLl4WF
XOB19mt/RSf/2j0XqXDucrUpAECt8/XW2+4OjNKw6QAAkK+RmKZp30in04Zh iEhBNyopK+0b
irZ0YTO7jwCX7AEQ1inPPZFDygCAuuVr0TBExA7Zgm7oenEslw+b2R9g7oSL 27e15MzqZjsc
+wUAVEkC5zcZhtXV2dnT3SkiPd2dUyb35vWi/VDE/q+ekjR6b9dqNIIldAEA DVG/mmLuGR03
LLN/yqRdQ6MFXc/mdPuhKP1f/fEWPYkrbATrr3EBAGiUfN0zms3rRV03RGT3 8GixaDqfyJYs
EBXxVu3YUzwH4hYAUP98HRoZH8/lCkXjybXrdw2PWpaVKvewc2Df1rDzm6Kc f5TUOUp0kwUA
1DRfVyxfFuv7r/6UCjtlKUqeKWYO7Pyqntk/Z9h0AACqXr/yPVcAADxS7AIA AMhXAADIVwAA
yFcAAEC+AgBAvgIAQL4CAADyFQAA8hUAAPIVAACQrwAAkK8AAJCvAACAfAUA gHwFAIB8BQAA
5CsAAOQrAADkKwAAIF8BACBfAQAgXwEAaHMZdgGq7fN3PMROAEC+Akn66OJj 2QkA2hDHhwEA
IF8BACBfAQAgXwEAAPkKAECj4vxhAEAVDQ/vHBsbtSyzlTaqp2fStGmHkK9A o3jyD2vZCWhh
Z5280B+u6bTMXzC/r6+vZTYzn8/v2L59eHjn1KkzyFegUVy99FJ2AlrSf6z+ iX/i2Nhoi4Wr
iHR1dU2bPn3jho3qfOXzVwBAtViW2WLhauvr6yt5xJt8BQAgeeQrAADkK1rX vPmD8+YPRp+5
lk+MVwdofPff/13yFW2XmiWzc978wU0bt2zauKVhk4+UBeoYlpVkZ71yl/OH UXVOatoh2uxb
AQDkKxouopyIdcpBd/o6dz2PuoPZE9Lupfy1pmc0/+rC1ugvWO31qocKfMIA qlHULllyTVh5
6kzxzGPf9T9KvqJ1BOalO5Cil7z+R9WDOzHpCWnFDJ6gjT4ngMS5I3PJkmvs /xWxat/2T/Hc
Jl/RUhFb9qMVDl6bSp2XGGiEMjfuo0nm665d23kx0FAJVHlFSLwB7RyuikPH Uv3Dwo7U00+/
9PTTL/GSoDY1a+Dh3HpVya23XgBJlbkJ1K8XX3yuiNx336/Y16h22Djh6j5R yJ+4ntOIAqd4
pns+u1UMHjiPf5GwNaqHApAU+7NVf9Hp+ZDVM5t6ypIl17gfrfr5TblcgRcS 1aNIuOh3FTME
jq8YLWzBiGtUD1Uy1wHEitgoE+NOqdnx4czYWI5XEUi2QAcAzh8GqlWjA6hB RduwUoZhGIbB
ywYAqIZ8Pt+eG0X9CtRUYA9qoFX19EzasX37tOnTW6kLbD6f37F9e0/PpBL5 WigU+QkAauOs
kxeyE9BWpk07ZHh458YNG0t2I2+69w3Tph1SIl9zeZ2fAABAlUydOmPq1Blt uOH0pwMAIHmZ
PPUrAACJ5yufvwIAkHy+mqbFXgAAIOF81TSNvQAAQML5Wih4rz98xx13sV9Q Ej8nAKDK1xde
+JNn0rXXfoj9AgBAXE89dfP+fL32o1eIyFO/e86ZtHnT6+wjAAAqwfdfAQBI XoZP0QAASD5f
z1+8WESeeupV9gUAAEnh+DAAAOQrAADNIPPImjXsBQAAEs5XPn8FACBxHB8G AIB8BQCAfAUA
oD1lbvz3p9cOzzibPQEASTNNQ8/nTFO3atUItKjnqhgYHd32DU0TTUtpWrqj qzuVSrf5Jocu
u3Zo2nHjv6KOBYDE6flcZ4e18sEXVj/+yitbh1tmuwb6e5eccfiNV55eNIqe sGnDTQ7NVzGL
6XRaLJ3fBABIlmUZKx98/r4H/3zPqptabNOuuu6WaVPWffySdwZu8qs78rf/ w1WLTlrQMtv7
wqYdn7/joZU/D9jk8Hy1iulMSohXAKiC1Y+/8o0vf+qt3dkW265bv3zDX//T 1/7q0jMt0/Jv
8qr/eWUrhauIHDtv5vLLz7juK/cEbnJwvmqG3tGVqSRf39y9ef3m7LoXN2za skNE5g3OPPGY
BUfN7RmYNpdfLQDtXb+ar2wdNi3r3cf3mqbZMtuVSqV++Xz2la3DmUxGL+j+ TT534eGttL22
cxe+LXCTQ/PVMvWOjoyU+9bq+Q1v/Oevnjlt4dHL3vfu+YMzLUs2vb7j2Rc3 3H3/Mxefmznu
8Dn8ggFoW5qWEhHDsFpv00zDEhFN0wI3uaVfUy3inBnNKHZ0dhhlrea5V9/Y sHnbZ65//+Cc
gede2vDAQ78VkQvOfsc1l59/9jvf/sBDv7FEjidiAbS3lsxXwzRFRGu/VzP6 JmfELHR0pMvI
1zd3b37w0Wc+ff37B+cMfG3VDx9+4g8zp/eLyHd+9PAN113x7rNPvuzCM/+/ lT8YmFrkQDGA
ts5X0xIRvYVCtkukWOozyAbc3u5MOlc0KtnqWDJi6plMuow1vbgp+86FRw/O GXh187aHn/jD
249Z8JUbPy6WXPupf1n1nZ9ecPbJg3MGTl149IubsgPT+P0C0L6KhikiZnVO I+3tmfgDPp41
nCmBt5OUFl0v8fFqhdvrbJd70ypX0bOKGZUZzShkMpkyVvTsixs+uPTdpiXz 58761tf+h4iY
IuPjOUtkUm+P/cblhKMXfOdHv1x08tH8ggFo43y1RKQap/tM6kvvHdsfpc5t e132o1U6zcgo
Vb9Wsl73diW762p50lVmzsyDf/b8m2f1xV5y8+s7Bg+daYlYlgxM7xeRVzdv u+mWVSLyiY+/
375yx2GDMzdv2cFvF4C2zteiKSLFYsIHTKcelBkeKTrDDo8UJ/Wlh0eK9ro8 j1bpTYNyq61E
tss93dlS911nimIeZ4bq7ZCAfF31N+8UkVu+fHvcJe0EtZ+pJTI+nrPD9Us3 XrfgsFmm7H8U
ANqZblgiki/kEx/ZP6Y9ZepBmR07x6qxxn167TcNsZ5bJdslIjt2jjkhat/2 TJk5o8+Zki/k
3XedRSrbJ73x8lVErvs//zUv/nrmDs7c9NqO446eLyKiyaubt46N5666/IJ5 drhaIppsem3H
YYMz+e0C0Nb1q2GKSKGQ/Aew/jGdKdVYnf9NQ6znVsl2icjgnKmeGdyz+aeI yMwZfeoZqlu/
isiqv3nnLV9eF3fJ449e8NxLGyby1ZIZ0/uvvPyCY4+eb1kT5y9rljz30obj j17AbxeA9s5X
ERG9UEw+5Hxj2lM2bNw1OGfqho27qv2mIdZzq2S7Fsyf7mzOgvnT7Rncs/mn 2PtBPUPV87U8
x8/v+fb9z5xx6tsH5wyIyKO//uP373v4A0suOO7oBZollshrb7z5+2de+siS k/jtAtDW+Vo0
RUTXE66c1iT0zWgAAAKZSURBVL+8bcH86etf3mbfPerIWetf3mavRdd1z6OJ M0p9kFn29oY9
c/eAzmYqprjv2junGq9CVfJ1YNrcc07Z/bNf/uYv3n3m4OyBSy4863v3PXzu 2e8QS0yR17e+
+bNf/mbRKYN8+RVAm6ve9SXWv7ztqCNnObcDH61SxJasX5PaLvuuZ0qUvaHe OQ2dryJy2onv
kHV//PrtPzj5pKOPP2rBt2/9RxF5/qWNz6/f8IdnXlp0yuBpJ76DXy0A7Z6v piUihlGVwV94
cdu+FN8/JfB2wvla6vs5Fa7X2S5nKM+UwM307A3/3SrtjeTz1Y7Y+YdOe25j 9vv3//K1LTtE
5LDBmccfveAjS06icgUA2XcpwWLBaKWNKlm9ttj2lpOvj6xZU+EQA9Pmnj9N zj+Fi0gAQGgU
1fKTv1pslBl8fX9Hi22vI8b1/c9fvFhEnnrqVX4HACDxv8YD/b0i8i8/ekOk o2W26uHNb4jI
QH9vOp0O3ORHf/f7LnNyi72Wv1izJmSTQ/KVH38AqJJUOv2Xpx9+x79/+8iT 3nVox9tbadPW
/P4bS88+ItORCdzkr9771F+996Tp3dNbZnsL2ltff+C5wE0OzddZc2bzOwAA 1ZDOdN68bNE3
Dn763l898ZOtP2mZ7Rro733/OUfdct3FmqSCN/lnT3965WOvbB1uh02mfgWA WstkOlLpzA1X
LP7sVRemUimt+u1SOzJV/KuuF+2LM2iaJpqmWaY1MjLKJpOvAFBrlmUVCnot r8nHJjeOFLsA
AADyFQAA8hUAAPIVAACQrwAAkK8AAJCvAACAfAUAgHwFAIB8BQAAsQRcH/GW L9/OfgEAIMl8
XXz+2ewUAACSzNelSxezRwAASDJfVyz/ArsDAIBE/P9KOnTLd6w8+gAAAABJ RU5ErkJggg==
--------------020007040104050105050408--
Re: Writing a DiffModel as .uml [message #608867 is a reply to message #91569] Tue, 24 July 2007 09:44 Go to previous message
Laurent Goubet is currently offline Laurent GoubetFriend
Messages: 1902
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------020703060309040000030602
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jan,

It could then come from your eclipse configuration. Did you try
launching eclipse with the -clean flag to allow it to properly detect
the new plugins?

Laurent Goubet
Obeo

Jan Reimann a
Re: Writing a DiffModel as .uml [message #608872 is a reply to message #91598] Tue, 24 July 2007 11:41 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
I tried it but it's still the same :(
Re: Writing a DiffModel as .uml [message #608882 is a reply to message #90844] Tue, 24 July 2007 14:38 Go to previous message
Jan Reimann is currently offline Jan ReimannFriend
Messages: 90
Registered: July 2009
Member
I just want to post my solution. I wrote a JUnit-Test and now it works
fine. After the test ran you can use the Compare GUI to let you show the
differences. This mixture of JUnit-Test and Compare-GUI works good :)


public void testModelsAreEqual(){
EObject genObject;
EObject refObject;
try {
genObject = ModelUtils.load(generatedModelURI);
refObject = ModelUtils.load(referenceModelURI);

MatchModel match = new MatchService().doMatch(genObject, refObject,
new NullProgressMonitor());

DiffModel diff = new DiffMaker().doDiff(match);

ModelUtils.save(diff, "DiffModel.emfdiff");

EList<EObject> contents = diff.eContents();
for (EObject object : contents) {
if(object instanceof DiffGroup){
DiffGroup group = (DiffGroup)object;
assertEquals("Generated Model and Reference Model are not equal", 0,
group.getSubDiffElements().size());
}
}
} catch (IOException e) {
System.out.println("Loading models to compare failed");
} catch (InterruptedException e) {
System.out.println("Error while trying to match the models");
}
}


greets
J.R.
Previous Topic:[Teneo] StoreValidationException
Next Topic:[Teneo] StoreValidationException
Goto Forum:
  


Current Time: Thu Apr 18 12:29:36 GMT 2024

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

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

Back to the top