Skip to Content.
Sympa Menu

xom-interest - Re: [XOM-interest] XPath support for XOM

xom-interest AT lists.ibiblio.org

Subject: XOM API for Processing XML with Java

List archive

Chronological Thread  
  • From: Elliotte Rusty Harold <elharo AT metalab.unc.edu>
  • To: Laurent Bihanic <laurent.bihanic AT atosorigin.com>
  • Cc: XOM-interest <XOM-interest AT lists.ibiblio.org>
  • Subject: Re: [XOM-interest] XPath support for XOM
  • Date: Sun, 20 Apr 2003 10:28:57 -0400

At 1:49 PM +0200 4/17/03, Laurent Bihanic wrote:


1. Your query method is likely to take a String as argument, which means the XPath expression will be compiled every time the method is called. This is a serious performance problem as Jaxen often takes more time compiling an expression than resolving it.

If that proves to be an issue in actual benchmarks, then it shouldn't be too hard to cache the last ten or so compiled XPaths internally and privately in a hashtable and look them up before recompiling.

I also want to leave open the possibility that the XPath engine may not always be Jaxen, so I'd like to avoid tying the public API to Jaxen.
--

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo AT metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
| Processing XML with Java (Addison-Wesley, 2002) |
| http://www.cafeconleche.org/books/xmljava |
| http://www.amazon.com/exec/obidos/ISBN%3D0201771861/cafeaulaitA |
+----------------------------------+---------------------------------+
| Read Cafe au Lait for Java News: http://www.cafeaulait.org/ |
| Read Cafe con Leche for XML News: http://www.cafeconleche.org/ |
+----------------------------------+---------------------------------+
From elharo AT metalab.unc.edu Sun Apr 20 11:05:21 2003
Return-Path: <elharo AT metalab.unc.edu>
Delivered-To: xom-interest AT lists.ibiblio.org
Received: from mail.speakeasy.net (mail14.speakeasy.net [216.254.0.214])
by happyhouse.metalab.unc.edu (Postfix) with ESMTP id 9599020025
for <xom-interest AT lists.ibiblio.org>;
Sun, 20 Apr 2003 11:05:20 -0400 (EDT)
Received: (qmail 30346 invoked from network); 20 Apr 2003 15:05:23 -0000
Received: from unknown (HELO [192.168.254.4]) ([216.254.85.72])
(envelope-sender <elharo AT metalab.unc.edu>)
by mail14.speakeasy.net (qmail-ldap-1.03) with SMTP
for <xom-interest AT lists.ibiblio.org>; 20 Apr 2003 15:05:23 -0000
Mime-Version: 1.0
X-Sender: elharo AT mail.ibiblio.org
Message-Id: <p04330102bac8652117af@[192.168.254.4]>
Date: Sun, 20 Apr 2003 11:02:51 -0400
To: xom-interest AT lists.ibiblio.org
From: Elliotte Rusty Harold <elharo AT metalab.unc.edu>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
Subject: [XOM-interest] Default line separator
X-BeenThere: xom-interest AT lists.ibiblio.org
X-Mailman-Version: 2.1.1
Precedence: list
List-Id: <xom-interest.lists.ibiblio.org>
List-Unsubscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=unsubscribe>
List-Archive: <https://lists.ibiblio.org/sympa/arc/xom-interest>
List-Post: <mailto:xom-interest AT lists.ibiblio.org>
List-Help: <mailto:sympa AT lists.ibiblio.org?subject=HELP>
List-Subscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=subscribe>
X-List-Received-Date: Sun, 20 Apr 2003 15:05:21 -0000

I've been using \r\n as the default line separator for XOM if nothing different is specified. However, yesterday this tripped me up in a surprising way.

I read in a document, made some modifications to it, and wrote it back out again. Having done this, when I loaded it into BBEdit most of the document was stuffed on a single line. Investiagtion revealed that the line ends were indeed \n as I expected, which BBEdit can normally handle. What was going on?

Here's what I eventually discovered:

1. The parser changes almost all line ends to \n on input. Thus the parsed document object had nothing but \n for line ends.

2. I did not add any line breaks or adjust the formatting in any way while modifying the document (I was just changing the namespaces of some elements)

3. There was a single \r\n after the XML declaration which the serializer output by default.

4. BBEdit only accept the first line separator it finds in a document as legal. In this case that was \r\n. The subsequent \n characters were not treated as line breaks.

First a question: is this just a BBEdit quirk? Will other text editors be happy with line breaks that are different in different parts of the document? If so I probably don't have to worry about this too much.

On the other hand, if this is a common problem. I might want to change *all* the line breaks to the current line separator when serializing. Currently this is only done if the serializer is either indenting or wrapping or both. Thoughts?
--

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo AT metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
| Processing XML with Java (Addison-Wesley, 2002) |
| http://www.cafeconleche.org/books/xmljava |
| http://www.amazon.com/exec/obidos/ISBN%3D0201771861/cafeaulaitA |
+----------------------------------+---------------------------------+
| Read Cafe au Lait for Java News: http://www.cafeaulait.org/ |
| Read Cafe con Leche for XML News: http://www.cafeconleche.org/ |
+----------------------------------+---------------------------------+
From kyongse AT naver.com Sun Apr 20 11:33:17 2003
Return-Path: <kyongse AT naver.com>
Delivered-To: xom-interest AT lists.ibiblio.org
Received: from localhost (unknown [218.149.139.45])
by happyhouse.metalab.unc.edu (Postfix) with SMTP id 1FEE7200E0
for <xom-interest AT lists.ibiblio.org>;
Sun, 20 Apr 2003 11:33:14 -0400 (EDT)
Received: from j (1.51.254.42) by j.j.net; 21 Apr 2003 00:32:10 +0900
Message-ID: <000837c26fc5$3975bd40$0100f990 AT j.net>
From: "=?ks_c_5601-1987?B?waS4uMHW?=" <kyongse AT naver.com>
To: <xom-interest AT lists.ibiblio.org>
Date: Mon, 21 Apr 2003 00:32:10 +0900
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0008_0BF870FC.62AA2220"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Subject: [XOM-interest] =?ks_c_5601-1987?b?KLGksO0pNTm4uL/4IMioxuTAzMH2IMPKxq+woSA=?=
=?ks_c_5601-1987?b?wabA2yDAzLqlxq4teG9tLWludGVyZXN0?=
X-BeenThere: xom-interest AT lists.ibiblio.org
X-Mailman-Version: 2.1.1
Precedence: list
Reply-To: =?ks_c_5601-1987?B?waS4uMHW?= <kyongse AT naver.com>
List-Id: <xom-interest.lists.ibiblio.org>
List-Unsubscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=unsubscribe>
List-Archive: <https://lists.ibiblio.org/sympa/arc/xom-interest>
List-Post: <mailto:xom-interest AT lists.ibiblio.org>
List-Help: <mailto:sympa AT lists.ibiblio.org?subject=HELP>
List-Subscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=subscribe>
X-List-Received-Date: Sun, 20 Apr 2003 15:33:17 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_0008_0BF870FC.62AA2220
Content-Type: text/plain;
charset="ks_c_5601-1987"
Content-Transfer-Encoding: base64

eG9tLWludGVyZXN0IMDMuqXGrrnfvNu43sDPICAgICAgDQoNCiAgICAgICAgICAgDQogDQogICAN
CiAgICAgICAgDQoNCiAgICAgICAgDQoNCiAgIA0KICAgLSAgs/TAuiDE97iuxrzAxyDG5MDMwfYN
CiAgIC0gIMGmx7AgxKu03rfOsdcNCiAgIC0gILDUvcPGxywgwaK808XrsOgsIMSrv+7FzSwgwNq3
4b3HICDBprD4ICAgICAgIA0KICAgICAgICANCg0KICAgICANCg0KICAgICAgICANCg0KICAgDQog
ICAtIMD6t8XH0SAgsKGw3cC4t84guvG/67rOtOMgw9a80sitDQogICAtIL3Ft9qwqCAgwNa0wiC7
58DMxq4gtfDA2sDODQogICAtILSpsbizqiC/7r+1x9K89iAgwNa0wiC9rL/uILD8uK7A2iC48LXl
DQogICAgICAgIA0KICAgICAgICANCg0KICAgICAgICAgDQq75773wNq17rfPufjIoyA6IDQwOC0w
OC05OTgyOSAgLyAgIFRFTCA6ICgwNjIpMzczLTU1NDUgICAvICAgRkFYICA6ICgwNjIpMzczLTU1
NDYNCiAgICAgDQq6u7jewM8gud+828HWvNK0wiC5373FIMD8v+vAzLnHt84gILmuwMe0wiC787Tj
ILDUvcPGx8C7IMDMv+vH2CDB1r3KvcO/wA0KICAgICANCnwgICDIuLvnvNKwsyAgICB8ICAgIMb3
xq7G+riuv8AgICB8ICAgILvztOOw1L3DxscgICB8DQogICAgICAgIA0KDQogICANCrHNx8/AxyAg
vcK29L74wMwgyKu6uLy6IMD8wNogv+zG7cC7ILq4s7uw1CC1yCDBoSAgwaTB38j3ILvnsPogteW4
s7TPtNkuIMGkurjF673FuMHAzL/rw8vB+Ln9ICCx1MGkwLsgwdi89sfPv6kgsaSw7bjewM/A08C7
IMelvcPHz7+0wLi45ywgIMD6yPG0wiAgsc3Hz8DHIMD8wNq/7MbtIMHWvNIgv9wgvu62sMfRILCz
wM7BpLq4tbUgILChwfaw7SDA1sH2IL7KwLi5x7fOIL7IvcnHz73DseIgudm2+LTPtNkuICC89r3F
wLsgv/jEoSC+ysC4vcO46SC89r3FsMW6zrimICDFrLivx9ggwda9yr3Dv+QuICAgICAgICAgIA0K
ICAgICAgICA=

------=_NextPart_000_0008_0BF870FC.62AA2220
Content-Type: text/html;
charset="ks_c_5601-1987"
Content-Transfer-Encoding: base64

PGh0bWw+DQoNCjxoZWFkPg0KPHRpdGxlPnhvbS1pbnRlcmVzdCDAzLqlxq6537zbuN7AzzwvdGl0
bGU+DQo8L2hlYWQ+DQoNCjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayI+DQo8dGFi
bGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSI2MDAi
IGJnY29sb3I9ImJsYWNrIiBhbGlnbj0iY2VudGVyIj4NCiAgICA8dHI+DQogICAgICAgIDx0ZCBi
Z2NvbG9yPSJ3aGl0ZSI+DQogICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGlu
Zz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIj4NCiAgICAgICAgICAgICAgICA8dHI+
DQogICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJhY2tn
cm91bmQ9Imh0dHA6Ly93d3cuaXNhZXNvbi5jb20vbWFpbC9pbWFnZXMvbWFpbF9sb2dvYmcuZ2lm
Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNhZXNv
bi5jb20iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cDovL3d3dy5pc2Flc29uLmNvbS9t
YWlsL2ltYWdlcy9tYWlsX2xvZ28uZ2lmIiB3aWR0aD0iMTY1IiBoZWlnaHQ9IjI3IiBib3JkZXI9
IjAiPjwvYT48L3A+DQogICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAg
PC90cj4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBhbGln
bj0iY2VudGVyIiB2YWxpZ249InRvcCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUg
Ym9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSI1OTgiPg0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxl
IGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iNTk4IiBo
ZWlnaHQ9IjE4MSIgYmFja2dyb3VuZD0iaHR0cDovL3d3dy5pc2Flc29uLmNvbS9tYWlsL2ltYWdl
cy9tYWlsM18wMS5qcGciPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdp
ZHRoPSI0MDYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
dGQgd2lkdGg9IjE5MiIgdmFsaWduPSJib3R0b20iPg0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDov
L2lzYWVzb24uY29tL2Jicy9iYnMucGhwP2tpbmQ9d19waG90byIgdGFyZ2V0PSJfYmxhbmsiPjxp
bWcgc3JjPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL21haWwvaW1hZ2VzL3BvcnRmb2xpby5naWYi
IHdpZHRoPSIxMTYiIGhlaWdodD0iNjUiIGJvcmRlcj0iMCIgYWx0PSLG98auxvq4rr/Audm3zrCh
seIiPjwvYT48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90
cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw
PjxpbWcgc3JjPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL21haWwvaW1hZ2VzL21haWwyXzAyLmpw
ZyIgd2lkdGg9IjU5OCIgaGVpZ2h0PSIxMDEiIGJvcmRlcj0iMCI+PC9wPg0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5n
PSIwIiB3aWR0aD0iNTUwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3
aWR0aD0iMjA2Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxwPjxpbWcgc3JjPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL21haWwvaW1hZ2VzL21haWwz
XzAzLmpwZyIgd2lkdGg9IjIwNiIgaGVpZ2h0PSIxMDkiIGJvcmRlcj0iMCI+PC9wPg0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjM0NCIgYmdjb2xvcj0i
I0UwRjhBNSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8cD48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzY2NjY2NiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7LSAN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILP0wLogxPe4
rsa8wMcgxuTAzMH2PGJyPiZuYnNwOyZuYnNwOyZuYnNwOy0gDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDBpsewIMSrtN63zrHXPGJyPiZuYnNwOyZuYnNw
OyZuYnNwOy0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICCw1L3DxscsIMGivNPF67DoLCDEq7/uxc0sIMDat+G9xyANCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIMGmsPg8L2ZvbnQ+PHAgYWxpZ249InJpZ2h0Ij48
YSBocmVmPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL2NvbnN1bHQvd2ViX2NvbnN1bHQucGhwIiB0
YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly93d3cuaXNhZXNvbi5jb20vbWFpbC9pbWFn
ZXMvdmlldy5qcGciIHdpZHRoPSI5MCIgaGVpZ2h0PSIyNiIgYm9yZGVyPSIwIiBhbHQ9IsDavLzI
97q4seIiPjwvYT4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmbmJzcDsmbmJzcDs8YSBocmVmPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL2Jicy9iYnMu
cGhwP2tpbmQ9d19waG90byIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwOi8vd3d3Lmlz
YWVzb24uY29tL21haWwvaW1hZ2VzL3BvcnQuanBnIiB3aWR0aD0iOTAiIGhlaWdodD0iMjYiIGJv
cmRlcj0iMCIgYWx0PSLG98auxvq4rr/AIj48L2E+IA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7PC9wPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90
YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4N
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4NCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcgc3JjPSJodHRwOi8vd3d3Lmlz
YWVzb24uY29tL21haWwvaW1hZ2VzL21haWwyXzA0LmpwZyIgd2lkdGg9IjIzNCIgaGVpZ2h0PSI2
NiIgYm9yZGVyPSIwIj48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcgc3JjPSJodHRwOi8vd3d3Lmlz
YWVzb24uY29tL21haWwvaW1hZ2VzL21haWwyXzA1LmpwZyIgd2lkdGg9IjU0OSIgaGVpZ2h0PSI1
MCIgYm9yZGVyPSIwIj48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0i
bGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVy
PSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSI1NTAiPg0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSIyMDYiPg0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGltZyBzcmM9Imh0dHA6Ly93
d3cuaXNhZXNvbi5jb20vbWFpbC9pbWFnZXMvbWFpbDNfMDYuanBnIiB3aWR0aD0iMjA2IiBoZWln
aHQ9IjExMSIgYm9yZGVyPSIwIj48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDx0ZCB3aWR0aD0iMzQ0IiBiZ2NvbG9yPSIjRjBFQUFDIj4NCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxmb250IGNvbG9yPSIjNjY2NjY2
IiBzaXplPSIyIj4mbmJzcDsmbmJzcDsmbmJzcDstIMD6t8XH0SANCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILChsN3AuLfOILrxv+u6zrTjIMPWvNLIrTxi
cj4mbmJzcDsmbmJzcDsmbmJzcDstIL3Ft9qwqCANCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIMDWtMIgu+fAzMauILXwwNrAzjxicj4mbmJzcDsmbmJzcDsm
bmJzcDstILSpsbizqiC/7r+1x9K89iANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIMDWtMIgvay/7iCw/LiuwNoguPC15Txicj48L2ZvbnQ+PHAgYWxpZ249
InJpZ2h0Ij48YSBocmVmPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL2NvbnN1bHQvc2hvcF9jb25z
dWx0LnBocCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwOi8vd3d3LmlzYWVzb24uY29t
L21haWwvaW1hZ2VzL3ZpZXcuanBnIiB3aWR0aD0iOTAiIGhlaWdodD0iMjYiIGJvcmRlcj0iMCIg
YWx0PSLA2ry8yPe6uLHiIj48L2E+IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7PGEgaHJlZj0iaHR0cDovL3d3dy5pc2Flc29uLmNv
bS9iYnMvYmJzLnBocD9raW5kPXdfcGhvdG8iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0
cDovL3d3dy5pc2Flc29uLmNvbS9tYWlsL2ltYWdlcy9wb3J0LmpwZyIgd2lkdGg9IjkwIiBoZWln
aHQ9IjI2IiBib3JkZXI9IjAiIGFsdD0ixvfGrsb6uK6/wCI+PC9hPiANCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOzwvcD4NCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGFs
aWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcg
c3JjPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL21haWwvaW1hZ2VzL21haWwyXzA3LmpwZyIgd2lk
dGg9IjIwNiIgaGVpZ2h0PSIxMiIgYm9yZGVyPSIwIj48L3A+DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICA8aW1nIHNyYz0naHR0cDovL3d3dy5pc2Flc29uLmNvbS9zY291bnQvY291bnQuY2dpP21haWxf
ZXZlbnQyJyBib3JkZXI9JzAnIHdpZHRoPScwJyBoZWlnaHQ9JzAnPg0KICAgICAgICAgICAgICAg
ICAgICA8L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0K
ICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzMzMzMzMyIgaGVpZ2h0PSIyMSIgYWxp
Z249ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cD48Zm9udCBjb2xvcj0id2hp
dGUiIHNpemU9IjIiPrvnvvfA2rXut8+5+MijIDogNDA4LTA4LTk5ODI5ICZuYnNwOy8gDQogICAg
ICAgICAgICAgICAgICAgICAgICAmbmJzcDtURUwgOiAoMDYyKTM3My01NTQ1ICZuYnNwOyZuYnNw
Oy8gJm5ic3A7Jm5ic3A7RkFYIA0KICAgICAgICAgICAgICAgICAgICAgICAgOiAoMDYyKTM3My01
NTQ2PC9mb250PjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAg
ICA8L3RyPg0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGJn
Y29sb3I9IiMzMzMzMzMiIGhlaWdodD0iMjEiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICAgICAg
ICAgICAgICAgICAgPHA+PGZvbnQgY29sb3I9IndoaXRlIiBzaXplPSIyIj66u7jewM8gud+828HW
vNK0wiC5373FIMD8v+vAzLnHt84gDQogICAgICAgICAgICAgICAgICAgICAgICC5rsDHtMIgu/O0
4yCw1L3DxsfAuyDAzL/rx9ggwda9yr3Dv8A8L2ZvbnQ+PC9wPg0KICAgICAgICAgICAgICAgICAg
ICA8L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAg
ICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iIzMzMzMzMyIgaGVpZ2h0PSIyMSIgYWxpZ249
ImNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cD48Zm9udCBjb2xvcj0id2hpdGUi
IHNpemU9IjIiPnwgJm5ic3A7Jm5ic3A7PC9mb250PjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNhZXNv
bi5jb20vY29tcGFueS9pbnRyb2R1Y2UucGhwIiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgY29sb3I9
IndoaXRlIiBzaXplPSIyIj7IuLvnvNKwszwvZm9udD48L2E+PGZvbnQgc2l6ZT0iMiIgY29sb3I9
IndoaXRlIj4gDQogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDt8ICZuYnNwOyZu
YnNwOyZuYnNwOzwvZm9udD48YSBocmVmPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL2Jicy9iYnMu
cGhwP2tpbmQ9d19waG90byIgdGFyZ2V0PSJfYmxhbmsiPjxmb250IGNvbG9yPSJ3aGl0ZSIgc2l6
ZT0iMiI+xvfGrsb6uK6/wDwvZm9udD48L2E+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IndoaXRlIj4g
Jm5ic3A7Jm5ic3A7fCANCiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOzwvZm9u
dD48YSBocmVmPSJodHRwOi8vd3d3LmlzYWVzb24uY29tL2NvbnN1bHQvY29uc3VsdC5waHAiIHRh
cmdldD0iX2JsYW5rIj48Zm9udCBjb2xvcj0id2hpdGUiIHNpemU9IjIiPrvztOOw1L3Dxsc8L2Zv
bnQ+PC9hPjxmb250IHNpemU9IjIiIGNvbG9yPSJ3aGl0ZSI+ICZuYnNwOyZuYnNwO3w8L2ZvbnQ+
PC9wPg0KICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQog
ICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iI0ND
Q0NDQyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFk
ZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSI2MDAiPg0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRo
PSIxNDAiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8cD48YSBocmVmPSJodHRwOi8vd3d3LmlzYWVzb24uY29tIiB0YXJnZXQ9
Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly93d3cuaXNhZXNvbi5jb20vbWFpbC9pbWFnZXMvbWFp
bF9sb2dvMi5naWYiIHdpZHRoPSIxNDAiIGhlaWdodD0iOTAiIGJvcmRlcj0iMCI+PC9hPjwvcD4N
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI0ODAiIHN0eWxlPSJmb250LXNpemU6OXB0OyBjb2xv
cjpyZ2IoMTAyLDEwMiwxMDIpOyBsaW5lLWhlaWdodDoxNDAlOyBwYWRkaW5nOjU7Ij4NCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPrHNx8/AxyANCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIL3CtvS++MDMIMiruri8uiDA/MDaIL/sxu3AuyC6uLO7sNQg
tcggwaEgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDBpMHfyPcgu+ew+iC1
5biztM+02S4gwaS6uMXrvcW4wcDMv+vDy8H4uf0gDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICCx1MGkwLsgwdi89sfPv6kgsaSw7bjewM/A08C7IMelvcPHz7+0wLi45ywgDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDA+sjxtMIgDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICCxzcfPwMcgwPzA2r/sxu0gwda80iC/3CC+7rawx9EgsLPA
zsGkuri1tSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILChwfaw7SDA1sH2
IL7KwLi5x7fOIL7IvcnHz73DseIgudm2+LTPtNkuIA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgvPa9xcC7IL/4xKEgvsrAuL3DuOkgvPa9xbDFus64piANCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIMWsuK/H2CDB1r3KvcO/5C4gJm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaHJlZj0iaHR0cDovL3d3dy5jcnVz
YWRlLmNvLmtyL3JlamVjdC9yZWplY3QucGhwP2lkPTIyNjEmbW9kZT13cml0ZSZtYWlsPXhvbS1p
bnRlcmVzdEBsaXN0cy5pYmlibGlvLm9yZyI+PGltZyBzcmM9Imh0dHA6Ly93d3cuaXNhZXNvbi5j
b20vbWFpbC9pbWFnZXMvbWFpbF92ZXRvLmdpZiIgYWxpZ249InRleHR0b3AiIHdpZHRoPSI2MyIg
aGVpZ2h0PSIxOSIgYm9yZGVyPSIwIiBhbHQ9Irz2vcWwxbrOIj48L2E+IDwvcD4NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAg
ICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPC90YWJsZT4N
CiAgICAgICAgPC90ZD4NCiAgICA8L3RyPg0KPC90YWJsZT4NCjwvYm9keT4NCg0KPC9odG1sPg0K


------=_NextPart_000_0008_0BF870FC.62AA2220--




Archive powered by MHonArc 2.6.24.

Top of Page