Home » Eclipse Projects » Remote Application Platform (RAP) » Getting URL Paramter
Getting URL Paramter [message #4865] |
Fri, 09 March 2007 11:40  |
Eclipse User |
|
|
|
Hi,
I develop a web application with rap. Now I have another web app, which
references the rap one. The reference Url contains object id's which I
need in the rap application to query against a database. How can I get it?
I saw that the example uses url paramter to determine the entry point,
but i don't see a way to use it in a Implementation of IEntryPoint.
Any ideas?
thanks
karsten
|
|
| |
Re: Getting URL Paramter [message #5003 is a reply to message #4935] |
Fri, 09 March 2007 16:58   |
Eclipse User |
|
|
|
Hi,
thanks for your answer, but I don't know how databinding can help me. I
won't to integrate my rap application with a third party web
application. The third party web app allows me to configure access to my
rap app like this:
linkformat.changeset= http://88.198.115.210/websvn/listing.php?repname=Aysada+Deve lop&path=/&rev=${rev}&sc=1
So what I need is to get the value of ${rev} in the rap app. How can I
get it?
karsten
Raul Arabaolaza schrieb:
> Hi,
> I´m a newby so don´t take too serious my idea, but you could try a sort
> of databinding instead of using url parameters? RAP is, as long as i
> know, event-based and the eclipse plugin model too. Thus a solution like
> traditional java desktop applications may be in order...
>
> I believe that with OSGi and RAP traditional J2EE aproaches don´t work
> very well i.e url parameters
>
> I know databinding is targeted for the M3 of RAP.
>
> Hope i ve not said something very stupid my apologies in that case.
>
> Regards, Raúl
>
> Karsten Panier escribió:
>> Hi,
>> I develop a web application with rap. Now I have another web app,
>> which references the rap one. The reference Url contains object id's
>> which I need in the rap application to query against a database. How
>> can I get it?
>> I saw that the example uses url paramter to determine the entry point,
>> but i don't see a way to use it in a Implementation of IEntryPoint.
>> Any ideas?
>> thanks
>> karsten
|
|
|
Re: Getting URL Paramter [message #5093 is a reply to message #5003] |
Sat, 10 March 2007 06:22   |
Eclipse User |
|
|
|
This is a multi-part message in MIME format.
--------------010303020903080108090104
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Hi, i´ve been playing a little, with RAP demo and HttpService, this is
what got, hope this could help you:
1- Add a BundleActivator to the demo
2- Use that BundleActivator to register a bridgeServlet
3- This servlet takes the needed parameter from the request and do
whatever is needed with it. (Store it in a static variable in some class
of your application??)
4- Use a requestDispatcher to redirect to RAP´s application itself.
The problem i see is that you will have to redirect to the new
bridgeServlet instead of RAP url and i don´t know if you are currently
redirecting to RAP url in your app...
I atach a example, please note neither url parametrization nor security
is taken in consideration in this example.
Regards, raul
Karsten Panier escribió:
> Hi,
> thanks for your answer, but I don't know how databinding can help me. I
> won't to integrate my rap application with a third party web
> application. The third party web app allows me to configure access to my
> rap app like this:
> linkformat.changeset= http://88.198.115.210/websvn/listing.php?repname=Aysada+Deve lop&path=/&rev=${rev}&sc=1
>
>
> So what I need is to get the value of ${rev} in the rap app. How can I
> get it?
> karsten
>
> Raul Arabaolaza schrieb:
>> Hi,
>> I´m a newby so don´t take too serious my idea, but you could try a
>> sort of databinding instead of using url parameters? RAP is, as long
>> as i know, event-based and the eclipse plugin model too. Thus a
>> solution like traditional java desktop applications may be in order...
>>
>> I believe that with OSGi and RAP traditional J2EE aproaches don´t work
>> very well i.e url parameters
>>
>> I know databinding is targeted for the M3 of RAP.
>>
>> Hope i ve not said something very stupid my apologies in that case.
>>
>> Regards, Raúl
>>
>> Karsten Panier escribió:
>>> Hi,
>>> I develop a web application with rap. Now I have another web app,
>>> which references the rap one. The reference Url contains object id's
>>> which I need in the rap application to query against a database. How
>>> can I get it?
>>> I saw that the example uses url paramter to determine the entry
>>> point, but i don't see a way to use it in a Implementation of
>>> IEntryPoint.
>>> Any ideas?
>>> thanks
>>> karsten
--------------010303020903080108090104
Content-Type: application/zip;
name="rap.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="rap.zip"
UEsDBBQACAAIADpgajYAAAAAAAAAAAAAAAAfAAAAb3JnLmVjbGlwc2UucmFw LmRlbW8vLmNs
YXNzcGF0aJWPywrCMBBF1/YrQvamunPRByIVdFGl1LXUZGijcRLzEP17rVB0 o+Bu7uVwLpPk
t7MiV7BOakzplE0oAeRaSGxTuquX4xnNsyjhqnHONL7LotE7AHp7JyeJIqXO ckr68nXGNP5K
co0DqW3LgCtpHLCj8Ew1AXn33GbrqtgvNmU9X5VF9b/MCGBcW2AWLkFaEFsV Wonuh0kHb4If
ZAeJPZvEH58/AFBLBwjmkv4qpQAAAC0BAABQSwMEFAAIAAgAOmBqNgAAAAAA AAAAAAAAAB0A
AABvcmcuZWNsaXBzZS5yYXAuZGVtby8ucHJvamVjdL2STYoCMRCF13oK6f0k uptFbEHFnTLg
zAEySdlGOj9U0jLHn0p3KyoKguDuvapX+UIlYvZn69ERMBrvpsWEjYsROOW1 cdW0+PlefXwW
s3IoAvoDqLSEqNCEROFyOBBOWig9VgxUbUIEhjIwDdYL3rYoory14FIp+ElR sT8tZs0vzW9j
ar0NoMj0bkFj0ulcuAM86MSURxLyKNs84BlOAxKrJlNjZ/mVF/yW8AwyaGBr 6cwOYpq/jbhV
e7DyZV5f6FdMqNQgdNFOP95u18/oNvdgJN/1q24q4za3+ZMk3PnVrz7UP1BL Bwh9iIig5AAA
AI0CAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAAACkAAABvcmcuZWNsaXBz ZS5yYXAuZGVt
by9NRVRBLUlORi9NQU5JRkVTVC5NRm1QwU7DMAy9V+o/RJO4bVFaQEiddoAb EkMIJO5e6nXe
0qQkbgt8Pd06ZWMgn+z37Peel2BpjYFn7+gDOVuITKo0ecWPljzOHlpbGiyE 85VEbagJKD00
siXZO79bodWb6SXoex5naSLOxv0N/6Fu16BxuoUOPmVA3xnkNBlFB0e2dL4Q V7/6M/hkeKhc
qTt1rfIsu1WR8+Q0GPoGPhAb01ZkI/gMNZ6u77sILY9fiRp5hN6+6pUzpMft yzwl1m4uAtlq
SOKsKBaCfTscfqwb53n2AnoH1XHRhYoOqUmj3DA3827UW0wymUs1iaL3mqkD 3n/jP0U50iIr
TdLkB1BLBwif79U0/AAAANkBAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAA AB8AAABvcmcu
ZWNsaXBzZS5yYXAuZGVtby9hYm91dC5odG1sjVRdb9pAEHwuEv9h64d+SJgL QalCA0gpIWqq
NEEJ6cfjYS/4mvOdc3fG8O+7ZxtIGlKFFzjf7uzszJj+27Pr0fT3ZAyJSyVM 7r5cXowgCBn7
2R0xdjY9g19fp98vodM+gFtnROQYG18FzQbQJ0icyz4zVhRFu+i2tVmw6Q1b eaiO761/hrZs
bMcuDobNRr8ctUqlsoM9CJ1er1c1VsXIY/+douPgq0N8yMVyEIy0cqhcOF1n GEBUnQaBw5Vj
vvsEooQbi25wcXsdHh8f9cJOwDyUE07i8HSmc9dn1YGess2kmY7XILlaDILx VXh3W9E4rBpg
mggL9WzqOaRLoPts+C1XCEctODw4+NRn2fCN7+oOL0WEyiKVdqm0rJwmCONI iswinOtcxdwJ
rSDl92iBL7mQfCYRuJSbtUAocH5wJvNFSIcP7x5y7U5qHtXhYxvgTkm0FrRL 0BSC8JsNoWIR
cYcxzFDqokVAuFkAPKTRSxHTtdOw1jkQHzRlkUOTEiEVexqx8CQJeu7vmo3N ApN8JkUE9Zrw
A431y/i81CTHk8sdwVPCytY1CtCVp7DbudngDvpktMH5k3BgNa5MiMQFlwwz GS47B+0qKa8u
7TM+bDcb59pAlptMW7SP2LSgojoxemF4Wh2gEGRFilw91q7tTa4dvZiX0sUi BqUdGIxQLLGy
bCN1LOixk2uYG51W855l4Jk5zcYMhVoQYiz8WzTLSyPX5ErpMWTcuPVG6Ztd lTa15qV/sZjP
0XjMvZ6mfE3CZxmRq0JgICdeJAtX5NXsDxGn+hirHO4kABglGN2Xz54Mf29B 1olwCVlacL/L
NmqFcMk/QCSh0mDzKNl24ooAbat8CTgxeDZlT+BfyPt/olyG0Dpv8VYCv7Yl GSLctzZpRUAl
1cdFpCKNJLkcF4rGvyLJL+W2DOk2X8z/I1V/URRg+vEXUEsHCKYJawjEAgAA tgUAAFBLAwQU
AAgACAA6YGo2AAAAAAAAAAAAAAAARQAAAG9yZy5lY2xpcHNlLnJhcC5kZW1v L2Jpbi9vcmcv
ZWNsaXBzZS9yYXAvZGVtby9CdW5kbGVBY3RpdmF0b3IkMS5jbGFzc41UXVPT QBQ9SwuhJUiF
ooIIogVaCoQqKFJUoHxqRQYc3kO7tNE0CZst4J/wv+iMOvjgow/+KMe7oUIH EPqQzd279+Oc
u/fu7z8/fgLI4LWGJoZhV5QMXrAtz+eGMD2jyCuusVh1ijZfKEjrwJSuSGQ0 hBn635sH5pHh
c3Fgc2mUpfSMNVq2TxQMLbJs+YlJippvJGyWPOYsx5IvGFLJxlxSOwzhnFvk ETC06WhGSxQh
tOvQcIMhlFQGHXnL4RvVyi4X78xdmzN05t2Cae+YwlL7mjKs4DI0ljmRIbjN RXdVEd1K5q+u
xRbfr3JfZq818z3X8XlAK7p8VOCetEih4faFctdcTo009DB0KRvDco31t6cH rbiruFH6NtzD
gIZ+hqGG4Oq4j0EGvcTlpinMCpdc0GWekDVs0ykZ21JYTimbuqiK4CGGNCQY YnVnH33JKzqG
MUKX41apdt35f5g3yU+SNzcr2ShSSGsYraNUd6xjDOMMmqdUtkNBLsO00wqD mKsrVMwzOh7h
MUO8dEpwyfI9UxbKitb0f2md1emCW7YN03iq4QnDwDWmOmbwjDDvueLQFEWG +fNNc3WvXNYi
IcH3GUYabD6qhSBv1eENtiF1uKcuXg3MheJQhxbr6jd4ba3IYdutigJfsdS4 xc9N1ITyp25b
dxwucrbp+5ymsWPZKdiuTwnfcFl2ixpWGRKNTKiOdbwiBr40BfXZ0Mlcu37J MvZUMx+64kPN
J+c6kh9Jqikm6R0J0YPIYjH1mJDURJ+GVtJHSJqhvdJER9NfafkO/XNg06F0 wQmlRDdiJOkk
K+1NdNI/jC7EyaKb5Bb638KdIOInytdM/2S6s/cYfU3YGP+F6Bc8GP+mdBPH mGzCbLgnnB47
xlQIZ/l6A3wqSg/aaRdHH/qp00doVfmnTuLW8itpFtkAUxJzeE5RIhjAC7wk BP2Ecx4LhDKE
xSBDDksBehZ4gGIsByxWsPYXUEsHCJpLtHjeAgAANQYAAFBLAwQUAAgACAA6 YGo2AAAAAAAA
AAAAAAAAQwAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBz ZS9yYXAvZGVt
by9CdW5kbGVBY3RpdmF0b3IuY2xhc3ONVNlSE0EUPR0CA2FUjOCGYlhNQDPg CsQVRFEjWsai
ysdm0obWyUyqp4P4NX6DPkghVZbPfpTl7ZmEQAo1D9Pdc/su59ylf/3+/gPA HJ5bSDBMBKri
CNeTtVA4itecsqgGzlLdL3vioavlFteBspBkGHjPt7jjcb/ivNx4L1xtoYdh zNgHYUU67xSv
io+B+tBuzdBzR/pS32PoyubWGZLLQVmk0IV+GxZ6GU4UpS/W6tUNod7wDU8w pIuBy711rqT5
bwiTelOGDFPFTjAXGLpDzZVmmMwW/4pyOfC12NYFgyu1su2KmpaBH1oYZDjV Yrx/Y+E0IegE
wMRcCkM4ayieY8hlO0OdW+/FMMMoKecN4Hwo1JZ0RX5T61p+lZZSLOjHRVyy MMKQ+R85GxmM
Ep2K0A3j1+KdUMJ3KakL2WKLZkkr6VcKuaPy1W5aMAjGbUxgklLX8h257MQ+ V2zvqIKFyzH3
2LjB3THcnQPce5FjOB5de0IvKVmuCAszzYrVtfScVR5uatM3KUyjvx9TyNtw MEvdpkRFhlqo
UmzPII7IQSTZbsZwGrqxOI7wSLqmI7j6VCj+HXKrwfpwDTcsXD80SqVPhKRq 4yZu0XgEdUIz
FMeQgfOKkGjCI3i10It5husx1waYTJOIKGeo3kJluCd5mDmcmBQWccdCoZmd w35t3AUNplUz
Is+n6Ef1gxlariqUvLH/jxLDsY2DMKlD25J5qJ4mqwyDm63yHujOyY46ifCH zeYb/0ctGoak
nwx1UKO2LQV15YrH0jwvg22zmDegGeynvi/UssfDUIQYBZWJvm56Q81O7xet ffTn0M5o757e
QeoLHRKwae2JhAM4RqsdK+A4TtBOfYCTpJWmc5L+TkVuPtO9cb6wh6G35OrM i5n0+V1cSGBt
5uouxhL4ianF5LlkOntlD9Nvd3CF7eJqN75iLn37GxZaoc9TcNAb1Efznybk IxjDLMYxj8kI
zo04UAOOOd3Hg4jNLB5iKYJ2Gct4RExHMIwVPI6APjkC9s0oKpFqZz4dhTod X+6HYo1QCaxG
+k/xjPYUSYai+/QfUEsHCKVpzD8fAwAApwYAAFBLAwQUAAgACAA6YGo2AAAA AAAAAAAAAAAA
SgAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBzZS9yYXAv ZGVtby9EZW1v
QWN0aW9uQmFyQWR2aXNvciQxLmNsYXNzlVJNb9NAEH3bhLoJpklTApTPQAM4 Cc02J5CKkEoB
qZKLkILa88beJts6u9HaKeJngQRIHPgB/CjErJNDVXoIB49m37z3ZnfGv//8 /AWgh46HJYaO
sUMuo0RNUsmtmPBYjg1/Q2E3ypTRr4Xdjc9Uamyz56HIsHlRcHIsIslFzuYz EcNyNlJpc5v8
w4Ub7JDspdIqe8XQDf5D1zpkKO6ZWJbAcNXHFSyXUcA1Hx5WGQqBI1RCpeX7 6Xgg7UcxSCRD
LTSRSA6FVe48B4vu4gxbi7dv9ujiBTvVJdRx08MNhuqJOBM8EXrI+5/TTI59 3MIGscw0Y6iH
eVkZ/sEqnfUzK8V4ZwV3GNbJpiEGRGvMBtrtdsu4hwce7lP1Ep2PBh4yeBMH JTT5ehCe654R
PMwHVO6bqY3kO+VeuXHZQ7pOx+Dvay3tXiLSVNIkKm91lJiUbA5kNjKxh6cM rYWn46OFNm1l
LE7lrEaewb/bnSq+f2Ts6UDqaHSkdGw+0bWxTRst0O/KqlW3VsqW6POwQniJ shd0dki53flG
4Qf8Lzmn4rC8wkjXRpUyn3KHrqGW4+tYnbs8J6arlb7ieu32d9y9aPKMGm6d MynNTQp4lDM3
0cy5LK+Cao8pFvEEwV9QSwcIXrLvS9wBAABwAwAAUEsDBBQACAAIADpgajYA AAAAAAAAAAAA
AABIAAAAb3JnLmVjbGlwc2UucmFwLmRlbW8vYmluL29yZy9lY2xpcHNlL3Jh cC9kZW1vL0Rl
bW9BY3Rpb25CYXJBZHZpc29yLmNsYXNzpVZpdxNVGH5uFyakA8UIyCoUijRJ m1BA2hoolJRK
IK0goVjBZZJM04FkJs5M2FxAVNzXP+FnPdKKPccf4O/wd3h87iRNt4lNsT0n 97133u15t3v/
+uePPwH04ycFLQJhyy7E9VzRKDt63NbK8bxesuKj/BnJuYZlntXskfxtw7Fs BW0CsZXsFSOu
m659r2wZphtfKSMQ1O8abvVYIJH2Ede8j05Ndoxby77Xnbpm2beyupmbqZ4n BDq0rFWp6zq0
StfNaS2n19TF61IbThqm4Q4LDPT4WV/ifKrufdIyp41CxdbtRHhSoC1p5fUg WrFJxUYEBTrT
hqlPVEpZ3c5o2aIuEEpbOa04qdmG3NcO29wZwxGIrrLbMMb0N5irGxc4/iwu M1Il7ZZe/UT7
Pb7AFwN8zTDz1h0iDeAFga3kjdV4Y+SNSWcD2CmwycjJPLmuGysY00Hsxl4F ewQiPtrLxUrB
YBayjmszI1dTl7wDFS9in8BOo6QV9FHdydlGmekes61SlUFgsid9U7utxYua WYhfcW3DLCRW
n4QbZN/WHatik0gtt5AIoEtgcxXBjF4sSwgbcRCHFHQzRM3WpYqXcJiZvXw1 lSHypus5EaSt
sIoIoizJnK1rLgsk22Rm/kfbbIRAn4p2bOhAHP0KjggMPbM6FUdxjNXu6O6K AAscWw1mjZyE
J4P07mUVJzAgELD1guG4suzDjVTVmrtW9lSgYIgN1nR/dfcHMYiEbOOTHGar zTTuzPCkDOWw
CgWBAM4ItI/IcRTEWYwqSAocbGIeqTiHMQGF8cvod12BbT7VLhvxvMAuv0aM aQtGL6i4KHW1
y1zk5Uk/K+uOVzF+09GvsCjgdSIlj6w3eQuyRzlupo1icVw3KwyXb1SXJ09y jmsmZW0vg1d9
+m+ZxBKBAK6x+8aMoh7AFCla5mTO4LpM6Q2Bw81ND0b4bUqf5yAI4F1SciR0 IIu8gpzPpdgQ
gAod0wKtWj7/Hx2wIMghTQeyFblLuXrJ64AMZqQWdoBSWojh6iujcQjZOTIK 8shvIjWKpJST
qKtyXgqTllX0zPevDcTjXMxiAO8xiiXNMGVLOypcUOum6qDLLOhNrlOvf+bu yJtVd9g9Sm5B
c2x9ihW87zM2lolklkm04hEQxH18JAvtAT3oScna/Zh3dDNqVmY+iIf4RKr6 tImoZNaOSgce
y9r9XKB3PYHowJeYUfDVmmLLXSB8Uyt5z55VvjArLpmzzWRlBTA+fq54w0b2 N18JfnM4Jg0K
qCnT1O1kUXMc3UEXa66Vj9oW/vOm8yiOaa7t/MInG387uBv2OIANkegc1F88 vs2QiZWne8i9
F52ktle5sAXPAR4VwvPU0Yat2FbT9Td3bVxvhLaHdvyOXeNc93OdiPyKA9FZ 9DxBb+Q39PY+
RawFEUnO4nhkHoNTkTm88gSneHQqdHoWIx7x6ixSkuibRVpynyL3oodjnidd 3B2g1S6i2098
3fT8EFSunXxebOHbZDcO86QHfXxpDPHCP4sjvCb6cYUX93Uc89BFqn7X0d3A OCaIKsBR9Bou
0cYWpHGZVCs5X6dsFfHPNcQD88hMhSZDb8zhzXGPfiv0DumJKLFqLVXYsyhE +7xtXxVMYRFM
zFN3gmEdoNETBDDIAA8xuIPYgQT24SRhDJPvNL+eWeL0QN3pARi4ScdURHEL RWreQbkSKem0
Cavm9EXuZTI7I9FQeQ42l9tcFp3Z7FVOkhEdJX1uSf4768Y6cRf3qLBFjrWa 4sesFulSbB73
p0IfzOHDieg8Hk719c7h0VN8VgXOiHxRC4FHLdrdTnngPDOYwk5cYP4uMmvp JWBjdfuxmn1J
fY1vqCHInH+L7zxw33s6f8CPXiULBlH+hf4FUEsHCLPpgYJ/BQAA6Q0AAFBL AwQUAAgACAA6
YGo2AAAAAAAAAAAAAAAASQAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9v cmcvZWNsaXBz
ZS9yYXAvZGVtby9EZW1vQnJvd3NlclZpZXdQYXJ0JDEuY2xhc3OVU9tuEzEQ PW5Ct7ssZCmX
ljttUwghsA1PSCAeCCBVBKhUlD47zpA4bNeRd9N+FxIIxAMfwEchxktAqCnS 9sHWeGbOmfH4
+MfPb98BtHHHw4JA09hhTCrRk4xiKyfxgPZN/Jy3Z9YcZmR7mg53pM3rbQ9V gWgsD2ScyHQY
v+2PSeUeFgU2j7JMdby9SwnHtUm7OsspJSuwmI90Vt/ist2ydR8z6olOdf5U 4H6jPOxuT6Da
MQPyIXAmhIelABXUQviIBCoNl1Dr6pTeTPf7ZN/JfkICy12jZNKTVrvzzFl1 bQu0Slevt7nt
KPszgM6I50UDgZ35C7hJ7Rn7oU+pGhWdz6WM30tF8QFzk83+mSvfMcAqrni4 LNAo21uIq7gm
sCSVoqx4jL0TjPUkzfHgJowR2ChxawH/77yO08d/6wgEu2ZqFb3U7q1Wj+n6 gROtQLidsgo7
icwy4uesvUhVYjKdDl9TPjKDELedMlaUJZnTnHqxxUKq8DoFEUVOT/yNFnj5 CNh7mq1HfHae
oHnvM8LmF5z9WOScc74i4tAtLLMVsu2853Gh8F/EpRnLK86sON7mJ4Str1g5 StLm0g8Lklu/
E2ckzrqOGwWxj5scdURrBXodGwVeFFEwus57leWz+QtQSwcISHFzIeABAAAS BAAAUEsDBBQA
CAAIADpgajYAAAAAAAAAAAAAAABHAAAAb3JnLmVjbGlwc2UucmFwLmRlbW8v YmluL29yZy9l
Y2xpcHNlL3JhcC9kZW1vL0RlbW9Ccm93c2VyVmlld1BhcnQuY2xhc3OVVmtX E1cU3TdGAmF8
ISoUxRdgHpBBS30QaisolgpKBUO1D51MLjA4mcmamRD7U9r/0A99aalrddkv fuiP6uq+kzFB
EhYYFjNM5py9zz5333P597+//gZwGZUEYgIp11vTpWlbFV/qnlHRS7Ls6rd5 mfbcmi+9giVr
i4YXJBAXOLczumrpFb7U30UJJIr1PIHh+Z3RXi3Qo9d6BJ8X6Jqee7j89Pad hQcCPfMbxqah
24azpi8FnuWsMaBzihiOFdwUOJBKFwTiM25JduKQwMJ6EFQmdb1Wq+Uippxi LVosqrLuSsd6
ocsXRrliS1/3XbsaWK6jL7uVJWkTdG3Rc0tVM/Bz60HZ7oLAEQ0JdPI+bzny frVclN6yUbSl
qs01DbtgeJZ6jr7smAorS+IAejX0IMnqgnXLF8i0yN+ttZR4zPSkEUj1NOM6 gefaBEi1bWDN
Kq3JwNdn3HLF9a1A5tOFBD4SuLiPdifRj9OqzjMC2f3iz6ULqjNnNRxERxLn cTGBCwJn2phh
0TaCVdcrP5rTMIRhAY1YK673vCgdc13gfCrdQsq0uUZIvhuXkE4g1R6/Gagh g6xAH/FvmYG1
KRtvViyn5NYELu3FVQ8k4xj0BHJtOtgmXMM4LgscJy8tJE3lpyXpbVom3ZDa hXJnJDk/xicJ
TAgM7Sdew1Vcqzez8UpgtA3bxqphSn2TzpKevw0on+QK3tAwCbrtuC+DR549 67nlbXBjrX7Y
FS1dUHifaripHH+q7t7G63nLD6SjZkAHp4N0OBYu7dNrHAe1pl3O7mEWEtSi 1W6dNu3WmvB+
U3HrFt1VMKcQmzbrmlVf7SHa+y6+DOfRkwTmCbXfzT50OYl7uK/24IO2Pd91 SqQLyjVfaXiI
JYFeo1Rq0/A2Q+M9Q72LzKs5etRvcfDI/vyrerCi4Ws85hLU3SRwItU6vVV7 vhG4slejA49T
uOrJpqZuPMF3Gr7HUw5jumTW8vzgji3LoZ966f0m2YPiBpPyCRgC47s2dNmT srEM6qGelsQz
mBpKoPxuEqkxX/fH+ySN8yjpb/PQxJ4eapVGDG31PTk9rWLoOLtRSadhmtL3 h8YFVj7AMh+y
oalrya16ppy11MHW1wYvp4pk7XMOHTRjG+yDz+OA24D/UcT4y/OB16Q6QXlX 1y6oQdHNpxzv
6tPRo/2Gw7+EGUd5PRxm9/HpFPN7cSzCEuo0jXJ13lX2wcwrHG+mdoRf1lO0 egBO4GSYfIqQ
9eSf+O1B3sczr9H/OHvgFQb+wOCfOLcwuoURgftjWxgV2MIVgcl4pj/+CtfJ M9XkGaQU4DQO
4Qy5Bol8FsM4hyzF67gQ8k/UOSJ+9ddn+JwVHGPsLUwTqY8/M7hNucOs6w5m Eef7uw2R1yKR
XZnfMfgSX6w0C0iGHRlmP0e2ie2KyGJqCkcgPxA0zvt56pvPhvqUzFEl8zXu PaawhS0sxtAE
PxlWnmZahhBZtn2U2iZCokwdLCKKU7/SoqhOhlpijD6CZTyiqpg6XKIyfuaT Qs0rLb/i8EsU
VrJvkcu+wRNVz7eqnn/w7EcMjL3Bs5coTsb7429xSMX3x1V4s8ARKlXt6cZ1 kt3ggk9igFQX
MMVyP2Wrb/Kb6W3LkG8sQz5sNLcyUVaxRsQBLsg6LBacJdoGexo/2onnsKPS Rxijut2RydII
O812teHPGMrh1YEbrpDgWFefnv8BUEsHCDWvyRT8BAAAYgsAAFBLAwQUAAgA CAA6YGo2AAAA
AAAAAAAAAAAASwAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNs aXBzZS9yYXAv
ZGVtby9EZW1vU2VsZWN0aW9uVmlld1BhcnQkMS5jbGFzc5VVW3PbVBD+Tm1H jiOISS/BoRCX
usV2YqtJQ2njkl6cBAxuEkjqtpReZOkkUVAkj3SUDMzwBD+AV4a+97kz4F6Y YeCJGX4Uwx7Z
JGnkadIHaY727H67++1F//z74g8AE+AKjjCMu96axg3bavlc8/SWZvJNV5ul 1zK3uSEs12lY
fHtJ90RuQkGcIb2hb+marTtr2mJzg1QU9DGc2Y8TWFptB6Ju+YI73GPoE+uW nztHjuuH91wh
u8uWY4kZBi3/OoaFBkO86pq8HwxvqFCQTCGGQRX9SDPE8lJhsG45fCHYbHJv RW/anGGo7hq6
3dA9S353hXEZOkP5NfznJij0tP+/uLpOrHGTYSmahOTrlut90+SOsR7GHlHZ WNUNrm0RNvf8
PexSlgreZhjercyy8Cxn7Xpg2Sb3BjCCkwreYTh1oFcV7+I9huQaFyuWkGkf yxfq+4ErKWTx
voJTL7VD507FaeQYlC3dDvjiKsPZfH1/y1R6Qg7jrKzLBwzH89H7QiOJApUs q2Wl6piKcZSo
MfRWizvEaamXTUTUpST0pqk4FyYr3M6lgkmGyYNoF15giMDj5k4BBmicplR8 iAvUTMTcvOX5
Ys7mm9wR+wnsEpDEReooJ7BtBdMMR+9Gg0/iMvVs2HxZww0cMZ2VjmZUXMFV Mvat73jYwjWZ
zHXJR5XhZL72qqxj0FKYx6cKPmEoHr6TVdTwGVGlGwb3wwHu0cOvGsSIsrct tG3LJLp8Te4H
Cq6OBQU3GLIH6apYxBLlrptU+BM9Cl8rNCTclyqWscKg+lzsxETUEUdyMbQo MobTh5hFhn5/
1754+NFkSFATeN/KnRKJkiHl74GdOhA22nqEoa6+1G5D0WYjP8tu4Bl83pIT PdKzRGVpRmg1
hxZ11dYpMtp2g3OOYbs+RXuDi3XXVGHKxTlseFwXPLLgaaCoLPQkwNJpuW7p X3OEnn6kSDpA
p4v0LSWp4thvUItP8eaTUOctKQtvpHUZQ3RS6SylR3EslB/HiQ4Ky5KXPpI9 +h3Dd8aeI8Pw
DKNPcWYo30axjfLC+J+YmI5n4s9xnmE6kUn8jRGpXOrqfdTVe4xqJvEXLv2M 3N7rCl1L448Z
2rjWUdxrn0m0MduFKP4K9RnmSrE2Pu+e6fjFbl7lMPNJZHAeo5hCnnZFCRcw S2zUcQmbqOBH
zOAnGu1fcDXMfaaTXzd3ebqJRsjHI9zCbULO4AfcwVfExCi+x118jTghC9zD fWIwhgeh/4fQ
Qw5ZaAvCbtI7TkvA+A9QSwcINxIc1bgDAAAMCAAAUEsDBBQACAAIADpgajYA AAAAAAAAAAAA
AABJAAAAb3JnLmVjbGlwc2UucmFwLmRlbW8vYmluL29yZy9lY2xpcHNlL3Jh cC9kZW1vL0Rl
bW9TZWxlY3Rpb25WaWV3UGFydC5jbGFzc5VVa1PbRhQ9axuEZVEc5wGlJZhX 8AtU2qZp4zRp
YkLqVhBSiInpU5Y3RkSWGEnGzbf+n35pZ1ooZaY/oD+qk7uyMa0x4OJhtdKe Pffcx979+58/
/wKwBFtCiCHjuDWVG5a553HV1ffUKq876jING9zihm86dsnkzXXd9SVEGJLd +Iap7tGieoJi
iFimR49prRvqNn21aVZr3PdUjTB5hsF7pm369xnCqXSJthacKpcRRkyBhCGG Ec20+VqjXuHu
pl6xOENCcwzdKumuKd7bHyP+jukx5M6YPN8bMn7FcLnuc/FWcGzfdSyKR+pC 2QWnvud4ps/z
6ZKEqwxzvdCW/tpp+OoT16xqwVRGAteFSzcYBlLF7XRJxhjGJbx9DsMZewre wbsMUY/7LUqG
+YultmCBzpsMUxdDK9ySMYGk0DjFkO03CsV0aQgzDMOd+CY1pyao5hTcwjyD RIo3+Y+k93pK
29X3dYqOXVM3fNe0a4G6NMPMJVFc1n1dRgpZoS8XxLAoYjiBRQUq3iMBncAI bJexp5VdEhcY
e79HCXfXZRg/hSHTEUlGwfCRggEMCusfC+ufkEtkfTvI4RIWZYLcU/CpqNbR VkF1YiHIuM1d
qnM6I9wWSeszsOSjJbJCsbkkywQi9BD5v+IYDU+IWlbwCI+DQ7Ut4wmKEj5n mOhxdNct3X/p
uPXnRQVf4EsGhVi3HPdVhdvGDpVNKn3GPG0rdiD5GFbxVMJab/5ToIJ1PGMY I/6HFJx93lnZ
Mu2q0xT1fImtFpAsbuC5hM0eZdMDrqCELYarZLeTlw3u7psG9Y3UOSa7kXkJ ZWov/XeX2SUZ
L/C1KJhvGNSzx+mCxpQuxfAdfpDwPcNsP+oU6KgwXNOr1R6l16Oj/YfkBJkX DTjaPM395CWZ
p6putlM311fiGOLemRTc6i8BVOG6YXDPm6XDvv7/4tnPRSRvOA3X4CumuE7G exItioZCJ6Ro
U7QKlu553MMUHf8w3acMIdEmaDZAc7q7aIzSm0pPJr5mDiH/SpMQFBoHg49j GKZRaQHwFkYC
ojiutDf/TESC/Fn2GIlyJHyIawcYPcZEOUvzydVcYvoAs7ljpMrx9fjIITIH WMgcY6mcTXxw
iA9/x+3Mb7gt1iUpEjnEnQPcJSH5UyHTpBTUR4dxE6OYFHcAcuTVXVrRMEOH djYQmWwJaYsU
s/t4QDJHCfkZHhIbo55z4vWdttdRYf4Aha1TgzI9gXmCpv7lfbRNHBKNtE3y GhH6AVN/YEXL
HkFjWM0d4SuGtYVjvCiTI9tH+DaEU/IbFEYgS9tyiGGBbt1FUv4oMJRpkbUN RchTA1UyFaNd
HC+JIUErNewgHB+Cid22jLlOBsmXX7oyOB5Qh4L/V8FooR54yej8i7/EG1BL Bwhz2ostFAQA
AHEJAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAAAFkAAABvcmcuZWNsaXBz ZS5yYXAuZGVt
by9iaW4vb3JnL2VjbGlwc2UvcmFwL2RlbW8vRGVtb1RhYmxlVmlld1BhcnQk Vmlld0NvbnRl
bnRQcm92aWRlci5jbGFzc6VUXXPTRhQ9a9mWUQRRAyENTUqAkMhfEbSUhjhN Cya0bp2QEjBN
eWAUa2OUUSSPPpJpn/kjPPHaPjSZNAM/oD+hf6RvpXdlJyW2OuOZPqz27t29 R+eee3f/+Pv3
twBuYkNGimHB81sGbzp2O+CGb7YNi+94xn36PDY3Hd6w+d6a6YfTwqh6bsjd cM33dm2L+zLS
DNq2uWsajum2jIeb27wZysgyzPeibm+ZTW7sEgj3A6O2HvpRM4x8bvVgMmTD F3YwfYNBrw9G
rUIxi7Zrh0sMxYGD8g2GdNWz+BkwnFUhI6dAwrCKM9AYJF0cGK7bLl+Ndja5 H0czjNS9puk0
TN8W664zLSgzLA747yQtKYmhFg+XHb5DXgKb1eu9ylbyz/p9Mj5kOB+7o9B2 jLu+b/5Ut4NQ
wRiGZXx0qkSku+22ZEwyjPV670W2Q0xyuEwZ1UK+o2ACV4QeVxlG36fTOU8S ihPTKq5jhmpg
ttvctRgm9Fq+73AXvJKDzsDKIrAgAosM5STo/wQQkWUVczAYcqHX2WS4oPeH VIaoyz+V8QnD
uX8FEtqouIXPqMimZfWkdqz0jyL2cxXzuENqBPbPPO6JmnBXVCziCwY59GK1 qVX1hMokVYtB
td12dFxn0U8JZ7Kb0daWuAta/TRv2mM2jRqR8b09Kvyz/qxpf5swfB5ETthz 5OQXsmUHbS/g
x4SqL2ibkxor/Tfo9N1txHOlHzRBAbpC2U4cw8xguFRVz7FqghOZLt/rmq2B b/b/uYWipRke
iaZXGJR1L/Kb/IEtLvnFPoQ5kTAJWHNd7lcdMwh4IOMppToYA6pNAgdMEQOJ RgZM08S7RK91
BilBibxDtLpFqxTNSqH4G9TCAc79SqsUPqBvls4AkxihrxrbCs7jAs3U6bjY RfiLELM020cY
2zjA+Iq09BrLmvIGlxbS0u3Ma1wfT49mjjCxMfLxAaYm93FtZHYf+dEMWfso rb/MsNGMprx6
92dpPH2IGyk8fSmxSU1/9e6odIjbDG8grZbKh1igrfIvJwTnYgKXKa0pnMUV onYVl3ANd2iu
0otQJ/8TzOI5dLSQjxP5hmQgst1EhLWELymVHEx8hbuErOA73KN4iU7M4z6W kab3r4QH5MsQ
loKvCUXIWoPWFaEYi0KjV73Se+qxE/W+pV90Ams00kmBc3FgobN5wpZRTitd sFXinYqth2RJ
Gqisa13YGdqRBFaheIDvk0uaisd6/H1MOiFuCoYGfkDqH1BLBwj6cHRvqAMA ANsHAABQSwME
FAAIAAgAOmBqNgAAAAAAAAAAAAAAAFcAAABvcmcuZWNsaXBzZS5yYXAuZGVt by9iaW4vb3Jn
L2VjbGlwc2UvcmFwL2RlbW8vRGVtb1RhYmxlVmlld1BhcnQkVmlld0xhYmVs UHJvdmlkZXIu
Y2xhc3OdU11rE0EUPbPZZO02SdNWq9XaRo1pPtC1UsQmIkJECIRaaMmLT5PN uN2w2S2zm6Q/
Sx+k4IP47I8S72yWFJMiwYe5M3fmnnvO3Dvz6/f3HwAOUDegMbwOpGMJ23Mv QmFJfmH1xTCw
3pM54z1PdF0xOeEyKqlFh/eEdyKDsdsX0oDOUJ9HDz5zW1hjChYytOYAGYaD fwPaMelfMIZM
dO6GpRcMlc5yYpuEeeP6bvSWFC4NqnYZ9FbQFytgyGVh4JaJFNayWEGBIVVR AWsd1xfHo2FP
yBjNsNEJbO51uXSVn2zqSjJDY0nuxerSFfKOiFqBNxr67SF3KOlRpTPgY255 3Hesj72BsKNm
u7pAISeR5dDi3LWpoApKyQzhiaHwI6V3IQnDqj0l8vvikoG1qQAz9jNxSbD9 m8mv904j6fpO
08Auw+anxQOqoAwm1BkpwpE3J2QWI5Zu1/+Xtto1qcMl1VeTwTwNRtIWH1zV t60F/HMlkiHb
9n0hWx4PQxEaqDKUl+NnWF9QgCLxp2ikwQoF9dDoQ+rQlCDaXSXvkDyNZrNW /4Zs7Qr5r+Rp
WCeboRj1gTfIZuO1iU3cppnhDraSDO9iDsKwL3PIVzGyOD1NkGp1F/ficw3b uE+W4QF2kmwO
+Wmac/WfeHj8bOdlQ9/WrxPn42RHFNIgMc2Y4HAKmBHkZgS5hCBNF9/DLmHV RyviEfQCqAiP
E9Iyxai8mVr9Ck9uLoAWj6exLWM/Lga9YFRQg/YHUEsHCBLYVnU1AgAA7AQA AFBLAwQUAAgA
CAA6YGo2AAAAAAAAAAAAAAAARQAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jp bi9vcmcvZWNs
aXBzZS9yYXAvZGVtby9EZW1vVGFibGVWaWV3UGFydC5jbGFzc7VWW1cTVxjd hwSCYdQA3rBS
vJtEdOoFS4m1ShSNBkGDSVF7GZIjDA4z6cwE7OWxP6Q++VrXasNqXfre/qi2 +8xEwCRL4kMf
Mud853zX/V1O/v7nzzcAzuGnGLoETjruoi7Llln1pO4aVb0iVxz9Oj9zxoIl i6ZcmzVcP4ao
wOFm3pqpV3mpv+USiN6fKRUERE5gZ9axPd+w/aJh1WSENpMCsexM/sH03YIi 4wI9q5SUrsDp
fLPu5SdGWerhvadvOCPdDMUum7bpXxGIJFNFGs06FRlHBP0admKXwO68acu7 tZUF6QaCAgN5
p2xYRcM1Fd04jPpLpieQbLHdHgMa7i+70vClohid7zqWQLpV3l3z9TWzsih9 T886K1XHM32Z
SRVjGBJIdRxpHAfwkQrpEAHq1EouVdwBgY819EGL4bDARGfhHVcbFZW0/VnX WTUryoMRHFUe
HBNY7BinDvnaGSRIKuoTGk7iFNPmSb+JQ+BCqyPvQphrVRpDSmD8A/zKGwvS 2oQhidMKhlEB
+b/A8I65BghnNej4RCBBEN65FxjbFoJJw5PtlJ7XcAEXBXpZNo02OJFMvbe2 ArZMnEV1ScOn
GBfYo9ov61i1FZvqq9L1TclGGn9/jYZ6Uo/yy8aqoVuGvagXfNe0FzPKsQkN GVwWGAxS3qx6
X7KNWBjRFQ1f4CojomDOrtY4hfYmtzDPLCzLsh8wC0xqyOI65xA9KrBd2I5t oudcy5Uc9+mC
tMtLKkeKNdOHKdyK4SYR60hAQw63CRb9KkiLPpiO/SEpbBHKqGHXw4nL2hY4 1eFAEOj2w0Qf
6yA9IY5TTrnmxXEPhRjuCxzZVk7DDOaCefwwBnqZaE5WDF/S5W31hJmPo4SH qt8eUaaTosqp
Dv9KYH+z2cmaaRG5XnxD5N4qfwxDKV9oKpQtVfUYFQ0STyhkVKvSrggcSuZS LcwN9RklsaTB
xDLx853wkqlPtopkVHCWhhVlP0as5+QzX505Gqr4LsS/ZFb8JT5QtKlS7kqv ZjHlg22agI+t
KdDnb6LHmt4espCV0vGCU3PLcspUFbKvZTqdVQYFtJxtSzdrGZ6n2nGwzejm 69gyyXCEPafe
+ggOohs9pGKkutBLescWOs4f3yvuozzjI87vblI6V8G1O72OxMuAdYDfnuBw Pwb51UIG7MFe
royB56HwS54q46X0KxyYPx1Zx8HfMZz+DcOvMDKfFus4UsfxkE4GdLqOM4qu 49y0WtOj6xir
47NgX8fn/F1T+z9wowub7hxlPMBV+n0Nw5jEGQ6ZMVwndYMzYApF3AxcPRy6 03BV7e4gT2fH
qGEad6lNsI/exj7RiF1reFTHbGnTpkIMuE3U7myBQWvo7lKDuqHnL8LQzbWQ iL/Gg+nIlRfI
vkIpAGR+IjrK6B/PD3y9jm9ppVzHYmGIh+freDrc/Qt2DUX78aYO+wXiQ9HE FHc/R8RwIv78
39ejv264k6ZDYAg9DKAPs8zCPaRwn/8zC7iEOUJRxC3e3cN84O7F0KUNKAoB AKx1ri68oERy
8ElHqOs8alhlaXRhLbD4DN9zHeBuhDI/cE1y/RFd/wFQSwcI7ezAFJ8EAADe CgAAUEsDBBQA
CAAIADpgajYAAAAAAAAAAAAAAABPAAAAb3JnLmVjbGlwc2UucmFwLmRlbW8v YmluL29yZy9l
Y2xpcHNlL3JhcC9kZW1vL0RlbW9UcmVlVmlld1BhcnQkVHJlZU9iamVjdC5j bGFzc51TTU/b
QBB9mxg7CS6kqaEf9COFAEkgGFA5VEVcqCpVjdJIoBwrbcIqNXLsyDbt32ql ppV66A/oj6o6
u7ZiGnxIuex6due9N29m/fvPz18ADmAbyDHs+8HQFgPXGYfCDvjYvhAj335N y3kgRM8Rn7s8
iGoyeN+/FIPIgMZQvuSfuO1yb2jHpwyax0eCodJOr86iwPGGrxgKrj/gkeN7 DPqYB8Kj/MP2
/MpdhSEiPfrohLV9hu350BJy7HhOdMJwXJ8Tc9NBo0f+Tv0LUQR5N1HCYgl5 VEyYuMeQrzd6
8mbFxAJ0huW244nO1agvgnPed1VXqAFujweOjJNDTZr5v0bEzSZXndubybIn q39swpDVG0MR
ddQsrXoja5qLlNCeDrQYiqibzPRozqquDzUW3zBRQJHYhinbC5K/xRspRH5c aol46yae4ClD
6cy/CgbijSMbvzJLsCddMphvPU8Epy4PQxEaaDFszqVP9OlwUCXZPP1hGnLy OdBXTjZW7eQR
KJflA6LYoEwTd2hdougd3UvccnNnQssP3G3uTmB9VcBVWpfU9XMifUY0Vdyn aJXuCIIHeAio
LymZU8SPEuIPFGu0W/8SN1sTrKXsFZWzRfgNYq8RclMpVJWqNVWwEgX5JW3l SYVanGjZtDPa
F5rfYH2ZkuvqsKEIzTghIWRkJgu8NgtuZYKr1I8YfELZsipdulxPfZXU6QFh Dq91TJ/60dVQ
pHCNHN8sZH22kKPMQrYyXHzH9iz4ZQY4R42RaxM7ql4J38Ue8BdQSwcI0dN0 CkcCAACrBQAA
UEsDBBQACAAIADpgajYAAAAAAAAAAAAAAABPAAAAb3JnLmVjbGlwc2UucmFw LmRlbW8vYmlu
L29yZy9lY2xpcHNlL3JhcC9kZW1vL0RlbW9UcmVlVmlld1BhcnQkVHJlZVBh cmVudC5jbGFz
c52Ua08TQRSG36GXhbLSCha8i1pk2yKLIIpSuViiEitqwBLh09JOypBlS3YX jP4YfwEfNJGS
aDR+9kcZz0xXaLDG1jSdzuWc55z3nJn++Pn5G4BbmNfQwTBWdSsmL9lix+Om a+2YZb5dNRdo
WHE5Lwr+5oXl+im5oAl3fA3htryeb2zxks/QWdoUdpkIDMnClrVnmbu+sM15 17XeFoTnTzNE
/U3hpcYYhgst8aVLTjjCn2HIGS361GPbllMxl31XOJXpdJEhnK+WeRcYTunQ 0BlDCHEdXYhp
OM3Q1yTfGBLokyZnGEJGuiid+3VEEGWIF4TDl3a3N7i7Ym3YnKG3UC1ZdtFy hVwHm2Gpl2G8
tcwbekDCw461rbh/yKFSW+VyXlabYbLFsjS0iuohtQ3quIprpI1g1DKjIdBv uzVZppSOIdxg
6PK4X8+uzaiBJNmFSKmedTsVCZJh6HbpeI8r4VJAVseIFBCt75NBhfv5o0s4 aaTX2w8jwWM6
vZ5xaoEn3nHV/EW5fVvHJO4waH5VXRIGw1hvUrUmexqmGCb+Ix0StWl5x6Io lzWG2HJ11y3x
R0JesuRJ/1EZnkFfdBzu5m3L87inYZZhqKXwhD/uGgbp1ofo76SDPnT1gURC vh/aidAJvR8a
u2m1TFbSbiCTPYCeyY4coifzBYnXh+g9QPKjQgzQ2KPMFsj9ITnmcZZW/XRG rjiH84CaXcBF
2mO4hMtBgKcqBSCe+YRktoYrq9lMDddPgh9TTk9ovtgAjh+B4xiGQUCG9F/B mdUsawIuEPgZ
zZf+Ab6J0QA8qxQASQmW3xrMrwjVMPEddz8c4aPK6KXC6nWHAMtwD/cD2JSC UzIB6D0i4f3Q
/gnKqwZKT0DpwLQac3hAvzHFmcEc8AtQSwcI18AJSZ4CAAApBgAAUEsDBBQA CAAIADpgajYA
AAAAAAAAAAAAAABeAAAAb3JnLmVjbGlwc2UucmFwLmRlbW8vYmluL29yZy9l Y2xpcHNlL3Jh
cC9kZW1vL0RlbW9UcmVlVmlld1BhcnQkVHJlZVZpZXdlckNvbnRlbnRQcm92 aWRlci5jbGFz
c51W7XMTRRj/bZMmIU0hDaUYRQ3Y1xSatLQVWqCWUjCSltDWCsUXLrlteuVy Gy+XdnBG/eSI
b/juDF/85Ed0cEbaGRkd/eSMf5Tjs3fHtaYBUyZzu88+u8/ved/N3//8+juA QYggmhgmhFlM
8YKulSs8ZSrllMpLInWOhgWT80WNr+cU0+p8uODmlDAsblg5U6xpKjeD8DNE V5U1JaUrRjF1
Kb/KC1YQAYYTtdCry0qBp9ZsmEoqM2+Z1YJVNbm6AzPEMPQ/0tKiGjmGVs1Y 0ypaXudzQlgE
km3cPSIIa5whYK1olc40Q09j0lLklGZo1hmGZG+DMn2LDP4pofI9YGiLoAWR MHzYH0Er2hl8
vfLAvqxm8NlqKc/NBYWcYohlRUHRFxVTk2uX6ZcGM0zuwtm6uSRHIppRrlpT K5RKrjLM7HTn
v2lwcMaztQVQhyMdYmsM3Y1BMoSErmakOdLtHXC0b/B1dz+oapWyqFAsWorc mtZ5idyikPT0
1rHj2k5eEJ0Mh2rtqmqpzMOoyTR1R7AH4TBRvRH0yTSFZdo1Rdfe4ZLdH8FR HHGMmFrRdJUq
ioqjbFcWwx5i51y6u55l9QwbZEg3nldHLIw0jkcwgGGG4d6+J2mC5oK0P4gX d6XeEQ9jFCdl
KMYYRnop3ru1n/S3rCiVrRAeqBetJannTATjmLAbZimESYb9044iqu2ETs1i acIIYYrhyopl
lcdSqZJSrgwUhSjqfKAgSvZ64u3TI+n0YNdQ+oLJFYvmyRI3tYJCVO7G+k2a 5hXDksspXTHt
eZKGkyPpkWEZ7WnZt+cZZhvt/23+0D2oGcU6nL7FEF6m4nc9SpwXVUN1HXqF ofPxDl2yLGVd
CSHLsDdjGEKUTaVgJTJGIYRZKsDHS+eEaZEtagg5hg5561g8oRmJvCnWK9xM yG6V8Z+Tjs8z
nHpyx/sWJdCrESziNepqRVXtxMva2X3lyJhdpZ7LcmU5YadmLoTXCdYpzcRQ CG/SjSmfhxCu
M1DX+iwxuLunwqtSEh2yx+MMTeVBmxyWJHH9pv0EhedF1Szw85q8qQ/Uwg3I aNC1Swmi61hX
KhVeCaLE0NWQNQzxR97mSEjf0IRm0EtPP7q7gGhUPjX0ByBEXyv20pl9RA3b J4Bwsv8+oslN
xH6mVRMO0BigM8BVdNAYsekwDuIpyNjF8bSLkKHPL3m1gtdtwaSz6QpK6hkc svcZnsVztnKG
54ny0ZxAuwvbb/PrwBa22cM8ew7jiCvIXY8O9/+JF+7gYPIXdP2FILnWk5T0 BpL3kv1y9IA7
KFTAMoWrSIFZQQwaWXnDVtThgHn2H8YxspVeNLplU67KGZrlqTZSmb6Dlv4/ kN7A0D22pWIv
uQcIUlEmEXMbdJsH3YYRF/qo503OhW4n6FEHenQDJ+75foOvFn2N0NdJ6uY2 9HYPvd0zfByn
6hi+hX76ru9uDfS7BP0eibz/CMMd6Cb5ODrQbIliKkvtpwdIX6W4R2Mvxc5u 4lzWW1+IZWg9
460vxmZoPfsAo8760iYuj/njfsrVQtx/1B6P0egJXNnE0lizd/6aPB+IB+LN 9iGX+4bkBuPB
uF8CBOMBmpLe7lu0ex9dsi7iQdrZKraziNL4IY23qCo/ovvkY0zgE0zjU1zE Z7iM21Thn1NK
v6DAf4kP8BXtfE2/b/ADvsWP+M6O1ZwTBTdWUXwPBXm70m9TKedJW5oiqxLl I3xB5RumjrmO
WarHPMVQELdIvABp6KPaDNtNrdl2rlKNyqaUSdVhAP8CUEsHCFSKqnowBQAA 5AsAAFBLAwQU
AAgACAA6YGo2AAAAAAAAAAAAAAAARAAAAG9yZy5lY2xpcHNlLnJhcC5kZW1v L2Jpbi9vcmcv
ZWNsaXBzZS9yYXAvZGVtby9EZW1vVHJlZVZpZXdQYXJ0LmNsYXNzlVRtTxNB EH62LT04ThGk
lRdfQEHaohyI+EIR1CpJk0ZJICX47Xpd4fC4a/au8F98S/QfmGiJkvgD/FHG 2d5hsT0jfrjd
mduZZ56ZndkfP799BzCHpwpiDJOu2Na5aVs1j+vCqOlVvufqT2jZEJyXLX6w ZghfQYJhrN20
buk1OtSPrRiS+yRywZArtRvvvjRMrgfnnn4MzkWevJYsx/KXGeKZbJkhUXCr XEUcvRoUdDP0
lSyHP6vvVbjYMCo2ZxgouaZhlw1hST38mfB3LI9hqiN0ZEoUt98U3PC51Aqu 4wvXJuKZDndx
4OsHVnWb+55ecPdqrmf5PJ8tKzjPkDltnioGkJIJ9feA4YKGLiQVDDOsnIru RAtJcuWOvybc
fasqgYcwKoEvRrKPTj5blnwua7iCMSqnx/02VIb5Tqw/cyu2uYSgVzVcwwRD N4EWnVqd2iKV
Ke0a+4ZuG862/ryyy82AAcN1DVPIMChU3XUqK0M2k+2IS41W3HTFqwp3zB3J X5rme5HDDQXT
EU0c6aDhJmYYBonXOreJg+U6rXQX/pluh1NedmuSRoCKENV30Y0TVGbVNeue LNe8httYCCog
r4hhIqICJ6GkVV7FXdxXcC9iLNttNRr2xeZwvWBQ1926MPmqJScm1d4XM/Ka GLSi41Cf2Ybn
cU/BCsPs6Zs0uF+K1FIUPP4viLWwpOpJZfivE4Bx6qQ4PWoMMTlWJMVJpreD 1h7SdNoZ7V25
Q6ifSIhBozXZ/JnCGVq1wABn0dcEOof+0LmOBNnTi5k7wsDW9CEGvyCd+4z0 EYa2CHCkgUtS
zTUwTt+klL8iG0MrUJqAgdckv8Eo3tJ8vMMs3jcDpwPwMLCUdDqTfOd+818M +WsSu4FbDdzZ
bKGrTYQP6MXHE6loIWIM+ea6hAe0j1Bllun8IcmPaC/QPkT7E+AXUEsHCIPy Yza+AgAAGQYA
AFBLAwQUAAgACAA6YGo2AAAAAAAAAAAAAAAARwAAAG9yZy5lY2xpcHNlLnJh cC5kZW1vL2Jp
bi9vcmcvZWNsaXBzZS9yYXAvZGVtby9EZW1vV29yYmVuY2hBZHZpc29yLmNs YXNzpZJRaxNB
EMf/k0uTNlbbxlirtqBvScVbfDVWkIoQCCJUWnzc3I3X1evusbmk+K30qaDg B/BDiXPJEesZ
VPQeZnbn5jf/3Z35+u3TFwAPsddEjdB1PlEcpSYbs/I6UzGfOfVMzInzI7bR 6dN4asbON1En
hNXsiVFsc/8+c8bmSpB3lxlC47GxJn9CCLq9Y0L90MXcQoC1daygQdgYGssv Jmcj9q/0KGVC
e+ginR5rb4p9Gaznp2ZM2B/+7Wn7hL2E84GIG52eGBu785fsxxlHuZnyICZ0 ur3hWz3VKtU2
UUe5Nzbpr2KLcFdUwlIlFJWwUAmzHzhhN/Ksc15ceK6wuLbv/nLSn19qUCEP nX1jkoln3+/9
AV2u2W/iBkH97n2WUC10cLNoxQ7h4H/OLL3dPK9ECY/+vSKhdeQmPuLnphiA nSU9Dovu4R5k
uFB8gaxkqMQ2ZafEk/iV/QusfpRFDS2xjVlwC1fErs8TxF8VT7iGjRJ+UMJB e/NDBe1cQoMF
2sb1Ej2QaE382md0Xt+/wHa1wO1Zge15UlmgWN2SP4XqnVn+7ndQSwcIWX1s zKYBAACoAwAA
UEsDBBQACAAIADpgajYAAAAAAAAAAAAAAABBAAAAb3JnLmVjbGlwc2UucmFw LmRlbW8vYmlu
L29yZy9lY2xpcHNlL3JhcC9kZW1vL0RlbW9Xb3JrYmVuY2guY2xhc3ONUttu 00AQPZO6cXHd
hlB64VKgFYiESqx4DkKqKEiRAlRAW3jc2Nt0y8Ybre1W+St4agUSH8BHIcaO FYlWgj54Rjue
c+bsnvn1+/tPAM+w6aNG2LRuIFRk9ChVwsmRiNXQih0OB9Z96askOvLhEa4f yxMpjEwG4l3/
WEWZjzqhfRHtTjNh9KGKxpFRovsqydx41+okI9Sf60RnLwgzrfY+wXtpYxVg BvMhfMwRGj2d
qLf5sK/cR9k3inCjZyNp9qXTxbkqetmRTgkPe/8X3iHMRU7JTO11CY9b7UuY Qu6pjgcqS8WO
TkdGjjsBlrDs4yZh/WJ7rsWukdmhdcO9bogVNAkLkwkV2scaofUvaaWy7fhE p9YFWMV8Me9O
iLtYJyxPyLaT+H2eTO9B+NS6kvRLTSxYFRaMCgvElLAa3yl8qDuV5ob9eXSl EYTgg81dpF7r
0qK/HvxpsSTYAHvM3yyvWY0zu8vxGp8EZ+I8++QMwbfyd8ixXhaXsMAxnDRg EQ3OvHdoVuA3
TFrj3Dznxdj6gdXPZ7h1jttbX6dEi9wCtsXjd21grSRcmYAqQo9r93C/1PGg xG38AVBLBwh3
vXpOuAEAABEDAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAAAE4AAABvcmcu ZWNsaXBzZS5y
YXAuZGVtby9iaW4vb3JnL2VjbGlwc2UvcmFwL2RlbW8vRGVtb1dvcmtiZW5j aFdpbmRvd0Fk
dmlzb3IuY2xhc3OdVGtT00AUPbdUQtMIUgVBRV6iKUUivrWAIohWq+Kg9fEt pEtZDUknDXT0
V+kXtTLjD/BHOd5ta+uUSh3ame0mPfecu+fevT9/ff8BYA7PNUQIlh8ULOG4 slgSVmAXrbzY
9q0VXl75wfsN4Tlbr6SX98tL+V1Z8gMNUcLV1qAdaQkvDD4UfemFVvtIQve8 9GS4SFgwswcz
ZFooln1vUxZ2AhGkkzlCdNnPCx1diBk4gm5CX1Z64unO9oYIXtgbriAksr5j uzk7kOq5/jIa
bskSYW6feodDpwm600iBcPvw6RMGnUDYoVhyQul79+ygYc9mR1caMX/70SGo VSet4Tgh+U8H
WvE6EhhQNg8SbhwuQ67Y1cMEEo4WA1Gz8FlReIQuM5nTQTht4AxGCMcLImy1 mDBvdjLlgAJp
GCVMtIYH5dAq8GZLOiVrTXHoOItx5csE4YiZySRzcZzDeQ1ThJuHVTdwASah tyTCDF8Vabvr
8iM37oX9xu/PKF1LYdpACjM1kvUtxe677Ct3v/k2mevBLP/VSGBMlVxFXTJ4 JFwm9HDUCxmq
2zJgZt/Zu7bl2l7BWg8D6RWqtewt+qWwWRUd13BDw3XCSJtjr7l2uOkH2y8z Bm7iFsFQJfsj
TxhvX6umRek40ljQMN+evwk0sIg7hCHmV820K1pcVi520KoBWXEJyxruESb/ A25gBffZuIKy
W7guYaqNjipXWeYZVLKqsLSOB8hoeMgedAQbeKT6LM7FUXNNXRVCrNy0cbSD iTx8y3UXpv7L
A5546/5O4IhVqXph9N/DcVY1Ccb5VnZBfaK846HMq8ZPi4jwF+ieTn1Fz2fe RaDzqlffDjFy
GHHeDdZQMHC0ytKNXvQxB+EY+utcC6ygULE9JN4w3YlPDTolB76RTapYgyrG VCerVEMsVqNy
WVihzOkvOJVN7eHsm/6usf7I668Yq2AyglS0giT/JC5WYEXQTHyQI4EJXieZ 7xxGMcWX9vxf
ymZdWSH+HOJKQ9nhQyijhr/xUExVcJvwZKaCu3zQ1WPDX7DalEqwl0CS12mm T7HcTFVmrEZQ
l4liAI+RZfo4yz3BU44mPKuyrP0GUEsHCNkXNm00AwAA7gcAAFBLAwQUAAgA CAA6YGo2AAAA
AAAAAAAAAAAAPwAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNs aXBzZS9yYXAv
ZGVtby9QZXJzcGVjdGl2ZS5jbGFzc41UW08TURD+Ttl2V6i3I4hVRBQvLYWu WK9FwQtWa+oV
0gceTJb2UA4pXdwuEE1MTPRP6L/wyeCDP8AfZfz2YiAWkTQ9l5n5ZuabmbM/ f33/AWASj0wk
BEZcr2mrekuvdZTtOWt2Q6269gvlddZU3dcbyoQhcGTF2XDsltNu2s8XV6gw kRK4+Dd2XduV
HdCyU/dd761A6rZua39aoCebqwkYD9yG6kUP+tIwYQkcruq2era+uqi8eWex pQRk1a07rZrj
6eAeCw1/WXcEzlX/l/OUwLG6pxxfVRhXO62q89Zd9wVGs13YMGenqSKTqVyt D8cwYKJfYHhv
2zSOY1DgYFP5DxuaTO8xpEB/NlfdLtec7+l2cypwmknjJE7RoLMTUNMdHbHL LuRqFk4LmL67
VlVLvjH9AQiQI2mcxTmBdESq7LYayhN4ku0OVCl3y3K7ko68xLQtnI/6WYjN CjQrBHUtzHKZ
95SqabX5wvH8Sh8uImvi0i7D87ffNHIYIyGn0QjgAgO7pBywHhe4tL/oFQsF gd5F1/fd1bBK
MxxnC5MC2X16oIsihzJyYcxkPn+xcH1P+sH8/cFbuLnvZMmsJGCxn690c5mp FotFC3cExv6J
n1OtYIjd9na8mb2o3ffczY7y/liTVyse9pH/zTrLqHYMruxuzW6PrWt26GbO XffqqqyDOT6y
4yEWAo+cXb58/pNsVII73zzXA7zZ3AX35Ng39H4N1WmuqUiIg1zT8fkQDnOn exyNwOI1pSZl
n/JbkAJP8z1bOJFAXg4Zcnh8C2eSeDYhR7dwIYEJmQ/3vJwwpS2HQm3JyBjy ciy/YsqrEaiU
zCTltVDMw41Yfyspp2J9KpOStyN9Sk6Hh+3c32E4nEeTOR5CL7Ptg6Smn2wG eD9F6Si55Mmk
QK1N7STfeJH3Eq0e0KrML8sjDKKCE3jC+0tksMCPR53oJQyhidPQjLPC+xuc YcwRfGSZg3o9
jmoS1ys43cW9sOjvcZ/eE8Ro4mfZkhK9F3gyGKHI3ywr+oa5lHgKevAwZFX+ DVBLBwiWh88T
DAMAADMGAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAAAD0AAABvcmcuZWNs aXBzZS5yYXAu
ZGVtby9iaW4vb3JnL2VjbGlwc2UvcmFwL2RlbW8vUldURGVtbyQxLmNsYXNz pVNNb9NAEH2b
pHFiTJIGKF+l9MPQfJS6OReQUNOiSqEHWsp5a4+SRa4d2W4qfhCCK1ILiAM/ gB+FmN2ES4sC
iIPXM+s3b2bejL//+PoNQAePLOQEFuKk75EfqmFKXiKHXkDHsffy9UGX327H QkGgfRGTnGYe
jSjKUm+fQvIzFUfPAjnMKBEoZgOVuhtM3ZvGvSlQHsnQTQcUhgIrl8A6yakK +qSzaBBHFB+r
SGVPBbqN6eR/wdY8FChsxQGVIXDVwQyK2qo6sFCykcesgzLqAvmGhlZ7KqK9 k+MjSg7kUUgC
9V7sy/BQJkr7k8uC7l5gcWp5bod7qYzLGQtIgcD65Z5+J/S29rl6G3cwb+Gu wNIfm3VwDwsC
Nt90VToM5VuB1UZzqkoT4KaNRSxbWBKYn9aTgxW4AiXp+5Sa+e/8z4x+ZdfS zxgJeA//QR9u
dj8+SXzaUXosziTp+hs5kuzuRhElW6FMU+JpVbcjP4xTFfVfUDaIAwdrWq6S n5DM6NUuNngx
8vzX5Go1vSdAra63RN/wU4bN36+w9YR9jau22udwWmvnqLQ+o/bRAK/xaZsA Lg7vcJ0th22G
4wbmzP1N3JpQPWdkzlCdMdMZKp9w+wvuX6R6jwo+GKq5MXxCpa0HeGjqXjUx DTRNlDApgTpa
fBZ4uu2fUEsHCFNOwNr1AQAAFAQAAFBLAwQUAAgACAA6YGo2AAAAAAAAAAAA AAAAPQAAAG9y
Zy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBzZS9yYXAvZGVtby9S V1REZW1vJDIu
Y2xhc3OVlFtP1EAUx/8DC11qBeSqgrjgKrusUMAbsnjhZkKy+iCI4XFoT5Yx pd20A+jHMsHF
aOIH8MXoBzKe6a4vQBZ96PTM6Zkzv/OfM/3++8s3AHNYtdAmMBbFVZe8QNUS cmNZc33aj9zX
b7fW+J2ft5ARKJ2OiY+0S4cU6sTdpIA8raJw2Zc1TbFAp95TSX6WU1da5S5z 5JIKlX4qMF5o
HVrcFsisRj51QeCSgw502mjHZQcWugXaCyagp6JCenWwv0vxltwNSKCvEnky 2JaxMvOmM2Pw
BHItd8zPM173kfKrpBsVki8wcxbzPCXWzZyZbQzhqoVhgdFWezm4husCWel5 lCT5OYGVi+Q4
F6NBm7hb9F6XLYwKDL+Th9INZFh1N3WswurKgQp8irMYE+jXMdGGpv1c0ixw MWdjBDkj6rjA
YKFyejnX1IVbuG0hL1D8Zykc3MEkC694M4GJlvAGqGyjiJKFKT6li2Id3MW0 gMUOU7fAQKF4
ltvU5TqYBYvbKWs1Cvk0p88r8IyrKVma4p6D+2a3rI4aH208xIKFRxeAGjIH j42qVvIXtCPV
ii/Xf/SUgL0ZHcQevVCmlZ1mQ8wYaJ5uhCHFq4FMEuIO71kPvSBKGPMl6b3I d7CMFYb3YpKa
3mwITBZad9KaSmqB/FBm4fiS8U9D9Paau8dWGz8WsuzvYmuB58ZjT5U+8XAC 52Ma02N86Reu
Fz/Qy5bDtvFeQV/q78dAM8sOMmns+NQx7M8Y/IqRnb4bJ7hZOsZEHYU6ZuqY r+PB6eQ/kcOv
NPlQI0EzubEWUU7hl9I1T/A0XSVSCHDUMx4zvO75H1BLBwjfJB54bAIAABgF AABQSwMEFAAI
AAgAOmBqNgAAAAAAAAAAAAAAAD0AAABvcmcuZWNsaXBzZS5yYXAuZGVtby9i aW4vb3JnL2Vj
bGlwc2UvcmFwL2RlbW8vUldURGVtbyQzLmNsYXNzlVXpUhNBEP5GIgtx5Ij3 BasGSQJmUbwj
HlwaDaBc3seQTMFay25qdxP0dXwDqzRSWmX521exPB/Asmc3CgVWEn/spme2 ++v+vumefPr1
7gOAExAatjB0Oe6iIfOWWfSk4YqiUZDLjjF9Z3aUfuODGiIMfRt93BXfkGVp +54xIy2Z903H
vloQRV+6DM3+kunFBwg6Vws7w7C9LKy47xTHHaugIns3BahEK2ZhUVKmWbEQ OlJk80XTNv1L
DNcTtZM0iJicZ4iMOAXZCiqLYyualdXOoaEliiZ0crQixtCUUK7tOdOWk6Xl BekShiUZYjkn
L6x54ZpqXd2MKCUY9JolxgeJT1tYUiimLDCkN/P6l+hjak3VR7EfBzUcYDhY KxfHIXQxtIh8
Xnpe/CTD4Tr6JbMKWuc4jCNrgYMMR+oEZlVRcRzT0MOQbJgLRy8SDK1KDKfk 5knFnYlk7pko
C8MS9qIxtfCM3DMaUgw9DR1uFEn0cxxHmqHzr8iUMGsX5PPgSAOSA5yGYh3J U2pzkOPUeslO
K7QzHGdxjkEjtKwvlxkSiWyyXqspz4zCvMCRwcU1zDMMw/WOoTa4fK4UoXHY sybUjO+a9uJw
yVQatOAKHdnsktSLriybTsnTfbGgv3BKetn0TGo5fUV4F/QohjCsWn2EYVci txEt6LQxXNMw
znC0Ab4c15ENhVJFbjzMKqrKepMjhwmabFEsSpsm4Pi/0m/aqvILIKY4bqls Lb4TfoxiGrMa
ZmgE68nHMac4a96fQrcG7Ul333/MIU28GbRDT0O9wBANe3zcVLcFrx52WnGk Zda2pTtiCc+T
dIm0j9l5y/GI1YT0l5wCxxM8Ja55VwpfzhHt3kTtLhk1vaIlXmQwQDdbE/0F bOnoUBcd0BFT
15zaoacVUfq+jawhWiu/9lTfG/BU/xu0pd6i41XguIPe0SCAaOAzdpLFySZ3 7MLuYH8P9lah
XiISQOVSrwmJnlXsW0W3svoqOPoRyQr6VmHQRlv4+WQFpydC8/x7DN2LXX6L q/0VjFZwo4LJ
Cm6v1dFF5QNf0Iav6MY3pPEdl/CDeu87buJnUJse5q/Wpqx53KHq0hR9F/cC qvcDxAd4GHBj
ARsghkf0jtDgPv4NUEsHCDrhbX9OAwAAPAcAAFBLAwQUAAgACAA6YGo2AAAA AAAAAAAAAAAA
PQAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBzZS9yYXAv ZGVtby9SV1RE
ZW1vJDQuY2xhc3ONU8Fu00AQfds4SZO6SUhLoKWUQl2auGldpEocipAgLaJS 4NCGct7aq8TI
8Ua2mwq+gl9BSgTiwAfwPwhOiNlNemlQlIM9b6x5b2b2rX/+/f4DwBM4Wcwx rMuo7Qg38Hux
cCLeczzRlc7p+9YRResgC4OhdrMmukoc0RdhEjsNGSaRDF54vJeIiCGTdPzY 2ifh5jTlQ4Zc
nwdW3BFBwLA5UaxaXPleW1CPM1VEjAXFSKQMXnLqtDWV0xqVXbNcGpPmZdie ymrIbk/GfiKI
l3nmh37ynOFzdfoqM8w+06gzTlY7ZzAa0hM5MNwykUZGoSUTWcwrdNtEDnmF 7phYgJlHCism
FrHKkKoqerHph+LtZfdCRC1+EQiGclO6PDjnka/y8UdDecmwMXV964DOquCO rsGpiP1PwmOo
T57Z5KU5Vhntk8cjWFlsMqxN62RiCwWGee66Io6tpwxprUcXdOZmDPkzeRm5 4pWvNjTH0nsf
eJ9TehKGImoEPI4FLV48Dt2ADj1svxFJR3omdrFHA7iR4Il4d0K3qfr/1teu HflxL+AfD7FP
bqTotzNKJWUYUCoru3Qks3Qkq6hijp5FFKi+SOg15WmKq/bOECW7PkTZ3h1i 2V4xhqjYX3H3
i+bco3dec8l//MIaIZMwMXEf6/r7A2yMVZswdO2yPSDRAWkONK58w8Ober+x hD9arzLijPUU
eoxtvVdVc2qwNYvpvkAZO2pjMrf+D1BLBwjc4HH1JwIAAHUEAABQSwMEFAAI AAgAOmBqNgAA
AAAAAAAAAAAAAD0AAABvcmcuZWNsaXBzZS5yYXAuZGVtby9iaW4vb3JnL2Vj bGlwc2UvcmFw
L2RlbW8vUldURGVtbyQ1LmNsYXNzpVNdTxNRED1DS0vXta1VUbQgSIV+YBcf eEJNDAVjUnwQ
gs+X3Ul7zbLb7G5L/FkmoMYHf4A/yjh3W18KqRof9u7M3DNnPu+Pn9++A3iG dh5zhJUw6jns
+noQsxOpgePxWei8e3/ckX9tJ48soTWNic4Th0ccJLFzxD67iQ6DV54aJBwR cklfx7Vtoe7O
4t4lFEbKr8V99n3C+hWwCXKuvR6bKAYkHrnnOtDJS0KnPpv8L9gaJ4TsXuhx AYSbNuaRM1LJ
Rh4LFjK4ZaOACiFTN9BSVwf8dnh2ytGxOvWZUOmGrvJPVKSNPjFmTfWE1Znp 1XakluI4nXED
2SO0r9Z0XaP3jS7ZW3iAah4PCWt/LNbGMlYIllg6Oh746iNhs96Y2aUJcNfC Kh7nsUaozqrJ
xjpqhAXluhyn8z/4nxn9jm5aP5+2QPbwH/ojxR6Fw8jlA23GYk+Ctj+okRL1 TRBwtOerOGaZ
Vmk/cP0w1kHvkJN+6NnYwlNhcCNWCR9yMCRsXD+d6Z3CtuxQRh7YXLlsVgoo V8xCGYt8BVhy
f0OkF6IbXKnZuoTd3LpEsfkF5U8p8LacVuogWdAS7ohkiyxw3MViar+H+xOq 14KcS6kuhOkC
xc9Y+opHU1RURZGWU6rFMXxCZaQn2Ejz3kx96mikXpSGBCpoypmVRWj9AlBL BwgX+GmK/AEA
AD8EAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAAAD0AAABvcmcuZWNsaXBz ZS5yYXAuZGVt
by9iaW4vb3JnL2VjbGlwc2UvcmFwL2RlbW8vUldURGVtbyQ2LmNsYXNzlVRr U9NQED0LhT4M
tFYeoqgVq/YFwVdFKj54KVpAbZVxGB9pc23jxKSTBNCf5QzUGZ3xB/ijHPem dUSqRT8k2d2c
nD27dzffvn/+CuASNoLoIZy2nZoqqqbRcIXqaA1VF+9s9clGeZGfyXwQAUL2 IMbZ8VSxLSzP
VUvCFFXPsK27utbwhEPo9+qGm5xm6mI37gIhtK2ZSU+89wgTHViZY8fQa4KT lBnD+P6bhmV4
twgLqe7Uh5OlnxECC7YuwiAMKOhDv7SiCoIIRdCLowrCiBN6UxIaLRqWWNt6 VxFOWauYghAv
2lXNfKY5hvTbwYAsnZDoqi6Z51IGW2pa3RM6YaqzpD91eUn6rD6IE4TRt9q2 ppqaVVNLnmNY
tfktw9SFE8I4IfZ7htlEBGM4Las6QxhOFQ9+y6QRnMW5ICYI6X/WoiCJ84Sw TGVvOVXuwlAq
vY99vfKW4QWZ/aKCFNJ8jlqjISwuejLVCUx3KGtXVQghS4gkKvaWpbuziU1J OSkppw4w/Szo
r0xhLnRa4R24TKD3fK1IrquS6xphPLXSTcR1Qk8uISluKJj1KT5I76aCOen1 ceO9uozcVnBH
RvrrwqjVvRDmGftCplpUsIRl3gDPbtEf7Fq7hAju40EQKzxTh420gofyZIOu 8Mr+SvX558Xb
+x+Dxf1tneKyIedZaY/slBTG7oplCWfB1FxX8JhHl6yqabusc1V4dVsPosTN 6zb6Cp6Ct0mp
OkLzRKkuTJPbk/rz6P8sbtFwG6b2gecT07yivfzz6onF5MYCsbjcVxnhK4wI vz/C1hz7EhfN
ZPegZHJ7GMx8QuyjDzzG94j/AVdLmxhiS2Gb4RjGiB8fxfE21S4CPvZRZheD XzD2PH7yE05l
m0g0cSGeaSKX3YXaxJV4vmXP7LML++xb0r7LdhMLTdz7pSWPAU75EgP0CkP0 GmOkIUEV3qoq
cqTjEgnM0BvMUQ2LVEeRsetk+LpHWtrauqVVxKrfpDWff50j8NtC/vs4HvM9 gCco/wBQSwcI
ghlySvwCAAAIBgAAUEsDBBQACAAIADpgajYAAAAAAAAAAAAAAAA9AAAAb3Jn LmVjbGlwc2Uu
cmFwLmRlbW8vYmluL29yZy9lY2xpcHNlL3JhcC9kZW1vL1JXVERlbW8kNy5j bGFzc5VUa1PT
UBA9C4U+DFArD1HEilX7goAPQF7KU9ECSiuM4/ghtHfaMCGpScpDf5UzUGZ0 xh/gj3Lcm5YR
Aat+SLK7OTl7du9uvv/48g3ACDb9aCL0W3ZRFXlDLztCtbWyWhA7lrq+mVvg Z2zMDx8hdRZj
77mq2BWm66hZYYi8q1vmbEEru8ImtLol3YkNM3WmEfckIbCrGTFX7LuEgXNY mWNPLxQFJ8kx
hvGtU7qpuzOE+Xhj6r+TJTYIvnmrIIIgtCloQau0OhT4EQihGZcVBBEhNMcl tCOjm2K1srMl
7Jy2ZQhCJGPlNWNDs3Xp14M+WToh2lBdbIxLaa+pqXVPFAhD50u6qMuL0mf1 flwj9Gxru5pq
aGZRzbq2bhbnKrpREHYAfYTw7xkmoiH0ol9WdZPQFc+c/ZZJQ7iF234MEBL/ rEVBDHcIQZnK
qth57kJnPHGKfW1rm+GTMvs9BXEk+By1clmYXPRg/DwwcU5ZvarJAFKEUHTL qpgFZyL6TlIO
SsqhM0wnBf2RKciFDiu8A/cJtM/XsuR6KLkeEfriy41EjBGa0lFJ8VjBhEdx IL0pBdPSa+HG
uyUZeaLgqYy0loReLLkBzDH2vUy1oGARS7wBrlWjP9u1egkhPMcLP5Z5pv42 0gpeypP1O8LN
eSvV4p0Xb+9/DBb3t3aKS7qcZ6U+skNSGLvLpinseUNzHMFj3rFo5g3LYZ0r wi1ZBT+y3LxG
o6/gDXiblLwtNFdkS8IwuD3xi0f/pLgF3Skb2gHPJ4Z5RZv559UUDsuNBcIR ua8ywlcQIX5/
ia1p9iWuI5k6gpJMH6E9eYzwZw94he8h7wOulnbQyZbCNsPRhW4v3oOrdapD +Dzsq+Qh2r+i
923k+jFupKqIVnE3kqwinTqEWsWDyGjNHj9lT56yZ6Q9y3YV81U8+6VlFG2c sow2+oBOstFL
DqLk8lZVkKZdjNAexmkf03SABfqIDGPX6JOnu7umra5bWhmseE1a9fjXOAKv LeS9j+A1331Y
R+4nUEsHCHu+hbD8AgAACAYAAFBLAwQUAAgACAA6YGo2AAAAAAAAAAAAAAAA PQAAAG9yZy5l
Y2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBzZS9yYXAvZGVtby9SV1RE ZW1vJDguY2xh
c3OVVF1T01AQPUtTUkoUKCAiqAioLQXiF4gWUUDQagEFBBmeQnvFOCHpJCmM 7/4Rn3zWGauj
M4zP/gb/gzMqjr6oe9sKSCujD0nu3bt79uzuuXn/480mgLNYUlFFOOa4q7pI W2bWE7prZPWM
WHP02cX56/ztHlKhEOJ7fdwNXxfrwvY9fU5YIu2bjj2aMbK+cAnV/kPT6z7D 0Kn9sBPsOWza
pj9COBHd3zW2QFDGnYyoAaFWQxDVYQRwQIOKg4RAVDrUpUxbTOfWVoQ7b6xY ghBJOWnDWjBc
U+5LRkXSI3Tsm7F7iOkd3DAzq8IvVigyhP5ympU6MSH3zDmMQzisooUQ++cw Da04QqiReZ2c
m2bCTdFY6pGxbuiWYa/qMyuP2D2hop1rqARbJO3pKdPzQzhGQBht6NBwAp2E xu2COGPSzphp
wc1QorHlpIpuQstOpjnfNe3VsZxpZYQbxilEVZwm1O/10BBDD0FdN6ycmHlA OBUt57u7hGJY
Iowu9MoJ9hGao+XnsoFd0DWcwVnWipHNCpuH0B5NloOVWCZCOE+gDhk4IAMH CX2VoP8KICOH
NFzCZULId4qHe2dQQqnBMEZUXPmzJ489X6xpuIprLEwn53NxxVDT0e9wnM/R wljjTGO4rmKc
Z1LhWMOE7IualSbL5qJYCfH/kB8P1WIFEDorBu1WCfuGvG2RR8oL5QK9Ms1U LSeZlckPf8NF
sU6a8oZppUvUL4F4m7Rt4Y5bhufJuLoJO205HuNOCf+hk1Fxj4e632XUsIj7 nCPNjfHlNeYZ
91S+ir/LYqdJpzDQ2ALLgCfBvzyqr5d/Dl5V8aMixPYaXg3xXlrCPfGX/HoF 7XnBp07aCieE
IH1EPa80XktrAyIFeyOaSiibnENiT8bzaH6HtqnI0enePI5fVgKDwWfofIuu pb7XOPkK8Val
OdifR3/kXB4X8rg4/SRIzcFWZfPpzw8vkOjLY3SHQSfzBH1CiD6jlr6ggbb4 l/KVhb6FEfqG
CfpeYDZSzF5iJleTuMHcQnxyE0lGq0UCt3CbeTZgAClMQWH2PZjGDPclgDuF nHcxW6iQCpWC
0eb4rWAeC78AUEsHCJUY9nQxAwAAOwYAAFBLAwQUAAgACAA6YGo2AAAAAAAA AAAAAAAAPQAA
AG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBzZS9yYXAvZGVt by9SV1REZW1v
JDkuY2xhc3OVVNlW01AU3TeNhJYItYrzUKRiWgrBCcWKA5NWW1CoRcUptFeM KyRdSQr67o/4
5LMurS5dyw/wwU/wU9Rz0y4HWos+JHc6Z599xs/fPnwCcAwPFUgMBx13Recl y6x4XHeNil7m
q44+v1iYojUxpkBmGNwo4677Ol/jtu/pC9ziJd907Etlo+Jzl6HDf2x6iRGC zrXDzjCE1wwr
4RvLFmfobxIWRtbN8gonKwUhRBod50zb9M8zTGntwf8BLVlkkCedMg+DYauK LegQux4VCjoj
CGGbijBiDCFNiPbkTJvPVleXuVuoU47lnJJhFQ3XFOfGpSy8Z4i3pZcYI1+6 63TqAeRlhuFm
n1oFelqciX0n9jIggv04qOAAQ9+mLqs4hDjD9p9WCS1rl80SJ8ayllzKKjjM sOuJsWbolmGv
6Au+a9orE1XTKnM3ggQGFBxhiG6UUHEUGoNCCa3yuUcMA1rul8zc8hMylknm NqplIuhDSoR5
kKFXa35PFoXEkIph6JR9o1LhNkVqv5ZtBmuwzHTiGAOLC8UTQvEkw1Ar6L8C CM1RFadxhqHT
d+qPDDu0Fg6EcRbnFGT+jMkzz+erKsZBlRpyqj45V1c1Hf066fmkzY1VsnQR EwouUU5aPKuY
FHFRKuLKsiOYxmUFM+R+u9pScQVZIm6UKK1egnyY2KRXku2bhT/1KabXqEUb tRJ3HsW9RtXG
g/add9a9uOHysxT1POYUzFIHbAaq4nrgnsd9cWTYElQ6jZv/aANy1PvZQLHm /FBevKZSl5Yo
QMykj9bIglN1S3zGFN2rNmIyLIDomLVt7k5ahucJvZ5pu2Q5HuHmuf/YKau4 jweEUKJs+WIA
UKmlWjfxb3044wRVlixihMZNiGaxFI2K6QNEY2L2iBv6wtTbDF20G6ezkOtJ Db6Fmkq/RXfq
HaKvAsHtEENAKBATKY4dtFNpT+Loxc7gfhd2N6C+QCZTwK3YnnzqDbpr2Dcb GpVfou8j+m6n
36P/HZJDvfJwDenYSA3HaziVfy6zXnno04vvX19jLF3DBdJU32NKqMSukkK6 LlhD7henFLGC
1I+QlECXdATbpAGkaR2VNIxLSeSlFAq0LkqDAeeTdV4NzmJ3A/NBgG5iAQVC 7aLauoki3XRD
wyJJyLS/HVi8g6UgDizwHIjhLv1lapl7PwBQSwcIkXoBEXIDAADxBgAAUEsD BBQACAAIADpg
ajYAAAAAAAAAAAAAAABGAAAAb3JnLmVjbGlwc2UucmFwLmRlbW8vYmluL29y Zy9lY2xpcHNl
L3JhcC9kZW1vL1JXVERlbW8kVHJlZU9iamVjdC5jbGFzc5VSTW/TQBScdVK7 cU0b2lK+2vIV
iO1UuKgHDqBeipAQUanaKJw36cq4cuzIdvldIFGQOPAD+FGI99ZWU4UowGXt t29m3syzf/76
/gPAM/gWDIF2moWBGsbROFdBJsfBqRqlwfH73it6tnqZUu8GZ2pYWKgLNM/k RxnEMgmD8lag
nsiREljtTlonRRYl4QsBcywzlRDI6/51ypGGMqn4EOWtXYHtuSRGvoySqNgX 2HPnQ//05vXJ
+UF6qhoQWHHQgG2jhusOlrAqUHO9PnfWHSzAJEQ3StTh+Wigsp4cxDpvOpRx X2YR19Vlna3/
U9pye5TBClVxqDe47nqzdtjIVXFUrXFnfs6reyz9bzuwsEgi4USk4/7P11gs 0tKKTXKPHNzG
HQH7JD3Phup1xKGdiveUzVP5JklUdhDLPFe5BVdgc940EpvsA/dpSI1+zhoM Xjy9GRwAaDb5
E1G9QIglOHReo+ot9Rm/4ncusOx/Q9PfucDaZ028QeeybrtEe0ICbWxQtUE9 ouAmbgH6jUcZ
JEnhKuGAnoLH+V+w9ulSztSXHS3jlIBKRuAuNivyPqF5hMmutiZmbH0bEGf3 ihHz0oips/Lg
e3oT00a2po3szTTyYEaKr3g4TX4+g2ygpc/HtC72y/Q2POA3UEsHCABC9f3o AQAANQQAAFBL
AwQUAAgACAA6YGo2AAAAAAAAAAAAAAAARgAAAG9yZy5lY2xpcHNlLnJhcC5k ZW1vL2Jpbi9v
cmcvZWNsaXBzZS9yYXAvZGVtby9SV1REZW1vJFRyZWVQYXJlbnQuY2xhc3ON k21PE0EQx//b
p4Ny0goWfEBERbleK4fiAwqCWMUgjRhLIMKrpd2UI8eV3B0k+mH8BLzQREqi 0fjaD2Wc3Z7Q
YK1N073duZnfzH927uevL98B3Ma8hgjDWM2rWqLs2Lu+sDy+a1XETs16s7by jJ6jK54Qr7kn
3EBDrBPn5c1tUQ4YuspbtlOhQIZMcZvvc2svsB1r3vP4u6LtB9MMiWDL9kcn GIaL7bDSc8Z2
7WCWYdJo79rI5HC3apUCz3ar09lVhlihVhHdYDijQ0NXElGkdHQjqeEsQ3+L 6pJIo1+6nGOI
GtlVGTygI44EQ6pou+LV3s6m8Fb4piMY+oq1MndWuWfLc2iMSXUM2bYFN/WX ZMZcvqNwf6mg
fvJKpSBbypBv34SmayD1UsmIjqu4RkqIQddhNPH/+K3LpozquIGbDN2+CBpF dZYsFCBbHS83
auxAdpiaoccj075Q6mS5OR15WW6iYSeHqggKx+OUN7IbHdMlb0KnYb9D7fXt 90Ld56I039Vx
D/cZtKCm7p3BMDZatKaFTcMUg9l5FSRhi/snEqiEdYZkqbbnlcWCLcdFD8PG ZTI6Lrqu8AoO
933ha5hjGGqXjGAnF4ERmtYofeIR+tHIAum0nHuyxOkNzT2tPXQqkZf0GzRz h9DNXP4IveZX
pN8eoe8QmU8KMUhrr3J7SuFPKHAe5+k0QO8oFBdwEVC7SxgiG8NlDIcJllQJ QMr8jEyujitr
ObOO66fBz6mmBdq/aAKnjsEpjMEgIA3VP8HmWo61AL8k8BLti/8B38J4CJ5T CoCMBMt/HdY3
ROuY/IEHH4/xCeW0rLB6IyDEMjzEoxA2peBUTAj6gHjsIHpwilJqovSGlAim 1TqDx/RMKs4s
NR+/AVBLBwhO3X/TlgIAAL0FAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAA AFUAAABvcmcu
ZWNsaXBzZS5yYXAuZGVtby9iaW4vb3JnL2VjbGlwc2UvcmFwL2RlbW8vUldU RGVtbyRUcmVl
Vmlld2VyQ29udGVudFByb3ZpZGVyLmNsYXNzlVVbU1tVFP42CSSE0Aak1ChW qJSGhDbcjC3U
oqVUYwNFQBDq7ZBs4DDhnMzJCUy99Unr/f5SH3zVhz7gjIUZOzr65Iw/yvHb J4cDhhRwGPZZ
e+21vvWty975+59ffwfQh6UAagRSprWclNm8XijKpKUVkjm5Zian5mau8ts5 Y0k5q8sNaY2a
hi0Ne9Iy1/WctALwC0RWtXUtmdeM5eSNxVWZtQOoE7hQibi6pGVlct2BKSbT 07ZVytolS+b2
YQYF+g/xVowq/AQadWNdL+qLeTllmrZAd+bQrCY1ixDDAnX2il7s7BU4daCT srykG7p9WaAj
drBp96yAf9TMyXoINIXRgHAIPjwSRiNaBHwxZXA8oxtyorS2KK0ZjcwFmjNm VsvPapau9q7S
r+ixqIdnVLVPpB3WjULJHl1hm2ROYHw/+f+WuIwznKlsbhWNykOsC3QdDVIg aOZzaUVHZbsP
jueG3HDPAzm9WDCLLEHDsrTH8nKNabESZ2NVeNzcrwugk4NQycvasJN5fUlm b2XzMpkeM2zr
1qSpG7ZqVVcY9QiFKMXC6FatCqmO61pef1sqdSKMHpwuMxpd0fM5zhDnouDM kkA91ZOu3FWN
ZjWWfUzp0N6WrUPoxUAY5zFIKrH/M+S1WcU2gGeOEqzsFUIKF1W+QwI9MVb4 iCQZrWFFK+6W
50S1Siwo+MthDGPEuRALQTzPSmakttTep/IcVZflqsDAIXdtDzYfFt1Y5lAG cW0Hqz+IF3fk
gSBe4oiV01NRUhhVy3gYE7jBEy2Xc2irhI+crgr38k6IwSCmd0Mw+Cu8wepN CmJOgBPks82+
I71PXjHp0e+sAwI1hT5HHFQitX7Lee5C02bJysprunowwi7KeVUYbtOGwVch rxWLshgAc2s7
KLZA9KFvCdpVAqhBLfjTwT9eFiASUe8bf1GC/G/EMdocpzToWACheOI+IvFt NP/MXQ1OcK2j
DTCHVq5hRw7hJB6FKlAUj7kIaf77la7S8Q3HMV4+dB2V9DjanHOBJ3DKCS7w JCUfv+1ocWET
jr4KrLaHj/D4dOC06yjdjDoSf+KpuzgZ/wVn/kKAqZ2NK3kL8c14Qq0ecCtL BeRYLsnCLKEZ
y2SpO4Fay2Ae/w6cI1e+p7zfSTfkOL/Kqokhe++iIfEHerfQvyl2QxxjesAa Qxh0KeyBbvKg
m/C0C93jZTPpQrcQOlWGTm3hwqbvN/gq0W2il+i1sQe9xUNv8YgP41IV4rvo z97z3auAfofQ
79LlvYcQL0PXqNe4DC1mWFM1aj89QO886x5pfm4bVzLeboy7cW/3AncTD5Aq 79LbuD7kj/rZ
pUzU3+Os57h65pM0H6r17KeUfV20LlrrGLnaGaUNRANRvwIIROv4iXunszy9 jzNqIqIBnuyO
2RVEuH7AzD/kpN7hBH+Ei/gYI/gEY/gU1/EZFvA55+MLNvJL3MZXtPyamm/w A77Fj/jOqdJU
OX+3SsfwPV7FPKvT5vjPM1oc7+MmJR/xTbzG6+XnyQRep66W+CO8QyGO/W3W 9U1K6jq/5fDU
sOhcR9XOLKcW/wJQSwcIY6KpC5QEAAAvCgAAUEsDBBQACAAIADpgajYAAAAA AAAAAAAAAAA7
AAAAb3JnLmVjbGlwc2UucmFwLmRlbW8vYmluL29yZy9lY2xpcHNlL3JhcC9k ZW1vL1JXVERl
bW8uY2xhc3OtWgd8VFXWP+dmWl5ekkkTHqJEEAgpBAJGSFikayQEBQRiWZkk DzLsJBMnE4q6
rr2g69p7AwsrNixM1CjY197b2tde1q5b1JXvf957k5kJgcnv56fmvXvvu/fc c84953/OueOT
v967lYjGqxovKaah4ciKSrM5FOzoNCsjgY7KFrMtXLlgyaJZeHvJxeRfGVgV qAwF2ldUzm9a
aTZHveRhGtN3XWR1tDIUXG42r20OmZV1s9ujkbUHhYPtUSbXgvlLFjJxHVP2 zHB7ZzTQHl0c
CHWZGWCkhMk7c379IfMaFkpXw4bRNdH9I+GujoZAm7kw0NnKNLy+v+1WB1tW mNHOykXmmmgt
06D4ullmZ3Mk2BENhtvt5SkUFwWaxjMVdETMVcFwVye6C80QxDJbmLKiyT3P lGB7MDqVKaNk
zGKIMTPcYmqUQYN0KqDCTGIydMojn7R21ymffEy59cF2s6GrrcmMgHLIZMqv DzcHQosDkaD0
nUFXtDXYybTnDnIlqx8y+ZojZiBqHgLVjS4Zs0stzAp2doQCa2u9NIJpxABm ajScBnlpFNNe
u5q9sNUMhTQaSSUi9hgcfcmA+Kgbs1hWlelUThVMmZ1mdEa4q70FYntL6vCP fGeq1Gkc4UA0
W9J5ZnsX06hdb2GxVDtmsZcmpBF1UTgcmhGIZNDxMC2qomqRYV+msl1vMDPc 1hHuDEZNkcJL
k5n2TrdLXdRs02gS1coOU9JqyWFM6PtITKzdXC3Lp+k0nWZARVCX2DVTUUl9 wgMXRiPB9hW1
smgWrCjcYbZ7aQ4MaVd2tPd4jWbTAcIY7GjWjoylGN2ANC+sztWpnuYxFQZa WmyngcPVBzuj
ZrsZYRrfvwLMVWa7EOq7wJJpvggeWGUWBzp9dDCTuwPiRsXnFuq0iA6BQ4CN maFAJ6yoAA6R
0Iw1WKvREmr00lI4Yp9POh1KhzHlxNfXhwMtwqaxIxX7U62PjsDniNkZ7oo0 m52VOKHlwZB5
5Org0WNXBJdrdCQFvLQM6NSfnCvQaA02d1bWtQVWmDo1UTMObHmwHcAyv58j 3QkT/ft8KvFa
OQ1ssZxWQEEwHGtUEGMgi0XvQQBYqqDhEHaPi+qjPzANTpnQEVmZ+NqW8rXT DESaW4/sjDTL
Vy+FmUYOyNk0aqdqL0V2Mh+gEu6KVs4JhkL1VlOjo2iQLOrSaRWttjHG/rRT 4eOb2tNqbQxa
q9PRdAzg397CMnKmyEBAaEBOPkCsEaj5404ArbmrMxpuq5R4NiccAdIcS9Xy OF6nE+hEwCdE
X2IGV7RG4RnuksMs3Do5jSZBKK7JkyQUnMZU0nf+yuWBZrNyVdBcbUYgUcQ0 F1ttjU6lMwRS
1jGVDhRNhamzmKp3iVaJPZAsABuiB0XCq4ItsuWZdLZs+ReErDQoJgd7Kp2r 03l0PmIwtNOH
GNOEHUmkClvXZ4lD9EKdLqKLHU9r7+jqi9F2luRMvlSny+hywBo0IYIhkqSJ 4zILQfzKnRhC
0tnNCkQDGl0hPnANbfDSeqbidJR1ulZ4z+71FCHipet3ltEldpsejQaaW9tM wePraKOcw1/F
1CSQZ4KLTTrdRDcjkkXDHQiw/crYL7laWX2rTrfJalfIXB6Vgdt1ukMG3BEx ahm5S6ctMuJp
CkfhC17qThf3qjSK0dminble6kkDQ8jM5liop9G94ltMW3XaRg/0piZ24pjG 1nupONDykE4P
p9KokuFHdXosdXiCDD+u0xOpwxOFm6d0epqeYdJxar2BE7oqsbz8uXRqAOln 6QU5sBeZDvgt
4T9VuntprqDvKzq9SoU4F/t0vfR6OoYg1Gv0hjD0JtM5vz0f+f8FYcla39bp HXoXwIHcRlAg
Eg4lMpvKXWY2faZb8fUfQAvIUywCCflp8vhQp1miN2+LnTHDPgeUWMMnOu0I NWIAugH9qK2B
dPTjigJ9KKINtj4q7XzJeuMLqpz3BOc9UUzCybIG7SS9AXfNNsgiYg/whAR5 nTC4M5H6REss
8digDv9NA/qJ6FMrZZoF2WnKTwFsMCVzBU13xlQf5MYSf1yOxWYkGkSViB1b wqvh2pkAUdvT
0ukl4ZKADVkcB7GRrHTOYFTw2VbOG4SSpwNWBMLSZJULgDA4qZBZm8ke9nnZ C1sY2AqdM6UM
5jWyMktn3eqtlV6OzrnSc4P1aKtUY2UynK9zgQx7Wq30RRClTBAwieE0eWyC XcjqGPsBFjEv
G2liotSbGg9m1O8FPDRt2mj7lF3a8p46D+NiO/cSOraP7ZqAzJM0iIenqSll olVT8l68tzA3
Mm1ZbNGWgpJHw5CQJ5tYDKwBhVKdy4RVr8Oqj1GSu+ZL+ciV6eB6H43H0gFC a66P4d35sq44
YjbjgEJri7s6zRZR4T7CZXXayjcumAAjT4L22tZKWTU2uibq4xpwNXtNEGjg bYtrdNfeZwmN
0Cg04qTTIVcvC/Da+Do0pZq2l+dIc4EloD2g2dLaE7MivV8Akj4T/Erby3PS 3UYEmuwjnc1S
jcuFWJqLiIR3W+c6FwaeyNrxEaTkgGdzg87z+SDbFp0IBL9Jl5db8yxzXJDm Fqg+0GSGND6Y
qn2MMtwlN2nSnSaPDV5uTJd7mmuiGi+l6kxiPlwnP+X4+PcsF35LhchS2oC0 kptELc1pbSjO
uaUUAHRW0pWfj1EF59lpUnGgWNDZPkPPcgdQXUGrnyYa2mcFE8lsjoceWGWo KSSip4u9lrpq
paK059txIeUe0h7KwYQk5uFcqQP2rIJ+rjb7v/C05+t2/mihVVVaO4gnFnbq A2xYAztKlNk+
PpqpriHcbhZPXzizrq64uTUQCTRHES1rir/edn/vf9PKiztttUdbzWIJvjCJ 4o6I2dlpjTR1
IW8H4BybxlZkpcbHULWX/5QOm6o1Po5PEKtBETzzN+W2cosMFWDjuV4+ZSfX OvHZMyxZND5Z
HOJ0GMZBXRB3nikj07x8Zjq+99V4HZ8gs+eK0l9BWAyJzUjOYV37uToHcPMt mpLkxtYsIsou
Z9s81/r4IvArS2HjPr6Eacii1iCOCPsW4x1uh9vEUydx18t0yhZ3vQLsLMI5 xq/Oi6OBpmJY
SPGqoHhHS/HqACxCVlylU66suAYAF42sdcwi2L6iuDMogVrsoq0rFA12oB2V K/HiSHh1p4T9
uK+NT+5USRa7JlqP2lAu6e2WmLqPb4APzQtHzCW2kJZIqEt9SHia/+AcyAaU j5zv45uFZms4
2AwG2k0f35roR1eHJfPY4OPbxeNbTSxuM8d6+c40wIi8tCms8R1iBzEwZ4tq xQaM8t063yP3
uRkoJHzckzKhysf3pwxMEDoA0wfSOIjUFhpvky0fhgi9JSF23MZ3+/ix5EHs 8nhyf4KPn0zu
T/Tx08n9fXz8bHIfmzyPft3oNphFyN6ZX9T5JRErR66pkXEtCnaI/3j5lXSG P0njl1GTg/u5
8tggl7yBdjF8zbZiG8EyI4GWYFiSfpi31R4fb8AYsnu/2rOzrAOb4XhBblLP /u5ullNKB9rW
UTqA3xS2V7pE4nRuKOchuYTMta3yU/QWOb/3ePnzNDZkzdT4M6qWBwzgKySi aRfMDIe62gBB
X/I3gn/fpk1erVXWLxr8PaJH3yvoGV1BiY8+/hGajhP/jv8tdfoMaf1X55/4 Z3wMdCA9amEa
WlI3ZoebbIdMraz4n86/8napjcL2R6bCkh2XYO6XkgR8qZSuMuSmQ+7WlkiZ 4FXu9Pc2ISvC
a8rF3/gUSgmXdH1KQ+VRATaUDsZVNlNFfz+l7FwA5VK5Ok1XfqbdSur6+xVG jusprypIZ/ST
NZWviqBItdtv/AHGPkN7Z2SD7qj9e+KuDdteJMmuU3tCMUH71864GSHlSk/C nioeEo0rfQDl
qT0Rq3glWAg0NyMf2Hsc05zfoofknIXV3jpHuStBHVgxI90F8UB+Uo7TqxrA hXNdYjpqpOFp
ptfJL8rx+RMTzX0SzepEc99EUyqmhdYvLVLgIdVzKI4V80S3rr3djFhXLGan V03sB0h2uGy3
L6xBN9Hxqn0HsvKgQMS6utGSO8ZOL/BpL0IkxJ+bvDQEfz60M4lIkYZ+VlJf xx+SDqud67z9
zjsP8+Sdb73zsaaACvEsQm82xlFVUG5pN+1WmrGFBstjyO3WgqHWdBeeg/Dc E1sNA8lBtAdG
dHsZRofhjQBsMQuSrsPBKN6qvYeGN3Yjx+qhkY1lea5vumn0vHK/5tfyMorz 1NIYlZaWd9PY
HqpqLM+f2E37NPTQpMYKv6+bampchiv/dzHaL2nIbbjzZ2LIcPfQ7EZZu3+M Dkya4DE8+Q2p
a7yGN/8gDJXGaEGMFtf4QPZww3c3/T5GLaDX2tv25K/sbXvzQ/F2D7U3lmd0 U0dNppHZQ0dB
os4YRUvLK4zMblrTQ8c2Gpl5TN10XI0mkw3Nmp2V1NYNzX2f1pjhN+Y3uvxz 58foTwa+nwRa
p4BWD53aaGR10+k12UZ2D53ZiLP4c4zOMbLB9QVGdowuqcnpoSsw/aqaXCPH yI3R1UZuD13X
mOHuphu20I0pvVvsnr/F/6vV39ynf6cBajHZ5e4Y3WPoCaksafQ8ZUnjtyTw WxLkJbXzDb8t
zRSRpsSSJi9Bw8hPpndvo5GHVffVFFjtfKtdWGoUdNP91vNB6/lIqVHYTX8z CjJi9KRRaD2x
4tlG6+vzMXrJyIzRy+U99Fqjo/q/x+it8vz3YvR+eYw+KNsct1hWNA3tS2Hs l8HML6fhdCWN
pqupiq6hqbQeJn8tHUzX0VK6npbTTRShm2kt3Uqn0G10Ft1OF9IdmHUn3UJ3 0T20hR6FNp6n
u+kt9D6k++g7up9+pa2s0TbOowd4N3qQDbSH0sNcQo/wBHqUp9FjPIce53n0 BC+mJ/kIeor/
QE/zWgTrM+hZvpSe4xvoDaSvb/ID9BY/TW/z6/QOv0vv8id4f07/4H/R+0rR ByqHPlRD6CNV
TB+rUfSJKqdPVRV9pibR52oqfaHm0Q9qAf2omugn1Uo/qxD9Ynnoy7YXOh7q U8vpI/oYPlqo
DqVP6FNoq0pNoc/oc0DMVDWOvqB/wssPVnvQl2i5KcK/0FdoeegUBM+v0fLS hfx3+oa+hW6f
56ugie+BCd/xsfQD/QhI+pU7oMPvKYs1boEWvyedJ3At/Yv+Tdk8j/ei/9B/ KYcX82D6iX6m
XMh+K7j9kfzQwAacxfeUBz1cRP9DKx+SL4OmtyMNGEKLADfbcZ5Kfnp2wOtV 8ObBe05ZjLnG
5d+z2l1uuO5itzw0eWQXuWPsr0gMFrmXuZZZX+SRV+RucbXEuLACxpXAvBoB Ts4gD7tIYze4
81ARA4LZR0PRH8aZNBLnX8lZNJF1mor+dM6m2ZxjaX6qzZWjeWmJvtlqib6V 1RLtYQ+axkWw
IexEU3gQNOvG93E03pYRunXjC9HmHh7cWObu5iHzyspjvEcP79VY7p/WzSMa Kgp4VIxLrAle
TKhxQeAYj5Ephgs4yCMEOwsY60oAnjy2sbSsm8fFeLwzRcgIehZwlUPI8HTz xBqv9d1rk/AZ
vgLeV0h4DK9N3nCBoRHJ+wAkC3gyJiW02YBwQ/AUjfNx4gXQYiHtxUVUDqmr IPF+sIb94UGH
8DBq4mJaCTvp4uF0Io+gdbw3ncsj6TIeRRt5NN0GDxMNL7d10qvhzY6GNbqB a3kKdh5CF/Hv
eCo0XE4n834Yc9F+dBRPw5ibmqiBp7OcUxfV8gx89dKJNJZnYsxHGymTZ6GV CTrb6AH7JNRD
WJcFSa7r4dmNZRndvP+88gI+MMb1Ao5lgo0N5RUxnleRBO18cGMFpi6UeFbA i2K8OA7ksEcD
xrlEohmg2+cAeXLvFrvnL8xwcNz+6DdsGC/t4aWNFXk+1c2HbuHDSu/iwwr4 iBgfGd/CI0OG
J8bLDE/KJlbPcOHEArKLxwkPPzvbeFK2SciAYFrALUky+Ayv4RMZfDZBv2ZR vNHu90rhS5Ei
iWvbXJYnsawZmYYmDGt9KNp9b5xlLYXlO/v0Nyes7yIaiTMrg/WVA1sqaHce S8VcSWU8jqp5
PHy3CtY3AfYwkQ7nfWB91bSW96XTeRJdzJNpPdfQJmDYnbCRB/l3wL2p9B7v R18D43+CDSlY
TxbsJh8WM5xn8zieA2vbn+v5AF7EdXwEH8gtPBf5dj2fBAw8nxv4Wp5vWXGH bU9xK+bruBUY
Byvmy1BvrIQEu/MZiBuCE9XcziFugxXvD5rtQE83bQIHYbQ8QNNN3IGvXiDS pXwUxnxcT0s5
AiTLRPTZnzsxppGSvN9BlkNBQRLCTSn5WTx48yor87GGOxoqkmJ6qkmvFnNI OlELaNbKifIx
1rw/CrD08HEI5QCL42N8Ug+fbH051Tao02J8hgGkWWfPOCvGfy7Po5/8hXl8 Th49jjQRuHW2
BPnEqc5BUku8APFlIQ3iRTSCD4H3LqbJvARIvBSn2UiLIWGAD6MOaPAYDtFJ 0M95/Eec6HF0
Pf+JbuTjrVNYYGuhF0s2OXFSp6ucODmCTnNOYTIQ5C/WKTTAWs6Bdt0UoDo+ l8/DKRyDiHA+
XwAsUfJ/Mdh6zvgAc3LB+BEpuHFhv7iRnIhBRcjCXFbm5bIyL3dS2wPs7ZtT upOBZ2mj4c7z
kZyJpeaLk7zM8dtlKX7av9cmUMHXx+U8qTBneCyjsDw6Geccj15iu2jvXlrK Xloqzmk74pzh
sYXZwpcC1S4t4MuT5MmSISNLJMpK2cXqGZlx1MjqI1LWDkDnSKEbeirSZRs6 EnFIkW1T7MWl
7BQ5slPk6MP4leDyygK+OonxHBkycoTxnD6E7b4eZz2nj/ZzdgZ4r9I+cI2T SC5y8/gUQMip
ALzTAHinA0TOoBm8Du5xJsLtWXQE3sv4bArxX+homPOJfC6dCVM+j8+na2DI t/KFSHQvQsJ6
MZLVS+hjJK5f8WX0b74cyd4VrPOVPISv4jF8NU/iawB563kBb+DDAHEtgLMI X88n8A1wj434
+le+mW/ku3gT38838SPovcy38Pt8K3/LtynmzSqLb1eFfIfag+9UFXyXmsJb VD3H1OHcbbnq
JbYjxV1VHREHTLUwDphqRhww1WgrLXXRDLU7r8eYmxpULm9AywNpP+Br4b5e yPsiIBiACelW
WxCbCfmWWxCrQRJlQWwW30y3WxCr8/3QjUBstiqE6wuw5mDnx+IO73JhJz+4 OzzF4a9Pcfik
HMHy/QQmWqi6EZjYJ1G4cQCJwp69iYJ/8BbeJNtVOGjhSUbwk2GVfn8vAt8k uyUNWpneLUks
ZCLly4zxbVIBJ7GQ6cToXMdGrb5/jv9bh4tMmwsRzV8shDVDK+DNSYSzDE3c 9sZ+3dazU7d1
6N5hqewu21u3xLhb3vc67/vw7uO9Wx3vjXPcv/f2KjHb2WabE9werMkxcgr4 oRg/Iu9Hnfff
nPcTzvsp5/2M834uxi/AXfllVNz8aoxfSy3l+XW7PDf0Xq5yU7jKTeUq178M XCX8/Suqhb/f
C1vtgb/fB3+/n0bxVvj7Nvj7A0hwHkT4fwg+/zBC1iNIcB5FgvMYHc+Pw/af QJLzJF3HT9HN
KMHu4WeQ5DyLgvU5eoGfRzH6AhKdF2k7v8QefgVJzqvw99d4BL/Opfx3+Pwb SHXe5CX8Fv+e
34YPvsNH8bu8lt+D3/+D18G7z4WnrecP+Tb+iLfyx/wofwKP+xQrP8PXz/Hv F/wd/5N/kuts
/kpp/LUaxD+rYv5Fjeb/qX35VzWbt6tFitRhii0c2GD7Vy8OHN6LAwt6cWA6 SlUbB0ZZQRmJ
kyriN6zE6Ux+gd+0cOA6vhu8S8i+B5j1Nlo+SH8ev4N5mZD3QEhzAXQ7gifz exYOBOl7SPY+
cGAdvcgfCA5AQ+sg4UeUgyJ9Cn8spS14eKK3dKjAnpk4pQkpiPBJmtLhM8u8 v5AUIAUJ/jkA
JEg4S2r/zoxqz0aa3sNfWokEfy0I0MPfNRbwD938ryIUC/+J8S8xRUUe9zWU Y3jzaGtM8UbS
UAfOQetkDxd5/Nr67VstUnN6lMsipTw13oxq30YqNbxFPouk8sZJFqjMmMoq 8sWp55zs4yKf
UHnFpleyfvs9oBJTeYarR+UjFXR1q8KYGpQw9Ig8Fepk5aY85cERe6lY+ahM ZeKQNdpPZdEc
pdMilU1NKociKpdOVH46XeXRBSqfblIFhPBC96nd6GGMP6MMekkNoXfV7vSR GsqZCBMFyuA9
1DAeAfOrwrElsvQJvVn6hN4sfUxvlj44HnTof2ow6Eqt+QNoi7GdQgdgBx+M 7QKqVEPVHjC2
52meM/YuTVR7qmEYe5/Gw3x85PP71F5quHPHMQr05b7Ag5JdjUhowyP3CXyw xSG+Y81INcpZ
MxJvuW1wS/23OXUJFiSWjFYlOy6hITf3WTIsackYVboDZ7tvocF9OIO2EmvK +l8zpO+a5H3K
+2VtcF/Wkrep6FcBl/ZVwO5JS8bSm86SEpyZ3HT7SsvKK7ppTV/etietqux3 oyv7bjQ0voSU
Gmc9x6sqvJtIVxOIFfI0VY33JIydifdk6z6erEv3mPN+1nm/Zr9RvNrv45z3 Ouf9sv2GmVvv
/wNQSwcI17v9nxQZAAC2OAAAUEsDBBQACAAIADpgajYAAAAAAAAAAAAAAABJ AAAAb3JnLmVj
bGlwc2UucmFwLmRlbW8vYmluL29yZy9lY2xpcHNlL3JhcC9kZW1vL2NvbnRy b2xzL0Jyb3dz
ZXJUYWIkMS5jbGFzc5VTbW/SUBR+7mB01AqMvfiuc0MtBSmo36ZGR2ZiRI0B Z+K3Um5YTekl
t3fg3zJx0/jBH+CPMp5bWEwGydiHtueePud5ztv98/fXbwANPDGwxOAI2Xe5 HwbDmLvSG7o9
PhCuLyIlRRi7e1KMYy47XrfUMJBmqJzFy7Fy+YhHKnbbPOS+CkT0sucNFZcM GXUYxKU6ybQW
1dllWBl5YUnxr4pheyZO642DXp+TYIcwhM88DaJAPWd4by8ucz5x+YAh3RQ9 ngXDZQvLyGgr
b8HAiokUVi1kUWRI2RqabwURf3c06Cb8IWcotoTvhQeeDPR56kzrljBUF860 1KASc5PMJh3m
PYbabKnzJrGvz1SJieu4aeAGg72oroVbuE3D8Hyfx8kQP1ygveW56XUngFPg roktbBu4y7B1
3jgs7KDEYJCjk6zGul1uffFGnht6Ud9tKxlEfSK8D9vAA4adBfQtlOHQ/sRc fZQhw4Y9y1j+
zLCctJWW/wI9ZzDb4kj6/FWgx57/35ua1mCwXkcRl83Qi2NOC5Hfj/xQxCT5 lqtD0bPwCI8Z
Vn3JPcUpvQm/oFvlzJ/9abeaYjAkIsVp7qjTxqbovi8VCnqBgUJRr6/20JOF Sf8vkfWMzhqX
dyrHsJzqMXLODxS+JcA1eptJAFWFF1gnyyKb4NjAZuK/gqtTqjeE1Ng15zus n7hGn9wJ7pzg
3qezdHsoopnQbU5CpnTaqqCa5P4wianBTaJYIguKq9M7TWvd+AdQSwcIpa2P JjUCAADSBAAA
UEsDBBQACAAIADpgajYAAAAAAAAAAAAAAABJAAAAb3JnLmVjbGlwc2UucmFw LmRlbW8vYmlu
L29yZy9lY2xpcHNlL3JhcC9kZW1vL2NvbnRyb2xzL0Jyb3dzZXJUYWIkMi5j bGFzc5VTbW/S
UBR+7mB01ArIXnzXuaGWgpSh36YmSmZcRI0BMfFbaW9YTekl7R34t0zcNH7w B/ijjOcWiMkg
GfvQ9tzT5zzPebt//v76DWAPTzSsMFgi6tvcDfxhzO3IGdoeHwjbFaGMRBDb LyMxjnnUcXql
hoY0Q+UsPhpLm494KGO7zQPuSl+ELzxnKHnEkJFHflyqk0xrWZ19hrWRE5Qk /yoZdubilN7Y
9/qcBDuEIXzmqR/68jnDe3N5mfOJy12GdFN4PAuGywZWkVFW3oCGNR0pXDGQ RZEhZSpovuWH
/N3xoJfwB5yh2BKuE3SdyFfnqTOtWsJQXTrTUoNKzE0ym3SYewy1+VIXTeJA nakSHTdwS8NN
BnNZXQO3cYeG4bguj5MhfrhAe8sL0+tNADPgvo5t7Gi4x7B93jgM7KLEoJGj k6zGhllufXFG
jh04Yd9uy8gP+0T4AKaGhwy7S+gbKMMiznjGuWnOU5Y/M6wmfaXtv0DTGfS2 OI5c/spXc8//
b05NaTAYh2HIo2bgxDGnjcgfhG4gYpJ8y+WR8Aw08JiWyI24I/lrOQgmAoLu lbV4+rN+NcVg
SEyS0+RRp51N0Y1fKRTUCgOFolpg5aEnC53+XyLrGZ0VLm9VTmBY1RPkrB8o fEuA6/TWkwAq
C21skGWQTXBsYivxX8W1KdUbQirsuvUdxk9cp0/uFHdPcf/TWbqPKKKb0G1N QqZ0yqqgmuT+
KImpwU6iWCILiqvTO02LvfcPUEsHCKYMUygzAgAA1AQAAFBLAwQUAAgACAA6 YGo2AAAAAAAA
AAAAAAAARwAAAG9yZy5lY2xpcHNlLnJhcC5kZW1vL2Jpbi9vcmcvZWNsaXBz ZS9yYXAvZGVt
by9jb250cm9scy9Ccm93c2VyVGFiLmNsYXNzlVZbVxNXFP5ODCRMxwrx0lK1 RYwaAjhA6w1i
VAJINIAGCKbW2kkywsgkk85MBHq/oL2u6u/oU7tWm6zVrNXnrv6kPnR1n5lJ YiWE+JA5Z87s
/e29v305+fvfP/4EMIofffAwhHRjVVKymlo0FcmQi1JOyetSVi9Yhq6Z0qSh b5iKsSRnfPDu
KT29KeeLmkLSDOLU9My15cTS/dmluQRDIPFQfiRLmlxYlRYtQy2sTjDsj+kF 05ILVkrWSoof
XQyXImtWXotG1hQ5F41IzpLRc1vRSDE6q2ia3reiG1ouIhXps/NBslUYfBnH W4ZTiRcdNTYs
yf1cC4oc6IyoBdUi1XCoqcaGmltVLFOiiGZ0LUc6AykGb0zPkbfdZNGFErAP AREiDjJE2oXa
yQgHP5BQC8p8KZ+xWdcUTp2elbWUbKj83T30WmuqSX7vsLVb/ni0D2zDDGfa 9JDhYNZQZEtZ
tLY0JeaCMuwLDaT8OE6IkwvJqemkAIa3RPThBEPPcxqTJcvSCwwXQ01ibemD oznBgU+KCOIU
wxEHOKWaakbVVGurhn461BZWF2GdERHCAEOX6QSUL+5FBpfRTdVSbF8GRQxh uB7ksqEtKpqS
tXRjzxJqAA2kOJQkYoRDBRyoWSrhBtZh59DtpxrxPrxNpd3MiCZv6SVLmlE1 LWFvBYzhHC/I
owIu4JIPF3fR3OGeiHFMcIYUy4EihlpH5ohRWD5cpnS10Xk8/isiruIag58w 7GKxyyouIIIY
d3yK2G6X0fhAimd3RoSAVzj4rIg4blAzGcqqalqK4VJIE2wvTFvO7sTOomwo BYsTGPNhniHY
gvqkvlFjfg63eAC3qUlDcc7KIsOJ1gRmFE1Akpshu/2tzUzJlixgGXe4kTRD Ryge5yWVxF0R
7+EejdV67rgsVdPz7beQeUhFNsEb+D5RvpxMcFVZRAZZGmikuqRsWi8o1eeT D5SnvpbTg7QF
5BDjj7t+qNS5a5ZVHJdqKme5OqlxAdkHbZeI/9++AtY55DqHpKb1XNf5C6nz IdjuDAyOCjBQ
4sQ9YljYWQq7Ds/WA5NCtrt6HZsitvARwyE5l3PaWdULCV6CBT54R5tXn/KI 6syUdijYZdiV
rdU55VrjpUJNtkdDktAEvyPsTPbv7TwVe8adpsF2ZqkfXxM8v9l9ePwyCRgT sI0Sdb2czSqm
GRxhuP0SaWg+6Hfe68KiXjKyCs1DIu1AA+AsL2n6bxIvELsxTTZNxaRri/qA /hJ58AY60Elv
PvvNTz+aJ7TnZyL20/NVertK0h5a/eHBwIEKen61pQ/RU7DP+0j/BA7T7ogj R+trgL17Hb2E
4iVLR120FZJhtB4PB46V8eZKuIz+lXD4N5yuIOyuZxsmjpCLwGkyESKXwnQ2 iGN0KXFzogPk
mvPSf7xh10iOtLgrwcEqxtIVvFPG+XAVkfQgmYtWMPk7prmt6TKuN2wFCAOQ iIIRcncUJ+lS
aYQVrIcVxE0MkCUPvxwdi+yoTSXwtIoL6cF9FSTmhqqYS/cwVLBA5qtIpofo fGl+uIrldPfJ
7kMVrJTx7nDg/TI+qCKXHurxk/CDcW+vl4v04GdXZrXXG1gr42EV6+mhbn8F +fGO3g4bZtgV
KfR2BPQyPuTHRjrc663AKmOjEdx5yidwjnJ2nrJyAf24SCFeot04pjBBAzZC 0/Qy1hDFJq7g
c8r7T5i2CYg6odUJeOoSIOAxPqadh9Dy+ASfUqVM0bfPSNtLSGfwBb60UzFS J+qYS9SzF4ny
7ELUWHegRtRXDaI8LlEBP/FS4+uvHvzjENaEqbEmTG07TD1pwtQsRRcnpm5Q bDeJqQQxNUfR
zdPbAu7hFlTcpuGXpBgXiZE7zzH1rM7UszpTT+pMFepMJVym1BpT3X58g2/d Ij5FKy/wDl6o
v9Td63Sr/rB9wn/f2c/v8YNdwx4a+bB32876H1BLBwhMDTEJswUAAAINAABQ SwMEFAAIAAgA
OmBqNgAAAAAAAAAAAAAAAEgAAABvcmcuZWNsaXBzZS5yYXAuZGVtby9iaW4v b3JnL2VjbGlw
c2UvcmFwL2RlbW8vY29udHJvbHMvQnV0dG9uVGFiJDEuY2xhc3ONVNtu00AQ PdukSWOWJKRQ
bi2UYmgubdyUCpC4SBAVCSlcpKBK9G3rrNJFjh3Zm1R8FlILEQ98AB+FmHVC I5Eg/GB7Zj1z
zpyZsX/++v4DQAN7WSwwVIKw60jXU/1IOqHoOx3ZCxw38HUYeJHzcqB14H8Q R3YjizRD7e/w
8EQ7cih9HTlt6UlXq8B/0RF9LUOGjD5Wkb1DLK2ENE8YCkPh2aonunJ8ymDP ZBvWE9XpSv0n
lxIzT5Wv9HOG9+XEdEmQKwcM6WbQkTkwXORYRMZYBY4sliykcIkjhxJDqmxC Cy3ly7eD3pEM
icGTDKVW4ArvQITK+JPDtOkNNTRpqXaDJObHpY07LTsM9Vmp8yayb3wSYuEG VrO4ybDxf+Ec
a7jFwM8JlRkGiTy0sI6NLO4wbCasnuMubIYl4boyildiO/mQDk3h67jPsYny FKTB8C45yOwK
zhm1oaly1GBNaXYZFuN+zhvWv5vNYLWDQejKV8qMO39eSf2TGApq62vfl2HT E1EkaQ8K+77r
BZHyu2+kPg46HA/MSi27oRRatvVnTzYnorBD25eib3ihWDTLCBRLZhXNCV05 WPT+AlnPyDdx
hWrtDLy6dYZ89RuKX+LAZbpbcQJVij1cJouTTeG4gpX4/CquTaA+UqSJXaue EtIp8l9xfYTb
E4+PcG+EyhQ4H/M+pOcjrOJxDL4yBpiAG2sL27GSepznkC7EtbP4fYn+UUCa JrL7G1BLBwi/
yzZzJwIAALQEAABQSwMEFAAIAAgAOmBqNgAAAAAAAAAAAAAAAEoAAABvcmcu ZWNsaXBzZS5y
YXAuZGVtby9iaW4vb3JnL2VjbGlwc2UvcmFwL2RlbW8vY29udHJvbHMvQnV0 dG9uVGFiJDIk
MS5jbGFzc5VSTW8TMRB9bkKWhKVNA5TvT+WQtlATJCQkEAeiIkUKcCgqR+Ts TlMH1668TvO7
OCAkDvwAfhRi7EQgIQ7h4J2Z53nvzc7uj5/fvgPo40GGNYFd5yeSCqNPK5Je ncqSTpwsnA3e
mUq+moXg7Hs17j7p9jPUBdpTdaakUXYi342nVIQMDYGHf8tMj1RBcq5t6eZy +CHFgTJmrIpP
Ao1wrKtun+1HK/s/Z9oLbXV4KbDX+w/e9qFAfeBKakLgYo4M51uoYSNHE22B Wi82bIy0pbez
kzF5ZhkS6Ixcocyh8jrWS7AeBxd4tLp9t8+D54tFDIyrqGSV3jB6tjyFmbdx NAExZODAzXxB
r3W0Wv8tshdXziJDa8kPjKoqqjLcFtheeQp+wX1bsL22kzcUjl2Z4x7us8tc lxMKB2T4U8bZ
/rFaPw+SzsiGSi76tLP7sebV4jEvtcbnHES7HXfLP9canyZajF7g7BnXEWnt 7H5BvvMV659T
z2bE0k1kf0SHs5zziF7C5YRfwdZS5elSV/whN1LzOBG3lkILYsyu4loa7Xrq v4GbHDuc3Ur3
ncSN8Q4/64ze/QVQSwcIKM7SZrQBAAAaAwAAUEsDBBQACAAIADpgajYAAAAA AAAAAAAAAABI
AAAAb3JnLmVjbGlwc2UucmFwLmRlbW8vYmluL29yZy9lY2xpcHNlL3JhcC9k ZW1vL2NvbnRy
b2xzL0J1dHRvblRhYiQyLmNsYXNzlVXrctNGFP6WmMhx1MSYQICWYoJpbOUi Eq7lTkyAgJMW
koHJDAOzkU5sgaw1kpzkPfoknWlCp8z0AXioTs/KnjbFCnF/WHt295zzfee2 /vzXH38CmMOq
gSMCFRXWbXJ8rxWRHcqW7VJT2Y4K4lD5kb3QjmMVrMmN0ryBjMDUl+rhdmzT FgVxZK+ST07s
qeCBK1sxhQKDccOLSpcYpdYnzC2B7Jb0SzHtxAITPWYabttz68R4a6zD+kNa vx6qdkvgwlcN
Hmslthi87QVefFfgQ7lvXocz6QO68lIgU1UuDUFg1MRRDGrpmAkDWS0dNzGE XA4DOGFiGCcF
BsraaLTmBbTSbm5QyGR8EijUlCP9lzL09L57mNH55iL1G1VpnrMx0uHYqR65 ArO9WUmr8qLe
c0gGvhcYfye3pO3LoG6vxqEX1Bfanu9SmEVR4ORag4q6osV11S6yFYXk3izm cBYTOswLAifK
tS89sOscLmLSwA8CxcPSb6KMioDBB2tJ74yVK70uNeSUiWnMcBfIVosCjncm DbvnqBtQ4sI2
cUmjZWPVuTQwnzIbB2a9NJfjAbyiY7+amu+D66WTch0/GrghcP7QjjNxE3qk dH0b5PsCF8u9
s7jfLFG7lcUdgeGlYFOFTamLncM9PDBwPyXKd5vSIdv1pK/qkb1MUSTr9DDZ mlhAlbtXcaL3
ORPYSW+x/5LorUrKSTqbbS9w1ba99CpZq9L3N6TzPpm/o0kfpw3JwU3OfdXs xKUHr4dEMkP7
gbi
|
|
|
Re: Getting URL Paramter [message #5163 is a reply to message #5093] |
Sat, 10 March 2007 09:18   |
Eclipse User |
|
|
|
Hi Raul,
thanks for the example, it works good and it's a pretty nice solution.
The only problem I´d see, if many users access the application with
different parameters. How can I be sure to get the right paramter to the
right client, when a lot of users access the bridge at the same time?
The good news are, I can develop a prototyp now and have a look at the
traffic.
regards
karsten
Raul Arabaolaza schrieb:
> Hi, i´ve been playing a little, with RAP demo and HttpService, this is
> what got, hope this could help you:
>
> 1- Add a BundleActivator to the demo
> 2- Use that BundleActivator to register a bridgeServlet
> 3- This servlet takes the needed parameter from the request and do
> whatever is needed with it. (Store it in a static variable in some class
> of your application??)
> 4- Use a requestDispatcher to redirect to RAP´s application itself.
>
> The problem i see is that you will have to redirect to the new
> bridgeServlet instead of RAP url and i don´t know if you are currently
> redirecting to RAP url in your app...
>
> I atach a example, please note neither url parametrization nor security
> is taken in consideration in this example.
>
> Regards, raul
>
> Karsten Panier escribió:
>> Hi,
>> thanks for your answer, but I don't know how databinding can help me.
>> I won't to integrate my rap application with a third party web
>> application. The third party web app allows me to configure access to
>> my rap app like this:
>> linkformat.changeset= http://88.198.115.210/websvn/listing.php?repname=Aysada+Deve lop&path=/&rev=${rev}&sc=1
>>
>>
>> So what I need is to get the value of ${rev} in the rap app. How can I
>> get it?
>> karsten
>>
>> Raul Arabaolaza schrieb:
>>> Hi,
>>> I´m a newby so don´t take too serious my idea, but you could try a
>>> sort of databinding instead of using url parameters? RAP is, as long
>>> as i know, event-based and the eclipse plugin model too. Thus a
>>> solution like traditional java desktop applications may be in order...
>>>
>>> I believe that with OSGi and RAP traditional J2EE aproaches don´t
>>> work very well i.e url parameters
>>>
>>> I know databinding is targeted for the M3 of RAP.
>>>
>>> Hope i ve not said something very stupid my apologies in that case.
>>>
>>> Regards, Raúl
>>>
>>> Karsten Panier escribió:
>>>> Hi,
>>>> I develop a web application with rap. Now I have another web app,
>>>> which references the rap one. The reference Url contains object id's
>>>> which I need in the rap application to query against a database. How
>>>> can I get it?
>>>> I saw that the example uses url paramter to determine the entry
>>>> point, but i don't see a way to use it in a Implementation of
>>>> IEntryPoint.
>>>> Any ideas?
>>>> thanks
>>>> karsten
>
|
|
|
Re: Getting URL Paramter [message #5230 is a reply to message #5163] |
Sun, 11 March 2007 05:44   |
Eclipse User |
|
|
|
Hi,
I´m glad to be of some help, i don´t understand very good your cuestion.
Are you worried about the servlet or about how can you set in your RAP
app, i will continue with the static variable example for the moment,
the requiered parameters for each user??
The servlet: Is responsability of the container to ensure each client
have it´s own request, response in every invocation, at least i think so...
About the other cuestion, i´m don´t know how RAP manages concurrent
users and their data internally. It is something i´m looking for too,
the RAP demo for EclipseCon is a living example wich probes that RAP
actually does it pretty nice so i guess is something not to worry about
too much.
Acording to the RAP wiki it deals with user sessions and every
application runs on its own OSGi instance so i suspect the key is there.
Maybe it happens the same way that with usual webapps and every client
have it´s own copy of the model and data and the container manages all?
but i don´t have at home any tool for test concurrency so i´m not sure.
> The good news are, I can develop a prototyp now and have a look at the
> traffic.
That´s good news. :)
Regards, Raúl
Karsten Panier escribió:
> Hi Raul,
> thanks for the example, it works good and it's a pretty nice solution.
> The only problem I´d see, if many users access the application with
> different parameters. How can I be sure to get the right paramter to the
> right client, when a lot of users access the bridge at the same time?
>
> The good news are, I can develop a prototyp now and have a look at the
> traffic.
>
> regards
> karsten
>
|
|
|
Re: Getting URL Paramter [message #5396 is a reply to message #5230] |
Mon, 12 March 2007 09:54   |
Eclipse User |
|
|
|
Hi,
I am worried about parallel users. An Example: User A accesses the
servletbridge with param=Foo. The Recirect to /rap takes some time. Now
User B accesses the servletBridge with param=Bar. I stored 'Bar' now in
the static varibale and my rap application gets for user A the wrong
value 'Bar'.
I hope that example explains my problem.
regards
karsten
Raul Arabaolaza schrieb:
> Hi,
> I´m glad to be of some help, i don´t understand very good your cuestion.
> Are you worried about the servlet or about how can you set in your RAP
> app, i will continue with the static variable example for the moment,
> the requiered parameters for each user??
>
> The servlet: Is responsability of the container to ensure each client
> have it´s own request, response in every invocation, at least i think so...
>
> About the other cuestion, i´m don´t know how RAP manages concurrent
> users and their data internally. It is something i´m looking for too,
> the RAP demo for EclipseCon is a living example wich probes that RAP
> actually does it pretty nice so i guess is something not to worry about
> too much.
>
> Acording to the RAP wiki it deals with user sessions and every
> application runs on its own OSGi instance so i suspect the key is there.
> Maybe it happens the same way that with usual webapps and every client
> have it´s own copy of the model and data and the container manages all?
> but i don´t have at home any tool for test concurrency so i´m not sure.
>
>
> > The good news are, I can develop a prototyp now and have a look at the
> > traffic.
>
> That´s good news. :)
>
> Regards, Raúl
>
>
>
> Karsten Panier escribió:
>> Hi Raul,
>> thanks for the example, it works good and it's a pretty nice solution.
>> The only problem I´d see, if many users access the application with
>> different parameters. How can I be sure to get the right paramter to
>> the right client, when a lot of users access the bridge at the same time?
>>
>> The good news are, I can develop a prototyp now and have a look at the
>> traffic.
>>
>> regards
>> karsten
>>
>
|
|
|
Re: Getting URL Paramter [message #5705 is a reply to message #5396] |
Mon, 12 March 2007 19:16   |
Eclipse User |
|
|
|
Originally posted by: jkrause.innoopract.com
Hi Karsten,
For accessing a request parameter you can use the ContextProvider
utility anywhere in your code.
HttpServletRequest request = ContextProvider.getRequest();
RAP also provides a convenience class called SessionSingletonBase that
allows you to use the Singleton pattern per servlet session, if you want
to maintain state information in a session.
Here is a code example that shows the use of this by the RAP workbench
implementation:
public class Workbench extends SessionSingletonBase implements IWorkbench {
private Workbench() {
}
public static Workbench getInstance() {
return ( Workbench )getInstance( Workbench.class );
}
Cheers,
Jochen
Karsten Panier wrote:
> Hi,
> I am worried about parallel users. An Example: User A accesses the
> servletbridge with param=Foo. The Recirect to /rap takes some time. Now
> User B accesses the servletBridge with param=Bar. I stored 'Bar' now in
> the static varibale and my rap application gets for user A the wrong
> value 'Bar'.
> I hope that example explains my problem.
> regards
> karsten
>
> Raul Arabaolaza schrieb:
>> Hi,
>> I´m glad to be of some help, i don´t understand very good your
>> cuestion. Are you worried about the servlet or about how can you set
>> in your RAP app, i will continue with the static variable example for
>> the moment, the requiered parameters for each user??
>>
>> The servlet: Is responsability of the container to ensure each client
>> have it´s own request, response in every invocation, at least i think
>> so...
>>
>> About the other cuestion, i´m don´t know how RAP manages concurrent
>> users and their data internally. It is something i´m looking for too,
>> the RAP demo for EclipseCon is a living example wich probes that RAP
>> actually does it pretty nice so i guess is something not to worry
>> about too much.
>>
>> Acording to the RAP wiki it deals with user sessions and every
>> application runs on its own OSGi instance so i suspect the key is
>> there. Maybe it happens the same way that with usual webapps and every
>> client have it´s own copy of the model and data and the container
>> manages all? but i don´t have at home any tool for test concurrency so
>> i´m not sure.
>>
>>
>> > The good news are, I can develop a prototyp now and have a look at the
>> > traffic.
>>
>> That´s good news. :)
>>
>> Regards, Raúl
>>
>>
>>
>> Karsten Panier escribió:
>>> Hi Raul,
>>> thanks for the example, it works good and it's a pretty nice
>>> solution. The only problem I´d see, if many users access the
>>> application with different parameters. How can I be sure to get the
>>> right paramter to the right client, when a lot of users access the
>>> bridge at the same time?
>>>
>>> The good news are, I can develop a prototyp now and have a look at
>>> the traffic.
>>>
>>> regards
>>> karsten
>>>
>>
>
|
|
|
Re: Getting URL Paramter [message #5774 is a reply to message #5705] |
Tue, 13 March 2007 01:51  |
Eclipse User |
|
|
|
Hi Jochen,
that's it.
Thank you.
regards
Karsten
Jochen Krause schrieb:
> Hi Karsten,
>
> For accessing a request parameter you can use the ContextProvider
> utility anywhere in your code.
>
> HttpServletRequest request = ContextProvider.getRequest();
>
> RAP also provides a convenience class called SessionSingletonBase that
> allows you to use the Singleton pattern per servlet session, if you want
> to maintain state information in a session.
>
> Here is a code example that shows the use of this by the RAP workbench
> implementation:
>
> public class Workbench extends SessionSingletonBase implements IWorkbench {
>
> private Workbench() {
> }
>
> public static Workbench getInstance() {
> return ( Workbench )getInstance( Workbench.class );
> }
>
> Cheers,
>
> Jochen
>
>
> Karsten Panier wrote:
>> Hi,
>> I am worried about parallel users. An Example: User A accesses the
>> servletbridge with param=Foo. The Recirect to /rap takes some time.
>> Now User B accesses the servletBridge with param=Bar. I stored 'Bar'
>> now in the static varibale and my rap application gets for user A the
>> wrong value 'Bar'.
>> I hope that example explains my problem.
>> regards
>> karsten
>>
>> Raul Arabaolaza schrieb:
>>> Hi,
>>> I´m glad to be of some help, i don´t understand very good your
>>> cuestion. Are you worried about the servlet or about how can you set
>>> in your RAP app, i will continue with the static variable example for
>>> the moment, the requiered parameters for each user??
>>>
>>> The servlet: Is responsability of the container to ensure each client
>>> have it´s own request, response in every invocation, at least i think
>>> so...
>>>
>>> About the other cuestion, i´m don´t know how RAP manages concurrent
>>> users and their data internally. It is something i´m looking for too,
>>> the RAP demo for EclipseCon is a living example wich probes that RAP
>>> actually does it pretty nice so i guess is something not to worry
>>> about too much.
>>>
>>> Acording to the RAP wiki it deals with user sessions and every
>>> application runs on its own OSGi instance so i suspect the key is
>>> there. Maybe it happens the same way that with usual webapps and
>>> every client have it´s own copy of the model and data and the
>>> container manages all? but i don´t have at home any tool for test
>>> concurrency so i´m not sure.
>>>
>>>
>>> > The good news are, I can develop a prototyp now and have a look at
>>> the
>>> > traffic.
>>>
>>> That´s good news. :)
>>>
>>> Regards, Raúl
>>>
>>>
>>>
>>> Karsten Panier escribió:
>>>> Hi Raul,
>>>> thanks for the example, it works good and it's a pretty nice
>>>> solution. The only problem I´d see, if many users access the
>>>> application with different parameters. How can I be sure to get the
>>>> right paramter to the right client, when a lot of users access the
>>>> bridge at the same time?
>>>>
>>>> The good news are, I can develop a prototyp now and have a look at
>>>> the traffic.
>>>>
>>>> regards
>>>> karsten
>>>>
>>>
>>
|
|
|
Goto Forum:
Current Time: Thu May 08 21:18:43 EDT 2025
Powered by FUDForum. Page generated in 0.09909 seconds
|