CINXE.COM
<!DOCTYPE html> <html> <head><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://twitter.com/","20110706040059","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1309924859"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <title>Twitter</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"/> <script type="text/javascript" charset="utf-8"> document.domain = 'twitter.com'; // this will be copied to twttr.appStartTime once our JS has started up document.startTime = new Date().getTime(); var twttr = {}; twttr.versionName = 'phoenix'; if (!window.console) { (function() { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; window.console = {}; for (var i = 0; i < names.length; ++i) { window.console[names[i]] = function() {}; } }()); } </script> <script type="text/javascript">(function(){window.setTimeout=window.setTimeout;window.setInterval=window.setInterval;window.WATCH=function(label,block){if(typeof block==="undefined"){block=label;label=undefined}if(typeof label==="string"){WATCH._didExecute[label]=true}WATCH._attempt(this,block)};WATCH._didExecute={};WATCH._reportCount=0;WATCH._reportLimit=25;WATCH._reportInterval=60*1000;WATCH._active=false;WATCH.activate=function(setting){if(typeof setting==="undefined"){setting=true}WATCH._active=setting;extend(WATCH,WATCH._active?WATCH.actives:WATCH.inactives)};WATCH.actives={};WATCH.inactives={};var extend=function(destination,source){for(var key in source){destination[key]=source[key]}};var noop=function(){};WATCH._attempt=function(that,block){if(arguments.length<2){block=that;that=window}if(WATCH._active){try{block.apply(that)}catch(error){WATCH._triggerError(error)}}else{block.apply(that)}};WATCH.inactives.end=noop;WATCH.actives.end=function(label){if(typeof label==="undefined"){throw new Error("WATCH.end() requires a label")}if(WATCH._didExecute[label]){WATCH._didExecute[label]=false}else{if(WATCH._active){WATCH._triggerError(new Error('WATCH.end("'+label+'") called without successful call to WATCH("'+label+'", fn(){...}) - a SyntaxError probably just happened'))}}WATCH._didExecute[label]=false};WATCH.inactives.callback=function(that,callback){return typeof callback==="undefined"?that:callback};WATCH.actives.callback=function(that,callback){if(arguments.length===1){callback=that;that=this}if(typeof callback==="string"){callback=(function(stringVersion){return function(){eval(stringVersion)}}(callback))}var watchedCallback=function(){var that=this,args=arguments,result;WATCH._attempt(function(){result=callback.apply(that,args)});return result};watchedCallback.isWatched=true;return watchedCallback};WATCH._onErrorCallbacks={};WATCH.inactives._addOnError=noop;WATCH.actives._addOnError=function(callback){var unique=WATCH._unique();WATCH._onErrorCallbacks[unique]=callback;return unique};WATCH.inactives._removeOnError=noop;WATCH.actives._removeOnError=function(id){delete WATCH._onErrorCallbacks[id]};WATCH._lastUnique=-1;WATCH._unique=function(){return ++WATCH._lastUnique};WATCH.inactives.jQuery=noop;WATCH.actives.jQuery=function(){WATCH._originalJQueryEventAdd=WATCH._originalJQueryEventAdd||jQuery.event.add;jQuery.event.add=function(){var newArgs=Array.prototype.slice.call(arguments);if(typeof newArgs[2]==="function"){newArgs[2]=WATCH.callback(newArgs[2])}else{if(newArgs&&typeof newArgs[2]==="object"&&newArgs[2].handler){newArgs[2].handler=WATCH.callback(newArgs[2].handler)}}return WATCH._originalJQueryEventAdd.apply(this,newArgs)};WATCH._originalJQueryAjax=WATCH._originalJQueryAjax||jQuery.ajax;jQuery.ajax=function(options){jQuery.each(["complete","error","success"],function(which,key){if(!options[key]){return }options[key]=WATCH.callback(options[key])});return WATCH._originalJQueryAjax.apply(this,arguments)}};WATCH.inactives.undoJQuery=noop;WATCH.actives.undoJQuery=function(){jQuery.event.add=WATCH._originalJQueryEventAdd;jQuery.ajax=WATCH._originalJQueryAjax};WATCH._previousErrors={};var escapeDoubleQuotes=function(string){return string.toString().replace('"','\\"')};var stringifyLite=function(object){var result="{",hasProperty=false;for(var key in object){if(typeof object[key]==="undefined"||object[key]===null){continue}result+=(hasProperty?',"':'"')+escapeDoubleQuotes(key)+'":"'+escapeDoubleQuotes(object[key])+'"';hasProperty=true}return result+"}"};WATCH._scribeError=function(report){if(WATCH._previousErrors[report.error]&&(new Date())-WATCH._previousErrors[report.error]<WATCH._reportInterval){return false}if(WATCH.reportLimit<=WATCH.reportCount){return }WATCH.reportCount++;if(!document.location.hostname.match(/(^(www|api)\.)?twitter\.com$/)){return }WATCH._previousErrors[report.error]=new Date();report.product_name="webclient";report.type="js_error";report.url=window.location.href;report.event_name="test";var isProduction=document.location.hostname.match(/(^(www|api|staging\d+.local)\.)twitter\.com$/)!=null;var scribeHost=isProduction?"scribe.twitter.com":window.location.host;var scribeUrl=(window.location.protocol.match(/s\:$/)?"https":"http")+"://"+scribeHost;scribeUrl+=isProduction?"/":"/scribe";scribeUrl+="?category=client_watch_error&log="+encodeURIComponent(stringifyLite(report))+"&ts="+(new Date()).getTime();(new Image()).src=scribeUrl};WATCH._triggerError=function(error){var reraise=true;var report={error:error};for(var key in WATCH._onErrorCallbacks){try{if(WATCH._onErrorCallbacks[key](report)===false){reraise=false}}catch(callbackError){report.callbackFailure=true}}WATCH._scribeError(report);if(reraise){throw error}};WATCH.inactives.natives=noop;WATCH.actives.natives=function(){window.setInterval=WATCH._watchedSetInterval;window.setTimeout=WATCH._watchedSetTimeout};WATCH.inactives.undoNatives=noop;WATCH.actives.undoNatives=function(){window.setInterval=WATCH._originalSetInterval;window.setTimeout=WATCH._originalSetTimeout};WATCH._originalSetInterval=window.setInterval;WATCH._originalSetTimeout=window.setTimeout;WATCH._watchedSetInterval=function(callback,timeout){var setInterval=WATCH._originalSetInterval;return setInterval(WATCH.callback(callback),timeout)};WATCH._watchedSetTimeout=function(callback,timeout){var setTimeout=WATCH._originalSetTimeout;return setTimeout(WATCH.callback(callback),timeout)};WATCH.activate(false)}());</script> <script type="text/javascript"> </script> <script> function bust () { document.write = ""; window.top.location = window.self.location; setTimeout(function() { document.body.innerHTML = ''; }, 0); window.self.onload = function(evt) { document.body.innerHTML = ''; }; } if (window.top !== window.self) { // are you trying to put self in an iframe? try { if (window.top.location.host) { // this is illegal to access unless you share a non-spoofable document domain // fun times } else { bust(); // chrome executes this } } catch (ex) { bust(); // everyone executes this } } </script> <link href="/web/20110706040059im_/https://twitter.com/phoenix/favicon.ico" rel="shortcut icon" type="image/x-icon"/> <link rel="stylesheet" href="https://web.archive.org/web/20110706040059cs_/https://si0.twimg.com/a/1309899422/phoenix/css/phoenix.bundle.css" type="text/css" media="screen"/> <noscript> <meta http-equiv="refresh" content="0; URL=/web/20110706040059/https://twitter.com/?_twitter_noscript=1"/> </noscript> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-30775-6']); _gaq.push( ['_trackPageview'], ['_setDomainName', 'twitter.com'] ); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://web.archive.org/web/20110706040059/https://ssl' : 'https://web.archive.org/web/20110706040059/http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); }()); twttr.trackPageView = function(pathName) { var event = ['_trackPageview']; if (pathName) { event.push(pathName); } _gaq.push(event); }; </script> </head> <body class="user-style-twttr loading-body logged-out narrow"> <div id="doc"> <div id="top-stuff"> <div id="banners" style="clear:both;"></div> <div id="top-bar-outer"> <div id="top-bar-bg"></div> <div id="top-bar"> <div class="top-bar-inside"> <div class="static-links"> <div id="logo"> <a href="/web/20110706040059/https://twitter.com/">Twitter</a> </div> <form id="search-form" action="/web/20110706040059/https://twitter.com/search" method="GET"> <span class="glass"><i></i></span> <input value="" data-i18n-label="Search" placeholder="" name="q" id="search-query" type="text"/> </form> <div id="global-nav"> <ul> </ul> </div> <div id="sections"></div> </div> <div class="active-links"> <div id="session"> <a id="signin-link" href="/web/20110706040059/https://twitter.com/login"> <em>Have an account?</em> <strong>Sign in</strong><i></i> </a> <a id="signup-link" href="https://web.archive.org/web/20110706040059/https://twitter.com/signup?context=login"> <em>New to Twitter?</em> <strong>Join Today »</strong> </a> <div id="signin-dropdown" class="dropdown dark"> <form action="https://web.archive.org/web/20110706040059/https://twitter.com/sessions?phx=1" class="signin" method="post"> <fieldset class="textbox"> <label class="username"> <span>Username or email</span> <input type="text" value="" name="session[username_or_email]" autocomplete="on"/> </label> <label class="password"> <span>Password</span> <input type="password" value="" name="session[password]"/> </label> </fieldset> <fieldset class="subchck"> <label class="remember"> <input type="checkbox" value="1" name="remember_me"/> <span>Remember me</span> </label> <button type="submit" class="submit button">Sign in</button> </fieldset> <input type="hidden" name="return_to_ssl" value="true"/> <input type="hidden" name="redirect_after_login" value=""/> <p> <a class="forgot" href="/web/20110706040059/https://twitter.com/account/resend_password">Forgot password?</a><br/> <a class="mobile" href="/web/20110706040059/https://twitter.com/account/complete">Already using Twitter via SMS?</a> </p> </form> </div> </div> </div> </div> </div> <div id="message-drawer"></div> </div> <div id="under-bar"></div> </div> <div id="page-outer"> <div id="front-container"> <div class="leftside "> <h1><span>Twitter</span></h1> <h2><a href="/web/20110706040059/https://twitter.com/#!/toptweets" tabindex="-1">Follow your interests</a></h2> <p>Instant updates from your friends, industry experts, favorite celebrities, and what’s happening around the world.</p> </div> <div class="rightside"> <div class="gradient"></div> <div class="front-signin"> <form action="https://web.archive.org/web/20110706040059/https://twitter.com/sessions?phx=1" class="signin" method="post"> <fieldset class="textbox"> <div class="holding username"> <input type="text" value="" name="session[username_or_email]" title="Username or email" autocomplete="on"/> <span class="holder">Username</span> </div> <div class="holding password"> <input type="password" value="" name="session[password]" title="Password"/> <span class="holder">Password</span> </div> </fieldset> <fieldset class="subchck"> <label class="remember"> <input type="checkbox" value="1" name="remember_me"/> <span>Remember me</span> </label> <button type="submit" class="submit button">Sign in</button> </fieldset> <input type="hidden" name="return_to_ssl" value="true"/> <input type="hidden" name="redirect_after_login" value=""/> <p> <a class="forgot" href="/web/20110706040059/https://twitter.com/account/resend_password">Forgot it?</a> </p> </form> </div> <div class="front-signup "> <h3>New to Twitter? <em>Join today!</em></h3> <form action="https://web.archive.org/web/20110706040059/https://twitter.com/signup" class="signup signup-btn" method="post"> <div class="holding name"> <input type="text" autocomplete="off" value="" name="user[name]" maxlength="20"/> <span class="holder">Full name</span> </div> <div class="holding email"> <input type="text" autocomplete="off" value="" name="user[email]"/> <span class="holder">Email</span> </div> <div class="holding password"> <input type="password" value="" name="user[user_password]"/> <span class="holder">Password</span> </div> <input type="hidden" value="front" name="context"/> <input type="submit" class="promotional submit button" value="Sign up"/> </form> </div> <script type="text/javascript" id="banned_passwords"> twttr.BANNED_PASSWORDS = []; (function() { var r = ["000000","111111","11111111","112233","121212","123123","123456","1234567","12345678","123456789","131313","232323","654321","666666","696969","777777","7777777","8675309","987654","nnnnnn","nop123","nop123","nopqrs","noteglh","npprff","npprff14","npgvba","nyoreg","nyoregb","nyrkvf","nyrwnaqen","nyrwnaqeb","nznaqn","nzngrhe","nzrevpn","naqern","naqerj","natryn","natryf","navzny","nagubal","ncbyyb","nccyrf","nefrany","neguhe","nfqstu","nfqstu","nfuyrl","nffubyr","nhthfg","nhfgva","onqobl","onvyrl","onanan","onearl","onfronyy","ongzna","orngevm","ornire","ornivf","ovtpbpx","ovtqnqql","ovtqvpx","ovtqbt","ovtgvgf","oveqvr","ovgpurf","ovgrzr","oynmre","oybaqr","oybaqrf","oybjwbo","oybjzr","obaq007","obavgn","obaavr","obbobb","obbtre","obbzre","obfgba","oenaqba","oenaql","oenirf","oenmvy","oebapb","oebapbf","ohyyqbt","ohfgre","ohggre","ohggurnq","pnyiva","pnzneb","pnzreba","pnanqn","pncgnva","pneybf","pnegre","pnfcre","puneyrf","puneyvr","purrfr","puryfrn","purfgre","puvpntb","puvpxra","pbpnpbyn","pbssrr","pbyyrtr","pbzcnd","pbzchgre","pbafhzre","pbbxvr","pbbcre","pbeirggr","pbjobl","pbjoblf","pelfgny","phzzvat","phzfubg","qnxbgn","qnyynf","qnavry","qnavryyr","qroovr","qraavf","qvnoyb","qvnzbaq","qbpgbe","qbttvr","qbycuva","qbycuvaf","qbanyq","qentba","qernzf","qevire","rntyr1","rntyrf","rqjneq","rvafgrva","rebgvp","rfgeryyn","rkgerzr","snypba","sraqre","sreenev","sveroveq","svfuvat","sybevqn","sybjre","sylref","sbbgonyy","sberire","serqql","serrqbz","shpxrq","shpxre","shpxvat","shpxzr","shpxlbh","tnaqnys","tngrjnl","tngbef","trzvav","trbetr","tvnagf","tvatre","tvmzbqb","tbyqra","tbysre","tbeqba","tertbel","thvgne","thaare","unzzre","unaanu","uneqpber","uneyrl","urngure","uryczr","uragnv","ubpxrl","ubbgref","ubearl","ubgqbt","uhagre","uhagvat","vprzna","vybirlbh","vagrearg","vjnagh","wnpxvr","wnpxfba","wnthne","wnfzvar","wnfcre","wraavsre","wrerzl","wrffvpn","wbuaal","wbuafba","wbeqna","wbfrcu","wbfuhn","whavbe","whfgva","xvyyre","xavtug","ynqvrf","ynxref","ynhera","yrngure","yrtraq","yrgzrva","yrgzrva","yvggyr","ybaqba","ybiref","znqqbt","znqvfba","znttvr","zntahz","znevar","znevcbfn","zneyobeb","znegva","zneiva","znfgre","zngevk","znggurj","znirevpx","znkjryy","zryvffn","zrzore","zreprqrf","zreyva","zvpunry","zvpuryyr","zvpxrl","zvqavtug","zvyyre","zvfgerff","zbavpn","zbaxrl","zbaxrl","zbafgre","zbetna","zbgure","zbhagnva","zhssva","zhecul","zhfgnat","anxrq","anfpne","anguna","anhtugl","app1701","arjlbex","avpubynf","avpbyr","avccyr","avccyrf","byvire","benatr","cnpxref","cnagure","cnagvrf","cnexre","cnffjbeq","cnffjbeq","cnffjbeq1","cnffjbeq12","cnffjbeq123","cngevpx","crnpurf","crnahg","crccre","cunagbz","cubravk","cynlre","cyrnfr","cbbxvr","cbefpur","cevapr","cevaprff","cevingr","checyr","chffvrf","dnmjfk","djregl","djreglhv","enoovg","enpury","enpvat","envqref","envaobj","enatre","enatref","erorppn","erqfxvaf","erqfbk","erqjvatf","evpuneq","eboreg","eboregb","ebpxrg","ebfrohq","ehaare","ehfu2112","ehffvn","fnznagun","fnzzl","fnzfba","fnaqen","fnghea","fpbbol","fpbbgre","fpbecvb","fpbecvba","fronfgvna","frperg","frkfrk","funqbj","funaaba","funirq","fvreen","fvyire","fxvccl","fynlre","fzbxrl","fabbcl","fbppre","fbcuvr","fcnaxl","fcnexl","fcvqre","fdhveg","fevavinf","fgnegerx","fgnejnef","fgrryref","fgrira","fgvpxl","fghcvq","fhpprff","fhpxvg","fhzzre","fhafuvar","fhcrezna","fhesre","fjvzzvat","flqarl","grdhvreb","gnlybe","graavf","grerfn","grfgre","grfgvat","gurzna","gubznf","guhaqre","guk1138","gvssnal","gvtref","gvttre","gbzpng","gbctha","gblbgn","genivf","gebhoyr","gehfgab1","ghpxre","ghegyr","gjvggre","havgrq","intvan","ivpgbe","ivpgbevn","ivxvat","ibbqbb","iblntre","jnygre","jneevbe","jrypbzr","jungrire","jvyyvnz","jvyyvr","jvyfba","jvaare","jvafgba","jvagre","jvmneq","knivre","kkkkkk","kkkkkkkk","lnznun","lnaxrr","lnaxrrf","lryybj","mkpioa","mkpioaz","mmmmmm"]; for (var i = r.length - 1; i >= 0; i--){ twttr.BANNED_PASSWORDS.push(r[i].replace(/[a-z]/gi, function(l){ var c = l.charCodeAt(0), n = c + 13; if((c<=90 && n>90) || (n>122)) { n -= 26; } return String.fromCharCode(n); })); }; })(); </script> <div id="front-signup-inline"> <h3>You’re almost there…</h3> <a class="dismiss" href="#">×</a> <div class="step2-content"> <form method="POST" action="https://web.archive.org/web/20110706040059/https://twitter.com/account/create" class="signup"> <input type="hidden" value="" name="authenticity_token"/> <input type="hidden" name="user[discoverable_by_email]" value="1"/> <input type="hidden" name="user[send_email_newsletter]" value="1"/> <p class="wepicked"> <em>We’ve picked a username for you.</em><br/>You can change it now, or anytime later. </p> <div class="holding username"> <input type="text" autocomplete="off" value="" name="user[screen_name]" maxlength="15" aria-required="true"/> <span class="holder">Username</span> <div class="suggestions">Other suggestions: <ul></ul></div> </div> <div class="tos"> <div class="scroller"> <p class="header">By clicking the button, you agree to the terms below:</p> <div class="import"> </div> </div> <p class="more-tos"><a href="/web/20110706040059/https://twitter.com/tos" target="_blank">Read in new window</a></p> </div> <div class="captcha-container"> <div class="holding captcha"></div> <div class="embed"></div> </div> <input type="submit" class="promotional submit button" value="Create my account"/> </form> </div> <p class="privacy">Others will be able to find you by name, username or email. Your email will not be shown publicly. You can change your privacy settings at any time.</p> </div> <div id="front-signup-inline-overlay" class="twttr-dialog-container-modal"></div> </div> <div class="search "> <form action="/web/20110706040059/https://twitter.com/#!/search" method="GET"> <div class="holding"> <input value="" name="q" type="text" autocomplete="off"/> <span class="holder">Search Twitter</span> </div> <div class="glass button submit"><i></i></div> </form> </div> <div class="radial"> <div class="shadow"></div> <ul></ul> </div> <div class="bottompart "> <div class="language inline-list"> <form action="" method="POST"> <input type="hidden" name="lang" value=""/> <strong>Languages</strong> </form> </div> <div class="footer inline-list"> <ul> <li><a href="/web/20110706040059/https://twitter.com/about">About</a><span class="dot"> ·</span></li> <li><a href="https://web.archive.org/web/20110706040059/http://support.twitter.com/">Help</a><span class="dot"> ·</span></li> <li><a href="https://web.archive.org/web/20110706040059/http://blog.twitter.com/OK">Blog</a><span class="dot"> ·</span></li> <li><a href="https://web.archive.org/web/20110706040059/http://status.twitter.com/">Status</a><span class="dot"> ·</span></li> <li><a href="">Jobs</a><span class="dot"> ·</span></li> <li><a href="/web/20110706040059/https://twitter.com/tos">Terms</a><span class="dot"> ·</span></li> <li><a href="/web/20110706040059/https://twitter.com/privacy">Privacy</a><span class="dot"> ·</span></li> <li><a href="//web.archive.org/web/20110706040059/https://business.twitter.com/advertise/start">Advertisers</a><span class="dot"> ·</span></li> <li><a href="//web.archive.org/web/20110706040059/https://business.twitter.com/">Businesses</a><span class="dot"> ·</span></li> <li><a href="https://web.archive.org/web/20110706040059/http://media.twitter.com/">Media</a><span class="dot"> ·</span></li> <li><a href="//web.archive.org/web/20110706040059/https://dev.twitter.com/">Developers</a><span class="dot"> ·</span></li> <li><a href="/web/20110706040059/https://twitter.com/about/resources">Resources</a><span class="dot"> ·</span></li> <li><span class="copyright">© 2011 Twitter</span><li> <ul> </div> </div> </div> <div id="page-container" class=""> <div> </div> </div> </div> <div id="message-notifications"></div> </div> <div id="flash-message-storage" style="display:none"></div> <script type="text/javascript"> </script> <script type="text/javascript">WATCH('loadrunner', function() { (function(p,D){var Z=p.attachEvent&&!p.opera,K=D.getElementsByTagName("script"),I=0,g,n=D.createElement("script"),P={},V={},C,U,G={},R=p.using,E=p.provide,J=p.define,e=p.loadrunner;for(var o=0,k;k=K[o];o++){if(k.src.match(/loadrunner\.js(\?|#|$)/)){g=k;break}}function X(s){for(var r=1,t;t=arguments[r];r++){for(var q in t){s[q]=t[q]}}return s}function M(i){return Array.prototype.slice.call(i)}var W=Array.isArray||function(i){return i.constructor==Array};function Q(q,r){for(var s=0,t;t=q[s];s++){if(r==t){return s}}return -1}function l(){var s=M(arguments),t=[];for(var r=0,q=s.length;r<q;r++){if(s[r].length>0){t.push(s[r].replace(/\/$/,""))}}return t.join("/")}function j(s,r,i){var q=r.split("/"),t=s;while(q.length>1){t=t[q.shift()]={}}t[q[0]]=i}function f(){}f.prototype.then=function(i){var r=this,q;if(!this.started){this.started=true;if(this.id&&(q=b(this.id))){A(q,function(){r.start()})}else{this.start()}}if(this.completed){i.apply(p,this.results)}else{this.callbacks=this.callbacks||[];this.callbacks.push(i)}return this};f.prototype.start=function(){};f.prototype.complete=function(){if(!this.completed){this.results=M(arguments);this.completed=true;if(this.callbacks){for(var r=0,q;q=this.callbacks[r];r++){q.apply(p,this.results)}}}};function c(q,i){this.id=this.path=q;this.force=!!i}c.loaded=[];c.prototype=new f;c.prototype.start=function(){var i=this,q;if(q=P[this.id]){q.then(function(){i.loaded()})}else{if(!this.force&&Q(c.loaded,this.id)>-1){this.loaded()}else{this.load()}}return this};c.prototype.load=function(){var q=this;P[this.id]=q;var i=n.cloneNode(false);this.scriptId=i.id="LR"+ ++I;i.type="text/javascript";i.async=true;i.onerror=function(){throw new Error(q.path+" not loaded")};i.onreadystatechange=i.onload=function(r){r=p.event||r;if(r.type=="load"||Q(["loaded","complete"],this.readyState)>-1){this.onreadystatechange=null;q.loaded()}};i.src=this.path;U=this;K[0].parentNode.insertBefore(i,K[0]);U=null;G[i.id]=this};c.prototype.loaded=function(){this.complete()};c.prototype.complete=function(){if(Q(c.loaded,this.id)==-1){c.loaded.push(this.id)}delete P[this.id];f.prototype.complete.apply(this,arguments)};function a(q,i){this.id=q;this.body=i;if(typeof i=="undefined"){this.path=this.resolvePath(q)}}a.exports={};a.prototype=new c;a.prototype.resolvePath=function(i){return l(A.path,i+".js")};a.prototype.start=function(){var i,q,r=this,s;if(this.body){this.execute()}else{if(i=a.exports[this.id]){this.exp(i)}else{if(q=V[this.id]){q.then(function(t){r.exp(t)})}else{V[this.id]=this;this.load()}}}};a.prototype.loaded=function(){var q,i,r=this;if(!Z){q=C;C=null;q.id=q.id||this.id;q.then(function(s){r.exp(s)})}else{if(i=a.exports[this.id]){this.exp(i)}else{if(q=V[this.id]){q.then(function(s){r.exp(s)})}}}};a.prototype.complete=function(){delete V[this.id];c.prototype.complete.apply(this,arguments)};a.prototype.execute=function(){var i=this;if(typeof this.body=="object"){this.exp(this.body)}else{if(typeof this.body=="function"){this.body(function(q){i.exp(q)})}}};a.prototype.exp=function(i){this.complete(this.exports=a.exports[this.id]=i)};function B(q,i){this.deps=q;this.collectResults=i;if(this.deps.length==0){this.complete()}}B.prototype=new f;B.prototype.start=function(){var s=this;function q(){var v=[];if(s.collectResults){v[0]={}}for(var u=0,w;w=s.deps[u];u++){if(!w.completed){return }if(w.results.length>0){if(s.collectResults){if(w instanceof S){X(v[0],w.results[0])}else{j(v[0],w.id,w.results[0])}}else{v=v.concat(w.results)}}}s.complete.apply(s,v)}for(var r=0,t;t=this.deps[r];r++){t.then(q)}return this};function S(q,i){this.deps=q;this.collectResults=i}S.prototype=new f;S.prototype.start=function(){var s=this,q=0,i=[];if(s.collectResults){i[0]={}}(function r(){var t=s.deps[q++];if(t){t.then(function(u){if(t.results.length>0){if(s.collectResults){if(t instanceof S){X(i[0],t.results[0])}else{j(i[0],t.id,t.results[0])}}else{i.push(t.results[0])}}r()})}else{s.complete.apply(s,i)}}());return this};function T(){for(var q in K){if(K[q].readyState=="interactive"){return G[K[q].id]}}}function L(q,i){var r;if(!q&&Z){r=U||T()}if(r){delete G[r.scriptId];r.body=i;r.execute()}else{C=r=new a(q,i);V[r.id]=r}return r}function N(){var r=M(arguments),q,i;if(typeof r[0]=="string"){q=r.shift()}i=r.shift();return L(q,i)}function h(t,q){var s=q.id||"";var r=s.split("/");r.pop();var i=r.join("/");return t.replace(/^\./,i)}function Y(t,v){var r=[];function s(i){return a.exports[h(i,v)]}for(var u=0,q=t.length;u<q;u++){if(t[u]=="require"){r.push(s);continue}if(t[u]=="exports"){v.exports=v.exports||{};r.push(v.exports);continue}r.push(s(t[u]))}return r}function O(){var q=M(arguments),r=[],s,i;if(typeof q[0]=="string"){s=q.shift()}if(W(q[0])){r=q.shift()}i=q.shift();return L(s,function(u){var y=this,x=[];function w(){var AA=Y(M(r),y),AB;if(typeof i=="function"){AB=i.apply(y,AA)}else{AB=i}if(typeof AB=="undefined"){AB=y.exports}u(AB)}for(var v=0,t=r.length;v<t;v++){var z=r[v];if(Q(["require","exports"],z)==-1){x.push(h(z,y))}}if(x.length>0){A.apply(this,x.concat(w))}else{w()}})}O.amd={};function A(){var r=M(arguments),s,q;if(typeof r[r.length-1]=="boolean"){q=r.pop()}if(typeof r[r.length-1]=="function"){s=r.pop()}var i=new B(F(r,q),q);if(s){i.then(s)}return i}function F(u,r){var q=[];for(var s=0,t;t=u[s];s++){if(typeof t=="string"){t=m(t)}if(W(t)){t=new S(F(t,r),r)}q.push(t)}return q}function m(w){var q,v;for(var s=0,u;u=A.matchers[s];s++){var t=u[0],r=u[1];if(q=w.match(t)){return r(w)}}throw new Error(w+" was not recognised by loader")}var d=function(i){return i(A,N,d,define)};function H(){p.using=R;p.provide=E;p.define=J;p.loadrunner=e;return d}d.Script=c;d.Module=a;d.Collection=B;d.Sequence=S;d.Dependency=f;d.noConflict=H;p.loadrunner=d;p.using=A;p.provide=N;p.define=O;A.path="";A.matchers=[];A.matchers.add=function(q,i){this.unshift([q,i])};A.matchers.add(/(^script!|\.js$)/,function(q){var i=new c(q.replace(/^\$/,A.path.replace(/\/$/,"")+"/").replace(/^script!/,""),false);i.id=q;return i});A.matchers.add(/^[a-zA-Z0-9_\-\/]+$/,function(i){return new a(i)});A.bundles=[];function b(r){for(var q=0;q<A.bundles.length;q++){for(var i in A.bundles[q]){if(Q(A.bundles[q][i],r)>-1){return i}}}}if(g){A.path=g.getAttribute("data-path")||g.src.split(/loadrunner\.js/)[0]||"";if(main=g.getAttribute("data-main")){A.apply(p,main.split(/\s*,\s*/)).then(function(){})}}}(this,document)); loadrunner(function(D,C,B,E){function A(F){this.id=this.path=F}A.inProgress=[];A.done=[];A.prototype=new B.Dependency;A.prototype.start=function(){var F=this,G;if(G=A.done[this.id]){this.complete(G.result)}else{if(G=A.inProgress[this.id]){G.then(function(){F.complete(G.result)})}else{A.inProgress[this.id]=this;this.load()}}};A.prototype.load=function(){var H,F=this;if(window.XMLHttpRequest){H=new window.XMLHttpRequest()}else{try{H=new window.ActiveXObject("Microsoft.XMLHTTP")}catch(G){return new Error("XHR not found.")}}H.onreadystatechange=function(){if(H.readyState==4){F.result=H.responseText;A.done[F.id]=F;delete A.inProgress[F.id];F.complete(F.result)}};H.open("GET",this.path,true);H.send(null)};D.matchers.add(/^json!/,function(F){return new A(F.substring(5))})}); loadrunner(function(F,E,A,G){function B(H,I){for(var J=0,K;K=H[J];J++){if(I==K){return J}}return -1}function D(I){var H;if(I.charAt(0)==">"){I=I.substring(1)}if(H=C.inProgress[I]){H.complete();delete C.inProgress[I]}C.done.push(I)}var C=function(H){this.id=H};C.inProgress=[];C.done=[];C.prototype=new A.Dependency;C.prototype.start=function(){var I,H=this;if(B(C.done,this.id)!=-1){this.complete()}else{if(I=C.inProgress[this.id]){I.then(function(){H.complete()})}else{C.inProgress[this.id]=this}}};F.matchers.add(/^>/,function(H){return new C(H.substring(1))});window.signal=D}); using.path = 'phoenix/js'; });</script><script>WATCH.end('loadrunner');</script> <script type="text/javascript">WATCH('javascript_logged_out', function() { (function(){ function yascrib(eName, more) { var log = [], more = more || {}; more.event_name = eName; for (var k in more){ log.push('"'+k+'":"'+more[k]+'"'); }; (new Image()).src = 'https://web.archive.org/web/20110706040059/https://scribe.twitter.com/scribe?category=client_event&log='+encodeURIComponent('{'+log.join(',')+'}')+'&ts='+(new Date()).getTime(); } function el(i,t) { var d = i.tagName ? i : document.getElementById(i); return t ? d.getElementsByTagName(t) : d; } function byCls(a,c,f) { for (var i = a.length - 1; i >= 0; i--){ var k = a[i].className, m = k && k.match(c); if(m) { f.call(a[i], m[0]) } }; } function rmCls(d,c) { return d.className = d.className.replace(' '+c,''); } function addCls(d,c) { return d.className = rmCls(d,c)+' '+c; } if(!location.href.match(/#!\/./)) { var b = document.body; rmCls(b, 'user-style-twttr loading-body'); addCls(b, 'front-page'); yascrib("web:front:::impression", {context: 'front'}); window._yascribFrontImpression = true; } var divs = el('front-container', 'div'), c = 'hasome'; byCls(divs, 'holding', function() { var div = this, inp = el(div, 'input')[0], spn = el(div,'span')[0]; if(inp && spn) { spn.onclick = function() { inp.focus(); }; inp.onblur = function() { if(!inp.value.length) rmCls(div,c); } inp.onkeydown = function(e) { setTimeout(function() { ((e&&e.keyCode==8) || inp.value.length) ? addCls(div,c) : rmCls(div,c); },0); }; } }); window.setInterval(function() { byCls(divs, 'holding', function() { var f=el(this, 'input')[0]; if(f && f.value.length) addCls(this,c); }); }, 1111); var eventMap={signin:'web:front:login_callout:form:login_click', signup:'web:front:signup_callout:form:signup_click', search:'web:front:main:search_field:search', language:'web:front:footer:language_selector:select'}; byCls(divs, 'signin|signup|search|language', function(k) { var f = el(this, 'form'), evt = eventMap[k]; if(f && f[0]) { f[0].onsubmit = function() { if(!el('doc').className.match('route-front')){ yascrib(evt); } } } }); }()); });</script> <script type="text/javascript">WATCH.end('javascript_logged_out');</script> <script type="text/javascript">WATCH('javascript_includes', function() { twttr.session = twttr.session || {}; twttr.loggedIn = false; twttr.appStartTime = document.startTime; twttr.session.impressionId = twttr.appStartTime + Math.random(); twttr.geo = twttr.geo || {}; twttr.bundles = {"phoenix":"https:\/\/web.archive.org\/web\/20110706040059\/https:\/\/si0.twimg.com\/a\/1309899422\/javascripts\/phoenix.bundle.js","phoenix_plugins":"https:\/\/web.archive.org\/web\/20110706040059\/https:\/\/si0.twimg.com\/a\/1309899422\/javascripts\/phoenix_plugins.bundle.js","api":"https:\/\/web.archive.org\/web\/20110706040059\/https:\/\/si0.twimg.com\/a\/1309899422\/javascripts\/api.bundle.js","base":"https:\/\/web.archive.org\/web\/20110706040059\/https:\/\/si0.twimg.com\/sticky\/base.21.bundle.js"}; twttr.assetsFromCdn = true; if(twttr.bootTimings && twttr.assetsFromCdn) { twttr.bootTimings.timeBundles(twttr.bundles); } provide('boot/bootstrap_data', function(exports) { var deps = []; // Note: we include window.location.search here so any query string parameters given to load the page are passed // along to /account/bootstrap_data.js. In particular, we want things like ?lang=ja to propagate through to the // request for bootstrap data. deps.push('json!/account/bootstrap_data' + window.location.search + (window.location.search ? '&' : '?') + 'r=' + Math.random()); // JSON calls require JSON.parse, which we're supplying in base bundle if (typeof JSON === 'undefined') { deps.push('>base_bundle_evaled'); } twttr.bootTimings && twttr.bootTimings.add('bootstrap_data fetch start'); using(deps, function(data) { twttr.bootTimings && twttr.bootTimings.add('bootstrap_data fetch finish'); var bootstrap_data = JSON.parse(data); exports(bootstrap_data); }); }); using( '>allCurrentUserDataLoaded', '>request_cache_seeded', '>base_bundle_evaled', '>phoenix_plugins_bundle_evaled', '>phoenix_bundle_evaled', '>languageData', function () { twttr.bootTimings && twttr.bootTimings.add('setup start'); jQuery.ready(); twttr.setup(); twttr.bootTimings && twttr.bootTimings.add('setup finish'); signal('>setupComplete'); } ); twttr.placeDataPrefix = "https://web.archive.org/web/20110706040059/http://geo.l3.twitter.com/places/autocomplete_places-"; function initAPI() { twttr.anywhere.api.initialize(); twttr.API = {}; twttr.aug(twttr.API, twttr.anywhere.api.models); twttr.aug(twttr.API, { globalEvents: twttr.anywhere.api.globalEvents }); twttr.API.setConfig = twttr.anywhere.api.updateConfig; twttr.API.getConfig = function () { return twttr.anywhere.api.config; }; if (!twttr.API.util) { twttr.API.util = {}; } twttr.aug(twttr.API.util, twttr.anywhere.api.util); if (!twttr.API._requestCache) { twttr.API._requestCache = twttr.anywhere.api.cache; } twttr.API.setConfig({ cacheObjects: true, includeEntities: true }); twttr.extendAPI(); } function initCurrentUser() { if (twttr.loggedIn) { twttr.bootTimings && twttr.bootTimings.add('initCurrentUser start'); using('boot/bootstrap_data', '>request_cache_seeded', function (bootstrapData) { twttr.API.User.current({ error: function() { // Not logged in anymore; refresh the page window.location.reload(true); }, success: function(currentUser) { twttr.currentUser = currentUser; for (var propName in bootstrapData.userProperties) { twttr.currentUser.sync(propName, bootstrapData.userProperties[propName] || false); } twttr.bootTimings && twttr.bootTimings.add('initCurrentUser finish'); signal('>allCurrentUserDataLoaded'); } }); }); } else { signal('>allCurrentUserDataLoaded'); } }; twttr.proto = window.location.protocol.match(/s\:$/) ? 'https' : 'http'; twttr.isSSL = function () { return twttr.proto === 'https'; }; twttr.domains = { local: 'twitter.com', remote: 'api.twitter.com', upload: 'upload.twitter.com' }; var match = window.location.hostname.match(/^(staging\d+\.[a-zA-Z0-9_]*?)\.twitter\.com$/i); if (match) { twttr.domains.local = match[1] + '.twitter.com'; twttr.domains.remote = 'api-' + match[1] + '.twitter.com'; twttr.domains.upload = twttr.domains.remote; } if (document.location.hostname === "localhost.twitter.com") { twttr.domains.local = 'localhost.twitter.com:3000'; twttr.domains.remote = 'api.localhost.twitter.com:3000'; twttr.domains.upload = twttr.domains.remote; } twttr.hosts = { local: twttr.proto + "://" + twttr.domains.local, remote: twttr.proto + "://" + twttr.domains.remote, upload: twttr.proto + "://" + twttr.domains.upload }; var pReceiverURL = twttr.hosts.remote + '/receiver.html'; function createIframe(url, complete) { var frag = document.createElement('div'); frag.innerHTML = '<iframe tabindex="-1" role="presentation" style="position:absolute;top:-9999px;" src="' + url + '"></iframe>'; var iframe = frag.firstChild; var fnComplete = function() { complete.apply(iframe, arguments); }; iframe.addEventListener ? iframe.addEventListener('load', fnComplete, false) : iframe.attachEvent('onload', fnComplete); // Avoid "operation aborted" error in IE that can be caused by // appending a new element to the body via body.appendChild // by a script that is not a direct descendant of the <body>. document.body.insertBefore(iframe, document.body.firstChild); return iframe; } twttr.createIframe = createIframe; (function() { var bundleFetchStartTime = new Date(); using(twttr.bundles.base, function() { signal('>base_bundle_evaled'); }); using( '>base_bundle_evaled', twttr.bundles.api, twttr.bundles.phoenix_plugins, twttr.bundles.phoenix, function() { var bundleFetchEndTime = new Date(); signal('>allCodeLoaded'); using('boot/bootstrap_data', '>phoenix_bundle_evaled', function() { twttr.util.Profiler.logPreviousEvent('twttr.bundles fetched', bundleFetchStartTime, bundleFetchEndTime); }); } ); })(); using('>base_bundle_evaled', '>api_bundle_evaled', function() { twttr.anywhere.remote = {}; initAPI(); signal('>api_ready'); using('>request_cache_seeded', function() { initCurrentUser(); }); }); using('boot/bootstrap_data', function(data) { twttr.bootTimings && twttr.bootTimings.add('bootstrap_data process start'); twttr.payload = data.payload; signal('>payload'); twttr.remoteIP = data.remoteIP; twttr.requestFullCity = data.requestFullCity; twttr.recentPlaces = data.recentPlaces; twttr.cdnBase = data.cdnBase; if(data.boomr) { using(data.boomr, function() { delete BOOMR.plugins.RT; BOOMR.init({ allow_ssl: true, autorun: false, user_ip: data.remoteIP, BW: { base_url: twttr.hosts.local + '/images/boomerang/' } }); using('>setupComplete', function() { BOOMR.page_ready(); BOOMR.subscribe('before_beacon', function(o) { if(!o.bw) { return; } var bandwidthKBytes = parseInt(o.bw / 1024, 10); var bandwidthErrorPercent = parseInt((o.bw_err * 100) / o.bw, 10); var latencyErrorPercent = parseInt((o.lat_err * 100) / o.lat, 10); scribble('measurement', { load_time_ms: o.t_done, bandwidth_kbytes: bandwidthKBytes, bandwidth_error_percent: bandwidthErrorPercent, latency_ms: o.lat, latency_error_percent: latencyErrorPercent, product: 'webclient' }, 'boomerang'); if(twttr.util.params()['boomr']) { twttr.showMessage('Bandwidth: ' + twttr.util.addCommas(bandwidthKBytes) + ' KB/s ± ' + bandwidthErrorPercent + '%<br />Latency: ' + o.lat + ' ms ± ' + o.lat_err, true); } }); }); }); } if (data.globalConfig) { twttr.globalConfig = data.globalConfig; } if(data.currentUser) { twttr.currentUserScreenName = data.currentUserScreenName; } if (data.frontSuggestedUsers) { twttr.frontSuggestedUsers = data.frontSuggestedUsers; } if (data.isAdmin) { twttr.rights = data.adminRights twttr.isAdmin = true; } if (data.isPreflight) { twttr.isPreflight = data.isPreflight; } using('>base_bundle_evaled', function() { $(function() { twttr.isNarrow = data.isNarrow; if(twttr.isNarrow) { $(document.body).addClass('narrow'); } else { $(document.body).removeClass('narrow'); } }); }); if(data.pageLocale) { twttr.pageLocale = data.pageLocale; } var i18nDeferDependencies = ['>base_bundle_evaled', '>phoenix_bundle_evaled', '>languageData']; if(data.pageLocaleJS) { i18nDeferDependencies.push('>setupComplete'); // Need to load language data twttr.bootTimings && twttr.bootTimings.add('i18n fetch start'); using(data.pageLocaleJS, function() { twttr.bootTimings && twttr.bootTimings.add('i18n fetch finish'); signal('>languageData'); }); } else { signal('>languageData'); } if(data.pageLocaleClass) { using('>base_bundle_evaled', function() { $(function() { $(document.body).addClass(data.pageLocaleClass); }); }); } if(data.languages) { twttr.languages = data.languages; } using(i18nDeferDependencies, function() { twttr.bootTimings && twttr.bootTimings.add('i18n deferred start'); var _ = window._; if(twttr.pageLocale === 'en') { _ = function(str) { return str; } } // Update any elements with the i18n-deferred class, internationalizing the string from their // data-i18n-label attribute. var i18nLabelAttr = 'data-i18n-label'; $('.i18n-deferred').each(function(i, elem) { var $elem = $(elem); $elem.html(_($elem.attr(i18nLabelAttr))); $elem.removeAttr(i18nLabelAttr); $elem.removeClass('i18n-deferred'); }); // Un-hide the navigation bar at the top, now that it has labels $('#global-nav').css('visibility', 'visible'); // Set the placeholder text for the search field var $searchQueryField = $('#search-query'); $searchQueryField.attr('placeholder', _($searchQueryField.attr(i18nLabelAttr))); $searchQueryField.removeAttr(i18nLabelAttr); $('#top-stuff').css('visibility', 'visible'); twttr.bootTimings && twttr.bootTimings.add('i18n deferred finish'); }); using('>defaultViews', function() { if (data.flashNotice) { $('#flash-message-storage').html(data.flashNotice).show(); } }); using('>decider', function() { twttr.decider._updateFeatures(data.deciderFeatures); }); using('>ab_decider', function() { twttr.abdecider._updateExperiments(data.abBuckets); }); using('>api_ready', function() { twttr.API.setConfig({ postAuthenticityToken: data.postAuthenticityToken }); $('input.authenticity_token').val(data.postAuthenticityToken); var seedData = data.requestCacheSeedData; for (var i = 0, len = seedData.length; i < len; ++i) { var seedItem = seedData[i]; twttr.API._requestCache.inject(seedItem.api_request_name, seedItem.options, seedItem.json, 1); } signal('>request_cache_seeded'); if(data.homeTimelineFetchSize) { twttr.API.homeTimelineFetchSize = data.homeTimelineFetchSize; } }); twttr.bootTimings && twttr.bootTimings.add('bootstrap_data process finish'); }); createIframe(pReceiverURL, function() { var that = this; using('>base_bundle_evaled', '>api_bundle_evaled', function() { twttr.anywhere.remote.server = that; twttr.anywhere.api.util.RemoteRequest.flush(); }); }); });</script> <script>WATCH.end('javascript_includes');</script> <!--[if lte IE 6]> <script src="https://si0.twimg.com/a/1309899422/javascripts/phxie6.bundle.js"></script> <![endif]--> </body> </html> <!-- FILE ARCHIVED ON 04:00:59 Jul 06, 2011 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 05:28:16 Feb 10, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.971 exclusion.robots: 0.064 exclusion.robots.policy: 0.045 esindex: 0.014 cdx.remote: 10.474 LoadShardBlock: 1425.135 (6) PetaboxLoader3.datanode: 1291.193 (7) PetaboxLoader3.resolve: 104.909 (2) load_resource: 178.356 -->