From: "Saved by Windows Internet Explorer 7"
Subject: How Osama Cracked FBI's Top 10
Date: Mon, 9 Jun 2008 17:23:09 -0400
MIME-Version: 1.0
Content-Type: multipart/related;
	type="multipart/alternative";
	boundary="----=_NextPart_000_0147_01C8CA55.7CD11FD0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6001.18000

This is a multi-part message in MIME format.

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/wired_logo.gif

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

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/icon_rss.gif

R0lGODlhDQANAPcAAN9gHt1aE91PAt9SAv39/f37+d6Xa+NqJeBhG91PA9xOA/udOvTBk/aQL91g
Hfz9/d6CQOBTA+WJK+BVBuurcN5QAN5eGdxYEvv59u2qcfCzgvejR+2EL/qVLdhlI+mRPdtYEuGR
U/737t5bFd9lI/327txWEfWgR+RtIuRsJ/r07eGRWd55NuWEG96AQuBzJt9VBe62jO99EOKJK/Sg
Tf2gPeFfGealYN1lJPeMJP2fN/DDnvm3cNtKAuimgOV2AvmUMfPGrPCsfdphHt5SBOFsMPvGkdlU
G+JpJvzs2+mofvr07tyHRuBgGtdUDOp1AP7x495vI/fs3fz9++eRV9xfHeF8UPGZOuBgG9dxOfqY
Ne+HHf7+/tleJt1RBdyHPt6FLPurWPKHKfz28ul5BOOPN/z07/udOOKeaNZVD/v49PrEjd5PAN1V
DOFtMeWBI/Gzdul5J+GRRv3XsPKCIPKjZPuXL+myeN9tJ+u3mf3//+mQUO56CvvPoOeocvaRLttg
H+52AO6EKttMAe7u7v///8zMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAANAA0A
AAi3AAm5AVTFgYUmCLDYQEKIUJEhWfIoocJBTAMgHVIYMuHBgJkxBBjQ0HJGRwRDF/C4WBHCD4ES
PBbUmGAoQBQIMTJ8uKNCRBg7MGq+QKNGT5IWN7gYyTHA0AhBMgKRKQNFgpwHdQQYAvEGTp8NPwpR
+LJEiBdDacAUKDTnyZQdTDAEaWPIyQwphdbw0bCHhQ8rgwyR2HLlxB86cVDg6HIEgCFCB9hUGEBE
QAIFPRw/JmSos+fPhAICADs=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/icon_email.gif

R0lGODlhDgALAJEAAKLo/////xqWv+X4/yH5BAAAAAAALAAAAAAOAAsAAAIklI8XNu1ugBjztSnk
tTVXCkFa+FFjt5mYtXkl5yYyEAD2jd8FADs=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/stumble.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsFAAALBQHJjchJAAAA
B3RJTUUH1QsIBiMnI22AegAAAAZiS0dEAP8A/wD/oL2nkwAAAqlJREFUKM81UstrE0EYn9nMtsl2
TdI0bZrQVix5VKQQbFWiBUEFi4+C0BY9eBKV/AHSmz148Cp48lJUqBdFCgaLUFQK0p6EPogpsU3L
pmmSpk3SJLvZneyO3zZ1YGd3Z79vf68PM8bQ/wXPhmHoug5785zjOMvxwhg3awhcjUaDEAIVq/W1
WO1LrPotaYvXFXWEXRnSh6LWqN1uFwSh2Yabf4J9RVl9rEd31e1atUY1qlLV0A2EkVAXF7mfvb29
TqeT53mzoVn9QLkvHUqapgEgQwxKkXFMooBTF9PSymYwGHS5XCdM7u2O7+xvuRpn3HwbsAZIbOF2
9LheryPMRLEtqbTgZDIUCpkNnxIfpeLO90vLEWG4qpsMQaGDw2v61tBCCIgBIO/uex+bf2qzEfBk
iS6dtYavCsMTnzfmF/9SRQZtoxe65x6NdFv8mdoGMvnhhbX0zXMODhxcUpelsqQg7dXt4Oyz6+N3
wlqhsLq9D1D2FvuxDlCPU4Y7m81yQImz4CM5F16OvM6/7OyMv7sb6Ax6GN9quk4wMu+YEYI4S7Va
NXOI6tFZV+yoJs+sz5RoMdJ/nho0p/AKQ5PeSWeL24HF37upLlaECLCqquVKpd3laiYJjr7dLEWn
v8Kn6anRqcF2gtivgnzjxY8JEr/cL2BKaT6fvzWXyh7WtAYtFassU0HtDqRSJFhPnfYIhOVWNoXC
3pOBXCQSIRC4KIrjffzzLY5RSMCOfE7TFRtg4EoyUymVWxu1sQHs8/kgbwIOWq3Wh4OeXLb0ZjFL
VYZMfRiyRhCApgna0ZifBu2y3x/2er0nowHy0+l0IpGI/Sl/WFfqpQaAdLHCNT/xkiLUBQIBiLmn
p+dk+CA+WZYPDg4ymYwkSeA3vMI5sPV4PMAEejo6OmBm/wF0E24/Aq87YQAAAABJRU5ErkJggg==

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/email_icon.gif

R0lGODlhDwAMAJEAAKLo/////xqWv+X4/yH5BAAAAAAALAAAAAAPAAwAAAIrjI8Zwu1t2JiUMrCG
qFbjrXGg8HUT6GUdmo7n24ZcSC6sWD/6ZQD+D/wVAAA7

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/print_icon.gif

R0lGODlhDwAPAKIAAP7+/6Lo/+X4/////xqWvwAAAAAAAAAAACH5BAAAAAAALAAAAAAPAA8AAAM5
OLrcSzBGRxYAA5DQKuVMJYngc2Xo1g2jViqegrFBzY64Sgh87ws6IA4I5OxyxODvp8uNQLWoVJoA
ADs=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/full_page_icon.gif

R0lGODlhDwAPALMAACSgySOfyKXo/6Lo/+P4/yikzeX4/xqWv////wAAAAAAAAAAAAAAAAAAAAAA
AAAAACH5BAAAAAAALAAAAAAPAA8AAARMEMlJqzw4Z3uM/wBxVAdRnCdgiFT3EUYQAMcwdWgu2tfq
EUBg7WbIoQzD3gq2RPIQOGPBeWP6fEloUUpVMr8HwU1DDlMGA0EazRZHAAA7

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/comment_icon.gif

R0lGODlhDwAOAJEAAKLo/xqWv////+X4/yH5BAAAAAAALAAAAAAPAA4AAAIslI8pwe1twpi0jgCW
3Vjv2kkfFY5kJpqleaHM9DRZ1AL2bR9MriDY3DvwggUAOw==

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/xrail/subscribe.gif

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

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/label_textsize.gif

R0lGODlhMgASAIAAAP///////yH5BAEHAAEALAAAAAAyABIAAAJMjI+py+0Po5y02ouz3hyB/1ng
AWhldBppapLnGoxqEsZyHTPvnMMeztrlHC/ZkKcQHkGshXLmQwqDNJ2rFA3WRkwVrgMOi8fksplT
AAA7

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.wired.com/images/icon_search_go.gif

R0lGODlhFAASAMQAALi4uD09PUdHRzMzM4+Pj4KCgsTExLW1tcLCwlxcXJaWlq2trXBwcLS0tGZm
ZqqqqrGxsby8vJycnFJSUqGhoYWFhcjIyLOzs8DAwKOjo5mZmczMzAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAUABIAAAWwoKZJVGaeqElJokY90CXPtAw91PgcEeb/QF/k8CBBIgaLcslUGiKQ0gVj
2VivWKsFczFNq9nwtpv5bjSVCuBKqBA2Yy+VIag4AovNZFLZx8sYCgEIVmoagxsIAQpccgUJGwBp
GRWQVgkFjYAFE5EVdX1XE5lkUw0BFZF1AANvBAMNml8LEwMBDGsaAgMCGn9mYVlxFEdJTcdPURI7
PUHOQ0UuMDXUFzc5IiQp2xkrIiEAOw==

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://wired.com/images/icon_search_go.gif

R0lGODlhFAASAMQAALi4uD09PUdHRzMzM4+Pj4KCgsTExLW1tcLCwlxcXJaWlq2trXBwcLS0tGZm
ZqqqqrGxsby8vJycnFJSUqGhoYWFhcjIyLOzs8DAwKOjo5mZmczMzAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAUABIAAAWwoKZJVGaeqElJokY90CXPtAw91PgcEeb/QF/k8CBBIgaLcslUGiKQ0gVj
2VivWKsFczFNq9nwtpv5bjSVCuBKqBA2Yy+VIag4AovNZFLZx8sYCgEIVmoagxsIAQpccgUJGwBp
GRWQVgkFjYAFE5EVdX1XE5lkUw0BFZF1AANvBAMNml8LEwMBDGsaAgMCGn9mYVlxFEdJTcdPURI7
PUHOQ0UuMDXUFzc5IiQp2xkrIiEAOw==

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/politics/law/news/2001/09/breadcrumb.css

#breadcrumb {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; FONT: 1em =
"arial black"; TEXT-TRANSFORM: uppercase; WIDTH: 630px; PADDING-TOP: =
10px
}
#breadcrumb .coupler {
	WHITE-SPACE: nowrap
}
#breadcrumb .off {
	WHITE-SPACE: nowrap
}
#breadcrumb .off A {
	TEXT-DECORATION: none
}
#breadcrumb .off A:visited {
	COLOR: #007ca5
}
#breadcrumb .off A:active {
	COLOR: #999
}
#breadcrumb .on {
	COLOR: #999; FONT-FAMILY: "arial black"; WHITE-SPACE: nowrap
}
#breadcrumb .on A {
	COLOR: #999; FONT-FAMILY: "arial black"; WHITE-SPACE: nowrap
}
#breadcrumb .divider {
	FONT: bold 1em "arial"; COLOR: #999
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/global.css

@import url( breadcrumb.css );
* {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
HTML {
	HEIGHT: 100%
}
BODY {
	FONT-SIZE: 62.5%; BACKGROUND: #fff; MARGIN: 0px 5px; COLOR: #000; =
FONT-FAMILY: Georgia, "Times New Roman", serif; HEIGHT: 100%; =
TEXT-ALIGN: center
}
A {
	COLOR: #007ca5; TEXT-DECORATION: none; outline: none
}
A:visited {
	COLOR: #666
}
A:active {
	COLOR: #999
}
IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
A IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#shell {
	MARGIN: auto; WIDTH: 1000px; HEIGHT: 100%; TEXT-ALIGN: left
}
#content {
	BACKGROUND: #fff; COLOR: #000
}
#header {
	WIDTH: 1000px; COLOR: #fff; POSITION: relative; HEIGHT: 90px
}
A#logo {
	WIDTH: 272px; POSITION: absolute; HEIGHT: 56px
}
A#logo IMG {
	WIDTH: 272px; HEIGHT: 56px
}
#header .timestamp {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; BACKGROUND: #e1e1e1; =
PADDING-BOTTOM: 0px; FONT: bold 1.1em arial, helvetica, sans-serif; =
WIDTH: 262px; COLOR: #666; BOTTOM: 0px; PADDING-TOP: 10px; POSITION: =
absolute; HEIGHT: 24px
}
#leaderboard {
	LEFT: 272px; WIDTH: 728px; POSITION: absolute
}
.hiddenDAU {
	WIDTH: 0px; HEIGHT: 0px
}
.hr {
	CLEAR: both; BACKGROUND: url(/images/mb/scratches.gif) repeat-x; =
MARGIN: 0px 0px 10px; WIDTH: 628px; HEIGHT: 17px
}
#nav_bar {
	CLEAR: both; Z-INDEX: 30; BACKGROUND: #000; MARGIN: 10px 0px; WIDTH: =
1000px; POSITION: relative; HEIGHT: 40px
}
#nav_bar UL {
	LIST-STYLE-TYPE: none
}
#nav_bar LI {
	BACKGROUND: #000; FLOAT: left; CURSOR: default; POSITION: relative; =
TEXT-ALIGN: left
}
#nav_bar LI.home SPAN A {
	DISPLAY: block; BACKGROUND: url(/images/header_nav-home.gif) no-repeat =
left top; WIDTH: 63px; HEIGHT: 40px
}
.home #nav_bar LI.home {
	DISPLAY: none
}
#nav_bar LI.subscribe {
	DISPLAY: block; Z-INDEX: 10; BACKGROUND: =
url(/images/header_nav-subscribe.gif) no-repeat left top; WIDTH: 109px; =
HEIGHT: 40px
}
#nav_bar LI.sections {
	DISPLAY: block; Z-INDEX: 9; BACKGROUND: =
url(/images/header_nav-sections.gif) no-repeat left top; WIDTH: 106px; =
HEIGHT: 40px
}
#nav_bar LI.blogs {
	DISPLAY: block; Z-INDEX: 8; BACKGROUND: =
url(/images/header_nav-blogs.gif) no-repeat left top; WIDTH: 84px; =
HEIGHT: 40px
}
#nav_bar LI.read SPAN A {
	DISPLAY: block; BACKGROUND: url(/images/header_nav-read.gif) no-repeat =
left top; WIDTH: 130px; HEIGHT: 40px
}
#nav_bar LI.blank SPAN {
	DISPLAY: block; WIDTH: 208px; HEIGHT: 1px
}
#nav_bar LI.search {
	DISPLAY: inline; RIGHT: 70px; WIDTH: 257px; POSITION: absolute; HEIGHT: =
40px
}
#nav_bar LI.search SPAN {
	DISPLAY: inline; BACKGROUND: =
url(http://www.wired.com/images/header_nav-search.gif) no-repeat left =
top; LEFT: 2px; FLOAT: left; WIDTH: 57px; HEIGHT: 40px
}
#nav_bar LI.search INPUT {
	POSITION: absolute
}
#nav_bar LI.search INPUT.text {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 57px; =
BORDER-BOTTOM-WIDTH: 0px; WIDTH: 116px; TOP: 11px; HEIGHT: 18px; =
BORDER-RIGHT-WIDTH: 0px
}
#nav_bar LI.search INPUT.text {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 57px; =
BORDER-BOTTOM-WIDTH: 0px; WIDTH: 169px; TOP: 11px; HEIGHT: 18px; =
BORDER-RIGHT-WIDTH: 0px
}
#nav_bar .search .search_filter {
	BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; LEFT: 175px; =
FONT: 10px/10px sans-serif; BORDER-LEFT: #fff 1px solid; WIDTH: 111px; =
BORDER-BOTTOM: #fff 1px solid; POSITION: absolute; TOP: 10px; HEIGHT: =
20px; _height: 16px
}
.opt {
	PADDING-LEFT: 5px
}
#nav_bar LI.search INPUT.go {
	LEFT: 288px; TOP: 11px
}
#nav_bar LI.subscribe:hover {
	BACKGROUND-POSITION: 100% -40px
}
#nav_bar LI.sections:hover {
	BACKGROUND-POSITION: 100% -40px
}
#nav_bar LI.blogs:hover {
	BACKGROUND-POSITION: 100% -40px
}
#nav_bar LI.stay:hover {
	BACKGROUND-POSITION: 100% -40px
}
#nav_bar LI.over {
	BACKGROUND-POSITION: 100% -40px
}
#nav_bar LI UL {
	PADDING-RIGHT: 10px; BORDER-TOP: #333 10px solid; DISPLAY: none; =
PADDING-LEFT: 10px; BACKGROUND: #000; LEFT: 8px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 8px; POSITION: absolute; TOP: 34px
}
#nav_bar LI:hover UL {
	DISPLAY: block
}
#nav_bar LI.over UL {
	DISPLAY: block
}
#nav_bar .firstTop {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_left.gif) no-repeat =
left top; LEFT: -9px; WIDTH: 9px; POSITION: absolute; TOP: -10px; =
HEIGHT: 100%
}
#nav_bar .firstBottom {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_left.gif) no-repeat =
left bottom; LEFT: -9px; WIDTH: 9px; POSITION: absolute; TOP: 0px; =
HEIGHT: 100%
}
#nav_bar .middle {
	BACKGROUND: none transparent scroll repeat 0% 0%; POSITION: absolute
}
#nav_bar .lastTop {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_right.gif) no-repeat =
right top; LEFT: 155px; WIDTH: 9px; POSITION: absolute; TOP: -9px; =
HEIGHT: 100%
}
#nav_bar .lastBottom {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_right.gif) no-repeat =
right bottom; LEFT: 155px; WIDTH: 9px; POSITION: absolute; TOP: 0px; =
HEIGHT: 100%
}
#nav_bar #subscribe_menu {
	Z-INDEX: 1; LEFT: 15px; WIDTH: 150px; POSITION: absolute
}
#nav_bar #sections_menu {
	Z-INDEX: 1; LEFT: 15px; WIDTH: 150px; POSITION: absolute
}
#nav_bar #blogs_menu {
	Z-INDEX: 1; LEFT: 15px; WIDTH: 150px; POSITION: absolute
}
#nav_bar #stay_menu {
	Z-INDEX: 1; LEFT: 15px; WIDTH: 150px; POSITION: absolute
}
#nav_bar #stay_menu {
	LEFT: -100px
}
#nav_bar #sections_menu #sections1 {
	DISPLAY: block; LEFT: 1%; POSITION: absolute; TOP: 100%
}
#nav_bar #sections_menu #sections2 {
	DISPLAY: block; LEFT: 100%; POSITION: absolute; TOP: 100%
}
#nav_bar #blogs_menu #blogs1 {
	DISPLAY: block; LEFT: 1%; POSITION: absolute; TOP: 100%
}
#nav_bar #blogs_menu #blogs2 {
	DISPLAY: block; LEFT: 100%; POSITION: absolute; TOP: 100%
}
#nav_bar #blogs_menu #blogs3 {
	DISPLAY: block; LEFT: 200%; POSITION: absolute; TOP: 100%
}
#nav_bar LI > UL {
	LEFT: auto; TOP: auto
}
#nav_bar LI LI {
	BORDER-TOP-WIDTH: 0px; DISPLAY: block; BORDER-LEFT-WIDTH: 0px; =
BACKGROUND: #000; FLOAT: none; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 100%; =
WHITE-SPACE: nowrap; HEIGHT: 11px; BORDER-RIGHT-WIDTH: 0px
}
#nav_bar #nav A {
	FONT-WEIGHT: bold; TEXT-DECORATION: none
}
#nav_bar #nav LI LI A {
	DISPLAY: block; FONT: bold 1.1em "verdana"; WIDTH: 135px; COLOR: =
#007ca5
}
#nav_bar #nav LI LI A:visited {
	COLOR: #007ca5
}
#nav_bar #nav LI LI A:hover {
	COLOR: #0cf
}
#nav_bar #nav LI LI A:active {
	COLOR: #999
}
#nav_bar #subscribe_menu SPAN {
	DISPLAY: block; WIDTH: 1px; HEIGHT: 101px
}
#nav_bar #sections_menu SPAN {
	DISPLAY: block; WIDTH: 1px; HEIGHT: 115px
}
#nav_bar #blogs_menu SPAN {
	DISPLAY: block; WIDTH: 1px; HEIGHT: 86px
}
#nav_bar .sections #sections_menu SPAN.ie6_filler {
	DISPLAY: none
}
#contentwell {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 664px
}
#contentwell_blogs {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 1000px
}
#xrail {
	FLOAT: left; WIDTH: 336px
}
.clearer {
	CLEAR: both
}
.login {
	DISPLAY: none
}
* HTML #nav_bar LI.ie_fill {
	HEIGHT: 1.4em
}
* HTML #nav_bar #blogs_menu #blogs3 .lastBottom {
	HEIGHT: 87px
}
#mag_sub_promo {
	MARGIN: 10px 0px 15px; WIDTH: 336px
}
#footer {
	MARGIN: 10px 0px 0px; FONT: 1em/1.3em arial, helvetica, sans-serif; =
COLOR: #fff
}
#foot_row1 {
	BACKGROUND: #2f2f2f; HEIGHT: 30px
}
#foot_row2 {
	BACKGROUND: #181818; HEIGHT: 30px
}
#foot_row3 {
	Z-INDEX: 101; BACKGROUND: #000; PADDING-BOTTOM: 20px; POSITION: =
relative
}
SPAN.pad {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px 0px 0px 10px; PADDING-TOP: 10px
}
.link_row {
	COLOR: #494949
}
#foot_row2 .link_row {
	COLOR: #4b4b4b
}
#foot_row3 .link_row {
	COLOR: #4c4c4c
}
#shell #content #footer .text_size {
	DISPLAY: block; FLOAT: right; MARGIN: -16px 20px 0px 0px; POSITION: =
static
}
* HTML #shell #content #with_video #xrail {
	FLOAT: right; WIDTH: 500px
}
HTML[xmlns*=3D''] BODY:unknown #shell #content #footer .text_size {
	MARGIN-TOP: -3px
}
BODY:first-child #shell #content #footer .text_size {
	MARGIN-TOP: 7px
}
.text_size A {
	DISPLAY: block; FLOAT: left; WIDTH: 18px; HEIGHT: 18px
}
#footer .text_size IMG {
	DISPLAY: block; FLOAT: left
}
#small {
	BACKGROUND: url(/images/icon_text_sm.gif) no-repeat 0px 0px
}
#small:hover {
	BACKGROUND: url(/images/icon_text_sm.gif) no-repeat left bottom
}
#small:active {
	BACKGROUND: url(/images/icon_text_sm.gif) no-repeat left bottom
}
#normal {
	BACKGROUND: url(/images/icon_text_med.gif) no-repeat left bottom
}
#normal:hover {
	BACKGROUND: url(/images/icon_text_med.gif) no-repeat left bottom
}
#normal:active {
	BACKGROUND: url(/images/icon_text_med.gif) no-repeat left bottom
}
#large {
	BACKGROUND: url(/images/icon_text_lg.gif) no-repeat 0px 0px
}
#large:hover {
	BACKGROUND: url(/images/icon_text_lg.gif) no-repeat left bottom
}
#large:active {
	BACKGROUND: url(/images/icon_text_lg.gif) no-repeat left bottom
}
#largest {
	BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat 0px 0px
}
#largest:hover {
	BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat left bottom
}
#largest:active {
	BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat left bottom
}
#suboffers {
	BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #666 1px =
solid; PADDING-LEFT: 15px; Z-INDEX: 101; BACKGROUND: =
url(/images/footer_suboffer_bg.gif) no-repeat 0px 0px; PADDING-BOTTOM: =
0px; MARGIN: 10px 0px; BORDER-LEFT: #666 1px solid; WIDTH: 160px; COLOR: =
#000; PADDING-TOP: 1px; BORDER-BOTTOM: #666 1px solid; POSITION: =
relative; HEIGHT: 15px
}
#suboffers UL {
	DISPLAY: none; Z-INDEX: 102; BACKGROUND: #fff; LEFT: -1px; WIDTH: =
177px; LIST-STYLE-TYPE: none; POSITION: absolute; TOP: 16px
}
#suboffers UL LI {
	BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BORDER-LEFT: =
#666 1px solid; WIDTH: 175px
}
#suboffers UL LI#last {
	BORDER-BOTTOM: #666 1px solid
}
#suboffers UL LI A {
	LEFT: 15px; POSITION: relative
}
DIV#debugInfoDiv {
	CLEAR: both; BACKGROUND: #fff; TEXT-ALIGN: left
}
BODY > DIV#debugInfoDiv {
	MARGIN-TOP: 20px
}
#logout_link {
	DISPLAY: none
}
.warning {
	PADDING-RIGHT: 0px; PADDING-LEFT: 3em; BACKGROUND: =
url(/images/other/warning.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; =
FONT: bold 1.4em arial, helvetica, sans-serif; VERTICAL-ALIGN: bottom; =
COLOR: #b40404; PADDING-TOP: 1em; HEIGHT: 30px
}
#footerAd {
	MARGIN: 10px; WIDTH: 1000px; TEXT-ALIGN: center
}
#footerAd .dartAdUnit {
	MARGIN: auto
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/xrail.css

DIV.scrape {
	MARGIN-TOP: 10px; WIDTH: auto; LINE-HEIGHT: 1em
}
.scrape A {
	TEXT-DECORATION: none
}
.replace {
	DISPLAY: none
}
.scrape H2 {
	FONT: 1.6em Georgia, "times new roman", serif
}
.scrape H3 {
	FONT: bold 1.4em arial, helvetica; COLOR: #666; HEIGHT: 14px
}
.scrape .pic {
	MARGIN: 6px 10px 7px 0px
}
.scrape H2 A:link {
	COLOR: #000
}
.scrape H2 A:visited {
	COLOR: #666
}
.scrape H2 A:hover {
	COLOR: #007ca5
}
.scrape H2 A:active {
	COLOR: #999
}
.scrape UL LI {
	MARGIN: 13px 0px 10px; LIST-STYLE-TYPE: none
}
HTML > BODY .scrape UL LI {
	MARGIN: 15px 0px 16px
}
.scrape H4 {
	FONT: 1.1em "arial black", arial, helvetica; TEXT-TRANSFORM: uppercase; =
COLOR: #999
}
.scrape A {
	COLOR: #007ca5
}
.scrape A:hover {
	COLOR: #007ca5
}
.scrape P STRONG {
	FONT: 0.7em arial, verdana, sans-serif; TEXT-TRANSFORM: uppercase; =
COLOR: #000
}
.scrape P A {
	FONT: 0.7em georgia,"times new roman", serif; COLOR: #007ca5
}
#mag H4 {
	MARGIN-LEFT: 10px
}
#mag H2 {
	MARGIN-LEFT: 10px
}
#multi H4 {
	MARGIN-LEFT: 10px
}
#multi H2 {
	MARGIN-LEFT: 10px
}
.scrape #mag H2 {
	LINE-HEIGHT: 1.2em
}
.scrape #multi H2 {
	LINE-HEIGHT: 1.2em
}
#multi .pic {
	FLOAT: left; MARGIN: 6px 0px 4px
}
HTML > BODY #multi .pic {
	MARGIN: 7px 0px
}
#xrail #popular_sponsor .matchbook_bubble {
	DISPLAY: none
}
#xrail #sponsor .matchbook_bubble {
	DISPLAY: none
}
#xrail .matchbook_bubble {
	CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; =
MARGIN: 10px 0px; WIDTH: 336px; HEIGHT: 17px
}
.tool {
	MARGIN: 0.3em 0px; FONT: bold 1.1em arial, helvetica sans-serif; COLOR: =
#666
}
.tool IMG {
	MARGIN-RIGHT: 3px
}
.tool A {
	COLOR: #007ca5; TEXT-DECORATION: none
}
* HTML DIV#toolbox {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 24px; =
PADDING-TOP: 0px
}
DIV#toolbox {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(/images/mb/bubbles.gif) repeat-x left bottom; PADDING-BOTTOM: 34px; =
MARGIN: 0px 0px 10px; WIDTH: 336px; PADDING-TOP: 0px; POSITION: =
relative; HEIGHT: 72px
}
* + HTML DIV#toolbox {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 44px; =
PADDING-TOP: 0px
}
DIV#toolbox UL {
	MARGIN: 12px 15px; LIST-STYLE-TYPE: none
}
DIV#sponsor {
	RIGHT: 0px; POSITION: absolute; TOP: 46px
}
DIV#toolbox > DIV#sponsor {
	WIDTH: 171px; TOP: 34px
}
HTML[xmlns*=3D''] BODY:unknown DIV#toolbox > DIV#sponsor {
	RIGHT: -10px
}
#byTxt {
	DISPLAY: none; FONT-SIZE: 1.1em; FLOAT: left; MARGIN: 9px 0px 0px; =
WIDTH: auto
}
.mod5 .col2 {
	MARGIN-BOTTOM: 7px
}
.mod5 H3 {
	MARGIN-BOTTOM: 5px
}
.mod5 H3 SPAN {
	DISPLAY: block; MARGIN: 0px 0px 0px 5000px
}
.mod5 UL {
	CLEAR: right; FONT: bold 1.1em Georgia, "times new roman", serif; =
COLOR: #999
}
.mod5 UL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: -1px 0px; LINE-HEIGHT: 1.3em; PADDING-TOP: =
0px; LIST-STYLE-TYPE: none
}
* HTML .mod5 UL LI {
	MARGIN: -3px 0px; LINE-HEIGHT: 1.5em
}
.mod5 .pic {
	DISPLAY: block; FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 110px; =
HEIGHT: 110px
}
.mod5 #comment_by {
	MARGIN-TOP: 5px; FONT-SIZE: 1.1em
}
* DIV.mod5 #comment_by {
	FONT-SIZE: 1.3em
}
HTML[xmlns*=3D''] BODY:unknown .mod5 #comment_by {
	FONT-SIZE: 1.1em
}
.mod5 .gray {
	COLOR: #999
}
.mod5 H4.gray {
	FONT-FAMILY: georgia, "times new roman", serif
}
.mod5 SUB {
	DISPLAY: block
}
.mod5 P .view_all {
	DISPLAY: block
}
.mod5 P .view_all {
	MARGIN-TOP: 7px; DISPLAY: block; FONT-SIZE: 1.1em
}
.mod5 .pic {
	MARGIN: 0px 10px 17px 0px
}
.mod5 BLOCKQUOTE {
	FONT-SIZE: 1.1em; LINE-HEIGHT: 1.2em
}
.mod5 #matchbook_dot {
	MARGIN-TOP: 7px
}
.mod5 #featuring {
	MARGIN-TOP: 3px; DISPLAY: block; FONT: bold 1.2em arial, helvetical, =
sans-serif
}
* HTML .mod5 #featuring {
	MARGIN-TOP: 5px
}
H3#feat_com {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
H3#feat_com SPAN {
	DISPLAY: block; MARGIN: 0px 0px 0px 5000px; COLOR: #fff
}
#mag H4 {
	MARGIN-LEFT: 10px
}
#mag H2 {
	MARGIN-LEFT: 10px
}
#multi H4 {
	MARGIN-LEFT: 10px
}
#multi H2 {
	MARGIN-LEFT: 10px
}
#mag H4 {
=09
}
.scrape #mag H2 {
	LINE-HEIGHT: 1.2em
}
.scrape #multi H2 {
	LINE-HEIGHT: 1.2em
}
BODY.home .scrape {
	WIDTH: 300px
}
.scrape .multi_home {
	WIDTH: 300px
}
#multi H3 {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
#mag H3 {
	backgound: transparent
}
#multi H3 SPAN {
	MARGIN: 0px 0px 0px 5000px
}
#mag H3 SPAN.remove {
	POSITION: absolute; TOP: -5000px
}
#multi .pic {
	FLOAT: left; MARGIN: 6px 10px 0px 0px
}
#multi .pic IMG {
	MARGIN: 0px 10px 0px 0px
}
HTML > BODY #multi .pic {
	MARGIN: 7px 0px
}
#mag_on_excl H4 {
	LINE-HEIGHT: 1em
}
#mag_on_excl H3 {
	MARGIN: 0px 0px -9px
}
#mag_on_excl H4 {
	FONT-SIZE: 1em
}
#mag_on_excl LI P {
	FONT-SIZE: 1.3em; LINE-HEIGHT: 1em
}
#mag_on_excl LI P STRONG {
	FONT: bold 0.8em arial, helvetica, sans-serif; TEXT-TRANSFORM: =
uppercase; COLOR: #000
}
#mag_on_excl LI P A {
	FONT-SIZE: 0.9em
}
#mag_on_excl H3 {
	BACKGROUND: url(/images/modules/modhead_mag_on_extras.gif) no-repeat =
0px 0px
}
#mag_on_excl H3 SPAN {
	DISPLAY: block; MARGIN: 0px 0px 0px 5000px
}
HTML > BODY #mag_on_excl H3 {
	MARGIN: 0px 0px -6px
}
* HTML #mag_on_excl H3 {
	MARGIN-BOTTOM: -54px
}
#mag_on_excl #mb_bubbles {
	MARGIN-TOP: -6px; BACKGROUND: url(/images/mb/bubbles.gif) no-repeat 0px =
0px
}
* HTML #mag_on_excl #mb_bubbles {
	MARGIN-TOP: 9px
}
.inner {
	HEIGHT: auto
}
#popular_module {
	MARGIN: 20px 0px 0px; FONT: 1.2em georgia,"times new roman", serif; =
WIDTH: 336px; HEIGHT: auto
}
#popular_module .t_row {
	BACKGROUND: url(/images/modules/popular_bg_t.gif) no-repeat 0px 0px; =
MARGIN-BOTTOM: 0px; HEIGHT: 40px
}
#popular_module .t_row2 {
	FONT: bold 11px arial, helvetica, sans-serif; POSITION: relative; =
HEIGHT: 30px
}
#popular_module .t_row2 #most_pop_tab {
	FLOAT: left; HEIGHT: 32px; TEXT-ALIGN: center
}
#popular_module .t_row2 #most_com_tab {
	FLOAT: left; HEIGHT: 32px; TEXT-ALIGN: center
}
#popular_module .t_row2 #blank_tab {
	FLOAT: left; HEIGHT: 32px; TEXT-ALIGN: center
}
#popular_module .t_row2 A {
	DISPLAY: block; CURSOR: pointer; HEIGHT: 25px
}
#popular_module .t_row2 #most_pop_tab {
=09
}
#popular_module .t_row2 #most_com_tab {
=09
}
#most_pop_tab {
	BACKGROUND: url(/images/modules/popular_bg_t_sel.gif) no-repeat 0px =
0px; WIDTH: 110px
}
#most_com_tab {
	BACKGROUND: url(/images/modules/commented_bg_t_un.gif) no-repeat 0px =
0px; WIDTH: 139px
}
.gif#popcom_bg_tr {
	WIDTH: 50px
}
#blank_tab {
	CLEAR: right; BACKGROUND: url(/images/modules/popcom_bg_tr.gif) =
no-repeat 0px 0px; WIDTH: 50px
}
#popular_module .m_row {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(/images/modules/popcom_bg_m.gif) repeat-y 0px 0px; PADDING-BOTTOM: =
5px; WIDTH: 300px; PADDING-TOP: 10px; HEIGHT: 200px
}
HTML > BODY #popular_module .m_row {
	MIN-HEIGHT: 200px; HEIGHT: auto
}
#popular_module .m_row LI {
	FONT-WEIGHT: normal; MARGIN: 0px 15px 10px 35px
}
#popular_module .m_row LI {
	MARGIN-LEFT: 39px
}
#mostPopular {
=09
}
#mostCommented {
	DISPLAY: none
}
#popular_module .b_row {
	BACKGROUND: url(/images/modules/popcom_bg_b.gif) no-repeat 0pt -30px; =
POSITION: relative; HEIGHT: 20px
}
#popular_module > .b_row {
	TOP: -10px
}
.replace {
	DISPLAY: none
}
DIV#popular_sponsor {
	RIGHT: 50px; POSITION: absolute; TOP: 5px
}
.b_row > DIV#popular_sponsor {
	WIDTH: 171px
}
#popular_byTxt {
	DISPLAY: none; FONT-WEIGHT: normal; FONT-SIZE: 1em; FLOAT: left; =
MARGIN: 9px 0px 0px; WIDTH: auto
}
.scrape #services {
	FONT: 1.1em/1.2em arial, helvetica; WIDTH: 336px
}
.home .scrape #services {
	WIDTH: 302px
}
.scrape #services H3 {
	BACKGROUND: url(/images/modules/modhead_services.gif) no-repeat 0px 0px
}
#services H3 SPAN {
	DISPLAY: none
}
#services .group {
	MARGIN: 10px 0px; COLOR: #007a5c
}
#services .group STRONG {
	COLOR: black
}
#services .group A {
	MARGIN: 0px 2px
}
#xrail #services .matchbook_bubbles {
	CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; =
MARGIN: 10px 0px; WIDTH: 336px; HEIGHT: 17px
}
#xrail #services #mb_bottom {
	MARGIN-TOP: 15px
}
#xrail #job_thread H3 {
	BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: 10px
}
.jt_list {
	FONT-SIZE: 1em
}
.jt_list .job {
	WIDTH: auto
}
.location {
	FONT-SIZE: 0.91em
}
.business {
	FONT-SIZE: 0.91em
}
.reward {
	FONT-SIZE: 0.91em
}
.job_thread_end {
	FONT-SIZE: 0.91em
}
.location {
	FLOAT: left; WIDTH: auto
}
.business {
	FLOAT: left; WIDTH: auto
}
.jt_list .reward {
	LEFT: -115px; MARGIN: -6px 0px 7px; WIDTH: 450px; POSITION: relative; =
TEXT-ALIGN: left
}
.jt_list .location {
	MARGIN: 0pt 6px 7px 2px; WIDTH: auto; TEXT-ALIGN: right; font-site: =
.9em
}
UNKNOWN {
	FONT-SIZE: 0.9em; FLOAT: left
}
.jt_list {
	FONT-SIZE: 1.1em
}
.jt_list .referral {
	font-site: .9em
}
.jt_list .item {
	CLEAR: both; PADDING-BOTTOM: 5px; HEIGHT: auto
}
.jt_list .job_thread_end {
	CLEAR: both; MARGIN: 10px 0px -40px
}
.jt_list .job_thread_end .job {
	MARGIN-BOTTOM: 10px; WIDTH: 163px; font-site: .9em
}
.jt_list .job_thread_end .jt_logo {
	FONT-SIZE: 1em; LEFT: 175px; MARGIN: 25px 0pt 10px; WIDTH: 100px; =
POSITION: relative; TOP: -15px
}
.jt_list .job_thread_end .jt_links {
	FLOAT: left; WIDTH: 170px
}
.jt_list .job_thread_end IMG {
	LEFT: 62px; POSITION: relative; TOP: -20px
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.wired.com/css/fontSmall.css

#breadcrumb {
	FONT-SIZE: 100%! important
}
#header {
	FONT-SIZE: 100%! important
}
#footer {
	FONT-SIZE: 100%! important
}
#secondary_package {
	FONT-SIZE: 100%! important
}
#contentwell {
	FONT-SIZE: 86%
}
#river {
	FONT-SIZE: 95%! important
}
#multimedia .item {
	FONT-SIZE: 95%! important
}
HTML BODY #small {
	BACKGROUND: url(/images/icon_text_sm.gif) no-repeat left bottom
}
HTML BODY #normal {
	BACKGROUND: url(/images/icon_text_med.gif) no-repeat 0px 0px
}
#img_links {
	FONT-SIZE: 11px! important
}
#ss_nav {
	FONT-SIZE: 11px! important
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.wired.com/css/fontLarge.css

#breadcrumb {
	FONT-SIZE: 100%! important
}
#header {
	FONT-SIZE: 100%! important
}
#footer {
	FONT-SIZE: 100%! important
}
#secondary_package {
	FONT-SIZE: 100%! important
}
#breadcrumb {
	FONT-SIZE: 100%! important
}
#contentwell {
	FONT-SIZE: 115%
}
#river {
	FONT-SIZE: 105%
}
#multimedia .item {
	FONT-SIZE: 115%! important
}
HTML BODY #large {
	BACKGROUND: url(/images/icon_text_lg.gif) no-repeat left bottom
}
HTML BODY #normal {
	BACKGROUND: url(/images/icon_text_med.gif) no-repeat 0px 0px
}
#mm_tools {
	FONT-SIZE: 11px! important
}
#img_links {
	FONT-SIZE: 11px! important
}
#ss_nav {
	FONT-SIZE: 11px! important
}
DIV#description P.photocredit {
	FONT-SIZE: 1em! important
}
.social #hidden_list {
	FONT-SIZE: 12px! important
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.wired.com/css/fontLarge2.css

#breadcrumb {
	FONT-SIZE: 100%! important
}
#header {
	FONT-SIZE: 100%! important
}
#footer {
	FONT-SIZE: 100%! important
}
#secondary_package {
	FONT-SIZE: 100%! important
}
#breadcrumb {
	FONT-SIZE: 100%! important
}
#contentwell {
	FONT-SIZE: 128%
}
#river {
	FONT-SIZE: 110%
}
#multimedia .item {
	FONT-SIZE: 128%! important
}
HTML BODY #largest {
	BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat left bottom
}
HTML BODY #normal {
	BACKGROUND: url(/images/icon_text_med.gif) no-repeat 0px 0px
}
#mm_tools {
	FONT-SIZE: 11px! important
}
#img_links {
	FONT-SIZE: 11px! important
}
#ss_nav {
	FONT-SIZE: 11px! important
}
DIV#description P.photocredit {
	FONT-SIZE: 1em! important
}
.social #hidden_list {
	FONT-SIZE: 12px! important
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/toolbox_article_bottom.css

#toolbox_art_bot {
	CLEAR: both; DISPLAY: block; WIDTH: 630px; HEIGHT: auto
}
#toolbox_art_bot .tool {
	FLOAT: left
}
#toolbox_art_bot .float_l {
	FLOAT: left; MARGIN-BOTTOM: 5px
}
#toolbox_art_bot .float_r {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px
}
#toolbox_art_bot #pagination {
	MARGIN-BOTTOM: 30px
}
* HTML #toolbox_art_bot #pagination {
	MARGIN-BOTTOM: 0px
}
#toolbox_art_bot #social_bkmrks {
	CLEAR: right; MARGIN: 20px 0px 10px; POSITION: relative
}
#toolbox_art_bot .social {
	DISPLAY: block; FLOAT: left; FONT: bold 11px arial, helvetica, =
sans-serif; VERTICAL-ALIGN: bottom; WIDTH: 95px; COLOR: #007ca5
}
#toolbox_art_bot #sb_art_reddit {
	MARGIN: 0px; POSITION: relative; TOP: -2px
}
* HTML #toolbox_art_bot #sb_art_reddit {
	MARGIN-LEFT: 5px
}
#toolbox_art_bot #sb_art_diggit {
	PADDING-LEFT: 7px; BACKGROUND: url(/images/diggit_icon.gif) no-repeat =
0px 0px; MARGIN-LEFT: 44px; WIDTH: 125px
}
* HTML #toolbox_art_bot #sb_art_diggit {
	MARGIN-LEFT: 17px
}
#toolbox_art_bot #sb_art_diggit A {
	FLOAT: left; MARGIN-LEFT: -15px
}
#sb_art_diggit IFRAME {
	MARGIN-LEFT: 10px
}
#sb_art_diggit A.dl {
	DISPLAY: block; FLOAT: left; MARGIN-LEFT: 20px
}
#toolbox_art_bot #sb_art_diggit A#diggit_icon_link {
	DISPLAY: block; LEFT: 15px; WIDTH: 16px; POSITION: absolute; HEIGHT: =
16px
}
#toolbox_art_bot #sb_art_diggit A {
	DISPLAY: block; FLOAT: right! important; VERTICAL-ALIGN: bottom
}
#toolbox_art_bot #sb_art_stumble {
	MARGIN-BOTTOM: 2px; MARGIN-LEFT: -15px
}
#toolbox_art_bot #sb_art_stumble IMG {
	DISPLAY: block; FLOAT: left
}
#toolbox_art_bot #sb_art_stumble DIV {
	FLOAT: left; MARGIN-LEFT: 4px
}
#toolbox_art_bot .float_r {
	PADDING-RIGHT: 10px
}
#toolbox_art_bot UL {
	MARGIN-TOP: 5px; DISPLAY: inline; LIST-STYLE-TYPE: none
}
#toolbox_art_bot LI {
	FLOAT: left
}
#toolbox_art_bot .pipe {
	DISPLAY: block; FLOAT: left; MARGIN: 0px 2em; FONT: 1.3em "arial =
black", arial, helvetica, sans-serif; COLOR: #b8b8b8
}
#toolbox_art_bot UL.pages LI A {
	DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 7px; WIDTH: auto; =
TEXT-ALIGN: center
}
#toolbox_art_bot .tool #full_page {
	MARGIN-TOP: -0.1em; DISPLAY: block; FLOAT: left
}
#toolbox_art_bot .tool SPAN.current {
	PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; FLOAT: left; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 7px; PADDING-TOP: 0px; =
BACKGROUND-COLOR: #cccccc; TEXT-ALIGN: center
}
#toolbox_art_bot #matchbook_plus {
	MARGIN-TOP: 0.6em
}
#article_footer .search_filter {
	BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #999 1px =
solid; MARGIN-TOP: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; FONT: =
10px "Trebuchet MS", "Univers 45 Light", Verdana, sans-serif; =
BORDER-LEFT: #999 1px solid; WIDTH: 150px; COLOR: #000000; PADDING-TOP: =
4px; BORDER-BOTTOM: #999 1px solid; HEIGHT: 20px; BACKGROUND-COLOR: =
#fff; TEXT-ALIGN: right; _height: 16px
}
#toolbot_art_bot LI {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: none; =
BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; =
PADDING-TOP: 0px; WHITE-SPACE: nowrap; BACKGROUND-COLOR: #000000; =
BORDER-RIGHT-WIDTH: 0px
}
#toolbox_art_bot #social #section {
	DISPLAY: block; LEFT: 1%; POSITION: absolute; TOP: 100%
}
#toolbox_art_bot .firstTop {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_left.gif) no-repeat =
left top; LEFT: -9px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; TOP: =
-10px; HEIGHT: 100%
}
#toolbox_art_bot .firstBottom {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_left.gif) no-repeat =
left bottom; LEFT: -9px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; =
TOP: 0px; HEIGHT: 100%
}
#toolbox_art_bot .middle {
	BACKGROUND: none transparent scroll repeat 0% 0%; POSITION: absolute
}
#toolbox_art_bot .lastTop {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_right.gif) no-repeat =
right top; LEFT: 135px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; =
TOP: -9px; HEIGHT: 100%
}
#toolbox_art_bot .lastBottom {
	DISPLAY: block; BACKGROUND: url(/images/nav_bevel_right.gif) no-repeat =
right bottom; LEFT: 135px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; =
TOP: 0px; HEIGHT: 100%
}
#toolbox_art_bot #social {
	Z-INDEX: 1; LEFT: 15px; WIDTH: 115px; POSITION: absolute
}
#toolbox_art_bot #social #section {
	DISPLAY: block; LEFT: 1%; POSITION: absolute; TOP: 100%
}
#sb_art_yahoo {
	MARGIN-LEFT: 12px; BOTTOM: 1px; MARGIN-RIGHT: 27px
}
#toolbox_art_bot #sb_art_sharethis {
	PADDING-RIGHT: 5px; PADDING-LEFT: 22px; PADDING-BOTTOM: 5px; =
MARGIN-LEFT: 4px; CURSOR: hand; PADDING-TOP: 1px
}
* HTML #toolbox_art_bot #sb_art_sharethis {
	MARGIN-LEFT: 0px
}
.stwrapper {
=09
}
*.stwrapper {
=09
}
[className=3D'stwrapper'] {
=09
}
#boxOuter {
	HEIGHT: auto! important
}
#boxTop {
	HEIGHT: 200px! important
}
#boxTopTabs {
	HEIGHT: 280px
}
#boxToContainer {
	HEIGHT: 240px! important
}
#btnShareSend {
	MARGIN-BOTTOM: 5px! important
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/politics/law/news/2001/09/edit_styles.css

.storyimageleft {
	FLOAT: left; MARGIN: 0px 15px 15px 0px
}
.storyimageright {
	FLOAT: right; MARGIN: 0px 0px 15px 15px
}
.youtubestoryembed {
	MARGIN: 0px 0px 23px 102px; WIDTH: 425px
}
.feedroomstoryembed {
	FLOAT: right; MARGIN: 0px 0px 23px 20px; WIDTH: 322px
}
.feedroomstoryembedlarge {
	FLOAT: right; MARGIN: 0px 0px 23px 20px; WIDTH: 404px
}
.youtubevideo {
	MARGIN-BOTTOM: 25px; WIDTH: 425px
}
.youtubevideoright {
	FLOAT: right; MARGIN-BOTTOM: 25px; MARGIN-LEFT: 17px; WIDTH: 425px
}
.sidebox .hed A {
	FONT-SIZE: 1.3em; COLOR: rgb(0,124,165)
}
.sidebox .caps {
	FONT-WEIGHT: bold; FONT-SIZE: 1.1em; TEXT-TRANSFORM: uppercase
}
.mp3_player {
	MARGIN: 0px 0px 20px
}
.story_image_630px {
	MARGIN: 0px 0px 15px; WIDTH: 630px
}
.header_box {
	BORDER-RIGHT: rgb(212,212,212) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(212,212,212) 1px solid; PADDING-LEFT: 10px; =
PADDING-BOTTOM: 10px; MARGIN: 0px 0px 15px; BORDER-LEFT: =
rgb(212,212,212) 1px solid; WIDTH: 630px; PADDING-TOP: 10px; =
BORDER-BOTTOM: rgb(212,212,212) 1px solid; BACKGROUND-COLOR: =
rgb(249,249,249)
}
#storysidebar A {
	FONT-SIZE: 1.4em
}
#storysidebar H3 {
	PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 10px; FONT: =
0.8em "arial black",helvetica,sans-serif; TEXT-TRANSFORM: uppercase; =
COLOR: #666666; PADDING-TOP: 0pt; font-size-adjust: none; font-stretch: =
normal
}
.horizontal_image_1 {
	MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 340px
}
.horizontal_image_2 {
	MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 269px
}
.horizontal_image_3 {
	MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 211px
}
.horizontal_image_4 {
	MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 263px
}
.horizontal_image_5 {
	MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 222px
}
.horizontal_image_left {
	FLOAT: left; MARGIN: 0px
}
.horizontal_image_right {
	DISPLAY: inline; FLOAT: right; MARGIN: 0px
}
.horizontal_image_caption_right {
	PADDING-RIGHT: 5px; DISPLAY: inline; PADDING-LEFT: 5px; FONT-SIZE: =
0.95em; FLOAT: right; PADDING-BOTTOM: 5px; WIDTH: 190px; COLOR: #ddd; =
PADDING-TOP: 5px; FONT-FAMILY: arial,helvetica,sans-serif; HEIGHT: 100%; =
BACKGROUND-COLOR: #000000
}
.horizontal_image_caption_left {
	PADDING-RIGHT: 5px; DISPLAY: inline; PADDING-LEFT: 5px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; WIDTH: 190px; COLOR: #ddd; =
PADDING-TOP: 5px; FONT-FAMILY: arial,helvetica,sans-serif; HEIGHT: 100%; =
BACKGROUND-COLOR: #000000
}
.horizontal_image_credit {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 0.9em; =
PADDING-BOTTOM: 15px; PADDING-TOP: 15px; FONT-STYLE: italic; TEXT-ALIGN: =
right
}
#kidneypackagetoc {
	FLOAT: left; MARGIN: 0px 15px 15px 0px; WIDTH: 250px
}
#kidneypackagetoc #kidneyhed {
	BACKGROUND-IMAGE: url(/images/mb/bubbles.gif); BACKGROUND-REPEAT: =
repeat; HEIGHT: 15px
}
#kidneypackagetoc #kidneytitle {
	FONT-SIZE: 1.4em; MARGIN: 3px 0px 20px; HEIGHT: 20px; TEXT-ALIGN: =
center; font-wieght: bold
}
#kidneypackagetoc #kidneybody {
	MARGIN: 0px 0px 10px; HEIGHT: 57px
}
#kidneypackagetoc #kidneybody IMG {
	BORDER-RIGHT: rgb(180,180,180) 3px solid; BORDER-TOP: rgb(180,180,180) =
3px solid; FLOAT: left; BORDER-LEFT: rgb(180,180,180) 3px solid; WIDTH: =
50px; MARGIN-RIGHT: 5px; BORDER-BOTTOM: rgb(180,180,180) 3px solid; =
HEIGHT: 50px
}
#kidneypackagetoc #kidneybody P {
	TEXT-ALIGN: left
}
#article_text #kidneypackagetoc #kidneybody P {
	TEXT-ALIGN: left
}
#kidneypackagetoc #kidneyfoot {
	MARGIN-TOP: 15px; BACKGROUND-IMAGE: url(/images/mb/bubbles.gif); =
BACKGROUND-REPEAT: repeat; HEIGHT: 15px
}
#kidneypackagetoc A {
	COLOR: rgb(0,124,165); TEXT-DECORATION: none
}
#storyimage0525 {
	FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 245px
}
#storyimage0518 {
	FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 350px
}
#article_text #storyimage0518 .storyimagecaption P {
	TEXT-ALIGN: left
}
#storyimageright0504 {
	FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 167px
}
#storyimageright0504contra {
	FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 188px
}
.storyimagetop {
=09
}
.storyimagecaption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 0.95em; =
PADDING-BOTTOM: 5px; COLOR: #ddd; PADDING-TOP: 5px; FONT-FAMILY: =
arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000
}
.storyimagecredit {
	FONT-SIZE: 0.9em; FONT-STYLE: italic; TEXT-ALIGN: right
}
.story_image_right_250px {
	FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 250px
}
.story_image_250px {
	BACKGROUND: #000; MARGIN: 0px 20px 20px 0px; WIDTH: 250px
}
.imagecaption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; =
PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: =
#ddd; PADDING-TOP: 5px; POSITION: relative
}
#article_text #storyimage0518 .storyimagecaption P {
	MARGIN-BOTTOM: 0px; LINE-HEIGHT: 1.2em
}
#lorepodcast {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 5px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 5px; FONT-SIZE: =
0.8em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 7px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 250px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; HEIGHT: 123px; BACKGROUND-COLOR: rgb(240,240,240); TEXT-ALIGN: =
left
}
#lorepodcast IMG {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; BORDER-TOP: rgb(127,127,127) =
1px solid; FLOAT: left; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: =
rgb(127,127,127) 1px solid; BORDER-BOTTOM: rgb(127,127,127) 1px solid
}
#article_text #lorepodcast P {
	MARGIN: 0px; TEXT-ALIGN: left
}
#article_text #lorepodcast A {
	COLOR: rgb(0,124,165); TEXT-ALIGN: left; TEXT-DECORATION: underline
}
#article_text #lorepodcast H1 {
	FONT-WEIGHT: bold; FONT-SIZE: 1.2em; MARGIN-BOTTOM: 4px; TEXT-ALIGN: =
center
}
#gallerypromo {
	BORDER-RIGHT: rgb(190,190,190) 1px solid; PADDING-RIGHT: 5px; =
BORDER-TOP: rgb(190,190,190) 1px solid; PADDING-LEFT: 5px; FLOAT: left; =
PADDING-BOTTOM: 5px; MARGIN: 0px 7px 5px 0px; BORDER-LEFT: =
rgb(190,190,190) 1px solid; WIDTH: 200px; COLOR: rgb(90,90,90); =
PADDING-TOP: 5px; BORDER-BOTTOM: rgb(190,190,190) 1px solid; =
BACKGROUND-COLOR: rgb(240,240,240); TEXT-ALIGN: left
}
#gallerypromo IMG {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; BORDER-TOP: rgb(127,127,127) =
1px solid; FLOAT: left; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: =
rgb(127,127,127) 1px solid; BORDER-BOTTOM: rgb(127,127,127) 1px solid
}
#article_text #gallerypromo P {
	MARGIN: 0px; TEXT-ALIGN: left
}
#article_text #gallerypromo A {
	FONT-SIZE: 1.3em; COLOR: rgb(0,124,165); TEXT-ALIGN: left
}
#article_text #gallerypromo H1 {
	FONT-WEIGHT: bold; FONT-SIZE: 1.2em; MARGIN-BOTTOM: 8px; TEXT-ALIGN: =
center
}
.storytocunit {
	MARGIN-BOTTOM: 10px; HEIGHT: 80px
}
TABLE.start-table {
=09
}
TABLE.start-table TD {
	FONT-WEIGHT: normal
}
TABLE.start-table TD {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: =
0px; WIDTH: 33%; PADDING-TOP: 7px; TEXT-ALIGN: center
}
TABLE.start-table TH {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: =
0px; WIDTH: 33%; PADDING-TOP: 7px; TEXT-ALIGN: center
}
TABLE.start-table TD.expired {
	BACKGROUND-COLOR: #f68216
}
TABLE.start-table TD.tired {
	BACKGROUND-COLOR: #fdab0f
}
TABLE.start-table TD.wired {
	BACKGROUND-COLOR: #ffcc00
}
TABLE.start-table TH.expired {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #f68216
}
TABLE.start-table TH.tired {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #fdab0f
}
TABLE.start-table TH.wired {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #ffcc00
}
TABLE.start-table2 {
=09
}
TABLE.start-table2 TD {
	FONT-WEIGHT: normal
}
TABLE.start-table2 TD {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: =
0px; PADDING-TOP: 7px; TEXT-ALIGN: left
}
TABLE.start-table2 TH {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: =
0px; PADDING-TOP: 7px; TEXT-ALIGN: left
}
TABLE.start-table2 TD.orange {
	BACKGROUND-COLOR: #f68216
}
TABLE.start-table2 TD.orange-yellow {
	BACKGROUND-COLOR: #fdab0f
}
TABLE.start-table2 TD.yellow {
	BACKGROUND-COLOR: #ffcc00
}
TABLE.start-table2 TD.black {
	COLOR: #ffffff; BACKGROUND-COLOR: #000000
}
TABLE.start-table2 TH.black {
	FONT-WEIGHT: bold; COLOR: #ffffff; BACKGROUND-COLOR: #000000
}
TABLE.start-table2 TD.white {
	BACKGROUND-COLOR: #ffffff
}
TABLE.start-table2 TH.white {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #ffffff
}
TABLE.start-table2 TH.orange {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #f68216
}
TABLE.start-table2 TH.orange-yellow {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #fdab0f
}
TABLE.start-table2 TH.yellow {
	FONT-WEIGHT: bold; BACKGROUND-COLOR: #ffcc00
}
P.reviews_section {
	FONT-SIZE: 2em; MARGIN: 0px
}
SUP.corrections {
	COLOR: rgb(255,0,0)
}
TABLE.pl_test {
	FONT-SIZE: 8.5pt
}
A.arg {
	FONT-SIZE: 1em; COLOR: #fff
}
A.arg:link {
	COLOR: #fff
}
A.arg:visited {
	COLOR: #fff
}
A.arg:hover {
	COLOR: #fff
}
A.arg:active {
	COLOR: #fff
}
.blockquote {
	PADDING-RIGHT: 20px; PADDING-LEFT: 20px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.list1 UL {
	PADDING-RIGHT: 10px; PADDING-LEFT: 50px; PADDING-BOTTOM: 5px; MARGIN: =
10px 10px 5px 50px; PADDING-TOP: 10px; LIST-STYLE-TYPE: none
}
.list1 LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 0px =
0px 3px 30px; PADDING-TOP: 0px
}
.list1 OL {
	PADDING-RIGHT: 10px; PADDING-LEFT: 50px; PADDING-BOTTOM: 5px; MARGIN: =
10px 10px 5px 50px; PADDING-TOP: 10px; LIST-STYLE-TYPE: none
}
#caption400wide {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; =
PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: =
#ddd; PADDING-TOP: 5px; POSITION: relative
}
#embed400wide {
	WIDTH: 400px
}
#sidebox {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 240px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; TEXT-ALIGN: left
}
.sidebox {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 240px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; TEXT-ALIGN: left
}
#sidebox350 {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 350px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; TEXT-ALIGN: left
}
.sidebox350 {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 350px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; TEXT-ALIGN: left
}
#sidebox610 {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 610px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; TEXT-ALIGN: left
}
.sidebox610 {
	BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; =
BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: =
0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; =
BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 610px; COLOR: =
rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px =
solid; TEXT-ALIGN: left
}
#sidebox150 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
5px; WIDTH: 150px; PADDING-TOP: 0px; TEXT-ALIGN: left
}
.sidebox150 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
5px; WIDTH: 150px; PADDING-TOP: 0px; TEXT-ALIGN: left
}
.table-r1 {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; COLOR: =
#ffffff; PADDING-TOP: 7px; BACKGROUND-COLOR: #000000
}
.table-r2 {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; =
PADDING-TOP: 7px; BACKGROUND-COLOR: #ee4900
}
.table-r3 {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; =
PADDING-TOP: 7px; BACKGROUND-COLOR: #f27b00
}
.table-r4 {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; =
PADDING-TOP: 7px; BACKGROUND-COLOR: #f9be00
}
#googlemap {
	WIDTH: 620px; HEIGHT: 450px
}
.thumbnails_off {
	BORDER-RIGHT: #ededed 5px solid; BORDER-TOP: #ededed 5px solid; FLOAT: =
left; MARGIN: 0px 10px 10px 0px; BORDER-LEFT: #ededed 5px solid; WIDTH: =
70px; BORDER-BOTTOM: #ededed 5px solid; HEIGHT: 70px
}
.thumbnails_on {
	BORDER-RIGHT: #000 5px solid; BORDER-TOP: #000 5px solid; FLOAT: left; =
MARGIN: 0px 10px 10px 0px; BORDER-LEFT: #000 5px solid; WIDTH: 70px; =
BORDER-BOTTOM: #000 5px solid; HEIGHT: 70px
}
.text-grey {
	COLOR: #666769
}
.text-pink {
	COLOR: #e1839d
}
.wide_img {
	BACKGROUND: #000; WIDTH: 630px
}
.wide_caption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 0.95em; BACKGROUND: =
#000; PADDING-BOTTOM: 5px; WIDTH: 620px; COLOR: #ddd; PADDING-TOP: 5px
}
.wide_caption_txt {
	FONT-SIZE: 0.95em; COLOR: #eee; FONT-FAMILY: =
arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000
}
.wide400_img {
	BACKGROUND: #000; FLOAT: left; MARGIN: 0px 0px 15px; WIDTH: 400px
}
.wide400_caption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 0.95em; BACKGROUND: =
#000; PADDING-BOTTOM: 5px; WIDTH: 390px; COLOR: #ddd; PADDING-TOP: 5px
}
.wide400_caption_txt {
	FONT-SIZE: 0.95em; COLOR: #eee; FONT-FAMILY: =
arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000
}
.content_sharing {
	PADDING-RIGHT: 0px; PADDING-LEFT: 11px; FLOAT: right; PADDING-BOTTOM: =
10px; MARGIN: 0px 0px 30px 15px; BORDER-LEFT: #cbcbcb 1px solid; WIDTH: =
200px; PADDING-TOP: 0px; TEXT-ALIGN: left
}
.portfolio_img {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
13px; PADDING-TOP: 17px; BORDER-BOTTOM: #eee 1px solid
}
.content_sharing_txt {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 17px; BORDER-BOTTOM: #eee 1px solid
}
.content_sharing_sub {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 17px
}
.geek_matchbook {
	CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; =
MARGIN: 10px 0px; WIDTH: 130px; HEIGHT: 17px
}
#geek_container {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 630px; PADDING-TOP: 0px
}
#geek_nav {
	PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-SIZE: 0.9em; FLOAT: left; =
PADDING-BOTTOM: 5px; WIDTH: 130px; PADDING-TOP: 0px
}
#geek_nav LI {
	MARGIN-BOTTOM: 5px
}
#geek_text {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 480px; PADDING-TOP: 0px
}
.a_z_nav {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 12px; BACKGROUND: =
#010101; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 10px 0px; WIDTH: =
630px; COLOR: #666; PADDING-TOP: 5px; TEXT-ALIGN: left
}
.a_z_nav A {
	FONT-SIZE: 12px; COLOR: #fff
}
.a_z_nav A:visited {
	FONT-SIZE: 12px; COLOR: #fff
}
.a_z_nav A:hover {
	FONT-SIZE: 12px; COLOR: #007ca5
}
.geek_img {
	PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
10px; WIDTH: 100px; PADDING-TOP: 0px; TEXT-ALIGN: left
}
.geek_letter {
	FONT-SIZE: 2em
}
* {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.geekipedia_list {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 10px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 20px; =
FONT: 12px Georgia, "Times New Roman", serif; WIDTH: 430px; PADDING-TOP: =
15px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px
}
.geekipedia_list_hed {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: 14px =
Georgia, "Times New Roman", serif; COLOR: #2f2f2f; PADDING-TOP: 5px; =
BACKGROUND-COLOR: #e1e1e1
}
.geekipedia_list A {
	COLOR: #007ca5; TEXT-DECORATION: none; outline: none
}
.geekipedia_list A:visited {
	COLOR: #666
}
.geekipedia_list A:active {
	COLOR: #999
}
.geekipedia_list TR.even {
	BACKGROUND-COLOR: #e1e1e1
}
.geekipedia_timeline {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 10px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 20px; =
FONT: 12px Georgia, "Times New Roman", serif; WIDTH: 470px; PADDING-TOP: =
15px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px
}
.geekipedia_timeline_2 {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold =
14px Georgia, "Times New Roman", serif; COLOR: #ffffff; PADDING-TOP: =
5px; BACKGROUND-COLOR: #4b4b4b
}
.geekipedia_timeline_date {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; =
PADDING-BOTTOM: 2px; PADDING-TOP: 2px; TEXT-ALIGN: right
}
.geekipedia_timeline A {
	COLOR: #007ca5; TEXT-DECORATION: none; outline: none
}
.geekipedia_timeline A:visited {
	COLOR: #666
}
.geekipedia_timeline A:active {
	COLOR: #999
}
.geekipedia_timeline TD {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; =
VERTICAL-ALIGN: top; PADDING-TOP: 2px
}
.geekipedia_timeline TR.even {
	BACKGROUND-COLOR: #e1e1e1
}
.geekipedia_table {
	PADDING-RIGHT: 10px; PADDING-LEFT: 7px; PADDING-BOTTOM: 10px; FONT: =
12px Georgia, "Times New Roman", serif; WIDTH: 430px; BORDER-TOP-STYLE: =
none; PADDING-TOP: 15px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM-STYLE: none
}
.geekipedia_table_hed_1 {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold =
13px Georgia, "Times New Roman", serif; COLOR: #ffffff; PADDING-TOP: =
5px; BACKGROUND-COLOR: #000000
}
.geekipedia_table_hed_2 {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold =
13px Georgia, "Times New Roman", serif; COLOR: #ffffff; PADDING-TOP: =
5px; BACKGROUND-COLOR: #4b4b4b
}
.geekipedia_table TD {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; =
VERTICAL-ALIGN: top; PADDING-TOP: 5px
}
.geekipedia_table TR.even {
	BACKGROUND-COLOR: #e1e1e1
}
.geekdiv_list {
=09
}
.geekdiv_list H4 {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 100%; PADDING-BOTTOM: =
5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #e1e1e1
}
.geekdiv_list P {
	FONT-SIZE: 95%; MARGIN-LEFT: 20px
}
.geekdiv_alt {
	FONT-SIZE: 95%; BACKGROUND-COLOR: #ddd
}
.geekdiv_alt .alt {
	BACKGROUND-COLOR: #eee
}
#article #article_body .embedgeek {
	FLOAT: left; WIDTH: 160px
}
#article #article_body .embedgeek .pic IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; WIDTH: 150px; BORDER-RIGHT-WIDTH: 0px
}
#article #anni_index_page .matchbook_rain_light {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 12px 0px; LINE-HEIGHT: 1em; PADDING-TOP: 0px
}
#anni_index_page DIV {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px
}
P {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px
}
#article #article_body #anni_index_page P {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.24em
}
#anni_index_page {
	FONT-SIZE: 0.91em; LINE-HEIGHT: 1em; FONT-FAMILY: georgia,"times new =
roman",serif
}
#anni_index_page #intro {
	FONT-SIZE: 1.1em; MARGIN: -9px 0px 12px; COLOR: #000
}
#anni_index_page #intro P {
	LINE-HEIGHT: 1.1em
}
#anni_index_featureBox {
	CLEAR: both; WIDTH: 100%
}
#container_level_1_Items {
	FLOAT: left; WIDTH: 300px
}
#container_level_1_Items IMG {
	CLEAR: both; DISPLAY: block; PADDING-BOTTOM: 7px
}
#container_level_1_Items H5 {
	MARGIN-TOP: 2px; FONT: 0.9em/1.2 "arial black",helvetica,sans-serif; =
TEXT-TRANSFORM: uppercase; font-size-adjust: none
}
#container_level_1_Items H5 A {
	COLOR: #007ca5; TEXT-DECORATION: none; outline-color: invert; =
outline-style: none; outline-width: medium
}
#article_body #container_level_1_Items P {
	FONT-SIZE: 2em; LINE-HEIGHT: 1em
}
#container_level_1_Items P A {
	COLOR: #000
}
#container_level_1_Items P A:hover {
	COLOR: #007ca5
}
#container_level_1_Items P STRONG {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 0.8em; TEXT-TRANSFORM: =
uppercase; FONT-FAMILY: arial,helvetica,sans-serif
}
#container_level_1_Items .date_time {
	FONT-SIZE: 0.85em; LINE-HEIGHT: 1em
}
#container_level_2_Items {
	FLOAT: left; MARGIN-LEFT: 10px; WIDTH: 300px
}
#container_level_2_Items .item_level_2 {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
3px; MARGIN: 0px; WIDTH: 290px; PADDING-TOP: 0px
}
#container_level_2_Items .item_level_2 STRONG {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 0.85em; TEXT-TRANSFORM: =
uppercase; FONT-FAMILY: arial,helvetica,sans-serif
}
#container_level_2_Items .item_level_2 IMG {
	DISPLAY: block; FLOAT: left; MARGIN-BOTTOM: 10px; WIDTH: 70px; =
MARGIN-RIGHT: 10px; HEIGHT: 70px
}
#container_level_2_Items .item_level_2 DIV {
	CLEAR: right
}
#container_level_2_Items .item_level_2 P {
	PADDING-RIGHT: 5px; PADDING-BOTTOM: 0px
}
#container_level_2_Items .item_level_2 P A {
	COLOR: #000; LINE-HEIGHT: 1.2em
}
#container_level_2_Items .item_level_2 P A:hover {
	COLOR: #007ca5
}
.item_level_2 H5 {
	CLEAR: right; FONT: 0.9em "arial black",helvetica,sans-serif; =
TEXT-TRANSFORM: uppercase; font-size-adjust: none
}
.item_level_2 H5 A {
	COLOR: #007ca5; TEXT-DECORATION: none; outline-color: invert; =
outline-style: none; outline-width: medium
}
#container_level_2_Items .item_level_2 .date_time {
	FONT-SIZE: 0.85em; LINE-HEIGHT: 1em
}
.anni_index_tertiaryBox {
	CLEAR: all; DISPLAY: block; WIDTH: 600px
}
#anni_index_tertiaryBox .item_level_3 H1 {
	FONT: 1.2em/2em arial,helvetica,sans-serif; COLOR: #999999; =
font-size-adjust: none; font-stretch: normal
}
#anni_index_tertiaryBox .item_level_3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
3px; MARGIN: 0px 0px 10px; WIDTH: 300px; PADDING-TOP: 0px
}
#anni_index_tertiaryBox .item_level_3 STRONG {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 0.85em; TEXT-TRANSFORM: =
uppercase; FONT-FAMILY: arial,helvetica,sans-serif
}
#anni_index_tertiaryBox .item_level_3 IMG {
	DISPLAY: block; FLOAT: left; WIDTH: 70px; MARGIN-RIGHT: 10px; HEIGHT: =
70px
}
#anni_index_tertiaryBox .item_level_3 DIV {
	CLEAR: right
}
#anni_index_tertiaryBox .item_level_3 P {
	PADDING-RIGHT: 15px; PADDING-BOTTOM: 0px
}
#anni_index_tertiaryBox .item_level_3 P A {
	COLOR: #000; LINE-HEIGHT: 1.1em
}
#anni_index_tertiaryBox .item_level_3 P A:hover {
	COLOR: #007ca5
}
.item_level_3 H5 {
	CLEAR: right; FONT: 0.9em "arial black",helvetica,sans-serif; =
TEXT-TRANSFORM: uppercase; font-size-adjust: none
}
.item_level_3 H5 A {
	COLOR: #007ca5; TEXT-DECORATION: none; outline-color: invert; =
outline-style: none; outline-width: medium
}
#anni_index_tertiaryBox .item_level_3 .date_time {
	FONT-SIZE: 0.85em; LINE-HEIGHT: 1em
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/article.css

@import url( edit_styles.css );
#contentwell {
	PADDING-RIGHT: 34px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: =
hidden; WIDTH: 630px; PADDING-TOP: 0px
}
.social {
	POSITION: relative
}
#toolbox_art_bot {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 10px; PADDING-TOP: 0px; HEIGHT: 16px
}
#article {
	MARGIN: 20px 0px 0px
}
#article .img_middle {
	PADDING-BOTTOM: 3px; VERTICAL-ALIGN: middle
}
#article H1 {
	FONT: 2.3em georgia, "times new roman", serif; line-spacing: 2.6em
}
#article #section {
	MARGIN-BOTTOM: 5px; FONT: 1em "arial black", helvetica, sans-serif; =
TEXT-TRANSFORM: uppercase
}
#article .date_time {
	MARGIN: 5px 0px 10px; FONT: 0.95em/1.5em georgia, "times new roman", =
serif; TEXT-TRANSFORM: capitalize; COLOR: #666
}
#article .date_time .img_middle {
	PADDING-RIGHT: 20px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#article #article_body {
	FONT: 1.17em georgia, "times new roman", serif
}
#article #article_body #article_text {
	FONT: 1.2em georgia, "times new roman", serif
}
#article #article_body P {
	PADDING-BOTTOM: 18px; LINE-HEIGHT: 1.24em
}
#article #article_body #embed {
	FLOAT: left; WIDTH: 270px
}
#article #article_body #embed_wide {
	WIDTH: 630px
}
#article #article_body #embed #pic {
	BACKGROUND: #000; MARGIN: 0px 20px 20px 0px; WIDTH: 250px
}
#article #article_body #embed_wide #pic {
	BACKGROUND: #000; MARGIN: 0px 0px 20px; WIDTH: 630px
}
#article #article_body #embed #pic DIV#zoom A IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; WIDTH: 19px; BORDER-RIGHT-WIDTH: 0px
}
#article #article_body #embed_wide #pic DIV#zoom A IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; WIDTH: 19px; BORDER-RIGHT-WIDTH: 0px
}
#article #article_body #embed #pic IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; WIDTH: 250px; BORDER-RIGHT-WIDTH: 0px
}
#article #article_body #embed_wide #pic IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; WIDTH: 630px; BORDER-RIGHT-WIDTH: 0px
}
#article #article_body #embed #pic .zoom {
	POSITION: relative
}
#article #article_body #embed #pic .zoom IMG {
	Z-INDEX: 100; LEFT: 226px; WIDTH: 19px; CURSOR: pointer; POSITION: =
absolute; TOP: -24px; HEIGHT: 19px
}
#article #article_body #embed_wide #pic .zoom {
	DISPLAY: none
}
#article #article_body #embed_wide #pic .zoom IMG {
	DISPLAY: none
}
#article #article_body #embed #caption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; =
PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: =
#ddd; PADDING-TOP: 5px; POSITION: relative
}
#article #article_body #embed_wide #caption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; =
PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: =
#ddd; PADDING-TOP: 5px; POSITION: relative
}
#article #article_body #article_text #embed #caption {
	FONT-SIZE: 0.85em
}
#article #article_body #article_text #embed_wide #caption {
	FONT-SIZE: 0.85em
}
#article #article_body #embed #caption .slideshowLink {
	DISPLAY: inline; WHITE-SPACE: nowrap
}
#article #article_body #embed_wide #caption .slideshowLink {
	DISPLAY: inline; WHITE-SPACE: nowrap
}
#article #article_body #embed #caption .slideshowLink IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; WIDTH: =
16px; PADDING-TOP: 0px; POSITION: relative; TOP: 3px; HEIGHT: 13px
}
#article #article_body #embed_wide #caption .slideshowLink IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; WIDTH: =
16px; PADDING-TOP: 0px; POSITION: relative; TOP: 3px; HEIGHT: 13px
}
#article #article_body #embed #caption .slideshowLink A {
	COLOR: #ddd
}
#article #article_body #embed_wide #caption .slideshowLink A {
	COLOR: #ddd
}
#article #article_body .left_rail {
	CLEAR: left; PADDING-RIGHT: 20px; PADDING-LEFT: 0px; FLOAT: left; =
PADDING-BOTTOM: 0px; WIDTH: 250px; PADDING-TOP: 0px
}
#article #article_body .left_rail .title {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; FONT: =
0.8em "arial black", helvetica, sans-serif; TEXT-TRANSFORM: uppercase; =
COLOR: #666; PADDING-TOP: 0px
}
#article #article_body .left_rail .subtitle {
	FONT: bold 0.9em arial, helvetica, sans-serif; TEXT-TRANSFORM: =
uppercase; COLOR: #000
}
#article #article_body .left_rail .wrapper {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; PADDING-TOP: 0px
}
#article #article_body .left_rail IMG {
	PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
10px; MARGIN: 0px 0px 3px; WIDTH: 60px; PADDING-TOP: 0px; HEIGHT: 60px
}
#article .left_rail .matchbook_bubble {
	CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; =
MARGIN: 10px 0px; WIDTH: 246px; HEIGHT: 17px
}
#article #article_body #article_text_narrow {
	MARGIN: 0px 0px 0px 270px; WIDTH: 360px
}
* HTML #article #article_body #article_text_narrow {
	FLOAT: right; MARGIN: 0px
}
#article .matchbook_plus {
	CLEAR: both; BACKGROUND: url(/images/plus_tile.gif) repeat-x 0px 0px; =
WIDTH: 630px; HEIGHT: 17px
}
* HTML #article #mb_article_end {
	MARGIN-TOP: -25px
}
* + HTML #article #mb_article_end {
	MARGIN-TOP: 85px
}
#article #article_footer {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 10px
}
#article #article_footer #left_col {
	FLOAT: left; WIDTH: 330px; MARGIN-RIGHT: 40px
}
#article #article_footer #right_col {
	FLOAT: right; WIDTH: 260px
}
#article #article_footer P {
	PADDING-BOTTOM: 10px; FONT: 1.2em georgia, "times new roman", serif; =
COLOR: #000
}
#article #article_footer .date_time {
	MARGIN-TOP: 5px; FONT: 0.8em georgia, "times new roman", serif; =
WHITE-SPACE: nowrap
}
#article #article_footer .date_time#correction {
	DISPLAY: block
}
#article #article_footer .title {
	FONT: bold 1.1em "arial", helvetica, sans-serif; COLOR: #666
}
#article #article_footer #see_also STRONG {
	FONT: bold 1.1em "arial", helvetica, sans-serif; COLOR: #666
}
#article #article_footer .title_big {
	FONT: bold 1.5em "arial", helvetica, sans-serif; COLOR: #666
}
#article #article_footer #search {
	PADDING-BOTTOM: 20px
}
#article #article_footer #search .input_text {
	BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px =
solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: =
#999 1px solid; WIDTH: 235px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px =
solid; HEIGHT: 16px
}
#article #article_footer #search #wrapper {
	DISPLAY: inline; POSITION: relative; TOP: 4px
}
#article #article_footer #search #wrapper .go {
	WIDTH: 20px; HEIGHT: 18px
}
#article H2 {
	PADDING-BOTTOM: 3px; FONT: 2.6em "arial", helvetica, sans-serif; =
TEXT-TRANSFORM: uppercase
}
#article .matchbook_rain {
	CLEAR: both; BACKGROUND: url(/images/rain_tile.gif) repeat-x left top; =
MARGIN-BOTTOM: 5px; WIDTH: 628px; HEIGHT: 17px
}
#article .matchbook_rain_light {
	CLEAR: both; BACKGROUND: url(/images/rain_tile_light.gif) repeat-x left =
top; PADDING-BOTTOM: 15px; WIDTH: 628px; HEIGHT: 17px
}
#article #author_left {
	FLOAT: left; PADDING-TOP: 10px; HEIGHT: 70px
}
#article #author_left .img_middle {
	PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; MARGIN: =
0px; VERTICAL-ALIGN: middle; WIDTH: 70px; PADDING-TOP: 0px; HEIGHT: 70px
}
#article #author_right {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: =
0px; PADDING-TOP: 18px; HEIGHT: 70px
}
#article #author_right .img_middle {
	VERTICAL-ALIGN: middle
}
#article #author_right .credit {
	FONT: 1.5em "arial", helvetica, sans-serif; COLOR: #666
}
#article #author_left .alt_text {
	FONT: 2.3em "arial", helvetica, sans-serif
}
DIV.columnToolsL {
	FLOAT: left; MARGIN: 0px 10px 0px 0px
}
#article #comment {
	CLEAR: left; PADDING-RIGHT: 20px; PADDING-LEFT: 0px; FLOAT: left; =
PADDING-BOTTOM: 20px; WIDTH: 250px; PADDING-TOP: 0px
}
#article #comment #top {
	BACKGROUND: url(/images/comment_back_top.gif) no-repeat 50% top; WIDTH: =
250px; HEIGHT: 35px
}
#article #comment #top #comment_wrapper {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; FONT: bold =
1em "arial", helvetica, sans-serif; VERTICAL-ALIGN: bottom; PADDING-TOP: =
15px
}
#article #comment #middle {
	BACKGROUND: url(/images/comment_back_middle.gif) repeat-y; WIDTH: 250px
}
#article #comment #middle .title {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; FONT: bold =
0.9em "arial", helvetica, sans-serif; TEXT-TRANSFORM: none; COLOR: #999; =
PADDING-TOP: 0px
}
#article #comment #middle .name {
	FONT: bold 0.9em georgia, "times new roman", serif; COLOR: #444
}
#article #comment #middle #date_time {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: =
0px; FONT: bold 0.9em georgia, "times new roman", serif; COLOR: #999; =
PADDING-TOP: 0px
}
#article #comment #middle #text {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 6px; =
PADDING-TOP: 0px
}
#article #comment #middle P {
	DISPLAY: inline; FONT: 1em georgia, "times new roman", serif; =
TEXT-ALIGN: left
}
#article #comment #bottom {
	BACKGROUND: url(/images/comment_back_bottom.gif) no-repeat 50% bottom; =
WIDTH: 250px; HEIGHT: 35px
}
#article #comment #bottom A {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 7px; FONT: 1em =
georgia, "times new roman", serif; PADDING-TOP: 7px
}
#article #article_footer #login_register {
=09
}
#article #article_footer .title_big {
=09
}
.storyassetshell {
	BORDER-RIGHT: rgb(237,237,237) 1px solid; BORDER-TOP: rgb(237,237,237) =
1px solid; FONT-SIZE: 0.9em; BORDER-LEFT: rgb(237,237,237) 1px solid; =
WIDTH: 410px; COLOR: rgb(140,140,140); LINE-HEIGHT: 0.95em; =
BORDER-BOTTOM: rgb(237,237,237) 1px solid
}
.storyassetshellleft {
	BORDER-RIGHT: rgb(237,237,237) 1px solid; BORDER-TOP: rgb(237,237,237) =
1px solid; FONT-SIZE: 0.9em; FLOAT: left; MARGIN: 0px 7px 5px 0px; =
BORDER-LEFT: rgb(237,237,237) 1px solid; WIDTH: 260px; COLOR: =
rgb(140,140,140); LINE-HEIGHT: 0.95em; BORDER-BOTTOM: rgb(237,237,237) =
1px solid
}
.storyassetshellright {
	BORDER-RIGHT: rgb(237,237,237) 1px solid; BORDER-TOP: rgb(237,237,237) =
1px solid; FONT-SIZE: 0.9em; FLOAT: right; MARGIN: 0px 0px 5px 7px; =
BORDER-LEFT: rgb(237,237,237) 1px solid; WIDTH: 260px; COLOR: =
rgb(140,140,140); LINE-HEIGHT: 0.95em; BORDER-BOTTOM: rgb(237,237,237) =
1px solid
}
.storyassettop {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px; BORDER-BOTTOM: rgb(237,237,237) 1px solid
}
.storyassetcaption {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px
}
.storyassetcredit {
	TEXT-ALIGN: right
}
#article #article_body #article_text .row {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
10px; PADDING-TOP: 0px
}
#article #article_body #article_text .title {
	FONT: bold 1.2em georgia, "times new roman", serif
}
#article #article_body #article_text .row .col {
	MARGIN: 0px 0px 0px 270px
}
#article #article_body #article_text .row .col_noimage {
	MARGIN: 10px 0px
}
#article #article_body #article_text .row .col .title {
	COLOR: #333
}
#article #article_body #article_text .row .col .title A {
	COLOR: #333
}
#article #article_body #article_text .row .col .title A:hover {
	COLOR: #007ca5
}
#article #article_body #article_text .row .pic {
	FLOAT: left; WIDTH: 270px
}
#article #article_body #article_text .row .pic IMG {
	MARGIN: 0px 20px 10px 0px; WIDTH: 250px
}
#article #article_body #article_text .row .pic .zoom {
	POSITION: relative
}
#article #article_body #article_text .row .pic .zoom IMG {
	Z-INDEX: 100; LEFT: 226px; WIDTH: 19px; CURSOR: pointer; POSITION: =
absolute; TOP: -34px; HEIGHT: 16px
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/google_ad.css

DIV#ad_bottom {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; WIDTH: 470px; PADDING-TOP: 10px; HEIGHT: 60px
}
DIV#ad_rail {
	WIDTH: 160px; HEIGHT: 600px
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/wiredcomment.css

H3.com_count {
	CLEAR: both; MARGIN: 10px 0px 0px; FONT: 18px arial, helvetica, =
sans-serif; COLOR: #666
}
H5 {
	DISPLAY: block; MARGIN: 0pt; FONT: 0.8em "arial =
black",helvetica,sans-serif; TEXT-TRANSFORM: uppercase; COLOR: #007ca5
}
#contentwell #showall_well {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 20px 0px 0px; OVERFLOW: hidden; WIDTH: 628px; =
PADDING-TOP: 0px
}
#showall_well H2 {
	FONT-SIZE: 2.4em
}
#showall_well A.back {
	FONT-SIZE: 1em; dispay: block
}
.caption A {
	COLOR: #007ca5
}
H5 A {
	COLOR: #007ca5
}
.matchbook_plus {
	CLEAR: both; BACKGROUND: url(http://www.wired.com/images/plus_tile.gif) =
repeat-x 0px 0px; WIDTH: 628px; HEIGHT: 17px
}
#video_page .matchbook_plus {
	WIDTH: 400px
}
#shell #content #commentContainer .matchbook_rain_light {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(http://www.wired.com/images/mb/rain_tile_light.gif) repeat-x 0px =
0px; PADDING-BOTTOM: 0px; MARGIN: 6px 0px 10px; WIDTH: 628px; =
PADDING-TOP: 0px; HEIGHT: 17px
}
* HTML #shell #content #video_page #commentContainer =
.matchbook_rain_light {
	WIDTH: 400px
}
#comment_well_top {
	HEIGHT: 20px
}
* HTML #video_page #xrail {
=09
}
#video_page .matchbook_rain_light {
	WIDTH: 444px
}
.seeall_com {
	CLEAR: both; MARGIN: 0px; FONT: 12px arial, helvetica, sans-serif
}
.login_class {
	CLEAR: both; DISPLAY: block; FLOAT: right; MARGIN: 0px 4px 8px 0px; =
FONT: 11px arial, helvetica, sans-serif
}
P.login_class {
	FLOAT: none; FONT: 13px georgia, "times new roman", serif; COLOR: #000
}
.num_comments {
	FLOAT: right; MARGIN: 0px 0px 5px; FONT: 11px arial, helvetica, =
sans-serif; WIDTH: 400px; TEXT-ALIGN: right
}
.logout {
	FLOAT: right; MARGIN: 0px 0px 5px; FONT: 11px arial, helvetica, =
sans-serif; WIDTH: 400px; TEXT-ALIGN: right
}
.num_comments {
	RIGHT: -65px; MARGIN: 0px; COLOR: #000; POSITION: relative; TOP: 0px
}
#comment_well_bottom .num_comments {
	MARGIN: 0px 0px 10px
}
#pagination_bottom {
	MARGIN-TOP: -5px
}
.num_comments SPAN {
	DISPLAY: block; FLOAT: left; MARGIN: 0px 4px
}
.num_comments SPAN A {
	MARGIN: 0px
}
.num_comments .active_page SPAN {
	MARGIN: 0px
}
.num_comments .active_page A {
	DISPLAY: block; WIDTH: 12px; HEIGHT: 13px; TEXT-ALIGN: center
}
.num_comments .active_page {
	MARGIN: 0px 1px; WIDTH: 12px; HEIGHT: 13px; TEXT-ALIGN: center
}
.num_comments .selected_page {
	MARGIN: 0px 1px; WIDTH: 12px; HEIGHT: 13px; TEXT-ALIGN: center
}
.num_comments .selected_page {
	BACKGROUND: #b4d3e1
}
.num_comments .disabled_nextprevious {
	DISPLAY: none
}
LABEL {
	CLEAR: right; DISPLAY: block; FONT: 1.1em arial, helvetica, sans-serif
}
.commentContainer {
	CLEAR: both; FONT: 1.2em georgia, "times new roman", serif
}
.comment {
	MARGIN: 10px 0px 0px 20px; POSITION: relative
}
.comment_text {
	BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; OVERFLOW-Y: =
scroll; DISPLAY: block; OVERFLOW-X: hidden; MARGIN: 5px 0px; =
BORDER-LEFT: #999 1px solid; WIDTH: 95%; BORDER-BOTTOM: #999 1px solid; =
HEIGHT: 79px
}
.the_comments {
	MARGIN-LEFT: -17px
}
#comment_text {
	WIDTH: 99%
}
.commentbody P {
	COLOR: #000
}
.commentbody DIV {
	COLOR: #000
}
.commentbody DIV P {
	MARGIN-BOTTOM: 5px
}
#showall_well .comment_text {
	WIDTH: 85%
}
#with_video .comment_text {
	WIDTH: 400px
}
#shell #content #with_video #commentContainer .matchbook_rain_light {
	WIDTH: 440px
}
.arrows {
	LEFT: -3px; WIDTH: 13px; POSITION: relative; TOP: 8px; HEIGHT: 30px
}
UNKNOWN {
	FLOAT: left; POSITION: relative
}
.arrows A {
	CURSOR: pointer
}
.arrows .uparrow {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px
}
.arrows .downarrow {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px
}
.arrows .vote_up_active {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px
}
.arrows .vote_down_active {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px
}
.arrows IMG {
	DISPLAY: block
}
.arrows .uparrow {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) =
no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 0px
}
.arrows .vote_up_active {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) =
no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 0px
}
.arrows .upimg {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) =
no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 0px
}
* HTML .arrows A.uparrow {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowupgray2.gif) =
no-repeat 0px 0px
}
* HTML .arrows A.uparrow:hover {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowupblue2.jpg) =
no-repeat 0px 0px
}
* HTML .arrows A.vote_up_active {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowupblue2.jpg) =
no-repeat 0px 0px
}
.arrows .downarrow {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) =
no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 16px
}
.arrows .vote_down_active {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) =
no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 16px
}
.arrows .downimg {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) =
no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 16px
}
* HTML .arrows .downarrow {
	BACKGROUND: =
url(http://www.wired.com/images/comments/arrowdowngray2.gif) no-repeat =
0px 0px
}
* HTML .arrows .downarrow {
	MARGIN-TOP: 2px
}
.arrows A.uparrow:hover {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) =
no-repeat 0px -14px
}
.arrows A.vote_up_active {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) =
no-repeat 0px -14px
}
.arrows A.downarrow:hover {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) =
no-repeat 0px -14px
}
.arrows A.vote_down_active {
	BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) =
no-repeat 0px -14px
}
* HTML .arrows A.downarrow:hover {
	MARGIN-TOP: 2px; BACKGROUND: =
url(http://www.wired.com/images/comments/arrowdownred2.jpg) no-repeat =
0px 0px
}
* HTML .arrows A.vote_down_active {
	MARGIN-TOP: 2px; BACKGROUND: =
url(http://www.wired.com/images/comments/arrowdownred2.jpg) no-repeat =
0px 0px
}
INPUT.reply {
	DISPLAY: block; FLOAT: right; MARGIN: 0px 5px
}
.commentMain {
	MARGIN: -25px 0px 20px 15px; WIDTH: 100%; HEIGHT: auto; WORD-WRAP: =
break-word
}
UNKNOWN {
	OVERFLOW: hidden; WIDTH: 98%
}
UNKNOWN {
	CLEAR: both; FLOAT: left
}
.commentbody {
	DISPLAY: block; FONT: 1.2em georgia, "times new roman", serif; WIDTH: =
90%
}
.commentbodyFull {
	DISPLAY: block; FONT: 1.2em georgia, "times new roman", serif; WIDTH: =
90%
}
#allComments .commentbody {
	WIDTH: 85%
}
#allComments .commentbodyFull {
	WIDTH: 85%
}
.commentbodyFull {
	DISPLAY: none
}
.triangle {
	BACKGROUND: url(/images/comments/tri_closed.gif) no-repeat 0px 0px; =
MARGIN-LEFT: 10px; WIDTH: 9px; CURSOR: pointer; HEIGHT: 9px
}
.open_tri {
	DISPLAY: block; LEFT: 15px; FLOAT: right; BOTTOM: 12px; POSITION: =
relative
}
.triangle {
	DISPLAY: block; LEFT: 15px; FLOAT: right; BOTTOM: 12px; POSITION: =
relative
}
.commentAuthor {
	FONT: 11px arial, helvetica, sans-serif; COLOR: #666
}
.commentOptions {
	FONT: 11px arial, helvetica, sans-serif; COLOR: #666
}
.commentAuthor {
	MARGIN: 0px 0px 3px
}
.commentOptions {
	MARGIN: 3px 0px 0px
}
* HTML .commentOptions {
	POSITION: relative; TOP: -15px
}
.commentAuthor P {
	FLOAT: left
}
.commentAuthor SPAN {
	DISPLAY: inline; MARGIN: 0px 4px
}
.link_row {
	FONT-SIZE: 11px
}
.commentOptions SPAN {
	DISPLAY: block; FLOAT: left
}
.commentOptions A {
	DISPLAY: block; FLOAT: left
}
.commentOptions A {
	MARGIN: 0px 3px
}
* HTML .commentOptions A {
	MARGIN: 0px 0px 0px 2px
}
.commentOptions {
	MARGIN-LEFT: -3px
}
.comment_form {
	CLEAR: both; DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 10px; WIDTH: =
100%! important
}
#article .commentPage {
	FONT-SIZE: 1.2em
}
.posting {
	FONT: 11px Arial, helvetica, sans-serif; COLOR: #007ca5
}
.commentPage TABLE {
	WIDTH: 500px
}
#reddit_export_wrapper_contents {
	BACKGROUND: #ccc; FONT: 11px Arial, helvetica, sans-serif
}
#reddit_export_wrapper_contents H3 {
	FONT: bold 11px verdana, sans-serif; TEXT-TRANSFORM: uppercase
}
#outerWrapper {
	WIDTH: 628px; HEIGHT: auto
}
.slideshownews #mainColumn #outerWrapper {
	MARGIN-TOP: 70px
}
* HTML .slideshownews #mainColumn #outerWrapper {
	MARGIN-TOP: 20px
}
* HTML #video_page #mainColumn #outerWrapper {
	MARGIN-TOP: 20px
}
* + HTML .slideshownews #mainColumn #outerWrapper {
	MARGIN-TOP: 20px
}
* + HTML #video_page #mainColumn #outerWrapper {
	MARGIN-TOP: 20px
}
#video_page #mainColumn #outerWrapper {
	MARGIN-TOP: 70px
}
#video_page #outerWrapper {
	WIDTH: 400px
}
A.back {
	DISPLAY: block
}
#foot_row1 {
	POSITION: static
}
#foot_row1 SPAN.pad {
	POSITION: static
}
#foot_row1 .pad {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 8px
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.reddit.com/static/blog_head.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAANbY1E9YMgAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHfSURBVHjaYjx69xsDKYCJgUTAglX0188f
k1vLhcUklNXVbl26wPT7i4SqkWdwLE4bzh4/wMsv4BHgc/3K9X+fX0yb1HvuyC58Trp744q7f6SE
jG5aYY2AvG5McpZLYCwWJ715/fLOzatvXj4/sGsLn5DYl2/fNbT1QhPzWNg4/vz6AVHDuGz3ye0r
FwmKSjKycnx981BNWUFaTIRfQPD169d3Hj1+8PCZiKza/98/3r9+7hkeJ6+ky5BTUHbvzi07G6vO
9rbP3778QwVAEaA4UBaoBqgSGAfMjs6ux48eCo+ISk5JYVuzmsHOjsHGmkFOnuHoYQYDAzZlZeuM
TAFBodWrV3Ny86kbWjNJalhcu34jICAA5EAeHgYlRQZubhAbSALZQBEGBqAsUA1QJUgcaEteQdE/
QgCoBqgSiEDB+vTN54vnTkMCYdXqNVeuXPn06ROQBLIhgkBZoBoImzk5v1pBXauzuU5GXFhBSfnH
j++bN28+duzYzZs3zc3MpKSkDuzd3dDem1BQx8srAApWSOJ78/r5kmldorysrk72KioqbGxsv379
unPnzu59B19//h2TVSYiKgmNB+TUeu/2jasXTr1//QIYTcDIEhSV0DYwU1LVQI5cRlKTN0CAAQAz
vwEiAjgmvwAAAABJRU5ErkJggg==

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.reddit.com/static/reddit.css?v=d4354236fa730d11409d54a2f6689903

BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DIV {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
OL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H5 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H6 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
PRE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
FIELDSET {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
INPUT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BLOCKQUOTE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TH {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
IFRAME {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TABLE {
	BORDER-COLLAPSE: collapse
}
FIELDSET {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
ADDRESS {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
CAPTION {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
CITE {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
CODE {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
DFN {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
EM {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
STRONG {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
TH {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
VAR {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
OL {
	LIST-STYLE-TYPE: none
}
UL {
	LIST-STYLE-TYPE: none
}
CAPTION {
	TEXT-ALIGN: left
}
TH {
	TEXT-ALIGN: left
}
H1 {
	FONT-SIZE: 100%
}
H2 {
	FONT-SIZE: 100%
}
H3 {
	FONT-SIZE: 100%
}
H4 {
	FONT-SIZE: 100%
}
H5 {
	FONT-SIZE: 100%
}
H6 {
	FONT-SIZE: 100%
}
Q:unknown {
	content: ''
}
Q:unknown {
	content: ''
}
BODY {
	Z-INDEX: 1; FONT: x-small verdana, arial, helvetica, sans-serif; =
BACKGROUND-COLOR: white
}
HTML {
	HEIGHT: 100%
}
BODY {
	HEIGHT: 100%
}
H1 {
	FONT-WEIGHT: normal; FONT-SIZE: 18px; MARGIN: 10px 0px
}
H2 {
	FONT-SIZE: 13px; COLOR: #369
}
H2 A {
	TEXT-DECORATION: none
}
H2 A:visited {
	COLOR: #369
}
H2 A:hover {
	TEXT-DECORATION: underline
}
H3 {
	FONT-SIZE: 110%
}
A IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
A {
	COLOR: #369; TEXT-DECORATION: none
}
DIV.autosize {
	WIDTH: 1px
}
DIV.autosize > DIV {
=09
}
.btn {
	BORDER-RIGHT: #369 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #369 1px =
solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #369 1px =
solid; PADDING-TOP: 2px; BORDER-BOTTOM: #369 1px solid; =
BACKGROUND-COLOR: #e9e9e9
}
INPUT.txt {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; BORDER-LEFT: =
#369 1px solid; BORDER-BOTTOM: #369 1px solid; BACKGROUND-COLOR: #f7f7f7
}
.iform TH {
	FONT-WEIGHT: normal; TEXT-TRANSFORM: lowercase; COLOR: black; =
TEXT-ALIGN: right
}
.iform BUTTON {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; =
VERTICAL-ALIGN: bottom; BORDER-LEFT: #369 1px solid; BORDER-BOTTOM: #369 =
1px solid; BACKGROUND-COLOR: #e9e9e9
}
.wrong {
	FONT-WEIGHT: normal; COLOR: red
}
.subform INPUT.text {
	WIDTH: 25em
}
.subform TEXTAREA.text {
	WIDTH: 25em
}
.subform LABEL {
	MARGIN: 0px 5px
}
.subform TD {
	PADDING-RIGHT: 5px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 0px
}
.subform TD.nopadding {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.nowrap {
	WHITE-SPACE: nowrap
}
.leftpad {
	PADDING-LEFT: 1em
}
.nomargin {
	MARGIN: 0px
}
.nopadding {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.hover A:hover {
	TEXT-DECORATION: underline
}
.selected {
	FONT-WEIGHT: bold
}
.flat-list {
	DISPLAY: inline; LIST-STYLE-TYPE: none
}
.flat-list LI {
	DISPLAY: inline
}
.flat-list FORM {
	DISPLAY: inline
}
.flat-list .selected A {
	COLOR: orangered
}
.separator {
	MARGIN: 0px 0.7ex; COLOR: gray
}
.pref-lang {
	FONT-WEIGHT: bold
}
.pref {
	FONT-WEIGHT: bold
}
#header {
	BORDER-BOTTOM: #5f99cf 1px solid; POSITION: relative; BACKGROUND-COLOR: =
#cee3f8; _height: 0px
}
#header-img {
	WIDTH: 120px; HEIGHT: 40px
}
#header-top {
	RIGHT: 5px; POSITION: absolute
}
#header-bottom-left {
	FONT-SIZE: larger
}
#header-bottom-right {
	RIGHT: 5px; BOTTOM: 5px; POSITION: absolute
}
#mail IMG {
	POSITION: relative; TOP: 2px
}
.user {
	COLOR: gray
}
.pagename {
	FONT-WEIGHT: bold; FONT-SIZE: 1.2em; MARGIN-RIGHT: 1ex; FONT-VARIANT: =
small-caps
}
.pagename A {
	COLOR: black
}
.redditname {
=09
}
.newpagelink {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px; BACKGROUND-COLOR: #ff9
}
.dropdown {
	DISPLAY: inline; CURSOR: default; POSITION: relative
}
.dropdown-title {
=09
}
.dropdown .drop-choices {
	BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: =
1px; Z-INDEX: 100; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: gray 1px =
solid; LINE-HEIGHT: normal; BORDER-BOTTOM: gray 1px solid; WHITE-SPACE: =
nowrap; POSITION: absolute; BACKGROUND-COLOR: white
}
.dropdown A.choice {
	PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; PADDING-BOTTOM: =
0px; CURSOR: pointer; PADDING-TOP: 0px
}
.dropdown A.choice:hover {
	BACKGROUND-COLOR: #c7def7
}
.heavydrop.dropdown .selected {
	BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 23px; BORDER-TOP: gray 1px =
solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; BACKGROUND: =
url(/static/droparrow.gif) white no-repeat right center; PADDING-BOTTOM: =
2px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: gray =
1px solid
}
.lightdrop.dropdown .selected {
	PADDING-RIGHT: 21px; BACKGROUND: url(/static/droparrowgray.gif) =
no-repeat right center; COLOR: gray; POSITION: relative; =
TEXT-DECORATION: underline
}
.lightdrop.dropdown .drop-choices {
	MARGIN-TOP: 2px
}
.tabdrop.dropdown .selected {
	BORDER-RIGHT: #5f99cf 1px solid; PADDING-RIGHT: 21px; BORDER-TOP: =
#5f99cf 1px solid; PADDING-LEFT: 5px; BACKGROUND: =
url(/static/droparrowgray.gif) white no-repeat right center; =
PADDING-BOTTOM: 1px; MARGIN-LEFT: 3px; BORDER-LEFT: #5f99cf 1px solid; =
COLOR: orangered; PADDING-TOP: 2px; BORDER-BOTTOM: #5f99cf 1px; =
POSITION: relative
}
.tabdrop.dropdown .title.selected {
	PADDING-BOTTOM: 0px; COLOR: #369; BORDER-TOP-STYLE: none; =
BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: =
#eff7ff; BORDER-BOTTOM-STYLE: none
}
.tabdrop.dropdown .drop-choices {
	MARGIN-TOP: 2px
}
.tabdrop.dropdown-title {
	DISPLAY: none
}
.tabmenu {
	DISPLAY: inline; WHITE-SPACE: nowrap; LIST-STYLE-TYPE: none
}
.tabmenu LI {
	PADDING-RIGHT: 6px; DISPLAY: inline; PADDING-LEFT: 6px; FONT-WEIGHT: =
bold; PADDING-BOTTOM: 0px; MARGIN: 0px 3px; PADDING-TOP: 2px; =
BACKGROUND-COLOR: #eff7ff
}
.tabmenu LI.selected {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.tabmenu LI.selected A {
	BORDER-RIGHT: #5f99cf 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: =
#5f99cf 1px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 1px; BORDER-LEFT: =
#5f99cf 1px solid; COLOR: orangered; PADDING-TOP: 2px; BORDER-BOTTOM: =
#5f99cf 1px; BACKGROUND-COLOR: white
}
#search {
	MARGIN-TOP: 0px
}
#search INPUT {
	VERTICAL-ALIGN: middle; HEIGHT: 19px
}
#search INPUT[type=3Dtext] {
	BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; PADDING-LEFT: =
5px; BORDER-LEFT: gray 1px solid; WIDTH: 274px; COLOR: gray; =
BORDER-BOTTOM: gray 1px solid; HEIGHT: 17px
}
.content {
	Z-INDEX: 1; MARGIN: 5px 0px 0px 5px
}
.content .spacer {
	MARGIN-BOTTOM: 5px
}
.state-button {
	DISPLAY: inline
}
.side {
	FLOAT: right; MARGIN: 5px 5px 0px; WIDTH: 300px; BACKGROUND-COLOR: =
white
}
.side .spacer {
	MARGIN-BOTTOM: 10px
}
.subredditbox {
	BORDER-RIGHT: gray 1px dotted; BORDER-TOP: gray 1px dotted; =
BORDER-LEFT: gray 1px dotted; BORDER-BOTTOM: gray 1px dotted
}
.subredditbox H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-SIZE: 170%; PADDING-BOTTOM: =
0px; COLOR: #333; PADDING-TOP: 5px
}
.subredditbox H5 {
	PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 110%; COLOR: dimgray
}
.subredditbox INPUT[type=3Dsubmit] {
	MARGIN-LEFT: 10px; CURSOR: pointer; COLOR: #369; BORDER-TOP-STYLE: =
none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; =
BACKGROUND-COLOR: white; TEXT-DECORATION: underline; =
BORDER-BOTTOM-STYLE: none
}
.subredditbox INPUT[type=3Dcheckbox] {
	MARGIN-RIGHT: 5px
}
.subredditbox UL {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: =
5px; WIDTH: 139px; PADDING-TOP: 5px; LIST-STYLE-TYPE: none
}
.subredditbox LI {
	PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; =
TEXT-TRANSFORM: uppercase; PADDING-TOP: 4px
}
.subredditbox LI A {
	COLOR: #369
}
.subredditbox LI.selected A {
	FONT-WEIGHT: bold
}
.subredditbox .spacer {
	MARGIN: 5px 0px
}
.morelink {
	BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #fff 1px =
solid; DISPLAY: block; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: =
150%; PADDING-BOTTOM: 5px; TEXT-TRANSFORM: uppercase; BORDER-LEFT: #fff =
1px solid; COLOR: #369; PADDING-TOP: 5px; BORDER-BOTTOM: #fff 1px solid; =
LETTER-SPACING: -1px; BACKGROUND-COLOR: #ffffff
}
.blah.morelink:hover {
	COLOR: #369; BACKGROUND-COLOR: #fff
}
.blah.morelink {
	BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; BORDER-LEFT: =
#fff 1px solid; COLOR: #fff; BORDER-BOTTOM: #fff 1px solid; =
BACKGROUND-COLOR: #369
}
.morelink:hover {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; BORDER-LEFT: =
#369 1px solid; COLOR: #fff; BORDER-BOTTOM: #369 1px solid; =
BACKGROUND-COLOR: #369
}
.sidebox {
	BORDER-RIGHT: black 1px solid; BORDER-TOP: gray 1px solid; =
PADDING-LEFT: 44px; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: black =
1px solid
}
.sidebox .spacer {
	MARGIN-BOTTOM: 5px
}
.create.sidebox {
	BACKGROUND: url(/static/create-a-reddit.png) no-repeat left center
}
.submit.sidebox {
	BACKGROUND: url(/static/submit-alien.png) no-repeat left center
}
.sidebox .morelink {
	TEXT-TRANSFORM: none
}
.sidebox .subtitle {
	FONT-SIZE: 110%; MARGIN-LEFT: 10px; COLOR: dimgray
}
.raisedbox {
	BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px =
solid; PADDING-LEFT: 5px; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 5px; =
BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px =
solid
}
.raisedbox H3 {
	FONT-SIZE: 160%; MARGIN-BOTTOM: 0px; COLOR: #333
}
.raisedbox H4 {
	MARGIN-BOTTOM: 3px
}
.raisedbox LI {
	MARGIN-BOTTOM: 2px
}
.subreddit-info {
	PADDING-BOTTOM: 3px
}
.subreddit-info .moderate {
	COLOR: orangered
}
.subreddit-info #subscribe {
	DISPLAY: inline; FONT-SIZE: larger; MARGIN-RIGHT: 5px
}
.subreddit-info .label {
	COLOR: #404040
}
.subreddit-info .state-button {
	DISPLAY: block
}
.subreddit-info .spacer {
	MARGIN: 10px 0px 0px
}
.raisedbox .flat-list {
=09
}
.raisedbox .flat-list .separator {
	DISPLAY: none
}
.raisedbox .flat-list A {
	BORDER-RIGHT: white 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: white =
1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 3px; BORDER-LEFT: white =
1px solid; MARGIN-RIGHT: 1px; PADDING-TOP: 3px; BORDER-BOTTOM: white =
1px; BACKGROUND-COLOR: #f0f0f0
}
.raisedbox .flat-list .selected {
	BORDER-RIGHT: white 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: white =
1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 3px; BORDER-LEFT: white =
1px solid; MARGIN-RIGHT: 1px; PADDING-TOP: 3px; BORDER-BOTTOM: white =
1px; BACKGROUND-COLOR: #f0f0f0
}
.raisedbox .hover A:hover {
	COLOR: white; BACKGROUND-COLOR: #369; TEXT-DECORATION: none
}
.infotable {
	MARGIN-TOP: 5px
}
.infotable .small {
	FONT-SIZE: smaller
}
.infotable TD {
	PADDING-RIGHT: 3px
}
.infotable A:hover {
	TEXT-DECORATION: underline
}
.infotable .state-button A {
	COLOR: gray; BACKGROUND-COLOR: #f0f0f0
}
.infotable .bold {
	FONT-WEIGHT: bold
}
.infotable .invalid-user {
	BACKGROUND-COLOR: pink
}
.infotable .organic-vote {
	BORDER-RIGHT: green 1px solid; BORDER-TOP: green 1px solid; =
BORDER-LEFT: green 1px solid; BORDER-BOTTOM: green 1px solid
}
.profile-attr {
=09
}
.profile-attr .label {
	FONT-WEIGHT: bold
}
.profile-attr .value {
	COLOR: #404040; MARGIN-RIGHT: 5px
}
.profile-attr .md {
	BORDER-RIGHT: #d0d0d0 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: =
#b2b2b2 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 10px; PADDING-BOTTOM: =
10px; MARGIN-LEFT: 10px; BORDER-LEFT: #b2b2b2 1px solid; PADDING-TOP: =
10px; BORDER-BOTTOM: #d0d0d0 1px solid
}
.profile-attr .md UL {
	FLOAT: none; MARGIN-LEFT: 15px; LIST-STYLE-TYPE: disc
}
.profile-attr .md P {
	MARGIN-TOP: 0px
}
.question {
	COLOR: red
}
.question .yes {
	MARGIN-LEFT: 5px; MARGIN-RIGHT: 3px
}
.question .no {
	MARGIN: 0px 3px
}
.arrow {
	BACKGROUND-POSITION: center 0px; DISPLAY: block; MARGIN: 2px 0px 0px; =
WIDTH: 100%; CURSOR: pointer; HEIGHT: 14px
}
.upmod.arrow {
	BACKGROUND: url(/static/aupmod.png) no-repeat center 0px
}
.downmod.arrow {
	BACKGROUND: url(/static/adownmod.png) no-repeat center 0px
}
.up.arrow {
	BACKGROUND: url(/static/aupgray.png) no-repeat center 0px
}
.down.arrow {
	BACKGROUND: url(/static/adowngray.png) no-repeat center 0px
}
.midcol {
	BACKGROUND: white; FLOAT: left; MARGIN-LEFT: 7px; OVERFLOW: hidden; =
MARGIN-RIGHT: 2px
}
.entry {
	MARGIN-LEFT: 3px; OVERFLOW: hidden; opacity: 1
}
.domain {
	FONT-SIZE: x-small; COLOR: #888
}
.domain A {
	FONT-SIZE: x-small; COLOR: #888
}
.tagline {
	FONT-SIZE: x-small; COLOR: #888
}
.tagline A {
	COLOR: #369; TEXT-DECORATION: none
}
.tagline A.friend {
	COLOR: orangered
}
.tagline A:hover {
	TEXT-DECORATION: underline
}
.title {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: =
hidden; COLOR: blue; PADDING-TOP: 0px
}
.title:visited {
	COLOR: #551a8b
}
.click.title {
	COLOR: #551a8b
}
.loggedin.title {
	COLOR: blue
}
.loggedin.title:visited {
	COLOR: #551a8b
}
.click.loggedin.title {
	COLOR: #551a8b
}
.click.loggedin.title:visited {
	COLOR: #551a8b
}
.sitetable {
	LIST-STYLE-TYPE: none
}
.ajaxhook {
	LEFT: 0px; POSITION: absolute; TOP: -1000px
}
.nextprev {
	MARGIN-TOP: 10px; FONT-SIZE: larger; COLOR: gray
}
.corner-help {
	RIGHT: 0px; MARGIN: 0px 5px 5px 0px; BOTTOM: 0px; POSITION: absolute
}
.corner-help A {
	COLOR: #808080; TEXT-DECORATION: underline
}
.helpcover {
	FONT-SIZE: 110%; Z-INDEX: 1000; RIGHT: 0px; LEFT: 0px; BOTTOM: 0px; =
POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #f8f8f8; _height: 70px; =
_width: 100%
}
.helpcover P {
	MARGIN: 5px
}
.helpcover FORM {
	MARGIN: 5px
}
.organic-listing {
	BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: =
#666666 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; OVERFLOW: =
hidden; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: =
#666666 1px solid; POSITION: relative; BACKGROUND-COLOR: #f8f8f8; =
_height: 60px; _overflow: auto
}
.organic-listing .link {
	MARGIN-BOTTOM: 0px; MARGIN-RIGHT: 7em
}
.organic-listing .linkcompressed {
	MARGIN-BOTTOM: 0px; MARGIN-RIGHT: 7em
}
.organic-listing .nextprev {
	RIGHT: 0px; MARGIN: 0px; VERTICAL-ALIGN: top; POSITION: absolute; TOP: =
0px
}
.organic-listing .nextprev IMG {
	BORDER-RIGHT: #b3b3b3 1px solid; BORDER-TOP: #b3b3b3 1px solid; MARGIN: =
5px 5px 2px 0px; BORDER-LEFT: #b3b3b3 1px solid; BORDER-BOTTOM: #b3b3b3 =
1px solid
}
.organic-listing .nextprev IMG:hover {
	BORDER-RIGHT: #336699 1px solid; BORDER-TOP: #336699 1px solid; =
BORDER-LEFT: #336699 1px solid; CURSOR: pointer; BORDER-BOTTOM: #336699 =
1px solid
}
.organic-listing .nextprev IMG:active {
	MARGIN: 6px 4px 1px 1px
}
.infobar {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; MARGIN: =
5px 310px 5px 5px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f6e69f
}
.menuarea {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: larger; =
PADDING-BOTTOM: 5px; MARGIN: 5px 310px 5px 5px; PADDING-TOP: 5px; =
BORDER-BOTTOM: gray 1px dotted
}
.menuarea .spacer {
	DISPLAY: inline; MARGIN-RIGHT: 15px
}
.md {
	FONT-SIZE: small; MAX-WIDTH: 60em; OVERFLOW: auto
}
.md P {
	MARGIN: 5px 0px
}
.md H1 {
	MARGIN: 5px 0px
}
.md H1 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
.md > * {
	MARGIN-BOTTOM: 0px
}
.md STRONG {
	FONT-WEIGHT: bold
}
.md EM {
	FONT-STYLE: italic
}
.md IMG {
	DISPLAY: none
}
.md OL {
	MARGIN: 10px 2em
}
.md UL {
	MARGIN: 10px 2em
}
.md UL {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: disc
}
.md OL {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: decimal
}
.md PRE {
	MARGIN: 10px
}
.md BLOCKQUOTE {
	PADDING-LEFT: 4px; MARGIN: 5px 15px 5px 5px; BORDER-LEFT: #369 2px =
solid
}
.help BLOCKQUOTE {
	PADDING-LEFT: 4px; MARGIN: 5px 15px 5px 5px; BORDER-LEFT: #369 2px =
solid
}
A.star {
	COLOR: #ff8b60; TEXT-DECORATION: none
}
.odd {
=09
}
.even {
=09
}
.entry .buttons LI {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
.entry .buttons LI.first {
	PADDING-LEFT: 0px
}
.entry .buttons LI A {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; =
PADDING-BOTTOM: 0px; COLOR: #888; PADDING-TOP: 0px
}
.entry .buttons A:hover {
	TEXT-DECORATION: underline
}
.link {
	MARGIN: 0px 0px 8px
}
.link .score {
	COLOR: #c6c6c6; TEXT-ALIGN: center
}
.link .title {
	FONT-WEIGHT: normal; FONT-SIZE: medium; MARGIN-BOTTOM: 1px
}
.link .child H3 {
	FONT-SIZE: medium; MARGIN: 15px; TEXT-TRANSFORM: none
}
.rank {
	OVERFLOW: hidden
}
.link .midcol {
	FONT-WEIGHT: bold; FONT-SIZE: small
}
.link .likes.score {
	COLOR: #ff8b60
}
.link .dislikes.score {
	COLOR: #9494ff
}
.link .rank {
	MARGIN-TOP: 15px; FONT-SIZE: medium; FLOAT: left; COLOR: #c6c6c6; =
FONT-FAMILY: arial; TEXT-ALIGN: right
}
.linkcompressed {
	MARGIN: 4px 0px; OVERFLOW: hidden
}
.linkcompressed .title {
	FONT-WEIGHT: normal; FONT-SIZE: medium; MARGIN-BOTTOM: 1px
}
.linkcompressed .child H3 {
	FONT-SIZE: medium; MARGIN: 15px; TEXT-TRANSFORM: none
}
.linkcompressed .likes.score {
	COLOR: #ff8b60
}
.linkcompressed .dislikes.score {
	COLOR: #9494ff
}
.linkcompressed .rank {
	MARGIN-TOP: 2px; FONT-SIZE: medium; FLOAT: left; COLOR: #c6c6c6; =
FONT-FAMILY: arial; TEXT-ALIGN: right
}
.linkcompressed .tagline {
	MARGIN-TOP: 0px; DISPLAY: inline; MARGIN-BOTTOM: 1px
}
.linkcompressed .flat-list {
	DISPLAY: inline
}
.linkcompressed .entry .buttons LI {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px; BACKGROUND-COLOR: transparent
}
.linkcompressed .entry .buttons LI.first {
	PADDING-LEFT: 0.5em
}
.linkcompressed .entry .buttons LI A {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #f0f0f0
}
.linkcompressed .midcol {
	WIDTH: 15px
}
.linkcompressed .entry .buttons LI A:hover {
	TEXT-DECORATION: underline
}
.warm-entry .rank {
	COLOR: #eda179
}
.hot-entry .rank {
	COLOR: #e47234
}
.cool-entry .rank {
	COLOR: #a5abfb
}
.cold-entry .rank {
	COLOR: #4959f7
}
.comment {
	MARGIN-LEFT: 10px
}
.comment .midcol {
	MARGIN-LEFT: 0px
}
.comment .title {
	MARGIN-TOP: 10px; FONT-SIZE: small
}
.comment .midcol {
	WIDTH: 15px
}
.comment .author {
	FONT-WEIGHT: bold
}
.comment .collapsed {
	PADDING-LEFT: 17px; FONT-SIZE: x-small; PADDING-BOTTOM: 10px; COLOR: =
gray; FONT-STYLE: italic
}
.comment .collapsed A {
	COLOR: gray
}
.comment .expand {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; =
MARGIN-LEFT: 5px; MARGIN-RIGHT: 5px; PADDING-TOP: 1px; FONT-STYLE: =
normal
}
.comment .expand:hover {
	COLOR: white; BACKGROUND-COLOR: #369; TEXT-DECORATION: none
}
.comment .score {
	FONT-SIZE: x-small
}
.comment .child {
	MARGIN-TOP: 10px; MARGIN-LEFT: 15px
}
.commentreply {
	MARGIN: 10px 10px 10px 15px; WIDTH: 40em
}
.commentreply TEXTAREA {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; MARGIN: 0px =
0px -1px; BORDER-LEFT: #369 1px solid; WIDTH: 100%; BORDER-BOTTOM: #369 =
1px solid
}
.commentreply .buttons {
	FLOAT: left; MARGIN: 0px
}
.commentreply .buttons BUTTON {
	MARGIN: 0px 5px 0px 0px; BORDER-TOP-STYLE: none
}
.commentreply TABLE.help {
	FONT-SIZE: larger; MARGIN: 5px 0px 0px; WIDTH: 100%
}
.commentreply .help {
	BORDER-RIGHT: #c0c0c0 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: =
#c0c0c0 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px; =
BORDER-LEFT: #c0c0c0 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #c0c0c0 =
1px solid
}
.commentreply .help TD {
	BORDER-RIGHT: #c0c0c0 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: =
#c0c0c0 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px; =
BORDER-LEFT: #c0c0c0 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #c0c0c0 =
1px solid
}
.commentreply .help TR {
	BORDER-RIGHT: #c0c0c0 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: =
#c0c0c0 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px; =
BORDER-LEFT: #c0c0c0 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #c0c0c0 =
1px solid
}
.commentreply .help-toggle {
	MARGIN-TOP: 7px; FLOAT: right
}
.permamessage {
	BORDER-RIGHT: black 1px dotted; PADDING-RIGHT: 5px; =
BACKGROUND-POSITION: 5px center; BORDER-TOP: black 1px dotted; =
PADDING-LEFT: 18px; FONT-SIZE: larger; BACKGROUND-IMAGE: =
url(/static/permalink-arrow.png); PADDING-BOTTOM: 5px; BORDER-LEFT: =
black 1px dotted; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px dotted; =
BACKGROUND-REPEAT: no-repeat; WHITE-SPACE: nowrap
}
.deepthread {
	PADDING-RIGHT: 30px; BACKGROUND-POSITION: right center; =
BACKGROUND-IMAGE: url(/static/continue-thread.png); BACKGROUND-REPEAT: =
no-repeat
}
.deepthread A {
	FONT-SIZE: larger; COLOR: #336699
}
.deepthread A:hover {
	TEXT-DECORATION: underline
}
.morecomments {
	FONT-SIZE: larger
}
.morecomments A {
	COLOR: #336699
}
.morecomments A:hover {
	TEXT-DECORATION: underline
}
.morecomments .gray {
	FONT-WEIGHT: normal; COLOR: gray
}
.message {
	MARGIN: 10px
}
.message .new.head {
	COLOR: orangered
}
.message .subject {
	FONT-WEIGHT: bold; FONT-SIZE: larger
}
.subreddit {
	MARGIN-BOTTOM: 10px
}
.subreddit P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 1px
}
.subreddit .description {
	FONT-SIZE: small
}
.subreddit .key {
	DISPLAY: block
}
.subreddit .title {
	FONT-SIZE: medium; MARGIN-RIGHT: 5px
}
.commentbody {
=09
}
.border.commentbody {
	PADDING-LEFT: 5px; BACKGROUND-COLOR: #ffc
}
.fixedwidth {
	FLOAT: left; WIDTH: 100px; HEIGHT: 0px
}
.clearleft {
	CLEAR: left; HEIGHT: 0px
}
.clear {
	CLEAR: both
}
.sponsored .entry {
	MARGIN-RIGHT: 20px
}
.sponsored .titlerow {
	BORDER-RIGHT: #e0e0e0 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: =
#bcbcbc 1px solid; PADDING-LEFT: 10px; BACKGROUND: #fcfcfc; =
PADDING-BOTTOM: 10px; BORDER-LEFT: #bcbcbc 1px solid; PADDING-TOP: 10px; =
BORDER-BOTTOM: #e0e0e0 1px solid
}
.sponsored .asterisk {
	BACKGROUND: url(/static/asterisk.png) no-repeat; WIDTH: 15px
}
.footer {
	CLEAR: both; FONT-SIZE: larger; WIDTH: 100%; COLOR: gray; PADDING-TOP: =
1em; TEXT-ALIGN: center
}
.footer P {
	MARGIN: 10px
}
.wired A {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: smaller; COLOR: #369; =
TEXT-DECORATION: underline
}
.wired IMG {
	VERTICAL-ALIGN: middle
}
.orangered {
	COLOR: orangered
}
.login-form-side {
	BORDER-RIGHT: black 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: =
gray 1px solid; BORDER-BOTTOM: black 1px solid
}
.login-form-side INPUT {
	BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: gray 1px =
solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 5px 0px 0px 5px; =
BORDER-LEFT: gray 1px solid; WIDTH: 138px; PADDING-TOP: 1px; =
BORDER-BOTTOM: gray 1px solid; TOP: 5px; HEIGHT: 17px
}
.login-form-side .error {
	MARGIN: 5px
}
#remember-me {
	MARGIN: 5px
}
#rem-login-main {
	WIDTH: auto; BORDER-TOP-STYLE: none; MARGIN-RIGHT: 5px; =
BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: static; =
HEIGHT: auto; BORDER-BOTTOM-STYLE: none
}
.login-form-side LABEL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; =
MARGIN-RIGHT: 5px; PADDING-TOP: 2px; WHITE-SPACE: nowrap
}
.login-form-side BUTTON {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 12px; FLOAT: right; =
PADDING-BOTTOM: 2px; WIDTH: 4em; PADDING-TOP: 2px
}
.error {
	FONT-SIZE: small; MARGIN: 5px; COLOR: red
}
#noresults {
	MARGIN-RIGHT: 310px
}
#ad-frame {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; OVERFLOW: hidden; WIDTH: 300px; HEIGHT: 300px; BORDER-RIGHT-WIDTH: =
0px
}
#searchmenu {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
10px 0px 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #369 2px solid; =
BACKGROUND-COLOR: whitesmoke
}
#searchmenu .searchlabel {
	PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; =
PADDING-BOTTOM: 0px; COLOR: #369; PADDING-TOP: 2px; BACKGROUND-COLOR: =
white
}
#searchmenu .searchtime {
	DISPLAY: inline; FONT-WEIGHT: bold; WIDTH: 305px
}
.searchparams {
	MARGIN: 5px 20px
}
.searchparams .labels {
	MARGIN-LEFT: 10px; TEXT-ALIGN: right
}
.searchpane {
	MARGIN: 5px 310px 5px 5px
}
.searchpane #search INPUT[type=3Dtext] {
=09
}
.searchpane .summary {
	FONT-WEIGHT: bold; FLOAT: right
}
.searchpane .clearleft {
	MARGIN-BOTTOM: 10px
}
.legal {
	MARGIN-TOP: 20px; FONT-SIZE: small; COLOR: #808080; FONT-FAMILY: serif
}
.legal A {
	TEXT-DECORATION: underline
}
.divide {
	BORDER-RIGHT: #d3d3d3 2px solid
}
.loginform {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FLOAT: left; WIDTH: 45%
}
.loginform H3 {
	MARGIN-TOP: 10px; FONT-WEIGHT: bold; FONT-SIZE: large; MARGIN-BOTTOM: =
0px; COLOR: #404040; FONT-VARIANT: small-caps
}
.loginform P {
	MARGIN-BOTTOM: 20px; COLOR: #606060; TEXT-ALIGN: left
}
.loginform LABEL {
	DISPLAY: block; FONT-WEIGHT: bold; COLOR: #606060
}
.loginform .remember {
	DISPLAY: inline; MARGIN-LEFT: 5px
}
.loginform UL {
	MARGIN: 5px
}
.loginform LI {
	MARGIN-TOP: 5px
}
.loginform P .btn {
	MARGIN-TOP: 5px
}
.loginform INPUT.logtxt {
	WIDTH: 125px
}
.loginform INPUT[type=3Dtext] {
	BORDER-RIGHT: #a0a0a0 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: =
#a0a0a0 1px solid; MARGIN-TOP: 2px; PADDING-LEFT: 1px; MARGIN-BOTTOM: =
2px; PADDING-BOTTOM: 1px; BORDER-LEFT: #a0a0a0 1px solid; WIDTH: 125px; =
PADDING-TOP: 1px; BORDER-BOTTOM: #a0a0a0 1px solid
}
.loginform INPUT[type=3Dpassword] {
	BORDER-RIGHT: #a0a0a0 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: =
#a0a0a0 1px solid; MARGIN-TOP: 2px; PADDING-LEFT: 1px; MARGIN-BOTTOM: =
2px; PADDING-BOTTOM: 1px; BORDER-LEFT: #a0a0a0 1px solid; WIDTH: 125px; =
PADDING-TOP: 1px; BORDER-BOTTOM: #a0a0a0 1px solid
}
.loginform BUTTON {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; MARGIN-LEFT: =
5px; BORDER-LEFT: #369 1px solid; MARGIN-RIGHT: 10px; BORDER-BOTTOM: =
#369 1px solid; BACKGROUND-COLOR: #e9e9e9
}
.loginform #captcha {
	WIDTH: 250px
}
.cover {
	Z-INDEX: 1000; FILTER: alpha(opacity=3D70); LEFT: 0px; WIDTH: 100%; =
POSITION: fixed; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR: gray; =
opacity: .7
}
.popup {
	BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #b2b2b2 =
1px solid; PADDING-LEFT: 10px; Z-INDEX: 1001; LEFT: 10%; PADDING-BOTTOM: =
10px; BORDER-LEFT: #b2b2b2 1px solid; WIDTH: 80%; PADDING-TOP: 10px; =
BORDER-BOTTOM: black 1px solid; POSITION: absolute; TOP: 100px; =
BACKGROUND-COLOR: white; TEXT-ALIGN: left
}
.popup H1 {
	FONT-WEIGHT: normal; FONT-SIZE: large; COLOR: orangered; TEXT-ALIGN: =
center
}
.popup H2 {
	MARGIN-TOP: 0px; FONT-WEIGHT: normal; FONT-SIZE: small; COLOR: black; =
TEXT-ALIGN: center
}
.usertable {
	MARGIN-LEFT: 10px
}
.usertable .pretty-form BUTTON {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.usertable {
	FONT-SIZE: larger
}
.usertable TD {
	PADDING-RIGHT: 0.7em; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.usertable {
	WHITE-SPACE: nowrap
}
.aboutpage {
	MARGIN-RIGHT: 320px
}
.aboutpage P {
	MARGIN: 5px
}
.aboutpage H1 {
	MARGIN: 10px
}
.aboutpage H2 {
	MARGIN: 10px
}
.aboutpage .usertable {
	WIDTH: 45%
}
.little A {
	FONT-SIZE: x-small
}
.oldbylink A {
	MARGIN: 2px; COLOR: gray; BACKGROUND-COLOR: #f0f0f0
}
.details {
	FONT-SIZE: x-small; MARGIN-BOTTOM: 10px
}
.details SPAN {
	MARGIN: 0px 5px
}
.details .profline {
	PADDING-RIGHT: 5px; FONT-WEIGHT: bold; TEXT-ALIGN: right
}
.bottommenu {
	FONT-SIZE: smaller; COLOR: gray
}
.bottommenu A {
	COLOR: gray; TEXT-DECORATION: underline
}
.button {
	MARGIN: 1px; COLOR: gray; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center
}
.button #cover {
	POSITION: relative
}
.button .cover {
	BACKGROUND: white
}
.button #popup {
	BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #b2b2b2 =
1px solid; PADDING-LEFT: 2px; Z-INDEX: 1001; BACKGROUND: white; =
PADDING-BOTTOM: 2px; BORDER-LEFT: #b2b2b2 1px solid; WIDTH: 80%; =
PADDING-TOP: 2px; BORDER-BOTTOM: black 1px solid; POSITION: absolute
}
.button .arrow {
	WIDTH: 15px
}
.num {
	FONT-WEIGHT: bold; FONT-SIZE: larger
}
.button .blog {
	BORDER-RIGHT: #c7def7 1px solid; BORDER-TOP: #c7def7 1px solid; MARGIN: =
1px; BORDER-LEFT: #c7def7 1px solid; COLOR: gray; BORDER-BOTTOM: #c7def7 =
1px solid; TEXT-ALIGN: center
}
.button {
	WIDTH: 98%; COLOR: #369; HEIGHT: 96%
}
.button A:hover {
	TEXT-DECORATION: underline
}
.button .blog1 {
	FONT-SIZE: x-small
}
.button .blog1 .arrow {
	FLOAT: left; MARGIN-LEFT: 2px; MARGIN-RIGHT: 2px
}
.button .blog1 .headimgcell {
	FLOAT: left; WIDTH: 18px; BACKGROUND-COLOR: #c7def7
}
.button .blog1 .score {
	MARGIN-TOP: 2px; FLOAT: right; MARGIN-RIGHT: 5px
}
.button .blog2 {
	FONT-SIZE: small
}
.button .blog2 .arrow {
	WIDTH: 100%
}
.button .blog2 .bottomreddit {
	FONT-SIZE: small; COLOR: black; BACKGROUND-COLOR: #c7def7
}
.button .blog3 {
	FONT-SIZE: small; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
.button .blog3 .left {
	FLOAT: left; WIDTH: 50%
}
.button .blog3 .arrow {
	WIDTH: 100%
}
.button .blog3 .right {
	MARGIN-TOP: 5px; FLOAT: right
}
.optional {
	COLOR: green
}
.instructions {
	FONT-SIZE: larger
}
.instructions H1 {
	MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px
}
.instructions H2 {
	MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px
}
.instructions P {
	MAX-WIDTH: 60em; MARGIN: 10px
}
.instructions PRE {
	MARGIN: 5px 10px 5px 5px
}
.instructions IFRAME {
	MARGIN: 5px 10px 5px 5px
}
.instructions INPUT {
	MARGIN: 0px 0.5em
}
.instructions SELECT {
	MARGIN: 0px 0.5em
}
#preview {
	FLOAT: right; WIDTH: 20em; MARGIN-RIGHT: 10px
}
#preview SPAN {
=09
}
#preview #previewbox {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; =
PADDING-TOP: 1em
}
.pretty-form {
	FONT-SIZE: larger; VERTICAL-ALIGN: top
}
.pretty-form INPUT[type=3Dcheckbox] {
	MARGIN: 3px 0.5em
}
.pretty-form INPUT[type=3Dradio] {
	MARGIN: 3px 0.5em 0px; VERTICAL-ALIGN: top
}
.pretty-form IMG {
	MARGIN: 3px 0.5em
}
.pretty-form INPUT[type=3Dtext] {
	BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: =
gray 1px solid; WIDTH: 25em; BORDER-BOTTOM: gray 1px solid
}
.pretty-form TEXTAREA {
	BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: =
gray 1px solid; WIDTH: 25em; BORDER-BOTTOM: gray 1px solid
}
.pretty-form INPUT[type=3Dpassword] {
	BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: =
gray 1px solid; WIDTH: 25em; BORDER-BOTTOM: gray 1px solid
}
.pretty-form INPUT[type=3Dtext] {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px =
0.5em; PADDING-TOP: 1px
}
.pretty-form INPUT[type=3Dpassword] {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px =
0.5em; PADDING-TOP: 1px
}
.pretty-form SELECT {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px =
0.5em; PADDING-TOP: 1px
}
.pretty-form B {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px =
0.5em; PADDING-TOP: 1px
}
.pretty-form TEXTAREA {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px =
0.5em; PADDING-TOP: 1px
}
.pretty-form BUTTON {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 3px =
0.5em; PADDING-TOP: 1px
}
.pretty-form BUTTON {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px
}
.pretty-form TH {
	TEXT-ALIGN: right
}
.short-text.pretty-form INPUT[type=3Dtext] {
	WIDTH: 2em
}
.short-text.pretty-form TEXTAREA {
	WIDTH: 2em
}
.short-text.pretty-form INPUT[type=3Dpassword] {
	WIDTH: 2em
}
.medium-text.pretty-form INPUT[type=3Dtext] {
	WIDTH: 15em
}
.medium-text.pretty-form TEXTAREA {
	WIDTH: 15em
}
.medium-text.pretty-form INPUT[type=3Dpassword] {
	WIDTH: 15em
}
.long-text.pretty-form INPUT[type=3Dtext] {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: =
40em; PADDING-TOP: 2px
}
.long-text.pretty-form TEXTAREA {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: =
40em; PADDING-TOP: 2px
}
.long-text.pretty-form INPUT[type=3Dpassword] {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: =
40em; PADDING-TOP: 2px
}
.prefleft {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; =
PADDING-BOTTOM: 10px; VERTICAL-ALIGN: top; PADDING-TOP: 10px
}
.prefright {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.over18 BUTTON {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px =
10px; PADDING-TOP: 5px
}
.reported {
	BACKGROUND-COLOR: #f6e69f
}
.suspicious {
	BACKGROUND-COLOR: #f6e69f
}
.spam {
	BACKGROUND-COLOR: #fa8072
}
.little {
	FONT-SIZE: smaller
}
.gray {
	COLOR: gray
}
.stats {
	FONT-SIZE: larger; FLOAT: left; MARGIN-RIGHT: 2em; BORDER-COLLAPSE: =
collapse
}
.stats TD.space {
	WIDTH: 20px
}
.stats TD.sec {
	FONT-WEIGHT: normal; FONT-SIZE: 18px; PADDING-BOTTOM: 7px
}
.stats A {
	COLOR: #369
}
.stats A:hover {
	TEXT-DECORATION: underline
}
.stats TD.k {
	COLOR: gray
}
.stats TH {
	FONT-WEIGHT: bold; COLOR: #369; BACKGROUND-COLOR: whitesmoke; =
TEXT-ALIGN: left
}
.stats TD.ri {
	PADDING-LEFT: 20px; TEXT-ALIGN: right
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/css/redditsocial.css

TABLE.blog {
	WIDTH: 120px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
TABLE.blog TD {
	PADDING-RIGHT: 2px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; =
MARGIN-RIGHT: 1px; PADDING-TOP: 0px; TEXT-ALIGN: left
}
.up.arrow {
	MARGIN-RIGHT: -2px
}
.upmod.arrow {
	MARGIN-RIGHT: -2px
}
.down.arrow {
	MARGIN-RIGHT: 0px
}
.downmod.arrow {
	MARGIN-RIGHT: 0px
}
.headimgcell IMG {
	DISPLAY: none
}
.headimgcell {
	BACKGROUND: url(http://www.wired.com/images/reddit_icon5.png) no-repeat =
0px 0px; WIDTH: 16px; HEIGHT: 16px
}
* HTML .headimgcell {
	BACKGROUND: url(http://www.wired.com/images/reddit_icon3.gif) no-repeat =
0px 0px
}
TABLE.blog A {
	DISPLAY: block; MARGIN: 0px -5px 0px 7px; FONT: bold 11px arial, =
helvetica, sans-serif; COLOR: #007ca5
}
TABLE.blog A IMG {
	DISPLAY: none
}
TABLE.blog .headimgcell {
	PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #fff
}
TABLE.blog .headimgcell A {
	MARGIN-RIGHT: 1px
}

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.reddit.com/static/vote.js?v=1d93a1c2e2dd17c4f9dd4a46611ab71b

var Prototype=3D{Version:'1.3.1',emptyFunction:function(){}};var =
Class=3D{create:function(){return =
function(){this.initialize.apply(this,arguments);}}};Object.extend=3Dfunc=
tion(destination,source){for(property in =
source){destination[property]=3Dsource[property];}return =
destination;};Object.prototype.extend=3Dfunction(object){return =
Object.extend.apply(this,[this,object]);};Function.prototype.bind=3Dfunct=
ion(object){var __method=3Dthis;return =
function(){__method.apply(object,arguments);}};var =
Try=3D{these:function(){var returnValue;for(var =
i=3D0;i<arguments.length;i++){var =
lambda=3Darguments[i];try{returnValue=3Dlambda();break;}catch(e){}}return=
 returnValue;}};function $(){var elements=3Dnew Array();for(var =
i=3D0;i<arguments.length;i++){var element=3Darguments[i];if(typeof =
element=3D=3D'string')element=3Ddocument.getElementById(element);if(argum=
ents.length=3D=3D1)return element;elements.push(element);}return =
elements;}if(!Array.prototype.push){Array.prototype.push=3Dfunction(){var=
 startLength=3Dthis.length;for(var =
i=3D0;i<arguments.length;i++)this[startLength+i]=3Darguments[i];return =
this.length;}}if(!Function.prototype.apply){Function.prototype.apply=3Dfu=
nction(object,parameters){var parameterStrings=3Dnew =
Array();if(!object)object=3Dwindow;if(!parameters)parameters=3Dnew =
Array();for(var =
i=3D0;i<parameters.length;i++)parameterStrings[i]=3D'parameters['+i+']';o=
bject.__apply__=3Dthis;var =
result=3Deval('object.__apply__('+parameterStrings.join(', =
')+')');object.__apply__=3Dnull;return result;}};var =
Ajax=3D{getTransport:function(){return Try.these(function(){return new =
ActiveXObject('Msxml2.XMLHTTP')},function(){return new =
ActiveXObject('Microsoft.XMLHTTP')},function(){return new =
XMLHttpRequest()})||false;}};Ajax.Base=3Dfunction(){};Ajax.Base.prototype=
=3D{setOptions:function(options){this.options=3D{method:'post',asynchrono=
us:true,parameters:''}.extend(options||{});},responseIsSuccess:function()=
{return =
this.transport.status=3D=3Dundefined||this.transport.status=3D=3D0||(this=
.transport.status>=3D200&&this.transport.status<300);},responseIsFailure:=
function(){return!this.responseIsSuccess();}};Ajax.Request=3DClass.create=
();Ajax.Request.Events=3D['Uninitialized','Loading','Loaded','Interactive=
','Complete'];Ajax.Request.prototype=3D(new =
Ajax.Base()).extend({initialize:function(url,options){this.transport=3DAj=
ax.getTransport();this.setOptions(options);this.request(url);},request:fu=
nction(url){var =
parameters=3Dthis.options.parameters||'';if(parameters.length>0)parameter=
s+=3D'&_=3D';try{if(this.options.method=3D=3D'get')url+=3D'?'+parameters;=
this.transport.open(this.options.method,url,this.options.asynchronous);if=
(this.options.asynchronous){this.transport.onreadystatechange=3Dthis.onSt=
ateChange.bind(this);setTimeout((function(){this.respondToReadyState(1)})=
.bind(this),10);}this.setRequestHeaders();var =
body=3Dthis.options.postBody?this.options.postBody:parameters;this.transp=
ort.send(this.options.method=3D=3D'post'?body:null);}catch(e){}},setReque=
stHeaders:function(){var =
requestHeaders=3D['X-Requested-With','XMLHttpRequest','X-Prototype-Versio=
n',Prototype.Version];if(this.options.method=3D=3D'post'){requestHeaders.=
push('Content-type','application/x-www-form-urlencoded');if(this.transpor=
t.overrideMimeType)requestHeaders.push('Connection','close');}if(this.opt=
ions.requestHeaders)requestHeaders.push.apply(requestHeaders,this.options=
.requestHeaders);for(var =
i=3D0;i<requestHeaders.length;i+=3D2)this.transport.setRequestHeader(requ=
estHeaders[i],requestHeaders[i+1]);},onStateChange:function(){var =
readyState=3Dthis.transport.readyState;if(readyState!=3D1)this.respondToR=
eadyState(this.transport.readyState);},respondToReadyState:function(ready=
State){var =
event=3DAjax.Request.Events[readyState];if(event=3D=3D'Complete')(this.op=
tions['on'+this.transport.status]||this.options['on'+(this.responseIsSucc=
ess()?'Success':'Failure')]||Prototype.emptyFunction)(this.transport);(th=
is.options['on'+event]||Prototype.emptyFunction)(this.transport);if(event=
=3D=3D'Complete')this.transport.onreadystatechange=3DPrototype.emptyFunct=
ion;}});=0A=
function unsafe(text){text=3Dtext||"";return =
text.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&");}fun=
ction hide(){for(var i=3D0;i<arguments.length;i++){var =
e=3D$(arguments[i]);if(e)e.style.display=3D"none";}}function =
show(){for(var i=3D0;i<arguments.length;i++){var =
e=3D$(arguments[i]);if(e)e.style.display=3D"";}}Object.prototype.__iter__=
=3Dfunction(func){var res=3D[];for(var o in this){if(!(o in =
Object.prototype)){res.unshift(func(o,this[o]));}}return res;};function =
make_get_params(obj){return obj.__iter__(function(x,y){return =
x+"=3D"+encodeURIComponent(y);}).join("&");}function =
update_get_params(updates){var =
getparams=3D{};where.params.__iter__(function(x,y){getparams[x]=3Dy;});if=
(updates)updates.__iter__(function(x,y){getparams[x]=3Dy;});return =
getparams;}function relative_path(updates){var =
getparams=3Dupdate_get_params(updates);path=3Dwhere.path;if(getparams){pa=
th+=3D"?"+make_get_params(getparams);}return path;}function =
close_menus(){uls=3Ddocument.getElementsByTagName('DIV');for(var =
i=3D0;i<uls.length;i++){var ul=3Duls[i];var =
menu=3Dul.parentNode;if(menu!=3Dcur_menu&&ul.className=3D=3D'drop-choices=
'){ul.style.visibility=3D'hidden';menu.onclick=3Dfunction(){return =
open_menu(this);}}}cur_menu=3Dnull;}function =
_id(obj){if(obj&&obj.id){var =
id=3Dobj.id;if(id.value){id=3Did.value};id=3Did.split('_');if(id.length>2=
){id=3Did[id.length-2]+'_'+id[id.length-1];if(id=3D=3Dnull){return =
'';}return id;}}return '';}function =
buildParams(parameters){if(parameters){try{var p=3Dnew Array();for(var =
i=3D0;i+1<parameters.length;i+=3D2){p.push(parameters[i]+'=3D'+encodeURIC=
omponent(parameters[i+1]));}parameters=3Dp.join('&');}catch(e){parameters=
=3D'';alert(e);}}return parameters;}var api_loc=3D'/api/';function =
redditRequest(op,parameters,worker_in){var action=3Dop;var =
worker=3Dworker_in;if(!parameters){parameters=3D{};}if(post_site){paramet=
ers.r=3Dpost_site;}op=3Dapi_loc+op;if(!worker){worker=3DhandleResponse(ac=
tion);}else{worker=3Dfunction(r){return worker_in(r);}}new =
Ajax.Request(op,{parameters:make_get_params(parameters),onComplete:worker=
});}function =
redditRequest_no_response(op,parameters){redditRequest(op,parameters,func=
tion(r){});}function =
get_class_from_id(id){if(id){id=3Did.split('_')[0];return =
class_dict[id];}}function =
parse_response(r){if(r.status=3D=3D500)return;return =
r.responseText.parseJSON();}function =
tup(x){if(!x.length){return[x]};return x;}function =
handleResponse(action){var my_iter=3Dfunction(x,func){if(x){var =
y=3Dtup(x);for(var j=3D0;j<y.length;j++){func(y[j]);}}};var =
responseHandler=3Dfunction(r){var =
res_obj=3Dparse_response(r);if(!res_obj){if($('status'))$('status').inner=
HTML=3D'';return;}if(res_obj.redirect){window.location=3Dres_obj.redirect=
;return;}var error=3Dres_obj.error;if(error&&error.name){var =
errid=3Derror.name;if(error.id){errid+=3D"_"+error.id;}errid=3D$(errid);i=
f(errid){show(errid);$(errid).innerHTML=3Derror.message;}}var =
r=3Dres_obj.response;if(!r)return;var =
obj=3Dr.object;if(obj){my_iter(tup(obj),function(u){if(u&&u.kind&&class_d=
ict[u.kind]){var =
func=3D(class_dict[u.kind][u.action]||class_dict[u.kind][action]);if(func=
){func(u.data);}}});}if(r.focus){var =
f=3D$(r.focus);if(f){f.focus();f.onfocus=3Dnull;}}if(r.blur){var =
f=3D$(r.blur);if(f){f.blur();f.onblur=3Dnull;}}if(r.captcha){if(r.captcha=
.refresh){var captcha=3D$("capimage");var =
capiden=3D$("capiden");capiden.value=3Dr.captcha.iden;captcha.src=3D("/ca=
ptcha/"+r.captcha.iden+".png?"+Math.random())}}if(r.success){fire_success=
();}my_iter(r.update,function(u){var =
field=3Du.id&&$(u.id);if(field){for(var i in =
u){if(typeof(u[i])!=3D"function"&&u!=3D'name'){field[i]=3Du[i];}}}});my_i=
ter(r.hide,function(h){var =
field=3Dh.name&&$(h.name);if(field){hide(field);}});my_iter(r.show,functi=
on(h){var field=3Dh.name&&$(h.name);if(field){show(field);}});};return =
responseHandler;}function =
re_id_node(node,id){if(node.id&&typeof(node.id)=3D=3D"string"){node.id+=3D=
id;}var children=3Dnode.childNodes;for(var =
i=3D0;i<children.length;i++){re_id_node(children[i],id);}return =
node;}function Thing(id){this.__init__(id);};function =
field(form_field){if(form_field=3D=3Dnull||form_field.value=3D=3Dnull||((=
form_field.type=3D=3D'text'||form_field.type=3D=3D'textarea')&&form_field=
.style.color=3D=3D"gray")||(form_field.type=3D=3D'radio'&&!form_field.che=
cked)){return '';}else if(form_field.type=3D=3D'checkbox'){return =
form_field.checked?'on':'off';}return form_field.value;}function =
change_w_callback(link,func){var parent=3Dlink.parentNode;var =
form=3Dparent.parentNode;var id=3Dform.id.value;link.blur();var =
executed=3Ddocument.createElement('span');executed.innerHTML=3Dform.execu=
ted.value;parent.insertBefore(executed,link);hide(link);func(id);return =
false;}function =
change_state(link,type){change_w_callback(link,function(id){redditRequest=
(type,{id:id,uh:modhash});});return false;}function =
post_form(form,where,statusfunc,nametransformfunc){var =
p=3D{uh:modhash};var id=3D_id(form);var =
status=3D$("status");if(statusfunc=3D=3Dnull){statusfunc=3Dfunction(x){re=
turn =
_global_submitting_tag;};}if(nametransformfunc=3D=3Dnull){nametransformfu=
nc=3Dfunction(x){return =
x;}}if(id){status=3D$("status_"+id);p.id=3Did;}if(status){status.innerHTM=
L=3Dstatusfunc(form);}for(var =
i=3D0;i<form.elements.length;i++){if(!form.elements[i].id||!id||_id(form.=
elements[i])=3D=3Did){var =
f=3Dfield(form.elements[i]);if(f){p[nametransformfunc(form.elements[i].na=
me)]=3Df;}}}redditRequest(where,p);return false;}function =
setMessage(field,msg){if(!field.value||field.value=3D=3Dmsg){field.value=3D=
msg;field.style.color=3D"gray";}else{field.onfocus=3Dnull;}}function =
more(a_tag,new_label,div_on,div_off){var =
old_label=3Da_tag.innerHTML;a_tag.innerHTML=3Dnew_label;var =
i;for(i=3D0;i<div_on.length;i++){show(div_on[i]);}for(i=3D0;i<div_off.len=
gth;i++){hide(div_off[i]);}a_tag.onclick=3Dfunction(){return =
more(a_tag,old_label,div_off,div_on);};return false;}function =
new_captcha(){redditRequest("new_captcha");}var upm=3D"arrow upmod";var =
upr=3D"arrow up";var downm=3D"arrow downmod";var downr=3D"arrow =
down";var upcls=3D[upr,upr,upm];var downcls=3D[downm,downr,downr];var =
scorecls=3D["score dislikes","score","score likes"];function =
cookieName(name){return(logged||'')+"_"+name;}function =
createCookie(name,value,days){if(days){var date=3Dnew =
Date();date.setTime(date.getTime()+(days*24*60*60*1000));var =
expires=3D"; expires=3D"+date.toGMTString();}else =
expires=3D"";document.cookie=3DcookieName(name)+"=3D"+value+expires+"; =
path=3D/";}function readCookie(name){var =
nameEQ=3DcookieName(name)+"=3D";var =
ca=3Ddocument.cookie.split(';');for(var i=3D0;i<ca.length;i++){var =
c=3Dca[i];while(c.charAt(0)=3D=3D' =
')c=3Dc.substring(1,c.length);if(c.indexOf(nameEQ)=3D=3D0)return =
c.substring(nameEQ.length,c.length);}return '';}function =
set_score(id,dir){var label=3Dvl[id];var =
score=3D$("score_"+id);if(score){score.className=3Dscorecls[dir+1];score.=
innerHTML=3Dlabel[dir+1];}}function =
mod(id,uc,vh){if(vh=3D=3Dnull)vh=3D'';var up=3D$("up_"+id);var =
down=3D$("down_"+id);var =
dir=3D-1;if(uc&&up.className=3D=3Dupm||!uc&&down.className=3D=3Ddownm){di=
r=3D0;}else =
if(uc){dir=3D1;}if(logged){redditRequest_no_response('vote',{id:id,uh:mod=
hash,dir:dir,vh:vh});}up.className=3Dupcls[dir+1];down.className=3Ddowncl=
s[dir+1];set_score(id,dir);}=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_017E_01C8CA55.7CD899E0"


------=_NextPart_001_017E_01C8CA55.7CD899E0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/politics/law/news/2001/09/47109

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>How Osama Cracked =
FBI's Top 10</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<META http-equiv=3DContent-Language content=3Den-us>
<META content=3DGlobal name=3Ddistribution>
<META content=3DALL name=3DROBOTS>
<META content=3Dnoodp name=3DROBOTS>
<META content=3DNOYDIR name=3DSlurp>
<META content=3Dtrue name=3DMSSmartTagsPreventParsing>
<META http-equiv=3Dimagetoolbar content=3Dfalse>
<META content=3D"Copyright (c) 2007 CondeNet, Inc. All rights reserved." =

name=3DCopyright><LINK href=3D"/favicon.ico" type=3Dimage/x-icon =
rel=3D"Shortcut Icon">
<META content=3DWired name=3DAuthor>
<META content=3D"Osama bin Laden is among the FBI's " name=3Ddescription =
Clewley.?=20
Robin By why. Here?s 11. Sept. for or 1993 in attacks Center Trade World =
the not=20
Kenya, and Tanzania embassies U.S. on 1998 but Wanted,? Most><LINK =
media=3Dall=20
href=3D"http://www.wired.com/css/global.css" type=3Dtext/css =
rel=3Dstylesheet><LINK=20
media=3Dall href=3D"http://www.wired.com/css/xrail.css" type=3Dtext/css=20
rel=3Dstylesheet><LINK title=3Dsmall media=3Dscreen,print=20
href=3D"http://www.wired.com/css/fontSmall.css" type=3Dtext/css=20
rel=3D"alternate stylesheet"><LINK title=3Dlarge media=3Dscreen,print=20
href=3D"http://www.wired.com/css/fontLarge.css" type=3Dtext/css=20
rel=3D"alternate stylesheet"><LINK title=3Dlargest media=3Dscreen,print=20
href=3D"http://www.wired.com/css/fontLarge2.css" type=3Dtext/css=20
rel=3D"alternate stylesheet">
<SCRIPT language=3DJavaScript1.2=20
src=3D"http://www.wired.com/js/comments/json.js"></SCRIPT>

<SCRIPT language=3DJavaScript1.2=20
src=3D"http://www.wired.com/js/comments/prototype.js"></SCRIPT>

<SCRIPT language=3Djavascript src=3D"http://www.wired.com/js/global.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript =
src=3D"http://www.wired.com/js/ads/dartCall.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript =
src=3D"http://www.wired.com/js/stats/tracking.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3DJavaScript1.2=20
src=3D"http://www.wired.com/js/comments/commentBroker.js"></SCRIPT>

<META=20
content=3DABQIAAAAF5yd_X_vTzike6sB6lp3wBQ4h890iMeKvsDZGQOc75SG0lWKAhQW755=
bw9E_-3ijKe6eqE5sg_NLEw=20
name=3Dgmapkey>
<STYLE type=3Dtext/css media=3Dscreen>@import url( =
/css/toolbox_article_bottom.css );
</STYLE>

<STYLE type=3Dtext/css media=3Dscreen>@import url( /css/article.css );
</STYLE>

<STYLE type=3Dtext/css media=3Dscreen>@import url( /css/google_ad.css );
</STYLE>

<STYLE type=3Dtext/css media=3Dall>@import url( /css/wiredcomment.css );
</STYLE>

<SCRIPT=20
src=3D"http://w.sharethis.com/widget/?tabs=3Dweb%2Cemail&amp;charset=3Dut=
f-8&amp;services=3Dfacebook%2Cmyspace%2Cdelicious%2Ctechnorati%2Cpropelle=
r%2Cmixx%2Cnewsvine%2Cgoogle_bmarks%2Cyahoo_myweb%2Cwindows_live%2Ctailra=
nk%2Cmagnolia%2Cfurl%2Cblinklist%2Cblogmarks&amp;style=3Ddefault&amp;publ=
isher=3D0ec71848-688b-4d92-957d-d8ba67ad2647&amp;headerbg=3D%23e7e7e7&amp=
;inactivebg=3D%23f1f1f1&amp;inactivefg=3D%237e7e7e&amp;linkfg=3D%23007ca5=
"=20
type=3Dtext/javascript></SCRIPT>
<LINK title=3Dpolitics:law =
href=3D"http://feeds.wired.com/wired/politics/"=20
type=3Dapplication/rss+xml rel=3Dalternate>
<META content=3D"MSHTML 6.00.6001.18023" name=3DGENERATOR></HEAD>
<BODY class=3D"newsarticlesmall s_politics ss_law c_news">
<DIV id=3Dshell>
<DIV id=3Dcontent>
<DIV id=3Dheader><A id=3Dlogo href=3D"http://www.wired.com/"><IMG =
alt=3DWIRED=20
src=3D"http://www.wired.com/images/wired_logo.gif"></A>=20
<DIV class=3Dtimestamp></DIV>
<DIV id=3Dleaderboard><SPAN id=3Dno_print><!-- DART AD START sz728x90  =
-->
<DIV class=3DdartAdUnit id=3DdartTarget_sz728x90></DIV><IFRAME =
class=3DhiddenDAU=20
id=3DdartFrame_sz728x90 name=3DdartFrame_sz728x90 src=3D"about:blank" =
frameBorder=3D0=20
scrolling=3Dno></IFRAME>
<SCRIPT type=3Dtext/javascript>=0A=
        //<!--=0A=
            var tile_num;=0A=
            var condenetads_ord;=0A=
            if (typeof tile_num =3D=3D "undefined") { tile_num=3D1; } =
else { tile_num++; }=0A=
            if (typeof condenetads_ord =3D=3D "undefined") { =
condenetads_ord =3D Math.random()*10000000000000000;}=0A=
            dart["sz728x90"] =3D {placement:"sz=3D728x90;", =
dartCall:"wiredcom.dart/politics_article;kw=3Dpolitics;kw=3Dlaw;kw=3Dnews=
;kw=3D2001;kw=3D09;kw=3D47109;kw=3Dnull;", dcopt:"dcopt=3Dist;"};=0A=
            if (isSafari =3D=3D 'false'){dartRequest("sz728x90");};=0A=
        //-->=0A=
    </SCRIPT>
</SPAN></DIV></DIV>
<DIV id=3Dnav_bar>
<UL id=3Dnav><!-- doesn't show on the homepage -->
  <LI class=3Dhome><SPAN><A =
href=3D"http://www.wired.com/"></A></SPAN></LI>
  <LI class=3Dsubscribe onclick=3Dvoid(0)>
  <DIV id=3Dsubscribe_menu>
  <UL>
    <LI class=3DfirstTop></LI>
    <LI class=3DfirstBottom><SPAN></SPAN></LI>
    <LI class=3DlastTop></LI>
    <LI class=3DlastBottom><SPAN></SPAN></LI>
    <LI><A=20
    =
href=3D"https://w1.buysub.com/servlet/ConvertibleGateway?cds_mag_code=3DW=
IR&amp;cds_page_id=3D49179&amp;cds_response_key_gift=3DG8EIBAA1&amp;cds_r=
esponse_key=3DI8ENAAL2">Subscribe</A>=20
    </LI>
    <LI><A=20
    =
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659">Renew</A>=20
    </LI>
    <LI><A =
href=3D"https://w1.buysub.com/loc/WIR/WIR_hp_ros_nav_gift">Give a=20
    Gift</A> </LI>
    <LI><A=20
    =
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659">Change=20
    Address</A> </LI>
    <LI><A=20
    =
href=3D"https://w1.buysub.com/loc/WIR/WIR_hp_ros_nav_intl">International<=
/A>=20
    </LI>
    <LI><A=20
    =
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659">Questions</A>=20
    </LI></UL></DIV></LI>
  <LI class=3Dsections onclick=3Dvoid(0)>
  <DIV id=3Dsections_menu>
  <DIV id=3Dsections1>
  <UL>
    <LI class=3DfirstTop></LI>
    <LI class=3DfirstBottom><SPAN></SPAN></LI>
    <LI><A href=3D"http://www.wired.com/cars/">Cars 2.0</A> </LI>
    <LI><A href=3D"http://www.wired.com/culture/">Culture</A> </LI>
    <LI><A =
href=3D"http://www.wired.com/entertainment/">Entertainment</A> </LI>
    <LI><A href=3D"http://www.wired.com/gadgets/">Gadgets</A> </LI>
    <LI><A href=3D"http://www.wired.com/gaming/">Gaming</A> </LI>
    <LI><A href=3D"http://howto.wired.com/">How To</A> </LI>
    <LI><A href=3D"http://www.wired.com/medtech/">Med-Tech</A> =
</LI></UL></DIV>
  <DIV id=3Dsections2>
  <UL>
    <LI class=3DlastTop></LI>
    <LI class=3DlastBottom><SPAN></SPAN></LI>
    <LI><A href=3D"http://www.wired.com/politics/">Politics</A> </LI>
    <LI><A href=3D"http://www.wired.com/science/">Science</A> </LI>
    <LI><A href=3D"http://www.wired.com/software/">Software</A> </LI>
    <LI><A href=3D"http://www.wired.com/techbiz/">TechBiz</A> </LI>
    <LI><A href=3D"http://www.wired.com/commentary/">Commentary</A> =
</LI>
    <LI><A href=3D"http://www.wired.com/multimedia/">Multimedia</A> =
</LI>
    <LI><A href=3D"http://wiredinsider.com/">Wired Insider</A>=20
  </LI></UL></DIV></DIV></LI>
  <LI class=3Dblogs onclick=3Dvoid(0)>
  <DIV id=3Dblogs_menu>
  <DIV id=3Dblogs1>
  <UL>
    <LI class=3DfirstTop></LI>
    <LI class=3DfirstBottom><SPAN></SPAN></LI>
    <LI><A href=3D"http://blog.wired.com/">All</A> </LI>
    <LI><A href=3D"http://blog.wired.com/cars/">Autopia</A> </LI>
    <LI><A href=3D"http://blog.wired.com/sterling/">Beyond the =
Beyond</A> </LI>
    <LI><A href=3D"http://blog.wired.com/monkeybites/">Compiler</A> =
</LI>
    <LI><A href=3D"http://blog.wired.com/defense/">Danger Room</A> =
</LI></UL></DIV>
  <DIV id=3Dblogs2>
  <UL>
    <LI class=3Dmiddle></LI>
    <LI><A href=3D"http://blog.wired.com/business/">Epicenter</A> </LI>
    <LI><A href=3D"http://blog.wired.com/gadgets/">Gadget Lab</A> </LI>
    <LI><A href=3D"http://blog.wired.com/games/">Game | Life</A> </LI>
    <LI><A href=3D"http://blog.wired.com/geekdad/">GeekDad</A> </LI>
    <LI class=3Die_fill> </LI></UL></DIV>
  <DIV id=3Dblogs3>
  <UL>
    <LI class=3DlastTop></LI>
    <LI class=3DlastBottom><SPAN></SPAN></LI>
    <LI><A href=3D"http://blog.wired.com/music/">Listening Post</A> =
</LI>
    <LI><A href=3D"http://blog.wired.com/underwire/">The Underwire</A> =
</LI>
    <LI><A href=3D"http://blog.wired.com/27bstroke6/">Threat Level</A> =
</LI>
    <LI><A href=3D"http://blog.wired.com/wiredscience/">WIRED =
Science</A> </LI>
    <LI class=3Die_fill> </LI></UL></DIV></DIV></LI>
  <LI class=3Dread><SPAN><A =
href=3D"http://www.wired.com/wired/"></A></SPAN></LI>
  <LI class=3Dblank><SPAN></SPAN></LI>
  <LI class=3Dsearch id=3Dheader_nav_search><SPAN></SPAN>
  <FORM id=3Dnav_search name=3Dsearch onsubmit=3D"return =
validateSearch(this)"=20
  action=3D/search><INPUT class=3Dtext id=3Dns_query=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 57px; =
BORDER-BOTTOM-WIDTH: 0px; WIDTH: 116px; TOP: 11px; HEIGHT: 18px; =
BORDER-RIGHT-WIDTH: 0px"=20
  name=3Dquery> <SELECT class=3Dsearch_filter id=3Dns_filter =
name=3DsiteAlias> <OPTION=20
    class=3Dopt id=3Dns_top_stories value=3Dnoblog selected =
default=3D"true"=20
    name=3D"noblog">Top Stories</OPTION> <OPTION class=3Dopt =
id=3Dmagazine value=3Dmag=20
    name=3D"mag">Magazine</OPTION> <OPTION class=3Dopt id=3Dns_blogs =
value=3Dblog=20
    name=3D"blog">Wired Blogs</OPTION> <OPTION class=3Dopt id=3Dns_all =
value=3Dall=20
    name=3D"all">All Wired</OPTION></SELECT> <INPUT class=3Dgo =
type=3Dimage=20
  =
src=3D"http://www.wired.com/images/icon_search_go.gif"></FORM></LI></UL><=
/DIV>
<DIV id=3Dcontentwell>
<DIV id=3Darticle>
<DIV class=3Dmatchbook_rain></DIV>
<DIV id=3Dsection><A href=3D"http://www.wired.com/politics">Politics</A> =

&nbsp;:&nbsp; <A href=3D"http://www.wired.com/politics/law">Law</A> =
&nbsp; <A=20
href=3D"http://feeds.wired.com/wired/politics/law" target=3D_blank =
rel=3Dnofollow><IMG=20
class=3Dimg_middle alt=3DRSS =
src=3D"http://www.wired.com/images/icon_rss.gif"></A>=20
</DIV><!-- start article body -->
<DIV id=3Darticle_body>
<H1 id=3Darticlehed>How Osama Cracked FBI's Top 10</H1>
<DIV class=3Ddate_time><SPAN class=3D"c cs" id=3Dcontributor>Robin =
Clewley </SPAN><A=20
href=3D"http://www.wired.com/services/feedback/letterstoeditor"><IMG=20
class=3Dimg_middle alt=3DEmail =
src=3D"http://www.wired.com/images/icon_email.gif">=20
</A>09.27.01 </DIV><!-- only display photo on first page --><!-- start =
article photo -->
<DIV id=3Darticle_text>
<P>When the terrorists who commandeered the four airplanes in the Sept. =
11=20
attacks were identified, their faces appeared in news publications all =
over the=20
world.=20
<P>President Bush has said he has evidence that Osama bin Laden was =
behind the=20
attacks, so it would seem obvious that the FBI would include him and =
other=20
suspects on its 10 most wanted fugitives <A=20
href=3D"http://www.fbi.gov/mostwant/topten/tenlist.htm">Web page</A>.=20
<P>Think again.=20
<P>Bin Laden is listed, but only for the 1998 bombings of U.S. embassies =
in=20
Tanzania and Kenya. There is no mention of the 1993 World Trade Center =
bombing=20
or the attacks on the USS Cole in October 2000, both of which he is =
widely=20
believed to have orchestrated. And forget about Sept. 11. <DROPLINK />
<P>The reason? Fugitives on the list must be formally charged with a =
crime, and=20
bin Laden is still only a suspect in the recent attacks in New York City =
and=20
Washington.=20
<P>"There's going to be a considerable amount of time before anyone =
associated=20
with the attacks is actually charged," said Rex Tomb, who is head of the =
FBI's=20
chief fugitive publicity unit and helps decide which fugitives appear on =
the=20
list. "To be charged with a crime, this means we have found evidence to =
confirm=20
our suspicions, and a prosecutor has said we will pursue this case in =
court."=20
<P>Larry C. Johnson, a former CIA officer who was deputy director of the =
U.S.=20
State Department Office of Counterterrorism from 1989 to 1993, said in a =
Sept.=20
12 interview conducted by <I>Frontline</I> that there is no concrete =
proof that=20
bin Laden is responsible for the USS Cole and the 1993 WTC attacks, but =
bin=20
Laden celebrates those attacks and associates himself with people who =
are=20
responsible for it.=20
<P>President Bush promises to reveal evidence linking bin Laden to the =
suicide=20
hijackers who attacked the World Trade Center and the Pentagon. Bin =
Laden has=20
applauded the attacks but denies direct involvement.=20
<P>Because the list is used to attract the public's attention to a =
fugitive,=20
careful consideration must take place before a decision is made, Tomb =
said. The=20
FBI evaluates if publicity will help or hinder the search for a suspect. =

<P>The top 10 list began in 1950 from a suggestion by a reporter from =
the=20
International News Service, the predecessor of the United Press =
International,=20
who wanted to know the names and descriptions of the toughest cases the =
FBI was=20
trying to solve. Because of its appeal and the publicity generated by =
the=20
creation of the list, former director J. Edgar Hoover implemented the 10 =
most=20
wanted fugitives program.=20
<P>The average length of time a fugitive remains on the list is one =
year, and of=20
the 466 fugitives who have been on the list, 139 have been caught as a =
direct=20
result of citizen participation, Tomb said. Since the FBI went online, =
one top=20
10 fugitive and 13 others have been apprehended because of their =
presence on the=20
Web. Tomb said the top ten list is the FBI's most popular Web page and =
receives=20
2.5 million hits per month. <!-- pagebreak -->
<P>Some of the more famous fugitives appearing on the list include James =
Earl=20
Ray, Ted Bundy and Andrew Cunanan, the man convicted of murdering =
fashion=20
designer Gianni Versace. The reward for catching a fugitive appearing on =
the=20
list is $50,000. Any additional reward money is supplied by other =
government=20
agencies or private groups.=20
<P>Suspects on the list are not ranked, out of respect for the victims. =
In=20
addition, the FBI does not want to give more importance to one suspect =
versus=20
another, Tomb said.=20
<P>"If you had a food chain up there, most of the public attention would =
be=20
focused on just a few," Tomb said. "Victims of the crime might be =
resentful of=20
the public attention, as if their fugitive doesn't seem to measure up."=20
<P>Bin Laden, the second fugitive listed, is the only terrorist among =
the top=20
10. He's the only terrorist on the list because he's the only one that's =
been=20
formally charged and he still remains at large. In addition, Tomb said, =
just=20
because the country's consciousness is currently aimed at terrorists =
doesn't=20
mean that other violent crimes that have been committed in the past =
should be=20
overlooked or forgotten. These criminals should still be on the list.=20
<P>Bin Laden is officially <A=20
href=3D"http://www.fbi.gov/mostwant/topten/fugitives/laden.htm">wanted</A=
> for=20
"murder of U.S. nationals outside the United States; conspiracy to =
murder U.S.=20
nationals outside the United States; attack on a federal facility =
resulting in=20
death."=20
<P>The list also includes his vital statistics, including the fact that =
he is 6=20
feet 4 inches to 6 feet 6 inches tall and walks with a cane.=20
<P>Since the government believes bin Laden is in Afghanistan, it's not =
likely=20
that Americans will see his picture and then run into him at the corner =
store.=20
But one expert said that raising awareness about bin Laden could lead to =

critical clues.=20
<P>"While it seems like a remote possibility, you can't discount that =
the=20
publicity might identify a (terrorist) cell that could perhaps lead to =
bin=20
Laden," said Mitchell Hammer, an international negotiation professor at =
American=20
University. "It's certainly not going to be a direct route."=20
<P>Hammer should know. He has firsthand experience in linking publicity =
to=20
another terrorist.=20
<P>He and his colleagues identified links between the Unabomber's =
manifesto and=20
letters that Ted Kaczynski had written to his family. Ted Kaczynski's =
brother=20
David had read the manifesto in <I>The New York Times</I> and noticed=20
similarities. He enlisted Hammer's expertise to identify similar =
characteristics=20
between the manifesto and the letters, which eventually led to Ted =
Kaczynski's=20
arrest.=20
<P>But not all publicity is helpful to a case, Tomb said.=20
<P>"If the FBI is one or two days behind a suspect, you don't want to =
put the=20
fugitive on the list because you might scare them into hiding."
<SCRIPT language=3DJavaScript1.2 type=3Dtext/javascript>=0A=
                    if (typeof drawDropCap =3D=3D "function") {=0A=
                        var arrExcludeDivs =3D new =
Array("article_itemlist");=0A=
                        drawDropCap("articletext", arrExcludeDivs);=0A=
                    }=0A=
                </SCRIPT>
 </P></DIV><!-- end article content -->
<DIV id=3Dtoolbox_art_bot>
<DIV class=3Dfloat_r id=3Dpagination></DIV>
<DIV id=3Dsocial_bkmrks><SPAN class=3Dsocial id=3Dsb_art_reddit>
<SCRIPT>reddit_url=3D'http://www.wired.com/politics/law/news/2001/09/4710=
9';</SCRIPT>

<SCRIPT>reddit_title=3D'How Osama Cracked FBI\'s Top 10';</SCRIPT>

<SCRIPT>reddit_css=3D'http://www.wired.com/css/redditsocial.css'</SCRIPT>=


<SCRIPT language=3Djavascript=20
src=3D"http://reddit.com/button.js?t=3D1&amp;width=3D120&amp;height=3D20"=
=20
type=3Dtext/javascript></SCRIPT>
</SPAN><SPAN class=3Dsocial id=3Dsb_art_diggit><A id=3Ddiggit_icon_link=20
href=3D"http://digg.com/submit?phase=3D2&amp;url=3Dhttp%3A%2F%2Fwww.wired=
.com%2Fpolitics%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Cr=
acked+FBI%27s+Top+10"></A>
<SCRIPT type=3Dtext/javascript>=0A=
    digg_url =3D 'http://www.wired.com/politics/law/news/2001/09/47109';=0A=
    digg_title =3D 'How Osama Cracked FBI\'s Top 10';=0A=
    digg_bgcolor =3D 'transparent';=0A=
    digg_skin =3D 'compact';=0A=
    digg_window =3D 'new';=0A=
</SCRIPT>

<SCRIPT src=3D"http://digg.com/tools/diggthis.js" =
type=3Dtext/javascript></SCRIPT>
</SPAN><SPAN class=3Dsocial id=3Dsb_art_yahoo>
<SCRIPT src=3D"http://d.yimg.com/ds/badge.js" badgetype=3D"text" =
showbranding=3D"0">wired:http://www.wired.com/politics/law/news/2001/09/4=
7109</SCRIPT>
</SPAN><SPAN class=3Dsocial id=3Dsb_art_stumble><A=20
href=3D"http://www.stumbleupon.com/submit?url=3Dhttp%3A%2F%2Fwww.wired.co=
m%2Fpolitics%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Crack=
ed+FBI%27s+Top+10"><IMG=20
alt=3D"add to StumbleUpon" =
src=3D"http://www.wired.com/images/stumble.png">
<DIV>Stumble</DIV></A></SPAN><SPAN class=3D"social stbutton =
stico_default"=20
id=3Dsb_art_sharethis>ShareThis</SPAN>
<SCRIPT type=3Dtext/javascript>=0A=
//<![CDATA[=0A=
=0A=
    function myCustomCallback(sharelet){=0A=
        /*=0A=
         * The sharelet is passed to the myCustomCallback callback =
routine.=0A=
         * We will alert the title and dump the object to the console.=0A=
         */=0A=
        //alert(sharelet.properties.title);=0A=
        //console.dir(sharelet);=0A=
=0A=
        /*=0A=
         * Return true to show the widget=0A=
         */=0A=
        return true;=0A=
      };=0A=
=0A=
=0A=
      /*=0A=
       * Locate the span element and attach the ShareThis button.=0A=
       */=0A=
      var el =3D document.getElementById("sb_art_sharethis");=0A=
=0A=
      /*=0A=
       * Create a sharelet with no button and a myCustomCallback onclick =
handler.=0A=
       */=0A=
      var obj =3D SHARETHIS.addEntry({=0A=
        title:'How Osama Cracked FBI\'s Top 10',=0A=
        type: 'url'},=0A=
        {button:false, onclick:myCustomCallback}//, offsetLeft: =
-el.scrollWidth}=0A=
      );=0A=
      obj.attachButton(el);=0A=
        // following param not used=0A=
        /* icon: =
'http://wired.com/images/slideshow/magazine/1506/pl_print_f.jpg', */=0A=
    //]]>=0A=
</SCRIPT>
 </DIV></DIV><!-- close toolbox_art_bot -->
<DIV class=3Dmatchbook_plus id=3Dmb_article_end></DIV>
<DIV id=3Darticle_footer><A name=3Dcorrections></A>
<DIV id=3Dleft_col>
<DIV id=3Dsee_also><STRONG>See Also:</STRONG>=20
<P><A =
href=3D"http://www.plastic.com/article.pl?sid=3D01/09/27/1550204"><B>Disc=
uss=20
this story</B> on Plastic.com</A> </P>
<P><A =
href=3D"http://www.wired.com/news/politics/0,1283,47018,00.html">Bush =
Vows=20
'Justice Will Be Done'</A> </P>
<P><A =
href=3D"http://www.wired.com/news/politics/0,1283,47018,00.html">Bush =
Vows=20
'Justice Will Be Done'</A> </P>
<P><A =
href=3D"http://www.wired.com/news/politics/0,1283,46884,00.html">Bin =
Laden=20
Can Hide</A> </P>
<P><A =
href=3D"http://www.wired.com/news/politics/0,1283,46884,00.html">Bin =
Laden=20
Can Hide</A> </P>
<P><A href=3D"http://www.wired.com/news/conflict">U.S. vs. Them: Fresh=20
Perspectives</A> </P>
<P><A href=3D"http://www.wired.com/news/business">Give Yourself Some =
Business=20
News</A> </P></DIV></DIV>
<DIV id=3Dright_col>
<DIV id=3Dsearch>
<FORM id=3Dnav_search name=3Dsearch onsubmit=3D"return =
validateSearch(this)"=20
action=3D/search>
<DIV class=3Dtitle>Search Wired </DIV><INPUT class=3Dinput_text =
name=3Dquery> <SELECT=20
class=3Dsearch_filter id=3Dart_filter name=3DsiteAlias> <OPTION =
class=3Dopt=20
  id=3Dart_top_stories value=3Dnoblog selected default=3D"true" =
name=3D"noblog">Top=20
  Stories</OPTION> <OPTION class=3Dopt id=3Dart_mag value=3Dmag=20
  name=3D"mag">Magazine</OPTION> <OPTION class=3Dopt id=3Dart_blogs =
value=3Dblog=20
  name=3D"blog">Wired Blogs</OPTION> <OPTION class=3Dopt id=3Dart_all =
value=3Dall=20
  name=3D"all">All Wired</OPTION></SELECT>=20
<DIV id=3Dwrapper><INPUT class=3Dgo type=3Dimage alt=3DGo=20
src=3D"http://wired.com/images/icon_search_go.gif"> </DIV></FORM></DIV>
<DIV class=3Dtitle>Related Topics: </DIV>
<P><A href=3D"http://www.wired.com/politics">Politics</A> , <A=20
href=3D"http://www.wired.com/techbiz">Tech Biz</A> , <A=20
href=3D"http://www.wired.com/politics/law">Law</A> , <A=20
href=3D"http://www.wired.com/techbiz/media">Media</A> =
</P></DIV></DIV><!-- close article_footer -->
<DIV class=3Dmatchbook_plus></DIV></DIV><!-- close article_body --><A=20
name=3Dcomments>
<DIV class=3Dreddit_export_wrapper id=3DouterWrapper>
<DIV class=3Dreddit_export_wrapper_contents id=3DcommentContainer>
<SCRIPT>=0A=
=0A=
=0A=
function loadCurArticleComments() {=0A=
    =0A=
    =0A=
    =0A=
     =0A=
          loadComments(escape('/politics/law/news/2001/09/47109'), 0, =
10, false);=0A=
    =0A=
}=0A=
loadCurArticleComments();=0A=
</SCRIPT>
</DIV></DIV>
<DIV id=3Dad_bottom>
<SCRIPT type=3Dtext/javascript><!--=0A=
            google_ad_client =3D "pub-9817987453265044";=0A=
            google_alternate_color =3D "ffffff";=0A=
            google_ad_width =3D 468;=0A=
            google_ad_height =3D 60;=0A=
            google_ad_format =3D "468x60_as";=0A=
            google_ad_type =3D "text";=0A=
            //2007-02-13: Wired:468x60=0A=
            google_ad_channel =3D "9769473027";=0A=
            google_color_border =3D "FFFFFF";=0A=
            google_color_bg =3D "FFFFFF";=0A=
            google_color_link =3D "1199BB";=0A=
            google_color_text =3D "000000";=0A=
            google_color_url =3D "000000";=0A=
            //--></SCRIPT>

<SCRIPT src=3D"http://pagead2.googlesyndication.com/pagead/show_ads.js"=20
type=3Dtext/javascript>=0A=
            </SCRIPT>
</DIV></DIV></DIV>
<DIV id=3Dxrail><!-- start xrail --><!-- Article-->
<DIV id=3Dtoolbox>
<UL>
  <LI class=3Dtool><A=20
  =
href=3D"http://www.wired.com/services/email/politics/law/news/2001/09/471=
09?title=3DHow Osama Cracked FBI's Top 10"=20
  rel=3Dnofollow><IMG alt=3D"Email article to a Friend"=20
  src=3D"http://www.wired.com/images/email_icon.gif"> Email Article</A>=20
  <LI class=3Dtool><A=20
  href=3D"http://www.wired.com/print/politics/law/news/2001/09/47109"=20
  rel=3Dnofollow><IMG alt=3D"Print Page"=20
  src=3D"http://www.wired.com/images/print_icon.gif"> Print</A>=20
  <LI class=3Dtool><IMG alt=3D"Full Page"=20
  src=3D"http://www.wired.com/images/full_page_icon.gif"> Full Page=20
  <LI class=3Dtool><A=20
  =
href=3D"http://www.wired.com/politics/law/news/2001/09/47109#comments"><I=
MG=20
  alt=3DComments src=3D"http://www.wired.com/images/comment_icon.gif"> =
Comments=20
  <SPAN id=3DnumCommentsOnPage></SPAN></A></LI></UL>
<DIV id=3Dsponsor>
<P id=3DbyTxt>Sponsored by:&nbsp;</P><!-- DART AD START sz88x31  -->
<DIV class=3DdartAdUnit id=3DdartTarget_sz88x31></DIV><IFRAME =
class=3DhiddenDAU=20
id=3DdartFrame_sz88x31 name=3DdartFrame_sz88x31=20
src=3D"http://www.reddit.com/button_content?t=3D1&amp;url=3Dhttp%3A%2F%2F=
www.wired.com%2Fpolitics%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow=
%20Osama%20Cracked%20FBI's%20Top%2010&amp;css=3Dhttp%3A%2F%2Fwww.wired.co=
m%2Fcss%2Fredditsocial.css"=20
frameBorder=3D0 scrolling=3Dno></IFRAME>
<SCRIPT type=3Dtext/javascript>=0A=
        //<!--=0A=
            var tile_num;=0A=
            var condenetads_ord;=0A=
            if (typeof tile_num =3D=3D "undefined") { tile_num=3D1; } =
else { tile_num++; }=0A=
            if (typeof condenetads_ord =3D=3D "undefined") { =
condenetads_ord =3D Math.random()*10000000000000000;}=0A=
            dart["sz88x31"] =3D {placement:"sz=3D88x31;", =
dartCall:"wiredcom.dart/politics_article;kw=3Dpolitics;kw=3Dlaw;kw=3Dnews=
;kw=3D2001;kw=3D09;kw=3D47109;kw=3Dnull;", dcopt:""};=0A=
            if (isSafari =3D=3D 'false'){dartRequest("sz88x31");};=0A=
        //-->=0A=
    </SCRIPT>
</DIV></DIV><!-- DART AD START sz300x250  -->
<DIV class=3DdartAdUnit id=3DdartTarget_sz300x250></DIV><IFRAME =
class=3DhiddenDAU=20
id=3DdartFrame_sz300x250 name=3DdartFrame_sz300x250=20
src=3D"http://digg.com/tools/diggthis.php?u=3Dhttp%3A//www.wired.com/poli=
tics/law/news/2001/09/47109&amp;t=3DHow%20Osama%20Cracked%20FBI%27s%20Top=
%2010&amp;w=3Dnew&amp;k=3Dtransparent&amp;s=3Dcompact"=20
frameBorder=3D0 scrolling=3Dno></IFRAME>
<SCRIPT type=3Dtext/javascript>=0A=
        //<!--=0A=
            var tile_num;=0A=
            var condenetads_ord;=0A=
            if (typeof tile_num =3D=3D "undefined") { tile_num=3D1; } =
else { tile_num++; }=0A=
            if (typeof condenetads_ord =3D=3D "undefined") { =
condenetads_ord =3D Math.random()*10000000000000000;}=0A=
            dart["sz300x250"] =3D {placement:"sz=3D300x250;", =
dartCall:"wiredcom.dart/politics_article;kw=3Dpolitics;kw=3Dlaw;kw=3Dnews=
;kw=3D2001;kw=3D09;kw=3D47109;kw=3Dnull;kw=3Dtop;", dcopt:""};=0A=
            if (isSafari =3D=3D 'false'){dartRequest("sz300x250");};=0A=
        //-->=0A=
    </SCRIPT>

<DIV class=3Dmatchbook_bubble></DIV>
<SCRIPT language=3DJavaScript1.2=20
src=3D"http://www.wired.com/js/mostPopular.js"></SCRIPT>

<DIV id=3Dpopular_module>
<DIV class=3Dt_row2><!-- implement z-index -->
<DIV id=3Dmost_pop_tab><A =
onclick=3D"switchPopularTab('mostPopular');"><SPAN=20
class=3Dreplace>Most Popular</SPAN></A></DIV>
<DIV id=3Dmost_com_tab><A =
onclick=3D"switchPopularTab('mostCommented');"><SPAN=20
class=3Dreplace>Most Commented</SPAN></A></DIV>
<DIV id=3Dblank_tab></DIV></DIV>
<DIV class=3Dm_row>
<DIV class=3Dinner><!-- cache: cached =3D yes name =3D =
mostEmailed_jspCache key =3D mostpopular_xrail --><!-- hour, day, month, =
week, all -->
<OL id=3DmostPopular><SPAN class=3Dreplace>Popular Today on Wired</SPAN> =

  <LI><A=20
  =
href=3D"http://www.wired.com/gadgets/mac/multimedia/2008/06/gallery_iphon=
e_concept">From=20
  Mind-Blowing to Mockery =E2=80=94 The iPhone 2 Mocked Up</A>=20
  <LI><A=20
  =
href=3D"http://blog.wired.com/underwire/2008/06/iron-mans-repul.html">Iro=
n Man's=20
  Repulsors Might Set on The Mandarin for Sequel</A>=20
  <LI><A=20
  =
href=3D"http://blog.wired.com/cars/2008/06/portable-nav-da.html">http://b=
log.wired.com/cars/2008/06/portable-nav-da.html</A>=20

  <LI><A=20
  =
href=3D"http://blog.wired.com/27bstroke6/2008/06/hans-reiser-off.html">Ha=
ns=20
  Reiser Offers To Lead Cops to Nina's Body</A>=20
  <LI><A=20
  =
href=3D"http://blog.wired.com/defense/2008/06/russias-cans-of.html">Russi=
a's=20
  'Cans of Whup Ass' (Updated)</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/gadgets/wireless/news/2008/06/iphone_smartph=
ones">What's=20
  Good for Apple Is Better for Everyone Else</A>=20
  <LI><A=20
  =
href=3D"http://blog.wired.com/defense/2008/06/video-stealth-b.html">Video=
:=20
  Stealth Bomber Crashes</A>=20
  <LI><A =
href=3D"http://blog.wired.com/gadgets/2008/06/wwdc-2008.html">What's=20
  Coming at WWDC: New iPhone, New Apps and Snow Leopard</A>=20
  <LI><A =
href=3D"http://blog.wired.com/cars/2008/06/516-mile-range.html">516-Mile =

  Range In A Fuel Cell Vehicle You Can't Fuel</A>=20
  <LI><A=20
  =
href=3D"http://blog.wired.com/games/2008/06/where-is-the-wi.html">Opinion=
: MMOs=20
  Need a Wii</A> </LI></OL><!-- end cache --><!-- cache: cached =3D yes =
name =3D jspCache key =3D mostcommented_xrail --><!-- hour, day, month, =
week, all -->
<OL id=3DmostCommented><SPAN class=3Dreplace>Most Commented</SPAN>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/gadgets/wireless/news/2008/06/iphone_smartph=
ones">What's=20
  Good for Apple Is Better for Everyone Else</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/culture/art/magazine/16-06/pl_arts2">Prosthe=
tist=20
  Makes Extraterrestrial Life from Limbs</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/science/discoveries/multimedia/2008/06/galle=
ry_automat">A=20
  Century of Automated Food Service</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/gadgets/mac/multimedia/2008/06/gallery_iphon=
e_concept">From=20
  Mind-Blowing to Mockery =E2=80=94 The iPhone 2 Mocked Up</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/gadgets/wireless/news/2008/06/japan_phones">=
In=20
  Japan, Cellphones Have Become Too Complex to Use</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/entertainment/music/commentary/listeningpost=
/2006/02/70150">Stop=20
  Paying for Ring Tones</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/techbiz/media/magazine/16-06/ff_15th_rossett=
o">In a=20
  Letter to His Kids, <CITE>Wired</CITE>'s Founding Editor Recalls the =
Dawn of=20
  the Digital Revolution</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/techbiz/startups/news/2008/05/tributes">Mons=
ter.com=20
  Founder Starts Social Networking Site for the Dead</A>=20
  <LI><A=20
  =
href=3D"http://www.wired.com/politics/security/news/2008/05/tarnovsky">Fr=
om the=20
  Eye of a Legal Storm, Murdoch's Satellite-TV Hacker Tells All </A>
  <LI><A=20
  =
href=3D"http://www.wired.com/medtech/health/multimedia/2004/10/65438">Sli=
deshow:=20
  Is That a Pilot in Your Pocket?</A> </LI></OL><!-- end cache =
--></DIV></DIV>
<DIV class=3Db_row></DIV></DIV>
<DIV class=3Dmatchbook_bubble></DIV>
<DIV id=3Dmag_sub_promo><A=20
href=3D"https://w1.buysub.com/servlet/ConvertibleGateway?cds_mag_code=3DW=
IR&amp;cds_page_id=3D49179&amp;cds_response_key_gift=3DG8EIBAA1&amp;cds_r=
esponse_key=3DI8ENAAM7"=20
target=3D_blank><IMG=20
src=3D"http://www.wired.com/images/xrail/subscribe.gif"></A></DIV>
<DIV class=3Dmatchbook_bubble></DIV>
<DIV class=3Dscrape>
<DIV id=3Dservices>
<H3 id=3Dserv_mod_title><SPAN>Services</SPAN></H3>
<DIV class=3Dgroup><STRONG>Subscription: </STRONG><A=20
href=3D"https://w1.buysub.com/servlet/ConvertibleGateway?cds_mag_code=3DW=
IR&amp;cds_page_id=3D49179&amp;cds_response_key_gift=3DG8EIBAA1&amp;cds_r=
esponse_key=3DI8ENAAL4">Subscribe</A>=20
| <A=20
href=3D"https://w1.buysub.com/loc/WIR/WIR_subcenter_ros_gift">Give&nbsp;a=
&nbsp;Gift</A>=20
| <A=20
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659">Renew</A>=20
| <A=20
href=3D"https://w1.buysub.com/loc/WIR/WIR_subcenter_ros_intl">Internation=
al</A> |=20
<A=20
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659">Questions</A>=20
| <A=20
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659">Change&nbsp;Address</A></DIV>
<DIV class=3Dgroup><STRONG>Quick Links: </STRONG><A=20
href=3D"http://www.wired.com/services/feedback/general">Contact Us</A> | =
<A=20
id=3Dlogin_link =
href=3D"http://www.wired.com/user/login">Login/Register</A><A=20
id=3Dlogout_link href=3D"http://www.wired.com/user/logout">Logout</A> | =
<A=20
href=3D"http://www.wired.com/services/newsletters">Newsletter</A> | <A=20
href=3D"http://www.wired.com/services/rss/">RSS&nbsp;Feeds</A> | <A=20
href=3D"http://jobs.wired.com/">Tech&nbsp;Jobs</A> | <A=20
href=3D"http://www.wired.com/special_multimedia/mobile/">Wired&nbsp;Mobil=
e</A> |=20
<A href=3D"http://www.wired.com/services/faq">FAQ</A> | <A=20
href=3D"http://www.wired.com/services/sitemap/">Site&nbsp;Map</A></DIV>
<DIV class=3Dmatchbook_bubble=20
id=3Dmb_bottom></DIV></DIV></DIV><!-- end xrail --></DIV>
<DIV class=3Dclearer><!--  --></DIV>
<SCRIPT language=3Djavascript>=0A=
	var textPref =3D getCookie("style");=0A=
	var title =3D textPref ? textPref : getPreferredStyleSheet();=0A=
	setActiveStyleSheet(title);  =0A=
</SCRIPT>

<DIV id=3Dfooter>
<DIV id=3Dfoot_row1><SPAN class=3Dpad><SPAN class=3Dlink_row><A=20
href=3D"http://www.wired.com/services/corrections/">Corrections</A> | <A =

href=3D"http://www.wired.com/services/feedback/general">Contact Us</A> | =
<A=20
href=3D"http://www.wired.com/services/newsletters">Newsletter</A> | <A=20
href=3D"http://www.wired.com/services/staff/">Wired Staff</A> | <A=20
href=3D"http://www.wired.com/services/press/">Press Center</A> | <A=20
href=3D"http://www.wired.com/services/faq/">FAQ</A> | <A=20
href=3D"http://wiredinsider.com/">Wired Insider</A> | <!-- <a =
href=3D"/reprints">Reprints</a> | --><A=20
href=3D"http://www.wired.com/services/sitemap/">Sitemap</A> <SPAN=20
class=3Dlogin>|</SPAN> <A class=3Dlogin=20
href=3D"http://www.wired.com/services/members/">Login/Registration</A></S=
PAN>=20
<SPAN class=3Dtext_size id=3Dfooter_text_size_widget><IMG height=3D18=20
alt=3D"Text Size: " =
src=3D"http://www.wired.com/images/label_textsize.gif" width=3D50>=20
<A id=3Dsmall onclick=3D"setActiveStyleSheet('small'); return false;"=20
href=3D"http://www.wired.com/politics/law/news/2001/09/47109#"></A><A =
id=3Dnormal=20
onclick=3D"setActiveStyleSheet('normal'); return false;"=20
href=3D"http://www.wired.com/politics/law/news/2001/09/47109#"></A><A =
id=3Dlarge=20
onclick=3D"setActiveStyleSheet('large'); return false;"=20
href=3D"http://www.wired.com/politics/law/news/2001/09/47109#"></A><A =
id=3Dlargest=20
onclick=3D"setActiveStyleSheet('largest'); return false;"=20
href=3D"http://www.wired.com/politics/law/news/2001/09/47109#"></A></SPAN=
></SPAN></DIV>
<DIV id=3Dfoot_row2><SPAN class=3Dpad><SPAN class=3Dlink_row><A=20
href=3D"https://w1.buysub.com/loc/WIR/WIR_footernav_new"=20
target=3D_blank>Subscribe</A> | <A=20
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659"=20
target=3D_blank>Subscription Questions</A> | <A=20
href=3D"https://w1.buysub.com/servlet/CSGateway?cds_mag_code=3DWIR&amp;cd=
s_page_id=3D2659"=20
target=3D_blank>Renew Subscription</A> | <A=20
href=3D"https://w1.buysub.com/loc/WIR/WIR_footernav_gift" =
target=3D_blank>Give a=20
Gift</A> | <A href=3D"https://w1.buysub.com/loc/WIR/WIR_footernav_intl"=20
target=3D_blank>International Subscriptions</A> | <A=20
href=3D"http://www.condenet.com/contacts.html" =
target=3D_blank>Advertising</A> | <A=20
href=3D"http://condenastmediakit.com/wir/" target=3D_blank>Media Kit</A> =
| <A=20
href=3D"http://www.condenastcareers.com/" =
target=3D_blank>Careers</A></SPAN>=20
</SPAN></DIV>
<DIV id=3Dfoot_row3><SPAN class=3Dpad><STRONG>Visit Our Sister =
Sites:</STRONG> <SPAN=20
class=3Dlink_row><A href=3D"http://www.concierge.com/"=20
target=3D_blank>Concierge.com</A> | <A =
href=3D"http://www.epicurious.com/"=20
target=3D_blank>Epicurious.com</A> | <A href=3D"http://men.style.com/"=20
target=3D_blank>Men.style.com</A> | <A href=3D"http://www.style.com/"=20
target=3D_blank>Style.com</A> | <A href=3D"http://www.flip.com/"=20
target=3D_blank>Flip.com</A> | <A href=3D"http://www.wired.com/"=20
target=3D_blank>Wired.com</A> | <A href=3D"http://www.lipstick.com/"=20
target=3D_blank>Lipstick.com</A> | <A =
href=3D"http://www.nutritiondata.com/"=20
target=3D_blank>NutritionData</A> | <A href=3D"http://www.ym.com/"=20
target=3D_blank>YM.com</A> | <A href=3D"http://www.allure.com/"=20
target=3D_blank>Allure</A> | <A =
href=3D"http://www.architecturaldigest.com/"=20
target=3D_blank>Architectural Digest</A><BR><A =
href=3D"http://www.brides.com/"=20
target=3D_blank>Brides</A> | <A href=3D"http://www.cookiemag.com/"=20
target=3D_blank>Cookie</A> | <A href=3D"http://www.portfolio.com/"=20
target=3D_blank>Cond=C3=A9 Nast Portfolio</A> | <A =
href=3D"http://www.dominomag.com/"=20
target=3D_blank>Domino</A> | <A href=3D"http://www.glamour.com/"=20
target=3D_blank>Glamour</A> | <A href=3D"http://www.gourmet.com/"=20
target=3D_blank>Gourmet</A> | <A href=3D"http://www.luckymag.com/"=20
target=3D_blank>Lucky</A> | <A href=3D"http://www.mensvogue.com/"=20
target=3D_blank>Men's Vogue</A> | <A href=3D"http://www.self.com/"=20
target=3D_blank>Self</A> | <A href=3D"http://www.teenvogue.com/" =
target=3D_blank>Teen=20
Vogue</A> | <A href=3D"http://www.newyorker.com/" target=3D_blank>The =
New Yorker</A>=20
| <A href=3D"http://www.vanityfair.com/" target=3D_blank>Vanity Fair</A> =
| <A=20
href=3D"http://www.wmagazine.com/" target=3D_blank>W</A></SPAN>=20
<DIV id=3Dsuboffers>Subscribe to a magazine:=20
<UL id=3Dsuboffers_list>
  <LI id=3Dfirst><A=20
  =
href=3D"https://m1.buysub.com/webapp/wcs/stores/servlet/CategoryDisplay?c=
atalogId=3D11451&amp;storeId=3D11451&amp;categoryId=3D10484&amp;langId=3D=
-1&amp;sourcekey=3DILDN51SC"=20
  target=3D_blank>View Special Offers</A> </LI>
  <LI><A=20
  =
href=3D"https://m1.buysub.com/webapp/wcs/stores/servlet/CategoryDisplay?c=
atalogId=3D11451&amp;storeId=3D11451&amp;categoryId=3D10585&amp;langId=3D=
-1&amp;sourcekey=3DILDN51VA"=20
  target=3D_blank>View All Titles</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DALL&am=
p;cds_page_id=3D1209&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Allure</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DARD&am=
p;cds_page_id=3D405&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Architectural Digest</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DBNA&am=
p;cds_page_id=3D100&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Bon App=C3=A9tit</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DBRI&am=
p;cds_page_id=3D633&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Brides</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DFOL&am=
p;cds_page_id=3D30118&amp;cds_response_key=3DIRDNMUDD"=20
  target=3D_blank>Cond=C3=A9 Nast Portfolio</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DTVL&am=
p;cds_page_id=3D811&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Cond=C3=A9 Nast Traveler</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DKIE&am=
p;cds_page_id=3D24508&amp;cds_response_key=3DIRDNMUDD"=20
  target=3D_blank>Cookie</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DDET&am=
p;cds_page_id=3D1253&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Details</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DDNO&am=
p;cds_page_id=3D21347&amp;cds_response_key=3DIRDNMUDD"=20
  target=3D_blank>Domino</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DELG&am=
p;cds_page_id=3D16183&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Elegant Bride</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DGQM&am=
p;cds_page_id=3D976&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>GQ</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DGLM&am=
p;cds_page_id=3D956&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Glamour</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DGLF&am=
p;cds_page_id=3D17303&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Golf Digest</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DGWD&am=
p;cds_page_id=3D17323&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Golf World</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DGFW&am=
p;cds_page_id=3D17301&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Golf For Women</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DGMT&am=
p;cds_page_id=3D966&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Gourmet</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DLKY&am=
p;cds_page_id=3D799&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Lucky</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DMVG&am=
p;cds_page_id=3D26741&amp;cds_response_key=3DIRDNMUDD"=20
  target=3D_blank>Men's Vogue</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DMBD&am=
p;cds_page_id=3D12515&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Modern Bride</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DSLF&am=
p;cds_page_id=3D1231&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Self</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DTNV&am=
p;cds_page_id=3D26982&amp;cds_response_key=3DIRDNMUDD"=20
  target=3D_blank>Teen Vogue</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DNYR&am=
p;cds_page_id=3D12454&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>The New Yorker</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DVYF&am=
p;cds_page_id=3D2367&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Vanity Fair</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DVOG&am=
p;cds_page_id=3D1242&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>Vogue</A> </LI>
  <LI><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DWMG&am=
p;cds_page_id=3D3158&amp;cds_response_key=3DILDN51UD"=20
  target=3D_blank>W</A> </LI>
  <LI id=3Dlast><A=20
  =
href=3D"https://w1.buysub.com/servlet/OrdersGateway?cds_mag_code=3DWIR&am=
p;cds_page_id=3D22463&amp;cds_response_key=3DI2DNWTUD"=20
  target=3D_blank>Wired</A> </LI></UL></DIV><SPAN =
class=3Dcopyright>=C2=A9 2008 Cond=C3=A9Net,=20
Inc. All rights reserved.<BR>Use of this site constitutes acceptance of =
our <A=20
href=3D"http://www.wired.com/services/useragreement/">User Agreement</A> =
and <A=20
href=3D"http://www.wired.com/services/privacy/">Privacy =
Policy</A></SPAN>=20
</SPAN></DIV></DIV>
<DIV id=3DzagHolder>
<SCRIPT language=3DJavaScript1.1 type=3Dtext/javascript>=0A=
        //<!--=0A=
//            TrackingObject.setDomain("/js/stats/zag.js");=0A=
            TrackingObject.setStatus(200);=0A=
            TrackingObject.setNodeId("zagHolder");=0A=
            TrackingObject.drawTracking();=0A=
        //-->=0A=
    </SCRIPT>
</DIV></DIV><!-- close content div --></DIV><!-- close shell div -->
<SCRIPT src=3D"http://www.google-analytics.com/urchin.js"=20
type=3Dtext/javascript>=0A=
</SCRIPT>

<SCRIPT=20
type=3Dtext/javascript>=0A=
_uacct =3D "UA-2624369-1";=0A=
urchinTracker();=0A=
</SCRIPT>

<SCRIPT language=3Djavascript1.2 src=3D"http://www.wired.com/js/mbox.js" =

type=3Dtext/javascript></SCRIPT>

<DIV class=3DmboxDefault></DIV>
<SCRIPT language=3DJavaScript type=3Dtext/javascript>=0A=
mboxCreate('wired_time_spent');=0A=
</SCRIPT>

<SCRIPT type=3Dtext/javascript><!--=0A=
  collarity_appid=3D"wired";=0A=
// -->=0A=
</SCRIPT>

<SCRIPT src=3D"http://service.collarity.com/ucs/tracker.js"=20
type=3Dtext/javascript>=0A=
</SCRIPT>
</BODY></HTML>

------=_NextPart_001_017E_01C8CA55.7CD899E0
Content-Type: text/css;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.reddit.com/button_content?t=1&url=http%3A%2F%2Fwww.wired.com%2Fpolitics%2Flaw%2Fnews%2F2001%2F09%2F47109&title=How%20Osama%20Cracked%20FBI's%20Top%2010&css=http%3A%2F%2Fwww.wired.com%2Fcss%2Fredditsocial.css

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den-us xml:lang=3D"en-us"=20
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>reddit.com: what's =
new online!</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3DUTF-8">
<SCRIPT type=3Dtext/javascript>=0A=
  var a =3D new Image();=0A=
  a.src =3D "/static/aupmod.png";=0A=
  var b =3D new Image();=0A=
  b.src =3D "/static/adownmod.png";=0A=
  var vl =3D {};=0A=
  var sr =3D {};=0A=
=0A=
  var logged =3D false;=0A=
  var post_site =3D " reddit.com";=0A=
  var modhash =3D '';=0A=
</SCRIPT>

<SCRIPT=20
src=3D"http://www.reddit.com/static/vote.js?v=3D1d93a1c2e2dd17c4f9dd4a466=
11ab71b"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
type=3Dtext/javascript>=0A=
    function showcover() { show("cover"); }=0A=
  </SCRIPT>
<LINK=20
href=3D"http://www.reddit.com/static/reddit.css?v=3Dd4354236fa730d11409d5=
4a2f6689903"=20
type=3Dtext/css rel=3Dstylesheet><LINK=20
href=3D"http://www.wired.com/css/redditsocial.css" type=3Dtext/css =
rel=3Dstylesheet>
<SCRIPT type=3Dtext/javascript>=0A=
  =0A=
=0A=
</SCRIPT>

<META content=3D"MSHTML 6.00.6001.18023" name=3DGENERATOR></HEAD>
<BODY>
<DIV class=3Dbutton>
<DIV id=3Dcover style=3D"DISPLAY: none">
<DIV class=3Dcover></DIV>
<DIV id=3Dpopup><A=20
href=3D"http://reddit.com/submit?url=3Dhttp%3A%2F%2Fwww.wired.com%2Fpolit=
ics%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Cracked+FBI%27=
s+Top+10"=20
target=3D_parent>please login</A> </DIV></DIV>
<DIV class=3D"blog blog1">
<DIV class=3Dheadimgcell><A=20
href=3D"http://reddit.com/submit?url=3Dhttp%3A%2F%2Fwww.wired.com%2Fpolit=
ics%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Cracked+FBI%27=
s+Top+10"=20
target=3D_parent><IMG alt=3D"" =
src=3D"http://www.reddit.com/static/blog_head.png">=20
</A></DIV><A=20
href=3D"http://reddit.com/submit?url=3Dhttp%3A%2F%2Fwww.wired.com%2Fpolit=
ics%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Cracked+FBI%27=
s+Top+10"=20
target=3D_parent>submit</A>=20
<DIV class=3Dclear></DIV></DIV></DIV></BODY></HTML>

------=_NextPart_001_017E_01C8CA55.7CD899E0--

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://digg.com/img/digg-it-tiny-submit.gif

R0lGODlhJgAQALMAANjRn/foqvr12/zzyOnitv////740f750/HmmfLnmpWMRP740wAAAAAAAAAA
AAAAACH5BAAAAAAALAAAAAAmABAAAASqsIiAUKrXps17vh22VUIyGMuxpOuCrmoaw+nbskkw3Hzv
/7yNDbhQEI+bY8uoNDJbSWVRSpi2DJcWQMG1TrlcQJFLCH+7qsvr6XWuylamm72wxMztvHw1vxos
NltufHqEX14rFUNbhQtwe4dPB1gIS2aCXWAKYpBugi0VM1KjLZNJoqVXNKIqKiitLwMBCag3Bjao
rTAvBpMLAwklGh8gFRbDHhjIGgECBREAOw==

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://digg.com/js/111/omnidiggthis.js

=0A=
var s=3Ds_gi(s_account)=0A=
s.currencyCode=3D"USD"=0A=
s.trackDownloadLinks=3Dtrue=0A=
s.trackExternalLinks=3Dtrue=0A=
s.trackInlineStats=3Dtrue=0A=
s.linkDownloadFileTypes=3D"exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls"=0A=
s.linkInternalFilters=3D"javascript:,digg.com,digg.internal,diggriver.com=
"=0A=
s.linkLeaveQueryString=3Dfalse=0A=
s.linkTrackVars=3D"None"=0A=
s.linkTrackEvents=3D"None"=0A=
s.visitorSampling=3D5=0A=
s.visitorSamplingGroup=3D"1"=0A=
s.usePlugins=3Dtrue=0A=
function s_doPlugins(s){if(!s.campaign)=0A=
s.campaign=3Ds.getQueryParam('cmpid')=0A=
s.campaign=3Ds.getValOnce(s.campaign,'s_campaign',0)=0A=
if(s.prop1){s.prop1=3Ds.prop1.toLowerCase();s.eVar1=3Ds.prop1;var =
t_search=3Ds.getValOnce(s.eVar1,'ev1',0);if(t_search){s.events=3Ds.apl(s.=
events,"event1",",",2);}}=0A=
s.events=3Ds.apl(s.events,'event2',',',2)=0A=
s.prop11=3Ds.getTimeParting('h','-5','2008');s.prop12=3Ds.getTimeParting(=
'd','-5','2008');s.prop13=3Ds.getTimeParting('w','-5','2008');if(s.prop6&=
&!s.eVar6)s.eVar6=3Ds.prop6;if(s.prop7&&!s.eVar7)s.eVar7=3Ds.prop7;if(s.p=
rop8&&!s.eVar8)s.eVar8=3Ds.prop8;if(s.prop9&&!s.eVar9)s.eVar9=3Ds.prop9;i=
f(s.prop10&&!s.eVar10)s.eVar10=3Ds.prop10;if(s.prop11&&!s.eVar11)s.eVar11=
=3Ds.prop11;if(s.prop12&&!s.eVar12)s.eVar12=3Ds.prop12;if(s.prop13&&!s.eV=
ar13)s.eVar13=3Ds.prop13;if(s.pageName&&!s.eVar19)s.eVar19=3Ds.pageName;i=
f(s.channel&&!s.eVar20)s.eVar20=3Ds.channel;if(s.prop21&&!s.eVar21)s.eVar=
21=3Ds.prop21;if(s.prop22&&!s.eVar22)s.eVar22=3Ds.prop22;if(s.prop23&&!s.=
eVar23)s.eVar23=3Ds.prop23;if(s.prop24&&!s.eVar24)s.eVar24=3Ds.prop24;if(=
s.eVar5&&!s.prop5)s.prop5=3Ds.eVar5;}=0A=
s.doPlugins=3Ds_doPlugins=0A=
s.getQueryParam=3Dnew Function("p","d","u",""=0A=
+"var =
s=3Dthis,v=3D'',i,t;d=3Dd?d:'';u=3Du?u:(s.pageURL?s.pageURL:s.wd.locati"=0A=
+"on);if(u=3D=3D'f')u=3Ds.gtfs().location;while(p){i=3Dp.indexOf(',');i=3D=
i<0?p"=0A=
+".length:i;t=3Ds.p_gpv(p.substring(0,i),u+'');if(t)v+=3Dv?d+t:t;p=3Dp.su=
bs"=0A=
+"tring(i=3D=3Dp.length?i:i+1)}return v");s.p_gpv=3Dnew =
Function("k","u",""=0A=
+"var =
s=3Dthis,v=3D'',i=3Du.indexOf('?'),q;if(k&&i>-1){q=3Du.substring(i+1);v"=0A=
+"=3Ds.pt(q,'&','p_gvf',k)}return v");s.p_gvf=3Dnew Function("t","k",""=0A=
+"if(t){var =
s=3Dthis,i=3Dt.indexOf('=3D'),p=3Di<0?t:t.substring(0,i),v=3Di<0?'T"=0A=
+"rue':t.substring(i+1);if(p.toLowerCase()=3D=3Dk.toLowerCase())return =
s."=0A=
+"epa(v)}return ''");s.getValOnce=3Dnew Function("v","c","e",""=0A=
+"var s=3Dthis,k=3Ds.c_r(c),a=3Dnew =
Date;e=3De?e:0;if(v){a.setTime(a.getTime("=0A=
+")+e*86400000);s.c_w(c,v,e?a:0);}return =
v=3D=3Dk?'':v");s.getTimeParting=3Dnew Function("t","z","y",""=0A=
+"dc=3Dnew Date('1/1/2000');f=3D15;ne=3D8;if(dc.getDay()!=3D6||"=0A=
+"dc.getMonth()!=3D0){return'Data Not Available'}else{;z=3DparseInt(z);"=0A=
+"if(y=3D=3D'2009'){f=3D8;ne=3D1};gmar=3Dnew =
Date('3/1/'+y);dsts=3Df-gmar.getDay("=0A=
+");gnov=3Dnew Date('11/1/'+y);dste=3Dne-gnov.getDay();spr=3Dnew =
Date('3/'"=0A=
+"+dsts+'/'+y);fl=3Dnew Date('11/'+dste+'/'+y);cd=3Dnew Date();"=0A=
+"if(cd>spr&&cd<fl){z=3Dz+1}else{z=3Dz};utc=3Dcd.getTime()+(cd.getTimezon=
eO"=0A=
+"ffset()*60000);tz=3Dnew Date(utc + =
(3600000*z));thisy=3Dtz.getFullYear("=0A=
+");var days=3D['Sunday','Monday','Tuesday','Wednesday','Thursday','Fr"=0A=
+"iday','Saturday'];if(thisy!=3Dy){return'Data Not Available'}else{;thi"=0A=
+"sh=3Dtz.getHours();thismin=3Dtz.getMinutes();thisd=3Dtz.getDay();var =
dow=3D"=0A=
+"days[thisd];var ap=3D'AM';var dt=3D'Weekday';var =
mint=3D'00';if(thismin>3"=0A=
+"0){mint=3D'30'}if(thish>=3D12){ap=3D'PM';thish=3Dthish-12};if =
(thish=3D=3D0){th"=0A=
+"ish=3D12};if(thisd=3D=3D6||thisd=3D=3D0){dt=3D'Weekend'};var =
timestring=3Dthish+'"=0A=
+":'+mint+ap;var daystring=3Ddow;var =
endstring=3Ddt;if(t=3D=3D'h'){return tim"=0A=
+"estring}if(t=3D=3D'd'){return daystring};if(t=3D=3D'w'){return en"=0A=
+"dstring}}};");s.apl=3Dnew Function("L","v","d","u",""=0A=
+"var s=3Dthis,m=3D0;if(!L)L=3D'';if(u){var =
i,n,a=3Ds.split(L,d);for(i=3D0;i<a."=0A=
+"length;i++){n=3Da[i];m=3Dm||(u=3D=3D1?(n=3D=3Dv):(n.toLowerCase()=3D=3D=
v.toLowerCas"=0A=
+"e()));}}if(!m)L=3DL?L+d+v:v;return L");s.split=3Dnew =
Function("l","d",""=0A=
+"var i,x=3D0,a=3Dnew =
Array;while(l){i=3Dl.indexOf(d);i=3Di>-1?i:l.length;a[x"=0A=
+"++]=3Dl.substring(0,i);l=3Dl.substring(i+d.length);}return =
a");s.visitorNamespace=3D"digg"=0A=
s.dc=3D112=0A=
s.vmk=3D"48384D5F";s.trackingServer=3D"z.digg.com";var =
s_code=3D'',s_objectID;function s_gi(un,pg,ss){var d=3D"function s_dr"=0A=
+"(x,o,n){var =
i=3Dx.indexOf(o);if(i>=3D0&&x.split)x=3D(x.split(o)).join(n);"=0A=
+"else =
while(i>=3D0){x=3Dx.substring(0,i)+n+x.substring(i+o.length);i=3Dx.i"=0A=
+"ndexOf(o)}return x}w.s_dr=3Ds_dr;function s_d(x) {var =
t=3D'`^@$#',l=3D'01"=0A=
+"23456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',d,n=3D0"=0A=
+",b,k,w,i=3Dx.lastIndexOf('~~');if(i>0){d=3Dx.substring(0,i);x=3Dx.subst=
ri"=0A=
+"ng(i+2);while(d){w=3Dd;i=3Dd.indexOf('~');if(i>0){w=3Dd.substring(0,i);=
d=3D"=0A=
+"d.substring(i+1)}else =
d=3D'';b=3DparseInt(n/62);k=3Dn-b*62;k=3Dt.substring("=0A=
+"b,b+1)+l.substring(k,k+1);x=3Ds_dr(x,k,w);n++}for(i=3D0;i<5;i++){w=3Dt.=
su"=0A=
+"bstring(i,i+1);x=3Ds_dr(x,w+' ',w)}}return =
x}w.s_d=3Ds_d;",c=3D".substrin"=0A=
+"g(~.indexOf(~return ~=3Dfun`K(~){`Os=3D^u~`t =
$6~;$6~.toLowerCase()~`cFu"=0A=
+"n`K('e`s`Os=3Ds_c_il['+@i+']~};s.~.length~.toUpperCase~`cObject~s.wd~"=0A=
+"t^D~.location~')q=3D'~dynamicAccount~link~s.apv~ction~$l$X~)$6x^X!Obj"=0A=
+"ect||!Object.prototype||!Object.prototype[x])~@G^Al)@G^Al['+@i+'].m"=0A=
+"rq(\"'+un+'\")'~var ~s.pt(~ookieDomainPeriods~,`s,'~while(~);s.~.pr"=0A=
+"otocol~){$6~visitor~=3D''~:'')~;@F^Vs[k],255)}~s_c2f~javaEnabled~=3Dnew=
"=0A=
+" ~.lastIndexOf('~tm.get~@5\"$Qs.b.addBehavior('# default# ~onclick~"=0A=
+"ternalFilters~entElement~Name~javascriptVersion~=3DparseFloat(~cookie"=0A=
+"~parseInt(~s.^J~Type~o^joid~browser~','~else~referrer~colorDepth~St"=0A=
+"ring~.host~s.rep(~}catch(e){~r=3Ds.m(f)?s[f](~}$6~s.un~s.eo~s.sq~t=3Ds.=
"=0A=
+"ot(o)~track~j=3D'1.~)?'Y':'N'~$dURL~^jc_i~s.ismac~lugins~=3D=3D'~;for(~=
Sa"=0A=
+"mpling~s.rc[un]~s.b.addEventListener~Download~tfs~resolution~.get@I"=0A=
+"()~s.eh~s.isie~s.vl_l~s.vl_t~Height~t,h){t=3Dt?t~isopera~escape(~scre"=0A=
+"en.~s.fl(~harCode~&&(~variableProvider~s.gg('objectID')~&&s.~:'';h=3D"=0A=
+"h?h~e&&l$kSESSION'~');~f',~_'+~Date~name~home$d~.s_~s.c_r(~s.rl[u~o"=0A=
+".href~Lifetime~Width~sEnabled~'){q=3D'~b.attachEvent~&&l$kNONE'){~Ext"=0A=
+"ernalLinks~this~charSet~onerror~currencyCode~s=3Ds_gi(~e$SElement~;s."=0A=
+"gl(s.vl_g~.parent~Array~lnk~Opera~eval(~Math.~s.fsg~s.ns6~docum~s.o"=0A=
+"un~conne~InlineStats~Track~'0123456789~s[k]=3D~window~onload~Time~s.e"=0A=
+"pa(~s.c_w(~o.type~(s.ssl~n=3Ds.oid(o)~LeaveQuery~')>=3D~&&t~'=3D')~){n=3D=
~+"=0A=
+"1))~' '+~s.t()}~\",''),~=3Ds.oh(o);~+(y<1900?~ingServer~s_gs~true~ses"=0A=
+"s~campaign~lif~;fun~,100)~s.co(~s._in~x in ~=3D's_~ffset~s.c_d~'&pe~s"=0A=
+".gv(~s.qav~s.pl~=3D(apn~sqs',q);~Year(~=3Ds.n.app~&&!~(''+~(\")>=3D~)+'=
/~"=0A=
+"',s~s()+':'+~){p=3D~():''~a):f(~){v=3Ds.n.~channel~if(~un)~.target~o.va=
"=0A=
+"lue~etscape~(ns?ns:~s_')t=3Dt~omePage~++}~')<~){x~1);~e))~'+n~height~"=0A=
+"events~trk~random~code~un,~try{~'MSIE ~.src~INPUT'~floor(~s.pg~s.nu"=0A=
+"m(~s.ape(~s.c_gd~s.dc~.inner~transa~Events~page~.set~Group,~Match,~"=0A=
+".fromC~++){~?'':~!=3D'~=3D'+~(\")<~?'&~+';~(f){~>=3D5)~&&i>~[b](~=3Dl[n=
];~~"=0A=
+"fun`K =
`ae$p`Ox`X,s=3D0,e,a,b,c;`S1){e=3Df`1'\"@z);b=3Df`1'\\\\',s);c=3Df`1"=0A=
+"\"\\n\",s)`6e<0||(b>=3D0&&b<$Ie=3Db`6e<0||(c>=3D0&&c<$Ie=3Dc`6e>=3D0$G+=
=3D(e>s?"=0A=
+"f`0s,e)`Y+(e=3D=3Dc?'\\\\n':'\\\\'+f`0e,e@T;s=3De+1}`t =
`2x+f`0s)}`2f}w.`a"=0A=
+"e=3D`ae@f`K =
`aa$p`Os=3Df`1'(')+1,e=3Df`1')'),a`X,c;`Ss>=3D0&&s<e){c=3Df`0s,s+"=0A=
+"1)`6c=3D=3D`s)a+=3D'\",\"';`5(\"\\n\\r\\t =
\")`1c)<0)a+=3Dc;s$E`2a?'\"'+a+'"=0A=
+"\"':a}w.`aa=3D`ae@f`K =
`a(cc){cc`X+cc;`Ofc=3D'`Of`cFun`K(@z=3Dcc`1';',cc`1"=0A=
+"'{')),e=3Dcc`d}'),o,a,d,q,c,f,h,x;fc+=3D`aa(cc)+',\"`Os`C;';c=3Dcc`0s+1=
,e"=0A=
+");s=3Dc`1'fun`K^d`Ss>=3D0){d=3D1;q`X;x=3D0;f=3Dc`0s);a=3D`aa(f);e=3Do=3D=
c`1'{@z);e+"=0A=
+"+;`Sd>0){h=3Dc`0e,e+1)`6q`Vh=3D=3Dq@vx)q`X`6h^D\\\\')x=3Dx?0:1;`t =
x=3D0}`t{$6"=0A=
+"h^D\"'||h=3D=3D\"'\")q=3Dh`6h^D{')d++`6h^D}')d--^1d>0)e$Ec=3Dc`00,s)+'n=
ew F"=0A=
+"un`K('+(a?a+`s`Y+'\"'+`ae(c`0o+1,$I+'\")'+c`0e+$Hs=3Dc`1'fun`K')}fc+=3D=
"=0A=
+"`ae(c)$o`2s\");';@5fc);`2f}w.`a=3D`a`6pg){fun`K s_co(o){`O^y\"_\",1,$"=0A=
+"H`2@ho)}w^jco=3Ds_co@f`K @a($7{`O^y$P1,$H`2@Vw^jgs=3D@a@f`K =
s_dc($7{`O^"=0A=
+"y$P$H`2@Vw^jdc=3Ds_dc;}fun`K =
s_c($Ppg,ss`4;s._c@kc';`D=3D@G`6!`D^An){`D"=0A=
+"^Al`c@2;`D^An=3D0;}s._il=3D`D^Al;@i=3D`D^An;s._il[@i]=3Ds;`D^An++;s.m`3=
m){`"=0A=
+"2@wm)`1'{$F0`9fl`3x,l){`2x?@wx)`00,l):x`9co`3o`V!o)`2o;`On`C,x^E@jo"=0A=
+")$6x`1'select$F0&&x`1'filter$F0)n[x]=3Do[x];`2n`9num`3x$G`X+x^E`Op=3D0;=
"=0A=
+"p<x`A;p++)$6(@E')`1x`0p,p@T<0)`20;`21`9rep`3x,o,n){`Oi=3Dx`1o);`Sx$r=3D=
"=0A=
+"0$G=3Dx`00,i)+n+x`0i+o`A);i=3Dx`1o,i+n`A)}`2x`9ape`3x`4,h=3D@EABCDEF',i=
,c"=0A=
+"=3Ds.^v,n,l,e,y`X;c=3Dc?c`B$2`6x$G`X+x`6c^DAUTO'^X'').c^WAt){for(i=3D0;=
i<"=0A=
+"x`A;i$ic=3Dx`0i,i+$Hn=3Dx.c^WAt(i)`6n>127){l=3D0;e`X;`Sn||l<4){e=3Dh`0n=
%16,"=0A=
+"n%16+1)+e;n=3D`nn/16);l$Ey+=3D'%u'+e}`5c^D+')y+=3D'%2B';`t =
y+=3D^Tc)}x=3Dy}`t"=0A=
+"{x=3Dx?`y^T''+x),'+`s%2B'):x`6x&&c^aem=3D=3D1&&x`1'%u$F0&&x`1'%U$F0){i=3D=
x`"=0A=
+"1'%^d`Si>=3D0){i++`6h`08)`1x`0i,i+1)`B())>=3D0)`2x`00,i)+'u00'+x`0i);i=3D=
"=0A=
+"x`1'%',i)}}}}`2x`9epa`3x`4;`2x?un^T`y''+x,'+`s ')):x`9pt`3x,d,f,a`4"=0A=
+",t=3Dx,z=3D0,y,r;`St){y=3Dt`1d);y=3Dy<0?t`A:y;t=3Dt`00,y);^0t,$3t,a)`6r=
)`2r;z"=0A=
+"+=3Dy+d`A;t=3Dx`0z,x`A);t=3Dz<x`A?t:''}`2''`9isf`3t,a){`Oc=3Da`1':')`6c=
>=3D0)"=0A=
+"a=3Da`00,c)`6t`00,2)^D$C`02);`2(t!`X@Q=3D=3Da)`9fsf`3t,a`4`6`Pa`Ris^et)=
)@"=0A=
+"7+=3D(@7!`X?`s`Y+t;`20`9fs`3x,f`4;@7`X;`Px`Rfs^ef);`2@7`9c_d`X;$Yf`3t"=0A=
+",a`4`6!$Wt))`21;`20`9c_gd`3`4,d=3D`D`F`x^h,n=3Ds.fpC`Q,p`6!n)n=3Ds.c`Q`=
6d"=0A=
+"@v@m@Sn?`nn):2;n=3Dn>2?n:2;p=3Dd`d.')`6p>=3D0){`Sp>=3D0&&n>1$1d`d.',p-$=
Hn--"=0A=
+"}@m=3Dp>0&&`Pd,'.`sc_gd^e0)?d`0p):d}}`2@m`9c_r`3k`4;k=3D$Xk);`Oc=3D@Us.=
d."=0A=
+"`m,i=3Dc`1@Uk+@R,e=3Di<0?i:c`1';',i),v=3Di<0$j@Jc`0i+2+k`A,e<0?c`A:$I;`=
2v"=0A=
+"$k[[B]]'?v:''`9c_w`3k,v,e`4,d=3D$Y(),l=3Ds.`m^n,t;v`X+v;l=3Dl?@wl)`B$2`=
6^"=0A=
+"c^st=3D(v!`X?`nl?l:0):-60)`6t){e`c^g;e$e@I(e^L+(t*1000))}^1k^ss.d.`m=3D=
"=0A=
+"k+'`Lv!`X?v:'[[B]]')$o path=3D/;'+(^c?' expires$le.toGMT`w()$o'`Y+(d?"=0A=
+"' =
domain$ld$o'`Y;`2^kk)=3D=3Dv}`20`9eh`3o,e,r,f`4,b=3D's^fe+'^f@i,n=3D-1,l,=
"=0A=
+"i,x`6!^Ml)^Ml`c@2;l=3D^Ml^Ei=3D0;i<l`A&&n<0;i++`Vl[i].o=3D=3Do&&l[i].e=3D=
=3De)n"=0A=
+"=3Di^1n<0@Si;l[n]`C}x$tx.o=3Do;x.e=3De;f=3Dr?x.b:f`6r||f$G.b=3Dr?0:o[e]=
;x.o[e"=0A=
+"]=3Df^1x.b$G.o[b]=3Dx.b;`2b}`20`9cet`3f,a,t,o,b`4,r`6`J>=3D5^X!s.^S||`J=
>=3D"=0A=
+"7))@5'$Q^0$3a)`zr=3Ds.m(t)?s[t](e):t(e)}^d`t{$6^B^au`1$R4@P0)r=3Ds.m(b)=
"=0A=
+"?s$sa):b(a);`t{^M(`D,'^w',0,o);^0$3a`Teh(`D,'^w',1)}}`2r`9g^Jet`3e`"=0A=
+"4;`2`o`9g^Joe`8;^M(@G,\"^w\",1`Te^J=3D1;`Oc=3Ds.t()`6c)s.d.write(c`Te^J=
"=0A=
+"=3D0;`2@b'`Tg^Jfb`3a){`2@G`9g^Jf`3w`4,p=3Dw@1,l=3Dw`F;`o=3Dw`6p&&p`F!=3D=
l&&p`"=0A=
+"F`x=3D=3Dl`x){`o=3Dp;`2s.g^Jf(`o)}`2`o`9g^J`3`4`6!`o){`o=3D`D`6!s.e^J)`=
o=3Ds."=0A=
+"cet('g^J^e`o,'g^Jet@z.g^Joe,'g^Jfb')}`2`o`9mrq`3u`4,l=3D^l],n,r;^l]=3D0=
"=0A=
+"`6l)for(n=3D0;n<l`A;n$ir$ts.mr(0,0,r.t,r.u,r.r)}`9mr`3@c,q,ta,u,rs`4,"=0A=
+"dc=3D$Z,t1=3Ds.^6@Z,t2=3Ds.^6@ZSecure,ns=3Ds.`W`jspace,un=3Du?u:$Bs.f$7=
,unc=3D`"=0A=
+"y$P'_`s-'),r`C,l,imn@ki^f($7,im,b,e`6!rs){rs=3D'http'+@M?'s'`Y+'://'+"=0A=
+"(t1?@M@Q2?t2:t1):($B@M?'102':unc))+'.'+($Z?$Z:112)+'.2o7.net')@yb/s"=0A=
+"s/'+^2+'/1/H.14/'+@c+'?[AQB]&ndh=3D1'+(q?q`Y+'&[AQE]'`6^N@v^B`V`J>5.5"=0A=
+")rs=3D^Vrs,4095);`t =
rs=3D^Vrs,2047)}^1s.d.images&&`J>=3D3^X!s.^S||`J>=3D7)^"=0A=
+"X@8<0||`J>=3D6.1)`V!s.rc)s.rc`C`6!^G){^G=3D1`6!s.rl)s.rl`C;^ln]`c@2;set=
"=0A=
+"@Iout('$6`N,750)}`t{l=3D^ln]`6l){r.t=3Dta;r.u=3Dun;r.r=3Drs;l[l`A]=3Dr;=
`2''}i"=0A=
+"mn+=3D'^f^G;^G$Eim=3D`D[imn]`6!im)im=3D`D[imn]`cImage;im^jl=3D0;im.@H`c=
Fun`"=0A=
+"K('e`s^u^jl=3D1`6`N);im$S=3Drs`6rs`1@n=3D@P0^X!ta||ta^D_self'||ta^D_top=
'|"=0A=
+"|(`D.^h@Qa=3D=3D`D.^h))){b=3De`c^g;`S!im^jl&&e^L-b^L<500)e`c^g}`2''}`2'=
<i"=0A=
+"m'+'g sr'+'c=3D\"'+rs+'\" width=3D1 $K=3D1 border=3D0 =
alt=3D\"\">'`9gg`3v`4`6"=0A=
+"!`D['s^fv])`D['s^fv]`X;`2`D['s^fv]`9glf`3t,a`Vt`00,2)^D$C`02);`Os=3D^"=0A=
+"u,v=3Ds.gg(t)`6v)s[t]=3Dv`9gl`3v`4`6$V)`Pv`Rgl^e0)`9gv`3v`4;`2s['vpm^fv=
"=0A=
+"]?s['vpv^fv]:(s[v]?s[v]`Y`9havf`3t,a`4,b=3Dt`00,4),x=3Dt`04),n=3D`nx),k=
=3D'"=0A=
+"g^ft,m=3D'vpm^ft,q=3Dt,v=3Ds.`I@DVars,e=3Ds.`I@D$c;@F@ot)`6s.@3||^3){v=3D=
v?v+"=0A=
+"`s+^O+`s+^O2:''`6v@v`Pv`Ris^et))s[k]`X`6`E$L'&&e)@Fs.fs(s[k],e)}s[m"=0A=
+"]=3D0`6`E`WID`Gvid';`5`E^9^qg'`Z`5`E`u^qr'`Z`5`Evmk`Gvmt';`5`E^v^qce'"=0A=
+"`6s[k]&&s[k]`B()^DAUTO')@F'ISO8859-1';`5s[k]^aem=3D=3D2)@F'UTF-8'}`5`E`=
"=0A=
+"W`jspace`Gns';`5`Ec`Q`Gcdp';`5`E`m^n`Gcl';`5`E^Y`Gvvp';`5`E^x`Gcc';"=0A=
+"`5`E$5`Gch';`5`E$b`KID`Gxact';`5`E@d`Gv0';`5`E^K`Gs';`5`E`v`Gc';`5`"=0A=
+"E`k`Gj';`5`E`b`Gv';`5`E`m^p`Gk';`5`E`r^o`Gbw';`5`E`r^Q`Gbh';`5`E@B`"=0A=
+"K`p`Gct';`5`E^i`Ghp';`5`Ep^C`Gp';`5$Wx)`Vb^Dprop`Gc$J;`5b^DeVar`Gv$"=0A=
+"J;`5b^Dhier^qh$J`Z^1s[k]@Q$k`I`j'@Q$k`I`p')@p+=3D'&'+q+'`Ls[k]);`2''`"=0A=
+"9hav`3`4;@p`X;`P^P`Rhav^e0);`2@p`9lnf`3^R`7^b`7:'';`Ote=3Dt`1@R`6t@Qe"=0A=
+">0&&h`1t`0te@T>=3D0)`2t`00,te);`2''`9ln`3h`4,n=3Ds.`I`js`6n)`2`Pn`Rln^e=
"=0A=
+"h);`2''`9ltdf`3^R`7^b`7:'';`Oqi=3Dh`1'?^dh=3Dqi>=3D0?h`00,qi):h`6t&&h`0=
h`"=0A=
+"A-(t`A@T^D.'+t)`21;`20`9ltef`3^R`7^b`7:''`6t&&h`1t)>=3D0)`21;`20`9lt`"=0A=
+"3h`4,lft=3Ds.`I^IFile`ps,lef=3Ds.`IEx`h,@e=3Ds.`IIn`h;@e=3D@e?@e:`D`F`x=
^h;h"=0A=
+"=3Dh`7`6s.^6^ILinks&&lft&&`Plft`Rltd^eh))`2'd'`6s.^6^t^Xlef||@e)^X!le"=0A=
+"f||`Plef`Rlte^eh))^X!@e||!`P@e`Rlte^eh)))`2'e';`2''`9lc`8,b=3D^M(^u,"=0A=
+"\"`g\"`T@3=3D@h^u`Tt(`T@3=3D0`6b)`2^u$se);`2@b'`Tbc`8,f`6s.d^ad.all^ad.=
"=0A=
+"all.cppXYctnr)return;^3=3D^z?^z:e$8;@5\"$Q$6^3^X^3.tag`j||^3.par`i||^"=0A=
+"3@1Nod$I@Vcatch$p}\"`Teo=3D0'`Toh`3o`4,l=3D`D`F,h=3D^m?^m:'',i,j,k,p;i=3D=
h`"=0A=
+"1':^dj=3Dh`1'?^dk=3Dh`1'/')`6h^Xi<0||(j>=3D0$rj)||(k>=3D0$rk))$1o`U&&o`=
U`A>"=0A=
+"1?o`U:(l`U?l`U`Y;i=3Dl.path^h`d/^dh=3D(p?p+'//'`Y+(o`x?o`x:(l`x?l`x`Y)+=
"=0A=
+"(h`00,1)$k/'?l.path^h`00,i<0?0:i@y'`Y+h}`2h`9ot`3o){`Ot=3Do.tag`j;t=3Dt=
"=0A=
+"@Q`B?t`B$2`6`ESHAPE')t`X`6t`V`E$T&&@L&&@L`B)t=3D@L`B();`5^m)t=3D'A';}`2=
"=0A=
+"t`9oid`3o`4,^5,p,c,n`X,x=3D0`6t@v`q$1o`U;c=3Do.`g`6^m^X`EA'||`EAREA')^X=
"=0A=
+"!c||!p||p`7`1'javascript$F0))n@X`5c@S`ys.rep(`ys.rep@wc,\"\\r@W\"\\"=0A=
+"n@W\"\\t@W' =
`s^dx=3D2}`5$9^X`E$T||`ESUBMIT')@S$9;x=3D3}`5o$S&&`EIMAGE')"=0A=
+"n=3Do$S`6n){`q=3D^Vn@g;`qt=3Dx}}`2`q`9rqf`3t,un`4,e=3Dt`1@R,u=3De>=3D0?=
`s+t`00,"=0A=
+"e)+`s:'';`2u&&u`1`s+un+`s)>=3D0?@Jt`0e@T:''`9rq`3un`4,c=3Dun`1`s),v=3D^=
k'"=0A=
+"s_sq'),q`X`6c<0)`2`Pv,'&`srq^e$7;`2`Pun`Rrq',0)`9sqp`3t,a`4,e=3Dt`1@R"=0A=
+",q=3De<0$j@Jt`0e+1)`Tsqq[q]`X`6e>=3D0)`Pt`00,e)`R@s`20`9sqs`3$Pq`4;^4u[=
"=0A=
+"un]=3Dq;`20`9sq`3q`4,k@ksq',v=3D^kk),x,c=3D0;^4q`C;^4u`C;^4q[q]`X;`Pv,'=
&`"=0A=
+"ssqp',0);`P^2`R@sv`X^E@j^4u`M)^4q[^4u[x]]+=3D(^4q[^4u[x]]?`s`Y+x^E@j^"=0A=
+"4q`M&&^4q[x]^Xx=3D=3Dq||c<2)){v+=3D(v$n'`Y+^4q[x]+'`Lx);c$E`2@Kk,v,0)`9=
wd"=0A=
+"l`8,r=3D@b,b=3D^M(`D,\"@H\"),i,o,oc`6b)r=3D^u$se)^Ei=3D0;i<s.d.`Is`A;i$=
io=3Ds"=0A=
+".d.`Is[i];oc=3Do.`g?\"\"+o.`g:\"\"`6(oc`1\"@a$m0||oc`1\"^joc@x0)&&oc`"=0A=
+"1\".tl$m0)^M(o,\"`g\",0,s.lc);}`2r^d`Ds`3`4`6`J>3^X!^N||!^B||`J$q`V"=0A=
+"s.b^a^r)s.^r('`g@z.bc);`5s.b&&^H)^H('click@z.bc,false);`t ^M(`D,'@H"=0A=
+"',0,`Dl)}`9vs`3x`4,v=3Ds.`W^F,g=3Ds.`W^F$fk@kvsn^f^2+(g?'^fg`Y,n=3D^kk)=
,e"=0A=
+"`c^g,y=3De.get@t);e$e@ty+10@Y1900:0))`6v){v*=3D100`6!n`V!@Kk,x,$I`20;n=3D=
"=0A=
+"x^1n%10000>v)`20}`21`9dyasmf`3t,m`Vt&&m&&m`1t)>=3D0)`21;`20`9dyasf`3t"=0A=
+",m`4,i=3Dt?t`1@R:-1,n,x`6i>=3D0&&m){`On=3Dt`00,i),x=3Dt`0i+1)`6`Px`Rdya=
sm^e"=0A=
+"m))`2n}`20`9uns`3`4,x=3Ds.`HSele`K,l=3Ds.`HList,m=3Ds.`H$gn,i;^2=3D^2`7=
`6x&"=0A=
+"&l`V!m)m=3D`D`F`x`6!m.toLowerCase)m`X+m;l=3Dl`7;m=3Dm`7;n=3D`Pl,';`sdya=
s^em"=0A=
+")`6n)^2=3Dn}i=3D^2`1`s`Tfun=3Di<0?^2:^2`00,i)`9sa`3un`4;^2=3Dun`6!@A)@A=
=3Dun;"=0A=
+"`5(`s+@A+`s)`1$7<0)@A+=3D`s+un;^2s()`9t`3`4,$M=3D1,tm`c^g,sed=3DMath&&@=
6$"=0A=
+"N?@6$U@6$N()*10000000000000):`e@I(),@c=3D's'+@6$U`e@I()/10800000)%10+"=0A=
+"sed,y=3D`e@t),vt=3D`e^g(@y'+`eMonth(@y'@Yy+1900:y)+@U`eHour$0`eMinute$0=
"=0A=
+"`eSeconds()+@U`eDay()+@U`e@IzoneO@l(),^J=3Ds.g^J(),ta`X,q`X,qs`X@0`Tu"=0A=
+"ns()`6!s.td){`Otl=3D^J`F,a,o,i,x`X,c`X,v`X,p`X,bw`X,bh`X,^70',k=3D@K's_=
"=0A=
+"cc`s@b',0^8,hp`X,ct`X,pn=3D0,ps`6`w&&`w.prototype){^71'`6j.match){^72"=0A=
+"'`6tm$eUTC^g){^73'`6^N&&^B&&`J$q^74'`6pn.toPrecision){^75';a`c@2`6a"=0A=
+".forEach){^76';i=3D0;o`C;@5'$Qi`cIterator(o)`z}')`6i&&i.next)^77'}}}}"=0A=
+"^1`J>=3D4)x=3D^Uwidth+'x'+^U$K`6s.isns||s.^S`V`J>=3D3$4`b(^8`6`J>=3D4){=
c=3D^U"=0A=
+"pixelDepth;bw=3D`D$a^o;bh=3D`D$a^Q}}@q=3Ds.n.p^C}`5^N`V`J>=3D4$4`b(^8;c=
=3D^U`"=0A=
+"v`6`J$q{bw=3Ds.d.@9`i.o@l^o;bh=3Ds.d.@9`i.o@l^Q`6!^B^ab){`fh$D^dhp=3Ds.=
b."=0A=
+"isH$D(tl^8`z}\");`fclientCaps^dct=3Ds.b.@B`K`p`z}\")}}}`t r`X^1@q)`Sp"=0A=
+"n<@q`A&&pn<30){ps=3D^V@q[pn].^h@g$o'`6p`1ps)<0)p+=3Dps;pn$Es.^K=3Dx;s.`=
v=3D"=0A=
+"c;s.`k=3Dj;s.`b=3Dv;s.`m^p=3Dk;s.`r^o=3Dbw;s.`r^Q=3Dbh;s.@B`K`p=3Dct;s.=
^i=3Dhp;s."=0A=
+"p^C=3Dp;s.td=3D1^1s.useP^C)s.doP^C(s);`Ol=3D`D`F,r=3D^J.@9ent.`u`6!s.^9=
)s.^"=0A=
+"9=3Dl`6!s.`u)s.`u=3Dr`6s.@3||^3){`Oo=3D^3?^3:s.@3`6!o)`2'';`Op=3D@o'$d`=
j'),"=0A=
+"w=3D1,^5,@N,x=3D`qt,h,l,i,oc`6^3&&o=3D=3D^3){`So@vn@Q$kBODY'){o=3Do.par=
`i?o.p"=0A=
+"ar`i:o@1Node`6!o)`2'';^5;@N;x=3D`qt}oc=3Do.`g?''+o.`g:''`6(oc`1\"@a@x0&=
"=0A=
+"&oc`1\"^joc$m0)||oc`1\".tl@x0)`2''}ta=3Dn?o$8:1;h@Xi=3Dh`1'?^dh=3Ds.`I@=
O`"=0A=
+"w||i<0?h:h`00,i);l=3Ds.`I`j?s.`I`j:s.ln(h);t=3Ds.`I`p?s.`I`p`7:s.lt(h)`=
"=0A=
+"6t^Xh||l))q+=3D@n=3D@3^f(`Ed'||`Ee'?$Xt):'o')+(h?@nv1`Lh)`Y+(l?@nv2`Ll)=
"=0A=
+"`Y;`t =
$M=3D0`6s.^6@C`V!p$1@o'^9^dw=3D0}^5;i=3Do.sourceIndex`6^Z@S^Z;x=3D1;i"=0A=
+"=3D1^1p&&n@Q)qs=3D'&pid`L^Vp,255))+(w$npidt$lw`Y+'&oid`L^Vn@g)+(x$noidt=
"=0A=
+"$lx`Y+'&ot`Lt)+(i$noi$li`Y}^1!$M@vqs)`2''`6s.p_r)s.p_r();`O$O`X`6$M"=0A=
+"^avs(sed))$O=3Ds.mr(@c,(vt$nt`Lvt)`Y+s.hav()+q+(qs?qs:s.rq(^2)),ta`Ts"=0A=
+"q($M$jqs`T@3=3D^3=3Ds.`I`j=3Ds.`I`p=3D`D^jobjectID=3Ds.ppu`X`6$V)`D^j@3=
=3D`D^je"=0A=
+"o=3D`D^j`I`j=3D`D^j`I`p`X;`2$O`9tl`3o,t,n`4;s.@3=3D@ho`T`I`p=3Dt;s.`I`j=
=3Dn;s"=0A=
+".t()`9ssl=3D(`D`F`U`7`1'https@P0`Td=3D@9ent;s.b=3Ds.d.body;s.n=3Dnaviga=
tor;"=0A=
+"s.u=3Ds.n.userAgent;@8=3Ds.u`1'N$A6/^d`Oapn@u`j,v@uVersion,ie=3Dv`1$R')=
,o"=0A=
+"=3Ds.u`1'@4 '),i`6v`1'@4@P0||o>0)apn=3D'@4';^N@r^DMicrosoft Internet =
Ex"=0A=
+"plorer'`Tisns@r^DN$A'`T^S@r^D@4'`Tismac=3D(s.u`1'Mac@P0)`6o>0)`J`ls.u"=0A=
+"`0o+6));`5ie>0){`J=3D`ni=3Dv`0ie+5))`6`J>3)`J`li)}`5@8>0)`J`ls.u`0@8+10=
"=0A=
+"));`t =
`J`lv`Tem=3D0`6`w$h^W){i=3D^T`w$h^W(256))`B(`Tem=3D(i^D%C4%80'?2:(i"=0A=
+"^D%U0100'?1:0))}s.sa(un`Tvl_l=3D'`WID,vmk,ppu,^v,`W`jspace,c`Q,`m^n,$"=0A=
+"d`j,^9,`u,^x';^P=3D^O+',^Y,$5,server,$d`p,$b`KID,purchaseID,@d,state,"=0A=
+"zip,$L,products,`I`j,`I`p'^E`On=3D1;n<51;n++)^P+=3D',prop$J+',eVar$J+',=
"=0A=
+"hier$J;^O2=3D'^K,`v,`k,`b,`m^p,`r^o,`r^Q,@B`K`p,^i,p^C';^P+=3D`s+^O2;s.=
"=0A=
+"vl_g=3D^P+',`W^F,`W^F$f`HSele`K,`HList,`H$g^6^ILinks,^6^t,^6@C,`I@O`w"=0A=
+",`I^IFile`ps,`IEx`h,`IIn`h,`I@DVars,`I@D$c,`I`js,@3';$V=3Dpg@0)`6!ss)"=0A=
+"`Ds()}",w=3Dwindow,l=3Dw.s_c_il,n=3Dnavigator,u=3Dn.userAgent,v=3Dn.app=
Version,e=3Dv.indexOf('MSIE =
'),m=3Du.indexOf('Netscape6/'),a,i,s;if(un){un=3Dun.toLowerCase();if(l)fo=
r(i=3D0;i<l.length;i++){s=3Dl[i];if(s._c=3D=3D's_c'){if(s.oun=3D=3Dun)ret=
urn s;else if(s.fs(s.oun,un)){s.sa(un);return s}}}}=0A=
eval(d);c=3Ds_d(c);i=3Dc.indexOf("function s_c(");eval(c.substring(0,i))=0A=
if(!un)return 0;c=3Dc.substring(i);if(e>0){a=3DparseInt(i=3Dv.substring(e=0A=
+5));if(a>3)a=3DparseFloat(i)}else =
if(m>0)a=3DparseFloat(u.substring(m+10));else =
a=3DparseFloat(v);if(a>=3D5&&v.indexOf('Opera')<0&&u.indexOf('Opera')<0){=
eval(c);return new s_c(un,pg,ss)}else s=3Ds_c2f(c);return =
s(un,pg,ss)}s_gi()
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://digg.com/tools/diggthis.php?u=http%3A//www.wired.com/politics/law/news/2001/09/47109&t=How%20Osama%20Cracked%20FBI%27s%20Top%2010&w=new&k=transparent&s=compact

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Submit =
Story</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<STYLE type=3Dtext/css media=3Dall>BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; FONT: bold 11px arial, sans-serif; COLOR: #444; PADDING-TOP: 0px
}
DIV {
	WIDTH: 120px; TEXT-ALIGN: center
}
IMG {
	VERTICAL-ALIGN: middle; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: =
none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
.dl {
	COLOR: #444; TEXT-DECORATION: none
}
.dl:hover {
	COLOR: #000; TEXT-DECORATION: underline
}
.s {
	FONT-SIZE: 9px
}
</STYLE>

<META content=3D"MSHTML 6.00.6001.18023" name=3DGENERATOR></HEAD>
<BODY style=3D"BACKGROUND: none transparent scroll repeat 0% 0%">
<DIV><A class=3Ddl=20
href=3D"http://digg.com/submit?url=3Dhttp%3A%2F%2Fwww.wired.com%2Fpolitic=
s%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Cracked+FBI%27s+=
Top+10"=20
target=3D_blank>Digg</A> <A=20
href=3D"http://digg.com/submit?url=3Dhttp%3A%2F%2Fwww.wired.com%2Fpolitic=
s%2Flaw%2Fnews%2F2001%2F09%2F47109&amp;title=3DHow+Osama+Cracked+FBI%27s+=
Top+10"=20
target=3D_blank><IMG height=3D16 alt=3D"digg it"=20
src=3D"http://digg.com/img/digg-it-tiny-submit.gif" width=3D38></A> =
</DIV>
<SCRIPT type=3Dtext/javascript>var s_account =3D =
"diggcomsyndication";</SCRIPT>

<SCRIPT src=3D"http://digg.com/js/111/omnidiggthis.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript><!--=0A=
s.pageName =3D 'diggthis:submit';=0A=
s.prop9 =3D 'diggthis:compact';=0A=
s.prop24 =3D 'diggthis';=0A=
s.prop29 =3D '';=0A=
s.prop10 =3D '';=0A=
s.prop21 =3D 'diggthis';=0A=
s.prop22 =3D 'diggthis';=0A=
s.prop23 =3D 'diggthis';=0A=
s.hier1 =3D 'diggthis';=0A=
s.prop14 =3D 'diggthis:compact';=0A=
s.prop8 =3D 'anonymous';=0A=
s.channel =3D 'digg.com';=0A=
s.events =3D '';=0A=
s.products =3D '';=0A=
var s_code=3Ds.t();=0A=
if (s_code) document.write(s_code);=0A=
//--></SCRIPT>
</BODY></HTML>

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/comments/json.js

/*=0A=
Copyright (c) 2005 JSON.org=0A=
=0A=
Permission is hereby granted, free of charge, to any person obtaining a =
copy=0A=
of this software and associated documentation files (the "Software"), to =
deal=0A=
in the Software without restriction, including without limitation the =
rights=0A=
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell=0A=
copies of the Software, and to permit persons to whom the Software is=0A=
furnished to do so, subject to the following conditions:=0A=
=0A=
The Software shall be used for Good, not Evil.=0A=
=0A=
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS =
OR=0A=
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,=0A=
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL =
THE=0A=
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER=0A=
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING =
FROM,=0A=
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS =
IN THE=0A=
SOFTWARE.=0A=
*/=0A=
=0A=
/*=0A=
    The global object JSON contains two methods.=0A=
=0A=
    JSON.stringify(value) takes a JavaScript value and produces a JSON =
text.=0A=
    The value must not be cyclical.=0A=
=0A=
    JSON.parse(text) takes a JSON text and produces a JavaScript value. =
It will=0A=
    return false if there is an error.=0A=
*/=0A=
var JSON =3D function () {=0A=
    var m =3D {=0A=
            '\b': '\\b',=0A=
            '\t': '\\t',=0A=
            '\n': '\\n',=0A=
            '\f': '\\f',=0A=
            '\r': '\\r',=0A=
            '"' : '\\"',=0A=
            '\\': '\\\\'=0A=
        },=0A=
        s =3D {=0A=
            'boolean': function (x) {=0A=
                return String(x);=0A=
            },=0A=
            number: function (x) {=0A=
                return isFinite(x) ? String(x) : 'null';=0A=
            },=0A=
            string: function (x) {=0A=
                if (/["\\\x00-\x1f]/.test(x)) {=0A=
                    x =3D x.replace(/([\x00-\x1f\\"])/g, function(a, b) {=0A=
                        var c =3D m[b];=0A=
                        if (c) {=0A=
                            return c;=0A=
                        }=0A=
                        c =3D b.charCodeAt();=0A=
                        return '\\u00' +=0A=
                            Math.floor(c / 16).toString(16) +=0A=
                            (c % 16).toString(16);=0A=
                    });=0A=
                }=0A=
                return '"' + x + '"';=0A=
            },=0A=
            object: function (x) {=0A=
                if (x) {=0A=
                    var a =3D [], b, f, i, l, v;=0A=
                    if (x instanceof Array) {=0A=
                        a[0] =3D '[';=0A=
                        l =3D x.length;=0A=
                        for (i =3D 0; i < l; i +=3D 1) {=0A=
                            v =3D x[i];=0A=
                            f =3D s[typeof v];=0A=
                            if (f) {=0A=
                                v =3D f(v);=0A=
                                if (typeof v =3D=3D 'string') {=0A=
                                    if (b) {=0A=
                                        a[a.length] =3D ',';=0A=
                                    }=0A=
                                    a[a.length] =3D v;=0A=
                                    b =3D true;=0A=
                                }=0A=
                            }=0A=
                        }=0A=
                        a[a.length] =3D ']';=0A=
                    } else if (x instanceof Object) {=0A=
                        a[0] =3D '{';=0A=
                        for (i in x) {=0A=
                            v =3D x[i];=0A=
                            f =3D s[typeof v];=0A=
                            if (f) {=0A=
                                v =3D f(v);=0A=
                                if (typeof v =3D=3D 'string') {=0A=
                                    if (b) {=0A=
                                        a[a.length] =3D ',';=0A=
                                    }=0A=
                                    a.push(s.string(i), ':', v);=0A=
                                    b =3D true;=0A=
                                }=0A=
                            }=0A=
                        }=0A=
                        a[a.length] =3D '}';=0A=
                    } else {=0A=
                        return;=0A=
                    }=0A=
                    return a.join('');=0A=
                }=0A=
                return 'null';=0A=
            }=0A=
        };=0A=
    return {=0A=
        copyright: '(c)2005 JSON.org',=0A=
        license: 'http://www.crockford.com/JSON/license.html',=0A=
/*=0A=
    Stringify a JavaScript value, producing a JSON text.=0A=
*/=0A=
        stringify: function (v) {=0A=
            var f =3D s[typeof v];=0A=
            if (f) {=0A=
                v =3D f(v);=0A=
                if (typeof v =3D=3D 'string') {=0A=
                    return v;=0A=
                }=0A=
            }=0A=
            return null;=0A=
        },=0A=
/*=0A=
    Parse a JSON text, producing a JavaScript value.=0A=
    It returns false if there is a syntax error.=0A=
*/=0A=
        eval: function (text) {=0A=
            try {=0A=
                return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(=0A=
                        text.replace(/"(\\.|[^"\\])*"/g, ''))) &&=0A=
                    eval('(' + text + ')');=0A=
            } catch (e) {=0A=
                return false;=0A=
            }=0A=
        },=0A=
=0A=
        parse: function (text) {=0A=
            var at =3D 0;=0A=
            var ch =3D ' ';=0A=
=0A=
            function error(m) {=0A=
                throw {=0A=
                    name: 'JSONError',=0A=
                    message: m,=0A=
                    at: at - 1,=0A=
                    text: text=0A=
                };=0A=
            }=0A=
=0A=
            function next() {=0A=
                ch =3D text.charAt(at);=0A=
                at +=3D 1;=0A=
                return ch;=0A=
            }=0A=
=0A=
            function white() {=0A=
                while (ch) {=0A=
                    if (ch <=3D ' ') {=0A=
                        next();=0A=
                    } else if (ch =3D=3D '/') {=0A=
                        switch (next()) {=0A=
                            case '/':=0A=
                                while (next() && ch !=3D '\n' && ch !=3D =
'\r') {}=0A=
                                break;=0A=
                            case '*':=0A=
                                next();=0A=
                                for (;;) {=0A=
                                    if (ch) {=0A=
                                        if (ch =3D=3D '*') {=0A=
                                            if (next() =3D=3D '/') {=0A=
                                                next();=0A=
                                                break;=0A=
                                            }=0A=
                                        } else {=0A=
                                            next();=0A=
                                        }=0A=
                                    } else {=0A=
                                        error("Unterminated comment");=0A=
                                    }=0A=
                                }=0A=
                                break;=0A=
                            default:=0A=
                                error("Syntax error");=0A=
                        }=0A=
                    } else {=0A=
                        break;=0A=
                    }=0A=
                }=0A=
            }=0A=
=0A=
            function string() {=0A=
                var i, s =3D '', t, u;=0A=
=0A=
                if (ch =3D=3D '"') {=0A=
    outer:          while (next()) {=0A=
                        if (ch =3D=3D '"') {=0A=
                            next();=0A=
                            return s;=0A=
                        } else if (ch =3D=3D '\\') {=0A=
                            switch (next()) {=0A=
                            case 'b':=0A=
                                s +=3D '\b';=0A=
                                break;=0A=
                            case 'f':=0A=
                                s +=3D '\f';=0A=
                                break;=0A=
                            case 'n':=0A=
                                s +=3D '\n';=0A=
                                break;=0A=
                            case 'r':=0A=
                                s +=3D '\r';=0A=
                                break;=0A=
                            case 't':=0A=
                                s +=3D '\t';=0A=
                                break;=0A=
                            case 'u':=0A=
                                u =3D 0;=0A=
                                for (i =3D 0; i < 4; i +=3D 1) {=0A=
                                    t =3D parseInt(next(), 16);=0A=
                                    if (!isFinite(t)) {=0A=
                                        break outer;=0A=
                                    }=0A=
                                    u =3D u * 16 + t;=0A=
                                }=0A=
                                s +=3D String.fromCharCode(u);=0A=
                                break;=0A=
                            default:=0A=
                                s +=3D ch;=0A=
                            }=0A=
                        } else {=0A=
                            s +=3D ch;=0A=
                        }=0A=
                    }=0A=
                }=0A=
                error("Bad string");=0A=
            }=0A=
=0A=
            function array() {=0A=
                var a =3D [];=0A=
=0A=
                if (ch =3D=3D '[') {=0A=
                    next();=0A=
                    white();=0A=
                    if (ch =3D=3D ']') {=0A=
                        next();=0A=
                        return a;=0A=
                    }=0A=
                    while (ch) {=0A=
                        a.push(value());=0A=
                        white();=0A=
                        if (ch =3D=3D ']') {=0A=
                            next();=0A=
                            return a;=0A=
                        } else if (ch !=3D ',') {=0A=
                            break;=0A=
                        }=0A=
                        next();=0A=
                        white();=0A=
                    }=0A=
                }=0A=
                error("Bad array");=0A=
            }=0A=
=0A=
            function object() {=0A=
                var k, o =3D {};=0A=
=0A=
                if (ch =3D=3D '{') {=0A=
                    next();=0A=
                    white();=0A=
                    if (ch =3D=3D '}') {=0A=
                        next();=0A=
                        return o;=0A=
                    }=0A=
                    while (ch) {=0A=
                        k =3D string();=0A=
                        white();=0A=
                        if (ch !=3D ':') {=0A=
                            break;=0A=
                        }=0A=
                        next();=0A=
                        o[k] =3D value();=0A=
                        white();=0A=
                        if (ch =3D=3D '}') {=0A=
                            next();=0A=
                            return o;=0A=
                        } else if (ch !=3D ',') {=0A=
                            break;=0A=
                        }=0A=
                        next();=0A=
                        white();=0A=
                    }=0A=
                }=0A=
                error("Bad object");=0A=
            }=0A=
=0A=
            function number() {=0A=
                var n =3D '', v;=0A=
                if (ch =3D=3D '-') {=0A=
                    n =3D '-';=0A=
                    next();=0A=
                }=0A=
                while (ch >=3D '0' && ch <=3D '9') {=0A=
                    n +=3D ch;=0A=
                    next();=0A=
                }=0A=
                if (ch =3D=3D '.') {=0A=
                    n +=3D '.';=0A=
                    while (next() && ch >=3D '0' && ch <=3D '9') {=0A=
                        n +=3D ch;=0A=
                    }=0A=
                }=0A=
                if (ch =3D=3D 'e' || ch =3D=3D 'E') {=0A=
                    n +=3D 'e';=0A=
                    next();=0A=
                    if (ch =3D=3D '-' || ch =3D=3D '+') {=0A=
                        n +=3D ch;=0A=
                        next();=0A=
                    }=0A=
                    while (ch >=3D '0' && ch <=3D '9') {=0A=
                        n +=3D ch;=0A=
                        next();=0A=
                    }=0A=
                }=0A=
                v =3D +n;=0A=
                if (!isFinite(v)) {=0A=
                    ////error("Bad number");=0A=
                } else {=0A=
                    return v;=0A=
                }=0A=
            }=0A=
=0A=
            function word() {=0A=
                switch (ch) {=0A=
                    case 't':=0A=
                        if (next() =3D=3D 'r' && next() =3D=3D 'u' && =
next() =3D=3D 'e') {=0A=
                            next();=0A=
                            return true;=0A=
                        }=0A=
                        break;=0A=
                    case 'f':=0A=
                        if (next() =3D=3D 'a' && next() =3D=3D 'l' && =
next() =3D=3D 's' &&=0A=
                                next() =3D=3D 'e') {=0A=
                            next();=0A=
                            return false;=0A=
                        }=0A=
                        break;=0A=
                    case 'n':=0A=
                        if (next() =3D=3D 'u' && next() =3D=3D 'l' && =
next() =3D=3D 'l') {=0A=
                            next();=0A=
                            return null;=0A=
                        }=0A=
                        break;=0A=
                }=0A=
                error("Syntax error");=0A=
            }=0A=
=0A=
            function value() {=0A=
                white();=0A=
                switch (ch) {=0A=
                    case '{':=0A=
                        return object();=0A=
                    case '[':=0A=
                        return array();=0A=
                    case '"':=0A=
                        return string();=0A=
                    case '-':=0A=
                        return number();=0A=
                    default:=0A=
                        return ch >=3D '0' && ch <=3D '9' ? number() : =
word();=0A=
                }=0A=
            }=0A=
=0A=
            return value();=0A=
        }=0A=
    };=0A=
}();
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/comments/prototype.js

/*  Prototype JavaScript framework, version 1.5.0=0A=
 *  (c) 2005-2007 Sam Stephenson=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *  For details, see the Prototype web site: http://prototype.conio.net/=0A=
 *=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.5.0',=0A=
  BrowserFeatures: {=0A=
    XPath: !!document.evaluate=0A=
  },=0A=
=0A=
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',=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 (var property in source) {=0A=
    destination[property] =3D source[property];=0A=
  }=0A=
  return destination;=0A=
}=0A=
=0A=
Object.extend(Object, {=0A=
  inspect: function(object) {=0A=
    try {=0A=
      if (object =3D=3D=3D undefined) return 'undefined';=0A=
      if (object =3D=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=
  keys: function(object) {=0A=
    var keys =3D [];=0A=
    for (var property in object)=0A=
      keys.push(property);=0A=
    return keys;=0A=
  },=0A=
=0A=
  values: function(object) {=0A=
    var values =3D [];=0A=
    for (var property in object)=0A=
      values.push(object[property]);=0A=
    return values;=0A=
  },=0A=
=0A=
  clone: function(object) {=0A=
    return Object.extend({}, object);=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, args =3D $A(arguments), object =3D args.shift();=0A=
  return function(event) {=0A=
    return __method.apply(object, [( event || =
window.event)].concat(args).concat($A(arguments)));=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, length =3D arguments.length; i < 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=
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    if (!this.timer) return;=0A=
    clearInterval(this.timer);=0A=
    this.timer =3D null;=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.callback(this);=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
String.interpret =3D function(value){=0A=
  return value =3D=3D null ? '' : String(value);=0A=
}=0A=
=0A=
Object.extend(String.prototype, {=0A=
  gsub: function(pattern, replacement) {=0A=
    var result =3D '', source =3D this, match;=0A=
    replacement =3D arguments.callee.prepareReplacement(replacement);=0A=
=0A=
    while (source.length > 0) {=0A=
      if (match =3D source.match(pattern)) {=0A=
        result +=3D source.slice(0, match.index);=0A=
        result +=3D String.interpret(replacement(match));=0A=
        source  =3D source.slice(match.index + match[0].length);=0A=
      } else {=0A=
        result +=3D source, source =3D '';=0A=
      }=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  sub: function(pattern, replacement, count) {=0A=
    replacement =3D this.gsub.prepareReplacement(replacement);=0A=
    count =3D count =3D=3D=3D undefined ? 1 : count;=0A=
=0A=
    return this.gsub(pattern, function(match) {=0A=
      if (--count < 0) return match[0];=0A=
      return replacement(match);=0A=
    });=0A=
  },=0A=
=0A=
  scan: function(pattern, iterator) {=0A=
    this.gsub(pattern, iterator);=0A=
    return this;=0A=
  },=0A=
=0A=
  truncate: function(length, truncation) {=0A=
    length =3D length || 30;=0A=
    truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A=
    return this.length > length ?=0A=
      this.slice(0, length - truncation.length) + truncation : this;=0A=
  },=0A=
=0A=
  strip: function() {=0A=
    return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A=
  },=0A=
=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(function(script) { return =
eval(script) });=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.length > 1 ?=0A=
      $A(div.childNodes).inject('',function(memo,node){ return =
memo+node.nodeValue }) :=0A=
      div.childNodes[0].nodeValue) : '';=0A=
  },=0A=
=0A=
  toQueryParams: function(separator) {=0A=
    var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A=
    if (!match) return {};=0A=
=0A=
    return match[1].split(separator || '&').inject({}, function(hash, =
pair) {=0A=
      if ((pair =3D pair.split('=3D'))[0]) {=0A=
        var name =3D decodeURIComponent(pair[0]);=0A=
        var value =3D pair[1] ? decodeURIComponent(pair[1]) : undefined;=0A=
=0A=
        if (hash[name] !=3D=3D undefined) {=0A=
          if (hash[name].constructor !=3D Array)=0A=
            hash[name] =3D [hash[name]];=0A=
          if (value) hash[name].push(value);=0A=
        }=0A=
        else hash[name] =3D value;=0A=
      }=0A=
      return hash;=0A=
    });=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.split('');=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this.slice(0, this.length - 1) +=0A=
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A=
  },=0A=
=0A=
  camelize: function() {=0A=
    var parts =3D this.split('-'), len =3D parts.length;=0A=
    if (len =3D=3D 1) return parts[0];=0A=
=0A=
    var camelized =3D this.charAt(0) =3D=3D '-'=0A=
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A=
      : parts[0];=0A=
=0A=
    for (var i =3D 1; i < len; i++)=0A=
      camelized +=3D parts[i].charAt(0).toUpperCase() + =
parts[i].substring(1);=0A=
=0A=
    return camelized;=0A=
  },=0A=
=0A=
  capitalize: function(){=0A=
    return this.charAt(0).toUpperCase() + =
this.substring(1).toLowerCase();=0A=
  },=0A=
=0A=
  underscore: function() {=0A=
    return this.gsub(/::/, =
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{=
1}_#{2}').gsub(/-/,'_').toLowerCase();=0A=
  },=0A=
=0A=
  dasherize: function() {=0A=
    return this.gsub(/_/,'-');=0A=
  },=0A=
=0A=
  inspect: function(useDoubleQuotes) {=0A=
    var escapedString =3D this.replace(/\\/g, '\\\\');=0A=
    if (useDoubleQuotes)=0A=
      return '"' + escapedString.replace(/"/g, '\\"') + '"';=0A=
    else=0A=
      return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A=
  }=0A=
});=0A=
=0A=
String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A=
  if (typeof replacement =3D=3D 'function') return replacement;=0A=
  var template =3D new Template(replacement);=0A=
  return function(match) { return template.evaluate(match) };=0A=
}=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
var Template =3D Class.create();=0A=
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A=
Template.prototype =3D {=0A=
  initialize: function(template, pattern) {=0A=
    this.template =3D template.toString();=0A=
    this.pattern  =3D pattern || Template.Pattern;=0A=
  },=0A=
=0A=
  evaluate: function(object) {=0A=
    return this.template.gsub(this.pattern, function(match) {=0A=
      var before =3D match[1];=0A=
      if (before =3D=3D '\\') return match[2];=0A=
      return before + String.interpret(object[match[3]]);=0A=
    });=0A=
  }=0A=
}=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=
    return this;=0A=
  },=0A=
=0A=
  eachSlice: function(number, iterator) {=0A=
    var index =3D -number, slices =3D [], array =3D this.toArray();=0A=
    while ((index +=3D number) < array.length)=0A=
      slices.push(array.slice(index, index+number));=0A=
    return slices.map(iterator);=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 false;=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 || Prototype.K)(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=
  inGroupsOf: function(number, fillWith) {=0A=
    fillWith =3D fillWith =3D=3D=3D undefined ? null : fillWith;=0A=
    return this.eachSlice(number, function(slice) {=0A=
      while(slice.length < number) slice.push(fillWith);=0A=
      return slice;=0A=
    });=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.map(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 (result =3D=3D undefined || value >=3D result)=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 (result =3D=3D undefined || value < result)=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.map(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.map();=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=
      return iterator(collections.pluck(index));=0A=
    });=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.toArray().length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Enumerable:' + this.toArray().inspect() + '>';=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, length =3D iterable.length; i < length; i++)=0A=
      results.push(iterable[i]);=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
if (!Array.prototype._reverse)=0A=
  Array.prototype._reverse =3D Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0, length =3D this.length; i < 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 null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(value && 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, length =3D this.length; i < 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=
  reduce: function() {=0A=
    return this.length > 1 ? this : this[0];=0A=
  },=0A=
=0A=
  uniq: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.include(value) ? array : array.concat([value]);=0A=
    });=0A=
  },=0A=
=0A=
  clone: function() {=0A=
    return [].concat(this);=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  }=0A=
});=0A=
=0A=
Array.prototype.toArray =3D Array.prototype.clone;=0A=
=0A=
function $w(string){=0A=
  string =3D string.strip();=0A=
  return string ? string.split(/\s+/) : [];=0A=
}=0A=
=0A=
if(window.opera){=0A=
  Array.prototype.concat =3D function(){=0A=
    var array =3D [];=0A=
    for(var i =3D 0, length =3D this.length; i < length; i++) =
array.push(this[i]);=0A=
    for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      if(arguments[i].constructor =3D=3D Array) {=0A=
        for(var j =3D 0, arrayLength =3D arguments[i].length; j < =
arrayLength; j++)=0A=
          array.push(arguments[i][j]);=0A=
      } else {=0A=
        array.push(arguments[i]);=0A=
      }=0A=
    }=0A=
    return array;=0A=
  }=0A=
}=0A=
var Hash =3D function(obj) {=0A=
  Object.extend(this, obj || {});=0A=
};=0A=
=0A=
Object.extend(Hash, {=0A=
  toQueryString: function(obj) {=0A=
    var parts =3D [];=0A=
=0A=
	  this.prototype._each.call(obj, function(pair) {=0A=
      if (!pair.key) return;=0A=
=0A=
      if (pair.value && pair.value.constructor =3D=3D Array) {=0A=
        var values =3D pair.value.compact();=0A=
        if (values.length < 2) pair.value =3D values.reduce();=0A=
        else {=0A=
        	key =3D encodeURIComponent(pair.key);=0A=
          values.each(function(value) {=0A=
            value =3D value !=3D undefined ? encodeURIComponent(value) : =
'';=0A=
            parts.push(key + '=3D' + encodeURIComponent(value));=0A=
          });=0A=
          return;=0A=
        }=0A=
      }=0A=
      if (pair.value =3D=3D undefined) pair[1] =3D '';=0A=
      parts.push(pair.map(encodeURIComponent).join('=3D'));=0A=
	  });=0A=
=0A=
    return parts.join('&');=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Hash.prototype, Enumerable);=0A=
Object.extend(Hash.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var key in this) {=0A=
      var value =3D this[key];=0A=
      if (value && value =3D=3D Hash.prototype[key]) 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(this, function(mergedHash, pair) {=0A=
      mergedHash[pair.key] =3D pair.value;=0A=
      return mergedHash;=0A=
    });=0A=
  },=0A=
=0A=
  remove: function() {=0A=
    var result;=0A=
    for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      var value =3D this[arguments[i]];=0A=
      if (value !=3D=3D undefined){=0A=
        if (result =3D=3D=3D undefined) result =3D value;=0A=
        else {=0A=
          if (result.constructor !=3D Array) result =3D [result];=0A=
          result.push(value)=0A=
        }=0A=
      }=0A=
      delete this[arguments[i]];=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  toQueryString: function() {=0A=
    return Hash.toQueryString(this);=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Hash:{' + this.map(function(pair) {=0A=
      return pair.map(Object.inspect).join(': ');=0A=
    }).join(', ') + '}>';=0A=
  }=0A=
});=0A=
=0A=
function $H(object) {=0A=
  if (object && object.constructor =3D=3D Hash) return object;=0A=
  return new Hash(object);=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=
    while (this.include(value)) {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    }=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 XMLHttpRequest()},=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}=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(responder) {=0A=
    if (!this.include(responder))=0A=
      this.responders.push(responder);=0A=
  },=0A=
=0A=
  unregister: function(responder) {=0A=
    this.responders =3D this.responders.without(responder);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (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=
  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=
      contentType:  'application/x-www-form-urlencoded',=0A=
      encoding:     'UTF-8',=0A=
      parameters:   ''=0A=
    }=0A=
    Object.extend(this.options, options || {});=0A=
=0A=
    this.options.method =3D this.options.method.toLowerCase();=0A=
    if (typeof this.options.parameters =3D=3D 'string')=0A=
      this.options.parameters =3D =
this.options.parameters.toQueryParams();=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=
  _complete: false,=0A=
=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=
    this.url =3D url;=0A=
    this.method =3D this.options.method;=0A=
    var params =3D this.options.parameters;=0A=
=0A=
    if (!['get', 'post'].include(this.method)) {=0A=
      // simulate other verbs over post=0A=
      params['_method'] =3D this.method;=0A=
      this.method =3D 'post';=0A=
    }=0A=
=0A=
    params =3D Hash.toQueryString(params);=0A=
    if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) =
params +=3D '&_=3D'=0A=
=0A=
    // when GET, append parameters to URL=0A=
    if (this.method =3D=3D 'get' && params)=0A=
      this.url +=3D (this.url.indexOf('?') > -1 ? '&' : '?') + params;=0A=
=0A=
    try {=0A=
      Ajax.Responders.dispatch('onCreate', this, this.transport);=0A=
=0A=
      this.transport.open(this.method.toUpperCase(), this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous)=0A=
        setTimeout(function() { this.respondToReadyState(1) =
}.bind(this), 10);=0A=
=0A=
      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
      this.setRequestHeaders();=0A=
=0A=
      var body =3D this.method =3D=3D 'post' ? (this.options.postBody || =
params) : null;=0A=
=0A=
      this.transport.send(body);=0A=
=0A=
      /* Force Firefox to handle ready state 4 for synchronous requests =
*/=0A=
      if (!this.options.asynchronous && this.transport.overrideMimeType)=0A=
        this.onStateChange();=0A=
=0A=
    }=0A=
    catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var headers =3D {=0A=
      'X-Requested-With': 'XMLHttpRequest',=0A=
      'X-Prototype-Version': Prototype.Version,=0A=
      'Accept': 'text/javascript, text/html, application/xml, text/xml, =
*/*'=0A=
    };=0A=
=0A=
    if (this.method =3D=3D 'post') {=0A=
      headers['Content-type'] =3D this.options.contentType +=0A=
        (this.options.encoding ? '; charset=3D' + this.options.encoding =
: '');=0A=
=0A=
      /* Force "Connection: close" for older Mozilla browsers to work=0A=
       * around a bug where XMLHttpRequest sends an incorrect=0A=
       * Content-length header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType &&=0A=
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < =
2005)=0A=
            headers['Connection'] =3D 'close';=0A=
    }=0A=
=0A=
    // user-defined headers=0A=
    if (typeof this.options.requestHeaders =3D=3D 'object') {=0A=
      var extras =3D this.options.requestHeaders;=0A=
=0A=
      if (typeof extras.push =3D=3D 'function')=0A=
        for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A=
          headers[extras[i]] =3D extras[i+1];=0A=
      else=0A=
        $H(extras).each(function(pair) { headers[pair.key] =3D =
pair.value });=0A=
    }=0A=
=0A=
    for (var name in headers)=0A=
      this.transport.setRequestHeader(name, headers[name]);=0A=
  },=0A=
=0A=
  success: function() {=0A=
    return !this.transport.status=0A=
        || (this.transport.status >=3D 200 && this.transport.status < =
300);=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var state =3D Ajax.Request.Events[readyState];=0A=
    var transport =3D this.transport, json =3D this.evalJSON();=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      try {=0A=
        this._complete =3D true;=0A=
        (this.options['on' + this.transport.status]=0A=
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A=
         || Prototype.emptyFunction)(transport, json);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      if ((this.getHeader('Content-type') || 'text/javascript').strip().=0A=
        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))=0A=
          this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + state] || Prototype.emptyFunction)(transport, =
json);=0A=
      Ajax.Responders.dispatch('on' + state, this, transport, json);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      // avoid memory leak in MSIE: clean up=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
    }=0A=
  },=0A=
=0A=
  getHeader: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name);=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalJSON: function() {=0A=
    try {=0A=
      var json =3D this.getHeader('X-JSON');=0A=
      return json ? eval('(' + json + ')') : null;=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval(this.transport.responseText);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=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.container =3D {=0A=
      success: (container.success || container),=0A=
      failure: (container.failure || (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, param) {=0A=
      this.updateContent();=0A=
      onComplete(transport, param);=0A=
    }).bind(this);=0A=
=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  updateContent: function() {=0A=
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'];=0A=
    var response =3D this.transport.responseText;=0A=
=0A=
    if (!this.options.evalScripts) response =3D response.stripScripts();=0A=
=0A=
    if (receiver =3D $(receiver)) {=0A=
      if (this.options.insertion)=0A=
        new this.options.insertion(receiver, response);=0A=
      else=0A=
        receiver.update(response);=0A=
    }=0A=
=0A=
    if (this.success()) {=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.options.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=
function $(element) {=0A=
  if (arguments.length > 1) {=0A=
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)=0A=
      elements.push($(arguments[i]));=0A=
    return elements;=0A=
  }=0A=
  if (typeof element =3D=3D 'string')=0A=
    element =3D document.getElementById(element);=0A=
  return Element.extend(element);=0A=
}=0A=
=0A=
if (Prototype.BrowserFeatures.XPath) {=0A=
  document._getElementsByXPath =3D function(expression, parentElement) {=0A=
    var results =3D [];=0A=
    var query =3D document.evaluate(expression, $(parentElement) || =
document,=0A=
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A=
    for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A=
      results.push(query.snapshotItem(i));=0A=
    return results;=0A=
  };=0A=
}=0A=
=0A=
document.getElementsByClassName =3D function(className, parentElement) {=0A=
  if (Prototype.BrowserFeatures.XPath) {=0A=
    var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + =
" ')]";=0A=
    return document._getElementsByXPath(q, parentElement);=0A=
  } else {=0A=
    var children =3D ($(parentElement) || =
document.body).getElementsByTagName('*');=0A=
    var elements =3D [], child;=0A=
    for (var i =3D 0, length =3D children.length; i < length; i++) {=0A=
      child =3D children[i];=0A=
      if (Element.hasClassName(child, className))=0A=
        elements.push(Element.extend(child));=0A=
    }=0A=
    return elements;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Element)=0A=
  var Element =3D new Object();=0A=
=0A=
Element.extend =3D function(element) {=0A=
  if (!element || _nativeExtensions || element.nodeType =3D=3D 3) return =
element;=0A=
=0A=
  if (!element._extended && element.tagName && element !=3D window) {=0A=
    var methods =3D Object.clone(Element.Methods), cache =3D =
Element.extend.cache;=0A=
=0A=
    if (element.tagName =3D=3D 'FORM')=0A=
      Object.extend(methods, Form.Methods);=0A=
    if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))=0A=
      Object.extend(methods, Form.Element.Methods);=0A=
=0A=
    Object.extend(methods, Element.Methods.Simulated);=0A=
=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (typeof value =3D=3D 'function' && !(property in element))=0A=
        element[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  element._extended =3D true;=0A=
  return element;=0A=
};=0A=
=0A=
Element.extend.cache =3D {=0A=
  findOrStore: function(value) {=0A=
    return this[value] =3D this[value] || function() {=0A=
      return value.apply(null, [this].concat($A(arguments)));=0A=
    }=0A=
  }=0A=
};=0A=
=0A=
Element.Methods =3D {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function(element) {=0A=
    element =3D $(element);=0A=
    Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    return element;=0A=
  },=0A=
=0A=
  hide: function(element) {=0A=
    $(element).style.display =3D 'none';=0A=
    return element;=0A=
  },=0A=
=0A=
  show: function(element) {=0A=
    $(element).style.display =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
    return element;=0A=
  },=0A=
=0A=
  update: function(element, html) {=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    $(element).innerHTML =3D html.stripScripts();=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  replace: function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    if (element.outerHTML) {=0A=
      element.outerHTML =3D html.stripScripts();=0A=
    } else {=0A=
      var range =3D element.ownerDocument.createRange();=0A=
      range.selectNodeContents(element);=0A=
      element.parentNode.replaceChild(=0A=
        range.createContextualFragment(html.stripScripts()), element);=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  inspect: function(element) {=0A=
    element =3D $(element);=0A=
    var result =3D '<' + element.tagName.toLowerCase();=0A=
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A=
      var property =3D pair.first(), attribute =3D pair.last();=0A=
      var value =3D (element[property] || '').toString();=0A=
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);=0A=
    });=0A=
    return result + '>';=0A=
  },=0A=
=0A=
  recursivelyCollect: function(element, property) {=0A=
    element =3D $(element);=0A=
    var elements =3D [];=0A=
    while (element =3D element[property])=0A=
      if (element.nodeType =3D=3D 1)=0A=
        elements.push(Element.extend(element));=0A=
    return elements;=0A=
  },=0A=
=0A=
  ancestors: function(element) {=0A=
    return $(element).recursivelyCollect('parentNode');=0A=
  },=0A=
=0A=
  descendants: function(element) {=0A=
    return $A($(element).getElementsByTagName('*'));=0A=
  },=0A=
=0A=
  immediateDescendants: function(element) {=0A=
    if (!(element =3D $(element).firstChild)) return [];=0A=
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;=0A=
    if (element) return [element].concat($(element).nextSiblings());=0A=
    return [];=0A=
  },=0A=
=0A=
  previousSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('previousSibling');=0A=
  },=0A=
=0A=
  nextSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('nextSibling');=0A=
  },=0A=
=0A=
  siblings: function(element) {=0A=
    element =3D $(element);=0A=
    return =
element.previousSiblings().reverse().concat(element.nextSiblings());=0A=
  },=0A=
=0A=
  match: function(element, selector) {=0A=
    if (typeof selector =3D=3D 'string')=0A=
      selector =3D new Selector(selector);=0A=
    return selector.match($(element));=0A=
  },=0A=
=0A=
  up: function(element, expression, index) {=0A=
    return Selector.findElement($(element).ancestors(), expression, =
index);=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    return Selector.findElement($(element).descendants(), expression, =
index);=0A=
  },=0A=
=0A=
  previous: function(element, expression, index) {=0A=
    return Selector.findElement($(element).previousSiblings(), =
expression, index);=0A=
  },=0A=
=0A=
  next: function(element, expression, index) {=0A=
    return Selector.findElement($(element).nextSiblings(), expression, =
index);=0A=
  },=0A=
=0A=
  getElementsBySelector: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element, args);=0A=
  },=0A=
=0A=
  getElementsByClassName: function(element, className) {=0A=
    return document.getElementsByClassName(className, element);=0A=
  },=0A=
=0A=
  readAttribute: function(element, name) {=0A=
    element =3D $(element);=0A=
    if (document.all && !window.opera) {=0A=
      var t =3D Element._attributeTranslations;=0A=
      if (t.values[name]) return t.values[name](element, name);=0A=
      if (t.names[name])  name =3D t.names[name];=0A=
      var attribute =3D element.attributes[name];=0A=
      if(attribute) return attribute.nodeValue;=0A=
    }=0A=
    return element.getAttribute(name);=0A=
  },=0A=
=0A=
  getHeight: function(element) {=0A=
    return $(element).getDimensions().height;=0A=
  },=0A=
=0A=
  getWidth: function(element) {=0A=
    return $(element).getDimensions().width;=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=
    var elementClassName =3D element.className;=0A=
    if (elementClassName.length =3D=3D 0) return false;=0A=
    if (elementClassName =3D=3D className ||=0A=
        elementClassName.match(new RegExp("(^|\\s)" + className + =
"(\\s|$)")))=0A=
      return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).add(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).remove(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  toggleClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element)[element.hasClassName(className) ? =
'remove' : 'add'](className);=0A=
    return element;=0A=
  },=0A=
=0A=
  observe: function() {=0A=
    Event.observe.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  stopObserving: function() {=0A=
    Event.stopObserving.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    var node =3D element.firstChild;=0A=
    while (node) {=0A=
      var nextNode =3D node.nextSibling;=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        element.removeChild(node);=0A=
      node =3D nextNode;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.match(/^\s*$/);=0A=
  },=0A=
=0A=
  descendantOf: function(element, ancestor) {=0A=
    element =3D $(element), ancestor =3D $(ancestor);=0A=
    while (element =3D element.parentNode)=0A=
      if (element =3D=3D ancestor) return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Position.cumulativeOffset(element);=0A=
    window.scrollTo(pos[0], pos[1]);=0A=
    return element;=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    if (['float','cssFloat'].include(style))=0A=
      style =3D (typeof element.style.styleFloat !=3D 'undefined' ? =
'styleFloat' : 'cssFloat');=0A=
    style =3D style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value) {=0A=
      if (document.defaultView && document.defaultView.getComputedStyle) =
{=0A=
        var css =3D document.defaultView.getComputedStyle(element, null);=0A=
        value =3D css ? css[style] : null;=0A=
      } else if (element.currentStyle) {=0A=
        value =3D element.currentStyle[style];=0A=
      }=0A=
    }=0A=
=0A=
    if((value =3D=3D 'auto') && ['width','height'].include(style) && =
(element.getStyle('display') !=3D 'none'))=0A=
      value =3D element['offset'+style.capitalize()] + 'px';=0A=
=0A=
    if (window.opera && ['left', 'top', 'right', =
'bottom'].include(style))=0A=
      if (Element.getStyle(element, 'position') =3D=3D 'static') value =
=3D 'auto';=0A=
    if(style =3D=3D 'opacity') {=0A=
      if(value) return parseFloat(value);=0A=
      if(value =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))=0A=
        if(value[1]) return parseFloat(value[1]) / 100;=0A=
      return 1.0;=0A=
    }=0A=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  setStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    for (var name in style) {=0A=
      var value =3D style[name];=0A=
      if(name =3D=3D 'opacity') {=0A=
        if (value =3D=3D 1) {=0A=
          value =3D (/Gecko/.test(navigator.userAgent) &&=0A=
            !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? =
0.999999 : 1.0;=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A=
        } else if(value =3D=3D '') {=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A=
        } else {=0A=
          if(value < 0.00001) value =3D 0;=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A=
              'alpha(opacity=3D'+value*100+')';=0A=
        }=0A=
      } else if(['float','cssFloat'].include(name)) name =3D (typeof =
element.style.styleFloat !=3D 'undefined') ? 'styleFloat' : 'cssFloat';=0A=
      element.style[name.camelize()] =3D value;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  getDimensions: function(element) {=0A=
    element =3D $(element);=0A=
    var display =3D $(element).getStyle('display');=0A=
    if (display !=3D 'none' && display !=3D null) // Safari bug=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=
    var originalDisplay =3D els.display;=0A=
    els.visibility =3D 'hidden';=0A=
    els.position =3D 'absolute';=0A=
    els.display =3D 'block';=0A=
    var originalWidth =3D element.clientWidth;=0A=
    var originalHeight =3D element.clientHeight;=0A=
    els.display =3D originalDisplay;=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=
    return element;=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=
    return element;=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return element;=0A=
    element._overflow =3D element.style.overflow || 'auto';=0A=
    if ((Element.getStyle(element, 'overflow') || 'visible') !=3D =
'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
    return element;=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element._overflow) return element;=0A=
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;=0A=
    element._overflow =3D null;=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});=0A=
=0A=
Element._attributeTranslations =3D {};=0A=
=0A=
Element._attributeTranslations.names =3D {=0A=
  colspan:   "colSpan",=0A=
  rowspan:   "rowSpan",=0A=
  valign:    "vAlign",=0A=
  datetime:  "dateTime",=0A=
  accesskey: "accessKey",=0A=
  tabindex:  "tabIndex",=0A=
  enctype:   "encType",=0A=
  maxlength: "maxLength",=0A=
  readonly:  "readOnly",=0A=
  longdesc:  "longDesc"=0A=
};=0A=
=0A=
Element._attributeTranslations.values =3D {=0A=
  _getAttr: function(element, attribute) {=0A=
    return element.getAttribute(attribute, 2);=0A=
  },=0A=
=0A=
  _flag: function(element, attribute) {=0A=
    return $(element).hasAttribute(attribute) ? attribute : null;=0A=
  },=0A=
=0A=
  style: function(element) {=0A=
    return element.style.cssText.toLowerCase();=0A=
  },=0A=
=0A=
  title: function(element) {=0A=
    var node =3D element.getAttributeNode('title');=0A=
    return node.specified ? node.nodeValue : null;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element._attributeTranslations.values, {=0A=
  href: Element._attributeTranslations.values._getAttr,=0A=
  src:  Element._attributeTranslations.values._getAttr,=0A=
  disabled: Element._attributeTranslations.values._flag,=0A=
  checked:  Element._attributeTranslations.values._flag,=0A=
  readonly: Element._attributeTranslations.values._flag,=0A=
  multiple: Element._attributeTranslations.values._flag=0A=
});=0A=
=0A=
Element.Methods.Simulated =3D {=0A=
  hasAttribute: function(element, attribute) {=0A=
    var t =3D Element._attributeTranslations;=0A=
    attribute =3D t.names[attribute] || attribute;=0A=
    return $(element).getAttributeNode(attribute).specified;=0A=
  }=0A=
};=0A=
=0A=
// IE is missing .innerHTML support for TABLE-related elements=0A=
if (document.all && !window.opera){=0A=
  Element.Methods.update =3D function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    var tagName =3D element.tagName.toUpperCase();=0A=
    if (['THEAD','TBODY','TR','TD'].include(tagName)) {=0A=
      var div =3D document.createElement('div');=0A=
      switch (tagName) {=0A=
        case 'THEAD':=0A=
        case 'TBODY':=0A=
          div.innerHTML =3D '<table><tbody>' +  html.stripScripts() + =
'</tbody></table>';=0A=
          depth =3D 2;=0A=
          break;=0A=
        case 'TR':=0A=
          div.innerHTML =3D '<table><tbody><tr>' +  html.stripScripts() =
+ '</tr></tbody></table>';=0A=
          depth =3D 3;=0A=
          break;=0A=
        case 'TD':=0A=
          div.innerHTML =3D '<table><tbody><tr><td>' +  =
html.stripScripts() + '</td></tr></tbody></table>';=0A=
          depth =3D 4;=0A=
      }=0A=
      $A(element.childNodes).each(function(node){=0A=
        element.removeChild(node)=0A=
      });=0A=
      depth.times(function(){ div =3D div.firstChild });=0A=
=0A=
      $A(div.childNodes).each(=0A=
        function(node){ element.appendChild(node) });=0A=
    } else {=0A=
      element.innerHTML =3D html.stripScripts();=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element, Element.Methods);=0A=
=0A=
var _nativeExtensions =3D false;=0A=
=0A=
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A=
  ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {=0A=
    var className =3D 'HTML' + tag + 'Element';=0A=
    if(window[className]) return;=0A=
    var klass =3D window[className] =3D {};=0A=
    klass.prototype =3D document.createElement(tag ? tag.toLowerCase() : =
'div').__proto__;=0A=
  });=0A=
=0A=
Element.addMethods =3D function(methods) {=0A=
  Object.extend(Element.Methods, methods || {});=0A=
=0A=
  function copy(methods, destination, onlyIfAbsent) {=0A=
    onlyIfAbsent =3D onlyIfAbsent || false;=0A=
    var cache =3D Element.extend.cache;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (!onlyIfAbsent || !(property in destination))=0A=
        destination[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  if (typeof HTMLElement !=3D 'undefined') {=0A=
    copy(Element.Methods, HTMLElement.prototype);=0A=
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A=
    copy(Form.Methods, HTMLFormElement.prototype);=0A=
    [HTMLInputElement, HTMLTextAreaElement, =
HTMLSelectElement].each(function(klass) {=0A=
      copy(Form.Element.Methods, klass.prototype);=0A=
    });=0A=
    _nativeExtensions =3D true;=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=
        var tagName =3D this.element.tagName.toUpperCase();=0A=
        if (['TBODY', 'TR'].include(tagName)) {=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 '<table><tbody>' + this.content + =
'</tbody></table>';=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($A(this).concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set($A(this).without(classNameToRemove).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return $A(this).join(' ');=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
var Selector =3D Class.create();=0A=
Selector.prototype =3D {=0A=
  initialize: function(expression) {=0A=
    this.params =3D {classNames: []};=0A=
    this.expression =3D expression.toString().strip();=0A=
    this.parseExpression();=0A=
    this.compileMatcher();=0A=
  },=0A=
=0A=
  parseExpression: function() {=0A=
    function abort(message) { throw 'Parse error in selector: ' + =
message; }=0A=
=0A=
    if (this.expression =3D=3D '')  abort('empty expression');=0A=
=0A=
    var params =3D this.params, expr =3D this.expression, match, =
modifier, clause, rest;=0A=
    while (match =3D =
expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=3D)(?:"([^"]*)"|([^\]\s]*))=
)?\]$/i)) {=0A=
      params.attributes =3D params.attributes || [];=0A=
      params.attributes.push({name: match[2], operator: match[3], value: =
match[4] || match[5] || ''});=0A=
      expr =3D match[1];=0A=
    }=0A=
=0A=
    if (expr =3D=3D '*') return this.params.wildcard =3D true;=0A=
=0A=
    while (match =3D expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {=0A=
      modifier =3D match[1], clause =3D match[2], rest =3D match[3];=0A=
      switch (modifier) {=0A=
        case '#':       params.id =3D clause; break;=0A=
        case '.':       params.classNames.push(clause); break;=0A=
        case '':=0A=
        case undefined: params.tagName =3D clause.toUpperCase(); break;=0A=
        default:        abort(expr.inspect());=0A=
      }=0A=
      expr =3D rest;=0A=
    }=0A=
=0A=
    if (expr.length > 0) abort(expr.inspect());=0A=
  },=0A=
=0A=
  buildMatchExpression: function() {=0A=
    var params =3D this.params, conditions =3D [], clause;=0A=
=0A=
    if (params.wildcard)=0A=
      conditions.push('true');=0A=
    if (clause =3D params.id)=0A=
      conditions.push('element.readAttribute("id") =3D=3D ' + =
clause.inspect());=0A=
    if (clause =3D params.tagName)=0A=
      conditions.push('element.tagName.toUpperCase() =3D=3D ' + =
clause.inspect());=0A=
    if ((clause =3D params.classNames).length > 0)=0A=
      for (var i =3D 0, length =3D clause.length; i < length; i++)=0A=
        conditions.push('element.hasClassName(' + clause[i].inspect() + =
')');=0A=
    if (clause =3D params.attributes) {=0A=
      clause.each(function(attribute) {=0A=
        var value =3D 'element.readAttribute(' + =
attribute.name.inspect() + ')';=0A=
        var splitValueBy =3D function(delimiter) {=0A=
          return value + ' && ' + value + '.split(' + =
delimiter.inspect() + ')';=0A=
        }=0A=
=0A=
        switch (attribute.operator) {=0A=
          case '=3D':       conditions.push(value + ' =3D=3D ' + =
attribute.value.inspect()); break;=0A=
          case '~=3D':      conditions.push(splitValueBy(' ') + =
'.include(' + attribute.value.inspect() + ')'); break;=0A=
          case '|=3D':      conditions.push(=0A=
                            splitValueBy('-') + '.first().toUpperCase() =
=3D=3D ' + attribute.value.toUpperCase().inspect()=0A=
                          ); break;=0A=
          case '!=3D':      conditions.push(value + ' !=3D ' + =
attribute.value.inspect()); break;=0A=
          case '':=0A=
          case undefined: conditions.push('element.hasAttribute(' + =
attribute.name.inspect() + ')'); break;=0A=
          default:        throw 'Unknown operator ' + attribute.operator =
+ ' in selector';=0A=
        }=0A=
      });=0A=
    }=0A=
=0A=
    return conditions.join(' && ');=0A=
  },=0A=
=0A=
  compileMatcher: function() {=0A=
    this.match =3D new Function('element', 'if (!element.tagName) return =
false; \=0A=
      element =3D $(element); \=0A=
      return ' + this.buildMatchExpression());=0A=
  },=0A=
=0A=
  findElements: function(scope) {=0A=
    var element;=0A=
=0A=
    if (element =3D $(this.params.id))=0A=
      if (this.match(element))=0A=
        if (!scope || Element.childOf(element, scope))=0A=
          return [element];=0A=
=0A=
    scope =3D (scope || =
document).getElementsByTagName(this.params.tagName || '*');=0A=
=0A=
    var results =3D [];=0A=
    for (var i =3D 0, length =3D scope.length; i < length; i++)=0A=
      if (this.match(element =3D scope[i]))=0A=
        results.push(Element.extend(element));=0A=
=0A=
    return results;=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.expression;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Selector, {=0A=
  matchElements: function(elements, expression) {=0A=
    var selector =3D new Selector(expression);=0A=
    return =
elements.select(selector.match.bind(selector)).map(Element.extend);=0A=
  },=0A=
=0A=
  findElement: function(elements, expression, index) {=0A=
    if (typeof expression =3D=3D 'number') index =3D expression, =
expression =3D false;=0A=
    return Selector.matchElements(elements, expression || '*')[index || =
0];=0A=
  },=0A=
=0A=
  findChildElements: function(element, expressions) {=0A=
    return expressions.map(function(expression) {=0A=
      return =
expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], =
function(results, expr) {=0A=
        var selector =3D new Selector(expr);=0A=
        return results.inject([], function(elements, result) {=0A=
          return elements.concat(selector.findElements(result || =
element));=0A=
        });=0A=
      });=0A=
    }).flatten();=0A=
  }=0A=
});=0A=
=0A=
function $$() {=0A=
  return Selector.findChildElements(document, $A(arguments));=0A=
}=0A=
var Form =3D {=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
    return form;=0A=
  },=0A=
=0A=
  serializeElements: function(elements, getHash) {=0A=
    var data =3D elements.inject({}, function(result, element) {=0A=
      if (!element.disabled && element.name) {=0A=
        var key =3D element.name, value =3D $(element).getValue();=0A=
        if (value !=3D undefined) {=0A=
          if (result[key]) {=0A=
            if (result[key].constructor !=3D Array) result[key] =3D =
[result[key]];=0A=
            result[key].push(value);=0A=
          }=0A=
          else result[key] =3D value;=0A=
        }=0A=
      }=0A=
      return result;=0A=
    });=0A=
=0A=
    return getHash ? data : Hash.toQueryString(data);=0A=
  }=0A=
};=0A=
=0A=
Form.Methods =3D {=0A=
  serialize: function(form, getHash) {=0A=
    return Form.serializeElements(Form.getElements(form), getHash);=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    return $A($(form).getElementsByTagName('*')).inject([],=0A=
      function(elements, child) {=0A=
        if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A=
          elements.push(Element.extend(child));=0A=
        return elements;=0A=
      }=0A=
    );=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name) return $A(inputs).map(Element.extend);=0A=
=0A=
    for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i =
< length; i++) {=0A=
      var input =3D inputs[i];=0A=
      if ((typeName && input.type !=3D typeName) || (name && input.name =
!=3D name))=0A=
        continue;=0A=
      matchingInputs.push(Element.extend(input));=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.blur();=0A=
      element.disabled =3D 'true';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.disabled =3D '';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    return $(form).getElements().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=
    form =3D $(form);=0A=
    form.findFirstElement().activate();=0A=
    return form;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form, Form.Methods);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element =3D {=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
    return element;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Methods =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element.disabled && element.name) {=0A=
      var value =3D element.getValue();=0A=
      if (value !=3D undefined) {=0A=
        var pair =3D {};=0A=
        pair[element.name] =3D value;=0A=
        return Hash.toQueryString(pair);=0A=
      }=0A=
    }=0A=
    return '';=0A=
  },=0A=
=0A=
  getValue: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    return Form.Element.Serializers[method](element);=0A=
  },=0A=
=0A=
  clear: function(element) {=0A=
    $(element).value =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  present: function(element) {=0A=
    return $(element).value !=3D '';=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    element.focus();=0A=
    if (element.select && ( element.tagName.toLowerCase() !=3D 'input' ||=0A=
      !['button', 'reset', 'submit'].include(element.type) ) )=0A=
      element.select();=0A=
    return element;=0A=
  },=0A=
=0A=
  disable: function(element) {=0A=
    element =3D $(element);=0A=
    element.disabled =3D true;=0A=
    return element;=0A=
  },=0A=
=0A=
  enable: function(element) {=0A=
    element =3D $(element);=0A=
    element.blur();=0A=
    element.disabled =3D false;=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form.Element, Form.Element.Methods);=0A=
var Field =3D Form.Element;=0A=
var $F =3D Form.Element.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element);=0A=
      default:=0A=
        return Form.Element.Serializers.textarea(element);=0A=
    }=0A=
  },=0A=
=0A=
  inputSelector: function(element) {=0A=
    return element.checked ? element.value : null;=0A=
  },=0A=
=0A=
  textarea: function(element) {=0A=
    return element.value;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    return this[element.type =3D=3D 'select-one' ?=0A=
      'selectOne' : 'selectMany'](element);=0A=
  },=0A=
=0A=
  selectOne: function(element) {=0A=
    var index =3D element.selectedIndex;=0A=
    return index >=3D 0 ? this.optionValue(element.options[index]) : =
null;=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var values, length =3D element.length;=0A=
    if (!length) return null;=0A=
=0A=
    for (var i =3D 0, values =3D []; i < length; i++) {=0A=
      var opt =3D element.options[i];=0A=
      if (opt.selected) values.push(this.optionValue(opt));=0A=
    }=0A=
    return values;=0A=
  },=0A=
=0A=
  optionValue: function(opt) {=0A=
    // extend element because hasAttribute may not be native=0A=
    return Element.extend(opt).hasAttribute('value') ? opt.value : =
opt.text;=0A=
  }=0A=
}=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=
    var changed =3D ('string' =3D=3D typeof this.lastValue && 'string' =
=3D=3D typeof value=0A=
      ? this.lastValue !=3D value : String(this.lastValue) !=3D =
String(value));=0A=
    if (changed) {=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=
    =
Form.getElements(this.element).each(this.registerCallback.bind(this));=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=
        default:=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=
  KEY_HOME:     36,=0A=
  KEY_END:      35,=0A=
  KEY_PAGEUP:   33,=0A=
  KEY_PAGEDOWN: 34,=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, length =3D Event.observers.length; i < 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=
    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=
    Event._observeAndCache(element, name, observer, useCapture);=0A=
  },=0A=
=0A=
  stopObserving: function(element, name, observer, useCapture) {=0A=
    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=
      try {=0A=
        element.detachEvent('on' + name, observer);=0A=
      } catch (e) {}=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
/* prevent memory leaks in IE */=0A=
if (navigator.appVersion.match(/\bMSIE\b/))=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=
        if(element.tagName=3D=3D'BODY') break;=0A=
        var 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=
  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=
      if (!window.opera || element.tagName=3D=3D'BODY') {=0A=
        valueT -=3D element.scrollTop  || 0;=0A=
        valueL -=3D element.scrollLeft || 0;=0A=
      }=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=
}=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/global.js

function addLoadEvent(func) {=0A=
          var oldonload =3D window.onload;=0A=
          if (typeof window.onload !=3D 'function') =0A=
          {=0A=
            window.onload =3D func;=0A=
          } =0A=
          else =0A=
          {=0A=
            window.onload =3D function() =0A=
            {=0A=
            oldonload();=0A=
            func();=0A=
            };=0A=
          }=0A=
        }=0A=
        =0A=
/*=0A=
 * (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig=0A=
 * Special thanks to Dan Webb's domready.js Prototype extension=0A=
 * and Simon Willison's addLoadEvent=0A=
 *=0A=
 * For more info, see:=0A=
 * http://www.thefutureoftheweb.com/blog/adddomloadevent=0A=
 */=0A=
 =0A=
addDOMLoadEvent =3D (function(){=0A=
    // create event function stack=0A=
    var load_events =3D [],=0A=
        load_timer,=0A=
        script,=0A=
        done,=0A=
        exec,=0A=
        old_onload,=0A=
        init =3D function () {=0A=
            done =3D true;=0A=
=0A=
            // kill the timer=0A=
            clearInterval(load_timer);=0A=
=0A=
            // execute each function in the stack in the order they were =
added=0A=
            while (exec =3D load_events.shift())=0A=
                exec();=0A=
=0A=
            if (script) script.onreadystatechange =3D '';=0A=
        };=0A=
=0A=
    return function (func) {=0A=
        // if the init function was already ran, just run this function =
now and stop=0A=
        if (done) return func();=0A=
=0A=
        if (!load_events[0]) {=0A=
            // for Mozilla/Opera9=0A=
            if (document.addEventListener)=0A=
                document.addEventListener("DOMContentLoaded", init, =
false);=0A=
=0A=
            // for Internet Explorer=0A=
            /*@cc_on @*/=0A=
            /*@if (@_win32)=0A=
                document.write("<script id=3D__ie_onload defer =
src=3D//0><\/scr"+"ipt>");=0A=
                script =3D document.getElementById("__ie_onload");=0A=
                script.onreadystatechange =3D function() {=0A=
                    if (this.readyState =3D=3D "complete")=0A=
                        init(); // call the onload handler=0A=
                };=0A=
            /*@end @*/=0A=
=0A=
            // for Safari=0A=
            if (/WebKit/i.test(navigator.userAgent)) { // sniff=0A=
                load_timer =3D setInterval(function() {=0A=
                    if (/loaded|complete/.test(document.readyState))=0A=
                        init(); // call the onload handler=0A=
                }, 10);=0A=
            }=0A=
=0A=
            // for other browsers set the window.onload, but also =
execute the old window.onload=0A=
            old_onload =3D window.onload;=0A=
            window.onload =3D function() {=0A=
                init();=0A=
                if (old_onload) old_onload();=0A=
            };=0A=
        }=0A=
=0A=
        load_events.push(func);=0A=
    }=0A=
})();=0A=
/*=0A=
// remove this func after =0A=
function noFootAdHome() {    =0A=
    if(window.location =3D=3D "http://www.wired.com/" ||  =
window.location =3D=3D "http://origin.www.wired.com/" || window.location =
=3D=3D "http://stag.wired.com/" || window.location =3D=3D =
"http://origin.stag.wired.com/") {=0A=
        document.getElementById("footerAd").style.display =3D "none";=0A=
    }=0A=
}=0A=
addLoadEvent(noFootAdHome);=0A=
*/=0A=
// for safari 3=0A=
function forSafari3() {=0A=
    isSafari3 =3D false; =0A=
    if(window.devicePixelRatio) isSafari3 =3D true; =0A=
    if(!isSafari3) return false;=0A=
    document.getElementById("footer_text_size_widget").style.marginTop =
=3D "-2px"; =0A=
}=0A=
addLoadEvent(forSafari3);=0A=
=0A=
function setShellBG()=0A=
{=0A=
    var shellEl =3D "";=0A=
    if ( document.getElementById("shell") !=3D null )=0A=
    {=0A=
        shellEl =3D document.getElementById("shell");=0A=
        shellEl.style.background =3D '#000';=0A=
    } =0A=
}=0A=
=0A=
// addLoadEvent(setShellBG);=0A=
   =0A=
/* begin common cookie functions.  see =
http://techweb/javascript_commons/docs/cookies.html for documentation. */=0A=
/* Set cookie value */=0A=
function setCookie(name, value, escapeValue, expires, path, domain, =
secure) {=0A=
=0A=
    var cookieToken =3D name + '=3D' + ((escapeValue) ?  escape(value) : =
value) + ((expires) ? '; expires=3D' + expires.toGMTString() : '') + =
((path) ? '; path=3D' + path : '') + ((domain) ? '; domain=3D' + domain =
: '') + ((secure) ? '; secure' : '');=0A=
    document.cookie =3D cookieToken;=0A=
=0A=
}=0A=
=0A=
/* Get cookie value */=0A=
function getCookie(name) {=0A=
    var allCookies =3D document.cookie;=0A=
    =0A=
    var cookieName =3D name + "=3D";=0A=
    var start =3D allCookies.indexOf("; " + cookieName);=0A=
    =0A=
    if (start =3D=3D -1) {=0A=
        start =3D allCookies.indexOf(cookieName);=0A=
        if (start !=3D 0) return null;=0A=
    }=0A=
    else start +=3D 2;=0A=
    =0A=
    var end =3D document.cookie.indexOf(";", start);=0A=
    if (end =3D=3D -1) end =3D allCookies.length;=0A=
    =0A=
    return unescape(allCookies.substring(start + cookieName.length, =
end));=0A=
}=0A=
=0A=
/* Delete a cookie */=0A=
function deleteCookie(name, path, domain) {=0A=
    var value =3D getCookie(name);=0A=
    if (value !=3D null) document.cookie =3D name + '=3D' + ((path) ? '; =
path=3D' + path : '') + ((domain) ? '; domain=3D' + domain : '') + '; =
expires=3DThu, 01-Jan-70 00:00:01 GMT';=0A=
    return value;=0A=
}=0A=
=0A=
/* Test for cookie support */=0A=
function verifyCookieSafe() {=0A=
    setCookie('pingCookies', 'hello');=0A=
    if (getCookie('pingCookies')) return true;=0A=
    else return false;=0A=
}=0A=
=0A=
/* end common cookie functions. */=0A=
=0A=
/* begin text size widget */=0A=
function setActiveStyleSheet(title) {=0A=
  var i, a, main;=0A=
  for(i=3D0; (a =3D document.getElementsByTagName("link")[i]); i++) {=0A=
    if(a.getAttribute("rel").indexOf("style") !=3D -1 && =
a.getAttribute("title")) {=0A=
      a.disabled =3D true;=0A=
      if(a.getAttribute("title") =3D=3D title) a.disabled =3D false;=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
function getActiveStyleSheet() { =0A=
  var i, a;=0A=
  for(i=3D0; (a =3D document.getElementsByTagName("link")[i]); i++) {=0A=
    if(a.getAttribute("rel").indexOf("style") !=3D -1 && =
a.getAttribute("title") && !a.disabled) return a.getAttribute("title");=0A=
  }=0A=
  return null;=0A=
}=0A=
=0A=
function getPreferredStyleSheet() {=0A=
  var i, a;=0A=
  for(i=3D0; (a =3D document.getElementsByTagName("link")[i]); i++) {=0A=
    if(a.getAttribute("rel").indexOf("style") !=3D -1=0A=
       && a.getAttribute("rel").indexOf("alt") =3D=3D -1=0A=
       && a.getAttribute("title")=0A=
       ) return a.getAttribute("title");=0A=
  }=0A=
  return null;=0A=
}=0A=
=0A=
window.onunload =3D function(e) {=0A=
    var title =3D getActiveStyleSheet();=0A=
    //var expiration =3D new Date();=0A=
    //var expDuration =3D expiration.getTime() + (365*24*60*60*1000);=0A=
    //expiration.setTime(expDuration);=0A=
    setCookie("style", title, false, "", "/", "", false);=0A=
}=0A=
=0A=
var textPref =3D getCookie("style");=0A=
var title =3D textPref ? textPref : getPreferredStyleSheet();=0A=
setActiveStyleSheet(title);=0A=
=0A=
/* end text size widget */=0A=
=0A=
=0A=
=0A=
=0A=
function footerSubOffers() {=0A=
    var offersEl =3D "";=0A=
    =0A=
    var offersUL =3D "";=0A=
    =0A=
    var offersYcoord =3D "";=0A=
    =0A=
    var offersListHeight =3D "";=0A=
    =0A=
    var dropDown =3D new Boolean(false);=0A=
    =0A=
    var screenHeight =3D document.body.clientHeight;=0A=
        =0A=
    if ( document.getElementById("suboffers") !=3D null )=0A=
    {=0A=
        =0A=
        offersEl =3D document.getElementById("suboffers");=0A=
        =0A=
        offersYcoord =3D findPosY(offersEl);=0A=
          =0A=
        if ( document.getElementById("suboffers_list") !=3D null )=0A=
        {=0A=
        =0A=
            offersUL =3D document.getElementById("suboffers_list");=0A=
            =0A=
            offersListHeight =3D offersUL.offsetHeight;=0A=
=0A=
            if ( ( offersYcoord + 393 ) < screenHeight)=0A=
            {=0A=
                dropDown =3D true;=0A=
            }=0A=
=0A=
            offersEl.onclick =3D function()=0A=
            {=0A=
=0A=
               offersEl.style.backgroundPosition =3D "0 -16px";=0A=
               =0A=
               if (dropDown =3D=3D false)=0A=
               {=0A=
                  offersUL.style.top =3D "-393px"; =0A=
               }=0A=
               =0A=
               offersUL.style.display =3D "block";=0A=
               =0A=
               offersUL.onmouseover  =3D function()=0A=
               {=0A=
                  offersEl.style.backgroundPosition =3D "0 -16px";=0A=
                  =0A=
                  offersUL.style.display =3D "block";=0A=
               }=0A=
            }=0A=
            =0A=
            offersEl.onmouseout =3D function()=0A=
            {=0A=
               =0A=
               offersEl.style.backgroundPosition =3D "0 0";=0A=
               offersUL.style.display =3D "none";=0A=
               =0A=
            }=0A=
        =0A=
        }=0A=
        =0A=
    } =0A=
=0A=
}=0A=
=0A=
function findPosY(obj) {=0A=
    var curtop =3D 0;=0A=
    if (obj.offsetParent) {=0A=
        while (obj.offsetParent) {=0A=
            curtop +=3D obj.offsetTop;=0A=
            obj =3D obj.offsetParent;=0A=
        }=0A=
    }=0A=
    else if (obj.y)=0A=
        curtop +=3D obj.y;=0A=
    return curtop;=0A=
}=0A=
=0A=
addLoadEvent(footerSubOffers);=0A=
=0A=
function showSponsorTxt() {=0A=
    var sponsorEl =3D "";=0A=
    var popularEl =3D "";=0A=
    var multimediaEl =3D "";=0A=
    var adImg =3D "";=0A=
    var popularAdImg =3D "";=0A=
    var multimediaAdImg =3D "";=0A=
    if ( document.getElementById("sponsor") !=3D null )=0A=
    {=0A=
        sponsorEl =3D document.getElementById("sponsor");=0A=
        =0A=
        adImg =3D sponsorEl.getElementsByTagName('img');=0A=
        =0A=
        if ( adImg.length !=3D 0 )=0A=
        {=0A=
            for (var i=3D0; i < adImg.length; i++)=0A=
            {=0A=
            =0A=
                if (adImg[i].width > 1 && =
document.getElementById("byTxt") !=3D null )=0A=
                    document.getElementById("byTxt").style.display =3D =
"block";=0A=
            =0A=
            }=0A=
        }=0A=
    =0A=
    } =0A=
    if ( document.getElementById("popular_sponsor") !=3D null )=0A=
    {=0A=
        popularEl =3D document.getElementById("popular_sponsor");=0A=
        =0A=
        popularAdImg =3D popularEl.getElementsByTagName('img');=0A=
        =0A=
        if ( popularAdImg.length !=3D 0 )=0A=
        {=0A=
            for (var i=3D0; i < popularAdImg.length; i++)=0A=
            {=0A=
            =0A=
                if (popularAdImg[i].width > 1 && =
document.getElementById("popular_byTxt") !=3D null )=0A=
                    =
document.getElementById("popular_byTxt").style.display =3D "block";=0A=
            =0A=
            }=0A=
        }=0A=
    =0A=
    }=0A=
    =0A=
    if ( document.getElementById("sponsorMM") !=3D null )=0A=
    {=0A=
        multimediaEl =3D document.getElementById("sponsorMM");=0A=
        =0A=
        multimediaAdImg =3D multimediaEl.getElementsByTagName('img');=0A=
        =0A=
        if ( multimediaAdImg.length !=3D 0 )=0A=
        {=0A=
            for (var i=3D0; i < multimediaAdImg.length; i++)=0A=
            {=0A=
            =0A=
                if (multimediaAdImg[i].width > 1 && =
document.getElementById("byTxtMM") !=3D null )=0A=
                    document.getElementById("byTxtMM").style.display =3D =
"block";=0A=
            =0A=
            }=0A=
        }=0A=
    =0A=
    }  =0A=
=0A=
}=0A=
=0A=
addLoadEvent(showSponsorTxt);=0A=
=0A=
// Social Sites Dropdown=0A=
// no longer used with new social bookmarking=0A=
function showHideSocial(obj) {=0A=
    =0A=
    var hiddenList =3D "";=0A=
    =0A=
    if ( document.getElementById("hidden_list") !=3D null )=0A=
    {=0A=
    =0A=
        hiddenList =3D document.getElementById('hidden_list');=0A=
        if (obj.id =3D=3D 'hidden_list'){=0A=
            hiddenList.style.display =3D 'none';=0A=
        } else {=0A=
            hiddenList.style.display =3D 'block';=0A=
        }=0A=
    }=0A=
}=0A=
=0A=
// new SocialBkmrking =0A=
/*function diggitAdjust() {=0A=
    var diggitCont =3D $("sb_art_diggit");=0A=
    var diggitImg =3D diggitCont.getElementsByTagName("img");=0A=
    if(diggitCont) {=0A=
        var numDiggs =3D diggitCont.getElementsByClassName("dl");=0A=
        for(var i=3D0; i<numDiggs.length; i++){=0A=
            alert("numDiggs"+i);=0A=
            //numDiggs[i].style.cssFloat =3D "right"; //styleFloat in ie=0A=
            //numDiggs[i].style.right =3D "20px"=0A=
        }=0A=
        //new Insertion.before=0A=
        for(var j=3D0; j<diggitImg.length; j++) {=0A=
            diggitImg[j].style.height =3D "30px";=0A=
        }=0A=
    }=0A=
    else return false; =0A=
}=0A=
addLoadEvent(diggitAdjust);*/=0A=
=0A=
// Popup Window with auto centering=0A=
function launchWindow(url, maxW, maxH){=0A=
=0A=
    offset =3D 100;=0A=
=0A=
    LeftPosition =3D (screen.width) ? (screen.width-maxW)/2 : 0;=0A=
    TopPosition =3D (screen.height) ? ((screen.height-maxH)/2)-offset : =
0;=0A=
=0A=
    var w =3D window.open ( url, 'myWindow', 'width=3D'+maxW+', =
height=3D'+maxH+', top=3D'+TopPosition+', =
left=3D'+LeftPosition+',scrollbars=3Dyes,location=3Dyes,menubar=3Dyes,sta=
tus=3Dyes,toolbar=3Dyes,resizable=3Dyes');=0A=
    w.focus();=0A=
=0A=
}=0A=
=0A=
// Popup window for video library items, from style.com (only difference =
with the above is that =0A=
//  below has all options turned off)=0A=
function popUpVideoConsole(url) {=0A=
    var detWindow=3D"";=0A=
    =
detWindow=3Dwindow.open(url,'videoConsole','menubar=3Dno,toolbar=3Dno,loc=
ation=3Dno,directories=3Dno,status=3Dno,scrollbars=3Dno,resizable=3Dno,wi=
dth=3D1050,height=3D723');=0A=
   }=0A=
   =0A=
=0A=
//Google Search validation: Don't submit if no search query=0A=
function validateSearch(formName) {=0A=
    if(formName.elements["query"].value =3D=3D "") {=0A=
        return false;=0A=
    } else {=0A=
        return true;=0A=
    }=0A=
}=0A=
=0A=
function setSearchDefaults(query, sitename, targetSearchForm) {=0A=
    if(targetSearchForm!=3D"" && query!=3D"") {=0A=
        document.forms[targetSearchForm].query.value=3Dquery;=0A=
    }=0A=
    if(targetSearchForm!=3D"" && sitename!=3D"") {=0A=
        =
for(i=3D0;i<document.forms[targetSearchForm].siteAlias.options.length;i++=
) {=0A=
            =
if(document.forms[targetSearchForm].siteAlias.options[i].value=3D=3Dsiten=
ame) {=0A=
                =
document.forms[targetSearchForm].siteAlias.options[i].selected=3Dtrue;=0A=
            }=0A=
        }=0A=
    }=0A=
}=0A=
=0A=
// function to get login status=0A=
function loginStatus() {=0A=
    var cookies =3D document.cookie;=0A=
    var loginLink =3D document.getElementById("login_link");=0A=
    var logoutLink =3D document.getElementById("logout_link");=0A=
    =0A=
    // see if wired_reddit cookie exists=0A=
    var redditCookie =3D cookies.indexOf("wired_reddit=3D");=0A=
    =0A=
    if(!loginLink && !logoutLink) return false;=0A=
    if(redditCookie !=3D -1) {=0A=
        loginLink.style.display =3D "none";=0A=
        logoutLink.style.display =3D "inline";=0A=
    } else {=0A=
        loginLink.style.display =3D "inline";=0A=
        logoutLink.style.display =3D "none";=0A=
    }=0A=
}=0A=
=0A=
addLoadEvent(loginStatus);=0A=
=0A=
// function to get login status for header =0A=
// TODO - combine these two functions=0A=
function loginStatus2() {=0A=
    var cookies =3D document.cookie;=0A=
    var loginLinkHome =3D document.getElementById("login_link-home");=0A=
    var logoutLinkHome =3D document.getElementById("logout_link-home");=0A=
    =0A=
    // see if wired_reddit cookie exists=0A=
    var redditCookie =3D cookies.indexOf("wired_reddit=3D");=0A=
    =0A=
    if(!loginLinkHome && !logoutLinkHome) return false;=0A=
    if(redditCookie !=3D -1) {=0A=
        loginLinkHome.style.display =3D "none";=0A=
        logoutLinkHome.style.display =3D "inline";=0A=
    } else {=0A=
        loginLinkHome.style.display =3D "inline";=0A=
        logoutLinkHome.style.display =3D "none";=0A=
    }=0A=
}=0A=
addLoadEvent(loginStatus2);=0A=
=0A=
=0A=
function myAlert(e) {=0A=
   //alert(e);=0A=
}=0A=
=0A=
// IE6 functions=0A=
=0A=
// cache css bg images for IE6=0A=
if ( document.all )=0A=
{  =0A=
    try {=0A=
      document.execCommand("BackgroundImageCache", false, true);=0A=
    } catch(err) {}=0A=
}=0A=
=0A=
// IE hover and Z-index fix for main navigation=0A=
startList =3D function() {=0A=
    if (document.all&&document.getElementById) {=0A=
        zCount =3D 100;=0A=
       if (document.getElementById("nav") !=3D null) {=0A=
           navRoot =3D document.getElementById("nav");=0A=
           for (i=3D0; i<navRoot.childNodes.length; i++) {=0A=
             node =3D navRoot.childNodes[i];=0A=
             if (node.nodeName=3D=3D"LI") {=0A=
                node.style.zIndex =3D zCount;=0A=
                zCount--;=0A=
                node.onmouseover=3Dfunction() {=0A=
                    this.className+=3D" over";=0A=
                }=0A=
                node.onmouseout=3Dfunction() {=0A=
                    this.className=3Dthis.className.replace(" over", "");=0A=
                }=0A=
             }=0A=
           }=0A=
       }=0A=
    }=0A=
}=0A=
=0A=
addLoadEvent(startList);=0A=
  =0A=
=0A=
=0A=
=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/ads/dartCall.js

/* empty array to prevent js error in debugging info */=0A=
var dartCalls =3D new Array();=0A=
=0A=
// dart global code=0A=
// Defines a dart object and global random number and tile counter. =0A=
var dart =3D new Object();=0A=
dart["tile_num"] =3D undefined;=0A=
dart["ord"] =3D Math.random()*10000000000000000;=0A=
dart["url"] =3D "http://ad.doubleclick.net/adj/";=0A=
=0A=
=0A=
// dart ad reloading code.=0A=
// Grabs the DART code from the hidden iframe and places that in the =
ad's div.=0A=
function dartSwap(placement) {=0A=
  var frameRef =3D document.getElementById('dartFrame_'+placement);=0A=
  var htmlRef =3D (frameRef.contentDocument || =
frameRef.contentWindow.document).getElementById('adHolder').innerHTML;=0A=
  // Destroy the content in the iframe. This prevents double ads running =
(i hope). =0A=
  (frameRef.contentDocument || =
frameRef.contentWindow.document).location.replace("/nolayout/blankadconte=
nt");=0A=
  =0A=
  // Now strip out the doubleclick call that ends up in the iframe's =
innerHTML. This avoids double doubleclick hits.=0A=
  htmlRef =3D htmlRef.toString();=0A=
  var regExp =3D new RegExp(dart[placement].dartCall,'i');=0A=
  var frameHTML =3D new String(htmlRef);=0A=
  frameHTML =3D frameHTML.replace(regExp, '');=0A=
  frameHTML =3D frameHTML.replace(/<script =
.*?src=3D"\?".*?><\/script>/i,'');=0A=
  // Finally plop the iframe's html into the div. =0A=
  document.getElementById('dartTarget_'+placement).innerHTML =3D =
frameHTML; =0A=
}=0A=
=0A=
// Goes through all of the ads on the page and refreshes them.=0A=
function dartReload() {=0A=
  // refresh the ord. =0A=
  dart["ord"] =3D Math.random()*10000000000000000;=0A=
  var adUnits =3D document.getElementsByTagName('iframe')=0A=
  for(i=3D0; i <adUnits.length;i++) {=0A=
   if(adUnits[i].className =3D=3D 'hiddenDAU') {=0A=
     adParts =3D adUnits[i].id.split('_');=0A=
	 if(i =3D=3D 0) {dart["tile_num"] =3D undefined; }=0A=
	 dartRequest(adParts[1]);=0A=
   }=0A=
  }	=0A=
 }=0A=
 =0A=
 // Makes a DART request. Request is in hidden iframe. Callback in the =
iframe calls=0A=
 // dartSwap when the ad is finished loading. =0A=
 function dartRequest(posId) {=0A=
 if (typeof dart["tile_num"] =3D=3D "undefined"){ dart["tile_num"]=3D1;} =
else { dart["tile_num"]++; }=0A=
 var sysparams =3D 'tile=3D'+dart["tile_num"]+';ord=3D'+dart["ord"];=0A=
 dart[posId].dartCall =3D =
dart["url"]+dart[posId].dartCall+dart[posId].dcopt+dart[posId].placement+=
sysparams+'?';=0A=
  var dartURL =3D '/nolayout/displayad';=0A=
		dartURL +=3D '?exe=3DdartSwap("'+posId+'")';=0A=
  		dartURL +=3D '&req=3D'+dart[posId].dartCall;=0A=
	=0A=
  // Disabling and reverting back to document.write code.=0A=
  //var x =3D document.getElementById('dartFrame_'+posId);=0A=
  //(x.contentDocument || =
x.contentWindow.document).location.replace(dartURL);=0A=
  =0A=
  // Temp document.write code. =0A=
  document.write('<scr'+'ipt type=3D"text/javascript" =
src=3D"'+dart[posId].dartCall+ '"></scr'+'ipt>');=0A=
  =0A=
=0A=
  =0A=
  =0A=
}=0A=
=0A=
/* RESTORE THIS CODE ONCE WE GO BACK TO IFRAME BASED ADS=0A=
//on window load display all ads in Safari.=0A=
var detect =3D navigator.userAgent.toLowerCase();=0A=
isSafari =3D detect.indexOf('safari') + 1;=0A=
if(isSafari) {=0A=
  var isSafari =3D 'true';=0A=
  addEvent(window, "load", dartReload);=0A=
} else {=0A=
  var isSafari =3D 'false';=0A=
}=0A=
=0A=
*/=0A=
var isSafari =3D 'false'; // Delete once going back to iframes. =0A=
=0A=
// Not currently used. =0A=
var debug =3D {=0A=
	log: function(data) {=0A=
		var head =3D document.getElementsByTagName('head').item(0)=0A=
		debugCSS =3D document.createElement('link');=0A=
		debugCSS.href =3D '/css/debug.css';=0A=
		debugCSS.type =3D 'text/css';=0A=
		debugCSS.rel =3D 'stylesheet';=0A=
		var body =3D document.getElementsByTagName('body').item(0)=0A=
		var debugLayer =3D document.getElementById('debug');=0A=
		if(!debugLayer) {=0A=
			head.appendChild(debugCSS);=0A=
			debugLayer =3D document.createElement('div');=0A=
			debugLayer.id =3D 'debug';=0A=
			body.appendChild(debugLayer);=0A=
			$('debug').innerHTML =3D 'Debug Output window <span><a =
href=3D\"javascript: $(\'debug\').style.display=3D\'none\'; void =
0;\">[X]Close</a></span><hr>'=0A=
		}=0A=
=0A=
		$('debug').innerHTML =3D $('debug').innerHTML + data + '<br>' ;=0A=
	 } =0A=
}=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/stats/tracking.js

// Tracking object used to make requests to zag.js. To refresh tracking,=0A=
// just call TrackingObject.drawTracking();=0A=
var TrackingObject =3D {=0A=
    resolution : screen.availWidth + "x" + screen.availHeight,=0A=
	domain: "",=0A=
	status: null,=0A=
	nodeId: "",=0A=
    =0A=
	drawTracking : function() {=0A=
       // Remove all children of the tracking node. =0A=
	   var trackingNode =3D document.getElementById(this.nodeId);=0A=
	   while (trackingNode.firstChild)  {=0A=
         trackingNode.removeChild(trackingNode.firstChild);=0A=
       }=0A=
=0A=
	   var output;=0A=
//       output =3D this.domain +'?Log=3D1';=0A=
=0A=
// Changed by Horace to support New NPP or Old tag generation.=0A=
       if (this.domain !=3D null && this.domain !=3D '') {=0A=
           output =3D this.domain +'?Log=3D1';=0A=
       } else {=0A=
           output =3D 'http://' + window.location.host =
+'/js/stats/zag.js?Log=3D1';=0A=
       }=0A=
       output +=3D '&URL=3D' + (document.location);=0A=
       output +=3D '&screenres=3D'+this.resolution;=0A=
       output +=3D '&referrer=3D'+document.referrer;=0A=
       output +=3D '&cachedefeat=3D' + (new Date()).getTime() + '-' + =
Math.floor(Math.random()*1000001);=0A=
       output +=3D '&httpStatusCode=3D'+this.status;=0A=
		=0A=
	   // Create a script node. =0A=
	   var node =3D document.createElement("script");=0A=
	   node.src=3D output;=0A=
	   document.getElementById("zagHolder").appendChild(node);=0A=
    },=0A=
	=0A=
	setDomain : function(domain) {=0A=
	  this.domain =3D domain;=0A=
	  },=0A=
	  =0A=
	setStatus : function(status) {=0A=
	  this.status =3D status;=0A=
	  },=0A=
	  =0A=
	setNodeId : function(nodeId) {=0A=
	  this.nodeId =3D nodeId;=0A=
	  }=0A=
}
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/comments/commentBroker.js

/**=0A=
 * @author Paul Tepper Fisher -- May 1, 2007=0A=
 * =0A=
 */=0A=
=0A=
var EventBroker =3D Class.create();=0A=
EventBroker.prototype =3D {=0A=
	_eventListeners: {},=0A=
	=0A=
	initialize: function() {=0A=
		this._eventListeners =3D {};=0A=
	},	=0A=
=0A=
    =0A=
    addEventListener: function(eventType, context, handler) {=0A=
		CommentBroker.prototype.trace("addedEvent: " + eventType + " " + =
context + " " + handler);=0A=
        if (this._eventListeners[eventType] =3D=3D undefined) {=0A=
            this._eventListeners[eventType] =3D [];=0A=
        }=0A=
        this._eventListeners[eventType].push({context: context, handler: =
handler});=0A=
    },=0A=
    removeEventListener: function(eventType, context) {=0A=
        if (this._eventListeners[eventType] !=3D undefined) {=0A=
            this._eventListeners[eventType] =3D =
this._eventListeners[eventType].findAll(function(listener) {=0A=
                return listener.context.id !=3D context.id;=0A=
            });=0A=
            if (this._eventListeners[eventType].length =3D=3D 0) {=0A=
                delete this._eventListeners[eventType];=0A=
            }=0A=
        }=0A=
    },=0A=
    notifyListeners: function() {=0A=
        var args =3D $A(arguments), response =3D args.pop(), =
callbackParams =3D args;=0A=
        // Handle multiple events, one at a time=0A=
        if (response.events !=3D undefined) {=0A=
            response.events.each(function(event) {=0A=
                this.notifyListenersOfEvent(event, callbackParams);=0A=
            });=0A=
        // Otherwise, handle single event=0A=
        } else if (response.eventType !=3D undefined) {=0A=
            this.notifyListenersOfEvent(response, callbackParams);=0A=
        }=0A=
    },=0A=
    notifyListenersOfEvent: function(event, callbackParams) {=0A=
		var listeners =3D this._eventListeners[event];=0A=
        // put event as first argument=0A=
        //callbackParams.unshift(event);=0A=
        if (listeners && listeners.each) {=0A=
            listeners.each(function(listener) {=0A=
                listener.handler.apply(listener.context, callbackParams);=0A=
            });=0A=
        }=0A=
    }=0A=
};=0A=
=0A=
var EventListener =3D Class.create();=0A=
EventListener.prototype =3D {=0A=
    initialize: function() {=0A=
        if (this.id =3D=3D undefined) {=0A=
            var random =3D Math.floor(Math.random() * 10001);=0A=
            this.id =3D (random + "_" + new Date().getTime()).toString();=0A=
        }=0A=
    }=0A=
};=0A=
=0A=
var DOMElement =3D {=0A=
    get: function(elementId, type) {=0A=
        if ($(elementId)) {=0A=
            return $(elementId);=0A=
        } else {=0A=
            var element =3D document.createElement(type);=0A=
            element.id =3D elementId;=0A=
            return element;=0A=
        }=0A=
    }=0A=
};=0A=
=0A=
var CommentBroker =3D Class.create();=0A=
CommentBroker.prototype =3D {=0A=
	// constants=0A=
	COMMENT_REQ_: "COMMENT_REQ_",=0A=
	GET_COMMENTS_EVENT: "GET_COMMENTS_EVENT",=0A=
	ERROR_STATUS: "ERROR",=0A=
	GETCOMMENTS_URL: "/comments/getcomments",=0A=
	COMMENTS_PER_PAGE: 10,=0A=
	COOKIE_NAME: "wired_reddit",=0A=
	LOGIN_URL: "/user/login",=0A=
	REGISTRATION_URL: "/user/registration",=0A=
	REDIRECT_URL: "/user/commentLoginRedirect",=0A=
	SHOWALLCOMMENTS_PARAM: "showAllComments",=0A=
	COMMENTID_PARAM: "commentId",=0A=
	LOGOUT_URL: "/user/logout",=0A=
	PROFILEUPDATE_URL: "/user/profile_update",=0A=
	PAGENUM_PARAM: "commentPageNum",=0A=
	=0A=
	//properties=0A=
	requestCounter: 0,=0A=
	activeForm: undefined,=0A=
	isPendingRequest: false,=0A=
	requestData: undefined,=0A=
	requestId: undefined,=0A=
	baseUrl: undefined,=0A=
	eventBroker: undefined,=0A=
	activeScripts: [],=0A=
	currentCommentKey: undefined,=0A=
	commentPageRef: undefined,=0A=
	currentPage: undefined,=0A=
	includePagination: false, //default for includingpagination -- gets =
overridden in requestComments=0A=
	=0A=
	// constructor=0A=
	initialize: function(url) {=0A=
		this.baseUrl =3D url;=0A=
		this.eventBroker =3D new EventBroker();=0A=
	},=0A=
	=0A=
	 initiateCall: function(eventType, eventListener, requestUrl, url, =
limit, offset, optionalCommentId) {=0A=
	 	//cache the current "Comment key"=0A=
		this.currentCommentKey =3D url;=0A=
		var ssoCookie =3D this.getSSOCookie();=0A=
	 	var eventId =3D this.registerEvent("comments", eventListener);=0A=
		=0A=
		var paramData =3D $H({url: url, uid: ssoCookie, offset: offset, =
callback: this.getCallback(), eventName: eventId,  "markdown": true });=0A=
		if ((optionalCommentId !=3D undefined) && (optionalCommentId !=3D "")) =
{=0A=
			CommentBroker.prototype.trace("Including commentId: " + =
optionalCommentId);=0A=
			paramData.merge($H({id: optionalCommentId, limit: 1}));=0A=
		} else {=0A=
			paramData.merge($H({limit: limit}));=0A=
		}=0A=
		var dynScript =3D this.createScriptRequest(requestUrl, paramData);=0A=
		=0A=
		CommentBroker.prototype.trace("initiateCall: "  + requestUrl + " data: =
" + paramData);=0A=
		eventListener.setDynamicScript(dynScript);=0A=
	 },=0A=
	 =0A=
	 createScriptRequest: function(url, paramData) {=0A=
	 	var jsUrl =3D url + "?" + paramData.toQueryString();=0A=
		var temp =3D document.createTextNode(paramData);=0A=
		=0A=
		var dynScript =3D new JSONscriptRequest(jsUrl);=0A=
		dynScript.buildScriptTag();=0A=
		dynScript.addScriptTag();=0A=
		this.activeScripts.push(dynScript);=0A=
		return dynScript;=0A=
	 },=0A=
	 =0A=
	 setCommentPageRef: function(pageRef) {=0A=
	 	if (pageRef =3D=3D undefined) {=0A=
			return;=0A=
		}=0A=
		if (this.commentPageRef !=3D undefined) {=0A=
			CommentBroker.prototype.trace("commentPageRef is already defined -- =
must be page refresh");=0A=
		}=0A=
		CommentBroker.prototype.trace("commentPageRef.uid: " + pageRef);=0A=
	 	this.commentPageRef =3D pageRef;=0A=
	 },=0A=
	 =0A=
	 getCallback: function() {=0A=
	 	return "commentBroker.handleEvent";=0A=
	 },=0A=
	 =0A=
	 registerEvent: function(eventType, eventListener) { =0A=
	 	var eventId =3D (eventType + "_" + =
(CommentBroker.prototype.requestCounter++));=0A=
	 	this.eventBroker.addEventListener(eventId, eventListener, =
eventListener.handleCallbackEvent);	=0A=
		return eventId;=0A=
	 },=0A=
	 =0A=
	 =0A=
	 handleEvent: function(jsonData, event) {=0A=
	 	this.eventBroker.notifyListenersOfEvent(event, new Array(jsonData));=0A=
	 },=0A=
	 =0A=
	 handleUserEvent: function(event) {=0A=
	 	this.eventBroker.notifyListenersOfEvent(event, new Array(event));=0A=
	 },=0A=
	 =0A=
	 initAction: function(actionMode, commentId, uid) {=0A=
	 	if (actionMode =3D=3D "report" || actionMode =3D=3D "delete") { =0A=
		 	this.sendAction(actionMode, commentId, uid);=0A=
		} else {=0A=
			// we are instead triggering an edit, mod, or reply action=0A=
			=0A=
		}=0A=
	 },=0A=
	 =0A=
	 isDev: function() {=0A=
	 	return (document.location.hostname.indexOf("www.wired.com") < 0 );=0A=
	 },=0A=
	 =0A=
	 getSSOCookie: function() {=0A=
	 	if (this.isDev()) {=0A=
			return readCookie(CommentBroker.prototype.COOKIE_NAME);	=0A=
		} else {=0A=
			return "";=0A=
		}=0A=
	 	=0A=
	 },=0A=
	 =0A=
	 sendAction: function(actionMode, commentId, uid, comment, =
commentEntity) {=0A=
	 	var actionListener =3D new CommentActionListener(commentId, uid, =
actionMode, commentEntity);=0A=
		var eventId =3D this.registerEvent(actionMode, actionListener);=0A=
		var ssoCookie =3D this.getSSOCookie();=0A=
		var paramData =3D $H({action: actionMode, hash: =
this.commentPageRef.uid, uid: ssoCookie, url: this.currentCommentKey , =
id: commentId, callback: this.getCallback(), eventName: eventId, =
"markdown": true });=0A=
		if (comment !=3D undefined) {=0A=
			paramData.merge($H({comment: comment}));=0A=
		}=0A=
		var dynScript =3D this.createScriptRequest(this.getCommentsUrl(), =
paramData);=0A=
		actionListener.setDynamicScript(dynScript);=0A=
	 },=0A=
	 =0A=
	 voteAction: function(commentId, uid, vote, commentEntity) {=0A=
	 	CommentBroker.prototype.debug("Voting: " + commentId + " " + vote);=0A=
		if (this.commentPageRef !=3D undefined && =
!this.commentPageRef.isLoggedIn()) {=0A=
			CommentBroker.prototype.message("Sorry, you must be logged in in =
order to vote.");=0A=
			return;=0A=
		}=0A=
	 	var actionMode =3D CommentEntity.prototype.MOD_ACTION;=0A=
	 	var actionListener =3D new VoteActionListener(commentId, uid, vote, =
commentEntity);=0A=
		var eventId =3D this.registerEvent(actionMode, actionListener);=0A=
		var ssoCookie =3D this.getSSOCookie();=0A=
		var paramData =3D $H({dir: vote, action: actionMode, hash: =
this.commentPageRef.uid, uid: ssoCookie, url: this.currentCommentKey , =
id: commentId, callback: this.getCallback(), eventName: eventId });=0A=
		var dynScript =3D this.createScriptRequest(this.getCommentsUrl(), =
paramData);=0A=
		actionListener.setDynamicScript(dynScript);=0A=
	 },=0A=
	 =0A=
	 =0A=
	 exception: function(e) {=0A=
	 	var msg =3D "Exception: ";=0A=
	 	for (prop in e) {=0A=
			msg +=3D prop + ": " + e[prop] + "   ";=0A=
		}	=0A=
		CommentBroker.prototype.error (msg);=0A=
	 },=0A=
	 =0A=
	 requestComments: function(articleId, pageNum, numCommentsPerPage, =
includePagination, optionalCommentId) {=0A=
	 	CommentBroker.prototype.debug("RequestingComments: " + articleId + " =
pageNum: " + pageNum + "include: " + includePagination);=0A=
		var commentListener =3D new CommentListener(articleId, pageNum, =
(numCommentsPerPage !=3D undefined ? numCommentsPerPage : =
CommentBroker.prototype.COMMENTS_PER_PAGE), includePagination);=0A=
		this.includePagination =3D includePagination;=0A=
		this.currentPage =3D pageNum;=0A=
		//this[currentPage] =3D pageNum;=0A=
		//globalPageNum =3D pageNum;=0A=
		this.initiateCall(CommentBroker.prototype.GET_COMMENTS_EVENT, =
commentListener, =0A=
			this.getCommentsUrl(), articleId, =0A=
			(numCommentsPerPage !=3D undefined ? numCommentsPerPage : =
CommentBroker.prototype.COMMENTS_PER_PAGE),=0A=
		    pageNum, optionalCommentId);=0A=
	 },=0A=
	 =0A=
	  refreshPage: function() {=0A=
	  	var curPageNum =3D this.currentPage; =0A=
		if (curPageNum =3D=3D undefined) {=0A=
			alert("Invalid PageNum");=0A=
			curPageNum =3D 0;=0A=
		} else {=0A=
			//alert("Page: " + curPageNum);=0A=
		}=0A=
	 	this.renderPage(curPageNum);=0A=
	 },=0A=
	 =0A=
	 renderPage: function(pageNum) {=0A=
	 	CommentBroker.prototype.trace("CommentBroker::Rendering Page: " + =
pageNum + "commentsPerPage: " + =
this.commentPageRef.commentPageRef.commentsPerPage);=0A=
		this.requestComments(this.currentCommentKey, pageNum, =
this.commentPageRef.commentPageRef.commentsPerPage, =
this.includePagination);=0A=
	 },=0A=
	 =0A=
	 setPageNumUrl: function(pageNum) {=0A=
	 	var curLoc =3D document.location.href;=0A=
		if (curLoc.indexOf(CommentBroker.prototype.PAGENUM_PARAM) >=3D 0) {=0A=
			// pagenum in url=0A=
			var regex =3D /(commentPageNum).(\d+)/g;=0A=
			var result =3D curLoc.match(regex);=0A=
			var replacedUrl =3D curLoc.replace(regex, ("$1" + "=3D" + pageNum));=0A=
			if (replacedUrl !=3D undefined) {=0A=
				curLoc =3D replacedUrl;=0A=
			}=0A=
		} else {=0A=
			if (curLoc.indexOf("?") >=3D 0) {=0A=
				curLoc +=3D "&";=0A=
			} else {=0A=
				curLoc +=3D "?"=0A=
			}=0A=
			curLoc +=3D CommentBroker.prototype.PAGENUM_PARAM + "=3D"  + pageNum;=0A=
		}=0A=
=0A=
		document.location =3D curLoc;=0A=
	 },=0A=
	 =0A=
	 getSeeAllCommentsLink: function(commentId) {=0A=
 			var link =3D document.location.href;=0A=
			if (link.indexOf("?") > -1) {=0A=
				link +=3D "&";=0A=
			} else {=0A=
				link +=3D "?";=0A=
			}=0A=
			link +=3D CommentBroker.prototype.SHOWALLCOMMENTS_PARAM + "=3Dtrue";=0A=
			if (commentId !=3D undefined) {=0A=
				link +=3D "&" + CommentBroker.prototype.COMMENTID_PARAM + "=3D" + =
commentId;=0A=
			}=0A=
			return link;=0A=
 	},=0A=
		 =0A=
	 goToSeeAllCommentsPage: function(commentId) {=0A=
	 	// if commentId is not empty, then it is a permalink=0A=
		var link =3D this.getSeeAllCommentsLink(commentId);=0A=
		if (link !=3D undefined) {=0A=
			CommentBroker.prototype.debug("Going to: " + link);=0A=
			document.location =3D link;=0A=
		}=0A=
	 },=0A=
=0A=
	getCommentsUrl: function () {=0A=
		return (this.baseUrl);=0A=
	},=0A=
	 =0A=
	 error: function(message) {=0A=
	 	alert (message);=0A=
	 },=0A=
	 =0A=
	 debug: function(message) {=0A=
	 	//alert(message);=0A=
	 },=0A=
	 =0A=
	 trace: function(message) {=0A=
	 	//alert (message);=0A=
	 },=0A=
	 =0A=
	 /**=0A=
	  * Handles Messages to be displayed to user=0A=
	  * @param {String} message=0A=
	  */=0A=
	 message: function(message) {=0A=
	 	alert(message);=0A=
	 }=0A=
	 =0A=
	 =0A=
	 =0A=
};=0A=
=0A=
var JSONListener =3D Class.create();=0A=
JSONListener.prototype =3D {=0A=
	ERROR_STATUS: "ERROR",=0A=
	CROSS_DOMAIN_HOST: "samgdehd08.advancemags.com",=0A=
	context: undefined,=0A=
	scriptRef: undefined,=0A=
	=0A=
	=0A=
	=0A=
	handleCallbackEvent: function(jsonData) {=0A=
		if (jsonData =3D=3D undefined) {=0A=
			CommentBroker.prototype.debug("jsonData is undefined.");=0A=
			return;=0A=
		}=0A=
		var unescapedResponse =3D unescape(jsonData);=0A=
		var jsonObj =3D JSON.parse(unescapedResponse);=0A=
		if (jsonObj =3D=3D undefined || jsonObj.status =3D=3D =
JSONListener.prototype.ERROR_STATUS) {=0A=
			CommentBroker.prototype.error("Error parsing JSON response");	=0A=
			return;=0A=
		} else {=0A=
			//extract message from response wrapper=0A=
			var jsonData =3D (jsonObj.responses[0]);=0A=
			var uid =3D jsonObj["hash"];=0A=
			CommentBroker.prototype.trace(uid);=0A=
			this.doExtraction(jsonData, uid);=0A=
			//remove dynamic script tag=0A=
			this.removeDynamicScript();=0A=
			return jsonData;=0A=
		} 	=0A=
	},=0A=
	=0A=
	removeDynamicScript: function() {=0A=
		if (this.scriptRef !=3D undefined) {=0A=
			this.scriptRef.removeScriptTag();=0A=
		}=0A=
	},=0A=
	=0A=
	setDynamicScript: function(scriptRef) {=0A=
		this.scriptRef =3D scriptRef;=0A=
	}=0A=
	=0A=
};=0A=
var CommentListener =3D Class.create();=0A=
=0A=
//CommentListener.prototype =3D {};=0A=
Object.extend(=0A=
CommentListener.prototype =3D {=0A=
	articleId: undefined,=0A=
	startPageNum: 0,=0A=
	numCommentsPerPage: undefined,=0A=
	includePagination: false,=0A=
	//constants=0A=
	COMMENT_CONTAINER: "commentContainer",	=0A=
=0A=
	initialize: function(articleId, pageNum, numCommentsPerPage, =
includePagination) {=0A=
		this.articleId =3D articleId;=0A=
		if (pageNum !=3D undefined) {=0A=
			this.startPageNum =3D pageNum;=0A=
		}=0A=
		this.numCommentsPerPage =3D numCommentsPerPage;=0A=
		this.includePagination =3D includePagination;	=0A=
	},=0A=
	=0A=
	doExtraction: function(data, uid) {=0A=
		CommentBroker.prototype.trace("in doExtraction: " + =
JSON.stringify(data) + " uid: " + uid);=0A=
		var wrapperId =3D "CommentPage_WrapperElem";=0A=
		var oldWrapper =3D $(wrapperId);=0A=
		if (oldWrapper !=3D undefined) {=0A=
			oldWrapper.remove();=0A=
		}=0A=
		var commentPageWrapper =3D document.createElement("DIV");	=0A=
		commentPageWrapper.setAttribute("id", wrapperId);=0A=
		commentPageWrapper.id =3D wrapperId;=0A=
		=0A=
		var commentPageHolder =3D =
$(CommentListener.prototype.COMMENT_CONTAINER);=0A=
		=0A=
		commentPageHolder.appendChild(commentPageWrapper);=0A=
		var commentPage =3D new CommentPage(commentPageWrapper, =
this.includePagination, data, uid);=0A=
		commentBroker.setCommentPageRef(commentPage);=0A=
		commentPage.generate();=0A=
		if (commentPage.commentPageRef.pageNum > 0) {=0A=
			// only scroll to top if it isn't an initial load of page=0A=
			var pos =3D Position.cumulativeOffset(commentPageWrapper);=0A=
    		window.scrollTo(0, pos[1]);=0A=
		}=0A=
			 =0A=
	}=0A=
}, JSONListener.prototype);=0A=
=0A=
var CommentActionListener =3D Class.create();=0A=
Object.extend(=0A=
CommentActionListener.prototype =3D {=0A=
	commentId: undefined,=0A=
	uid: undefined,=0A=
	actionType: undefined,=0A=
	commentEntity: undefined, // can be either a commentEntity or =
CommentPage =0A=
	=0A=
	initialize: function(commentId, uid, actionType, commentEntity) {=0A=
		this.commentId =3D commentId;=0A=
		this.uid =3D uid;=0A=
		this.actionType =3D actionType;=0A=
		this.commentEntity =3D commentEntity;=0A=
		=0A=
	},=0A=
	=0A=
	doExtraction: function(data, uid) {=0A=
		CommentBroker.prototype.trace("callback from CommentActionListener: " =
+ JSON.stringify(data));=0A=
		if (this.actionType =3D=3D CommentEntity.prototype.REPORT_ACTION) {=0A=
			CommentBroker.prototype.message("Thank you. This comment will be =
reviewed by a moderator.");=0A=
			return; // no need to refresh=0A=
		}=0A=
		=0A=
		if (this.commentEntity !=3D undefined) {=0A=
			// we have a reference to a commentEntity or a commentPage=0A=
		/*=0A=
				if (this.actionType =3D=3D CommentEntity.prototype.COMMENT_ACTION) {=0A=
					if (data !=3D undefined)=0A=
						this.commentEntity.addChildComment(data);=0A=
				} else if (this.actionType =3D=3D =
CommentEntity.prototype.EDIT_ACTION) {=0A=
					this.commentEntity.refreshContent();=0A=
				}=0A=
			=0A=
			*/=0A=
		}=0A=
		// do a full refresh of page=0A=
		commentBroker.refreshPage();=0A=
	}=0A=
	=0A=
}, JSONListener.prototype);=0A=
=0A=
var VoteActionListener =3D Class.create();=0A=
Object.extend(=0A=
VoteActionListener.prototype =3D {=0A=
	commentId: undefined,=0A=
	uid: undefined,=0A=
	voteDirection: undefined,=0A=
	commentEntity: undefined, // can be either a commentEntity or =
CommentPage =0A=
	=0A=
	initialize: function(commentId, uid, voteDirection, commentEntity) {=0A=
		this.commentId =3D commentId;=0A=
		this.uid =3D uid;=0A=
		this.voteDirection =3D voteDirection;=0A=
		this.commentEntity =3D commentEntity;=0A=
		=0A=
	},=0A=
	=0A=
	doExtraction: function(data, uid) {=0A=
		CommentBroker.prototype.trace(JSON.stringify(data));=0A=
		if (this.commentEntity !=3D undefined) {=0A=
			CommentBroker.prototype.trace("Displaying Vote results: " + =
this.voteDirection + " " + (this.commentEntity !=3D undefined));=0A=
			this.commentEntity.updateVote(this.voteDirection);=0A=
		}=0A=
	=0A=
		CommentBroker.prototype.trace("callback from VoteActionListener: " + =
JSON.stringify(data));=0A=
		commentBroker.refreshPage();=0A=
	}=0A=
	=0A=
}, JSONListener.prototype);=0A=
=0A=
=0A=
=0A=
var CommentPage =3D Class.create();=0A=
CommentPage.prototype =3D {=0A=
	commentPageElement: undefined,=0A=
	commentPageRef: undefined,=0A=
	enclosingDiv: undefined,=0A=
	topLevelComments: [],=0A=
	numCommentsPerPage: undefined,=0A=
	includePagination: false,=0A=
	uid: undefined,=0A=
	commentsWrapper: undefined,=0A=
	//constants=0A=
	COMMENT_PAGE_CLASS: "commentPage",=0A=
	COMMENTS_WRAPPER_CLASS: "the_comments",=0A=
	NO_COMMENTS_MESSAGE: "There are no comments",=0A=
	NUM_COMMENTS_COUNTER_ID: "numCommentsOnPage",=0A=
	POST_FORM_TEXTAREA_CLASSNAME: "comment_text",=0A=
	POST_FORM_CLASSNAME: "comment_form",=0A=
	POST_FORM_TEXTAREA_ID: "comment_text",=0A=
	POST_FORM_SUBMIT_SRC: =
"http://www.wired.com/images/comments/comment_but.gif",=0A=
	LOGIN_CLASSNAME: "login_class",=0A=
	PAGE_SLIDER_ID: "the_pages",=0A=
	=0A=
	initialize: function(div, includePagination, pageRef, uid) {=0A=
		this.enclosingDiv =3D div;=0A=
		this.includePagination =3D includePagination;=0A=
		this.commentPageRef =3D pageRef;=0A=
		this.uid =3D uid;=0A=
	},=0A=
	/**=0A=
	 * Iterates through all the comments within the page, generating a new =
CommentEntity for each=0A=
	 */=0A=
	generate: function() {=0A=
		this.commentPageElement =3D document.createElement("DIV");=0A=
		this.commentsWrapper =3D document.createElement("div");=0A=
		this.commentsWrapper.className =3D this.COMMENTS_WRAPPER_CLASS;=0A=
		this.commentPageElement.className =3D =
CommentPage.prototype.COMMENT_PAGE_CLASS;=0A=
		=
this.commentPageElement.appendChild(this.setNumCommentsCounter("Comments =
(" + this.getTotalComments() + ")"));	=0A=
		=0A=
		if (this.isLoggedIn()) {=0A=
			// show post form=0A=
			if (!this.isPermaActive())=0A=
				this.commentPageElement.appendChild(this.generatePostForm());=0A=
		} else {=0A=
			//show login-registration link=0A=
			this.commentPageElement.appendChild(this.generateTopLogin());=0A=
		}=0A=
		=0A=
		var matchbook =3D document.createElement("div");=0A=
		matchbook.className =3D "matchbook_rain_light";=0A=
		this.commentPageElement.appendChild(matchbook);=0A=
		=0A=
		var comment_top =3D document.createElement("div");=0A=
		comment_top.id =3D "comment_well_top";=0A=
		this.commentPageElement.appendChild(comment_top);=0A=
		this.renderPagination(comment_top, "top");=0A=
		=0A=
		this.commentsWrapper.appendChild(document.createComment("Begin =
Comments"));=0A=
		if (this.commentPageRef =3D=3D null || this.commentPageRef.comments =
=3D=3D null || this.commentPageRef.comments.length <=3D 0) {=0A=
			this.displayNoComments();=0A=
		} else {=0A=
			this.commentPageRef.comments.each(function(curComment) {=0A=
				CommentBroker.prototype.trace("CurComment: " + curComment);=0A=
				var newComment =3D new CommentEntity(this.commentsWrapper, =
curComment, null, 0, this);=0A=
				newComment.generate();=0A=
				this.topLevelComments.push(newComment);	=0A=
			}.bind(this));=0A=
		}=0A=
		this.commentsWrapper.appendChild(document.createComment("End =
Comments"));=0A=
		this.commentPageElement.appendChild(this.commentsWrapper);=0A=
		=0A=
		var comment_bottom =3D document.createElement("div");=0A=
		comment_bottom.id =3D "comment_well_bottom";=0A=
		this.commentPageElement.appendChild(comment_bottom);=0A=
		this.renderPagination(comment_bottom, "bottom");=0A=
		=0A=
		var matchbook_bot =3D document.createElement("div");=0A=
		matchbook_bot.className =3D "matchbook_plus";=0A=
		this.commentPageElement.appendChild(matchbook_bot);=0A=
		=0A=
		if (!this.isLoggedIn()) {=0A=
			this.commentPageElement.appendChild(this.generateLogin());=0A=
		} else {=0A=
			this.commentPageElement.appendChild(this.generateLogout());=0A=
		}=0A=
		=0A=
		this.enclosingDiv.appendChild(this.commentPageElement);=0A=
		// set count of comments on page=0A=
	},=0A=
	=0A=
	generateLogout: function() {=0A=
		var logoutWrapper =3D document.createElement("div");=0A=
		logoutWrapper.className =3D CommentPage.prototype.LOGIN_CLASSNAME;=0A=
		var logoutUrl =3D this.getLogoutURL();=0A=
		var logoutLink =3D  this.generateLink(logoutUrl, "Logout");=0A=
		var updProfUrl =3D this.getUpdProfURL();=0A=
		var updProfLink =3D this.generateLink(updProfUrl, "Update Profile");=0A=
		logoutWrapper.appendChild(updProfLink);=0A=
		var separator =3D document.createTextNode(" / ");=0A=
		logoutWrapper.appendChild(separator);=0A=
=0A=
		logoutWrapper.appendChild(logoutLink);=0A=
		return logoutWrapper;=0A=
	},=0A=
	=0A=
	renderPagination: function(commentWellRef, paginationLocation) { =0A=
		CommentBroker.prototype.trace("renderPagination: " + =
(this.includePagination ? "True" : "False"));=0A=
		if (this.isPermaActive() || this.commentPageRef =3D=3D undefined || =
this.commentPageRef.totalComments <=3D 0)=0A=
			return;=0A=
		if (this.includePagination) {=0A=
			// render pagination=0A=
			=
commentWellRef.appendChild(this.generatePagination(paginationLocation));=0A=
		} else {=0A=
			// no pagination -- just link to See All Page=0A=
			commentWellRef.appendChild(this.generateSeeAllLink());=0A=
		}=0A=
	},=0A=
=0A=
	setNumCommentsCounter: function(counterText) {=0A=
		var counterElem =3D document.createElement("H3");=0A=
		counterElem.className =3D "com_count";=0A=
		var countText =3D document.createTextNode(counterText);=0A=
		counterElem.appendChild(countText);=0A=
		return counterElem;=0A=
	},=0A=
	=0A=
	displayNoComments: function() {=0A=
		var span =3D document.createElement("SPAN");=0A=
		span.className =3D "seeall_com";=0A=
		var textNode =3D =
document.createTextNode(CommentPage.prototype.NO_COMMENTS_MESSAGE);=0A=
		span.appendChild(textNode);=0A=
		this.commentPageElement.appendChild(span);=0A=
	},=0A=
	=0A=
	generatePagination: function(paginationId) {=0A=
		var paginationWrapper =3D document.createElement("div");=0A=
		var pageSlider =3D document.createElement("div");=0A=
		pageSlider.id =3D this.PAGE_SLIDER_ID;=0A=
		paginationWrapper.className =3D "num_comments";=0A=
		paginationWrapper.id =3D "pagination_" + paginationId;=0A=
		var totalPages =3D Number(this.commentPageRef.totalPages);=0A=
		if (totalPages <=3D 0)=0A=
			return paginationWrapper;=0A=
=0A=
		// more than 1 page=0A=
		var curPage =3D this.commentPageRef.pageNum;=0A=
		for (var i =3D 0; i < totalPages; i++) {=0A=
			pageSlider.appendChild(this.generatePage(i, curPage));=0A=
		}=0A=
		var showingText =3D " " + (this.commentPageRef.commentStartIdx) + "-"  =
+ (this.commentPageRef.commentEndIdx);=0A=
		showingText +=3D " of " + this.commentPageRef.totalComments;=0A=
		paginationWrapper.appendChild(this.generateSpanElem("Most Recent"));=0A=
		paginationWrapper.appendChild(this.generateSpanElem(showingText + " | =
Page: "));=0A=
		paginationWrapper.appendChild(this.generatePageIncrement(-1, =
this.commentPageRef.isPrevPage =3D=3D true));=0A=
		paginationWrapper.appendChild(pageSlider);=0A=
		paginationWrapper.appendChild(this.generatePageIncrement(1, =
this.commentPageRef.isNextPage =3D=3D true))=0A=
		paginationWrapper.appendChild(this.generateSpanElem("Oldest"));=0A=
		return paginationWrapper;		=0A=
	},=0A=
	=0A=
	generatePageIncrement: function(direction, enabled) {=0A=
		var link;=0A=
		var eventId =3D ("page" + "_" + =
(CommentBroker.prototype.requestCounter++));=0A=
		var linkHref =3D  "javascript:doUserAction('" + eventId + "')";=0A=
	 	if (direction > 0) {=0A=
			commentBroker.eventBroker.addEventListener(eventId, this, =
this.pageUpListener.bind(this));=0A=
			link =3D this.generateLink(linkHref, "Next");=0A=
		} else {=0A=
			commentBroker.eventBroker.addEventListener(eventId, this, =
this.pageDownListener.bind(this));=0A=
			link =3D this.generateLink(linkHref, "Previous");=0A=
		}=0A=
		if (direction > 0) {=0A=
			=0A=
		} else {=0A=
			=0A=
		}=0A=
		//link.className =3D (direction > 0 ? "Next" : "Previous");=0A=
		if (enabled) {=0A=
			link.className =3D "active_nextprevious";=0A=
			/*=0A=
			 link.onclick =3D function(event) {=0A=
				var pageDirection =3D direction;=0A=
				this.doPagination(pageDirection);=0A=
			}.bindAsEventListener(this);=0A=
			 */=0A=
		} else {=0A=
			link.className =3D "disabled_nextprevious";=0A=
		}=0A=
		return link;=0A=
	},=0A=
	=0A=
	pageUpListener: function() {=0A=
		this.doPagination(1);=0A=
	},=0A=
	=0A=
	pageDownListener: function() {=0A=
		this.doPagination(-1);=0A=
	},=0A=
	=0A=
	doPagination: function(direction) {=0A=
		CommentBroker.prototype.trace("Pagination: " + direction);=0A=
		var pageNum =3D this.commentPageRef.pageNum;=0A=
		this.renderPage(pageNum + direction);=0A=
	},=0A=
	=0A=
	generateSpanElem: function(text, spanClass) {=0A=
		var spanElem =3D document.createElement("span");=0A=
		var textNode =3D document.createTextNode(text);=0A=
		if (spanClass !=3D undefined) {=0A=
			spanElem.className =3D spanClass;=0A=
		}=0A=
		spanElem.appendChild(textNode);=0A=
		return spanElem;=0A=
	},=0A=
	=0A=
	generatePage: function(pageNum, curPage) {=0A=
		CommentBroker.prototype.trace("generatePage: " + pageNum + " : " + =
curPage);=0A=
		var page =3D document.createElement("span");=0A=
		var pageText =3D (Number(pageNum) + 1);=0A=
		var pageLink =3D this.generateLink("javascript:void(0);", pageText);	=0A=
		if (pageNum !=3D curPage) {=0A=
			pageLink.onclick =3D function() {=0A=
				var destPage =3D pageNum;=0A=
				this.renderPage(destPage);=0A=
			}.bindAsEventListener(this);=0A=
			page.className =3D "active_page";=0A=
			page.appendChild(pageLink);=0A=
		} else {=0A=
			page.className =3D "selected_page";=0A=
			page.appendChild(document.createTextNode(pageText));=0A=
		}=0A=
		return page;=0A=
	},=0A=
	=0A=
	renderPage: function(pageNum) {=0A=
		CommentBroker.prototype.trace("Rendering page: " + pageNum);=0A=
		commentBroker.renderPage(pageNum);=0A=
	},=0A=
	  =0A=
	generateSeeAllLink: function() {=0A=
		var linkDiv =3D document.createElement("div");=0A=
		linkDiv.className =3D "seeall_com";=0A=
		if (this.isSeeAllCommentsActive())=0A=
			return linkDiv;=0A=
		var linkWrapper =3D =
this.generateLink(commentBroker.getSeeAllCommentsLink(), "See All =
Comments");=0A=
		linkDiv.appendChild(linkWrapper);=0A=
		return linkDiv;		=0A=
	},=0A=
	=0A=
	isSeeAllCommentsActive: function() {=0A=
		var isShowingComments =3D =
(document.location.href.indexOf(CommentBroker.prototype.SHOWALLCOMMENTS_P=
ARAM) > 0);=0A=
		return isShowingComments;=0A=
	},=0A=
	=0A=
	isPermaActive: function() {=0A=
		var isShowingComments =3D =
(document.location.href.indexOf(CommentBroker.prototype.COMMENTID_PARAM) =
> 0);=0A=
		return isShowingComments;=0A=
	},=0A=
	=0A=
	getTotalComments: function() {=0A=
		if (this.commentPageRef =3D=3D undefined) {=0A=
			CommentBroker.prototype.error("CommentPageRef could not be found");=0A=
			return 0;=0A=
		}=0A=
		return (this.commentPageRef.totalComments) ;=0A=
	},=0A=
	=0A=
	generatePostForm: function() {=0A=
		//CommentBroker.prototype.debug("generatePostForm");=0A=
		var postCommentForm =3D =
this.createFormElement(CommentPage.prototype.POST_FORM_CLASSNAME, =
"comment", "form");=0A=
		var postTextArea =3D =
this.createFormElement(CommentPage.prototype.POST_FORM_TEXTAREA_CLASSNAME=
, =0A=
			CommentPage.prototype.POST_FORM_TEXTAREA_ID, "textarea")=0A=
		var labelElem =3D document.createElement("label");=0A=
		labelElem.setAttribute("for", =
CommentPage.prototype.POST_FORM_TEXTAREA_ID);=0A=
		var labelText =3D document.createTextNode("Enter your comment below.");=0A=
		labelElem.appendChild(labelText);=0A=
		var submitInput =3D this.createInputElement("input", "postComment");=0A=
		submitInput.setAttribute("src", =
CommentPage.prototype.POST_FORM_SUBMIT_SRC);=0A=
		submitInput.setAttribute("type", "image");=0A=
		submitInput.onclick =3D function(event) {=0A=
			var text =3D postTextArea.value;=0A=
			if (text =3D=3D undefined || text =3D=3D "" || text.length <=3D 0) {=0A=
				alert ("You must enter a valid comment before submitting.");=0A=
				return false;=0A=
			}=0A=
			commentBroker.sendAction("comment", null, this.uid, (text), this);=0A=
			postTextArea.value =3D "";=0A=
			// fixes IE submit issues=0A=
			if (event && event.preventDefault) event.preventDefault();=0A=
			else if (window.event && window.event.returnValue)=0A=
				window.eventReturnValue =3D false;=0A=
			return false;=0A=
		}.bindAsEventListener(this);=0A=
		postCommentForm.appendChild(labelElem);=0A=
		postCommentForm.appendChild(postTextArea);=0A=
		postCommentForm.appendChild(submitInput);=0A=
		postCommentForm.zIndex =3D 1000;=0A=
		postCommentForm.style.zIndex =3D 1000;=0A=
		return postCommentForm;=0A=
	},=0A=
	=0A=
	addChildComment: function(commentRef) {=0A=
		var newComment =3D new CommentEntity(this.commentsWrapper, commentRef, =
null, 0, this);=0A=
		newComment.generate();=0A=
		this.topLevelComments.push(newComment);	=0A=
	},=0A=
	=0A=
	createFormElement: function(className, inputName, inputType) {=0A=
		var elem =3D document.createElement(inputType);=0A=
		elem.setAttribute("name", inputName);=0A=
		elem.setAttribute("id", inputName);=0A=
		elem.name =3D inputName;=0A=
		elem.id =3D inputName;=0A=
		elem.className =3D className;=0A=
		return elem;=0A=
	},=0A=
	=0A=
	createInputElement: function(inputType, inputName) {=0A=
		var inputElem =3D document.createElement(inputType);=0A=
		inputElem.setAttribute("name", inputName);=0A=
		inputElem.name =3D inputName;=0A=
		inputElem.id =3D inputName;=0A=
		return inputElem;=0A=
	},=0A=
	=0A=
	isLoggedIn: function() {=0A=
		if (this.uid =3D=3D undefined)=0A=
			return false;=0A=
		var curCookie =3D document.cookie;=0A=
		if (curCookie.indexOf(CommentBroker.prototype.COOKIE_NAME) > -1) {=0A=
			// this should be a logged-in user=0A=
			//CommentBroker.prototype.trace("wired_reddit cookie found . . . =
logged in");=0A=
			return true;=0A=
		} =0A=
		return false;=0A=
	},=0A=
	=0A=
	getUserName: function() {=0A=
		if (this.isLoggedIn()) {=0A=
			var username =3D readCookie("amg_user_info");=0A=
			return username;=0A=
		} else {=0A=
			return undefined;=0A=
		}=0A=
	},=0A=
	=0A=
	generateTopLogin: function() {=0A=
		CommentBroker.prototype.trace("generateTopLogin");=0A=
		var loginRegWrapper =3D document.createElement("p");=0A=
		loginRegWrapper.className =3D CommentPage.prototype.LOGIN_CLASSNAME;=0A=
		var registrationUrl =3D this.getRegistrationURL();=0A=
		var loginUrl =3D this.getLoginURL();=0A=
		var loginLink =3D  this.generateLink(loginUrl, "Login");=0A=
		var loginText =3D document.createTextNode("Want to start a new thread =
or reply to a post?");=0A=
		var loginTextTrail =3D document.createTextNode(" and start talking!");=0A=
		var separator =3D document.createTextNode("/");=0A=
		var breaker =3D document.createElement("br");=0A=
		var regLink =3D this.generateLink(registrationUrl, "Register");=0A=
		loginRegWrapper.appendChild(loginText);=0A=
		loginRegWrapper.appendChild(breaker);=0A=
		loginRegWrapper.appendChild(loginLink);=0A=
		loginRegWrapper.appendChild(separator);=0A=
		loginRegWrapper.appendChild(regLink);=0A=
		loginRegWrapper.appendChild(loginTextTrail);=0A=
		return loginRegWrapper;=0A=
	},=0A=
	=0A=
	generateLogin: function() {=0A=
		CommentBroker.prototype.trace("generateLogin");=0A=
		var loginRegWrapper =3D document.createElement("div");=0A=
		loginRegWrapper.className =3D CommentPage.prototype.LOGIN_CLASSNAME;=0A=
		var registrationUrl =3D this.getRegistrationURL();=0A=
		var loginUrl =3D this.getLoginURL();=0A=
		var loginLink =3D  this.generateLink(loginUrl, "Login");=0A=
		var separator =3D document.createTextNode("/");=0A=
		var regLink =3D this.generateLink(registrationUrl, "Registration");=0A=
		loginRegWrapper.appendChild(loginLink);=0A=
		loginRegWrapper.appendChild(separator);=0A=
		loginRegWrapper.appendChild(regLink);=0A=
		return loginRegWrapper;=0A=
	},=0A=
=0A=
	modifySocialTextHref: function(href, linkName) {=0A=
		//modify the href only for these specific linkNames=0A=
		if( linkName =3D=3D "Logout" || linkName =3D=3D "Update Profile" || =
linkName =3D=3D "Login" || linkName =3D=3D "Register" || linkName =3D=3D =
"Registration" ) {=0A=
			if(href.indexOf("howto.stag2.wired.com") > -1) { //staging=0A=
				href =3D href.replace("howto.stag2.wired.com","stag2.wired.com");=0A=
				href =3D =
href.replace("LoginRedirect%3Freturnto%3D","LoginRedirect%3Freturnto%3Dht=
tp://howto.stag2.wired.com");=0A=
				href =3D =
href.replace("logout?returnto=3D","logout?returnto=3Dhttp://howto.stag2.w=
ired.com");=0A=
				href =3D =
href.replace("profile_update?returnto=3D","profile_update?returnto=3Dhttp=
://howto.stag2.wired.com");=0A=
			}=0A=
			else if(href.indexOf("howto.wired.com") > -1) { //production=0A=
				href =3D href.replace("howto.wired.com","www.wired.com");=0A=
				href =3D =
href.replace("LoginRedirect%3Freturnto%3D","LoginRedirect%3Freturnto%3Dht=
tp://howto.wired.com");=0A=
				href =3D =
href.replace("logout?returnto=3D","logout?returnto=3Dhttp://howto.wired.c=
om");=0A=
				href =3D =
href.replace("profile_update?returnto=3D","profile_update?returnto=3Dhttp=
://howto.wired.com");=0A=
			}=0A=
		}=0A=
		return href;=0A=
	},=0A=
	=0A=
	generateLink: function(href, linkName) {=0A=
		var linkWrapper =3D document.createElement("span");	=0A=
		var link =3D document.createElement("a");=0A=
		link.setAttribute("href", href);=0A=
		link.href =3D href;=0A=
		link.href =3D this.modifySocialTextHref(link.href, linkName);=0A=
		var linkText =3D document.createTextNode(linkName);=0A=
		link.appendChild(linkText);=0A=
		linkWrapper.appendChild(link);=0A=
		return linkWrapper;=0A=
	},=0A=
=0A=
	generateAdvancedLink: function(href, linkName, className) {	=0A=
		var linkWrapper =3D document.createElement("span");=0A=
		var link =3D document.createElement("a");=0A=
		link.setAttribute("href", href);=0A=
		link.href =3D href;=0A=
		link.className =3D className;=0A=
		var linkText =3D document.createTextNode(linkName);=0A=
		link.appendChild(linkText);=0A=
		linkWrapper.appendChild(link);=0A=
		return linkWrapper;=0A=
	},=0A=
	=0A=
	getReturnTo: function() {=0A=
		return "?returnto=3D";=0A=
	},=0A=
=0A=
	getReturnToURL: function() {=0A=
		return escape(document.location.pathname + location.search);=0A=
	},=0A=
	=0A=
	getRedirectURL: function() {=0A=
		return CommentBroker.prototype.REDIRECT_URL;=0A=
	},=0A=
=0A=
	getRegistrationURL: function() {=0A=
		return ( this.getHostName() + CommentBroker.prototype.REGISTRATION_URL =
+ this.getReturnTo() + escape( this.getRedirectURL() + =
this.getReturnTo() + this.getReturnToURL()) );=0A=
	},=0A=
=0A=
	getLoginURL: function() {=0A=
		return ( this.getHostName() + CommentBroker.prototype.LOGIN_URL + =
this.getReturnTo() + escape( this.getRedirectURL() + this.getReturnTo() =
+ this.getReturnToURL()) );=0A=
	},=0A=
=0A=
	getLogoutURL: function() {=0A=
		return ( this.getHostName() + CommentBroker.prototype.LOGOUT_URL + =
this.getReturnTo() + this.getReturnToURL() );=0A=
	},=0A=
=0A=
	getUpdProfURL: function() {=0A=
		return ( this.getHostName() + =
CommentBroker.prototype.PROFILEUPDATE_URL + this.getReturnTo() + =
this.getReturnToURL() );=0A=
	},=0A=
=0A=
	getHostName: function() {=0A=
		return (document.location.protocol + "//" + document.location.host);=0A=
	}=0A=
	=0A=
};=0A=
=0A=
var CommentEntity =3D Class.create();=0A=
CommentEntity.prototype =3D {=0A=
	parentDiv: undefined,=0A=
	commentRef: undefined,=0A=
	parentCommentRef: undefined,=0A=
	elementType: "DIV",	=0A=
	commentElement: undefined,=0A=
	COMMENT_ENTITY_CLASS: "comment",=0A=
	COMMENT_MAIN_CLASS: "commentMain",=0A=
	COMMENT_BODY_CLASS: "commentbody",=0A=
	COMMENT_AUTHOR_CLASS: "commentAuthor",=0A=
	nestedCommentEntities: [],=0A=
	nestingLevel: 0,=0A=
	commentPageRef: undefined,=0A=
	replyHolder: undefined, =0A=
	postForm: undefined,=0A=
	commentAuthor: undefined, // element that holds author, date, and =
points spans=0A=
	commentBody: undefined,=0A=
	commentMain: undefined,=0A=
	isSummarized: true,=0A=
	voteUp: undefined,=0A=
	voteDown:undefined,=0A=
	arrowContainerElement: undefined,=0A=
	//constants=0A=
	ARROWS_CLASS: "arrows",=0A=
	UP_ARROW_CLASS: "uparrow",=0A=
	DOWN_ARROW_CLASS: "downarrow",=0A=
	COMMENT_OPTIONS_CLASSNAME: "commentOptions",=0A=
	COMMENT_ACTION: "comment",=0A=
	EDIT_ACTION: "replace",=0A=
	MOD_ACTION: "mod",=0A=
	PERMA_ACTION: "perma",=0A=
	REPORT_ACTION: "report",=0A=
	REPLY_HOLDER_CLASSNAME: "comment_reply",=0A=
	OPEN_TRIANGLE: "http://www.wired.com/images/comments/tri_closed.gif",=0A=
	CLOSED_TRIANGLE: "http://www.wired.com/images/comments/tri_open.gif",=0A=
	VOTE_UP_IMG: "http://www.wired.com/images/comments/arrowupblue2.jpg ",=0A=
	VOTE_DOWN_IMG: "http://www.wired.com/images/comments/arrowdownred2.jpg",=0A=
	SPAM_MESSAGE: "Comment Deleted.",=0A=
	=0A=
	initialize: function(parentDiv, commentRef, parentCommentRef, level, =
commentPageRef) {=0A=
		this.parentDiv =3D parentDiv;=0A=
		this.commentRef =3D commentRef;=0A=
		this.parentCommentRef =3D parentCommentRef;=0A=
		this.nestingLevel =3D level;	=0A=
		this.commentPageRef =3D commentPageRef;=0A=
		this.isSummarized =3D true;=0A=
	},=0A=
	=0A=
	generate: function() {=0A=
		if (this.parentDiv =3D=3D undefined) {=0A=
			CommentBroker.prototype.error("No parentDiv defined!");=0A=
			return;=0A=
		}	=0A=
		this.commentElement =3D document.createElement(this.elementType);=0A=
		this.commentElement.className =3D this.COMMENT_ENTITY_CLASS;=0A=
		this.commentElement.id =3D "c_" + this.commentRef.commentId;=0A=
		this.commentMain =3D document.createElement(this.elementType);=0A=
		this.commentMain.className =3D this.COMMENT_MAIN_CLASS;=0A=
		this.commentBody =3D =
this.createCommentContent(this.COMMENT_BODY_CLASS, =
(this.commentRef.commentBody));=0A=
		this.commentAuthor =3D =
this.createAuthorContent(this.COMMENT_AUTHOR_CLASS, =
this.getAuthorName());=0A=
		this.arrowContainerElement =3D this.createVotingArrows();=0A=
		this.commentElement.appendChild(this.arrowContainerElement);=0A=
		this.commentMain.appendChild(this.commentAuthor); =0A=
		this.commentMain.appendChild(this.commentBody);=0A=
		this.commentMain.appendChild(this.createBottomRow());=0A=
		this.replyHolder =3D this.generateReplyHolder();=0A=
		this.commentMain.appendChild(this.replyHolder);=0A=
		this.commentElement.appendChild(this.commentMain);=0A=
		this.parentDiv.appendChild(this.commentElement); =0A=
		 =0A=
		// recursive generation=0A=
		if (this.commentRef.nestedComments !=3D undefined && =
this.commentRef.nestedComments.length > 0) {=0A=
			this.commentRef.nestedComments.each(function(curComment){=0A=
				var curCommentEntity =3D new CommentEntity(this.commentElement, =
curComment, this.commentRef, (this.nestingLevel + 1), =
this.commentPageRef);=0A=
				curCommentEntity.generate();=0A=
				this.nestedCommentEntities.push(curCommentEntity);=0A=
			}.bind(this));=0A=
		}=0A=
	},=0A=
	=0A=
	refreshContent: function() {=0A=
		var newCommentBody =3D =
this.createCommentContent(this.COMMENT_BODY_CLASS, =
(this.commentRef.commentBody));=0A=
		this.commentMain.replaceChild(newCommentBody, this.commentBody);=0A=
		this.commentBody =3D newCommentBody;=0A=
	},=0A=
	=0A=
	updateVote: function(voteDirection) {=0A=
		if (Number(voteDirection) =3D=3D undefined)=0A=
			return; =0A=
		if (this.commentRef.likes =3D=3D voteDirection) {=0A=
			this.commentRef.likes =3D 0;=0A=
			this.commentRef.points -=3D Number(voteDirection);=0A=
		} else {=0A=
			this.commentRef.likes =3D voteDirection;=0A=
			this.commentRef.points +=3D Number(voteDirection);=0A=
		}=0A=
		=0A=
		var container =3D document.createElement("div");=0A=
		container.appendChild(this.createVotingArrows());=0A=
		$(this.arrowContainerElement).replace(container.innerHTML);=0A=
		=0A=
	},=0A=
	=0A=
	removeArrows: function() {=0A=
		$(this.voteUp).remove();=0A=
		$(this.voteDown).remove();=0A=
	},=0A=
	=0A=
	generateReplyHolder: function() {=0A=
		var holder =3D document.createElement("div");=0A=
		holder.className =3D CommentEntity.prototype.REPLY_HOLDER_CLASSNAME;=0A=
		return holder;=0A=
	},=0A=
	=0A=
	createBottomRow: function() {=0A=
		var container =3D document.createElement("div");=0A=
		container.className =3D =
CommentEntity.prototype.COMMENT_OPTIONS_CLASSNAME;=0A=
		var reportSpan =3D undefined;=0A=
		var postSpan =3D undefined;=0A=
		var permaSpan =3D undefined;=0A=
		var editSpan =3D undefined;=0A=
		if (this.commentPageRef.isLoggedIn()) {=0A=
			reportSpan =3D this.createSpanLink("Report", =
this.generateActionJs(CommentEntity.prototype.REPORT_ACTION), =
"reportLink");=0A=
		}=0A=
		if (this.commentPageRef.isLoggedIn()) {=0A=
			postSpan =3D this.createSpanLink("Reply", =
this.generateActionJs(CommentEntity.prototype.COMMENT_ACTION), =
"postLink");=0A=
		}=0A=
		if (this.commentPageRef.isLoggedIn() && this.isCommentAuthor()) {=0A=
			editSpan =3D this.createSpanLink("Edit", =
this.generateActionJs(CommentEntity.prototype.EDIT_ACTION), "editLink");=0A=
		}=0A=
		permaSpan =3D this.createSpanLink("Permalink", =
this.generateActionJs(CommentEntity.prototype.PERMA_ACTION), =
"permaLink");=0A=
		=0A=
		if (reportSpan !=3D undefined) {=0A=
			reportSpan.appendChild(this.getActionSeparator());=0A=
			container.appendChild(reportSpan);=0A=
		}=0A=
		if (postSpan !=3D undefined) {=0A=
			postSpan.appendChild(this.getActionSeparator());=0A=
			container.appendChild(postSpan);=0A=
		}		=0A=
		if (editSpan !=3D undefined) {=0A=
			editSpan.appendChild(this.getActionSeparator());=0A=
			container.appendChild(editSpan);=0A=
		}=0A=
		if =
(document.location.search.indexOf(CommentBroker.prototype.COMMENTID_PARAM=
) < 0) {=0A=
			container.appendChild(permaSpan);=0A=
		} =0A=
			=0A=
		return container;=0A=
	},=0A=
	=0A=
	isCommentAuthor: function() {=0A=
		var curUserName =3D this.commentPageRef.getUserName();=0A=
		if (curUserName !=3D undefined && this.commentRef.author !=3D =
undefined && curUserName =3D=3D this.commentRef.author.username) {=0A=
			return true;=0A=
		}=0A=
		return false;=0A=
	},=0A=
	=0A=
	getActionSeparator: function() {=0A=
		return document.createTextNode(" | ");=0A=
	},=0A=
	=0A=
	=0A=
	createSpanLink: function(linkText, href, name) {=0A=
		var spanWrapper =3D document.createElement("span");=0A=
		var link =3D document.createElement("a");=0A=
		link.setAttribute("href", href);=0A=
		link.setAttribute("name", name);=0A=
		link.href =3D href;=0A=
		var linkText =3D document.createTextNode(linkText);=0A=
		link.appendChild(linkText);=0A=
		spanWrapper.appendChild(link);=0A=
		return spanWrapper;=0A=
	},=0A=
	=0A=
	generateActionJs: function(mode) {=0A=
		if ((mode =3D=3D CommentEntity.prototype.COMMENT_ACTION) || (mode =
=3D=3D CommentEntity.prototype.EDIT_ACTION)) {=0A=
			var eventId =3D (mode + "_" + =
(CommentBroker.prototype.requestCounter++));=0A=
	 		commentBroker.eventBroker.addEventListener(eventId, this, =
this.postCommentListener);=0A=
			return "javascript:doUserAction('" + eventId + "')";=0A=
		} else if (mode =3D=3D CommentEntity.prototype.PERMA_ACTION) {=0A=
			var eventId =3D (mode + "_" + =
(CommentBroker.prototype.requestCounter++));=0A=
	 		commentBroker.eventBroker.addEventListener(eventId, this, =
this.permalinkListener);=0A=
			return "javascript:doUserAction('" + eventId + "')";=0A=
		} else {=0A=
			return "javascript:doCommentAction('" + mode + "', '" +  =
this.commentRef.commentId + "', '" + this.commentPageRef.uid + "');";	=0A=
		}=0A=
	},=0A=
	=0A=
	permalinkListener: function() {=0A=
		CommentBroker.prototype.trace("initiating permalink: " + =
this.commentRef.commentId);=0A=
		commentBroker.goToSeeAllCommentsPage(this.commentRef.commentId);=0A=
	},=0A=
	=0A=
	/**=0A=
	 * This handler gets called within this context to respond to post or =
edit comment events=0A=
	 */=0A=
	postCommentListener: function(eventId) {=0A=
		if (this.postForm !=3D undefined) {=0A=
			$(this.postForm).remove();=0A=
		}=0A=
		var postCommentForm =3D =
this.commentPageRef.createFormElement(CommentPage.prototype.POST_FORM_CLA=
SSNAME, ("POST_FORM_" + eventId), "form");=0A=
		var postTextArea =3D =
this.commentPageRef.createFormElement(CommentPage.prototype.POST_FORM_TEX=
TAREA_CLASSNAME, =0A=
			("POST_FORM_TEXTAREA_" + eventId), "textarea");=0A=
		postCommentForm.action =3D"";=0A=
		var submitInput =3D this.commentPageRef.createInputElement("input", =
("POST_FORM_SUBMIT_" + eventId));=0A=
		submitInput.setAttribute("src", =
CommentPage.prototype.POST_FORM_SUBMIT_SRC);=0A=
		submitInput.setAttribute("type", "image");=0A=
		var postFunction =3D function(event, eventId) {=0A=
			var textElem =3D $(("POST_FORM_TEXTAREA_" + eventId));=0A=
			var text =3D textElem.value;=0A=
			if (text =3D=3D undefined || text =3D=3D "" || text.length <=3D 0) {=0A=
				alert ("You must enter a valid comment before submitting.");=0A=
				return false;=0A=
			}=0A=
			var actionType =3D "";=0A=
			if (this.isEventType(eventId, CommentEntity.prototype.EDIT_ACTION)) {=0A=
				actionType =3D CommentEntity.prototype.EDIT_ACTION;=0A=
				this.commentRef.commentBody =3D text;=0A=
			} else {=0A=
				actionType =3D CommentEntity.prototype.COMMENT_ACTION;=0A=
			}=0A=
			commentBroker.sendAction(actionType, this.commentRef.commentId, =
this.commentPageRef.uid, (text), this);=0A=
			$(postCommentForm).remove();=0A=
			// add status message=0A=
			var waitDiv =3D document.createElement("div");=0A=
            waitDiv.setAttribute("class", "posting");=0A=
            waitDiv.style.font =3D "normal 12px Arial, helvetica, =
sans-serif";=0A=
            waitDiv.style.clear =3D "left";=0A=
            waitDiv.style.padding =3D "7px 0 0 0";=0A=
            waitDiv.style.color =3D "#c20";=0A=
			var waitMessage =3D document.createTextNode("Posting comment, please =
wait. . . ");=0A=
			waitDiv.className =3D "statusMessage";=0A=
			waitDiv.appendChild(waitMessage);=0A=
			this.replyHolder.appendChild(waitDiv);=0A=
			setTimeout(function() {$(waitDiv).remove()}.bind(this), 3000);=0A=
			if (this.postForm !=3D undefined) {=0A=
				this.postForm =3D undefined;=0A=
			} 	=0A=
			// fixes IE submit issues=0A=
=0A=
			if (event && event.preventDefault) event.preventDefault();=0A=
			else if (window.event && window.event.returnValue)=0A=
				window.eventReturnValue =3D false;=0A=
			return false;=0A=
		};=0A=
		submitInput.onclick =3D postFunction.bindAsEventListener(this, =
eventId);=0A=
		postCommentForm.onsubmit =3D function() {=0A=
			return false;=0A=
		}=0A=
		if (this.isEventType(eventId, CommentEntity.prototype.EDIT_ACTION)) {=0A=
			// copy text into form=0A=
			postTextArea.value =3D this.commentRef.commentText;=0A=
		}=0A=
		postCommentForm.appendChild(postTextArea);=0A=
		postCommentForm.appendChild(submitInput);=0A=
		if (postTextArea.zIndex)=0A=
			postTextArea.zIndex =3D 1000;=0A=
		postTextArea.style.zIndex =3D 1000;=0A=
		this.replyHolder.appendChild(postCommentForm);=0A=
		$(postTextArea).activate();=0A=
		//store form=0A=
		this.postForm =3D postCommentForm;=0A=
		return postCommentForm;=0A=
		=0A=
	},=0A=
	=0A=
	isEventType: function(eventId, eventType) {=0A=
		if (eventId =3D=3D undefined)=0A=
			return false;=0A=
		if (eventId.indexOf(eventType) >=3D 0) {=0A=
			return true;=0A=
		}=0A=
		return false;=0A=
	},=0A=
	=0A=
	addChildComment: function(comment) {=0A=
		var curCommentEntity =3D new CommentEntity(this.commentElement, =
comment, this.commentRef, (this.nestingLevel + 1), this.commentPageRef);=0A=
		curCommentEntity.generate();=0A=
		this.nestedCommentEntities.push(curCommentEntity);=0A=
	},=0A=
=0A=
	createVotingArrows: function() {=0A=
		var arrowContainer =3D document.createElement("div");=0A=
		if (this.commentRef.likes > 0) {=0A=
			this.voteUp =3D this.createDefaultArrow(1);=0A=
			this.voteDown =3D this.createArrow(-1);=0A=
		} else if (this.commentRef.likes < 0) {=0A=
			this.voteUp =3D this.createArrow(1);=0A=
			this.voteDown =3D this.createDefaultArrow(-1);=0A=
		} else {=0A=
			this.voteUp =3D this.createArrow(1);=0A=
			this.voteDown =3D this.createArrow(-1);=0A=
		}=0A=
		arrowContainer.className =3D CommentEntity.prototype.ARROWS_CLASS;=0A=
		arrowContainer.appendChild(this.voteUp);=0A=
		arrowContainer.appendChild(this.voteDown);=0A=
		return arrowContainer;=0A=
	},=0A=
	=0A=
	createArrow: function(direction) {=0A=
		var eventId =3D ("vote" + "_" + =
(CommentBroker.prototype.requestCounter++));=0A=
	 	if (direction > 0) {=0A=
			commentBroker.eventBroker.addEventListener(eventId, this, =
this.voteListener_up.bind(this));=0A=
=0A=
		} else {=0A=
			commentBroker.eventBroker.addEventListener(eventId, this, =
this.voteListener_down.bind(this));=0A=
		}=0A=
		var linkHref =3D  "javascript:doUserAction('" + eventId + "')";=0A=
		var arrow =3D this.commentPageRef.generateAdvancedLink(linkHref, " ", =
(direction > 0 ? CommentEntity.prototype.UP_ARROW_CLASS : =
CommentEntity.prototype.DOWN_ARROW_CLASS));=0A=
		//arrow.onclick =3D function(event) {=0A=
			=0A=
		//}.bindAsEventListener(this); =0A=
//		arrow.className =3D (direction > 0 ? =
CommentEntity.prototype.UP_ARROW_CLASS : =
CommentEntity.prototype.DOWN_ARROW_CLASS);=0A=
		return arrow;=0A=
	},=0A=
	=0A=
	voteListener_up: function() {=0A=
		if (this.commentRef.likes <=3D 0) {=0A=
			commentBroker.voteAction(this.commentRef.commentId, =
this.commentPageRef.uid, 1, this);=0A=
		} else {=0A=
			commentBroker.voteAction(this.commentRef.commentId, =
this.commentPageRef.uid, 0, this);=0A=
		}=0A=
		=0A=
	},=0A=
	=0A=
	voteListener_down: function() {=0A=
		if (this.commentRef.likes >=3D 0) {=0A=
			commentBroker.voteAction(this.commentRef.commentId, =
this.commentPageRef.uid, -1, this);=0A=
		} else {=0A=
			commentBroker.voteAction(this.commentRef.commentId, =
this.commentPageRef.uid, 0, this);=0A=
		}=0A=
	},=0A=
	=0A=
	createDefaultArrow: function(direction) {=0A=
		var eventId =3D ("vote" + "_" + =
(CommentBroker.prototype.requestCounter++));=0A=
	 	if (direction > 0) {=0A=
			commentBroker.eventBroker.addEventListener(eventId, this, =
this.voteListener_up.bind(this));=0A=
=0A=
		} else {=0A=
			commentBroker.eventBroker.addEventListener(eventId, this, =
this.voteListener_down.bind(this));=0A=
		}=0A=
		var linkHref =3D  "javascript:doUserAction('" + eventId + "')";=0A=
		var link =3D document.createElement("a");=0A=
		link.setAttribute("href", linkHref);=0A=
		link.href =3D linkHref;=0A=
		=0A=
		var arrow =3D document.createElement("img");=0A=
		/*arrow.onclick =3D function() {=0A=
			if (direction > 0 ) {=0A=
				this.voteListener_up();=0A=
			} else  {=0A=
				this.voteListener_down().bind(this);=0A=
			}=0A=
			=0A=
		}*/=0A=
		arrow.setAttribute("src", (direction > 0 ? =
CommentEntity.prototype.VOTE_UP_IMG : =
CommentEntity.prototype.VOTE_DOWN_IMG) );=0A=
		//arrow.src =3D (direction > 0 ? CommentEntity.prototype.VOTE_UP_IMG : =
CommentEntity.prototype.VOTE_DOWN_IMG);=0A=
		arrow.className =3D (direction < 0 ? "downimg" : "upimg");=0A=
		link.appendChild(arrow);=0A=
		return link;=0A=
	},=0A=
=0A=
	getDateString: function(timestamp) {=0A=
		var minutesDelta =3D (timestamp / 60);=0A=
		if (minutesDelta > (24 * 60)) {=0A=
			var days =3D Math.round(minutesDelta / (24 * 60));=0A=
			return ((days > 1) ? (days + " days ") : "1 day ") + "ago"; =0A=
		} else if (minutesDelta < 60){=0A=
			return Math.round(minutesDelta) + " minutes ago"=0A=
		} else {=0A=
			return (Math.round(minutesDelta / 60) + " hours ago");=0A=
		}	=0A=
	},=0A=
	=0A=
	createDateContent: function(timestamp) {=0A=
		var textContainer =3D document.createElement("span");=0A=
		var dateString =3D this.getDateString(timestamp);=0A=
		var message =3D document.createTextNode(dateString);=0A=
		textContainer.appendChild(message);=0A=
		return textContainer;=0A=
	},=0A=
=0A=
	createCommentContent: function(elementClass, content) {=0A=
		var textContainer =3D document.createElement(this.elementType);=0A=
		var messageSpan =3D document.createElement(this.elementType);=0A=
		var message =3D undefined;=0A=
		if (this.commentRef.deleted) {=0A=
			content =3D CommentEntity.prototype.SPAM_MESSAGE;=0A=
		}=0A=
		if (this.isSummarized && content.length > 250) {=0A=
			var cleanedContent =3D this.stripTags(content);=0A=
			if (cleanedContent <=3D 250) {=0A=
				message =3D content; // just use default content, since the excess =
tags are superfluous=0A=
			} else {=0A=
				message =3D (cleanedContent.substring(0,250) + "...");=0A=
			}=0A=
		} else {=0A=
			message =3D content;=0A=
		}=0A=
		//$(messageSpan).innerHTML =3D message; //<p> does not have innerHTML =
property=0A=
		messageSpan.innerHTML =3D message;=0A=
		textContainer.appendChild(messageSpan);=0A=
		if (this.isSummarized) {=0A=
			if (content.length > 250) {=0A=
				var summaryDiv =3D this.createTriangle("triangle", true);=0A=
				messageSpan.appendChild(summaryDiv);=0A=
			} else {=0A=
				// no triangle=0A=
			}=0A=
		} else {=0A=
			if (content.length > 250) {=0A=
				// put in closed triangle=0A=
				var summaryDiv =3D this.createTriangle("triangle", false);=0A=
				messageSpan.appendChild(summaryDiv);=0A=
			}=0A=
		}=0A=
		textContainer.className =3D elementClass;=0A=
		return textContainer;=0A=
	},=0A=
=0A=
	stripTags: function(stringToClean) {=0A=
		var cleanedString =3D stringToClean.replace(/(<([^>]+)>)/ig,"");=0A=
		return cleanedString;	=0A=
	},=0A=
	=0A=
	createTriangle: function(className, isOpen) {=0A=
		var summaryImg =3D document.createElement("img");=0A=
		var summaryLink =3D document.createElement("a");=0A=
		summaryLink.setAttribute("href", "javascript:void(0);");=0A=
		summaryLink.href =3D "javascript:void(0);";=0A=
		summaryImg.setAttribute("src", (isOpen ? =
CommentEntity.prototype.OPEN_TRIANGLE: =
CommentEntity.prototype.CLOSED_TRIANGLE));=0A=
		className =3D className + (isOpen ? "" : " open_tri"); // AHWS added=0A=
		summaryImg.setAttribute("class", className);=0A=
		summaryImg.className =3D className;=0A=
		summaryLink.onclick =3D function() {=0A=
			this.swapSummary();=0A=
		}.bindAsEventListener(this);=0A=
		summaryLink.appendChild(summaryImg);=0A=
		return summaryLink;=0A=
	},=0A=
	=0A=
	swapSummary: function() {=0A=
		if (this.isSummarized) {=0A=
			this.isSummarized =3D false;=0A=
		} else {=0A=
			this.isSummarized =3D true;=0A=
		}=0A=
		this.refreshContent();=0A=
	},=0A=
	=0A=
	createAuthorContent: function(elementClass, content) {=0A=
		var textContainer =3D document.createElement("div");=0A=
		var messageSpan =3D document.createElement("p");=0A=
		var postedBy =3D "Posted by: "; //AHWS added=0A=
        var authorLabel =3D document.createTextNode(postedBy);//AHWS =
added=0A=
        var message =3D document.createTextNode(content);=0A=
		var dateElement =3D =
this.createDateContent(Number(this.commentRef.postedOnTimeStamp));=0A=
		var pointsElement =3D this.createPointsContent();=0A=
        messageSpan.appendChild(authorLabel);//AHWS added=0A=
		messageSpan.appendChild(message);=0A=
		textContainer.appendChild(messageSpan);=0A=
		textContainer.appendChild(dateElement);=0A=
		textContainer.appendChild(pointsElement);=0A=
		textContainer.className =3D elementClass;=0A=
		return textContainer;=0A=
	},=0A=
	=0A=
	createPointsContent: function() {=0A=
		var textContainer =3D document.createElement("span");=0A=
		var points =3D Number(this.commentRef.points);=0A=
		if (points =3D=3D undefined) =0A=
			return textContainer;=0A=
		=0A=
		var pointsString =3D this.commentRef.points + (points =3D=3D 1 ? " =
Point" : " Points");=0A=
		var message =3D document.createTextNode(pointsString);=0A=
		textContainer.appendChild(message);=0A=
		return textContainer;=0A=
	},=0A=
	=0A=
	getAuthorName: function() {=0A=
		if (this.commentRef =3D=3D null || this.commentRef.author =3D=3D null) =
{=0A=
			return "";=0A=
		} else {=0A=
			var fullName =3D "";=0A=
			if (this.commentRef.author.firstName !=3D undefined) {=0A=
				fullName +=3D this.commentRef.author.firstName;=0A=
			};=0A=
			if (this.commentRef.author.lastName !=3D undefined) {=0A=
				fullName +=3D " " + this.commentRef.author.lastName;=0A=
			};=0A=
			if (fullName =3D=3D undefined || fullName.length <=3D 2) {=0A=
				fullName =3D this.commentRef.author.username;=0A=
			}=0A=
			CommentBroker.prototype.trace("author: " + =
this.commentRef.author.username);=0A=
			return fullName;=0A=
		}=0A=
	}   =0A=
};=0A=
=0A=
var commentBroker =3D undefined;=0A=
function loadComments(articleId, pageNum, numCommentsPerPage, =
includePagination, optionalCommentId) {=0A=
	//temporary disabling of comments=0A=
	var baseUrl;=0A=
	//if ((document.location.href.indexOf("advancemags.com") > 0 || =
document.location.href.indexOf("stag2.wired.com") > 0  ) && =
document.location.href.indexOf("editorial-preview") < 0) {=0A=
		if (document.location.href.indexOf("stag2") > 0 || =
document.location.href.indexOf("advancemags") > 0 ) {=0A=
			baseUrl =3D "http://208.96.53.80/json.js";=0A=
		} else  {=0A=
			baseUrl =3D "http://comments.stag2.wired.com/json.js";=0A=
		}=0A=
=0A=
		//alert (baseUrl);=0A=
		if (commentBroker =3D=3D undefined) {=0A=
			 commentBroker =3D new CommentBroker(baseUrl);=0A=
		}=0A=
	 	commentBroker.requestComments(articleId, pageNum, numCommentsPerPage, =
includePagination, optionalCommentId);=0A=
	=0A=
}=0A=
=0A=
function doCommentAction(actionMode, commentId, uid) {=0A=
	if (commentBroker =3D=3D undefined) {=0A=
		CommentBroker.prototype.trace("No CommentBroker instance found.");=0A=
		return;=0A=
	}=0A=
	commentBroker.initAction(actionMode, commentId, uid);=0A=
}=0A=
=0A=
function doUserAction(eventId) {=0A=
	CommentBroker.prototype.debug("doUserAction: " + eventId);=0A=
	commentBroker.handleUserEvent(eventId);=0A=
}=0A=
=0A=
function loadArticleComments() {=0A=
	loadComments("31", 0, 10, true);=0A=
}=0A=
=0A=
//Event.observe(window, 'load', loadArticleComments);=0A=
=0A=
///////JSON DYNAMIC SCRIPT=0A=
=0A=
function JSONscriptRequest(fullUrl) {=0A=
    // REST request path=0A=
    this.fullUrl =3D fullUrl; =0A=
	CommentBroker.prototype.trace("url: " + fullUrl);=0A=
	=
//document.getElementsByTagName("body").item(0).appendChild(document.crea=
teTextNode(fullUrl));=0A=
    // Keep IE from caching requests=0A=
    this.noCacheIE =3D '&noCacheIE=3D' + (new Date()).getTime();=0A=
    this.headLoc =3D document.getElementsByTagName("head").item(0);=0A=
    // Generate a unique script tag id=0A=
    this.scriptId =3D 'wired_reddit_scriptId' + =
JSONscriptRequest.prototype.scriptCounter++;=0A=
}=0A=
=0A=
// Static script ID counter=0A=
JSONscriptRequest.prototype.scriptCounter =3D 1;=0A=
=0A=
// buildScriptTag method=0A=
//=0A=
JSONscriptRequest.prototype.buildScriptTag =3D function () {=0A=
	this.complete =3D false;=0A=
    // Create the script tag=0A=
    this.scriptObj =3D document.createElement("script");=0A=
    this.scriptObj.onreadystatechange =3D function() {=0A=
		this.complete =3D true;=0A=
		=0A=
	}.bindAsEventListener(this);=0A=
	 this.scriptObj.onload =3D function() {=0A=
		this.complete =3D true;=0A=
	}.bindAsEventListener(this);=0A=
    // Add script object attributes=0A=
    this.scriptObj.setAttribute("type", "text/javascript");=0A=
    this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);=0A=
    this.scriptObj.setAttribute("id", this.scriptId);=0A=
}=0A=
 =0A=
JSONscriptRequest.prototype.removeScriptTag =3D function () {=0A=
    // Destroy the script tag=0A=
    this.headLoc.removeChild(this.scriptObj);  =0A=
}=0A=
=0A=
JSONscriptRequest.prototype.addScriptTag =3D function () {=0A=
    // Create the script tag=0A=
    this.headLoc.appendChild(this.scriptObj);=0A=
}=0A=
//cookie setting junk=0A=
function createCookie(name,value,days){if (days){var date =3D new =
Date();date.setTime(date.getTime()+(days*24*60*60*1000));var =
expires=3D"; expires=3D"+date.toGMTString();}else =
expires=3D"";document.cookie=3Dname+"=3D"+value+expires+"; path=3D/; =
domain=3Dreddit.com";} =0A=
=0A=
function readCookie(name){var nameEQ=3Dname+"=3D";var =
ca=3Ddocument.cookie.split(';');for(var i=3D0;i< ca.length;i++){var c =
=3Dca[i];while(c.charAt(0)=3D=3D' =
')c=3Dc.substring(1,c.length);if(c.indexOf(nameEQ)=3D=3D0)return =
c.substring(nameEQ.length,c.length);}return null;}=0A=
=0A=
var globalPageNum ;=0A=
=0A=
/*image preload for ie6 - uses object detection*/=0A=
if (window.external && (typeof window.XMLHttpRequest =3D=3D =
"undefined")) {=0A=
    // javascript targeting IE 6=0A=
    image1 =3D new Image();=0A=
    image1.src =3D =
"http://www.wired.com/images/comments/arrowupblue2.jpg ";=0A=
    image2 =3D new Image();=0A=
    image2.src =3D =
"http://www.wired.com/images/comments/arrowdownred2.jpg";=0A=
}=0A=
=0A=
/* preload images */=0A=
if (document.images)=0A=
{=0A=
	popTab =3D new Image();=0A=
	popTab.src =3D =
"http://www.wired.com/images/modules/commented_bg_t_sel.gif";=0A=
	comTab =3D new Image();=0A=
	comTab.src =3D =
"http://www.wired.com/images/modules/popular_bg_t_un.gif";=0A=
}=0A=
=0A=
/* function for movable type to redirect to login */=0A=
function mtIsLoggedIn(href){=0A=
	var curCookie =3D document.cookie;=0A=
	if (curCookie.indexOf(CommentBroker.prototype.COOKIE_NAME) > -1) {=0A=
		//user is logged in=0A=
		return;=0A=
	}=0A=
	//user is not logged in. redirect=0A=
	var newHref =3D CommentBroker.prototype.LOGIN_URL + =
CommentPage.prototype.getReturnTo()+href;=0A=
	changeLinkHref(null,newHref,href);=0A=
	return;=0A=
}=0A=
=0A=
function findLinkByHref(href) {=0A=
  for (var i=3D0; i<document.links.length; i++) {=0A=
    if (document.links[i].href =3D=3D href) return i;=0A=
  }=0A=
  return -1;=0A=
}=0A=
=0A=
function changeLinkHref(id,newHref,oldHref) {=0A=
  if (document.links.length > 0) {=0A=
      var index =3D findLinkByHref(oldHref);=0A=
      if (index > -1)=0A=
        document.links[index].href =3D newHref;=0A=
  }=0A=
}
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://w.sharethis.com/widget/?tabs=web%2Cemail&charset=utf-8&services=facebook%2Cmyspace%2Cdelicious%2Ctechnorati%2Cpropeller%2Cmixx%2Cnewsvine%2Cgoogle_bmarks%2Cyahoo_myweb%2Cwindows_live%2Ctailrank%2Cmagnolia%2Cfurl%2Cblinklist%2Cblogmarks&style=default&publisher=0ec71848-688b-4d92-957d-d8ba67ad2647&headerbg=%23e7e7e7&inactivebg=%23f1f1f1&inactivefg=%237e7e7e&linkfg=%23007ca5

//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 =
Valerio Proietti, <http://mad4milk.net>, MIT Style License.=0A=
=0A=
eval(function(p,a,c,k,e,d){e=3Dfunction(c){return(c<a?'':e(parseInt(c/a))=
)+((c=3Dc%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace=
(/^/,String)){while(c--){d[e(c)]=3Dk[c]||e(c)}k=3D[function(e){return =
d[e]}];e=3Dfunction(){return'\\w+'};c=3D1};while(c--){if(k[c]){p=3Dp.repl=
ace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('5 =
1w=3D{1s:\'1.11\'};4 $N(6){2(6!=3D19)};4 $b(6){7(!$N(6))2 =
Z;7(6.X)2\'14\';5 b=3DI 6;7(b=3D=3D\'q\'&&6.1p){P(6.1d){n 1:2\'14\';n =
3:2(/\\S/).1j(6.1c)?\'1k\':\'1v\'}}7(b=3D=3D\'q\'||b=3D=3D\'4\'){P(6.1b){=
n L:2\'1x\';n 1q:2\'1o\';n j:2\'1n\'}7(I =
6.D=3D=3D\'1l\'){7(6.1m)2\'1r\';7(6.15)2\'a\'}}2 b};4 $F(){5 t=3D{};m(5 =
i=3D0;i<a.D;i++){m(5 c z a[i]){5 y=3Da[i][c];5 =
w=3Dt[c];7(w&&$b(y)=3D=3D\'q\'&&$b(w)=3D=3D\'q\')t[c]=3D$F(w,y);R =
t[c]=3Dy}}2 t};5 $f=3D4(){5 k=3Da;7(!k[1])k=3D[9,k[0]];m(5 c z =
k[1])k[0][c]=3Dk[1][c];2 k[0]};5 $x=3D4(){m(5 =
i=3D0,l=3Da.D;i<l;i++){a[i].f=3D4(G){m(5 g z =
G){7(!9.d[g])9.d[g]=3DG[g];7(!9[g])9[g]=3D$x.W(g)}}}};$x.W=3D4(g){2 =
4(10){2 9.d[g].J(10,L.d.1t.1u(a,1))}};$x(1y,L,1f,1g);4 =
$1e(6){2!!(6||6=3D=3D=3D0)};4 $1i(6,1a){2 $N(6)?6:1a};4 $12(M,17){2 =
16.1h(16.12()*(17-M+1)+M)};4 $1W(){2 r 1X().1V()};4 $1U(O){1Z(O);1S(O);2 =
v};5 Q=3D4(6){6=3D6||{};6.f=3D$f;2 6};5 1T=3Dr Q(8);5 1Y=3Dr =
Q(h);h.Y=3Dh.20(\'Y\')[0];8.V=3D!!(h.24);7(8.25)8.22=3D8[8.23?\'21\':\'18=
\']=3DB;R 7(h.1R&&!h.1P&&!1F.1z)8.C=3D8[8.V?\'1G\':\'1Q\']=3DB;R =
7(h.1E!=3Dv)8.1D=3DB;8.1A=3D8.C;1B.f=3D$f;7(I A=3D=3D\'19\'){5 =
A=3D4(){};7(8.C)h.1C("1H");A.d=3D(8.C)?8["[[1I.d]]"]:{}}A.d.X=3D4(){};7(8=
.18)1N{h.1O("1M",Z,B)}1L(e){};5 j=3D4(s){5 =
u=3D4(){2(a[0]!=3D=3Dv&&9.T&&$b(9.T)=3D=3D\'4\')?9.T.J(9,a):9};$f(u,9);u.=
d=3Ds;u.1b=3Dj;2 u};j.1J=3D4(){};j.d=3D{f:4(s){5 E=3Dr 9(v);m(5 c z s){5 =
13=3DE[c];E[c]=3Dj.U(13,s[c])}2 r j(E)},1K:4(){m(5 =
i=3D0,l=3Da.D;i<l;i++)$f(9.d,a[i])}};j.U=3D4(p,o){7(p&&p!=3Do){5 =
b=3D$b(o);7(b!=3D$b(p))2 o;P(b){n\'4\':5 H=3D4(){9.K=3Da.15.K;2 =
o.J(9,a)};H.K=3Dp;2 H;n\'q\':2 $F(p,o)}}2 =
o};',62,130,'||return||function|var|obj|if|window|this|arguments|type|pro=
perty|prototype||extend|prop|document||Class|args||for|case|current|previ=
ous|object|new|properties|mix|klass|null|mp|native|ap|in|HTMLElement|true=
|webkit|length|proto|merge|props|merged|typeof|apply|parent|Array|min|def=
ined|timer|switch|Abstract|else||initialize|Merge|xpath|generic|htmlEleme=
nt|head|false|bind||random|pp|element|callee|Math|max|ie6|undefined|picke=
d|constructor|nodeValue|nodeType|chk|String|Number|floor|pick|test|textno=
de|number|item|class|regexp|nodeName|RegExp|collection|version|slice|call=
|whitespace|MooTools|array|Function|taintEnabled|khtml|Object|createEleme=
nt|gecko|getBoxObjectFor|navigator|webkit420|iframe|DOMElement|empty|impl=
ement|catch|BackgroundImageCache|try|execCommand|all|webkit419|childNodes=
|clearInterval|Window|clear|getTime|time|Date|Document|clearTimeout|getEl=
ementsByTagName|ie7|ie|XMLHttpRequest|evaluate|ActiveXObject'.split('|'),=
0,{}))=0A=
if (!window.console || !console.firebug) {=0A=
=0A=
    var names =3D ["log", "debug", "info", "warn", "error", "assert", =
"dir", "dirxml",=0A=
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", =
"profileEnd"];=0A=
=0A=
    window.console =3D {};=0A=
    for (var i =3D 0; i < names.length; ++i)=0A=
        window.console[names[i]] =3D function() {}=0A=
}=0A=
=0A=
if (!SHARETHIS) {=0A=
=0A=
/*=0A=
 *    Sharelet=0A=
 *=0A=
 *    The thing being shared. There can be zero or more sharelets per =
page.=0A=
 *    Share buttons can optionally be created here requiring the DOM =
parent=0A=
 *    to exist.=0A=
 */=0A=
=0A=
var Sharelet =3D new Class({=0A=
    node:   null,    // DOM parent node.=0A=
    button: null,=0A=
    properties: {=0A=
        type:       '',=0A=
        title:      document.title,=0A=
        summary:    '',=0A=
        content:    '',=0A=
        url:        document.URL,=0A=
        icon:       '',=0A=
        category:   '',=0A=
        updated:    document.lastModified,=0A=
        published:  '',=0A=
        author:     ''=0A=
    },=0A=
    options: {=0A=
        button: true,=0A=
        buttonText: 'ShareThis'=0A=
    },=0A=
    initialize: function(options){=0A=
        this.options =3D $merge(this.options, options);=0A=
    },=0A=
    bind: function(node){=0A=
        if (this.node !=3D=3D null && this.node !=3D=3D node) {=0A=
            try {this.node.removeChild(this.button)} catch(err){=0A=
                console.error(err);=0A=
            }=0A=
        }=0A=
        if (this.options.button =3D=3D true) {=0A=
            try{node.appendChild(this.button)} catch(err){=0A=
                console.error(err);=0A=
            }=0A=
        }=0A=
        this.node =3D node;=0A=
    }=0A=
});=0A=
=0A=
/*=0A=
 *    ShareThisWidget=0A=
 *=0A=
 *    Handles creation of the widget, positioning and visibility.=0A=
 */=0A=
var ShareThisWidget =3D new Class({=0A=
    visible:    0,=0A=
    wrapper:    null,=0A=
    iframe:     null,=0A=
    close:      null,=0A=
    sharelet:   null,=0A=
    left:       0,=0A=
    top:        0,=0A=
    hiddenEmbeds: false,=0A=
    loaderHTML: '<html><head><style>body{background:#eee =
url(http://w.sharethis.com/widget/1.15/load.gif) center center =
no-repeat;color:#bbb;font:bold 18px =
Arial,Helvetica,sans-serif;padding:50px =
20px;text-align:center;}</style></head><body>Getting ready to =
share!</body></html>',=0A=
    initialize: function(options){=0A=
        this.options =3D options;=0A=
        var d =3D document.createElement('div');=0A=
        d.className =3D 'stwrapper';=0A=
        d.style.visibility =3D 'hidden';=0A=
        this.wrapper =3D d;=0A=
        =0A=
        try {=0A=
            var f =3D document.createElement('<iframe name=3D"stframe" =
allowTransparency=3D"true" =
style=3D"body{background:transparent;}"></iframe>');=0A=
        } catch(err) {=0A=
            var f =3D document.createElement('iframe');=0A=
            f.allowTransparency=3D"true";=0A=
            f.setAttribute("allowTransparency", "true");=0A=
        }=0A=
        f.id =3D 'stframe';=0A=
        f.className =3D 'stframe';=0A=
        f.name =3D 'stframe';=0A=
        f.frameBorder =3D '0';=0A=
        f.scrolling =3D 'no';=0A=
        f.width =3D '354px';=0A=
        f.height =3D '437px';=0A=
        d.appendChild(f);=0A=
        this.iframe =3D f;=0A=
=0A=
        var a =3D document.createElement('a');=0A=
        a.href =3D '#';=0A=
        a.title =3D 'close';=0A=
        a.className =3D 'stclose';=0A=
        a.onclick =3D this.hide;=0A=
        a.style.color =3D '#fff';=0A=
        var t =3D document.createTextNode('X');=0A=
        a.appendChild(t);=0A=
        d.appendChild(a);=0A=
        this.close =3D a;=0A=
    },=0A=
    show: function(opts){=0A=
        SHARETHIS.widget.visible =3D 1;=0A=
        SHARETHIS.widget.wrapper.style.left =3D this.left+'px';=0A=
        SHARETHIS.widget.wrapper.style.top =3D this.top+'px';=0A=
        if (SHARETHIS.widget.wrapper.parentNode =3D=3D null=0A=
            || typeof(SHARETHIS.widget.wrapper.parentNode.tagName) =
=3D=3D 'undefined'){=0A=
            document.body.appendChild(SHARETHIS.widget.wrapper);=0A=
        }=0A=
        SHARETHIS.widget.wrapper.style.visibility =3D 'visible';=0A=
        if (opts && Boolean(opts.embeds) !=3D true) {=0A=
            SHARETHIS.widget.hiddenEmbeds =3D true;=0A=
            SHARETHIS.widget.hideEmbeds();=0A=
        }=0A=
        return false;=0A=
    },=0A=
    hide: function(opts){=0A=
        SHARETHIS.widget.visible =3D 0;=0A=
        SHARETHIS.widget.wrapper.style.visibility =3D 'hidden';=0A=
        if (Boolean(SHARETHIS.widget.hiddenEmbeds) =3D=3D true || (opts =
&& Boolean(opts.embeds) !=3D true)) {=0A=
            SHARETHIS.widget.hiddenEmbeds =3D false;=0A=
            SHARETHIS.widget.showEmbeds();=0A=
        }=0A=
        return false;=0A=
    },=0A=
    hideEmbeds: function() {=0A=
        var embeds =3D document.getElementsByTagName('embed');=0A=
        for (var i=3D0; i< embeds.length; i++) {=0A=
            embeds[i].style.visibility =3D "hidden";=0A=
        }=0A=
    },=0A=
    showEmbeds: function() {=0A=
        var embeds =3D document.getElementsByTagName('embed');=0A=
        for (var i=3D0; i< embeds.length; i++) {=0A=
            embeds[i].style.visibility =3D "visible";=0A=
        }=0A=
    },=0A=
    loading: function(){=0A=
        var w =3D parent.frames['stframe'];=0A=
        try {=0A=
        w.window.document.open();=0A=
        w.window.document.clear();=0A=
        w.window.document.write(this.loaderHTML);=0A=
        w.window.document.close();=0A=
        } catch(err) {}=0A=
    }=0A=
});=0A=
=0A=
/*=0A=
 *    ShareThis=0A=
 *=0A=
 *    This global object implements the ShareThis API and binding =
sharelets and the widget=0A=
 *    together.=0A=
 */=0A=
var ShareThis =3D new Class({=0A=
    version:    '1.18',=0A=
    ready:      false,=0A=
    readyList:  [],=0A=
    toolbar:    false,=0A=
    counter:    0,=0A=
    widget:     null,=0A=
    sharelets:  [],=0A=
    page:       {},=0A=
    query:      {},=0A=
    meta: {=0A=
        publisher : '',=0A=
        hostname  : location.host,=0A=
        location  : location.pathname=0A=
    },=0A=
    initialize: function(options){=0A=
        var options =3D options || {};=0A=
        this.options =3D options;=0A=
        if (options.publisher) {=0A=
            this.meta.publisher =3D options.publisher;=0A=
        }=0A=
        this.page =3D new Sharelet($merge(options,{button:false}));=0A=
=0A=
        this.widget =3D new ShareThisWidget();=0A=
        if (options.headerbg) {=0A=
            var l =3D this.luminescence(options.headerbg);=0A=
            this.widget.close.style.color =3D l > 0.5 ? '#000' : '#fff';=0A=
        }=0A=
        var css =3D 'http://w.sharethis.com/widget/' + this.version + =
'/sharethis.css';=0A=
        this.load('link', {=0A=
            href : (this.options.css ? this.options.css : css),=0A=
            rel  : 'stylesheet',=0A=
            type : 'text/css'=0A=
        });=0A=
        if (typeof(window.addEventListener) !=3D 'undefined') {=0A=
            window.addEventListener("load", this.onReady, false);=0A=
        } else if (typeof(document.addEventListener) !=3D 'undefined') {=0A=
            document.addEventListener("load", this.onReady, false);=0A=
        } else if (typeof window.attachEvent !=3D 'undefined') {=0A=
            window.attachEvent("onload", this.onReady);=0A=
        }=0A=
    },=0A=
    selection: function(){=0A=
        if (window.getSelection) {=0A=
            this.page.properties.selection =3D window.getSelection();=0A=
        } else if (document.getSelection) {=0A=
            this.page.properties.selection =3D document.getSelection();=0A=
        } else if (document.selection && document.selection.createRange) =
{=0A=
            this.page.properties.selection =3D =
document.selection.createRange().text;=0A=
        }=0A=
    },=0A=
    luminescence: function(color) {=0A=
        var rgb =3D {};=0A=
        if (color.length =3D=3D 7) {=0A=
  	    rgb =3D [parseInt('0x' + color.substring(1, 3)) / 255,=0A=
  	           parseInt('0x' + color.substring(3, 5)) / 255,=0A=
  		   parseInt('0x' + color.substring(5, 7)) / 255];=0A=
        } else if (color.length =3D=3D 4) {=0A=
  	    rgb =3D  [parseInt('0x' + color.substring(1, 2)) / 15,=0A=
  		    parseInt('0x' + color.substring(2, 3)) / 15,=0A=
  		    parseInt('0x' + color.substring(3, 4)) / 15];=0A=
        }=0A=
        var r =3D rgb[0], g =3D rgb[1], b =3D rgb[2];=0A=
        var min =3D Math.min(r, Math.min(g, b));=0A=
        var max =3D Math.max(r, Math.max(g, b));=0A=
        return (min + max) / 2;=0A=
    },=0A=
    defer: function(f) {=0A=
        if (this.ready) {=0A=
            f.apply(document, [SHARETHIS]);=0A=
        } else {=0A=
            this.readyList.push( function() { return f.apply(this, =
[SHARETHIS]) } );=0A=
            //this.readyList.push(f);=0A=
        }=0A=
    },=0A=
    onReady: function() {=0A=
        SHARETHIS.ready =3D true;=0A=
        for (var i =3D 0; i < SHARETHIS.readyList.length; ++i)=0A=
            SHARETHIS.readyList[i].apply(document, [SHARETHIS]);=0A=
=0A=
    },=0A=
    load: function(t, opts) {=0A=
        var e =3D document.createElement(t);=0A=
        for (var i in opts) {=0A=
            e.setAttribute(i, opts[i]);=0A=
        }=0A=
        try {=0A=
            document.getElementsByTagName('head')[0].appendChild(e);=0A=
        } catch (err) {=0A=
            document.body.appendChild(e);=0A=
        }=0A=
    },=0A=
    pageSize: function() {=0A=
        var pScroll =3D [0,0];=0A=
        if (typeof(window.pageYOffset) =3D=3D 'number') {=0A=
            //Netscape compliant=0A=
            pScroll =3D [window.pageXOffset, window.pageYOffset];=0A=
        } else if (document.body && (document.body.scrollLeft || =
document.body.scrollTop)) {=0A=
            //DOM compliant=0A=
            pScroll =3D [document.body.scrollLeft, =
document.body.scrollTop];=0A=
        } else if (document.documentElement=0A=
          && (document.documentElement.scrollLeft || =
document.documentElement.scrollTop)) {=0A=
            //IE6 standards compliant mode=0A=
            pScroll =3D [document.documentElement.scrollLeft,=0A=
                       document.documentElement.scrollTop];=0A=
        }=0A=
        return pScroll;=0A=
    },=0A=
    addEntry: function(properties, options){=0A=
        var options =3D options || {};=0A=
        =0A=
        if (typeof(options.button) =3D=3D "undefined") {=0A=
            options.button =3D true;=0A=
        }=0A=
        if (typeof(options.bind) =3D=3D "undefined") {=0A=
            options.bind =3D true;=0A=
        }=0A=
        var s =3D new Sharelet($merge(this.options, options));=0A=
        s.properties =3D $merge(s.properties, properties);=0A=
        s.idx =3D this.sharelets.push(s) - 1;=0A=
        s.sharethis =3D this;=0A=
        s.widget =3D this.widget;=0A=
        s.popup =3D function(e){=0A=
             if (s.options.onclick) {=0A=
                  var res =3D s.options.onclick.apply(document, [s]);=0A=
                  if (res =3D=3D false) {=0A=
                      return false;=0A=
                  }=0A=
             }=0A=
             SHARETHIS.selection();=0A=
             var p =3D =
window.open("http://w.sharethis.com/widget/loading", =
"stframe","status=3D1,toolbar=3D0,width=3D354,height=3D437");=0A=
             s.widget.popup =3D p;=0A=
             try {=0A=
                 p.document.open();=0A=
                 p.document.clear();=0A=
                 p.window.document.write(SHARETHIS.widget.loaderHTML);=0A=
                 p.document.close();=0A=
                 p.focus();=0A=
             } catch(err) {console.error(err);}=0A=
             var f =3D SHARETHIS.form([s]);=0A=
             document.body.appendChild(f);=0A=
             f.submit();=0A=
             return false;=0A=
        };=0A=
        s.attachButton =3D function(a){=0A=
            a.onclick =3D (Boolean(s.options.popup) =3D=3D true ? =
s.popup : s.onClick);=0A=
        };=0A=
        s.onClick =3D function(e){=0A=
            if (s.options.onclick) {=0A=
                 var res =3D s.options.onclick.apply(document, [s]);=0A=
                 if (res =3D=3D false) {=0A=
                     return false;=0A=
                 }=0A=
            }=0A=
            findPos =3D function(obj) {=0A=
                var obj =3D obj || {};=0A=
                if (obj.parentNode && =
obj.parentNode.className.indexOf('stbutton') !=3D -1) {=0A=
                    obj =3D obj.parentNode;=0A=
                }=0A=
                var pScroll =3D SHARETHIS.pageSize();=0A=
                var pos =3D pScroll;=0A=
                var widgetWidth =3D 354;=0A=
                if (obj.offsetParent) {=0A=
                    odims =3D {offsetLeft:obj.offsetLeft, =
scrollWidth:obj.scrollWidth};=0A=
                    pos =3D =
[obj.offsetLeft+obj.scrollWidth,obj.offsetTop+obj.scrollHeight];=0A=
                    while (obj =3D obj.offsetParent) {=0A=
                        pos[0] +=3D obj.offsetLeft;=0A=
                        pos[1] +=3D obj.offsetTop;=0A=
                    }=0A=
                    if (s.options.offsetLeft) {=0A=
                        pos[0] +=3D parseInt(s.options.offsetLeft);=0A=
                    }=0A=
                    if (s.options.offsetTop) {=0A=
                        pos[1] +=3D parseInt(s.options.offsetTop);=0A=
                    }=0A=
                    if (!s.options.offsetLeft && !s.options.offsetTop) {=0A=
                        pos[0] -=3D odims.scrollWidth;=0A=
                        if (pos[0] + widgetWidth > =
document.body.scrollWidth) {=0A=
                            pos[0] -=3D widgetWidth - odims.scrollWidth;=0A=
                        }=0A=
                    }=0A=
                }=0A=
                return pos;=0A=
            };=0A=
            if (!e) var e =3D window.event;=0A=
            var el =3D e.target || e.srcElement;=0A=
            var coords =3D findPos(el);=0A=
            s.widget.left =3D coords[0];=0A=
            s.widget.top =3D coords[1];=0A=
            =0A=
            if (s.widget.visible) {=0A=
                if (s =3D=3D s.widget.sharelet) {=0A=
                    s.widget.hide(s.options);=0A=
                } else {=0A=
                    s.widget.loading();=0A=
                    s.share();=0A=
                }=0A=
            } else {=0A=
                if (s =3D=3D s.widget.sharelet) {=0A=
                    s.widget.show(s.options);=0A=
                } else {=0A=
                    s.widget.show(s.options);=0A=
                    s.widget.loading();=0A=
                    s.share();=0A=
                }=0A=
            }=0A=
            return false;=0A=
        };=0A=
        s.share =3D function(){=0A=
            return s.sharethis.share(s);=0A=
        };=0A=
        if (typeof(s.options.button) =3D=3D "undefined" || =
Boolean(s.options.button) !=3D false) {=0A=
            var a =3D document.createElement("a");=0A=
            a.className =3D 'stbutton stico_' + (s.options.style ? =
s.options.style : (SHARETHIS.options.style ? SHARETHIS.options.style : =
'default'));=0A=
            a.title =3D "ShareThis via email, AIM, social bookmarking =
and networking sites, etc.";=0A=
            a.href =3D "#";=0A=
            a.onclick =3D (Boolean(s.options.popup) =3D=3D true ? =
s.popup : s.onClick);=0A=
            var t =3D document.createElement("span");=0A=
            t.className =3D 'stbuttontext';=0A=
            t.appendChild(document.createTextNode(s.options.buttonText));=0A=
            a.appendChild(t);=0A=
            s.button =3D a;=0A=
            if (typeof(s.options.bind) =3D=3D "undefined" || =
Boolean(s.options.bind) !=3D false) {=0A=
                var id =3D 'sharethis_' + s.idx;=0A=
                document.write('<span id=3D"' + id + '"></span>');=0A=
                var x =3D document.getElementById(id);=0A=
                if (x) {=0A=
                    x.appendChild(a);=0A=
                }=0A=
            }=0A=
        }=0A=
        this.defer(function(){SHARETHIS.log('view', s)});=0A=
        return s;=0A=
    },=0A=
    share: function(sharelet){=0A=
        this.selection();=0A=
        this.widget.sharelet =3D sharelet;=0A=
        this.widget.show(sharelet.options);=0A=
        var f =3D SHARETHIS.form([sharelet]);=0A=
        document.body.appendChild(f);=0A=
        f.submit();=0A=
    },=0A=
    form: function(olist) {=0A=
        field =3D function(k, v, brackets) {=0A=
            var f   =3D document.createElement("input");=0A=
            f.type  =3D "hidden";=0A=
            f.name  =3D (brackets =3D=3D true ? k + "[]" : k);=0A=
            f.value =3D v;=0A=
            return f;=0A=
        }=0A=
        normalize =3D function(s){=0A=
            if (s =3D=3D null) {=0A=
                return '';=0A=
            }=0A=
            return encodeURIComponent(s);=0A=
        }=0A=
=0A=
        var f    =3D document.createElement("form");=0A=
        //f.className  =3D "stform";=0A=
        f.method =3D "post";=0A=
        f.action =3D "http://sharethis.com/share/lightbox.php";=0A=
        f.target =3D "stframe";=0A=
        for (var j in this.meta) {=0A=
            f.appendChild(field("meta_" + j, normalize(this.meta[j])));=0A=
        }=0A=
        for (var j in this.page.properties) {=0A=
            f.appendChild(field("page_" + j, =
normalize(this.page.properties[j])));=0A=
        }=0A=
        for (var j in this.query) {=0A=
            f.appendChild(field("query_" + j, normalize(this.query[j])));=0A=
        }=0A=
        for (var i=3D0; i < olist.length; i++) {=0A=
            obj =3D olist[i];=0A=
            for (var j in obj.properties) {=0A=
                f.appendChild(field(j, normalize(obj.properties[j]), =
true));=0A=
            }=0A=
            for (var j in obj.options) {=0A=
                f.appendChild(field("opts_"+j, =
normalize(obj.options[j]), false));=0A=
            }=0A=
        }=0A=
        return f;=0A=
    },=0A=
    log: function(event, obj) {=0A=
        var url =3D "http://r.sharethis.com/log?event=3D" + event=0A=
            + "&publisher=3D" + =
encodeURIComponent(SHARETHIS.meta.publisher)=0A=
            + "&hostname=3D" + =
encodeURIComponent(SHARETHIS.meta.hostname)=0A=
            + "&location=3D" + =
encodeURIComponent(SHARETHIS.meta.location)=0A=
            + "&url=3D" + encodeURIComponent(obj.properties.url)=0A=
            + "&ts" + (new Date()).getTime() + "." + SHARETHIS.counter++;=0A=
=0A=
        var logger =3D new Image(1,1);=0A=
        logger.src =3D url;=0A=
        logger.onload =3D function(){return;};=0A=
    }=0A=
});=0A=
=0A=
var _query =3D [];=0A=
_query.tabs =3D 'web,email';=0A=
_query.charset =3D 'utf-8';=0A=
_query.services =3D =
'facebook,myspace,delicious,technorati,propeller,mixx,newsvine,google_bma=
rks,yahoo_myweb,windows_live,tailrank,magnolia,furl,blinklist,blogmarks';=0A=
_query.style =3D 'default';=0A=
_query.publisher =3D '0ec71848-688b-4d92-957d-d8ba67ad2647';=0A=
_query.headerbg =3D '#e7e7e7';=0A=
_query.inactivebg =3D '#f1f1f1';=0A=
_query.inactivefg =3D '#7e7e7e';=0A=
_query.linkfg =3D '#007ca5';=0A=
=0A=
var SHARETHIS =3D new ShareThis(_query);=0A=
SHARETHIS.query =3D _query;=0A=
var st =3D SHARETHIS;=0A=
=0A=
} // end if !SHARETHIS=0A=
=0A=
// Don't run if called from HEAD, or if toolbar has been run=0A=
var _slist =3D document.getElementsByTagName('script');=0A=
var _s =3D _slist[_slist.length - 1];=0A=
if (_s && _s.parentNode.tagName !=3D "HEAD" && typeof(_sttoolbar) =3D=3D =
"undefined") {=0A=
    var obj =3D SHARETHIS.addEntry(null,$merge(_query,{bind:false}));=0A=
    var id =3D 'sharethis_' + obj.idx;=0A=
    document.write('<span id=3D"' + id + '"></span>');=0A=
    var x =3D document.getElementById(id);=0A=
    obj.bind(x);=0A=
}=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://reddit.com/button.js?t=1&width=120&height=20

=0A=
(function() {=0A=
var write_string=3D'<iframe =
src=3D"http://www.reddit.com/button_content?t=3D1&url=3D';=0A=
if (window.reddit_url)  { write_string +=3D =
encodeURIComponent(reddit_url); }=0A=
else { write_string +=3D =
encodeURIComponent('http://www.wired.com/politics/law/news/2001/09/47109'=
);}=0A=
if (window.reddit_title) { write_string +=3D '&title=3D' + =
encodeURIComponent(reddit_title); }=0A=
if (window.reddit_css) { write_string +=3D '&css=3D' + =
encodeURIComponent(reddit_css); }=0A=
write_string +=3D '" height=3D"20" width=3D"120" scrolling=3D"no" =
frameborder=3D"0"></iframe>';=0A=
document.write(write_string);=0A=
})()=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://digg.com/tools/diggthis.js

=0A=
(function(){var ds=3Dtypeof digg_skin=3D=3D'string'?digg_skin:'';var =
h=3D80;var w=3D52;if(ds=3D=3D'compact'){h=3D18;w=3D120;}=0A=
else if(ds=3D=3D'icon'){h=3D16;w=3D16;}=0A=
var u=3Dtypeof digg_url=3D=3D'string'?digg_url:(typeof =
DIGG_URL=3D=3D'string'?DIGG_URL:window.location.href);document.write("<if=
rame src=3D'http://digg.com/tools/diggthis.php?u=3D"+=0A=
escape(u).replace(/\+/g,'%2b')+=0A=
(typeof digg_title=3D=3D'string'?('&t=3D'+escape(digg_title)):'')+=0A=
(typeof digg_window=3D=3D'string'?('&w=3D'+escape(digg_window)):'')+=0A=
(typeof digg_bodytext=3D=3D'string'?('&b=3D'+escape(digg_bodytext)):'')+=0A=
(typeof digg_media=3D=3D'string'?('&m=3D'+escape(digg_media)):'')+=0A=
(typeof digg_topic=3D=3D'string'?('&c=3D'+escape(digg_topic)):'')+=0A=
(typeof digg_bgcolor=3D=3D'string'?('&k=3D'+escape(digg_bgcolor)):'')+=0A=
(ds?('&s=3D'+ds):'')+"' height=3D'"+h+"' width=3D'"+w+"' =
frameborder=3D'0' scrolling=3D'no'></iframe>");})()
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://d.yimg.com/ds/badge.js

(function(){var T=3D"http://buzz.yahoo.com";var =
L=3Dwindow.location.href.replace(/http:\/\/([^\/:]+).*$/,"$1").split(".")=
.slice(-2).join(".");var F=3D"http://l.yimg.com/ds/orion";var =
G=3D"0.2.4";var Q=3DF+"/"+G;var =
D=3Dwindow.yahooBuzzOnLoad||function(){};var =
C=3Dwindow.yahooBuzzArticleId;var H=3Dwindow.yahooBuzzShowBranding;var =
J=3Dwindow.yahooBuzzBadgeType;var =
S=3Dfunction(X,Y,W,Z,V){M({name:"from",value:"publisher"});M({name:"asset=
type",value:"article"});M({name:"publisherurn",value:Y[0]});M({name:"guid=
",value:Y[1]});M({name:".done",value:"/article/"+Y[0]+"/"+encodeURICompon=
ent(encodeURIComponent(Y[1]))});M({name:"loc",value:L});M({name:"votetype=
",value:1});R(X,W,Z,O+"/article/"+Y[0]+"/"+encodeURIComponent(encodeURICo=
mponent(Y[1])),V);D.call(X)};var B=3D[];var N=3Dfunction(Y,W){var =
V=3Ddocument.createElement(Y);V.attachEventListener=3DP;V.removeEventList=
ener=3DP;V.attachEvent=3DP;V.detatchEvent=3DP;for(var Z in =
W){if(Z=3D=3D=3D"style"){for(var X in =
W[Z]){V.style[X]=3DW[Z][X]}}else{V[Z]=3DW[Z]}}return V};var =
R=3Dfunction(X,b,d,W,Y){var c,f;var Z=3D'<span =
style=3D"cursor:pointer;cursor:hand;color:#666;line-height:10px;display:b=
lock;margin-top:3px;font-size:10px;font-family:Verdana,Tahoma,Arial,Helve=
tica,sans-serif;padding-right:5px;">on Yahoo!</span>';var =
e=3D{form:X,href:W,onclick:I};var =
V=3D{"textDecoration":"none","width":"74px","display":"block","textAlign"=
:"right"};switch(b){case"text":f=3D'<span =
style=3D"cursor:pointer;cursor:hand;position:relative;padding-left:20px;l=
ine-height:16px;"><span =
style=3D"cursor:pointer;cursor:hand;display:block;position:absolute;top:0=
;left:0;background:transparent url('+Q+'/img/badge-logo.png) top left =
no-repeat;height:16px;width:16px;"></span>Yahoo! =
Buzz</span>';e.innerHTML=3Df;break;case"textbutton":f=3D'<span =
style=3D"cursor:pointer;cursor:hand;position:relative;left:-4px;padding-l=
eft:24px;font-size:80%;font-family:Verdana,Tahoma,Helvetica,Arial,sans-se=
rif;display:block;line-height:22px;height:22px;color:#00c;background:url(=
'+Q+'/img/badge-textbutton.png) left center no-repeat;">Buzz =
up!</span>';e.style=3D{target:"_new",width:"auto",position:"relative",lef=
t:"4px",display:"block",width:"80px",background:"url("+Q+"/img/badge-text=
button.png) right center =
no-repeat"};e.innerHTML=3Df;break;case"logo":f=3D'<span =
style=3D"cursor:pointer;cursor:hand;position:relative;padding-left:20px;l=
ine-height:16px;"><span =
style=3D"cursor:pointer;cursor:hand;display:block;position:absolute;top:0=
;left:0;background:transparent url('+Q+'/img/badge-logo.png) top left =
no-repeat;height:16px;width:16px;"></span></span>';e.innerHTML=3Df;break;=
case"small":f=3D'<span =
style=3D"cursor:pointer;cursor:hand;background:transparent =
url('+Q+'/img/badge-small.png) top left =
no-repeat;display:block;height:0;padding-top:22px;width:74px;text-indent:=
-999em;overflow:hidden">Buzz =
up!</span>';if(d){f+=3DZ}e.style=3DV;e.innerHTML=3Df;break;case"large":f=3D=
'<span style=3D"cursor:pointer;cursor:hand;background:transparent =
url('+Q+'/img/badge-large.png) top left =
no-repeat;display:block;height:0;padding-top:33px;width:109px;text-indent=
:-999em;overflow:hidden">Buzz =
up!</span>';if(d){f+=3DZ}e.style=3DV;V.width=3D"109px";e.innerHTML=3Df;br=
eak;case"medium":default:f=3D'<span =
style=3D"cursor:pointer;cursor:hand;background:transparent =
url('+Q+'/img/badge-medium.png) top left =
no-repeat;display:block;height:0;padding-top:27px;width:91px;text-indent:=
-999em;overflow:hidden">Buzz =
up!</span>';if(d){f+=3DZ}e.style=3DV;V.width=3D"91px";e.innerHTML=3Df;bre=
ak}var =
g=3DN("span",{id:X.id,className:X.className});g.appendChild(N("a",e));X.i=
d=3DX.id+"-form";Y.parentNode.insertBefore(g,Y);Y.parentNode.removeChild(=
Y);K()};var M=3Dfunction(W){var V=3DN("input",W);B.push(V)};var =
I=3Dfunction(X){X=3DX||window.event;var =
V=3DX.target||X.srcElement;while(V&&V.tagName!=3D=3D"A"){V=3DV.parentNode=
}if(!V){return true}var W=3DV.form;U(W);if(typeof =
(X.preventDefault)=3D=3D=3D"function"){X.preventDefault()}X.returnValue=3D=
false;X.cancelBubble=3Dtrue;X.stopPropagation&&X.stopPropagation();return=
 false};var P=3Dfunction(V){return true};var =
U=3Dfunction(Z){if(!Z){return true}for(var =
Y=3DB.length-1;Y>-1;Y--){Z.appendChild(B[Y])}Z.onsubmit=3DP;document.body=
.appendChild(Z);Z.submit();var =
W=3DZ.getElementsByTagName("input");for(var =
Y=3D0,V=3DW.length;Y<V;Y++){try{W[Y].parentNode.removeChild(W[Y])}catch(X=
){continue}}Z.parentNode.removeChild(Z)};var A=3Dfunction(){var =
Y=3D"yahooBuzzBadge",W=3DY,V=3D0,X;while((X=3Ddocument.getElementById(W))=
&&X.____yb=3D=3D1||document.getElementById(W+"-form")){W=3DY+"-"+V;V++}if=
(X){X.____yb=3D1}return W}();var E=3Dfunction(){var W=3DA;for(var =
V=3D0;V<5;V++){W+=3DString.fromCharCode(Math.floor(Math.random()*26)+97)}=
document.write('<span id=3D"'+W+'" =
style=3D"position:absolute;left:-999em;height:0;width:0;"></span>');retur=
n document.getElementById(W)}();E.____yb=3D1;var K;var =
O;window.setTimeout(function(){K=3Dfunction(){if(E&&E.parentNode){E.paren=
tNode.removeChild(E)}Y=3Dnull};var W=3Dfunction(){if(!E){return =
undefined}var =
b=3DE;while(b&&(!b.tagName||b.tagName!=3D=3D"SCRIPT")){if(b&&b.previousSi=
bling&&b.previousSibling.tagName&&b.previousSibling.childNodes.length){b=3D=
b.previousSibling.lastChild}else{if(b=3D=3D=3Db.parentNode.firstChild){b=3D=
b.parentNode}else{b=3Db.previousSibling}}}if(!b){return =
undefined}b.____yb=3D1;return =
b}();O=3D(W&&W.src)||"";if(O.substr(0,1)=3D=3D=3D"/"){O=3D"http://"+windo=
w.location.host}O=3DO.replace(/^http:\/\/([^\/]+.yahoo.com)(:[0-9]+)?(\/.=
*)?/,"http://$1$2");if(!O.match(/^http:\/\/([^\/]+.yahoo.com)(:[0-9]+)?$/=
)){O=3DT}var Z=3Dfunction(){var b=3D"";if(C&&typeof =
(C)=3D=3D=3D"string"){b=3DC}else{if(W&&W.innerHTML&&W.src){b=3DW.innerHTM=
L.replace(/[\n\r\s\t]+/g," =
").replace(/^\s+/,"").replace(/\s+$/,"")}}b=3Db.split(":");return[b.shift=
(),b.join(":")]}();var X=3Dfunction(){var b;if(J&&typeof =
(J)=3D=3D=3D"string"){b=3DJ}else{if(W){b=3DW.getAttribute("badgetype")}}r=
eturn b||"medium"}();var a=3Dfunction(){var b;if(H&&typeof =
(H)!=3D=3D"undefined"){b=3DH}else{if(W){b=3DW.getAttribute("showbranding"=
)}}if(!isNaN(b)){b=3D(+b)}else{if(b=3D=3D=3D"false"||b=3D=3D=3D"no"||b=3D=
=3D=3D"off"){b=3Dfalse}}return !!b}();var =
V=3Ddocument.getElementById(A)||E;V.____yb=3D1;var =
Y=3Dfunction(){if(!V){return undefined}var =
b=3DN("form",{id:A+"-form",className:"yahooBuzzBadge-form",action:O+"/vot=
e/",method:"post",target:"_new",____yb:1,style:{position:"absolute",heigh=
t:"1px",width:"1px",visibility:"hidden"}});V.id=3D"";return =
b}();S(Y,Z,X,a,V)},0)})()
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js

(function(){=0A=
var g=3Ddocument,j=3Dnavigator,m=3Dwindow;function aa(){var =
a=3Dg.cookie,c=3DMath.round((new =
Date).getTime()/1000),b=3Dm.google_analytics_domain_name,d=3Dtypeof =
b=3D=3D"undefined"?s("auto"):s(b),e=3Da.indexOf("__utma=3D"+d+".")>-1,f=3D=
a.indexOf("__utmb=3D"+d)>-1,i=3Da.indexOf("__utmc=3D"+d)>-1,k,n=3D{};if(e=
){k=3Da.split("__utma=3D"+d+".")[1].split(";")[0].split(".");n.sid=3Df&&i=
?k[3]+"":(m&&m.gaGlobal&&m.gaGlobal.sid?m.gaGlobal.sid:c+"");n.vid=3Dk[0]=
+"."+k[1];n.from_cookie=3Dtrue;n.dh=3Dd}else{n.sid=3Dm&&m.gaGlobal&&m.gaG=
lobal.sid?m.gaGlobal.sid:=0A=
c+"";n.vid=3Dm&&m.gaGlobal&&m.gaGlobal.vid?m.gaGlobal.vid:(u()^ba())*2147=
483647+"."+c;n.from_cookie=3Dfalse}n.hid=3Dm&&m.gaGlobal&&m.gaGlobal.hid?=
m.gaGlobal.hid:u();m.gaGlobal=3Dn;return n}function u(){return =
Math.round(Math.random()*2147483647)}function ba(){var =
a=3Dg.cookie?g.cookie:"",c=3Dm.history.length,b,d,e=3D[j.appName,j.versio=
n,j.language?j.language:j.browserLanguage,j.platform,j.userAgent,j.javaEn=
abled()?1:0].join("");if(m.screen)e+=3Dm.screen.width+"x"+m.screen.height=
+m.screen.colorDepth;else if(m.java){d=3D=0A=
java.awt.Toolkit.getDefaultToolkit().getScreenSize();e+=3Dd.screen.width+=
"x"+d.screen.height}e+=3Da;e+=3Dg.referrer?g.referrer:"";b=3De.length;whi=
le(c>0)e+=3Dc--^b++;return w(e)}function w(a){var =
c=3D1,b=3D0,d,e;if(!(a=3D=3Dundefined||a=3D=3D"")){c=3D0;for(d=3Da.length=
-1;d>=3D0;d--){e=3Da.charCodeAt(d);c=3D(c<<6&268435455)+e+(e<<14);b=3Dc&2=
66338304;c=3Db!=3D0?c^b>>21:c}}return c}function =
s(a){if(!a||a=3D=3D""||a=3D=3D"none")return =
1;if("auto"=3D=3Da){a=3Dg.domain;if("www."=3D=3Da.substring(0,4))a=3Da.su=
bstring(4,a.length)}return w(a)};var =
ga=3D{google_ad_channel:"channel",google_ad_host:"host",google_ad_host_ti=
er_id:"ht_id",google_ad_region:"region",google_ad_section:"region",google=
_ad_type:"ad_type",google_adtest:"adtest",google_alternate_ad_url:"altern=
ate_ad_url",google_alternate_color:"alt_color",google_bid:"bid",google_ci=
ty:"gcs",google_color_bg:"color_bg",google_color_border:"color_border",go=
ogle_color_line:"color_line",google_color_link:"color_link",google_color_=
text:"color_text",google_color_url:"color_url",google_contents:"contents"=
,=0A=
google_country:"gl",google_cust_age:"cust_age",google_cust_ch:"cust_ch",g=
oogle_cust_gender:"cust_gender",google_cust_id:"cust_id",google_cust_inte=
rests:"cust_interests",google_cust_job:"cust_job",google_cust_l:"cust_l",=
google_cust_lh:"cust_lh",google_cust_u_url:"cust_u_url",google_disable_vi=
deo_autoplay:"disable_video_autoplay",google_ed:"ed",google_encoding:"oe"=
,google_feedback:"feedback_link",google_flash_version:"flash",google_gl:"=
gl",google_hints:"hints",google_kw:"kw",google_kw_type:"kw_type",=0A=
google_language:"hl",google_referrer_url:"ref",google_region:"gr",google_=
reuse_colors:"reuse_colors",google_safe:"adsafe",google_targeting:"target=
ing",google_ui_features:"ui"},ha=3D{google_ad_format:"format",google_ad_o=
utput:"output",google_ad_callback:"callback",google_ad_override:"google_a=
d_override",google_ad_slot:"slotname",google_analytics_uacct:"ga_wpids",g=
oogle_correlator:"correlator",google_cpa_choice:"cpa_choice",google_image=
_size:"image_size",google_last_modified_time:"lmt",google_max_num_ads:"nu=
m_ads",=0A=
google_max_radlink_len:"max_radlink_len",google_num_radlinks:"num_radlink=
s",google_num_radlinks_per_unit:"num_radlinks_per_unit",google_only_ads_w=
ith_video:"only_ads_with_video",google_page_location:"loc",google_page_ur=
l:"url",google_rl_dest_url:"rl_dest_url",google_rl_filtering:"rl_filterin=
g",google_rl_mode:"rl_mode",google_rt:"rt",google_skip:"skip"};function =
A(a){return ga[a]||ha[a]||null};function =
E(){}E.prototype.c=3Dfunction(){};E.prototype.e=3Dfunction(){};E.prototyp=
e.o=3Dfunction(){};var H=3Dnull;function =
I(){this.b=3Dthis.m();this.g=3Dfalse;if(!this.b){this.g=3Dthis.i();if(!th=
is.g)H.e("Browser does not allow =
cookies")}}I.prototype.f=3D"__gads=3D";I.prototype.d=3D"GoogleAdServingTe=
st=3D";I.prototype.l=3Dfunction(){return =
this.b};I.prototype.setCookieInfo=3Dfunction(a){this.a=3Da._cookies_[0];i=
f(this.a!=3Dnull){this.b=3Dthis.a._value_;this.n()}};I.prototype.k=3Dfunc=
tion(a){var c=3D(new Date).valueOf(),b=3Dnew Date;=0A=
b.setTime(c+a);return =
b};I.prototype.j=3Dfunction(a){if(this.b!=3Dnull||!this.g){H.c("Skipping =
fetch cookie call");return}var =
c=3D"script",b=3Ddocument.domain,d=3D"http://partner.googleadservices.com=
/gampad/cookie.js?callback=3D_GA_googleCookieHelper.setCookieInfo&client=3D=
"+J(a)+"&domain=3D"+J(b);H.c("Issuing a fetch cookie call with <a =
href=3D'"+d+"'>"+d+"</a>");document.write("<"+c+' =
src=3D"'+d+'"></'+c+">")};I.prototype.i=3Dfunction(){document.cookie=3Dth=
is.d+"Good";var a=3Dthis.h(this.d),c=3Da=3D=3D"Good";if(c){var =
b=3Dthis.k(-1);=0A=
document.cookie=3Dthis.d+"; expires=3D"+b.toGMTString()}return =
c};I.prototype.m=3Dfunction(){var =
a=3Dthis.h(this.f);if(a!=3Dnull)H.c("Read first party cookie: "+a);else =
H.e("No first party cookie found");return =
a};I.prototype.h=3Dfunction(a){var =
c=3Ddocument.cookie,b=3Dc.indexOf(a),d=3Dnull;if(b!=3D-1){var =
e=3Db+a.length,f=3Dc.indexOf(";",e);if(f=3D=3D-1)f=3Dc.length;d=3Dc.subst=
ring(e,f)}return =
d};I.prototype.n=3Dfunction(){if(this.a=3D=3Dnull)H.e("Skipping cookie =
creation: no cookie info");else if(this.b=3D=3Dnull)H.o("Skipping cookie =
creation: no cookie value");=0A=
else{var a=3Dnew Date;a.setTime(1000*this.a._expires_);var =
c=3Dthis.a._domain_,b=3Dthis.f+this.b+"; expires=3D"+a.toGMTString()+"; =
path=3D"+this.a._path_+"; domain=3D."+c;document.cookie=3Db;H.c("Written =
cookie: =
"+b)}};window.IDICommon=3Dwindow.IDICommon||(function(){return{getHash:fu=
nction(a){var c=3Da.indexOf("#")+1;return =
c?a.substr(c):""},htmlEscape:function(a){return/[&<>\"]/.test(a)?a.replac=
e(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"=
&quot;"):a},makeIframeTag:function(a){var c=3D"<iframe";for(var b in =
a)c+=3D" "+b+'=3D"'+IDICommon.htmlEscape(a[b])+'"';return =
c+"></iframe>"},getIframe:function(a,c){try{return =
a.frames[c]}catch(b){return null}},makeIframeNode:function(a){var =
c=3Ddocument.createElement("iframe");=0A=
for(var b in a)c.setAttribute(b,a[b]);return =
c},appendHiddenIframe:function(a,c){setTimeout(function(){document.body.a=
ppendChild(IDICommon.makeIframeNode({id:a,name:a,src:c,width:0,height:0,f=
rameBorder:0}))},0)},writeHiddenIframe:function(a,c){document.write(IDICo=
mmon.makeIframeTag({id:a,name:a,src:c,width:0,height:0,frameBorder:0}))},=
splitURIComponent:function(a,c){var =
b=3D[],d=3Da.length,e=3D0;while(e<d){var =
f=3Da.substr(e,c),i=3Df.length;if(e+i<d)for(var =
k=3D1;k<3;++k)if(f.charAt(i-k)=3D=3D"%")f=3Df.substr(0,i-=3D=0A=
k);b.push(f);e+=3Di}return =
b},MAX_URL_LENGTH:4095,IDI_DEFAULT_POLLING_INTERVAL:1000}})();window.IDIH=
ost=3Dwindow.IDIHost||(function(){var =
a=3Dwindow.location.href.replace(/([^:\/])\/.*$/,"$1/robots.txt"),c=3D"",=
b=3D{},d=3D{},e=3D{},f=3D{},i=3D{};function k(h,o){for(var q in =
o)h[q]=3Do[q]}function n(h,o){var q=3Dwindow.frames[h];if(q){var =
B;while(B=3DIDICommon.getIframe(q,h+"_"+b[h])){try{if(B.location.href=3D=3D=
"about:blank")break}catch(v){break}e[h]+=3DIDICommon.getHash(B.location.h=
ref);++b[h]}var =
t=3De[h].split("$"),C=3Dt.length-1;if(C>0){e[h]=3Dt[C];for(var =
D=3D0;D<C;++D)o(decodeURIComponent(t[D]),h)}}}function p(h){return c||=0A=
h.replace(/([^:\/]\/).*$/,"$1ig/idi_relay")}function =
r(h){window.clearInterval(i[h]);i[h]=3D0}function l(h){a=3Dh}function =
x(h){c=3Dh}function =
y(h,o,q){r(h);i[h]=3Dwindow.setInterval(function(){n(h,o)},typeof =
q=3D=3D"object"&&q.pollingInterval||IDICommon.IDI_DEFAULT_POLLING_INTERVA=
L)}function O(h,o,q){var B;if(typeof =
q=3D=3D"object")B=3Dq.moduleRelayUrl;var v=3Dd[h];if(isNaN(v))throw new =
Error("Invalid module id");else{var t=3Dtypeof =
B=3D=3D"string"?B:p(f[h]),C=3DencodeURIComponent(o)+"$",D=3DIDICommon.MAX=
_URL_LENGTH-1-t.length,=0A=
F=3DIDICommon.splitURIComponent(C,D),P=3DF.length;for(var =
z=3D0;z<P;++z)IDICommon.appendHiddenIframe(h+"_"+(v+z),t+"#"+F[z]);d[h]+=3D=
P}}function K(h,o,q,B,v){var =
t=3D{frameBorder:0,scrolling:"no"},C,D,F,P,z;if(typeof =
v=3D=3D"object"){C=3Dv.iframeAttrs;D=3Dv.callback;F=3Dv.userPrefs;P=3Dv.p=
ollingInterval;z=3Dv.parentDivId}if(typeof =
C=3D=3D"object")k(t,C);k(t,{id:o,name:o,src:h,width:q,height:B});b[o]=3D0=
;d[o]=3D0;e[o]=3D"";f[o]=3Dh;var Q=3D[];if(typeof =
F=3D=3D"object")for(var G in =
F)Q.push(encodeURIComponent(G)+"=3D"+encodeURIComponent(F[G]));=0A=
if(typeof =
D=3D=3D"function"){Q.push("idi_hr=3D"+encodeURIComponent(a));window.IDIHo=
st.registerListener(o,D,v)}if(Q.length){var =
L=3DQ.join("&");if(t.src.length+1+L.length>IDICommon.MAX_URL_LENGTH){L+=3D=
"$";var =
ca=3Dp(h),ra=3DIDICommon.MAX_URL_LENGTH-1-ca.length,da=3DIDICommon.splitU=
RIComponent(L,ra),ea=3Dda.length;for(var G=3D0;G<ea;++G){var =
V=3Do+"_"+G,fa=3Dca+"#"+da[G];if(z){var =
W=3Ddocument.getElementById(z);W.innerHTML+=3DIDICommon.makeIframeTag({id=
:V,name:V,src:fa,width:0,height:0,frameBorder:0})}else =
IDICommon.writeHiddenIframe(V,=0A=
fa)}d[o]+=3Dea;L=3D""}t.src+=3D"#"+L}if(z){var =
W=3Ddocument.getElementById(z);W.innerHTML+=3DIDICommon.makeIframeTag(t)}=
else =
document.write(IDICommon.makeIframeTag(t))}return{setHostRelayUrl:l,setMo=
duleRelayUrl:x,getModuleRelayUrl:p,registerListener:y,unregisterListener:=
r,postMessageToModule:O,createModule:K}})();var =
ia=3Dia||{},M=3Dthis;if(Object.prototype.propertyIsEnumerable);if(!Functi=
on.prototype.apply)Function.prototype.apply=3Dfunction(a,c){var =
b=3D[],d,e;if(!a)a=3DM;if(!c)c=3D[];for(var =
f=3D0;f<c.length;f++)b[f]=3D"args["+f+"]";e=3D"oScope.__applyTemp__.peek(=
).("+b.join(",")+");";if(!a.__applyTemp__)a.__applyTemp__=3D[];a.__applyT=
emp__.push(this);d=3Deval(e);a.__applyTemp__.pop();return d};;;var =
ja=3Dfunction(a,c){var b=3Dc.length;for(var d=3D0;d<b;d++){var =
e=3Db=3D=3D1?c:c.charAt(d);if(a.charAt(0)=3D=3De&&a.charAt(a.length-1)=3D=
=3De)return a.substring(1,a.length-1)}return a};var =
ka,la,ma,na,oa,pa,qa,sa,ta,ua,va,wa,xa=3Dfunction(){var =
a=3Dfalse,c=3Dfalse,b=3Dfalse,d=3Dfalse,e=3Dfalse,f=3Dfalse,i=3Dfalse,k=3D=
false,n=3Dfalse,p=3D"";if(M.navigator){var =
r=3DM.navigator,l=3Dr.userAgent;a=3Dl.indexOf("Opera")=3D=3D0;c=3D!a&&l.i=
ndexOf("MSIE")!=3D-1;b=3D!a&&l.indexOf("WebKit")!=3D-1;n=3Db&&l.indexOf("=
Mobile")!=3D-1;d=3D!a&&!b&&r.product=3D=3D"Gecko";e=3Dd&&r.vendor=3D=3D"C=
amino";var =
x,y;if(a)x=3DM.opera.version();else{if(d)y=3D/rv\:([^\);]+)(\)|;)/;else =
if(c)y=3D/MSIE\s+([^\);]+)(\)|;)/;else =
if(b)y=3D/WebKit\/(\S+)/;if(y){y.test(l);x=3DRegExp.$1}}p=3D=0A=
r.platform||"";f=3Dp.indexOf("Mac")!=3D-1;i=3Dp.indexOf("Win")!=3D-1;k=3D=
p.indexOf("Linux")!=3D-1}ka=3Da;la=3Dc;ma=3Dd;na=3De;oa=3Db;pa=3Doa;qa=3D=
x;sa=3Dp;ta=3Df;ua=3Di;va=3Dk;wa=3Dn};xa();;;;var =
ya=3Dfunction(a){return typeof =
a=3D=3D"string"?document.getElementById(a):a},za=3Dya;var =
Aa=3Dfunction(a){return =
a.nodeType=3D=3D9?a:a.ownerDocument||a.document};;;var =
Ba=3Dfunction(a,c){var =
b=3DAa(a);if(b.defaultView&&b.defaultView.getComputedStyle){var =
d=3Db.defaultView.getComputedStyle(a,"");if(d)return d[c]}return =
null};var Ca=3Dfunction(a){var =
c=3DAa(a),b=3D"";if(c.createTextRange){var =
d=3Dc.body.createTextRange();d.moveToElementText(a);b=3Dd.queryCommandVal=
ue("FontName")}if(!b){b=3DBa(a,"fontFamily")||(a.currentStyle?a.currentSt=
yle.fontFamily:null)||a.style.fontFamily;if(ka&&va)b=3Db.replace(/ =
\[[^\]]*\]/,"")}var e=3Db.split(",");if(e.length>1)b=3De[0];return =
ja(b,"\"'")};function N(a){return a!=3Dnull?'"'+a+'"':'""'}function =
J(a){return typeof =
encodeURIComponent=3D=3D"function"?encodeURIComponent(a):escape(a)}functi=
on R(a,c){if(a&&c)window.google_ad_url+=3D"&"+a+"=3D"+c}function =
S(a){var c=3Dwindow,b=3DA(a),d=3Dc[a];R(b,d)}function =
T(a,c){if(c)R(a,J(c))}function U(a){var =
c=3Dwindow,b=3DA(a),d=3Dc[a];T(b,d)}function X(a,c){var =
b=3Dwindow,d=3DA(a),e=3Db[a];if(d&&e&&typeof =
e=3D=3D"object")e=3De[c%e.length];R(d,e)}function Da(a,c){var =
b=3Da.screen,d=3Dnavigator.javaEnabled(),e=3D-c.getTimezoneOffset();if(b)=
{R("u_h",=0A=
b.height);R("u_w",b.width);R("u_ah",b.availHeight);R("u_aw",b.availWidth)=
;R("u_cd",b.colorDepth)}R("u_tz",e);R("u_his",history.length);R("u_java",=
d);if(navigator.plugins)R("u_nplug",navigator.plugins.length);if(navigato=
r.mimeTypes)R("u_nmime",navigator.mimeTypes.length)}function =
Ea(a){if(!a.google_enable_first_party_cookie)return;if(H=3D=3Dnull)H=3Dne=
w E;if(a._GA_googleCookieHelper=3D=3Dnull)a._GA_googleCookieHelper=3Dnew =
I;if(!a._google_cookie_fetched){a._google_cookie_fetched=3Dtrue;a._GA_goo=
gleCookieHelper.j(Y(a.google_ad_client))}}=0A=
function =
Y(a){if(a){a=3Da.toLowerCase();if(a.substring(0,3)!=3D"ca-")a=3D"ca-"+a}r=
eturn a}function =
Fa(a){if(a){a=3Da.toLowerCase();if(a.substring(0,9)!=3D"dist-aff-")a=3D"d=
ist-aff-"+a}return a}function Ga(a,c){var =
b=3Ddocument.getElementById(a);b.style.height=3Dc+"px"}function =
Ha(a,c,b){window.clearTimeout(b);var =
d=3D/^google_resize_flash_ad_idi\((\d+)\)/,e=3Da.match(d);if(e)Ga(c,e[1])=
}function =
Ia(a,c,b,d){b=3Db.substring(0,2000);b=3Db.replace(/%\w?$/,"");var =
e=3D"script";if((a.google_ad_output=3D=3D"js"||a.google_ad_output=3D=3D=0A=
"json_html")&&(a.google_ad_request_done||a.google_radlink_request_done))c=
.write("<"+e+' language=3D"JavaScript1.1" src=3D'+N(b)+"></"+e+">");else =
if(a.google_ad_output=3D=3D"html"){if(a.name!=3D"google_ads_frame"){if(d!=
=3Dnull)c.write('<div =
id=3D"'+d+'">');if(Ja(a.google_ad_output,a.google_ad_client)){IDIHost.set=
ModuleRelayUrl("http://pagead2.googlesyndication.com/pagead/idi_relay.htm=
l");var =
f=3D0;if(a.google_num_0ad_slots)f+=3Da.google_num_0ad_slots;if(a.google_n=
um_ad_slots)f+=3Da.google_num_ad_slots;if(a.google_num_sdo_slots)f+=3D=0A=
a.google_num_sdo_slots;var i=3D"google_inline_div"+f,k=3D"<div =
id=3D"+N(i)+' =
style=3D"position:relative;width:'+a.google_ad_width+'px"></div><div =
style=3D"position:relative;width:'+a.google_ad_width+"px;height:"+a.googl=
e_ad_height+'px;z-index:-1"></div>';c.write(k);var =
n=3D"google_frame"+f,p=3Da.setTimeout(function(){IDIHost.unregisterListen=
er(n)},5000);IDIHost.createModule(b,n,a.google_ad_width,a.google_ad_heigh=
t,{callback:function(r,l){Ha(r,l,p)},pollingInterval:500,iframeAttrs:{sty=
le:"position: absolute;left:0px",=0A=
marginWidth:"0",marginHeight:"0",vspace:"0",hspace:"0",allowTransparency:=
"true"},parentDivId:i})}else{c.write('<iframe name=3D"google_ads_frame" =
width=3D'+N(a.google_ad_width)+" height=3D"+N(a.google_ad_height)+" =
frameborder=3D"+N(a.google_ad_frameborder)+" src=3D"+N(b)+' =
marginwidth=3D"0" marginheight=3D"0" vspace=3D"0" hspace=3D"0" =
allowtransparency=3D"true" =
scrolling=3D"no">');c.write("</iframe>")}if(d!=3Dnull)c.write("</div>")}}=
else if(a.google_ad_output=3D=3D"textlink")c.write("<"+e+' =
language=3D"JavaScript1.1" src=3D'+N(b)+=0A=
"></"+e+">")}function Ka(a){for(var c in ga)a[c]=3Dnull;for(var c in =
ha){if(c=3D=3D"google_correlator")continue;a[c]=3Dnull}}function =
La(a){if(a.google_ad_format)return =
a.google_ad_format.indexOf("_0ads")>0;return =
a.google_ad_output!=3D"html"&&a.google_num_radlinks>0}function =
Z(a){return a&&a.indexOf("_sdo")!=3D-1}function Ma(a){var =
c=3Dnull,b=3Dwindow,d=3Ddocument,e=3Dnew =
Date,f=3De.getTime(),i=3Db.google_ad_format;if(b.google_cpa_choice!=3Dc){=
b.google_ad_url=3D"http://pagead2.googlesyndication.com/cpa/ads?";b.googl=
e_ad_url+=3D=0A=
"client=3D"+escape(Y(b.google_ad_client));b.google_ad_region=3D"_google_c=
pa_region_";S("google_cpa_choice");if(typeof =
d.characterSet!=3D"undefined")T("oe",d.characterSet);else if(typeof =
d.charset!=3D"undefined")T("oe",d.charset)}else =
if(Z(i)){b.google_ad_url=3D"http://pagead2.googlesyndication.com/pagead/s=
do?";b.google_ad_url+=3D"client=3D"+escape(Fa(b.google_ad_client))}else{b=
.google_ad_url=3D"http://pagead2.googlesyndication.com/pagead/ads?";b.goo=
gle_ad_url+=3D"client=3D"+escape(Y(b.google_ad_client))}S("google_ad_host=
");=0A=
S("google_ad_host_tier_id");var =
k=3Db.google_num_slots_by_client,n=3Db.google_num_slots_by_channel,p=3Db.=
google_prev_ad_formats_by_region,r=3Db.google_prev_ad_slotnames_by_region=
;if(b.google_ad_region=3D=3Dc&&b.google_ad_section!=3Dc)b.google_ad_regio=
n=3Db.google_ad_section;var =
l=3Db.google_ad_region=3D=3Dc?"":b.google_ad_region;if(Z(i)){b.google_num=
_sdo_slots=3Db.google_num_sdo_slots?b.google_num_sdo_slots+1:1;if(b.googl=
e_num_sdo_slots>4)return false}else =
if(La(b)){b.google_num_0ad_slots=3Db.google_num_0ad_slots?b.google_num_0a=
d_slots+=0A=
1:1;if(b.google_num_0ad_slots>3)return false}else =
if(b.google_cpa_choice=3D=3Dc){b.google_num_ad_slots=3Db.google_num_ad_sl=
ots?b.google_num_ad_slots+1:1;if(b.google_num_slots_to_rotate){p[l]=3Dc;r=
[l]=3Dc;if(b.google_num_slot_to_show=3D=3Dc)b.google_num_slot_to_show=3Df=
%b.google_num_slots_to_rotate+1;if(b.google_num_slot_to_show!=3Db.google_=
num_ad_slots)return false}else =
if(b.google_num_ad_slots>6&&l=3D=3D"")return =
false}R("dt",e.getTime());S("google_language");if(b.google_country)S("goo=
gle_country");else S("google_gl");=0A=
S("google_region");U("google_city");U("google_hints");S("google_safe");S(=
"google_encoding");S("google_last_modified_time");U("google_alternate_ad_=
url");S("google_alternate_color");S("google_skip");S("google_targeting");=
var x=3Db.google_ad_client;if(!k[x]){k[x]=3D1;k.length+=3D1}else =
k[x]+=3D1;if(p[l])if(!Z(i)){T("prev_fmts",p[l].toLowerCase());if(k.length=
>1)R("slot",k[x])}if(r[l])T("prev_slotnames",r[l].toLowerCase());if(i&&!b=
.google_ad_slot){T("format",i.toLowerCase());if(!Z(i))p[l]=3Dp[l]?p[l]+",=
"+i:i}if(b.google_ad_slot)r[l]=3D=0A=
r[l]?r[l]+","+b.google_ad_slot:b.google_ad_slot;S("google_max_num_ads");R=
("output",b.google_ad_output);S("google_adtest");S("google_ad_callback");=
S("google_ad_slot");U("google_correlator");if(b.google_ad_channel){U("goo=
gle_ad_channel");var y=3D"",O=3Db.google_ad_channel.split(/[+, =
]/);for(var K=3D0;K<O.length;K++){var h=3DO[K];if(!n[h])n[h]=3D1;else =
y+=3Dh+"+"}T("pv_ch",y)}if(b.google_enable_first_party_cookie)T("cookie",=
b._GA_googleCookieHelper.l());U("google_page_url");X("google_color_bg",f)=
;X("google_color_text",=0A=
f);X("google_color_link",f);X("google_color_url",f);X("google_color_borde=
r",f);X("google_color_line",f);if(b.google_reuse_colors)R("reuse_colors",=
1);else =
R("reuse_colors",0);S("google_kw_type");U("google_kw");U("google_contents=
");S("google_num_radlinks");S("google_max_radlink_len");S("google_rl_filt=
ering");S("google_rl_mode");S("google_rt");U("google_rl_dest_url");S("goo=
gle_num_radlinks_per_unit");S("google_ad_type");S("google_image_size");S(=
"google_ad_region");S("google_feedback");U("google_referrer_url");=0A=
U("google_page_location");R("frm",b.google_iframing);S("google_bid");S("g=
oogle_cust_age");S("google_cust_gender");S("google_cust_interests");S("go=
ogle_cust_id");S("google_cust_job");S("google_cust_u_url");S("google_cust=
_l");S("google_cust_lh");S("google_cust_ch");S("google_ed");U("google_ui_=
features");U("google_only_ads_with_video");U("google_disable_video_autopl=
ay");if(a)T("ff",Ca(a));if(Na(b,d)&&d.body){var =
o=3Dd.body.scrollHeight,q=3Dd.body.clientHeight;if(q&&o)T("cc",Math.round=
(q*100/o))}aa();R("ga_vid",=0A=
b.gaGlobal.vid);R("ga_sid",b.gaGlobal.sid);R("ga_hid",b.gaGlobal.hid);R("=
ga_fc",b.gaGlobal.from_cookie);U("google_analytics_uacct");S("google_ad_o=
verride");S("google_flash_version");Da(b,e);return true}function =
Oa(){var a=3Dwindow,c=3Ddocument;Ea(a);var b;if(Math.random()<0.01){var =
d=3D"google_temp_span";if(!za(d)){c.write("<span =
id=3D"+d+"></span>");b=3Dza(d)}}var =
e=3DMa(b);if(b)b&&b.parentNode?b.parentNode.removeChild(b):null;if(!e)ret=
urn;Ia(a,c,a.google_ad_url,null);Ka(a)}function Pa(){Oa();return =
true}function Na(a,=0A=
c){return a.top.location=3D=3Dc.location}function Qa(a,c){var =
b=3Dc.documentElement;if(Na(a,c))return =
false;if(a.google_ad_width&&a.google_ad_height){var =
d=3D1,e=3D1;if(a.innerHeight){d=3Da.innerWidth;e=3Da.innerHeight}else =
if(b&&b.clientHeight){d=3Db.clientWidth;e=3Db.clientHeight}else =
if(c.body){d=3Dc.body.clientWidth;e=3Dc.body.clientHeight}if(e>2*a.google=
_ad_height||d>2*a.google_ad_width)return false}return true}function =
Ra(a){var =
c=3Dwindow,b=3Dnull,d=3Dc.onerror;c.onerror=3Da;if(c.google_ad_frameborde=
r=3D=3Db)c.google_ad_frameborder=3D=0A=
0;if(c.google_ad_output=3D=3Db)c.google_ad_output=3D"html";if(Z(c.google_=
ad_format)){var =
e=3Dc.google_ad_format.match(/^(\d+)x(\d+)_.*/);if(e){c.google_ad_width=3D=
parseInt(e[1],10);c.google_ad_height=3DparseInt(e[2],10);c.google_ad_outp=
ut=3D"html"}}if(c.google_ad_format=3D=3Db&&c.google_ad_output=3D=3D"html"=
)c.google_ad_format=3Dc.google_ad_width+"x"+c.google_ad_height;Sa(c,docum=
ent);if(c.google_num_slots_by_channel=3D=3Db)c.google_num_slots_by_channe=
l=3D[];if(c.google_num_slots_by_client=3D=3Db)c.google_num_slots_by_clien=
t=3D[];if(c.google_prev_ad_formats_by_region=3D=3D=0A=
b)c.google_prev_ad_formats_by_region=3D[];if(c.google_prev_ad_slotnames_b=
y_region=3D=3Db)c.google_prev_ad_slotnames_by_region=3D[];if(c.google_cor=
relator=3D=3Db)c.google_correlator=3D(new =
Date).getTime();if(c.google_adslot_loaded=3D=3Db)c.google_adslot_loaded=3D=
{};if(c.google_adContentsBySlot=3D=3Db)c.google_adContentsBySlot=3D{};if(=
c.google_flash_version=3D=3Db)c.google_flash_version=3DTa();c.onerror=3Dd=
}function Ua(a){if(a in $)return $[a];return =
$[a]=3Dnavigator.userAgent.toLowerCase().indexOf(a)!=3D-1}var =
$=3D{};function Ja(a,c){if(a!=3D=0A=
"html")return false;var =
b=3D{};b["ca-pub-7027491298716603"]=3Dtrue;b["ca-pub-8344185808443527"]=3D=
true;b["ca-google"]=3Dtrue;return b[Y(c)]!=3Dnull}function Va(a){var =
c=3D{},b=3Da.split("?"),d=3Db[b.length-1].split("&");for(var =
e=3D0;e<d.length;e++){var =
f=3Dd[e].split("=3D");if(f[0])try{c[f[0].toLowerCase()]=3Df.length>1?(win=
dow.decodeURIComponent?decodeURIComponent(f[1].replace(/\+/g," =
")):unescape(f[1])):""}catch(i){}}return c}function Wa(){var =
a=3Dwindow,c=3DVa(document.URL);if(c.google_ad_override){a.google_ad_over=
ride=3D=0A=
c.google_ad_override;a.google_adtest=3D"on"}}function =
Ta(){if(navigator.plugins&&navigator.mimeTypes.length){var =
a=3Dnavigator.plugins["Shockwave Flash"];if(a&&a.description)return =
a.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s)+r/,".")}else =
if(navigator.userAgent&&navigator.userAgent.indexOf("Windows =
CE")>=3D0){var c=3D3,b=3D1;while(b)try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash."+(c+1));c++}catch(d){b=3Dnu=
ll}return c.toString()}else if(Ua("msie")&&!window.opera){var =
b=3Dnull;try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(d){var c=3D=0A=
0;try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");c=3D6;b.AllowScriptAcces=
s=3D"always"}catch(d){if(c=3D=3D6)return c.toString()}try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(d){}}if(b!=3Dnull){v=
ar c=3Db.GetVariable("$version").split(" ")[1];return =
c.replace(/,/g,".")}}return"0"}function Xa(a,c){for(var b in =
c)a["google_"+b]=3Dc[b]}function Ya(a,c){if(!c)return a.location;return =
a.referrer}function =
Za(a,c){if(!c&&a.google_referrer_url=3D=3Dnull)return"0";else =
if(c&&a.google_referrer_url=3D=3D=0A=
null)return"1";else if(!c&&a.google_referrer_url!=3Dnull)return"2";else =
if(c&&a.google_referrer_url!=3Dnull)return"3";return"4"}function =
$a(a,c,b,d){a.page_url=3DYa(b,d);a.page_location=3Dnull}function =
ab(a,c,b,d){a.page_url=3Dc.google_page_url;a.page_location=3DYa(b,d)||"EM=
PTY"}function bb(a,c){var =
b=3D{},d=3DQa(a,c);b.iframing=3DZa(a,d);if(!!a.google_page_url)ab(b,a,c,d=
);else =
$a(b,a,c,d);b.last_modified_time=3Dc.location=3D=3Db.page_url?Date.parse(=
c.lastModified)/1000:null;b.referrer_url=3Dd?a.google_referrer_url:(a.goo=
gle_page_url&&=0A=
a.google_referrer_url?a.google_referrer_url:c.referrer);return =
b}function cb(a){var =
c=3D{},b=3Da.URL.substring(a.URL.lastIndexOf("http"));c.iframing=3Dnull;c=
.page_url=3Db;c.page_location=3Da.location;c.last_modified_time=3Dnull;c.=
referrer_url=3Db;return c}function Sa(a,c){var =
b;b=3Da.google_page_url=3D=3Dnull&&db[c.domain]?cb(c):bb(a,c);Xa(a,b)}var=
 db=3D{};db["ad.yieldmanager.com"]=3Dtrue;Wa();Ra(Pa);Oa();=0A=
})()=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/mostPopular.js

function switchPopularTab(i) {
    var emailedTab =3D document.getElementById("most_pop_tab");
    var comTab =3D document.getElementById("most_com_tab");
    var emailedList =3D document.getElementById("mostPopular");
    var comList =3D document.getElementById("mostCommented");

    if(i=3D=3D"mostCommented") {
        emailedList.style.display=3D"none";
		comList.style.display=3D"block";
		comTab.style.background =3D "transparent =
url(/images/modules/commented_bg_t_sel.gif) 0 0 no-repeat";
		emailedTab.style.background =3D "transparent =
url(/images/modules/popular_bg_t_un.gif) 0 0 no-repeat";
    }
    else if(i=3D=3D"mostPopular") {
        comList.style.display=3D"none";
        emailedList.style.display=3D"block";
		emailedTab.style.background =3D "transparent =
url(/images/modules/popular_bg_t_sel.gif) 0 0 no-repeat";
		comTab.style.background =3D "transparent =
url(/images/modules/commented_bg_t_un.gif) 0 0 no-repeat";
    }
    else {
        comList.style.display=3D"none";
        emailedList.style.display=3D"block";
		emailedTab.style.background =3D "transparent =
url(/images/modules/popular_bg_t_sel.gif) 0 0 no-repeat";
		comTab.style.background =3D "transparent =
url(/images/modules/commented_bg_t_un.gif) 0 0 no-repeat";
    }
}
------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.google-analytics.com/urchin.js

//-- Google Analytics Urchin Module=0A=
//-- Copyright 2007 Google, All Rights Reserved.=0A=
=0A=
//-- Urchin On Demand Settings ONLY=0A=
var _uacct=3D"";			// set up the Urchin Account=0A=
var _userv=3D1;			// service mode (0=3Dlocal,1=3Dremote,2=3Dboth)=0A=
=0A=
//-- UTM User Settings=0A=
var _ufsc=3D1;			// set client info flag (1=3Don|0=3Doff)=0A=
var _udn=3D"auto";		// (auto|none|domain) set the domain name for cookies=0A=
var _uhash=3D"on";		// (on|off) unique domain hash for cookies=0A=
var _utimeout=3D"1800";   	// set the inactive session timeout in seconds=0A=
var _ugifpath=3D"/__utm.gif";	// set the web path to the __utm.gif file=0A=
var _utsp=3D"|";			// transaction field separator=0A=
var _uflash=3D1;			// set flash version detect option (1=3Don|0=3Doff)=0A=
var _utitle=3D1;			// set the document title detect option =
(1=3Don|0=3Doff)=0A=
var _ulink=3D0;			// enable linker functionality (1=3Don|0=3Doff)=0A=
var _uanchor=3D0;			// enable use of anchors for campaign =
(1=3Don|0=3Doff)=0A=
var _utcp=3D"/";			// the cookie path for tracking=0A=
var _usample=3D100;		// The sampling % of visitors to track (1-100).=0A=
=0A=
//-- UTM Campaign Tracking Settings=0A=
var _uctm=3D1;			// set campaign tracking module (1=3Don|0=3Doff)=0A=
var _ucto=3D"15768000";		// set timeout in seconds (6 month default)=0A=
var _uccn=3D"utm_campaign";	// name=0A=
var _ucmd=3D"utm_medium";		// medium (cpc|cpm|link|email|organic)=0A=
var _ucsr=3D"utm_source";		// source=0A=
var _uctr=3D"utm_term";		// term/keyword=0A=
var _ucct=3D"utm_content";	// content=0A=
var _ucid=3D"utm_id";		// id number=0A=
var _ucno=3D"utm_nooverride";	// don't override=0A=
=0A=
//-- Auto/Organic Sources and Keywords=0A=
var _uOsr=3Dnew Array();=0A=
var _uOkw=3Dnew Array();=0A=
_uOsr[0]=3D"google";	_uOkw[0]=3D"q";=0A=
_uOsr[1]=3D"yahoo";	_uOkw[1]=3D"p";=0A=
_uOsr[2]=3D"msn";		_uOkw[2]=3D"q";=0A=
_uOsr[3]=3D"aol";		_uOkw[3]=3D"query";=0A=
_uOsr[4]=3D"aol";		_uOkw[4]=3D"encquery";=0A=
_uOsr[5]=3D"lycos";	_uOkw[5]=3D"query";=0A=
_uOsr[6]=3D"ask";		_uOkw[6]=3D"q";=0A=
_uOsr[7]=3D"altavista";	_uOkw[7]=3D"q";=0A=
_uOsr[8]=3D"netscape";	_uOkw[8]=3D"query";=0A=
_uOsr[9]=3D"cnn";	_uOkw[9]=3D"query";=0A=
_uOsr[10]=3D"looksmart";	_uOkw[10]=3D"qt";=0A=
_uOsr[11]=3D"about";	_uOkw[11]=3D"terms";=0A=
_uOsr[12]=3D"mamma";	_uOkw[12]=3D"query";=0A=
_uOsr[13]=3D"alltheweb";	_uOkw[13]=3D"q";=0A=
_uOsr[14]=3D"gigablast";	_uOkw[14]=3D"q";=0A=
_uOsr[15]=3D"voila";	_uOkw[15]=3D"rdata";=0A=
_uOsr[16]=3D"virgilio";	_uOkw[16]=3D"qs";=0A=
_uOsr[17]=3D"live";	_uOkw[17]=3D"q";=0A=
_uOsr[18]=3D"baidu";	_uOkw[18]=3D"wd";=0A=
_uOsr[19]=3D"alice";	_uOkw[19]=3D"qs";=0A=
_uOsr[20]=3D"yandex";	_uOkw[20]=3D"text";=0A=
_uOsr[21]=3D"najdi";	_uOkw[21]=3D"q";=0A=
_uOsr[22]=3D"aol";	_uOkw[22]=3D"q";=0A=
_uOsr[23]=3D"club-internet"; _uOkw[23]=3D"query";=0A=
_uOsr[24]=3D"mama";	_uOkw[24]=3D"query";=0A=
_uOsr[25]=3D"seznam";	_uOkw[25]=3D"q";=0A=
_uOsr[26]=3D"search";	_uOkw[26]=3D"q";=0A=
_uOsr[27]=3D"wp";	_uOkw[27]=3D"szukaj";=0A=
_uOsr[28]=3D"onet";	_uOkw[28]=3D"qt";=0A=
_uOsr[29]=3D"netsprint";	_uOkw[29]=3D"q";=0A=
_uOsr[30]=3D"google.interia";	_uOkw[30]=3D"q";=0A=
_uOsr[31]=3D"szukacz";	_uOkw[31]=3D"q";=0A=
_uOsr[32]=3D"yam";	_uOkw[32]=3D"k";=0A=
_uOsr[33]=3D"pchome";	_uOkw[33]=3D"q";=0A=
_uOsr[34]=3D"kvasir";	_uOkw[34]=3D"searchExpr";=0A=
_uOsr[35]=3D"sesam";	_uOkw[35]=3D"q";=0A=
_uOsr[36]=3D"ozu"; _uOkw[36]=3D"q";=0A=
_uOsr[37]=3D"terra"; _uOkw[37]=3D"query";=0A=
_uOsr[38]=3D"nostrum"; _uOkw[38]=3D"query";=0A=
_uOsr[39]=3D"mynet"; _uOkw[39]=3D"q";=0A=
_uOsr[40]=3D"ekolay"; _uOkw[40]=3D"q";=0A=
=0A=
//-- Auto/Organic Keywords to Ignore=0A=
var _uOno=3Dnew Array();=0A=
//_uOno[0]=3D"urchin";=0A=
//_uOno[1]=3D"urchin.com";=0A=
//_uOno[2]=3D"www.urchin.com";=0A=
=0A=
//-- Referral domains to Ignore=0A=
var _uRno=3Dnew Array();=0A=
//_uRno[0]=3D".urchin.com";=0A=
=0A=
//-- **** Don't modify below this point ***=0A=
var =
_uff,_udh,_udt,_ubl=3D0,_udo=3D"",_uu,_ufns=3D0,_uns=3D0,_ur=3D"-",_ufno=3D=
0,_ust=3D0,_ubd=3Ddocument,_udl=3D_ubd.location,_udlh=3D"",_uwv=3D"1.2";=0A=
var _ugifpath2=3D"http://www.google-analytics.com/__utm.gif";=0A=
if (_udl.hash) _udlh=3D_udl.href.substring(_udl.href.indexOf('#'));=0A=
if (_udl.protocol=3D=3D"https:") =
_ugifpath2=3D"https://ssl.google-analytics.com/__utm.gif";=0A=
if (!_utcp || _utcp=3D=3D"") _utcp=3D"/";=0A=
function urchinTracker(page) {=0A=
 if (_udl.protocol=3D=3D"file:") return;=0A=
 if (_uff && (!page || page=3D=3D"")) return;=0A=
 var a,b,c,xx,v,z,k,x=3D"",s=3D"",f=3D0,nv=3D0;=0A=
 var nx=3D" expires=3D"+_uNx()+";";=0A=
 var dc=3D_ubd.cookie;=0A=
 _udh=3D_uDomain();=0A=
 if (!_uVG()) return;=0A=
 _uu=3DMath.round(Math.random()*2147483647);=0A=
 _udt=3Dnew Date();=0A=
 _ust=3DMath.round(_udt.getTime()/1000);=0A=
 a=3Ddc.indexOf("__utma=3D"+_udh+".");=0A=
 b=3Ddc.indexOf("__utmb=3D"+_udh);=0A=
 c=3Ddc.indexOf("__utmc=3D"+_udh);=0A=
 if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 if (_utimeout && _utimeout!=3D"") {=0A=
  x=3Dnew Date(_udt.getTime()+(_utimeout*1000));=0A=
  x=3D" expires=3D"+x.toGMTString()+";";=0A=
 }=0A=
 if (_ulink) {=0A=
  if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
  s+=3D_udl.search;=0A=
  if(s && s!=3D"" && s.indexOf("__utma=3D")>=3D0) {=0A=
   if (!(_uIN(a=3D_uGC(s,"__utma=3D","&")))) a=3D"-";=0A=
   if (!(_uIN(b=3D_uGC(s,"__utmb=3D","&")))) b=3D"-";=0A=
   if (!(_uIN(c=3D_uGC(s,"__utmc=3D","&")))) c=3D"-";=0A=
   v=3D_uGC(s,"__utmv=3D","&");=0A=
   z=3D_uGC(s,"__utmz=3D","&");=0A=
   k=3D_uGC(s,"__utmk=3D","&");=0A=
   xx=3D_uGC(s,"__utmx=3D","&");=0A=
   if ((k*1) !=3D ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) =
{_ubl=3D1;a=3D"-";b=3D"-";c=3D"-";xx=3D"-";z=3D"-";v=3D"-";}=0A=
   if (a!=3D"-" && b!=3D"-" && c!=3D"-") f=3D1;=0A=
   else if(a!=3D"-") f=3D2;=0A=
  }=0A=
 }=0A=
 if(f=3D=3D1) {=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+c+"; path=3D"+_utcp+";"+_udo;=0A=
 } else if (f=3D=3D2) {=0A=
  a=3D_uFixA(s,"&",_ust);=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 } else if (a>=3D0 && b>=3D0 && c>=3D0) {=0A=
   b =3D _uGC(dc,"__utmb=3D"+_udh,";");=0A=
   b =3D ("-" =3D=3D b) ? _udh : b;  =0A=
  _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A=
 } else {=0A=
  if (a>=3D0) a=3D_uFixA(_ubd.cookie,";",_ust);=0A=
  else {=0A=
   a=3D_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";=0A=
   nv=3D1;=0A=
  }=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 }=0A=
 if (_ulink && xx && xx!=3D"" && xx!=3D"-") {=0A=
   xx=3D_uUES(xx);=0A=
   if (xx.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmx=3D"+xx+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 if (_ulink && v && v!=3D"" && v!=3D"-") {=0A=
  v=3D_uUES(v);=0A=
  if (v.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmv=3D"+v+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 var wc=3Dwindow;=0A=
 var c=3D_ubd.cookie;=0A=
 if(nv>0 && wc && wc.gaGlobal && !wc.gaGlobal.from_cookie){=0A=
  var g=3Dwc.gaGlobal;=0A=
  var ua=3Dc.split("__utma=3D")[1].split(";")[0].split(".");=0A=
  if(g.sid)ua[4]=3Dg.sid;=0A=
  ua[3]=3Dua[4];=0A=
  if(g.vid){=0A=
   var v=3Dg.vid.split(".");=0A=
   ua[1]=3Dv[0];=0A=
   ua[2]=3Dv[1];=0A=
  }=0A=
  _ubd.cookie=3D"__utma=3D"+ua.join(".")+"; path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 _uInfo(page);=0A=
 _ufns=3D0;=0A=
 _ufno=3D0;=0A=
 if (!page || page=3D=3D"") _uff=3D1;=0A=
}=0A=
function _uGH() {=0A=
 var hid;=0A=
 var wc=3Dwindow;=0A=
 if (wc && wc.gaGlobal && wc.gaGlobal.hid) {=0A=
  hid=3Dwc.gaGlobal.hid;=0A=
 } else {=0A=
  hid=3DMath.round(Math.random()*0x7fffffff);=0A=
  if (!wc.gaGlobal) wc.gaGlobal=3D{};=0A=
  wc.gaGlobal.hid=3Dhid;=0A=
 }=0A=
 return hid;=0A=
}=0A=
function _uInfo(page) {=0A=
 var p,s=3D"",dm=3D"",pg=3D_udl.pathname+_udl.search;=0A=
 if (page && page!=3D"") pg=3D_uES(page,1);=0A=
 _ur=3D_ubd.referrer;=0A=
 if (!_ur || _ur=3D=3D"") { _ur=3D"-"; }=0A=
 else {=0A=
  dm=3D_ubd.domain;=0A=
  if(_utcp && _utcp!=3D"/") dm+=3D_utcp;=0A=
  p=3D_ur.indexOf(dm);=0A=
  if ((p>=3D0) && (p<=3D8)) { _ur=3D"0"; }=0A=
  if (_ur.indexOf("[")=3D=3D0 && =
_ur.lastIndexOf("]")=3D=3D(_ur.length-1)) { _ur=3D"-"; }=0A=
 }=0A=
 s+=3D"&utmn=3D"+_uu;=0A=
 if (_ufsc) s+=3D_uBInfo();=0A=
 if (_uctm) s+=3D_uCInfo();=0A=
 if (_utitle && _ubd.title && _ubd.title!=3D"") =
s+=3D"&utmdt=3D"+_uES(_ubd.title);=0A=
 if (_udl.hostname && _udl.hostname!=3D"") =
s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A=
 if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A=
 s+=3D"&utmhid=3D"+_uGH();=0A=
 s+=3D"&utmr=3D"+_ur;=0A=
 s+=3D"&utmp=3D"+pg;=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uVoid() { return; }=0A=
function _uCInfo() {=0A=
 if (!_ucto || _ucto=3D=3D"") { _ucto=3D"15768000"; }=0A=
 if (!_uVG()) return;=0A=
 var =
c=3D"",t=3D"-",t2=3D"-",t3=3D"-",o=3D0,cs=3D0,cn=3D0,i=3D0,z=3D"-",s=3D""=
;=0A=
 if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
 s+=3D_udl.search;=0A=
 var x=3Dnew Date(_udt.getTime()+(_ucto*1000));=0A=
 var dc=3D_ubd.cookie;=0A=
 x=3D" expires=3D"+x.toGMTString()+";";=0A=
 if (_ulink && !_ubl) {=0A=
  z=3D_uUES(_uGC(s,"__utmz=3D","&"));=0A=
  if (z!=3D"-" && z.indexOf(";")=3D=3D-1) { =
_ubd.cookie=3D"__utmz=3D"+z+"; path=3D"+_utcp+";"+x+_udo; return ""; }=0A=
 }=0A=
 z=3Ddc.indexOf("__utmz=3D"+_udh+".");=0A=
 if (z>-1) { z=3D_uGC(dc,"__utmz=3D"+_udh+".",";"); }=0A=
 else { z=3D"-"; }=0A=
 t=3D_uGC(s,_ucid+"=3D","&");=0A=
 t2=3D_uGC(s,_ucsr+"=3D","&");=0A=
 t3=3D_uGC(s,"gclid=3D","&");=0A=
 if ((t!=3D"-" && t!=3D"") || (t2!=3D"-" && t2!=3D"") || (t3!=3D"-" && =
t3!=3D"")) {=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"utmcid=3D"+_uEC(t);=0A=
  if (t2!=3D"-" && t2!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmcsr=3D"+_uEC(t2); }=0A=
  if (t3!=3D"-" && t3!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmgclid=3D"+_uEC(t3); }=0A=
  t=3D_uGC(s,_uccn+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmccn=3D"+_uEC(t);=0A=
  else c+=3D"|utmccn=3D(not+set)";=0A=
  t=3D_uGC(s,_ucmd+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcmd=3D"+_uEC(t);=0A=
  else  c+=3D"|utmcmd=3D(not+set)";=0A=
  t=3D_uGC(s,_uctr+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmctr=3D"+_uEC(t);=0A=
  else { t=3D_uOrg(1); if (t!=3D"-" && t!=3D"") =
c+=3D"|utmctr=3D"+_uEC(t); }=0A=
  t=3D_uGC(s,_ucct+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcct=3D"+_uEC(t);=0A=
  t=3D_uGC(s,_ucno+"=3D","&");=0A=
  if (t=3D=3D"1") o=3D1;=0A=
  if (z!=3D"-" && o=3D=3D1) return "";=0A=
 }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { c=3D_uOrg(); if (z!=3D"-" && =
_ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { if (_ufns=3D=3D1)  c=3D_uRef(); if =
(z!=3D"-" && _ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") {=0A=
  if (z=3D=3D"-" && _ufns=3D=3D1) { =
c=3D"utmccn=3D(direct)|utmcsr=3D(direct)|utmcmd=3D(none)"; }=0A=
  if (c=3D=3D"-" || c=3D=3D"") return "";=0A=
 }=0A=
 if (z!=3D"-") {=0A=
  i=3Dz.indexOf(".");=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  t=3Dz.substring(i+1,z.length);=0A=
  if (t.toLowerCase()=3D=3Dc.toLowerCase()) cs=3D1;=0A=
  t=3Dz.substring(0,i);=0A=
  if ((i=3Dt.lastIndexOf(".")) > -1) {=0A=
   t=3Dt.substring(i+1,t.length);=0A=
   cn=3D(t*1);=0A=
  }=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) {=0A=
  t=3D_uGC(dc,"__utma=3D"+_udh+".",";");=0A=
  if ((i=3Dt.lastIndexOf(".")) > 9) {=0A=
   _uns=3Dt.substring(i+1,t.length);=0A=
   _uns=3D(_uns*1);=0A=
  }=0A=
  cn++;=0A=
  if (_uns=3D=3D0) _uns=3D1;=0A=
  _ubd.cookie=3D"__utmz=3D"+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; =
path=3D"+_utcp+"; "+x+_udo;=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) return "&utmcn=3D1";=0A=
 else return "&utmcr=3D1";=0A=
}=0A=
function _uRef() {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k,n;=0A=
 if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  k=3Dh.substring(h.indexOf("/"),h.length);=0A=
  if (k.indexOf("?") > -1) k=3Dk.substring(0,k.indexOf("?"));=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 h=3Dh.toLowerCase();=0A=
 n=3Dh;=0A=
 if ((i=3Dn.indexOf(":")) > -1) n=3Dn.substring(0,i);=0A=
 for (var ii=3D0;ii<_uRno.length;ii++) {=0A=
  if ((i=3Dn.indexOf(_uRno[ii].toLowerCase())) > -1 && =
n.length=3D=3D(i+_uRno[ii].length)) { _ufno=3D1; break; }=0A=
 }=0A=
 if (h.indexOf("www.")=3D=3D0) h=3Dh.substring(4,h.length);=0A=
 return =
"utmccn=3D(referral)|utmcsr=3D"+_uEC(h)+"|"+"utmcct=3D"+_uEC(k)+"|utmcmd=3D=
referral";=0A=
}=0A=
function _uOrg(t) {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k;=0A=
 if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 for (var ii=3D0;ii<_uOsr.length;ii++) {=0A=
  if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {=0A=
   if ((i=3D_ur.indexOf("?"+_uOkw[ii]+"=3D")) > -1 || =
(i=3D_ur.indexOf("&"+_uOkw[ii]+"=3D")) > -1) {=0A=
    k=3D_ur.substring(i+_uOkw[ii].length+2,_ur.length);=0A=
    if ((i=3Dk.indexOf("&")) > -1) k=3Dk.substring(0,i);=0A=
    for (var yy=3D0;yy<_uOno.length;yy++) {=0A=
     if (_uOno[yy].toLowerCase()=3D=3Dk.toLowerCase()) { _ufno=3D1; =
break; }=0A=
    }=0A=
    if (t) return _uEC(k);=0A=
    else return =
"utmccn=3D(organic)|utmcsr=3D"+_uEC(_uOsr[ii])+"|"+"utmctr=3D"+_uEC(k)+"|=
utmcmd=3Dorganic";=0A=
   }=0A=
  }=0A=
 }=0A=
 return "";=0A=
}=0A=
function _uGCse() {=0A=
 var h,p;=0A=
 h=3Dp=3D_ur.split("://")[1];=0A=
 if(h.indexOf("/")>-1) {=0A=
  h=3Dh.split("/")[0];=0A=
  p=3Dp.substring(p.indexOf("/")+1,p.length);=0A=
 }=0A=
 if(p.indexOf("?")>-1) {=0A=
  p=3Dp.split("?")[0];=0A=
 }=0A=
 if(h.toLowerCase().indexOf("google")>-1) {=0A=
  if(_ur.indexOf("?q=3D")>-1 || _ur.indexOf("&q=3D")>-1) {=0A=
   if (p.toLowerCase().indexOf("cse")>-1) {=0A=
    return true;=0A=
   }=0A=
  }=0A=
 }=0A=
}=0A=
function _uBInfo() {=0A=
 var sr=3D"-",sc=3D"-",ul=3D"-",fl=3D"-",cs=3D"-",je=3D1;=0A=
 var n=3Dnavigator;=0A=
 if (self.screen) {=0A=
  sr=3Dscreen.width+"x"+screen.height;=0A=
  sc=3Dscreen.colorDepth+"-bit";=0A=
 } else if (self.java) {=0A=
  var j=3Djava.awt.Toolkit.getDefaultToolkit();=0A=
  var s=3Dj.getScreenSize();=0A=
  sr=3Ds.width+"x"+s.height;=0A=
 }=0A=
 if (n.language) { ul=3Dn.language.toLowerCase(); }=0A=
 else if (n.browserLanguage) { ul=3Dn.browserLanguage.toLowerCase(); }=0A=
 je=3Dn.javaEnabled()?1:0;=0A=
 if (_uflash) fl=3D_uFlash();=0A=
 if (_ubd.characterSet) cs=3D_uES(_ubd.characterSet);=0A=
 else if (_ubd.charset) cs=3D_uES(_ubd.charset);=0A=
 return =
"&utmcs=3D"+cs+"&utmsr=3D"+sr+"&utmsc=3D"+sc+"&utmul=3D"+ul+"&utmje=3D"+j=
e+"&utmfl=3D"+fl;=0A=
}=0A=
function __utmSetTrans() {=0A=
 var e;=0A=
 if (_ubd.getElementById) e=3D_ubd.getElementById("utmtrans");=0A=
 else if (_ubd.utmform && _ubd.utmform.utmtrans) =
e=3D_ubd.utmform.utmtrans;=0A=
 if (!e) return;=0A=
 var l=3De.value.split("UTM:");=0A=
 var i,i2,c;=0A=
 if (_userv=3D=3D0 || _userv=3D=3D2) i=3Dnew Array();=0A=
 if (_userv=3D=3D1 || _userv=3D=3D2) { i2=3Dnew Array(); c=3D_uGCS(); }=0A=
=0A=
 for (var ii=3D0;ii<l.length;ii++) {=0A=
  l[ii]=3D_uTrim(l[ii]);=0A=
  if (l[ii].charAt(0)!=3D'T' && l[ii].charAt(0)!=3D'I') continue;=0A=
  var r=3DMath.round(Math.random()*2147483647);=0A=
  if (!_utsp || _utsp=3D=3D"") _utsp=3D"|";=0A=
  var f=3Dl[ii].split(_utsp),s=3D"";=0A=
  if (f[0].charAt(0)=3D=3D'T') {=0A=
   s=3D"&utmt=3Dtran"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmtst=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmtto=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmttx=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmtsp=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmtci=3D"+_uES(f[6]);=0A=
   f[7]=3D_uTrim(f[7]); if(f[7]&&f[7]!=3D"") =
s+=3D"&utmtrg=3D"+_uES(f[7]);=0A=
   f[8]=3D_uTrim(f[8]); if(f[8]&&f[8]!=3D"") =
s+=3D"&utmtco=3D"+_uES(f[8]);=0A=
  } else {=0A=
   s=3D"&utmt=3Ditem"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmipc=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmipn=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmiva=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmipr=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmiqt=3D"+_uES(f[6]);=0A=
  }=0A=
  if (_udl.hostname && _udl.hostname!=3D"") =
s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A=
  if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A=
=0A=
  if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
   i[ii]=3Dnew Image(1,1);=0A=
   i[ii].src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
   i[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
  if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
   i2[ii]=3Dnew Image(1,1);=0A=
   =
i2[ii].src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D=
"+c;=0A=
   i2[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uFlash() {=0A=
 var f=3D"-",n=3Dnavigator;=0A=
 if (n.plugins && n.plugins.length) {=0A=
  for (var ii=3D0;ii<n.plugins.length;ii++) {=0A=
   if (n.plugins[ii].name.indexOf('Shockwave Flash')!=3D-1) {=0A=
    f=3Dn.plugins[ii].description.split('Shockwave Flash ')[1];=0A=
    break;=0A=
   }=0A=
  }=0A=
 } else {=0A=
  var fl;=0A=
  try {=0A=
   fl =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");=0A=
   f =3D fl.GetVariable("$version");=0A=
  } catch(e) {}=0A=
  if (f =3D=3D "-") {=0A=
   try {=0A=
    fl =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");=0A=
    f =3D "WIN 6,0,21,0";=0A=
    fl.AllowScriptAccess =3D "always";=0A=
    f =3D fl.GetVariable("$version");=0A=
   } catch(e) {}=0A=
  }=0A=
  if (f =3D=3D "-") {=0A=
   try {=0A=
    fl =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash");=0A=
    f =3D fl.GetVariable("$version");=0A=
   } catch(e) {}=0A=
  }=0A=
  if (f !=3D "-") {=0A=
   f =3D f.split(" ")[1].split(",");=0A=
   f =3D f[0] + "." + f[1] + " r" + f[2];=0A=
  }=0A=
 }=0A=
 return f;=0A=
}=0A=
function __utmLinkerUrl(l,h) {=0A=
 var p,k,a=3D"-",b=3D"-",c=3D"-",x=3D"-",z=3D"-",v=3D"-";=0A=
 var dc=3D_ubd.cookie;=0A=
 var iq =3D l.indexOf("?");=0A=
 var ih =3D l.indexOf("#");=0A=
 var url=3Dl;=0A=
 if (dc) {=0A=
  a=3D_uES(_uGC(dc,"__utma=3D"+_udh+".",";"));=0A=
  b=3D_uES(_uGC(dc,"__utmb=3D"+_udh,";"));=0A=
  c=3D_uES(_uGC(dc,"__utmc=3D"+_udh,";"));=0A=
  x=3D_uES(_uGC(dc,"__utmx=3D"+_udh,";"));=0A=
  z=3D_uES(_uGC(dc,"__utmz=3D"+_udh+".",";"));=0A=
  v=3D_uES(_uGC(dc,"__utmv=3D"+_udh+".",";"));=0A=
  k=3D(_uHash(a+b+c+x+z+v)*1)+(_udh*1);=0A=
  =
p=3D"__utma=3D"+a+"&__utmb=3D"+b+"&__utmc=3D"+c+"&__utmx=3D"+x+"&__utmz=3D=
"+z+"&__utmv=3D"+v+"&__utmk=3D"+k;=0A=
 }=0A=
 if (p) {=0A=
  if (h && ih>-1) return;=0A=
  if (h) { url=3Dl+"#"+p; }=0A=
  else {=0A=
   if (iq=3D=3D-1 && ih=3D=3D-1) url=3Dl+"?"+p;=0A=
   else if (ih=3D=3D-1) url=3Dl+"&"+p;=0A=
   else if (iq=3D=3D-1) url=3Dl.substring(0,ih-1)+"?"+p+l.substring(ih);=0A=
   else url=3Dl.substring(0,ih-1)+"&"+p+l.substring(ih);=0A=
  }=0A=
 }=0A=
 return url;=0A=
}=0A=
function __utmLinker(l,h) {=0A=
 if (!_ulink || !l || l=3D=3D"") return;=0A=
 _udl.href=3D__utmLinkerUrl(l,h);=0A=
}=0A=
function __utmLinkPost(f,h) {=0A=
 if (!_ulink || !f || !f.action) return;=0A=
 f.action=3D__utmLinkerUrl(f.action, h);=0A=
 return;=0A=
}=0A=
function __utmSetVar(v) {=0A=
 if (!v || v=3D=3D"") return;=0A=
 if (!_udo || _udo =3D=3D "") {=0A=
  _udh=3D_uDomain();=0A=
  if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 }=0A=
 if (!_uVG()) return;=0A=
 var r=3DMath.round(Math.random() * 2147483647);=0A=
 _ubd.cookie=3D"__utmv=3D"+_udh+"."+_uES(v)+"; path=3D"+_utcp+"; =
expires=3D"+_uNx()+";"+_udo;=0A=
 var s=3D"&utmt=3Dvar&utmn=3D"+r;=0A=
 if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
}=0A=
function _uGCS() {=0A=
 var t,c=3D"",dc=3D_ubd.cookie;=0A=
 if ((t=3D_uGC(dc,"__utma=3D"+_udh+".",";"))!=3D"-") =
c+=3D_uES("__utma=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmx=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmx=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmz=3D"+_udh+".",";"))!=3D"-") =
c+=3D_uES("__utmz=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmv=3D"+_udh+".",";"))!=3D"-") =
c+=3D_uES("__utmv=3D"+t+";");=0A=
 if (c.charAt(c.length-1)=3D=3D"+") c=3Dc.substring(0,c.length-1);=0A=
 return c;=0A=
}=0A=
function _uGC(l,n,s) {=0A=
 if (!l || l=3D=3D"" || !n || n=3D=3D"" || !s || s=3D=3D"") return "-";=0A=
 var i,i2,i3,c=3D"-";=0A=
 i=3Dl.indexOf(n);=0A=
 i3=3Dn.indexOf("=3D")+1;=0A=
 if (i > -1) {=0A=
  i2=3Dl.indexOf(s,i); if (i2 < 0) { i2=3Dl.length; }=0A=
  c=3Dl.substring((i+i3),i2);=0A=
 }=0A=
 return c;=0A=
}=0A=
function _uDomain() {=0A=
 if (!_udn || _udn=3D=3D"" || _udn=3D=3D"none") { _udn=3D""; return 1; }=0A=
 if (_udn=3D=3D"auto") {=0A=
  var d=3D_ubd.domain;=0A=
  if (d.substring(0,4)=3D=3D"www.") {=0A=
   d=3Dd.substring(4,d.length);=0A=
  }=0A=
  _udn=3Dd;=0A=
 }=0A=
 _udn =3D _udn.toLowerCase(); =0A=
 if (_uhash=3D=3D"off") return 1;=0A=
 return _uHash(_udn);=0A=
}=0A=
function _uHash(d) {=0A=
 if (!d || d=3D=3D"") return 1;=0A=
 var h=3D0,g=3D0;=0A=
 for (var i=3Dd.length-1;i>=3D0;i--) {=0A=
  var c=3DparseInt(d.charCodeAt(i));=0A=
  h=3D((h << 6) & 0xfffffff) + c + (c << 14);=0A=
  if ((g=3Dh & 0xfe00000)!=3D0) h=3D(h ^ (g >> 21));=0A=
 }=0A=
 return h;=0A=
}=0A=
function _uFixA(c,s,t) {=0A=
 if (!c || c=3D=3D"" || !s || s=3D=3D"" || !t || t=3D=3D"") return "-";=0A=
 var a=3D_uGC(c,"__utma=3D"+_udh+".",s);=0A=
 var lt=3D0,i=3D0;=0A=
 if ((i=3Da.lastIndexOf(".")) > 9) {=0A=
  _uns=3Da.substring(i+1,a.length);=0A=
  _uns=3D(_uns*1)+1;=0A=
  a=3Da.substring(0,i);=0A=
  if ((i=3Da.lastIndexOf(".")) > 7) {=0A=
   lt=3Da.substring(i+1,a.length);=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  if ((i=3Da.lastIndexOf(".")) > 5) {=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  a+=3D"."+lt+"."+t+"."+_uns;=0A=
 }=0A=
 return a;=0A=
}=0A=
function _uTrim(s) {=0A=
  if (!s || s=3D=3D"") return "";=0A=
  while ((s.charAt(0)=3D=3D' ') || (s.charAt(0)=3D=3D'\n') || =
(s.charAt(0,1)=3D=3D'\r')) s=3Ds.substring(1,s.length);=0A=
  while ((s.charAt(s.length-1)=3D=3D' ') || =
(s.charAt(s.length-1)=3D=3D'\n') || (s.charAt(s.length-1)=3D=3D'\r')) =
s=3Ds.substring(0,s.length-1);=0A=
  return s;=0A=
}=0A=
function _uEC(s) {=0A=
  var n=3D"";=0A=
  if (!s || s=3D=3D"") return "";=0A=
  for (var i=3D0;i<s.length;i++) {if (s.charAt(i)=3D=3D" ") n+=3D"+"; =
else n+=3Ds.charAt(i);}=0A=
  return n;=0A=
}=0A=
function __utmVisitorCode(f) {=0A=
 var r=3D0,t=3D0,i=3D0,i2=3D0,m=3D31;=0A=
 var a=3D_uGC(_ubd.cookie,"__utma=3D"+_udh+".",";");=0A=
 if ((i=3Da.indexOf(".",0))<0) return;=0A=
 if ((i2=3Da.indexOf(".",i+1))>0) r=3Da.substring(i+1,i2); else return =
"";  =0A=
 if ((i=3Da.indexOf(".",i2+1))>0) t=3Da.substring(i2+1,i); else return =
"";  =0A=
 if (f) {=0A=
  return r;=0A=
 } else {=0A=
  var c=3Dnew =
Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T'=
,'U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');=0A=
  return =
c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r=
&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5=
&m]+c[t&m];=0A=
 }=0A=
}=0A=
function _uIN(n) {=0A=
 if (!n) return false;=0A=
 for (var i=3D0;i<n.length;i++) {=0A=
  var c=3Dn.charAt(i);=0A=
  if ((c<"0" || c>"9") && (c!=3D".")) return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uES(s,u) {=0A=
 if (typeof(encodeURIComponent) =3D=3D 'function') {=0A=
  if (u) return encodeURI(s);=0A=
  else return encodeURIComponent(s);=0A=
 } else {=0A=
  return escape(s);=0A=
 }=0A=
}=0A=
function _uUES(s) {=0A=
 if (typeof(decodeURIComponent) =3D=3D 'function') {=0A=
  return decodeURIComponent(s);=0A=
 } else {=0A=
  return unescape(s);=0A=
 }=0A=
}=0A=
function _uVG() {=0A=
 if((_udn.indexOf("www.google.") =3D=3D 0 || _udn.indexOf(".google.") =
=3D=3D 0 || _udn.indexOf("google.") =3D=3D 0) && _utcp=3D=3D'/' && =
_udn.indexOf("google.org")=3D=3D-1) {=0A=
  return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uSP() {=0A=
 var s=3D100;=0A=
 if (_usample) s=3D_usample;=0A=
 if(s>=3D100 || s<=3D0) return true;=0A=
 return ((__utmVisitorCode(1)%10000)<(s*100));=0A=
}=0A=
function urchinPathCopy(p){=0A=
 var d=3Ddocument,nx,tx,sx,i,c,cs,t,h,o;=0A=
 cs=3Dnew Array("a","b","c","v","x","z");=0A=
 h=3D_uDomain(); if (_udn && _udn!=3D"") o=3D" domain=3D"+_udn+";";=0A=
 nx=3D_uNx()+";";=0A=
 tx=3Dnew Date(); tx.setTime(tx.getTime()+(_utimeout*1000));=0A=
 tx=3Dtx.toGMTString()+";";=0A=
 sx=3Dnew Date(); sx.setTime(sx.getTime()+(_ucto*1000));=0A=
 sx=3Dsx.toGMTString()+";";=0A=
 for (i=3D0;i<6;i++){=0A=
  t=3D" expires=3D";=0A=
  if (i=3D=3D1) t+=3Dtx; else if (i=3D=3D2) t=3D""; else if (i=3D=3D5) =
t+=3Dsx; else t+=3Dnx;=0A=
  c=3D_uGC(d.cookie,"__utm"+cs[i]+"=3D"+h,";");=0A=
  if (c!=3D"-") d.cookie=3D"__utm"+cs[i]+"=3D"+c+"; path=3D"+p+";"+t+o;=0A=
 }=0A=
}=0A=
function _uCO() {=0A=
 if (!_utk || _utk=3D=3D"" || _utk.length<10) return;=0A=
 var d=3D'www.google.com';=0A=
 if (_utk.charAt(0)=3D=3D'!') d=3D'analytics.corp.google.com';=0A=
 _ubd.cookie=3D"GASO=3D"+_utk+"; path=3D"+_utcp+";"+_udo;=0A=
 var sc=3Ddocument.createElement('script');=0A=
 sc.type=3D'text/javascript';=0A=
 sc.id=3D"_gasojs";=0A=
 =
sc.src=3D'https://'+d+'/analytics/reporting/overlay_js?gaso=3D'+_utk+'&'+=
Math.random();=0A=
 document.getElementsByTagName('head')[0].appendChild(sc);  =0A=
}=0A=
function _uGT() {=0A=
 var h=3Dlocation.hash, a;=0A=
 if (h && h!=3D"" && h.indexOf("#gaso=3D")=3D=3D0) {=0A=
  a=3D_uGC(h,"gaso=3D","&");=0A=
 } else {=0A=
  a=3D_uGC(_ubd.cookie,"GASO=3D",";");=0A=
 }=0A=
 return a;=0A=
}=0A=
var _utk=3D_uGT();=0A=
if (_utk && _utk!=3D"" && _utk.length>10 && _utk.indexOf("=3D")=3D=3D-1) =
{=0A=
 if (window.addEventListener) {=0A=
  window.addEventListener('load', _uCO, false); =0A=
 } else if (window.attachEvent) { =0A=
  window.attachEvent('onload', _uCO);=0A=
 }=0A=
}=0A=
=0A=
function _uNx() {=0A=
  return (new Date((new Date()).getTime()+63072000000)).toGMTString();=0A=
}=0A=

------=_NextPart_000_0147_01C8CA55.7CD11FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.wired.com/js/mbox.js

var mboxCopyright =3D "Copyright 2004-2007 Offermatica (tm) =
Corporation";mboxUrlBuilder =3D function(a, b) { this.a =3D a; this.b =
=3D b; this.c =3D new Array(); this.d =3D function(e) { return e; }; =
this.f =3D null;};mboxUrlBuilder.prototype.addParameter =3D function(g, =
h) { var i =3D new RegExp('(\'|")'); if (i.exec(g)) { throw "Parameter =
'" + g + "' contains invalid characters"; } for (var j =3D 0; j < =
this.c.length; j++) { var k =3D this.c[j]; if (k.name =3D=3D g) { =
k.value =3D h; return this; } } var l =3D new Object(); l.name =3D g; =
l.value =3D h; this.c[this.c.length] =3D l; return =
this;};mboxUrlBuilder.prototype.addParameters =3D function(c) { if (!c) =
{ return this; } for (var j =3D 0; j < c.length; j++) { var m =3D =
c[j].indexOf('=3D'); if (m =3D=3D -1 || m =3D=3D 0) { continue; } =
this.addParameter(c[j].substring(0, m), c[j].substring(m + 1, =
c[j].length)); } return this;};mboxUrlBuilder.prototype.setServerType =
=3D function(n) { this.o =3D n;};mboxUrlBuilder.prototype.setBasePath =
=3D function(f) { this.f =3D =
f;};mboxUrlBuilder.prototype.setUrlProcessAction =3D function(p) { =
this.d =3D p;};mboxUrlBuilder.prototype.buildUrl =3D function() { var q =
=3D this.f ? this.f : '/m2/' + this.b + '/mbox/' + this.o; var r =3D =
document.location.protocol =3D=3D 'file:' ? 'http:' : =
document.location.protocol; var e =3D r + "//" + this.a + q; var s =3D =
e.indexOf('?') !=3D -1 ? '&' : '?'; for (var j =3D 0; j < this.c.length; =
j++) { var k =3D this.c[j]; e +=3D s + k.name + '=3D' + =
encodeURIComponent(k.value); s =3D '&'; } return =
this.t(this.d(e));};mboxUrlBuilder.prototype.getParameters =3D =
function() { return this.c;};mboxUrlBuilder.prototype.setParameters =3D =
function(c) { this.c =3D c;};mboxUrlBuilder.prototype.clone =3D =
function() { var u =3D new mboxUrlBuilder(this.a, this.b); =
u.setServerType(this.o); u.setBasePath(this.f); =
u.setUrlProcessAction(this.d); for (var j =3D 0; j < this.c.length; j++) =
{ u.addParameter(this.c[j].name, this.c[j].value); } return =
u;};mboxUrlBuilder.prototype.t =3D function(v) { return v.replace(/\"/g, =
'&quot;').replace(/>/g, '&gt;');};mboxStandardFetcher =3D function() { =
};mboxStandardFetcher.prototype.getType =3D function() { return =
'standard';};mboxStandardFetcher.prototype.fetch =3D function(w) { =
w.setServerType(this.getType()); document.write('<' + 'scr' + 'ipt =
src=3D"' + w.buildUrl() + '" language=3D"JavaScript"><' + '\/scr' + =
'ipt>');};mboxStandardFetcher.prototype.cancel =3D function() =
{};mboxAjaxFetcher =3D function() { };mboxAjaxFetcher.prototype.getType =
=3D function() { return 'ajax';};mboxAjaxFetcher.prototype.fetch =3D =
function(w) { w.setServerType(this.getType()); var e =3D w.buildUrl(); =
this.x =3D document.createElement('script'); this.x.src =3D e; =
document.body.appendChild(this.x);};mboxAjaxFetcher.prototype.cancel =3D =
function() { };mboxFactory =3D function(y, b) { this.z =3D false; this.A =
=3D new mboxList(); this.B =3D typeof =
document.createElement('div').replaceChild !=3D 'undefined' && =
(function() { return true; })() && typeof document.getElementById !=3D =
'undefined' && typeof (window.attachEvent || document.addEventListener =
|| window.addEventListener) !=3D 'undefined' && typeof =
encodeURIComponent !=3D 'undefined'; this.C =3D this.B; if =
(mboxGetPageParameter('mboxDisable') !=3D null) { this.C =3D false; } if =
(!mboxCookies.isEnabled()) { this.C =3D false; } if =
(mboxCookies.getCookie('disable') =3D=3D 'true') { this.C =3D false; } =
if (this.isAdmin()) { this.enable(); } this.D =3D mboxGenerateId(); =
this.E =3D new mboxSession(this.D, 'mboxSession', 'session', 31 * 60); =
this.F =3D new mboxPC(this.D, 'PC', 63072000); this.w =3D new =
mboxUrlBuilder(y, b); this.G(); this.H =3D new Date().getTime(); this.I =
=3D this.H; var J =3D this; this.addOnLoad(function() { J.I =3D new =
Date().getTime(); }); if (this.B) { this.addOnLoad(function() { J.z =3D =
true; J.getMboxes().each(function(K) { K.setFetcher(new =
mboxAjaxFetcher()), K.finalize(); }); }); this.limitTraffic(100, =
10368000); if (this.C) { this.L(); this.M =3D new =
mboxSignaler(function(N, c) { return J.create(N, c); }); } =
}};mboxFactory.prototype.isEnabled =3D function() { return =
this.C;};mboxFactory.prototype.isSupported =3D function() { return =
this.B;};mboxFactory.prototype.disable =3D function(O) { if (typeof =
duration =3D=3D 'undefined') { O =3D 60 * 60; } if (!this.isAdmin()) { =
this.C =3D false; mboxCookies.setCookie('disable', 'true', O); =
}};mboxFactory.prototype.enable =3D function() { this.C =3D true; =
mboxCookies.deleteCookie('disable');};mboxFactory.prototype.isAdmin =3D =
function() { return document.location.href.indexOf( 'mboxEnv') !=3D =
-1;};mboxFactory.prototype.limitTraffic =3D function(P, O) =
{};mboxFactory.prototype.addOnLoad =3D function(p) { if =
(window.addEventListener) { window.addEventListener('load', p, false); } =
else if (document.addEventListener) { document.addEventListener('load', =
p, false); } else if (document.attachEvent) { =
window.attachEvent('onload', p); =
}};mboxFactory.prototype.getEllapsedTime =3D function() { return this.I =
- this.H;};mboxFactory.prototype.getEllapsedTimeUntil =3D function(Q) { =
return Q - this.H;};mboxFactory.prototype.getMboxes =3D function() { =
return this.A;};mboxFactory.prototype.get =3D function(N, R) { return =
this.A.get(N).getById(R || 0);};mboxFactory.prototype.update =3D =
function(N, c) { if (!this.isEnabled()) { return; } if =
(this.A.get(N).length() =3D=3D 0) { throw "Mbox " + N + " is not =
defined"; } this.A.get(N).each(function(K) { K.getUrlBuilder() =
.addParameter('mboxRandomRequestId', mboxGenerateId()); K.load(c); =
});};mboxFactory.prototype.create =3D function(N, c, S) { if =
(!this.isSupported()) { return null; } var e =3D this.w.clone(); =
e.addParameter("mboxCount", this.A.length() + 1); e.addParameters(c); =
var R =3D this.A.get(N).length(); var T; if (S) { if (typeof S =3D=3D =
'string') { T =3D new mboxLocatorNamed(S); } else { T =3D new =
mboxLocatorNode(S); } } else { T =3D new mboxLocatorDefault(N + '-' + =
R); } try { var J =3D this; var K =3D new mbox(N, R, e, T); if (this.C) =
{ K.setFetcher(this.z ? new mboxAjaxFetcher() : new =
mboxStandardFetcher()); } K.setOnError(function(U, n) { K.setMessage(U); =
if (n =3D=3D 'standard') { K.activate(); if (!K.isActivated()) { =
J.disable(); window.location.reload(false); } } else { throw U; } }); =
this.A.add(K); } catch (V) { this.disable(); throw 'Failed creating =
mbox, the error was: ' + V; } return K;};mboxFactory.prototype.getPageId =
=3D function() { return this.D;};mboxFactory.prototype.getPCId =3D =
function() { return this.F;};mboxFactory.prototype.getSessionId =3D =
function() { return this.E;};mboxFactory.prototype.getSignaler =3D =
function() { return this.M;};mboxFactory.prototype.getUrlBuilder =3D =
function() { return this.w;};mboxFactory.prototype.G =3D function() { =
var e =3D this.w; e.addParameter('mboxHost', document.location.hostname) =
.addParameter('mboxSession', this.E.getId()); if (this.F.getId() !=3D =
null) { e.addParameter('mboxPC', this.F.getId()); } =
e.addParameter('mboxPage', this.D); var W =3D =
mboxCookies.getCookie('edge'); if (W !=3D null) { e.addParameter('edge', =
W); } e.setUrlProcessAction(function(e) { e +=3D '&mboxURL=3D' + =
escape(document.location); var X =3D escape(document.referrer); if =
(e.length + X.length < 2000) { e +=3D '&mboxReferrer=3D' + X; } e +=3D =
'&mboxVersion=3D' + mboxVersion; return e; });};mboxFactory.prototype.Y =
=3D function() { return "";};mboxFactory.prototype.L =3D function() { =
document.write('<style>.' + 'mboxDefault' + ' { visibility:hidden; =
}</style>');};mboxSignaler =3D function(Z) { var _ =3D =
mboxCookies.getCookieNames('signal-'); for (var j =3D 0; j < _.length; =
j++) { var ab =3D _[j]; var bb =3D mboxCookies.getCookie(ab).split('&'); =
var K =3D Z(bb[0], bb); K.load(); mboxCookies.deleteCookie(ab); =
}};mboxSignaler.prototype.signal =3D function(cb, N ) { =
mboxCookies.setCookie('signal-' + cb, =
mboxShiftArray(arguments).join('&'), 45 * 60);};mboxList =3D function() =
{ this.A =3D new Array();};mboxList.prototype.add =3D function(K) { if =
(K !=3D null) { this.A[this.A.length] =3D K; }};mboxList.prototype.get =
=3D function(N) { var db =3D new mboxList(); for (var j =3D 0; j < =
this.A.length; j++) { var K =3D this.A[j]; if (K.getName() =3D=3D N) { =
db.add(K); } } return db;};mboxList.prototype.getById =3D function(eb) { =
return this.A[eb];};mboxList.prototype.length =3D function() { return =
this.A.length;};mboxList.prototype.each =3D function(p) { if (typeof p =
!=3D 'function') { throw 'Action must be a function, was: ' + typeof(p); =
} for (var j =3D 0; j < this.A.length; j++) { p(this.A[j]); =
}};mboxLocatorDefault =3D function(g) { this.g =3D 'mboxMarker-' + g; =
document.write('<div id=3D"' + this.g + '" =
style=3D"visibility:hidden;display:none"></div>');};mboxLocatorDefault.pr=
ototype.locate =3D function() { var fb =3D =
document.getElementById(this.g); while (fb !=3D null) { if (fb.nodeType =
=3D=3D 1) { if (fb.className =3D=3D 'mboxDefault') { return fb; } } fb =
=3D fb.previousSibling; } return =
null;};mboxLocatorDefault.prototype.force =3D function() { var gb =3D =
document.createElement('div'); gb.className =3D 'mboxDefault'; var hb =
=3D document.getElementById(this.g); hb.parentNode.insertBefore(gb, hb); =
return gb;};mboxLocatorNamed =3D function(ib) { this.jb =3D =
ib;};mboxLocatorNamed.prototype.locate =3D function() { return =
document.getElementById(this.jb);};mboxLocatorNamed.prototype.force =3D =
function() { return null;};mboxLocatorNode =3D function(kb) { this.fb =
=3D kb;};mboxLocatorNode.prototype.locate =3D function() { return =
this.fb;};mboxLocatorNode.prototype.force =3D function() { return =
null;};mboxCreate =3D function(N ) { var K =3D =
mboxFactoryDefault.create(N, mboxShiftArray(arguments)); if (K) { =
K.load(); } return K;};mboxDefine =3D function(S, N ) { var K =3D =
mboxFactoryDefault.create(N, mboxShiftArray(mboxShiftArray(arguments)), =
S); return K;};mboxUpdate =3D function(N ) { =
mboxFactoryDefault.update(N, mboxShiftArray(arguments));};mbox =3D =
function(g, jb, w, lb) { this.mb =3D null; this.nb =3D 0; this.ob =3D =
null; this.T =3D lb; this.pb =3D null; this.qb =3D new =
mboxOfferContent(); this.gb =3D this.getDefaultDiv(); this.w =3D w; =
this.message =3D ''; this.rb =3D new Object(); this.sb =3D 0; this.jb =
=3D jb; this.g =3D g; this.tb(); w.addParameter('mbox', g) =
.addParameter('mboxId', jb); this.ub =3D function() {}; this.vb =3D =
function() {};};mbox.prototype.getId =3D function() { return =
this.jb;};mbox.prototype.tb =3D function() { if (this.g.length > 250) { =
throw "Mbox Name " + this.g + " exceeds max length of " + "250 =
characters."; } else if (this.g.match(/^\s+|\s+$/g)) { throw "Mbox Name =
" + this.g + " has leading/trailing whitespace(s)."; =
}};mbox.prototype.getName =3D function() { return =
this.g;};mbox.prototype.parameters =3D function() { return =
this.w.getParameters();};mbox.prototype.setOnLoad =3D function(p) { =
this.vb =3D p; return this;};mbox.prototype.setMessage =3D function(U) { =
this.message =3D U; return this;};mbox.prototype.setOnError =3D =
function(ub) { this.ub =3D ub; return this;};mbox.prototype.setFetcher =
=3D function(wb) { if (this.pb) { this.pb.cancel(); } this.pb =3D wb; =
return this;};mbox.prototype.getFetcher =3D function() { return =
this.pb;};mbox.prototype.load =3D function(c) { if (this.pb =3D=3D null) =
{ return this; } this.setEventTime("load.start"); this.cancelTimeout(); =
var w =3D (c && c.length > 0) ? this.w.clone().addParameters(c) : =
this.w; this.pb.fetch(w); var J =3D this; this.xb =3D =
setTimeout(function() { J.ub('Fetch of mbox timed out', J.pb.getType()); =
}, 15000); this.setEventTime("load.end"); return =
this;};mbox.prototype.loaded =3D function(c) { this.cancelTimeout(); if =
(!this.activate()) { var J =3D this; setTimeout(function() { J.loaded(); =
}, 100); }};mbox.prototype.activate =3D function() { if (this.nb) { =
return this.nb; } this.setEventTime('activate' + ++this.sb + '.start'); =
if (this.show()) { this.cancelTimeout(); this.nb =3D 1; } =
this.setEventTime('activate' + this.sb + '.end'); return =
this.nb;};mbox.prototype.isActivated =3D function() { return =
this.nb;};mbox.prototype.setOffer =3D function(qb) { if (qb && qb.show =
&& qb.setOnLoad) { this.qb =3D qb; } else { throw 'Invalid offer'; } =
return this;};mbox.prototype.getOffer =3D function() { return =
this.qb;};mbox.prototype.show =3D function() { =
this.setEventTime('show.start'); var db =3D this.qb.show(this); =
this.setEventTime(db =3D=3D 1 ? "show.end.ok" : "show.end"); return =
db;};mbox.prototype.showContent =3D function(yb) { if (yb =3D=3D null) { =
return 0; } if (this.gb =3D=3D null) { this.gb =3D this.getDefaultDiv(); =
if (this.gb =3D=3D null) { return 0; } } if (this.gb !=3D yb) { =
this.zb(this.gb); this.gb.parentNode.replaceChild(yb, this.gb); this.gb =
=3D yb; } this.Ab(yb); this.vb(); return 1;};mbox.prototype.hide =3D =
function() { this.setEventTime('hide.start'); var db =3D =
this.showContent(this.getDefaultDiv()); this.setEventTime(db =3D=3D 1 ? =
'hide.end.ok' : 'hide.end.fail'); return db;};mbox.prototype.finalize =
=3D function() { this.setEventTime('finalize.start'); =
this.cancelTimeout(); if (this.getDefaultDiv() =3D=3D null) { if (this.T =
=3D=3D null) { this.setMessage('No locator specified'); } else { if =
(this.T.force() !=3D null) { this.setMessage('No default content, an =
empty one has been added'); } else { this.setMessage('Unable to locate =
mbox'); } } } if (!this.activate()) { this.hide(); =
this.setEventTime('finalize.end.hide'); } =
this.setEventTime('finalize.end.ok');};mbox.prototype.cancelTimeout =3D =
function() { if (this.xb) { clearTimeout(this.xb); } if (this.pb !=3D =
null) { this.pb.cancel(); }};mbox.prototype.getDiv =3D function() { =
return this.gb;};mbox.prototype.getDefaultDiv =3D function() { if =
(this.ob !=3D null) { return this.ob; } if (this
