From: Subject: Ode Magazine : Hot stuff Date: Sun, 30 Nov 2008 19:10:28 +1000 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_019B_01C9531F.4E9E0440" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: file://F:\My Documents\BISTA\_news\Ode Magazine Hot stuff.htm =EF=BB=BF Ode Magazine : Hot stuff
NEDERLANDS  |  ENGLISH   
<= /TD>
MAGAZINE =    BLOGS=20    EXCHANGE=20    PEOPLE =    GROUPS   MARKETPLACE ABOUT =    SUBSCRIBE    NEWSLETTER=20    CONTACT =   =20 LOGIN / REGISTER=20
3D""=20

Email   Print
<= /TD>

Hot stuff

Bhutanese refugees in Nepal have a new way = to prepare=20 meals, without firewood, kerosene or the risk of smoke inhalation = - the=20 solar cooker.

Marco=20 Visscher | January/February 2008 = issue=20

Bhutanese refugees in Nepal have a new way to prepare = meals,=20 without firewood, kerosene or the risk of smoke = inhalation=E2=80=94 the solar=20 cooker.

They look like giant satellite dishes, or spare parts from some = disassembled spacecraft. Though they might seem out of place, the = 2,500=20 solar cookers in use at a camp for Bhutanese refugees in southern = Nepal=20 have become essential to daily life. Residents use the cookers to = purify=20 their water, for example, or to cook eggs and potatoes without = using water=20 at all. The technology=E2=80=94brought to Nepal by the Dutch = humanitarian=20 organization Stichting Vluchteling, known as the Netherlands = Refugee=20 Foundation=E2=80=94provides a cleaner and healthier alternative to = using the more=20 conventional fuels.

A majority of the thousands of residents in the camp used to = cook using=20 petroleum supplied by the UN High Commissioner for Refugees = (UNHCR), which=20 also supplies huts, food and drinking water. But rising fuel = prices made=20 this too expensive.

3D""=20
3D""=20

The nearby forest has also been an important source of fuel. = Some two=20 billion people around the world forage in forests for fuel. Every = day,=20 camp residents would set off to cut down trees for wood to make = their=20 evening meal. But, often illegal, felling trees leads to=20 scarcity=E2=80=94deforestation rates in Nepal are among the = highest in the=20 world=E2=80=94and without the trees=E2=80=99 roots, monsoon rains = wash away fertile soil.=20

Moreover, the smoke from the burning wood leads to health = problems. The=20 poisonous vapours irritate eyes, lungs and throats. Of all = environmental=20 dangers, the World Health Organization has identified indoor = pollution=20 from cooking as the second most common cause of death worldwide, = after=20 using contaminated water.

Also, buying wood=E2=80=94or the equally unhealthy = alternatives: petroleum,=20 coal or biomass=E2=80=94can take a quarter of poor = families=E2=80=99 income. This is the=20 case in the Beldangi camp in Damak, eastern Nepal, where the = photographs=20 on these pages were taken.

The Bhutanese refugees have very little income because they are = not=20 permitted to participate in the Nepalese economy. Starting in the = 1990s,=20 they have been fleeing their kingdom in the Himalayas due to=20 discrimination. The Lhotsampas were denied citizenship and when = their=20 language was banned and traditional Buddhist clothing made = compulsory,=20 some 100,000 people fled back to Nepal, the country they left in = the 19th=20 century for Bhutan. But the Nepalese government won=E2=80=99t = recognize the=20 Lhotsampas as refugees and consider them illegal immigrants. The = UNHCR is=20 housing them in seven camps, where some have lived for as long as = 18=20 years. Tensions are high among native Nepalese because of the = extra drain=20 on aid resources and jobs=E2=80=94even though the refugees = aren=E2=80=99t allowed to work=20 outside the camps.

The Netherlands Refugee Foundation hopes the solar cookers will = send a=20 signal that the Lhotsampas haven=E2=80=99t been forgotten. The = foundation expects=20 to donate another 4,000 solar cookers.

The solar cooker works using the reflection and absorption of = the sun=E2=80=99s=20 rays. A parabolic mirror reflects the light of the sun, causing a = pan=20 placed in the middle of the cooker to heat up. A meal of rice, = lentils and=20 vegetables can be cooked in an hour if conditions are right. It = takes a=20 bit longer on a cloudy day.

The new owners of the solar cookers paid about $1 each, for = which they=20 got two pans (black, because they absorb heat better) and a box to = keep=20 dishes warm. Some refugees are trained to teach others to use and = maintain=20 the solar cookers. Others have been trained to assemble the = cookers and=20 warming boxes.

Solar cookers aren=E2=80=99t just suited to tropical countries. = Weather=20 permitting, they can even be used in seemingly incompatible = climates like=20 northern Europe, except during the winter months. For the cookers = to work,=20 the sun simply needs to shine for at least 20 minutes an hour. =

No tree-felling, no CO2 emissions, no air pollution, no health=20 problems: It would seem that a sunny solution has been found for = the=20 Bhutanese refugees.

Find out more: solarcookers.org


Tools: = Discuss=20 | Email | Print=20 | RSS = | Weekly=20 Newsletter
Save/Share: =
  • =20
  • =20
  • =20
  • =20
  • =20
  • =20
  • =20
  • =20
  • =20
Comments
Post a comment

You must be a registered user to comment. If you are already = registered=20 Click=20 here to login or Click = here for our=20 fast, free registration.

TERMS &=20 CONDITIONS   PRIVACY &=20 COPYRIGHT    SUBSCRIBE    ADVERTISE=20    PRESS =    MASTHEAD=20    CONTACT =   =20 LINKS =   SITE=20 MAP   
=C2=A9 Ode = Magazine USA,=20 Inc. and Ode Luxembourg 2008 (further information in Privacy = &=20 Copyright)=20
------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/tagline.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QbwRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv c2gAMjAwNzoxMToyNiAxNTo0Mjo0MQAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABIqADAAQAAAAB AAAAEAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAW6AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgACQCgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A8qXT/Vij6v5GCGdTxsd1322qo3PvsqsND6sq67a3168duyzG orZc6n/D/wDFrmEklPTdS6B9XsfpzcnHznm23JrZBdXa2qqxjLjXkNp2W2XUtt3faaf0N2yyj7PR dWr7/qv9VqMstOZuHqM2VPysdzWsa657vtFtHp+t9txcemyr7M+n7J9t9/r2U/peKSSU9o76ufVS 4s3ZrcQ2FvvZfW6utofg12m2ux1t1j7GZ97m/pavT+yfzf8APelRq+r3Q39Sz8Z+W+qnHfjsr32U hzGXR9rzLbP5vNp6b9B1OK2u7K9Vl36syu5cykkp7Rv1Y+qbLWsyMm1jnva11TczFcaZd0+myuzI bUacn/lG7J9an06/SxX0/wA5XkWUxp+rH1TsbXU7Pey7Y02WnIoFZfs6dY5rWOrHpNts6rbQzdkW ej+z732/4X7LxqSSnsG/Vv6uUNrFmULMljWuyK3ZFJr3GssyMZvomt/qU5nuZe299Xp+z9L/ADqF 1joX1fqweo9Qw3W1sxbK6Mev1W212Pvbj34lld7adrm/Zm9TtyafU9al/wBk/wCEXKI7/wCg1f8A G2f9TQkp7E/Vn6p5Vu5uU3DpbZjUe3KqeYe3p5te9tu6y27K+29Qf61Xp4uH+zrfVp/0Of0jpn1Z zOnvvyS6kDMsDGnJrZkegK2Gmo+q30P52z35H2P3+nsXLpJKe4q+rv1T9et1lw2UnCY5jcitzLt9 r6M7Lu9zLKMZz6vs1jKbvUwt/wBq/SUvp9SWH9U+g9TBbj7nPpp9U1YlrXWPcaOkbK5tOQ335mZn bGbK/wBN6lPr1eiuFVjB+nb/AMTZ/wBSUlPTZP1a+q9FV2zPfbYzGZZU8W1Bj7PQz811tY2PsfTa 7Ax8X7N+ivxb8z9Jbf8A4UuL0b6uO651Wh1dLsKjLqrq9TLaBXgP9c5XUsW5ttP2q7HYzFfRV+tf z/p20ZNi4xJJT3WP9V/q1i249Wa+brmYtj678itm1llnT3XZTq6vSfVTbVm5Vf2S6z7TXTh2ZPqf pv1evhfV76qOOKX5U2foX3+tkVei6R0x+RXsrFF1bXftXIYz9Z/Rfs2/+c/SfZeRyf54/AfkCGkp 7On6t/Vl/wBno9dznZDsNzrTk0ssrZdRk2Xi6va+nFr+101+r/TbsXF9G39NZb6F3M5HSMuip97j SamQZZfU8kH09paxlnqu/pFX+D/89XenSSSU/wD/2f/tKYhQaG90b3Nob3AgMy4wADhCSU0EJQAA AAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+oAAAAAHbA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k aW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21wdXRlci8v RFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlz dC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUu cHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJp bnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1B cnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5Q YWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5h cHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp Y2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA3LTExLTI2VDIzOjQyOjIwWjwvZGF0ZT4K CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRl Z2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20u YXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5 PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxl LnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5p dGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJp bnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2Vy PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmlu Zz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5w cmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwNy0xMS0yNlQyMzo0MjoyMFo8 L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJ CQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxr ZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFw cGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUu cHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5h cHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp Y2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA3LTExLTI2VDIzOjQyOjIwWjwvZGF0ZT4K CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRl Z2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20u YXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5 PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxl LnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5p dGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJp bnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJ CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29t LmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu dGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDctMTEtMjZUMjM6NDI6MjBaPC9kYXRl PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGlu dGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNv bS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4K CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29t LmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp Y2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBw bGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwv cmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxz dHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBw bGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDctMTEtMjZUMjM6NDI6 MjBaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5 PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+ Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4K CTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VS ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y PC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJ CTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBh Z2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxy ZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzM0PC9yZWFsPgoJCQkJCQk8cmVhbD41NzY8L3Jl YWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50 PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJ CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4y MDA3LTExLTI2VDIzOjQyOjIwWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr ZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4K CQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5Q TUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50 LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdl cjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+ CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt YXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4 PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjc3NDwvcmVhbD4KCQkJ CQkJPHJlYWw+NTk0PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp bnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu YWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9r ZXk+CgkJCQkJPGRhdGU+MjAwNy0xMS0yNlQyMzo0MjoyMFo8L2RhdGU+CgkJCQkJPGtleT5jb20u YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVn ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnBy aW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5w bS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVt QXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp bnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5uYS1sZXR0ZXI8L3N0 cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJ PHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxrZXk+ Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwMy0wNy0w MVQxNzo0OTozNlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRl RmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJy YXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0 ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu Y3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9z dHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJ PGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBN VW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3Jl YWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzM0PC9yZWFsPgoJCQkJCQk8 cmVhbD41NzY8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2Vy PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4K CQkJCQk8ZGF0ZT4yMDA3LTExLTI2VDIzOjQyOjIwWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4K CQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQu UGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNv bS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5w cmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBw bGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJh eT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxy ZWFsPjc3NDwvcmVhbD4KCQkJCQkJPHJlYWw+NTk0PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29t LmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50 LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwNy0xMS0yNlQyMzo0MjoyMFo8L2Rh dGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJ CTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJ CTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8 ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0 cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5h cHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJ CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4K CQkJCQk8c3RyaW5nPlVTIExldHRlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50 LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0 U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8 L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTA3LTAxVDE3OjQ5OjM2WjwvZGF0ZT4KCQkJCQk8a2V5PmNv bS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50 ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUu cHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCQk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+CgkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnByaXZhdGVMb2NrPC9rZXk+CgkJPGZhbHNlLz4K CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJCTxzdHJpbmc+Y29tLmFw cGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0PgoJPGtleT5jb20uYXBw bGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4K CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5wcml2YXRlTG9jazwva2V5PgoJPGZhbHNlLz4K CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8c3RyaW5nPmNvbS5hcHBs ZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4KOEJJTQPt AAAAAAAQAEgAAAABAAEASAAAAAEAAThCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAA AAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAAB AAA4QklNJxAAAAAAAAoAAQAAAAAAAAABOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9m ZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4 AAAAAABwAAD/////////////////////////////A+gAAAAA//////////////////////////// /wPoAAAAAP////////////////////////////8D6AAAAAD///////////////////////////// A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAA AAAGAAEAAAACOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklN BBoAAAAAA0kAAAAGAAAAAAAAAAAAAAAQAAABIgAAAAoAVQBuAHQAaQB0AGwAZQBkAC0AMQAAAAEA AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABIgAAABAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA AAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAA UmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAABAA AAAAUmdodGxvbmcAAAEiAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIA AAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVT bGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAA SW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABM ZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAQAAAAAFJnaHRsb25nAAABIgAAAAN1cmxURVhUAAAA AQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAAB AAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFs aWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAA D0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VC R0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25n AAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0E KAAAAAAADAAAAAE/8AAAAAAAADhCSU0EFAAAAAAABAAAAAI4QklNBAwAAAAABdYAAAABAAAAoAAA AAkAAAHgAAAQ4AAABboAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5B ZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwM DAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAAkAoAMBIgACEQEDEQH/3QAEAAr/ xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYH CAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFD ByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2 hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGR FKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSk hbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APKl0/1Yo+r+ RghnU8bHdd9tqqNz77KrDQ+rKuu2t9evHbssxqK2XOp/w/8Axa5hJJT03UugfV7H6c3Jx855ttya 2QXV2tqqsYy415Dadltl1Lbd32mn9Ddsso+z0XVq+/6r/VajLLTmbh6jNlT8rHc1rGuue77RbR6f rfbcXHpsq+zPp+yfbff69lP6XikklPaO+rn1UuLN2a3ENhb72X1urraH4NdptrsdbdY+xmfe5v6W r0/sn83/AD3pUavq90N/Us/Gflvqpx347K99lIcxl0fa8y2z+bzaem/QdTitruyvVZd+rMruXMpJ Ke0b9WPqmy1rMjJtY572tdU3MxXGmXdPpsrsyG1GnJ/5RuyfWp9Ov0sV9P8AOV5FlMafqx9U7G11 Oz3su2NNlpyKBWX7OnWOa1jqx6TbbOq20M3ZFno/s+99v+F+y8akkp7Bv1b+rlDaxZlCzJY1rsit 2RSa9xrLMjGb6Jrf6lOZ7mXtvfV6fs/S/wA6hdY6F9X6sHqPUMN1tbMWyujHr9Vttdj7249+JZXe 2na5v2ZvU7cmn1PWpf8AZP8AhFyiO/8AoNX/ABtn/U0JKexP1Z+qeVbublNw6W2Y1HtyqnmHt6eb XvbbustuyvtvUH+tV6eLh/s631af9Dn9I6Z9Wczp778kupAzLAxpya2ZHoCthpqPqt9D+ds9+R9j 9/p7Fy6SSnuKvq79U/XrdZcNlJwmOY3Ircy7fa+jOy7vcyyjGc+r7NYym71MLf8Aav0lL6fUlh/V PoPUwW4+5z6afVNWJa11j3GjpGyubTkN9+ZmZ2xmyv8ATepT69XorhVYwfp2/wDE2f8AUlJT02T9 WvqvRVdsz322MxmWVPFtQY+z0M/NdbWNj7H02uwMfF+zfor8W/M/SW3/AOFLi9G+rjuudVodXS7C oy6q6vUy2gV4D/XOV1LFubbT9qux2MxX0VfrX8/6dtGTYuMSSU91j/Vf6tYtuPVmvm65mLY+u/Ir ZtZZZ0912U6ur0n1U21ZuVX9kus+0104dmT6n6b9Xr4X1e+qjjil+VNn6F9/rZFXoukdMfkV7KxR dW137VyGM/Wf0X7Nv/nP0n2Xkcn+ePwH5AhpKezp+rf1Zf8AZ6PXc52Q7Dc605NLLK2XUZNl4ur2 vpxa/tdNfq/027FxfRt/TWW+hdzOR0jLoqfe40mpkGWX1PJB9PaWsZZ6rv6RV/g//PV3p0kklP8A /9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAAT AEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADMAAAABADhCSU0EBgAAAAAABwAI AAAAAQEA/+EPz2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLv u78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJh ZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIw LCBNb24gRmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0i aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3Jp cHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMv MS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBN TT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9u cy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnBob3Rvc2hvcD0i aHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6dGlmZj0iaHR0cDovL25z LmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhp Zi8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhv dG9zaG9wIENTMyBNYWNpbnRvc2giIHhhcDpDcmVhdGVEYXRlPSIyMDA3LTExLTI2VDE1OjQyOjQx LTA4OjAwIiB4YXA6TW9kaWZ5RGF0ZT0iMjAwNy0xMS0yNlQxNTo0Mjo0MS0wODowMCIgeGFwOk1l dGFkYXRhRGF0ZT0iMjAwNy0xMS0yNlQxNTo0Mjo0MS0wODowMCIgeGFwTU06RG9jdW1lbnRJRD0i dXVpZDowQUJCQzMyOEM4OUREQzExQTQ0MzhDODVFNUNGM0IzQSIgeGFwTU06SW5zdGFuY2VJRD0i dXVpZDo2ODZFNzA4REM4OUREQzExQTQ0MzhDODVFNUNGM0IzQSIgcGhvdG9zaG9wOkNvbG9yTW9k ZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6 SGlzdG9yeT0iIiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwMDAv MTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5p dD0iMiIgdGlmZjpOYXRpdmVEaWdlc3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQs NTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3Miwz MDUsMzE1LDMzNDMyO0I5MDlGODUyMDgwNjk0M0VDNTk1MTlCOTAyNTIxODI3IiBleGlmOlBpeGVs WERpbWVuc2lvbj0iMjkwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTYiIGV4aWY6Q29sb3JTcGFj ZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQw OTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUy LDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3 Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDky LDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQx OTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0 LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwy NywyOCwzMDtBMEY5QUE1RDVEOTE5NkQwRTk5QUZFRTY0Q0E5NkQ1MyI+IDx4YXBNTTpEZXJpdmVk RnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOjA5QkJDMzI4Qzg5RERDMTFBNDQzOEM4NUU1Q0Yz QjNBIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOjA5QkJDMzI4Qzg5RERDMTFBNDQzOEM4NUU1Q0Yz QjNBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBl bmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkA BgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQICAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAA ABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD 1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJD AAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBh Y2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJz UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA AABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MA AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3Lmll Yy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGlu IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJ RUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8U AAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAA AAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIA twC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZ AWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgC QQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNm A3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME 4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAad Bq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoI vgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsi CzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N +A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RET ETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsU rRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc 9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGh Ic4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm 6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxu LKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkF OUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JA I0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7 R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lP k0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfg WC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg /GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpI ap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0 cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7C fyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ /opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVf lcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUeh tqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67 p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6 ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX 4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72 bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAOQWRvYmUAZEAAAAAB/9sAhAAB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMD AwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwP/wAARCAAQASIDAREAAhEBAxEB/90ABAAl/8QBogAAAAYCAwEAAAAAAAAA AAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwIIAQkACgsQAAIBAwQBAwMCAwMD AgYJdQECAwQRBRIGIQcTIgAIMRRBMiMVCVFCFmEkMxdScYEYYpElQ6Gx8CY0cgoZwdE1J+FTNoLx kqJEVHNFRjdHYyhVVlcassLS4vJkg3SThGWjs8PT4yk4ZvN1Kjk6SElKWFlaZ2hpanZ3eHl6hYaH iImKlJWWl5iZmqSlpqeoqaq0tba3uLm6xMXGx8jJytTV1tfY2drk5ebn6Onq9PX29/j5+hEAAgED AgQEAwUEBAQGBgVtAQIDEQQhEgUxBgAiE0FRBzJhFHEIQoEjkRVSoWIWMwmxJMHRQ3LwF+GCNCWS UxhjRPGisiY1GVQ2RWQnCnODk0Z0wtLi8lVldVY3hIWjs8PT4/MpGpSktMTU5PSVpbXF1eX1KEdX Zjh2hpamtsbW5vZnd4eXp7fH1+f3SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK 2ur6/9oADAMBAAIRAxEAPwD5/wD7917r3v3Xurgv5XHwO+IPznh7R233R8o+0ele2NgbS7I7Wo9n bK6Vpt/YXI9O9U7Kot2br3RU7prt1YOngz5keqp6fFrEZJBTB9f7oC+62BXofp/5J9B338bdhd+/ y/u4j3k2/u1fkPs7aO0u38t170fvTszb/S+ExGfxdH1Z19uLPpuXdnZWaxn8XqanE0r1UVLSYp5p JoleMPrr1B5dV+QfyzPlrP8AFd/l8Np7Qi60/uJU9uU+1Z+ydkQ9013SdFu9NhV3d9F0u+aHYM/U tFu+RaOTM/ZCCxFQAaUif3vr1Op3xE/lh/Kj5sbHyPYvTdF1djdqp2PF0vtGt7T7g2B1ZN2p3XLt mPeadO9U0e8s1jane3Yv91Z4q80FOoC00yuXA1afdep0ttjfyevnL2F0ivfGB2PsWHbldsnurfe2 NlZjtrrzEdzb6xfxz3vuXYPedBsfpusz6dibizXWWZ2rUPkoIqDSIZaYRPLPUwwv7r1D0ZTfH8ov bOI6qyO8tmby7K3TuWL+Wn8Gvm7R0f2mwKPb1Hvr5Z7zpdt5jZm4KnK5vCZSHZmCiqPFjqigir8g 9U6tUosAdl916leHRfO5/wCTH8+ej5dpY/P9c7K3juLdnf8Ahvi+dp9T9vdZ9n7m2h3fuyiTL7E2 P2NjtobmyS9e1++9uyplMcctJSquPljmqzSiWMP7r1Oi3/Ln4Nd7/CrI7Epu4U69y2F7Kx+46rZW 9+p+zNmdtbCzeR2PmV212DteHdmyMrlcZDu3r3cjrQZrHyMk9FUsoIZXVj7r1KdGIof5OvzYr8p0 TtVcJ1JSdkd/4il3Xgeosh3l1hQ9r7A69rtgZ3tGh7P7q2LUbiTMdSdeVWxdtVtaMlmVp0jkhFJI qVskVM/uvU6cf+GZfmtLv3P7Lo4Oia/BYHovDfJn/TRT/IrqKL495roTLbyi2NN2hgu7K/dFHsKt 23gMx53yJariqKWlpXlMTCSnE/uvU6e+zv5H3z96moqmq3NtPqXIVWO7N6h60zWC2j3z1TvDc23B 8gN40+wej+wd0be2/uauy22ese1N21kNHhsrXRU/3DSazEkayOnuvU6Xa/8ACf3+YhJk8XiYqD43 TVuW3Xu7rGCKH5YdByyRd5bPppchWfHmWCPe7VT951+Jheth29FHLUQ0iSSVbUwhm8fuvUPRdaT+ VF8vKnN7E23PgdnYvPdhfGHs/wCWuFxOW3WtBW0fVnT1XnaDfdLnYJMeWxO8sXWbbrIlxr3MjxWE nI9+69Q9Kjs3+Tv8z+luvIu1+ydu9eR7Px2Z6Pg3xitmdwdZb37G6/2p8h6ugx/Uu/N5bAwe5p85 tfau+MrXDH46oyK03nyCtGVVFaQe69Q9Gt+SP8kSm6h64+RXaGD+SvW+1aDqL5rbd+KO3tm9+706 /wBk7jejreu8xvLNV+9cxtrcG5cFTdirUnHzUGBxoqhU7fWsyQnZIhEPdep8+iB9x/yz/lJ0Jh/l 3ne0sJtPbVD8K+xOq+rO3DNueOWbK7y7jWWs2VQddxx0Z/vdFUYCNctUSg06wYyWObkuF9+69To3 e3v5Qce6/gr8VO+Nldu4vsf5T/N/tLIbI+PXx42nuLrugxs2N27u7b+091R5zIbg3LSbjzG49uPn BU5v7GkjoNrxL/uSlQWdvdep+3oLqn+Sj86Ze09idUbRwnT/AGfkO0Ovu5+wuud5dW959b746y3l T/Huppcb3FtTEb9xGbkwce+dh53I0mOr8bUvTvBXVUaO6qJHT3XqHqB8OP5Zc/yD/mC7h+CPZHbO 3ds5DaW1e181m+w+o6zC9sbXq8l1t17kN7xUe28zT5LGYfOY7IT0qU0lVFKVjOvSGK+/depx6T2G /lE/M7OfHuh+TFHhOq068yvSz/IzE4mq7r61g7KyfRWMzMeF3l2tTdYncDb1TZPXE00cufrpaOOK ggkU3kY6PfuvU6MH8hf5IHcvWXyJwXQXVHcnRfaaQ/Hnaff/AGr2Hnu0th9a7K6P21X7Z2DW7i3D 2vndxbiOH2dsat3Tvyno9sV09U9VuKlH3MNMqK+n3XqdCn8av5IFRvb+5W0vkhu7enUnbVf/ADO9 sfAjfG1ts/3Q3Lh8RtXdHxb3d8h8Z2Pt7OQSZGgztTkhg6I0MsU8uPrcTXpMhDFW9+68B0Xys/lI dh736/8AjbuTo+rqamr7T2b81+z+1d49wbt60696d6y6n+IXfs3TmY7JrN2z7gNfg9r00c9EmVfL U1PP/FKpUo4pqdll9+69Tpmg/kjfOuXtbePUdTjOj8Tltj4Hq3L5rd2d+QvVGD6zqMt3o+W/0HbD wPYGU3HS7e3H2F29TYhqjB4qhlnmmpqinkmMAmS/uvU6TuwP5Mnzz7H64quyMLsLYeNj1d50OA2D ujuHrXbXbm+dy/GvPZ3Ad37M2F1dldxwbx3Zuvr2bbVZPXU9LSvGlNErCQtLCknuvU6TXzO/l2yf EP47/DbvWbvPrDsOq+U/VOP7Hrti7d3BiJdy7VbOZbdv8MkwuMo8hX1u5dmUGEwNPT5DMulLHT56 d6EREpq9+69To9HXP8kTrneZ6A6BzXy8y+2f5gnyj+KC/Lzp348DoWsyPWr7Yrtj703/ALa6v3b2 6ew6PIYjsTcW29lVdTK8eClgxngkikhnYxPJ7r1P29Euh/k9/NefoGl+R4wPU8exK3pHb3yYpsJL 3l1dH2ZJ8ds39ktd3ZJ1kdyf3zpeu9oVGRhhzFdNSR/azuUVJSkmn3XqdGy7+/ko0Hx3q/kfQZXv nF9rz9I/Bjafyoj/ANFOQ2BV12H3ZmV6q/iGM7KwGT3cuUwnWmQm35VLt/I4/wC9yWagp46paWOH yW1Xr1OPQfZT/hP3/MMwORrMZuGH4zbdqcBv/DdY77/jfyy6GoB1nvTd8GKm61wHYEcu9PucBm+2 DnKJNtY3xy5TKPWQaaZVnhZ99ep0lsP/ACc/kRunrPrfFbc2Vu+L5Qbq+YXyC+MG7dh7mzHWe3+r 9mU/x62FTby31n8nveq3h95QDakFFk6rIV1TDHh58dHAcfPVzypHJ7r1OsGG/lDbxf4x/NPvrPfI f45vm/ihvfqnZm3ttbE7e2L2LtXuSTsTr89oLVbM7A2vm67E5et3HtjKYqi2fQUCVlTuXcE1djSK Spx0scnuvU6KJ8vvgn3p8Hcjsvb/AH1V9UUm8d2w5mLK7D2F3F132bvXrDcO38ftTLZbZnb23tj5 7NVnXm7IMVvfGVMVPW6Y6yCoLU0swil0e69SnRNffutde9+691//0Pn/APv3Xuve/de6sM/lsfLP rn4c9xdt9hdm4Xe2dw2/fil8jOi8PS7Ex2CyeUpt29vbCqdrbayOSh3BuTbFLDtyhyEweuminmqY obmKnmb0e/HrYND1YB8DP5r/AMd/i5tT+V/guwNmd05ir+FHyR+WHcPacmztu7GyFNn9s97dcT7Q 2jQ9fvmuxtvS5XO47JyiTJRZFMVTwweqGaof0e/dergDrJur+b719vr+Xf198bm3F8mOpe6eu/iZ XfEPJbd622B8Zdw9Edy7Gp6zNRYLJ727G3vipO/dkrWYHKJT5nGYUy01XLCJaeSmlMksvuvY6QHw F/mMfE3pvob4+dUfKzZfyJymb+HPzox3zm6FyfQtP1rWYjeefocXssjrHtKPfu4Nv1uBwP8AejZM Nb/FcZ/EKl6eokp/tkKrKfder0YjYP8AOr6Dp898St6b/wCu+44NydRdd/zZsV2vQbVwux8riZ95 /wAwLtXsfsbrxNhV2S37t2oze3Nqx72igzlRX0uIqIHic0lNVrpv7rwNOmE/zfvjV/o1y2zhsjvL +J1/8r3+Xj8KIZztrYP2C9q/EvsTG7t7H3BJL/pMNQOv81jqN0wlUImyNTOQtVQ0a3ca62DToVqz +fB0VtTuL5Edz9cdV9uZrLdkfzOei/mnsfb288VszAUE/U3XnWWS693ttHdeWwu/tyz7c7By8GWm /hn2dLl8dGSss0x0mB/U69Xqtb+ah86OvPmdnOrIup+xPktuzYOwcp21uLFbQ+QnWvxs63o+tqzt Sv2XW5DA7Bg+PFJGu56WRdpQx12Vzkv3lYKSmZIIHNQZt9a6PZN/Nr+DeV+W+K+cOW6u+VFN293l 8eZvjN8zNhY9+pqnr6k2nk/jFF0Hld+fH7cNTn6bcFbuxa7bOAqoMdm6HHUP2tPWBpvLPGYvdeqO mTef82r4k43499j/ABR6h2L8ipOqMV/Lgz/w16T3b2LhOs49/bg7H3f33Tdxbk3p2ji9t79mwO0d nfaUyUtLFiajN1kcqEsjK949dbqOhCrv51PxZqey/kZvKPYPf4xfb23v5P8AidtwPtbroV9DU/y/ e6Or+xu5HzkQ7UampoNzYTZVVFtkwS1LVtXJEtcuOjZ5U31omvSS2h/OL+Mu3+w6PdtZsXvaTG0/ 8+/uf+aY8FLtjr960/H7sXaUOBwmzkil7Pgg/wBMdLWRlqrH+UYRI7GPLSt6ffuvV6VuT/nSfEPJ 7WPZUvVXyQX5P7G+Jvy0+HnV+CResV6FzWz/AJDb039m9t9i7+yzblk7CxO5ds4bd6LXYjHUtXS1 NSrCKtSNA0uqdb1dB/3R/N/+NfY1N82YcJsjvKlf5JdO/wArLr7Yxym2tgwLis18H+xdg7u7Xqt2 fadmVxocZuHG7VqE289GK6WrneMVkdApZ091quekT84P5n/xN+YPT/z760O0PkRtbId2fPHa/wA4 PjXmP4D1q1G+VxnSI6Oymxu8aH+/9dNtbHx4aura+CpwMudkmqvBG4hjWQvvr1a9KH+bv82dmdk/ D/4WfGTBdh9Wdrd6Pi9s9t/NjsjpzdEu9tnbr7G6n6xxfxy6AM28Uwe3qbN7r/0RYasyWdpjDKcZ kcoIFkKqAPdePQVfGz+a11n8cdvfybZcb19v/c+6/wCXZ2t8y92dyUFRHtvEYHeO0/lDufan8Ppu tM0M7lq+vzuG2fRZE1KZTHYqBK/wRxyyRu88XuvdGL6z/m1/CD447L6y+PnQ2yvlhk+hetehfn9t 2PdXZ+D6iTtfOdx/Mba2C29tNHwO1uwE2zh+veu4sH4qqvjyk+RrRUGdaFWjWJvder1Wl/KW+ZfW HwN+Y2F+Qvb+B37uPZeN6w7i2VNjOt8Xt7MbobK9g9fZramFqIqLc+6Nn4psfTZHJI9U5rVkSAMY 45GAQ+68Dx6O7tf+a/8AHbCdXbA2TVbM7pkyu1f5Kfyd/lwZCop9u7HbHzd4d05TL1u1t1UcsnY0 VTJ1TQRZBBkK54o8vEwPixk4AJ916vDoxOB/nefFfGd+bt7Uptl/Jra+H+SPwh6f+NvyBqMPtboX d26Ooez+isds3H7E3v0Xid/5fMbD7Y2nUR7eq/4jSbsosJNM1VG8SwmErJqnW69QOrv53Hx+2jvX aW5uxaj5X9x1+2/5onUnzMyG/d17A6FxG9tzdMdY/B/LfFqDBVuC2JvbZux8X2FS5uaiWgxdHTxY qPAUytNk5KxWE2+tV6GP+XV/NL+Izz9Edcb2rZti5jpb4m/zKtgTy95ZPaewep+yN7fLP5mbF7u2 Dsmi3bW0ncWyFp36siyceSO+trTbciytMIhFUP8AaVia63XPT/2X/Nu+KnQXcfyh63w/fXyI7M25 8haX40d8VHyO6Uw3xt753f1F8ievNh1OytxdO7eou2esupOl9+9S4PZFJg8fjMvhsPiZ8NNSSx0w nC6Yvder0Urq/wDnM9AbY7W/l9dj79w/yN3xX/FztP8Am89hdzbkr9sdUSbu7Cn/AJglFuZOs83h YMTvfam2chuelyecFVu5DS4DH0Ury/wyOqjCRDfWuq3PmN8teivkv8UfgLsPb+A7Z21378T+nazo LfMGYpNn1PT+4tlUW6Ny7owm69qbgos4d6SboyFZnFWqoazE0tJSRKVjqKhgHb3Xq9WddX/zk/h7 trffxU+b+9OrPk1kv5gvxB+F0XxS2NtzAzdUxfF3e+49v9ddhdX7U7e3ZnKzKw9h4atqtudgVUmT xFHhJ6H7hk8GgQE1HuvV8zx6VfeP8wP4TdPfGno6p2Xlux+4fl1vz+RBs3+XtWY/ZWY63rPj51Zi +zs3vml7Cj7HyaZWXsfEd37EpZ6t/wCDLQTUU1LkaIySUz6pD7r3QT9y/wA2n4idjUHyn3dt/Y3y PxHZvyr/AJafWPxB3HgMxg+sa/Ym0O2+sZOtMbjsrhNx0W/6PcGT65yOB2XUyz18+MjyYq5Y0XHL GWdddbr09/Ij+cl8Yu298/OXc229id8UVB8mvm/8EfkrsOHN7Y6+pqzE7F+MGCwmL39id3R0HaGS hoN2Zeoxshw8FHJX0dQhU1FVSEkD3Xq9Krs7+dL8at/9hbS3NtLNfNDoh8B/MV+WHzAj7H6t2X0d V9l4DYndvUX9yNjYbD4bePZea2Tn9w/3gjWLc+GyanEVeBmqIIqyWSUaPderw6A/v/8AmefCHuzY n8yrqjB9L9z9QbQ+U+4fjj2v0fmevtrdSYqsrO6+hti1uBzOf7o2Hi90YXZuwsT2tvCsfNZP+6Ml eaaWaXxwSTSPO2+tV49MPzn+ef8AL2+Z2H6fwu+KL5udibw6k6o75of9mc3vs34wbM+RHYO/M3jN qxfHDrrtao2Lkq/bXYnUPXGRw1WMvn60jdtRBVt9okTyT+T3Xia9Vq9n/wDDe/8Acnf3+hj/AGcr /SN/BOi/9F3+k/8A0I/3J/vJ/Can/ZmP7/f3Utnf4J/HfD/cX+Hfv/aa/wCK/uaffuvY8uia+/da 6//Z ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/logo_70_magazine.gif R0lGODlhkgBIAKIAAMoYR9Q/ZuiYrdxnhvLF0eKAmsUANP///yH5BAAAAAAALAAAAACSAEgAAAP/ aLrc/jDKSWMpgmh9eg9VKI5kaZ5eqh7g6b5AMFzbdg0B8O7P6re8YAQwIPiOHsJAJ3QhU8CmtPis JqPSkJWVbQaM2zAB241syWUSABxuHwjMNOQsP33d+De6Tq+TAnmBXH4MfYQVgIKBcYSGhxJrioFw j46PEGySeAKVVnuXComagZ9SlqAMmaNuBIenqAYDq4qlQq+oqm01HJMlMQW7BAU5DrcSAQE0GwIF OH95wxAABXmME1RVY4WeIthWStYQAm4C4Q4A422cFHe6LcYL04LlE7lI6yHpW60T+psG9lTUEqWo QASC2UoE9GFOQSRFvJ58QjeLkgNZYWo9QPhk/0CEhbM+SAOZx2IqMSdIesDXwF/IH5heduB3cotH Exi/bZQp8YHLkCwBtGlIQWiYBypDkuH4EghTHzRNtMGSkydMBkatzlxQ9UlUhWFuLkiqtAE1rR5u nrVi0MXaKm1DoT0SJauuiPsUkBVr4u0Tlj+zMcNAFgqDrh2tteNGVuMxlAvcFAgnb2rNbEQR++DU +MXTFTQ/ryj1kJvDfUQVaFbRaqhnyAb8InGcFMhqgRVU2q3Co83YvBV20/2dEJEn3zuQG8gowtCW uBRIykbS+6gB4UdG9ME+WkTgFIWrb5Grs7lp0R5GTAev3In12ymgU+izXsUI9G7EW1FQ37D5Kv8t 9LeVCPi1h4J13+H2X08AlRdCgda9gFxt2plW2FzZJWddUiT0cSGGK+jHW4P7VQigXiAqIuITKJa4 4GwtppjHitSROOKLwy0nYyA7QHhAjCyayOCHq3TmAoT8cCgkjDbuaKQdkCmJ41VEjvIkTlGOt2SO VUoiTBjykSCgB21JqYWFZyCj5ppstummDGGwBNZzQNY4ZXdN2ikEki8YmWAKqRVj2pgHBKqGgSNw xxB/8Ah6YmyNlmCZCT4uQKhjkZ1HpxRkyekdbAWGKcF2wDVBaAeGntNGXAV6OqppOlqRKoGrlnDq IAqUWoEhSYkq4aQP5nfZE7PGymAsYRRbwZ/3eLLDSkubFmUIkspO4GMHk0Fyawd8IbtFqhQS9021 CxAzrBg4sDkAs0dYoyhrE1DkyLbdQhJAOt3CB6KrZJnUwGKwXpeHAM78K0MGKoTZ5Srm6MvaMMis +yEW7Fp50Y4quCowxli8WxFSGHtAVMVlmQXiAx5bRRrHIM8FwbWjaMzAtpqgAXMeezg8i8wNLIzH Hje78YnOmvD8b0WP7qSVr6H4XEW91sbscSkAh8S0QySzgum/C5d5rAU8GY11RVCLIK/Wln49RNZe 0WO2N3gQIMDW8ZKsxNFMBge3LtG48AteoAmzRBkxZKCKBgUTIgMwgNuQuAMJAAA7 ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/corner_magazine.gif R0lGODlh+gAyALMAALu7u4iIiERERBEREe7u7jMzMyIiIlVVVd3d3WZmZszMzHd3d8UANKOlpQAA AP///yH5BAAAAAAALAAAAAD6ADIAAAT/sMlJK7s46807e2AojmRpnmiqrmzrvnBsVjTl3Tgn73zv /8AgqkbMGXPCpHLJbLaItaO046xar1gYlDbtZrLgsNi6tXi947R6LSvbzl22fE4XuSfweH3PD98l eVN9g4RNfw2BUoWLjD6HiUeNkpNPf5BGlJmaJI+XOJugmp2eHqGmkqOkOqeshIetsLEur7K1tpx/ t7q3tLu+rb2/wqDBw8aTxcfKhcnLznvNz9Js0dPWYtXX2lfZ295M3d/iQeHj5jzl5+ov6evuKu1q DQEE75vRCAH6JPoBAFcAHDgIYE9UrhIBBSoQgUDgwCsIDAxoUDBTtIQOFogI4JAgCAIA//61QABg IYx6JBFUHHTRoQERBTo+UGDAYcYQAA4ILLDgQIIHDQY4nAgipk0HIQUS5ChAp8CfHxMINZCg3kps B0lgRAqiocytSh+AffqA49GFRwUmfWj2KEECRh0WuIr1jomtUNs+VNCgHgChAh4kUPhA5wAQEkCY JRgyZE0DIMOaTQCgwc6ySgGYpUg3S0sHMQ8/qGnUowgBAh+gdqA4NQmBgUOY/ZdwqVoQq1WDDlFT Y2csny07aKBAaVixCZrWZL0gc8y5iA8IGOwg9gMEQqHWxsxVN2uBBvrVtP67ymcAMRM0N7Bd+NEH BJYLHCCy+VHrqAdY3T4bd+q0sJXHTdZWIySkmQMD1ORPWDEJUI9RQDkQXgB9fSSQRgQEyB1nYkl2 m3cP7NRYSCYJ6MR5XglEUljH5ZafPg2IZCAIAWLnwAEi8PehiwhaZSJwBOZ4m1FzbUdaZUKxRp1N BijgFWVmBeZUjCGtyNaOqZl1QGMBlPjjEudxx1hY9s2XWkJx3fhAmoCFmNaCV3aXGwFJ2iTSl2AG idNtXqm0HQHUbZmaTr4RoFNgCuS3AFNuuqWjnK4lahN9eOqC2gEo6YRjFSCVVOkuejl056cmNrCa AVuSquqqsEQAADs= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/email.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QPARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv c2gAMjAwODowMjowNyAxNTowODo0NQAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAAB AAAAEAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAKKAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAEAASAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A9L3vc7WxzQXOAjbEhzm7fcw+Cd/qNIaLn7j29mg8f5tRbTkj c0sre3c8tJeRo5zniW+k795P6eQNRWyfH1Hf+kklIPXyf9Kf6H6nDf5z/S/R/wCh/NpKX2PJ8Wf0 X0eT/Of5v80kkp//2f/tJlhQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAA AAA4QklNA+oAAAAAHbA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURP Q1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21wdXRlci8vRFREIFBMSVNUIDEuMC8vRU4i ICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0 IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5Q TUhvcml6b250YWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJp bmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJh eT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpv bnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu dC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFn ZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+ CgkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIzOjA3OjMyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxl LnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJ CTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZv cm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwv c3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8 YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9y aWVudGF0aW9uPC9rZXk+CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBw bGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRp bmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0 ZTwva2V5PgoJCQkJPGRhdGU+MjAwOC0wMi0wN1QyMzowNzozMlo8L2RhdGU+CgkJCQk8a2V5PmNv bS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRl Z2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50 LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdl cjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4K CQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5Q TVNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu dC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFn ZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+ CgkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIzOjA3OjMyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxl LnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJ CTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZv cm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwv c3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8 YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZl cnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnBy aW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu YWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tl eT4KCQkJCTxkYXRlPjIwMDgtMDItMDdUMjM6MDc6MzJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBw bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4K CQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdl Rm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5w cmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu YWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tl eT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1h dC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnBy aW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1v ZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDgtMDItMDdUMjM6MDc6MzJaPC9kYXRlPgoJCQkJPGtl eT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwv aW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5w cmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29t LmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+ CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+ Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmlu dC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+ Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJ PGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJ CQkJPHJlYWw+NzM0PC9yZWFsPgoJCQkJCQk8cmVhbD41NzY8L3JlYWw+CgkJCQkJPC9hcnJheT4K CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmlu Zz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUu cHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIzOjA3OjMy WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+ CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2Rp Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0 PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9r ZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5 PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxk aWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVy UmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVh bD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjc3NDwvcmVhbD4KCQkJCQkJPHJlYWw+NTk0PC9yZWFs PgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwv a2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJ CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAw OC0wMi0wN1QyMzowNzozMlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0 LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJ CTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBh cGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3Jl YXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJp bmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFy cmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFw ZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5uYS1sZXR0ZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNv bS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUu cHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp Y2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwMy0wNy0wMVQxNzo0OTozNlo8L2RhdGU+ CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxp bnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxr ZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJ CTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8 c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+ CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0 PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAu MDwvcmVhbD4KCQkJCQkJPHJlYWw+NzM0PC9yZWFsPgoJCQkJCQk8cmVhbD41NzY8L3JlYWw+CgkJ CQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+ CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtl eT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA4LTAy LTA3VDIzOjA3OjMyWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3Rh dGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1 c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr ZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0 PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4K CQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZv LlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4 PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjc3NDwvcmVhbD4KCQkJ CQkJPHJlYWw+NTk0PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp bnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFu YWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9r ZXk+CgkJCQkJPGRhdGU+MjAwOC0wMi0wN1QyMzowNzozMlo8L2RhdGU+CgkJCQkJPGtleT5jb20u YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVn ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnBy aW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20u YXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJp bnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu aXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxl LnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPlVTIExl dHRlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tl eT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJ CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4y MDAzLTA3LTAxVDE3OjQ5OjM2WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr ZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4K CQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZl cnNpb248L2tleT4KCQk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJp bnQudGlja2V0LnByaXZhdGVMb2NrPC9rZXk+CgkJPGZhbHNlLz4KCQk8a2V5PmNvbS5hcHBsZS5w cmludC50aWNrZXQudHlwZTwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5m b1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQ SVZlcnNpb248L2tleT4KCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnBy aW50LnRpY2tldC5wcml2YXRlTG9jazwva2V5PgoJPGZhbHNlLz4KCTxrZXk+Y29tLmFwcGxlLnBy aW50LnRpY2tldC50eXBlPC9rZXk+Cgk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0 VGlja2V0PC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4KOEJJTQPtAAAAAAAQAEgAAAABAAEASAAA AAEAAThCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAA BAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAA AAAAAAABOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIA AAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD///////////// ////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////// //////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAB OEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAAAAAGAAEAAAAEOEJJTQQIAAAA AAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0kAAAAGAAAAAAAA AAAAAAAQAAAAEgAAAAoAVQBuAHQAaQB0AGwAZQBkAC0AOAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA AQAAAAAAAAAAAAAAEgAAABAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA AQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxv bmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAABAAAAAAUmdodGxvbmcAAAASAAAA BnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAA AAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRv R2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpj AAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRv bWxvbmcAAAAQAAAAAFJnaHRsb25nAAAAEgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAA AQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hU TUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VI b3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAA AAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25l AAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRz ZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAAAAAA ADhCSU0EFAAAAAAABAAAAAQ4QklNBAwAAAAAAqYAAAABAAAAEgAAABAAAAA4AAADgAAAAooAGAAB /9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwI CAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDP/AABEIABAAEgMBIgACEQEDEQH/3QAEAAL/xAE/AAABBQEBAQEBAQAAAAAA AAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggF AwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNU ZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH 1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNT FWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaW prbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APS973O1sc0FzgI2xIc5u33MPgnf6jSGi5+4 9vZoPH+bUW05I3NLK3t3PLSXkaOc54lvpO/eT+nkDUVsnx9R3/pJJSD18n/Sn+h+pw3+c/0v0f8A ofzaSl9jyfFn9F9Hk/zn+b/NJJKf/9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAA UABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBT ADMAAAABADhCSU0EBgAAAAAABwAIAAAAAQEA/+EPzmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu MC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4g PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv cmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+ IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3lu dGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJodHRwOi8v cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29t L3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIg eG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJl ZiMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIg eG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0 dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRvc2giIHhhcDpDcmVhdGVEYXRl PSIyMDA4LTAyLTA3VDE1OjA4OjQ1LTA4OjAwIiB4YXA6TW9kaWZ5RGF0ZT0iMjAwOC0wMi0wN1Qx NTowODo0NS0wODowMCIgeGFwOk1ldGFkYXRhRGF0ZT0iMjAwOC0wMi0wN1QxNTowODo0NS0wODow MCIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpCNzkyMEVCRDIwRDdEQzExODY5OEUzODc4RkI2QzA1 MCIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDpCODkyMEVCRDIwRDdEQzExODY5OEUzODc4RkI2QzA1 MCIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVD NjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZm OlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjcyMDAwMC8xMDAw MCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgdGlmZjpOYXRpdmVEaWdlc3Q9IjI1NiwyNTcsMjU4 LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1Mjks NTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0MzODYwRERDQjBFMzEyREI3RDREOUM3 RTgwQThDMUIxIiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTgiIGV4aWY6UGl4ZWxZRGltZW5zaW9u PSIxNiIgZXhpZjpDb2xvclNwYWNlPSIxIiBleGlmOk5hdGl2ZURpZ2VzdD0iMzY4NjQsNDA5NjAs NDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0 MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAs MzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0 ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUs NDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5 OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4 LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzE3NTJFODg5NDJCNUQyMDA0ODQ0NDVBNDkwNzhE RkIyIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6QjI5MjBFQkQy MEQ3REMxMTg2OThFMzg3OEZCNkMwNTAiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6QjI5MjBFQkQy MEQ3REMxMTg2OThFMzg3OEZCNkMwNTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4g PC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAA AG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAB AAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJY WVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAA iHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQw AAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0 IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYx OTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAA AAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAA AAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAA AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZp ZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA dmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dt ZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAA BAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEA hgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZ AR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB 6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1 AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgE VQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2 BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH +AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9 ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM 8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/s EAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MT YxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsb YxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/q IBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNol CSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUw bDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjau Nuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9 oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTO RRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJM uk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1Tb VShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhd yV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmbo Zz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw 4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsE e2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauG DoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/ kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mp qhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm2 8Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRR xM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/S wdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE 4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw 5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////u AA5BZG9iZQBkQAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEIABAAEgMBEQACEQEDEQH/3QAE AAP/xAGiAAAABgIDAQAAAAAAAAAAAAAHCAYFBAkDCgIBAAsBAAAGAwEBAQAAAAAAAAAAAAYFBAMH AggBCQAKCxAAAgEDBAEDAwIDAwMCBgl1AQIDBBEFEgYhBxMiAAgxFEEyIxUJUUIWYSQzF1JxgRhi kSVDobHwJjRyChnB0TUn4VM2gvGSokRUc0VGN0djKFVWVxqywtLi8mSDdJOEZaOzw9PjKThm83Uq OTpISUpYWVpnaGlqdnd4eXqFhoeIiYqUlZaXmJmapKWmp6ipqrS1tre4ubrExcbHyMnK1NXW19jZ 2uTl5ufo6er09fb3+Pn6EQACAQMCBAQDBQQEBAYGBW0BAgMRBCESBTEGACITQVEHMmEUcQhCgSOR FVKhYhYzCbEkwdFDcvAX4YI0JZJTGGNE8aKyJjUZVDZFZCcKc4OTRnTC0uLyVWV1VjeEhaOzw9Pj 8ykalKS0xNTk9JWltcXV5fUoR1dmOHaGlqa2xtbm9md3h5ent8fX5/dIWGh4iJiouMjY6Pg5SVlp eYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AN4qPL5mvrJjUbx3JiKarzu58Vjp aGHZIx8dVid3Z3BU2LdsnszJVMEj0+OjELyTP5pLqSH06/de69mVz9DU0eLh7J31Jl6+SALSQ03W P+RUUs4hlyVa8nWkwhhTnxKVLTuNIFgzL7r3QR/387J/57mr/wCyNf7+f8WDav8AzMn/AJ7n/iyf 8C/+mD/i1f8ATN7917r/0N3ag2j2VR/xihrNtdfZzGy7o31k8XNUb/3DQSS4rc29dw7kxxrsWOr8 lDSZOnx+ZjgmCVVQivGxR7N7917pxbbnYMX79FtHYsVekizpVS9m7lmlmkQIFjq6ibqqaonpysYU qSbKBpsQCPde6Qf+h/sj/jtsj/slL/Q//wAXbPf8zI/47f8AHu/8eR/01/8AA/8A6ZPfuvdf/9k= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/print.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QOoRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv c2gAMjAwODowMjowNyAxNTowOTozMQAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAAB AAAAEAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAJyAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAEAASAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A9MybGB7GFxGpLoJHY7Z2R+co49oFzmeoXMcAWB0mDLvbuduU 3+sx79lZeHndILR+a1v5zm/uoZbkWOYDW5oDmuJJaR7SHfmud4JKbiSSSSn/2f/tJkZQaG90b3No b3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+oAAAAAHbA8P3htbCB2ZXJz aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9B cHBsZSBDb21wdXRlci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9E VERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJ PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCTxk aWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmlu Zz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJp bnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNv bS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+ NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJ CQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIz OjA3OjMyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8 L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9k aWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+ Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxz dHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxl LnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtl eT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+CgkJCQk8aW50 ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwv a2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwOC0w Mi0wN1QyMzowNzozMlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3Rh dGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJh eT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9r ZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJ CTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFw cGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJ PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCQkJCTxyZWFs PjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJ CQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIz OjA3OjMyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8 L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9k aWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+ Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxz dHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxl LnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtl eT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVh bD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4K CQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5j b20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDgtMDItMDdU MjM6MDc6MzJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxh Zzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8 L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5n PC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5 PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJ CQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5 PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGll bnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJ CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIw MDgtMDItMDdUMjM6MDc6MzJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0 LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwv YXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5m b190aWNrZXQ8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu UE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50 LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdl cjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+ CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt YXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8 L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzM0PC9yZWFsPgoJCQkJ CQk8cmVhbD41NzY8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu dC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5h Z2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tl eT4KCQkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIzOjA3OjMyWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5h cHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdl cj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJp bnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+ Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxl LnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu aXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxl LnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4K CQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFs Pjc3NDwvcmVhbD4KCQkJCQkJPHJlYWw+NTk0PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtl eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFw cGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp Y2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOC0wMi0wN1QyMzowNzozMlo8L2RhdGU+ CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxp bnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxr ZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJ CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNv bS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnBy aW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtl eT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmlu Zz5uYS1sZXR0ZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xp ZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3Ry aW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJ PGRhdGU+MjAwMy0wNy0wMVQxNzo0OTozNlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp bnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8 L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVy SW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5w bS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVt QXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp bnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJ CQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzM0 PC9yZWFsPgoJCQkJCQk8cmVhbD41NzY8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNv bS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUu cHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0 Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA4LTAyLTA3VDIzOjA3OjMyWjwvZGF0ZT4KCQkJ CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVn ZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5j b20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxk aWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3Ry aW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFw cGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJ CQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwv a2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8 L3JlYWw+CgkJCQkJCTxyZWFsPjc3NDwvcmVhbD4KCQkJCQkJPHJlYWw+NTk0PC9yZWFsPgoJCQkJ CTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJ CQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+ Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOC0wMi0w N1QyMzowNzozMlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRl RmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJy YXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBl ck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0 b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5n PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJh eT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1Q YXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPlVTIExldHRlcjwvc3RyaW5nPgoJCQkJCTxrZXk+ Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBs ZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu dGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTA3LTAxVDE3OjQ5OjM2WjwvZGF0 ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJ PGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCQk8c3RyaW5nPjAw LjIwPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnByaXZhdGVMb2NrPC9r ZXk+CgkJPGZhbHNlLz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJ CTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0 PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJpbmc+ MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5wcml2YXRlTG9jazwv a2V5PgoJPGZhbHNlLz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8 c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4K PC9wbGlzdD4KOEJJTQPtAAAAAAAQAEgAAAABAAEASAAAAAEAAThCSU0EJgAAAAAADgAAAAAAAAAA AAA/gAAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAA AAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAABOEJJTQP1AAAAAABIAC9mZgAB AGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0A AAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA//////// /////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD///////// ////////////////////A+gAADhCSU0EAAAAAAAAAgADOEJJTQQCAAAAAAAIAAAAAAAAAAA4QklN BDAAAAAAAAQBAQEBOEJJTQQtAAAAAAAGAAEAAAAFOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAA ADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0kAAAAGAAAAAAAAAAAAAAAQAAAAEgAAAAoAVQBu AHQAaQB0AGwAZQBkAC0AOAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAEgAAABAA AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAA BmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25n AAAAAAAAAABCdG9tbG9uZwAAABAAAAAAUmdodGxvbmcAAAASAAAABnNsaWNlc1ZsTHMAAAABT2Jq YwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAA AAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVl bnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAE AAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAQAAAAAFJnaHRs b25nAAAAEgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAA AQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4 dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVs dAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29s b3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcA AAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdo dE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAAAAAAADhCSU0EFAAAAAAABAAAAAY4 QklNBAwAAAAAAo4AAAABAAAAEgAAABAAAAA4AAADgAAAAnIAGAAB/9j/4AAQSkZJRgABAgAASABI AAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwP FRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQO Dg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEI ABAAEgMBIgACEQEDEQH/3QAEAAL/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEF AQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMi cYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj 80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcG BTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kST VKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/ 2gAMAwEAAhEDEQA/APTMmxgexhcRqS6CR2O2dkfnKOPaBc5nqFzHAFgdJgy727nblN/rMe/ZWXh5 3SC0fmtb+c5v7qGW5FjmA1uaA5riSWke0h35rneCSm4kkkkp/9k4QklNBCEAAAAAAFUAAAABAQAA AA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQA bwBzAGgAbwBwACAAQwBTADMAAAABADhCSU0EBgAAAAAABwAIAAAAAQEA/+EPzmh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpy ZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0 az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6 MTM6NDMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht bG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGFwPSJodHRw Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9z VHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9w aG90b3Nob3AvMS4wLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8i IHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiBkYzpmb3JtYXQ9Imlt YWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRvc2gi IHhhcDpDcmVhdGVEYXRlPSIyMDA4LTAyLTA3VDE1OjA5OjMxLTA4OjAwIiB4YXA6TW9kaWZ5RGF0 ZT0iMjAwOC0wMi0wN1QxNTowOTozMS0wODowMCIgeGFwOk1ldGFkYXRhRGF0ZT0iMjAwOC0wMi0w N1QxNTowOTozMS0wODowMCIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpCQjkyMEVCRDIwRDdEQzEx ODY5OEUzODc4RkI2QzA1MCIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDpCQzkyMEVCRDIwRDdEQzEx ODY5OEUzODc4RkI2QzA1MCIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1By b2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIiB0aWZmOk9yaWVu dGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRp b249IjcyMDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgdGlmZjpOYXRpdmVEaWdl c3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5Niwz MDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0I2MDBFQ0JD QzQ1QUM2NzM4NURFMDk5MjRBODJGODdGIiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTgiIGV4aWY6 UGl4ZWxZRGltZW5zaW9uPSIxNiIgZXhpZjpDb2xvclNwYWNlPSIxIiBleGlmOk5hdGl2ZURpZ2Vz dD0iMzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQs MzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzcz NzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYs NDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3 MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIs NDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEz LDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzE3NTJFODg5NDJCNUQy MDA0ODQ0NDVBNDkwNzhERkIyIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9 InV1aWQ6QjI5MjBFQkQyMEQ3REMxMTg2OThFMzg3OEZCNkMwNTAiIHN0UmVmOmRvY3VtZW50SUQ9 InV1aWQ6QjI5MjBFQkQyMEQ3REMxMTg2OThFMzg3OEZCNkMwNTAiLz4gPC9yZGY6RGVzY3JpcHRp b24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklM RQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBz UkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAA FGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJU AAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMA AAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRl eHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAA AAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EA AQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAA YpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu aWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVm YXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVm YXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAA AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA AAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAA AAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAA AENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBe AGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA 8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGp AbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqIC rAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APs A/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdh B3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8J pAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwq DEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkP JQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMW JhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoq GlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQe vh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOU I8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQp Bik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63 Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1 EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuq O+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC 90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9 SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxS x1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBk lGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4S bmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4 bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0 g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+O Zo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8 mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqm i6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4 s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA 7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62 zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDd lt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG 7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8 mP0p/br+S/7c/23////uAA5BZG9iZQBkQAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAQEBAQICAQIC AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEIABAA EgMBEQACEQEDEQH/3QAEAAP/xAGiAAAABgIDAQAAAAAAAAAAAAAHCAYFBAkDCgIBAAsBAAAGAwEB AQAAAAAAAAAAAAYFBAMHAggBCQAKCxAAAgEDBAEDAwIDAwMCBgl1AQIDBBEFEgYhBxMiAAgxFEEy IxUJUUIWYSQzF1JxgRhikSVDobHwJjRyChnB0TUn4VM2gvGSokRUc0VGN0djKFVWVxqywtLi8mSD dJOEZaOzw9PjKThm83UqOTpISUpYWVpnaGlqdnd4eXqFhoeIiYqUlZaXmJmapKWmp6ipqrS1tre4 ubrExcbHyMnK1NXW19jZ2uTl5ufo6er09fb3+Pn6EQACAQMCBAQDBQQEBAYGBW0BAgMRBCESBTEG ACITQVEHMmEUcQhCgSORFVKhYhYzCbEkwdFDcvAX4YI0JZJTGGNE8aKyJjUZVDZFZCcKc4OTRnTC 0uLyVWV1VjeEhaOzw9Pj8ykalKS0xNTk9JWltcXV5fUoR1dmOHaGlqa2xtbm9md3h5ent8fX5/dI WGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AN5TsrcW Kgym2sNPna+g0VtfVZeLFZDPY90p325mf4WMjV4Crx8yQPlfARE9REGYoTwQffuvdMXX25qWi3nm cM+7a/KYTMUmOrNvwZqbNVslHl6ivzUdZhos5ma/J/dvHQ01KY41khGmRQUaZndvde6MD7917r// 0N5fLjeWEze5Gw20MtuCjz+Xps1HXYnMbaoIoFTbW3cCaSphzWcxNWa1KjByOSkbxeGSO0hYukfu vdJKoxfYW5cjgKWt2fmsPRUu6drZurrctntrVVBBTbe3Bjs7OHhxW48pXSTzQ49o4AlO487pqKJq kX3W+jHe/da6/9k= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/toc_energy.gif R0lGODlhvgAJAKIAAPTKytQmJuFqas8REdpEROeIiMwAAP///yH5BAAAAAAALAAAAAC+AAkAAAPB WKoHdbCAs1idkCrgXpNZKI5kaZ5oqq5s2xJGbFCGVx+yQRywPAED2SMwgMBcyKRyyWyeCLtMITa5 3TLQhkHAM2AmU8nWSS6bz8qs1DDYWT3GqO4wCIzaUwx6z++XezdhXlY+PAEFMA9zGhEGAVF+kZKT KASHIFMHAQFWBBtdMXY4UWoAMXCUqaqRao1abyFZRBCzPJBHq7m6Z5YLNBACnb5ZYTSej1gzu8vM SYAzmRADijI7agNFBwJB08nN3+AoCQA7 ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/dot_620.gif R0lGODlhawIBAPcAAP///4iIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABrAgEA AAhGAAMAACCQ4MCCCA8qNMgwYcOFDiNCnPiwokSLFC9qzMgRo8eNHzuCHCmyZMiTJFGaTMlypUuV MFvGfCmzJs2bM3Pa1JkxIAA7 ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/delicious.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAMUExURQAAAP///93d3QAA/+4iTdsAAAAa SURBVHjaYmCEAmYoYBggARhggoIBEgAIMADrEAGBe3e9DgAAAABJRU5ErkJggg== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/digg.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAQAAACMJlQBAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAACmSURBVBhXbZDBCgIxDET3//+gf9CPERRB XRA8LHjYgyKCongYM0mnUXSHhU7mtWkzYPhWhVRA78UCSoC+DhS3z1YgcMMJRwGKL5isxKPh8aE5 ByLeWenlAOOtudF+ByJemmWjVAciXpi9215qbCr5Bko3mK3J5LdwIKB8pOI9WP0DKGaDn0ERYFwt 3giIScTkCHB3tXidwANXnDvAw6vFqwSkz7Uqb59WZAoV3mcwAAAAAElFTkSuQmCC ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/icon_google.png iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA B3RJTUUH1wMBFjAGEn3XhgAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJ ISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVY dFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aH AAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tIn AAABAElEQVR4nJ2TS2hUZwCFz/3vvXPv5JqZPNXUMaYp0lZqLBaNINZSaBetYkHoorrqA7pouxC3 hbbYXReiblxVkFIKbmwXigZUgoUOxmgm+HbSdNLYmclknvf53/ufbsal0Hr2H5zD4dNI4v/HAGB/ Wj5w8OMW6pafU6mGZzoDshwoG0Z/Ha0hPfS1XlM2F3UzqwwA0+9dBslth+55UZWkdH3FUpVKkkse FxdWWmSjEYQJ6ZFRwGZ4Y2KcpAFgWRsVZjoEvB673M79fK7yKP97fk54wXDFqG7dYr25b/KD7dqO F3VHtUVQBACSw5/MKgY1etdcvns0P/jGpcdVlsmY/If84y5zPmdyFAAAAQBJREFUu3549fWjq6tk m7f7LJIgOXY4r1gKyM++v/fSjtOVkIqlSNUZJ0FCxpx51M7PzftsM2zPvZLtYhs/f+JKfnt6Yd3u k4X7oU8GXG7QD7jos0mfMiJjumwmLM9sQXeb0dCEgVWtx0zGX8ulkEjqGUtaTXNUA+zEhe0QrkAs 5KCqZAAIACm56kP9Nn8L47HqqUBTmnSQaNkEmQTQUrqCgkiQgBwwjC5WyziEMGoDqFOE/Wgrmm7b VJCgHsJGIqirdBoEi6G9sYtZSSMF5Ab7lu4vh3qEXitsOb26cG1UoK4Xy7NVWahgZj6trL6mfvsp JmyBlV07JfSXj50q1EUoMkCMHprck3MAAADISURBVPgPZu0vD998/63zB/ddmJoqUmUcbaT726YP fZJPAo5NXM8O/Dh1lz6lItmpMWYoeetvDm/65uwvM4qlm0MjJAWAKL1EuEPW4tWLkyNDKwf2/nTi eLEcIXFSDb3TMbBQk9XOHavXBWA7HQAaybVfFB6c2mopAKiH6sjXV6Z/LYRWP8zNeiYKqmuy68vv vO1+d2T/hnR6bmx04s+/QHLy0B22qFjiM+JFCWMyID3v4eYXunebH321Z/q/mnbGXe6WfA5N/wWU ftyUCb3P8gAAAABJRU5ErkJggg== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/icon_facebook.gif R0lGODlhEAAQAOYAADZomTZomzVonTZqmmuOtDVnmGqNtTRpnzJqmzhnmzVqnjdpmjRpnWqQtzRq mWmOuP7+/GmPtGuOtmqQtDNommiNtzdqmUBwoDRpmzVpmO3u8+7v9Onu9P//+zVol2iPtkJwoWmR tfv//l2Er+vw9DZpmEFwnjRmmerv8jZqnG2Ot/3//mCDq/78/TZonVuFrzdpnDNpmGiOtf7+/zVq nP3+/zNonFyFs1+EsD5yof/+/enu8jRomP7//f/+/////f7//zRomjVpmTVpm////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAAAQABAAQAfOgD8iPRBARIeIhz5AEERBQ0JDHkI7JEA+HBqRh4+RQhY8CBuGPZtE FyEfBBINBhI+MwYyETktPQADAZBCvL1CCwWHQymRByUCCT6lDKZDkEMAJwpDPz48MZs/OBiPAkMF QTwMQdMjPTU3AQNDQe3u7QAvhs48jw5CAiwol83PAAhDEhABwmOAqXb1hAQhsuIHEYf96rkQUCDA IRo8TC2wEQBAAAePHMKgcCDDjx8gHqiIMKFCgwdEehAgYMDEjx5Aeujw8QNITx8+Dl3qEAgAOw== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/yahoomyweb.png iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAABGdBTUEAANbY1E9YMgAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIxSURBVHjanJLPaxNREMdn3u7LJk23Nmmr Nmh6a70UWhTR4i88qAdF8KD/hQFvKp6lF9GLeFcP3rQKgoKIKBRbqKCH/lAPlcakNptou5vdt++9 8TVWmv6AoF+GB2/gMzN8Zxj9l2zYJKLZO2e8yRc8DVUPOo9ePHD5EWwR2/SPq9+FV+45Przv+rXs oYG4UpYrXmtMAZMC2vIsnXfackxF2vRvjQGaDKJlXrvxbsNsgzluF1KK4gWACSWKxDpst2srtmoJ aTVz+xTj7Yg8+hGI2nQiGwJMZnJB5fXkxI1zTtYBitDCwcLYOobIMkPnP98tuH3QfQKSveD2WwCl 7mHi6UW//GzxHXizMFi412z4mqpTT6dH85U3SMSMC38Dl8bx462BpQ8vN++t9PymDMh2e5bn5M9P 1OeznScZJogklN/SzH3QnDqG5mtjo0jatiB/9qqpTeOXMLsfGAd7h6uWWf2bnxlR2cPgf6H5J4wi K52OhQdKgZTg1eD040Y33gn9V4bA5o2pRfFhsfSqUpvWFLGOlLP3SMIBASsCQh349H6qaQEyUkAm JMSQu7ArN5IJv7Jkgu85mEwkWUy2UowQlMZ1J1elzV0pigmj2JTafSzb1qsxlMl2ruoShbJErBmT Um/AyJdgcawLUGQwKSiVcZmQZgoMYwiE2ZI5GM7xz92sYeHcrzhlmwQGAk1JCy3D+EIHklYE1WUI GAttXNnQbfbBArQQQdOBri4A/l2/BRgAv9Naq1FXsEcAAAAASUVORK5CYII= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/stumbleupon.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAAK8AAACvABQqw0mAAAACV0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVggMjAw NId2rM8AAANXSURBVHicLZJLbFRlAEbPf+9/5wX0hQXaoTNDi1HbKtOgNrjBGhMIXaiJm7o1mpCI tj5CtCRVVy4wHXShITExZcXCFVJMUxOVIggkHUoZKB1rhyl9P2fuzNyZ+/hdlMXZni85+YRt20gp AVhz1rla/Ct2KX+5d8y5cXQ5MBe3rDJtXluy1X3uzx6tJ9G1s2tW7VL4fD40TQOl1DYVxbfFc4n2 3CEVXYqq2pk6FZoOKZmSyn83oKomq1R4IqxO3fowsZnawDRNbNtme9qFs+7Z8e/N7+KPClmosI0C AMd1KBsWuc0c2dD8R9oO/9FMeqqjqbkFucEmP+bOD55ZOB331rZlT7QgAF0DzwMdKEHdvmr06kB8 8u7aYDDk75Mj2ZHY10tf9Tbr7fSE36ZlVxjPZyCEQKAwPMFEIcNQ5jwL+TmkEMiQYEmr6x29NXVO /jZ3ZcDZchk88g3doW6upWF10yZoaASDOgdq4J0wzG9kuDD9E27JxjDA8VVx8Wp6QCbFnXi9v4GX dh5kLAvvDt9k+sEc5EyoVGh6vp70Z29wMBTdzuXYCMCq2IzPF+Nayk7FF3Kz/L3ygJejRS6fOszP /cc4frwNsNjKFTEr4JMGSFB42yJhsC7r4xq6Agc+SH3M++nTJMujvBlx+bLraQKRemQwgAA84YAE R3cB0AwJmo52wjqRlIEa5s0ZhiZ/4PM7X5B0rtFaXYVtuGy5AluDjqpWandHaNixH4Bs3iTo5JKy /8CZ5MC+T+O64VKqFAn5gkTkIX7N5HEfV0B4DGU2ORnvZuL1GE/RwMiixS83HtG5x0uK/IoZHc7q s7mSi9QUpYrF1MICVyYzPJzeAsemsT3MW6+0cjjcyPL6Ghd+v829f+5x8tmVmFhcXOS94enBS+Pr vVgeqApsFMHToGk3VGwo2uD3Q1DC4xVYWuBIUynRFSn2iUKhwO10hv7RxfGx+2Ycx4WAAYYOynvy SB1ME5bXkRWTF/aWk8davI79e2qQPp+PzuhePnmx0KFtLA3e/3erN29JLHRQChAIzyUgPPx6nmca rMRrMdXXWOOnubkZ4Xke5XKZ1dVVsjPT3Hw4F72YKvVe/89+FcuLowmC9kayM6z+aK02E7VBMo1N MVpaWohEIvwPp+WPLv6n77kAAAAASUVORK5CYII= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/bluedot.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAABIAAAASABGyWs+AAABlElEQVQ4y6WSMWsbQRCFvxWXRSDrLJkLrlKoNXKRwrgK+gFpE1K7 ChhS5ze4NhiuSh2UxsW1NiKVUZEiQu0VARspsk45Z/GxPpgU8u3Zli6NX7U7zHvzdufBM6GeFoaJ lWiSMZhZft7kAOw2PXqB5u12nb22VpUCYWzkODaM74lPsdP0+NRp8LHTUCsCYWzk8zglzeW/ln1P cbTjOxGvsH3wY1GSU4vMM/hjl/dNjdqqg69Jc+E4NgwTK3ttrTyAaJKVtlOL/PoL5q4cO71FTI56 tQG+ZnyTE00ynIPBzLpemWdg7njfbXG4HwBwcjGjP1og8wzlax5yPMD9NuBsH+4H9DobrtwfLcon PeDUnpsDr9jz4Lr8MKa3nFzMXJM7b2pX2216nBcCvUA7AbVVR0xOf7RY2i7QeLHcxD16gea8yEGx xmIT79oeX9+8fGT1w/fffEtyF6gvr1uPUxnGRlrRldROL6UKtdNLaUVXEsZmfdrC2Ej3bFop0D2b VpMLDBNbKTBM7ApZrRMRkbVTlFIr/f8Au08IbIMbAQAAAAAASUVORK5CYII= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/technorati.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAABIAAAASABGyWs+AAABfklEQVQ4y6WSvUtCYRTGf9ciKzCQStCGModoCS0KWqMhgibR/gFx a2gsuCA5NLa4BBGNfUlTFBgRLoENURR9YFpcVCjokolx++A2hC+ZdunjmZ73vOd5zvuecyRfjH+h FsDrlPXd7AKqlsPrlBl3zfxI7N+RJGk5KevRdBgAT8soU+5NkXCVP2A1FeL68RBVy2E12+mwePB3 hnA19QMgBeN2XdVyAEx7tnA3jwCwf7vG3LH/2+qTPasM2nyYSmKATkuv4CtJ2fD566mPb5o+B1/1 F8Gf3vKGBkrhpNJA1bKC97WMGRp4nXKlwbYSETzYPS+SvmK4LSgmJfli6NWaU8K9lkEpnFJ8e6Ch xiKaXEKFAcDsQEKMyQh7uaWPRTJC/vmWpjqbON8UjsgWL9lWIpyp8eoGrfXt3GsZFs8nSNxt4Gjs EnfZ4kVZboWBo7GLLSVCaTuricp68HkTfwur2Y5pyBH4kxhgyBHAFE2HJa9Txmq2/6rycFuQaDos vQP8LoQi8qHY1AAAAABJRU5ErkJggg== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/reddit.png iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKWSURBVHjadFJLSGJhFP7v1U00Cmo+Bpxh ZAQ3wyiKim1qjFnoLFrMxhbSrrAWbcLGnYXgzGoWgemyqNBB2kSrCCcwiCAFLRUX+QCLHmQPMjT1 zndHx3FiPPz83POfc+453/k+imEY0sNKpdLy8rJCoTAajUdHR+vr60ql0ul08vl8mvQ25N3f3z88 PAQCAa/X6/P5aJre2dlBiNur5unpCd1cLpdUKoU7NzcXCoWKxaLVamXDTA9LJpOzs7Mdt1wuY+CD g4OWS3Vjq9Vq0Wg0lUrd3Nxks9m7uzuDwSAWi/V6vUaj6Z6Fury8XFxcvL295fF4uPv6+pCkUqkk EgnChULh+Lc1Gg2RSHR2dobQ9PQ05fF4ZDJZJpM5PT2dn19QKt/+F+ru7q7b7Z6amjo5OZHL5ZzB wcFKpVKtVpeWlkQiIfkZJD++E8U7whOy6cdREvhChOI3hiGLxYKVYiiKosj29rZarc7n8yzSWpWZ VDMKwoS+tlex8Jl5RZhv9pa3uroKDjE5Z2Vl5fDw0G63s/+mafJCQF4LyKdJwhOwLwIpEXLJRzt5 qYCHofr7+9GW5Q1YUanT6Qi6f7Cxp2Pvh9jzx5A2MDDQ5m1vb89ms11fX+P78fHR7/fv7++fn59j b5ubm2tra60JQQzSLi4u8M12w1bS6bTD4ZiZmTGZTFqtdmtrCxzW63XIb2xsDDnBYDAcDkM0oJHl rUN3LBbDoqBAyAeS5XA4zWYTdCUSiY2NDfA+MTGB1beS/2oSTaBDgMYdiUSgWtSAffB+dXWFvXdq /ikDBrQaHh4eHx/vJho9ASGXy0H7IyMjrUe6EwP9o6OjwPNMHwCJnmazOR6Pdx7bZZiHy+UijPpn ZS0NQYDdf/wlwAArwYbfuDX2VQAAAABJRU5ErkJggg== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/title_tags.gif R0lGODlhyAAaALMJAOjbEIuITdXKHLWtMvXnB2ZmZv///6Olpf/wAAAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAkALAAAAADIABoAAAT/8MhJq73p6s27/2AojmRpctmprmzrvrCUzHRt33iu73zv /8CgcJjiGI4GTwLBbDqf0Kh0Sq1ar9isdsv1IJOdJXdMLpvP6LMXqUy73/C4HLo+tuf4vH7/rINR TQADg4MACAKDToKDBEyEhnyRknJ+d4cFmJgCCAGYTQOZBZudmAOTp6hmlWFPAqJNBZ2bCLGGAAQA BaYEjam+v1YVX8PEbBRiTa6zyroIuaaBtcDT1HQUxdjGE8hMyo4FnOCu0AOboLq91eq+wtnYFdyX swEBiAUA40zNh53Q6/+T2rkjBq/Vq1yhBhCIpc8fpwAAI0ZaBciJN1DlXEHshxFAgEH7XSSKnENx QzxvnZp0ukWqnsdS6UbKdFNSQ7yZONXVxJCz57qdFm76HHoKaEGiSFEZPZa0qSQYRKJKnUq1qtUh UGNo3cq1q1cUX8OKHdviqtmzaNOqXcu2rdu3cKdGAAA7 ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/title_rel_articles.gif R0lGODlhyAAaALMJAOeTqc8pVfHAzdRGa8kRQuB3k////6OlpcUANAAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAkALAAAAADIABoAAAT/8MhJq73p6s27/2AojmRpctmprmzrvrCUzHRt33iu73zv /8CgcJjiGI4GTwLBbDqf0Kh0Sq1ar9isdsv1IJOdJXdMLpvP6LMXqUy73/C4HLo+tuf4vH7/rINR TgWCBQFMg4IIAwVQiosIhwUDAYcDj4OFUIKYk4OGkJZNl4qBh0wEgwR8en53TAJfla9IjwZQskxf BpFfi7mOTQFHjgNfAgiyR8YGxgTIirVNyLXBSJWqeKxhTgLGwQDHxqHQTssG1gi6TMTn6IvN44bL 4evHBpjcTcu0jqfw+OKFMF2bUyGXwYMVxLgKp+9fvCfrDHzDNcwcOUcA7G0TUEAjvY7W/xw2NJDq YbRw8QqUHEiQwsGXbCgoBFfg1SJkizo+yVgvX8VZ7eKdC7ZrETEAHUkuzGfsVSB/SNzJ+sUSTkGY LxNuQyIgFTdBlXRuHJARU7pEEhEFpXWu4y5jxKKeZNpT3EawoV6xq5rmKlaDWue+8oqSlhNqSCae pefTlVLHXwisczsXl7Gydis/IXCWr5tsgOZS/iqoXye3A4gxrIg0EjqOGQsvS50xtcXBSy2jhT1J FyLSKgsg1ev5DegNM/8deTcr6ZG69Qot5oWO60pirD+eFRmu5mzntaQlesWxuPEOX1qZX89eznEN M9vLn0/mPQb6+PNnsW8hvv7/ACLAXzJgARaoHwxEJKjgggw26OAQCMYg4YQUVmghChdmqOGGLTzo 4YcghijiiCSWaOKJKC4YAQA7 ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/title_rel_blogs.gif R0lGODlhyAAaALMJAFaqK6jTk8nku2q0Rer05ZLJd////6OlpTOZAAAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAkALAAAAADIABoAAAT/8MhJq73p6s27/2AojmRpctmprmzrvrCUzHRt33iu73zv /8CgcJjiGI4GTwLBbDqf0Kh0Sq1ar9isdsv1IJOdJXdMLpvP6LMXqUy73/C4HLo+tuf4vH7/rINR TgWCBQBMg4IIAwVQiosIhwUDAIcDj4OFgYOVlk+ThE6em0yNggCTmKWQAKSbioWQo6V8VH53TAJf lbhIjwZQu0xfBpFfi8KOt8UIAgKByggBX85IAwMGzcsC1rkFyt2VX83RR9izUbVhTswIAAYB2c5Q 1waiw6P0TvYIBATq2OvrmvBjMrAdNkyGfDXZtiigtU3dCPb7hkAfwXfszEmpIKyjxwpi/25huwav SUQnD9010fcwn6NoCAMCLNfOUbdJ+KCcvDfQYc6TuHqBQ7ZPm8YpHD0qtUMh5DICBXA1RLJoJ5No T1c62nYkmM2cT5nhC5hI3zeKp0wiaWatWwCfEIdFa0YxV69rCI82Sbr0Y1N1a29BjdTrCQFtML3e C4Co4ldRAgYfLln2McWWCQeVHRBt8uaERwi8wndNFru5evtQ6KsUpL99/SgXbtLuC0aWYB0ne12Y bEWMWNt+TogSHwGSwyNGq1SXaBOsqfd2+GILXreGg6sOQ3S9GnLcjAmXRt0ksqCe2Ze5I8+vwHK1 l1p2w4Y5okGhFQVo1l/Ac3QE6ABSHoI2PUnTDS9BJVMIblRVFBhgoekSGAC7CIAJheQgdOAR3m0C F3HqKUJaYONY+B8TAW7g1IksthhHihqs6OKMNI4BIwY15qhjFjdaIOOOQAbZo2tBFlkkDEQkqeSS TDbp5BBIxiDllFRWaSUKV2ap5ZYtPOnll2CGKeaYZJZp5ploLhkBADs= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/title_rel_ideas.gif R0lGODlhyAAaALMJAP/m1v91Gf+NQf/Stf+gYf+td////6Olpf9mAAAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAkALAAAAADIABoAAAT/8MhJq73p6s27/2AojmRpctmprmzrvrCUzHRt33iu73zv /8CgcJjiGI4GTwLBbDqf0Kh0Sq1ar9isdsv1IJOdJXdMLpvP6LMXqUy73/C4HLo+tuf4vH7/rINR TgQFgwFMgoMFCAKJT4sETIiDAgGRAgiVT4eDCIKWlI+chJSFl5aQBaSUpgSgoQWWi4ikipEBqoaP ka+xr0yLhZGglAWtWX53TANflspIlwZQzUxfBq9fidSMyV+KBgPPBAEASAICBqbVvkeM5t8IA9/i SN8Fy0315O3J39n468+WvnwjwG3LsTBO4HX7pvAetCfeDLRK183UtETyErproswcgGeM/wKYQ8eo 3oCP3SS+o0fRUr0oL5uYU9kQAcWX4j7WC6jtHYBCs4xRoEa0aAUx+6Yx3Pgs0zlvTVqec3JzalIn HmkamDXyIhMAA+oVmrlVobKgMZ+kTVl2Y9VtAG32VFZMS4WieNlQQOqzgLJEzdKtfQdNWVR2Bata DKxt3EPDMrMhCFDNXCLL1cw+XPTsCFN/3zD7dVuymsm49mYCsCh0Qt68RxMi+dm312AAqzt6XbhJ LiSrtU1RPsLsobqw9RIRtBb6nDKwhH+DJOYkOfWRz0n/JocaeSp8Qa/cfW10r0YE4wrVbBr52u6u h7fNWk+YIEuL8NMFPiLy3PD7TQ0mXeRkk3gWX1O67eQbFASxJl4HXyCzEif6ASCLdYkkV44BKEmF 3CPeDAIVRxaKwiFhG5a4IUk2rSYAXV3Z142FhmFokY0xjrggTlApGOImiKRnEIR6AcKRO/zt19kR 6Bl31oJkpSNQUErStRAn47hoVTXLHQdfQwQ4xhJ32xH3pXbsdeTjPJ0BUNeDRhS5AV981GnnnUPG aQdCePbp559OHGQkoIQWqoegcxqq6KJvIKoBnYxGKimcLRBh6aWYZqrppkPAUEQMoIYq6qikYlDq qaimWimnrLbq6quwxirrrLTWauulEQAAOw== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/title_rel_people.gif R0lGODlhyAAaALMJACuR+ZPH/L7e/Uaf+RGE+He5+////6OlpQB79wAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAkALAAAAADIABoAAAT/8MhJq73p6s27/2AojmRpctmprmzrvrCUzHRt33iu73zv /8CgcJjiGI4GTwLBbDqf0Kh0Sq1ar9isdsv1IJOdJXdMLpvP6LMXqUy73/C4HLo+tuf4vH7/rINR TgWCBQBMg4IIAwVQiosIhwUDAIcDj4OFgZeGh0yTkZ2ciY5MjYKYfKhOfndMAl+VrkiPBlCxTF8G kV+LuKMIsUeVXwKJw8VIxAW0TcpIlanQCKthTgLEAAYBv8TMy04Grs8IuaQG4uOLBK7V1+Do1QaF rgAD5r/xyoHe0dEVuP8AK4hpxc2dNX1P6tXTdsuRwm+OAsRrcnAcMXJN3BXTVUmZon35//jx8wew pB0KA7cVcLUI2KKQTSTey+jwS0ND9gh+1PbKYjldkVwRgDnrCDeRfEiaDIgSnlECKj8R3TZAIiaM CxG9myUOmIBC4Ez53FgPyUuQubQi3aN0KS6B7O5BrYjTCbYvDLHmvCmXogBJNONyrRcJ6iyEa1NN A+R3VksBg4amPRupXsGaAQQJgyzx6LYnYREpg3yEwMNugxyLTZxn8YaUFUsDo9XsyMxWE/WaHYfM MEHQyBAQkAiu0mmcsmrvZS3HtYaUzKNLV9PhC6vp2LNncY5Bu/fvU7hbgA6+vHbxcM2rP/+CiPv3 8OPLnz8ERpEY+PPr388fQ///AAbYAhJ9BBZo4IEIJqjgggw26CB8EQAAOw== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://pixel.quantserve.com/pixel/p-d4gchyAGi_YY6.gif R0lGODlhAQABAAAAACwAAAAAAQABAID///8AAAACAkQBADs= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://pixel.quantserve.com/pixel/p-f3Ehn0Pv90nQY.gif R0lGODlhAQABAAAAACwAAAAAAQABAID///8AAAACAkQBADs= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/loading.gif R0lGODlhIAAgAPcAAP///7Ozs/v7+9bW1uHh4fLy8rq6uoGBgTQ0NAEBARsbG8TExJeXl/39/VRU VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEA AAAh+QQFCgAAACwAAAAAIAAgAAAI+gABCBxIkOCCAwsKKlzIcOCBhwUJFGiocICBgg8PEBzAkSLB Ag8DEMw4sADHAR5HPkQpkKTAkwRSDjTwkIFDiAAInJRJkMHDiwBcwuQ5cMABnxMfOsi5c6DOATFf MmCQcGCAnwp1ljwJdeCCqVNZGq3akGvHnmCnRvVodu3GtDZTPnW78CsDlnJ5EgBKtC9RsxxNLjBA uHBfwBwLK+Yr8+QCmAMGL/ZLWSZdipcZzvW4OaXZiQpNcuUJuGBpzHifclyruuvLy6oJdmbq+uVq AE1PgiYqWuzZ2Idv4z47vLbcpsWdIvcsPHlR4szxOneamWEBussrZzVOMSAAIfkEBQoAAAAsAAAA ABgAEgAACIAAAQgcSLAggAEGEypkAIAhQQMLFEZUOJDBgQMJGWgs6FDggosYDWrsmBCkgYQLNhLs aAAkxYYMJhIkAFJmxoYEBFps6FIgAQMGEFZUWbBlToEDgAI9SoCB0JdIlUIsADXhT6lVFSY9mVVh gaddw3odQLYs2KpmzYolUHZBWbEBAQAh+QQFCgAAACwBAAAAHQAOAAAIiQABCBxIcOAABgUTKlwo EGHCAQwHEoBIkIFFggEiEjRggGJDAA4BUAzJkKMBAgMthiSpcYDJlApZMlzAceTFAiBFFsSpkIBJ nAgRGvg40MCBA0MHDEA5kGYAj00JLjh69KRSpTwLDI14kOpRg1cJMNXo9QBUkVfPLjR6IGNPpWM1 MoibUKxGjQEBACH5BAUKAAAALAcAAAAZABEAAAiBAAEIHAiAgAGCCBMqBLDAwAKEDxcWIIDQgEWC DDIuHDCg4sWBGjdyLDDQ4kGQDCImJMCxo0CTAheEXAigJUUAMAkwALCTpkCbOD/OROjyJ8ebBAf0 rLk04QCkCpHuDOCTZs+mVSHGzOrTAEmuYMMmPEC27AGVYM2aFQuArAOzCwICACH5BAUKAAAALA4A AAASABgAAAiCAAEsIACgoMGDCAcsQAhgAEGGAhcsNLjAgAGIEScCIGDxIkSJGjsOwAiy4ICOGDMC KNDx4UeJDQMY0CiQAYOUBgoctMmAJkabAICmDBr05tCdRo8edKm0adOkKW9KdXrAIIORTpsaYHrU wIEDAah+/eoT4gAGYw9AxZnWo9IAZAEEBAAh+QQFCgAAACwOAAAAEgAeAAAImQABDCgAoKDBgwgF DkjIsOCAhwcHLFjQ8OFCgxMvJrRoUCLFihALTvzIkCOAkQ0dhswY0YABAgwJaCTg0qXGhgtqGiDZ UOfLlB1tAkU4cKhRowySKhUIlAEAp1Cdplya9KjVgwStfjRw1SCDmw0JBDg4lqGBAzAFVm3I4IDb gwacggVAwO0BnkDPvrVql+vRAXav2s161CXDgAAh+QQFCgAAACwPAAEAEQAfAAAIjAABCBwIgEAB gggTDhiQsGGBhQ0jLiQQkSCBhQwrCrwIUePGjgM5ehSIcQDFihwxaiyZUSPHkyMJwBxJE6GBmzgX aMTJ00DFngZ01hxKcwADBkI9Hj1ac+nShjpbCjyaVKBPpgN1MhB4oCuAgyQjdj1AEGvCsQO3VkRL k+1UtWcPOFDY0K3HBQeqagwIACH5BAUKAAAALAgADgAYABIAAAh9AAEIHEiwIIABCBMOKGCw4UCF Ch06TLggIQGJGDNiHKAxowEDHDsa/EjyosiBBRaQNLBA5AAGJgmsDHnwgIGGDAwO+GgSAIMDB3IS JMCgKMYFQA+YFApgAVOHSW86LNpyZFKCT30aNZi0KsasAq9iPVDQa1mpA3OCPUmzY0AAIfkEBQoA AAAsAgASAB0ADgAACIkAAQgcSLCgQQAEDhIkwEChQQIDBiQ8aODAAQMOCUbcWECjxY8ZNW6MKJDB xwMMBmQkgHHgSJYnWyZcYHCAAQM0B0JUWfFAAII/AWBkQBRAgZsGJj4sqBJAQ6dQAdi8GXLgU4JF BS642bRqVKhXWVINWbQr0asAtrasihatS6UOu2IN6pXt2owBAQAh+QQFCgAAACwAAA8AGQARAAAI gAAXHBhI8ACAgwgTKjxYsODChwkFEnQwEKLFixgxFjCQseOCjg8ZgIQYIGEAAhgHQGTAQOXBlgsJ DJiZ0CVHhCxFAjDAE4DMmQUSBlXIEiHPmz9dWmT5cWfPgzMHoHy4oKjRp1BpLk14tKbWhVav3kQ4 FWJThAsMnB2p0EDZhAEBACH5BAUKAAAALAEACAARABgAAAh3AAccOGAAgMGDCA8aGDhwQcKHABgO ZDAAIsIFEg9YTBhgYMGNHEGKHEmypMmTKDcuYMCgJEuWIF++BLmyJcICHx+ydHhwgQEDFQcINUgg IYGfBgoAEFoRItKmTCEOQHow6kOkRQ1aTfizqdahDwl4/ToWpFgAAQEAIfkEBQoAAAAsAAACAA4A HQAACIoAAQgcCGCBAYIIBx44wCAhwoUHBjgcGADiRIULD15cYJFgQ4IQP3qUCIDAgQAEUYokMHHA R5ETFwiUeRFAAY01WzLYyROmwJ49E7rcCYBnzqMISV4cYMCAUoQEmkp1aFDqggJCrQ4kMACrwKhO CQ4Yy1Kg14EFxg4o61At24Rcx9ZUm1NuzgJvAwIAOw== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/closelabel.gif R0lGODlhQgAWAOYAAMDAwMHBwZ2dnVlZWdLS0oODg6+vr/X19eTk5FBQULi4uIyMjJSUlFRUVFZW Vtzc3FJSUsnJyVFRUVhYWFVVVezs7FNTU/b29v39/erq6vr6+qampldXV6KiokxMTE9PT2ZmZvf3 993d3czMzGBgYHt7e6Ghofz8/PDw8N7e3mxsbLW1tfv7+5WVlc3NzcrKynh4eOvr60tLS+Dg4F9f X7m5ud/f37S0tIaGhnBwcGNjY+Xl5ZKSkoiIiKmpqW5ubpeXl29vb9XV1Y6Oju3t7WVlZXZ2dpiY mG1tbXx8fO/v7+fn57GxsbOzs/Hx8Xl5eVpaWmRkZE1NTXNzc2dnZ5aWloeHh+Pj405OTmlpadvb 23p6ev////7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAABCABYAAAf/gFyCg4SFhoeIiYqLjI2Oj4xdkpOUlZaXl5BcJ42Ynp+YkZJcLEdC XJZcIwIaqKCvoKJdIUAeUSKuXYIuNB5VF5QVWgiwXQjDlwdaWrqLo00yAxZFWq6qJA0DHj6SBAtb 4AsEXQBbzJUABeBbBQCUCusFL1wB6+uDoxlbHwMJVDaCRtCwMAALDhRdImxZEEFLhAIGyJmrZGAL AwJaCDDYElGigYwbLtDjGKBkAHz5SiQY0EDFDBfYBkixEgJVgQIHJuWUeE4Sgi0CKgmYOJSSoHoP DhmtUIIfBSTYJiToIbKLli3uLJXrybPSVQVdKirYeXRLUkOVuMRIAmGAAw4D/yAMqSlp6yW7k4pa AtqlgrotGxCUbSGgsAKURlEYoTBgQoMOrSbhRTcx75ZLfLscAPDN7EjChhFP4qIkCGOWDHRNIoD1 bmVJ8MZRYp1VMseRZwulnTElGwUHcU1gcHXg5k5jOSdbzWyZmOZJQHErHZ1ChQRpWUA4mAChw3BJ Chk6LLBgM0cA6JlVvJhxI9iw7DdsOVnPgMkARARRB3E9AYwrLziwnQTCueJNPOOUY09W6ayzQG0N gnPYSPZ4Zo0IIEAARQIlZCBIDQJOIEEHJ1ByjHOvnHjJMjlFwsUDOqzkXwyoCLKCBBxwIMMNxfSY ijNcOMEABB9s4aFRK1iQQDAOIvjo5CjO6MICD09UkAuUTPyww5VPwiILFxpUdQkGS3DZ5SuyNOOJ fmf6mGaPgQAAOw== ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/prototype.js /* Prototype JavaScript framework, version 1.4.0=0A= * (c) 2005 Sam Stephenson =0A= *=0A= * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please = diff=0A= * against the source tree, available from the Prototype darcs = repository.=0A= *=0A= * Prototype is freely distributable under the terms of an MIT-style = license.=0A= *=0A= * For details, see the Prototype web site: http://prototype.conio.net/=0A= *=0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Prototype =3D {=0A= Version: '1.4.0',=0A= ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)',=0A= =0A= emptyFunction: function() {},=0A= K: function(x) {return x}=0A= }=0A= =0A= var Class =3D {=0A= create: function() {=0A= return function() {=0A= this.initialize.apply(this, arguments);=0A= }=0A= }=0A= }=0A= =0A= var Abstract =3D new Object();=0A= =0A= Object.extend =3D function(destination, source) {=0A= for (property in source) {=0A= destination[property] =3D source[property];=0A= }=0A= return destination;=0A= }=0A= =0A= Object.inspect =3D function(object) {=0A= try {=0A= if (object =3D=3D undefined) return 'undefined';=0A= if (object =3D=3D null) return 'null';=0A= return object.inspect ? object.inspect() : object.toString();=0A= } catch (e) {=0A= if (e instanceof RangeError) return '...';=0A= throw e;=0A= }=0A= }=0A= =0A= Function.prototype.bind =3D function() {=0A= var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A= return function() {=0A= return __method.apply(object, args.concat($A(arguments)));=0A= }=0A= }=0A= =0A= Function.prototype.bindAsEventListener =3D function(object) {=0A= var __method =3D this;=0A= return function(event) {=0A= return __method.call(object, event || window.event);=0A= }=0A= }=0A= =0A= Object.extend(Number.prototype, {=0A= toColorPart: function() {=0A= var digits =3D this.toString(16);=0A= if (this < 16) return '0' + digits;=0A= return digits;=0A= },=0A= =0A= succ: function() {=0A= return this + 1;=0A= },=0A= =0A= times: function(iterator) {=0A= $R(0, this, true).each(iterator);=0A= return this;=0A= }=0A= });=0A= =0A= var Try =3D {=0A= these: function() {=0A= var returnValue;=0A= =0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var lambda =3D arguments[i];=0A= try {=0A= returnValue =3D lambda();=0A= break;=0A= } catch (e) {}=0A= }=0A= =0A= return returnValue;=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var PeriodicalExecuter =3D Class.create();=0A= PeriodicalExecuter.prototype =3D {=0A= initialize: function(callback, frequency) {=0A= this.callback =3D callback;=0A= this.frequency =3D frequency;=0A= this.currentlyExecuting =3D false;=0A= =0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= if (!this.currentlyExecuting) {=0A= try {=0A= this.currentlyExecuting =3D true;=0A= this.callback();=0A= } finally {=0A= this.currentlyExecuting =3D false;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= function $() {=0A= var elements =3D new Array();=0A= =0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D arguments[i];=0A= if (typeof element =3D=3D 'string')=0A= element =3D document.getElementById(element);=0A= =0A= if (arguments.length =3D=3D 1)=0A= return element;=0A= =0A= elements.push(element);=0A= }=0A= =0A= return elements;=0A= }=0A= Object.extend(String.prototype, {=0A= stripTags: function() {=0A= return this.replace(/<\/?[^>]+>/gi, '');=0A= },=0A= =0A= stripScripts: function() {=0A= return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A= },=0A= =0A= extractScripts: function() {=0A= var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A= var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A= return (this.match(matchAll) || []).map(function(scriptTag) {=0A= return (scriptTag.match(matchOne) || ['', ''])[1];=0A= });=0A= },=0A= =0A= evalScripts: function() {=0A= return this.extractScripts().map(eval);=0A= },=0A= =0A= escapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= var text =3D document.createTextNode(this);=0A= div.appendChild(text);=0A= return div.innerHTML;=0A= },=0A= =0A= unescapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D this.stripTags();=0A= return div.childNodes[0] ? div.childNodes[0].nodeValue : '';=0A= },=0A= =0A= toQueryParams: function() {=0A= var pairs =3D this.match(/^\??(.*)$/)[1].split('&');=0A= return pairs.inject({}, function(params, pairString) {=0A= var pair =3D pairString.split('=3D');=0A= params[pair[0]] =3D pair[1];=0A= return params;=0A= });=0A= },=0A= =0A= toArray: function() {=0A= return this.split('');=0A= },=0A= =0A= camelize: function() {=0A= var oStringList =3D this.split('-');=0A= if (oStringList.length =3D=3D 1) return oStringList[0];=0A= =0A= var camelizedString =3D this.indexOf('-') =3D=3D 0=0A= ? oStringList[0].charAt(0).toUpperCase() + = oStringList[0].substring(1)=0A= : oStringList[0];=0A= =0A= for (var i =3D 1, len =3D oStringList.length; i < len; i++) {=0A= var s =3D oStringList[i];=0A= camelizedString +=3D s.charAt(0).toUpperCase() + s.substring(1);=0A= }=0A= =0A= return camelizedString;=0A= },=0A= =0A= inspect: function() {=0A= return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'";=0A= }=0A= });=0A= =0A= String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A= =0A= var $break =3D new Object();=0A= var $continue =3D new Object();=0A= =0A= var Enumerable =3D {=0A= each: function(iterator) {=0A= var index =3D 0;=0A= try {=0A= this._each(function(value) {=0A= try {=0A= iterator(value, index++);=0A= } catch (e) {=0A= if (e !=3D $continue) throw e;=0A= }=0A= });=0A= } catch (e) {=0A= if (e !=3D $break) throw e;=0A= }=0A= },=0A= =0A= all: function(iterator) {=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!(iterator || Prototype.K)(value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator) {=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= if (result =3D !!(iterator || Prototype.K)(value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(iterator(value, index));=0A= });=0A= return results;=0A= },=0A= =0A= detect: function (iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= if (iterator(value, index)) {=0A= result =3D value;=0A= throw $break;=0A= }=0A= });=0A= return result;=0A= },=0A= =0A= findAll: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= grep: function(pattern, iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= var stringValue =3D value.toString();=0A= if (stringValue.match(pattern))=0A= results.push((iterator || Prototype.K)(value, index));=0A= })=0A= return results;=0A= },=0A= =0A= include: function(object) {=0A= var found =3D false;=0A= this.each(function(value) {=0A= if (value =3D=3D object) {=0A= found =3D true;=0A= throw $break;=0A= }=0A= });=0A= return found;=0A= },=0A= =0A= inject: function(memo, iterator) {=0A= this.each(function(value, index) {=0A= memo =3D iterator(memo, value, index);=0A= });=0A= return memo;=0A= },=0A= =0A= invoke: function(method) {=0A= var args =3D $A(arguments).slice(1);=0A= return this.collect(function(value) {=0A= return value[method].apply(value, args);=0A= });=0A= },=0A= =0A= max: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (value >=3D (result || value))=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= min: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (value <=3D (result || value))=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= partition: function(iterator) {=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= ((iterator || Prototype.K)(value, index) ?=0A= trues : falses).push(value);=0A= });=0A= return [trues, falses];=0A= },=0A= =0A= pluck: function(property) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(value[property]);=0A= });=0A= return results;=0A= },=0A= =0A= reject: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (!iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= sortBy: function(iterator) {=0A= return this.collect(function(value, index) {=0A= return {value: value, criteria: iterator(value, index)};=0A= }).sort(function(left, right) {=0A= var a =3D left.criteria, b =3D right.criteria;=0A= return a < b ? -1 : a > b ? 1 : 0;=0A= }).pluck('value');=0A= },=0A= =0A= toArray: function() {=0A= return this.collect(Prototype.K);=0A= },=0A= =0A= zip: function() {=0A= var iterator =3D Prototype.K, args =3D $A(arguments);=0A= if (typeof args.last() =3D=3D 'function')=0A= iterator =3D args.pop();=0A= =0A= var collections =3D [this].concat(args).map($A);=0A= return this.map(function(value, index) {=0A= iterator(value =3D collections.pluck(index));=0A= return value;=0A= });=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= Object.extend(Enumerable, {=0A= map: Enumerable.collect,=0A= find: Enumerable.detect,=0A= select: Enumerable.findAll,=0A= member: Enumerable.include,=0A= entries: Enumerable.toArray=0A= });=0A= var $A =3D Array.from =3D function(iterable) {=0A= if (!iterable) return [];=0A= if (iterable.toArray) {=0A= return iterable.toArray();=0A= } else {=0A= var results =3D [];=0A= for (var i =3D 0; i < iterable.length; i++)=0A= results.push(iterable[i]);=0A= return results;=0A= }=0A= }=0A= =0A= Object.extend(Array.prototype, Enumerable);=0A= =0A= Array.prototype._reverse =3D Array.prototype.reverse;=0A= =0A= Object.extend(Array.prototype, {=0A= _each: function(iterator) {=0A= for (var i =3D 0; i < this.length; i++)=0A= iterator(this[i]);=0A= },=0A= =0A= clear: function() {=0A= this.length =3D 0;=0A= return this;=0A= },=0A= =0A= first: function() {=0A= return this[0];=0A= },=0A= =0A= last: function() {=0A= return this[this.length - 1];=0A= },=0A= =0A= compact: function() {=0A= return this.select(function(value) {=0A= return value !=3D undefined || value !=3D null;=0A= });=0A= },=0A= =0A= flatten: function() {=0A= return this.inject([], function(array, value) {=0A= return array.concat(value.constructor =3D=3D Array ?=0A= value.flatten() : [value]);=0A= });=0A= },=0A= =0A= without: function() {=0A= var values =3D $A(arguments);=0A= return this.select(function(value) {=0A= return !values.include(value);=0A= });=0A= },=0A= =0A= indexOf: function(object) {=0A= for (var i =3D 0; i < this.length; i++)=0A= if (this[i] =3D=3D object) return i;=0A= return -1;=0A= },=0A= =0A= reverse: function(inline) {=0A= return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A= },=0A= =0A= shift: function() {=0A= var result =3D this[0];=0A= for (var i =3D 0; i < this.length - 1; i++)=0A= this[i] =3D this[i + 1];=0A= this.length--;=0A= return result;=0A= },=0A= =0A= inspect: function() {=0A= return '[' + this.map(Object.inspect).join(', ') + ']';=0A= }=0A= });=0A= var Hash =3D {=0A= _each: function(iterator) {=0A= for (key in this) {=0A= var value =3D this[key];=0A= if (typeof value =3D=3D 'function') continue;=0A= =0A= var pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= },=0A= =0A= keys: function() {=0A= return this.pluck('key');=0A= },=0A= =0A= values: function() {=0A= return this.pluck('value');=0A= },=0A= =0A= merge: function(hash) {=0A= return $H(hash).inject($H(this), function(mergedHash, pair) {=0A= mergedHash[pair.key] =3D pair.value;=0A= return mergedHash;=0A= });=0A= },=0A= =0A= toQueryString: function() {=0A= return this.map(function(pair) {=0A= return pair.map(encodeURIComponent).join('=3D');=0A= }).join('&');=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= function $H(object) {=0A= var hash =3D Object.extend({}, object || {});=0A= Object.extend(hash, Enumerable);=0A= Object.extend(hash, Hash);=0A= return hash;=0A= }=0A= ObjectRange =3D Class.create();=0A= Object.extend(ObjectRange.prototype, Enumerable);=0A= Object.extend(ObjectRange.prototype, {=0A= initialize: function(start, end, exclusive) {=0A= this.start =3D start;=0A= this.end =3D end;=0A= this.exclusive =3D exclusive;=0A= },=0A= =0A= _each: function(iterator) {=0A= var value =3D this.start;=0A= do {=0A= iterator(value);=0A= value =3D value.succ();=0A= } while (this.include(value));=0A= },=0A= =0A= include: function(value) {=0A= if (value < this.start)=0A= return false;=0A= if (this.exclusive)=0A= return value < this.end;=0A= return value <=3D this.end;=0A= }=0A= });=0A= =0A= var $R =3D function(start, end, exclusive) {=0A= return new ObjectRange(start, end, exclusive);=0A= }=0A= =0A= var Ajax =3D {=0A= getTransport: function() {=0A= return Try.these(=0A= function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A= function() {return new ActiveXObject('Microsoft.XMLHTTP')},=0A= function() {return new XMLHttpRequest()}=0A= ) || false;=0A= },=0A= =0A= activeRequestCount: 0=0A= }=0A= =0A= Ajax.Responders =3D {=0A= responders: [],=0A= =0A= _each: function(iterator) {=0A= this.responders._each(iterator);=0A= },=0A= =0A= register: function(responderToAdd) {=0A= if (!this.include(responderToAdd))=0A= this.responders.push(responderToAdd);=0A= },=0A= =0A= unregister: function(responderToRemove) {=0A= this.responders =3D this.responders.without(responderToRemove);=0A= },=0A= =0A= dispatch: function(callback, request, transport, json) {=0A= this.each(function(responder) {=0A= if (responder[callback] && typeof responder[callback] =3D=3D = 'function') {=0A= try {=0A= responder[callback].apply(responder, [request, transport, = json]);=0A= } catch (e) {}=0A= }=0A= });=0A= }=0A= };=0A= =0A= Object.extend(Ajax.Responders, Enumerable);=0A= =0A= Ajax.Responders.register({=0A= onCreate: function() {=0A= Ajax.activeRequestCount++;=0A= },=0A= =0A= onComplete: function() {=0A= Ajax.activeRequestCount--;=0A= }=0A= });=0A= =0A= Ajax.Base =3D function() {};=0A= Ajax.Base.prototype =3D {=0A= setOptions: function(options) {=0A= this.options =3D {=0A= method: 'post',=0A= asynchronous: true,=0A= parameters: ''=0A= }=0A= Object.extend(this.options, options || {});=0A= },=0A= =0A= responseIsSuccess: function() {=0A= return this.transport.status =3D=3D undefined=0A= || this.transport.status =3D=3D 0=0A= || (this.transport.status >=3D 200 && this.transport.status < = 300);=0A= },=0A= =0A= responseIsFailure: function() {=0A= return !this.responseIsSuccess();=0A= }=0A= }=0A= =0A= Ajax.Request =3D Class.create();=0A= Ajax.Request.Events =3D=0A= ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A= =0A= Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A= initialize: function(url, options) {=0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= this.request(url);=0A= },=0A= =0A= request: function(url) {=0A= var parameters =3D this.options.parameters || '';=0A= if (parameters.length > 0) parameters +=3D '&_=3D';=0A= =0A= try {=0A= this.url =3D url;=0A= if (this.options.method =3D=3D 'get' && parameters.length > 0)=0A= this.url +=3D (this.url.match(/\?/) ? '&' : '?') + parameters;=0A= =0A= Ajax.Responders.dispatch('onCreate', this, this.transport);=0A= =0A= this.transport.open(this.options.method, this.url,=0A= this.options.asynchronous);=0A= =0A= if (this.options.asynchronous) {=0A= this.transport.onreadystatechange =3D = this.onStateChange.bind(this);=0A= setTimeout((function() = {this.respondToReadyState(1)}).bind(this), 10);=0A= }=0A= =0A= this.setRequestHeaders();=0A= =0A= var body =3D this.options.postBody ? this.options.postBody : = parameters;=0A= this.transport.send(this.options.method =3D=3D 'post' ? body : = null);=0A= =0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= setRequestHeaders: function() {=0A= var requestHeaders =3D=0A= ['X-Requested-With', 'XMLHttpRequest',=0A= 'X-Prototype-Version', Prototype.Version];=0A= =0A= if (this.options.method =3D=3D 'post') {=0A= requestHeaders.push('Content-type',=0A= 'application/x-www-form-urlencoded');=0A= =0A= /* Force "Connection: close" for Mozilla browsers to work around=0A= * a bug where XMLHttpReqeuest sends an incorrect Content-length=0A= * header. See Mozilla Bugzilla #246651.=0A= */=0A= if (this.transport.overrideMimeType)=0A= requestHeaders.push('Connection', 'close');=0A= }=0A= =0A= if (this.options.requestHeaders)=0A= requestHeaders.push.apply(requestHeaders, = this.options.requestHeaders);=0A= =0A= for (var i =3D 0; i < requestHeaders.length; i +=3D 2)=0A= this.transport.setRequestHeader(requestHeaders[i], = requestHeaders[i+1]);=0A= },=0A= =0A= onStateChange: function() {=0A= var readyState =3D this.transport.readyState;=0A= if (readyState !=3D 1)=0A= this.respondToReadyState(this.transport.readyState);=0A= },=0A= =0A= header: function(name) {=0A= try {=0A= return this.transport.getResponseHeader(name);=0A= } catch (e) {}=0A= },=0A= =0A= evalJSON: function() {=0A= try {=0A= return eval(this.header('X-JSON'));=0A= } catch (e) {}=0A= },=0A= =0A= evalResponse: function() {=0A= try {=0A= return eval(this.transport.responseText);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= respondToReadyState: function(readyState) {=0A= var event =3D Ajax.Request.Events[readyState];=0A= var transport =3D this.transport, json =3D this.evalJSON();=0A= =0A= if (event =3D=3D 'Complete') {=0A= try {=0A= (this.options['on' + this.transport.status]=0A= || this.options['on' + (this.responseIsSuccess() ? 'Success' : = 'Failure')]=0A= || Prototype.emptyFunction)(transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if ((this.header('Content-type') || = '').match(/^text\/javascript/i))=0A= this.evalResponse();=0A= }=0A= =0A= try {=0A= (this.options['on' + event] || Prototype.emptyFunction)(transport, = json);=0A= Ajax.Responders.dispatch('on' + event, this, transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= /* Avoid memory leak in MSIE: clean up the oncomplete event handler = */=0A= if (event =3D=3D 'Complete')=0A= this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= },=0A= =0A= dispatchException: function(exception) {=0A= (this.options.onException || Prototype.emptyFunction)(this, = exception);=0A= Ajax.Responders.dispatch('onException', this, exception);=0A= }=0A= });=0A= =0A= Ajax.Updater =3D Class.create();=0A= =0A= Object.extend(Object.extend(Ajax.Updater.prototype, = Ajax.Request.prototype), {=0A= initialize: function(container, url, options) {=0A= this.containers =3D {=0A= success: container.success ? $(container.success) : $(container),=0A= failure: container.failure ? $(container.failure) :=0A= (container.success ? null : $(container))=0A= }=0A= =0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= =0A= var onComplete =3D this.options.onComplete || = Prototype.emptyFunction;=0A= this.options.onComplete =3D (function(transport, object) {=0A= this.updateContent();=0A= onComplete(transport, object);=0A= }).bind(this);=0A= =0A= this.request(url);=0A= },=0A= =0A= updateContent: function() {=0A= var receiver =3D this.responseIsSuccess() ?=0A= this.containers.success : this.containers.failure;=0A= var response =3D this.transport.responseText;=0A= =0A= if (!this.options.evalScripts)=0A= response =3D response.stripScripts();=0A= =0A= if (receiver) {=0A= if (this.options.insertion) {=0A= new this.options.insertion(receiver, response);=0A= } else {=0A= Element.update(receiver, response);=0A= }=0A= }=0A= =0A= if (this.responseIsSuccess()) {=0A= if (this.onComplete)=0A= setTimeout(this.onComplete.bind(this), 10);=0A= }=0A= }=0A= });=0A= =0A= Ajax.PeriodicalUpdater =3D Class.create();=0A= Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A= initialize: function(container, url, options) {=0A= this.setOptions(options);=0A= this.onComplete =3D this.options.onComplete;=0A= =0A= this.frequency =3D (this.options.frequency || 2);=0A= this.decay =3D (this.options.decay || 1);=0A= =0A= this.updater =3D {};=0A= this.container =3D container;=0A= this.url =3D url;=0A= =0A= this.start();=0A= },=0A= =0A= start: function() {=0A= this.options.onComplete =3D this.updateComplete.bind(this);=0A= this.onTimerEvent();=0A= },=0A= =0A= stop: function() {=0A= this.updater.onComplete =3D undefined;=0A= clearTimeout(this.timer);=0A= (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A= },=0A= =0A= updateComplete: function(request) {=0A= if (this.options.decay) {=0A= this.decay =3D (request.responseText =3D=3D this.lastText ?=0A= this.decay * this.options.decay : 1);=0A= =0A= this.lastText =3D request.responseText;=0A= }=0A= this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A= this.decay * this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= this.updater =3D new Ajax.Updater(this.container, this.url, = this.options);=0A= }=0A= });=0A= document.getElementsByClassName =3D function(className, parentElement) {=0A= var children =3D ($(parentElement) || = document.body).getElementsByTagName('*');=0A= return $A(children).inject([], function(elements, child) {=0A= if (child.className.match(new RegExp("(^|\\s)" + className + = "(\\s|$)")))=0A= elements.push(child);=0A= return elements;=0A= });=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= if (!window.Element) {=0A= var Element =3D new Object();=0A= }=0A= =0A= Object.extend(Element, {=0A= visible: function(element) {=0A= return $(element).style.display !=3D 'none';=0A= },=0A= =0A= toggle: function() {=0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D $(arguments[i]);=0A= Element[Element.visible(element) ? 'hide' : 'show'](element);=0A= }=0A= },=0A= =0A= hide: function() {=0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D $(arguments[i]);=0A= element.style.display =3D 'none';=0A= }=0A= },=0A= =0A= show: function() {=0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D $(arguments[i]);=0A= element.style.display =3D '';=0A= }=0A= },=0A= =0A= remove: function(element) {=0A= element =3D $(element);=0A= element.parentNode.removeChild(element);=0A= },=0A= =0A= update: function(element, html) {=0A= $(element).innerHTML =3D html.stripScripts();=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= },=0A= =0A= getHeight: function(element) {=0A= element =3D $(element);=0A= return element.offsetHeight;=0A= },=0A= =0A= classNames: function(element) {=0A= return new Element.ClassNames(element);=0A= },=0A= =0A= hasClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return Element.classNames(element).include(className);=0A= },=0A= =0A= addClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return Element.classNames(element).add(className);=0A= },=0A= =0A= removeClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return Element.classNames(element).remove(className);=0A= },=0A= =0A= // removes whitespace-only text node children=0A= cleanWhitespace: function(element) {=0A= element =3D $(element);=0A= for (var i =3D 0; i < element.childNodes.length; i++) {=0A= var node =3D element.childNodes[i];=0A= if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A= Element.remove(node);=0A= }=0A= },=0A= =0A= empty: function(element) {=0A= return $(element).innerHTML.match(/^\s*$/);=0A= },=0A= =0A= scrollTo: function(element) {=0A= element =3D $(element);=0A= var x =3D element.x ? element.x : element.offsetLeft,=0A= y =3D element.y ? element.y : element.offsetTop;=0A= window.scrollTo(x, y);=0A= },=0A= =0A= getStyle: function(element, style) {=0A= element =3D $(element);=0A= var value =3D element.style[style.camelize()];=0A= if (!value) {=0A= if (document.defaultView && document.defaultView.getComputedStyle) = {=0A= var css =3D document.defaultView.getComputedStyle(element, null);=0A= value =3D css ? css.getPropertyValue(style) : null;=0A= } else if (element.currentStyle) {=0A= value =3D element.currentStyle[style.camelize()];=0A= }=0A= }=0A= =0A= if (window.opera && ['left', 'top', 'right', = 'bottom'].include(style))=0A= if (Element.getStyle(element, 'position') =3D=3D 'static') value = =3D 'auto';=0A= =0A= return value =3D=3D 'auto' ? null : value;=0A= },=0A= =0A= setStyle: function(element, style) {=0A= element =3D $(element);=0A= for (name in style)=0A= element.style[name.camelize()] =3D style[name];=0A= },=0A= =0A= getDimensions: function(element) {=0A= element =3D $(element);=0A= if (Element.getStyle(element, 'display') !=3D 'none')=0A= return {width: element.offsetWidth, height: element.offsetHeight};=0A= =0A= // All *Width and *Height properties give 0 on elements with display = none,=0A= // so enable the element temporarily=0A= var els =3D element.style;=0A= var originalVisibility =3D els.visibility;=0A= var originalPosition =3D els.position;=0A= els.visibility =3D 'hidden';=0A= els.position =3D 'absolute';=0A= els.display =3D '';=0A= var originalWidth =3D element.clientWidth;=0A= var originalHeight =3D element.clientHeight;=0A= els.display =3D 'none';=0A= els.position =3D originalPosition;=0A= els.visibility =3D originalVisibility;=0A= return {width: originalWidth, height: originalHeight};=0A= },=0A= =0A= makePositioned: function(element) {=0A= element =3D $(element);=0A= var pos =3D Element.getStyle(element, 'position');=0A= if (pos =3D=3D 'static' || !pos) {=0A= element._madePositioned =3D true;=0A= element.style.position =3D 'relative';=0A= // Opera returns the offset relative to the positioning context, = when an=0A= // element is position relative but top and left have not been = defined=0A= if (window.opera) {=0A= element.style.top =3D 0;=0A= element.style.left =3D 0;=0A= }=0A= }=0A= },=0A= =0A= undoPositioned: function(element) {=0A= element =3D $(element);=0A= if (element._madePositioned) {=0A= element._madePositioned =3D undefined;=0A= element.style.position =3D=0A= element.style.top =3D=0A= element.style.left =3D=0A= element.style.bottom =3D=0A= element.style.right =3D '';=0A= }=0A= },=0A= =0A= makeClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return;=0A= element._overflow =3D element.style.overflow;=0A= if ((Element.getStyle(element, 'overflow') || 'visible') !=3D = 'hidden')=0A= element.style.overflow =3D 'hidden';=0A= },=0A= =0A= undoClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return;=0A= element.style.overflow =3D element._overflow;=0A= element._overflow =3D undefined;=0A= }=0A= });=0A= =0A= var Toggle =3D new Object();=0A= Toggle.display =3D Element.toggle;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.Insertion =3D function(adjacency) {=0A= this.adjacency =3D adjacency;=0A= }=0A= =0A= Abstract.Insertion.prototype =3D {=0A= initialize: function(element, content) {=0A= this.element =3D $(element);=0A= this.content =3D content.stripScripts();=0A= =0A= if (this.adjacency && this.element.insertAdjacentHTML) {=0A= try {=0A= this.element.insertAdjacentHTML(this.adjacency, this.content);=0A= } catch (e) {=0A= if (this.element.tagName.toLowerCase() =3D=3D 'tbody') {=0A= this.insertContent(this.contentFromAnonymousTable());=0A= } else {=0A= throw e;=0A= }=0A= }=0A= } else {=0A= this.range =3D this.element.ownerDocument.createRange();=0A= if (this.initializeRange) this.initializeRange();=0A= = this.insertContent([this.range.createContextualFragment(this.content)]);=0A= }=0A= =0A= setTimeout(function() {content.evalScripts()}, 10);=0A= },=0A= =0A= contentFromAnonymousTable: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D '' + this.content + = '
';=0A= return $A(div.childNodes[0].childNodes[0].childNodes);=0A= }=0A= }=0A= =0A= var Insertion =3D new Object();=0A= =0A= Insertion.Before =3D Class.create();=0A= Insertion.Before.prototype =3D Object.extend(new = Abstract.Insertion('beforeBegin'), {=0A= initializeRange: function() {=0A= this.range.setStartBefore(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment, this.element);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Top =3D Class.create();=0A= Insertion.Top.prototype =3D Object.extend(new = Abstract.Insertion('afterBegin'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(true);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.reverse(false).each((function(fragment) {=0A= this.element.insertBefore(fragment, this.element.firstChild);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Bottom =3D Class.create();=0A= Insertion.Bottom.prototype =3D Object.extend(new = Abstract.Insertion('beforeEnd'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.appendChild(fragment);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.After =3D Class.create();=0A= Insertion.After.prototype =3D Object.extend(new = Abstract.Insertion('afterEnd'), {=0A= initializeRange: function() {=0A= this.range.setStartAfter(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment,=0A= this.element.nextSibling);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Element.ClassNames =3D Class.create();=0A= Element.ClassNames.prototype =3D {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= },=0A= =0A= _each: function(iterator) {=0A= this.element.className.split(/\s+/).select(function(name) {=0A= return name.length > 0;=0A= })._each(iterator);=0A= },=0A= =0A= set: function(className) {=0A= this.element.className =3D className;=0A= },=0A= =0A= add: function(classNameToAdd) {=0A= if (this.include(classNameToAdd)) return;=0A= this.set(this.toArray().concat(classNameToAdd).join(' '));=0A= },=0A= =0A= remove: function(classNameToRemove) {=0A= if (!this.include(classNameToRemove)) return;=0A= this.set(this.select(function(className) {=0A= return className !=3D classNameToRemove;=0A= }).join(' '));=0A= },=0A= =0A= toString: function() {=0A= return this.toArray().join(' ');=0A= }=0A= }=0A= =0A= Object.extend(Element.ClassNames.prototype, Enumerable);=0A= var Field =3D {=0A= clear: function() {=0A= for (var i =3D 0; i < arguments.length; i++)=0A= $(arguments[i]).value =3D '';=0A= },=0A= =0A= focus: function(element) {=0A= $(element).focus();=0A= },=0A= =0A= present: function() {=0A= for (var i =3D 0; i < arguments.length; i++)=0A= if ($(arguments[i]).value =3D=3D '') return false;=0A= return true;=0A= },=0A= =0A= select: function(element) {=0A= $(element).select();=0A= },=0A= =0A= activate: function(element) {=0A= element =3D $(element);=0A= element.focus();=0A= if (element.select)=0A= element.select();=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Form =3D {=0A= serialize: function(form) {=0A= var elements =3D Form.getElements($(form));=0A= var queryComponents =3D new Array();=0A= =0A= for (var i =3D 0; i < elements.length; i++) {=0A= var queryComponent =3D Form.Element.serialize(elements[i]);=0A= if (queryComponent)=0A= queryComponents.push(queryComponent);=0A= }=0A= =0A= return queryComponents.join('&');=0A= },=0A= =0A= getElements: function(form) {=0A= form =3D $(form);=0A= var elements =3D new Array();=0A= =0A= for (tagName in Form.Element.Serializers) {=0A= var tagElements =3D form.getElementsByTagName(tagName);=0A= for (var j =3D 0; j < tagElements.length; j++)=0A= elements.push(tagElements[j]);=0A= }=0A= return elements;=0A= },=0A= =0A= getInputs: function(form, typeName, name) {=0A= form =3D $(form);=0A= var inputs =3D form.getElementsByTagName('input');=0A= =0A= if (!typeName && !name)=0A= return inputs;=0A= =0A= var matchingInputs =3D new Array();=0A= for (var i =3D 0; i < inputs.length; i++) {=0A= var input =3D inputs[i];=0A= if ((typeName && input.type !=3D typeName) ||=0A= (name && input.name !=3D name))=0A= continue;=0A= matchingInputs.push(input);=0A= }=0A= =0A= return matchingInputs;=0A= },=0A= =0A= disable: function(form) {=0A= var elements =3D Form.getElements(form);=0A= for (var i =3D 0; i < elements.length; i++) {=0A= var element =3D elements[i];=0A= element.blur();=0A= element.disabled =3D 'true';=0A= }=0A= },=0A= =0A= enable: function(form) {=0A= var elements =3D Form.getElements(form);=0A= for (var i =3D 0; i < elements.length; i++) {=0A= var element =3D elements[i];=0A= element.disabled =3D '';=0A= }=0A= },=0A= =0A= findFirstElement: function(form) {=0A= return Form.getElements(form).find(function(element) {=0A= return element.type !=3D 'hidden' && !element.disabled &&=0A= ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase());=0A= });=0A= },=0A= =0A= focusFirstElement: function(form) {=0A= Field.activate(Form.findFirstElement(form));=0A= },=0A= =0A= reset: function(form) {=0A= $(form).reset();=0A= }=0A= }=0A= =0A= Form.Element =3D {=0A= serialize: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= var parameter =3D Form.Element.Serializers[method](element);=0A= =0A= if (parameter) {=0A= var key =3D encodeURIComponent(parameter[0]);=0A= if (key.length =3D=3D 0) return;=0A= =0A= if (parameter[1].constructor !=3D Array)=0A= parameter[1] =3D [parameter[1]];=0A= =0A= return parameter[1].map(function(value) {=0A= return key + '=3D' + encodeURIComponent(value);=0A= }).join('&');=0A= }=0A= },=0A= =0A= getValue: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= var parameter =3D Form.Element.Serializers[method](element);=0A= =0A= if (parameter)=0A= return parameter[1];=0A= }=0A= }=0A= =0A= Form.Element.Serializers =3D {=0A= input: function(element) {=0A= switch (element.type.toLowerCase()) {=0A= case 'submit':=0A= case 'hidden':=0A= case 'password':=0A= case 'text':=0A= return Form.Element.Serializers.textarea(element);=0A= case 'checkbox':=0A= case 'radio':=0A= return Form.Element.Serializers.inputSelector(element);=0A= }=0A= return false;=0A= },=0A= =0A= inputSelector: function(element) {=0A= if (element.checked)=0A= return [element.name, element.value];=0A= },=0A= =0A= textarea: function(element) {=0A= return [element.name, element.value];=0A= },=0A= =0A= select: function(element) {=0A= return Form.Element.Serializers[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= },=0A= =0A= selectOne: function(element) {=0A= var value =3D '', opt, index =3D element.selectedIndex;=0A= if (index >=3D 0) {=0A= opt =3D element.options[index];=0A= value =3D opt.value;=0A= if (!value && !('value' in opt))=0A= value =3D opt.text;=0A= }=0A= return [element.name, value];=0A= },=0A= =0A= selectMany: function(element) {=0A= var value =3D new Array();=0A= for (var i =3D 0; i < element.length; i++) {=0A= var opt =3D element.options[i];=0A= if (opt.selected) {=0A= var optValue =3D opt.value;=0A= if (!optValue && !('value' in opt))=0A= optValue =3D opt.text;=0A= value.push(optValue);=0A= }=0A= }=0A= return [element.name, value];=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var $F =3D Form.Element.getValue;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.TimedObserver =3D function() {}=0A= Abstract.TimedObserver.prototype =3D {=0A= initialize: function(element, frequency, callback) {=0A= this.frequency =3D frequency;=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= }=0A= }=0A= =0A= Form.Element.Observer =3D Class.create();=0A= Form.Element.Observer.prototype =3D Object.extend(new = Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.Observer =3D Class.create();=0A= Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.EventObserver =3D function() {}=0A= Abstract.EventObserver.prototype =3D {=0A= initialize: function(element, callback) {=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A= this.registerFormCallbacks();=0A= else=0A= this.registerCallback(this.element);=0A= },=0A= =0A= onElementEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= },=0A= =0A= registerFormCallbacks: function() {=0A= var elements =3D Form.getElements(this.element);=0A= for (var i =3D 0; i < elements.length; i++)=0A= this.registerCallback(elements[i]);=0A= },=0A= =0A= registerCallback: function(element) {=0A= if (element.type) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= Event.observe(element, 'click', = this.onElementEvent.bind(this));=0A= break;=0A= case 'password':=0A= case 'text':=0A= case 'textarea':=0A= case 'select-one':=0A= case 'select-multiple':=0A= Event.observe(element, 'change', = this.onElementEvent.bind(this));=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= Form.Element.EventObserver =3D Class.create();=0A= Form.Element.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.EventObserver =3D Class.create();=0A= Form.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= if (!window.Event) {=0A= var Event =3D new Object();=0A= }=0A= =0A= Object.extend(Event, {=0A= KEY_BACKSPACE: 8,=0A= KEY_TAB: 9,=0A= KEY_RETURN: 13,=0A= KEY_ESC: 27,=0A= KEY_LEFT: 37,=0A= KEY_UP: 38,=0A= KEY_RIGHT: 39,=0A= KEY_DOWN: 40,=0A= KEY_DELETE: 46,=0A= =0A= element: function(event) {=0A= return event.target || event.srcElement;=0A= },=0A= =0A= isLeftClick: function(event) {=0A= return (((event.which) && (event.which =3D=3D 1)) ||=0A= ((event.button) && (event.button =3D=3D 1)));=0A= },=0A= =0A= pointerX: function(event) {=0A= return event.pageX || (event.clientX +=0A= (document.documentElement.scrollLeft || document.body.scrollLeft));=0A= },=0A= =0A= pointerY: function(event) {=0A= return event.pageY || (event.clientY +=0A= (document.documentElement.scrollTop || document.body.scrollTop));=0A= },=0A= =0A= stop: function(event) {=0A= if (event.preventDefault) {=0A= event.preventDefault();=0A= event.stopPropagation();=0A= } else {=0A= event.returnValue =3D false;=0A= event.cancelBubble =3D true;=0A= }=0A= },=0A= =0A= // find the first node with the given tagName, starting from the=0A= // node the event was triggered on; traverses the DOM upwards=0A= findElement: function(event, tagName) {=0A= var element =3D Event.element(event);=0A= while (element.parentNode && (!element.tagName ||=0A= (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A= element =3D element.parentNode;=0A= return element;=0A= },=0A= =0A= observers: false,=0A= =0A= _observeAndCache: function(element, name, observer, useCapture) {=0A= if (!this.observers) this.observers =3D [];=0A= if (element.addEventListener) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.addEventListener(name, observer, useCapture);=0A= } else if (element.attachEvent) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.attachEvent('on' + name, observer);=0A= }=0A= },=0A= =0A= unloadCache: function() {=0A= if (!Event.observers) return;=0A= for (var i =3D 0; i < Event.observers.length; i++) {=0A= Event.stopObserving.apply(this, Event.observers[i]);=0A= Event.observers[i][0] =3D null;=0A= }=0A= Event.observers =3D false;=0A= },=0A= =0A= observe: function(element, name, observer, useCapture) {=0A= var element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.attachEvent))=0A= name =3D 'keydown';=0A= =0A= this._observeAndCache(element, name, observer, useCapture);=0A= },=0A= =0A= stopObserving: function(element, name, observer, useCapture) {=0A= var element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.detachEvent))=0A= name =3D 'keydown';=0A= =0A= if (element.removeEventListener) {=0A= element.removeEventListener(name, observer, useCapture);=0A= } else if (element.detachEvent) {=0A= element.detachEvent('on' + name, observer);=0A= }=0A= }=0A= });=0A= =0A= /* prevent memory leaks in IE */=0A= Event.observe(window, 'unload', Event.unloadCache, false);=0A= var Position =3D {=0A= // set to true if needed, warning: firefox performance problems=0A= // NOT neeeded for page scrolling, only if draggable contained in=0A= // scrollable elements=0A= includeScrollOffsets: false,=0A= =0A= // must be called before calling withinIncludingScrolloffset, every = time the=0A= // page is scrolled=0A= prepare: function() {=0A= this.deltaX =3D window.pageXOffset=0A= || document.documentElement.scrollLeft=0A= || document.body.scrollLeft=0A= || 0;=0A= this.deltaY =3D window.pageYOffset=0A= || document.documentElement.scrollTop=0A= || document.body.scrollTop=0A= || 0;=0A= },=0A= =0A= realOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.scrollTop || 0;=0A= valueL +=3D element.scrollLeft || 0;=0A= element =3D element.parentNode;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= cumulativeOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= positionedOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= if (element) {=0A= p =3D Element.getStyle(element, 'position');=0A= if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A= }=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= offsetParent: function(element) {=0A= if (element.offsetParent) return element.offsetParent;=0A= if (element =3D=3D document.body) return element;=0A= =0A= while ((element =3D element.parentNode) && element !=3D = document.body)=0A= if (Element.getStyle(element, 'position') !=3D 'static')=0A= return element;=0A= =0A= return document.body;=0A= },=0A= =0A= // caches x/y coordinate pair to use with overlap=0A= within: function(element, x, y) {=0A= if (this.includeScrollOffsets)=0A= return this.withinIncludingScrolloffsets(element, x, y);=0A= this.xcomp =3D x;=0A= this.ycomp =3D y;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (y >=3D this.offset[1] &&=0A= y < this.offset[1] + element.offsetHeight &&=0A= x >=3D this.offset[0] &&=0A= x < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= withinIncludingScrolloffsets: function(element, x, y) {=0A= var offsetcache =3D this.realOffset(element);=0A= =0A= this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A= this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (this.ycomp >=3D this.offset[1] &&=0A= this.ycomp < this.offset[1] + element.offsetHeight &&=0A= this.xcomp >=3D this.offset[0] &&=0A= this.xcomp < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= // within must be called directly before=0A= overlap: function(mode, element) {=0A= if (!mode) return 0;=0A= if (mode =3D=3D 'vertical')=0A= return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A= element.offsetHeight;=0A= if (mode =3D=3D 'horizontal')=0A= return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A= element.offsetWidth;=0A= },=0A= =0A= clone: function(source, target) {=0A= source =3D $(source);=0A= target =3D $(target);=0A= target.style.position =3D 'absolute';=0A= var offsets =3D this.cumulativeOffset(source);=0A= target.style.top =3D offsets[1] + 'px';=0A= target.style.left =3D offsets[0] + 'px';=0A= target.style.width =3D source.offsetWidth + 'px';=0A= target.style.height =3D source.offsetHeight + 'px';=0A= },=0A= =0A= page: function(forElement) {=0A= var valueT =3D 0, valueL =3D 0;=0A= =0A= var element =3D forElement;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= =0A= // Safari fix=0A= if (element.offsetParent=3D=3Ddocument.body)=0A= if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A= =0A= } while (element =3D element.offsetParent);=0A= =0A= element =3D forElement;=0A= do {=0A= valueT -=3D element.scrollTop || 0;=0A= valueL -=3D element.scrollLeft || 0;=0A= } while (element =3D element.parentNode);=0A= =0A= return [valueL, valueT];=0A= },=0A= =0A= clone: function(source, target) {=0A= var options =3D Object.extend({=0A= setLeft: true,=0A= setTop: true,=0A= setWidth: true,=0A= setHeight: true,=0A= offsetTop: 0,=0A= offsetLeft: 0=0A= }, arguments[2] || {})=0A= =0A= // find page position of source=0A= source =3D $(source);=0A= var p =3D Position.page(source);=0A= =0A= // find coordinate system to use=0A= target =3D $(target);=0A= var delta =3D [0, 0];=0A= var parent =3D null;=0A= // delta [0,0] will do fine with position: fixed elements,=0A= // position:absolute needs offsetParent deltas=0A= if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A= parent =3D Position.offsetParent(target);=0A= delta =3D Position.page(parent);=0A= }=0A= =0A= // correct by body offsets (fixes Safari)=0A= if (parent =3D=3D document.body) {=0A= delta[0] -=3D document.body.offsetLeft;=0A= delta[1] -=3D document.body.offsetTop;=0A= }=0A= =0A= // set position=0A= if(options.setLeft) target.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px';=0A= if(options.setTop) target.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px';=0A= if(options.setWidth) target.style.width =3D source.offsetWidth + = 'px';=0A= if(options.setHeight) target.style.height =3D source.offsetHeight + = 'px';=0A= },=0A= =0A= absolutize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'absolute') return;=0A= Position.prepare();=0A= =0A= var offsets =3D Position.positionedOffset(element);=0A= var top =3D offsets[1];=0A= var left =3D offsets[0];=0A= var width =3D element.clientWidth;=0A= var height =3D element.clientHeight;=0A= =0A= element._originalLeft =3D left - parseFloat(element.style.left || = 0);=0A= element._originalTop =3D top - parseFloat(element.style.top || = 0);=0A= element._originalWidth =3D element.style.width;=0A= element._originalHeight =3D element.style.height;=0A= =0A= element.style.position =3D 'absolute';=0A= element.style.top =3D top + 'px';;=0A= element.style.left =3D left + 'px';;=0A= element.style.width =3D width + 'px';;=0A= element.style.height =3D height + 'px';;=0A= },=0A= =0A= relativize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'relative') return;=0A= Position.prepare();=0A= =0A= element.style.position =3D 'relative';=0A= var top =3D parseFloat(element.style.top || 0) - = (element._originalTop || 0);=0A= var left =3D parseFloat(element.style.left || 0) - = (element._originalLeft || 0);=0A= =0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.height =3D element._originalHeight;=0A= element.style.width =3D element._originalWidth;=0A= }=0A= }=0A= =0A= // Safari returns margins on body which is incorrect if the child is = absolutely=0A= // positioned. For performance reasons, redefine = Position.cumulativeOffset for=0A= // KHTML/WebKit only.=0A= if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A= Position.cumulativeOffset =3D function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= if (element.offsetParent =3D=3D document.body)=0A= if (Element.getStyle(element, 'position') =3D=3D 'absolute') = break;=0A= =0A= element =3D element.offsetParent;=0A= } while (element);=0A= =0A= return [valueL, valueT];=0A= }=0A= } ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/scriptaculous.js // Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, = http://mir.aculo.us)=0A= // =0A= // Permission is hereby granted, free of charge, to any person obtaining=0A= // a copy of this software and associated documentation files (the=0A= // "Software"), to deal in the Software without restriction, including=0A= // without limitation the rights to use, copy, modify, merge, publish,=0A= // distribute, sublicense, and/or sell copies of the Software, and to=0A= // permit persons to whom the Software is furnished to do so, subject to=0A= // the following conditions:=0A= // =0A= // The above copyright notice and this permission notice shall be=0A= // included in all copies or substantial portions of the Software.=0A= //=0A= // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,=0A= // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF=0A= // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND=0A= // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE=0A= // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION=0A= // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION=0A= // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.=0A= =0A= var Scriptaculous =3D {=0A= Version: '1.5.1',=0A= require: function(libraryName) {=0A= // inserting via DOM fails in Safari 2.0, so brute force approach=0A= document.write('');=0A= },=0A= load: function() {=0A= if((typeof Prototype=3D=3D'undefined') ||=0A= parseFloat(Prototype.Version.split(".")[0] + "." +=0A= Prototype.Version.split(".")[1]) < 1.4)=0A= throw("script.aculo.us requires the Prototype JavaScript framework = >=3D 1.4.0");=0A= =0A= $A(document.getElementsByTagName("script")).findAll( function(s) {=0A= return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))=0A= }).each( function(s) {=0A= var path =3D s.src.replace(/scriptaculous\.js(\?.*)?$/,'');=0A= var includes =3D s.src.match(/\?.*load=3D([a-z,]*)/);=0A= (includes ? includes[1] : = 'builder,effects,dragdrop,controls,slider').split(',').each(=0A= function(include) { Scriptaculous.require(path+include+'.js') });=0A= });=0A= }=0A= }=0A= =0A= Scriptaculous.load(); ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/effects.js // Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, = http://mir.aculo.us)=0A= // Contributors:=0A= // Justin Palmer (http://encytemedia.com/)=0A= // Mark Pilgrim (http://diveintomark.org/)=0A= // Martin Bialasinki=0A= // =0A= // See scriptaculous.js for full license. =0A= =0A= /* ------------- element ext -------------- */ =0A= =0A= // converts rgb() and #xxx to #xxxxxx format, =0A= // returns self (or first argument) if not convertable =0A= String.prototype.parseColor =3D function() { =0A= var color =3D '#'; =0A= if(this.slice(0,4) =3D=3D 'rgb(') { =0A= var cols =3D this.slice(4,this.length-1).split(','); =0A= var i=3D0; do { color +=3D parseInt(cols[i]).toColorPart() } while = (++i<3); =0A= } else { =0A= if(this.slice(0,1) =3D=3D '#') { =0A= if(this.length=3D=3D4) for(var i=3D1;i<4;i++) color +=3D = (this.charAt(i) + this.charAt(i)).toLowerCase(); =0A= if(this.length=3D=3D7) color =3D this.toLowerCase(); =0A= } =0A= } =0A= return(color.length=3D=3D7 ? color : (arguments[0] || this)); =0A= }=0A= =0A= Element.collectTextNodes =3D function(element) { =0A= return $A($(element).childNodes).collect( function(node) {=0A= return (node.nodeType=3D=3D3 ? node.nodeValue : =0A= (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));=0A= }).flatten().join('');=0A= }=0A= =0A= Element.collectTextNodesIgnoreClass =3D function(element, className) { =0A= return $A($(element).childNodes).collect( function(node) {=0A= return (node.nodeType=3D=3D3 ? node.nodeValue : =0A= ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? =0A= Element.collectTextNodes(node) : ''));=0A= }).flatten().join('');=0A= }=0A= =0A= Element.setStyle =3D function(element, style) {=0A= element =3D $(element);=0A= for(k in style) element.style[k.camelize()] =3D style[k];=0A= }=0A= =0A= Element.setContentZoom =3D function(element, percent) { =0A= Element.setStyle(element, {fontSize: (percent/100) + 'em'}); =0A= if(navigator.appVersion.indexOf('AppleWebKit')>0) = window.scrollBy(0,0); =0A= }=0A= =0A= Element.getOpacity =3D function(element){ =0A= var opacity;=0A= if (opacity =3D Element.getStyle(element, 'opacity')) =0A= return parseFloat(opacity); =0A= if (opacity =3D (Element.getStyle(element, 'filter') || = '').match(/alpha\(opacity=3D(.*)\)/)) =0A= if(opacity[1]) return parseFloat(opacity[1]) / 100; =0A= return 1.0; =0A= }=0A= =0A= Element.setOpacity =3D function(element, value){ =0A= element=3D $(element); =0A= if (value =3D=3D 1){=0A= Element.setStyle(element, { opacity: =0A= (/Gecko/.test(navigator.userAgent) && = !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? =0A= 0.999999 : null });=0A= if(/MSIE/.test(navigator.userAgent)) =0A= Element.setStyle(element, {filter: = Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')}); =0A= } else { =0A= if(value < 0.00001) value =3D 0; =0A= Element.setStyle(element, {opacity: value});=0A= if(/MSIE/.test(navigator.userAgent)) =0A= Element.setStyle(element, =0A= { filter: = Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') +=0A= 'alpha(opacity=3D'+value*100+')' }); =0A= } =0A= } =0A= =0A= Element.getInlineOpacity =3D function(element){ =0A= return $(element).style.opacity || '';=0A= } =0A= =0A= Element.childrenWithClassName =3D function(element, className) { =0A= return $A($(element).getElementsByTagName('*')).select(=0A= function(c) { return Element.hasClassName(c, className) });=0A= }=0A= =0A= Array.prototype.call =3D function() {=0A= var args =3D arguments;=0A= this.each(function(f){ f.apply(this, args) });=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Effect =3D {=0A= tagifyText: function(element) {=0A= var tagifyStyle =3D 'position:relative';=0A= if(/MSIE/.test(navigator.userAgent)) tagifyStyle +=3D ';zoom:1';=0A= element =3D $(element);=0A= $A(element.childNodes).each( function(child) {=0A= if(child.nodeType=3D=3D3) {=0A= child.nodeValue.toArray().each( function(character) {=0A= element.insertBefore(=0A= Builder.node('span',{style: tagifyStyle},=0A= character =3D=3D ' ' ? String.fromCharCode(160) : = character), =0A= child);=0A= });=0A= Element.remove(child);=0A= }=0A= });=0A= },=0A= multiple: function(element, effect) {=0A= var elements;=0A= if(((typeof element =3D=3D 'object') || =0A= (typeof element =3D=3D 'function')) && =0A= (element.length))=0A= elements =3D element;=0A= else=0A= elements =3D $(element).childNodes;=0A= =0A= var options =3D Object.extend({=0A= speed: 0.1,=0A= delay: 0.0=0A= }, arguments[2] || {});=0A= var masterDelay =3D options.delay;=0A= =0A= $A(elements).each( function(element, index) {=0A= new effect(element, Object.extend(options, { delay: index * = options.speed + masterDelay }));=0A= });=0A= },=0A= PAIRS: {=0A= 'slide': ['SlideDown','SlideUp'],=0A= 'blind': ['BlindDown','BlindUp'],=0A= 'appear': ['Appear','Fade']=0A= },=0A= toggle: function(element, effect) {=0A= element =3D $(element);=0A= effect =3D (effect || 'appear').toLowerCase();=0A= var options =3D Object.extend({=0A= queue: { position:'end', scope:(element.id || 'global') }=0A= }, arguments[2] || {});=0A= Effect[Element.visible(element) ? =0A= Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, = options);=0A= }=0A= };=0A= =0A= var Effect2 =3D Effect; // deprecated=0A= =0A= /* ------------- transitions ------------- */=0A= =0A= Effect.Transitions =3D {}=0A= =0A= Effect.Transitions.linear =3D function(pos) {=0A= return pos;=0A= }=0A= Effect.Transitions.sinoidal =3D function(pos) {=0A= return (-Math.cos(pos*Math.PI)/2) + 0.5;=0A= }=0A= Effect.Transitions.reverse =3D function(pos) {=0A= return 1-pos;=0A= }=0A= Effect.Transitions.flicker =3D function(pos) {=0A= return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;=0A= }=0A= Effect.Transitions.wobble =3D function(pos) {=0A= return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;=0A= }=0A= Effect.Transitions.pulse =3D function(pos) {=0A= return (Math.floor(pos*10) % 2 =3D=3D 0 ? =0A= (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10)));=0A= }=0A= Effect.Transitions.none =3D function(pos) {=0A= return 0;=0A= }=0A= Effect.Transitions.full =3D function(pos) {=0A= return 1;=0A= }=0A= =0A= /* ------------- core effects ------------- */=0A= =0A= Effect.ScopedQueue =3D Class.create();=0A= Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), {=0A= initialize: function() {=0A= this.effects =3D [];=0A= this.interval =3D null;=0A= },=0A= _each: function(iterator) {=0A= this.effects._each(iterator);=0A= },=0A= add: function(effect) {=0A= var timestamp =3D new Date().getTime();=0A= =0A= var position =3D (typeof effect.options.queue =3D=3D 'string') ? =0A= effect.options.queue : effect.options.queue.position;=0A= =0A= switch(position) {=0A= case 'front':=0A= // move unstarted effects after this effect =0A= this.effects.findAll(function(e){ return e.state=3D=3D'idle' = }).each( function(e) {=0A= e.startOn +=3D effect.finishOn;=0A= e.finishOn +=3D effect.finishOn;=0A= });=0A= break;=0A= case 'end':=0A= // start effect after last queued effect has finished=0A= timestamp =3D this.effects.pluck('finishOn').max() || timestamp;=0A= break;=0A= }=0A= =0A= effect.startOn +=3D timestamp;=0A= effect.finishOn +=3D timestamp;=0A= this.effects.push(effect);=0A= if(!this.interval) =0A= this.interval =3D setInterval(this.loop.bind(this), 40);=0A= },=0A= remove: function(effect) {=0A= this.effects =3D this.effects.reject(function(e) { return = e=3D=3Deffect });=0A= if(this.effects.length =3D=3D 0) {=0A= clearInterval(this.interval);=0A= this.interval =3D null;=0A= }=0A= },=0A= loop: function() {=0A= var timePos =3D new Date().getTime();=0A= this.effects.invoke('loop', timePos);=0A= }=0A= });=0A= =0A= Effect.Queues =3D {=0A= instances: $H(),=0A= get: function(queueName) {=0A= if(typeof queueName !=3D 'string') return queueName;=0A= =0A= if(!this.instances[queueName])=0A= this.instances[queueName] =3D new Effect.ScopedQueue();=0A= =0A= return this.instances[queueName];=0A= }=0A= }=0A= Effect.Queue =3D Effect.Queues.get('global');=0A= =0A= Effect.DefaultOptions =3D {=0A= transition: Effect.Transitions.sinoidal,=0A= duration: 1.0, // seconds=0A= fps: 25.0, // max. 25fps due to Effect.Queue implementation=0A= sync: false, // true for combining=0A= from: 0.0,=0A= to: 1.0,=0A= delay: 0.0,=0A= queue: 'parallel'=0A= }=0A= =0A= Effect.Base =3D function() {};=0A= Effect.Base.prototype =3D {=0A= position: null,=0A= start: function(options) {=0A= this.options =3D = Object.extend(Object.extend({},Effect.DefaultOptions), options || {});=0A= this.currentFrame =3D 0;=0A= this.state =3D 'idle';=0A= this.startOn =3D this.options.delay*1000;=0A= this.finishOn =3D this.startOn + (this.options.duration*1000);=0A= this.event('beforeStart');=0A= if(!this.options.sync)=0A= Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A= 'global' : this.options.queue.scope).add(this);=0A= },=0A= loop: function(timePos) {=0A= if(timePos >=3D this.startOn) {=0A= if(timePos >=3D this.finishOn) {=0A= this.render(1.0);=0A= this.cancel();=0A= this.event('beforeFinish');=0A= if(this.finish) this.finish(); =0A= this.event('afterFinish');=0A= return; =0A= }=0A= var pos =3D (timePos - this.startOn) / (this.finishOn - = this.startOn);=0A= var frame =3D Math.round(pos * this.options.fps * = this.options.duration);=0A= if(frame > this.currentFrame) {=0A= this.render(pos);=0A= this.currentFrame =3D frame;=0A= }=0A= }=0A= },=0A= render: function(pos) {=0A= if(this.state =3D=3D 'idle') {=0A= this.state =3D 'running';=0A= this.event('beforeSetup');=0A= if(this.setup) this.setup();=0A= this.event('afterSetup');=0A= }=0A= if(this.state =3D=3D 'running') {=0A= if(this.options.transition) pos =3D this.options.transition(pos);=0A= pos *=3D (this.options.to-this.options.from);=0A= pos +=3D this.options.from;=0A= this.position =3D pos;=0A= this.event('beforeUpdate');=0A= if(this.update) this.update(pos);=0A= this.event('afterUpdate');=0A= }=0A= },=0A= cancel: function() {=0A= if(!this.options.sync)=0A= Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A= 'global' : this.options.queue.scope).remove(this);=0A= this.state =3D 'finished';=0A= },=0A= event: function(eventName) {=0A= if(this.options[eventName + 'Internal']) this.options[eventName + = 'Internal'](this);=0A= if(this.options[eventName]) this.options[eventName](this);=0A= },=0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= Effect.Parallel =3D Class.create();=0A= Object.extend(Object.extend(Effect.Parallel.prototype, = Effect.Base.prototype), {=0A= initialize: function(effects) {=0A= this.effects =3D effects || [];=0A= this.start(arguments[1]);=0A= },=0A= update: function(position) {=0A= this.effects.invoke('render', position);=0A= },=0A= finish: function(position) {=0A= this.effects.each( function(effect) {=0A= effect.render(1.0);=0A= effect.cancel();=0A= effect.event('beforeFinish');=0A= if(effect.finish) effect.finish(position);=0A= effect.event('afterFinish');=0A= });=0A= }=0A= });=0A= =0A= Effect.Opacity =3D Class.create();=0A= Object.extend(Object.extend(Effect.Opacity.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= // make this work on IE on elements without 'layout'=0A= if(/MSIE/.test(navigator.userAgent) && (!this.element.hasLayout))=0A= Element.setStyle(this.element, {zoom: 1});=0A= var options =3D Object.extend({=0A= from: Element.getOpacity(this.element) || 0.0,=0A= to: 1.0=0A= }, arguments[1] || {});=0A= this.start(options);=0A= },=0A= update: function(position) {=0A= Element.setOpacity(this.element, position);=0A= }=0A= });=0A= =0A= Effect.Move =3D Class.create();=0A= Object.extend(Object.extend(Effect.Move.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= var options =3D Object.extend({=0A= x: 0,=0A= y: 0,=0A= mode: 'relative'=0A= }, arguments[1] || {});=0A= this.start(options);=0A= },=0A= setup: function() {=0A= // Bug in Opera: Opera returns the "real" position of a static = element or=0A= // relative element that does not have top/left explicitly set.=0A= // =3D=3D> Always set top and left for position relative elements in = your stylesheets =0A= // (to 0 if you do not need them) =0A= Element.makePositioned(this.element);=0A= this.originalLeft =3D = parseFloat(Element.getStyle(this.element,'left') || '0');=0A= this.originalTop =3D = parseFloat(Element.getStyle(this.element,'top') || '0');=0A= if(this.options.mode =3D=3D 'absolute') {=0A= // absolute movement, so we need to calc deltaX and deltaY=0A= this.options.x =3D this.options.x - this.originalLeft;=0A= this.options.y =3D this.options.y - this.originalTop;=0A= }=0A= },=0A= update: function(position) {=0A= Element.setStyle(this.element, {=0A= left: this.options.x * position + this.originalLeft + 'px',=0A= top: this.options.y * position + this.originalTop + 'px'=0A= });=0A= }=0A= });=0A= =0A= // for backwards compatibility=0A= Effect.MoveBy =3D function(element, toTop, toLeft) {=0A= return new Effect.Move(element, =0A= Object.extend({ x: toLeft, y: toTop }, arguments[3] || {}));=0A= };=0A= =0A= Effect.Scale =3D Class.create();=0A= Object.extend(Object.extend(Effect.Scale.prototype, = Effect.Base.prototype), {=0A= initialize: function(element, percent) {=0A= this.element =3D $(element)=0A= var options =3D Object.extend({=0A= scaleX: true,=0A= scaleY: true,=0A= scaleContent: true,=0A= scaleFromCenter: false,=0A= scaleMode: 'box', // 'box' or 'contents' or {} with = provided values=0A= scaleFrom: 100.0,=0A= scaleTo: percent=0A= }, arguments[2] || {});=0A= this.start(options);=0A= },=0A= setup: function() {=0A= this.restoreAfterFinish =3D this.options.restoreAfterFinish || false;=0A= this.elementPositioning =3D = Element.getStyle(this.element,'position');=0A= =0A= this.originalStyle =3D {};=0A= ['top','left','width','height','fontSize'].each( function(k) {=0A= this.originalStyle[k] =3D this.element.style[k];=0A= }.bind(this));=0A= =0A= this.originalTop =3D this.element.offsetTop;=0A= this.originalLeft =3D this.element.offsetLeft;=0A= =0A= var fontSize =3D Element.getStyle(this.element,'font-size') || = '100%';=0A= ['em','px','%'].each( function(fontSizeType) {=0A= if(fontSize.indexOf(fontSizeType)>0) {=0A= this.fontSize =3D parseFloat(fontSize);=0A= this.fontSizeType =3D fontSizeType;=0A= }=0A= }.bind(this));=0A= =0A= this.factor =3D (this.options.scaleTo - this.options.scaleFrom)/100;=0A= =0A= this.dims =3D null;=0A= if(this.options.scaleMode=3D=3D'box')=0A= this.dims =3D [this.element.offsetHeight, = this.element.offsetWidth];=0A= if(/^content/.test(this.options.scaleMode))=0A= this.dims =3D [this.element.scrollHeight, = this.element.scrollWidth];=0A= if(!this.dims)=0A= this.dims =3D [this.options.scaleMode.originalHeight,=0A= this.options.scaleMode.originalWidth];=0A= },=0A= update: function(position) {=0A= var currentScale =3D (this.options.scaleFrom/100.0) + (this.factor * = position);=0A= if(this.options.scaleContent && this.fontSize)=0A= Element.setStyle(this.element, {fontSize: this.fontSize * = currentScale + this.fontSizeType });=0A= this.setDimensions(this.dims[0] * currentScale, this.dims[1] * = currentScale);=0A= },=0A= finish: function(position) {=0A= if (this.restoreAfterFinish) Element.setStyle(this.element, = this.originalStyle);=0A= },=0A= setDimensions: function(height, width) {=0A= var d =3D {};=0A= if(this.options.scaleX) d.width =3D width + 'px';=0A= if(this.options.scaleY) d.height =3D height + 'px';=0A= if(this.options.scaleFromCenter) {=0A= var topd =3D (height - this.dims[0])/2;=0A= var leftd =3D (width - this.dims[1])/2;=0A= if(this.elementPositioning =3D=3D 'absolute') {=0A= if(this.options.scaleY) d.top =3D this.originalTop-topd + 'px';=0A= if(this.options.scaleX) d.left =3D this.originalLeft-leftd + = 'px';=0A= } else {=0A= if(this.options.scaleY) d.top =3D -topd + 'px';=0A= if(this.options.scaleX) d.left =3D -leftd + 'px';=0A= }=0A= }=0A= Element.setStyle(this.element, d);=0A= }=0A= });=0A= =0A= Effect.Highlight =3D Class.create();=0A= Object.extend(Object.extend(Effect.Highlight.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= var options =3D Object.extend({ startcolor: '#ffff99' }, = arguments[1] || {});=0A= this.start(options);=0A= },=0A= setup: function() {=0A= // Prevent executing on elements not in the layout flow=0A= if(Element.getStyle(this.element, 'display')=3D=3D'none') { = this.cancel(); return; }=0A= // Disable background image during the effect=0A= this.oldStyle =3D {=0A= backgroundImage: Element.getStyle(this.element, = 'background-image') };=0A= Element.setStyle(this.element, {backgroundImage: 'none'});=0A= if(!this.options.endcolor)=0A= this.options.endcolor =3D Element.getStyle(this.element, = 'background-color').parseColor('#ffffff');=0A= if(!this.options.restorecolor)=0A= this.options.restorecolor =3D Element.getStyle(this.element, = 'background-color');=0A= // init color calculations=0A= this._base =3D $R(0,2).map(function(i){ return = parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));=0A= this._delta =3D $R(0,2).map(function(i){ return = parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] = }.bind(this));=0A= },=0A= update: function(position) {=0A= Element.setStyle(this.element,{backgroundColor: = $R(0,2).inject('#',function(m,v,i){=0A= return = m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); = }.bind(this)) });=0A= },=0A= finish: function() {=0A= Element.setStyle(this.element, Object.extend(this.oldStyle, {=0A= backgroundColor: this.options.restorecolor=0A= }));=0A= }=0A= });=0A= =0A= Effect.ScrollTo =3D Class.create();=0A= Object.extend(Object.extend(Effect.ScrollTo.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= this.start(arguments[1] || {});=0A= },=0A= setup: function() {=0A= Position.prepare();=0A= var offsets =3D Position.cumulativeOffset(this.element);=0A= if(this.options.offset) offsets[1] +=3D this.options.offset;=0A= var max =3D window.innerHeight ? =0A= window.height - window.innerHeight :=0A= document.body.scrollHeight - =0A= (document.documentElement.clientHeight ? =0A= document.documentElement.clientHeight : = document.body.clientHeight);=0A= this.scrollStart =3D Position.deltaY;=0A= this.delta =3D (offsets[1] > max ? max : offsets[1]) - = this.scrollStart;=0A= },=0A= update: function(position) {=0A= Position.prepare();=0A= window.scrollTo(Position.deltaX, =0A= this.scrollStart + (position*this.delta));=0A= }=0A= });=0A= =0A= /* ------------- combination effects ------------- */=0A= =0A= Effect.Fade =3D function(element) {=0A= var oldOpacity =3D Element.getInlineOpacity(element);=0A= var options =3D Object.extend({=0A= from: Element.getOpacity(element) || 1.0,=0A= to: 0.0,=0A= afterFinishInternal: function(effect) { with(Element) { =0A= if(effect.options.to!=3D0) return;=0A= hide(effect.element);=0A= setStyle(effect.element, {opacity: oldOpacity}); }}=0A= }, arguments[1] || {});=0A= return new Effect.Opacity(element,options);=0A= }=0A= =0A= Effect.Appear =3D function(element) {=0A= var options =3D Object.extend({=0A= from: (Element.getStyle(element, 'display') =3D=3D 'none' ? 0.0 : = Element.getOpacity(element) || 0.0),=0A= to: 1.0,=0A= beforeSetup: function(effect) { with(Element) {=0A= setOpacity(effect.element, effect.options.from);=0A= show(effect.element); }}=0A= }, arguments[1] || {});=0A= return new Effect.Opacity(element,options);=0A= }=0A= =0A= Effect.Puff =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D { opacity: Element.getInlineOpacity(element), = position: Element.getStyle(element, 'position') };=0A= return new Effect.Parallel(=0A= [ new Effect.Scale(element, 200, =0A= { sync: true, scaleFromCenter: true, scaleContent: true, = restoreAfterFinish: true }), =0A= new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], =0A= Object.extend({ duration: 1.0, =0A= beforeSetupInternal: function(effect) { with(Element) {=0A= setStyle(effect.effects[0].element, {position: 'absolute'}); }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= hide(effect.effects[0].element);=0A= setStyle(effect.effects[0].element, oldStyle); }}=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.BlindUp =3D function(element) {=0A= element =3D $(element);=0A= Element.makeClipping(element);=0A= return new Effect.Scale(element, 0, =0A= Object.extend({ scaleContent: false, =0A= scaleX: false, =0A= restoreAfterFinish: true,=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [hide, undoClipping].call(effect.element); }} =0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.BlindDown =3D function(element) {=0A= element =3D $(element);=0A= var oldHeight =3D Element.getStyle(element, 'height');=0A= var elementDimensions =3D Element.getDimensions(element);=0A= return new Effect.Scale(element, 100, =0A= Object.extend({ scaleContent: false, =0A= scaleX: false,=0A= scaleFrom: 0,=0A= scaleMode: {originalHeight: elementDimensions.height, = originalWidth: elementDimensions.width},=0A= restoreAfterFinish: true,=0A= afterSetup: function(effect) { with(Element) {=0A= makeClipping(effect.element);=0A= setStyle(effect.element, {height: '0px'});=0A= show(effect.element); =0A= }}, =0A= afterFinishInternal: function(effect) { with(Element) {=0A= undoClipping(effect.element);=0A= setStyle(effect.element, {height: oldHeight});=0A= }}=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.SwitchOff =3D function(element) {=0A= element =3D $(element);=0A= var oldOpacity =3D Element.getInlineOpacity(element);=0A= return new Effect.Appear(element, { =0A= duration: 0.4,=0A= from: 0,=0A= transition: Effect.Transitions.flicker,=0A= afterFinishInternal: function(effect) {=0A= new Effect.Scale(effect.element, 1, { =0A= duration: 0.3, scaleFromCenter: true,=0A= scaleX: false, scaleContent: false, restoreAfterFinish: true,=0A= beforeSetup: function(effect) { with(Element) {=0A= [makePositioned,makeClipping].call(effect.element);=0A= }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [hide,undoClipping,undoPositioned].call(effect.element);=0A= setStyle(effect.element, {opacity: oldOpacity});=0A= }}=0A= })=0A= }=0A= });=0A= }=0A= =0A= Effect.DropOut =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D {=0A= top: Element.getStyle(element, 'top'),=0A= left: Element.getStyle(element, 'left'),=0A= opacity: Element.getInlineOpacity(element) };=0A= return new Effect.Parallel(=0A= [ new Effect.Move(element, {x: 0, y: 100, sync: true }), =0A= new Effect.Opacity(element, { sync: true, to: 0.0 }) ],=0A= Object.extend(=0A= { duration: 0.5,=0A= beforeSetup: function(effect) { with(Element) {=0A= makePositioned(effect.effects[0].element); }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [hide, undoPositioned].call(effect.effects[0].element);=0A= setStyle(effect.effects[0].element, oldStyle); }} =0A= }, arguments[1] || {}));=0A= }=0A= =0A= Effect.Shake =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D {=0A= top: Element.getStyle(element, 'top'),=0A= left: Element.getStyle(element, 'left') };=0A= return new Effect.Move(element, =0A= { x: 20, y: 0, duration: 0.05, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: -40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: 40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: -40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: 40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: -20, y: 0, duration: 0.05, afterFinishInternal: = function(effect) { with(Element) {=0A= undoPositioned(effect.element);=0A= setStyle(effect.element, oldStyle);=0A= }}}) }}) }}) }}) }}) }});=0A= }=0A= =0A= Effect.SlideDown =3D function(element) {=0A= element =3D $(element);=0A= Element.cleanWhitespace(element);=0A= // SlideDown need to have the content of the element wrapped in a = container element with fixed height!=0A= var oldInnerBottom =3D Element.getStyle(element.firstChild, 'bottom');=0A= var elementDimensions =3D Element.getDimensions(element);=0A= return new Effect.Scale(element, 100, Object.extend({ =0A= scaleContent: false, =0A= scaleX: false, =0A= scaleFrom: 0,=0A= scaleMode: {originalHeight: elementDimensions.height, originalWidth: = elementDimensions.width},=0A= restoreAfterFinish: true,=0A= afterSetup: function(effect) { with(Element) {=0A= makePositioned(effect.element);=0A= makePositioned(effect.element.firstChild);=0A= if(window.opera) setStyle(effect.element, {top: ''});=0A= makeClipping(effect.element);=0A= setStyle(effect.element, {height: '0px'});=0A= show(element); }},=0A= afterUpdateInternal: function(effect) { with(Element) {=0A= setStyle(effect.element.firstChild, {bottom:=0A= (effect.dims[0] - effect.element.clientHeight) + 'px' }); }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= undoClipping(effect.element); =0A= undoPositioned(effect.element.firstChild);=0A= undoPositioned(effect.element);=0A= setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }}=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.SlideUp =3D function(element) {=0A= element =3D $(element);=0A= Element.cleanWhitespace(element);=0A= var oldInnerBottom =3D Element.getStyle(element.firstChild, 'bottom');=0A= return new Effect.Scale(element, 0, =0A= Object.extend({ scaleContent: false, =0A= scaleX: false, =0A= scaleMode: 'box',=0A= scaleFrom: 100,=0A= restoreAfterFinish: true,=0A= beforeStartInternal: function(effect) { with(Element) {=0A= makePositioned(effect.element);=0A= makePositioned(effect.element.firstChild);=0A= if(window.opera) setStyle(effect.element, {top: ''});=0A= makeClipping(effect.element);=0A= show(element); }}, =0A= afterUpdateInternal: function(effect) { with(Element) {=0A= setStyle(effect.element.firstChild, {bottom:=0A= (effect.dims[0] - effect.element.clientHeight) + 'px' }); }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [hide, undoClipping].call(effect.element); =0A= undoPositioned(effect.element.firstChild);=0A= undoPositioned(effect.element);=0A= setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }}=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= // Bug in opera makes the TD containing this element expand for a = instance after finish =0A= Effect.Squish =3D function(element) {=0A= return new Effect.Scale(element, window.opera ? 1 : 0, =0A= { restoreAfterFinish: true,=0A= beforeSetup: function(effect) { with(Element) {=0A= makeClipping(effect.element); }}, =0A= afterFinishInternal: function(effect) { with(Element) {=0A= hide(effect.element); =0A= undoClipping(effect.element); }}=0A= });=0A= }=0A= =0A= Effect.Grow =3D function(element) {=0A= element =3D $(element);=0A= var options =3D Object.extend({=0A= direction: 'center',=0A= moveTransistion: Effect.Transitions.sinoidal,=0A= scaleTransition: Effect.Transitions.sinoidal,=0A= opacityTransition: Effect.Transitions.full=0A= }, arguments[1] || {});=0A= var oldStyle =3D {=0A= top: element.style.top,=0A= left: element.style.left,=0A= height: element.style.height,=0A= width: element.style.width,=0A= opacity: Element.getInlineOpacity(element) };=0A= =0A= var dims =3D Element.getDimensions(element); =0A= var initialMoveX, initialMoveY;=0A= var moveX, moveY;=0A= =0A= switch (options.direction) {=0A= case 'top-left':=0A= initialMoveX =3D initialMoveY =3D moveX =3D moveY =3D 0; =0A= break;=0A= case 'top-right':=0A= initialMoveX =3D dims.width;=0A= initialMoveY =3D moveY =3D 0;=0A= moveX =3D -dims.width;=0A= break;=0A= case 'bottom-left':=0A= initialMoveX =3D moveX =3D 0;=0A= initialMoveY =3D dims.height;=0A= moveY =3D -dims.height;=0A= break;=0A= case 'bottom-right':=0A= initialMoveX =3D dims.width;=0A= initialMoveY =3D dims.height;=0A= moveX =3D -dims.width;=0A= moveY =3D -dims.height;=0A= break;=0A= case 'center':=0A= initialMoveX =3D dims.width / 2;=0A= initialMoveY =3D dims.height / 2;=0A= moveX =3D -dims.width / 2;=0A= moveY =3D -dims.height / 2;=0A= break;=0A= }=0A= =0A= return new Effect.Move(element, {=0A= x: initialMoveX,=0A= y: initialMoveY,=0A= duration: 0.01, =0A= beforeSetup: function(effect) { with(Element) {=0A= hide(effect.element);=0A= makeClipping(effect.element);=0A= makePositioned(effect.element);=0A= }},=0A= afterFinishInternal: function(effect) {=0A= new Effect.Parallel(=0A= [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, = from: 0.0, transition: options.opacityTransition }),=0A= new Effect.Move(effect.element, { x: moveX, y: moveY, sync: = true, transition: options.moveTransition }),=0A= new Effect.Scale(effect.element, 100, {=0A= scaleMode: { originalHeight: dims.height, originalWidth: = dims.width }, =0A= sync: true, scaleFrom: window.opera ? 1 : 0, transition: = options.scaleTransition, restoreAfterFinish: true})=0A= ], Object.extend({=0A= beforeSetup: function(effect) { with(Element) {=0A= setStyle(effect.effects[0].element, {height: '0px'});=0A= show(effect.effects[0].element); }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [undoClipping, = undoPositioned].call(effect.effects[0].element); =0A= setStyle(effect.effects[0].element, oldStyle); }}=0A= }, options)=0A= )=0A= }=0A= });=0A= }=0A= =0A= Effect.Shrink =3D function(element) {=0A= element =3D $(element);=0A= var options =3D Object.extend({=0A= direction: 'center',=0A= moveTransistion: Effect.Transitions.sinoidal,=0A= scaleTransition: Effect.Transitions.sinoidal,=0A= opacityTransition: Effect.Transitions.none=0A= }, arguments[1] || {});=0A= var oldStyle =3D {=0A= top: element.style.top,=0A= left: element.style.left,=0A= height: element.style.height,=0A= width: element.style.width,=0A= opacity: Element.getInlineOpacity(element) };=0A= =0A= var dims =3D Element.getDimensions(element);=0A= var moveX, moveY;=0A= =0A= switch (options.direction) {=0A= case 'top-left':=0A= moveX =3D moveY =3D 0;=0A= break;=0A= case 'top-right':=0A= moveX =3D dims.width;=0A= moveY =3D 0;=0A= break;=0A= case 'bottom-left':=0A= moveX =3D 0;=0A= moveY =3D dims.height;=0A= break;=0A= case 'bottom-right':=0A= moveX =3D dims.width;=0A= moveY =3D dims.height;=0A= break;=0A= case 'center': =0A= moveX =3D dims.width / 2;=0A= moveY =3D dims.height / 2;=0A= break;=0A= }=0A= =0A= return new Effect.Parallel(=0A= [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, = transition: options.opacityTransition }),=0A= new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, = transition: options.scaleTransition, restoreAfterFinish: true}),=0A= new Effect.Move(element, { x: moveX, y: moveY, sync: true, = transition: options.moveTransition })=0A= ], Object.extend({ =0A= beforeStartInternal: function(effect) { with(Element) {=0A= [makePositioned, = makeClipping].call(effect.effects[0].element) }},=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [hide, undoClipping, = undoPositioned].call(effect.effects[0].element);=0A= setStyle(effect.effects[0].element, oldStyle); }}=0A= }, options)=0A= );=0A= }=0A= =0A= Effect.Pulsate =3D function(element) {=0A= element =3D $(element);=0A= var options =3D arguments[1] || {};=0A= var oldOpacity =3D Element.getInlineOpacity(element);=0A= var transition =3D options.transition || Effect.Transitions.sinoidal;=0A= var reverser =3D function(pos){ return = transition(1-Effect.Transitions.pulse(pos)) };=0A= reverser.bind(transition);=0A= return new Effect.Opacity(element, =0A= Object.extend(Object.extend({ duration: 3.0, from: 0,=0A= afterFinishInternal: function(effect) { = Element.setStyle(effect.element, {opacity: oldOpacity}); }=0A= }, options), {transition: reverser}));=0A= }=0A= =0A= Effect.Fold =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D {=0A= top: element.style.top,=0A= left: element.style.left,=0A= width: element.style.width,=0A= height: element.style.height };=0A= Element.makeClipping(element);=0A= return new Effect.Scale(element, 5, Object.extend({ =0A= scaleContent: false,=0A= scaleX: false,=0A= afterFinishInternal: function(effect) {=0A= new Effect.Scale(element, 1, { =0A= scaleContent: false, =0A= scaleY: false,=0A= afterFinishInternal: function(effect) { with(Element) {=0A= [hide, undoClipping].call(effect.element); =0A= setStyle(effect.element, oldStyle);=0A= }} });=0A= }}, arguments[1] || {}));=0A= }=0A= ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/lightbox.js // = -------------------------------------------------------------------------= ----------=0A= //=0A= // Lightbox v2.03.3=0A= // by Lokesh Dhakar - http://www.huddletogether.com=0A= // 5/21/06=0A= //=0A= // For more information on this script, visit:=0A= // http://huddletogether.com/projects/lightbox2/=0A= //=0A= // Licensed under the Creative Commons Attribution 2.5 License - = http://creativecommons.org/licenses/by/2.5/=0A= // =0A= // Credit also due to those who have helped, inspired, and made their = code available to the public.=0A= // Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), = Thomas Fuchs(mir.aculo.us), and others.=0A= //=0A= //=0A= // = -------------------------------------------------------------------------= ----------=0A= /*=0A= =0A= Table of Contents=0A= -----------------=0A= Configuration=0A= Global Variables=0A= =0A= Extending Built-in Objects =0A= - Object.extend(Element)=0A= - Array.prototype.removeDuplicates()=0A= - Array.prototype.empty()=0A= =0A= Lightbox Class Declaration=0A= - initialize()=0A= - updateImageList()=0A= - start()=0A= - changeImage()=0A= - resizeImageContainer()=0A= - showImage()=0A= - updateDetails()=0A= - updateNav()=0A= - enableKeyboardNav()=0A= - disableKeyboardNav()=0A= - keyboardAction()=0A= - preloadNeighborImages()=0A= - end()=0A= =0A= Miscellaneous Functions=0A= - getPageScroll()=0A= - getPageSize()=0A= - getKey()=0A= - listenKey()=0A= - showSelectBoxes()=0A= - hideSelectBoxes()=0A= - showFlash()=0A= - hideFlash()=0A= - pause()=0A= - initLightbox()=0A= =0A= Function Calls=0A= - addLoadEvent(initLightbox)=0A= =0A= */=0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Configuration=0A= //=0A= var fileLoadingImage =3D "/_media/lightbox/loading.gif"; =0A= var fileBottomNavCloseImage =3D "/_media/lightbox/closelabel.gif";=0A= =0A= var overlayOpacity =3D 0.8; // controls transparency of shadow overlay=0A= =0A= var animate =3D true; // toggles resizing animations=0A= var resizeSpeed =3D 7; // controls the speed of the image resizing = animations (1=3Dslowest and 10=3Dfastest)=0A= =0A= var borderSize =3D 10; //if you adjust the padding in the CSS, you will = need to update this variable=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Global Variables=0A= //=0A= var imageArray =3D new Array;=0A= var activeImage;=0A= =0A= if(animate =3D=3D true){=0A= overlayDuration =3D 0.2; // shadow fade in/out duration=0A= if(resizeSpeed > 10){ resizeSpeed =3D 10;}=0A= if(resizeSpeed < 1){ resizeSpeed =3D 1;}=0A= resizeDuration =3D (11 - resizeSpeed) * 0.15;=0A= } else { =0A= overlayDuration =3D 0;=0A= resizeDuration =3D 0;=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Additional methods for Element added by SU, Couloir=0A= // - further additions by Lokesh Dhakar (huddletogether.com)=0A= //=0A= Object.extend(Element, {=0A= getWidth: function(element) {=0A= element =3D $(element);=0A= return element.offsetWidth; =0A= },=0A= setWidth: function(element,w) {=0A= element =3D $(element);=0A= element.style.width =3D w +"px";=0A= },=0A= setHeight: function(element,h) {=0A= element =3D $(element);=0A= element.style.height =3D h +"px";=0A= },=0A= setTop: function(element,t) {=0A= element =3D $(element);=0A= element.style.top =3D t +"px";=0A= },=0A= setLeft: function(element,l) {=0A= element =3D $(element);=0A= element.style.left =3D l +"px";=0A= },=0A= setSrc: function(element,src) {=0A= element =3D $(element);=0A= element.src =3D src; =0A= },=0A= setHref: function(element,href) {=0A= element =3D $(element);=0A= element.href =3D href; =0A= },=0A= setInnerHTML: function(element,content) {=0A= element =3D $(element);=0A= element.innerHTML =3D content;=0A= }=0A= });=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Extending built-in Array object=0A= // - array.removeDuplicates()=0A= // - array.empty()=0A= //=0A= Array.prototype.removeDuplicates =3D function () {=0A= for(i =3D 0; i < this.length; i++){=0A= for(j =3D this.length-1; j>i; j--){ =0A= if(this[i][0] =3D=3D this[j][0]){=0A= this.splice(j,1);=0A= }=0A= }=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= Array.prototype.empty =3D function () {=0A= for(i =3D 0; i <=3D this.length; i++){=0A= this.shift();=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Lightbox Class Declaration=0A= // - initialize()=0A= // - start()=0A= // - changeImage()=0A= // - resizeImageContainer()=0A= // - showImage()=0A= // - updateDetails()=0A= // - updateNav()=0A= // - enableKeyboardNav()=0A= // - disableKeyboardNav()=0A= // - keyboardNavAction()=0A= // - preloadNeighborImages()=0A= // - end()=0A= //=0A= // Structuring of code inspired by Scott Upton (http://www.uptonic.com/)=0A= //=0A= var Lightbox =3D Class.create();=0A= =0A= Lightbox.prototype =3D {=0A= =0A= // initialize()=0A= // Constructor runs on completion of the DOM loading. Calls = updateImageList and then=0A= // the function inserts html at the bottom of the page which is used to = display the shadow =0A= // overlay and the image container.=0A= //=0A= initialize: function() { =0A= =0A= this.updateImageList();=0A= =0A= // Code inserts html at the bottom of the page that looks similar to = this:=0A= //=0A= //
=0A= //
=0A= //
=0A= //
=0A= // =0A= //
=0A= // =0A= // =0A= //
=0A= //
=0A= // =0A= // =0A= // =0A= //
=0A= //
=0A= //
=0A= //
=0A= //
=0A= //
=0A= // =0A= // =0A= //
=0A= //
=0A= // =0A= // =0A= // =0A= //
=0A= //
=0A= //
=0A= //
=0A= =0A= =0A= var objBody =3D document.getElementsByTagName("body").item(0);=0A= =0A= var objOverlay =3D document.createElement("div");=0A= objOverlay.setAttribute('id','overlay');=0A= objOverlay.style.display =3D 'none';=0A= objOverlay.onclick =3D function() { myLightbox.end(); }=0A= objBody.appendChild(objOverlay);=0A= =0A= var objLightbox =3D document.createElement("div");=0A= objLightbox.setAttribute('id','lightbox');=0A= objLightbox.style.display =3D 'none';=0A= objLightbox.onclick =3D function(e) { // close Lightbox is user clicks = shadow overlay=0A= if (!e) var e =3D window.event;=0A= var clickObj =3D Event.element(e).id;=0A= if ( clickObj =3D=3D 'lightbox') {=0A= myLightbox.end();=0A= }=0A= };=0A= objBody.appendChild(objLightbox);=0A= =0A= var objOuterImageContainer =3D document.createElement("div");=0A= objOuterImageContainer.setAttribute('id','outerImageContainer');=0A= objLightbox.appendChild(objOuterImageContainer);=0A= =0A= // When Lightbox starts it will resize itself from 250 by 250 to the = current image dimension.=0A= // If animations are turned off, it will be hidden as to prevent a = flicker of a=0A= // white 250 by 250 box.=0A= if(animate){=0A= Element.setWidth('outerImageContainer', 250);=0A= Element.setHeight('outerImageContainer', 250); =0A= } else {=0A= Element.setWidth('outerImageContainer', 1);=0A= Element.setHeight('outerImageContainer', 1); =0A= }=0A= =0A= var objImageContainer =3D document.createElement("div");=0A= objImageContainer.setAttribute('id','imageContainer');=0A= objOuterImageContainer.appendChild(objImageContainer);=0A= =0A= var objLightboxImage =3D document.createElement("img");=0A= objLightboxImage.setAttribute('id','lightboxImage');=0A= objImageContainer.appendChild(objLightboxImage);=0A= =0A= var objHoverNav =3D document.createElement("div");=0A= objHoverNav.setAttribute('id','hoverNav');=0A= objImageContainer.appendChild(objHoverNav);=0A= =0A= var objPrevLink =3D document.createElement("a");=0A= objPrevLink.setAttribute('id','prevLink');=0A= objPrevLink.setAttribute('href','#');=0A= objHoverNav.appendChild(objPrevLink);=0A= =0A= var objNextLink =3D document.createElement("a");=0A= objNextLink.setAttribute('id','nextLink');=0A= objNextLink.setAttribute('href','#');=0A= objHoverNav.appendChild(objNextLink);=0A= =0A= var objLoading =3D document.createElement("div");=0A= objLoading.setAttribute('id','loading');=0A= objImageContainer.appendChild(objLoading);=0A= =0A= var objLoadingLink =3D document.createElement("a");=0A= objLoadingLink.setAttribute('id','loadingLink');=0A= objLoadingLink.setAttribute('href','#');=0A= objLoadingLink.onclick =3D function() { myLightbox.end(); return = false; }=0A= objLoading.appendChild(objLoadingLink);=0A= =0A= var objLoadingImage =3D document.createElement("img");=0A= objLoadingImage.setAttribute('src', fileLoadingImage);=0A= objLoadingLink.appendChild(objLoadingImage);=0A= =0A= var objImageDataContainer =3D document.createElement("div");=0A= objImageDataContainer.setAttribute('id','imageDataContainer');=0A= objLightbox.appendChild(objImageDataContainer);=0A= =0A= var objImageData =3D document.createElement("div");=0A= objImageData.setAttribute('id','imageData');=0A= objImageDataContainer.appendChild(objImageData);=0A= =0A= var objImageDetails =3D document.createElement("div");=0A= objImageDetails.setAttribute('id','imageDetails');=0A= objImageData.appendChild(objImageDetails);=0A= =0A= var objCaption =3D document.createElement("span");=0A= objCaption.setAttribute('id','caption');=0A= objImageDetails.appendChild(objCaption);=0A= =0A= var objNumberDisplay =3D document.createElement("span");=0A= objNumberDisplay.setAttribute('id','numberDisplay');=0A= objImageDetails.appendChild(objNumberDisplay);=0A= =0A= var objBottomNav =3D document.createElement("div");=0A= objBottomNav.setAttribute('id','bottomNav');=0A= objImageData.appendChild(objBottomNav);=0A= =0A= var objBottomNavCloseLink =3D document.createElement("a");=0A= objBottomNavCloseLink.setAttribute('id','bottomNavClose');=0A= objBottomNavCloseLink.setAttribute('href','#');=0A= objBottomNavCloseLink.onclick =3D function() { myLightbox.end(); = return false; }=0A= objBottomNav.appendChild(objBottomNavCloseLink);=0A= =0A= var objBottomNavCloseImage =3D document.createElement("img");=0A= objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);=0A= objBottomNavCloseLink.appendChild(objBottomNavCloseImage);=0A= },=0A= =0A= =0A= //=0A= // updateImageList()=0A= // Loops through anchor tags looking for 'lightbox' references and = applies onclick=0A= // events to appropriate links. You can rerun after dynamically adding = images w/ajax.=0A= //=0A= updateImageList: function() { =0A= if (!document.getElementsByTagName){ return; }=0A= var anchors =3D document.getElementsByTagName('a');=0A= var areas =3D document.getElementsByTagName('area');=0A= =0A= // loop through all anchor tags=0A= for (var i=3D0; i 1){=0A= Element.show('numberDisplay');=0A= Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + = 1) + " of " + imageArray.length);=0A= }=0A= =0A= new Effect.Parallel(=0A= [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: = resizeDuration, from: 0.0, to: 1.0 }), =0A= new Effect.Appear('imageDataContainer', { sync: true, duration: = resizeDuration }) ], =0A= { duration: resizeDuration, afterFinish: function() {=0A= // update overlay size and update nav=0A= var arrayPageSize =3D getPageSize();=0A= Element.setHeight('overlay', arrayPageSize[1]);=0A= myLightbox.updateNav();=0A= }=0A= } =0A= );=0A= },=0A= =0A= //=0A= // updateNav()=0A= // Display appropriate previous and next hover navigation.=0A= //=0A= updateNav: function() {=0A= =0A= Element.show('hoverNav'); =0A= =0A= // if not first image in set, display prev image button=0A= if(activeImage !=3D 0){=0A= Element.show('prevLink');=0A= document.getElementById('prevLink').onclick =3D function() {=0A= myLightbox.changeImage(activeImage - 1); return false;=0A= }=0A= }=0A= =0A= // if not last image in set, display next image button=0A= if(activeImage !=3D (imageArray.length - 1)){=0A= Element.show('nextLink');=0A= document.getElementById('nextLink').onclick =3D function() {=0A= myLightbox.changeImage(activeImage + 1); return false;=0A= }=0A= }=0A= =0A= this.enableKeyboardNav();=0A= },=0A= =0A= //=0A= // enableKeyboardNav()=0A= //=0A= enableKeyboardNav: function() {=0A= document.onkeydown =3D this.keyboardAction; =0A= },=0A= =0A= //=0A= // disableKeyboardNav()=0A= //=0A= disableKeyboardNav: function() {=0A= document.onkeydown =3D '';=0A= },=0A= =0A= //=0A= // keyboardAction()=0A= //=0A= keyboardAction: function(e) {=0A= if (e =3D=3D null) { // ie=0A= keycode =3D event.keyCode;=0A= escapeKey =3D 27;=0A= } else { // mozilla=0A= keycode =3D e.keyCode;=0A= escapeKey =3D e.DOM_VK_ESCAPE;=0A= }=0A= =0A= key =3D String.fromCharCode(keycode).toLowerCase();=0A= =0A= if((key =3D=3D 'x') || (key =3D=3D 'o') || (key =3D=3D 'c') || = (keycode =3D=3D escapeKey)){ // close lightbox=0A= myLightbox.end();=0A= } else if((key =3D=3D 'p') || (keycode =3D=3D 37)){ // display = previous image=0A= if(activeImage !=3D 0){=0A= myLightbox.disableKeyboardNav();=0A= myLightbox.changeImage(activeImage - 1);=0A= }=0A= } else if((key =3D=3D 'n') || (keycode =3D=3D 39)){ // display next = image=0A= if(activeImage !=3D (imageArray.length - 1)){=0A= myLightbox.disableKeyboardNav();=0A= myLightbox.changeImage(activeImage + 1);=0A= }=0A= }=0A= =0A= },=0A= =0A= //=0A= // preloadNeighborImages()=0A= // Preload previous and next images.=0A= //=0A= preloadNeighborImages: function(){=0A= =0A= if((imageArray.length - 1) > activeImage){=0A= preloadNextImage =3D new Image();=0A= preloadNextImage.src =3D imageArray[activeImage + 1][0];=0A= }=0A= if(activeImage > 0){=0A= preloadPrevImage =3D new Image();=0A= preloadPrevImage.src =3D imageArray[activeImage - 1][0];=0A= }=0A= =0A= },=0A= =0A= //=0A= // end()=0A= //=0A= end: function() {=0A= this.disableKeyboardNav();=0A= Element.hide('lightbox');=0A= new Effect.Fade('overlay', { duration: overlayDuration});=0A= showSelectBoxes();=0A= showFlash();=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // getPageScroll()=0A= // Returns array with x,y page scroll values.=0A= // Core code from - quirksmode.com=0A= //=0A= function getPageScroll(){=0A= =0A= var xScroll, yScroll;=0A= =0A= if (self.pageYOffset) {=0A= yScroll =3D self.pageYOffset;=0A= xScroll =3D self.pageXOffset;=0A= } else if (document.documentElement && = document.documentElement.scrollTop){ // Explorer 6 Strict=0A= yScroll =3D document.documentElement.scrollTop;=0A= xScroll =3D document.documentElement.scrollLeft;=0A= } else if (document.body) {// all other Explorers=0A= yScroll =3D document.body.scrollTop;=0A= xScroll =3D document.body.scrollLeft; =0A= }=0A= =0A= arrayPageScroll =3D new Array(xScroll,yScroll) =0A= return arrayPageScroll;=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // getPageSize()=0A= // Returns array with page width, height and window width, height=0A= // Core code from - quirksmode.com=0A= // Edit for Firefox by pHaez=0A= //=0A= function getPageSize(){=0A= =0A= var xScroll, yScroll;=0A= =0A= if (window.innerHeight && window.scrollMaxY) { =0A= xScroll =3D window.innerWidth + window.scrollMaxX;=0A= yScroll =3D window.innerHeight + window.scrollMaxY;=0A= } else if (document.body.scrollHeight > document.body.offsetHeight){ // = all but Explorer Mac=0A= xScroll =3D document.body.scrollWidth;=0A= yScroll =3D document.body.scrollHeight;=0A= } else { // Explorer Mac...would also work in Explorer 6 Strict, = Mozilla and Safari=0A= xScroll =3D document.body.offsetWidth;=0A= yScroll =3D document.body.offsetHeight;=0A= }=0A= =0A= var windowWidth, windowHeight;=0A= =0A= // console.log(self.innerWidth);=0A= // console.log(document.documentElement.clientWidth);=0A= =0A= if (self.innerHeight) { // all except Explorer=0A= if(document.documentElement.clientWidth){=0A= windowWidth =3D document.documentElement.clientWidth; =0A= } else {=0A= windowWidth =3D self.innerWidth;=0A= }=0A= windowHeight =3D self.innerHeight;=0A= } else if (document.documentElement && = document.documentElement.clientHeight) { // Explorer 6 Strict Mode=0A= windowWidth =3D document.documentElement.clientWidth;=0A= windowHeight =3D document.documentElement.clientHeight;=0A= } else if (document.body) { // other Explorers=0A= windowWidth =3D document.body.clientWidth;=0A= windowHeight =3D document.body.clientHeight;=0A= } =0A= =0A= // for small pages with total height less then height of the viewport=0A= if(yScroll < windowHeight){=0A= pageHeight =3D windowHeight;=0A= } else { =0A= pageHeight =3D yScroll;=0A= }=0A= =0A= // console.log("xScroll " + xScroll)=0A= // console.log("windowWidth " + windowWidth)=0A= =0A= // for small pages with total width less then width of the viewport=0A= if(xScroll < windowWidth){ =0A= pageWidth =3D xScroll; =0A= } else {=0A= pageWidth =3D windowWidth;=0A= }=0A= // console.log("pageWidth " + pageWidth)=0A= =0A= arrayPageSize =3D new = Array(pageWidth,pageHeight,windowWidth,windowHeight) =0A= return arrayPageSize;=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // getKey(key)=0A= // Gets keycode. If 'x' is pressed then it hides the lightbox.=0A= //=0A= function getKey(e){=0A= if (e =3D=3D null) { // ie=0A= keycode =3D event.keyCode;=0A= } else { // mozilla=0A= keycode =3D e.which;=0A= }=0A= key =3D String.fromCharCode(keycode).toLowerCase();=0A= =0A= if(key =3D=3D 'x'){=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // listenKey()=0A= //=0A= function listenKey () { document.onkeypress =3D getKey; }=0A= =0A= // ---------------------------------------------------=0A= =0A= function showSelectBoxes(){=0A= var selects =3D document.getElementsByTagName("select");=0A= for (i =3D 0; i !=3D selects.length; i++) {=0A= selects[i].style.visibility =3D "visible";=0A= }=0A= }=0A= =0A= // ---------------------------------------------------=0A= =0A= function hideSelectBoxes(){=0A= var selects =3D document.getElementsByTagName("select");=0A= for (i =3D 0; i !=3D selects.length; i++) {=0A= selects[i].style.visibility =3D "hidden";=0A= }=0A= }=0A= =0A= // ---------------------------------------------------=0A= =0A= function showFlash(){=0A= var flashObjects =3D document.getElementsByTagName("object");=0A= for (i =3D 0; i < flashObjects.length; i++) {=0A= flashObjects[i].style.visibility =3D "visible";=0A= }=0A= =0A= var flashEmbeds =3D document.getElementsByTagName("embed");=0A= for (i =3D 0; i < flashEmbeds.length; i++) {=0A= flashEmbeds[i].style.visibility =3D "visible";=0A= }=0A= }=0A= =0A= // ---------------------------------------------------=0A= =0A= function hideFlash(){=0A= var flashObjects =3D document.getElementsByTagName("object");=0A= for (i =3D 0; i < flashObjects.length; i++) {=0A= flashObjects[i].style.visibility =3D "hidden";=0A= }=0A= =0A= var flashEmbeds =3D document.getElementsByTagName("embed");=0A= for (i =3D 0; i < flashEmbeds.length; i++) {=0A= flashEmbeds[i].style.visibility =3D "hidden";=0A= }=0A= =0A= }=0A= =0A= =0A= // ---------------------------------------------------=0A= =0A= //=0A= // pause(numberMillis)=0A= // Pauses code execution for specified time. Uses busy code, not good.=0A= // Help from Ran Bar-On [ran2103@gmail.com]=0A= //=0A= =0A= function pause(ms){=0A= var date =3D new Date();=0A= curDate =3D null;=0A= do{var curDate =3D new Date();}=0A= while( curDate - date < ms);=0A= }=0A= /*=0A= function pause(numberMillis) {=0A= var curently =3D new Date().getTime() + sender;=0A= while (new Date().getTime(); =0A= }=0A= */=0A= // ---------------------------------------------------=0A= =0A= =0A= =0A= function initLightbox() { myLightbox =3D new Lightbox(); }=0A= Event.observe(window, 'load', initLightbox, false); ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/swfobject.js /**=0A= * SWFObject v1.5: Flash Player detection and embed - = http://blog.deconcept.com/swfobject/=0A= *=0A= * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT = License:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= *=0A= */=0A= if(typeof deconcept=3D=3D"undefined"){var deconcept=3Dnew = Object();}if(typeof = deconcept.util=3D=3D"undefined"){deconcept.util=3Dnew = Object();}if(typeof = deconcept.SWFObjectUtil=3D=3D"undefined"){deconcept.SWFObjectUtil=3Dnew = Object();}deconcept.SWFObject=3Dfunction(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!= document.getElementById){return;}this.DETECT_KEY=3D_a?_a:"detectflash";th= is.skipDetect=3Ddeconcept.util.getRequestParameter(this.DETECT_KEY);this.= params=3Dnew Object();this.variables=3Dnew = Object();this.attributes=3Dnew = Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id"= ,id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height= ",h);}if(_5){this.setAttribute("version",new = deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=3Dd= econcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&= &this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=3Dtrue;}if(c= ){this.addParam("bgcolor",c);}var = q=3D_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpress= Install",false);this.setAttribute("doExpressInstall",false);var = _c=3D(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.s= etAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);= }};deconcept.SWFObject.prototype=3D{useExpressInstall:function(_d){this.x= iSWFPath=3D!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInsta= ll",true);},setAttribute:function(_e,_f){this.attributes[_e]=3D_f;},getAt= tribute:function(_10){return = this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=3D_12;= },getParams:function(){return = this.params;},addVariable:function(_13,_14){this.variables[_13]=3D_14;},g= etVariable:function(_15){return = this.variables[_15];},getVariables:function(){return = this.variables;},getVariablePairs:function(){var _16=3Dnew Array();var = key;var _18=3Dthis.getVariables();for(key in = _18){_16[_16.length]=3Dkey+"=3D"+_18[key];}return = _16;},getSWFHTML:function(){var = _19=3D"";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.l= ength){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplay= erType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19=3D"0){_19+=3D"flashvar= s=3D\""+_1c+"\"";}_19+=3D"/>";}else{if(this.getAttribute("doExpressInstal= l")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",t= his.xiSWFPath);}_19=3D"";_19+=3D"";var = _1d=3Dthis.getParams();for(var key in _1d){_19+=3D"";}var = _1f=3Dthis.getVariablePairs().join("&");if(_1f.length>0){_19+=3D"";}_19+=3D"";}return = _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var = _21=3Dnew = deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21= )&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.= setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",es= cape(this.getAttribute("xiRedirectUrl")));document.title=3Ddocument.title= .slice(0,47)+" - Flash Player = Installation";this.addVariable("MMdoctitle",document.title);}}if(this.ski= pDetect||this.getAttribute("doExpressInstall")||this.installedVer.version= IsValid(this.getAttribute("version"))){var n=3D(typeof = _20=3D=3D"string")?document.getElementById(_20):_20;n.innerHTML=3Dthis.ge= tSWFHTML();return = true;}else{if(this.getAttribute("redirectUrl")!=3D""){document.location.r= eplace(this.getAttribute("redirectUrl"));}}return = false;}};deconcept.SWFObjectUtil.getPlayerVersion=3Dfunction(){var = _23=3Dnew = deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeType= s.length){var x=3Dnavigator.plugins["Shockwave = Flash"];if(x&&x.description){_23=3Dnew = deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replac= e(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&nav= igator.userAgent.indexOf("Windows CE")>=3D0){var axo=3D1;var = _26=3D3;while(axo){try{_26++;axo=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=3Dnew = deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=3Dnull;}}}else{try{var = axo=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var = axo=3Dnew ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=3Dnew = deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess=3D"always";}catch= (e){if(_23.major=3D=3D6){return _23;}}try{axo=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=3Dnull= ){_23=3Dnew deconcept.PlayerVersion(axo.GetVariable("$version").split(" = ")[1].split(","));}}}return = _23;};deconcept.PlayerVersion=3Dfunction(_29){this.major=3D_29[0]!=3Dnull= ?parseInt(_29[0]):0;this.minor=3D_29[1]!=3Dnull?parseInt(_29[1]):0;this.r= ev=3D_29[2]!=3Dnull?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototyp= e.versionIsValid=3Dfunction(fv){if(this.majorfv.major){return = true;}if(this.minorfv.minor){return true;}if(this.rev=3D0;i--){_2f[i].style.display=3D"none";for(var x in = _2f[i]){if(typeof = _2f[i][x]=3D=3D"function"){_2f[i][x]=3Dfunction(){};}}}};if(deconcept.SWF= Object.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.pre= pUnload=3Dfunction(){__flash_unloadHandler=3Dfunction(){};__flash_savedUn= loadHandler=3Dfunction(){};window.attachEvent("onunload",deconcept.SWFObj= ectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFO= bjectUtil.prepUnload);deconcept.unloadSet=3Dtrue;}}if(!document.getElemen= tById&&document.all){document.getElementById=3Dfunction(id){return = document.all[id];};}var = getQueryParamValue=3Ddeconcept.util.getRequestParameter;var = FlashObject=3Ddeconcept.SWFObject;var SWFObject=3Ddeconcept.SWFObject; ------=_NextPart_000_019B_01C9531F.4E9E0440 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: file:///F:/My%20Documents/BISTA/_news/Ode%20Magazine%20%20%20Hot%20stuff_files/audio-player.js var AudioPlayer=3Dfunction(){var F=3D[];var C;var E=3D"";var A=3D{};var = D=3D-1;function B(G){return = document.all?window[G]:document[G]}return{setup:function(H,G){E=3DH;A=3DG= },getPlayer:function(G){return B(G)},embed:function(K,O){var I=3D{};var = M;var G;var P;var H;var N=3D{};var J=3D{};var L=3D{};for(M in = A){I[M]=3DA[M]}for(M in = O){I[M]=3DO[M]}if(I.transparentpagebg=3D=3D"yes"){N.bgcolor=3D"#FFFFFF";N= .wmode=3D"transparent"}else{if(I.pagebg){N.bgcolor=3D"#"+I.pagebg}N.wmode= =3D"opaque"}N.menu=3D"false";for(M in = I){if(M=3D=3D"pagebg"||M=3D=3D"width"||M=3D=3D"transparentpagebg"){contin= ue}J[M]=3DI[M]}L.name=3DK;L.style=3D"outline: = none";J.playerID=3DK;audioplayer_swfobject.embedSWF(E,K,I.width.toString(= ),"24","9.0.0",false,J,N,L);F.push(K)},syncVolumes:function(G,I){D=3DI;fo= r(var = H=3D0;H=0A= Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van = der Sluis=0A= This software is released under the MIT License = =0A= */=0A= var audioplayer_swfobject=3Dfunction(){var = b=3D"undefined",Q=3D"object",n=3D"Shockwave = Flash",p=3D"ShockwaveFlash.ShockwaveFlash",P=3D"application/x-shockwave-f= lash",m=3D"SWFObjectExprInst",j=3Dwindow,K=3Ddocument,T=3Dnavigator,o=3D[= ],N=3D[],i=3D[],d=3D[],J,Z=3Dnull,M=3Dnull,l=3Dnull,e=3Dfalse,A=3Dfalse;v= ar h=3Dfunction(){var v=3Dtypeof K.getElementById!=3Db&&typeof = K.getElementsByTagName!=3Db&&typeof = K.createElement!=3Db,AC=3D[0,0,0],x=3Dnull;if(typeof = T.plugins!=3Db&&typeof = T.plugins[n]=3D=3DQ){x=3DT.plugins[n].description;if(x&&!(typeof = T.mimeTypes!=3Db&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=3Dx.r= eplace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=3DparseInt(x.replace(/^(.*)\..*$/= ,"$1"),10);AC[1]=3DparseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=3D= /r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof = j.ActiveXObject!=3Db){var y=3Dnull,AB=3Dfalse;try{y=3Dnew = ActiveXObject(p+".7")}catch(t){try{y=3Dnew = ActiveXObject(p+".6");AC=3D[6,0,21];y.AllowScriptAccess=3D"always"}catch(= t){if(AC[0]=3D=3D6){AB=3Dtrue}}if(!AB){try{y=3Dnew = ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=3Dy.GetVariable("$version")= ;if(x){x=3Dx.split(" = ")[1].split(",");AC=3D[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],= 10)]}}catch(t){}}}}var = AD=3DT.userAgent.toLowerCase(),r=3DT.platform.toLowerCase(),AA=3D/webkit/= .test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):fals= e,q=3Dfalse,z=3Dr?/win/.test(r):/win/.test(AD),w=3Dr?/mac/.test(r):/mac/.= test(AD);/*@cc_on = q=3Dtrue;@if(@_win32)z=3Dtrue;@elif(@_mac)w=3Dtrue;@end@*/return{w3cdom:v= ,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var = L=3Dfunction(){if(!h.w3cdom){return = }f(H);if(h.ie&&h.win){try{K.write("