From: Subject: A brief history of spam Date: Sun, 22 May 2005 02:05:06 +0430 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0000_01C55E72.AC78D590"; type="text/html" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www-106.ibm.com/developerworks/linux/library/l-spam/l-spam.html =EF=BB=BF A brief history of spam
3DIBM=C2=AE 3D""=20
    Country/region [select]      Terms of=20 use
 
3D""=20
3D""
  =20  
    
     Home      Products      Services &=20 solutions      Support &=20 downloads      My = account     
<= /TD>
3D""=20
3D""=20
developerWorks=20 > Linux >=20
3DdeveloperWorks=20 3D""=20
3D""=20
3D""=20 A brief history of spam 3D""=20 3D""=20
3D"e-mail
3D""=20
3D""=20
3D""=20
3D""=20
3D""=20
3D""=20
Contents:
3D""=20
Resources
3D""=20
3D""=20
About=20 the author
3D""=20
Rate=20 this article
3D""=20
3D""=20
Related content:
3D""=20
Stamp=20 out spam with SpamAssassin
3D""=20
3D""=20
3D""=20
Subscriptions:
3D""=20
dW=20 newsletters
3D""=20
dW=20 Subscription(CDs and=20 downloads)
3D""=20
3D""=20
3D""
3D""
Our guide to junk e-mail's long and annoying = past

J.S.=20 Kelly (mailto:jskelly@jskelly.com?cc=3D&subject=3DA=20 brief history of spam)
Freelance author
01 Sep 2002

Do you think spam was only just = invented?=20 No, it's been bothering people for years, and you can read all = about it=20 here. This article is a companion story to the developerWorks = article=20 "Stamp = out spam=20 with SpamAssassin."

"I'll = have his=20 spam -- I love it!" -- Monty Python spam skit

The birth of spam: April 12, 1994 does not live in Net.infamy, = but=20 perhaps it should -- for that is the day that spam as we know it = was born.=20 Read all about how the husband-and-wife team of Laurence = Canter and=20 Martha Siegel unleashed the Pandora's Box of Spam on the = Internet in=20 this period article from the New = Scientist.=20

(Note that Brad Templeton cites an example of = spam as=20 early as 1978 and provides strong contradictory evidence to = and=20 arguments against the popular interpretation of the history of the = origins=20 of spam. He also provides the actual text of = that vintage=20 1978 spam message from DEC.)

Another 1990s period summary of = the=20 Canter and Siegel case, this time from K.K.Campbell, gives = more=20 background, including the etymologies of SPAM-the-luncheon meat as = well as=20 SPAM-the-mail-problem -- it even provides a partial transcript of = the=20 famous Monty Python episode from which the latter gets its name! = This=20 early spam originally appeared in Toronto = Computes=20 in October 1994, and was presumably immediately transcribed from = paper to=20 plain text and cross-posted Net-wide by multiple individuals. This = is the=20 way that print articles were most often posted in those days, = usually=20 preceded by a disclaimer to the effect that the material was = "Reprinted=20 without permission."

Canter and Siegel were not the only early spammers; they were = soon=20 (around December 1994) joined by one Michael = Wolff,=20 who spammed Usenet with ads for his book on Internet culture.

Even before the Wolff incident, admins were taking steps to = fight the=20 onslaught of spam. As far as we know, the first one to = automatically=20 cancel (Usenet) spam was the infamous Cancelmoose[tm],=20 whose true identity remains a closely guarded secret. The=20 Cancelmoose's[tm] weapon of choice was the mighty Cancelbot.

The Cancelmoose[tm] retired after being accused by a vocal = minority of=20 censorship. (We say vocal minority because our understanding is = that the=20 majority of users supported the moose -- but in this as in other = details=20 of our story, we would like to be corrected where we are wrong -- = so much=20 of the Internet has been rewritten that it is hard to research = this=20 stuff.)

Others fax-bombed = and=20 otherwise harassed Canter and Siegel and other early spammers; = see the=20 types of = missives=20 that were being exchanged -- including the urgent notice that = "Canter=20 and Siegel... has announced plans to spam the net once again = within=20 days..." and irrefutable proof that Canter and Siegel were = planning to=20 spam the Internet with e-mail ads for oxygenated water...

Aside from cancellation, revenge, and hand-wringing, early = spam-busting=20 efforts included postings in resources like net.abuse and the = RISKS=20 Digest. Here is a historic = RISKS post=20 from Tim Shepard informing readers, just ten days after the = Canter and=20 Siegel "spam heard around the world," of the pair's then-current = new=20 Internet accounts (in typical spammer fashion, the spamming duo = opened new=20 accounts as fast as the Net diehards who were fighting them could = get them=20 kicked off of old ones). Postings like this one could be viewed as = precursors to blacklists (or "remove lists" -- the first of which = debuted=20 around November of 1994). The post just prior to this one in the = RISKS=20 Digest is also interesting: it suggests drowning out Canter and = Siegel's=20 spam with even more = (spoofed)=20 spam. Which brings up an interesting point: if spam is fake ham, = what is=20 fake spam?

Others came up with Procmail filters that they shared with the=20 community. Especially notable among these is Nancy McGough's 1994 = Procmail=20 tutorial in the FILTERING MAIL FAQ. (We provide this link for=20 historical background; the technical information provided there = is, today,=20 obsolete. Read Nancy's updated = Procmail=20 tutorial.)

Still others philosophized ("Will = business change=20 the Net or will the Net change business?") and otherwise = discussed the=20 implications for the future of this new net abuse. Some -- like attorney = Eric=20 Schlachter -- with surprising accuracy, others -- like the=20 Cancelmoose[tm] himself with an amazing lack of same.

Roger Clarke analyzed spam as aberrant = online=20 behavior, and the gentle marketing folk of the time were = horrified at=20 the Canter and Siegel incident. Read what the members of the = Internet=20 Marketing discussion list were talking about in November = 1994.

Of course, we know now how it all turned out. But where will it = lead?=20 As for the future, we can be sure of one thing: eventually, the = spammers=20 will evolve some technique that will foil even the mighty SpamAssassin's=20 capabilities.

Resources

  • Return to the article "Stamp = out spam=20 with SpamAssassin" (developerWorks,=20 September 2002).
  • Read all about spam at spam.abuse.net=20 and at the fine links provided by stop-spam.org= .

  • Edward Gehringer's Computer = Abuse --=20 Spamming page at North Carolina State University is perhaps = the best=20 we've come across.

  • Michael Fraase recently took the time to informally tally = estimates=20 of the economic = toll of=20 spam. Compare and contrast with Spam: A = Look at=20 the numbers -- a 1996 version of such a guestimate.

  • It isn't being updated anymore, but Keith Lynch's A = timeline of=20 spam has great details from the early days.

  • The Net = Abuse=20 Jargon File by Andrew Nellis is also not being maintained, = but is=20 interesting from a historical perspective.

  • The = Cancelmoose=20 lives! And is still fighting spam. But is it the original=20 Cancelmoose[tm], or is it just "Cancelmoose Beyond"?

  • Retired IBMer Paul Graham has a personal interest in spam = and spam=20 filters, and has been = tracking=20 spam news (among other things) since his retirement from IBM = in late=20 2001. All of his summaries are great; particularly notable are = his links=20 to volunteer Net.History archivists who preserve = spam for=20 future generations; and this announcement that a spam = conference=20 is planned for January 2003.
  • Back issues of the RISKS = Digest=20 make for fun reading and prove the axiom that there is nothing = new under=20 the sun. (The last few issues in this April 93 - April 94 = citation cover=20 the period during which C & S fired the first salvo of the = modern=20 spam wars -- but you can move back and forth in time using the = quaint,=20 1993-era "standardized" navigation icons at the top and bottom = of the=20 page. The = RISKS=20 Digest is still published today.

  • Back issues of the Computer = Underground Digest also make for good reading. The Computer=20 Underground Digest is no longer being published.

  • There used to be things called anonymous=20 remailers. Read the = fascinating=20 story of the anonymous remailer, www.penet.fi of = Finland.

  • Check out Hobbes' = Internet=20 Timeline, which covers the growth of the Net from the = creation of=20 ARPA itself in 1957 (as a direct result of the Soviets' launch = of=20 Sputnik) -- to the coining of the term "Surfing the Internet" by = Jean=20 Armour Polly in 1992 -- to 1997, where it (very unfortunately!) = ends.=20 The Canter and Siegel debacle even rates a mention in this = important=20 source work!

About the=20 author
J.S. Kelly is a freelance writer and editor = living=20 in the Los Angeles area. J.S. has been writing = professionally since=20 1992 and using Linux since 1994. You can contact J.S. at jskelly@jskelly.c= om.
3D""=20
3D"e-mail 3D""=20
3D""=20
3D""=20
Rate this=20 article

This content was helpful to me:

3D""=20
Strongly=20 disagree (1) Disagree=20 (2) Neutral=20 (3) Agree=20 (4) Strongly=20 agree = (5)

Comments?


3D""=20
3D""=20
developerWorks=20 > Linux=20 >
3DdeveloperWorks=20 3D""=20
3D""=20
------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.ibm.com/i/v14/t/ibm-logo.gif R0lGODlhbgA0ALMAAAAAAP///zxZdxMaIbi4uLe3t1paWnNzc3JyckBAQAAAAAAAAAAAAAAAAAAA AAAAACH5BAAAAAAALAAAAABuADQAAAT/UMhJq7046827r0MojmRpnmiqrmxLAnAsz3Rt33iu73zv /8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9is9lcIeL9gcAHQDZvDhMOMcAaraYe2GMqWgwmAuv38hunb eDRldoFbhoeIiT9/dmODe2djeZB9MHGQhU2McmObkF+BnmGSMY9ymYqpqquJZziMM6YBCDN2fZdt pFauN6ZrZjSEMaJeqKzHyMlSvDbEzDJ7eLKjWc+Cn8U1fG5huKDK4OHiR9a/2LoxZtKAAGboVOUy zsDB1O286uP6+/w38aVhzIGpd8cPmnQHsfyD4UuGrEr3CgLwFqCPu34YMy4xwPHItDN4W+btYXhq 2DeEuWYYiLGyiMhsL9lNSmnpS6VGMlYaSKBTIxSdLVv6bNKzJ5GYnbCZ6UNMFxtUOHOyNPLxYsw7 lapCJRiJBkehQ8OKHUu2rNmzaNOqXcu2rdstEQAAOw== ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www-106.ibm.com/developerworks/i/c.gif R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.ibm.com/i/c.gif R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www-106.ibm.com/developerworks/i/dwlogo-small.gif R0lGODlhiAAYALMAAP///+7u7t3d3czMzLu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhER EQAAACwAAAAAiAAYAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd84hSzusBg034FiWPAm ggUCtHMtHr3HkPZoUJ6PwcQgBT2d0NagS3sKJIGHegpQZL3h0+BwMAS+kwLdLqFX/AABBnQFE2Ns c3RnEoMAegeFFYkHiwB1AnUHD0COD25HAA4OSHQHWhIElINJcQAEp5h0pxkJDw5PDg1hAQxVvQ5a brMEngADDg8MugwBxmS1t2sST73Kyc0S0FictrYIxAnZDwW6EmPhAFwPC8gKfd0MPnG1DOm27JsZ XMyBvWFPnI5Z4bJEXIEAok5xCXcIAIIH6HiNA4DrVC10miL2OqNGAbYqEv8ajHpYSBOQAtfELdH0 gMC0MPSaiWoWQBc2C2YmEINyjoImAghHBQJp8grPLrkoCCgGkEK5UFZ0dlFz08wYdyiX5HRTCYBI Sw8KUnwgkR8AkBL0dKWAdkI5TQpKHag1pFYhLkPcIJD7pWHYCr3G3nQYJplcTTyS+dxUNA0zxWfr 6YCiKdLYX1XXGVhrYV2FL5oYGBn9w1WxjWNJj3Y2hMyEL3gmaJJQRbWSs6CcJcg5VlNBz4vBunzZ zXKAA7qSWe4seULgyhl0ETvyZLChqWIlBOYtjnZ2trmhQgarK9J4CQ+Fv4Y4xoF1QdIxcF8KBRyF Wose6uJU1K2VhkkhwZTVa14VFhUj+QA3gRt/oaJGHFw5NcpP670Tjn1pEUhEShKFsR+CoNAnFABL ASPOEA09pFFLY5kIwEXioHOMe7j9ocZwEiADCkpm0aXeS26xmJA4nFygTTKBGbNMNV31kp0BOuri DmsSuBFNPpclsww2d9Rmy3AKmmNLBW6wAdY6yGDEIpAONiCIGgvosoB1kuxhDI6CEGKBAEBVEIsp EwRAQCWTVPLFI8ultcdNr1jQqFJ9KlXKLHzeNACOdzbzJ6Y5iBBbp6CGyqaopObQRKmopqpqCREA ADs= ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www-106.ibm.com/developerworks/i/icon-email.gif R0lGODlhLgAaAKIAAABmmYu50f//mZo0Af///5mZmQAAAAAAACwAAAAALgAaAAADhEi63P4wykmr vTi3wrvv2lUIZGkKRWiNJzkMqFqx7RvLE2vspZ3iElqL9ANCdLtkqWh0CIfMJuND5Uiv2Kx2+wAA CF5GOAz+askNMjq99rrH7rJ88YZ3v2h7Pt7Gm9d0dW9ycIN9c4AKiXp8jWJ+FIOKkIWOgWWQXBoB gp2en6BmmqNACQA7 ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://stats.www.ibm.com/rc/images/uc.GIF?R=noscript R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.ibm.com/i/v14/t/zz/en/search.gif R0lGODlhRwASAOYAAP///1VVVQkJCQYGBgQEBC0tLUpKSjg4OBAQECcnJzIyMj4/Pg0NDENERBEQ EBQUFD8+Px0dHQwMDSoqKysrKzIzMhgYGD4+Ph0cHS4tLSIiIhkYGDk4OCsqKzIyM0lKShQUFUNE QysrKhAREAMEBElKSRUUFERDRB0dHA0NDUNDRDg5OQQEAy0uLTIzMysqKkRERCMjIiIjIwwNDTg4 OT8/PygnJxERERgZGERDQxkZGBgYGT4+PwwNDAMEAyIiIzMzMyorKyIjIjk5OBwdHUREQyMjIw0M DAAAABgZGSMiIhUVFUpJST8/Pjg5OCcoJxAQET8+PkNDQy4uLicoKCcnKB0cHAwMDEpJSg0MDTEx MTY2NkZGRhQVFC8vLywsLAQDBC0tLklJSSorKkxMTE9PT0pKSVJSUjs7Ozk4OSMiI0BAQDk5OTMz MhkZGRwcHSoqKhUUFTM0MxARERkYGTMyMz4/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAABHABIAQAf/gH8Bg4SFhoeIiYqLjIR/FzEyGj8aGjIxlZeVQpcAnpienQA/RkJG Gp5KnquhmKgAGkKepadKSkIxajI/pD9KahdfBMPDLMMkJMfJysfEBMtgxiw+xNIE08zPxNHX1ATe 385fYgcHNCsHHBwrNOnsNEPr7fJD7vAHaQdO5fzq+uXyDni6xyHfPn4ID7ApN0QMkBEOIDpAQPEG lIo3JiKwWNGBxowaI0qkSFFkxYsbPZIUOXEOgokjEMREIKfMiRAqTkiBEaKBz54+VQBtAFSF0KA5 TxRpkENpDp5KmQ4tKvRE1BxFcqiAwfUpjBMwykiZUqBAi7IZyrZIW7ZABk9r/wG0ZYv2rNswc+1m YNvC09wMetsKtltAygEcFiwk2bADhw4LjR9b2IADAGRPFjw5nrzB04bMAHRo3tAZwOYdmEtzVix5 B53FbiBv4OBFgO3buHPr3s27t+/ft72cMVPCABMmBpKX+KB8uXLmBpZDl568evHq2J8/h57dOBbk zs1gOUPmgh0ICyCoX1CDB/oaNZq8d8++Sfr6CxZc0I8+SnoI+12wXnvv2YdegBD4FwUP+vFwgYA8 kMGFBwpQqEAFLlzoQYYVVABEhqtcCASGIlagwIkeeNDGhSRWuKGGnnjYoosXnuhCBXV4YKICXKyR QBVUJPBEAkTaQGQCNhiZgP8nRxrJSgJU2PDkkgBQSSWTrFRpwxNKHvnjE1RUUeQaaBCBQQRnRoAC mlasicGZblrhCQZZAnBmlih4goKZerI5ZwSeRGDmm2sKGsGhgqLwBhpbgABCF3GY8IAJSzwwaaUP gEDpKpWCkOWkWXoKgKSasvKAJ5l6QiqpXWTq6qSWbqHFEQxIcEQKM0ggAQO17sqrrr/62gOwDPTQ w60MpIDrFbkimwKxxA57bArJzsBssj0wkEUWM8ygxRQDhCvuuOSWa+656KarrrhT/EFBByJQ8EIQ E7wgQgf1ihBvvvja+26+/3ZAwQQUjBEEBfQKTDC/AOM7gcIIUxBvEGNQAMcFBPf+EQgAOw== ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www-106.ibm.com/developerworks/i/bg-gold.gif R0lGODlhAgACAIAAAP/MZv///ywAAAAAAgACAAACAwwQBQA7 ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www-106.ibm.com/developerworks/js/dwcss.js if((navigator.appName =3D=3D "Microsoft Internet Explorer") && = (parseInt(navigator.appVersion) >=3D 4 = )){if((navigator.appVersion.indexOf("Macintosh"))!=3D = -1){document.write('');}else if ((navigator.userAgent.indexOf(" Opera ") = !=3D -1) || (navigator.userAgent.indexOf("Opera/") !=3D = -1)){document.write('');}else if ((navigator.appVersion.indexOf('MSIE 6')) = !=3D -1){document.write('');}else{document.write('');}}=0A= else if ((navigator.appName =3D=3D "Netscape") && = (parseInt(navigator.appVersion) >=3D = 4)){if((navigator.appVersion.indexOf("Macintosh"))!=3D = -1){document.write('');}else if ((navigator.appName =3D=3D "Netscape") && = (parseInt(navigator.appVersion) >=3D 5)){document.write('');}else if ((navigator.appVersion.indexOf('X11')) = !=3D -1){document.write('');}else if ((navigator.userAgent.indexOf(" Opera ") = !=3D -1) || (navigator.userAgent.indexOf("Opera/") !=3D = -1)){document.write('');}else{document.write('');}}=0A= else{document.write('');} ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www-106.ibm.com/developerworks/js/forumwindow.js // developerWorks e-mail to a friend JavaScript // Adapted from Danny Goodman's // "JavaScript Bible, 3rd Edition" (www.dannyg.com) // Initialize global var for new window object // so it can be accessed by all functions on the page var forumWind // make the new window and put some stuff in it function forumWindow() { forumWind =3D = window.open(forumURL,"forumsubwindow","HEIGHT=3D500,WIDTH=3D765,resizable= =3Dyes,scrollbars") } ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www-106.ibm.com/developerworks/email/grabtitle.js // Used for dW e-mail to a friend function=0A= // Grab only the title from the entire document.title value=0A= function dWSplitChar(ch, str) {=0A= var start =3D 0;=0A= var splits =3D new Object;=0A= var end;=0A= var i =3D 0;=0A= while (start < str.length) {=0A= end =3D start;=0A= while (end < str.length &&=0A= ch.indexOf(str.charAt(end)) < 0) {=0A= end++;=0A= }=0A= splits[i++] =3D str.substring(start,end);=0A= start =3D end + 1;=0A= }=0A= splits.length =3D i;=0A= return splits;=0A= }=0A= =0A= function getTitle(){=0A= var j=3D0;=0A= var titlestring=3D"";=0A= var splitfields =3D dWSplitChar(':', document.title);=0A= if (splitfields.length>2) {=0A= for (j=3D2;j" //output +=3D "
" //output +=3D "" //output +=3D "" //output +=3D "" //output +=3D "" //output +=3D "" //output +=3D "" //this.document.write(output) //this.document.emailIt.submit(); //emailWindow.document.close() =20 = window.location.assign("https://www-136.ibm.com/developerworks/secure/ema= il-it.jsp?subject=3D" + escape(justTitle) + "&url=3D" + = escape(document.location.href) + "&body=3D" + escape(emailAbstract)); } =20 // close subwindow, including ugly workaround for IE3 function closeWindow() { if (isIE3) { // if window is already open, nothing appears to happen // but if not, the subwindow flashes momentarily (yech!) emailWindow =3D = window.open("","subwindow","HEIGHT=3D200,WIDTH=3D200") =20 } =20 if (emailWindow && !emailWindow.closed) { emailWindow.close() } =20 } =20 ------=_NextPart_000_0000_01C55E72.AC78D590 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.ibm.com/data/js/survey/esites/popup.js // $Id: popup.js,v 1.32 2005/04/07 20:35:14 scale Exp scale $=0A= // Contact: Scott Cale/New York=0A= // ibm.com Corporate Webmaster team=0A= =0A= // We need to load the common/cookie code before the code that uses it.=0A= // Therefore, I had to shift the original popup.js into v11trigger.js=0A= =0A= //=0A= //=0A= // ***** WARNING *****=0A= //=0A= // This version contains code used for troubleshooting the=0A= // ongoing Partner Commerce issue. Do not leave this version=0A= // up any longer than necessary=0A= //=0A= // Scott=0A= //=0A= //=0A= =0A= if( typeof(ibmSurveyTest) =3D=3D 'undefined' ){=0A= var ibmSurveyTest;=0A= }=0A= =0A= ibmSurveyTest =3D 'popup.js loaded';=0A= =0A= var ibmSurveyServer =3D '//www.ibm.com';=0A= =0A= if( (typeof staging !=3D 'undefined') && (staging =3D=3D 'yes') ){=0A= ibmSurveyServer =3D '//wwwstage.ibm.com';=0A= }=0A= =0A= ibmSurveyTest =3D 'server: ' + ibmSurveyServer;=0A= =0A= if( typeof ibmCommonDesignVersion =3D=3D 'undefined' ){=0A= ibmSurveyTest =3D 'loading CommonDesign';=0A= document.write('
3D""=20
  About IBM  |  Privacy  |  Terms of use  |  Contact