From: Subject: flexmls Date: Mon, 3 May 2010 14:06:53 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01CAEAC9.E21FA050" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CAEAC9.E21FA050 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/cgi-bin/mainmenu.cgi?cmd=url+other/run_public_link.html&public_link_tech_id=rhleo8k4sfi&id=1&cid=1 flexmls
Brought to=20 you by Randy Krysinski
Address: = 8541 N=20 Granville Rd Milwaukee, WI 53224-2305 County:=20 Milwaukee
MLS #:=20 = 1141586
=
Property=20 Type: Single-Family
Status:=20 Active
Tax=20 Key: 0409975110
Zoning: Res=20 List = Price:=20 $179,900

Taxes:=20 $3,374
Tax=20 Year: 2009

Bedrooms:=20 4
Baths: 2 /=20 0
Garage=20 Spaces: 3
Garage = Type:=20 Detached
Rooms:=20 9
Sq.=20 Ft.: 1,287
Year = Built:=20 1929
Lot=20 Size: half acre plus

Flood = Plain:=20 No
Conforming = Use: Yes Occ. = Permit=20 Required: N=20 =
Directions: = Brown Deer Rd=20 to 107th, south to Granville Rd, SE to home. Or, Good Hope to = 107th, North=20 to Donna, east to Granville, NW to home.
Coordinates: = 85N 106W
School = District:=20 Milwaukee





Name Master Bedroom Bedroom 2 Bedroom 3 Bedroom 4
Dim L C W
11 x 11 M
10 x 11 M
12 x 10 U
17 x 14 U Yes
Name Dining Room Kitchen Living/Great Room Other Room
Dim L C W
13 x 10 M
12 x 12 M
20 x 11 M Yes
7 x 11 M
Type: #=20 of Acres: Style: Architecture: Garage/Parking: Outbuildings: Exterior: Roofing: Basement: Heating/Cooling: H/C=20 Type: Bath=20 Description:
Single = Family
1/2 less than = 1
1.5 = Story
Bungalow
Parking Space; = Driveway=20 Entrance
None
Aluminum; = Partial-Aluminum;=20 Aluminum Trim
Slate/Tile
Full; Block; Full=20 Bath
Natural Gas; Central=20 Air
Forced = Air
Shower Over Tub; = Vanity;=20 Ceramic Tile; Full on Lower; Full on=20 Main
Financing=20 Available: Documents: Appliances = Incl.: Misc.=20 Exterior: Misc.=20 Interior: Water/Waste: Tax=20 Includes: Municipality: Other=20 Rooms: Estimated=20 Age: Est. Sq.=20 Footage: Occupancy:
Land Contract; Owner = May=20 Assist; Other
Seller Condition; Tax = Bill;=20 LeadPaint Disclosure
None
Patio; Deck; Fenced=20 Yard
Elec/Artf Fireplace; = 220=20 Volts; Circuit Breakers; Cable TV = Available
Municipal Water; = Municipal=20 Sewer
Trash = Collection
City
Florida/Sun Room; = Walk-thru=20 Bedroom; Expandable Attic; Other
61-100 = Years
1251-1500
Immediate
= Remarks: Newly=20 refurbished! Hardwoods, and character. Leaded glass windows. Sun = Room,=20 natural woodwork, arched doorways and more! Living room features=20 artificial fireplace. Built-in buffet in formal dining room. Third = bedroom=20 on upper, with large spacious finished area ready for additional = bedrooms=20 or computer/study etc. Many = possiblities.
Listing Office: = Market Masters Realty, LLC: = mmreal

Information=20 is supplied by seller and other third parties and has not been=20 verified.
Copyright 2010 by Multiple Listing Service, Inc. See copyright=20 notice.
Prepared by Randy Krysinski on Monday, May 03, 2010 2:06 = PM ------=_NextPart_000_0000_01CAEAC9.E21FA050 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://photos.mlswis.com/met/20100503153837879415000000.jpg /9j/4AAQSkZJRgABAQEASABIAAD//gAsUHJvY2Vzc2VkIGJ5IGZsZXhtbHMgV2ViICh3d3cuZmxl eG1scy5jb20p/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMc HCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA4QEsAwEiAAIRAQMRAf/EABwA AAEFAQEBAAAAAAAAAAAAAAMBAgQFBgAHCP/EAEwQAAIBAwIDBQQFBwgJAwUAAAECAwAEERIhBTFB BhMiUWEUMnGBB0KRodEVIzNSYpKxFkNTcsHS4fAkRGNzg5OiwvEXVIIlJjSjsv/EABkBAAMBAQEA AAAAAAAAAAAAAAABAgMEBf/EACQRAAICAgICAwEAAwAAAAAAAAABAhEDIRIxE1EEIkFhMnGB/9oA DAMBAAIRAxEAPwD2hRkUnd5oqxkGirHWpmkRTEegprwnyqzEYK8qG6YqbHRVlCKTSamtEDTDDtTs KIhpuakGI0wxUCBaqQsacUpMYoAbk5oiNg0w1wIFMCwil6ZorNUGHUzCpTggVLKTOOTXFEkTDAGk BxRFZetNAQpOGpJLq1MN+lSVL2+Yyg0Y2apK4O4oM/6M8/TFXzctMjgo7RW3SxudTbEio0duzZdR gDlU0wv3bSOBnpnpUaNpZJGigUuSPPlXRCT40jnkt7GtehEKgb1DaaQbknOc1YNwq5jyWQMTy0nO 9Ft+CNLGHuHKMeSjyq1kxRVkOGSWilkkLUNVBYZ2FWN5wx7eUjcr9U451C7p840nPliuiM4yWjnl CSeyZbzpEM7ZAwKVp2MqrqyuNzUJVY7AU7Q6qSQcDqKlwV2aKcqLaFo0GNVT45IdHiYCs0bhggUb etMM8hGCxxWT+M5fpovkJaLq54lbwEooJPmKqLq979AoBG/WopyTSrHqOK3hghDZhPPKehhY0mc1 YmCCO3bVkufPpVeVGTjlWsJqXRnODj2N8qUE4okEDTzLGvNjitTb8HgjtFjljVmPvEc81lm+RHH2 XhwyydFDw/hUt8pfcINs+dX3DuCR2jd451SevSrKCBIIgiKFA6CnPJpPmK87L8meRtLo78fx4wSb 7BsoQ7UPw+QokjahtQsCsjahRT1bFRXnAGVOQeRBoXteGq1FslzSLVXGKa5BqvN8g6U4XismSMVP jYeREg4zTciokl2OhqK1y7A+KrjibJllSLRwoGaB4W5VCa5cppBpYpCg1NT8LoXmTZJMYobRU1Jy 5o4IbrUOLRSkmRWjNIsW9TCqkc6QgedLYxISEo5lBFRGcZODQ2kwPep8Gw5pEtnAO1M72oglznJq XYQtcTd4wHdL95qnDirZKnbpBIrgZxSXE+NKKpJY4Aqy7tdvCNvSl0DbYbcqy5r0acXRXx2sryqJ 1HdYyRnmalxWsMUhkSMKxGCRUiupObY1FITFdilrqkoZoGrVTGt4nOSik4xnFGzSahTtipEVLCBT kqCcY+VFa3iMegxqV8sUUmhSSdKdt/oqSKa94THI8jRAJtsKqWtO7GWHI4NacMGYrmol7w4yj8yV 33INdeLO19WzmyYU9pGekjByVAwKJaWc9y/5pdgdzU+DhMrykSghR5HnVta2a2qDQ7AZzgmtcnyE lUezLH8dydyK+bgRMIAlGvOSSKrxwa4LhSVrTNIXJApyxiuePyMkV2dD+PCT6K7h/CVtX1k6nxjP lVusYU+tNEeOuacRvsawnNzds1hBRVIdQpdIPrT9WPKmOQalFMBnNJmnHamZFWI8N+jftpN7RJZc RvVW10NIGlONJGOR8vSvVop47mCOeFw8cih0YdQeVfLVsW9pZbXVIIzpDeYztt619IdjLaf+S1u1 1I7XJLd4jH9E2caAOgAHKq+Pka+rObJC9ot67UQOtKVKnBpyRliMg4NduqOdJgiT1pOZo8qoqgLQ 44Wc8tqFJVYcXdDRkHzpWkztRnQKvvYPlQUhaR8D7aE09jaa0N1kbCnCdhR1sWPvGmy2uhhilzg9 FcZpD4xK6lh8s0OWRkGlveqTrKYUeVV8z95IWNTCNsc5cVobqPmabqNLUq24fNcAlQFUdWrWTjFW zFKUnSJ3C7JHt+9ljBLHbPlVoiLGMKoUeQFMtkdLZEkxqAwcU9n515s5OUj0oRUYoVnC0ocNyNRW bfOa4Pg86OJVkuuzQ431bUQkAb1FUB3KmtIFpjSgZqK8mTTSBskF9VcH9aid6QdjSd9ht6qhWTi+ lMmo5OonNcZGmwqnaniLGKS0MGiYfNSBywBSKmNzXNIFFO7Chw8K0KRttqG01D1a8UIByE5znFGD HzoY0AAU12KkYpiJXeEChNNjrUdpSdqHkmlQWSGnoZuaEQANzTDHkZFNIVjmuCaH3586aQIxlqD3 yeVaRhZnKVHzHAsk1zHFYQmO4dhhY9gPQb7+ec9a9d7B9p0s4Y+F3MkbvJKqqqIdZdyAQx6lcbn1 rwtruRRhI1zqGGA3GN6suE8duOFcQhurQFZ4yTqdtWSTvjyrlhP2Nn1Y9qDuGzQwxjXQF+deacB+ lK5v40W6SONgVVmA3ZvLcjGR16Vvrfj3Cbm1a6F1+aDBcsuMk+XnXWsifZm4XuJKVA77japAiOMD IFcjWqTafaYgxxhS4zv6VOCBaJZL6HDF7IYtQ2SQafHCqYHLFSTup6UIIxO3Kp5NmigkK7BRgc6r pZX1YxtVi8LEVEmj7vmCarHROROiA7OdzmhVNXSXw/KmvbqclWrqU0tM43BvY7h9mLl2D50gc/Wr 9FCIqjoMUG0jSK3QADlT5JQu1cOWbnI7sUFCIUkYNQ3fmapuO9rOF8BQC8uQJWGVhTxSN8FH8eVZ WT6TbCaBxDZ32sjA8C/3qhGjNy0oDHJpO+HnXn8n0l8OALNZ3YUcydA/7qoeNfSZcXNsY+FxtZod mnmwX+CL1PrVWiakevw8RtkuGt+/QzhQxjzuAc9PlRTc5POvmFJbo3HtSzSxyls96XJlJ8yenwrb cF+kfiPDtEPF4jdQAgd8NmA9fP54NSmmU0z2Zpc9ajtJ4qpuG9p+H8XgWWyuEkHVTsy/EcxUs3Gp ttqtIhsn94Au+9MdlPImoFzdRW9tJLNIsaIpLMxwAKo+Hdt+CcSkEMV8iyY92Tw5+BPOn0BubWQC MAUbvQDk4qjjuSF2O3nS9+5+saTjsakW8lyFHOoj3BY7Go3eDG5zSA5NCiDZJV8nen59KjhlUUeE hqGhIeFOc5pGcR8+dPZwmxX7KBIRIORFCQNjHnGdudR2uHDdacECtk0GRsv4R9ldEIqzCcnQ5pHa u70rH71BLGmGtfGmYvI0Oedm5nNAOc1IgtZbiQKik5PPGwq1TgcWka5GLdaJZcePQo455NnxqSxA XlvmnDVnPiwOeaZoIBLZyBk5HIUhlOoIpbDbDSedeRR2Fxw/isnC7pLqNY5Cg2V1DA/EUn5b4nPO rPNNrRsquT4T8KqlOsggg5G58qmIwv1KKpWeJOrZ1Y2Pw23+RqkhpGu7N8T4ja9oILm5bcMpJmQN tsTjII5HPTpX0rwy+teK2iXNpcLNGebL5182dluK2kdgY78xvJqCWqyQ96FJzk8/UbeXrX0b2csk 4dwK2gjjhQadREIITJ8skmrTotIsJI9K0qL4ciiAgk5NPAA5YFPl+DoDoZjvypktujjDE1IZgBvQ WkBU4++mmwavsrJbdI2IyfSgKn50b7VauypGXkICgZJOwFecdoPpKsreZ7TgMS311yM5yIUPx+t8 tvWt1l1sweG3aNxf8XsuD8O9ovruOCFdtbtjJ8h5mvNOPfSXd8QLW/Ake2h5G6lUa2/qqeXxO/pW Mvr284tee08RuGmn5AvyT0UDZajXFzFBlpH3z8SfkKwbN0tBdJkkeWR2mnc5aVyWYnzJNBlu1QCN R3k4/V5D4npQcz3BBJaKPngHDkep6VIgSOHwxgBOeFGPvqRkWS1naRUMTXEjDUqIDoX1/wDP3VIg 4Jdl+9nhleUcsIcD4eVM4urnhzS2zkTqc6QNiPjVN2ehvOIy3BldiVhZwM7bHFAWateGT68+zzBS OWneinh8rLg2znAxlhv/ABxWW4Nr4rf9xpA8JbPwFN4YZL3iyWRUDLEE/Cq4v0TyRfpwm9tXE1m8 kDqcjD4PyNaDhn0gXtjERxiHvIlOnvVwH+Yzg15Zc2lxHxWVDI2gSsoUbscHkPxq7ht3nlEl2VLf VizhV+VJNroemtlzx3tNxHtRLplza8NB8EOcd76k1WG2RQqkZUcvIUdAMkZLt07weEfPlTZGKkgn APSM5FK7AtuD9rOM8HcRxT+3W4/mJDkqPRq9F4H2z4VxlhAsxt7vHigmGk59D1rxtnbUp5YHTY0v ekuh2yu4YjcH0NUpNCaTPolFGMk5o5iZE1nbPKvEeBduuNcEkVdXt1mp3jm3cDrg16lwHt7wPtBG Ein7q46wT+Fvl51fNPoVV2WhEj7qpxRYmkj55FH9qUDbGPKgyXGvYVSt/hLruwxuCVxihmVj0oYV 23oqQyOQAKKSC7EClzilYJASRgtSSJJDv086SOOS48X1c7mrS/X0RJ7pdkRhqYmiW9s1xMqAczuf IVcLawKgGkbdTRoWiiYgALnyFU/kapIhfG3bYaKJIYwiDAFKXAPOmtMMHFQHm8Rrkqzq0j5C4pdL xK5g7iAoscapjOpmPUn4moc9uJ4hJawtpiAEjA5yT/DlTiFjuDFOWUx5GYiCT5Y+ZrRWDXl/ax8N sEjihXGQF0tIQc+I5GTz2J+FZ3vZKXsyCkqzK2kah8vkaTvNDEa8+en8am8V9lF+8lnGqRs2kQs2 ojHPfy8vTrUR4gEBYhXPNdJyKYMsODQm6vVAIVEGt2IzhRzwBuflX0x9HXGeDTdn4eHcKvXmaBS0 iS5Drk77H1NfL/Dsx3kbDGEOSGbGrHMV7l9GfY+94dMOLpPJHFKuGiZMAggHbzB5gjyq0NHsKTKD nO9EM2rrVW0jp03oTXUnICr42LkWxcMcE0NnAIAqsFxMdgDk8tqnQx6I9crAbZOT0oaoFKzO9ueE ycZ4IY0u5Y2jOruUl0LP+y3ny2FeE3fGLOwkFu1ndbE+AaQBjmK9H+kztdZF04fw+6la4QEsts4K +mo9K8uW1ad+9uRrJ30jZR+NZt+iqJDcVe7jCWcTwqebyMGA9AMb0kaRQyB1y0p5yMMn/D5UwgFD oyfhyFOjVVVQH8WSMDpQMKXLN4sZ8+dczMdtwM4y3L7KGr5AIPPy60TvFj3yV9TvQIIzsLcq6u64 OwHh+QpvDOJx8KnaUWMj64dAXkCpOc4oSzEyZwT+0TgVFaCSSXESs7ac4QE0AXkPaOKGTXb8DiiY dVwDg1Bn7RLMvdcPsLe2mJ8UwUZT5jrUD8n8Qn/NmCVIxsSVILfhR4+E3UeO7hA9C2Bii2GkDjiE IZwQ0re9IxyxokbGRlKnvMDkx5U/8lXZYkovw1r+NEThl4AAVTGejrn+NAWcSQcO2D5VyxlAcjSh 8jyow4dcjYKvqSwP9tEPD5vewNf9bamFkVYVlyUAJx12NDaEg7MSwPXlmpn5OuiNwgPptS/k67Hu NGq4xuaBWQdDKdTEj0XeuMffHLldhlSNmHz6VMXhl2jZR4gc9WG4pG4VcEjVLBn0akOy44F2/wCK cHZYrj/TrQeHS5w6j0brXqHAu03CePqvslynffWhc4cfLrXiR4PKWP8ApECqf26X8kyKweO6gjcc mSQgitI5GiXGLPpiNowoJxtQ3uY190756V5X2a7Z8Ut2iseJzQXkXurIhPejy2x4q9HW27yMNqIJ AJU7EZ86WmNt/hJlkEwxkAGjRyqkYGBUKO0J3zU2OAaRqNU2qoUbuzjIGOxpe+SNfFuaI0EZ93bz zUeS1Lg6XFRaK2Amv9sDaoJuTnnUiSw0nMkox6UDRCu27etaKjN2fL0vcXF0smMBW8LMuGIB2Hp9 tEklOXJk2bI/N4B+PKo8Rjt0lFyrumcoRuD9tQy5zq1nQTvXmttvQNh442aZnaNSCAPd04A6jfbl UO+Uq0b6SqyKDqLas+uat7EWcjql5I4iKtq0AAjbY5+OPtqBNBao5S3kLROTjVzx/nyreMnVsd6I KzHPdDcA9Bzr3n6IeIXDcPMF1dS6SRiN43OB9XDbj+GK8PaGe3RNUWptpI3XcqP845+nz9F7EcQ4 jLeJYXkk9rbyDXK2nGBnbPLTvyJ8q0TGfQcJgNw0OWLhQ2/kc/hRpDBGGOFyoyfSvJ+L9uG4LeJY 3a6mgm1vcR/zgx4Tj1xv61nuMfSZcPH/AKExSUgr36udaqTnHyolNLsLRa9r+3s/F5bjh1hbgQIc BmALHHVfI/52rL3PEe0nFbUW88s3dLjxu3jxjkN+VZGTiLvcNKZGLsxOoncnzqWnFpcBSFJJwPAD msIzt3IFIsBwO7QMY4tjudci5J+2ntwy76ooP+9XH8aixSX06d5F3ZTOx7tfwq/4Jwme+tHknbDK 5XZFA/hW6dlFV+S7s+8qHbpKv40q8MuznIjAzt+cX8a1H8ncc3P2D8K7+T6j+cP2j8KdMLMyvDJ1 x44gB01UrWDEg97Gp88k1pvyEg/nT+8Pwpp4Ko/n3/fo2KzNpYHv0LPAw1DJZiBRrtAqssQijIJw yKcn51cS8IGk/wCkSfvmqa74VozplJHxpNsZFm4jFABmJMnlqLb/AH0EcQuWGVtIcH+v/eqPPZH3 W8QOOe9a6x4ZEbSPJQbcvKpSbE9Gb9tvP/aRfY340vtd7/7aH90/jWs/JsP6y/ZTRYRsMqpI8wtV TFZlfab0/wCrwf8AL/xpDNeEf/jwf8oVrRw9f6OT9w/hThw5f6OT9z/CjiOzIB7z+gh/5Qp2u+6R RD/hL+Fa4cP/ANm/7tO/J/8Asn+wUcRWZANxDokY/wCEv4U4HiGPq/8ALX8K1vsH+yf7KVbKM5BR gR6UcQsyP/1E/WA/+C/hWq4b2Tu34UOKcV4nHZ2mgOAAGdgTgbDlRvYo/wBVvsrF9puM8Qhu5bbv 5TbQ4RIixIxgE7H1qZNRVhZ6Txm7sOw3DLG94RE893PqDTTNrKrjB3GwOfL1qo4H9JN5LxuOO492 4OhY1Ow1Hb7P88q86vu0dzxLgdpZySDRbKwQZ33JO/21TWd5LHdqy7tkDLHAGfWoUpOWhNn11b38 eMB1YlQwGeQPKi+0s2MECvFPo/7QzXnGZbi9uVVXUqct4eYChf8AOwr2KLJUFcYPU11RakrBSZIM kn9Jmmd/IowCaerKnvneka5j6Yz8KP8AQ/8AoDUZGxgk0YQTY8IGKelzEqZOkfCs/wAV+kHgfB75 rO6u9EqgEqByzScqEkvZ8uPcNJHhjkHyNNQDIycDlUTvM4AAHSpUZ7oagSR0rkcaESoZTG6tkSAc wRtihSzGWcuSASTqx0NB193qypwR50NSDk5OOnrQkxItkvpBwy5gCBkZkbWdyunIHyOaceJCG1MU WFMiqNQwTt1PPf4VEVlGHVMNjOM7Uy4k14fbOMY6VSk+gvRO4hxObiNys87uWEaoNTk8hUR5nx4X PPcVERtirbDPImjEIVyMn4UmnYCd43yFNnuMrp7xs8qarYYjf7KcVTB268xvRpMD0fsVALns3HIy EnvHGW+NbHhlpogkxEnvfW+FZbsHIv8AJhF0a3719s78/KtnbQju2/Nxc/rHNdK6KK684lBw9lW6 eCIuNS5HMVGTtHw93VEuYGdtgqnc1Q/SOMJwzl7jcvlWO4Nj8u2edwJOVFDPTj2isCNriPHpigv2 l4cAc3cQ+a/jXkD3KazpYg52A6UCaYvgAr8fOpGevN2l4fISEu42IUsdOk7AZJ97yqrn7S8JfObz /pH41geCSa+JMuB4reYf/raqwPvzxQM9SWOO8giuYmJikJ0kjnjrWvsIW9hi0quCu1ZXs2nedluH t/W/ia2VhCPYoswAnTz23pxQpHGF/wBmqjj1xNw3s9dXsOO9h3Gc43YD+2r4wj+gSqXtPA8nZDiM cURMhXwogzk6gdqok86/l3xU5y8II6BD+NbXtJf3PDuzEV/asFmJTcjIw3PavKxwnibEn8nXfygb 8K9S7U2dxddgoooYJHn0Q/m1UlumdqQzFQdtOMS3MSNNHpLgH82Nxmtf244hecFsLWWzkEbM+hiU VsgDbmDXnlrwDjCzxk8MuwAwO8Ledej/AEh8NuuIcGtktIHmdZ8lUGSBg0LoT7Ml2f7T8V4hx+yt bi5V4ZZNLL3KDOx8hXqTxgStl8ctvlXk3Zvs9xa27R8PnlsZUjSdSzMMYGd69jwe8OCoyoO4pIGR dAx+kryrtm3ddprlchlwhPr4RXsGG/XT7K8h+kUPF2ncgrlokO3wxU5I2qEZabCn82PDjpTFbWoQ EkZzgCmxTBGIcBweZqdAw0kxgMgzy2xWT+odFhwi99lmilRmJjcMBnAx1Hzr00/SDdy3ntMhxoUq kUW6Afrk53P+dq8oWViNOSFznbn8zRUuXhVkHuHcqeRqVkroR7pY9qWc8QmkkTTDAphTmcf2nlUf ifb+azs7aaCwMveL4mbkGzsMD4E15Bb8YmS3NumQjkE+uP7KvLG0u+Jlbm4ybUdCT4h1x6fxrbHk ch9l9c9peN8eczGd7a1jXB9mkKAHPPP1vU8qzN1b3lxOzy3MkzctbyNkj7a1d5PZWdssbqVRl0qw HhHpWQHHZbNngil/Nqx07DlRkmk9howUCa3ILYxvUhQCBl8qaAgChWBJJGDT3ADE5I25VmwFlIEe Mn3tt6GW0qCDtmukjyurOw6UxXIdTp5efKmkNInQS6QNjqxzNOYl1KrpyaVHBILAdOYpiuqyklRz qCRQuWBwNXTO1OYAvgHSB0xSd4pOvbbkK4umVY7nG5zRYIKsRbJCMV8xvQJdceWwSp5mj+3uHRvC BpxpBpO9NwzCQ4VhjYcqhWnsDT9i+KW1ijGUxGaQ6I1dsYz57V6jwu4S6t3YLBgNjOc52514VHbJ ExHflgMkZQA/H3q3fZntOeHcPe2i4ZLcKhG8YG23XeumM1RrxYv0otpt+FFccm5culY7s/IH45Yk nfvVH31rO0pve2NpbrZ2DpNakgxlhuDz54xjFVHBexnH7bjNnPLw9lijmVnJkU4AO/WqUrWgcTIT BVVicamJx9tRQTWtf6P+0kkjH2DAJ2zIv402fsTf8M4fLc8TjMOGVY1Vh4s88mk3W2CTbKjs7vxu JfNJB/0NVX1FbbhnZW/tZ7e+hs5H1Lqj1SDDBvD5ftChfyFvcamgcYBP6QclOD086Smh8WbPseur sjYHOMFhyz1Na6w0NaIV70+oJx/GsHYNxrgfCYrOO0gMUTN4nfLdSeXzrY9nbt5+GDXKEKsw0xqM c/gaqM03QpR1ZZ6R+pN++fxqo7Q64+ynEzGXjdY3IbVhht55q61f7aT5IPwqv4nbe3cFvrNJMPMG jDSA7Er1wM1ZB4H+VeIlt765x/vW/GvXO0zP/wCm3eqzBhBC2oHfJ0fjWXH0V8Rz4uI2Q+CyH/tr f3/BGvuxw4P34VzFHF3oRiMqF3xzxtRQ2eGW91cGaMtPIfEObmvWPpLX/wC1omG2LleXlhqpovos kjILcVXY52t2/Gtr2i4InHuCR2BnaHxh9fd6j4fTPrSoR412ZY/yo4WScj2qPn/WFe8lMyKdCHwD cn41hbD6OLewv7e7/KkrtDIsgUW4GcHOM6q3WpXZQEZiF3wcY++hDYJp4VYqVjyDjrz+yvJvpPAX tFE4RRqt1905B3NetexW5JJtCT64/GvLPpNtQOP23dwlF9mGc8veNKXQkefFt6nWly2lkTwLj3Qf eqHIgUnYfCnwsmnCoC3mTis5JNDaLXvw+Dp5V3eltyMY60xQBCML4sUNtYDAadJ32PKsOCIotOGr DPexrK5MeR8q2gvo3D26MywKNOWOCfQE15eH0SZGTv0qfDO5Byx+2tY/UaLzifE7pW7oiVkxjEu5 HQ4qhZ2Y57s/ZUpZu8AOcHFRyz596hx5Bxsp1YoVBO1ElOog5oYAZAwO56UjvkYO29HbKSHsS6lR z8hSRRkqHY5AOMVwQKisM7+98KKdgNIGn0pkhiyomFzg86jy/mzkAhfPzpY5Mrg/DFK5Vk0np9xq egQkLsFYnGDtijatcTKCBpGd+tR4zqYA5GetEHhbHPzofY2gPecs0eJzjOelDKbucDA2roNtyMno KGBIYlWxn+kH/SK2HYqa4E86rKgh1Rlww58sfKs3bcOlu4xIoBADA88nIAHKtR2dWThQuNcMuJNG nTGTyO9JSRsoujbdnoFEt3J3wQtM+4bGd/j6Vfdyp/1on/iN/eqg4LfLHLKjNp1KsmChz4ix/Crl uKQqN5Rn/dmtItJBJOw3s6cu/P77f3qzPbOBPyakevUGLE7k8kYjmfMCr/8AK0WnPeZH+7NZrtbf iZIFD7YlB8OP5tvxpTaocU7JFhBH+SeGNk5MCk8+jpUmSCPun3PuzdP2xVJbcWuY+G2cQtZCUhCg 5AzkqR/CjNxe7eNx7I66llUZcfWbNCmqBxZPvIkEU2CdjL0/YqV2TYrwtlV41AlbAYf41Q3PFrmV ZD7MQGZjvIORTT5Vc9j2Y8OkHdqxEhyS3w9KIyTmqFJNRNHrb+mhHy/xqJOFOp/aRq8lYgfZmpf5 z+ij/e/wpGWQjdUH21uYmOu+LXSX3fHvlMQISFJcpLnq23T4135e4k+4sIvm5rRT2epskJ+7QfZF HVB8v8aKAy8tzxSa/jvO6CugwEEj6PmoOKlHi3GzygtB/wDBv71X/s4/WT7P8ad7OuPfSlQWZuGe 8uL2C5lgVbqPKM4VtOk9AM4rU2gjVS3jUtudKkZ+6hJAgbPeJ91S4yq/z6/IiigC+A8jL/1CvLvp RUDi1iw7zJgI8RP6x/GvUQ4/pmPwUfhWF7f8KuOJ3Vibdg5RHBVyFPMeeM0p9AeRSDVvj0piINPr mtJP2U4hGCDbyHrlRnH2VCbg8kLDWGUjnlcVi8iC6BqzCEcht1qJLIScAj4VMe2ZUwDn41F9mYnO DnPTepi1diTBpLhWQjApVfB3c+gprxGNTnJY9KRUdsh0YNjY1oqAnQP+aG+csd/LajZ1b5qEiGNA Dk4byo/eY20n7KfJDTSK1TpjAG/wob5zjGKIRoOnO3X40x0O5JBHTekhkqIlUUD4VwChiM4A6U1S vc4BGRzpmpWQ596p/RCq2OQ2zTiBpZyCQaGGIOMZFPYgx4Ax6UDOTKjfy2p2Sfd5tTAAfe92u1eI Y2HrQCOZzpKinRxszqg3Y8sU3QSeXrzqZZRDvjI/uL055/wpN0OrLO2uby1iWOG4ljGdlRVOT1+y jJxLiWtSL2c75I2GR50BpAVz0IGc45dM+nkftpVI67HO+cc8f/161mdCpaJT8W4jC3eQ8Q7mSRcE uM6sfI0I8d4yRk8eg5Z93p+5Xd1PKE7qK1kTn+dZQQc+ppY+H8Rml0xWfDy25wDEcefWnDoGI/Gu Kl9uPqOQI0nn+7Q3vruYF5uIvcOMjWM5Awdv4057a71HJ4SuNt+5NBmSSNPFLZsf9jpGPjgfZTl0 JCxzSso1XVwRjIPenYefPlRsOTpZ585wQZTsfLnzNQ4GK497VnbGMg46ftVMTS2BgAgEYUjAGRnH p5/dUsLOWLUQC0hycY7w9OY59P8AxWp7H8cs+FQXUNxHOwBVwyDYjHqR5Vm9sH3cYBOrGNPQn9n9 Uc/Oo8rsveFdRL4Daj4vnjbNUnx2LJ0esx9quGTBTHaXDg9Qqf3qV+0lkpwOHznfHJPxrzLg9wLe 4cSqZFIxsMireXicERXuYUJ+tlc7elWs2tmKiv02b9o7ZFJXh7n5qKa3aSJRkWXT+kH4VkkvoDlg kYJ6EAGluJJFQtCsCvn65qlkbK4o1H8qF05NpGp8jKPwpn8q8DxWsKnoDN/hWZgvCyB3aIHHLX1+ yntdB1OWiXBIzqzy+VHNhwRoB2ufUf8AR4AvQ96Tn7q49rp1UkwwA9BkmsjHxYvJIhK5jB6Ghx8S M8+lpFC78+mOvOjmw4mzTtTesDmOADpiNz/bVRxPtMs9wkd/bqzKCYyilcZ+J9Kr4rxTOEMoPlpX P9tQOLwyS3KyEPpCAZKlcGpnN0KWlaLmy4lw2Rce0vbzciCSBnrjpU9kkmwYZ7eeLHJtyRWEWPf3 lBo0ZkhbWsunH1gayWQzWT2au54dG0TM/DYtX6wbT1qAnDeG3EWTDLAdWCQdQx/5oNpxy9jUItwH 3+sur/GrK17TxMypcwo7D3mAp3Fj5JkVOyNtcZaC6Q45B13+dCl7K8QjbSkCSAdVIH8a0cU/Aro5 DCJv2WK59KsxYR6fzN5Oi+akH+z0quCY+MWedzcHvoDiSzkHpjNRzEFJBiwfLFeoQWDxsWe5MoO3 iXBFENjGxz3afvUvEvZLxI+e5849zB61wRtIB32p2vKYO9MZzrGM4FalDzJiPGN+Waamx8VOaXAU KNuu3Wk1ZB3pAOOzDJ50vM7Y386FqzjfNEjV391c/KhgdnQTqAOOhoiM87qMZJPQVJisWVtcqgrz xmriO0tGjXEYG2xBwazeRIXKirgsZJZ+67slgMldJ2+O1TE4PxDulPcOsbDOrQ3i+eKlx21si6QM 55knn8akMwKBWkYqBgDVyFZvIvQc0R04RdR4AtrnSBse6fA+71pLjh91EmVt5QoHVG5fZU3v5G2M 0hA5eI4p0CzXsggV8lurvgfaaTmvRfl/hUL7JpDS2U7uo0krLpDf9NKkts0pWDhdySwAwLhhqHTI Aq0a30ztC67qcHBzvU2zSZPz8UtvF3fJXwSfkQaI5K1QeRvZV6LG2sjMeCXaXMjlA7ynuz58xUWe 0ZXSKOzghLjOI5zJ9pycVc3M5adWa67/ABt4lwB8NuXyoVzo74CMp4uqHK/w2pvJf4T5aKYWVwSF BhUA4Pj+6i2tnIZ8GRQOp1DnRLifu3ZAwLDyFMjKMFLq0khPI5p77YlN/wCTL2CxkmiCxC3bbUW1 DPx54qG9g4nyjw4A56x+NDj70rkJ3a+XnXasMNTY2+NLnf4Pz/wL7G4H6aEZGM53oXscmwMkLjPU tt91LFcYkBAOeQJwcfKmiUadic9Qd80nP+CeZv8AAghA5NCTyDANQ5LdJpHaR41J6qhxy+NIJFPM nc12sMw2bb0pKbXQllkuhgsYS282kc9oif8Auons9sEKs2rPXuwD/E0i4c7AgfdTyyrgHHlk0eSQ eafs4W9tkHxtnpgfhT5Le2VBjJPUNg4+6hBh9Vts8xS96i6tW+dgeoo5yDyz9hu6t0kQQ4CjmS3P 7OVPaTvY8PN4FzpXUST8fxqIbmE8yAc9Typ3eRLuHDD05VLlIlyldissBIYquo+RNSomsAAsnDlk 3BOZG3qL3kYHvDfzp6yQqMl8Z8qf2JuQeaS2aQGG0SBfJWP8aRHyCDFBjOMacZ+dB79SzKh25bje m96jfWXPrS+w7Yfw8lRQvkaLDxGSEMY2lBAwp1nA+VQTLkkt0GdhzoLXMa48YI+FH2/Atmnt+0t4 p0uwkI6NsftqQO2JUYaFs/s8qy0M6M4yrZ+ykkYazpR8fCqUpj5yMSwKjVikDgZPWnGRiuNPPnTN OeldhogwCOhOVXPLNRzkcjRBGSaURnO29FoOh0ATm/Q8qsY51QbYHwFQBHnzp4Rs1nJJg9k32kYI JzRUu+mdvKoCxk0QRNz6VDhElosFuQefKpAlCPpxpIqtRGG5FSUQkA4NZuKXRLROScnkMCpVtG02 o7hF3Z9JIUfKoEcZHQmpkSSImCT4uYzWdBFOyZFJ7MZJo5UYA4BIznPoaPB3cVxbznUY/eKtjJx/ nlVYzaFbSQ6A8umakNJ37K4EaMANSqgQDpsOtC62ataJN5Ol7dM4VYyGLF+X3fhRorqecpDotJce GOXZGX+H31U973cuSN+Qo8Uj2s6PF4WHuseY6U1IzId5bXLXEjSrI0oY6yxySfOhwo6q2kNq9V5V KdmLEMWyTkY6muDBgAwyc7E86vyWqBytUQ5bi8C+FTgcs7Usc0xXwozP5NyNSdY7wYBAI3INO1Mu nDAY5eLFK4+ibXohi5Zjhw3P6o5UyQOcyaXRasAzADG56g8qcORzyPXFNSXofJeiuSSZmVAWfJ1A daNILsrthc88YNS/CQAcbHbUKNEzPjTpJzgZPKnzXobkvRTOJ9Wkh1PwxThDIYwrI/PG9WhkXk7Z wdxSu8coGCTvy/V+dHl/gc16KyGGZpAqK3xqXOqaFYbMeeTjfrUho1EngclRyLbU2MSy6gUVUxjx Uc2y02yt0K2ogAjnjOaUxxjGmRdxywasDYjOR4cHfbnQJLLcFAD5EDFXzRVkdgugKqocfW60xdO4 wTvtvUpLFhKCz4XO5HSnraEAqwPxxT5RDRy24iGNO7c/F/ClEC5yy4x1zSpbaMkMdI25ZP31J0KF yc4Pn1rKT9GbTGY1DUDlVxnJ5UxUjDAkL6kUXQM5C7edMKgcuYFZ8iKaOLZ16VJAoWR5GnuyagCN hz0igkjPu/fRYmjNi3BBOKUWmTjBqzEQ88eWN6J3GNJ0k5GQTW3NmikVQtQBjTTktsjlViYs+7jP WlWNtW4GfjS5sLIBtDjYbedOFpgb8s1YmB9IIwTml7t9iV2JIG+320cmDshi1wOWaII0XbGc1JVD t4sA+vKiaEK4wMbfdUtisipHk4UZ6cqkpEqjxE05e72IYjHQGkYyaguoac9KQ1IKq92FfQxH8aHK S5JClVO4U9KejtnTkYyeXWnTd7M/51QcbkjbP20tDtUDiCgAN4g+/rSO+G1BTpBI5UWSTGQMZ677 YpolXOtjhzgAeeaT2NSVA5FMzKU2I96jMHRtRUgdM01rhSRjbfkOtNXLnJVscxU1YaCa84OBvjrR CUI1EZ26ChAbYK6VxjNFRFKZJJwOePvoSJaGIq7gDJPXanrGdWVTO3nvXMyM+QTS5IydWcU7JHkY YDO2rkQMGnLGiMpY6gM+7sc9OY5UKJnbmMD1pzzyF9JbJUADO+KYxmWbOpW3ydhS45BQ3mQaXBUk 53rgzI2ADnHMdKRNBZoLXuozCrlsZk1AAA+nnTHhXUSihRjrzofeKgAyc/dThMM5xvjy6UDVD9Gk HPnzp0Eg0EkZXOKiyFpCWJJzTYnILIuRjc55UFonSzFWU5xkb43oDzgnAABXc7c6GsmrKk/DA/z5 0R1gaLmQRnPX4fxqiq9Do/HrYMuAMnLAH5A0L2hl1AnY7YFCaQRBB7w8+opneAjGBjNT2FEuGXUG 3264qQVHdavTIFVysEJKkb+dOafxFd8Y2p0PRID45kjO9Dll0LqzkGmLKHfHIY+RoUxQLgZ+dS4i 0OMyPz54+GaG+nUdzUUe6WBGx5dabrPnVJUZyCr1pw/Rt8K6uqiULF75+FMHL7P411dTKQV/0S/E 136vxFdXUkN9nfW+2iR/o/mK6upMhjV95fnXfXk+X9ldXUAMT3x8TUyX3/kP4V1dSfQ/wEPef500 c0+NdXUiQEf6Wjp+lX4V1dQWuiUeQ+H4Uw/pD/Urq6gbF+qfgK6P9G39WurqRAU/W+IoSc2rq6qZ Q/66U8+4fiP411dSB9ER+fzFEX9Iv9U11dQhLoc3vH4UNP5z+sa6uoRURr8x8TXL77fCurqZaI0v 6GhHkPhXV1CGGi/Qt8aOP0kldXU2JjP9Xb4rTpvcHwrq6kIhLyNDf3z8a6upmbP/2Q== ------=_NextPart_000_0000_01CAEAC9.E21FA050 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/html/common/css/ie_basic_classic.css BODY { SCROLLBAR-ARROW-COLOR: black; SCROLLBAR-FACE-COLOR: rgb(230,230,230); = SCROLLBAR-DARKSHADOW-COLOR: rgb(110,110,110); SCROLLBAR-BASE-COLOR: = #000000; SCROLLBAR-HIGHLIGHT-COLOR: rgb(250,250,250); = SCROLLBAR-SHADOW-COLOR: rgb(190,190,190); SCROLLBAR-3DLIGHT-COLOR: = rgb(235,235,235) } SELECT { BEHAVIOR: url(/html/common/select.htc) } ------=_NextPart_000_0000_01CAEAC9.E21FA050 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/html/common/css/basic_common.css BODY { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small; PADDING-TOP: 0px } FORM { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } H1 { TEXT-ALIGN: center; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: large; = FONT-WEIGHT: bold } H2 { TEXT-ALIGN: center; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 8pt; = FONT-WEIGHT: bold; PADDING-TOP: 0px } .pagetitle { TEXT-ALIGN: center; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 18pt; = FONT-WEIGHT: bold } TABLE { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small } TH { TEXT-ALIGN: left; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small; = FONT-WEIGHT: bold } A:link { TEXT-DECORATION: none } A:active { TEXT-DECORATION: none } A:visited { TEXT-DECORATION: none } A:hover { TEXT-DECORATION: underline } .left { TEXT-ALIGN: left } .center { TEXT-ALIGN: center } .right { TEXT-ALIGN: right } .bold { FONT-WEIGHT: bold } .nowrap { WHITE-SPACE: nowrap } .pad1 { PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; = PADDING-TOP: 1px } .pad2 { PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; = PADDING-TOP: 2px } .pad3 { PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; = PADDING-TOP: 3px } .width100 { WIDTH: 100% } .btnverdana { FONT-FAMILY: Verdana,sans-serif; FONT-SIZE: 8pt; CURSOR: pointer; = FONT-WEIGHT: normal } .btn { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 10pt; CURSOR: pointer; = FONT-WEIGHT: normal } BUTTON { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 10pt; CURSOR: pointer; = FONT-WEIGHT: normal } .btnhide { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 11px; CURSOR: pointer; = FONT-WEIGHT: normal } .btnbold { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 11px; CURSOR: pointer; = FONT-WEIGHT: bold } .btnboldhide { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 11px; CURSOR: pointer; = FONT-WEIGHT: bold } .btnred { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #dd0000; FONT-FAMILY: Arial; COLOR: yellow; FONT-SIZE: = 11px; BORDER-TOP: lavender 2px solid; CURSOR: pointer; FONT-WEIGHT: = normal; BORDER-RIGHT: black 2px solid } .btnred:hover { BACKGROUND-COLOR: rgb(255,0,0) } .btnlight { BORDER-BOTTOM: black 1px solid; BORDER-LEFT: #e0e0e0 1px solid; = BACKGROUND-COLOR: #d0d0d0; FONT-FAMILY: Arial; COLOR: #004080; = FONT-SIZE: 10px; BORDER-TOP: #e0e0e0 1px solid; CURSOR: pointer; = FONT-WEIGHT: normal; BORDER-RIGHT: black 1px solid } .btnlight:hover { BACKGROUND-COLOR: rgb(240,240,230) } .btnlighthide { BORDER-BOTTOM: black 1px solid; BORDER-LEFT: #e0e0e0 1px solid; = BACKGROUND-COLOR: #d0d0d0; FONT-FAMILY: Arial; COLOR: #004080; = FONT-SIZE: 10px; BORDER-TOP: #e0e0e0 1px solid; CURSOR: pointer; = FONT-WEIGHT: normal; BORDER-RIGHT: black 1px solid } .btnlighthide:hover { BACKGROUND-COLOR: rgb(240,240,230) } @media Print =20 { .btnhide { DISPLAY: none } .btnboldhide { DISPLAY: none } .btnlighthide { DISPLAY: none } } .dropdown { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 8pt } LABEL { CURSOR: pointer } .hand { CURSOR: pointer } .inputbox { FONT-FAMILY: Verdana,Arial,sans-serif; FONT-SIZE: xx-small } .inputboxlarge { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small } ------=_NextPart_000_0000_01CAEAC9.E21FA050 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/html/common/css/basic_classic.css @import url( /html/common/css/basic_common.css ); A:link { COLOR: blue } A:active { COLOR: red } A:visited { COLOR: blue } A:hover { COLOR: green } .linkcolor { COLOR: blue } .linkcolor:hover { COLOR: green } .headerbackground { BACKGROUND-COLOR: #e0e0e0 } .darkheaderbackground { BACKGROUND-COLOR: #d0d0d0 } .rowbackground1 { BACKGROUND-COLOR: #eaeaea } .rowbackground2 { BACKGROUND-COLOR: #f0f0f0 } .row1 { BACKGROUND-COLOR: #eaeaea } .row2 { BACKGROUND-COLOR: #f0f0f0 } .white { BACKGROUND-COLOR: rgb(255,255,255) } .btnverdana { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnverdana:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btn { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btn:hover { BACKGROUND-COLOR: rgb(254,220,71) } BUTTON { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } BUTTON:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btnhide { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnhide:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btnbold { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnbold:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btnboldhide { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnboldhide:hover { BACKGROUND-COLOR: rgb(254,220,71) } ------=_NextPart_000_0000_01CAEAC9.E21FA050 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/client/util.js?2 var browser_type =3D '';=0A= if( navigator.userAgent.indexOf( 'Opera' ) !=3D -1 )=0A= browser_type =3D 'Opera';=0A= else if( navigator.userAgent.indexOf( 'Safari' ) !=3D -1 )=0A= browser_type =3D 'Safari';=0A= else if( navigator.userAgent.indexOf( 'Gecko' ) !=3D -1 )=0A= browser_type =3D 'Gecko';=0A= else if( navigator.userAgent.indexOf( 'MSIE' ) !=3D -1 )=0A= browser_type =3D 'IE';=0A= else=0A= browser_type =3D 'NS';=0A= =0A= String.prototype.trim =3D function() {=0A= return this.replace(/^\s+|\s+$/g, '');=0A= }=0A= =0A= String.prototype.striphtml =3D function() {=0A= return this.replace(/(<([^>]+)>)/ig,"");=0A= }=0A= =0A= String.prototype.stripjs =3D function() {=0A= var tmp =3D this.replace(/(]*>.*<\/\s*script[^>]*>)*/ig,'');=0A= tmp =3D tmp.replace(/]*>/ig,'');=0A= return tmp;=0A= }=0A= =0A= Number.prototype.format =3D function(decimalNum, bolCommas) {=0A= if (isNaN(parseInt(this)))=0A= return "";=0A= var tmpNum =3D this;=0A= if (isNaN(decimalNum)) {=0A= decimalNum =3D 0;=0A= }=0A= =0A= // adjust to requested precision=0A= tmpNum =3D tmpNum.toFixed(decimalNum);=0A= =0A= /* Create a string object to do our formatting on*/=0A= var tmpNumStr =3D tmpNum+''; // calling 'new Sting' does weird things = here, so do an explicit cast=0A= =0A= /* See if we need to put in the commas*/=0A= if (bolCommas && (this >=3D 1000 || this <=3D -1000)) {=0A= var iStart =3D tmpNumStr.indexOf(".");=0A= if (iStart < 0)=0A= iStart =3D tmpNumStr.length;=0A= =0A= iStart -=3D 3;=0A= while (iStart >=3D 1) {=0A= tmpNumStr =3D tmpNumStr.substring(0,iStart) + "," + = tmpNumStr.substring(iStart,tmpNumStr.length)=0A= iStart -=3D 3;=0A= }=0A= }=0A= =0A= return tmpNumStr; /* Return our formatted string!*/=0A= }=0A= =0A= =0A= if (!Array.prototype.indexOf) {=0A= Array.prototype.indexOf =3D function(elt /*, from*/)=0A= {=0A= var len =3D this.length;=0A= =0A= var from =3D Number(arguments[1]) || 0;=0A= from =3D (from < 0)=0A= ? Math.ceil(from)=0A= : Math.floor(from);=0A= if (from < 0)=0A= from +=3D len;=0A= =0A= for (; from < len; from++)=0A= {=0A= if (from in this &&=0A= this[from] =3D=3D=3D elt)=0A= return from;=0A= }=0A= return -1;=0A= };=0A= }=0A= =0A= Array.prototype.removeAllEntries =3D function(c) {=0A= for (var f=3Dthis.length-1; f>=3D0; f--) {=0A= if (this[f]=3D=3Dc) {=0A= this.splice(f,1);=0A= }=0A= }=0A= }=0A= =0A= if (typeof uneval !=3D "function") {=0A= uneval =3D function (o) {=0A= switch (typeof o) {=0A= case "undefined" : return "(void 0)";=0A= case "boolean" : return String(o);=0A= case "number" : return String(o);=0A= case "string" : return '"' + o.replace(/"/g, '\\"') + '"';=0A= case "function" : return "(" + o.toString() + ")";=0A= case "object" :=0A= if (o =3D=3D null) return "null";=0A= var type =3D Object.prototype.toString.call(o).match(/\[object = (.+)\]/);=0A= if (!type) throw TypeError("unknown type:"+o);=0A= switch (type[1]) {=0A= case "Array":=0A= var ret =3D [];=0A= for (var i =3D 0, l =3D o.length; i < l; = ret.push(arguments.callee(o[i++])));=0A= return "[" + ret.join(", ") + "]";=0A= case "Object":=0A= var ret =3D [];=0A= for (var i in o) {=0A= if (!o.hasOwnProperty(i)) continue;=0A= ret.push(arguments.callee(i) + ":" + arguments.callee(o[i]));=0A= }=0A= return "({" + ret.join(", ") + "})";=0A= case "Number":=0A= return "(new Number(" + o + "))";=0A= case "String":=0A= return "(new String(" + arguments.callee(o) + "))";=0A= case "Date":=0A= return "(new Date(" + o.getTime() + "))";=0A= default:=0A= if (o.toSource) return o.toSource();=0A= throw TypeError("unknown type:"+o);=0A= }=0A= }=0A= }=0A= }=0A= =0A= /*************=0A= this function will take a string and split it into equal specified parts = and return as array=0A= **************/=0A= function splitN(intext, splitlen) {=0A= var tmparr =3D new Array();=0A= var textLen =3D intext.length;=0A= if (textLen > splitlen) {=0A= var si =3D 0;=0A= var ei =3D splitlen;=0A= while (si < textLen) {=0A= if (ei > textLen)=0A= ei =3D textLen;=0A= tmparr.push(intext.substring(si, ei));=0A= si =3D ei;=0A= ei =3D ei + splitlen;=0A= }=0A= } else {=0A= tmparr.push(intext);=0A= }=0A= return tmparr;=0A= }=0A= =0A= /*************=0A= this function will take any object, expand and display the content to = the browser)=0A= **************/=0A= function explain(obj,rec){=0A= var s =3D "";=0A= s +=3D explaininner(obj,0,rec);=0A= alert(s);=0A= }=0A= /*************=0A= this function is a recursive subset for the function above ... only call = above function=0A= **************/=0A= function explaininner(obj,lvl,rec) {=0A= var rx =3D "";=0A= var sp =3D lvl+"";=0A= for (x=3D1; x<=3Dlvl; x++) {=0A= sp+=3D" ";=0A= }=0A= for (var key in obj) {=0A= var k =3D obj[key];=0A= if (typeof k.length =3D=3D "number") {=0A= rx +=3D "\n"+sp+"-"+key+":"+k.toString();=0A= } else if (typeof k =3D=3D "object") {=0A= rx +=3D "\n"+sp+"-"+key;=0A= if (rec || (!rec && lvl=3D=3D0))=0A= rx +=3D explaininner(k, lvl+1, rec);=0A= } else {=0A= rx +=3D "\n"+sp+"-"+key+":"+k;=0A= }=0A= }=0A= return rx;=0A= }=0A= =0A= /*************=0A= this removes x'' from a string=0A= **************/=0A= function rmxId(rstr){=0A= return = rstr.substring(0,2)=3D=3D"x'"?rstr.substring(2,rstr.length-1):rstr;=0A= }=0A= =0A= /*************=0A= this adds x'' if necessary to a string=0A= **************/=0A= function xId(dstr){=0A= return dstr.substring(0,2)=3D=3D"x'"?dstr:"x'"+dstr+"'";=0A= }=0A= =0A= function getWindowHeight() {=0A= var windowHeight=3D0;=0A= if (typeof(window.innerHeight)=3D=3D'number') {=0A= windowHeight=3Dwindow.innerHeight;=0A= } else {=0A= if (document.documentElement && document.documentElement.clientHeight){=0A= windowHeight =3D document.documentElement.clientHeight;=0A= } else {=0A= if (document.body && document.body.clientHeight) {=0A= windowHeight =3D document.body.clientHeight;=0A= }=0A= }=0A= }=0A= return windowHeight;=0A= }=0A= =0A= function getWindowWidth() {=0A= var windowWidth=3D0;=0A= if (typeof(window.innerWidth)=3D=3D'number'){=0A= windowWidth=3Dwindow.innerWidth;=0A= } else {=0A= if (document.documentElement && document.documentElement.clientWidth) {=0A= windowWidth =3D document.documentElement.clientWidth;=0A= } else {=0A= if (document.body && document.body.clientWidth) {=0A= windowWidth =3D document.body.clientWidth;=0A= }=0A= }=0A= }=0A= return windowWidth;=0A= }=0A= =0A= function changecss(theClass,element,value) {=0A= var cssRules;=0A= if (document.all) {=0A= cssRules =3D 'rules';=0A= } else if (document.getElementById) {=0A= cssRules =3D 'cssRules';=0A= }=0A= for (var S =3D 0; S < document.styleSheets.length; S++){=0A= for (var R =3D 0; R < document.styleSheets[S][cssRules].length; R++) {=0A= if (document.styleSheets[S][cssRules][R].selectorText =3D=3D = theClass) {=0A= document.styleSheets[S][cssRules][R].style[element] =3D value;=0A= }=0A= }=0A= }=0A= }=0A= =0A= function createCookie(name,value,days) {=0A= if (days) {=0A= var date =3D new Date();=0A= date.setTime(date.getTime()+(days*24*60*60*1000));=0A= var expires =3D "; expires=3D"+date.toGMTString();=0A= }=0A= else var expires =3D "";=0A= document.cookie =3D name+"=3D"+value+expires+"; path=3D/";=0A= }=0A= =0A= function readCookie(name) {=0A= var nameEQ =3D name + "=3D";=0A= var ca =3D document.cookie.split(';');=0A= for(var i=3D0;i < ca.length;i++) {=0A= var c =3D ca[i];=0A= while (c.charAt(0)=3D=3D' ') c =3D c.substring(1,c.length);=0A= if (c.indexOf(nameEQ) =3D=3D 0) return = c.substring(nameEQ.length,c.length);=0A= }=0A= return null;=0A= }=0A= =0A= function eraseCookie(name) {=0A= createCookie(name,"",-1);=0A= }=0A= =0A= /*************=0A= Formats the date with the given date mask. The mask is returned and the = internal date is not altered.=0A= **************/=0A= Date.prototype.formatDate =3D function(strMask){=0A= /* Create the values for each part of the potential date mask.*/=0A= var x =3D this.getMonth()+1;=0A= var objParts =3D {=0A= "d": this.getDate(),=0A= "dd": (this.getDate().toString().length =3D=3D 1) ? ("0" + = this.getDate()) : this.getDate(),=0A= "ddd": [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ][ this.getDay() ],=0A= "dddd": [ = "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" = ][ this.getDay() ],=0A= "m": x,=0A= "mm": (x.toString().length =3D=3D 1) ? ("0" + x) : x,=0A= "mmm": [ = "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" = ][ this.getMonth() ],=0A= "mmmm": [ = "January","February","March","April","May","June","July","August","Septem= ber","October","November","December" ][ this.getMonth() ],=0A= "yy": this.getYear().toString().substring( 1, 3 ),=0A= "yyyy": this.getFullYear()=0A= }=0A= =0A= /* Check to see if we have special date formatting options.*/=0A= switch ( strMask ){=0A= case "short":=0A= return( objParts[ "m" ] + "/" + objParts[ "d" ] + "/" + objParts[ = "yyyy" ] );=0A= break;=0A= =0A= case "medium":=0A= return( objParts[ "mmm" ] + " " + objParts[ "d" ] + ", " + objParts[ = "yyyy" ] );=0A= break;=0A= =0A= case "long":=0A= return( objParts[ "mmmm" ] + " " + objParts[ "d" ] + ", " + objParts[ = "yyyy" ] );=0A= break;=0A= =0A= case "full":=0A= return( objParts[ "dddd" ] + ", " + objParts[ "mmmm" ] + " " + = objParts[ "d" ] + ", " + objParts[ "yyyy" ] );=0A= break;=0A= =0A= default:=0A= /* There was no special date formatting, so just use the mask.*/=0A= return(=0A= strMask.replace(=0A= new RegExp( "(d{1,4}|m{1,4}|y{4}|y{2})", "gi" ),=0A= function( $1 ){=0A= return( objParts[ $1 ] );=0A= })=0A= );=0A= break;=0A= }=0A= }=0A= =0A= /*************=0A= generic time format=0A= **************/=0A= Date.prototype.formatTime =3D function(){=0A= var a_p =3D "";=0A= var curr_hour =3D this.getHours();=0A= if (curr_hour < 12)=0A= a_p =3D "AM";=0A= else=0A= a_p =3D "PM";=0A= if (curr_hour =3D=3D 0)=0A= curr_hour =3D 12;=0A= if (curr_hour > 12)=0A= curr_hour =3D curr_hour - 12;=0A= var curr_min =3D this.getMinutes();=0A= curr_min =3D curr_min + "";=0A= if (curr_min.length =3D=3D 1)=0A= curr_min =3D "0" + curr_min;=0A= return curr_hour+":"+curr_min+" "+a_p;=0A= }=0A= =0A= function whoCalledMe(a) {=0A= alert("Called by: \n" + a.callee.caller.toString());=0A= for (var x=3D0; x ''*/=0A= if( quotetype =3D=3D 'db' )=0A= {=0A= var tmp =3D '' + this;=0A= return tmp.replace(/\'/g,"''");=0A= }=0A= =0A= /* Javascript quote: ' -> \' and " -> \" and \n --> \\n and \r --> \\r*/=0A= else if( quotetype =3D=3D 'js' )=0A= {=0A= var tmp =3D '' + this;=0A= return tmp.replace(/\\/g, "\\\\").replace(/\'/g, "\\'").replace(/\"/g, = '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");=0A= }=0A= =0A= /* HTML quote: < to < and > to > and " to " and & to = &*/=0A= else if( quotetype =3D=3D 'html' )=0A= {=0A= var tmp =3D '' + this;=0A= return tmp.replace(/\&/g, "&").replace(/\/g, ">").replace(/\"/g, """);=0A= }=0A= =0A= /* tech_id quote: make sure string is of format = x'12345678901234567890123456'*/=0A= /* Returns "raw" tech_id on success, or blank string on failure*/=0A= else if( quotetype =3D=3D 'tech_id' )=0A= {=0A= var tmp =3D '' + this;=0A= if( tmp.length !=3D 26 && tmp.length !=3D 29 )=0A= return default_value;=0A= tmp =3D rmxId( tmp );=0A= for( var i =3D 0; i < 26; i++ )=0A= {=0A= var c =3D tmp.charAt(i);=0A= if( c !=3D '0' && c !=3D '1' && c !=3D '2' && c !=3D '3' && c = !=3D '4' && c !=3D '5' && c !=3D '6' && c !=3D '7' && c !=3D '8' && c = !=3D '9' )=0A= return default_value;=0A= }=0A= return xId(tmp);=0A= }=0A= =0A= /* int quote: make sure string only contains 0123456789-*/=0A= else if( quotetype =3D=3D 'int' )=0A= {=0A= var tmp =3D '' + this;=0A= tmp =3D tmp.replace(/[^\d\-]/g,'');=0A= var tmpint =3D parseInt( tmp );=0A= if( isNaN( tmpint ) )=0A= return default_value;=0A= return tmpint;=0A= }=0A= =0A= /* decimal quote: make sure string only contains 0123456789-.*/=0A= else if( quotetype =3D=3D 'decimal' )=0A= {=0A= var tmp =3D '' + this;=0A= tmp =3D tmp.replace(/[^\d\-\.]/g,'');=0A= var tmpfloat =3D parseFloat( tmp );=0A= if( isNaN( tmpfloat ) )=0A= return default_value;=0A= return tmpfloat;=0A= }=0A= =0A= /* date quote: accepts dates in any of these formats, with any = delimiter character:*/=0A= /* YYYY-MM-DD, MM-DD-YYYY, MM-DD-YY, YYYYMMDD, MMDDYY*/=0A= /* returns a blank string if date does not verify.*/=0A= else if( quotetype =3D=3D 'date' )=0A= {=0A= var tmp =3D '' + this;=0A= tmp =3D tmp.trim().replace(/[\D]/g,'/');=0A= =0A= /* make sure the user isn't submitting 00/00/0000. CUR-3983 */=0A= zerotmp =3D tmp;=0A= if (parseInt(zerotmp.replace(/\D/g,''),10) =3D=3D 0)=0A= return '';=0A= =0A= if( tmp.length =3D=3D 8 && tmp.indexOf('/') =3D=3D -1 ) /* the = date is in a format without delimiter characters*/=0A= {=0A= /* attempt to guess the proper date format*/=0A= if( tmp.charAt(0) =3D=3D '2' && (tmp.charAt(1) =3D=3D '0' || = tmp.charAt(1) =3D=3D '1' ) )=0A= {=0A= /* guessing that this is YYYY/MM/DD*/=0A= tmp =3D tmp.substr( 0, 4 ) + '/' + tmp.substr( 4, 2 ) + '/' = + tmp.substr( 6, 2 );=0A= }=0A= /* Otherwise, assume MM/DD/YYYY or MM/DD/YY*/=0A= else=0A= tmp =3D tmp.substr( 0, 2 ) + '/' + tmp.substr( 2, 2 ) + '/' = + tmp.substr( 4, 4 );=0A= }=0A= else if( tmp.length =3D=3D 6 && tmp.indexOf('/') =3D=3D -1 ) /* = again, no delimiter characters*/=0A= {=0A= /* assume MM/DD/YY*/=0A= var tmpyear =3D parseInt( tmp.substr( 4, 2 ),10 );=0A= if( tmpyear < 75 )=0A= tmpyear +=3D 2000;=0A= else=0A= tmpyear +=3D 1900;=0A= tmp =3D tmp.substr( 0, 2 ) + '/' + tmp.substr( 2, 2 ) + '/' + = tmpyear;=0A= }=0A= else if (tmp.match(/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{1,2}$/)) {=0A= var tmpyear =3D = parseInt(tmp.substr(tmp.lastIndexOf("/")+1).replace(/^[^1-9]/,''));=0A= if( tmpyear < 75 )=0A= tmpyear +=3D 2000;=0A= else=0A= tmpyear +=3D 1900;=0A= tmp =3D tmp.substr( 0, tmp.indexOf("/") ) +"/"+ tmp.substr( = tmp.indexOf("/")+1, (tmp.lastIndexOf("/")- (tmp.indexOf("/")+1)))+"/" + = tmpyear;=0A= }=0A= =0A= var tmpdate =3D new Date( tmp );=0A= if( isNaN( tmpdate ) )=0A= return default_value;=0A= else{=0A= var tmpyear =3D tmpdate.getFullYear();=0A= var stddate =3D (tmpdate.getMonth()+1) + '/' + tmpdate.getDate() + '/' = + tmpyear;=0A= return stddate;=0A= }=0A= }=0A= }=0A= =0A= /*************=0A= initialCaps - Capitalizes the first letter of all words in a String=0A= **************/=0A= String.prototype.initialCaps =3D function(){=0A= return this.replace( /\b\w+\b/g, function (word) {=0A= return word.substring(0,1).toUpperCase() + = word.substring(1).toLowerCase()=0A= });=0A= }=0A= =0A= =0A= /*************=0A= MASK FUNCTION - used to format strings to specifications - = http://jira.fbsdata.com/confluence/x/RR8=0A= **************/=0A= String.prototype.mask =3D function(mask) {=0A= if (!mask) return this; // return original string if no mask is passed = in=0A= =0A= // variables=0A= var newString =3D '';=0A= var reverse =3D (mask.match(/\!$/)) ? true : false ; // if there is a ! = at the end of the mask, this must be processed from right to left=0A= =0A= // if reverse has been established, remove the ! at the end of the mask=0A= if (reverse)=0A= mask =3D mask.substring(0, mask.length-1);=0A= =0A= // establish beginning and ending of loop=0A= var loopPosition =3D (reverse) ? mask.length-1 : 0 ;=0A= var loopEnd =3D (reverse) ? -1 : mask.length ;=0A= var stringPosition =3D (reverse) ? this.length-1 : 0 ;=0A= var stringEnd =3D (reverse) ? -1 : this.length ;=0A= var caseModifier =3D null; // used if < or > are invoked, forcing = characters to be all lower or upper case=0A= var absoluteModifier =3D false // used to detect (\\), which denote = that then next character must be present=0A= var absoluteCharacter =3D null; // used as a placeholder to reduce code=0A= =0A= // setup loop=0A= while (loopPosition !=3D loopEnd) {=0A= =0A= // find the next characters in the mask and the string=0A= var stringChar =3D (stringPosition =3D=3D stringEnd) ? null : = this.charAt(stringPosition) ;=0A= var maskChar =3D mask.charAt(loopPosition);=0A= =0A= // if this is reverse, look ahead one character to see if an absoute = modifier is in place (\\)=0A= // also: don't check the first character in the mask, nothing can = possibly proceed it=0A= if (reverse && loopPosition-1 !=3D loopPosition && = mask.charAt(loopPosition-1) =3D=3D '\\')=0A= absoluteModifier =3D true;=0A= =0A= // if this is an absolute character (escaped by \\), set a placeholder = variable and force the switch statement to default=0A= if (absoluteModifier) {=0A= absoluteCharacter =3D maskChar;=0A= maskChar =3D 'N';=0A= }=0A= =0A= // iterate here, as we may have a situation where a continue is called=0A= (reverse) ? loopPosition-- : loopPosition++ ;=0A= =0A= // process the mask character=0A= switch (maskChar) {=0A= =0A= case '>': // all characters after this must be uppercase=0A= caseModifier =3D 'uppercase';=0A= continue;=0A= break;=0A= =0A= case '<': // all characters after this must be lowercase=0A= caseModifier =3D 'lowercase';=0A= continue;=0A= break;=0A= =0A= case '\\': // the next character must be an exact match, used to = escape=0A= absoluteModifier =3D (reverse) ? false : true;=0A= continue;=0A= break;=0A= =0A= case '0': // required digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/\d/);=0A= var stringToAdd =3D (stringMatch) ? stringChar : '0' ;=0A= newString =3D (reverse) ? stringToAdd + newString : newString + = stringToAdd ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else newString =3D (reverse) ? '0' + newString : newString + '0' ; = // force zero if no digit is present=0A= break;=0A= =0A= case '9': // optional digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/\d/);=0A= if (stringMatch) {=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= case '#': // required digit, space, plus, or minus=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/\d|-|\+|\s/);=0A= var stringToAdd =3D (stringMatch) ? stringChar : ' ' ;=0A= newString =3D (reverse) ? stringToAdd + newString : newString + = stringToAdd ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else newString =3D (reverse) ? '0' + newString : newString + '0' ; = // force zero if no digit is present=0A= break;=0A= =0A= case 'L': // required letter=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else { // force X if no letter is present=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? 'x' + newString : newString + 'x' ;=0A= else=0A= newString =3D (reverse) ? 'X' + newString : newString + 'X' ;=0A= }=0A= }=0A= break;=0A= =0A= case '?': // optional letter=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= case 'A': // required letter or digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]|\d/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else { // force X if no letter is present=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? 'x' + newString : newString + 'x' ;=0A= else=0A= newString =3D (reverse) ? 'X' + newString : newString + 'X' ;=0A= }=0A= }=0A= break;=0A= =0A= case 'a': // optional letter or digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]|\d/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= case '&': // required character or space=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/./);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else { // force X if no letter is present=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? 'x' + newString : newString + 'x' ;=0A= else=0A= newString =3D (reverse) ? 'X' + newString : newString + 'X' ;=0A= }=0A= }=0A= break;=0A= =0A= case 'C': // optional character or space=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/./);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= default: // exact match=0A= =0A= // if this is an absolute character (escaped by \\), use the = placeholder variable and reset the absolute variables=0A= if (absoluteModifier) {=0A= maskChar =3D absoluteCharacter;=0A= absoluteModifier =3D false;=0A= absoluteCharacter =3D null;=0A= }=0A= =0A= if (stringChar) {=0A= var stringMatch =3D (stringChar.indexOf(maskChar) !=3D -1);=0A= if (stringMatch) {=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else=0A= newString =3D (reverse) ? maskChar + newString : newString + = maskChar ;=0A= }=0A= else=0A= newString =3D (reverse) ? maskChar + newString : newString + = maskChar ;=0A= =0A= break;=0A= }=0A= }=0A= =0A= return newString;=0A= }=0A= =0A= /**=0A= * Loads a JavaScript or CSS file late, after the page has loaded.=0A= * @param fNm {String} path of file to load=0A= * @param fTyp {String} type of file to load "js" or "css"=0A= * @param tmOut {Integer} delay, in milliseconds (optional)=0A= */=0A= var lazyLoad =3D function(){=0A= var loadedFiles=3D[];=0A= return function(fNm,fTyp,tmOut){=0A= if(!fNm || !fTyp){return;}=0A= var isLoaded=3Dfalse;=0A= for(var = i=3D0;i