react 0.2.5 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +189 -114
- package/doc/alternate-dsls.md +103 -0
- package/doc/default-simple.dot +19 -0
- package/doc/default-simple.dot.png +0 -0
- package/{lib → dsl}/chain.js +5 -3
- package/{lib → dsl}/fstr.js +17 -6
- package/{lib → dsl}/pcode.js +19 -8
- package/examples/chain-events1.js +28 -7
- package/examples/chain1.js +2 -2
- package/examples/default-events1.js +33 -6
- package/examples/default-log-events.js +43 -0
- package/examples/default-simple.js +45 -0
- package/examples/fstr-events1.js +4 -17
- package/examples/fstr1.js +3 -2
- package/examples/pcode1.js +2 -2
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia.html +675 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/37px-Wiktionary-logo-en.svg.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index(1).php +407 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index.php +130 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(1).php +3 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(10).php +89 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(2).php +23 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(3).php +153 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(4).php +6 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(5).php +3 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(6).php +96 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(7).php +16 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(8).php +14 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(9).php +123 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load.php +3 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/saved_resource +1 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
- package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's.html +1369 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/121911_DobbsDigest_Cover.jpg +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/160-x-600-IMU Impact 2012.jpg +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp= +68 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(1) +67 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(2) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(3) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(4) +8 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(5) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461 +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(1) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(2) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(3) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(4) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(5) +431 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(6) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(7) +431 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(8) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(9) +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad0St1Sz6Sq0V0Id20628317.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad2331174St1Sz225Sq20825250V0Id4.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/AdTracImage.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/FB.Share +9 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/addthis_widget.js +2 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/adlink_5242_1183459_0_154_AdId=2355270;BnId=1;itime=820768810;key=231400148+_database_231400148;link= +11 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/beacon.js +7 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/checkauth.js +18 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/colorbox.css +49 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/convert_data.js +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count(1).js +5 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.js +5 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.json +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dataflow1.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/def.html +126 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/defaults.css +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/detect.js +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/devtest_left-col-slim.css +30 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqus.js +327 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.css +34 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.js +8 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff(1).css +24 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff.css +24 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dobbs_disqus_logo.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.css +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.js +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqCfg.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqImg.js +12 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/embed.js +76 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/experience_util.js +636 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/fastbutton.html +11 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ga.js +51 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-facebook_sm.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-nav.css +798 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-twitter_sm.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h_s_code_remote.js +377 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hintbox_info.jpg +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hub.1326407570.html +3 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/in.js +76 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/insight.min.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.2.6.min.js +32 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.4.2.min.js +154 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-ui-1.8rc3.custom.min.js +374 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.colorbox-min.js +4 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.min.js +154 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/lib.js +212 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/like.html +214 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nodetag.js +18 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nonSecureAnonymousFramework +2913 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/p.json +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/plusone.js +32 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/popwindow.js +24 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/q4OyybLB0-A.js +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/quant.js +28 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/qxvZoiHdpAF.css +192 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/reply.html +160 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/rss.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/s.js +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource +421 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(1) +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(2) +341 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(3) +127 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/script84.js +113 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/scripts.js +30 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sh72.html +5 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shAutoloader.js +17 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAS3.js +59 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAppleScript.js +75 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushBash.js +59 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCSharp.js +65 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushColdFusion.js +100 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCpp.js +97 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCss.js +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDelphi.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDiff.js +41 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushErlang.js +52 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushGroovy.js +67 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJScript.js +52 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJava.js +57 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJavaFX.js +58 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPerl.js +72 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPhp.js +88 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPlain.js +33 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPowerShell.js +74 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPython.js +64 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushRuby.js +55 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSass.js +94 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushScala.js +51 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSql.js +66 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushVb.js +56 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushXml.js +69 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore.css +226 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCoreDefault.css +333 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore_new.js +17 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shLegacy.js +17 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shThemeDefault.css +117 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share-button-css +67 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_email_icon.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_print_icon.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sidebar.js +88 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/superfooter_936.css +186 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/svrGP.aspx +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/t.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thickbox.js +343 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thread.js +128 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/togglediv.js +15 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/tweet_button.html +3 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ubmtechweb_logo_sm.gif +0 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/upload.html +91 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/welcome.js +7 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widget74.css +1 -0
- package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widgets.js +40 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia.html +904 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/50px-Question_book-new.svg.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index(1).php +407 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index.php +130 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(1).php +3 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(10).php +89 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(2).php +23 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(3).php +153 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(4).php +6 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(5).php +3 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(6).php +96 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(7).php +16 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(8).php +14 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(9).php +123 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load.php +3 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/saved_resource +1 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
- package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS.html +113 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/6654_111305815684_541245684_2583159_5383291_n_normal.jpg +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/MARC3_normal.jpg +2 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/beacon.js +7 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46 +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46_normal.jpeg +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/clouds2_normal.jpg +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/count.json +1 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/def.html +126 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/defaults.css +1 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/disqus.js +327 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.css +1 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.js +66 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/embed.js +76 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/example1.dot +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/ga.js +51 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/get_num_replies.js +79 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/hub.1326407570.html +3 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/lib.js +212 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/quant.js +28 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/reply.html +160 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/t.gif +0 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/thread.js +128 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/tweet_button.1326407570.html +3 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/twitter_normal.jpg +2 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/upload.html +91 -0
- package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/widgets.js +40 -0
- package/lib/base-task.js +8 -6
- package/lib/cb-task.js +14 -1
- package/lib/core.js +43 -12
- package/lib/dsl.js +14 -6
- package/lib/event-manager.js +29 -16
- package/lib/finalcb-first-task.js +16 -10
- package/lib/finalcb-task.js +17 -10
- package/lib/input-parser.js +7 -3
- package/lib/log-events.js +71 -0
- package/lib/parse.js +6 -3
- package/lib/promise-task.js +89 -0
- package/lib/ret-task.js +1 -1
- package/lib/task.js +32 -23
- package/lib/track-tasks.js +117 -0
- package/lib/validate.js +3 -3
- package/lib/vcon.js +6 -3
- package/lib/when-task.js +81 -0
- package/package.json +5 -3
- package/promise-resolve.js +35 -0
- package/react.js +0 -4
- package/test/core-deferred.test.js +134 -0
- package/test/core-promised.test.js +132 -0
- package/test/core-when.test.js +84 -0
- package/test/core.test.js +108 -60
- package/test/dsl.test.js +58 -6
- package/test/{chain.test.js → dsl/chain.test.js} +85 -1
- package/test/{fstr.test.js → dsl/fstr.test.js} +13 -1
- package/test/{pcode.test.js → dsl/pcode.test.js} +128 -1
- package/test/exec-options.test.js +2 -1
- package/test/finalcb-task.test.js +6 -5
- package/test/input-parser.test.js +10 -6
- package/test/module-use.test.js +13 -199
- package/test/promise-auto-resolve.test.js +51 -0
- package/test/validate.test.js +5 -2
- package/test/vcon.test.js +13 -0
- package/lib/.#event-manager.js +0 -1
- package/oldExamples/analyze.js +0 -29
- package/oldExamples/analyze2.js +0 -29
- package/oldExamples/example10-dsl.js +0 -63
- package/oldExamples/example11.js +0 -62
- package/oldExamples/example12.js +0 -63
- package/oldExamples/example13.js +0 -63
- package/oldExamples/example14.js +0 -63
- package/oldExamples/example15.js +0 -75
- package/oldExamples/example6-ast.js +0 -47
- package/oldExamples/example6-dsl.js +0 -49
- package/oldExamples/example8-ast.js +0 -55
- package/oldExamples/example8-dsl.js +0 -53
- package/oldExamples/example9-ast.js +0 -58
- package/oldExamples/example9-dsl.js +0 -57
- package/oldExamples/function-str-ex1.js +0 -33
- package/oldExamples/function-str-ex2.js +0 -67
- package/oldExamples/trait1.js +0 -41
- package/oldExamples/trait2.js +0 -44
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
.mw-hierotable{border:0 !important;border-spacing:0 !important}.mw-hiero-outer{display:inline}.mw-hierotable td{border:0 !important;padding:0 !important;text-align:center !important;vertical-align:middle !important}@media print{ a.stub,a.new{color:#ba0000;text-decoration:none}#toc{border:1px solid #aaaaaa;background-color:#f9f9f9;padding:5px}.tocindent{margin-left:2em}.tocline{margin-bottom:0px} div.floatright{float:right;clear:right;position:relative;margin:0.5em 0 0.8em 1.4em}div.floatright p{font-style:italic}div.floatleft{float:left;clear:left;position:relative;margin:0.5em 1.4em 0.8em 0}div.floatleft p{font-style:italic}div.center{text-align:center} div.thumb{border:none;width:auto;margin-top:0.5em;margin-bottom:0.8em;background-color:transparent}div.thumbinner{border:1px solid #cccccc;padding:3px !important;background-color:White;font-size:94%;text-align:center;overflow:hidden}html .thumbimage{border:1px solid #cccccc}html .thumbcaption{border:none;text-align:left;line-height:1.4em;padding:3px !important;font-size:94%}div.magnify{display:none} div.tright{float:right;clear:right;margin:0.5em 0 0.8em 1.4em} div.tleft{float:left;clear:left;margin:0.5em 1.4em 0.8em 0}img.thumbborder{border:1px solid #dddddd} table.rimage{float:right;width:1pt;position:relative;margin-left:1em;margin-bottom:1em;text-align:center}body{background:White; color:Black;margin:0;padding:0}.noprint,div#jump-to-nav,div.top,div#column-one,#colophon,.editsection,.toctoggle,.tochidden,div#f-poweredbyico,div#f-copyrightico,li#viewcount,li#about,li#disclaimer,li#privacy,#footer-places,#mw-hidden-catlinks{ display:none}ul{list-style-type:square}#content{background:none;border:none ! important;padding:0 ! important;margin:0 ! important;direction:ltr}#footer{background :white;color :black;margin-top:1em;border-top:1px solid #AAA;direction:ltr}h1,h2,h3,h4,h5,h6{font-weight:bold}p,.documentDescription{margin:1em 0 ! important;line-height:1.2em}.tocindent p{margin:0 0 0 0 ! important}pre{border:1pt dashed black;white-space:pre;font-size:8pt;overflow:auto;padding:1em 0;background:white;color:black}table.listing,table.listing td{border:1pt solid black;border-collapse:collapse}a{color:Black !important;background:none !important;padding:0 !important}a:link,a:visited{color:#520;background:transparent;text-decoration:underline}#content a.external.text:after,#content a.external.autonumber:after{ content:" (" attr(href) ") "}#globalWrapper{width:100% !important;min-width:0 !important}#content{background:white;color:black}#column-content{margin:0 !important}#column-content #content{padding:1em;margin:0 !important} a,a.external,a.new,a.stub{color:black ! important;text-decoration:none ! important} a,a.external,a.new,a.stub{color:inherit ! important;text-decoration:inherit ! important}img{border:none;vertical-align:middle} span.texhtml{font-family:serif}#siteNotice{display:none} li.gallerybox{vertical-align:top;border:solid 2px white;display:-moz-inline-box;display:inline-block}ul.gallery,li.gallerybox{zoom:1;*display:inline}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:bold;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;margin:2px}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word} table.diff{background:white}td.diff-otitle{background:#ffffff}td.diff-ntitle{background:#ffffff}td.diff-addedline{background:#ccffcc;font-size:smaller;border:solid 2px black}td.diff-deletedline{background:#ffffaa;font-size:smaller;border:dotted 2px black}td.diff-context{background:#eeeeee;font-size:smaller}.diffchange{color:silver;font-weight:bold;text-decoration:underline} table.wikitable{margin:1em 1em 1em 0;border:1px #aaa solid;background:white;border-collapse:collapse}.wikitable th,.wikitable td{border:1px #aaa solid;padding:0.2em}.wikitable th{text-align:center;background:white;font-weight:bold}.wikitable caption{font-weight:bold}a.sortheader{margin:0px 0.3em} .wikitable,.thumb,img{page-break-inside:avoid}h2,h3,h4,h5,h6,h7{page-break-after:avoid}p{widows:3;orphans:3} .catlinks ul{display:inline;margin:0px;list-style:none;list-style-type:none;list-style-image:none;vertical-align:middle !ie}.catlinks li{display:inline-block;line-height:1.15em;padding:0 .4em;border-left:1px solid #AAA;margin:0.1em 0;zoom:1;display:inline !ie}.catlinks li:first-child{padding-left:.2em;border-left:none}}@media screen{ .mw-content-ltr{direction:ltr}.mw-content-rtl{direction:rtl} .sitedir-ltr textarea,.sitedir-ltr input{direction:ltr}.sitedir-rtl textarea,.sitedir-rtl input{direction:rtl} input[type="submit"],input[type="button"],input[type="reset"],input[type="file"]{direction:ltr} textarea[dir="ltr"],input[dir="ltr"]{direction:ltr}textarea[dir="rtl"],input[dir="rtl"]{direction:rtl} abbr,acronym,.explain{border-bottom:1px dotted black;cursor:help} .mw-plusminus-pos{color:#006400} .mw-plusminus-neg{color:#8b0000} .mw-plusminus-null{color:#aaa} .allpagesredirect,.redirect-in-category,.watchlistredir{font-style:italic} span.comment{font-style:italic}span.changedby{font-size:95%} .texvc{direction:ltr;unicode-bidi:embed}img.tex{vertical-align:middle}span.texhtml{font-family:serif} #wikiPreview.ontop{margin-bottom:1em} #editform,#toolbar,#wpTextbox1{clear:both}#toolbar img{cursor:pointer}div#mw-js-message{margin:1em 5%;padding:0.5em 2.5%;border:solid 1px #ddd;background-color:#fcfcfc} .editsection{float:right;margin-left:5px} .mw-content-ltr .editsection,.mw-content-rtl .mw-content-ltr .editsection{float:right}.mw-content-rtl .editsection,.mw-content-ltr .mw-content-rtl .editsection{float:left} h2#filehistory{clear:both}table.filehistory th,table.filehistory td{vertical-align:top}table.filehistory th{text-align:left}table.filehistory td.mw-imagepage-filesize,table.filehistory th.mw-imagepage-filesize{white-space:nowrap}table.filehistory td.filehistory-selected{font-weight:bold} li span.deleted,span.history-deleted{text-decoration:line-through;color:#888;font-style:italic} .not-patrolled{background-color:#ffa}.unpatrolled{font-weight:bold;color:red}div.patrollink{font-size:75%;text-align:right} td.mw-label{text-align:right}td.mw-input{text-align:left}td.mw-submit{text-align:left}td.mw-label{vertical-align:top}.prefsection td.mw-label{width:20%}.prefsection table{width:100%}td.mw-submit{white-space:nowrap}table.mw-htmlform-nolabel td.mw-label{width:0 !important}tr.mw-htmlform-vertical-label td.mw-label{text-align:left !important}.mw-htmlform-invalid-input td.mw-input input{border-color:red}.mw-htmlform-multiselect-flatlist div.mw-htmlform-multiselect-item{display:inline;margin-right:1em;white-space:nowrap}input#wpSummary{width:80%} .thumbcaption{text-align:left}.magnify{float:right} #catlinks{ text-align:left}#catlinks ul{display:inline;margin:0px;padding:0px;list-style:none;list-style-type:none;list-style-image:none;vertical-align:middle !ie}#catlinks li{display:inline-block;line-height:1.35em;padding:0 .7em;border-left:1px solid #AAA;margin:0.3em 0;zoom:1;display:inline !ie}#catlinks li:first-child{padding-left:.4em;border-left:none} .mw-hidden-cats-hidden{display:none}.catlinks-allhidden{display:none} p.mw-ipb-conveniencelinks,p.mw-protect-editreasons,p.mw-filedelete-editreasons,p.mw-delete-editreasons,p.mw-revdel-editreasons{font-size:90%;text-align:right} .os-suggest{overflow:auto;overflow-x:hidden;position:absolute;top:0px;left:0px;width:0px;background-color:white;background-color:Window;border-style:solid;border-color:#AAAAAA;border-width:1px;z-index:99;font-size:95%}table.os-suggest-results{font-size:95%;cursor:pointer;border:0;border-collapse:collapse;width:100%}.os-suggest-result,.os-suggest-result-hl{white-space:nowrap;background-color:white;background-color:Window;color:black;color:WindowText;padding:2px}.os-suggest-result-hl,.os-suggest-result-hl-webkit{background-color:#4C59A6;color:white}.os-suggest-result-hl{ background-color:Highlight;color:HighlightText}.os-suggest-toggle{position:relative;left:1ex;font-size:65%}.os-suggest-toggle-def{position:absolute;top:0px;left:0px;font-size:65%;visibility:hidden} .autocomment{color:gray}#pagehistory .history-user{margin-left:0.4em;margin-right:0.2em}#pagehistory span.minor{font-weight:bold}#pagehistory li{border:1px solid white}#pagehistory li.selected{background-color:#f9f9f9;border:1px dashed #aaa}.mw-history-revisiondelete-button,#mw-fileduplicatesearch-icon{float:right} .newpage,.minoredit,.botedit{font-weight:bold}#shared-image-dup,#shared-image-conflict{font-style:italic} div.mw-warning-with-logexcerpt{padding:3px;margin-bottom:3px;border:2px solid #2F6FAB;clear:both}div.mw-warning-with-logexcerpt ul li{font-size:90%} span.mw-revdelundel-link,strong.mw-revdelundel-link{font-size:90%}span.mw-revdelundel-hidden,input.mw-revdelundel-hidden{visibility:hidden}td.mw-revdel-checkbox,th.mw-revdel-checkbox{padding-right:10px;text-align:center} a.feedlink{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QA/wD/AP+gvaeTAAAAB3RJTUUH2AkOCjkSL9xYhAAAAc9JREFUKJE90LFrU1EYQPHzffe+l/iSVkXTmNiANBU7iE5OLrbSVYKIiy5dnARB3FwEB5dOOhQKuthJEEHRsUXBoosO0lKKEYRa29LWQk3S5L53r0PVv+D8OPJlolrrr1ZmI7F1BFEjqBXECGJAjSBCaLddc7u5Mmb7q5U5007rWh5E9rYR/xsTBBXBWMVEglqRpGiGhcE5G6kdyugxcGsGyRdJ15ZwC29IF55jNEWt8K+aFOMhc+dC7Z6SITjC7ga2MkI8cpH41Dhh7RPa20Gt4toZac+IqhFMTpG0hVt8RetJg967SaTvGLnGNKZ0EtfOcB1P5jyqVjCRkIzfpnjtMYXrT2FrCff6JqhFRx/gnCXtZHgXUFHQSGg/u4Gbf4T2lYkvTaFGce8fIgePY09fwXU8Pg3sk2JFu5v4lQ+4FxPge+j5u3Q+v8TvrBKfbZB1PT4LqJh9Uv7yFLmrM2i+gPs4jRyqIaUz7C2+xZZOEA4cJaSgaAhqhbC1DK0N3K9NusvzAHB4GLf+HQBJBsiCD7J6/9zXI2VbVyv/b6Sdv1e6nrTryboB7wVbyjXt1rcfo0Frs4UkqvtUJHMBjyVEAcSjFiQJwRvf3F3/OfYH/dDFWrCooaIAAAAASUVORK5CYII=) center left no-repeat;background:url(//bits.wikimedia.org/skins-1.18/common/images/feed-icon.png?2011-09-19T16:10:00Z) center left no-repeat!ie;padding-left:16px} .plainlinks a{background:none !important;padding:0 !important} .rtl a.external.free,.rtl a.external.autonumber{direction:ltr;unicode-bidi:embed} table.wikitable{margin:1em 1em 1em 0;background:#f9f9f9;border:1px #aaa solid;border-collapse:collapse;color:black}.wikitable th,.wikitable td{border:1px #aaa solid;padding:0.2em}.wikitable th{background:#f2f2f2;text-align:center}.wikitable caption{font-weight:bold} table.collapsed tr.collapsable{display:none} .success{color:green;font-size:larger}.warning{color:#FFA500; font-size:larger}.error{color:red;font-size:larger}.errorbox,.warningbox,.successbox{font-size:larger;border:2px solid;padding:.5em 1em;float:left;margin-bottom:2em;color:#000}.errorbox{border-color:red;background-color:#fff2f2}.warningbox{border-color:#FF8C00; background-color:#FFFFC0}.successbox{border-color:green;background-color:#dfd}.errorbox h2,.warningbox h2,.successbox h2{font-size:1em;font-weight:bold;display:inline;margin:0 .5em 0 0;border:none} .mw-infobox{border:2px solid #ff7f00;margin:0.5em;clear:left;overflow:hidden}.mw-infobox-left{margin:7px;float:left;width:35px}.mw-infobox-right{margin:0.5em 0.5em 0.5em 49px} .previewnote{color:#c00;margin-bottom:1em}.previewnote p{text-indent:3em;margin:0.8em 0}.visualClear{clear:both}#mw_trackbacks{border:solid 1px #bbbbff;background-color:#eeeeff;padding:0.2em} .TablePager{min-width:80%;border-collapse:collapse}.TablePager_nav{margin:0 auto}.TablePager_nav td{padding:3px;text-align:center}.TablePager_nav a{text-decoration:none}.TablePager,.TablePager td,.TablePager th{border:1px solid #aaaaaa;padding:0 0.15em 0 0.15em}.TablePager th{background-color:#eeeeff}.TablePager td{background-color:#ffffff}.TablePager tr:hover td{background-color:#eeeeff}.imagelist td,.imagelist th{white-space:nowrap}.imagelist .TablePager_col_links{background-color:#eeeeff}.imagelist .TablePager_col_img_description{white-space:normal}.imagelist th.TablePager_sort{background-color:#ccccff} ul#filetoc{text-align:center;border:1px solid #aaaaaa;background-color:#f9f9f9;padding:5px;font-size:95%;margin-bottom:0.5em;margin-left:0;margin-right:0}#filetoc li{display:inline;list-style-type:none;padding-right:2em} table.mw_metadata{font-size:0.8em;margin-left:0.5em;margin-bottom:0.5em;width:400px}table.mw_metadata caption{font-weight:bold}table.mw_metadata th{font-weight:normal}table.mw_metadata td{padding:0.1em}table.mw_metadata{border:none;border-collapse:collapse}table.mw_metadata td,table.mw_metadata th{text-align:center;border:1px solid #aaaaaa;padding-left:5px;padding-right:5px}table.mw_metadata th{background-color:#f9f9f9}table.mw_metadata td{background-color:#fcfcfc}table.mw_metadata ul.metadata-langlist{list-style-type:none;list-style-image:none;padding-right:5px;padding-left:5px;margin:0} .mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ul{ margin:0.3em 0 0 1.5em;padding:0}.mw-content-rtl ul,.mw-content-ltr .mw-content-rtl ul{ margin:0.3em 1.5em 0 0;padding:0}.mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ol{ margin:0.3em 0 0 3.2em;padding:0}.mw-content-rtl ol,.mw-content-ltr .mw-content-rtl ol{ margin:0.3em 3.2em 0 0;padding:0} .mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ul{margin:.3em 0 0 1.5em}.mw-content-rtl ul,.mw-content-ltr .mw-content-rtl ul{margin:.3em 1.5em 0 0}.mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ol{margin:.3em 0 0 3.2em}.mw-content-rtl ol,.mw-content-ltr .mw-content-rtl ol{margin:.3em 3.2em 0 0} li.gallerybox{vertical-align:top;border:solid 2px white;display:-moz-inline-box;display:inline-block}ul.gallery,li.gallerybox{zoom:1;*display:inline}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:bold;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;background-color:#f9f9f9;margin:2px}li.gallerybox div.thumb img{display:block;margin:0 auto}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word}.mw-ajax-loader{background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/ajax-loader.gif?2011-09-19T16:11:40Z)!ie;background-position:center center;background-repeat:no-repeat;padding:16px;position:relative;top:-16px}.mw-small-spinner{padding:10px !important;margin-right:0.6em;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPUyAAEBAQICAgMDAwQEBAcHBwkJCSIiIigoKCwsLDQ0ND8/P0REREVFRU1NTVJSUlVVVVZWVl1dXWNjY25ubnBwcHR0dHh4eISEhIWFhYeHh4mJiZKSkpaWlpubm6Wlpaqqqra2tre3t7i4uLm5ubq6uru7u7+/v8DAwMLCwsPDw8TExMbGxsfHx8jIyMnJycrKys7OztDQ0P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADIAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAFAAUAAAGlUCZcDhMOIhIImcyJBSEqVRy6EBUhIGADEYyTYcHhZCgTZG+w4fBIgsQZCSp8Cx8NIYKCbElXJFIMXUMDBEeX38pMEgPDBRfKytfG2hJHxoXGRmUIJwgKx2ZmJudipSmfXxTfolEMGZ0U69yMX+RMqlCLbAmcnBDZjKcMn62aHHBIFCwUyYkisJbf2hRQtAygadbxUlBACH5BAkKADcALAAAAAAUABQAhRISEhQUFBYWFh0dHR4eHiEhISIiIiMjIykpKSwsLC0tLS8vLzY2Njo6Oj8/P0FBQUhISEpKSlRUVFdXV2RkZGZmZm1tbW9vb3Nzc35+fn9/f4eHh4mJiYyMjJGRkZSUlJiYmJ2dnZ6enqOjo6SkpLa2tre3t7i4uLm5ubq6uru7u7y8vL+/v8DAwMLCwsPDw8TExMbGxsfHx8jIyMrKys7OztDQ0P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaQwJtwOIxciEhiKDMsFISLRXJYeTBvBIIQgJgOHxJh9rYAeKmNDbZwCTCGqiHIM5RgiBFhTKWyCUkdHCExXnwvNUgfHSNeMy+FZ0k1KiWVkZWVMTGYJZeYiJGhQi8zXnuHRDUvKitnqyuPN5MqhDelQ3tDsHBDqzeWe7VnrL+dN76uKoiWsnyutcw3fqKywklBACH5BAkKADkALAAAAAAUABQAhQoKChAQEBERESgoKCoqKiwsLC4uLjU1NTY2Njc3Nzo6Ojw8PD09PT4+PkBAQENDQ0RERElJSVBQUFlZWWFhYWJiYmVlZXx8fIKCgoaGhoqKioyMjI+Pj5GRkZWVlZiYmJ6enqSkpKenp7Ozs7a2tre3t7i4uLm5ubq6uru7u7y8vL+/v8DAwMLCwsPDw8TExMXFxcbGxsfHx8jIyMrKys7OztDQ0NTU1NnZ2f///wAAAAAAAAAAAAAAAAAAAAAAAAaZwJxwOKRciEgibDRUMIQRSHII4pSEiYSw8JwKNR2sllHwDkMaZkLBOUSGDoywtRp6QsSJJ8cQCChzKSkwOF4EAAQWSC0pM14QgFM3Zkk1JZdXZpglMDCblJgpNZSkQy2OUzApK6NDNYx1XowpLUI2gjBCqLopQyu1Qr2BOZc5qrmUq8SZK8JezaPFObfOSS3AKZnTpUI1yFNBACH5BAkKADoALAAAAAAUABQAhQAAAAICAgMDAwQEBAcHBwkJCSIiIigoKCsrKzQ0ND4+Pj8/P0REREVFRU1NTVJSUlNTU1RUVFVVVVZWVlxcXGNjY25ubnFxcXR0dHh4eIODg4SEhIWFhYeHh4mJiZGRkZaWlpubm6Wlpaqqqra2tre3t7i4uLm5ubq6uru7u7y8vL+/v8DAwMLCwsPDw8TExMbGxsfHx8jIyMrKys7Ozs/Pz9DQ0NTU1NfX19nZ2f///wAAAAAAAAAAAAAAAAAAAAaZQJ1wOAyNiEhizjbseIQSSXLYSjF1Go2Q4ZgOUythp6OTMLxDWIqG7XwYlKEEJGyFhasZ8SIqHxAWdSkpMDheCwYMF0hVMF4VGV6GaEg0JJcklAEDnAkwmJloAaMFD5SnaY5TM2BsQzYtJHdTVSktQjaDqnppKUMrt0K+gjqXOmqqaGDFoVWUK2vMQjSDaC3BKaE6V6g0yUlBACH5BAkKADoALAAAAAAUABQAhRISEhQUFBYWFhwcHB0dHR4eHiEhISIiIiMjIysrKy8vLzc3Nzo6Oj8/P0FBQUhISFJSUlZWVldXV2VlZW1tbX9/f4KCgoeHh4mJiYuLi4yMjJCQkJSUlJiYmJmZmZqampycnJ2dnZ6enqOjo7CwsLa2tre3t7i4uLm5ubq6uru7u7y8vL+/v8DAwMLCwsPDw8TExMbGxsfHx8jIyMrKys7OztDQ0NTU1NfX19nZ2f///wAAAAAAAAAAAAAAAAAAAAaaQJ1wOCSViEhirjYMfYSfZ1LoUjF1UWFGMx2qXNAnJ9MdxqzYj0oTGk7aOhdryKIRRzHdxNGwUFUqMThdEAwRFUhVeVMUF12DZUg1JZRHZQMImA8xlZZdmZgUkUh+UzGLSQ4CChFENS4lc10LAAAKQjaAi3ZmKkMIt0K+fzqUOmeoXSpzxnHDXSxozTWAZS5gOiqeNqNDNclIQQAh+QQJCgBFACwAAAAAFAAUAIYKCgoQEBAREREnJycqKiosLCwuLi40NDQ1NTU2NjY3Nzc5OTk6Ojo8PDw9PT0+Pj4/Pz9ERERJSUlRUVFYWFhhYWFlZWVmZmZvb298fHyCgoKGhoaHh4eKioqNjY2SkpKVlZWenp6fn5+hoaGioqKjo6Onp6epqamrq6usrKyurq6vr6+xsbGzs7O2tra3t7e4uLi5ubm6urq7u7u8vLy/v7/AwMDCwsLDw8PExMTFxcXGxsbHx8fIyMjKysrOzs7Q0NDU1NTV1dXX19fZ2dn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHqYBFgoODOz+EiIREh4IvL4IqKomDNzOMjoIkKJODMzeNjyginIWWRY47JJKCIjuCNzWDNT6EN0NFIhsdq5UzO7eTIBsfLYiVrpMmxZPApIQ/jpikBwvUFTvRj6TVBxAZzogenDe0kxQGEBjPNy+xkyQTBAYSgkAzvoLlghEEgxARnSjNOPXIAoAF4GbEkkZAgLMapqRZEACB1I1PRWZoK1JBAzhBP5BNCgQAIfkECQoAOgAsAAAAABQAFACFAQEBAgICAwMDBAQEBwcHCQkJIiIiKCgoLCwsNDQ0Pz8/RERERUVFTU1NUlJSVVVVVlZWXV1dY2Njbm5ucHBwdHR0eHh4gICAg4ODhISEhYWFh4eHiYmJkpKSlpaWm5ubpaWlqqqqtra2t7e3uLi4ubm5urq6u7u7vLy8v7+/wMDAwsLCw8PDxMTExsbGx8fHyMjIysrKy8vLzs7Oz8/P0NDQ1NTU1dXV19fX2dnZ////AAAAAAAAAAAAAAAAAAAABptAnXA4dM2ISGLuKByNhKtVcrg61ZpP3Uk6FW6xumq3ODo6cScXNQdNDVMxYgync52s0LuLPk2NVkxUaV0xgUh8Y0QzTk6JGBuPHy6MWV0bkBwhiUgdXStxUxQMDxiKKyNuUyARDKNCNXpCoEISCkMND0MngjoDAToWBrmJJ24BA0IKB4kpJ0cBvzoVCA5jUUIFBUMTHptCDgljQQAh+QQJCgA9ACwAAAAAFAAUAIUSEhIUFBQVFRUdHR0eHh4fHx8hISEiIiIjIyMpKSksLCwtLS0vLy82NjY6Ojo/Pz9BQUFISEhUVFRWVlZkZGRmZmZtbW1xcXFzc3N8fHx/f3+Hh4eJiYmLi4uMjIyQkJCUlJSYmJidnZ2enp6jo6Orq6u2tra3t7e4uLi5ubm6urq7u7u8vLy/v7/AwMDCwsLDw8PExMTGxsbHx8fIyMjKysrLy8vOzs7Q0NDU1NTV1dXX19fZ2dn///8AAAAAAAAGmsCecDiU3YhIIu8oPJ2Er1dy+Frhms/eSjoVbrG9ard4Ojp3KxmVB20NWzVibdeTrazQu4w+bZ1eTFRpXTWBSHxjRDdOTomMJzIyj45OK4aJWl0vcVMkHh8lii8nblMyIh0dIUI4ekIQRBgSQx+rXkMNARgHAz0bDhWYAAo9A709E7BjCQFCvEIaD8FdCsQ9CAdDGiKYQhYRY0EAIfkECQoAPQAsAAAAABQAFACFCgoKEBAQERERKCgoKioqLCwsLi4uNTU1NjY2Nzc3Ojo6PDw8PT09Pj4+QEBAQ0NDRERESUlJUVFRWlpaW1tbYWFhYmJiZWVlfHx8goKChoaGh4eHioqKjIyMlZWVmZmZnp6en5+foaGhp6enr6+vsrKys7Oztra2t7e3uLi4ubm5urq6u7u7v7+/wMDAwsLCw8PDxMTExcXFxsbGyMjIysrKy8vLzs7O0NDQ1NTU1dXV19fX2dnZ////AAAAAAAABpjAnnA4nN2ISCLvKEShhK9Xcvhi4ZrPHks6FW6xvWq3iDo6d6wZlQdtDVs1Ym3Xm7Gs0PuMPm2hXkxUaV01gUh8Y0Q3Tk6JjCgzM4+OjIaJPYhIFg+EW4YXAwADXTt2Xz0UAgIKPSITRCMeb1wZnEISBh0KBz0mGiGXBg09B7w9HxqJDQZCxU0cwF0QEUINrEIkapc9GK9dQQAh+QQJCgA8ACwAAAAAFAAUAIUCAgIDAwMEBAQGBgYHBwcJCQkiIiIoKCgrKys0NDQ+Pj4/Pz9ERERFRUVNTU1SUlJTU1NUVFRVVVVWVlZcXFxjY2Nubm5xcXF0dHR4eHiDg4OEhISFhYWHh4eJiYmRkZGWlpabm5ulpaWqqqq2tra3t7e4uLi5ubm6urq7u7u/v7/AwMDCwsLDw8PExMTFxcXGxsbIyMjKysrLy8vOzs7Pz8/Q0NDU1NTV1dXX19fY2NjZ2dn///8AAAAAAAAAAAAGlUCecDiE0YhI4u4oLJWELFZyyErZmk9eSjoVbrG8ardYOjpzKRh1B1UNVTKiLMeDpazQO4w+VZVYTFRpXTKBSGxjSBAFAAADiU5OMAkDA42QkYaJPHxJGRWEW4YYCwYLXTl2XzwWCAcRPCIXcm5CKlwgEEMUDR8dGjw0g4kNsL95iQ4NQsfBq1MRsDweHkM2iJsjIWNBACH5BAkKADkALAAAAAAUABQAhQICAgMDAwQEBAcHBwgICAkJCRISEhQUFBYWFiIiIisrKy8vLzQ0NDU1NTo6Oj8/P0FBQVJSUldXV2VlZW1tbX9/f4ODg4iIiImJiYyMjJGRkZSUlJWVlZeXl52dnZ6enqOjo7a2tre3t7i4uLm5ubq6uru7u7+/v8DAwMLCwsPDw8TExMXFxcbGxsfHx8jIyMrKysvLy87OztDQ0NTU1NXV1dfX19jY2NnZ2f///wAAAAAAAAAAAAAAAAAAAAAAAAaYwJxwOGzJiEgi7igUiYQoVHKIOs2az9xIOhVusblqtzg6Om2nVhEnXCSGJxgRZsu1RqNrbnEwNDhdJ1t6Q3wQXTBMSRZjSREEAgIEjU5OLQ2RAgCUTnmNSHVTFxSIW4o5FhIOEV04dydcFQ8QE3YgcydUXB+1Qh8ZeE8yI2qNF4BOUCONGhlgOTOwYx23OclCM2yfOTLFU0EAIfkECQoAPgAsAAAAABQAFACFCgoKEBAQERERJycnKioqLCwsLi4uNDQ0NTU1NjY2Nzc3OTk5Ojo6PDw8PT09Pj4+Pz8/Q0NDRERESUlJUVFRWFhYYWFhYmJiZWVlfHx8goKChoaGioqKi4uLjY2NkZGRlZWVnp6eoaGhp6enr6+vsbGxs7Oztra2t7e3uLi4ubm5urq6u7u7v7+/wMDAwsLCw8PDxMTExcXFxsbGyMjIysrKy8vLzs7O0NDQ1NTU1dXV19fX2NjY2dnZ////AAAABplAn3A4nN2ISKLmMkShhDBYcvgIYIRO4ao1HQYI2Cds1R0yAEznbjUbwnpCCWM4kBBrO99stTr6JgYGFCJdLSgwflQGFV01iUgeZUkZDwcMc2VOTjMXDAefkpooj5I+eVMmI40riEQmHxsgXTt7rEIkHBwhpjV3XEItUnq7Qns7WTdspbZZPi1kZc9hQji2XVHT1HClPjdtXUEAOw==);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/spinner.gif?2011-09-19T16:10:00Z)!ie;background-position:center center;background-repeat:no-repeat} h1:lang(as),h1:lang(bn),h1:lang(gu),h1:lang(hi),h1:lang(kn),h1:lang(ml),h1:lang(mr),h1:lang(or),h1:lang(pa),h1:lang(sa),h1:lang(ta),h1:lang(te){line-height:1.5em !important}h2:lang(as),h3:lang(as),h4:lang(as),h5:lang(as),h6:lang(as),h2:lang(bn),h3:lang(bn),h4:lang(bn),h5:lang(bn),h6:lang(bn),h2:lang(gu),h3:lang(gu),h4:lang(gu),h5:lang(gu),h6:lang(gu),h2:lang(hi),h3:lang(hi),h4:lang(hi),h5:lang(hi),h6:lang(hi),h2:lang(kn),h3:lang(kn),h4:lang(kn),h5:lang(kn),h6:lang(kn),h2:lang(ml),h3:lang(ml),h4:lang(ml),h5:lang(ml),h6:lang(ml),h2:lang(mr),h3:lang(mr),h4:lang(mr),h5:lang(mr),h6:lang(mr),h2:lang(or),h3:lang(or),h4:lang(or),h5:lang(or),h6:lang(or),h2:lang(pa),h3:lang(pa),h4:lang(pa),h5:lang(pa),h6:lang(pa),h2:lang(sa),h3:lang(sa),h4:lang(sa),h5:lang(sa),h6:lang(sa),h2:lang(ta),h3:lang(ta),h4:lang(ta),h5:lang(ta),h6:lang(ta),h2:lang(te),h3:lang(te),h4:lang(te),h5:lang(te),h6:lang(te){line-height:1.2em} ol:lang(bcc) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(mzn) li{list-style-type:-moz-persian;list-style-type:persian}ol:lang(ckb) li{list-style-type:-moz-arabic-indic;list-style-type:arabic-indic}ol:lang(as) li,ol:lang(bn) li{list-style-type:-moz-bengali;list-style-type:bengali}ol:lang(or) li{list-style-type:-moz-oriya;list-style-type:oriya}#toc ul,.toc ul{margin:.3em 0} .mw-content-ltr .toc ul,.mw-content-ltr #toc ul,.mw-content-rtl .mw-content-ltr .toc ul,.mw-content-rtl .mw-content-ltr #toc ul{text-align:left}.mw-content-rtl .toc ul,.mw-content-rtl #toc ul,.mw-content-ltr .mw-content-rtl .toc ul,.mw-content-ltr .mw-content-rtl #toc ul{text-align:right}.mw-content-ltr .toc ul ul,.mw-content-ltr #toc ul ul,.mw-content-rtl .mw-content-ltr .toc ul ul,.mw-content-rtl .mw-content-ltr #toc ul ul{margin:0 0 0 2em}.mw-content-rtl .toc ul ul,.mw-content-rtl #toc ul ul,.mw-content-ltr .mw-content-rtl .toc ul ul,.mw-content-ltr .mw-content-rtl #toc ul ul{margin:0 2em 0 0}#toc #toctitle,.toc #toctitle,#toc .toctitle,.toc .toctitle{direction:ltr} .mw-help-field-hint{display:none;margin-left:2px;margin-bottom:-8px;padding:0px 0px 0px 15px;background-image:url(data:image/gif;base64,R0lGODlhCwALALMAAP///01NTZOTk1lZWefn57i4uJSUlPPz82VlZdDQ0HFxcaysrNvb28TExAAAAAAAACH5BAAAAAAALAAAAAALAAsAAAQrUIRJqQQ455nNNBgHJANBDAwgZsVwqIG2IEQYYwXy2lq/Kg3NqqeSVCqCCAA7);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/help-question.gif?2011-09-19T16:10:00Z)!ie;background-position:left center;background-repeat:no-repeat;cursor:pointer;font-size:.8em;text-decoration:underline;color:#0645ad}.mw-help-field-hint:hover{background-image:url(data:image/gif;base64,R0lGODlhCwALALMAAAtop+7z+GCWwpW51oStz8rb6yZzrafF3bnR5Nzn8QBcoD91oABQmf///wAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE5NkQ0QUQzRjI0NzRCNUQwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBN0FFQTQwQjlGQzExREY5RDlBQTRBODQyMkJCMkFDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBN0FFQTNGQjlGQzExREY5RDlBQTRBODQyMkJCMkFDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkM3RjExNzQwNzIwNjgxMTk1RkVBQ0ZBOEQxNTU5MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTk2RDRBRDNGMjQ3NEI1RDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAACwALAAAEK3CxSalsOOeZxRQY1yBKkihFI2aDEqiMRgBJGGMD8NpavxoHzaqnklQqiwgAOw==);background-image:url(//bits.wikimedia.org/skins-1.18/common/images/help-question-hover.gif?2011-09-19T16:11:40Z)!ie}.mw-help-field-data{display:block;background-color:#d6f3ff;padding:5px 8px 4px 8px;border:1px solid #5dc9f4;margin-left:20px}.tipsy{padding:5px 5px 10px;font-size:12px;position:absolute;z-index:100000;overflow:visible}.tipsy-inner{padding:5px 8px 4px 8px;background-color:#d6f3ff;color:black;border:1px solid #5dc9f4;max-width:300px;text-align:left}.tipsy-arrow{position:absolute;background:url(data:image/gif;base64,R0lGODlhDQANAMQAAPf399bz/9vu9m/O9NXy/8Pm9svp9pfd+YLW943X9LTn++z093XQ9WnM9OLw9p/c9YTU9InY9/T292DK9Jre+afj+rvq/Nzv9rjk9brl9cPt/ZLb+GbL9MLs/ZHb+KLh+iH5BAAAAAAALAAAAAANAA0AAAVK4BGMZBkcg2WW1lBEKxkVAFTFFQQAwkSYhIlgB3hQTJQHEbBodEiaxmIJyHhIGwwVIGEoAgqGZAswIAIIA3mX+CTWOwfHAd9dtiEAOw==) no-repeat top left;background:url(//bits.wikimedia.org/skins-1.18/common/images/tipsy-arrow.gif?2011-09-19T16:11:40Z) no-repeat top left!ie;width:13px;height:13px}.tipsy-se .tipsy-arrow{bottom:-2px;right:10px;background-position:0% 100%} .ltr{ direction:ltr;unicode-bidi:embed}#mw-clearyourcache,#mw-sitecsspreview,#mw-sitejspreview,#mw-usercsspreview,#mw-userjspreview{direction:ltr;unicode-bidi:embed} .diff-currentversion-title,.diff{direction:ltr;unicode-bidi:embed} .diff-contentalign-right td{direction:rtl;unicode-bidi:embed} .diff-contentalign-left td{direction:ltr;unicode-bidi:embed}.diff-otitle,.diff-ntitle,.diff-lineno{direction:ltr !important;unicode-bidi:embed}#mw-revision-info,#mw-revision-nav{direction:ltr} div.tright,div.floatright,table.floatright{clear:right;float:right}div.tleft,div.floatleft,table.floatleft{float:left;clear:left}div.floatright,table.floatright,div.floatleft,table.floatleft{position:relative} #mw-credits a{unicode-bidi:embed}}@media screen{ html,body{height:100%;margin:0;padding:0;font-family:sans-serif;font-size:1em}body{background-color:#f3f3f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABRJREFUeF4FwTEBAAAAwJD1D+weGQD4APc0a6VeAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/page-base.png?2011-09-19T16:11:40Z)!ie} div#content{margin-left:10em;padding:1em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeF4FwTEBAAAAgjD7FzESWfjYdgwEoAJ4lTsaxgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/border.png?2011-09-19T16:11:40Z)!ie;background-position:top left;background-repeat:repeat-y;background-color:white;color:black;direction:ltr} #mw-page-base{height:5em;background-color:white;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADpJREFUeF5VjUkOAEAIwoD//7lzGJd4MJHGSoBImkFETP67CdLldUd7KC6f8fv3+psd8znbtU5x354HaWQjOx76v7MAAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/page-fade.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:repeat-x}#mw-head-base{margin-top:-5em;margin-left:10em;height:5em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeF4FwTEBAAAAgjD7FzESWfjYdgwEoAJ4lTsaxgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/border.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:repeat-x}div#mw-head{position:absolute;top:0;right:0;width:100%}div#mw-head h5{margin:0;padding:0} div.emptyPortlet{display:none} #p-personal{position:absolute;top:0;right:0.75em}#p-personal h5{display:none}#p-personal ul{list-style:none;margin:0;padding-left:10em; } #p-personal li{line-height:1.125em;float:left} #p-personal li{margin-left:0.75em;margin-top:0.5em;font-size:0.75em;white-space:nowrap} #left-navigation{position:absolute;left:10em;top:2.5em}#right-navigation{float:right;margin-top:2.5em} div.vectorTabs h5,div.vectorMenu h5 span{display:none} div.vectorTabs{float:left;height:2.5em}div.vectorTabs{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:no-repeat;padding-left:1px} div.vectorTabs ul{float:left}div.vectorTabs ul{height:100%;list-style:none;margin:0;padding:0} div.vectorTabs ul li{float:left} div.vectorTabs ul li{line-height:1.125em;display:inline-block;height:100%;margin:0;padding:0;background-color:#f3f3f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAIAAADITs03AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADxJREFUeF7litsRACAMwrD77+Q0rtGoV98r+MEFchhgkr4NnZyb3bk/LM/yMCjiH4wots/++hYR3iXLJVWUBS1AtOi2fwAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-normal-fade.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:repeat-x;white-space:nowrap} div.vectorTabs ul > li{display:block}div.vectorTabs li.selected{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkAQAAAABvV2fNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABVJREFUeF7dwQEBAAAAQCDTTfdD4WOJ5TIB3ib9EgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-current-fade.png?2011-09-19T16:11:40Z)!ie} div.vectorTabs li a{display:inline-block;height:1.9em;padding-left:0.5em;padding-right:0.5em;color:#0645ad;cursor:pointer;font-size:0.8em} div.vectorTabs li > a{display:block}div.vectorTabs li.icon a{background-position:bottom right;background-repeat:no-repeat} div.vectorTabs span a{display:inline-block;padding-top:1.25em} div.vectorTabs span > a{float:left;display:block}div.vectorTabs span{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom right;background-repeat:no-repeat}div.vectorTabs li.selected a,div.vectorTabs li.selected a:visited{color:#333333;text-decoration:none}div.vectorTabs li.new a,div.vectorTabs li.new a:visited{color:#a55858} div.vectorMenu{direction:ltr;float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQCAMAAAAlM38UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9QTFRFsbGxmpqa3d3deXl58/n79CzHcQAAAAV0Uk5T/////wD7tg5TAAAAMklEQVR42mJgwQoYBkqYiZEZAhiZUFRDxWGicEPA4nBRhNlAcYQokpVMDEwD6kuAAAMAyGMFQVv5ldcAAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/arrow-down-icon.png?2011-10-16T22:58:20Z)!ie;background-position:100% 60%;background-repeat:no-repeat;cursor:pointer}div.vectorMenuFocus{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAQBAMAAADgw5IVAAAAAXNSR0IArs4c6QAAABVQTFRFmpqakpKSra2tsbGxv7+/3d3d4+PjZlmM5AAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAmSURBVAjXY2CgGmBTFBQUVINykgQFhRIQEmpwVUlwYaCEG8WWAgARKQL1ECU8IAAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/arrow-down-focus-icon.png?2011-10-16T22:58:20Z)!ie;background-position:100% 60%} body.rtl div.vectorMenu{direction:rtl} div#mw-head div.vectorMenu h5{float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-repeat:no-repeat} div#mw-head div.vectorMenu h5{background-position:bottom left;margin-left:-1px} div#mw-head div.vectorMenu > h5{background-image:none}div#mw-head div.vectorMenu h4{display:inline-block;float:left;font-size:0.8em;padding-left:0.5em;padding-top:1.375em;font-weight:normal;border:none} div.vectorMenu h5 a{display:inline-block;width:24px;height:2.5em;text-decoration:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-repeat:no-repeat} div.vectorMenu h5 a{background-position:bottom right} div.vectorMenu h5 > a{display:block}div.vectorMenu div.menu{position:relative;display:none;clear:both;text-align:left} body.rtl div.vectorMenu div.menu{margin-left:24px} body.rtl div.vectorMenu > div.menu{margin-left:auto} body.rtl div.vectorMenu > div.menu,x:-moz-any-link{margin-left:23px} div.vectorMenu:hover div.menu,div.vectorMenu div.menuForceShow{display:block}div.vectorMenu ul{position:absolute;background-color:white;border:solid 1px silver;border-top-width:0;list-style:none;list-style-image:none;list-style-type:none;padding:0;margin:0;margin-left:-1px;text-align:left} div.vectorMenu ul,x:-moz-any-link{min-width:5em} div.vectorMenu ul,x:-moz-any-link,x:default{min-width:0}div.vectorMenu li{padding:0;margin:0;text-align:left;line-height:1em} div.vectorMenu li a{display:inline-block;padding:0.5em;white-space:nowrap;color:#0645ad;cursor:pointer;font-size:0.8em} div.vectorMenu li > a{display:block}div.vectorMenu li.selected a,div.vectorMenu li.selected a:visited{color:#333333;text-decoration:none} #p-search h5{display:none} #p-search{float:left}#p-search{margin-right:0.5em;margin-left:0.5em}#p-search form,#p-search input{margin:0;margin-top:0.4em}div#simpleSearch{display:block;width:14em;height:1.4em;margin-top:0.65em;position:relative;min-height:1px; border:solid 1px #AAAAAA;color:black;background-color:white;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAQCAIAAABY/YLgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACZJREFUeF5diqERACAQgID95/3s+cFg4CDQzASkXl4jidvrCPzfA7puAx52W1pnAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/search-fade.png?2011-09-19T16:11:40Z)!ie;background-position:top left;background-repeat:repeat-x}div#simpleSearch label{ font-size:13px;top:0.25em;direction:ltr}div#simpleSearch input{color:black;direction:ltr}div#simpleSearch input:focus{outline:none}div#simpleSearch input.placeholder{color:#999999}div#simpleSearch input::-webkit-input-placeholder{color:#999999}div#simpleSearch input#searchInput{position:absolute;top:0;left:0;width:90%;margin:0;padding:0;padding-left:0.2em;padding-top:0.2em;padding-bottom:0.2em;outline:none;border:none; font-size:13px;background-color:transparent;direction:ltr}div#simpleSearch button#searchButton{position:absolute;width:10%;right:0;top:0;padding:0;padding-top:0.3em;padding-bottom:0.2em;padding-right:0.4em;margin:0;border:none;cursor:pointer;background-color:transparent;background-image:none} div#simpleSearch button#searchButton img{border:none;margin:0;margin-top:-3px;padding:0} div#simpleSearch button#searchButton > img{margin:0} div#mw-panel{position:absolute;top:160px;padding-top:1em;width:10em;left:0}div#mw-panel div.portal{padding-bottom:1.5em;direction:ltr}div#mw-panel div.portal h5{font-weight:normal;color:#444444;padding:0.25em;padding-top:0;padding-left:1.75em;cursor:default;border:none;font-size:0.75em}div#mw-panel div.portal div.body{margin:0;padding-top:0.5em;margin-left:1.25em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAAABCAAAAAAphRnkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeF61yMEJACAQxMCN/Xfr/yIsaAfOJxC2UTPWS6f5gABhUTedBz7fGPSonIP/AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/portal-break.png?2011-09-19T16:11:40Z)!ie;background-repeat:no-repeat;background-position:top left}div#mw-panel div.portal div.body ul{list-style:none;list-style-image:none;list-style-type:none;padding:0;margin:0}div#mw-panel div.portal div.body ul li{line-height:1.125em;padding:0;padding-bottom:0.5em;margin:0;overflow:hidden;font-size:0.75em}div#mw-panel div.portal div.body ul li a{color:#0645ad}div#mw-panel div.portal div.body ul li a:visited{color:#0b0080} div#footer{margin-left:10em;margin-top:0;padding:0.75em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeF4FwTEBAAAAgjD7FzESWfjYdgwEoAJ4lTsaxgAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/border.png?2011-09-19T16:11:40Z)!ie;background-position:top left;background-repeat:repeat-x;direction:ltr}div#footer ul{list-style:none;list-style-image:none;list-style-type:none;margin:0;padding:0}div#footer ul li{margin:0;padding:0;padding-top:0.5em;padding-bottom:0.5em;color:#333333;font-size:0.7em}div#footer #footer-icons{float:right} body.ltr div#footer #footer-places{float:left}div#footer #footer-info li{line-height:1.4em}div#footer #footer-icons li{float:left;margin-left:0.5em;line-height:2em;text-align:right}div#footer #footer-places li{float:left;margin-right:1em;line-height:2em} #p-logo{position:absolute;top:-160px;left:0;width:10em;height:160px}#p-logo a{display:block;width:10em;height:160px;background-repeat:no-repeat;background-position:center center;text-decoration:none} #preftoc{ width:100%;float:left;clear:both;margin:0 !important;padding:0 !important;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAQAAACysAk0AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAABAAAAIQBSEXtPAAAAAmJLR0QA/vCI/CkAAAAmSURBVAjXY2BgYPj3n+k/AwL9g5Fwxl8GJgYGpr+ogmgITQuSgQA1QiAL/go8LAAAACV0RVh0Y3JlYXRlLWRhdGUAMjAwOS0wOC0wOVQxOTowNTo0MSswMDowMCYO2tEAAAAldEVYdG1vZGlmeS1kYXRlADIwMDktMDgtMDlUMTk6MDU6NDErMDA6MDB5v6zlAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom left;background-repeat:no-repeat}#preftoc li{ float:left;margin:0;padding:0;padding-right:1px;height:2.25em;white-space:nowrap;list-style-type:none;list-style-image:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAQAAACysAk0AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAABAAAAIQBSEXtPAAAAAmJLR0QA/vCI/CkAAAAmSURBVAjXY2BgYPj3n+k/AwL9g5Fwxl8GJgYGpr+ogmgITQuSgQA1QiAL/go8LAAAACV0RVh0Y3JlYXRlLWRhdGUAMjAwOS0wOC0wOVQxOTowNTo0MSswMDowMCYO2tEAAAAldEVYdG1vZGlmeS1kYXRlADIwMDktMDgtMDlUMTk6MDU6NDErMDA6MDB5v6zlAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg==);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-break.png?2011-09-19T16:11:40Z)!ie;background-position:bottom right;background-repeat:no-repeat} #preftoc li:first-child{margin-left:1px}#preftoc a,#preftoc a:active{display:inline-block;position:relative;color:#0645ad;padding:0.5em;text-decoration:none;background-image:none;font-size:0.9em}#preftoc a:hover,#preftoc a:focus{text-decoration:underline}#preftoc li.selected a{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAQAAACysAk0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeF5twskJAAAMAjD3H7mXfYogCQiQeun68Z2WPk0SQHDa/pxXAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-fade.png?2011-09-19T16:11:40Z)!ie;background-position:bottom;background-repeat:repeat-x;color:#333333;text-decoration:none}#preferences{float:left;width:100%;margin:0;margin-top:-2px;clear:both;border:solid 1px #cccccc;background-color:#f9f9f9;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABRJREFUeF4FwTEBAAAAwJD1j+waGQD8APvyfoZlAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/preferences-base.png?2011-09-19T16:11:40Z)!ie}#preferences fieldset{border:none;border-top:solid 1px #cccccc}#preferences fieldset.prefsection{border:none;padding:0;margin:1em}#preferences legend{color:#666666}#preferences fieldset.prefsection legend.mainLegend{display:none}#preferences td{padding-left:0.5em;padding-right:0.5em}#preferences td.htmlform-tip{font-size:x-small;padding:.2em 2em;color:#666666}#preferences div.mw-prefs-buttons{padding:1em}#preferences div.mw-prefs-buttons input{margin-right:0.25em} #userlogin,#userloginForm{border:solid 1px #cccccc;padding:1.2em;margin:.5em;float:left}#userlogin{min-width:20em;max-width:90%;width:40em} div#content{line-height:1.5em}#bodyContent{font-size:0.8em} a{text-decoration:none;color:#0645ad;background:none}a:visited{color:#0b0080}a:active{color:#faa700}a:hover,a:focus{text-decoration:underline}a.stub{color:#772233}a.new,#p-personal a.new{color:#ba0000}a.new:visited,#p-personal a.new:visited{color:#a55858} img{border:none;vertical-align:middle}hr{height:1px;color:#aaa;background-color:#aaa;border:0;margin:.2em 0 .2em 0} h1,h2,h3,h4,h5,h6{color:black;background:none;font-weight:normal;margin:0;overflow:hidden;padding-top:.5em;padding-bottom:.17em;border-bottom:1px solid #aaa;width:auto}h1{font-size:188%}h1 .editsection{font-size:53%}h2{font-size:150%}h2 .editsection{font-size:67%}h3,h4,h5,h6{border-bottom:none;font-weight:bold}h3{font-size:132%}h3 .editsection{font-size:76%;font-weight:normal}h4{font-size:116%}h4 .editsection{font-size:86%;font-weight:normal}h5{font-size:100%}h5 .editsection{font-weight:normal}h6{font-size:80%}h6 .editsection{font-size:125%;font-weight:normal}.editsection{float:right}p{margin:.4em 0 .5em 0;line-height:1.5em}p img{margin:0}q{font-family:Times,"Times New Roman",serif;font-style:italic} pre,code,tt,kbd,samp{ font-family:monospace,"Courier New"}code{background-color:#f9f9f9}pre{padding:1em;border:1px dashed #2f6fab;color:black;background-color:#f9f9f9;line-height:1.3em}ul{line-height:1.5em;list-style-type:square;margin:.3em 0 0 1.5em;padding:0;list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAANCAMAAABW4lS6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFAFKM////QIUK9QAAAAJ0Uk5T/wDltzBKAAAAGklEQVR42mJgBAEGokgGBjBGBxBxsBqAAAMACHwALd5r8ygAAAAASUVORK5CYII=);list-style-image:url(//bits.wikimedia.org/skins-1.18/vector/images/bullet-icon.png?2011-09-19T16:11:40Z)!ie}ol{line-height:1.5em;margin:.3em 0 0 3.2em;padding:0;list-style-image:none}li{margin-bottom:.1em}dt{font-weight:bold;margin-bottom:.1em}dl{margin-top:.2em;margin-bottom:.5em}dd{line-height:1.5em;margin-left:2em;margin-bottom:.1em} table{font-size:100%} fieldset{border:1px solid #2f6fab;margin:1em 0 1em 0;padding:0 1em 1em;line-height:1.5em}fieldset.nested{margin:0 0 0.5em 0;padding:0 0.5em 0.5em}legend{padding:.5em;font-size:95%}form{border:none;margin:0}textarea{width:100%;padding:.1em}select{vertical-align:top} #toc,.toc,.mw-warning{border:1px solid #aaa;background-color:#f9f9f9;padding:5px;font-size:95%}#toc h2,.toc h2{display:inline;border:none;padding:0;font-size:100%;font-weight:bold}#toc #toctitle,.toc #toctitle,#toc .toctitle,.toc .toctitle{text-align:center}#toc ul,.toc ul{list-style-type:none;list-style-image:none;margin-left:0;padding:0;text-align:left}#toc ul ul,.toc ul ul{margin:0 0 0 2em}#toc .toctoggle,.toc .toctoggle{font-size:94%} div.floatright,table.floatright{margin:0 0 .5em .5em;border:0}div.floatright p{font-style:italic}div.floatleft,table.floatleft{margin:0 .5em .5em 0;border:0}div.floatleft p{font-style:italic} div.thumb{margin-bottom:.5em;width:auto;background-color:transparent}div.thumbinner{border:1px solid #ccc;padding:3px !important;background-color:#f9f9f9;font-size:94%;text-align:center;overflow:hidden}html .thumbimage{border:1px solid #ccc}html .thumbcaption{border:none;text-align:left;line-height:1.4em;padding:3px !important;font-size:94%}div.magnify{float:right;border:none !important;background:none !important}div.magnify a,div.magnify img{display:block;border:none !important;background:none !important}div.tright{margin:.5em 0 1.3em 1.4em}div.tleft{margin:.5em 1.4em 1.3em 0}img.thumbborder{border:1px solid #dddddd} .mw-warning{margin-left:50px;margin-right:50px;text-align:center} .usermessage{background-color:#ffce7b;border:1px solid #ffa500;color:black;font-weight:bold;margin:2em 0 1em;padding:.5em 1em;vertical-align:middle} #siteNotice{position:relative;text-align:center;font-size:0.8em;margin:0}#localNotice{margin-bottom:0.9em} .catlinks{border:1px solid #aaa;background-color:#f9f9f9;padding:5px;margin-top:1em;clear:both} #siteSub{display:none}#jump-to-nav{display:none}#contentSub,#contentSub2{font-size:84%;line-height:1.2em;margin:0 0 1.4em 1em;color:#7d7d7d;width:auto}span.subpages{display:block} .center{width:100%;text-align:center}*.center *{margin-left:auto;margin-right:auto} .small{font-size:94%}table.small{font-size:100%} h1,h2{margin-bottom:.6em}h3,h4,h5{margin-bottom:.3em}#firstHeading{padding-top:0;margin-top:0;padding-top:0;margin-bottom:0.1em;line-height:1.2em;font-size:1.6em;padding-bottom:0}div#content a.external,div#content a.external[href ^="gopher://"]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/external-link-ltr-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="https://"],.link-https{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeF6tjzsKg0AQhi09mimsFJLCzpNYCGKbK3gAtfUIljaCoKCCZIs8MMV2v+yCg8siWlh8zOtjhjEAEFmeIopDQtTrTJNEZIxhWysiNfULJFJjDzGnba/aBt4+wAuBzD+tg6a8SVkXf4GET96xmDxNzP39IvE/PPDtXIyVpYinv14A5F0laJ8oYFgAAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/lock-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="mailto:"],.link-mailto{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADBQTFRF////////iIqF9vb26urpycfDvb275eXj2djV+/v4srKy6efio6GcqKejsa6q8fDtVM9qIQAAAAF0Uk5TAEDm2GYAAABOSURBVHheBcExDkAwGIDRL43NpJOt6a9hMdVilP8gklqsHMJmt4qeyeI03oNSNkCrAIU/7YTWbwp0zz4rTXZHxF/9YA15HTG4+4NFRNofUBMMOBBNZngAAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/mail-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="news://"]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHtJREFUeF6NkEEKgCAQRT2w1wiiUxgk0SKiTe6i9oKeQXDhKSZmYAJRKeHh4j//DIp+6OAPJH6cXJRSZqSUQClViBjUKER8zXAbUhev+6Q7hMA0G1msNtIo5zxhrX3xzlNG4ravYMwBMUZsKsBsXjQIABCTHlsfTXuj8wCN3T2QBjtcwQAAAABJRU5ErkJggg==) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/news-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="ftp://"],.link-ftp{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAExJREFUeF5VyEEKwCAMAMH83o/0LT6kFHqQYqkevG1jIITs3kaQgn+A7A29ujnw5NKrsaPCrTegBBrRMzYeXkbGzsdkZRwsPWMUmEd+CkSgVeVp2OkAAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/file-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href ^="irc://"],div#content a.external[href ^="ircs://"],.link-irc{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHRJREFUeF590E0KgCAQBWAvH0TXigI3ZccQ/8H91ExqKNrAW8j7kFG27SvMyzQM9s8whuBnENdQSllFKdWFWFC01pQQwhASMMaAtXYIMQScc/0dxSXyIaPq1ZzzF6JOsKBTHOC9hxgjoQLbf2tRgekWKka5AShBSepvauUSAAAAAElFTkSuQmCC) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/talk-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href $=".ogg"],div#content a.external[href $=".OGG"],div#content a.external[href $=".mid"],div#content a.external[href $=".MID"],div#content a.external[href $=".midi"],div#content a.external[href $=".MIDI"],div#content a.external[href $=".mp3"],div#content a.external[href $=".MP3"],div#content a.external[href $=".wav"],div#content a.external[href $=".WAV"],div#content a.external[href $=".wma"],div#content a.external[href $=".WMA"],.link-audio{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKBAMAAAB/HNKOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADBQTFRF////dX8qyNF7eYMzwsxrsr9G8PHrm6Jrt7uakJVmn6OB1duat8NQi5YzhI4ykZR07gQraQAAAAF0Uk5TAEDm2GYAAABJSURBVHheNcSxDUBQFIbR727glxvKl3dHsIHCGESrNIIR7KE1hQ1MoDSCiMhJDixSDWVEhuZbei/sf/Jqbdn28+jxYe4u7CaND+p5C05J6bE1AAAAAElFTkSuQmCC) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/audio-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href $=".ogm"],div#content a.external[href $=".OGM"],div#content a.external[href $=".avi"],div#content a.external[href $=".AVI"],div#content a.external[href $=".mpeg"],div#content a.external[href $=".MPEG"],div#content a.external[href $=".mpg"],div#content a.external[href $=".MPG"],.link-video{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAP9bkSK1AAAAXElEQVR4Xi2NMQoFMQgFvbpgHUj5LvF6K7sFQXKFsOew2G/xuylmGPn62Wb76U+ayHsTbDnrQMNrHdkZRChyi730KvK1QUWVD47gzoCOMBkXPSZrIuumseW/iKU/eKdG9xXBa10AAAAASUVORK5CYII=) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/video-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px}div#content a.external[href $=".pdf"],div#content a.external[href $=".PDF"],div#content a.external[href *=".pdf#"],div#content a.external[href *=".PDF#"],div#content a.external[href *=".pdf?"],div#content a.external[href *=".PDF?"],.link-document{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE5JREFUeF5lykEKgDAMBdF/+17Es/QkiosiCBURXIzJooZohmweX6gwmkCeI+Oqc2C1FnvnF2ejlQYU0tLK2NjY6f/l8V12Ti7uhFFgDj19b58EwXuqkAAAAABJRU5ErkJggg==) center right no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/document-icon.png?2011-09-19T16:11:40Z) center right no-repeat!ie;padding-right:13px} div#content a.extiw,div#content a.extiw:active{color:#36b; background:none;padding:0}div#content a.extiw:visited{color:#636}div#content a.extiw:active{color:#b63} div#content a.external{color:#36b}div#content a.external:visited{color:#636; }div#content a.external:active{color:#b63}div#content .printfooter{display:none} #pt-userpage,#pt-anonuserpage,#pt-login{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAANCAYAAACQN/8FAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAHOSURBVCjPY2BAAjtLxLmPN4pFn2gSTdrfICDAgA2c65C0uznf6erT9dH/H6/0+39zut6d051SfiiK9jcwsFyfa3v21Z7S/++Odf1/uSP7/6OF1v+vT9O7ub9BlAdJoajBw+W+P98crPv/8eLC/6/2lPx/vNj+/705xv+PNwsHwRUerOFTvTXX9sfzjTFg056tC/v/YJbu//tzjP4eaxR3hiv8z8DAuKPF4N7DuUb/H84z/X9/hsb/BzM1/x/qMnxwJo2BFa5QP3rKpMjSiT/XtTr+vzzV+P+Vacb/N7fb/48v6fikHTYhFaxII3iSr0vRmm/muZv++9du/L969Yr/Wzeu+O9Tvvq/Rcay//aZC15reHXoMtimz91ulrnyv1n22v/muRv/960693/Fniv/TdKX/zdKXvDfPHX+f9PYySsYbFJnXDWIm/nfOG0pWDKkdsP/oonbgYoW/jdImPNfL2bKf+v4SRcZTCK6D5gkTAcLGibO/W+aMu+/b8mS//pxM8CKdAPr/xtFdB9lkDQNszOP7r1tnTLzr03qzP/WQGyVAqRTpv+3Tprxzzi88560VZo3xNui2jxi+oFB4oYRNaL6Ic0gDGEHh4HkQEoAjALoHv5slukAAAAASUVORK5CYII=) left top no-repeat;background:url(//bits.wikimedia.org/skins-1.18/vector/images/user-icon.png?2011-09-19T16:11:40Z) left top no-repeat!ie;padding-left:15px !important;text-transform:none}.redirectText{font-size:140%}.redirectMsg img{vertical-align:text-bottom}.toccolours{border:1px solid #aaa;background-color:#f9f9f9;padding:5px;font-size:95%}#bodyContent{position:relative;width:100%}#mw-js-message{font-size:0.8em}div#bodyContent{line-height:1.5em} #ca-unwatch.icon a,#ca-watch.icon a{margin:0;padding:0;outline:none;display:block;width:26px; padding-top:3.1em;margin-top:0; margin-top:-0.8em !ie;height:0;overflow:hidden;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAAQCAMAAAClQEgHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFoNb/+vr52tXLdcP/ltL/ysKt39rPrdz/xtDT8vLwwrJxodr/vqxjzdnr8v7+ntb/uuX/i87/ytTV9fb3zuz+8eOU+fr8zvH/wuX/ecT/hbrnj7XBltb/m9T/h8z/jtH+c8H/vq53lL/Ovq109vb1/v7rx8CuhcT0xLJlot3/2PL/kc//59N3s9//v7KGbL7/mNf//v395NSLmdr//Pz7ccT/wbOIZ7v/ybZk6OzzpNf/icPu0cm2g8n/p9n/9fTzva1ouuL/samQwu3/scfhfrbj8e/q4+bnyLJQ6u3tqtr/irbG7PH5fcz/0d7ww+r/zcuL6Obh9f7/hsv/s8+r+e2rw7J2rb3C+fj2icTy1O7/jrvO1s++vMyUz8zGocna6+rn8vDtlLK8aL3/d8X///vV7fz/vraklMr039nMtNjqp97/o9362ejN4vb/zcN7sN3/vfP/bsD/1dLNhK2+yLeIkrri28drz7tp5N7TiK26grXi3trTccP/vub/rd//+v//qM7fyeHMztmq5PT8u6t0/f3+/P39ksDwk8HQtMTH3fn/kdH/ltLpxb5o0dzsnND6ssXbzun5rdru2+Dh5+vsz9nadrrx1eLz+fLM7/z/w71z//zPgMz/8eWrwtKT9vn8jbPCf7vs1N3pua1terXo1O3tqtfWwOX51cV5dMH/vtmy28p8fLXR4efx9emq///8z9TbzrxowLOP5ea57///nq2xy7xo///5frrnwrSP9PX2+vv7ztzwvd3P2vH5r9z/8/X4nMrlsN//qLq9wa5zh7fikdf/tuL9zbpo3tnQ1u/kx8rL+/z8kq+6+vLGkqKq6f//oMrfxuf8xbVwqLvSh7vq8PP3ltD6d8P/v7Ngx7dqwbFt/PGyk8jv9vf3zLhofqy/wdPqyeTc0vH9//3kxun5i7O/x87X09mr1sRzmK3C3dnQz9XXmLvg///6uc7ozLpq7O7u//zc7evoyfT/+/z+mtf/9e25zcJt7ezowMXGu8nM+Pn5////8/n77InDmQAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAJbSURBVHjaYvgPAb+3/ccK4tKxi7+4SkA9A5SWnuyJVSGXDidWcSnN6/jVQw0+s//fBWzqin9scMImvtF/62us6rfwOaEYXPLvXyM2pzn8+7dGBYt4dZ5WhjA29d3i+Sowg/d4TjuX9+9fQwnH1L8oqhIrN5//909VOdPNBEXcZ8Y7CQlHEam9Pt/Q1O/KrXNcdhSsnuFIZ3zWpLR/QMAnkhWvJA1TxVqx0mheKkj883qjVx9LYeIukRkT2P3rCtgPCGTfiLTuQKjPD3iZK1DAzv64OWD27VIG9+h/SOASB0xhwklk8XImmLilOp+IhK6XFQODrCyD+D1euPoHF50FDoPFZWQKfzIx/N/9PAiuP3oKwmOMYU9hwu8tAhHiYteidO34WbRtFZg1d65DVn+6HiJem3MrEBTGZ6taIPqDvN1RwkxxJkRcVeMLivixEwwsgpLmRfKulqjqm/jB4r08vyCp4tMhiAFPOFCj2L4cIh7KhCp+UJ1bjjlZ/6Y8L5r6PmOQuGkIEzS5vV0BMWBWOKrCGlGIeCorqvhieTlm5pRVkgYuaOpj5zLXmiqkLGeFGhwOTBRRl4EmJKEqVJsDdC3Q8B16qOITs4MNegS/B3OXoanf53s8JNbYN0cPanDSPy3vP0JVz/4tRFVo9u+uRcwbZdF/d1DFy8S5Fz3qr5ZxdkVT/3W1Rsyp1vmFS6AGP1TqAolzSK+9j6KQZ5MNiGK64sGIIr7U+gOI4pWaLoaqfjtEPRdIPdDgdiFY5hRCyaWGbDDz2CKQxdv8YOb5LcCtnuE/jQBAgAEAQlFsBT+lqfQAAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/watch-icons.png?2011-09-19T16:11:40Z)!ie}#ca-unwatch.icon a{background-position:-43px 60%}#ca-watch.icon a{background-position:5px 60%}#ca-unwatch.icon a:hover,#ca-unwatch.icon a:focus{background-position:-67px 60%}#ca-watch.icon a:hover,#ca-watch.icon a:focus{background-position:-19px 60%}#ca-unwatch.icon a.loading,#ca-watch.icon a.loading{background-image:url(data:image/gif;base64,R0lGODlhEAAQAMQfANra2uLi4vDw8PLy8ujo6Ozs7NbW1vj4+Pb29s7Oztzc3NTU1O7u7uDg4NHR0erq6v39/d7e3vz8/Pv7+/7+/tPT09jY2Pr6+tnZ2efn5/X19eXl5ebm5vT09P///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAwAfACwAAAAAEAAQAAAFa+Anjl9QkShacVqabp2XuKjjecHhStrjHDdIgtORiCyWSEZwud0mg0zEUhkYnNhsY/O5OCRZrEEwgvzCkgqZhGiEB1wUgRGeAFKApqcjcJ5QCx4aFQEECX1/JAlJJBsVFRMkEBkXLhyVNJkhACH5BAkDAB8ALAAAAAAQABAAAAV74CeO4hUQZEoGhqGqWzQtEnlYRCYMGSB5BkTKQCgUOBGPkjBIdQDKqBLhaJI4D6l0gylMRg6IVkmhNBIjxWBM8XAwHNFAIdYWDA0SRhNtKy0CJAUVEAcRAQJkFikZDg4EBB0RDR4dGCkIEhAjFBsBDwovKo0BoioFQiMhACH5BAkDAB8ALAAAAAAQABAAAAWB4CeO5HeU33OVl5IIpYEFh/QR1rYNZSMUAYVBwfBYbKRJwwPxFDxQjAbloECvHgMEBUBgPZTApjSxeL+eQGDUsQwkaGhBcUBYinGI5GBIEBwEGhxwVwwLFgoRHQwECgIADRFXBgUfEygfEBEDTmuYIxAJFAYwnyMFABVbpiMYGSghACH5BAkDAB8ALAAAAAAQABAAAAV+4CdKjWieKOJs6De1U5Zhg4YcmaG0kXcElQDtEWkZPMgMBGlofQDIqK9pmhAADClSEDBtAICJROvR7EQGx5LsgQAOogKm0LhQ2IDRQRJRFKIHAh4XAXknEw5REQsRBgAOEigRFBQEERofAgJiKBoZAgsXTicUDgYDoygNXU4hACH5BAUDAB8ALAAAAAAQABAAAAV54Cd+EFBNY6p+hgCssOERGwSP3eZBgUIEG0xhdGFpPMjChjNoRD6XIGBDQVo9FIcogZnsrlbLQNRQfMEewVN0ERAaaE9AoDoECGj76lBBTxQwDlYBEQweGwwqEDIHCwIbBgAAFioUBgUOdCIaBRwrBhUHNykQY6MfIQA7);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/watch-icon-loading.gif?2011-09-19T16:11:40Z)!ie;background-position:5px 60%}#ca-unwatch.icon a span,#ca-watch.icon a span{display:none}div.vectorTabs ul{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAIAAABmjeQ9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeF5lTtEKgEAMMv//j/O0IxlH9CA6N2WURAA/OHl5GeWAwUUHBcKV795FtTePxpmV3t9uv8Z3/cmvM88vzbbrAV/dQdX+eas3AAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/skins-1.18/vector/images/tab-break.png?2011-09-19T16:11:40Z)!ie;background-position:right bottom;background-repeat:no-repeat} .tipsy{font-size:0.8em}}
|
|
2
|
+
|
|
3
|
+
/* cache key: enwiki:resourceloader:filter:minify-css:4:7fa8a42693a0e778407129643f72709b */
|
|
Binary file
|
package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/saved_resource
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Geo = {"city":"Marlton","country":"US","lat":"39.850601","lon":"-74.909897","IP":"198.185.18.207","netmask":"32"}
|
package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/search-ltr.png
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!-- saved from url=(0038)http://howtonode.org/step-of-conductor -->
|
|
3
|
+
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><title>The Step of the Conductor - How To Node - NodeJS</title><meta name="description" content="Learn the zen of coding in NodeJS."><meta name="viewport" content="width=device-width"><link href="http://howtonode.org/style.css" rel="stylesheet"><link href="http://howtonode.org/print.css" rel="stylesheet" media="print"><link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://howtonode.org/feed.xml"><link href="http://howtonode.org/favicon.ico" rel="icon" type="image/x-icon"><script src="./The Step of the Conductor - How To Node - NodeJS_files/thread.js" async="" charset="UTF-8"></script><link rel="stylesheet" type="text/css" href="./The Step of the Conductor - How To Node - NodeJS_files/defaults.css"><script src="./The Step of the Conductor - How To Node - NodeJS_files/disqus.js" async="" charset="UTF-8"></script><link rel="stylesheet" type="text/css" href="./The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.css"><script src="./The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.js" async="" charset="UTF-8"></script></head><body data-rendering="true"><iframe id="twttrHubFrame" allowtransparency="true" frameborder="0" scrolling="no" tabindex="0" name="twttrHubFrame" style="position: absolute; top: -9999em; width: 10px; height: 10px; " src="./The Step of the Conductor - How To Node - NodeJS_files/hub.1326407570.html"></iframe><div id="container"><div id="header"><a href="http://howtonode.org/"><h1>How To Node</h1><h2 class="tagline">The zen of coding in node.JS</h2></a></div><div id="main"><div class="article"><a href="http://howtonode.org/a58e6bf6d376b0cabb26397e4c8238204ee35ffe/step-of-conductor" class="sha-version">Static Version</a><h1><a href="./The Step of the Conductor - How To Node - NodeJS_files/The Step of the Conductor - How To Node - NodeJS.html">The Step of the Conductor</a></h1><p>There have been several async management libraries proposed and written. I'm guilty of at least three of them. The reason for this proliferation of code is that they're all trying to solve a very real problem with writing non-trivial applications that make heavy use of async callbacks.</p>
|
|
4
|
+
|
|
5
|
+
<h2>Parallel and Serial</h2>
|
|
6
|
+
|
|
7
|
+
<p>Most of the libraries to date help solve two main common patterns of function use. They are parallel execution and serial execution. In parallel execution you fire off several asynchronous functions and want a common callback to be called then they all finish. The serial pattern is when you have a chain of steps that can't execute till the previous one is done. Combining these two patterns gives some pretty flexible uses of async functions without excessive boilerplate or nesting.</p>
|
|
8
|
+
|
|
9
|
+
<h3>Step</h3>
|
|
10
|
+
|
|
11
|
+
<p>A very small library that I've been using for these simple cases is based on the idea from Will Conant's <a href="http://github.com/willconant/flow-js">flow-js</a>. I simplified the idea down to it's core and made some little assumptions to make it easier to use with node's error handling pattern. I call it <a href="http://github.com/creationix/experiments/blob/master/step.js">step</a>. </p>
|
|
12
|
+
|
|
13
|
+
<p>Here is a snippet of using <code>Step</code> in the <a href="http://github.com/creationix/wheat">wheat</a> blogging engine I'm working on:</p>
|
|
14
|
+
|
|
15
|
+
<div class="snippet"><a href="http://howtonode.org/step-of-conductor/step1.js" class="code-link">step1.js</a><pre><code><span class="kwd">function</span><span class="pln"> loadArticle</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln"> callback</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> props</span><span class="pun">;</span><span class="pln"><br> </span><span class="typ">Step</span><span class="pun">(</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> readFile</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="typ">Git</span><span class="pun">.</span><span class="pln">readFile</span><span class="pun">(</span><span class="pln">path</span><span class="pun">.</span><span class="pln">join</span><span class="pun">(</span><span class="str">"articles"</span><span class="pun">,</span><span class="pln"> name </span><span class="pun">+</span><span class="pln"> </span><span class="str">".markdown"</span><span class="pun">),</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">);</span><span class="pln"><br> </span><span class="pun">},</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> getAuthor</span><span class="pun">(</span><span class="pln">err</span><span class="pun">,</span><span class="pln"> markdown</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">throw</span><span class="pln"> err</span><span class="pun">;</span><span class="pln"><br> props </span><span class="pun">=</span><span class="pln"> markdownPreParse</span><span class="pun">(</span><span class="pln">markdown</span><span class="pun">);</span><span class="pln"><br> props</span><span class="pun">.</span><span class="pln">name </span><span class="pun">=</span><span class="pln"> name</span><span class="pun">;</span><span class="pln"><br> loadAuthor</span><span class="pun">(</span><span class="pln">props</span><span class="pun">.</span><span class="pln">author</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">);</span><span class="pln"><br> </span><span class="pun">},</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> finish</span><span class="pun">(</span><span class="pln">err</span><span class="pun">,</span><span class="pln"> author</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">throw</span><span class="pln"> err</span><span class="pun">;</span><span class="pln"><br> props</span><span class="pun">.</span><span class="pln">author </span><span class="pun">=</span><span class="pln"> author</span><span class="pun">;</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> props</span><span class="pun">;</span><span class="pln"><br> </span><span class="pun">}</span><span class="pln"><br> </span><span class="pun">);</span><span class="pln"><br></span><span class="pun">}</span></code></pre></div>
|
|
16
|
+
|
|
17
|
+
<p>In this example, I pass three steps as functions to the <code>Step</code> helper. The first two end in a call to an asynchronous function. I pass the value <code>this</code> as the callback. This hooks's into <code>Step</code>'s system so that it know to call the next step when the first is done. The parameters given to the callback are passed through to the next step. Notice that I created a closure variable <code>props</code>. This is so that the third step has access to the props defined in the second step, but not passed through by the <code>loadAuthor</code> call. The third step then does some final processing and calls the main callback to the outer function.</p>
|
|
18
|
+
|
|
19
|
+
<p>In essence <code>loadArticle</code> is a composite asynchronous function that had two other asynchronous function calls mixed with other synchronous logic within it. </p>
|
|
20
|
+
|
|
21
|
+
<p>How about an example that makes use of the parallel feature of <code>Step</code>:</p>
|
|
22
|
+
|
|
23
|
+
<div class="snippet"><a href="http://howtonode.org/step-of-conductor/step2.js" class="code-link">step2.js</a><pre><code><span class="com">// Reads the authors in the authors directory and returns a data structure</span><span class="pln"><br></span><span class="kwd">function</span><span class="pln"> loadAuthors</span><span class="pun">(</span><span class="pln">callback</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> names</span><span class="pun">;</span><span class="pln"><br> </span><span class="typ">Step</span><span class="pun">(</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> getFileNames</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="typ">Git</span><span class="pun">.</span><span class="pln">readDir</span><span class="pun">(</span><span class="str">"authors"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">);</span><span class="pln"><br> </span><span class="pun">},</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> readFileContents</span><span class="pun">(</span><span class="pln">err</span><span class="pun">,</span><span class="pln"> results</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">throw</span><span class="pln"> err</span><span class="pun">;</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> parallel </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">parallel</span><span class="pun">;</span><span class="pln"><br> results</span><span class="pun">.</span><span class="pln">files</span><span class="pun">.</span><span class="pln">forEach</span><span class="pun">(</span><span class="kwd">function</span><span class="pln"> </span><span class="pun">(</span><span class="pln">filename</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> name </span><span class="pun">=</span><span class="pln"> filename</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="str">/\.markdown$/</span><span class="pun">,</span><span class="pln"> </span><span class="str">''</span><span class="pun">);</span><span class="pln"><br> loadAuthor</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln"> parallel</span><span class="pun">());</span><span class="pln"><br> </span><span class="pun">});</span><span class="pln"><br> </span><span class="pun">},</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> parseFileContents</span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">throw</span><span class="pln"> err</span><span class="pun">;</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> authors </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{};</span><span class="pln"><br> </span><span class="typ">Array</span><span class="pun">.</span><span class="pln">prototype</span><span class="pun">.</span><span class="pln">slice</span><span class="pun">.</span><span class="pln">call</span><span class="pun">(</span><span class="pln">arguments</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">).</span><span class="pln">forEach</span><span class="pun">(</span><span class="kwd">function</span><span class="pln"> </span><span class="pun">(</span><span class="pln">author</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> authors</span><span class="pun">[</span><span class="pln">author</span><span class="pun">.</span><span class="pln">name</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> author</span><span class="pun">;</span><span class="pln"><br> </span><span class="pun">});</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> authors</span><span class="pun">;</span><span class="pln"><br> </span><span class="pun">}</span><span class="pln"><br> </span><span class="pun">);</span><span class="pln"><br></span><span class="pun">}</span></code></pre></div>
|
|
24
|
+
|
|
25
|
+
<p>This example is similar, but with the new addition of the <code>this.parallel</code> function. This parallel function generates a new callback when called and sets an internal counter in the <code>Step</code> system. Though it's hard to see with this example, the arguments to parseFileContents are first a single <code>err</code> and then the second argument to each of the <code>loadAuthor</code> callbacks.</p>
|
|
26
|
+
|
|
27
|
+
<p>Perhaps this example will be more clear:</p>
|
|
28
|
+
|
|
29
|
+
<div class="snippet"><a href="http://howtonode.org/step-of-conductor/step3.js" class="code-link">step3.js</a><pre><code><span class="kwd">var</span><span class="pln"> </span><span class="typ">Step</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">require</span><span class="pun">(</span><span class="str">'step'</span><span class="pun">);</span><span class="pln"><br><br></span><span class="typ">Step</span><span class="pun">(</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> loadData</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="typ">Git</span><span class="pun">.</span><span class="pln">getTags</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">.</span><span class="pln">parallel</span><span class="pun">());</span><span class="pln"><br> loadAuthors</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">.</span><span class="pln">parallel</span><span class="pun">());</span><span class="pln"><br> </span><span class="pun">},</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> renderContent</span><span class="pun">(</span><span class="pln">err</span><span class="pun">,</span><span class="pln"> tags</span><span class="pun">,</span><span class="pln"> authors</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> response</span><span class="pun">.</span><span class="pln">simpleText</span><span class="pun">(</span><span class="lit">500</span><span class="pun">,</span><span class="pln"> err</span><span class="pun">.</span><span class="pln">stack</span><span class="pun">);</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> data </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{};</span><span class="pln"> </span><span class="com">// Truncated for clarity</span><span class="pln"><br> renderTemplate</span><span class="pun">(</span><span class="str">'index'</span><span class="pun">,</span><span class="pln"> data</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">);</span><span class="pln"><br> </span><span class="pun">},</span><span class="pln"><br> </span><span class="kwd">function</span><span class="pln"> showPage</span><span class="pun">(</span><span class="pln">err</span><span class="pun">,</span><span class="pln"> content</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">err</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> response</span><span class="pun">.</span><span class="pln">simpleText</span><span class="pun">(</span><span class="lit">500</span><span class="pun">,</span><span class="pln"> err</span><span class="pun">.</span><span class="pln">stack</span><span class="pun">);</span><span class="pln"><br> render</span><span class="pun">(</span><span class="pln">request</span><span class="pun">,</span><span class="pln"> response</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> title</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Index"</span><span class="pun">,</span><span class="pln"><br> content</span><span class="pun">:</span><span class="pln"> content<br> </span><span class="pun">});</span><span class="pln"><br> </span><span class="pun">}</span><span class="pln"><br></span><span class="pun">);</span></code></pre></div>
|
|
30
|
+
|
|
31
|
+
<p>This is the route handler for the front page of the blog. It needs data from two different async calls and can't render the main template till they're loaded. Then after the main template is rendered, the layout can be rendered. Both <code>Git.getTags</code> and <code>loadAuthors</code> output two arguments, but their errors arguments are compressed into a single <code>err</code>. If both emitted errors that the latter would overwrite the first.</p>
|
|
32
|
+
|
|
33
|
+
<h2>More Advanced Patterns</h2>
|
|
34
|
+
|
|
35
|
+
<p>You'll notice in these patterns that there is a fair bit of hacks to fit the cases where the logic isn't exactly parallel or serial. The closure variables are a kind of limited scope global. The repeated error handling code is redundant. Wouldn't it be nice if we could specify which output went to what input and chain arbitrary flows?</p>
|
|
36
|
+
|
|
37
|
+
<h2>Conductor is born!</h2>
|
|
38
|
+
|
|
39
|
+
<p>The other night, while talking with <a href="http://github.com/tmpvar">tmpvar</a>(Elijah Insua), we decided it would be great to make a system that could calculate arbitrary control flows when given a set of dependencies. A few productive hours later <a href="http://github.com/creationix/conductor">conductor</a> was born.</p>
|
|
40
|
+
|
|
41
|
+
<p>Instead of shoe-horning a problem into a preset pattern to make it easier on the computer, why don't we just explain the problem to the computer and let it figure out how to handle it for us?</p>
|
|
42
|
+
|
|
43
|
+
<h3>Loading an Article</h3>
|
|
44
|
+
|
|
45
|
+
<p>The example from above that uses <code>Step</code> could be rewritten to use <code>Conduct</code> (the function exported by the <a href="http://github.com/creationix/conductor">conductor</a> library):</p>
|
|
46
|
+
|
|
47
|
+
<div class="snippet"><a href="http://howtonode.org/step-of-conductor/conductor1.js" class="code-link">conductor1.js</a><pre><code><span class="kwd">var</span><span class="pln"> </span><span class="typ">Conduct</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">require</span><span class="pun">(</span><span class="str">'conductor'</span><span class="pun">);</span><span class="pln"><br><br></span><span class="com">// Define the loadArticle function using Conduct from conductor.</span><span class="pln"><br></span><span class="kwd">var</span><span class="pln"> loadArticle </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Conduct</span><span class="pun">({</span><span class="pln"><br> M</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="str">"_1"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> loadMarkdown</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln"> callback</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="com">// Async function that loads the contents of the markdown file.</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> filename </span><span class="pun">=</span><span class="pln"> path</span><span class="pun">.</span><span class="pln">join</span><span class="pun">(</span><span class="str">"articles"</span><span class="pun">,</span><span class="pln"> name </span><span class="pun">+</span><span class="pln"> </span><span class="str">".markdown"</span><span class="pun">);</span><span class="pln"><br> </span><span class="typ">Git</span><span class="pun">.</span><span class="pln">readFile</span><span class="pun">(</span><span class="pln">filename</span><span class="pun">,</span><span class="pln"> callback</span><span class="pun">);</span><span class="pln"><br> </span><span class="pun">}],</span><span class="pln"><br> P</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="str">"_1"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"M1"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> parseMarkdown</span><span class="pun">(</span><span class="pln">name</span><span class="pun">,</span><span class="pln"> markdown</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="com">// Sync function that parses the markdown and adds the name property</span><span class="pln"><br> </span><span class="kwd">var</span><span class="pln"> props </span><span class="pun">=</span><span class="pln"> markdownPreParse</span><span class="pun">(</span><span class="pln">markdown</span><span class="pun">);</span><span class="pln"><br> props</span><span class="pun">.</span><span class="pln">name </span><span class="pun">=</span><span class="pln"> name</span><span class="pun">;</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> props</span><span class="pun">;</span><span class="pln"><br> </span><span class="pun">}],</span><span class="pln"><br> A</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="str">"P1"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> loadAuthor</span><span class="pun">(</span><span class="pln">props</span><span class="pun">,</span><span class="pln"> callback</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="com">// Async function that loads the author based on props.author</span><span class="pln"><br> loadAuthor</span><span class="pun">(</span><span class="pln">props</span><span class="pun">.</span><span class="pln">author</span><span class="pun">,</span><span class="pln"> callback</span><span class="pun">);</span><span class="pln"><br> </span><span class="pun">}],</span><span class="pln"><br> F</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span><span class="str">"P1"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"A1"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> finalize</span><span class="pun">(</span><span class="pln">props</span><span class="pun">,</span><span class="pln"> author</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br> </span><span class="com">// Final sync function that attaches the author object.</span><span class="pln"><br> props</span><span class="pun">.</span><span class="pln">author </span><span class="pun">=</span><span class="pln"> author</span><span class="pun">;</span><span class="pln"><br> </span><span class="kwd">return</span><span class="pln"> props</span><span class="pun">;</span><span class="pln"><br> </span><span class="pun">}]</span><span class="pln"><br></span><span class="pun">},</span><span class="pln"> </span><span class="str">"F1"</span><span class="pun">);</span></code></pre></div>
|
|
48
|
+
|
|
49
|
+
<p><img src="./The Step of the Conductor - How To Node - NodeJS_files/example1.dot" style="float:right;margin:0 0 10px 10px"></p>
|
|
50
|
+
|
|
51
|
+
<p>At first glance this looks like a classic case of over-engineering. For this simple case you'd be right, but we're keeping it simple for purposes of explanation.</p>
|
|
52
|
+
|
|
53
|
+
<p>There is much to explain about the <a href="http://github.com/creationix/conductor">conductor</a> library, so in an effort to get this article out this year, I'll end here. It's fully functionally, but need some serious documentation. Look for more in a future article.</p>
|
|
54
|
+
|
|
55
|
+
<p>The true power of conductor will be realized when <a href="http://github.com/tmpvar">tmpvar</a> finishes his visual interface to it. For now, read the commented code and have fun.</p>
|
|
56
|
+
|
|
57
|
+
<h2>Conclusion</h2>
|
|
58
|
+
|
|
59
|
+
<p>So which is better and why do I have three async libraries of my own. Well I think that's just a testament to the fact that there is no one library that fits all use cases perfectly. Also I've started to dive into the world of node Streams and this opens a whole new can of works. Expect future articles about node streams now that node v0.1.90 is out!</p>
|
|
60
|
+
|
|
61
|
+
<p>I tend to use Step mostly in my projects because it fits well with my style. For some fun working examples of Step check out the source to my new blogging engine <a href="http://github.com/creationix/wheat">Wheat</a>.</p><hr style="clear:both"><div class="body" id="disqus_thread"><div id="dsq-content-stub" style="display: none; "><img width="71" height="17" alt="DISQUS" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAARCAYAAAH4YIFjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABwdJREFUeNpi/P//PwMhwAIiGBkZGeK6V8JVh9rqdfrc0ixnEDb+wPD2rAAjMSYBBBBRisDWwKxCthIE/q8Q+A8yhCiTAAIIrCi+ZxVMZSAQr19UGs4IMxWd/X8Rw3/GOKDhW43fgzwF1hX7n5EJ2dSp2QFNUKcZwJ31/78CkvPBGkGGMXidSUTWCxBAxAUAEQAcJzCvIXsDBPwsNBU2nbj+AMpdsFA8PAHsLZj3QC5D9hrIAEtN+RMwAzRkxcB0iK3eQ6iQIRAnoMTE//8CyHwmWHQdv/7QAiZ44/ErMP383acsqNB5iMnPlsFdsUZ6IU3CCCCA4AYBw8kBJgj06gGkmHJAFgPyQV4ExeQEoNgHJHUBQMoAWRzoerBeYHgeQOJ/APIvQPkNUP4EuIdADBAGBRMQOABxQcakdSipHZldNGvL2zWHL8kD1d0HieVN33QYqnc/EAfULNwJVw8KTniQwvjAdPz/SEwKmL1KfC5QjwEQr4e5AyVdA3P4ASCe8O3nb1whmtib6r3IXlfpATBEFbpWH9ygJSdmBtXrOHPbyZWPXn1AqOZRwDSBS+YHo82SOQwiZnYMoS+EGC42nGdYzBiAnKpgGAbeA3ECkjwYQNnzH758///6o5cgofVIagy+/vgFF//y/ecHJLn1/18AA+/teZBcPZL4eSTxBJg7AAKIaomRmpkeV2IG5UcDpMSsAM2zF4BiG9DUFaCLQxPwBWCC/QBkg/QqoCVuEN4ASuDIaWc/DIMSItBxH0GCrkaqCVBxWO4BJWBQcK/PmrL+I1S8H0i9h4mjFfX7GTRyIdEuHzIfZtb/Zdw3oGyQnvP/d9pNgRc+MLCwJMxxWk7AI6Ar+YCWVSLLyYkJzIYlZqC6RGBhbg/lFwDlQHoDgfgALLfhjY8/X9XhpWPs/wWM7odyMBwDylU8nOzyILYIH3cZslxBgM0cKHM+MOTAGCZnri7XCdS7ASgGLsc/fPlug9cxlrO/wUvYxYwJwCgLwHAMcrVlqCJ9BVlchJ+7EhRyQPwAyGaAFnhgsOPMzUhQroLVAU76yp/gGp/vtQbTr45pwMWOp1oDQ6QQiGEi6+EJGLmah0YJQ6CVtu3ivecKYHIpE9b8BPqcDSnawHSSu8m3eTvPyAHlzsPkDl25/wXMYAOq+XgtBFwIfn/GwCAOSq8HYCGCsNh8+hvksgYZIJchDkjljAKoHAKVJ6ByBbnmA5XESOL1oFIZSc9/cJkC1IukPuH/z/cw8fswdwyqcgYgwAaVYwYbQEnDSI1LbGABEDcCC1lYS4yhfO42n+fvPm9GKsAZkfJDA7RcwwYmQM1CbpUUADU3AB3AjxJ7wFwAFGsAqp2A0mBDahww8Gv4Mvrf2AKXWyMzgeHbk3wwh5X/DGPkR1OoHlCmn49cGCABkL8SgZn8ANbAQQaV4ZBK6yGwgbDr3G2GNx+/gkqShMTe1V///vsnA/KYjoKECjBwMPQCW0EngOrNQWxbHQWGFA8zBlAj5eztpwwbjl9lyPG1DFOUEAIFDqxJB6ksoC1ZN2NVsDm7zt4GNUhBgdUPrXwckWtQOJB0VQE2XRF8UQt9hodrIGw+FaDcWVjAwAshhsD7kAbPO2Dr78ZEBoZfHxQYHNYbwEogvIGjKSfOiNysBpaEL/acv8MODBhuUX7u00BhVVx6DZWlxHcDAxQEDl95AMZQAGqHLlSSFIanAnZWll0/f/8Bs2OcDB+5GavJVyGZtevsrYdL9p2XQ6rZGcnKI54nZRj2uoMCAVr4K8JkQAKgJsdEYN12AbmYYSGqYGJk/NC8bO91WHKUFRXgwace6ElDIF4PjHWHc3eeMZy98xSU8mB1mwE0FSQCU8ECZiZGVpi+yw9eLIfVlUyMjIf+/f/Pu/bIlTtIdSX5hauo+RagxxMZfr2fwHB3IT/Dy4MMDI/BzTABaP2aAGzmgPpN4gQDB1pmgIA+EAfcfvoGXl/mB1hXFuBxCLDs6oc26kBJZiIoxShLCqs9e/tp+vdfv8ENB08Tdf9FwHKsMtxxTfvK/SGgbHfx3vNyoL2g7DjR30r74vqjV2yA6lXgbnI2WtoH4yhEfGF4sAISSTcm9wOzDcidoE6lPTBLwRuyDMoJ5+DZagnLJIb/f3mh5edGcKoRs+5neHUUUgZxiIrhrK2wFchc7KwMmsByANjiAZUfoGzhCEpJIDlQowOYffqRC2RQS+f1x68HNx6/ygcqY9A7RMZAc5LcTS/zcLLZwcwB1evAzs/8pfsvwDu9yOplgRECzF4M8a7Gryw05NRB+sDtiC/3HjKcKeaDpgAEADVmNIDlsX4DqFPmCOvvMNxdkAAuX95dQFUPKnv06kEBmQgNOLpV5QbQpAsrcz4QUC+AVJsgqxcgoNcBqQy5QIIdONUDALcn6c0dtMJ9AAAAAElFTkSuQmCC"><img width="16" height="11" alt="..." src="data:image/gif;base64,R0lGODlhEAALAPQAAP///z2LqeLt8dvp7u7090GNqz2LqV+fuJ/F1IW2ycrf51aatHWswaXJ14i4ys3h6FmctUCMqniuw+vz9eHs8fb5+meku+Tu8vT4+cfd5bbT3tbm7PH2+AAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA" style="margin:0 0 3px 5px"></div><div id="dsq-content" style="display: block; " class="clearfix"> <div id="dsq-global-toolbar" class="dsq-clearfix"> <ul class="dsq-global-toolbar-right dsq-clearfix"> <li class="dsq-community-box"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-toolbar-item dsq-tt" onclick="DISQUS.dtpl.actions.fire('community.show'); return false" title="Expand Community Box"><span class="dsq-toolbar-icon"></span></a> </li> <li class="dsq-global-toolbar-dropdown-container"> <div id="dsq-toolbar-dropdown"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-toolbar-logo dsq-toolbar-item dsq-clearfix"><span class="dsq-toolbar-icon">Disqus</span></a> <div id="dsq-toolbar-dropdown-wrap" style="display: none"> <ul class="dsq-clearfix"> <li class="dsq-login-link"><a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('auth.login'); return false"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">Login</span></a></li> <li class="dsq-about-link"><a href="http://disqus.com/" target="_blank"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">About Disqus</span></a></li> </ul> </div> </div> </li> </ul> <ul class="dsq-global-toolbar-left dsq-clearfix"> <li class="dsq-like-thread"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-like-thread-button" class="dsq-toolbar-item dsq-clearfix dsq-tt" onclick="DISQUS.dtpl.actions.fire('thread.vote', 1); return false;" title="I like this page"> <span class="dsq-toolbar-icon"></span> <span class="dsq-toolbar-label">Like</span> </a> </li> <li class="dsq-dislike-thread"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-dislike-thread-button" class="dsq-toolbar-item dsq-clearfix dsq-tt" onclick="DISQUS.dtpl.actions.fire('thread.vote', -1); return false" title="I don't like this page"> <span class="dsq-toolbar-icon">Dislike</span> </a> </li> <li class="dsq-like-panel"> <ul class="dsq-like-faces dsq-clearfix"> <li class="dsq-like-activity"> 7 people liked this. </li> </ul> </li> </ul> </div> <div id="dsq-like-tooltip"> <div id="dsq-share-step-1" class="dsq-share-step"> <h3>Glad you liked it. Would you like to share?</h3> <p class="dsq-tooltip-checkbox"><input type="checkbox" id="dsq-share-thread-facebook" value="Facebook"><label for="dsq-share-thread-facebook"><span class="dsq-facebook">Facebook</span></label></p> <p class="dsq-tooltip-checkbox"><input type="checkbox" id="dsq-share-thread-twitter" value="Twitter"><label for="dsq-share-thread-twitter"><span class="dsq-twitter">Twitter</span></label></p> <ul id="dsq-tooltip-actions"> <li><a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('thread.share.send'); return false" class="dsq-primary-action">Share</a></li> <li><a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('thread.share.cancel'); return false" class="dsq-secondary-action">No thanks</a></li> </ul> </div> <div id="dsq-share-step-2" class="dsq-share-step" style="display:none !important"> <p>Sharing this page …</p> </div> <div id="dsq-share-step-3" class="dsq-share-step" style="display:none !important"> <p>Thanks! <a href="http://howtonode.org/step-of-conductor#" class="dsq-tooltip-decline" onclick="DISQUS.dtpl.actions.fire('thread.share.cancel'); return false">Close</a></p> </div> </div> <div class="dsq-reply " id="dsq-reply"> <div id="dsq-account-dropdown"> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('auth.login'); return false;">Login</a> </div> <h3>Add New Comment</h3> <div class="dsq-avatar"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png"> </div> <div class="dsq-textarea dsq-textarea-reply"> <div class="dsq-textarea-background"> <div class="dsq-textarea-wrapper" style="height: auto; "> <!-- filled dynamically --> <iframe name="easyXDM_DISQUS_net_default7106_provider" id="easyXDM_DISQUS_net_default7106_provider" scrolling="no" frameborder="0" src="./The Step of the Conductor - How To Node - NodeJS_files/reply.html" style="height: 58px; "></iframe></div> <div id="dsq-media-preview" class="dsq-media-preview" style="display:none"> </div> <div class="dsq-post-tools"> <ul> <li class="dsq-post-as"> <button type="button" class="dsq-button" onclick="DISQUS.dtpl.actions.fire('comments.validate', null, this);"> Post as … </button> </li> <li class="dsq-attach-media"> <div class="dsq-attach-media-container"> <span>Image</span> <!-- filled dynamically --> <iframe name="easyXDM_DISQUS_net_default7107_provider" id="easyXDM_DISQUS_net_default7107_provider" scrolling="no" frameborder="0" src="./The Step of the Conductor - How To Node - NodeJS_files/upload.html"></iframe></div> </li> <li class="dsq-share-on dsq-clearfix"> </li> </ul> </div> </div> </div> </div> <div id="dsq-sort-by"> <select id="dsq-sort-select" onchange="DISQUS.dtpl.actions.fire('thread.sort', this.value);"> <option value="hot" selected="selected"> Sort by popular now </option> <option value="best"> Sort by best rating </option> <option value="newest"> Sort by newest first </option> <option value="oldest"> Sort by oldest first </option> </select> </div> <h3> Showing <span id="dsq-num-posts">9</span> comments </h3> <ul id="dsq-comments"> <li id="dsq-comment-337675570" data-dsq-comment-id="337675570" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand Tzl2000's profile"> <a href="http://disqus.com/guest/7b207507b7f9bb4879be498893d7e03f/" onclick="DISQUS.dtpl.actions.fire('profile.show', 337675570, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-337675570" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Tzl2000</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 337675570); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 337675570); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-337675570"> <div class="dsq-comment-text" id="dsq-comment-text-337675570"> conductor.js may contain a bug.<br>At the last of performerEngine() function body. (Step1) First it dispatches the main function parameters to dependencies, thus some dependencies may be triggerd to run and may come to the end. (Step2) Second performerEngine() executing the following code snipet:<br>-----------------<br>localPerformers.forEach(function (performer, name) {<br> if (performer.counter === 0 && name !== '_') <br>...});<br>-----------------<br><br>Since Step1 and Step2 are runing paralleled, maybe in Step1, the localPerformers[0..n] have been deleted, so the if clause<br>-------------------------------------------<br>if (performer.counter === 0 && name !== '_')<br>-------------------------------------------<br>may get the execution crashed.<br><br>So the checker should be added as following:<br>---------------------------------------------------------<br>if (performer && performer.counter === 0 && name !== '_')<br>--------------------------------------------------------- </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-337675570"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-337675570"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,337675570); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',337675570, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-337675570" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 337675570);" title="Link to comment by Tzl2000"> 3 months ago </a></li> <li> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-337675570" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 337675570); return false">1 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 337675570, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-337675570"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-337675570"></li> <li id="dsq-comment-54187481" data-dsq-comment-id="54187481" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand Nthalk's profile"> <a href="http://disqus.com/guest/ab303db1c31c208f5a496daa1d7a8ded/" onclick="DISQUS.dtpl.actions.fire('profile.show', 54187481, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-54187481" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Nthalk</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 54187481); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 54187481); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-54187481"> <div class="dsq-comment-text" id="dsq-comment-text-54187481"> Creating state machines like this is complicated and tough to debug. I looked at this example and your code, and came up with a simpler method of multi-event dependency chaning:<br><br><a href="http://github.com/Nthalk/Lnmm/blob/master/test/test-observable.js" rel="nofollow">http://github.com/Nthalk/Lnmm/...</a><br><br>The source file for observable is here:<br><a href="http://github.com/Nthalk/Lnmm/blob/master/lib/Observable.js" rel="nofollow">http://github.com/Nthalk/Lnmm/...</a> </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-54187481"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-54187481"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,54187481); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',54187481, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-54187481" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 54187481);" title="Link to comment by Nthalk"> 1 year ago </a></li> <li> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-54187481" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 54187481); return false">1 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 54187481, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-54187481"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-54187481"></li> <li id="dsq-comment-48321097" data-dsq-comment-id="48321097" class="dsq-comment dsq-clearfix dsq-comment-is-parent " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand newbie's profile"> <a href="http://disqus.com/guest/9b78826fc81ad3d3323fae1aab49f331/" onclick="DISQUS.dtpl.actions.fire('profile.show', 48321097, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-48321097" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">newbie</span> <span class="dsq-collapsed-count"> 3 comments collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 48321097); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 48321097); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-48321097"> <div class="dsq-comment-text" id="dsq-comment-text-48321097"> Hi, newbie here! <br>How does Conductor is different from webmachine? </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-48321097"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-48321097"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,48321097); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',48321097, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-48321097" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 48321097);" title="Link to comment by newbie"> 1 year ago </a></li> <li> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-48321097" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 48321097); return false">1 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 48321097, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-48321097"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-48321097"></li> <li id="dsq-comment-48330736" data-dsq-comment-id="48330736" class="dsq-comment dsq-clearfix dsq-comment-is-parent dsq-moderator dsq-founder" style="margin-left:46px;"> <div class="dsq-avatar dsq-tt" title="Expand Tim Caswell's profile"> <a href="http://disqus.com/creationix/" onclick="DISQUS.dtpl.actions.fire('profile.show', 48330736, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/uploads/users/134/854/avatar32.jpg?1270044011" alt=""> </a> </div> <div id="dsq-comment-body-48330736" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Tim Caswell</span><span class="dsq-commenter-bio">, JavaScript Hacker</span> <span class="dsq-collapsed-count"> 2 comments collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 48330736); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 48330736); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-48330736"> <div class="dsq-comment-text" id="dsq-comment-text-48330736"> I've never used webmachine, but conductor isn't a web framework at all, it's a control-flow library for callback based programming like in nodejs. So it's an entirely different beast. Node itself is somewhat comparable to webmachine I think. </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-48330736"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-48330736"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,48330736); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',48330736, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-48330736" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 48330736);" title="Link to comment by Tim Caswell"> 1 year ago </a></li> <li> <a onclick="DISQUS.dtpl.actions.fire('comments.showParent', 48321097); return false" href="http://howtonode.org/step-of-conductor#comment-48321097" title="Jump to comment"> in reply to newbie </a> </li> <li style="display:none"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-48330736" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 48330736); return false">0 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 48330736, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-48330736"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-48330736"></li> <li id="dsq-comment-48333553" data-dsq-comment-id="48333553" class="dsq-comment dsq-clearfix " style="margin-left:92px;"> <div class="dsq-avatar dsq-tt" title="Expand newbie's profile"> <a href="http://disqus.com/guest/9b78826fc81ad3d3323fae1aab49f331/" onclick="DISQUS.dtpl.actions.fire('profile.show', 48333553, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-48333553" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">newbie</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 48333553); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 48333553); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-48333553"> <div class="dsq-comment-text" id="dsq-comment-text-48333553"> It looks like I can build a webmachine flow (as seen in <a href="http://bitbucket.org/justin/webmachine/wiki/BigHTTPGraph)" rel="nofollow">http://bitbucket.org/justin/we...</a> in top of Conductor. <br><br>There's a webmachine port to nodejs called nodemachine (<a href="http://github.com/tautologistics/nodemachine)" rel="nofollow">http://github.com/tautologisti...</a>. As you can see from that code, webmachine looks like a cool use case for Conductor. </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-48333553"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-48333553"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,48333553); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',48333553, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-48333553" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 48333553);" title="Link to comment by newbie"> 1 year ago </a></li> <li> <a onclick="DISQUS.dtpl.actions.fire('comments.showParent', 48330736); return false" href="http://howtonode.org/step-of-conductor#comment-48330736" title="Jump to comment"> in reply to Tim Caswell </a> </li> <li style="display:none"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-48333553" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 48333553); return false">0 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 48333553, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-48333553"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-48333553"></li> <li id="dsq-comment-277574149" data-dsq-comment-id="277574149" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand Alex Fowler's profile"> <a href="http://disqus.com/google-cabd5da7746d2afcf7be055d72907e67/" onclick="DISQUS.dtpl.actions.fire('profile.show', 277574149, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-277574149" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Alex Fowler</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 277574149); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 277574149); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-277574149"> <div class="dsq-comment-text" id="dsq-comment-text-277574149"> MAN, YOU RULE!!! I am new to js and to nodejs. Used to synched programming, so had troubles with the asynch one. But you have brought the light and now I see!!! </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-277574149"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-277574149"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,277574149); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',277574149, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-277574149" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 277574149);" title="Link to comment by Alex Fowler"> 5 months ago </a></li> <li style="display:none"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-277574149" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 277574149); return false">0 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 277574149, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-277574149"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-277574149"></li> <li id="dsq-comment-108571712" data-dsq-comment-id="108571712" class="dsq-comment dsq-clearfix dsq-comment-is-parent " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand Arran Schlosberg's profile"> <a href="http://disqus.com/guest/f75d67423cef716d02e258034d05c3ac/" onclick="DISQUS.dtpl.actions.fire('profile.show', 108571712, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-108571712" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Arran Schlosberg</span> <span class="dsq-collapsed-count"> 2 comments collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 108571712); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 108571712); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-108571712"> <div class="dsq-comment-text" id="dsq-comment-text-108571712"> A few questions... sorry if I should have been able to figure these out myself but I'm quite new to Step but think I have a decent understanding of it.<br><br>In the conductor example what is done with F1, the second argument passed to Conduct()?<br><br>I'm assuming that "callback" is always passed as the final argument to each of the functions. Is this the equivalent of step's "this"? If so then why not still use "this"?<br><br>I notice that each of the arguments being passed to the particular functions refer to the function that they must be sourced from (e.g. 'A: ["P1"' means pass the return value of P / P's callback to the function). What is the relevance of the 1? What would P2 mean? </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-108571712"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-108571712"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,108571712); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',108571712, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-108571712" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 108571712);" title="Link to comment by Arran Schlosberg"> 1 year ago </a></li> <li style="display:none"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-108571712" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 108571712); return false">0 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 108571712, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-108571712"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-108571712"></li> <li id="dsq-comment-109741435" data-dsq-comment-id="109741435" class="dsq-comment dsq-clearfix " style="margin-left:46px;"> <div class="dsq-avatar dsq-tt" title="Expand Arran Schlosberg's profile"> <a href="http://disqus.com/guest/f75d67423cef716d02e258034d05c3ac/" onclick="DISQUS.dtpl.actions.fire('profile.show', 109741435, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/1325906494/images/noavatar32.png" alt=""> </a> </div> <div id="dsq-comment-body-109741435" class="dsq-comment-body"> <div class="dsq-comment-header"> <span class="dsq-commenter-name">Arran Schlosberg</span> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 109741435); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 109741435); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-109741435"> <div class="dsq-comment-text" id="dsq-comment-text-109741435"> I think I solved my last question. While a function that returns values can only go up to 1 those that utilise the callback can pass as many arguments as they want to. </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-109741435"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-109741435"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,109741435); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',109741435, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-109741435" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 109741435);" title="Link to comment by Arran Schlosberg"> 1 year ago </a></li> <li> <a onclick="DISQUS.dtpl.actions.fire('comments.showParent', 108571712); return false" href="http://howtonode.org/step-of-conductor#comment-108571712" title="Jump to comment"> in reply to Arran Schlosberg </a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-109741435" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 109741435); return false">1 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 109741435, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-109741435"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-109741435"></li> <li id="dsq-comment-63646759" data-dsq-comment-id="63646759" class="dsq-comment dsq-clearfix " style="margin-left:0px;"> <div class="dsq-avatar dsq-tt" title="Expand Jon Bomgardner's profile"> <a href="http://disqus.com/twitter-37840318/" onclick="DISQUS.dtpl.actions.fire('profile.show', 63646759, null); return false"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png" class="dsq-deferred-avatar" data-src="http://mediacdn.disqus.com/uploads/users/370/8300/avatar32.jpg?1279771282" alt=""> </a> </div> <div id="dsq-comment-body-63646759" class="dsq-comment-body"> <div class="dsq-comment-header"> <a href="http://twitter.com/jonlb01" target="_blank" class="dsq-commenter-name" rel="nofollow">Jon Bomgardner</a> <span class="dsq-collapsed-count"> 1 comment collapsed </span> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-collapse" title="Collapse thread" onclick="DISQUS.dtpl.actions.fire('comments.collapse', 63646759); return false;"><span>Collapse</span></a> <a href="http://howtonode.org/step-of-conductor#" class="dsq-collapse-toggle dsq-expand" title="Expand thread" onclick="DISQUS.dtpl.actions.fire('comments.expand', 63646759); return false;"><span>Expand</span></a> </div> <div class="dsq-comment-message" id="dsq-comment-message-63646759"> <div class="dsq-comment-text" id="dsq-comment-text-63646759"> I know it's been a couple of months since this was posted but hopefully will see this and help me out......<br><br>I just started using node recently and am trying to use the Step module. My question is if it's possible to nest calls to step? for example:<br><br>file 1:<br><br>exports.init = function(next){<br> Step(<br> function step1(){},<br> function step2(){},<br> function step3(){},<br> next<br>)};<br><br>then in file2:<br><br>var m = require('file1');<br><br>Step(<br> m.init(this),<br> function(){}<br>);<br><br>In the above example, I don't want the second part of the Step chain to run until all of m.init() finishes which contains a Step chain. When I try this the second function runs before the functions in m.init().<br><br>Is this possible with this library or am I doing something wrong?<br><br>Thanks,<br>Jon Bomgardner </div> </div> <!-- edit box dynamically inserted here --> <div id="dsq-append-edit-63646759"></div> <div class="dsq-comment-footer"> <ul class="dsq-comment-actions"> <li id="dsq-like-63646759"> <span class="dsq-like-thumb dsq-font">A</span> <a href="http://howtonode.org/step-of-conductor#" onclick="DISQUS.dtpl.actions.fire('comments.like', this,63646759); return false">Like</a> </li> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-reply" onclick="DISQUS.dtpl.actions.fire('comments.reply',63646759, this); return false">Reply</a> </li> </ul> <ul class="dsq-comment-meta"> <li> <a href="http://howtonode.org/step-of-conductor#comment-63646759" onclick="DISQUS.dtpl.actions.fire('comments.permalink', 63646759);" title="Link to comment by Jon Bomgardner"> 1 year ago </a></li> <li style="display:none"> <a href="http://howtonode.org/step-of-conductor#" id="dsq-comment-like-count-63646759" class="dsq-comment-like-count" onclick="return DISQUS.dtpl.actions.fire('comments.showUserVotes', 63646759); return false">0 Like </a> </li> <li class="dsq-comment-flag" style="visibility: hidden"> <a href="http://howtonode.org/step-of-conductor#" class="dsq-comment-flag dsq-font" onclick="return DISQUS.dtpl.actions.fire('comments.report', 63646759, false);">F</a> </li> </ul> </div> <!-- reply box dynamically inserted here --> <div id="dsq-append-reply-63646759"></div> </div> </li> <!-- new replies dynamically inserted here --> <li id="dsq-append-post-63646759"></li> </ul> <div id="dsq-pagination"> <ul id="dsq-footer" class="dsq-clearfix"> <div id="dsq-subscribe"> <li> <a href="http://howtonode.org/step-of-conductor#" class="dsq-subscribe-email" onclick="return DISQUS.dtpl.actions.fire('thread.subscribe');"> <span class="dsq-font">M</span> <em>Subscribe by email</em> </a> </li> <li> <a href="http://howtonodeorg.disqus.com/the_step_of_the_conductor_how_to_node/latest.rss" class="dsq-subscribe-rss"> <span class="dsq-font">S</span> <em>RSS</em> </a> </li> </div> </ul> </div> <h3 class="dsq-h3-reactions">Reactions</h3> <ul id="dsq-reactions" class="dsq-reactions dsq-clearfix"> <li id="dsq-reaction-15666666"> <div class="dsq-reaction-avatar dsq-avatar dsq-tt" data-dsq-content-id="dsq-reaction-tooltip-15666666"> <a target="_blank" href="http://twitter.com/del_javascript/status/12101902902"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/clouds2_normal.jpg"> </a> </div> <div id="dsq-reaction-tooltip-15666666" class="dsq-reaction-tooltip" style="display:none"> <div class="dsq-reaction-tooltip-container"> <div class="dsq-reaction-body">The Step of the Conductor - How To Node <a href="./The Step of the Conductor - How To Node - NodeJS_files/The Step of the Conductor - How To Node - NodeJS.html">http://ow.ly/173wGJ</a></div> <div class="dsq-reaction-date">1 year ago</div> <div class="dsq-reaction-user">@del_javascript</div> </div> </div> </li> <li id="dsq-reaction-15482142"> <div class="dsq-reaction-avatar dsq-avatar dsq-tt" data-dsq-content-id="dsq-reaction-tooltip-15482142"> <a target="_blank" href="http://twitter.com/rgaidot/status/12062095486"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/6654_111305815684_541245684_2583159_5383291_n_normal.jpg"> </a> </div> <div id="dsq-reaction-tooltip-15482142" class="dsq-reaction-tooltip" style="display:none"> <div class="dsq-reaction-tooltip-container"> <div class="dsq-reaction-body">reading "The Step of the Conductor" <a href="./The Step of the Conductor - How To Node - NodeJS_files/The Step of the Conductor - How To Node - NodeJS.html">http://bit.ly/a97DR8</a> #javascript #nodejs #conductor #flowjs</div> <div class="dsq-reaction-date">1 year ago</div> <div class="dsq-reaction-user">@rgaidot</div> </div> </div> </li> <li id="dsq-reaction-15482141"> <div class="dsq-reaction-avatar dsq-avatar dsq-tt" data-dsq-content-id="dsq-reaction-tooltip-15482141"> <a target="_blank" href="http://twitter.com/benatkin/status/12061848706"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/twitter_normal.jpg"> </a> </div> <div id="dsq-reaction-tooltip-15482141" class="dsq-reaction-tooltip" style="display:none"> <div class="dsq-reaction-tooltip-container"> <div class="dsq-reaction-body">RT @creationix: Finally released my article on Step. Had to cut it short for now. <a href="./The Step of the Conductor - How To Node - NodeJS_files/The Step of the Conductor - How To Node - NodeJS.html">http://howtonode.org/step-of-conductor</a></div> <div class="dsq-reaction-date">1 year ago</div> <div class="dsq-reaction-user">@benatkin</div> </div> </div> </li> <li id="dsq-reaction-15476748"> <div class="dsq-reaction-avatar dsq-avatar dsq-tt" data-dsq-content-id="dsq-reaction-tooltip-15476748"> <a target="_blank" href="http://twitter.com/creationix/status/12059616240"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46_normal.jpeg"> </a> </div> <div id="dsq-reaction-tooltip-15476748" class="dsq-reaction-tooltip" style="display:none"> <div class="dsq-reaction-tooltip-container"> <div class="dsq-reaction-body">Finally released my article on Step. Had to cut it short for now. <a href="./The Step of the Conductor - How To Node - NodeJS_files/The Step of the Conductor - How To Node - NodeJS.html">http://howtonode.org/step-of-conductor</a></div> <div class="dsq-reaction-date">1 year ago</div> <div class="dsq-reaction-user">@creationix</div> </div> </div> </li> <li id="dsq-reaction-15509587"> <div class="dsq-reaction-avatar dsq-avatar dsq-tt" data-dsq-content-id="dsq-reaction-tooltip-15509587"> <a target="_blank" href="http://twitter.com/Marc%20Harter/status/12068380163"> <img src="./The Step of the Conductor - How To Node - NodeJS_files/MARC3_normal.jpg"> </a> </div> <div id="dsq-reaction-tooltip-15509587" class="dsq-reaction-tooltip" style="display:none"> <div class="dsq-reaction-tooltip-container"> <div class="dsq-reaction-body">RT @creationix: Finally released my article on Step. Had to cut it short for now. http://howtonode.org/step-of-conductor</div> <div class="dsq-reaction-date">1 year ago</div> <div class="dsq-reaction-user">@Marc Harter</div> </div> </div> </li> </ul> <div class="dsq-trackback-url"> Trackback URL <input onclick="this.select()" readonly="true" value="http://disqus.com/forums/howtonodeorg/the_step_of_the_conductor_how_to_node/trackback/"> </div> </div><div> </div></div>
|
|
62
|
+
<script type="text/javascript">
|
|
63
|
+
//<![CDATA[
|
|
64
|
+
var disqus_url = "http://howtonode.org/step-of-conductor";
|
|
65
|
+
//]]>
|
|
66
|
+
</script>
|
|
67
|
+
<script src="./The Step of the Conductor - How To Node - NodeJS_files/embed.js" type="text/javascript"></script><a href="http://disqus.com/forums/howtonodeorg/?url=ref" class="view-thread">View the discussion thread.</a><a href="http://disqus.com/" class="dsq-brlink">blog comments powered by<span class="logo-disqus">Disqus</span></a>
|
|
68
|
+
<script type="text/javascript">
|
|
69
|
+
//<![CDATA[
|
|
70
|
+
(function() {
|
|
71
|
+
var links = document.getElementsByTagName('a');
|
|
72
|
+
var query = '?';
|
|
73
|
+
for(var i = 0; i < links.length; i++) {
|
|
74
|
+
if(links[i].href.indexOf('#disqus_thread') >= 0) {
|
|
75
|
+
query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/howtonodeorg/get_num_replies.js' + query + '"></' + 'script>');
|
|
79
|
+
})();
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
//]]>
|
|
83
|
+
</script><script charset="utf-8" type="text/javascript" src="./The Step of the Conductor - How To Node - NodeJS_files/get_num_replies.js"></script>
|
|
84
|
+
</div></div><div id="sidebar"><div class="aside author"><h4>About the Author</h4><img src="./The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46" class="headshot"><dl><dt>Name:</dt><dd>Tim Caswell</dd></dl><dl><dt>Github:</dt><dd><a href="http://github.com/creationix">creationix</a></dd></dl><dl><dt>Twitter:</dt><dd><a href="http://twitter.com/creationix">creationix</a></dd></dl><dl><dt>Location:</dt><dd>Sunnyvale, CA</dd></dl><dl><dt>Links:</dt><dd><a href="http://creationix.com/">Homepage</a></dd></dl></div><div class="aside"><h4>About this Article</h4><iframe allowtransparency="true" frameborder="0" scrolling="no" src="./The Step of the Conductor - How To Node - NodeJS_files/tweet_button.1326407570.html" class="twitter-share-button twitter-count-horizontal" style="height: 20px; width: 110px; " title="Twitter Tweet Button"></iframe><script src="./The Step of the Conductor - How To Node - NodeJS_files/widgets.js"></script><dl title="Mon Apr 12 2010 13:27:27 GMT-0500 (CDT)"><dt>Date Released:</dt><dd>Monday, April 12, 2010</dd></dl><dl title="Wed Sep 1 00:46:53 2010 -0700"><dt>Last Updated:</dt><dd>Wednesday, September 1, 2010</dd></dl><dl><dt>Node Version:</dt><dd><a href="http://github.com/joyent/node/tree/v0.1.102">node v0.1.102</a></dd></dl><dl><dt>Code Samples:</dt><dd><ul><li><a href="http://howtonode.org/step-of-conductor/step1.js">step1.js</a></li><li><a href="http://howtonode.org/step-of-conductor/step2.js">step2.js</a></li><li><a href="http://howtonode.org/step-of-conductor/step3.js">step3.js</a></li><li><a href="http://howtonode.org/step-of-conductor/conductor1.js">conductor1.js</a></li></ul></dd></dl><dl><dt>Revisions:</dt><dd><ul><li title="Remove execute bit on links that don't need it."><a href="http://howtonode.org/d5cf6079645d90a0b641343e946cf1f60e0e1520/step-of-conductor">Wed, 01 Sep 2010 07:46:53 GMT</a></li><li title="Update step article, it's correct out of the box on v0.1.102."><a href="http://howtonode.org/e2e37ce5568733851cf54c2fb5a826c1a21a51e2/step-of-conductor">Wed, 28 Jul 2010 00:30:00 GMT</a></li><li title="Update a few articles to v0.1.91"><a href="http://howtonode.org/fde96c4e0b74d0362b5386eddc5328c6c932c301/step-of-conductor">Thu, 15 Apr 2010 18:49:49 GMT</a></li><li title="Add some execution to the step article."><a href="http://howtonode.org/12ee84684b4b8c397861b61c75a5c47a886e2352/step-of-conductor">Thu, 15 Apr 2010 02:17:37 GMT</a></li><li title="Extract step-of-conductor code snippets into their own files."><a href="http://howtonode.org/26ba18ba5a0eedaee6746c8bb44a5b861e6f7776/step-of-conductor">Wed, 14 Apr 2010 18:38:01 GMT</a></li><li title="Add in external code snippets."><a href="http://howtonode.org/2fbb1fd7ad8950b8d3c11242ce201774c692cb78/step-of-conductor">Wed, 14 Apr 2010 17:47:39 GMT</a></li><li title="Merge branch 'master' of github.com:creationix/howtonode.org into wheat
|
|
85
|
+
|
|
86
|
+
Conflicts:
|
|
87
|
+
articles/step-of-conductor.markdown"><a href="http://howtonode.org/35d56dc076bdb7cd7fd4e6c9eba56e42ef3a719c/step-of-conductor">Mon, 12 Apr 2010 22:46:26 GMT</a></li><li title="Add article about Step and Conductor. Waiting on the release of Wheat isn't a good idea, it's taking longer than expected.
|
|
88
|
+
|
|
89
|
+
create mode 100644 articles/step-of-conductor.markdown"><a href="http://howtonode.org/180d8795b66058fbb32ddf7abfced720b9717da5/step-of-conductor">Mon, 12 Apr 2010 18:28:20 GMT</a></li><li title="Add in the new style."><a href="http://howtonode.org/1f10d35a722514e43b601257e19f40c3d75b0058/step-of-conductor">Thu, 08 Apr 2010 20:29:22 GMT</a></li><li title="Start on step and conductor article and integrate new Wheat engine.
|
|
90
|
+
|
|
91
|
+
create mode 100644 articles/step-of-conductor.markdown"><a href="http://howtonode.org/6c867212220bb11f7cba5ae78ebec13a1044b040/step-of-conductor">Tue, 06 Apr 2010 16:10:49 GMT</a></li></ul></dd></dl></div><div class="bubble"><h4>Other Articles by this Author</h4><ul><li><a href="http://howtonode.org/arm-chroot-fun">Fun Putting Node on Mobile Devices</a><span class="versiontag">v0.4.9</span></li><li><a href="http://howtonode.org/object-graphs-3">Learning Javascript with Object Graphs (Part III)</a><span class="versiontag">v0.2.4</span></li><li><a href="http://howtonode.org/object-graphs-2">Learning Javascript with Object Graphs (Part II)</a><span class="versiontag">v0.2.3</span></li><li><a href="http://howtonode.org/object-graphs">Learning Javascript with Object Graphs</a><span class="versiontag">v0.2.2</span></li><li><a href="http://howtonode.org/deploying-node-with-spark">Deploying Node Apps with Spark</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/why-use-closure">Why use "closure"?</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/connect-it">Just Connect it Already</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/volcano-wheat">Volcano Wheat</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/hello-node">Hello Node!</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/what-is-this">What is "this"?</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/do-it-fast">"Do" it fast!</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/control-flow-part-iii">Control Flow in Node Part III</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/prototypical-inheritance">Prototypal Inheritance</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/haml-for-javascript">Using HAML templates in JavaScript</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/control-flow-part-ii">Control Flow in Node Part II</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/control-flow">Control Flow in Node</a><span class="versiontag">v0.1.102</span></li><li><a href="http://howtonode.org/welcome">Welcome to HowToNode.org</a><span class="versiontag">v0.1.102</span></li></ul></div><div class="bubble"><h3>About HowToNode.org</h3>
|
|
92
|
+
|
|
93
|
+
<p>HowToNode.org is a community supported blog created by <a href="http://creationix.com/">Tim Caswell</a>. The purpose of the blog is to teach how to do various tasks in <a href="http://nodejs.org/">node.js</a> as well as teach fundamental concepts that are needed to write effective code.</p>
|
|
94
|
+
|
|
95
|
+
<p>This site is powered by <a href="http://github.com/creationix/wheat">Wheat</a>, a git based blogging engine written in <a href="http://nodejs.org/">node.JS</a>.</p>
|
|
96
|
+
|
|
97
|
+
<p>The content for this site is stored in a <a href="http://github.com/creationix/howtonode.org">git repository</a> that anyone can fork, write an article, and send a pull request. If your article passes the quality standards it will be published and help support the greater node community.</p></div></div><div id="footer"><p>© 2011 Tim Caswell under the MIT license.</p><p>Content and articles are copyrighted to the individual authors. Design by <a href="http://bengourley.co.uk/">Ben Gourley</a>. All code snippets used in the examples are in the public domain.</p><p>Wheat running on node v0.6.7</p></div></div>
|
|
98
|
+
<script type="text/javascript">
|
|
99
|
+
//<![CDATA[
|
|
100
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
|
101
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
|
102
|
+
//]]>
|
|
103
|
+
</script><script src="./The Step of the Conductor - How To Node - NodeJS_files/ga.js" type="text/javascript"></script>
|
|
104
|
+
|
|
105
|
+
<script type="text/javascript">
|
|
106
|
+
//<![CDATA[
|
|
107
|
+
try {
|
|
108
|
+
var pageTracker = _gat._getTracker("UA-12824411-1");
|
|
109
|
+
pageTracker._trackPageview();
|
|
110
|
+
} catch(err) {}
|
|
111
|
+
//]]>
|
|
112
|
+
</script>
|
|
113
|
+
<iframe name="easyXDM_DISQUS_net_default7105_provider" id="easyXDM_DISQUS_net_default7105_provider" style="position: absolute; top: -2000px; left: 0px; " frameborder="0" src="./The Step of the Conductor - How To Node - NodeJS_files/def.html"></iframe></body></html>
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
function udm_(a,b){var c="comScore=",d=document,e=d.cookie,f="",g="indexOf",h="substring",i="length",j=2048,k,l="&ns_",m="&",n,o,p,q,r=window,s=r.encodeURIComponent||escape;if(e[g](c)+1)for(p=0,o=e.split(";"),q=o[i];p<q;p++)n=o[p][g](c),n+1&&(f=m+unescape(o[p][h](n+c[i])));a+=l+"_t="+ +(new Date)+l+"c="+(d.characterSet||d.defaultCharset||"")+"&c8="+s(d.title)+f+"&c7="+s(d.URL)+"&c9="+s(d.referrer),a[i]>j&&a[g](m)>0&&(k=a[h](0,j-8).lastIndexOf(m),a=(a[h](0,k)+l+"cut="+s(a[h](k+1)))[h](0,j)),d.images?(n=new Image,r.ns_p||(ns_p=n),typeof b=="function"&&(n.onload=n.onerror=b),n.src=a):d.write("<","p","><",'img src="',a,'" height="1" width="1" alt="*"',"><","/p",">")}typeof _comscore=="undefined"&&(_comscore=[]),function(){var a="length",b=self,c=b.encodeURIComponent?encodeURIComponent:escape,d=".scorecardresearch.com",e="//app"+d+"/s2e/invite",f=Math,g="script",h="width",i=/c2=(\d*)&/,j,k=function(b){if(!!b){var e,f=[],g,h=0,i,j,k="";for(var l in b){g=typeof b[l];if(g=="string"||g=="number")f[f[a]]=l+"="+c(b[l]),l=="c2"?k=b[l]:l=="c1"&&(h=1)}if(f[a]<=0||k=="")return;j=b.options||{},j.d=j.d||document;if(typeof j.url_append=="string"){i=j.url_append.replace(/&/,"&").split("&");for(var l=0,n=i[a],o;l<n;l++)o=i[l].split("="),o[a]==2&&(f[f[a]]=o[0]+"="+c(o[1]))}e=["http",j.d.URL.charAt(4)=="s"?"s://sb":"://b",d,"/b?",h?"":"c1=2&",f.join("&").replace(/&$/,"")],udm_(e.join(""),function(){m(this,j)})}},l=function(b){b=b||_comscore;for(var c=0,d=b[a];c<d;c++)k(b[c]);b=_comscore=[]},m=function(a,b){if(!(a.src.indexOf("c1=2")<0||!b.d.createElement))if(b.force_script_extension||a[h]==2&&a.height>f.round(f.random()*100)){var c=b.d.createElement(g),d=b.d.getElementsByTagName(g)[0],j=[b.script_extension_url||e,"?","c2=",a.src.match(i)[1]].join("");d&&(c.src=j,c.async=!0,d.parentNode.insertBefore(c,d))}};l(),(j=b.COMSCORE)?(j.purge=l,j.beacon=k):COMSCORE={purge:l,beacon:k}}()
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
Binary file
|
|
Binary file
|
package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/clouds2_normal.jpg
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
twttr.receiveCount({"count":3,"url":"http://howtonode.org/step-of-conductor/"})
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!-- saved from url=(0119)http://mediacdn.disqus.com/1325906494/build/system/def.html#xdm_e=http%3A%2F%2Fhowtonode.org&xdm_c=default7105&xdm_p=1& -->
|
|
3
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head><body>
|
|
4
|
+
<script type="text/javascript" async="" src="quant.js"></script><script type="text/javascript" async="" src="ga.js"></script><script async="" src="beacon.js"></script><script>
|
|
5
|
+
document.domain = 'disqus.com';
|
|
6
|
+
|
|
7
|
+
var urls = {
|
|
8
|
+
sigma: (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//sigma.disqus.com/sigma.html',
|
|
9
|
+
xdm: "http://mediacdn.disqus.com/1325906494/html/xdm.html",
|
|
10
|
+
swf: "http://mediacdn.disqus.com/1325906494/xdm.swf",
|
|
11
|
+
api: (document.location.protocol == 'https:' ? 'https:' : 'http:') +
|
|
12
|
+
'//api.disqus.com/api/3.0/'
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
settings = {
|
|
16
|
+
debug: false,
|
|
17
|
+
domain: "disqus.com",
|
|
18
|
+
realtimeHost: "qq.disqus.com",
|
|
19
|
+
realtimePort: "80"
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var DISQUS=function(){var b=window.document,c=b.getElementsByTagName("script"),f,k,v,p;f=b.getElementsByTagName("head")[0]||b.getElementsByTagName("body")[0];k={running:!1,timer:null,queue:[]};p={};v=c[c.length-1].src.split("/");v.pop();v=v.join("/");p.defer=function(b,c){function j(){if(k.queue.length===0)k.running=!1,clearInterval(k.timer);else{var b=k.queue.shift();if(b[0]())b[1]();else k.queue.push(b)}}k.queue.push([b,c]);j();if(!k.running)k.running=!0,k.timer=setInterval(j,100);return k.queue.length};
|
|
23
|
+
p.each=function(b,c){var j=b.length,f=Array.prototype.forEach;if(isNaN(j))for(var m in b)b.hasOwnProperty(m)&&c(b[m],m,b);else if(f)f.call(b,c);else for(f=0;f<j;f++)c(b[f],f,b)};p.extend=function(){var b,f;arguments.length<=1?(b=p,f=[arguments[0]||{}]):(b=arguments[0]||{},f=Array.prototype.slice.call(arguments,1));for(var j=0;j<f.length;j++)for(var c in f[j])f[j].hasOwnProperty(c)&&(b[c]=f[j][c]);return b};p.load=function(c,k){c=(c.slice(0,4)!="http"?v+"/":"")+c;if(k){var j=c.slice(c.length-1);c+=
|
|
24
|
+
(j!="&"&&j!="?"?"?":"")+(new Date).getTime()}j=b.createElement("script");j.src=c;j.async=!0;j.charset="UTF-8";f.appendChild(j);return j};return p}();DISQUS.extend({comments:{},host:{},net:{},widgets:{}});(function(){function b(b){return b<10?"0"+b:b}function c(b){w.lastIndex=0;return w.test(b)?'"'+b.replace(w,function(b){var c=L[b];return typeof c==="string"?c:"\\u"+("0000"+b.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+b+'"'}function f(b,k){var u,o,r,p,s=q,y,h=k[b];h&&typeof h==="object"&&typeof h.toJSON==="function"&&!v&&(h=h.toJSON(b));typeof m==="function"&&(h=m.call(k,b,h));switch(typeof h){case "string":return c(h);case "number":return isFinite(h)?String(h):"null";case "boolean":case "null":return String(h);
|
|
25
|
+
case "object":if(!h)return"null";q+=j;y=[];if(Object.prototype.toString.apply(h)==="[object Array]"){p=h.length;for(u=0;u<p;u+=1)y[u]=f(u,h)||"null";r=y.length===0?"[]":q?"[\n"+q+y.join(",\n"+q)+"\n"+s+"]":"["+y.join(",")+"]";q=s;return r}if(m&&typeof m==="object"){p=m.length;for(u=0;u<p;u+=1)o=m[u],typeof o==="string"&&(r=f(o,h))&&y.push(c(o)+(q?": ":":")+r)}else for(o in h)Object.hasOwnProperty.call(h,o)&&(r=f(o,h))&&y.push(c(o)+(q?": ":":")+r);r=y.length===0?"{}":q?"{\n"+q+y.join(",\n"+q)+"\n"+
|
|
26
|
+
s+"}":"{"+y.join(",")+"}";q=s;return r}}var k={},v=!1;if(typeof Date.prototype.toJSON!=="function")Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+b(this.getUTCMonth()+1)+"-"+b(this.getUTCDate())+"T"+b(this.getUTCHours())+":"+b(this.getUTCMinutes())+":"+b(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()};var p=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
|
27
|
+
w=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,q,j,L={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},m;k.stringify=function(b,c,k){var o;j=q="";if(typeof k==="number")for(o=0;o<k;o+=1)j+=" ";else typeof k==="string"&&(j=k);if((m=c)&&typeof c!=="function"&&(typeof c!=="object"||typeof c.length!=="number"))throw Error("JSON.stringify");return f("",{"":b})};k.parse=function(b,c){function f(b,
|
|
28
|
+
j){var k,m,h=b[j];if(h&&typeof h==="object")for(k in h)Object.hasOwnProperty.call(h,k)&&(m=f(h,k),m!==void 0?h[k]=m:delete h[k]);return c.call(b,j,h)}var j,b=String(b);p.lastIndex=0;p.test(b)&&(b=b.replace(p,function(b){return"\\u"+("0000"+b.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(b.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+b+")"),
|
|
29
|
+
typeof c==="function"?f({"":j},""):j;throw new SyntaxError("JSON.parse");};DISQUS.json={};var z={a:[1,2,3]};if(Object.toJSON&&Object.toJSON(z).replace(/\s/g,"")==='{"a":[1,2,3]}')DISQUS.json.stringify=Object.toJSON;if(typeof String.prototype.evalJSON==="function"&&(z='{"a":[1,2,3]}'.evalJSON(),z.a&&z.a.length===3&&z.a[2]===3))DISQUS.json.parse=function(b){return b.evalJSON()};(function(){var b=[1,2,3];typeof b.toJSON==="function"&&(b=b.toJSON(),v=!(b&&b.length===3&&b[2]===3))})();if(!DISQUS.json.stringify||
|
|
30
|
+
!DISQUS.json.parse)DISQUS.json={stringify:k.stringify,parse:k.parse}})();(function(b,c,f,k,v,p){function w(d,a){var i=typeof d[a];return i=="function"||!!(i=="object"&&d[a])||i=="unknown"}function q(){q=t;J=!0;for(var d=0;d<O.length;d++)O[d]();O.length=0}function j(d,a){J?d.call(a):O.push(function(){d.call(a)})}function L(){var d=parent;if(N!=="")for(var a=0,i=N.split(".");a<i.length;a++)d=d[i[a]];return d.easyXDM}function m(d){var a=d.match(x),d=a[2],i=a[3],a=a[4]||"";if(d=="http:"&&a==":80"||d=="https:"&&a==":443")a="";return d+"//"+i+a}function z(d){d=d.replace(H,"$1/");
|
|
31
|
+
if(!d.match(/^(http||https):\/\//)){var a=d.substring(0,1)==="/"?"":f.pathname;a.substring(a.length-1)!=="/"&&(a=a.substring(0,a.lastIndexOf("/")+1));d=f.protocol+"//"+f.host+a+d}for(;U.test(d);)d=d.replace(U,"");return d}function C(d,a){var i="",b=d.indexOf("#");b!==-1&&(i=d.substring(b).replace("#","&"),d=d.substring(0,b));var b=[],e;for(e in a)a.hasOwnProperty(e)&&b.push(e+"="+p(a[e]));return d+(V?"#":d.indexOf("?")==-1?"?":"&")+b.join("&")+i}function E(d){return typeof d==="undefined"}function u(){var d=
|
|
32
|
+
{},a={a:[1,2,3]};if(typeof JSON!="undefined"&&typeof JSON.stringify==="function"&&JSON.stringify(a).replace(/\s/g,"")==='{"a":[1,2,3]}')return JSON;if(Object.toJSON&&Object.toJSON(a).replace(/\s/g,"")==='{"a":[1,2,3]}')d.stringify=Object.toJSON;if(typeof String.prototype.evalJSON==="function"&&(a='{"a":[1,2,3]}'.evalJSON(),a.a&&a.a.length===3&&a.a[2]===3))d.parse=function(a){return a.evalJSON()};if(d.stringify&&d.parse)return u=function(){return d},d;return null}function o(d,a,i){var b,e;for(e in a)a.hasOwnProperty(e)&&
|
|
33
|
+
(e in d?(b=a[e],typeof b==="object"?o(d[e],b,i):i||(d[e]=a[e])):d[e]=a[e]);return d}function r(d){if(E(R)){var a=c.createElement("iframe");a.name=D+"TEST";o(a.style,{position:"absolute",left:"-2000px",top:"0px"});c.body.appendChild(a);R=a.contentWindow!==b.frames[a.name];c.body.removeChild(a)}R&&!~navigator.userAgent.indexOf("Firefox")?a=c.createElement('<iframe name="'+d.props.name+'"/>'):(a=c.createElement("IFRAME"),a.name=d.props.name);a.id=a.name=d.props.name;delete d.props.name;d.onLoad&&F(a,
|
|
34
|
+
"load",d.onLoad);if(typeof d.container=="string")d.container=c.getElementById(d.container);if(!d.container)a.style.position="absolute",a.style.top="-2000px",a.style.left="0px",d.container=c.body;var i=d.props.src;delete d.props.src;o(a,d.props);a.border=a.frameBorder=0;d.container.appendChild(a);a.src=i;d.props.src=i;return a}function M(d){var a=d.protocol,i;d.isHost=d.isHost||E(A.xdm_p);V=d.hash||!1;if(!d.props)d.props={};if(d.isHost){if(d.remote=z(d.remote),d.channel=d.channel||"default"+S++,d.secret=
|
|
35
|
+
Math.random().toString(16).substring(2),E(a))if(h.parent==h&&m(f.href)==m(d.remote))a="4";else if(w(b,"postMessage")||w(c,"postMessage"))a="1";else{if(a=w(b,"ActiveXObject"))try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),a=!0}catch(l){a=!1}a?a="6":navigator.product==="Gecko"&&"frameElement"in b&&navigator.userAgent.indexOf("WebKit")==-1?a="5":d.remoteHelper?(d.remoteHelper=z(d.remoteHelper),a="2"):a="0"}}else{d.channel=A.xdm_c;d.secret=A.xdm_s;d.remote=A.xdm_e;var a=A.xdm_p,e;if(e=d.acl){a:{e=
|
|
36
|
+
d.acl;var P=d.remote;typeof e=="string"&&(e=[e]);for(var n,G=e.length;G--;)if(n=e[G],n=RegExp(n.substr(0,1)=="^"?n:"^"+n.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),n.test(P)){e=!0;break a}e=!1}e=!e}if(e)throw Error("Access denied for "+d.remote);}switch(a){case "0":o(d,{interval:100,delay:2E3,useResize:!0,useParent:!1,usePolling:!1},!0);if(d.isHost){if(!d.local){i=f.protocol+"//"+f.host;a=c.body.getElementsByTagName("img");for(P=a.length;P--;)if(e=a[P],e.src.substring(0,i.length)===i){d.local=
|
|
37
|
+
e.src;break}if(!d.local)d.local=b}i={xdm_c:d.channel,xdm_p:0};d.local===b?(d.usePolling=!0,d.useParent=!0,d.local=f.protocol+"//"+f.host+f.pathname+f.search,i.xdm_e=d.local,i.xdm_pa=1):i.xdm_e=z(d.local);if(d.container)d.useResize=!1,i.xdm_po=1;d.remote=C(d.remote,i)}else o(d,{channel:A.xdm_c,remote:A.xdm_e,useParent:!E(A.xdm_pa),usePolling:!E(A.xdm_po),useResize:d.useParent?!1:d.useResize});i=[new g.stack.HashTransport(d),new g.stack.ReliableBehavior({}),new g.stack.QueueBehavior({encode:!0,maxLength:4E3-
|
|
38
|
+
d.remote.length}),new g.stack.VerifyBehavior({initiate:d.isHost})];break;case "1":i=[new g.stack.PostMessageTransport(d)];break;case "2":i=[new g.stack.NameTransport(d),new g.stack.QueueBehavior,new g.stack.VerifyBehavior({initiate:d.isHost})];break;case "3":i=[new g.stack.NixTransport(d)];break;case "4":i=[new g.stack.SameOriginTransport(d)];break;case "5":i=[new g.stack.FrameElementTransport(d)];break;case "6":if(!d.swf)d.swf="../../tools/easyxdm.swf";i=[new g.stack.FlashTransport(d)]}i.push(new g.stack.QueueBehavior({lazy:d.lazy,
|
|
39
|
+
remove:!0}));return i}function s(d){for(var a,i={incoming:function(a,d){this.up.incoming(a,d)},outgoing:function(a,d){this.down.outgoing(a,d)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},b=0,e=d.length;b<e;b++){a=d[b];o(a,i,!0);if(b!==0)a.down=d[b-1];if(b!==e-1)a.up=d[b+1]}return a}function y(d){d.up.down=d.down;d.down.up=d.up;d.up=d.down=null}var h=this,S=Math.floor(Math.random()*1E4),t=Function.prototype,x=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,
|
|
40
|
+
U=/[\-\w]+\/\.\.\//,H=/([^:])\/\//g,N="",g={},W=b.easyXDM,D="easyXDM_",R,V=!1,F,K;if(w(b,"addEventListener"))F=function(d,a,b){d.addEventListener(a,b,!1)},K=function(d,a,b){d.removeEventListener(a,b,!1)};else if(w(b,"attachEvent"))F=function(d,a,b){d.attachEvent("on"+a,b)},K=function(d,a,b){d.detachEvent("on"+a,b)};else throw Error("Browser not supported");var J=!1,O=[],Q;"readyState"in c?(Q=c.readyState,J=Q=="complete"||~navigator.userAgent.indexOf("AppleWebKit/")&&(Q=="loaded"||Q=="interactive")):
|
|
41
|
+
J=!!c.body;J||(w(b,"addEventListener")?F(c,"DOMContentLoaded",q):(F(c,"readystatechange",function(){c.readyState=="complete"&&q()}),c.documentElement.doScroll&&b===top&&function a(){if(!J){try{c.documentElement.doScroll("left")}catch(b){k(a,1);return}q()}}()),F(b,"load",q));var A=function(a){for(var a=a.substring(1).split("&"),b={},l,e=a.length;e--;)l=a[e].split("="),b[l[0]]=v(l[1]);return b}(/xdm_e=/.test(f.search)?f.search:f.hash);o(g,{version:"2.4.12.1",query:A,stack:{},apply:o,getJSONObject:u,
|
|
42
|
+
whenReady:j,noConflict:function(a){b.easyXDM=W;(N=a)&&(D="easyXDM_"+N.replace(".","_")+"_");return g}});g.DomHelper={on:F,un:K,requiresJSON:function(a){typeof b.JSON=="object"&&b.JSON||c.write('<script type="text/javascript" src="'+a+'"><\/script>')}};(function(){var a={};g.Fn={set:function(b,l){a[b]=l},get:function(b,l){var e=a[b];l&&delete a[b];return e}}})();g.Socket=function(a){var b=s(M(a).concat([{incoming:function(b,i){a.onMessage(b,i)},callback:function(b){if(a.onReady)a.onReady(b)}}])),l=
|
|
43
|
+
m(a.remote);this.origin=m(a.remote);this.destroy=function(){b.destroy()};this.postMessage=function(a){b.outgoing(a,l)};b.init()};g.Rpc=function(a,b){if(b.local)for(var l in b.local)if(b.local.hasOwnProperty(l)){var e=b.local[l];typeof e==="function"&&(b.local[l]={method:e})}var c=s(M(a).concat([new g.stack.RpcBehavior(this,b),{callback:function(b){if(a.onReady)a.onReady(b)}}]));this.origin=m(a.remote);this.destroy=function(){c.destroy()};c.init()};g.stack.SameOriginTransport=function(a){var b,l,e,
|
|
44
|
+
c;return b={outgoing:function(a,b,i){e(a);i&&i()},destroy:function(){l&&(l.parentNode.removeChild(l),l=null)},onDOMReady:function(){c=m(a.remote);a.isHost?(o(a.props,{src:C(a.remote,{xdm_e:f.protocol+"//"+f.host+f.pathname,xdm_c:a.channel,xdm_p:4}),name:D+a.channel+"_provider"}),l=r(a),g.Fn.set(a.channel,function(a){e=a;k(function(){b.up.callback(!0)},0);return function(a){b.up.incoming(a,c)}})):(e=L().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,c)}),k(function(){b.up.callback(!0)},0))},init:function(){j(b.onDOMReady,
|
|
45
|
+
b)}}};g.stack.FlashTransport=function(a){function b(a){k(function(){e.up.incoming(a,n)},0)}function l(b){var e=a.swf,i="easyXDM_swf_"+Math.floor(Math.random()*1E4);g.Fn.set("flash_loaded",function(){g.stack.FlashTransport.__swf=G=I.firstChild;b()});I=c.createElement("div");o(I.style,{height:"1px",width:"1px",postition:"absolute",left:0,top:0});c.body.appendChild(I);var l="proto="+h.location.protocol+"&domain="+h.location.href.match(x)[3]+"&ns="+N;I.innerHTML="<object height='1' width='1' type='application/x-shockwave-flash' id='"+
|
|
46
|
+
i+"' data='"+e+"'><param name='allowScriptAccess' value='always'></param><param name='wmode' value='transparent'><param name='movie' value='"+e+"'></param><param name='flashvars' value='"+l+"'></param><embed type='application/x-shockwave-flash' FlashVars='"+l+"' allowScriptAccess='always' wmode='transparent' src='"+e+"' height='1' width='1'></embed></object>"}var e,f,n,G,I;return e={outgoing:function(b,e,i){G.postMessage(a.channel,b);i&&i()},destroy:function(){try{G.destroyChannel(a.channel)}catch(b){}G=
|
|
47
|
+
null;f&&(f.parentNode.removeChild(f),f=null)},onDOMReady:function(){n=a.remote;G=g.stack.FlashTransport.__swf;g.Fn.set("flash_"+a.channel+"_init",function(){k(function(){e.up.callback(!0)})});g.Fn.set("flash_"+a.channel+"_onMessage",b);var c=function(){G.createChannel(a.channel,a.secret,m(a.remote),a.isHost);a.isHost&&(o(a.props,{src:C(a.remote,{xdm_e:m(h.location.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:D+a.channel+"_provider"}),f=r(a))};G?c():l(c)},init:function(){j(e.onDOMReady,e)}}};
|
|
48
|
+
g.stack.PostMessageTransport=function(a){function i(b){var e;if(b.origin)e=m(b.origin);else if(b.uri)e=m(b.uri);else if(b.domain)e=f.protocol+"//"+b.domain;else throw"Unable to retrieve the origin of the event";e==n&&b.data.substring(0,a.channel.length+1)==a.channel+" "&&l.up.incoming(b.data.substring(a.channel.length+1),e)}var l,e,c,n;return l={outgoing:function(b,e,i){c.postMessage(a.channel+" "+b,e||n);i&&i()},destroy:function(){K(b,"message",i);e&&(c=null,e.parentNode.removeChild(e),e=null)},
|
|
49
|
+
onDOMReady:function(){n=m(a.remote);a.isHost?(F(b,"message",function I(n){n.data==a.channel+"-ready"&&(c="postMessage"in e.contentWindow?e.contentWindow:e.contentWindow.document,K(b,"message",I),F(b,"message",i),k(function(){l.up.callback(!0)},0))}),o(a.props,{src:C(a.remote,{xdm_e:m(f.href),xdm_c:a.channel,xdm_p:1}),name:D+a.channel+"_provider"}),e=r(a)):(F(b,"message",i),c="postMessage"in b.parent?b.parent:b.parent.document,c.postMessage(a.channel+"-ready",n),k(function(){l.up.callback(!0)},0))},
|
|
50
|
+
init:function(){j(l.onDOMReady,l)}}};g.stack.FrameElementTransport=function(a){var i,l,e,g;return i={outgoing:function(a,b,i){e.call(this,a);i&&i()},destroy:function(){l&&(l.parentNode.removeChild(l),l=null)},onDOMReady:function(){g=m(a.remote);if(a.isHost)o(a.props,{src:C(a.remote,{xdm_e:m(f.href),xdm_c:a.channel,xdm_p:5}),name:D+a.channel+"_provider"}),l=r(a),l.fn=function(a){delete l.fn;e=a;k(function(){i.up.callback(!0)},0);return function(a){i.up.incoming(a,g)}};else{if(c.referrer&&m(c.referrer)!=
|
|
51
|
+
A.xdm_e)b.top.location=A.xdm_e;e=b.frameElement.fn(function(a){i.up.incoming(a,g)});i.up.callback(!0)}},init:function(){j(i.onDOMReady,i)}}};g.stack.NixTransport=function(a){var i,l,e,g,n;return i={outgoing:function(a,b,i){e(a);i&&i()},destroy:function(){n=null;l&&(l.parentNode.removeChild(l),l=null)},onDOMReady:function(){g=m(a.remote);if(a.isHost){try{w(b,"getNixProxy")||b.execScript("Class NixProxy\n Private m_parent, m_child, m_Auth\n\n Public Sub SetParent(obj, auth)\n If isEmpty(m_Auth) Then m_Auth = auth\n SET m_parent = obj\n End Sub\n Public Sub SetChild(obj)\n SET m_child = obj\n m_parent.ready()\n End Sub\n\n Public Sub SendToParent(data, auth)\n If m_Auth = auth Then m_parent.send(CStr(data))\n End Sub\n Public Sub SendToChild(data, auth)\n If m_Auth = auth Then m_child.send(CStr(data))\n End Sub\nEnd Class\nFunction getNixProxy()\n Set GetNixProxy = New NixProxy\nEnd Function\n",
|
|
52
|
+
"vbscript"),n=getNixProxy(),n.SetParent({send:function(a){i.up.incoming(a,g)},ready:function(){k(function(){i.up.callback(!0)},0)}},a.secret),e=function(b){n.SendToChild(b,a.secret)}}catch(j){throw Error("Could not set up VBScript NixProxy:"+j.message);}o(a.props,{src:C(a.remote,{xdm_e:m(f.href),xdm_c:a.channel,xdm_s:a.secret,xdm_p:3}),name:D+a.channel+"_provider"});l=r(a);l.contentWindow.opener=n}else{if(c.referrer&&m(c.referrer)!=A.xdm_e)b.top.location=A.xdm_e;try{n=b.opener}catch(t){throw Error("Cannot access window.opener");
|
|
53
|
+
}n.SetChild({send:function(a){h.setTimeout(function(){i.up.incoming(a,g)},0)}});e=function(b){n.SendToParent(b,a.secret)};k(function(){i.up.callback(!0)},0)}},init:function(){j(i.onDOMReady,i)}}};g.stack.NameTransport=function(a){function b(e){t.contentWindow.sendMessage(e,a.remoteHelper+(f?"#_3":"#_2")+a.channel)}function l(){f?(++B===2||!f)&&n.up.callback(!0):(b("ready"),n.up.callback(!0))}function e(a){n.up.incoming(a,x)}function c(){T&&k(function(){T(!0)},0)}var n,f,t,h,B,T,x,H;return n={outgoing:function(a,
|
|
54
|
+
e,l){T=l;b(a)},destroy:function(){t.parentNode.removeChild(t);t=null;f&&(h.parentNode.removeChild(h),h=null)},onDOMReady:function(){f=a.isHost;B=0;x=m(a.remote);a.local=z(a.local);f?(g.Fn.set(a.channel,function(b){f&&b==="ready"&&(g.Fn.set(a.channel,e),l())}),H=C(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),o(a.props,{src:H+"#"+a.channel,name:D+a.channel+"_provider"}),h=r(a)):(a.remoteHelper=a.remote,g.Fn.set(a.channel,e));t=r({props:{src:a.local+"#_4"+a.channel},onLoad:function X(){var b=t||
|
|
55
|
+
this;K(b,"load",X);g.Fn.set(a.channel+"_load",c);(function Z(){typeof b.contentWindow.sendMessage=="function"?l():k(Z,50)})()}})},init:function(){j(n.onDOMReady,n)}}};g.stack.HashTransport=function(a){function i(){if(h){var a=h.location.href,b="",e=a.indexOf("#");e!=-1&&(b=a.substring(e));b&&b!=g&&(g=b,l.up.incoming(g.substring(g.indexOf("_")+1),H))}}var l,e,c,f,g,t,h,B,x,H;return l={outgoing:function(b){if(B)b=a.remote+"#"+t++ +"_"+b,(e||!x?B.contentWindow:B).location=b},destroy:function(){b.clearInterval(c);
|
|
56
|
+
(e||!x)&&B.parentNode.removeChild(B);B=null},onDOMReady:function(){e=a.isHost;f=a.interval;g="#"+a.channel;t=0;x=a.useParent;H=m(a.remote);if(e){a.props={src:a.remote,name:D+a.channel+"_provider"};if(x)a.onLoad=function(){h=b;c=setInterval(i,f);l.up.callback(!0)};else{var j=0,p=a.delay/50;(function Y(){if(++j>p)throw Error("Unable to reference listenerwindow");try{h=B.contentWindow.frames[D+a.channel+"_consumer"]}catch(b){}h?(c=setInterval(i,f),l.up.callback(!0)):k(Y,50)})()}B=r(a)}else h=b,c=setInterval(i,
|
|
57
|
+
f),x?(B=parent,l.up.callback(!0)):(o(a,{props:{src:a.remote+"#"+a.channel+new Date,name:D+a.channel+"_consumer"},onLoad:function(){l.up.callback(!0)}}),B=r(a))},init:function(){j(l.onDOMReady,l)}}};g.stack.ReliableBehavior=function(){var a,b,c=0,e=0,f="";return a={incoming:function(g,j){var t=g.indexOf("_"),h=g.substring(0,t).split(","),g=g.substring(t+1);h[0]==c&&(f="",b&&b(!0));g.length>0&&(a.down.outgoing(h[1]+","+c+"_"+f,j),e!=h[1]&&(e=h[1],a.up.incoming(g,j)))},outgoing:function(g,j,h){f=g;b=
|
|
58
|
+
h;a.down.outgoing(e+","+ ++c+"_"+g,j)}}};g.stack.QueueBehavior=function(a){function b(){if(a.remove&&e.length===0)y(c);else if(!f&&!(e.length===0||j)){f=!0;var g=e.shift();c.down.outgoing(g.data,g.origin,function(a){f=!1;g.callback&&k(function(){g.callback(a)},0);b()})}}var c,e=[],f=!0,g="",j,h=0,t=!1,x=!1;return c={init:function(){E(a)&&(a={});if(a.maxLength)h=a.maxLength,x=!0;a.lazy?t=!0:c.down.init()},callback:function(a){f=!1;var e=c.up;b();e.callback(a)},incoming:function(b,e){if(x){var i=b.indexOf("_"),
|
|
59
|
+
f=parseInt(b.substring(0,i),10);g+=b.substring(i+1);f===0&&(a.encode&&(g=v(g)),c.up.incoming(g,e),g="")}else c.up.incoming(b,e)},outgoing:function(g,f,j){a.encode&&(g=p(g));var k=[],n;if(x){for(;g.length!==0;)n=g.substring(0,h),g=g.substring(n.length),k.push(n);for(;n=k.shift();)e.push({data:k.length+"_"+n,origin:f,callback:k.length===0?j:null})}else e.push({data:g,origin:f,callback:j});t?c.down.init():b()},destroy:function(){j=!0;c.down.destroy()}}};g.stack.VerifyBehavior=function(a){function b(){e=
|
|
60
|
+
Math.random().toString(16).substring(2);c.down.outgoing(e)}var c,e,g;return c={incoming:function(f,j){var h=f.indexOf("_");h===-1?f===e?c.up.callback(!0):g||(g=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===g&&c.up.incoming(f.substring(h+1),j)},outgoing:function(a,b,g){c.down.outgoing(e+"_"+a,b,g)},callback:function(){a.initiate&&b()}}};g.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0";f.down.outgoing(j.stringify(a))}function e(a,b){var e=Array.prototype.slice;return function(){var g=
|
|
61
|
+
arguments.length,f,i={method:b};g>0&&typeof arguments[g-1]==="function"?(g>1&&typeof arguments[g-2]==="function"?(f={success:arguments[g-2],error:arguments[g-1]},i.params=e.call(arguments,0,g-2)):(f={success:arguments[g-1]},i.params=e.call(arguments,0,g-1)),k[""+ ++h]=f,i.id=h):i.params=e.call(arguments,0);if(a.namedParams&&i.params.length===1)i.params=i.params[0];c(i)}}function g(a,b,e,f){if(e){var i,j;b?(i=function(a){i=t;c({id:b,result:a})},j=function(a,e){j=t;var g={id:b,error:{code:-32099,message:a}};
|
|
62
|
+
if(e)g.error.data=e;c(g)}):i=j=t;Object.prototype.toString.call(f)==="[object Array]"||(f=[f]);try{var h=e.method.apply(e.scope,f.concat([i,j]));E(h)||i(h)}catch(k){j(k.message)}}else b&&c({id:b,error:{code:-32601,message:"Procedure not found."}})}var f,j=b.serializer||u(),h=0,k={};return f={incoming:function(a){a=j.parse(a);if(a.method)b.handle?b.handle(a,c):g(a.method,a.id,b.local[a.method],a.params);else{var e=k[a.id];a.error?e.error&&e.error(a.error):e.success&&e.success(a.result);delete k[a.id]}},
|
|
63
|
+
init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=e(b.remote[c],c));f.down.init()},destroy:function(){for(var e in b.remote)b.remote.hasOwnProperty(e)&&a.hasOwnProperty(e)&&delete a[e];f.down.destroy()}}};h.easyXDM=g})(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);
|
|
64
|
+
DISQUS.net={easyXDM:easyXDM.noConflict("DISQUS.net"),rpc:function(b,c){if(!b.swf)b.swf=DISQUS.settings.get("disqus.debug")?DISQUS.settings.get("disqus.urls.main")+"/xdm.swf":DISQUS.settings.get("disqus.urls.media")+"/xdm.swf";if(typeof b.hash=="undefined")b.hash=!DISQUS.settings.get("disqus.debug");DISQUS.extend(c,{serializer:{parse:DISQUS.json.parse,stringify:DISQUS.json.stringify}});var f=new DISQUS.net.easyXDM.Rpc(b,c);f.isReady=!1;return f}};(function(b){function c(){var b=new Date;return Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate(),b.getUTCHours(),b.getUTCMinutes(),b.getUTCSeconds(),b.getUTCMilliseconds())/1E3}function f(b,c){for(var f in b)b.hasOwnProperty(f)&&c(f,b[f])}function k(b){for(var c in b)if(b.hasOwnProperty(c))return!1;return!0}function v(b,c,f){var h=new Date;h.setTime(h.getTime()+(f||31536E6));j.cookie=b+"="+c+"; expires="+h.toGMTString()+"; path=/; domain="+settings.domain}function p(b){b+="=";for(var c=
|
|
65
|
+
j.cookie.split(";"),f=0;f<c.length;f++){for(var h=c[f];h.charAt(0)==" ";)h=h.substring(1,h.length);if(h.indexOf(b)===0)return h.substring(b.length,h.length)}return null}function w(b){var h=c()-900>u;if(b||M&&!k(r)&&!h){var m=j.createElement("div"),h=j.createElement("form"),p=j.createElement("input"),q={};f(o,function(b,c){q[b]=c});f(r,function(b,c){q[b]=c});m.innerHTML='<iframe name="frame_sigma"></iframe>';m=m.childNodes[0];h.target="frame_sigma";h.action=urls.sigma;h.method="GET";p.type="hidden";
|
|
66
|
+
p.name="payload";p.value=b||DISQUS.json.stringify(q);h.appendChild(p);j.body.appendChild(m);j.body.appendChild(h);h.submit();r={}}}function q(b,c){r[b]=c}var j=b.document,L=0,m={local:urls.xdm,swf:urls.swf,hash:!settings.debug},z={remote:{},local:{}},C,E,u,o={},r={},M=!1,s=(new Date).getTime().toString(10)+Math.floor(Math.random()*1E6).toString(10),y="http://"+settings.realtimeHost+":"+settings.realtimePort+"/"+s+"/";u=c();if(s=p("queued_payload")){if(s=="[null]"||typeof s=="function"||s.length&&
|
|
67
|
+
s[0]===null)s='{"error":true,"referrer":"'+j.referrer+'"}';w(s);v("queued_payload","",-1)}var s=p("sessionid"),h=p("disqus_unique"),S=Math.floor(Math.random()*1E12).toString();!s&&!h&&v("disqus_unique",S);s||q("info:unique_id",parseInt(p("disqus_unique"),10));z.remote={realtimeNotify:{}};z.local={api:function(c,h,k,m,o){if(C){f(h,function(b,c){c===!0?h[b]=1:c===!1?h[b]=0:c===null&&(h[b]="")});var g=++L,p=j.createElement("div"),q=j.createElement("form"),r="frame_"+g,g="api_callback_"+g,s;p.innerHTML=
|
|
68
|
+
'<iframe name="'+r+'"></iframe>';s=p.childNodes[0];q.target=r;q.action=urls.api+c+".sdk";q.method=k;h.callback=g;h.api_key=C;h.referrer=j.referrer;f(h,function(b,c){var f=j.createElement("input");f.type="hidden";f.name=b;f.value=c;q.appendChild(f)});b[g]=function(b){setTimeout(function(){(b=DISQUS.json.parse(b))&&b.code===0?m(b.response):o(b.code,b.response);j.body.removeChild(s);j.body.removeChild(q)},100)};j.body.appendChild(s);j.body.appendChild(q);q.submit()}else o({error:"Set your public API key with setApiKey"})},
|
|
69
|
+
setApiKey:function(b){C=b},echo:function(b){return b},enable:function(b){Math.ceil(Math.random()*100)>b||(M=!0,setInterval(function(){w()},1E4),setInterval(function(){var b={};f(o,function(c,f){b[c]=f});b["timer:on_page"]=parseInt(c()-u,10);v("queued_payload",DISQUS.json.stringify(b))},500))},log:q,addMeta:function(b,c){o[b]=c},flushLog:w,realtimePoll:function(c){var f=y+c+"/",h=function(){var c;c=b.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");c.open("GET",f,!0);c.withCredentials=
|
|
70
|
+
!0;c.setRequestHeader("Content-Type","text/plain");c.onreadystatechange=function(){if(c.status==200&&c.readyState==4){var b=DISQUS.json.parse(c.responseText);b.type&&E.realtimeNotify(b);setTimeout(h,500)}};c.send()};setTimeout(h,500)}};E=new DISQUS.net.rpc(m,z)})(window);
|
|
71
|
+
</script>
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
<script>
|
|
77
|
+
var _gaq = [ // GA
|
|
78
|
+
['_setAccount', 'UA-1410476-6'],
|
|
79
|
+
['_setDomainName', '.disqus.com']
|
|
80
|
+
];
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
_gaq.push(['_trackPageview']);
|
|
86
|
+
|
|
87
|
+
// set sampling rate after _trackPageview as we did previously
|
|
88
|
+
_gaq.push(['_setSampleRate', '20']);
|
|
89
|
+
|
|
90
|
+
var _qevents = _qevents || []; // QuantCast
|
|
91
|
+
var _comscore = _comscore || []; // comScore
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
(function (doc) {
|
|
95
|
+
var s = doc.getElementsByTagName('script')[0],
|
|
96
|
+
p = s.parentNode;
|
|
97
|
+
|
|
98
|
+
// QuantCast
|
|
99
|
+
var qt = doc.createElement('script');
|
|
100
|
+
qt.type = 'text/javascript';
|
|
101
|
+
qt.async = true;
|
|
102
|
+
qt.src = (doc.location.protocol == 'https:' ? 'https://secure' : 'http://edge') + '.quantserve.com/quant.js';
|
|
103
|
+
p.insertBefore(qt, s);
|
|
104
|
+
_qevents.push({ qacct: 'p-94WKwgUwZHlfo' });
|
|
105
|
+
|
|
106
|
+
// Google Analytics
|
|
107
|
+
var ga = doc.createElement('script');
|
|
108
|
+
ga.type = 'text/javascript';
|
|
109
|
+
ga.async = true;
|
|
110
|
+
ga.src = ('https:' == doc.location.protocol ? 'https://ssl' : 'http://www') +
|
|
111
|
+
'.google-analytics.com/ga.js';
|
|
112
|
+
p.insertBefore(ga, s);
|
|
113
|
+
|
|
114
|
+
// comScore
|
|
115
|
+
_comscore.push({ c1: "7", c2: "10137436" ,c3: "1" });
|
|
116
|
+
var cs = document.createElement("script");
|
|
117
|
+
cs.async = true;
|
|
118
|
+
cs.src = (doc.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
|
|
119
|
+
p.insertBefore(cs, s);
|
|
120
|
+
}(document));
|
|
121
|
+
</script>
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
</body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dsq-cleanslate,.dsq-cleanslate h1,.dsq-cleanslate h2,.dsq-cleanslate h3,.dsq-cleanslate h4,.dsq-cleanslate h5,.dsq-cleanslate h6,.dsq-cleanslate p,.dsq-cleanslate td,.dsq-cleanslate dl,.dsq-cleanslate tr,.dsq-cleanslate dt,.dsq-cleanslate ol,.dsq-cleanslate form,.dsq-cleanslate select,.dsq-cleanslate option,.dsq-cleanslate pre,.dsq-cleanslate div,.dsq-cleanslate table,.dsq-cleanslate th,.dsq-cleanslate tbody,.dsq-cleanslate tfoot,.dsq-cleanslate caption,.dsq-cleanslate thead,.dsq-cleanslate ul,.dsq-cleanslate li,.dsq-cleanslate address,.dsq-cleanslate blockquote,.dsq-cleanslate dd,.dsq-cleanslate fieldset,.dsq-cleanslate li,.dsq-cleanslate strong,.dsq-cleanslate legend,.dsq-cleanslate em,.dsq-cleanslate s,.dsq-cleanslate cite,.dsq-cleanslate span,.dsq-cleanslate input,.dsq-cleanslate sup,.dsq-cleanslate label,.dsq-cleanslate dfn,.dsq-cleanslate object,.dsq-cleanslate big,.dsq-cleanslate q,.dsq-cleanslate font,.dsq-cleanslate samp,.dsq-cleanslate acronym,.dsq-cleanslate small,.dsq-cleanslate img,.dsq-cleanslate strike,.dsq-cleanslate code,.dsq-cleanslate sub,.dsq-cleanslate ins,.dsq-cleanslate textarea,.dsq-cleanslate var,.dsq-cleanslate a,.dsq-cleanslate abbr,.dsq-cleanslate applet,.dsq-cleanslate del,.dsq-cleanslate kbd,.dsq-cleanslate tt,.dsq-cleanslate b,.dsq-cleanslate i,.dsq-cleanslate hr,.dsq-cleanslate article,.dsq-cleanslate aside,.dsq-cleanslate dialog,.dsq-cleanslate figure,.dsq-cleanslate footer,.dsq-cleanslate header,.dsq-cleanslate hgroup,.dsq-cleanslate menu,.dsq-cleanslate nav,.dsq-cleanslate section,.dsq-cleanslate time,.dsq-cleanslate mark,.dsq-cleanslate audio,.dsq-cleanslate video{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:0 0!important;background-repeat:repeat!important;border-color:black!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline!important;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto!important;left:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;right:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;-moz-border-radius:0!important;-webkit-border-radius:0!important}.dsq-cleanslate,.dsq-cleanslate h3,.dsq-cleanslate h5,.dsq-cleanslate p,.dsq-cleanslate h1,.dsq-cleanslate dl,.dsq-cleanslate dt,.dsq-cleanslate h6,.dsq-cleanslate ol,.dsq-cleanslate form,.dsq-cleanslate select,.dsq-cleanslate option,.dsq-cleanslate pre,.dsq-cleanslate div,.dsq-cleanslate h2,.dsq-cleanslate caption,.dsq-cleanslate h4,.dsq-cleanslate ul,.dsq-cleanslate address,.dsq-cleanslate blockquote,.dsq-cleanslate dd,.dsq-cleanslate fieldset,.dsq-cleanslate textarea,.dsq-cleanslate hr,.dsq-cleanslate article,.dsq-cleanslate aside,.dsq-cleanslate dialog,.dsq-cleanslate figure,.dsq-cleanslate footer,.dsq-cleanslate header,.dsq-cleanslate hgroup,.dsq-cleanslate menu,.dsq-cleanslate nav,.dsq-cleanslate section{display:block!important}.dsq-cleanslate table{display:table!important}.dsq-cleanslate thead{display:table-header-group!important}.dsq-cleanslate tbody{display:table-row-group!important}.dsq-cleanslate tfoot{display:table-footer-group!important}.dsq-cleanslate tr{display:table-row!important}.dsq-cleanslate th,.dsq-cleanslate td{display:table-cell!important}.dsq-cleanslate nav ul,.dsq-cleanslate nav ol{list-style-type:none!important}.dsq-cleanslate ul,.dsq-cleanslate menu{list-style-type:disc!important}.dsq-cleanslate ol{list-style-type:decimal!important}.dsq-cleanslate ol ul,.dsq-cleanslate ul ul,.dsq-cleanslate menu ul,.dsq-cleanslate ol menu,.dsq-cleanslate ul menu,.dsq-cleanslate menu menu{list-style-type:circle!important}.dsq-cleanslate ol ol ul,.dsq-cleanslate ol ul ul,.dsq-cleanslate ol menu ul,.dsq-cleanslate ol ol menu,.dsq-cleanslate ol ul menu,.dsq-cleanslate ol menu menu,.dsq-cleanslate ul ol ul,.dsq-cleanslate ul ul ul,.dsq-cleanslate ul menu ul,.dsq-cleanslate ul ol menu,.dsq-cleanslate ul ul menu,.dsq-cleanslate ul menu menu,.dsq-cleanslate menu ol ul,.dsq-cleanslate menu ul ul,.dsq-cleanslate menu menu ul,.dsq-cleanslate menu ol menu,.dsq-cleanslate menu ul menu,.dsq-cleanslate menu menu menu{list-style-type:square!important}.dsq-cleanslate li{display:list-item!important;min-height:auto!important;min-width:auto!important}.dsq-cleanslate strong{font-weight:bold!important}.dsq-cleanslate em{font-style:italic!important}.dsq-cleanslate kbd,.dsq-cleanslate samp,.dsq-cleanslate code{font-family:monospace!important}.dsq-cleanslate a,.dsq-cleanslate a *,.dsq-cleanslate input[type=submit],.dsq-cleanslate input[type=radio],.dsq-cleanslate input[type=checkbox],.dsq-cleanslate select{cursor:pointer!important}.dsq-cleanslate a:hover{text-decoration:underline!important}.dsq-cleanslate button,.dsq-cleanslate input[type=submit]{text-align:center!important}.dsq-cleanslate input[type=hidden]{display:none!important}.dsq-cleanslate abbr[title],.dsq-cleanslate acronym[title],.dsq-cleanslate dfn[title]{cursor:help!important;border-bottom-width:1px!important;border-bottom-style:dotted!important}.dsq-cleanslate ins{background-color:#ff9!important;color:black!important}.dsq-cleanslate del{text-decoration:line-through!important}.dsq-cleanslate blockquote,.dsq-cleanslate q{quotes:none!important}.dsq-cleanslate blockquote:before,.dsq-cleanslate blockquote:after,.dsq-cleanslate q:before,.dsq-cleanslate q:after,.dsq-cleanslate li:before,.dsq-cleanslate li:after{content:""!important}.dsq-cleanslate input,.dsq-cleanslate select{vertical-align:middle!important}.dsq-cleanslate select,.dsq-cleanslate textarea,.dsq-cleanslate input{border:1px solid #ccc!important}.dsq-cleanslate input[type=radio],.dsq-cleanslate input[type=checkbox]{border:none!important}.dsq-cleanslate table{border-collapse:collapse!important;border-spacing:0!important}.dsq-cleanslate hr{display:block!important;height:1px!important;border:0!important;border-top:1px solid #ccc!important;margin:1em 0!important}.dsq-cleanslate *[dir=rtl]{direction:rtl!important}.dsq-cleanslate mark{background-color:#ff9!important;color:black!important;font-style:italic!important;font-weight:bold!important}.dsq-cleanslate{font-size:medium!important;line-height:1!important;direction:ltr!important;text-align:left!important;font-family:"Times New Roman",Times,serif!important;color:black!important;font-style:normal!important;font-weight:normal!important;text-decoration:none!important;list-style-type:disc!important}#disqus_thread{margin-bottom:10px}.dsq-brlink{font-size:10px}.dsq-hidden{display:none!important}.logo-disqus{font-family:Arial,sans-serif;text-transform:uppercase;font-size:9px;font-weight:bold}#dsq-content .dsq-alert-message{background-color:#FDF1D0;border:1px solid #FAD163;line-height:1.25;padding:5px 8px;color:#817134;margin:10px 0;clear:left}#dsq-content .dsq-alert-message a{color:#516361}#dsq-content .dsq-alert-message.dsq-error{background-color:#FCA09A;border-color:#90040B;color:#341922}#dsq-content .dsq-alert-message.dsq-error a{color:#000;text-decoration:underline;font-weight:bold;font-size:115%}#dsq-content iframe,.dsq-popup iframe{border:0;overflow-y:auto;overflow-x:hidden;*overflow-x:visible;width:100%;background-color:transparent}.dsq-popup iframe{height:100%}#dsq-content #dsq-form-area iframe{overflow:hidden}#dsq-login-iframe-wrapper iframe{height:340px}#dsq-content iframe.dsq-post-reply,#dsq-popup-alert iframe.dsq-post-reply{height:300px}#dsq-content iframe.dsq-post-reply-authenticated,#dsq-popup-alert iframe.dsq-post-reply-authenticated{height:170px}#dsq-content #dsq-comments .dsq-comment-message{word-wrap:break-word}.dsq-popup .dsq-blacklist-option{padding:10px 0;border-bottom:1px dotted #E5EBED}.dsq-popup .dsq-blacklist-submit{margin-top:10px}.dsq-popup .dsq-blacklist-submit span{float:right;font-size:11px;margin-top:8px}#dsq-blacklist-ip-warning{padding-top:1em;font-size:11px}.dsq-popup ul.dsq-popup-help{margin:0 10px}#dsq-popup-message.dsq-popup ul.dsq-popup-help li{margin:0 0 15px 0;padding:0 0 10px 0;border-bottom:1px dotted #E5EBED}.dsq-popup ul.dsq-popup-help li.dsq-help-otheraccts{font-weight:bold;font-size:110%;border-bottom-width:2px;border-bottom-style:solid}#dsq-popup-message ul.dsq-list-tick li{list-style:none inside url("/1325906494/images/tick.png")!important;display:list-item}#dsq-popup-message ul.dsq-list-bluebullet li{list-style:none inside url("/1325906494/images/bullet_blue.png");display:list-item}.dsq-popup iframe#dsq-popup-login{margin-top:10px;height:310px;width:100%}.dsq-popup-login .dsq-popup-content{width:420px}.dsq-popup iframe#dsq-popup-account-settings{width:100%;height:400px}.dsq-popup-account-settings .dsq-popup-content{width:500px}table.dsq-moderator-settings td{vertical-align:top;border-bottom:solid 1px #fff;padding:10px 6px}table.dsq-moderator-settings td.last{border-bottom:0}table.dsq-moderator-settings td p.dsq-form-actions{text-align:right;margin-top:5px}span.dsq-options-status{margin-left:10px;color:#799c42}#dsq-content .dsq-thread-settings{clear:left;background:transparent url('/1325906494/images/themes/narcissus/header-grey.png');border:solid 1px #999;margin-bottom:1em;padding:6px 10px;-webkit-border-radius:3px;-moz-border-radius:3px}#dsq-content .dsq-thread-settings a{margin-right:10px}#dsq-popup-message ul.dsq-thread-help{margin:0;padding:0}#dsq-popup-message ul.dsq-thread-help li{margin:10px 0;padding:0;list-style:disc inside;display:list-item}#dsq-popup-message ul.dsq-thread-help li p{font-size:11px;color:#555;padding-left:5px}.dsq-popup.dsq-media-embed img{max-width:500px;max-height:500px}#dsq-content .dsq-paginate-append-text{display:none}#dsq-content .dsq-paginate-all-button{display:none}#dsq-content .dsq-paginate-append-button{display:inline}#dsq-content .dsq-global-moderator-extras{font-size:11px}#dsq-content .dsq-global-moderator-extras strong:first-child{margin-left:0}#dsq-content .dsq-global-moderator-extras strong{margin-left:10px}#dsq-content button.dsq-share-toggle{border:0;background:0;font-size:12px;color:#333;vertical-align:middle;position:relative;cursor:pointer;padding:0;margin:0 5px 0 0}#dsq-content button.dsq-share-toggle span.dsq-share-icon{display:inline-block;width:16px;height:16px;vertical-align:text-bottom}#dsq-content button.dsq-share-toggle span.dsq-share-status{display:block;width:9px;height:9px;position:absolute;top:-3px;font-size:1%}#dsq-content button.dsq-share-toggle.dsq-share-toggled span.dsq-share-status{display:block;width:9px;height:9px;position:absolute;right:-1px;top:-3px;background:url(/1325906494/images/themes/narcissus/share-status.png) 0 -9px}#dsq-content #dsq-share-twitter.dsq-share-toggled,#dsq-content #dsq-share-facebook.dsq-share-toggled{color:#fff;text-shadow:0 1px 0 #2E619D}#dsq-content button.dsq-share-toggle span.checkbox{display:inline-block}#dsq-content #dsq-share-twitter span.dsq-share-icon{background:url(/1325906494/images/social-icons/twitter_muted.png)}#dsq-content #dsq-share-facebook span.dsq-share-icon{background:url(/1325906494/images/social-icons/facebook_muted.png)}#dsq-content #dsq-share-twitter.dsq-share-toggled span.dsq-share-icon{background:url(/1325906494/images/social-icons/twitter.png)}#dsq-content #dsq-share-facebook.dsq-share-toggled span.dsq-share-icon{background:url(/1325906494/images/social-icons/facebook.png)}#dsq-content #dsq-global-toolbar{margin:1em 0;line-height:1em}#dsq-content #dsq-global-toolbar .dsq-global-toolbar-right{float:right;white-space:nowrap}#dsq-content #dsq-global-toolbar .dsq-global-toolbar-right li{float:left;margin:0 0 5px 3px}#dsq-content #dsq-global-toolbar li:before{content:" "}#dsq-content #dsq-global-toolbar .dsq-global-toolbar-left li{float:left;margin:0 3px 5px 0}#dsq-content #dsq-global-toolbar .dsq-global-toolbar-left{white-space:nowrap}#dsq-content .dsq-toolbar-item{display:block;background:url(/1325906494/images/toolbar/toolbar-bg.png);padding:3px;-moz-border-radius:2px;border-radius:2px;color:#f2f2f2;text-decoration:none}#dsq-content .dsq-messages{position:relative}#dsq-content #dsq-messagesx-toolbar-icon{width:15px;height:16px;text-align:center}#dsq-content .dsq-dropdown-tab-active{border-radius:2px 2px 0 0!important}#dsq-content .dsq-messages:hover .dsq-toolbar-label{color:#fff!important}#dsq-content #dsq-messagesx-toolbar-icon.dsq-unread{width:13px;height:14px;background:#f06667!important;border:1px solid #932526!important}#dsq-content #dsq-messagesx-toolbar-icon .dsq-toolbar-label{color:#eee!important;text-decoration:none;float:none;text-shadow:0 1px 1px rgba(0,0,0,.3);display:block}#dsq-content #dsq-messagesx-toolbar-icon.dsq-unread .dsq-toolbar-label{color:#fff}#dsq-content .dsq-dropdown{overflow:hidden!important;background:url(/1325906494/images/toolbar/toolbar-bg.png);padding:3px;width:240px!important;position:absolute!important;top:22px!important;right:0!important;z-index:9998!important;border-radius:3px 0 3px 3px!important;box-shadow:0 1px 3px rgba(0,0,0,.1);display:none}#dsq-content .dsq-dropdown-visible{display:block}#dsq-content .dsq-inbox{background:#fff!important;padding:0!important;margin:0!important;border-radius:0 0 2px 2px!important;max-height:180px!important;overflow-y:auto!important}#dsq-content .dsq-inbox li{color:#333!important;float:none!important;padding:5px 8px!important;border-top:1px solid #ddd!important;border-left:none!important;margin:0!important;position:relative;overflow:hidden;font-size:12px!important;font-family:"Helvetica Neue",helvetica,arial,sans-serif!important}#dsq-content .dsq-messagesx-icon{float:left;width:32px;height:32px}#dsq-content .dsq-inbox li a{color:#0076CC!important}#dsq-content .dsq-inbox li p{margin:0 0 0 42px!important;white-space:normal!important;line-height:1.2!important;color:#333!important;font-size:12px!important;font-family:"Helvetica Neue",helvetica,arial,sans-serif!important}#dsq-content .dsq-dropdown h4{margin:0!important;background:#f4f4f4!important;font-weight:700!important;padding:8px 5px!important;border-radius:2px 2px 0 0;font-family:"Helvetica Neue",helvetica,arial,sans-serif;color:#333!important;font-size:14px!important}#dsq-content a.dsq-toolbar-item:hover{color:#fff!important;text-decoration:none}#dsq-content .dsq-toolbar-item.dsq-toggled{-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.4);padding-top:4px;padding-bottom:2px}.dsq-toolbar-icon{display:block;width:16px;height:16px;background-image:url(/1325906494/images/toolbar/toolbar-sprite-2.0.png);text-indent:-9999em}#dsq-content .dsq-toolbar-label{font-family:"Helvetica Neue",Arial,sans-serif;font-size:12px;line-height:14px;color:#ddd;float:left;margin:1px 2px 0;font-weight:700}.dsq-toggled .dsq-toolbar-label{color:#fff}.dsq-like-thread .dsq-toolbar-icon{float:left}.dsq-like-thread:hover .dsq-toolbar-icon{float:left;background-position:0 -16px}#dsq-content .dsq-like-thread .dsq-toolbar-item.dsq-toggled .dsq-toolbar-icon{background-position:0 -32px}.dsq-dislike-thread{margin-right:8px!important}.dsq-dislike-thread .dsq-toolbar-icon{float:left;background-position:-16px 0}.dsq-dislike-thread:hover .dsq-toolbar-icon{float:left;background-position:-16px -16px}#dsq-content .dsq-dislike-thread .dsq-toolbar-item.dsq-toggled .dsq-toolbar-icon{background-position:-16px -32px}.dsq-admin-settings .dsq-toolbar-icon{background-position:-48px 0}.dsq-admin-settings:hover .dsq-toolbar-icon{background-position:-48px -16px}.dsq-community-box .dsq-toolbar-icon{background-position:-32px 0}.dsq-community-box:hover .dsq-toolbar-icon{background-position:-32px -16px}.dsq-toolbar-logo .dsq-toolbar-icon{display:block;width:64px;height:16px;background-position:-176px 0;margin:0 1px 0 3px}#dsq-toolbar-dropdown:hover .dsq-toolbar-logo .dsq-toolbar-icon{background-position:-176px -16px}.dsq-like-panel{position:relative}#dsq-content #dsq-toolbar-dropdown{position:relative}#dsq-content #dsq-toolbar-dropdown #dsq-toolbar-dropdown-wrap{position:absolute;right:0;top:22px;z-index:1000}#dsq-content #dsq-toolbar-dropdown #dsq-toolbar-dropdown-wrap ul{background:#666;background:url(/1325906494/images/toolbar/toolbar-bg.png);padding:6px 4px;width:110px;color:#fff;margin:3px 0 0;-moz-border-radius:2px;border-radius:2px}#dsq-content #dsq-toolbar-dropdown #dsq-toolbar-dropdown-wrap ul li{float:none;margin:0 0 0 3px}#dsq-content #dsq-toolbar-dropdown:hover #dsq-toolbar-dropdown-wrap{display:block!important}#dsq-content #dsq-toolbar-dropdown #dsq-toolbar-dropdown-wrap a{color:#eee!important;text-decoration:none}#dsq-content #dsq-toolbar-dropdown #dsq-toolbar-dropdown-wrap a:hover{color:#fff!important}#dsq-content #dsq-toolbar-dropdown #dsq-toolbar-dropdown-wrap ul li h4{margin:0 0 8px;padding:0}#dsq-content #dsq-toolbar-dropdown .dsq-login-buttons{margin:0;padding:0}#dsq-content #dsq-toolbar-dropdown .dsq-login-buttons li{margin:0 0 3px;padding:0;float:none}#dsq-content #dsq-global-toolbar.dsq-community-preview .dsq-toolbar-logo{width:73px;background:url(/1325906494/images/toolbar/toolbar-sprite.png) -123px 0;margin:0 0 3px 0}#dsq-global-toolbar.dsq-community-preview #dsq-toolbar-dropdown:hover .dsq-toolbar-logo{background:url(/1325906494/images/toolbar/toolbar-sprite.png) -123px -22px;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;height:25px;margin:0}* html .dsq-global-toolbar-dropdown-container{width:50px!important;overflow:hidden}#dsq-content .dsq-global-toolbar-likes .dsq-group{float:left;margin:0 0 5px 0}#dsq-content #dsq-toolbar-dropdown .dsq-toolbar-icon,#dsq-content #dsq-toolbar-dropdown .dsq-toolbar-label{float:left}#dsq-content #dsq-toolbar-dropdown ul li{clear:both}#dsq-content #dsq-toolbar-dropdown ul li a{overflow:hidden}#dsq-content #dsq-toolbar-dropdown ul .dsq-toolbar-icon{margin:2px 3px 0 0}#dsq-content #dsq-toolbar-dropdown a:hover span{color:#fff!important}#dsq-content #dsq-toolbar-dropdown a{display:block}.dsq-dashboard-link .dsq-toolbar-icon{background-position:-80px 0}.dsq-editprofile-link .dsq-toolbar-icon{background-position:-96px 0}.dsq-logout-link .dsq-toolbar-icon{background-position:-112px 0}.dsq-about-link .dsq-toolbar-icon{background-position:-128px 0}.dsq-login-link .dsq-toolbar-icon{background-position:-144px 0}.dsq-clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}* html .dsq-clearfix{zoom:1}*:first-child+html .dsq-clearfix{zoom:1}#dsq-content .dsq-like-faces{white-space:normal}#dsq-content .dsq-like-faces li{float:left;margin:0 3px 3px 0!important}#dsq-content .dsq-like-faces li img{width:22px;height:22px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:0;display:block}#dsq-content .dsq-like-faces li a{float:none}#dsq-content .dsq-like-activity{padding:4px 0 0 2px;white-space:nowrap}#dsq-content #dsq-logo-dropdown{position:relative;display:inline-block;margin-top:3px}#dsq-content #dsq-logo-dropdown .dsq-logo{display:block;float:left;font-size:1%;margin-top:2px}.dsq-community-preview #dsq-logo-dropdown .dsq-logo{width:65px;height:13px;background:url(/1325906494/images/toolbar/toolbar-sprite.png) 0 -102px}.dsq-community-preview #dsq-logo-dropdown:hover .dsq-logo{background:url(/1325906494/images/toolbar/toolbar-sprite.png) 0 -115px}#dsq-content #dsq-logo-dropdown a.dsq-dropdown-arrow{display:block;width:16px;height:22px;background:url(/1325906494/images/themes/narcissus/dsq-login-dropdown-icon.png) center center no-repeat;text-indent:-9999em;position:relative;z-index:2;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 0 0;border-radius:3px 3px 0 0;vertical-align:middle;float:left;margin:-2px 1px 1px}#dsq-content #dsq-logo-dropdown:hover a.dsq-dropdown-arrow,#dsq-content #dsq-logo-dropdown a.dsq-dropdown-arrow.dsq-visible{border:1px solid #999;border-bottom:1px solid #fff;background:rgba(255,255,255,1) url(/1325906494/images/themes/narcissus/dsq-login-dropdown-icon.png) center center no-repeat;-moz-border-radius-bottomleft:0;-moz-border-radius-bottomright:0;display:block;float:left;margin:-3px 0 0}#dsq-content #dsq-logo-dropdown ul.dsq-dropdown-menu{position:relative;display:none;color:#333;margin-top:3px;background:#fff;z-index:200}#dsq-content #dsq-logo-dropdown:hover ul.dsq-dropdown-menu,#dsq-content #dsq-logo-dropdown ul.dsq-dropdown-menu.dsq-visible{display:block!important;position:absolute;right:0;top:17px;background:#fff;border:1px solid #999;z-index:1;padding:12px;-moz-box-shadow:0 1px 4px #ccc;-webkit-box-shadow:0 1px 4px #ccc;-moz-border-radius:5px 0 5px 5px;-webkit-border-radius:5px 0 5px 5px;border-radius:5px 0 5px 5px}#dsq-content #dsq-logo-dropdown ul li{display:block;float:none;width:89px;margin-bottom:3px}#dsq-content #dsq-logo-dropdown ul.dsq-dropdown-menu h4{font-family:Arial,Helvetica,sans-serif;font-size:14px!important;text-transform:none!important;font-weight:bold!important;margin:0;padding:0;white-space:nowrap}#dsq-captcha p{margin:0 0 10px!important}#dsq-captcha button{margin:10px 0 0}.dsq-overlay{display:block;position:absolute;top:0;left:0;width:100%;height:100%;z-index:5000;background-color:#000;-moz-opacity:.8;opacity:.80;filter:alpha(opacity=80)}.dsq-overlay[id]{position:fixed}.dsq-popup h4,.dsq-popup ul,.dsq-popup li,.dsq-popup ol,.dsq-popup div,.dsq-popup table,.dsq-popup td,.dsq-popup th,.dsq-popup p,.dsq-popup a,.dsq-popup cite,.dsq-popup img{border:0;padding:0;margin:0;float:none;text-indent:0;background:0}.dsq-popup h1,.dsq-popup h2,.dsq-popup h3,.dsq-popup h4{position:static}.dsq-popup table{border-collapse:separate;border-spacing:0}.dsq-popup{display:none;position:absolute;z-index:9999;padding:0;border:0;font-size:13px;color:#333;text-align:left;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif}.dsq-popup table{border-collapse:separate!important;border-spacing:0!important}.dsq-popup p{margin-bottom:8px!important}.dsq-popup[id]{position:fixed!important}.dsq-popup img{max-width:none!important;border:0}.dsq-popup ul,.dsq-popup li,.dsq-popup ol{list-style-type:none!important;list-style-image:none!important;background:none!important;display:block!important}.dsq-popup li:before{content:""!important}.dsq-popup p,.dsq-popup ul{color:#333!important;line-height:1.22em!important}.dsq-popup a{color:#3080C8!important}.dsq-popup a:hover{color:#3080C8!important}.dsq-popup .dsq-popup-top{position:relative!important!important;text-align:right!important!important;width:520px!important!important;height:20px!important!important;background:transparent url("/1325906494/images/embed/popup-top.png") no-repeat!important!important}.dsq-popup .dsq-popup-top img{margin:12px 13px 0 0!important;*margin:12px 13px 0 0!important}.dsq-popup .dsq-popup-bottom{text-align:right!important;width:520px!important;height:20px!important;background:transparent url("/1325906494/images/embed/popup-bottom.png") no-repeat!important}.dsq-popup .powered-by{font-size:90%!important;text-align:right!important;border-top:1px solid #aaa!important;background:#f2f2f2!important;border-radius:0 0 4px 4px!important;-mox-border-radius:0 0 4px 4px!important;padding:5px 0!important}.dsq-popup .powered-by img{margin:0 5px 0 0!important}.dsq-popup .dsq-popup-body div.powered-by a{color:#888!important;text-decoration:none!important}.dsq-popup .dsq-popup-body{width:520px!important;border-radius:4px!important}.dsq-popup .dsq-popup-body .dsq-popup-header a.dsq-close-link{color:#7aa5d5!important;position:absolute!important;top:-8px!important;right:5px!important;text-decoration:none!important}.dsq-popup .dsq-popup-body .dsq-popup-header a.dsq-close-link img{width:23px!important;height:24px!important;border:0!important}.dsq-popup .dsq-subscribe-submit{margin:0 auto!important;padding:0 10px!important;color:#222!important}.dsq-popup .dsq-subscribe-submit input{font-size:110%!important;width:200px!important}.dsq-popup p.dsq-popup-notice{padding:5px!important;margin:20px 0 0 0!important;background-color:#fdf1d0!important;border:1px solid #fad163!important}.dsq-popup .dsq-popup-body div.show-more{padding-left:10px!important;font-size:95%!important;color:#7aa5d5!important}.dsq-popup .dsq-popup-body .dsq-popup-body-padding{padding:0 10px!important;font-size:13px!important}.dsq-popup .dsq-popup-body .dsq-popup-header{background-color:#e5ebed!important;padding:0 10px!important;position:relative!important;padding-bottom:10px!important;border-bottom:1px solid #445460!important}.dsq-popup .dsq-popup-body .dsq-popup-header img{border:1px solid #fff!important;width:32px!important;height:32px!important;vertical-align:middle!important}.dsq-popup .dsq-popup-body .dsq-popup-body-padding cite{margin-left:5px!important;font-style:normal!important;vertical-align:middle!important}.dsq-popup .dsq-popup .dsq-popup-body .dsq-popup-body-padding cite{position:static!important;margin:0!important}.dsq-popup .dsq-popup-body .dsq-popup-body-padding cite span{font-weight:bold!important;font-size:150%!important;font-style:normal!important;margin-right:10px!important;vertical-align:middle!important}.dsq-popup .dsq-popup-body .dsq-popup-body-padding .dsq-popuplink{margin:0 0 0 5px!important;font-size:90%!important}.dsq-popup .dsq-popup-wrapper{background:#fff!important;padding:0!important;border:1px solid #000!important;border:1px solid rgba(0,0,0,.8)!important;border-radius:4px!important;-moz-border-radius:4px!important;-webkit-box-shadow:0 4px 40px rgba(0,0,0,.5)!important;-moz-box-shadow:0 4px 40px rgba(0,0,0,.5)!important;box-shadow:0 4px 40px rgba(0,0,0,.5)!important;overflow:hidden!important}.dsq-popup .dsq-popup-content{padding:20px!important}.dsq-popup .dsq-popup-container{position:relative!important;font-size:13px!important;color:#444!important;text-align:left!important;font-family:"Helvetica Neue",Helvetica,sans-serif!important}.dsq-popup-container table{border-collapse:collapse!important}.dsq-popup-container td{padding:0!important}.dsq-popup-container .dsq-popup-body{width:370px!important}.dsq-popup-login .dsq-popup-body{width:340px!important}.dsq-popup-container .dsq-popup-tl,.dsq-popup-container .dsq-popup-tr,.dsq-popup-container .dsq-popup-bl,.dsq-popup-container .dsq-popup-br{height:0!important;width:0!important;overflow:hidden!important}.dsq-popup-container div.dsq-popup-title{position:relative!important;text-align:left!important;height:auto!important;width:100%!important;padding:0!important;background:#404040 url(/1325906494/img/ui/modal/header-bg.png) center left repeat-x!important;overflow:hidden!important;-webkit-box-shadow:inset 0 1px 0 #868687!important;-moz-box-shadow:inset 0 1px 0 #868687!important;box-shadow:inset 0 1px 0 #868687!important;border-radius:4px 4px 0 0!important;-moz-border-radius:4px 4px 0 0!important;border-bottom:none!important;line-height:1!important;zoom:1}.dsq-popup-container .dsq-popup-title img{margin:0!important}.dsq-popup-container .dsq-popup-close{display:block!important;width:21px!important;height:19px!important;background:url(/1325906494/img/ui/modal/close.png)!important;border:none!important;text-indent:-9999em!important;margin:-2px 0 0!important;-webkit-box-shadow:none!important;border-radius:none!important;-webkit-border-radius:none!important;-moz-border-radius:none!important;position:absolute!important;top:13px!important;right:10px!important;float:none!important}.dsq-popup-container .dsq-popup-title h3{font-family:"Helvetica Neue",arial,sans-serif!important;color:#fff!important;font-size:18px!important;font-weight:500!important;text-shadow:0 -1px 0 #222!important;margin:0 30px 0 20px!important;padding:12px 0!important}.dsq-popup-container h4{margin:0;font-size:14px!important;font-weight:bold!important}#dsq-login-iframe-wrapper{height:320px!important}.dsq-login-box .dsq-popup-content,.dsq-profile-edit-modal .dsq-popup-content{padding:0!important}#dsq-popup-message.dsq-profile-edit-modal .dsq-popup-content .dsq-modal-tabs li a span{display:none!important}.dsq-popup .dsq-tabbed-modal{overflow:hidden!important;background:url(/1325906494/img/ui/modal/login/tab-bg.jpg) repeat-y!important;margin:0!important;border-radius:0 0 4px 4px!important;-moz-border-radius:0 0 4px 4px!important}* html .dsq-popup .dsq-tabbed-modal{height:1%!important}.dsq-login-box .dsq-popup-body{width:498px!important}.dsq-popup .dsq-modal-tabs{float:left!important;width:148px!important;padding:0 0 20px 0!important;display:inline!important}* html .dsq-popup .dsq-modal-tabs,* html .dsq-popup .dsq-tab-container{_display:inline!important}#dsq-popup-message.dsq-popup .dsq-modal-tabs li{margin:0;padding:0;border:0}#dsq-popup-message.dsq-popup .dsq-modal-tabs li a{display:block!important;border-bottom:1px solid #c6c6c6!important;padding:14px 20px!important;*padding-left:5px!important;text-decoration:none!important;font-size:14px!important;font-weight:bold!important;color:#777!important;text-shadow:0 1px 0 #fff!important;margin:0!important;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.6)!important;-moz-box-shadow:0 1px 0 rgba(255,255,255,.6)!important;box-shadow:0 1px 0 rgba(255,255,255,.6)!important;margin:0 1px 0 0!important;outline:none!important}#dsq-popup-message.dsq-popup .dsq-modal-tabs li a:hover{background:rgba(255,255,255,.2)!important;color:#444!important}#dsq-popup-message.dsq-popup .dsq-modal-tabs li.dsq-active a{background:#fff!important;color:#444!important;border-bottom:1px solid #aaa!important;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.14)!important;-moz-box-shadow:0 1px 3px rgba(0,0,0,.14)!important;box-shadow:0 1px 3px rgba(0,0,0,.14)!important;margin:0!important}#dsq-popup-message.dsq-popup .dsq-modal-tabs li.dsq-active a:hover{margin:0!important;border:none!important;border-bottom:1px solid #aaa!important}#dsq-popup-message.dsq-popup .dsq-modal-tabs li.dsq-active a:hover{text-shadow:none!important}#dsq-popup-message.dsq-popup .dsq-modal-tabs li a span{display:inline-block!important;width:16px!important;height:16px!important;vertical-align:text-bottom!important;margin:0 7px 0 0!important}#dsq-popup-message #dsq-login-disqus iframe{height:340px!important;overflow:hidden}#dsq-login-tab-guest span{background:url(/1325906494/images/social-icons/guest.png)!important}#dsq-login-tab-disqus span{background:url(/1325906494/images/social-icons/disqus.png)!important}#dsq-login-tab-google span{background:url(/1325906494/images/social-icons/google.png)!important}#dsq-login-tab-twitter span{background:url(/1325906494/images/social-icons/twitter.png)!important}#dsq-login-tab-facebook span{background:url(/1325906494/images/social-icons/facebook.png)!important}#dsq-login-tab-yahoo span{background:url(/1325906494/images/social-icons/yahoo.png)!important}#dsq-login-tab-openid span{background:url(/1325906494/images/social-icons/openid.png)!important}#dsq-login-facebook-frame iframe{height:22px!important}.dsq-popup .dsq-tab-container{float:left!important;padding:12px 0 25px 30px!important;padding:12px 0 25px 26px\9!important;font-size:14px!important;background:#fff}#dsq-tabbed-login-modal .dsq-tab-container{width:290px!important}#dsq-popup-message.dsq-popup .powered-by{width:100%}.dsq-tab-container .dsq-tab-content{height:100%!important;width:100%!important;display:none!important}.dsq-tab-content small{font-size:11px!important}.dsq-popup span.dsq-external-launcher{display:block!important;width:150px!important;height:22px!important}.dsq-popup span.dsq-google-connect{background:url("/1325906494/images/embed/google_signin.png")!important}.dsq-popup span.dsq-facebook-connect{background:url("/1325906494/images/embed/facebook_signin.png")!important}.dsq-popup span.dsq-twitter-connect{background:url("/1325906494/images/embed/twitter_signin.png")!important}.dsq-popup span.dsq-yahoo-connect{background:url("/1325906494/images/embed/yahoo_signin.png")!important}.dsq-popup span.dsq-disqus-connect{background:url("/1325906494/images/embed/disqus_signin.png")!important}.dsq-popup span.dsq-external-launcher:hover{background-position:0 - 24px!important}.dsq-popup span.dsq-external-launcher:active{background-position:0 - 48px!important}.dsq-connect-msg,.dsq-remote-authentication{height:200px!important}.dsq-remote-authentication img{width:32px!important;height:32px!important;margin:0 auto 20px auto!important;display:block!important}.dsq-remote-authentication p{text-align:center!important}.dsq-popup-login #dsq-login-iframe-wrapper iframe{height:355px!important}.dsq-error{color:#c03000!important}.dsq-popup-raw .powered-by{display:none}.dsq-popup-raw .dsq-popup-title{display:none}.dsq-popup-raw .dsq-popup-body{padding:0!important}.dsq-popup-raw .dsq-border{border:7px solid #bbb;border:7px solid rgba(0,0,0,.38);-moz-border-radius:15px;-webkit-border-radius:15px;border-radius:15px;-webkit-box-shadow:0 10px 50px rgba(0,0,0,.35);-moz-box-shadow:0 10px 50px rgba(0,0,0,.35);box-shadow:0 10px 50px rgba(0,0,0,.35)}.dsq-popup-raw .dsq-popup-raw-container{background:url('/1325906494/images/loading.gif') center center no-repeat #fff;width:100%;height:100%;-moz-border-radius:15px;-webkit-border-radius:6px;border-radius:6px;overflow:hidden}.dsq-popup-raw iframe{overflow:hidden;background:transparent}.dsq-profile-edit-modal .dsq-popup-body{width:650px!important}#dsq-profile-edit-modal{width:650px!important;height:420px!important}#dsq-profile-edit-modal .dsq-tab-container{width:460px!important}#dsq-profile-edit-modal .dsq-tab-container iframe{width:450px!important;height:100%!important}.dsq-popup-raw .dsq-modal-close-btn{display:block;position:absolute;background:url(/1325906494/images/embed/profile/close-btn.png);width:18px;height:18px;z-index:99999;right:25px;top:28px;text-indent:-9999em}button::-moz-focus-inner{border:0}button.dsq-button,button.dsq-button-small{color:inherit;border:1px solid #999;margin:0;#margin:0 3px;font-family:Arial,Helvetica,Calibri,sans-serif;overflow:visible;background:transparent url('/1325906494/images/themes/narcissus/button-large.png') repeat-x bottom left;_background-image:url('/1325906494/images/themes/narcissus/button-large.png')}button.dsq-button{padding:6px 8px 6px;font-size:12px;font-weight:bold;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}button.dsq-button-small{padding:2px 4px;font-size:11px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}button.dsq-button-small:disabled,button.dsq-disabled-btn{opacity:.5;cursor:default!important}button.dsq-button:hover,button.dsq-button-small:hover{cursor:pointer}button.dsq-button:active,button.dsq-button.dsq-toggled{background:#999;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#666666',endColorstr='#999999');background:-webkit-gradient(linear,left top,left bottom,from(#666),to(#999));background:-moz-linear-gradient(top,#666,#999);color:#fff;border:1px solid #555;text-shadow:0 1px 0 #666}.dsq-tooltip{font-family:"Helvetica Neue",Arial,sans-serif!important;font-size:14px!important;position:relative!important;padding:20px 0 0!important;color:#fff!important;background:#666!important;-moz-border-radius:9px!important;-webkit-border-radius:9px!important;border-radius:9px!important;background:-webkit-gradient(linear,left top,left bottom,from(#555),to(#222))!important;background:-moz-linear-gradient(top,#555,#222)!important;background:-o-linear-gradient(top,#555,#222)!important;background:linear-gradient(top,#555,#222)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555',endColorstr='#222222')!important;-moz-box-shadow:0 1px 3px rgba(0,0,0,.7)!important;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.7)!important;zoom:1!important;padding:20px 0 0!important}.dsq-tooltip-outer{padding:0 0 19px;margin:0 0 1em;background:url('/1325906494/images/tooltip-notch.png') 35px bottom no-repeat}.dsq-tooltip a{font-weight:bold!important;color:#fff!important}.dsq-tooltip-big .dsq-tooltip:after{content:""!important;position:absolute!important;width:98%!important;height:30px!important;top:0!important;left:1%!important;-webkit-border-radius:0 0 15px 15px!important;background-image:-webkit-gradient(linear,0% 0,100% 0,from(rgba(255,255,255,.85)),to(rgba(255,255,255,.5)),color-stop(.5,rgba(255,255,255,0)),color-stop(.8,rgba(255,255,255,0)))!important;background-image:-moz-linear-gradient(left,rgba(255,255,255,.85),rgba(255,255,255,0) 50%,rgba(255,255,255,0) 80%,rgba(255,255,255,.5))!important;background-image:gradient(linear,0% 0,100% 0,from(rgba(255,255,255,.85)),to(rgba(255,255,255,.5)),color-stop(.5,rgba(255,255,255,0)),color-stop(.8,rgba(255,255,255,0)))!important;opacity:.05!important}.dsq-tooltip h3{margin:0 20px 16px!important;padding:0!important;text-shadow:0 -1px 0 #222!important;font-size:16px!important;font-weight:bold!important}.dsq-tooltip input[type="checkbox"]{margin:3px .5ex!important}.dsq-tooltip a{text-decoration:underline!important}.dsq-tooltip p{margin:0 20px 0!important;padding:0 0 16px!important;color:#ccc!important;text-shadow:0 -1px 0 #222!important;display:block!important}.dsq-tooltip ul{background:#222!important;border-top:1px solid #444!important;-moz-border-radius:0 0 9px 9px!important;-webkit-border-radius:0 0 9px 9px!important;-moz-box-shadow:inset 0 1px 4px rgba(0,0,0,.9)!important;-webkit-box-shadow:inset 0 1px 4px rgba(0,0,0,.9)!important;border-radius:0 0 9px 9px!important;overflow:hidden!important;padding:10px!important;margin:0!important}.dsq-tooltip ul li{float:right!important;list-style-type:none!important;margin:0 0 0 4px!important}.dsq-tooltip ul li a{font-size:13px!important;display:block!important}.dsq-tooltip ul li a.dsq-primary-action{height:16px!important;background:#ccc!important;padding:5px 10px!important;color:#333!important;text-decoration:none!important;-moz-border-radius:5px!important;-webkit-border-radius:5px!important;border-radius:5px!important;-moz-box-shadow:inset 0 1px 0 #fff!important;-webkit-box-shadow:inset 0 1px 0 #fff!important;text-shadow:0 1px 0 #ddd!important;background:-webkit-gradient(linear,left top,left bottom,from(#ccc),to(#999))!important;background:-moz-linear-gradient(top,#ccc,#999)!important;background:-o-linear-gradient(top,#ccc,#999)!important;background:linear-gradient(top,#ccc,#999)!important}.dsq-tooltip ul li a.dsq-secondary-action{color:#ccc!important;padding:4px 4px 0 0!important}.dsq-tooltip-small{padding:0 0 10px;background-image:url('/1325906494/images/tooltip-notch.png');background-position:15px bottom;background-repeat:no-repeat}.dsq-tooltip-small .dsq-tooltip{padding:8px!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;-moz-box-shadow:0 1px 2px rgba(0,0,0,.5)!important;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5)!important;font-size:11px!important}#dsq-like-tooltip{display:none!important;width:375px!important}.dsq-popup .dsq-liked-by-user{margin-bottom:10px!important}.dsq-popup .dsq-liked-by-user a{text-decoration:none!important}.dsq-popup .dsq-liked-by-user img{width:32px!important;height:32px!important;margin-right:8px!important;vertical-align:middle!important}.dsq-popup-user-votes{width:350px!important;max-height:400px!important}.dsq-popup-user-votes ul{margin-bottom:15px!important;max-height:400px!important;_height:400px!important;overflow-y:auto!important;overflow-x:hidden!important}.dsq-popup-user-votes p{font-size:11px!important;color:#666!important}.dsq-moderate-options{background-color:#e5e5e5!important;padding:5px 10px 0 10px!important;width:360px!important;margin:10px auto!important;border-radius:4px!important;-moz-border-radius:4px!important;-webkit-border-radius:4px!important}.dsq-moderate-options table{width:100%}.dsq-moderate-options th{width:140px!important;text-align:left!important}.dsq-moderate-options td{padding:4px!important}.dsq-moderate-options ul{margin:0;padding:0!important}.dsq-moderate-options li{margin:0 0 10px 0!important;padding:0!important;border:none!important}table.dsq-moderator-settings td{vertical-align:top!important;border-bottom:solid 1px #fff!important;padding:10px 6px!important}table.dsq-moderator-settings td.last{border-bottom:none!important}table.dsq-moderator-settings td p.dsq-thread-identifiers{width:348px!important;word-wrap:break-word!important}table.dsq-moderator-settings td p.dsq-form-actions{text-align:right!important;margin-top:5px!important}#dsq-popup-message table.dsq-moderator-settings h4,#dsq-popup-message table.dsq-moderator-settings li{margin-bottom:5px!important;padding:0!important}span.dsq-options-status{margin-left:10px!important;color:#799c42!important}#dsq-popup-message ul.dsq-thread-help{margin:0!important;padding:0!important}#dsq-popup-message ul.dsq-thread-help li{margin:10px 0!important;padding:0!important;list-style:disc inside!important;display:list-item!important}#dsq-popup-message ul.dsq-thread-help li p{font-size:11px!important;color:#555!important;padding-left:5px!important}.dsq-auth-form h3{font-size:16px!important;margin:0 0 16px!important;font-weight:bold!important}.dsq-auth-form p{margin:0 0 18px 0!important}.dsq-auth-form label{display:block!important;font-weight:bold!important;margin:0 0 5px!important}.dsq-auth-form .dsq-optional-fields{display:none!important}.dsq-auth-form .dsq-login-subscribe{font-size:12px!important;vertical-align:middle!important}.dsq-auth-form .dsq-login-subscribe p{padding:0!important}.dsq-popup .dsq-tab-container .dsq-login-subscribe span{margin:0 5px 0 0!important}.dsq-popup .dsq-tab-container .dsq-login-subscribe label{display:inline!important;font-weight:normal!important}.dsq-popup .dsq-tab-container input.blur{color:#aaa!important}.dsq-popup .dsq-tab-container #guest .group{border:0!important;margin:0 0 18px!important}.dsq-popup .dsq-tab-container #guest .group p{float:left!important;margin:0 8px 0 0!important}.dsq-popup .dsq-tab-container #guest .group p input{width:124px!important;font-size:14px!important;height:16px!important}.dsq-popup .dsq-login-add-url{font-size:.8em!important;opacity:.6!important}.dsq-popup .dsq-tab-container .copy{-moz-border-radius:5px 5px 5px 5px!important;-webkit-border-radius:5px!important;background-color:#E8F0F7!important;border:1px solid #CDD6DD!important;border-top:0!important;padding:5px!important}#dsq-share-step-2{background:url(/1325906494/images/themes/narcissus/dsq-loader-dark.gif) 20px 0 no-repeat!important;height:50px!important}#dsq-share-step-2 p{padding:8px 0 0 40px!important}#dsq-content .dsq-mentions{list-style-type:none;line-height:1;z-index:9999;width:100%;position:absolute;background-color:white;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f2f2f2');background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f2f2f2))!important;background:-moz-linear-gradient(top,#fff,#f2f2f2)!important;cursor:pointer;border:1px solid #b1b1b1;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:-1px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);-moz-box-shadow:0 2px 5px rgba(0,0,0,.2);padding:0 0 2px;zoom:1}#dsq-content .dsq-mentions .dsq-mentions-highlighted{background:#dbeafe;color:#474b4f;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e8f2fe',endColorstr='#dbeafe');background:-webkit-gradient(linear,left top,left bottom,from(#e8f2fe),to(#dbeafe))!important;background:-moz-linear-gradient(top,#e8f2fe,#dbeafe)!important;border:1px solid #bbc4ce;-moz-border-radius:2px;border-radius:2px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.6);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}#dsq-content .dsq-mentions li{color:#666;border:1px solid transparent;margin:1px 3px;padding:3px;overflow:hidden;text-shadow:0 1px 0 rgba(255,255,255,.9)}#dsq-content .dsq-mentions .dsq-mentions-avatar{float:right;height:22px;width:22px;-moz-border-radius:2px;border-radius:2px}#dsq-content .dsq-mentions-twitter span{background:url(/1325906494/images/embed/profile/twitter_16.png) center left no-repeat}#dsq-content .dsq-mentions-facebook span{background:url(/1325906494/images/embed/profile/facebook_16.png) center left no-repeat}#dsq-content .dsq-mentions-google span{background:url(/1325906494/images/social-icons/google.png) center left no-repeat}#dsq-content .dsq-mentions-disqus span{background:url(/1325906494/images/social-icons/disqus.png) center left no-repeat}#dsq-content .dsq-mentions span{padding-left:20px;display:block;margin:3px 0 0 2px}#dsq-content .dsq-mentions li .dsq-mentions-avatar,#dsq-content .dsq-mentions li .dsq-mentions-name,#dsq-content .dsq-mentions li .dsq-mentions-protocol{display:inline;vertical-align:middle}#dsq-content .dsq-mentions li .dsq-mentions-name{font-size:14px}#dsq-content .dsq-mentions li.dsq-mention-section{bord background:#f2f2f2;padding:2px 8px;margin:0}#dsq-content .dsq-mentions li.dsq-mention-section h5{margin:0;padding:0;border:0;font-weight:normal;font-size:11px;line-height:11px;color:#999;text-shadow:0 1px 0 #fff}#dsq-content .dsq-mention{color:inherit;opacity:.9;filter:alpha(opacity=90);background-image:url(/1325906494/images/themes/houdini/backgrounds-sprite.png);background-repeat:repeat-x;border-width:1px;border-style:solid;border-color:#ccc;border-color:rgba(0,0,0,.15);border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;padding-top:0;padding-right:4px;padding-bottom:0;padding-left:4px;text-shadow:0 1px 0 rgba(255,255,255,.9);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.9);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.9)}#dsq-content .dsq-mention a{text-decoration:none;color:inherit}.dsq-popup .dsq-field{margin:0 0 10px!important}.dsq-popup .dsq-field label{font-weight:bold!important;color:#444!important;display:block!important;margin-bottom:8px!important;font-size:14px!important}.dsq-popup .dsq-field input{background:url(/1325906494/img/ui/forms/input-bg.jpg)!important;display:block!important;padding:6px 10px!important;border:solid 1px #989999!important;border-radius:3px!important;width:268px!important;height:28px!important;font-size:14px!important;color:#444!important;-webkit-border-radius:2px!important;-moz-border-radius:2px!important;-o-border-radius:2px!important;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.14)!important;-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.14)!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.14)!important;outline:none!important}.dsq-popup .dsq-field input:focus{background:#f6f6f6!important}.dsq-popup .dsq-field label.error{color:#c03000!important}.dsq-popup input.dsq-anchored-to{padding:0!important;width:380px!important}.dsq-popup .dsq-button{cursor:pointer!important;font-family:"Helvetica Neue",helvetica,arial,sans-serif!important;font-size:12px!important;font-weight:700!important;background:url(/1325906494/img/ui/buttons/grey-button-bg.jpg) center center repeat-x!important;border:1px solid #8b8b8b!important;-moz-border-radius:3px!important;border-radius:3px!important;padding:8px 16px!important;text-shadow:0 1px 0 #fff!important;margin:0!important;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,.2)!important;-moz-box-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,.2)!important;box-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,.2)!important}.dsq-popup a{color:#3080C8!important}.dsq-badge-wrap{display:inline-block;position:relative;margin:0 0 -1px 7px}.dsq-badge{font-family:"Helvetica Neue",arial,sans-serif;display:inline-block;background:#333;background:rgba(30,30,30,.6);color:#fff;font-weight:400;font-size:9px;padding:2px 4px;line-height:1;border-radius:2px!important;-moz-border-radius:2px!important;-webkit-border-radius:2px!important;position:relative;top:-2px;text-shadow:0 1px 0 rgba(0,0,0,.4);border:1px solid #444;border:1px solid rgba(20,20,20,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 0 rgba(0,0,0,.2)}#dsq-content .dsq-badge-image{position:relative;width:32px;height:16px}#dsq-content .dsq-badge-image img{position:absolute;top:-8px;left:0}#dsq-content .dsq-alert{color:#eee!important;background:#444!important;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.33)!important;border-radius:3px!important;padding:10px!important;margin:6px 0 0!important;position:absolute!important;-webkit-transform:scale(.90)!important;-webkit-transition:all .8s ease-in-out!important;-moz-transition:all .8s ease-in-out!important;-o-transition:all .8s ease-in-out!important;transition:all .8s ease-in-out!important;z-index:9999!important;left:-50px;top:22px;width:100px;text-align:center;font-size:12px}#dsq-content .dsq-alert-hidden{display:none}#dsq-content .dsq-alert .dsq-avatar{left:9px!important}#dsq-content .dsq-alert .dsq-avatar .dsq-mini-avatar{position:absolute;bottom:-3px;right:-3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.6)!important}#dsq-content .dsq-alert .dsq-avatar .dsq-mini-avatar img{width:19px;height:19px;border:1px solid #eee}#dsq-content .dsq-alert-notch{position:absolute!important;top:-5px!important;left:50%!important;border-color:transparent transparent #444!important;border-style:solid!important;border-width:0 6px 6px!important;height:0!important;width:0!important;margin-left:-6px!important}#dsq-content .dsq-alert p{text-shadow:0 1px 1px rgba(0,0,0,.9)!important;margin:1px 0 0 0!important;font-size:14px!important;line-height:1.2!important;font-weight:500;white-space:normal}#dsq-content .dsq-alert p a{color:#fff!important;text-decoration:none!important}#dsq-content .dsq-messagesx{border-top:1px solid #ddd!important;padding:5px!important;min-height:32px!important}#dsq-content #dsq-unapproved{background-color:#ffc;padding:10px;border:1px solid #cc4;border-radius:3px;box-shadow:inset 0 1px 0 #fff,0 1px 3px rgba(0,0,0,.2);-moz-box-shadow:inset 0 1px 0 #fff,0 1px 3px rgba(0,0,0,.2);color:#000}#dsq-content #dsq-unapproved h4{margin:0 0 10px}#dsq-content #dsq-unapproved ul{margin-top:1em;list-style-type:none}#dsq-content #dsq-unapproved li{margin-top:5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;height:20px}#dsq-content #dsq-unapproved li img{width:16px;height:16px;margin-right:6px;margin-bottom:-4px}#dsq-content #dsq-unapproved p{margin:6px 0 0 0;font-size:11px}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
DISQUS.define("strings",function(){var b=DISQUS.settings.get("disqus.debug"),e=DISQUS.settings.get("disqus.urls.media")+"/build/lang/",d={},a="en",f={},c=function(){this.value=(this.ie=DISQUS.isBrowser("ie"))?[]:""};c.prototype={put:function(a){this.ie?this.value.push(a):this.value+=a},compile:function(){if(this.ie)this.value=this.value.join("");return this.value}};return{translations:f,setGlobalContext:function(a){DISQUS.extend(d,a)},get:function(a){return f[a]||a},interpolate:function(a,b){var c=
|
|
2
|
+
[b||{},d];return a.replace(/%\(\w+\)s/g,function(a){a:{for(var a=a.slice(2,-2),b=0,f=c.length;b<f;b++)if(c[b][a]!==void 0){a=c[b][a].toString();break a}throw"Key "+a+" not found in context";}return a})},pluralize:function(a,b,c){return a!=1?c||"s":b||""},trim:function(a){for(var a=a.replace(/^\s\s*/,""),b=/\s/,c=a.length;b.test(a.charAt(--c)););return a.slice(0,c+1)},capitalize:function(a){return a.charAt(0).toUpperCase()+a.slice(1)},isUTF8:function(a){for(var b=0,c=a.length;b<c;b++)if(a.charCodeAt(b)>
|
|
3
|
+
256)return!0;return!1},Builder:c,loadLang:function(c,f){DISQUS.require(e+c+".js",{},b,f);a=c},getCurrentLang:function(){return a}}});DISQUS.define("dtpl",function(){var b=function(){};b.prototype={container:function(){return this._container},textareaContainer:function(){return this._textareaContainer},show:function(){var a=this.container();if(a)a.style.display="block";this.rpc.show&&this.rpc.show()},hide:function(){var a=this.container();if(a)a.style.display="none"}};var e=function(a,b){var c=this;c.id=a;c.rpcReady=!1;c.focusCalled=!1;c._container=null;var d;d=a?c.render(b):DISQUS.jsonData.forum.template.api=="1.0"?DISQUS.nodes.get("#dsq-textarea-wrapper"):
|
|
4
|
+
DISQUS.nodes.get(".dsq-textarea-wrapper",DISQUS.nodes.get("#dsq-reply"))[0];c.rpc=DISQUS.comm.Reply.create(d,a,function(){DISQUS.dtpl.actions.fire("comments.reply.new.onLoadingEnd",a);c.rpcReady=!0;c.focusCalled&&setTimeout(function(){c.focus()},0)});var e=DISQUS.nodes.get(".dsq-attach-media-container",c.container())[0];if(e&&DISQUS.dtpl.actions.registered("comments.reply.media.upload.onSuccess")&&DISQUS.jsonData.context.switches.upload_media)c.uploadrpc=DISQUS.comm.Upload.create(e,a);c._textareaContainer=
|
|
5
|
+
d;DISQUS.dtpl.actions.fire("comments.reply.new.onLoadingStart",a)};e.instances={};e.create=function(a,b){var c=new e(a,b);return e.instances[a]=c};e.get=function(a){return e.instances[a]};DISQUS.extend(e.prototype,b.prototype,{focus:function(){this.rpcReady?this.rpc.focus():this.focusCalled=!0},render:function(a){var b=this.id;if(typeof a==="string"){var c=document.createElement("div");c.innerHTML=a;a=c}c=DISQUS.nodes.get(DISQUS.dtpl.APPEND_REPLY_ID(this.id));this._container=a;DISQUS.jsonData.forum.template.api==
|
|
6
|
+
"1.0"?(c.appendChild(a),a=DISQUS.nodes.get("#dsq-textarea-wrapper"+(b?"-"+b:""))):(DISQUS.nodes.insertAfter(c,a),a=DISQUS.nodes.get(".dsq-textarea-wrapper",a)[0]);return a}});var d=function(a,b){var c=this;if(typeof b==="string"){var d=document.createElement("div");d.innerHTML=b;b=d}if(DISQUS.jsonData.forum.template.api=="1.0")d=document.createElement("div"),d.appendChild(b),b=d,b.id="dsq-edit-"+a,b.className="dsq-edit dsq-textarea";d=DISQUS.nodes.get(DISQUS.dtpl.APPEND_EDIT_ID(a));DISQUS.jsonData.forum.template.api==
|
|
7
|
+
"1.0"?(d.appendChild(b),d=DISQUS.nodes.get("#dsq-edit-iframe-"+a)):(DISQUS.nodes.insertAfter(d,b),d=DISQUS.nodes.get(".dsq-textarea-wrapper",b)[0]);c.rpc=DISQUS.comm.Edit.create(d,a,function(){c.rpc.focus()});c._container=b;c._textareaContainer=d};d.instances={};d.create=function(a,b){var c=new d(a,b);return d.instances[a]=c};d.get=function(a){return d.instances[a]};DISQUS.extend(d.prototype,e.prototype,{focus:function(){}});DISQUS.once("thread.onReady",function(){var a=DISQUS.jsonData;DISQUS.dtpl.actions.fire("messagesx.render",
|
|
8
|
+
a.messagesx);DISQUS.dtpl.actions.fire("messagesx.init",a.request);a.context.switches.embed_labs&&DISQUS.requireSet(a.labs.files,!0,function(){DISQUS.trigger("labs.onReady")})});DISQUS.once("loader.onActionsReady",function(){DISQUS.dtpl.actions.fire("mentions.render",DISQUS.jsonData.posts);DISQUS.bind("loader.onDataReady",function(){DISQUS.dtpl.actions.fire("mentions.render",DISQUS.jsonData.posts)})});DISQUS.bind("data.onPostUpdate",function(a){var b={};typeof a.data.message==="string"&&(b[a.id]=DISQUS.jsonData.posts[a.id],
|
|
9
|
+
DISQUS.dtpl.actions.fire("mentions.render",b))});return{getAction:function(a,b){function c(){var a=Array.prototype.slice.call(arguments);a.unshift(DISQUS.dtpl.actions.fire);return DISQUS.partial.apply({},a)}function d(b){return a.getAttribute("data-dsq-"+b)}var e=a.getAttribute("data-dsq-action"),i=DISQUS.jsonData.posts[a.getAttribute("data-dsq-comment")]||null,l=DISQUS.jsonData.request;if(b.type!="click"){if(b.type=="change"&&e=="thread:sort")return c("thread.sort",a.value)}else switch(e){case "media:expand":return c("thread.expandMediaEmbed",
|
|
10
|
+
d("media"));case "reactions:showRetweets":return c("reactions.showRetweets",d("reaction"));case "reactions:hide":return c("reactions.hide",d("reaction"));case "reactions:more":return c("reactions.loadMore");case "thread:subscribe":return c("thread.subscribe");case "thread:unsubscribe":return c("thread.unsubscribe");case "thread:paginate":return c("thread.paginate",d("page"));case "session:login":return c("auth.login");case "session:help":return c("help.login");case "user:showProfile":return c("profile.show",
|
|
11
|
+
i&&i.id,d("username"));case "comments:edit":return c("comments.edit",i.id);case "comments:edit:send":return c("comments.edit.send",i.id);case "comments:edit:cancel":return c("comments.edit.cancel",i.id);case "comments:reply":return c("comments.reply",i.id);case "comments:reply:send":if(l.is_authenticated)return c("comments.send",i&&i.id,a);return c("comments.validate",i&&i.id,a);case "comments:reply:toggleSharing":return e=a.getAttribute("type"),c("share.toggle",a,e,i&&i.id);case "comments:text:collapse":return c("comments.text.collapse",
|
|
12
|
+
i.id);case "comments:text:expand":return c("comments.text.expand",i.id);case "comments:like":return c("comments.like",a,i.id);case "comments:showParent":return c("comments.showParent",i.parent_post_id);case "comments:showLikes":return c("comments.showUserVotes",i.id);case "comments:permalink":return c("comments.permalink",i.id);case "comments:moderate":return c("comments.moderate.options",i.id);case "comments:report":return c("comments.report",i.id);case "comments:collapse":return c("comments.collapse",
|
|
13
|
+
i.id);case "comments:expand":return c("comments.expand",i.id)}},append:function(a,b){a.innerHTML=b},replaceHtml:function(a,b){a.innerHTML=b},getGuestFields:function(a){function b(c){return DISQUS.nodes.get("#"+c+(a?"-"+a:""))}return{name:b("dsq-field-name"),email:b("dsq-field-email"),website:b("dsq-field-website"),username:b("dsq-field-username"),password:b("dsq-field-password"),subscribe:b("dsq-subscribe-on-post")}},ReplyBox:e,EditBox:d}});DISQUS.define("dtpl.actions",function(){function b(a,b,q){var c;typeof b==="string"?(c=b,b=q):c=">= "+s[0];o[a]||(o[a]={});o[a][c]=b}function e(a,b,q){if(DISQUS.settings.get("disqus.debug"))return a.apply({},b);try{return a.apply({},b)}catch(c){return window.console&&window.console.log&&(q&&window.console.log("Exception in "+q),window.console.log(c),typeof printStackTrace!=="undefined"&&window.console.log(printStackTrace({e:c}).join("\n"))),!1}}function d(a,b){if(n[a])if(typeof b==="undefined")return delete n[a],
|
|
14
|
+
!0;else DISQUS.lang.forEach(n[a],function(q,c){if(b.guid&&b.guid==q.guid)return delete n[a][c],!0});return!1}function a(a,b){b=b||u;if(!o[a])return!1;var q=null;DISQUS.each(o[a],function(a,r){var c=r.match(/(=|>=)\s*([0-9\.]+)/),d=c[1],c=c[2];d=="="&&b==c?q=a:d==">="&&b>=c&&(q=a)});return q}function f(r,b){return!!a(r,b)}function c(a,b,q){return!!n[a]||(b?!1:f(a,q))}function g(){var r=arguments[0],b=[],q=!0,d;if(DISQUS.jsonData!=null)if(DISQUS.status=="ready"&&DISQUS.jsonData.ready!==!1)d=DISQUS.jsonData.forum.template.api;
|
|
15
|
+
else return;typeof r==="object"&&(d=r[1],r=r[0]);if(!c(r,!1,d))throw"Action "+r+" not found";for(var g=1;g<arguments.length;g++)b.push(arguments[g]);n[r]&&DISQUS.lang.forEach(n[r],function(a){q=q&&!!e(a,b,r)});f(r,d)&&q&&e(a(r,d),b,r);return!1}function h(a){var b=function(b){return"#"+a+(b?"-"+b:"")};b.toString=function(){return b()};return b}function i(a){var a=DISQUS.nodes.get("li",a),b;for(b=0;b<a.length;++b)if(DISQUS.nodes.hasClass(a[b],"dsq-mentions-highlighted"))return a[b];return null}function l(a,
|
|
16
|
+
b){if(!a)return!1;if(a.hasAttribute)return a.hasAttribute(b);else if(a.attributes)return!!a.attributes[b];return!1}function m(a,b,c){if(b=b?c=="up"?b.previousSibling:b.nextSibling:a.firstChild){do if(l(b,"data-dsq-username"))return b;while(b=c=="up"?b.previousSibling:b.nextSibling)}}var o={},n={},j=null,t=[],s=["1.0","1.1"],u=s[s.length-1];b("__.comments.reply.media.upload",function(a){g("comments.reply.media.upload.onLoadingStart",a)});b("__.comments.reply.media.upload.onResponse",function(a,b){if(a&&
|
|
17
|
+
a.constructor===Array)for(var c=a.length-1;c>=0;--c)g("comments.reply.media.upload.onLoadingEnd",b),g("comments.reply.media.upload.onSuccess",a[c],b);else a&&a.success&&a.media?(b=b||"",c=DISQUS.comm.Upload.recover(b),a.forum_id=DISQUS.jsonData.forum.id,a.thread_id=DISQUS.jsonData.thread.id,a.id=b,c.media("set",a),g("comments.reply.media.upload.onLoadingEnd",b),g("comments.reply.media.upload.onSuccess",a.media,b)):a.silence||(a.message&&g("message.error",a.message,a.title||"Error"),g("comments.reply.media.upload.onLoadingEnd",
|
|
18
|
+
b))});b("comments.reply.media.remove",function(a,b){var c={id:b,media:DISQUS.json.stringify(a.media)};DISQUS.request.get(DISQUS.jsonData.urls.upload_remove+"?ts="+ +new Date,c)});b("__.comments.reply.media.remove.onResponse",function(a){delete a.success;a.id=a.id||"";a.forum_id=DISQUS.jsonData.forum.id;a.thread_id=DISQUS.jsonData.thread.id;DISQUS.comm.Upload.recover(a.id).media("remove",a,a.id);g("comments.reply.media.remove.onSuccess",a)});b("__.comments.reply.media.upload.clear",function(a){var b=
|
|
19
|
+
DISQUS.comm.Upload.recover(a);b&&(b.media("clear",{forum_id:DISQUS.jsonData.forum.id,thread_id:DISQUS.jsonData.thread.id,id:a||""}),g("comments.reply.media.upload.clear",a))});b("message.error",function(a,b){DISQUS.popup.popModal(a,b||DISQUS.strings.get("Error"))});b("message.error.onField",function(a,b){if(DISQUS.jsonData.forum.revert_new_login_flow)g("message.error",DISQUS.strings.get(a),DISQUS.strings.get("Oops..."));else if(b){var c=DISQUS.nodes.get("#"+b+"-label");if(c)DISQUS.nodes.addClass(c,
|
|
20
|
+
"dsq-error"),c.innerHTML=DISQUS.strings.get(a)}else alert(DISQUS.strings.get(a))});b("comments.reply.onCookieFailure","= 1.0",function(a){var b=document.createElement("div");b.innerHTML=DISQUS.renderBlock("cookieFailure");DISQUS.nodes.insertBefore(DISQUS.nodes.get("#dsq-form-area"+(a?"-"+a:"")),b)});b("comments.reply.onCookieFailure",">= 1.1",function(){});b("message.unapprovedComment",function(a,b){DISQUS.popup.popModal(DISQUS.renderBlock("unapprovedCommentMessage",{mustVerify:a}),DISQUS.strings.get("Comment awaiting approval"),
|
|
21
|
+
b,!0,"dsq-popup-unapproved")});b("share.toggle",function(a,b,c){DISQUS.nodes.hasClass(a,"dsq-share-toggled")?DISQUS.nodes.removeClass(a,"dsq-share-toggled"):DISQUS.nodes.addClass(a,"dsq-share-toggled");c=c||null;DISQUS.cache.postSharing[c]=DISQUS.cache.postSharing[c]||{twitter:null,facebook:null};a=DISQUS.cache.postSharing[c];a[b]=!a[b]});b("private.setLoadingButton",function(a,b){var c=b?"-"+b:"",d;if(a){d=document.createElement("button");d.id=a.id+"-loading";d.className=a.className+" dsq-post-loading";
|
|
22
|
+
d.innerHTML=DISQUS.strings.get("Just a moment...");a.style.display="none";a.parentNode.appendChild(d);if(c=DISQUS.nodes.get("#dsq-cancel-button"+c))c.style.display="none";DISQUS.cache.buttonsToRestore.push(a)}else DISQUS.lang.forEach(DISQUS.cache.buttonsToRestore,function(a){a.style.display="inline";DISQUS.nodes.remove(DISQUS.nodes.get("#"+a.id+"-loading"))})});b("comments.validate",function(a){DISQUS.comm.Reply.recover(a).validate(function(b){b?DISQUS.comm.ensureLoggedIn(function(){g("comments.send",
|
|
23
|
+
a)},"postas",{onGuest:function(){g("comments.send",a,null,{fields:DISQUS.dtpl.getGuestFields(null)})}}):(g("message.error",DISQUS.strings.get("Please enter a comment to post.")),g("private.setLoadingButton"))})});b("auth.login",function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()})});b("auth.disqus",function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()},"disqus")});b("auth.twitter",function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()},"twitter")});b("auth.yahoo",
|
|
24
|
+
function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()},"yahoo")});b("auth.openid",function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()},"openid")});b("auth.google",function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()},"google")});b("auth.facebook",function(){DISQUS.comm.ensureLoggedIn(function(){DISQUS.redraw()},"facebook")});b("auth.sso",function(){var a=window.open(DISQUS.config.sso.url,"ssoWindow","location=0,status=0,width="+(DISQUS.config.sso.width||800)+",height="+
|
|
25
|
+
(DISQUS.config.sso.height||400)),b=setInterval(function(){DISQUS.window.isClosed(a)&&(clearInterval(b),window.location.reload())},500)});b("comments.text.expand",function(a){var b=DISQUS.nodes.get("#dsq-comment-message-"+a),c=DISQUS.nodes.get("#dsq-comment-text-"+a),d=DISQUS.nodes.get(".dsq-comment-truncate-expand",b)[0],b=DISQUS.nodes.get(".dsq-comment-truncate-collapse",b)[0];d.style.display="none";b.style.display="inline";c.innerHTML=DISQUS.jsonData.posts[a].message;return!1});b("comments.text.collapse",
|
|
26
|
+
function(a){var b=DISQUS.nodes.get("#dsq-comment-message-"+a),a=DISQUS.nodes.get("#dsq-comment-text-"+a),c=DISQUS.nodes.get(".dsq-comment-truncate-expand",b)[0],b=DISQUS.nodes.get(".dsq-comment-truncate-collapse",b)[0],d=DISQUS.jsonData.forum.comment_max_words;if(!a||d===0)return!1;if(DISQUS.nodes.truncateComment(a,d,"...")&&c&&b)c.style.display="inline",b.style.display="none";return!1});b("comments.insert",function(a,b,c){var d={};DISQUS.redraw();var e=DISQUS.nodes.get("#dsq-comments"),f=document.createElement("div");
|
|
27
|
+
d.comment=DISQUS.jsonData.posts[b];d.comment.id=b;d.comment.author=DISQUS.jsonData.users[d.comment.user_key];if(c&&c.length)d.comment.media=c,DISQUS.jsonData.mediaembed=DISQUS.jsonData.mediaembed.concat(c);if(d.comment.parent_post_id){d.comment.parent=DISQUS.jsonData.posts[d.comment.parent_post_id];d.comment.parent.author=DISQUS.jsonData.users[d.comment.parent.user_key];c=DISQUS.nodes.get("#dsq-comment-"+d.comment.parent_post_id);DISQUS.nodes.addClass(c,"dsq-comment-is-parent");c=d.comment.parent;
|
|
28
|
+
do c.num_replies+=1,c=DISQUS.jsonData.posts[c.parent_post_id];while(c!==void 0)}d.comment.stripped=function(a){var b=d.comment.message.replace(/<.*?>/g,"");if(b.length>a)return b.substring(0,a);return null};DISQUS.dtpl.replaceHtml(f,DISQUS.renderBlock("comment",d));a===-1?e.appendChild(f):a?DISQUS.nodes.get("dsq-comment-"+a)&&(e=DISQUS.nodes.get(DISQUS.dtpl.APPEND_COMMENT_ID(a)),DISQUS.nodes.insertAfter(e,f)):e.insertBefore(f,e.firstChild);e=DISQUS.nodes.get("#dsq-avatar-"+b);e=DISQUS.nodes.get("img.dsq-deferred-avatar",
|
|
29
|
+
e);DISQUS.lang.forEach(e,function(a){a.setAttribute("src",a.getAttribute("data-src"));DISQUS.nodes.removeClass(a,"dsq-deferred-avatar")});g("comments.text.collapse",b);DISQUS.ui.applyTooltips(f);DISQUS.dtpl.actions.fire("__.comments.insert.onSuccess",a,b)});b("comments.insert.onSuccess",function(){});b("__.comments.insert.onSuccess",function(a,b){DISQUS.dtpl.actions.fire("comments.insert.onSuccess",a,b)});b("comments.insert.onSuccess",function(){});b("comments.blacklist",function(a,b){var c={forum:DISQUS.jsonData.forum.url},
|
|
30
|
+
d={"dsq-blacklist-username":"user","dsq-blacklist-email":"email","dsq-blacklist-ip":"ip","dsq-blacklist-retroactive":"retroactive"},e=0;if(b)if(DISQUS.lang.forEach(d,function(a,b){var r=DISQUS.nodes.get("#"+b);if(r&&r.checked)c[a]=r.value,e++}),e<1)alert(DISQUS.strings.get("Please select something to add to the blacklist."));else{if(c.user)c.user="username:"+c.user;DISQUS.api("blacklists/add",{data:c,type:"POST",success:function(){DISQUS.popup.close(null,!0)},failure:function(){DISQUS.popup.close(null,
|
|
31
|
+
!0)}})}else d=DISQUS.jsonData.posts[a],DISQUS.popup.close(null,!0),DISQUS.popup.popModal(DISQUS.renderBlock("blacklistPopup",{comment:d,user:DISQUS.jsonData.users[d.user_key]}),DISQUS.strings.get("Add to Blacklist"))});b("comments.outline",function(a){var b=DISQUS.nodes.get("#dsq-comment-"+a);b&&(DISQUS.nodes.addClass(b,"dsq-comment-outline"),setTimeout(function(){DISQUS.nodes.removeClass(b,"dsq-comment-outline")},3E3))});b("comments.permalink",function(a){DISQUS.popup.popModal(DISQUS.renderBlock("permalinkPopup",
|
|
32
|
+
{postId:a}),DISQUS.strings.get("Link to this comment"),a)});b("comments.send",function(a,b,c){if(!DISQUS.cache.postboxBusy[a||null]){DISQUS.cache.postboxBusy[a||null]=!0;var d=DISQUS.comm.Reply.recover(a),c=c||{},e=function(b){try{return+(DISQUS.cache.postSharing[a||null][b]||0)}catch(c){return 0}},f=function(b){DISQUS.dtpl.actions.fire("comments.send.onSuccess",b,a)},i=function(d){d=d.data;d.sendArguments={postId:a,element:b,options:c};DISQUS.dtpl.actions.fire("comments.send.onFailure",d)};b&&g("private.setLoadingButton",
|
|
33
|
+
b,a);DISQUS.jsonData.request.is_authenticated?d.post({tw:e("twitter"),fb:e("facebook"),tr:e("tumblr"),wp:e("wordpress"),mt:e("movabletype"),tp:e("typepad"),yh:e("yahoo")},c.captcha||null,f,i):(e=c.fields||DISQUS.dtpl.getGuestFields(a),DISQUS.dtpl.validators.guestFields(e)&&d.postAsGuest(e.name.value,e.email.value,e.website?e.website.value:"",e.subscribe&&e.subscribe.checked,c.captcha||null,f,i));c.force&&DISQUS.cookies.create("skipped_auth",!0)}});b("comments.send.onSuccess",function(a,b){var c=DISQUS.jsonData.users,
|
|
34
|
+
d=a.message.post_meta.user_key;DISQUS.cache.postboxBusy[b||null]=!1;a.succeeded&&g("__.comments.reply.media.upload.clear",a.message.post_meta.parent_post_id);DISQUS.updatePost(a.message.id,a.message.post_meta);if(!c[d])c[d]=a.message.user_meta;c=typeof disqus_insert_wrt_sort=="undefined"?DISQUS.jsonData.forum.reply_position?-1:null:DISQUS.jsonData.request.sort=="newest"?null:-1;a.message.post_meta.approved&&g("comments.insert",a.message.post_meta.parent_post_id||c,a.message.id,a.message.media_embed);
|
|
35
|
+
b&&g("comments.reply.cancel",b);DISQUS.popup.close(null,!0);a.message.post_meta.approved?(g("thread.incrementCommentsCount"),g("comments.outline",a.message.id)):(g("message.unapprovedComment",DISQUS.jsonData.request.missing_perm=="verify",a.message.id),DISQUS.redraw());a.message.fb_callback&&a.message.fb_callback[0]&&DISQUS.FB.init(function(){DISQUS.FB.streamPublish("",a.message.fb_callback[1])});g("private.setLoadingButton");DISQUS.trigger("comment.onCreate",{id:a.message.id,text:a.message.post_meta.message})});
|
|
36
|
+
b("comments.showUserVotes",function(a){DISQUS.request.get(DISQUS.jsonData.urls.show_user_votes,{post_id:a},!0)});b("comments.highlight",function(a){DISQUS.api("posts/highlight",{data:{post:a},type:"POST",success:function(a){DISQUS.dtpl.actions.fire("comments.highlight.onSuccess",a[0])}})});b("comments.highlight.onSuccess",function(){});b("comments.unhighlight",function(a){DISQUS.api("posts/unhighlight",{data:{post:a},type:"POST",success:function(a){DISQUS.dtpl.actions.fire("comments.unhighlight.onSuccess",
|
|
37
|
+
a[0])}})});b("comments.unhighlight.onSuccess",function(){});b("comments.showParent",function(a){var b=DISQUS.jsonData.posts[a],c=DISQUS.renderBlock("commentMessage",{comment:b,cls:""});c+='<br/><br/><a href="#comment-'+a+'">'+DISQUS.strings.get("Jump to comment")+"</a>";DISQUS.popup.popModal(c,b.author.display_name+" "+DISQUS.strings.get("said")+"…",a)});b("captcha.init",function(a){window.Recaptcha||DISQUS.require("http://www.google.com/recaptcha/api/js/recaptcha_ajax.js");DISQUS.addJob(function(){return!!window.Recaptcha},
|
|
38
|
+
a)});b("captcha.open",function(a){function b(){var c=DISQUS.lang.partial(DISQUS.dtpl.actions.fire,"captcha.submit",a),d=DISQUS.nodes.get("button",DISQUS.nodes.get("#dsq-captcha"))[0];DISQUS.events.add(d,"click",c);d=DISQUS.nodes.get("#recaptcha_response_field");DISQUS.events.add(d,"keypress",function(a){(a.keyCode||a.which)==13&&c()});DISQUS.nodes.get("#dsq-captcha-loading").style.display="none";DISQUS.nodes.get("#dsq-captcha-container").style.display="block";Recaptcha.focus_response_field()}DISQUS.popup.popModal(DISQUS.renderBlock("recaptcha"),
|
|
39
|
+
DISQUS.strings.get("One More Step ..."),null,null,null,{onReady:function(){Recaptcha.create(DISQUS.jsonData.settings.recaptcha_public_key,"dsq-captcha-form",{theme:"clean",callback:b})},onClose:function(){Recaptcha.destroy();g("private.setLoadingButton")}})});b("captcha.submit",function(a){var b=a.options,c=DISQUS.nodes.get;b.captcha={recaptcha_challenge_field:c("#recaptcha_challenge_field").value,recaptcha_response_field:c("#recaptcha_response_field").value};g("comments.send",a.postId,a.element,
|
|
40
|
+
b);DISQUS.popup.close(null,!0)});b("comments.send.onFailure",function(a){a.sendArguments&&(DISQUS.cache.postboxBusy[a.sendArguments.postId||null]=!1);a.code=="captcha-required"?DISQUS.dtpl.actions.fire("captcha.init",DISQUS.lang.partial(DISQUS.dtpl.actions.fire,"captcha.open",a.sendArguments)):(g("message.error",a.message),g("private.setLoadingButton"))});b("comments.edit",function(a){DISQUS.states.edit[a]?g("comments.edit.cancel",a):g("comments.edit.new",a);DISQUS.states.edit[a]=!DISQUS.states.edit[a]});
|
|
41
|
+
b("comments.edit.new",function(a){DISQUS.comm.Edit.recover(a)||g("comments.edit.render",a);g(["comments.edit.show","1.1"],a)});b("comments.edit.render",function(a){var b=DISQUS.renderBlock("editArea",{comment:DISQUS.jsonData.posts[a]});DISQUS.dtpl.EditBox.create(a,b)});b("comments.edit.show",">= 1.1",function(a){DISQUS.popup.close(null,!0);DISQUS.nodes.get("#dsq-comment-message-"+a).style.display="none";var b=DISQUS.nodes.get("#dsq-media-embed-"+a);if(b)b.style.display="none";b=DISQUS.nodes.get("#dsq-comment-"+
|
|
42
|
+
a);b=DISQUS.nodes.get(".dsq-editedtxt",b);b.length&&DISQUS.nodes.remove(b[0]);DISQUS.dtpl.EditBox.get(a).show()});b("comments.edit.show","= 1.0",function(a){return g("comments.edit",a)});b("comments.edit.cancel",function(a){var b=DISQUS.nodes.get("#dsq-comment-message-"+a),c=DISQUS.nodes.get("#dsq-media-embed-"+a);b.style.display="block";if(c)c.style.display="block";DISQUS.dtpl.EditBox.get(a).hide()});b("comments.edit.send",function(a){DISQUS.comm.Edit.recover(a).save(function(b){DISQUS.updatePost(a,
|
|
43
|
+
b.message);g("comments.edit.onSuccess",b,a)},function(b){g("comments.edit.onFailure",b,a)})});b("comments.edit.onSuccess",function(a,b){var c=DISQUS.nodes.get("#dsq-comment-message-"+b);DISQUS.dtpl.replaceHtml(c,DISQUS.renderBlock("commentMessage",{comment:DISQUS.jsonData.posts[b],cls:"dsq-comment-message"}));for(var d=c.childNodes,e=d.length-1;e>=0;--e)if(RegExp("^dsq-comment-message-"+b).test(d[e].id)){c.innerHTML=d[e].innerHTML;break}g("comments.edit.cancel",b)});b("comments.edit.onFailure",function(){g("message.error",
|
|
44
|
+
DISQUS.strings.get("Your comment must be approved by a moderator before appearing here."),DISQUS.strings.get("Comment awaiting approval"));DISQUS.reload(function(){DISQUS.redraw()})});b("comments.spam",function(a){DISQUS.popup.close(null,!0);DISQUS.api("posts/spam",{data:{post:a},type:"POST",success:function(a){DISQUS.dtpl.actions.fire("comments.spam.onSuccess",a[0].id)}})});b("comments.spam.onSuccess","= 1.0",function(a){DISQUS.nodes.get("#comment-"+a).innerHTML=DISQUS.strings.get("Comment marked as spam.");
|
|
45
|
+
DISQUS.nodes.get("#comment-"+a).className="dsq-remove-message";DISQUS.nodes.get("#dsq-comment-"+a).style.display="none"});b("comments.spam.onSuccess",">= 1.1",function(){});b("comments.reply.onResize",function(){});b("comments.dislike",function(a){var b=DISQUS.jsonData,c=b.posts[a].down_voted?0:-1;b.request.is_authenticated||b.forum.allow_anon_votes?(g("comments.dislike.onLoadingStart",a),DISQUS.request.get(b.urls.embed_vote,{post_id:a,vote:c},!0)):g("auth.disqus",DISQUS.strings.get("To vote please login"))});
|
|
46
|
+
b("comments.dislike.onLoadingStart",function(){});b("comments.dislike.onLoadingEnd",function(){});b("comments.dislike.onSuccess",function(){});b("__.comments.dislike.onSuccess",function(a,b,c){var d=DISQUS.jsonData.posts[a].dislikes,e=c==-1;DISQUS.updatePost(a,{user_voted:c!==0,down_voted:e,dislikes:e?d+1:d-1,points:b});g("comments.dislike.onLoadingEnd",a);g("comments.dislike.onSuccess",a,b)});b("comments.like.loading","= 1.0",function(a){a=DISQUS.nodes.get("#dsq-like-"+a);DISQUS.nodes.get("button",
|
|
47
|
+
a)[0].style.display="none";var b=document.createElement("img");b.src=DISQUS.jsonData.settings.media_url+"/images/loading-small.gif";a.appendChild(b)});b("comments.like.onLoadingStart","= 1.0",function(a){g("comments.like.loading",a)});b("comments.like.onLoadingStart",">= 1.1",function(){});b("comments.like.onLoadingEnd",function(){});b("comments.like",function(a,b){var c=+!DISQUS.jsonData.posts[b].up_voted,d=DISQUS.jsonData,e=DISQUS.dtpl.actions.fire;d.request.is_authenticated||d.forum.allow_anon_votes?
|
|
48
|
+
(e("comments.like.onLoadingStart",b),DISQUS.api("posts/vote",{data:{post:b,vote:c},type:"POST",success:function(a){a=a.post;e("__.comments.like.onSuccess",a.id,a.points,c);e("comments.like.updateCache",a.id,a.points,c)}})):e("auth.disqus",DISQUS.strings.get("To like please login"))});b("comments.like.updateCache",function(a,b,c){DISQUS.updatePost(a,{up_voted:!!c})});b("comments.like.onSuccess",">= 1.1",function(){});b("comments.like.onSuccess","= 1.0",function(a,b){var c=DISQUS.nodes.get("#dsq-like-pts-"+
|
|
49
|
+
a),d;d=DISQUS.jsonData.posts[a].user_voted?" and "+(b-1||1)+" more":b+DISQUS.strings.pluralize(b," person"," people");if(c)c.innerHTML=d;DISQUS.nodes.get("#dsq-like-"+a).innerHTML=DISQUS.strings.get("You liked this.")+" "});b("__.comments.like.onSuccess",function(a,b,c){g("comments.like.onLoadingEnd",a);g("comments.like.onSuccess",a,b,c)});b("comments.report",function(a,b){function c(){DISQUS.popup.popModal(DISQUS.strings.get("Thank you. This comment has been flagged for moderator attention."),
|
|
50
|
+
DISQUS.strings.get("Successfully flagged"));DISQUS.nodes.remove(DISQUS.nodes.get("#dsq-post-report-"+a))}b?DISQUS.api("posts/report",{data:{post:a},type:"POST",success:c}):DISQUS.popup.popModal(DISQUS.renderBlock("reportConfirmation",{id:a}),DISQUS.strings.get("Report this comment to a moderator?"),a)});b("comments.reply",function(a,b){DISQUS.cache.toggledReplies[a]?(DISQUS.dtpl.actions.fire("comments.reply.cancel",a,b),DISQUS.cache.toggledReplies[a]=!1):(DISQUS.dtpl.actions.fire("comments.reply.new",
|
|
51
|
+
a,b),DISQUS.cache.toggledReplies[a]=!0)});b("comments.reply.new",function(a){DISQUS.comm.Reply.recover(a)||g("comments.reply.render",a);g("comments.reply.show",a)});b("comments.reply.new.onLoadingStart",function(){});b("comments.reply.new.onLoadingEnd",function(){});b("comments.reply.render",function(a){var b=DISQUS.renderBlock("postbox",{comment:DISQUS.jsonData.posts[a]});DISQUS.dtpl.ReplyBox.create(a,b)});b("comments.reply.show",function(a){var b=DISQUS.dtpl.ReplyBox.get(a);b.show();var c=b.container();
|
|
52
|
+
DISQUS.nodes.addClass(c,"dsq-append-post");(a=DISQUS.nodes.get("#dsq-comment-footer-reply-"+a))&&DISQUS.nodes.addClass(a,"dsq-comment-footer-reply-active");b.focus()});b("comments.reply.cancel",function(a){var b=DISQUS.dtpl.ReplyBox.get(a);b.hide();b=b.container();DISQUS.nodes.removeClass(b,"dsq-append-post");(a=DISQUS.nodes.get("#dsq-comment-footer-reply-"+a))&&DISQUS.nodes.removeClass(a,"dsq-comment-footer-reply-active")});b("comments.moderate.options",function(a){var b=DISQUS.jsonData.posts[a];
|
|
53
|
+
b.author=DISQUS.jsonData.users[b.user_key];DISQUS.jsonData.request.is_moderator&&DISQUS.popup.popModal(DISQUS.renderBlock("moderateOptionsPopup",{comment:b}),DISQUS.strings.get("Moderate Options"),a)});b("comments.delete",function(a){DISQUS.popup.close(null,!0);DISQUS.api("posts/remove",{data:{post:a},type:"POST",success:function(a){DISQUS.each(a,function(a){g("comments.delete.onSuccess",a.id)})},failure:function(){var b=DISQUS.strings.get("Oops, something went wrong"),c=DISQUS.strings.get("We couldn't delete this post. Please try again later.");
|
|
54
|
+
DISQUS.popup.popModal(c,b,a)}})});b("comments.delete.onSuccess","= 1.0",function(a){if(DISQUS.nodes.get("#comment-"+a)&&DISQUS.nodes.get("#dsq-comment-"+a))DISQUS.nodes.get("#comment-"+a).innerHTML=DISQUS.strings.get("Comment removed.")+' <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'comments.restore\', '+a+');">'+DISQUS.strings.get("Undo")+"</a>",DISQUS.nodes.get("#comment-"+a).className="dsq-remove-message",DISQUS.nodes.get("#dsq-comment-"+a).style.display="none"});b("comments.delete.onSuccess",
|
|
55
|
+
">= 1.1",function(){});b("comments.restore",function(a){DISQUS.api("posts/restore",{data:{post:a},type:"POST",success:function(a){DISQUS.each(a,function(a){g("comments.restore.onSuccess",a.id)})}})});b("comments.restore.onSuccess","= 1.0",function(a){if(DISQUS.nodes.get("#comment-"+a)&&DISQUS.nodes.get("#dsq-comment-"+a))DISQUS.nodes.get("#comment-"+a).innerHTML="",DISQUS.nodes.get("#comment-"+a).className="",DISQUS.nodes.get("#dsq-comment-"+a).style.display="block"});b("comments.restore.onSuccess",
|
|
56
|
+
">= 1.1",function(){});b("cookies.onFailure",function(a){DISQUS.states.noThirdPartyCookies=!0;if(DISQUS.browser.ie)DISQUS.states.useLoginWindow=!0;else if(DISQUS.browser.gecko||DISQUS.browser.opera){var b=DISQUS.jsonData.request.is_authenticated,c=DISQUS.jsonData.request.is_remote;if(DISQUS.browser.gecko&&(!b||c))DISQUS.states.loginDisabled=!0,g("comments.reply.onCookieFailure",a)}else if(DISQUS.browser.webkit&&DISQUS.jsonData.request.is_sso&&(a=DISQUS.nodes.get("#dsq-sso-iframe"),!a)){a=document.createElement("div");
|
|
57
|
+
a.id="dsq-sso-iframe";a.style.display="none";DISQUS.nodes.get("body")[0].appendChild(a);var d=DISQUS.comm.SSO.create(function(){var a={forum_url:DISQUS.jsonData.forum.url},b=DISQUS.config.page;b.remote_auth_s2?a.remote_auth_s2=b.remote_auth_s2:b.remote_auth_s3&&DISQUS.extend(a,{remote_auth_s3:b.remote_auth_s3,api_key:b.api_key});d.authenticate(a)})}});b("user.newUser.onSuccess",function(){function a(){if(DISQUS.getBlock("editProfileSuggestion")){var b=document.createElement("div");b.innerHTML=DISQUS.renderBlock("editProfileSuggestion");
|
|
58
|
+
var c=DISQUS.nodes.get("#dsq-comments"),e=DISQUS.nodes.get(".dsq-comment",c);c.insertBefore(b,e);(new DISQUS.tooltip.ManualTooltip(DISQUS.nodes.get(".dsq-avatar")[0],{contentId:"dsq-edit-profile-suggestion",trigger:null})).show()}d("comments.insert",a);return!0}b("comments.insert",a)});b("user.remoteAccountSettings",function(){var a=DISQUS.nodes.createIframe(DISQUS.jsonData.urls.remote_settings,{},{id:"dsq-popup-account-settings"}),b=document.createElement("div");b.appendChild(a);DISQUS.popup.popModal(b.innerHTML,
|
|
59
|
+
DISQUS.strings.get("Account Settings"))});b("profile.show",function(a,b,c){c===void 0&&(c=a==null?DISQUS.jsonData.request.is_moderator:DISQUS.jsonData.posts[a].author_is_moderator);DISQUS.comm.Default.recover().log("profile:view",1);return DISQUS.popup.popProfile(a,b,c)});b("profile.dashboard",function(){window.location.href="http://disqus.com/dashboard"});b("profile.edit",function(){(new (DISQUS.states.noThirdPartyCookies?DISQUS.ui.ProfileEditNewWindow:DISQUS.ui.ProfileEditModal)).open({lang:DISQUS.jsonData.forum.language})});
|
|
60
|
+
b("profile.displayDeferredAvatars",function(){function a(b){var d=DISQUS.nodes.getPosition(b),r=d[1];return d[1]+b.offsetHeight<=g-c?-1:r>=g+i+c?1:0}function b(c){c=e[c];if(a(c)===0)return c.setAttribute("src",c.getAttribute("data-src")),DISQUS.nodes.removeClass(c,"dsq-deferred-avatar"),c.removeAttribute("data-src"),!0;return!1}for(var c=200,d=DISQUS.nodes.get("img.dsq-deferred-avatar"),e=[],f=0;f<d.length;f++)d[f].offsetParent&&e.push(d[f]);if(e.length){var g,i;DISQUS.browser.ie?function(){var a=
|
|
61
|
+
document.documentElement;g=a.scrollTop;i=a.clientHeight}():(g=window.pageYOffset,i=window.innerHeight);d=function(){for(var b=e.length,c=0,d,f;c<b;)if(f=parseInt((c+b)/2,10),d=a(e[f]),d===-1)c=f+1;else if(d===1)b=f;else return f;return-1}();if(d!==-1){for(f=d;f>=0&&b(f);f--);for(f=d+1;f<e.length&&b(f);f++);}}});b("mentions.render",function(a){var b=/@[\w\-]+:\w+/g,c,d={disqus:"mentions.render.disqus",twitter:"mentions.render.twitter"};DISQUS.each(a,function(a){a&&a.message&&(c=a.message.match(b))&&
|
|
62
|
+
DISQUS.each(c,function(b){var c=b.slice(1).split(":"),r=c[0].toLowerCase(),c=c[1].toLowerCase();d.hasOwnProperty(c)||(c="disqus");g(d[c],a,b,r)})})});b("mentions.render.disqus",function(a,b,c){var d=DISQUS.jsonData.users[c],c='<span class="dsq-mention dsq-tt dsq-mention-disqus"original-title="Expand '+(d?d.display_name:c)+'\'s profile" data-dsq-username="'+c+'" data-dsq-remote="disqus"><a class="" href="'+DISQUS.settings.get("disqus.urls.main")+"/"+c+'" target="_blank" onclick="DISQUS.dtpl.actions.fire(\'profile.show\', undefined, \''+
|
|
63
|
+
c+"');return false;\">"+(d?d.display_name:c)+"</a></span>";a.message=a.message.replace(b,c)});b("mentions.render.twitter",function(a,b,c){a.message=a.message.replace(b,'<span class="dsq-mention dsq-tt dsq-mention-twitter"original-title="Expand @'+c+'\'s profile" data-dsq-username="'+c+'" data-dsq-remote="twitter"><a class="twitter-account" href="http://twitter.com/'+c+'" onclick="window.open(\''+("http://twitter.com/intent/user?screen_name="+c)+"', 'Twitter Mention', 'height=420, width=550');return false;\">@"+
|
|
64
|
+
c+"</a></span>")});b("messagesx.init",function(){var a=DISQUS.jsonData,b=DISQUS.comm.Default.recover();DISQUS.cache.messagesx={count:a.messagesx.count,unread:a.messagesx.unread};a.context.switches.realtime&&a.request.is_authenticated&&b.realtimePoll(a.thread.id)});b("messagesx.toggleBar",function(){var a=DISQUS.nodes.get("#dsq-messagesx-toolbar-icon"),b=DISQUS.nodes.get("#dsq-messagesx-toolbar-dropdown"),c=DISQUS.cache.messagesx;DISQUS.nodes.addClass(DISQUS.nodes.get("#dsq-alert"),"dsq-alert-hidden");
|
|
65
|
+
DISQUS.nodes.hasClass(a,"dsq-dropdown-tab-active")?(DISQUS.nodes.removeClass(b,"dsq-dropdown-visible"),DISQUS.nodes.removeClass(a,"dsq-dropdown-tab-active")):(c&&c.unread.length>0&&DISQUS.dtpl.actions.fire("messagesx.markRead"),DISQUS.nodes.addClass(a,"dsq-dropdown-tab-active"),DISQUS.nodes.addClass(b,"dsq-dropdown-visible"));return!1});b("messagesx.newEvent",function(a){a.type=="message"&&g("messagesx.newMessage",a.message)});b("messagesx.newMessage",function(a){var b=DISQUS.nodes.get("#dsq-messagesx-count"),
|
|
66
|
+
c=DISQUS.nodes.get("#dsq-messagesx-toolbar-icon");if(b)DISQUS.cache.messagesx.unread.push(a),b.innerHTML=++DISQUS.cache.messagesx.count,a.theme=="achievement"&&DISQUS.nodes.removeClass(DISQUS.nodes.get("#dsq-alert"),"dsq-alert-hidden"),DISQUS.cache.messagesx.count>0?DISQUS.nodes.addClass(c,"dsq-unread"):DISQUS.nodes.removeClass(c,"dsq-unread"),g("messagesx.renderMessage",a)});b("messagesx.renderMessage",function(a){DISQUS.nodes.hide(DISQUS.nodes.get("#dsq-inbox-no-messages"));var b=document.createElement("li");
|
|
67
|
+
b.id="dsq-messagesx-message-"+a.id;DISQUS.nodes.addClass(b,"dsq-messagesx");DISQUS.nodes.addClass(b,"dsq-messagesx-"+a.theme);b.innerHTML=DISQUS.renderBlock("messagesxPopup",{message:a});DISQUS.nodes.get("#dsq-messagesx-inbox").appendChild(b)});b("messagesx.render",function(a){if(DISQUS.nodes.get("#dsq-messagesx-count")){var b=!1;DISQUS.each(a.unread,function(a){a.theme=="achievement"&&(b=!0);g("messagesx.renderMessage",a)});b&&DISQUS.nodes.removeClass(DISQUS.nodes.get("#dsq-alert"),"dsq-alert-hidden")}});
|
|
68
|
+
b("messagesx.markRead",function(){var a="",b=DISQUS.nodes.get("#dsq-messagesx-count"),c=DISQUS.nodes.get("#dsq-messagesx-toolbar-icon");DISQUS.each(DISQUS.cache.messagesx.unread,function(b){a=a+","+b.id});DISQUS.api("messagesx/markRead",{data:{messages:a},type:"POST",success:function(){}});DISQUS.cache.messagesx.count=0;DISQUS.cache.messagesx.unread=[];b.innerHTML=DISQUS.cache.messagesx.count;DISQUS.nodes.removeClass(c,"dsq-unread");return!1});b("thread.initialize",function(){DISQUS.jsonData.forum.template.api==
|
|
69
|
+
"1.1"?DISQUS.extend(DISQUS.dtpl,{APPEND_REPLY_ID:h("dsq-append-reply"),APPEND_EDIT_ID:h("dsq-append-edit"),APPEND_COMMENT_ID:h("dsq-append-post")}):DISQUS.extend(DISQUS.dtpl,{APPEND_REPLY_ID:h("dsq-append-post"),APPEND_EDIT_ID:h("dsq-comment-body"),APPEND_COMMENT_ID:h("dsq-append-post")});DISQUS.jsonData.context.forum_facebook_key&&DISQUS.FB.init();g("toolbar.initialize");DISQUS.dtpl.actions.fire("profile.displayDeferredAvatars");DISQUS.events.debounce(window,"scroll",function(){DISQUS.dtpl.actions.fire("profile.displayDeferredAvatars")},
|
|
70
|
+
250);if(DISQUS.jsonData.context.show_reply){DISQUS.comm.Reply.reset();DISQUS.dtpl.ReplyBox.create();DISQUS.jsonData.realtime_enabled&&c("realtime.initialize")&&g("realtime.initialize");var a=document.createElement("div");a.innerHTML=DISQUS.renderBlock("pageInfo");var b=DISQUS.nodes.get("#disqus_thread");b.appendChild(a);DISQUS.ui.truncateComments(b);DISQUS.cache.toggledReplies={}}});b("thread.ready",function(){setTimeout(function(){g("profile.displayDeferredAvatars");DISQUS.ui.applyTooltips()},0);
|
|
71
|
+
DISQUS.defer(function(){var a=DISQUS.comm.Reply.recover();return DISQUS.comm.Default.recover().isReady&&(typeof a=="undefined"||a.isReady)},function(){DISQUS.trigger("thread.onReady")})});b("thread.incrementCommentsCount",function(){var a=DISQUS.nodes.get("#dsq-num-posts"),b=DISQUS.nodes.get("#dsq-total-posts");if(a){var c=a.innerHTML.split("-");a.innerHTML=c.length==1?parseInt(c[0],10)+1:c[0]+"-"+(parseInt(c[1],10)+1)}if(b)b.innerHTML=parseInt(b.innerHTML,10)+1});b("thread.paginate",function(a,b,
|
|
72
|
+
c){a={slug:DISQUS.jsonData.thread.slug,sort:DISQUS.jsonData.request.sort,p:a,per_page:c||DISQUS.config.page.per_page};DISQUS.dtpl.actions.fire("thread.paginate.onLoadingStart");if(b)b.style.display="none";DISQUS.request.get(DISQUS.jsonData.urls.embed_thread,a,!0)});b("thread.paginate.onLoadingStart","= 1.0",function(){DISQUS.jsonData.thread.pagination_type=="num"?(DISQUS.window.anchor("disqus_thread"),DISQUS.nodes.get("#dsq-comments").innerHTML='<img src="'+DISQUS.jsonData.settings.media_url+'/images/loading.gif"/>'):
|
|
73
|
+
DISQUS.nodes.get("#dsq-pagination").innerHTML='<img src="'+DISQUS.jsonData.settings.media_url+'/images/loading-small.gif"/>'});b("thread.paginate.onLoadingStart",">= 1.1",function(){});b("thread.paginate.onLoadingEnd",function(){});b("thread.update",function(){function a(b){if(c)c.innerHTML=b}var b=DISQUS.nodes.get("#dsq-comments"),c=DISQUS.nodes.get("#dsq-num-posts"),d=DISQUS.nodes.get("#dsq-pagination"),e,f=DISQUS.jsonData.thread.num_posts;DISQUS.trigger("loader.onDataReady");if(DISQUS.jsonData.thread.pagination_type==
|
|
74
|
+
"num")DISQUS.dtpl.replaceHtml(b,DISQUS.renderBlock("comments")),DISQUS.ui.applyTooltips(b),DISQUS.jsonData.thread.total_posts>f?(e=DISQUS.jsonData.thread.offset_posts,a(e+1+"-"+(e+f))):a(f);else if(DISQUS.jsonData.thread.pagination_type=="append")DISQUS.jsonData.request.page==1?(b.innerHTML=DISQUS.renderBlock("comments"),a(f)):(e=document.createElement("div"),e.innerHTML=DISQUS.renderBlock(function(a){var b="";DISQUS.each(a.comments,function(a){b+=DISQUS.renderBlock("comment",{comment:a})});return b}),
|
|
75
|
+
b.appendChild(e),DISQUS.ui.applyTooltips(e),e=c?parseInt(c.innerHTML,10):0,a(e+f));d.innerHTML=DISQUS.renderBlock("pagination");DISQUS.trigger("thread.onPaginate");DISQUS.ui.truncateComments(b);DISQUS.dtpl.actions.fire("profile.displayDeferredAvatars");DISQUS.dtpl.actions.fire("thread.paginate.onLoadingEnd")});b("thread.sort.onLoadingStart","= 1.0",function(){DISQUS.nodes.get("#dsq-comments").innerHTML='<img src="'+DISQUS.jsonData.settings.media_url+'/images/loading.gif"/>'});b("thread.sort.onLoadingStart",
|
|
76
|
+
">= 1.1",function(){});b("thread.sort.onLoadingEnd",function(){});b("thread.sort",function(a){var b;/hot|best|newest|oldest|highlighted/.test(a)&&(b={slug:DISQUS.jsonData.thread.slug,sort:a,p:1},DISQUS.dtpl.actions.fire("thread.sort.onLoadingStart"),DISQUS.dtpl.actions.fire("realtime.updateState",a),DISQUS.request.get(DISQUS.jsonData.urls.embed_thread,b,!0))});b("thread.subscribe",function(a){var b=DISQUS.jsonData.urls.embed_subscribe,c=DISQUS.jsonData.request;c.is_authenticated&&c.has_email||a?(a&&
|
|
77
|
+
DISQUS.popup.close(null,!0),DISQUS.request.get(b,{status:1,slug:DISQUS.jsonData.thread.slug,email:a||""},!0)):a||(DISQUS.popup.popModal(DISQUS.renderBlock("subscribeForm"),DISQUS.strings.get("Get notified of new comments by email")),DISQUS.nodes.get("input",DISQUS.nodes.get("#dsq-popup-message"))[0].focus())});b("__.thread.subscribe.onChange",function(a){a=!!parseInt(a,10);(DISQUS.jsonData.context.subscribed=a)?g("thread.subscribe.onSuccess"):g("thread.unsubscribe.onSuccess")});b("thread.subscribe.onSuccess",
|
|
78
|
+
"= 1.0",function(){var a=DISQUS.strings.get("Subscribed"),b=DISQUS.strings.get("You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.");DISQUS.nodes.get("#dsq-subscribe").innerHTML='<a href="#" onclick="return DISQUS.dtpl.actions.fire(\'thread.unsubscribe\');">'+DISQUS.strings.get("Unsubscribe")+"</a>";DISQUS.popup.popModal(b,a)});b("thread.subscribe.onSuccess",">= 1.1",function(){});b("thread.unsubscribe",function(){var a=
|
|
79
|
+
DISQUS.jsonData.urls.embed_subscribe;DISQUS.jsonData.request.is_authenticated&&DISQUS.request.get(a,{status:0,slug:DISQUS.jsonData.thread.slug},!0)});b("thread.unsubscribe.onSuccess","= 1.0",function(){var a=DISQUS.strings.get("Unsubscribed"),b=DISQUS.strings.get("You have unsubscribed from this comment thread. New comments will no longer be sent to your email inbox.");DISQUS.nodes.get("#dsq-subscribe").innerHTML='<a href="#" onclick="return DISQUS.dtpl.actions.fire(\'thread.subscribe\');">'+DISQUS.strings.get("Subscribe by email")+
|
|
80
|
+
"</a>";DISQUS.popup.popModal(b,a)});b("thread.unsubscribe.onSuccess",">= 1.1",function(){});b("thread.vote",function(a){function b(c,d){var e=DISQUS.nodes;e.hasClass(c,"dsq-toggled")?(a=0,e.removeClass(c,"dsq-toggled")):e.addClass(c,"dsq-toggled");e.removeClass(d,"dsq-toggled")}var c=DISQUS.jsonData;if(c.request.is_authenticated||c.forum.allow_anon_votes){var d=DISQUS.nodes.get("#dsq-like-thread-button"),e=DISQUS.nodes.get("#dsq-dislike-thread-button");a>0?b(d,e):b(e,d);DISQUS.api("threads/vote",
|
|
81
|
+
{data:{thread:c.thread.id,vote:a},type:"POST",success:function(b){DISQUS.dtpl.actions.fire("thread.vote.onSuccess",a,b.thread.likes)}})}else DISQUS.dtpl.actions.fire("auth.disqus",DISQUS.strings.get("To like please login"))});b("thread.vote.onSuccess",function(a,b){a>0?g("thread.share.new"):g("thread.share.cancel");DISQUS.jsonData.thread.user_vote=a;DISQUS.jsonData.thread.likes=b;if(DISQUS.jsonData.request.is_authenticated){var c=DISQUS.jsonData.request.username;if(a==1){var d={};d[c]={username:c,
|
|
82
|
+
avatar:DISQUS.jsonData.urls.request_user_avatar,url:DISQUS.jsonData.urls.request_user_profile,name:DISQUS.jsonData.request.display_username};DISQUS.jsonData.thread.voters=DISQUS.lang.extend(d,DISQUS.jsonData.thread.voters)}else delete DISQUS.jsonData.thread.voters[c]}DISQUS.db.available()&&(c=DISQUS.db.get("thread_votes")||{},c[DISQUS.jsonData.thread.id]={value:a,timestamp:DISQUS.jsonData.request.timestamp},DISQUS.db.set("thread_votes",c));c=DISQUS.nodes.get("#dsq-content");if(c=DISQUS.nodes.get("ul.dsq-like-faces",
|
|
83
|
+
c)[0])c.innerHTML=DISQUS.renderBlock("likeActivity"),DISQUS.ui.applyTooltips(c)});b("thread.help",function(){DISQUS.jsonData.request.is_moderator&&DISQUS.popup.popModal(DISQUS.renderBlock("moderatorHelpPopup"),DISQUS.strings.get("Help"))});b("thread.settings",function(){DISQUS.jsonData.request.is_moderator&&DISQUS.popup.popModal(DISQUS.renderBlock("threadSettingsPopup"),DISQUS.strings.get("Moderator Settings"))});b("thread.moderatorActions",function(){DISQUS.jsonData.request.is_moderator&&DISQUS.popup.popModal(DISQUS.renderBlock("moderatorActionsPopup"),
|
|
84
|
+
DISQUS.strings.get("Moderate Options"))});b("thread.close",function(){var a=DISQUS.jsonData;DISQUS.api("threads/close",{data:{forum:a.forum.url,thread:a.thread.id},type:"POST",success:function(){DISQUS.ui.Modal.closeAll();DISQUS.reload(function(){DISQUS.redraw()})}})});b("thread.open",function(){var a=DISQUS.jsonData;DISQUS.api("threads/open",{data:{forum:a.forum.url,thread:a.thread.id},type:"POST",success:function(){DISQUS.ui.Modal.closeAll();DISQUS.reload(function(){DISQUS.redraw()})}})});b("thread.updateModerationSettings",
|
|
85
|
+
function(a){var b=DISQUS.jsonData,b={forum:b.forum.url,thread:b.thread.id};DISQUS.extend(b,a);DISQUS.api("threads/updateModerationSettings",{data:b,type:"POST",success:function(a){DISQUS.dtpl.actions.fire("thread.updateModerationSettings.onSuccess",a)}})});b("thread.updateModerationSettings.onSuccess",function(){});b("thread.updateDaysAlive",function(){var a=DISQUS.nodes.get("#dsq-thread-settings-status"),b=DISQUS.nodes.get("#dsq-thread-days-alive").value;DISQUS.dtpl.actions.fire("thread.updateModerationSettings",
|
|
86
|
+
{lifespan:b});a.innerHTML=DISQUS.strings.get("Saved!");setTimeout(function(){a.innerHTML=""},1E3)});b("thread.updateModerateAll",function(){var a=DISQUS.nodes.get("#dsq-thread-settings-status"),b=+!!DISQUS.nodes.get("#dsq-thread-moderate-all").checked;DISQUS.dtpl.actions.fire("thread.updateModerationSettings",{moderate:b});a.innerHTML=DISQUS.strings.get("Saved!");setTimeout(function(){a.innerHTML=""},1E3)});b("thread.expandMediaEmbed",function(a){var b;DISQUS.lang.forEach(DISQUS.jsonData.mediaembed,
|
|
87
|
+
function(c){c.id==a&&(b=c)});DISQUS.popup.popModal(DISQUS.renderBlock("mediaEmbedPopup",{media:b}),DISQUS.strings.get("Attached File"),null,!0,"dsq-media-embed")});b("thread.share.send",function(){function a(b){if(typeof b==="object")b=b.url;DISQUS.popup.popModal('<div id="dsq-tweetbox-container" style="width:520px;height:160px"></div>',"Share on Twitter",null,null,null,{onClose:function(){DISQUS.dtpl.actions.fire("thread.share.nextJob")},onReady:function(){var a=DISQUS.nodes.get("#dsq-tweetbox-container"),
|
|
88
|
+
c=new DISQUS.TweetFrame(a,{onReady:function(){c.setContent(e+": "+b)},onSuccess:function(){DISQUS.popup.close(null,!0);DISQUS.dtpl.actions.fire("thread.share.nextJob")}});c.init()}})}if(j){var b=DISQUS.nodes.get("#dsq-share-thread-twitter"),c=DISQUS.nodes.get("#dsq-share-thread-facebook"),b={facebook:c&&c.checked,twitter:b&&b.checked};if(b.twitter||b.facebook){c=DISQUS.nodes.get("#dsq-share-step-1");DISQUS.nodes.hide(c,!0);c=DISQUS.nodes.get("#dsq-share-step-2");DISQUS.nodes.show(c,!0);j.reposition();
|
|
89
|
+
t=[];var d={},e=DISQUS.settings.get("thread.title")||document.title;if(DISQUS.jsonData.request.is_authenticated)c=DISQUS.jsonData.request.sharing,d={tw:+(b.twitter&&c.twitter.enabled),fb:+(b.facebook&&c.facebook.enabled&&!DISQUS.jsonData.request.is_remote)};(d.tw||d.fb)&&t.push(function(){DISQUS.request.get(DISQUS.jsonData.urls.embed_thread_share,DISQUS.lang.extend({},d,{title:e,thread:DISQUS.jsonData.thread.id}),!0)});b.facebook&&!d.fb&&t.push(function(){var a=window.open("http://www.facebook.com/sharer.php?u="+
|
|
90
|
+
encodeURIComponent(window.location),"_blank","width=600,height=400");DISQUS.addJob(function(){return!a||a.closed},function(){DISQUS.dtpl.actions.fire("thread.share.nextJob")})});b.twitter&&!d.tw&&t.push(function(){DISQUS.api("shortener/create",{data:{url:window.location.href,forum:DISQUS.jsonData.forum.url,thread:DISQUS.jsonData.thread.id},type:"POST",success:a,failure:function(){a(window.location.href)}})});DISQUS.dtpl.actions.fire("thread.share.nextJob")}}});b("thread.share",function(){g("thread.share.send")});
|
|
91
|
+
b("thread.share.new",function(){if(j){var a=DISQUS.nodes.get("div.dsq-share-step",j.container);DISQUS.lang.forEach(a,function(a){DISQUS.nodes.hide(a,!0)});DISQUS.nodes.show(a[0],!0);j.show()}});b("thread.share.cancel",function(){j&&j.hide()});b("thread.share.nextJob",function(a){j&&(a?DISQUS.FB.init(function(){DISQUS.FB.streamShare("",a,function(){DISQUS.dtpl.actions.fire("thread.share.nextJob")})}):t.length?t.shift()():DISQUS.dtpl.actions.fire("thread.share.onSuccess"))});b("thread.share.onSuccess",
|
|
92
|
+
function(){if(j){var a=DISQUS.nodes.get("#dsq-share-step-2");DISQUS.nodes.hide(a,!0);a=DISQUS.nodes.get("#dsq-share-step-3");DISQUS.nodes.show(a,!0);j.reposition()}});b("thread.share.onFailure",function(){if(j){var a=DISQUS.nodes.get("#dsq-share-step-3");DISQUS.nodes.hide(a,!0);a=DISQUS.nodes.get("#dsq-share-step-2");DISQUS.nodes.show(a,!0);j.reposition()}});b("realtime.initialize",function(){var a=DISQUS.nodes.get("#dsq-realtime-toggle");if(!DISQUS.states.realtime&&a)DISQUS.states.realtime=!0,DISQUS.cache.realtime.last_checked=
|
|
93
|
+
DISQUS.jsonData.request.timestamp,a.onclick=function(){DISQUS.cache.realtime.interval?g("realtime.disable"):g("realtime.enable");return!1},DISQUS.jsonData.forum.streaming_realtime||g("realtime.updateCount"),DISQUS.jsonData.thread.realtime_rate===0||DISQUS.jsonData.realtime_paused?g("realtime.disable",DISQUS.jsonData.request.sort!="oldest"):g("realtime.enable")});b("realtime.enable",function(){var a=DISQUS.nodes.get("#dsq-realtime-toggle"),b=DISQUS.nodes.get("#dsq-realtime-status"),c=setInterval(function(){var a=
|
|
94
|
+
DISQUS.cache.realtime,b=DISQUS.jsonData.urls.realtime;b+="?timestamp="+a.last_checked+"&thread_id="+DISQUS.jsonData.thread.id+"&f="+DISQUS.jsonData.forum.url+"&";if(!a.ongoing_request&&DISQUS.jsonData.realtime_enabled)a.prev_script&&a.prev_script.parentNode&&DISQUS.nodes.remove(a.prev_script),a.ongoing_request=!0,a.prev_script=DISQUS.request.get(b,void 0,!0)},DISQUS.jsonData.context.realtime_speed);DISQUS.cache.realtime.interval=c;b.innerHTML=DISQUS.strings.get("enabled");a.innerHTML="("+DISQUS.strings.get("Pause")+
|
|
95
|
+
")"});b("realtime.disable",function(a){var b=DISQUS.nodes.get("#dsq-realtime-toggle"),c=DISQUS.nodes.get("#dsq-realtime-status"),d=DISQUS.cache.realtime.interval,a=a==null?!0:a;if(d)clearInterval(d),DISQUS.cache.realtime.interval=null;c.innerHTML=DISQUS.strings.get("paused");b.innerHTML=a?"("+DISQUS.strings.get("Resume")+")":""});b("realtime.updateState",function(a){if(DISQUS.states.realtime){var b=!!DISQUS.cache.realtime.interval;a=="oldest"?DISQUS.dtpl.actions.fire("realtime.disable",!1):DISQUS.jsonData.realtime_was_on&&
|
|
96
|
+
!b?DISQUS.dtpl.actions.fire("realtime.enable"):DISQUS.dtpl.actions.fire("realtime.toggleResume");DISQUS.jsonData.realtime_was_on=b}});b("realtime.toggleResume",function(){var a=!DISQUS.cache.realtime.interval;DISQUS.nodes.get("#dsq-realtime-toggle").innerHTML=a?"("+DISQUS.strings.get("Resume")+")":"("+DISQUS.strings.get("Pause")+")"});b("realtime.updateCount",function(){var a=DISQUS.nodes.get("#dsq-content"),a=DISQUS.nodes.get("div.dsq-realtime-alert",a),b=DISQUS.cache.realtime.newPosts.length;if(function(){var a=
|
|
97
|
+
0,b;for(b in DISQUS.jsonData.posts)if(DISQUS.jsonData.posts.hasOwnProperty(b)&&++a>5)return!1;return!0}())for(;a.length>1;)a.pop();DISQUS.lang.forEach(a,function(a){a.style.display=b?"block":"none";var c=DISQUS.strings.get("new comment was just posted."),d=DISQUS.strings.get("new comments were just posted.");a.innerHTML=b>1?b+" "+d+" ":b+" "+c+" ";c=document.createElement("A");c.href="#";DISQUS.events.add(c,"click",function(a){a.preventDefault();return g("realtime.show")});c.innerHTML=DISQUS.strings.get("Show");
|
|
98
|
+
a.appendChild(c)})});b("realtime.insertNewPosts",function(){var a=null,b=DISQUS.nodes.get("#dsq-sort-select");if(!b&&DISQUS.jsonData.request.sort=="hot"||b&&b.value=="oldest")a=-1;DISQUS.lang.forEach(DISQUS.cache.realtime.newPosts,function(b){g("comments.insert",a,b);g("thread.incrementCommentsCount");g("comments.outline",b)});DISQUS.jsonData.forum.streaming_realtime||(a?(b=DISQUS.nodes.get(".dsq-comment",DISQUS.nodes.get("#disqus_thread")),DISQUS.nodes.scrollTo(b[b.length-1])):DISQUS.nodes.scrollTo("#disqus_thread"));
|
|
99
|
+
DISQUS.cache.realtime.newPosts=[]});b("realtime.show",function(){g("realtime.insertNewPosts");g("realtime.updateCount")});b("realtime.update",function(a,b,c){var d=DISQUS.cache.realtime;d.ongoing_request=null;d.last_checked=a;c&&DISQUS.lang.forEach(c,function(a,b){DISQUS.jsonData.users[b]||(DISQUS.jsonData.users[b]=a)});b&&(DISQUS.lang.forEach(b,function(a,b){DISQUS.jsonData.posts[b]||(DISQUS.updatePost(b,a),d.newPosts.push(b))}),DISQUS.jsonData.forum.streaming_realtime?g("realtime.insertNewPosts"):
|
|
100
|
+
g("realtime.updateCount"))});b("community.show",function(){(new DISQUS.ui.ForumCommunityModal).open({url:DISQUS.jsonData.urls.community,lang:DISQUS.jsonData.forum.language})});b("reactions.hide",function(a){DISQUS.api("reactions/remove",{data:{reaction:a,forum:DISQUS.jsonData.forum.url},type:"POST",success:function(a){DISQUS.dtpl.actions.fire("reactions.hide.onSuccess",a[0].id)}})});b("reactions.hide.onSuccess",function(a){DISQUS.nodes.hide(DISQUS.nodes.get("#dsq-reaction-"+a))});b("reactions.hide.onSuccess",
|
|
101
|
+
function(a){DISQUS.nodes.get("#dsq-reaction-"+a).style.display="none"});b("reactions.loadMore",function(){DISQUS.request.get(DISQUS.jsonData.urls.embed_more_reactions,{t:DISQUS.jsonData.thread.id,s:DISQUS.jsonData.reactions_start,l:DISQUS.jsonData.reactions_limit},!0)});b("reactions.insert",function(a){var b=DISQUS.nodes.get("#dsq-reactions"),c=DISQUS.nodes.get("#dsq-show-more-reactions");DISQUS.lang.forEach(a,function(a){var a={reaction:a},c=document.createElement("div"),d=a.reaction.get_service_name;
|
|
102
|
+
a.reaction.service_icon=d=="trackback"||d=="pingback"?"rss":d.replace(" ","");c.innerHTML=DISQUS.renderBlock("reaction",a);b.appendChild(DISQUS.nodes.children(c)[0])});DISQUS.ui.applyTooltips(b);if(!DISQUS.jsonData.has_more_reactions)c.style.display="none"});b("reactions.reportMissing",function(){var a=DISQUS.jsonData.urls.embed_queueurl;DISQUS.jsonData.request.is_moderator&&DISQUS.jsonData.forum.reactions_enabled&&(DISQUS.jsonData.thread.queued?DISQUS.popup.popModal(DISQUS.strings.get("The system will automatically search for new reactions. If any are found, they will displayed on this comment thread."),
|
|
103
|
+
DISQUS.strings.get("Thank you")):DISQUS.request.get(a,{},!0))});b("reactions.showRetweets",function(a){var b;DISQUS.lang.forEach(DISQUS.jsonData.reactions,function(c){c.id==a&&(b=c)});DISQUS.popup.popModal(DISQUS.renderBlock("retweetsPopup",{reaction:b}),DISQUS.strings.get("Retweets"))});b("toolbar.initialize",function(){if(DISQUS.nodes.get("#dsq-global-toolbar")){var a=DISQUS.nodes.get("#dsq-like-thread-button");j=new DISQUS.tooltip.ManualTooltip(a,{trigger:null,contentId:"dsq-like-tooltip"});var b=
|
|
104
|
+
[DISQUS.nodes.get("#dsq-share-thread-twitter"),DISQUS.nodes.get("#dsq-share-thread-facebook")],c=function(){var a=!1;DISQUS.lang.forEach(b,function(b){b&&(a=a||b.checked)});var c=DISQUS.nodes.get(".dsq-primary-action",j.content)[0];a?(c.removeAttribute("disabled"),DISQUS.nodes.removeClass(c,"dsq-tooltip-disabled-button")):(c.setAttribute("disabled","disabled"),DISQUS.nodes.addClass(c,"dsq-tooltip-disabled-button"))};DISQUS.lang.forEach(b,function(a){a&&DISQUS.events.add(a,"click",c)});var a=DISQUS.nodes.get("#dsq-toolbar-dropdown"),
|
|
105
|
+
a=DISQUS.nodes.get("a",a)[0],d=DISQUS.nodes.get("#dsq-toolbar-dropdown-wrap");DISQUS.events.add(a,"click",function(a){a.preventDefault();d.style.display=d.style.display=="none"?"block":"none"})}});b("help.login",function(){DISQUS.popup.popModal(DISQUS.renderBlock("helpLogin"),DISQUS.strings.get("Help: Enabling cookies"))});b("comments.reply.mentions.selectUser",function(a,b){var c=DISQUS.jsonData.users[b],d=DISQUS.comm.Reply.recover(a);c.identifier=b;d.selectUser(c);DISQUS.dtpl.actions.fire("comments.reply.mentions.clear",
|
|
106
|
+
a)});b("comments.reply.mentions.selectActive",function(a){var b=DISQUS.dtpl.ReplyBox.get(a).textareaContainer();if(b=DISQUS.nodes.get(".dsq-mentions",b.parentNode)[0])b=i(b).getAttribute("data-dsq-username"),DISQUS.dtpl.actions.fire("comments.reply.mentions.selectUser",a,b)});b("comments.reply.mentions.suggest",function(a,b){function c(a){a=DISQUS.nodes.get("li",a);DISQUS.each(a,function(a){DISQUS.events.add(a,"click",function(a){if((a=a.target||a.srcElement)&&!DISQUS.nodes.hasClass(a,"dsq-mentions"))if(a=
|
|
107
|
+
l(a,"data-dsq-username")?a:DISQUS.nodes.closest(a,"li"))(a=a.getAttribute("data-dsq-username"))&&DISQUS.dtpl.actions.fire("comments.reply.mentions.selectUser",b,a)});DISQUS.events.add(a,"mouseover",function(a){var a=a.target||a.srcElement,b;if(a&&!DISQUS.nodes.hasClass(a,"dsq-mentions")&&(a=l(a,"data-dsq-username")?a:DISQUS.nodes.closest(a,"li"))&&l(a,"data-dsq-username"))b=DISQUS.nodes.get("li",a.parentNode),DISQUS.each(b,function(a){DISQUS.nodes.removeClass(a,"dsq-mentions-highlighted")}),DISQUS.nodes.addClass(a,
|
|
108
|
+
"dsq-mentions-highlighted")})})}function d(a){var b=a.remote_domain_name.toLowerCase()||"disqus";return'<li data-dsq-username="'+a.identifier+'" class="dsq-mentions-'+b+'"> <img class="dsq-mentions-avatar" src="'+a.avatar+'" /> <p class="dsq-mentions-name"><span>'+a.display_name+"</span></p></li>"}function e(a,b){var d=DISQUS.dtpl.ReplyBox.get(b).textareaContainer(),f=DISQUS.nodes.get(".dsq-mentions",d.parentNode)[0];if(!f)f=document.createElement("ul"),f.className="dsq-mentions",DISQUS.nodes.insertAfter(d,
|
|
109
|
+
f);a?(f.innerHTML=a,c(f),DISQUS.nodes.show(f),(d=m(f,null,"down"))&&DISQUS.nodes.addClass(d,"dsq-mentions-highlighted")):DISQUS.nodes.hide(f)}if(!a||!a.sections)DISQUS.dtpl.actions.fire("comments.reply.mentions.clear",b);else{var f=!1,g="",i,j,n,h;for(n=0;n<a.sections.length;++n)if(i=a.sections[n],(j=a[i])&&j.length){g+='<li class="dsq-mention-section"><h5>'+i+"</h5></li>";for(h=0;h<j.length;++h)f||(f=!0),g+=d(a[i][h]),DISQUS.jsonData.users[j[h].identifier]||(DISQUS.jsonData.users[j[h].identifier]=
|
|
110
|
+
j[h])}f?e(g,b):DISQUS.dtpl.actions.fire("comments.reply.mentions.clear",b)}});b("comments.reply.mentions.move",function(a,b){var c=DISQUS.dtpl.ReplyBox.get(b).textareaContainer(),d=DISQUS.nodes.get(".dsq-mentions",c.parentNode)[0],c=i(d);if(d=m(d,c,a))DISQUS.nodes.removeClass(c,"dsq-mentions-highlighted"),DISQUS.nodes.addClass(d,"dsq-mentions-highlighted")});b("comments.reply.mentions.clear",function(a){a=DISQUS.dtpl.ReplyBox.get(a).textareaContainer();(a=DISQUS.nodes.get(".dsq-mentions",a.parentNode)[0])&&
|
|
111
|
+
DISQUS.nodes.hide(a)});return{def:b,callAction:e,register:function(a,b){n[a]=n[a]||[];b.guid=DISQUS.getGuid();n[a].push(b);return b},remove:d,getDefault:a,hasDefault:f,registered:c,fire:g}});DISQUS.define("dtpl.validators",function(){return{email:function(b){if(!/^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i.test(b.value))return DISQUS.dtpl.actions.fire("message.error.onField",DISQUS.strings.get("Please enter a valid email to comment."),b.id),!1;return!0},name:function(b){var e=DISQUS.strings.get("Name");if(b.value==e||b.value.length<=1)return DISQUS.dtpl.actions.fire("message.error.onField",DISQUS.strings.get("Please enter a name to comment."),
|
|
112
|
+
b.id),!1;return!0},website:function(b){var e=DISQUS.strings.get("Website")+" ("+DISQUS.strings.get("Optional")+")";if(!b||!b.value)return!0;else if(b.value==e)return b.value="",!0;if(b.value.indexOf(".")==-1)return DISQUS.dtpl.actions.fire("message.error.onField",DISQUS.strings.get("Please check your website URL (this field is optional)."),b.id),!1;return!0},guestFields:function(b){b=b&&typeof b==="object"?b:DISQUS.dtpl.getGuestFields(b);if(DISQUS.jsonData.request.is_authenticated)return!0;if(!DISQUS.dtpl.validators.email(b.email))return!1;
|
|
113
|
+
if(!DISQUS.dtpl.validators.name(b.name))return!1;if(!DISQUS.dtpl.validators.website(b.website))return!1;return!0}}});DISQUS.define("cookies",function(){return{create:function(b,e){document.cookie=b+"="+e+"; path=/"},read:function(b){b+="=";for(var e,d=document.cookie.split(";"),a=0;a<d.length;a++){for(e=d[a];e.charAt(0)==" ";)e=e.substring(1,e.length);if(e.indexOf(b)===0)return e.substring(b.length,e.length)}return null},erase:function(b){var e=new Date;e.setTime(e.getTime()+-864E5);document.cookie=b+"=;expires="+e.toGMTString()+"; path=/"}}});
|
|
114
|
+
DISQUS.define("events",function(){function b(){if(e.ready)return!0;if(document&&document.getElementsByTagName&&document.getElementById&&document.body){if(e.timer)clearInterval(e.timer),e.timer=null;for(var b=0;b<e.queue.length;b++)e.queue[b]();e.queue=[];return e.ready=!0}return!1}var e={ready:!1,timer:null,queue:[]};return{execOnReady:function(d){b()?d():e.timer?e.queue.push(d):(DISQUS.events.add(window,"load",b),e.queue.push(d),e.timer=setInterval(b,13))}}});
|
|
115
|
+
DISQUS.define("request",function(){return{get:function(b,e,d,a){var f=document.createElement("script");f.src=DISQUS.getResourceURL(b,e,d);f.charset="UTF-8";(a||DISQUS.nodes.body()).appendChild(f);return f},post:function(b,e,d){var a,f,c,g;a=document.createElement("div");c="dsq-temp-iframe"+(new Date).getTime();f=document.createElement("form");f.method="POST";f.action=b;if(!d)f.target=c;try{g=document.createElement('<iframe name="'+c+'">')}catch(h){g=document.createElement("iframe"),g.name=c}g.style.display=
|
|
116
|
+
"none";g.id=c;a.appendChild(g);DISQUS.lang.forEach(e,function(a,b){var c=document.createElement("input");c.name=b;c.type="hidden";c.value=a;f.appendChild(c)});DISQUS.nodes.body().appendChild(a);DISQUS.nodes.body().appendChild(f);f.submit()}}});
|
|
117
|
+
DISQUS.define("popup",function(){return{popModal:function(b,e,d,a,f,c){DISQUS.ui.Modal.closeAll();d=new DISQUS.ui.Modal;b={title:e,body:b,extra:f};DISQUS.lang.extend(b,c||{});d.open(b)},popProfile:function(b,e,d){var a=DISQUS.jsonData.posts[b];if(a){if(a.has_been_anonymized){DISQUS.popup.popModal(DISQUS.strings.get("This message was anonymized by its previous owner"),DISQUS.strings.get("Anonymized"),b);return}else if(a.killed){DISQUS.popup.popModal(DISQUS.strings.get("This comment was removed by a moderator"),
|
|
118
|
+
DISQUS.strings.get("Comment Removed"),b);return}e=DISQUS.jsonData.posts[b].user_key}b={username:e,anonymous:!!e.match(/^[0-9a-f]{32}/i),isModerator:d,forum:DISQUS.getShortname(),lang:DISQUS.jsonData.forum.language};(new DISQUS.ui.ProfileModal).open(b);return!1},close:function(){DISQUS.ui.Modal.closeAll()},adjustPosition:function(){var b=DISQUS.ui.Modal.last();b&&b.reposition()}}});
|
|
119
|
+
DISQUS.define("window",function(){return{anchor:function(b){window.location.hash=b},isClosed:function(b){if(!b)return!0;try{return b.closed||b.closed===void 0}catch(e){return!0}}}});DISQUS.define("hacks.ie",function(){return{fixIframes:function(b){var e=DISQUS.nodes.get("#"+DISQUS.config.container_id).getElementsByTagName("iframe");if(b=b?DISQUS.nodes.get("#"+b):DISQUS.nodes.container)for(var d=0;d<e.length;d++)e[d].style.width=b.offsetWidth}}});
|
|
120
|
+
DISQUS.define("db",function(){function b(){var b=localStorage.getItem("disqus_embed");return b?DISQUS.json.parse(b):{}}function e(){try{return!!window.localStorage}catch(b){return!1}}return{available:e,set:function(d,a){if(!e())return!1;var f=b();f[d]=a;try{localStorage.setItem("disqus_embed",DISQUS.json.stringify(f))}catch(c){}return!0},get:function(d){if(!e())return null;return b()[d]}}});DISQUS.define("nodes",function(){function b(a){return RegExp("(^|\\s)"+a+"(\\s|$)")}function e(a,b){var c=DISQUS.qwery(a,b);return a.slice(0,1)=="#"&&a.indexOf(" ")===-1?c[0]:c}function d(a){for(var b=[];a;a=a.nextSibling)a.nodeType===1&&b.push(a);return b}function a(a,c){return a.nodeType!==1?!1:c.slice(0,1)=="#"?a.id==c.slice(1):c.indexOf(".")!=-1?b(c.slice(1)).test(a.className):a.tagName.toLowerCase().indexOf(c)!=-1}function f(a,b,c){var d;if(a===document)return"";window.getComputedStyle?d=document.defaultView.getComputedStyle(a,
|
|
121
|
+
null).getPropertyValue(b):a.currentStyle&&(d=a.currentStyle[b]?a.currentStyle[b]:a.currentStyle[c]);return d=="transparent"||d===""||d=="rgba(0, 0, 0, 0)"?f(a.parentNode,b,c):d||""}function c(){var a;a=e("body")[0];if(j)return j;j={backgroundColor:null,fontColor:null,fontFamily:null,anchorColor:null,direction:null};a=e("#"+DISQUS.config.container_id)||a;j.fontColor=f(a,"color");j.backgroundColor=f(a,"background-color","backgroundColor");j.fontFamily=f(a,"font-family","fontFamily").replace(/['"]/g,
|
|
122
|
+
"");j.direction=f(a,"direction");if(a=e("a")[0])j.anchorColor=f(a,"color");return j}function g(){var a=c(),a={to_redirect:window.location,ff:a.fontFamily,fc:a.fontColor,ac:a.anchorColor};DISQUS.jsonData&&DISQUS.lang.extend(a,{f:DISQUS.jsonData.forum.url,t:DISQUS.jsonData.thread.slug,cbp:DISQUS.config.callback_params,default_text:DISQUS.config.def_text});return a}function h(a,c){return b(c).test(a.className)}function i(a,b){var c=(b||"").split(u);if(a.className){for(var d=" "+a.className+" ",e=a.className,
|
|
123
|
+
f=0,g=c.length;f<g;f++)d.indexOf(" "+c[f]+" ")<0&&(e+=" "+c[f]);a.className=DISQUS.lang.trim(e)}else a.className=b}function l(a,b){var c=(b||"").split(u);if(b){for(var d=(" "+a.className+" ").replace(s," "),e=0,f=c.length;e<f;e++)d=d.replace(" "+c[e]+" "," ");a.className=DISQUS.lang.trim(d)}else a.className=""}function m(a){var b,c;if(a){b=a.childNodes;for(var d=b.length-1;d>=0;)c=b[d],c.hasChildNodes()&&m(c),typeof c.outerHTML!="undefined"?c.outerHTML="":a.removeChild(c),d-=1}}var o=DISQUS.qwery("#dsq-content")[0],
|
|
124
|
+
n=DISQUS.qwery("head")[0]||DISQUS.qwery("#disqus_thread")[0],j,t=null,s=/[\n\t]/g,u=/\s+/;return{container:o,head:n,query:DISQUS.qwery,get:e,siblings:d,children:function(a){return d(a.firstChild)},is:a,body:function(){if(t)return t;var a=DISQUS.qwery("body");a&&a.length&&(t=a[0]);return t},closest:function(b,c){for(var d=b.parentNode;d;){if(a(d,c))return d;d=d.parentNode}return null},createIframe:function(a,b,c){var d,e,f;f=g();b&&DISQUS.lang.forEach(b,function(a,b){f[b]=a});e={marginwidth:0,marginheight:0,
|
|
125
|
+
hspace:0,vspace:0,frameborder:0,allowtransparency:"true",src:DISQUS.getResourceURL(a,f,!0)};c&&DISQUS.lang.forEach(c,function(a,b){e[b]=a});d=document.createElement("iframe");DISQUS.lang.forEach(e,function(a,b){d.setAttribute(b,a)});return d},getPosition:function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;while(a)}return[b,c]},getStyle:f,getBasicStyles:c,hasClass:h,addClass:i,removeClass:l,toggleClass:function(a,b){h(a,b)?l(a,b):i(a,b)},remove:function(a){if(a)m(a),
|
|
126
|
+
typeof a.outerHTML!="undefined"?a.outerHTML="":a.parentNode&&a.parentNode.removeChild(a)},removeChildren:m,insertBefore:function(a,b){a.parentNode.insertBefore(b,a)},insertAfter:function(a,b){a.parentNode.insertBefore(b,a.nextSibling)},firstChild:function(a){var a=a.childNodes,b;for(b=0;b<a.length;b++)if(a[b].nodeType===1)return a[b];return null},toHTML:function(a){var b;b=document.createElement("div");b.appendChild(a);return b.innerHTML},hide:function(a,b){b?a.style.cssText="display:none !important":
|
|
127
|
+
a.style.display="none"},show:function(a,b){b?a.style.cssText="display:block !important":a.style.display="block"},scrollTo:function(a){typeof a==="string"&&(a=e(a));a&&(a=DISQUS.nodes.getPosition(a),window.scrollTo(0,a[1]))},truncateComment:function(a,b,c){for(var d=a.childNodes[0],e=0;d!==null;){if(d.nodeType==3&&(e+=d.nodeValue.replace(/^\s+|\s+$/g,"").split(" ").length,e>b))break;if(d.childNodes.length>0)d=d.childNodes[0];else if(d.nextSibling!==null)d=d.nextSibling;else if(d.parentNode===a)break;
|
|
128
|
+
else{for(d=d.parentNode;d.parentNode.nextSibling===null&&d!==a;)d=d.parentNode;d=d==a?null:d.nextSibling}}if(e<=b)return!1;var f=d.nodeValue.replace(/^\s+|\s+$/g,"").split(" "),f=f.slice(0,f.length-(e-b));if(d.nodeType===3)d.nodeValue=f.join(" ")+c;for(;d!==a;){for(;d.nextSibling!==null;)d.nextSibling.parentNode.removeChild(d.nextSibling);d=d.parentNode}return!0},slide:function(a,b,c,d){var d=250,e=(new Date).getTime(),f=Math.max(b,c),g=c<b,i=g?Math.max:Math.min;a.style.height=b+"px";a.style.overflow=
|
|
129
|
+
"hidden";a.style.display="block";var j=setInterval(function(){var b=(new Date).getTime()-e,n=b/d;g&&(n=1-n);n=parseInt(f*n,10);n=i(n,c);a.style.height=n+"px";if(b>=d){if(n<=0)a.style.display="none",a.style.height="";clearInterval(j)}},13)},getIframeDefaults:g}});DISQUS.define("sandbox",function(){function b(){var a={DISQUS:null,browser:DISQUS.browser,config:DISQUS.config,urls:{},lang:{forEach:DISQUS.lang.forEach,interpolate:DISQUS.strings.interpolate,contains:function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]==b)return!0;return!1},pluralize:DISQUS.strings.pluralize,capitalize:DISQUS.strings.capitalize,extend:DISQUS.lang.extend},states:DISQUS.states,trans:DISQUS.strings.get,settings:{}},b={debug:"disqus.debug",minify_js:"disqus.minified",read_only:"disqus.readonly",
|
|
130
|
+
disqus_url:"disqus.urls.main",media_url:"disqus.urls.media",ssl_media_url:"disqus.urls.sslMedia",realtime_url:"disqus.urls.realtime",uploads_url:"disqus.urls.uploads",recaptcha_public_key:"disqus.recaptcha.key",facebook_app_id:"disqus.facebook.appId",facebook_api_key:"disqus.facebook.apiKey"};if(DISQUS.jsonData&&DISQUS.jsonData.context.switches.realtime_setting_change)b.realtimeHost="realtime.host",b.realtimePort="realtime.port";for(var d in b)b.hasOwnProperty(d)&&(a.settings[d]=DISQUS.settings.get(b[d]));
|
|
131
|
+
if(!DISQUS.jsonData)return a;var e=DISQUS.jsonData,b=e.settings.media_url;DISQUS.lang.extend(a,{context:e.context,messagesx:e.messagesx,comments:[],highlighted:[],unapproved:[],comment:null,forum:e.forum,integration:e.integration,loginOptions:[{name:"disqus",button_url:b+"/images/themes/narcissus/login-disqus.gif",enabled:!e.forum.disqus_auth_disabled,action:"auth.disqus"},{name:"facebook",button_url:b+"/images/themes/narcissus/login-facebook.gif",enabled:e.context.use_fb_connect,action:"auth.facebook"},
|
|
132
|
+
{name:"twitter",button_url:b+"/images/themes/narcissus/login-twitter.gif",enabled:e.context.use_twitter_signin,action:"auth.twitter"},{name:"google",button_url:b+"/images/themes/narcissus/login-twitter.gif",enabled:e.context.use_google_signin,action:"auth.google"},{name:"openid",button_url:b+"/images/themes/narcissus/login-openid.gif",enabled:e.context.use_openid,action:"auth.openid"},{name:"yahoo",button_url:b+"/images/themes/narcissus/login-yahoo.png",enabled:e.context.use_yahoo,action:"auth.yahoo"}],
|
|
133
|
+
ranks:e.ranks,request:e.request,reactions:e.reactions,session:e.session,sorting:[{value:"hot",label:DISQUS.strings.get("Popular now"),selected:e.request.sort=="hot"},{value:"best",label:DISQUS.strings.get("Best rating"),selected:e.request.sort=="best"},{value:"newest",label:DISQUS.strings.get("Newest first"),selected:e.request.sort=="newest"},{value:"oldest",label:DISQUS.strings.get("Oldest first"),selected:e.request.sort=="oldest"}],thread:e.thread,urls:e.urls});DISQUS.config.sso&&a.loginOptions.push({name:DISQUS.config.sso.name,
|
|
134
|
+
button_url:DISQUS.config.sso.button,action:"auth.sso",enabled:!0,userDefined:!0});DISQUS.lang.extend(a.settings,e.settings);if(DISQUS.db.available()&&(d=DISQUS.db.get("thread_votes"))&&d[e.thread.id])b=d[e.thread.id],b.timestamp>=e.request.timestamp?(d=b.value-a.thread.user_vote,a.thread.likes+=d<0?0:d,a.thread.user_vote=b.value):(delete d[e.thread.id],DISQUS.db.set("thread_votes",d));a.context.realtime_enabled=e.realtime_enabled;a.context.has_more_reactions=e.has_more_reactions;DISQUS.config.trackback_url&&
|
|
135
|
+
DISQUS.config.trackbacks?(a.context.trackback_url=DISQUS.config.trackback_url,a.context.trackbacks=DISQUS.config.trackbacks):(a.context.trackback_url=e.settings.disqus_url+"/forums/"+e.forum.url+"/"+e.thread.slug+"/trackback/",a.context.trackbacks=e.trackbacks);a.context.sharing=[];DISQUS.lang.forEach(a.request.sharing,function(b,d){if(!(a.request.is_remote&&a.request.remote_domain!=d))b.key=d,b.checked=b.auto===!0||a.request.remote_domain==d,a.context.sharing.push(b)});a.request.display_sharing_options=
|
|
136
|
+
e.request.is_authenticated;if(e.request.is_remote&&!e.request.sharing.hasOwnProperty(e.request.remote_domain))a.request.display_sharing_options=!1;if(a.reactions&&a.reactions.length>0){for(f=0;f<a.reactions.length;f++)b=a.reactions[f].get_service_name,a.reactions[f].service_icon=b=="trackback"||b=="pingback"?"rss":b.replace(" ","");if(a.reactions.retweets&&a.reactions.retweets.length===0)a.reactions.retweets=null}else a.reactions=null;DISQUS.lang.forEach(e.mediaembed,function(a){a.thumbnailURL=e.settings.media_url+
|
|
137
|
+
"/images/mediaembed-thumbnail.png";switch(a.type){case 1:case 5:if(a.metadata.thumbnail)a.thumbnailURL=e.settings.media_url.replace(/\/$/,"")+"/uploads/"+a.metadata.thumbnail.replace(/^\//,"");break;case 2:case 4:if(a.metadata.thumbnail)a.thumbnailURL=a.metadata.thumbnail}if(!e.posts[a.post].media)e.posts[a.post].media=[];e.posts[a.post].media.push(a)});var l={avatar:DISQUS.jsonData.forum.default_avatar_url,display_name:"Guest"};DISQUS.each(e.ordered_highlighted,function(b){var d=e.highlighted[b];
|
|
138
|
+
d.author=e.users[d.user_key]||l;d.id=b;d.stripped=function(a){var b=d.message.replace(/<.*?>/g,"");if(b.length>a)return b.substring(0,a);return null};a.highlighted.push(d)});if(e&&e.context.switches.show_unapproved){var m=e.request;DISQUS.each(m.ordered_unapproved_posts,function(b){var d=m.unapproved_posts[b];d.author=e.users[d.user_key]||l;d.id=b;a.unapproved.push(d)})}var o=0;DISQUS.lang.forEach(e.ordered_posts,function(b){var d=e.posts[b];d.isFirst=!1;d.isLast=!1;d.id=b;d.author=e.users[d.user_key]||
|
|
139
|
+
l;d.even=o%2===0;if(d.parent_post_id&&e.posts[d.parent_post_id])d.parent=e.posts[d.parent_post_id],d.parent.author=e.users[d.parent.user_key]||l;d.stripped=function(a){var b=d.message.replace(/<.*?>/g,"");if(b.length>a)return b.substring(0,a);return null};if(o===0)d.isFirst=!0;else if(b=a.comments[o-1],b.depth<d.depth)d.isFirst=!0;else if(b.depth>d.depth)b.isLast=!0;a.comments.push(d);o++});if(o>0)a.comments[o-1].isLast=!0;a.thread.page_numbers=[];for(f=a.request.page-2;f<a.request.page+2;f++)f>0&&
|
|
140
|
+
f<=a.thread.num_pages&&a.thread.page_numbers.push(f);a.thread.page_numbers[0]==2&&a.thread.page_numbers.unshift(1);a.thread.page_numbers[a.thread.page_numbers.length-1]==a.thread.num_pages-1&&a.thread.page_numbers.push(a.thread.num_pages);return a}function e(){var b={};DISQUS.lang.forEach(a,function(a){typeof a!="undefined"&&DISQUS.lang.extend(b,a)});return b}var d,a={},f;return{wrap:function(c,f,h){typeof d=="undefined"&&(d=b());h&&(a[c]=h);h=e();f=f(d,h);a[c]&&(a[c]=void 0);return f},invalidateGlobals:function(){d=
|
|
141
|
+
void 0}}});DISQUS.define("tooltip",function(){var b=function(d,a){a=DISQUS.lang.extend({},b.defaults,a===void 0?{}:a);this.element=d;this.options=a;this.returnTo=this.content=null;this.enabled=!0;this.init()};b.prototype={init:function(){var b=this,a=this.element,e=this.options;if(e.trigger==="click"){var c,g,h,i;h=function(){b.enter();DISQUS.events.remove(a,"click",c);setTimeout(function(){g=DISQUS.events.add(document,"click",i)},0)};c=DISQUS.events.add(a,"click",h);i=function(e){e=e||window.event;DISQUS.nodes.closest(e.target||
|
|
142
|
+
e.srcElement,".dsq-tooltip-outer")||(b.hide(),DISQUS.events.remove(document,"click",g),c=DISQUS.events.add(a,"click",h))}}else e.trigger&&(DISQUS.events.add(a,"mouseout",function(){b.leave()}),DISQUS.events.add(a,"mouseover",function(){b.enter()}))},show:function(){var b=this.getTitle();if(this.enabled&&(b||this.options.contentId)){var a=this.outer(),e=DISQUS.nodes.get(".dsq-tooltip-inner",a)[0],c;this.options.contentId?(c="big",this.content=DISQUS.nodes.get("#"+this.options.contentId),this.returnTo=
|
|
143
|
+
this.content.parentNode,e.appendChild(this.content),this.content.setAttribute("style","display:block !important")):(c="small",DISQUS.nodes.addClass(a,"dsq-tooltip-small"),this.options.html?e.innerHTML=b:typeof e.innerText!=="string"?e.textContent=b:e.textText=b);a.className="";DISQUS.nodes.addClass(a,"dsq-tooltip-outer");DISQUS.nodes.addClass(a,"dsq-tooltip-"+c);a.style.visibility="hidden";a.style.top="0";a.style.left="0";a.style.display="block";document.getElementsByTagName("body")[0].appendChild(a);
|
|
144
|
+
this.reposition()}},reposition:function(){var b=this.outer(),a=DISQUS.nodes.getPosition(this.element),a={left:a[0],top:a[1],width:this.element.offsetWidth,height:this.element.offsetHeight};b.style.top=a.top-b.offsetHeight+"px";b.style.left=a.left+"px";b.style.backgroundPosition=a.width/2+"px bottom";if(!this.options.fade)b.style.visibility="visible",b.style.opacity=this.options.opacity},hide:function(){if(!this.options.fade)this.content&&(this.content.setAttribute("style","display:none !important"),
|
|
145
|
+
this.returnTo.appendChild(this.content)),this.outer().style.visibility="hidden"},getTitle:function(){var b,a=this.element,e=this.options;a.title&&(a.setAttribute("original-title",a.title),a.removeAttribute("title"));typeof e.title=="string"?b=a.getAttribute(e.title=="title"?"original-title":e.title):typeof e.title=="function"&&(b=e.title.call(a));return(b=b&&b.replace(/(^\s*|\s*$)/,""))||e.fallback},outer:function(){if(!this._outer){var b=this._outer=document.createElement("div");b.className="dsq-tooltip-outer";
|
|
146
|
+
b.style.position="absolute";b.style.zIndex="9999";b.innerHTML='<div class="dsq-tooltip dsq-cleanslate"> <div class="dsq-tooltip-notch"></div> <div class="dsq-tooltip-inner"></div></div>'}return this._outer},validate:function(){this.$element[0].parentNode||this.hide()},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},leave:function(){if(this.hoverState!=="out")this.hoverState="out",this.options.delayOut===0?this.hide():setTimeout(function(){this.hoverState==
|
|
147
|
+
"out"&&this.hide()},this.options.delayOut)},enter:function(){if(this.hoverState!=="in")this.hoverState="in",this.options.delayIn===0?this.show():setTimeout(function(){this.hoverState=="in"&&this.show()},this.options.delayIn)}};b.defaults={delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,opacity:0.95,title:"title",trigger:"hover",contentId:null,noclip:!1};var e=function(d,a){b.call(this,d,a)};e.prototype=DISQUS.lang.extend({},b.prototype);e.prototype.show=function(){var d=this,
|
|
148
|
+
a;b.prototype.show.call(this);a=DISQUS.events.add(document,"click",function(b){b=b||window.event;DISQUS.nodes.closest(b.target||b.srcElement,".dsq-tooltip-outer")||(d.hide(),DISQUS.events.remove(document,"click",a))})};return{Tooltip:b,ManualTooltip:e}});DISQUS.define("comm",function(){var b,e,d={Default:null,Facebook:null,SSO:null,Reply:{},Auth:{},Edit:{},Twitter:{},Upload:{}};return{Default:{create:function(a){if(d.Default!==null)return d.Default;var b,c={remote:DISQUS.settings.get("disqus.debug")?DISQUS.jsonData.urls.channels.def:DISQUS.settings.get("disqus.urls.media")+"/build/system/def.html#",onReady:function(){b.isReady=!0;a&&a()}};b=DISQUS.net.rpc(c,{local:{realtimeNotify:function(a){DISQUS.dtpl.actions.fire("messagesx.newEvent",a)}},remote:{api:{},
|
|
149
|
+
echo:{},enable:{},flushLog:{},addMeta:{},log:{},setApiKey:{},realtimePoll:{}}});return d.Default=b},recover:function(){return d.Default}},Reply:{create:function(){var a=Array.prototype.slice.call(arguments),f=a.length,c=a[f-1],g=arguments[0],h=Object.prototype.toString.call(c)=="[object Function]"?c:null,i=f>0&&a[1]!=h?a[1]:0,i=i||null,a={},f=!1;if((!DISQUS.browser.ie||!DISQUS.browser.quirks)&&!DISQUS.browser.ie6&&!DISQUS.browser.ie7&&DISQUS.dtpl.actions.registered("comments.reply.onResize",!0))a.scrolling=
|
|
150
|
+
"no",f=!0;if(typeof b=="undefined")b=DISQUS.jsonData,e=DISQUS.nodes.getBasicStyles();c={f:b.forum.url,t:b.thread.slug,ff:e.fontFamily,d:e.direction,p:DISQUS.config.def_text,upload_media:DISQUS.jsonData.context.switches.upload_media,mentions:DISQUS.jsonData.context.switches.mentions&&DISQUS.jsonData.forum.mentions_enabled};DISQUS.config.absorbStyles&&DISQUS.extend(c,{fc:e.fontColor,bg:e.backgroundColor});c=b.urls.channels.reply+"#"+DISQUS.serializeArgs(c);if(DISQUS.browser.ie&&window.postMessage==
|
|
151
|
+
null){var l=!1;if(typeof window.ActiveXObject!="undefined")try{var m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(m){var o=m.GetVariable("$version");o&&(o=o.split(" ")[1].split(","),parseInt(o[0],10)==10&&(l=!0))}}catch(n){}if(!l&&!DISQUS.nodes.get("#dsq-old-flash-notice"))m=DISQUS.nodes.get("#disqus_thread"),o=document.createElement("div"),o.id="dsq-old-flash-notice",o.className="dsq-notice",o.innerHTML=DISQUS.renderBlock("oldFlashMessage"),m.insertBefore(o,m.firstChild)}var j=DISQUS.net.rpc({remote:c,
|
|
152
|
+
container:g,props:a,onReady:function(){var a=DISQUS.nodes.get(".dsq-iframe-loading",g);a.length&&g.removeChild(a[0]);a=b.posts[i]||{};j.setState(a.id||null,a.depth===void 0?null:a.depth,DISQUS.jsonData.forum.id,DISQUS.jsonData.thread.id);j.setData({users:DISQUS.jsonData.users,browser:DISQUS.browser,media_url:DISQUS.jsonData.media_url});j.isReady=!0;h&&h();if(DISQUS.browser.ie&&DISQUS.browser.quirks&&this.container)a=DISQUS.nodes.get("iframe",g)[0],a.style.width=parseInt(a.parentNode.offsetWidth,10)+
|
|
153
|
+
"px"},appendElement:!0},{local:{cookieFailure:function(){DISQUS.dtpl.actions.fire("cookies.onFailure")},resizeFrame:function(a,b){DISQUS.dtpl.actions.fire("comments.reply.onResize",b,a)},onFocus:function(){DISQUS.dtpl.actions.fire("comments.reply.onFocus",i)},onBlur:function(){DISQUS.dtpl.actions.fire("comments.reply.onBlur",i)},onUploadAdd:function(a){DISQUS.dtpl.actions.fire("__.comments.reply.media.upload.onResponse",a,i)},onUploadRemove:function(a){DISQUS.dtpl.actions.fire("__.comments.reply.media.remove.onResponse",
|
|
154
|
+
a,i)},onSuggest:function(a,b){DISQUS.dtpl.actions.fire("comments.reply.mentions.suggest",a,b||void 0)},onSuggestMove:function(a,b){DISQUS.dtpl.actions.fire("comments.reply.mentions.move",a,b||void 0)},onSuggestSelect:function(a){DISQUS.dtpl.actions.fire("comments.reply.mentions.selectActive",a||void 0)},onSuggestClear:function(a){DISQUS.dtpl.actions.fire("comments.reply.mentions.clear",a||void 0)}},remote:{show:{},post:{},postAsGuest:{},validate:{},setState:{},focus:{},setupResize:{},setData:{},selectUser:{}}});
|
|
155
|
+
f&&j.setupResize();return d.Reply[i]=j},recover:function(a){return d.Reply[a||null]},reset:function(){d.Reply={}}},Auth:{create:function(a,f,c){if(typeof b=="undefined")b=DISQUS.jsonData,e=DISQUS.nodes.getBasicStyles();var g={f:b.forum.url,t:b.thread.slug,to_redirect:window.location,cbp:DISQUS.config.callback_params,ff:e.fontFamily,fc:e.fontColor,ac:e.anchorColor,lang:b.forum.language};if(DISQUS.config.frame_theme)g.theme=DISQUS.config.frame_theme;var g=DISQUS.getResourceURL(b.urls.channels.auth,
|
|
156
|
+
g,!0),h=DISQUS.net.rpc({remote:g,onReady:function(){h.isReady=!0;c&&c()},container:a},{local:{onAuth:function(a){DISQUS.states.loginDisabled?DISQUS.popup.close(null,!0):DISQUS.reload(function(){f(a)})}},remote:{focus:{}}});return d.Auth.def=h},recover:function(){return d.Auth.def}},Edit:{create:function(a,f,c){if(typeof b=="undefined")b=DISQUS.jsonData,e=DISQUS.nodes.getBasicStyles();var g=DISQUS.getResourceURL(b.urls.channels.edit,{f:b.forum.url,t:b.thread.slug,p:f,ff:e.fontFamily},!0),h=DISQUS.net.rpc({remote:g,
|
|
157
|
+
container:a,onReady:function(){h.isReady=!0;c&&c()}},{local:{},remote:{save:{},focus:{}}});d.Edit[f]=h;if(a=DISQUS.nodes.get("#dsq-edit-textarea-"+f))if(a.style.display="none",f=DISQUS.nodes.get("#dsq-edit-iframe-"+f))f.style.display="block",a.parentNode.appendChild(f);return h},recover:function(a){return d.Edit[a]}},Twitter:{create:function(a,b,c){var e=DISQUS.net.rpc({remote:DISQUS.jsonData.urls.channels.tweetbox,container:a,onReady:function(){e.isReady=!0;b&&b()}},{local:{onTweet:function(){c&&
|
|
158
|
+
c()}},remote:{setContent:{}}});return d.Twitter=e},recover:function(){return d.Twitter}},Facebook:{create:function(a,b){var c=DISQUS.jsonData.urls.channels.facebook;c+="#"+DISQUS.serializeArgs({f:DISQUS.jsonData.forum.url});var e=DISQUS.net.rpc({remote:c,container:a,props:{scrolling:"no"},onReady:function(){e.isReady=!0;if(b.onReady)b.onReady()}},{local:{onSuccess:function(){if(b.onSuccess)b.onSuccess()},onBusy:function(){if(b.onBusy)b.onBusy()},onFailure:function(){if(b.onFailure)b.onFailure()}},
|
|
159
|
+
remote:{authenticatePublisherSession:{},authenticatePublicSessionData:{},init:{},streamPublish:{}}});return d.Facebook=e},recover:function(){return d.Facebook}},SSO:{create:function(a,b){var c=DISQUS.net.rpc({remote:DISQUS.jsonData.urls.channels.sso,onReady:function(){c.isReady=!0;a!==void 0&&a()}},{local:{onSuccess:function(){b!==void 0&&b()}},remote:{authenticate:{}}});return d.SSO=c},recover:function(){return d.SSO}},Upload:{create:function(a,e){if(a){DISQUS.jsonData.request.display_sharing_options&&
|
|
160
|
+
DISQUS.nodes.addClass(a,"dsq-attach-media-border");var e=e||null,c=DISQUS.jsonData.urls.channels.upload;c+="#"+DISQUS.serializeArgs({f:b.forum.url,t:b.thread.slug});var g=new DISQUS.net.rpc({remote:c,container:a,props:{scrolling:"no",allowTransparency:"true"},onReady:function(){g.setupUpload(e||"",DISQUS.jsonData.forum.id,DISQUS.jsonData.thread.id);g.isReady=!0}},{local:{onUploadStart:function(){DISQUS.dtpl.actions.fire("__.comments.reply.media.upload",e)},onUpload:function(a){DISQUS.dtpl.actions.fire("__.comments.reply.media.upload.onResponse",
|
|
161
|
+
a,e)}},remote:{setupUpload:{},media:{}}});return d.Upload[e]=g}},recover:function(a){return d.Upload[a||null]}},reset:function(a){function f(a){a&&a.destroy()}DISQUS.each(d,function(b,d){d==="Default"&&a||b!==null&&(b.origin&&b.destroy?f(b):DISQUS.each(b,f))});b=e=void 0},ensureLoggedIn:function(a,b,c){c=c||{};if(DISQUS.jsonData.request.is_authenticated)a();else{switch(b){case "disqus":b=new DISQUS.ui.DisqusLoginBox;break;case "twitter":b=new DISQUS.ui.TwitterLoginBox;break;case "yahoo":b=new DISQUS.ui.YahooLoginBox;
|
|
162
|
+
break;case "openid":b=new DISQUS.ui.OpenIDLoginBox;break;case "google":b=new DISQUS.ui.GoogleLoginBox;break;case "facebook":b=DISQUS.FB.publisherKeySupported()?new DISQUS.ui.PublisherFacebookLoginBox:new DISQUS.ui.DefaultFacebookLoginBox;break;case "sso":b=new DISQUS.ui.SSOLoginBox;break;case "postas":b=new DISQUS.ui.LoginBox(c,{title:"Before we post this, who are you?",guestTab:!0});break;default:b=new DISQUS.ui.LoginBox(c)}b.onClose=function(){if(DISQUS.jsonData.request.is_authenticated)a();else if(typeof c.onFailure==
|
|
163
|
+
"function")c.onFailure()};b.open()}}}});DISQUS.define("ui",function(){var b={},e=0,d=function(){this.guid=++e;b[this.guid]=this};DISQUS.extend(d,{closeAll:function(){DISQUS.lang.forEach(b,function(a){a.close()})},last:function(){return b[e]}});d.prototype={init:function(){var a=this,b=a.container;b.className="dsq-popup dsq-popup-message "+(a.extra||"");DISQUS.browser.ie6||DISQUS.browser.ie7?DISQUS.events.execOnReady(function(){a._onContentReady()}):a._onContentReady();(b=DISQUS.nodes.get(".dsq-popup-close",b))&&b.length&&DISQUS.events.add(b[0],
|
|
164
|
+
"mouseup",function(){a.close()});a.mouseUpListener=function(b){DISQUS.nodes.closest(b.target||b.srcElement,"#"+a.container.id)||a.close()};a.keyUpListener=function(b){b.keyCode==27&&a.close()};DISQUS.bean.add(document,"mouseup",a.mouseUpListener);DISQUS.bean.add(document,"keyup",a.keyUpListener)},_onContentReady:function(){var a=this.container;DISQUS.nodes.body().appendChild(a);a.style.display="block";this.reposition();if(this.onReady)this.onReady()},open:function(a){d.closeAll();DISQUS.extend(this,
|
|
165
|
+
a||{});var b=this.title||"",c=this.body||"",e=this.container=document.createElement("div");e.id="dsq-popup-message";e.innerHTML=DISQUS.renderBlock("popup",{strict:a.strict,popupHeader:b,popupBody:c,popupClass:"",footer:typeof a.footer!=="undefined"?a.footer:!0});this.init();return e},close:function(){var a=this.container;if(a){if(this.mouseUpListener)DISQUS.bean.remove(document,"mouseup",this.mouseUpListener),this.mouseUpListener=null;if(this.keyUpListener)DISQUS.bean.remove(document,"keyup",this.keyUpListener),
|
|
166
|
+
this.keyUpListener=null;var c=DISQUS.nodes.get("#dsq-overlay");c&&DISQUS.nodes.remove(c);try{DISQUS.nodes.remove(a)}catch(d){for(var c=a.getElementsByTagName("IFRAME"),e=0;e<c.length;e++)c[e].parentNode.removeChild(c[e]);a.parentNode.removeChild(a)}this.container=null;if(this.onClose)this.onClose();b[this.guid]=null;delete b[this.guid]}},reposition:function(){var a=this.container;if(!a)return!1;var b=DISQUS.window.getSize(),c=(b[0]-a.offsetWidth)/2,b=(b[1]-a.offsetHeight)/2;DISQUS.browser.ie6&&(b=
|
|
167
|
+
DISQUS.window.getScrollPosition()[1]);a.style.left=c+"px";a.style.top=b+"px";return!0}};var a=function(){d.call(this)};DISQUS.extend(a.prototype,d.prototype,{open:function(a){DISQUS.extend(this,a||{});this.body='<div class="dsq-border" style="width:'+a.width+"px; height:"+a.height+'px"><a href="#" class="dsq-modal-close-btn" onclick="DISQUS.popup.close(null, true); return false">Close</a><div class="dsq-popup-raw-container"></div></div>';var b=this.container=document.createElement("div");b.id="dsq-popup-message";
|
|
168
|
+
b.innerHTML=this.body;this.extra="dsq-popup-raw";this.init();var c=DISQUS.nodes.createIframe(a.url,{},{width:"100%",height:"100%",scrolling:"no",frameBorder:"0",frameSpacing:"0",style:"visibility:hidden"}),b=DISQUS.nodes.get(".dsq-popup-raw-container",this.container)[0];b.appendChild(c);c.onreadystatechange=c.onload=function(){c.style.visibility="visible"};return b}});var f=function(){d.call(this)};DISQUS.extend(f.prototype,a.prototype,{open:function(b){b=b||{};typeof b==="string"&&(b={username:b});
|
|
169
|
+
var c=DISQUS.config&&DISQUS.config.domain?"http://"+DISQUS.config.domain:DISQUS.settings.get("disqus.urls.main");c+=(b.anonymous?"/embed/guest/":"/embed/")+b.username;var c=DISQUS.getResourceURL(c,{is_moderator:b.isModerator,forum:b.forum,lang:b.lang}),d=570,e=525,f=DISQUS.jsonData&&DISQUS.jsonData.context.active_gargoyle_switches;f&&DISQUS.contains(f,"new_embed_profile")&&(d=710,e=399);a.prototype.open.call(this,{url:c,width:d,height:e,onClose:b.onClose})}});var c=function(){this.tabs={};this.enabledTab=
|
|
170
|
+
null};DISQUS.extend(c.prototype,d.prototype,{open:function(a){var b=this,a=a||{};DISQUS.extend(a,{strict:!0,title:DISQUS.strings.get("Edit your profile"),extra:"dsq-profile-edit-modal",onClose:b.onClose,onReady:function(){b.onContentReady(a.selectedTab)}});b.lang=a.lang||"en";DISQUS.request.get(DISQUS.settings.get("disqus.urls.unmerged")||DISQUS.jsonData.urls.unmerged_profiles,{},!0);var c=function(e){DISQUS.dtpl.actions.remove("profile.getUnmerged.onSuccess",c);b.has_unmerged_users=e;d.prototype.open.call(b,
|
|
171
|
+
DISQUS.extend(a,{body:DISQUS.renderBlock("profileEdit",{has_unmerged_users:e})}))};DISQUS.dtpl.actions.register("profile.getUnmerged.onSuccess",c)},onContentReady:function(a){var b=this.tabs,c=this.lang,d=DISQUS.ui,e=DISQUS.settings.get("disqus.urls.main"),f=DISQUS.config.page?encodeURIComponent(DISQUS.config.page.url):"";if(this.has_unmerged_users)b.merge=new d.LoginBoxTab(this,"dsq-tab-profile-merge",new d.iFrameContent("dsq-profile-merge",e+"/embed/profile/merge?thread_url="+f+"&lang="+c));b.edit=
|
|
172
|
+
new d.LoginBoxTab(this,"dsq-tab-profile-edit",new d.iFrameContent("dsq-profile-edit",e+"/embed/profile/info?thread_url="+f+"&lang="+c));b.avatar=new d.LoginBoxTab(this,"dsq-tab-profile-avatar",new d.iFrameContent("dsq-profile-avatar",e+"/embed/profile/avatar?thread_url="+f+"&lang="+c));b.services=new d.LoginBoxTab(this,"dsq-tab-profile-services",new d.iFrameContent("dsq-profile-services",e+"/embed/profile/connections?thread_url="+f+"&lang="+c));b.notifications=new d.LoginBoxTab(this,"dsq-tab-profile-notifications",
|
|
173
|
+
new d.iFrameContent("dsq-profile-notifications",e+"/embed/account/notifications?thread_url="+f+"&lang="+c));b.account=new d.LoginBoxTab(this,"dsq-tab-profile-account",new d.iFrameContent("dsq-profile-account",e+"/embed/account?thread_url="+f+"&lang="+c));b.apps=new d.LoginBoxTab(this,"dsq-tab-profile-apps",new d.iFrameContent("dsq-profile-apps",e+"/embed/account/apps/?lang="+c));a&&b[a]?b[a].enable():(b.merge||b.edit).enable()}});var g=function(){d.call(this)};DISQUS.extend(g.prototype,a.prototype,
|
|
174
|
+
{open:function(b){b=b||{url:DISQUS.jsonData.urls.community};typeof b==="string"&&(b={url:b});var c=DISQUS.getResourceURL(b.url,{lang:b.lang});a.prototype.open.call(this,{url:c,width:700,height:525,onClose:b.onClose})}});var h=function(){this.name="disqus_edit_profile_"+DISQUS.getGuid()};h.prototype={open:function(a){a=DISQUS.getResourceURL(DISQUS.jsonData.urls.edit_profile_window,{lang:a.lang});this.window=window.open(a,"_blank","location=no,status=no,width=650,height=440,menubar=no")}};var i=function(a){this.name=
|
|
175
|
+
"disqus_"+DISQUS.getGuid();DISQUS.extend(this,a||{})};i.prototype={open:function(){var a=this;a.window=window.open(a.url,a.name,"location=0,status=0,width="+(a.width||800)+",height="+(a.height||400));a.window&&DISQUS.defer(function(){return DISQUS.window.isClosed(a.window)},function(){a.reload()})},reload:function(){var a=this;DISQUS.reload(function(){a.onClose()})},close:function(){this.window&&window.close()}};var l=function(a,b){this.opts=b||{};this.container=DISQUS.nodes.get("#"+a)};l.prototype=
|
|
176
|
+
{show:function(){DISQUS.nodes.show(this.container,!0);var a=DISQUS.nodes.get("input",this.container);a.length&&!this.opts.noAutoFocus&&a[0].focus()},hide:function(){DISQUS.nodes.hide(this.container,!0)}};var m=function(a,b,c){var d=a?"-"+a:"";l.call(this,"dsq-login-guest"+d,c);DISQUS.events.add(DISQUS.nodes.get("#dsq-field-email"+d),"keyup",function(a){var b=(a.target||a.srcElement).value,a="";if(b){for(var b=b.split("@")[0].split("."),c=0;c<b.length;c++)a+=b[c].charAt(0).toUpperCase()+b[c].slice(1)+
|
|
177
|
+
" ";a=DISQUS.lang.trim(a)}else a=void 0;if(a)DISQUS.nodes.get("#dsq-field-name"+d).value=a});var e=DISQUS.nodes.get("a",DISQUS.nodes.get(".dsq-login-add-url")[0])[0];e&&DISQUS.events.add(e,"click",function(a){DISQUS.nodes.hide(e.parentNode.parentNode,!0);DISQUS.nodes.show(DISQUS.nodes.get("#dsq-optional-field-website"),!0);a.preventDefault()});c=DISQUS.nodes.get("#dsq-submit-guest"+d);DISQUS.events.add(c,"click",function(){DISQUS.dtpl.validators.guestFields(a)&&b(this)})};DISQUS.extend(m.prototype,
|
|
178
|
+
l.prototype);var o=function(a,b,c){var d=this;a?parseInt(a,10)&&(a="dsq-login-disqus-"+a):a="dsq-login-disqus";l.call(d,a,c);d.iframeReady=!1;d.focusOnReady=!1;var e=DISQUS.comm.Auth.create(d.container,b,function(){d.iframeReady=!0;d.focusOnReady&&e.focus()})};DISQUS.extend(o.prototype,l.prototype,{show:function(){l.prototype.show.call(this);this.iframeReady?this.opts.noAutoFocus||DISQUS.comm.Auth.recover().focus():this.focusOnReady=!0}});var n=function(a,b){var c=this,d=DISQUS.nodes.get,e=DISQUS.nodes.hide,
|
|
179
|
+
f=DISQUS.nodes.show;l.call(this,b||"dsq-login-facebook-content");var g=DISQUS.nodes.get("#dsq-login-facebook-frame");c.rpc=DISQUS.comm.Facebook.create(g,{onReady:function(){c.rpc.init()},onBusy:function(){e(d(".dsq-connect-msg",c.container)[0],!0);f(d(".dsq-remote-authentication",c.container)[0],!0)},onFailure:function(){f(d(".dsq-connect-msg",c.container)[0],!0);e(d(".dsq-remote-authentication",c.container)[0],!0)},onSuccess:function(){DISQUS.reload(function(){a.close()})}})};DISQUS.extend(n.prototype,
|
|
180
|
+
l.prototype);var j=function(a,b){l.call(this,"dsq-login-"+b);var c=this,d=DISQUS.nodes.get(".dsq-external-launcher",this.container)[0];DISQUS.events.add(d,"click",function(){DISQUS.nodes.hide(DISQUS.nodes.get(".dsq-connect-msg",c.container)[0],!0);DISQUS.nodes.show(DISQUS.nodes.get(".dsq-remote-authentication",c.container)[0],!0);DISQUS.comm.ensureLoggedIn(function(){a.close()},b,{onFailure:function(){DISQUS.nodes.hide(DISQUS.nodes.get(".dsq-remote-authentication",c.container)[0],!0);DISQUS.nodes.show(DISQUS.nodes.get(".dsq-connect-msg",
|
|
181
|
+
c.container)[0],!0)}})})};DISQUS.extend(j.prototype,l.prototype);var t=function(a){j.call(this,a,"yahoo")};DISQUS.extend(t.prototype,j.prototype);var s=function(a){j.call(this,a,"twitter")};DISQUS.extend(s.prototype,j.prototype);var u=function(a){j.call(this,a,"facebook")};DISQUS.extend(u.prototype,j.prototype);var r=function(a){j.call(this,a,"google")};DISQUS.extend(r.prototype,j.prototype);var A=function(a){l.call(this,"dsq-login-openid");var b=DISQUS.nodes.get("#dsq-openid-submit-button");DISQUS.events.add(b,
|
|
182
|
+
"click",function(){var b,c,d=DISQUS.jsonData.urls.openid_connect,e=DISQUS.nodes.get("#dsq-openid-url").value;/^\s*$/.test(e)||(d=DISQUS.getResourceURL(d,{url:e,username:DISQUS.nodes.get("#dsq-openid-username").value}),b=window.open(d,"openidWindow","location=0,status=0,width=800,height=500"),c=setInterval(function(){DISQUS.window.isClosed(b)&&(clearInterval(c),DISQUS.reload(function(){a.close()}))},500))})};DISQUS.extend(A.prototype,l.prototype);var q=function(a){j.call(this,a,"sso")};DISQUS.extend(q.prototype,
|
|
183
|
+
j.prototype);var p=function(a,b){l.call(this,a);this.url=DISQUS.serialize(b,{},!0);this.iframe=null};DISQUS.extend(p.prototype,l.prototype,{show:function(){var a=this;if(!this.iframe)this.iframe=DISQUS.nodes.createIframe(this.url,{},{style:"display:none !important;",frameBorder:"0",frameSpacing:"0",height:"100%",width:"100%"}),DISQUS.events.add(this.iframe,"load",function(){DISQUS.nodes.hide(a.spinner,!0);DISQUS.nodes.show(a.iframe,!0)}),this.spinner=document.createElement("img"),this.spinner.src=
|
|
184
|
+
DISQUS.settings.get("disqus.urls.media")+"/images/dsq-loader.gif",this.container.appendChild(this.spinner),this.container.appendChild(this.iframe);l.prototype.show.call(this)}});var K=function(a,b,c){var d=this;d.parent=a;d.tabNode=DISQUS.nodes.get("#"+b);d.content=c;a=DISQUS.nodes.get("a",d.tabNode)[0];DISQUS.events.add(a,"click",function(a){d.enable();a.preventDefault();return!1})};K.prototype={enable:function(){this.parent.enabledTab&&this.parent.enabledTab.disable();DISQUS.nodes.addClass(this.tabNode,
|
|
185
|
+
"dsq-active");this.content.show();this.parent.enabledTab=this},disable:function(){DISQUS.nodes.removeClass(this.tabNode,"dsq-active");this.content.hide()}};var D=function(a,b){this.events=a;this.tabs={};this.tabsArray=[];this.enabledTab=null;b=b||{};this.title=DISQUS.strings.get(b.title||"Login or Register");this.guestTab=b.guestTab||!1};DISQUS.extend(D.prototype,d.prototype,{open:function(a){var b=this,a=a||{};DISQUS.extend(a,{strict:!0,title:b.title,body:DISQUS.renderBlock("loginPopup",{guestTab:b.guestTab}),
|
|
186
|
+
extra:"dsq-login-box",onClose:b.onClose,onReady:function(){b.onContentReady(a.selectedTab)}});d.prototype.open.call(b,a)},onContentReady:function(){var a=this,b=DISQUS.ui;DISQUS.jsonData.forum.allow_anon_post&&a.guestTab&&a.add("guest",new b.LoginBoxTab(this,"dsq-login-tab-guest",new b.GuestLoginContent(null,function(){a.events.onGuest();a.close()})));var c;if(DISQUS.config.sso&&(a.add("sso",new b.LoginBoxTab(this,"dsq-login-tab-sso",new b.SSOLoginContent(this))),DISQUS.config.sso.icon))c=DISQUS.nodes.get("span",
|
|
187
|
+
DISQUS.nodes.get("#dsq-login-tab-sso"))[0],c.style.cssText="background: url("+DISQUS.config.sso.icon+") !important;";DISQUS.jsonData.forum.disqus_auth_disabled||a.add("disqus",new b.LoginBoxTab(this,"dsq-login-tab-disqus",DISQUS.states.useLoginWindow?new b.ExternalLoginContent(this,"disqus"):new b.DisqusLoginContent(null,function(b){b.newUser&&DISQUS.dtpl.actions.fire("user.newUser.onSuccess");a.close()})));c=null;(c=DISQUS.FB.publisherKeySupported()?new b.PublisherFacebookLoginContent(this):new b.DefaultFacebookLoginContent(this,
|
|
188
|
+
"dsq-login-facebook"))&&a.add("facebook",new b.LoginBoxTab(this,"dsq-login-tab-facebook",c));a.add("google",new b.LoginBoxTab(this,"dsq-login-tab-google",new b.GoogleLoginContent(this)));a.add("twitter",new b.LoginBoxTab(this,"dsq-login-tab-twitter",new b.TwitterLoginContent(this)));a.add("yahoo",new b.LoginBoxTab(this,"dsq-login-tab-yahoo",new b.YahooLoginContent(this)));a.add("openid",new b.LoginBoxTab(this,"dsq-login-tab-openid",new b.OpenIdLoginContent(this)));this.tabsArray[0].enable()},add:function(a,
|
|
189
|
+
b){this.tabs[a]=b;this.tabsArray.push(b)}});var I=function(){};DISQUS.extend(I.prototype,d.prototype,{open:function(a){var b=this,a=a||{};if(DISQUS.states.useLoginWindow){a=DISQUS.nodes.getIframeDefaults();a.is_popup=!0;var c=window.open(DISQUS.getResourceURL(DISQUS.jsonData.urls.channels.auth,a,!0),"_blank","height=420,width=400");window.focus&&c.focus();var e=setInterval(function(){DISQUS.window.isClosed(c)&&(clearInterval(e),DISQUS.reload(function(){b.onClose()}))},500)}else DISQUS.extend(a,{strict:!1,
|
|
190
|
+
title:DISQUS.strings.get("Login or Register"),body:'<div id="dsq-login-iframe-wrapper" style="height:320px;"></div>',extra:"dsq-popup-login",onClose:b.onClose,onReady:function(){b.content=new o("dsq-login-iframe-wrapper",function(a){a.newUser&&DISQUS.dtpl.actions.fire("user.newUser.onSuccess");b.close()});b.content.show()}}),d.prototype.open.call(b,a)}});var J=function(){i.call(this,{url:DISQUS.jsonData.urls.twitter_connect,width:800,height:698})};DISQUS.extend(J.prototype,i.prototype);var L=function(){i.call(this,
|
|
191
|
+
{url:DISQUS.jsonData.urls.googleConnect,width:800,height:400})};DISQUS.extend(L.prototype,i.prototype);var C=function(){i.call(this,{url:DISQUS.jsonData.urls.yahoo_connect,width:800,height:400})};DISQUS.extend(C.prototype,i.prototype);var k=function(){var a=DISQUS.config.sso;i.call(this,{url:a.url,width:a.width||800,height:a.height||400})};DISQUS.extend(k.prototype,i.prototype,{reload:function(){window.location.reload()}});var M=function(){};DISQUS.extend(M.prototype,d.prototype,{open:function(){var a=
|
|
192
|
+
this,b={title:DISQUS.strings.get("Sign in with OpenID"),body:DISQUS.renderBlock("openidForm"),onClose:a.onClose,onReady:function(){a.content=new A(a)}};d.prototype.open.call(a,b)}});var x=function(){};DISQUS.extend(x.prototype,d.prototype,{open:function(){var a=this;d.prototype.open.call(this,{title:DISQUS.strings.get("Sign in using Facebook"),body:DISQUS.renderBlock("facebookLoginForm",{title:!1}),onClose:a.onClose,onReady:function(){a.content=new n(a)}})}});var F=function(){};F.prototype.open=function(){var a=
|
|
193
|
+
this;DISQUS.FB.init(function(){DISQUS.FB.login(function(){DISQUS.FB.authenticateViaPublisherKey(function(){DISQUS.reload(function(){if(a.onClose)a.onClose()})})},function(){if(a.onClose)a.onClose()})})};return{Modal:d,IframeModal:a,ProfileModal:f,ProfileEditModal:c,ProfileEditNewWindow:h,ForumCommunityModal:g,NewWindowModal:i,ContentBase:l,GuestLoginContent:m,DisqusLoginContent:o,DefaultFacebookLoginContent:n,ExternalLoginContent:j,YahooLoginContent:t,TwitterLoginContent:s,PublisherFacebookLoginContent:u,
|
|
194
|
+
GoogleLoginContent:r,OpenIdLoginContent:A,SSOLoginContent:q,iFrameContent:p,LoginBoxTab:K,LoginBox:D,DisqusLoginBox:I,TwitterLoginBox:J,GoogleLoginBox:L,YahooLoginBox:C,SSOLoginBox:k,OpenIDLoginBox:M,DefaultFacebookLoginBox:x,PublisherFacebookLoginBox:F,applyTooltips:function(a){typeof a==="undefined"&&(a=DISQUS.nodes.get("#disqus_thread"));a=DISQUS.nodes.get(".dsq-tt",a);DISQUS.lang.forEach(a,function(a){new DISQUS.tooltip.Tooltip(a,{gravity:"s",trigger:"hover",opacity:0.96,html:!0,contentId:a.getAttribute("data-dsq-content-id")})})},
|
|
195
|
+
truncateComments:function(a){var a=DISQUS.nodes.get(".dsq-comment-message",a),b=DISQUS.jsonData.forum.comment_max_words;DISQUS.lang.forEach(a,function(a){(a=a.id.match(/\d+$/))&&a.length&&b>0&&DISQUS.dtpl.actions.fire("comments.text.collapse",a[0])})}}});(function(){DISQUS.ui.PublisherFacebookLoginBox.prototype.show=DISQUS.ui.PublisherFacebookLoginBox.prototype.open;DISQUS.ui.FacebookLoginBox=DISQUS.ui.PublisherFacebookLoginBox;DISQUS.api=DISQUS.api||{};DISQUS.api.FacebookLoginBox=DISQUS.ui.FacebookLoginBox})();DISQUS.define("sso",function(){return{auth:function(b){var e=DISQUS.comm.SSO.create(function(){e.authenticate(b)},function(){if(b.onSuccess)b.onSuccess()})}}});DISQUS.ReplyFrame=function(b,e){this.frame=null;this.container=b;this.id=e;this._type=b.id&&b.id.match(/edit/)?"edit":"reply"};DISQUS.ReplyFrame.prototype={setState:function(){},init:function(){this.frame=this._type=="edit"?DISQUS.comm.Edit.create(this.container.id,this.id):DISQUS.comm.Reply.create(this.container.id,this.id)}};DISQUS.TweetFrame=function(b,e){var d=DISQUS.comm.Twitter.create(b,e.onReady,e.onSuccess);this.init=function(){};this.setContent=function(a){d.setContent(a)}};DISQUS.define("FB",function(){function b(){if(!DISQUS.nodes.get("#fb-root")){var a=document.createElement("div");a.id="fb-root";DISQUS.nodes.get("#disqus_thread").appendChild(a)}}function e(b){return function(){a[b].apply(a,arguments)}}var d=[],a=null,f=function(){this.authResponse=null};f.prototype={init:function(a,b){FB.init({apiKey:a,channelUrl:b,status:!0,cookie:!0,oauth:!0})},login:function(a,b){var c=this;FB.login(function(d){d.authResponse?(c.authResponse=d.authResponse,a()):(c.session=null,
|
|
196
|
+
b())})},authenticateViaPublisherKey:function(a){FB.login(function(b){var c=DISQUS.comm.Facebook.create(null,{onReady:function(){c.authenticatePublisherSession(b.authResponse)},onSuccess:a})})},streamPublish:function(a,b,c){FB.ui({method:"stream.publish",message:a,attachment:b},function(a,b){typeof c==="function"&&c(a,b)})},streamShare:function(a,b,c){FB.ui({method:"stream.share",u:b.href},function(a){typeof c==="function"&&c(a.post_id)})}};var c=function(a){this.rpc=a};c.prototype={init:function(){this.rpc.init()},
|
|
197
|
+
streamPublish:function(a,b,c){this.rpc.streamPublish(a,b,c)},streamShare:function(a,b,c){this.rpc.streamPublish(a,b,c)},authenticateViaPublisherKey:function(){}};return{init:function(){DISQUS.FB.init=function(b){typeof b==="function"&&d.push(b);if(a)for(;d.length;)d.shift()()};DISQUS.FB.init();if(DISQUS.FB.publisherKeySupported())b(),window.FB||DISQUS.require("http://connect.facebook.net/en_US/all.js"),DISQUS.addJob(function(){return window.FB&&FB.init},function(){a=new f;a.init(DISQUS.config.facebook_key||
|
|
198
|
+
DISQUS.jsonData.context.forum_facebook_key,window.facebookXdReceiverPath||null);DISQUS.FB.init()});else var e=DISQUS.comm.Facebook.create(null,{onReady:function(){a=new c(e);a.init();DISQUS.FB.init()}})},publisherKeySupported:function(){return(DISQUS.config.facebook_key||DISQUS.jsonData.context.forum_facebook_key)&&!(window.FB&&FB.dynData)},authenticateViaPublisherKey:e("authenticateViaPublisherKey"),login:e("login"),streamShare:e("streamShare"),streamPublish:e("streamPublish")}});(function(b,e,d,a,f,c){function g(a,b){var c=typeof a[b];return c=="function"||!!(c=="object"&&a[b])||c=="unknown"}function h(){h=D;H=!0;for(var a=0;a<N.length;a++)N[a]();N.length=0}function i(a,b){H?a.call(b):N.push(function(){a.call(b)})}function l(){var a=parent;if(C!=="")for(var b=0,c=C.split(".");b<c.length;b++)a=a[c[b]];return a.easyXDM}function m(a){var b=a.match(I),a=b[2],c=b[3],b=b[4]||"";if(a=="http:"&&b==":80"||a=="https:"&&b==":443")b="";return a+"//"+c+b}function o(a){a=a.replace(L,"$1/");
|
|
199
|
+
if(!a.match(/^(http||https):\/\//)){var b=a.substring(0,1)==="/"?"":d.pathname;b.substring(b.length-1)!=="/"&&(b=b.substring(0,b.lastIndexOf("/")+1));a=d.protocol+"//"+d.host+b+a}for(;J.test(a);)a=a.replace(J,"");return a}function n(a,b){var d="",e=a.indexOf("#");e!==-1&&(d=a.substring(e).replace("#","&"),a=a.substring(0,e));var e=[],f;for(f in b)b.hasOwnProperty(f)&&e.push(f+"="+c(b[f]));return a+(Q?"#":a.indexOf("?")==-1?"?":"&")+e.join("&")+d}function j(a){return typeof a==="undefined"}function t(){var a=
|
|
200
|
+
{},b={a:[1,2,3]};if(typeof JSON!="undefined"&&typeof JSON.stringify==="function"&&JSON.stringify(b).replace(/\s/g,"")==='{"a":[1,2,3]}')return JSON;if(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")==='{"a":[1,2,3]}')a.stringify=Object.toJSON;if(typeof String.prototype.evalJSON==="function"&&(b='{"a":[1,2,3]}'.evalJSON(),b.a&&b.a.length===3&&b.a[2]===3))a.parse=function(a){return a.evalJSON()};if(a.stringify&&a.parse)return t=function(){return a},a;return null}function s(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&
|
|
201
|
+
(e in a?(d=b[e],typeof d==="object"?s(a[e],d,c):c||(a[e]=b[e])):a[e]=b[e]);return a}function u(a){if(j(F)){var c=e.createElement("iframe");c.name=x+"TEST";s(c.style,{position:"absolute",left:"-2000px",top:"0px"});e.body.appendChild(c);F=c.contentWindow!==b.frames[c.name];e.body.removeChild(c)}F&&!~navigator.userAgent.indexOf("Firefox")?c=e.createElement('<iframe name="'+a.props.name+'"/>'):(c=e.createElement("IFRAME"),c.name=a.props.name);c.id=c.name=a.props.name;delete a.props.name;a.onLoad&&B(c,
|
|
202
|
+
"load",a.onLoad);if(typeof a.container=="string")a.container=e.getElementById(a.container);if(!a.container)c.style.position="absolute",c.style.top="-2000px",c.style.left="0px",a.container=e.body;var d=a.props.src;delete a.props.src;s(c,a.props);c.border=c.frameBorder=0;a.container.appendChild(c);c.src=d;a.props.src=d;return c}function r(a){var c=a.protocol,f;a.isHost=a.isHost||j(y.xdm_p);Q=a.hash||!1;if(!a.props)a.props={};if(a.isHost){if(a.remote=o(a.remote),a.channel=a.channel||"default"+K++,a.secret=
|
|
203
|
+
Math.random().toString(16).substring(2),j(c))if(p.parent==p&&m(d.href)==m(a.remote))c="4";else if(g(b,"postMessage")||g(e,"postMessage"))c="1";else{if(c=g(b,"ActiveXObject"))try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),c=!0}catch(V){c=!1}c?c="6":navigator.product==="Gecko"&&"frameElement"in b&&navigator.userAgent.indexOf("WebKit")==-1?c="5":a.remoteHelper?(a.remoteHelper=o(a.remoteHelper),c="2"):c="0"}}else{a.channel=y.xdm_c;a.secret=y.xdm_s;a.remote=y.xdm_e;var c=y.xdm_p,v;if(v=a.acl){a:{v=
|
|
204
|
+
a.acl;var i=a.remote;typeof v=="string"&&(v=[v]);for(var w,h=v.length;h--;)if(w=v[h],w=RegExp(w.substr(0,1)=="^"?w:"^"+w.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),w.test(i)){v=!0;break a}v=!1}v=!v}if(v)throw Error("Access denied for "+a.remote);}switch(c){case "0":s(a,{interval:100,delay:2E3,useResize:!0,useParent:!1,usePolling:!1},!0);if(a.isHost){if(!a.local){f=d.protocol+"//"+d.host;c=e.body.getElementsByTagName("img");for(i=c.length;i--;)if(v=c[i],v.src.substring(0,f.length)===f){a.local=
|
|
205
|
+
v.src;break}if(!a.local)a.local=b}f={xdm_c:a.channel,xdm_p:0};a.local===b?(a.usePolling=!0,a.useParent=!0,a.local=d.protocol+"//"+d.host+d.pathname+d.search,f.xdm_e=a.local,f.xdm_pa=1):f.xdm_e=o(a.local);if(a.container)a.useResize=!1,f.xdm_po=1;a.remote=n(a.remote,f)}else s(a,{channel:y.xdm_c,remote:y.xdm_e,useParent:!j(y.xdm_pa),usePolling:!j(y.xdm_po),useResize:a.useParent?!1:a.useResize});f=[new k.stack.HashTransport(a),new k.stack.ReliableBehavior({}),new k.stack.QueueBehavior({encode:!0,maxLength:4E3-
|
|
206
|
+
a.remote.length}),new k.stack.VerifyBehavior({initiate:a.isHost})];break;case "1":f=[new k.stack.PostMessageTransport(a)];break;case "2":f=[new k.stack.NameTransport(a),new k.stack.QueueBehavior,new k.stack.VerifyBehavior({initiate:a.isHost})];break;case "3":f=[new k.stack.NixTransport(a)];break;case "4":f=[new k.stack.SameOriginTransport(a)];break;case "5":f=[new k.stack.FrameElementTransport(a)];break;case "6":if(!a.swf)a.swf="../../tools/easyxdm.swf";f=[new k.stack.FlashTransport(a)]}f.push(new k.stack.QueueBehavior({lazy:a.lazy,
|
|
207
|
+
remove:!0}));return f}function A(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;d<e;d++){b=a[d];s(b,c,!0);if(d!==0)b.down=a[d-1];if(d!==e-1)b.up=a[d+1]}return b}function q(a){a.up.down=a.down;a.down.up=a.up;a.up=a.down=null}var p=this,K=Math.floor(Math.random()*1E4),D=Function.prototype,I=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,
|
|
208
|
+
J=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,C="",k={},M=b.easyXDM,x="easyXDM_",F,Q=!1,B,G;if(g(b,"addEventListener"))B=function(a,b,c){a.addEventListener(b,c,!1)},G=function(a,b,c){a.removeEventListener(b,c,!1)};else if(g(b,"attachEvent"))B=function(a,b,c){a.attachEvent("on"+b,c)},G=function(a,b,c){a.detachEvent("on"+b,c)};else throw Error("Browser not supported");var H=!1,N=[],O;"readyState"in e?(O=e.readyState,H=O=="complete"||~navigator.userAgent.indexOf("AppleWebKit/")&&(O=="loaded"||O=="interactive")):
|
|
209
|
+
H=!!e.body;H||(g(b,"addEventListener")?B(e,"DOMContentLoaded",h):(B(e,"readystatechange",function(){e.readyState=="complete"&&h()}),e.documentElement.doScroll&&b===top&&function R(){if(!H){try{e.documentElement.doScroll("left")}catch(b){a(R,1);return}h()}}()),B(b,"load",h));var y=function(a){for(var a=a.substring(1).split("&"),b={},c,d=a.length;d--;)c=a[d].split("="),b[c[0]]=f(c[1]);return b}(/xdm_e=/.test(d.search)?d.search:d.hash);s(k,{version:"2.4.12.1",query:y,stack:{},apply:s,getJSONObject:t,
|
|
210
|
+
whenReady:i,noConflict:function(a){b.easyXDM=M;(C=a)&&(x="easyXDM_"+C.replace(".","_")+"_");return k}});k.DomHelper={on:B,un:G,requiresJSON:function(a){typeof b.JSON=="object"&&b.JSON||e.write('<script type="text/javascript" src="'+a+'"><\/script>')}};(function(){var a={};k.Fn={set:function(b,c){a[b]=c},get:function(b,c){var d=a[b];c&&delete a[b];return d}}})();k.Socket=function(a){var b=A(r(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){if(a.onReady)a.onReady(b)}}])),c=
|
|
211
|
+
m(a.remote);this.origin=m(a.remote);this.destroy=function(){b.destroy()};this.postMessage=function(a){b.outgoing(a,c)};b.init()};k.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];typeof d==="function"&&(b.local[c]={method:d})}var e=A(r(a).concat([new k.stack.RpcBehavior(this,b),{callback:function(b){if(a.onReady)a.onReady(b)}}]));this.origin=m(a.remote);this.destroy=function(){e.destroy()};e.init()};k.stack.SameOriginTransport=function(b){var c,e,f,
|
|
212
|
+
g;return c={outgoing:function(a,b,c){f(a);c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=m(b.remote);b.isHost?(s(b.props,{src:n(b.remote,{xdm_e:d.protocol+"//"+d.host+d.pathname,xdm_c:b.channel,xdm_p:4}),name:x+b.channel+"_provider"}),e=u(b),k.Fn.set(b.channel,function(b){f=b;a(function(){c.up.callback(!0)},0);return function(a){c.up.incoming(a,g)}})):(f=l().Fn.get(b.channel,!0)(function(a){c.up.incoming(a,g)}),a(function(){c.up.callback(!0)},0))},init:function(){i(c.onDOMReady,
|
|
213
|
+
c)}}};k.stack.FlashTransport=function(b){function c(b){a(function(){f.up.incoming(b,j)},0)}function d(a){var c=b.swf,f="easyXDM_swf_"+Math.floor(Math.random()*1E4);k.Fn.set("flash_loaded",function(){k.stack.FlashTransport.__swf=h=E.firstChild;a()});E=e.createElement("div");s(E.style,{height:"1px",width:"1px",postition:"absolute",left:0,top:0});e.body.appendChild(E);var g="proto="+p.location.protocol+"&domain="+p.location.href.match(I)[3]+"&ns="+C;E.innerHTML="<object height='1' width='1' type='application/x-shockwave-flash' id='"+
|
|
214
|
+
f+"' data='"+c+"'><param name='allowScriptAccess' value='always'></param><param name='wmode' value='transparent'><param name='movie' value='"+c+"'></param><param name='flashvars' value='"+g+"'></param><embed type='application/x-shockwave-flash' FlashVars='"+g+"' allowScriptAccess='always' wmode='transparent' src='"+c+"' height='1' width='1'></embed></object>"}var f,g,j,h,E;return f={outgoing:function(a,c,d){h.postMessage(b.channel,a);d&&d()},destroy:function(){try{h.destroyChannel(b.channel)}catch(a){}h=
|
|
215
|
+
null;g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){j=b.remote;h=k.stack.FlashTransport.__swf;k.Fn.set("flash_"+b.channel+"_init",function(){a(function(){f.up.callback(!0)})});k.Fn.set("flash_"+b.channel+"_onMessage",c);var e=function(){h.createChannel(b.channel,b.secret,m(b.remote),b.isHost);b.isHost&&(s(b.props,{src:n(b.remote,{xdm_e:m(p.location.href),xdm_c:b.channel,xdm_p:6,xdm_s:b.secret}),name:x+b.channel+"_provider"}),g=u(b))};h?e():d(e)},init:function(){i(f.onDOMReady,f)}}};
|
|
216
|
+
k.stack.PostMessageTransport=function(c){function e(a){var b;if(a.origin)b=m(a.origin);else if(a.uri)b=m(a.uri);else if(a.domain)b=d.protocol+"//"+a.domain;else throw"Unable to retrieve the origin of the event";b==h&&a.data.substring(0,c.channel.length+1)==c.channel+" "&&f.up.incoming(a.data.substring(c.channel.length+1),b)}var f,g,j,h;return f={outgoing:function(a,b,d){j.postMessage(c.channel+" "+a,b||h);d&&d()},destroy:function(){G(b,"message",e);g&&(j=null,g.parentNode.removeChild(g),g=null)},
|
|
217
|
+
onDOMReady:function(){h=m(c.remote);c.isHost?(B(b,"message",function E(d){d.data==c.channel+"-ready"&&(j="postMessage"in g.contentWindow?g.contentWindow:g.contentWindow.document,G(b,"message",E),B(b,"message",e),a(function(){f.up.callback(!0)},0))}),s(c.props,{src:n(c.remote,{xdm_e:m(d.href),xdm_c:c.channel,xdm_p:1}),name:x+c.channel+"_provider"}),g=u(c)):(B(b,"message",e),j="postMessage"in b.parent?b.parent:b.parent.document,j.postMessage(c.channel+"-ready",h),a(function(){f.up.callback(!0)},0))},
|
|
218
|
+
init:function(){i(f.onDOMReady,f)}}};k.stack.FrameElementTransport=function(c){var f,g,j,h;return f={outgoing:function(a,b,c){j.call(this,a);c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){h=m(c.remote);if(c.isHost)s(c.props,{src:n(c.remote,{xdm_e:m(d.href),xdm_c:c.channel,xdm_p:5}),name:x+c.channel+"_provider"}),g=u(c),g.fn=function(b){delete g.fn;j=b;a(function(){f.up.callback(!0)},0);return function(a){f.up.incoming(a,h)}};else{if(e.referrer&&m(e.referrer)!=
|
|
219
|
+
y.xdm_e)b.top.location=y.xdm_e;j=b.frameElement.fn(function(a){f.up.incoming(a,h)});f.up.callback(!0)}},init:function(){i(f.onDOMReady,f)}}};k.stack.NixTransport=function(c){var f,j,h,k,w;return f={outgoing:function(a,b,c){h(a);c&&c()},destroy:function(){w=null;j&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){k=m(c.remote);if(c.isHost){try{g(b,"getNixProxy")||b.execScript("Class NixProxy\n Private m_parent, m_child, m_Auth\n\n Public Sub SetParent(obj, auth)\n If isEmpty(m_Auth) Then m_Auth = auth\n SET m_parent = obj\n End Sub\n Public Sub SetChild(obj)\n SET m_child = obj\n m_parent.ready()\n End Sub\n\n Public Sub SendToParent(data, auth)\n If m_Auth = auth Then m_parent.send(CStr(data))\n End Sub\n Public Sub SendToChild(data, auth)\n If m_Auth = auth Then m_child.send(CStr(data))\n End Sub\nEnd Class\nFunction getNixProxy()\n Set GetNixProxy = New NixProxy\nEnd Function\n",
|
|
220
|
+
"vbscript"),w=getNixProxy(),w.SetParent({send:function(a){f.up.incoming(a,k)},ready:function(){a(function(){f.up.callback(!0)},0)}},c.secret),h=function(a){w.SendToChild(a,c.secret)}}catch(i){throw Error("Could not set up VBScript NixProxy:"+i.message);}s(c.props,{src:n(c.remote,{xdm_e:m(d.href),xdm_c:c.channel,xdm_s:c.secret,xdm_p:3}),name:x+c.channel+"_provider"});j=u(c);j.contentWindow.opener=w}else{if(e.referrer&&m(e.referrer)!=y.xdm_e)b.top.location=y.xdm_e;try{w=b.opener}catch(o){throw Error("Cannot access window.opener");
|
|
221
|
+
}w.SetChild({send:function(a){p.setTimeout(function(){f.up.incoming(a,k)},0)}});h=function(a){w.SendToParent(a,c.secret)};a(function(){f.up.callback(!0)},0)}},init:function(){i(f.onDOMReady,f)}}};k.stack.NameTransport=function(b){function c(a){h.contentWindow.sendMessage(a,b.remoteHelper+(j?"#_3":"#_2")+b.channel)}function d(){j?(++z===2||!j)&&g.up.callback(!0):(c("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,t)}function f(){P&&a(function(){P(!0)},0)}var g,j,h,p,z,P,t,l;return g={outgoing:function(a,
|
|
222
|
+
b,d){P=d;c(a)},destroy:function(){h.parentNode.removeChild(h);h=null;j&&(p.parentNode.removeChild(p),p=null)},onDOMReady:function(){j=b.isHost;z=0;t=m(b.remote);b.local=o(b.local);j?(k.Fn.set(b.channel,function(a){j&&a==="ready"&&(k.Fn.set(b.channel,e),d())}),l=n(b.remote,{xdm_e:b.local,xdm_c:b.channel,xdm_p:2}),s(b.props,{src:l+"#"+b.channel,name:x+b.channel+"_provider"}),p=u(b)):(b.remoteHelper=b.remote,k.Fn.set(b.channel,e));h=u({props:{src:b.local+"#_4"+b.channel},onLoad:function S(){var c=h||
|
|
223
|
+
this;G(c,"load",S);k.Fn.set(b.channel+"_load",f);(function U(){typeof c.contentWindow.sendMessage=="function"?d():a(U,50)})()}})},init:function(){i(g.onDOMReady,g)}}};k.stack.HashTransport=function(c){function d(){if(k){var a=k.location.href,b="",c=a.indexOf("#");c!=-1&&(b=a.substring(c));b&&b!=h&&(h=b,e.up.incoming(h.substring(h.indexOf("_")+1),t))}}var e,f,g,j,h,n,k,z,p,t;return e={outgoing:function(a){if(z)a=c.remote+"#"+n++ +"_"+a,(f||!p?z.contentWindow:z).location=a},destroy:function(){b.clearInterval(g);
|
|
224
|
+
(f||!p)&&z.parentNode.removeChild(z);z=null},onDOMReady:function(){f=c.isHost;j=c.interval;h="#"+c.channel;n=0;p=c.useParent;t=m(c.remote);if(f){c.props={src:c.remote,name:x+c.channel+"_provider"};if(p)c.onLoad=function(){k=b;g=setInterval(d,j);e.up.callback(!0)};else{var i=0,l=c.delay/50;(function T(){if(++i>l)throw Error("Unable to reference listenerwindow");try{k=z.contentWindow.frames[x+c.channel+"_consumer"]}catch(b){}k?(g=setInterval(d,j),e.up.callback(!0)):a(T,50)})()}z=u(c)}else k=b,g=setInterval(d,
|
|
225
|
+
j),p?(z=parent,e.up.callback(!0)):(s(c,{props:{src:c.remote+"#"+c.channel+new Date,name:x+c.channel+"_consumer"},onLoad:function(){e.up.callback(!0)}}),z=u(c))},init:function(){i(e.onDOMReady,e)}}};k.stack.ReliableBehavior=function(){var a,b,c=0,d=0,e="";return a={incoming:function(f,g){var j=f.indexOf("_"),h=f.substring(0,j).split(","),f=f.substring(j+1);h[0]==c&&(e="",b&&b(!0));f.length>0&&(a.down.outgoing(h[1]+","+c+"_"+e,g),d!=h[1]&&(d=h[1],a.up.incoming(f,g)))},outgoing:function(f,g,j){e=f;b=
|
|
226
|
+
j;a.down.outgoing(d+","+ ++c+"_"+f,g)}}};k.stack.QueueBehavior=function(b){function d(){if(b.remove&&g.length===0)q(e);else if(!h&&!(g.length===0||n)){h=!0;var c=g.shift();e.down.outgoing(c.data,c.origin,function(b){h=!1;c.callback&&a(function(){c.callback(b)},0);d()})}}var e,g=[],h=!0,i="",n,k=0,p=!1,m=!1;return e={init:function(){j(b)&&(b={});if(b.maxLength)k=b.maxLength,m=!0;b.lazy?p=!0:e.down.init()},callback:function(a){h=!1;var b=e.up;d();b.callback(a)},incoming:function(a,c){if(m){var d=a.indexOf("_"),
|
|
227
|
+
g=parseInt(a.substring(0,d),10);i+=a.substring(d+1);g===0&&(b.encode&&(i=f(i)),e.up.incoming(i,c),i="")}else e.up.incoming(a,c)},outgoing:function(a,f,j){b.encode&&(a=c(a));var h=[],i;if(m){for(;a.length!==0;)i=a.substring(0,k),a=a.substring(i.length),h.push(i);for(;i=h.shift();)g.push({data:h.length+"_"+i,origin:f,callback:h.length===0?j:null})}else g.push({data:a,origin:f,callback:j});p?e.down.init():d()},destroy:function(){n=!0;e.down.destroy()}}};k.stack.VerifyBehavior=function(a){function b(){d=
|
|
228
|
+
Math.random().toString(16).substring(2);c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");h===-1?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(){a.initiate&&b()}}};k.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0";f.down.outgoing(g.stringify(a))}function d(a,b){var e=Array.prototype.slice;return function(){var d=
|
|
229
|
+
arguments.length,f,g={method:b};d>0&&typeof arguments[d-1]==="function"?(d>1&&typeof arguments[d-2]==="function"?(f={success:arguments[d-2],error:arguments[d-1]},g.params=e.call(arguments,0,d-2)):(f={success:arguments[d-1]},g.params=e.call(arguments,0,d-1)),i[""+ ++h]=f,g.id=h):g.params=e.call(arguments,0);if(a.namedParams&&g.params.length===1)g.params=g.params[0];c(g)}}function e(a,b,d,f){if(d){var g,h;b?(g=function(a){g=D;c({id:b,result:a})},h=function(a,d){h=D;var e={id:b,error:{code:-32099,message:a}};
|
|
230
|
+
if(d)e.error.data=d;c(e)}):g=h=D;Object.prototype.toString.call(f)==="[object Array]"||(f=[f]);try{var i=d.method.apply(d.scope,f.concat([g,h]));j(i)||g(i)}catch(n){h(n.message)}}else b&&c({id:b,error:{code:-32601,message:"Procedure not found."}})}var f,g=b.serializer||t(),h=0,i={};return f={incoming:function(a){a=g.parse(a);if(a.method)b.handle?b.handle(a,c):e(a.method,a.id,b.local[a.method],a.params);else{var d=i[a.id];a.error?d.error&&d.error(a.error):d.success&&d.success(a.result);delete i[a.id]}},
|
|
231
|
+
init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}};p.easyXDM=k})(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);
|
|
232
|
+
DISQUS.net={easyXDM:easyXDM.noConflict("DISQUS.net"),rpc:function(b,e){if(!b.swf)b.swf=DISQUS.settings.get("disqus.debug")?DISQUS.settings.get("disqus.urls.main")+"/xdm.swf":DISQUS.settings.get("disqus.urls.media")+"/xdm.swf";if(typeof b.hash=="undefined")b.hash=!DISQUS.settings.get("disqus.debug");DISQUS.extend(e,{serializer:{parse:DISQUS.json.parse,stringify:DISQUS.json.stringify}});var d=new DISQUS.net.easyXDM.Rpc(b,e);d.isReady=!1;return d}};(function(){function b(a){return a<10?"0"+a:a}function e(a){g.lastIndex=0;return g.test(a)?'"'+a.replace(g,function(a){var b=l[a];return typeof b==="string"?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function d(a,b){var c,g,l,o,A=h,q,p=b[a];p&&typeof p==="object"&&typeof p.toJSON==="function"&&!f&&(p=p.toJSON(a));typeof m==="function"&&(p=m.call(b,a,p));switch(typeof p){case "string":return e(p);case "number":return isFinite(p)?String(p):"null";case "boolean":case "null":return String(p);
|
|
233
|
+
case "object":if(!p)return"null";h+=i;q=[];if(Object.prototype.toString.apply(p)==="[object Array]"){o=p.length;for(c=0;c<o;c+=1)q[c]=d(c,p)||"null";l=q.length===0?"[]":h?"[\n"+h+q.join(",\n"+h)+"\n"+A+"]":"["+q.join(",")+"]";h=A;return l}if(m&&typeof m==="object"){o=m.length;for(c=0;c<o;c+=1)g=m[c],typeof g==="string"&&(l=d(g,p))&&q.push(e(g)+(h?": ":":")+l)}else for(g in p)Object.hasOwnProperty.call(p,g)&&(l=d(g,p))&&q.push(e(g)+(h?": ":":")+l);l=q.length===0?"{}":h?"{\n"+h+q.join(",\n"+h)+"\n"+
|
|
234
|
+
A+"}":"{"+q.join(",")+"}";h=A;return l}}var a={},f=!1;if(typeof Date.prototype.toJSON!=="function")Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+b(this.getUTCMonth()+1)+"-"+b(this.getUTCDate())+"T"+b(this.getUTCHours())+":"+b(this.getUTCMinutes())+":"+b(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()};var c=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
|
235
|
+
g=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,h,i,l={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},m;a.stringify=function(a,b,c){var e;i=h="";if(typeof c==="number")for(e=0;e<c;e+=1)i+=" ";else typeof c==="string"&&(i=c);if((m=b)&&typeof b!=="function"&&(typeof b!=="object"||typeof b.length!=="number"))throw Error("JSON.stringify");return d("",{"":a})};a.parse=function(a,b){function d(a,
|
|
236
|
+
c){var e,f,g=a[c];if(g&&typeof g==="object")for(e in g)Object.hasOwnProperty.call(g,e)&&(f=d(g,e),f!==void 0?g[e]=f:delete g[e]);return b.call(a,c,g)}var e,a=String(a);c.lastIndex=0;c.test(a)&&(a=a.replace(c,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),
|
|
237
|
+
typeof b==="function"?d({"":e},""):e;throw new SyntaxError("JSON.parse");};DISQUS.json={};var o={a:[1,2,3]};if(Object.toJSON&&Object.toJSON(o).replace(/\s/g,"")==='{"a":[1,2,3]}')DISQUS.json.stringify=Object.toJSON;if(typeof String.prototype.evalJSON==="function"&&(o='{"a":[1,2,3]}'.evalJSON(),o.a&&o.a.length===3&&o.a[2]===3))DISQUS.json.parse=function(a){return a.evalJSON()};(function(){var a=[1,2,3];typeof a.toJSON==="function"&&(a=a.toJSON(),f=!(a&&a.length===3&&a[2]===3))})();if(!DISQUS.json.stringify||
|
|
238
|
+
!DISQUS.json.parse)DISQUS.json={stringify:a.stringify,parse:a.parse}})();DISQUS.sdk.add("getThread","1.0",function(b){var e=DISQUS.jsonData,d=[];DISQUS.each(e.ordered_posts,function(a){var a=e.posts[a],b=e.users[a.user_key];d.push({id:a.id,date:a.real_date,prettyDate:a.date,contents:a.message,likesCount:a.likes,isApproved:a.approved,isDeleted:a.killed,isEdited:a.edited,author:{username:b.username,displayName:b.display_name,points:b.points||0,isRegistered:b.registered,isModerator:a.author_is_moderator,isVerified:b.verified}})});b({id:e.thread.id,slug:e.thread.slug,isClosed:e.thread.closed,
|
|
239
|
+
isDeleted:e.thread.killed,posts:d,forum:{id:e.forum.id,name:e.forum.name,shortname:e.forum.url,language:e.forum.language,apiKey:e.forum.apiKey}})});DISQUS.sdk.add("getSession","1.0",function(b){var e=DISQUS.jsonData;b({user:{username:e.request.username,profileUrl:e.request.profile_url,displayName:e.request.display_username,points:e.request.points,isAuthenticated:e.request.is_authenticated,isModerator:e.request.is_moderator,isVerified:e.request.is_verified}})});DISQUS.addBlocks("defaults")(function(b){b.blocks.comment=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),a.compile()};b.blocks.postSharingOptions=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f){a.put(" ");if(request.is_authenticated){a.put('<div class="dsq-sharing-options dsq-tt"');request.display_sharing_options||a.put('style="display:none;"');a.put('title="');a.put(trans("Toggle to share your comment"));a.put('">');if(request.sharing.twitter.enabled||
|
|
240
|
+
request.sharing.facebook.enabled)a.put('<span class="dsq-sharing-options-label">'),a.put(trans("Share on")),a.put("</span>"),request.sharing.twitter.enabled&&(a.put('<button type="button" class="dsq-share-toggle" id="dsq-share-twitter" onclick="DISQUS.dtpl.actions.fire(\'share.toggle\', this, \'twitter\''),comment&&(a.put(","),a.put(comment.id)),a.put(');"><span class="dsq-share-icon"></span><span class="dsq-share-status"></span></button>')),request.sharing.facebook.enabled&&(a.put('<button type="button" class="dsq-share-toggle" id="dsq-share-facebook"onclick="DISQUS.dtpl.actions.fire(\'share.toggle\', this, \'facebook\''),
|
|
241
|
+
comment&&(a.put(","),a.put(comment.id)),a.put(');"><span class="dsq-share-icon"></span><span class="dsq-share-status"></span></button>')),a.put('<input style="display: none" type="checkbox" id="dsq-sharing-twitter'),comment&&(a.put("-"),a.put(comment.id)),a.put('" /> <input style="display: none" type="checkbox" id="dsq-sharing-facebook'),comment&&(a.put("-"),a.put(comment.id)),a.put('" />');a.put("</div>")}return a.compile()}};b.blocks.messagesxNotice=function(e,d){var a=new b.Builder,f=DISQUS.extend({},
|
|
242
|
+
e,d);with(f)return a.put(' <div class="dsq-messagesx-icon"> </div> <p> '),a.put(message.formatted.text),a.put(" </p>"),a.compile()};b.blocks.googleForm=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div id="dsq-login-google-content" class="dsq-auth-form"> <div class="dsq-connect-msg"> <h3>'),a.put(trans("Sign in with your Google account")),a.put("</h3> <p>"),a.put(trans("Click the button below to continue.")),a.put('</p> <p><span class="dsq-google-connect dsq-external-launcher"></span></p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="'),
|
|
243
|
+
a.put(settings.media_url),a.put('/images/dsq-loader.gif"> <p>'),a.put(trans("Connecting to Google")),a.put("</p> </div> <p><small>"),a.put(trans("You might need to disable your popup blocker to sign in.")),a.put("</small></p> </div>"),a.compile()};b.blocks.facebookLoginForm=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f){a.put(' <div id="dsq-login-facebook-content" class="dsq-auth-form"> <div class="dsq-connect-msg"> ');if(typeof title==="undefined"||title)a.put(" <h3>"),
|
|
244
|
+
a.put(trans("Sign in with your Facebook account")),a.put("</h3> ");a.put(" <p>");a.put(trans("Click the button below to continue."));a.put('</p> <p id="dsq-login-facebook-frame"> <\!-- frame goes here --\> </p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="');a.put(settings.media_url);a.put('/images/dsq-loader.gif" /> <p>');a.put(trans("Connecting to Facebook"));a.put("</p> </div> <p><small>");a.put(trans("You might need to disable your popup blocker to sign in."));
|
|
245
|
+
a.put("</small></p> </div>");return a.compile()}};b.blocks.reportConfirmation=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div style="text-align: center"> <button type="button" class="dsq-button" onclick="DISQUS.dtpl.actions.fire(\'comments.report\', '),a.put(id),a.put(', true);"> '),a.put(trans("Yes, flag as inappropriate")),a.put(' </button> <a href="#" onclick="DISQUS.popup.close(null, true);" style="margin: 0 0 0 10px">'),a.put(trans("Cancel")),a.put("</a> <br/><br/> </div> "),
|
|
246
|
+
a.put(trans("This will flag comments for moderators to take action.")),a.compile()};b.blocks.globalToolbarDropdown=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),a.put(' <div id="dsq-toolbar-dropdown"> <a href="#" class="dsq-toolbar-logo dsq-toolbar-item dsq-clearfix"><span class="dsq-toolbar-icon">Disqus</span></a> <div id="dsq-toolbar-dropdown-wrap" style="display: none"> <ul class="dsq-clearfix"> '),request.is_authenticated?(a.put(" "),
|
|
247
|
+
!request.is_remote&&!forum.disqus_auth_disabled?(a.put(' <li class="dsq-dashboard-link"><a href="#" onclick="DISQUS.dtpl.actions.fire(\'profile.dashboard\'); return false"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">'),a.put(trans("Dashboard")),a.put('</span></a></li> <li class="dsq-editprofile-link"><a href="#" onclick="DISQUS.dtpl.actions.fire(\'profile.edit\'); return false"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">'),
|
|
248
|
+
a.put(trans("Edit Profile")),a.put("</span></a></li> ")):request.is_remote&&request.has_email&&(a.put(' <li class="dsq-editprofile-link"><a href="#" onclick="return DISQUS.dtpl.actions.fire(\'user.remoteAccountSettings\');"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">'),a.put(trans("Settings")),a.put("</span></a></li> ")),a.put(" "),request.is_sso&&config.sso&&config.sso.logout?(a.put(' <li class="dsq-logout-link"><a href="'),
|
|
249
|
+
a.put(config.sso.logout)):(a.put(' <li class="dsq-logout-link"><a href="'),a.put(urls.logout),a.put("?ctkn="),a.put(context.csrf_token)),a.put('"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">'),a.put(trans("Logout")),a.put("</span></a></li> "),a.put(" ")):(a.put(' <li class="dsq-login-link"><a href="#" onclick="DISQUS.dtpl.actions.fire(\'auth.login\'); return false"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">'),
|
|
250
|
+
a.put(trans("Login")),a.put("</span></a></li> ")),a.put(' <li class="dsq-about-link"><a href="http://disqus.com" target="_blank"><span class="dsq-toolbar-icon"></span><span class="dsq-toolbar-label">'),a.put(trans("About Disqus")),a.put("</span></a></li> </ul> </div> </div>"),a.compile()};b.blocks.messagesxReply=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-messagesx-icon"> <img src="'),a.put(settings.media_url),
|
|
251
|
+
a.put('/img/disqus-bar/icons/reply.png" /> </div> <p> '),a.put(message.formatted.text),a.put(" </p>"),a.compile()};b.blocks.moderatorActionsPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),a.put('<div class="dsq-moderate-options"> <table> <tr> <th>'),a.put(trans("Actions")),a.put("</th> <td> <ul> <li>"),thread.closed?(a.put('<a href="#" onclick="return DISQUS.dtpl.actions.fire(\'thread.open\');">'),a.put(trans("Open thread"))):
|
|
252
|
+
(a.put('<a href="#" onclick="return DISQUS.dtlp.actions.fire(\'thread.close\');">'),a.put(trans("Close thread"))),a.put("</a>"),a.put("</li> </ul> </td> </tr> </table> </div> <p>"),a.put(trans("Go to the full")),a.put('<a href="'),a.put(urls.moderate_threads),a.put('" target="_blank">'),a.put(trans("moderate panel")),a.put("</a>"),a.put(trans("for more options")),a.put(".</p>"),a.put(" "),a.compile()};b.blocks.comments=function(e,d){var a=new b.Builder,f=DISQUS.extend({},
|
|
253
|
+
e,d);with(f)return a.put(' <div id="dsq-edit-profile-suggestion" style="display:none"> <p>'),a.put(trans("Thanks for posting.")),a.put(" "),a.put(trans("Would you like to")),a.put(' <a href="#" onclick="DISQUS.dtpl.actions.fire(\'profile.edit\'); return false">edit your profile</a>?</p> </div> '),b.each(comments,function(c,d){var e={comment:c,index:d};a.put(" ");(function(){var c={};b.extend(c,e);b.extend(c,{});a.put(b.renderBlock("comment",c))})();a.put(" ")}),a.compile()};
|
|
254
|
+
b.blocks.oldFlashMessage=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(trans("You are using an older browser. In order to comment, please upgrade to either Flash 10 or Internet Explorer 8.")),a.compile()};b.blocks.publisherFacebookLoginForm=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div id="dsq-login-facebook-content" class="dsq-auth-form"> <div class="dsq-connect-msg"> <h3>'),a.put(trans("Sign in with your Facebook account")),
|
|
255
|
+
a.put("</h3> <p>"),a.put(trans("Click the button below to continue.")),a.put('</p> <p><span class="dsq-facebook-connect dsq-external-launcher"></span></p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="'),a.put(settings.media_url),a.put('/images/dsq-loader.gif" /> <p>'),a.put(trans("Connecting to Facebook")),a.put("</p> </div> <p><small>"),a.put(trans("You might need to disable your popup blocker to sign in.")),
|
|
256
|
+
a.put("</small></p> </div>"),a.compile()};b.blocks.permalinkPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put('<div class="dsq-field"> <label>'),a.put(trans("You are anchored to")),a.put('</label> <input type="text" readonly="true" class="dsq-anchored-to" value="'),a.put(document.location.protocol),a.put("//"),a.put(document.location.host),a.put(document.location.pathname),a.put(document.location.search),a.put("#comment-"),a.put(postId),a.put('"/></div>'),
|
|
257
|
+
a.compile()};b.blocks.openidForm=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-auth-form"> <p class="dsq-field"> <label for="dsq-openid-url">'),a.put(trans("OpenID URL")),a.put('</label> <input type="text" id="dsq-openid-url" value="http://"/> </p> <p class="dsq-field"> <label for="dsq-openid-url">'),a.put(trans("Your name")),a.put('</label> <input type="text" id="dsq-openid-username"/> </p> <p><button class="dsq-button" id="dsq-openid-submit-button">'),
|
|
258
|
+
a.put(trans("Sign in")),a.put("</button></p> </div>"),a.compile()};b.blocks.loginPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-tabbed-modal" id="dsq-tabbed-login-modal"> <ul class="dsq-modal-tabs"> '),guestTab&&(a.put(' <li id="dsq-login-tab-guest"><a href="#dsq-login-guest" '),forum.allow_anon_post||a.put(' style="display: none !important"'),a.put("><span></span>"),a.put(trans("Guest")),a.put("</a></li> ")),a.put(" "),
|
|
259
|
+
config.sso&&(a.put('<li id="dsq-login-tab-sso"><a href="#dsq-login-sso"><span></span>'),a.put(config.sso.name),a.put("</a></li>")),a.put(" "),forum.disqus_auth_disabled||a.put(' <li id="dsq-login-tab-disqus"><a href="#dsq-login-disqus"><span></span>Disqus</a></li> '),a.put(' <li id="dsq-login-tab-google"><a href="#dsq-login-google"><span></span>Google</a></li> <li id="dsq-login-tab-twitter"><a href="#dsq-login-twitter"><span></span>Twitter</a></li> <li id="dsq-login-tab-facebook"><a href="#dsq-login-facebook"><span></span>Facebook</a></li> <li id="dsq-login-tab-yahoo"><a href="#dsq-login-yahoo"><span></span>Yahoo</a></li> <li id="dsq-login-tab-openid"><a href="#dsq-login-openid"><span></span>OpenID</a></li> </ul> <div class="dsq-tab-container"> <div id="dsq-login-guest" class="dsq-tab-content dsq-auth-form" style="display: none !important"> <p class="dsq-field"> <label for="dsq-field-email" id="dsq-field-email-label">'),
|
|
260
|
+
a.put(trans("Your email")),a.put('</label> <input type="text" value="'),config.def_email?a.put(config.def_email):session.email&&a.put(session.email),a.put('" id="dsq-field-email"/> </span> <p class="dsq-field"> <label for="dsq-field-name" id="dsq-field-name-label">'),a.put(trans("Your name")),a.put('</label> <input type="text" value="'),config.def_name?a.put(config.def_name):session.name?a.put(session.name):a.put(trans("Guest")),a.put('" id="dsq-field-name" /> </p> <p> <span class="dsq-login-add-url">'),
|
|
261
|
+
a.put(trans("Optional")),a.put(': <a href="#">'),a.put(trans("Link to your website")),a.put('</a></span> </p> <p class="dsq-field" style="display:none !important" id="dsq-optional-field-website"> <label for="dsq-field-website" id="dsq-field-website-label">'),a.put(trans("Your website")),a.put('</label> <input type="text" value="'),session.url&&a.put(session.url),a.put('" id="dsq-field-website" /> </p> <p class="dsq-login-subscribe"> <span> <input id="dsq-subscribe-on-post'),
|
|
262
|
+
comment&&(a.put("-"),a.put(comment.id)),a.put('" type="checkbox" '),request.subscribe_on_post&&a.put('checked="true"'),a.put('/> </span> <label for="dsq-subscribe-on-post'),comment&&(a.put("-"),a.put(comment.id)),a.put('">'),a.put(trans("Subscribe to all comments by email")),a.put('</label> </p> <p> <button type="button" id="dsq-submit-guest" class="dsq-button">'),a.put(trans("Post comment")),a.put("</button> </p> </div> "),
|
|
263
|
+
a.put(" "),typeof states.useLoginWindow!=="undefined"&&!states.useLoginWindow?a.put(' <div id="dsq-login-disqus" class="dsq-tab-content dsq-auth-form" style="display: none !important"> <\!-- disqus iframe gets inserted here dynamically --\> </div> '):(a.put(' <div id="dsq-login-disqus" class="dsq-tab-content dsq-auth-form" style="display: none !important"> <div class="dsq-connect-msg"> <h3>'),a.put(trans("Sign in with your Disqus account")),
|
|
264
|
+
a.put("</h3> <p>"),a.put(trans("Click the button below to continue.")),a.put('</p> <p><span class="dsq-disqus-connect dsq-external-launcher"></span></p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="'),a.put(settings.media_url),a.put('/images/dsq-loader.gif" /> <p>'),a.put(trans("Connecting to Disqus")),a.put("</p> </div> <p><small>"),a.put(trans("You might need to disable your popup blocker to sign in.")),
|
|
265
|
+
a.put("</small></p> </div> ")),a.put(' <div id="dsq-login-facebook" class="dsq-tab-content" style="display:none !important"> '),a.put(" "),context.forum_facebook_key&&(!window.FB||!window.FB.dynData)?(a.put(" "),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("publisherFacebookLoginForm",c))}()):(a.put(" "),a.put(" "),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("facebookLoginForm",
|
|
266
|
+
c))}()),a.put(" "),a.put(' </div> <div id="dsq-login-twitter" class="dsq-tab-content dsq-auth-form" style="display:none !important"> <div class="dsq-connect-msg"> <h3>'),a.put(trans("Sign in with your Twitter account")),a.put("</h3> <p>"),a.put(trans("Click the button below to continue.")),a.put('</p> <p><span class="dsq-twitter-connect dsq-external-launcher"></span></p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="'),
|
|
267
|
+
a.put(settings.media_url),a.put('/images/dsq-loader.gif" /> <p>'),a.put(trans("Connecting to Twitter")),a.put("</p> </div> <p><small>"),a.put(trans("You might need to disable your popup blocker to sign in.")),a.put('</small></p> </div> <div id="dsq-login-openid" class="dsq-tab-content" style="display:none !important"> '),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("openidForm",c))}(),a.put(' </div> <div id="dsq-login-google" class="dsq-tab-content" style="display:none !important"> '),
|
|
268
|
+
function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("googleForm",c))}(),a.put(' </div> <div id="dsq-login-yahoo" class="dsq-tab-content dsq-auth-form" style="display: none !important"> <div class="dsq-connect-msg"> <h3>'),a.put(trans("Sign in with your Yahoo account")),a.put("</h3> <p>"),a.put(trans("Click the button below to continue.")),a.put('</p> <p><span class="dsq-yahoo-connect dsq-external-launcher"></span></p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="'),
|
|
269
|
+
a.put(settings.media_url),a.put('/images/dsq-loader.gif" /> <p>'),a.put(trans("Connecting to Yahoo")),a.put("</p> </div> <p><small>"),a.put(trans("You might need to disable your popup blocker to sign in.")),a.put("</small></p> </div> "),config.sso&&(a.put(' <div id="dsq-login-sso" class="dsq-tab-content dsq-auth-form" style="display:none !important"> <div class="dsq-connect-msg"> <h3>'),a.put(b.interpolate(trans("Sign in with your %(account)s account"),
|
|
270
|
+
{account:config.sso.name})),a.put("</h3> <p>"),a.put(trans("Click the button below to continue.")),a.put('</p> <p><span class="dsq-sso-connect dsq-external-launcher"><img src="'),a.put(config.sso.button),a.put('"/></span></p> </div> <div class="dsq-remote-authentication" style="display:none !important"> <img src="'),a.put(settings.media_url),a.put('/images/dsq-loader.gif" /> <p>'),a.put(b.interpolate(trans("Connecting to %(account)s"),
|
|
271
|
+
{account:config.sso.name})),a.put("</p> </div> <p><small>"),a.put(trans("You might need to disable your popup blocker to sign in.")),a.put("</small></p> </div> ")),a.put(" </div> </div>"),a.compile()};b.blocks.profileEdit=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-tabbed-modal" id="dsq-profile-edit-modal"> <ul class="dsq-modal-tabs"> '),has_unmerged_users&&(a.put(' <li id="dsq-tab-profile-merge"> <a href="#dsq-profile-merge"> <span></span>'),
|
|
272
|
+
a.put(trans("Merging")),a.put(" </a> </li> ")),a.put(' <li id="dsq-tab-profile-edit"> <a href="#dsq-profile-edit"> <span></span>'),a.put(trans("Profile")),a.put(' </a> </li> <li id="dsq-tab-profile-avatar"> <a href="#dsq-profile-avatar"> <span></span>'),a.put(trans("Avatar")),a.put(' </a> </li> <li id="dsq-tab-profile-services"> <a href="#dsq-profile-services"> <span></span>'),a.put(trans("Services")),
|
|
273
|
+
a.put(' </a> </li> <li id="dsq-tab-profile-notifications"> <a href="#dsq-profile-notifications"> <span></span>'),a.put(trans("Notifications")),a.put(' </a> </li> <li id="dsq-tab-profile-account"> <a href="#dsq-profile-account"> <span></span>'),a.put(trans("Account")),a.put(' </a> </li> <li id="dsq-tab-profile-apps"> <a href="#dsq-profile-apps"> <span></span>'),a.put(trans("Applications")),a.put(' </a> </li> </ul> <div class="dsq-tab-container" style="height:90% !important;"> '),
|
|
274
|
+
has_unmerged_users&&a.put(' <div id="dsq-profile-merge" class="dsq-tab-content"></div> '),a.put(' <div id="dsq-profile-edit" class="dsq-tab-content dsq-auth-form"></div> <div id="dsq-profile-avatar" class="dsq-tab-content dsq-auth-form"></div> <div id="dsq-profile-services" class="dsq-tab-content dsq-auth-form"></div> <div id="dsq-profile-notifications" class="dsq-tab-content dsq-auth-form"></div> <div id="dsq-profile-account" class="dsq-tab-content dsq-auth-form"></div> <div id="dsq-profile-apps" class="dsq-tab-content dsq-auth-form"></div> </div> </div>'),
|
|
275
|
+
a.compile()};b.blocks.commentMessage=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="'),a.put(cls),a.put('" id="dsq-comment-message-'),a.put(comment.id),a.put('"> '),comment.killed?(a.put(" <em>"),a.put(trans("Comment removed.")),a.put("</em> ")):comment.approved?(a.put(" "),a.put(comment.message),a.put(" "),comment.last_modified_by=="moderator"?(a.put(' <p class="dsq-editedtxt">('),a.put(trans("Edited by a moderator")),a.put(")</p> ")):
|
|
276
|
+
comment.last_modified_by=="author"&&comment.has_replies&&(a.put(' <p class="dsq-editedtxt">('),a.put(trans("Edited by author")),a.put(" "),a.put(comment.last_modified_date),a.put(")</p> ")),a.put(" ")):(a.put(" <em>"),a.put(trans("This comment was flagged for review.")),a.put("</em> ")),a.put(" </div>"),a.compile()};b.blocks.popup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-popup-container '),strict&&a.put("dsq-cleanslate "),
|
|
277
|
+
a.put('"> <table> <tbody> <tr> <td class="dsq-popup-tl"></td> <td class="dsq-popup-b"></td> <td class="dsq-popup-tr"></td> </tr> <tr> <td class="dsq-popup-b"></td> <td class="dsq-popup-body"> <div class="dsq-popup-wrapper"> <div class="dsq-popup-title"> <button type="button" class="dsq-popup-close dsq-button-small" style="float:right; color: #fff">'),a.put(trans("Close")),a.put("</button> <h3>"),
|
|
278
|
+
a.put(popupHeader),a.put('</h3> </div> <div class="dsq-popup-content"> '),a.put(popupBody),a.put(" </div> "),footer&&(a.put(' <div class="powered-by"> <a href="'),a.put(settings.disqus_url),a.put('"> <img src="'),a.put(settings.media_url),a.put('/images/embed/disqus-logo-noborder.png" alt="Disqus Comments" style="margin-bottom:-5px;"/> </a> </div> ')),
|
|
279
|
+
a.put(' </div> </td> <td class="dsq-popup-b"></td> </tr> <tr> <td class="dsq-popup-bl"></td> <td class="dsq-popup-b"></td> <td class="dsq-popup-br"></td> </tr> </tbody> </table> </div>'),a.compile()};b.blocks.globalToolbar=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div id="dsq-global-toolbar" class="dsq-clearfix"> <ul class="dsq-global-toolbar-right dsq-clearfix"> '),
|
|
280
|
+
request.is_authenticated&&(a.put(' <li class="dsq-messages"> <div id="dsq-messagesx-toolbar-icon" class="'),messagesx.count>0&&a.put(" dsq-unread "),a.put(' dsq-dropdown-tab dsq-toolbar-item dsq-clearfix" onclick="DISQUS.dtpl.actions.fire(\'messagesx.toggleBar\'); return false;"> <a href="#" class="dsq-message-count dsq-toolbar-label" id="dsq-messagesx-count">'),a.put(messagesx.count),a.put('</a> </div> <div id="dsq-messagesx-toolbar-dropdown" class="dsq-dropdown"> <h4>'),
|
|
281
|
+
a.put(trans("Notifications")),a.put('</h4> <ul class="dsq-inbox" id="dsq-messagesx-inbox"> <li id="dsq-inbox-no-messages">'),a.put(trans("You have no messages")),a.put('</li> </ul> </div> <div id="dsq-alert" class="dsq-alert dsq-alert-hidden"> <div class="dsq-alert-notch"></div> <p>'),a.put(trans("You've received a new rank!")),a.put("</p> </div> </li> ")),
|
|
282
|
+
a.put(" "),context.switches.community_icon&&(a.put(' <li class="dsq-community-box"> <a href="#" class="dsq-toolbar-item dsq-tt" onclick="DISQUS.dtpl.actions.fire(\'community.show\'); return false" title="'),a.put(trans("Expand Community Box")),a.put('"><span class="dsq-toolbar-icon"></span></a> </li> ')),a.put(" "),request.is_moderator&&(a.put(' <li class="dsq-admin-settings"> <a href="#" class="dsq-toolbar-item dsq-tt" onclick="DISQUS.dtpl.actions.fire(\'thread.settings\'); return false;" title="'),
|
|
283
|
+
a.put(trans("Settings")),a.put('"><span class="dsq-toolbar-icon"></span></a> </li> ')),a.put(' <li class="dsq-global-toolbar-dropdown-container"> '),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("globalToolbarDropdown",c))}(),a.put(" </li> </ul> "),forum.thread_votes_disabled||(a.put(' <ul class="dsq-global-toolbar-left dsq-clearfix"> <li class="dsq-like-thread"> <a href="#" id="dsq-like-thread-button" class="dsq-toolbar-item dsq-clearfix '),
|
|
284
|
+
thread.user_vote==1&&a.put("dsq-toggled"),a.put(' dsq-tt" onclick="DISQUS.dtpl.actions.fire(\'thread.vote\', 1); return false;" title="'),a.put(trans("I like this page")),a.put('"> <span class="dsq-toolbar-icon"></span> <span class="dsq-toolbar-label">'),a.put(trans("Like")),a.put('</span> </a> </li> <li class="dsq-dislike-thread"> <a href="#" id="dsq-dislike-thread-button" class="dsq-toolbar-item dsq-clearfix '),
|
|
285
|
+
thread.user_vote==-1&&a.put("dsq-toggled"),a.put(' dsq-tt" onclick="DISQUS.dtpl.actions.fire(\'thread.vote\', -1); return false" title="'),a.put(trans("I don't like this page")),a.put('"> <span class="dsq-toolbar-icon">'),a.put(trans("Dislike")),a.put('</span> </a> </li> <li class="dsq-like-panel"> <ul class="dsq-like-faces dsq-clearfix"> '),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("likeActivity",
|
|
286
|
+
c))}(),a.put(" </ul> </li> </ul> ")),a.put(' </div> <div id="dsq-like-tooltip"> <div id="dsq-share-step-1" class="dsq-share-step"> <h3>'),a.put(trans("Glad you liked it. Would you like to share?")),a.put('</h3> <p class="dsq-tooltip-checkbox"><input type="checkbox" id="dsq-share-thread-facebook" value="Facebook" /><label for="dsq-share-thread-facebook"><span class="dsq-facebook">Facebook</span></label></p> <p class="dsq-tooltip-checkbox"><input type="checkbox" id="dsq-share-thread-twitter" value="Twitter" /><label for="dsq-share-thread-twitter"><span class="dsq-twitter">Twitter</span></label></p> <ul id="dsq-tooltip-actions"> '),
|
|
287
|
+
forum.template.api=="1.0"?a.put(' <li><a href="#" onclick="DISQUS.dtpl.actions.fire(\'thread.share\'); return false" class="dsq-primary-action">'):a.put(' <li><a href="#" onclick="DISQUS.dtpl.actions.fire(\'thread.share.send\'); return false" class="dsq-primary-action">'),a.put(trans("Share")),a.put("</a></li> "),a.put(' <li><a href="#" onclick="DISQUS.dtpl.actions.fire(\'thread.share.cancel\'); return false" class="dsq-secondary-action">'),a.put(trans("No thanks")),
|
|
288
|
+
a.put('</a></li> </ul> </div> <div id="dsq-share-step-2" class="dsq-share-step" style="display:none !important"> <p>'),a.put(trans("Sharing this page")),a.put(' …</p> </div> <div id="dsq-share-step-3" class="dsq-share-step" style="display:none !important"> <p>'),a.put(trans("Thanks!")),a.put(' <a href="#" class="dsq-tooltip-decline" onclick="DISQUS.dtpl.actions.fire(\'thread.share.cancel\'); return false">Close</a></p> </div> </div> '),context.switches.show_unapproved&&
|
|
289
|
+
unapproved.length&&(a.put(' <div id="dsq-unapproved"> <h4> '),unapproved.length>1?(a.put(" "),a.put(b.interpolate(trans("You have %(unapproved)s unapproved comments"),{unapproved:unapproved.length}))):(a.put(" "),a.put(trans("You have 1 unapproved comment"))),a.put(" "),a.put(" </h4> <ul> "),b.each(unapproved,function(b){a.put(' <li><img src="');a.put(b.author.avatar);a.put('"/> ');a.put(b.raw_message.replace(/\n/,""));a.put("</li> ")}),
|
|
290
|
+
a.put(" </ul> <p> "),unapproved.length>1?(a.put(" "),a.put(trans("A moderator needs to approve these comments before they will be published."))):(a.put(" "),a.put(trans("A moderator needs to approve this comment before it will be published."))),a.put(" "),a.put(" </p> </div> ")),a.compile()};b.blocks.recaptcha=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div id="dsq-captcha"> <div id="dsq-captcha-loading"> '),
|
|
291
|
+
a.put(' <img src="'),a.put(settings.media_url),a.put('/images/loading.gif"/> </div> <div id="dsq-captcha-container" style="display:none"> <p>'),a.put(trans("Please type in the following words to finish posting.")),a.put("</p> "),a.put(' <div id="dsq-captcha-form"></div> <button type="button" class="dsq-button">'),a.put(trans("Continue")),a.put("</button> </div> </div>"),a.compile()};b.blocks.messagesxPopup=function(e,d){var a=new b.Builder,
|
|
292
|
+
f=DISQUS.extend({},e,d);with(f)return a.put(" "),message.theme=="notice"?(a.put(" "),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("messagesxNotice",c))}(),a.put(" ")):message.theme=="reply"?(a.put(" "),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("messagesxReply",c))}(),a.put(" ")):message.theme=="achievement"&&(a.put(" "),function(){var c={};b.extend(c,d);b.extend(c,{});a.put(b.renderBlock("messagesxAchievement",c))}(),
|
|
293
|
+
a.put(" ")),a.compile()};b.blocks.likeActivity=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),b.each(thread.voters,function(b){a.put(' <li class="dsq-tt" title="');a.put(b.name);a.put('"><a href="');a.put(b.url);a.put("\" onclick=\"return DISQUS.dtpl.actions.fire('profile.show', null, '");a.put(b.username);a.put("', ");a.put(b.is_moderator);a.put('); return false"><img src="');a.put(b.avatar);a.put('"/></a></li> ')}),a.put(' <li class="dsq-like-activity"> '),
|
|
294
|
+
thread.voters_count>0?(a.put(" "),thread.likes-thread.voters_count>0?(a.put(" "),a.put(b.interpolate(trans("and %(count)s %(other)s liked this."),{count:thread.likes-thread.voters_count,other:lang.pluralize(thread.likes-thread.voters_count,"other","others")}))):(a.put(" "),a.put("liked this.")),a.put(" "),a.put(" ")):thread.likes>0&&(a.put(" "),a.put(b.interpolate(trans("%(count)s %(person)s liked this."),{count:thread.likes,person:lang.pluralize(thread.likes,"person",
|
|
295
|
+
"people")})),a.put(" ")),a.put(" </li>"),a.compile()};b.blocks.threadSettingsPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <span id="dsq-thread-settings-status" class="dsq-options-status"></span> <p>'),a.put(trans("These settings only apply to this thread. To change settings site-wide, visit the main")),a.put(' <a href="'),a.put(urls.settings),a.put('" target="_blank">'),a.put(trans("settings page")),a.put('</a>.</p> <div class="dsq-moderate-options"> <table class="dsq-moderator-settings"> <tr> <td> <h4> '),
|
|
296
|
+
thread.closed?(a.put(' <a href="#" class="dsq-toggle-thread" onclick="return DISQUS.dtpl.actions.fire(\'thread.open\');">'),a.put(trans("Open thread"))):(a.put(' <a href="#" class="dsq-toggle-thread" onclick="return DISQUS.dtpl.actions.fire(\'thread.close\');">'),a.put(trans("Close thread"))),a.put("</a> "),a.put(" </h4> </td> </tr> <tr> <td> <h4>"),a.put(trans("Automatic Closing")),a.put("</h4> <p>"),
|
|
297
|
+
a.put(trans("Do not allow comments after")),a.put(' <input size="3" id="dsq-thread-days-alive" value="'),a.put(thread.days_alive),a.put('" type="text" /> '),a.put(trans("days")),a.put(". "),a.put(trans("Using 0 days will disable this feature.")),a.put('</p> <p class="dsq-form-actions"> <button type="button" onclick="DISQUS.dtpl.actions.fire(\'thread.updateDaysAlive\');" class="dsq-button-small"> <span>'),a.put(trans("Save")),a.put("</span> </button> </p> </td> </tr> <tr> <td> <h4>"),
|
|
298
|
+
a.put(trans("Moderate all comments")),a.put('</h4> <ul class="dsq-moderator-radios"> <li><label><input type="radio" id="dsq-thread-moderate-all" name="moderate_all_comments" value="1" '),thread.moderate_all&&a.put('checked="true" '),a.put("/> "),a.put(trans("<strong>Yes</strong>, moderators must approve all comments before they are published.")),a.put(' </label></li> <li><label><input type="radio" name="moderate_all_comments" value="0" '),
|
|
299
|
+
thread.moderate_none&&a.put('checked="true"'),a.put("/> "),a.put(trans("<strong>No</strong>, comments don't need to be approved before they are published.")),a.put('</label></li> <li><label><input type="radio" name="moderate_all_comments" value="2" '),!thread.moderate_all&&!thread.moderate_none&&a.put('checked="true"'),a.put("/> "),a.put(trans("Use the <strong>default</strong> forum setting:")),a.put(" "),forum.moderate_all?a.put(trans("moderate all comments")):a.put(trans("don't require moderation")),
|
|
300
|
+
a.put('</label></li> </ul> <p class="dsq-form-actions"> <button type="button" onclick="DISQUS.dtpl.actions.fire(\'thread.updateModerateAll\');" class="dsq-button-small"> <span>'),a.put(trans("Save")),a.put("</span> </button> </p> </td> </tr> "),thread.identifiers&&(a.put(" <tr> <td "),forum.reactions_enabled||a.put('class="last"'),a.put("> <h4>"),a.put(trans("Thread information:")),a.put("</h4> <p><strong>"),
|
|
301
|
+
a.put(trans("Shortname:")),a.put("</strong> "),a.put(forum.url),a.put("</p> <p><strong>"),a.put(trans("Thread ID:")),a.put("</strong> "),a.put(thread.id),a.put('</p> <p class="dsq-thread-identifiers"> <strong>'),thread.identifiers.length==1?a.put(trans("Identifier:")):a.put(trans("Identifiers:")),a.put("</strong> "),a.put(thread.identifiers.join(", ")),a.put(" </p> </td> </tr> ")),a.put(" "),forum.reactions_enabled&&(a.put(' <tr> <td class="last"> <h4>'),
|
|
302
|
+
a.put(trans("Manually scan reactions")),a.put("</h4> <p>"),a.put(trans("Are you expecting Reactions for this thread, but do not see them? Click here to tell the system to search again.")),a.put('</p> <p class="dsq-form-actions"> <button type="button" onclick="DISQUS.dtpl.actions.fire(\'reactions.reportMissing\');" class="dsq-button-small"> <span>'),a.put(trans("Scan")),a.put("</span> </button> </p> </td> </tr> ")),a.put(" </table> </div>"),
|
|
303
|
+
a.compile()};b.blocks.moderatorOptions=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),request.is_moderator&&(a.put(' <div id="dsq-thread-settings" class="dsq-thread-settings">'),a.put(trans("Moderator options")),a.put(': <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'thread.settings\');">'),a.put(trans("Settings")),a.put('</a> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'thread.moderatorActions\');">'),a.put(trans("Moderate")),a.put('</a> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'thread.help\');">'),
|
|
304
|
+
a.put(trans("Help")),a.put("</a> </div> ")),a.compile()};b.blocks.subscribeForm=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div style="width:350px"> <div class="dsq-field"> <label for="dsq-subscribe-email">'),a.put(trans("Your email")),a.put('</label> <input type="text" id="dsq-subscribe-email"/> </div> <button type="button" class="dsq-button" onclick="DISQUS.dtpl.actions.fire(\'thread.subscribe\', DISQUS.nodes.get(\'#dsq-subscribe-email\').value);"> '),
|
|
305
|
+
a.put(trans("Subscribe")),a.put(" </button> </div>"),a.compile()};b.blocks.moderateOptionsPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-moderate-options"> <table> '),comment.email&&(a.put(" <tr> <th>"),a.put(trans("Email")),a.put("</th> <td>"),a.put(comment.email),a.put("</td> </tr> ")),a.put(" "),comment.ip&&(a.put(" <tr> <th>"),a.put(trans("IP address")),a.put("</th> <td>"),
|
|
306
|
+
a.put(comment.ip),a.put("</td> </tr> ")),a.put(" <tr> <th>"),a.put(trans("Actions")),a.put("</th> <td> <ul> "),request.moderator_can_edit&&(a.put(' <li> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'comments.edit.new\', '),a.put(comment.id),a.put(');">'),a.put(trans("Edit Comment")),a.put("</a> </li> ")),a.put(' <li> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'comments.delete\', '),
|
|
307
|
+
a.put(comment.id),a.put(');">'),a.put(trans("Delete Comment")),a.put('</a> </li> <li> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'comments.spam\', '),a.put(comment.id),a.put(');">'),a.put(trans("Mark Spam")),a.put('</a> </li> <li> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'comments.blacklist\', '),a.put(comment.id),a.put(');">'),a.put(trans("Add to Blacklist")),a.put("</a> </li> </ul> </td> </tr> </table> </div> <p>"),
|
|
308
|
+
a.put(trans("Go to the full")),a.put(' <a href="'),a.put(urls.moderate),a.put('" target="_blank">'),a.put(trans("moderate panel")),a.put("</a> "),a.put(trans("for more options.")),a.put("</p>"),a.compile()};b.blocks.pageInfo=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),request.is_global_moderator&&(a.put(' <div class="dsq-global-moderator-extras" style="display: block; margin-top: 10px; line-height: 20px; font-size: 14px; list-style-type: none; margin-left: 0;"> <strong>Shortname:</strong> '),
|
|
309
|
+
a.put(forum.url),a.put("<br/> <strong>Thread ID:</strong> "),a.put(thread.id),a.put("<br/> <strong>Thread slug:</strong> "),a.put(thread.slug),a.put("<br/> <strong>Switches (Legacy):</strong> "),context.active_switches?b.each(context.active_switches,function(b){a.put(" ");a.put(b);a.put(", ")}):a.put("<em>none</em>"),a.put("<br/> <strong>Switches (Gargoyle):</strong> "),context.active_gargoyle_switches?b.each(context.active_gargoyle_switches,function(b){a.put(" ");a.put(b);a.put(", ")}):
|
|
310
|
+
a.put("<em>none</em>"),a.put("<br/> "),thread.topics&&(a.put(" <strong>Thread topics:</strong> "),thread.topics.length?b.each(thread.topics,function(b){a.put(" ");a.put(b);a.put(", ")}):a.put("<em>not classified</em>"),a.put("<br/> ")),a.put(" "),forum.packages&&(a.put(" <strong>Packages:</strong> "),forum.packages.length?b.each(forum.packages,function(b){a.put(" ");a.put(b);a.put(", ")}):a.put("<em>no packages</em>"),a.put("<br/> ")),a.put(" </div> ")),a.compile()};
|
|
311
|
+
b.blocks.editProfileSuggestion=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div id="dsq-edit-profile-suggestion" style="display:none"> <p>'),a.put(trans("Thanks for posting.")),a.put(" "),a.put(trans("Would you like to")),a.put(' <a href="#" onclick="DISQUS.dtpl.actions.fire(\'profile.edit\'); return false">edit your profile</a>? </div>'),a.compile()};b.blocks.editArea=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-textarea-wrapper"> <textarea class="dsq-edit-textarea" id="dsq-edit-textarea-'),
|
|
312
|
+
a.put(comment.id),a.put('"> '),a.put(comment.message),a.put(' </textarea> <div id="dsq-edit-iframe-'),a.put(comment.id),a.put('" style="display: none;"></div> </div> <div class="dsq-save-edit"> <button type="button" class="dsq-button" onclick="DISQUS.dtpl.actions.fire(\'comments.edit.send\', '),a.put(comment.id),a.put(', this);"> <span>'),a.put(trans("Save Edit")),a.put("</span> </button> </div>"),a.compile()};b.blocks.retweetsPopup=function(e,d){var a=new b.Builder,
|
|
313
|
+
f=DISQUS.extend({},e,d);with(f)return a.put(" <p><strong>"),a.put(reaction.author_name),a.put(":</strong> "),a.put(reaction.body),a.put('<br/><a href="'),a.put(reaction.url),a.put('">'),a.put(reaction.url),a.put('<br/></p> <ul class="dsq-retweets"> '),b.each(reaction.retweets,function(b){a.put(' <li><a href="');a.put(b.url);a.put('">by ');a.put(b.author_name);a.put("</a></li> ")}),a.put(" </ul> "),a.compile()};b.blocks.mediaEmbedPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},
|
|
314
|
+
e,d);with(f)return a.put(" "),media.type==1||media.type==5?(a.put(' <p><img src="'),a.put(media.location),a.put('" onload="DISQUS.popup.adjustPosition();"/></p> <p><a href="'),a.put(media.location),a.put('" target="_blank">'),a.put(trans("Original")),a.put("</a></p> ")):media.type==2?(a.put(' <div style="width:480px !important;height:385px !important;"> <object width="480" height="385"> <param name="movie" value="http://www.youtube.com/v/'),a.put(media.location),a.put('&hl=en_US&fs=1&"></param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param> <embed src="http://www.youtube.com/v/'),
|
|
315
|
+
a.put(media.location),a.put('&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed> </object> </div> ')):media.type==4&&(a.put(' <p><img src="'),a.put(media.metadata.medium),a.put('" onload="DISQUS.popup.adjustPosition();"/></p> <p><a href="'),a.put(media.metadata.url),a.put('" target="_blank">'),a.put(trans("Original")),a.put("</a></p> ")),a.compile()};b.blocks.postbox_login_options_dropdown=function(e,d){var a=
|
|
316
|
+
new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <ul class="dsq-login-buttons"> '),b.each(loginOptions,function(b){a.put(" ");b.enabled&&(a.put(" "),b.userDefined?(a.put(' <li class="dsq-login-button"> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\''),a.put(b.action),a.put('\');"> <img src="'),a.put(b.button_url),a.put('"> </a> </li> ')):(a.put(' <li class="dsq-login-button dsq-login-button-'),
|
|
317
|
+
a.put(b.name),a.put('"> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\''),a.put(b.action),a.put("');\"></a> </li> ")),a.put(" "));a.put(" ")}),a.put(' <li style="clear:both"></li> </ul>'),a.compile()};b.blocks.unapprovedCommentMessage=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" "),mustVerify?(a.put(" "),a.put(trans("You must finish verifying your Disqus Profile email address in order for your comment to appear here.")),
|
|
318
|
+
a.put('<br/><br/> <a href="'),a.put(urls.verify_email),a.put('">'),a.put(trans("Click here to verify your email address")),a.put("</a> ")):(a.put(" "),a.put(trans("Your comment must be approved by a moderator before appearing here.")),a.put(" ")),a.compile()};b.blocks.userVotesPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" <ul> "),b.each(users,function(b){a.put(' <li class="dsq-liked-by-user"> <a href="');a.put(settings.disqus_url);a.put("/");
|
|
319
|
+
a.put(b.username);a.put('" target="_blank"> <img src="');a.put(b.avatar_url);a.put('" alt=""/> ');b.display_name?a.put(b.display_name):a.put(b.username);a.put(" </a> </li> ")}),a.put(" </ul> "),anon_likes>0&&(a.put(" <p>"),a.put(b.interpolate(trans("and %(anon_likes)s more"),{anon_likes:anon_likes})),a.put(" "),anon_likes<2?(a.put(" "),a.put(trans("person"))):(a.put(" "),a.put(trans("people"))),a.put(" "),a.put(" </p> ")),a.compile()};b.blocks.helpLogin=function(e,
|
|
320
|
+
d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put("<p>"),a.put(trans("In order to properly log you in, your browser needs to accept cookies from all domains.")),a.put("</p><p>"),a.put(trans("Open up Settings > Privacy. Then, make sure <strong>Accept cookies from sites</strong> is checked. Also, make sure <strong>Accept third-party</strong> is checked as well.")),a.put("</p><p>"),a.put(trans("After closing your settings, you may try logging in again.")),a.put("</p><p>"),a.put(trans("Optional: If you would rather add an exception just for Disqus, click “Exceptions...” and add disqus.com as an allowed domain.")),
|
|
321
|
+
a.put("</p>"),a.compile()};b.blocks.moderatorHelpPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put('<ul class="dsq-thread-help"> '),forum.reactions_enabled&&(a.put(' <li> <a href="#" onclick="return DISQUS.dtpl.actions.fire(\'reactions.reportMissing\');">'),a.put(trans("Report missing reactions")),a.put("</a> <p>"),a.put(trans("Are you expecting Reactions for this thread, but do not see them? Select this option to tell the system to search again.")),a.put("</p> </li> ")),
|
|
322
|
+
a.put(' <li> <a href="http://help.disqus.com/forums/" target="_blank">'),a.put(trans("Knowledge Base")),a.put("</a> <p>"),a.put(trans("Our Knowledge Base has the answers to the most common questions.")),a.put("</p> </li></ul>"),a.compile()};b.blocks.messagesxAchievement=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(' <div class="dsq-messagesx-icon"> '),message.formatted.icon?(a.put(' <img src="'),a.put(message.formatted.icon),a.put('" alt="" /> ')):
|
|
323
|
+
(a.put(' <img src="'),a.put(settings.media_url),a.put('/img/disqus-bar/icons/trophey.png" alt="" /> ')),a.put(" </div> <p> "),a.put(message.formatted.text),a.put(" </p>"),a.compile()};b.blocks.loadingPopup=function(e,d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put('<div style="text-align: center; padding: 5px 0 10px 0;"> <img src="'),a.put(settings.media_url),a.put('/images/loading.gif" alt=""/></div>'),a.compile()};b.blocks.blacklistPopup=function(e,
|
|
324
|
+
d){var a=new b.Builder,f=DISQUS.extend({},e,d);with(f)return a.put(" <p> "),a.put(trans("Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist")),a.put(": </p> "),user.registered&&(a.put(' <div class="dsq-blacklist-option"> <input id="dsq-blacklist-username" type="checkbox" checked="true" value="'),a.put(user.username),a.put('"/> <label for="dsq-blacklist-username"><strong>'),a.put(trans("Username")),
|
|
325
|
+
a.put("</strong>: "),a.put(user.username),a.put("</label> </div> ")),a.put(" "),comment.email&&(a.put(' <div class="dsq-blacklist-option"> <input id="dsq-blacklist-email" type="checkbox" checked="true" value="'),a.put(comment.email),a.put('"/> <label for="dsq-blacklist-email"><strong>'),a.put(trans("Email address")),a.put("</strong>: "),a.put(comment.email),a.put("</label> </div> ")),a.put(' <div class="dsq-blacklist-option"> <input id="dsq-blacklist-ip" type="checkbox" onclick="DISQUS.nodes.get(\'#dsq-blacklist-ip-warning\').style.display=\'block\';" value="'),
|
|
326
|
+
a.put(comment.ip),a.put('"/> <label for="dsq-blacklist-ip"><strong>'),a.put(trans("IP address")),a.put("</strong>: "),a.put(comment.ip),a.put('</label> <p id="dsq-blacklist-ip-warning" style="display:none"> '),a.put(trans("Note: Blocking this person's IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort.")),
|
|
327
|
+
a.put(' </p> </div> <div class="dsq-blacklist-submit"> <span> <input id="dsq-blacklist-retroactive" type="checkbox" value="1"/> <label for="dsq-blacklist-retroactive">Also apply to existing comments</label> </span> <button class="dsq-button" type="button" onclick="DISQUS.dtpl.actions.fire(\'comments.blacklist\', '),a.put(comment.id),a.put(', true);"> '),a.put(trans("Add to Blacklist")),a.put(" </button> </div>"),a.compile()}});
|