--Apple-Mail-EA5039A5-C9B4-4BAD-951C-B2D3B44C2B5B
Content-Type: text/plain;
charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Guys,
Why is
https://gerrit.ovirt.org/#/c/40804/ not enough?=20
Where do you get these errors?
On Jun 1, 2015, at 4:33 PM, Tomas Jelinek <tjelinek(a)redhat.com>
wrote:
=20
=20
=20
----- Original Message -----
> From: "Alexander Wels" <awels(a)redhat.com>
> To: devel(a)ovirt.org
> Cc: "Tomas Jelinek" <tjelinek(a)redhat.com>, "Liran Zelkha"
<lzelkha@redhat=
.com>
> Sent: Monday, June 1, 2015 3:16:34 PM
> Subject: Re: [ovirt-devel] hibernate's internal PersistentBag sent to FE
>=20
>> On Monday, June 01, 2015 09:08:50 AM Tomas Jelinek wrote:
>> Hey all,
>>=20
>> since the org.ovirt.engine.core.common.job.Job/Step... has been moved to=
>> use
>> the JPA we have a problem on frontend. The problem is that the @OneToMan=
y
>> annotations results in a List which is of type PersistentBag.
When we se=
nd
>> this to Frontend it fails during deserialization. It actually
fails quit=
e
>> bad because the FE already has an ui-override of it which is
not correct=
>> resulting in a ton of NPEs in development mode.
>>=20
>> So, there are 2 nasty fixes I have made where none of them should be mer=
ged
>> but demonstrate the possibilities: 1: extend the FE to be
able to work w=
ith
>> the PersistentBag (
https://gerrit.ovirt.org/#/c/41682/) not
really good
>> solution since the PersistenBag is an internal Hibernate class which is
>> really not meant to be passed around
>>=20
>> 2: fix on the backend to not send the PersistentBag but an ArrayList. Th=
is
>> is only a PoC fixed on a command we face the problem
>> (
https://gerrit.ovirt.org/#/c/41797/) Obviously this is not going to wor=
k
>> for other commands accessing the same Job nor for other
entities.
>>=20
>> So, the first option is generic but very very bad. The second option sho=
uld
>> be used but not sure how to do this in a cheep way (e.g.
without using
>> reflection to deep traverse everything sent back to frontend checking if=
it
>> does not have a PersistentBag in it.
>=20
> Tomas,
>=20
> Thanks, I was investigating the same issue, I noticed it last Friday just=
> before leaving, so I was investigating the problem to see what
was going o=
n.
> You are right we should not be sending PersistentBag to the
frontend at a=
ll.
> So how about we do a combination of [1] and [2], but instead of
delegatin=
g in
> [1] we actually simple throw an exception stating don't sent
PersistentBa=
g to
> the front end. that way anyone inadvertently using it will be
notified
> immediately (since their code won't work).
=20
Throwing the exception would help us in debugging but the main question is=
how
will we make it work?
Since we are planning to move more and more to JPA so we will face
this is=
sue more and more often.=20
Solving it one by one on backend in each command is not going to
work.
=20
>=20
> Alexander
>=20
>> Any better ideas?
>> Thanx,
>> Tomas
>> _______________________________________________
>> Devel mailing list
>> Devel(a)ovirt.org
>>
http://lists.ovirt.org/mailman/listinfo/devel
>=20
>=20
--Apple-Mail-EA5039A5-C9B4-4BAD-951C-B2D3B44C2B5B
Content-Type: text/html;
charset=utf-8
Content-Transfer-Encoding: base64
PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPjwvaGVhZD48Ym9keSBkaXI9ImF1dG8iPjxkaXY+R3V5cyw8
L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PldoeSBpcyZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vZ2Vy
cml0Lm92aXJ0Lm9yZy8jL2MvNDA4MDQvIj5odHRwczovL2dlcnJpdC5vdmlydC5vcmcvIy9jLzQw
ODA0LzwvYT4mbmJzcDtub3QgZW5vdWdoPyZuYnNwOzwvZGl2PjxkaXY+V2hlcmUgZG8geW91IGdl
dCB0aGVzZSBlcnJvcnM/PGJyPjxicj48YnI+PC9kaXY+PGRpdj48YnI+T24gSnVuIDEsIDIwMTUs
IGF0IDQ6MzMgUE0sIFRvbWFzIEplbGluZWsgJmx0OzxhIGhyZWY9Im1haWx0bzp0amVsaW5la0By
ZWRoYXQuY29tIj50amVsaW5la0ByZWRoYXQuY29tPC9hPiZndDsgd3JvdGU6PGJyPjxicj48L2Rp
dj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48ZGl2PjxzcGFuPjwvc3Bhbj48YnI+PHNwYW4+PC9z
cGFuPjxicj48c3Bhbj4tLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tPC9zcGFuPjxicj48Ymxv
Y2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5Gcm9tOiAiQWxleGFuZGVyIFdlbHMiICZsdDs8YSBo
cmVmPSJtYWlsdG86YXdlbHNAcmVkaGF0LmNvbSI+YXdlbHNAcmVkaGF0LmNvbTwvYT4mZ3Q7PC9z
cGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+VG86IDxh
IGhyZWY9Im1haWx0bzpkZXZlbEBvdmlydC5vcmciPmRldmVsQG92aXJ0Lm9yZzwvYT48L3NwYW4+
PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5DYzogIlRvbWFz
IEplbGluZWsiICZsdDs8YSBocmVmPSJtYWlsdG86dGplbGluZWtAcmVkaGF0LmNvbSI+dGplbGlu
ZWtAcmVkaGF0LmNvbTwvYT4mZ3Q7LCAiTGlyYW4gWmVsa2hhIiAmbHQ7PGEgaHJlZj0ibWFpbHRv
Omx6ZWxraGFAcmVkaGF0LmNvbSI+bHplbGtoYUByZWRoYXQuY29tPC9hPiZndDs8L3NwYW4+PGJy
PjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5TZW50OiBNb25kYXks
IEp1bmUgMSwgMjAxNSAzOjE2OjM0IFBNPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVv
dGUgdHlwZT0iY2l0ZSI+PHNwYW4+U3ViamVjdDogUmU6IFtvdmlydC1kZXZlbF0gaGliZXJuYXRl
J3MgaW50ZXJuYWwgUGVyc2lzdGVudEJhZyBzZW50IHRvIEZFPC9zcGFuPjxicj48L2Jsb2NrcXVv
dGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+
PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+T24gTW9uZGF5LCBKdW5lIDAxLCAyMDE1IDA5
OjA4OjUwIEFNIFRvbWFzIEplbGluZWsgd3JvdGU6PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJs
b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+SGV5IGFs
bCw8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0i
Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVv
dGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9
ImNpdGUiPjxzcGFuPnNpbmNlIHRoZSBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmpvYi5K
b2IvU3RlcC4uLiBoYXMgYmVlbiBtb3ZlZCB0bzwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxv
Y2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48
c3Bhbj51c2U8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUg
dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+dGhlIEpQQSB3ZSBoYXZl
IGEgcHJvYmxlbSBvbiBmcm9udGVuZC4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgQE9uZVRvTWFu
eTwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj
aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5hbm5vdGF0aW9ucyByZXN1bHRzIGlu
IGEgTGlzdCB3aGljaCBpcyBvZiB0eXBlIFBlcnNpc3RlbnRCYWcuIFdoZW4gd2Ugc2VuZDwvc3Bh
bj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48
YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj50aGlzIHRvIEZyb250ZW5kIGl0IGZhaWxzIGR1
cmluZyBkZXNlcmlhbGl6YXRpb24uIEl0IGFjdHVhbGx5IGZhaWxzIHF1aXRlPC9zcGFuPjxicj48
L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1
b3RlIHR5cGU9ImNpdGUiPjxzcGFuPmJhZCBiZWNhdXNlIHRoZSBGRSBhbHJlYWR5IGhhcyBhbiB1
aS1vdmVycmlkZSBvZiBpdCB3aGljaCBpcyBub3QgY29ycmVjdDwvc3Bhbj48YnI+PC9ibG9ja3F1
b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBl
PSJjaXRlIj48c3Bhbj5yZXN1bHRpbmcgaW4gYSB0b24gb2YgTlBFcyBpbiBkZXZlbG9wbWVudCBt
b2RlLjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBl
PSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+PGJyPjwvYmxvY2tx
dW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlw
ZT0iY2l0ZSI+PHNwYW4+U28sIHRoZXJlIGFyZSAyIG5hc3R5IGZpeGVzIEkgaGF2ZSBtYWRlIHdo
ZXJlIG5vbmUgb2YgdGhlbSBzaG91bGQgYmUgbWVyZ2VkPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+
PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNp
dGUiPjxzcGFuPmJ1dCBkZW1vbnN0cmF0ZSB0aGUgcG9zc2liaWxpdGllczogMTogZXh0ZW5kIHRo
ZSBGRSB0byBiZSBhYmxlIHRvIHdvcmsgd2l0aDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxv
Y2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48
c3Bhbj50aGUgUGVyc2lzdGVudEJhZyAoPGEgaHJlZj0iaHR0cHM6Ly9nZXJyaXQub3ZpcnQub3Jn
LyMvYy80MTY4Mi8iPmh0dHBzOi8vZ2Vycml0Lm92aXJ0Lm9yZy8jL2MvNDE2ODIvPC9hPikgbm90
IHJlYWxseSBnb29kPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1
b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPnNvbHV0aW9uIHNp
bmNlIHRoZSBQZXJzaXN0ZW5CYWcgaXMgYW4gaW50ZXJuYWwgSGliZXJuYXRlIGNsYXNzIHdoaWNo
IGlzPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9
ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPnJlYWxseSBub3QgbWVhbnQgdG8g
YmUgcGFzc2VkIGFyb3VuZDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48Ymxv
Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3NwYW4+
PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJs
b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+MjogZml4IG9uIHRoZSBiYWNrZW5kIHRvIG5vdCBz
ZW5kIHRoZSBQZXJzaXN0ZW50QmFnIGJ1dCBhbiBBcnJheUxpc3QuIFRoaXM8L3NwYW4+PGJyPjwv
YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv
dGUgdHlwZT0iY2l0ZSI+PHNwYW4+aXMgb25seSBhIFBvQyBmaXhlZCBvbiBhIGNvbW1hbmQgd2Ug
ZmFjZSB0aGUgcHJvYmxlbTwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48Ymxv
Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj4oPGEgaHJl
Zj0iaHR0cHM6Ly9nZXJyaXQub3ZpcnQub3JnLyMvYy80MTc5Ny8iPmh0dHBzOi8vZ2Vycml0Lm92
aXJ0Lm9yZy8jL2MvNDE3OTcvPC9hPikgT2J2aW91c2x5IHRoaXMgaXMgbm90IGdvaW5nIHRvIHdv
cms8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0i
Y2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+Zm9yIG90aGVyIGNvbW1hbmRzIGFj
Y2Vzc2luZyB0aGUgc2FtZSBKb2Igbm9yIGZvciBvdGhlciBlbnRpdGllcy48L3NwYW4+PGJyPjwv
YmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVv
dGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl
PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlNv
LCB0aGUgZmlyc3Qgb3B0aW9uIGlzIGdlbmVyaWMgYnV0IHZlcnkgdmVyeSBiYWQuIFRoZSBzZWNv
bmQgb3B0aW9uIHNob3VsZDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48Ymxv
Y2txdW90ZSB0eXBlPSJjaXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5iZSB1c2Vk
IGJ1dCBub3Qgc3VyZSBob3cgdG8gZG8gdGhpcyBpbiBhIGNoZWVwIHdheSAoZS5nLiB3aXRob3V0
IHVzaW5nPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5
cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPnJlZmxlY3Rpb24gdG8gZGVl
cCB0cmF2ZXJzZSBldmVyeXRoaW5nIHNlbnQgYmFjayB0byBmcm9udGVuZCBjaGVja2luZyBpZiBp
dDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj
aXRlIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj5kb2VzIG5vdCBoYXZlIGEgUGVyc2lz
dGVudEJhZyBpbiBpdC48L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2Nr
cXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxi
cj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFu
Pjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlRv
bWFzLDwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFu
Pjwvc3Bhbj48YnI+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlRo
YW5rcywgSSB3YXMgaW52ZXN0aWdhdGluZyB0aGUgc2FtZSBpc3N1ZSwgSSBub3RpY2VkIGl0IGxh
c3QgRnJpZGF5IGp1c3Q8L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJj
aXRlIj48c3Bhbj5iZWZvcmUgbGVhdmluZywgc28gSSB3YXMgaW52ZXN0aWdhdGluZyB0aGUgcHJv
YmxlbSB0byBzZWUgd2hhdCB3YXMgZ29pbmcgb24uPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJs
b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+WW91IGFyZSByaWdodCB3ZSBzaG91bGQgbm90IGJl
IHNlbmRpbmcgUGVyc2lzdGVudEJhZyB0byB0aGUgZnJvbnRlbmQgYXQgYWxsLjwvc3Bhbj48YnI+
PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlNvIGhvdyBhYm91dCB3
ZSBkbyBhIGNvbWJpbmF0aW9uIG9mIFsxXSBhbmQgWzJdLCBidXQgaW5zdGVhZCBvZiBkZWxlZ2F0
aW5nIGluPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNw
YW4+WzFdIHdlIGFjdHVhbGx5IHNpbXBsZSB0aHJvdyBhbiBleGNlcHRpb24gc3RhdGluZyBkb24n
dCBzZW50IFBlcnNpc3RlbnRCYWcgdG88L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90
ZSB0eXBlPSJjaXRlIj48c3Bhbj50aGUgZnJvbnQgZW5kLiB0aGF0IHdheSBhbnlvbmUgaW5hZHZl
cnRlbnRseSB1c2luZyBpdCB3aWxsIGJlIG5vdGlmaWVkPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+
PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+aW1tZWRpYXRlbHkgKHNpbmNlIHRoZWlyIGNv
ZGUgd29uJ3Qgd29yaykuPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PHNwYW4+PC9zcGFuPjxicj48
c3Bhbj5UaHJvd2luZyB0aGUgZXhjZXB0aW9uIHdvdWxkIGhlbHAgdXMgaW4gZGVidWdnaW5nIGJ1
dCB0aGUgbWFpbiBxdWVzdGlvbiBpcyBob3cgd2lsbCB3ZSBtYWtlIGl0IHdvcms/PC9zcGFuPjxi
cj48c3Bhbj5TaW5jZSB3ZSBhcmUgcGxhbm5pbmcgdG8gbW92ZSBtb3JlIGFuZCBtb3JlIHRvIEpQ
QSBzbyB3ZSB3aWxsIGZhY2UgdGhpcyBpc3N1ZSBtb3JlIGFuZCBtb3JlIG9mdGVuLiA8L3NwYW4+
PGJyPjxzcGFuPlNvbHZpbmcgaXQgb25lIGJ5IG9uZSBvbiBiYWNrZW5kIGluIGVhY2ggY29tbWFu
ZCBpcyBub3QgZ29pbmcgdG8gd29yay48L3NwYW4+PGJyPjxzcGFuPjwvc3Bhbj48YnI+PGJsb2Nr
cXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVv
dGUgdHlwZT0iY2l0ZSI+PHNwYW4+QWxleGFuZGVyPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJs
b2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PGJsb2Nr
cXVvdGUgdHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+QW55IGJldHRl
ciBpZGVhcz88L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+PGJsb2NrcXVvdGUg
dHlwZT0iY2l0ZSI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+PHNwYW4+VGhhbngsPC9zcGFuPjxi
cj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9j
a3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPlRvbWFzPC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9i
bG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi
PjxzcGFuPl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPC9z
cGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi
PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPkRldmVsIG1haWxpbmcgbGlzdDwvc3Bhbj48
YnI+PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv
Y2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48YSBocmVmPSJtYWlsdG86RGV2ZWxAb3ZpcnQub3Jn
Ij5EZXZlbEBvdmlydC5vcmc8L2E+PC9zcGFuPjxicj48L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3Rl
PjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxzcGFuPjxh
IGhyZWY9Imh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9kZXZlbCI+aHR0
cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsPC9hPjwvc3Bhbj48YnI+
PC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48
L3NwYW4+PGJyPjwvYmxvY2txdW90ZT48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48c3Bhbj48L3Nw
YW4+PGJyPjwvYmxvY2txdW90ZT48L2Rpdj48L2Jsb2NrcXVvdGU+PC9ib2R5PjwvaHRtbD4=
--Apple-Mail-EA5039A5-C9B4-4BAD-951C-B2D3B44C2B5B--