From c382eb2d9b8e4b0a2b904a438b5078fbd45f3a26 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Sat, 28 Jun 2008 22:49:01 +0000 Subject: [PATCH] commited entire static.scrapy.org tree --HG-- rename : sites/dev.scrapy.org/htdocs/images/logo.jpg => sites/dev.scrapy.org/htdocs/logo.jpg extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%4021 --- sites/dev.scrapy.org/htdocs/asc.png | Bin 0 -> 222 bytes sites/dev.scrapy.org/htdocs/attachment.png | Bin 0 -> 280 bytes sites/dev.scrapy.org/htdocs/changeset.png | Bin 0 -> 294 bytes sites/dev.scrapy.org/htdocs/closedticket.png | Bin 0 -> 297 bytes sites/dev.scrapy.org/htdocs/collapsed.png | Bin 0 -> 218 bytes sites/dev.scrapy.org/htdocs/css/trac.css | 2 +- sites/dev.scrapy.org/htdocs/desc.png | Bin 0 -> 222 bytes sites/dev.scrapy.org/htdocs/dots.gif | Bin 0 -> 50 bytes sites/dev.scrapy.org/htdocs/draft.png | Bin 0 -> 4953 bytes sites/dev.scrapy.org/htdocs/edit_toolbar.png | Bin 0 -> 1449 bytes sites/dev.scrapy.org/htdocs/editedticket.png | Bin 0 -> 241 bytes sites/dev.scrapy.org/htdocs/envelope.png | Bin 0 -> 180 bytes sites/dev.scrapy.org/htdocs/expanded.png | Bin 0 -> 227 bytes .../dev.scrapy.org/htdocs/expander_normal.png | Bin 0 -> 241 bytes .../htdocs/expander_normal_hover.png | Bin 0 -> 212 bytes sites/dev.scrapy.org/htdocs/expander_open.png | Bin 0 -> 223 bytes .../htdocs/expander_open_hover.png | Bin 0 -> 209 bytes sites/dev.scrapy.org/htdocs/extlink.gif | Bin 0 -> 90 bytes sites/dev.scrapy.org/htdocs/feed.png | Bin 0 -> 638 bytes sites/dev.scrapy.org/htdocs/file.png | Bin 0 -> 285 bytes sites/dev.scrapy.org/htdocs/folder.png | Bin 0 -> 357 bytes .../htdocs/guide/basic-workflow.png | Bin 0 -> 9028 bytes .../htdocs/guide/original-workflow.png | Bin 0 -> 5688 bytes sites/dev.scrapy.org/htdocs/ics.png | Bin 0 -> 347 bytes sites/dev.scrapy.org/htdocs/imggrid.png | Bin 0 -> 205 bytes sites/dev.scrapy.org/htdocs/js/blame.js | 102 +++++++ sites/dev.scrapy.org/htdocs/js/diff.js | 113 +++++++ sites/dev.scrapy.org/htdocs/js/expand_dir.js | 116 ++++++++ sites/dev.scrapy.org/htdocs/js/folding.js | 26 ++ .../dev.scrapy.org/htdocs/js/ie_pre7_hacks.js | 7 + sites/dev.scrapy.org/htdocs/js/jquery.js | 11 + .../dev.scrapy.org/htdocs/js/keyboard_nav.js | 61 ++++ sites/dev.scrapy.org/htdocs/js/noconflict.js | 3 + sites/dev.scrapy.org/htdocs/js/query.js | 278 ++++++++++++++++++ sites/dev.scrapy.org/htdocs/js/search.js | 59 ++++ sites/dev.scrapy.org/htdocs/js/suggest.js | 144 +++++++++ sites/dev.scrapy.org/htdocs/js/trac.js | 75 +++++ sites/dev.scrapy.org/htdocs/js/wikitoolbar.js | 93 ++++++ sites/dev.scrapy.org/htdocs/loading.gif | Bin 0 -> 2209 bytes sites/dev.scrapy.org/htdocs/lock-locked.png | Bin 0 -> 358 bytes .../htdocs/{images => }/logo.jpg | Bin sites/dev.scrapy.org/htdocs/main-bg.jpg | Bin 0 -> 371 bytes sites/dev.scrapy.org/htdocs/milestone.png | Bin 0 -> 245 bytes sites/dev.scrapy.org/htdocs/newticket.png | Bin 0 -> 227 bytes sites/dev.scrapy.org/htdocs/parent.png | Bin 0 -> 228 bytes sites/dev.scrapy.org/htdocs/python.png | Bin 0 -> 6111 bytes .../dev.scrapy.org/htdocs/topbar_gradient.png | Bin 0 -> 350 bytes .../htdocs/topbar_gradient2.png | Bin 0 -> 309 bytes sites/dev.scrapy.org/htdocs/trac.ico | Bin 0 -> 3638 bytes sites/dev.scrapy.org/htdocs/trac_banner.png | Bin 0 -> 2161 bytes .../dev.scrapy.org/htdocs/trac_logo_mini.png | Bin 0 -> 689 bytes sites/dev.scrapy.org/htdocs/vgradient.png | Bin 0 -> 159 bytes sites/dev.scrapy.org/htdocs/wiki.png | Bin 0 -> 233 bytes 53 files changed, 1089 insertions(+), 1 deletion(-) create mode 100644 sites/dev.scrapy.org/htdocs/asc.png create mode 100644 sites/dev.scrapy.org/htdocs/attachment.png create mode 100644 sites/dev.scrapy.org/htdocs/changeset.png create mode 100644 sites/dev.scrapy.org/htdocs/closedticket.png create mode 100644 sites/dev.scrapy.org/htdocs/collapsed.png create mode 100644 sites/dev.scrapy.org/htdocs/desc.png create mode 100644 sites/dev.scrapy.org/htdocs/dots.gif create mode 100644 sites/dev.scrapy.org/htdocs/draft.png create mode 100644 sites/dev.scrapy.org/htdocs/edit_toolbar.png create mode 100644 sites/dev.scrapy.org/htdocs/editedticket.png create mode 100644 sites/dev.scrapy.org/htdocs/envelope.png create mode 100644 sites/dev.scrapy.org/htdocs/expanded.png create mode 100644 sites/dev.scrapy.org/htdocs/expander_normal.png create mode 100644 sites/dev.scrapy.org/htdocs/expander_normal_hover.png create mode 100644 sites/dev.scrapy.org/htdocs/expander_open.png create mode 100644 sites/dev.scrapy.org/htdocs/expander_open_hover.png create mode 100644 sites/dev.scrapy.org/htdocs/extlink.gif create mode 100644 sites/dev.scrapy.org/htdocs/feed.png create mode 100644 sites/dev.scrapy.org/htdocs/file.png create mode 100644 sites/dev.scrapy.org/htdocs/folder.png create mode 100644 sites/dev.scrapy.org/htdocs/guide/basic-workflow.png create mode 100644 sites/dev.scrapy.org/htdocs/guide/original-workflow.png create mode 100644 sites/dev.scrapy.org/htdocs/ics.png create mode 100644 sites/dev.scrapy.org/htdocs/imggrid.png create mode 100644 sites/dev.scrapy.org/htdocs/js/blame.js create mode 100644 sites/dev.scrapy.org/htdocs/js/diff.js create mode 100644 sites/dev.scrapy.org/htdocs/js/expand_dir.js create mode 100644 sites/dev.scrapy.org/htdocs/js/folding.js create mode 100644 sites/dev.scrapy.org/htdocs/js/ie_pre7_hacks.js create mode 100644 sites/dev.scrapy.org/htdocs/js/jquery.js create mode 100644 sites/dev.scrapy.org/htdocs/js/keyboard_nav.js create mode 100644 sites/dev.scrapy.org/htdocs/js/noconflict.js create mode 100644 sites/dev.scrapy.org/htdocs/js/query.js create mode 100644 sites/dev.scrapy.org/htdocs/js/search.js create mode 100644 sites/dev.scrapy.org/htdocs/js/suggest.js create mode 100644 sites/dev.scrapy.org/htdocs/js/trac.js create mode 100644 sites/dev.scrapy.org/htdocs/js/wikitoolbar.js create mode 100644 sites/dev.scrapy.org/htdocs/loading.gif create mode 100644 sites/dev.scrapy.org/htdocs/lock-locked.png rename sites/dev.scrapy.org/htdocs/{images => }/logo.jpg (100%) create mode 100644 sites/dev.scrapy.org/htdocs/main-bg.jpg create mode 100644 sites/dev.scrapy.org/htdocs/milestone.png create mode 100644 sites/dev.scrapy.org/htdocs/newticket.png create mode 100644 sites/dev.scrapy.org/htdocs/parent.png create mode 100644 sites/dev.scrapy.org/htdocs/python.png create mode 100644 sites/dev.scrapy.org/htdocs/topbar_gradient.png create mode 100644 sites/dev.scrapy.org/htdocs/topbar_gradient2.png create mode 100644 sites/dev.scrapy.org/htdocs/trac.ico create mode 100644 sites/dev.scrapy.org/htdocs/trac_banner.png create mode 100644 sites/dev.scrapy.org/htdocs/trac_logo_mini.png create mode 100644 sites/dev.scrapy.org/htdocs/vgradient.png create mode 100644 sites/dev.scrapy.org/htdocs/wiki.png diff --git a/sites/dev.scrapy.org/htdocs/asc.png b/sites/dev.scrapy.org/htdocs/asc.png new file mode 100644 index 0000000000000000000000000000000000000000..486b7315902f8bd4d7c953f4b6e65e56cb171c50 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^96-#@!VDyjmkZ_sDdu7)&kzm{j@u9Y9{{=h0X`wF zuV25udiCm=GiUbi-@kI@%BvF}%mYfXmIV0)GyDevnG0$lvp5SpB8wRqxITa|qthCb z89+hB64!{5;QX|b^2DN42H(WwqWs*{l*~j0x6Go{^8BLgVg+M8gZG(+KwS(Po-U3d z6?2jk5`q#E5(Elagw)RQ@bu{EG4Y(y(_`b&($n+f@p52bFt%pi>BpeA4ycF0)78&q Iol`;+0Q%iTa{vGU literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/attachment.png b/sites/dev.scrapy.org/htdocs/attachment.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d212439158aa08cbf451a557a5f987c8f9f32a GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OSkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$J2=EDU_3`lu3JQvdh=`4i&B@6r zD=X{j>Y6ZN!tB|zckbMI^5n^j7cbtrb?e!)XYb#?2Wt9c9la7r36uo+1^-6{3=foJ zC4q85o-U3d6}NoOy%us1~z``8;h%n3^2IkhduF<%B(nCd+l_ z8BIL1SLy72C-HC1@v1R1mYqp&3=!6>U2O2HTqI!GSKc-TW`-;FZ2S>7J>~#SXYh3O Kb6Mw<&;$Szcyo3D literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/changeset.png b/sites/dev.scrapy.org/htdocs/changeset.png new file mode 100644 index 0000000000000000000000000000000000000000..31c0356a3eaf6530f6b0a619de10c0435f063fff GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=%3?!FCJ6-`&%*9TgAsieWw;%dH0CIH$d_r9R z|NsB}`}fbEKfiwc`u_dCQJ%$lJ@YOqh8GisJ_kT-2&KSz^iDzCfqFQ+$H@l{dS%G?wQ)VhpiNUHw{cfmfcHzTAeo1w0HN XdU@A;Uma-!G?T&8)z4*}Q$iB}7AA96 literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/closedticket.png b/sites/dev.scrapy.org/htdocs/closedticket.png new file mode 100644 index 0000000000000000000000000000000000000000..43f7a844739b0875c3ea281d8c4720585d6ead4f GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=%3?!FCJ6-`&%*9TgAsieWw;%dH0CFV)d_r6q z(ilEGtvtQJ`Tmiv|NsAMPBma?VEFm9RrsysT%a0`k|4iep!k0VAl7XOQ3Z-|7I;J! zGca%qfiUBxyLEqnf{G=s5hcO-X(i=}MX3zFiOEIzxv43ci3)C+MXBZaMcKs)CVB?1 z)YMCXip4;Ror_WvOEUBG6hbm{QyB~m^$pGS4NNZIvWx<%aP@R?45^rtT)@c8mTZt< zpwHeU#8#}jRH-!4g5QPJc*bhBmDAM>W=vO`(r(B+m1Tum!;?cdZuBh($ literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/collapsed.png b/sites/dev.scrapy.org/htdocs/collapsed.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2ac198ca926247cafe5781160345335e6ecb9b GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s3?%0jwTl2LmUKs7M+Sy#H?H_c7y{LCMyhNC3NFBr%L0fu|cdn18jCY~;iAr-fh64KM!8QIF*+{`Ry zH#W9Tzopr0F_rm$N&HU literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/dots.gif b/sites/dev.scrapy.org/htdocs/dots.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6ae052feca96879d63b3046e7c6416029a4104f GIT binary patch literal 50 ycmZ?wbhEHbWMg1sXkcLQ0RzRKER0+Xj0`#qKmd|qVB+kNUyxAUB{7SY!5RSL`w0vH literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/draft.png b/sites/dev.scrapy.org/htdocs/draft.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6a67a558ed2bdcdb41198c87a22356ed9c5901 GIT binary patch literal 4953 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 Dz8sso literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/editedticket.png b/sites/dev.scrapy.org/htdocs/editedticket.png new file mode 100644 index 0000000000000000000000000000000000000000..9d12a9107496c42238d5e88b28cc31e515a9f060 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=%3?!FCJ6-`&VkNE-CC){ui6xo&c?uz!xv30> zhWdu)`UWPKZ&^kGRj`+M`ns}TWn~rPG?=%NClV;cS>O>_%)r3)0fZTy)|kuy3bLd- z`Z_W&Z0zU$lgJ9>iw5|Fxc>kD|NfD#pI=*n0w11MGNdt_Uf}G@|9&fw&sY-V7tG-B z>_!@pW8mrH7*cU7IiZ2U(I7z}h>3}nZQ&M^tt##o{4R`@3l}D{J@*EQ)2w a5@RSV=9tQw!!85V%i!ti=d#Wzp$PzX`$GZ% literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/envelope.png b/sites/dev.scrapy.org/htdocs/envelope.png new file mode 100644 index 0000000000000000000000000000000000000000..74676b3591399efac27bd50752582e0a4c89175f GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^d_c^_!2~3^cmJ3Gq^dn#9780g_D;OWdBlLnxm0y> zg>e1@Pp1zGZ8?t^H-+u1me<=S!@Km?rlZb>PPWhd7{LCMyhNC3NFBr%L0fu|cdn18jww^AIAr-e=PI?M47;rE-iU|Mv z|9Hhsi&Dc2@)zopr04+CG*#H0l literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/expander_normal.png b/sites/dev.scrapy.org/htdocs/expander_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..fb580df4799b8fb46774929a9dc35eae23152927 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ-0U~39{!9Z2Bze2LF#HF>1$&oI28wVNctjR6 zFbJqIFz^d8>OYHK4-{lC@$_|Nzs|}cDkJ~(|9WMhP@SiXV~E7%((@a6ofUalE;P4I z^3>SN=zNf61Cy}1$&oI28wVNctjR6 zFbJqIFz^d8>OYHK4-{lC@$_|Nzs|}cD$A1*b$<^~DACi!F+}2WY5zvv0}4DW=kqjX zwoJO4z%-+ccSe)vjD`>uLBE*2@19K8-TPhCNuclI6rtpvR2B!#qaLg?iltUs&k0KE zS+;-cw;YCw_bazPnj>6$c#iS!lD|#cEfgF6)YdTub?bb7G0XQk&@u*3S3j3^P6<>&kwel|@w6#33SG2`H4~>Eak7ak=%}Zq5S+JS-QApJwi9 zZM(z~b?|Ton%;;$H0Cuiz;%Y5V<>&kwel|@umA*yL}JWwdk)5S4F;&N->MqXz{0q6S{1MaEZ z>%V=#d!vAKz~7LGLLDO0zg164KKHZ7@Q3(q6VJriXZ~=es%@Jn!s`$ea#b}&EwptB yL&p1uB7PsZ|A{nkvvh2|_OsIv-Z;U{r{1G;!hSv1_l-e9R?r(sbyf6w-C~C iW^qtb;}P&^T6xm*|}}X#DrZUFJ!$n?2U?1cc(n^WR{AnUn|?4v6Eup;-G5bmpC z^^yqi*T(6~nDe%0;%WfwfF|y00O_D)^x@O}c>wp(jqRg4?7Ly+wSexzkl&g@|8xNE zjRxU+0Q0Fv`1JAczS|@_z5P%nhpK=@b-oP=XfFhk_FRb0MU&} z_xI-aok;lN$<~}w{DlDNwTbt=d+l}r5o+-100009a7bBm000XT000XT0n*)m`~Uy| zA#_DpbW?9;ba!ELWdKcKV{&h8Wn^h#AVz6&Wp{6KYjYqpE->mQCv^Y-02XvbSad^j zWnpw_Z*Cw|X>DZyF)=SOG%qkVFJbqX0002BNkl2kqf7>41uJhqZrVrxsS zp-oFmWWw|##F~f*!_c1pf%s&&|6RXs+Q@q6mM%w0);=qXk9p#n79^n%25*op@C44+ zd_HCYJ;qp^;*5#n<9ecC>e2oI%xbZ%plf@~B!O1x3rD*~HP>}@pMtlXg)yh$&l&zb zOecjuPRGRXBqY&)!VBj!zyAN0u{+?bk}5S}&fZ6>*)q@wQC*TK{q2>OA{5<*)O(SK Y3%(E?N{`}1Cj=OonVA_UBqU7O zTmAjh(=-KV^Dpn7?iS;6U<-KiZY_g?vhLeW-abqbPu|7OWZB>mwTLIgMc|Cbd0*`- zjNLIlI!wlwxKDTIH1N1OI;ticEZ(zc&kgny0YPSkg&!Gb$?W`fW~T9S83_pq-^-^@ bJBct9m+PL3-Ctt}bOeK^tDnm{r-UW|XWVVB literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/folder.png b/sites/dev.scrapy.org/htdocs/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..d26c06cfc3d84b08274b7971b850a60256c83998 GIT binary patch literal 357 zcmV-r0h<1aP)fgTS<;d>k%H`+e>g&|)>Duw_-tzJ2@$>NW_44=j?fm}xOh+Io(CHZf0004W zQchC>@;6 zZ$uA*=w*o@dhfyG^F60fbDqCu&fK~8b!X{DUkQ*G^2EcUd%{uBgiI&Gqz(y~vpg-?a+PwTO#*s#+u?Ne>gDX6Kb>5Suy z?|)-DDddU+qG{2p?HHAF5tc1zy+0P~fJmS18LD_)OTs@Ynq1fK-U(zMS^t=&Nqi5L;Z~ zz5o~S2;P*6{<})Y`yS{x9WgZf78}^%LFb~+=E#hhQAuSt7_9^D!!S!y@g(M_-X(r= z6eM)816hZ7zhaNM%uEVKyo^Inu10Z30Hbe*z3JIoc^>aI#ya3uNVntAbE|aRy1@C5 z#zDl;!RRe-Z4zi{UWlmg2nsl4ws@Nqn3xe&b|v$k-9?xFcPhfVz>M2ly8KR&><&D# z@^fMS+qd!+FXLu%=rb(z?d~Q;dH)s@AhJa9qb~$%T8D~Km~t@sl1_FKBX{TS0M@TR zZQr&3ux)aqBlb8ihwtmwtbBJ;!SzRzSEiOy6uU0w_lG-=pJqR90q(3MqVn>3pH#;R zb$kMUYR$UEZQi@LoH)d&-`AD${cC~3A#EnrtI^zoA%t(Z*ZNE8-NJ{tSpAePlXBIg zH67nS?tYd%v7XciEhap^DP9ew*B8D&IbW!{UjQ}3ikpC4TEpMY-;*RWz0T-P>8PYz z9W;}+Il42e=eMWB=!AQf3i9Ml+5XnU{6Zp7tO=)eXO9#4I` zU`qaUpqiT3wHPTdZ{$1<5gsD9#RSyorAt0R`);GS!o_g4bBfX) zEBN*d+o_pDzM{?cso6u+C?+}7T}poNS*~Q8+BB=hJ4L#Lkmb2fr_3_cf|1|7dYlUl z|G6B^MB8^W|HBc+#;V~y-V25Zto>n+3ox^sx=gFNWF`G_!dr6=kKKO6+M*CvdI3MP z?`}TTvaz7US@9UJRrwtEe1_}919p>{W@xCsvZTQ<^NXuE@x^(!N9*=}(ZTPU7Fr)( z{2I)~A#@q9ZG8-2>h8)o`FmZ`5pDUiuquEgzpt4!ci8(Rg1VnUy~MIZU;THNp_tt9 z^4Y7Pbj3cFg;JNS;Z+j@m2VG^^=F`a2SSeIcfnHMo@r7=p@~P2pfNh}qaU?J)}J); zf>h#}9L-wYQ-4K)CBWw#wTXElIfOdNT}}+Z%R20HpN%MKR<8jf)=BKLVV?0KhaK;) z5$Hm4h;`z-%otLTGnjSxVhI*#td#=nIfLm?({WJa=Z{O9nGy-jg)ThTfl2QBVT6wX z8-x()Z<8RSLlMZ4#j_A_@=h~sH+Gl{=Zd|DOI&o7Bh02*nVg3P-+2}SvYcv$?|x(t z29bWdfrb-xmbEBpWColZW62f}OLZn_vik{Q28P%vM+0BRfJ|LyPD89MRFE3uxB6ok=ld<2eqy5`(!KFyEx zDCYe9n^=!88e=fg3)yqqEO99+>Nz%4Fw(ro<;R9>NwMr@e)M&|l!rW{4(pgf*miI^nTE?uv_C(glNRXfLup&;1##7lm z+N=dIEBU3Q+@U>>$<_KwFwl~zw zw)0Ez$#}@}yX|Dp5hi=ds=nI58lzCYiT6;7a>Zv^ls82nkNCQ8p zexdFvOuUhTVER2@$S|FQGGRJo0_1mfm;nc)A@B%Z!ezW5xI%6jgpMUk1A|d3(3yQT zsJrd38u~R^9Y~JyfI1$i!Q8Ee<C9BIpoSLL8H+Qgv{csP%3C3rB7!3;>* z6Px811&9gXP{a-V1hhiZoekNWqB5_pi!-KKB7M1DI~Wb~po_^7Kt-esSoDZ<4?j;A zzcPk+@1-ZZjIaf_?1`@)*l@l8=I$#2^!Q9zg@`+NIFfv)Uc&b>8%}|03K?TpVvYY} z%ho!jc9aB+l_`l(?i)+7im4bX{_Ac(d<9**23xt>cg^VDuPI_qi1<@8E2M>k4|T&x zr{hZJqNh%WnD{a(y~I}ePkY7n#n?|GS1ucw#EP|-YE3nW#G@le7mrtVj-#l7!6Ct6 zM@k_sTiD4g?4(tX*>BhKppYcZyR;_TsRFeVaeeg*PA0V9zSm0C9P}04<~}^-81Nj$ z>3g{f($fp;ccr}itXE^Ubh;_d4+sTySawz4B}3r3_VQJIFo=0a zG^}U3$A|vykYZslTM|zywWwdzJ6UM(MxYiW@UQOYqPBjnk8Wm^mF*(8+mD9~ZGN~g z-|M?09dqf9<&`l8*MdJ^+Lr#pD(&jbWg7mQpA|TJRQpIae00G!Z=~|@RycUAPc{9v z;G?Pdlu5rnP}!xb`=c`GAqjoc*VXBoVtH`T&*PjaS~&?n==ows$t_j!$Mh>XlZ z*)`vk1;6Yx-#;`mB91#z=h+2xJgP?r$nR3kM018%S$h; z-mxUYgwTx zD{_8BEP_e|IqtrV+<59B?2TkY1S8@%@s!InG@(~rJtC~}l!R!N6)gBh?`6=;* zW4?#)!gHZg7h?2XSC? z?KZz`Piq7U#B3y>=ik^y?F_{-MD@Q%eUT7&472R8+bx|NbKtSzex~wF_IPE#11u%* zko^}zcAL-Qc%j%B8!|im@|R2*?1(5i zh~oQ9l%mtEgSFg_+U&LDVZFb7`wH!3Zr~uXk~1f?lAGx<5~}A2W}7QqEc69fyiDb; z5)+O%6H2JQtX1v&x(axZP?sNBjpxhc1?9)HESy51#QD+jh@98txocL(hhyGXA!F+U z`@7eUJ~MfZ=90GnXxF^#Q)##8E_}X(4^8QN&hr! zc#jSmy~}Mh$Lj5+xI!Sm2Xdy9q>)_u7!Dhhdop1l?ZtP~C#!VxvG?#qGE zkQ*YHnSFb)uZBRqdg}wU+C6FJMFcR;20iwNzZr0S24!Q@fXkE^wp(a^2PG}d%G@%| zyTGcUu`aN$;uG9%{Hlo^UBav(us-vB#cneS%yWwamaLugxi_Dn53?a;2v{BoLkb zmmwYHPVvHswSCUXaOW`PpGPNR7FZ?oUhopL23)Os{Klzp-zk3vfo?TkXcfazHzS^k zT4PNh%^r7kxfWzswKa28YGyD(d#=4u*eg0>I|ySl0D+X{O*rau){4E_!g=rCY}c0K zg-_8Hk`nWSp1g`<#kfqV0*~jYa{ju=bE)I9yll!}Sej|HJ_8-ZSE^2Tc3@4TE z0zS89zVDp#;*D&$NqMXB;l&gH_#{bMmN>KpajBjsvAOqJ@ub$BAOl$G1I{OeI7ku( z%3i7xpwJ$Z7rGMY?(xKaudgOKnoZ2S1jQ%+9|aT_ub})o%GaTXXjduiM%mw_$Si{> zmh`(`8JQhGDMg85hh1V*j_1V+`9&2$mx{f3F%LZo8-3t|o7_@Vlrsy7rdPK2jIv&> z6eRKVEW0nkNQEkH?whE127`bCcf0%Eci_9I*f+Ms32l zkX*pAOSqQJXSI+UEN(`+hY!SXRM0bz<;SQ|;@^3~zXcT*>YoP~;bx;&8?|Vlk&QP2*vcekme2S@vqLtaEdrCvN+}~A&Sdr&D2W|m-$jaLRSD8n=;H^ z0gYFvj`-P|zG=5p+n&kbiUH$_qbtt}g3ZeA{ z_V{>4#qJI|-OKrt$jTla!CtL_%J9rivme1t?Z90N1FgnfA5~EL`5r@%|%j#(K+S6qA z#tYDzHT74nuxJx)A!O~HgCL1zMfA;s%nlU@R6>{yHTk^uxVo;-5%*>Ai zDS~92r1mp0i;QavWN8EDjV}Stbj`%=`Hm3aynX;qr4~(0j9C4X7_qlC#p{~I}0ZpE7kTTwf5?f57%F#l3<}f1zF{u;*KA$2QfPM?i)RPpWj{Mdb6kU zh6QEI-SUlvol-IV-M|KVy=>JxfCz=g|0mi-mF!xUrkJyto0;6jQhJcX-@Wvv ze!*FJLCk19{cPejNcM-H!f^81)V!+iqqC3Cl_i_I0wtfNPd=qjd`QxQFR{eT_wowz z18Or@eU{h4f4Sgx8IPfolQRf3j30fG0)(pym7I- zvm-+>Kfu}vYyHvp_PLei(of>`%NL6rQyQw9rVn7K(8ptS{X+1>)`N|n&vz~J=<0Y1 zxNeS^#x=dUA;}P&QWp2oQ>n(UqwhmT$0?HJ`%zIK%gq1jXHZk*w!d{9%f+Z=ed-)i zSVjiI6h)$(qs)<`IFKU032_y6Men{oTl@CkrZ{Sph}?;0+O0Eyyet8&|MU*vz+6F% zTPzGDHhlBPX|Khdx!EsS7xHoaW=a8m{iIVsODp{xaaKgjPKDZp5Q37g{w3BC@95wm0$ z!JHCrM5@P)qP&`GxIdH3q7?fp|ClcnZc3tW#(dzwNK-vrNMA>&m`u7B*2BRuRHCb< zG?k_s$;45SfFN->rgI1qL?NflRs_SZB8$;X%XTRz8UkP;+Ou!xF{8oq0-+GIqj#XJ z&E}$@=Eiyl-!yMR<}$H))8H6<4eh>v$c9Swg$>5{&cx5F2Ob3T zE4bf3U`3^rIN_wJIN*INKNCitcBU#1!Ko|(P;(H%s0|(1iE><>Dw#=upt4=hK$-x? zKpVP>-%B!-o5>s)x#&by4T|}TvmP^~&`G7ns{|9kKuX1);WW&!GLzEmV1vxMKu47| ztYU8I0wu_q1EU=MLQ{-lV82UPIS7KIUJgvPxpqUtLL0nB4YIEfw`eVl?<|PmIM?L)`Nnf{FGG9;Z z&Nzl;;5`;vyx&yAqlpY`4Ne*$;A6o}`K6ED8Sq51|I>TJTA7%;w30oVO`dNv1Sv8g2+l5Cul#I=aFdM2-q_cInr8@UNz!f z)fL)Pu-Nn)WK3JJ?yv@D&;G0QB+Yk<$IY;ZlrZkudDBb%%!648YSQ}7u-`gMK0~r3 zuw6|M^s)6y^FiCLHyC-TPd~@#pS1U>GLFaPGyL`OEq~ST4*kCeAGX{HVWc9pCuuBG zEiNWxypmf`;1^o|pnOrGw!d(&MBS{(QqzN`#f6m<$Fi}a8(Yt*4?}Bawb0|dBfA9g z@Cqu15aPqHh79CT&&+ z{$V=oxhY|#OO_``2Do=9(EVgOBz(U$QM;Otpa+X)vctWRY+-@cOfN~GO;gx7kmzL5 zY>6TL#j<7;MUmG4}{ z>0#dk-TS}r79(&}g+$}zQwR28K`c}}6#N`_L7@5b`8>g`?PjQi{zTKBrv5-#DHD+RM73tQkVV7%qbVfG9*1&Z znDVd6XrdRg{s4=&jBF;-W*_!|fVl)cDaYhJWZYwjnVV_Tg^iwDm&iY&=qzYeNb;z0MrzZ~417pVN4`qYAZJCU6} zv#&lf#B|ttRBBz}LeKKr+gnX}o`#F+;&-=L90V z`_YT)EdAj}Ki^I%GvM|@rired7u$WJzyD*sZ2o+p)4fCMuCL{s>+L~{cGI^017h=| z=CoUhryo6j=jB;l8Zo{&Ki0|R=DHz&eE9v*TB~8nnwm2hFWb0yf7D)9ezN%HpIMH2 z=bKxR<^RSxUo^7lW%~R?UY&yZzlR+}rip9#P?NM`zmNPqDExY6&sxJeV87oz|Ki2} zgb`%;%fP!cS)_|ohP%G4g?iDUXS6e*>s!)RMpFFZJ z&dWe(=jRX$j;)1tcVI}1BK$rqcqxt!wK~?9%h>Z3qz)RV|Fn*0qUZvtjcI_;Q8g@H ziUeOSBi{i68f^gkBN1@n!7m0w+|(_)7S2KN?%0qbPRxM?*AtQnZQ-zl?@kP9;?7MY znEz3uN;P%>lSkDEW;qQ?+RB^8TWT_szWj>U}4ve=b=h-1sIMwAwY_Fny4 zwJvP&cWdu;nt20_xBd?)E{^tluX%t>JC!XydDSGM<3jm%Y^~VH);X4*ex&{=Ff7GZp; zFmwO2y;r2Q;NKq_txt7_h3W30-u>#@q*~*RZ2RJt91CQ1_>J$XQHWu7N$4Lh<>+HWS>`M5{kZf_Dc!Z}dvR>C zze(KTVV1p|%&^s4llQUM%f9)e2v-W`fU=HX$5;z8W(o`G@S`lXP){3kAtX_O|9~8X z_V@Jr|4n9gnhrclTSKfUA3d2N>x33G<^m3fqpJ(166d1mh|rz#@iEf9&kS+kn8mp9 z3o71H3`}77QXJ!QGzH;ZNv#ABjho*fXV+K+nk0P`6~M3Z0PBuB8rc3GvO)Ag9$hnKu>KU z0X%1kEQjaKkuk*iX*VSD4d!|Pdw>MBg?Qn)eq;<`{+AmV z`7*#JV3%r1n0_W11t-kUxG|)1{Id|7Cmdiv9V9Tk+=%psRUnM77A!uVwx3cxu%VBZ zYH@7r9a2O0DzEYuj~EHB*W&F!64e$v*D8hLWH-K_rBnt{EiTcHH|FM+n9;Wtvp!gu z3K*!sj6Wp2t#yuG=0U3}2+a&WPJ3121N{COK+$vKE%7rnJ*!%{|6eUY)5se~UgC{0 z(wyMO9aL1qJNQ|~&1Bl6x=~#+I^rF)qzs7sLZw9!O~NJp`1Ym7Ihs0#;V@ zjZ#PlrX$Gr=Otn~JiG9H#@-7!hZJHx{E-R2r{W3+rM1eI*^5v@r^CHVhdkYfUs`5B zudB+NU0OD&Zb#E5gdFr-?O))YF9k_R}wPPWi56*DoinUSzg zmY~bb{2zzdq!*PdIVO@{Seo9z+5eMcxM-ijn0rg?ezAKB)9OabHc-@8 z4EC8bhDeGQKQ5)2EsRviG+6%+lh|Jqn4ffLmLMP6?b_SGn`e(GlpGm&U|isN8$RA8 zWu0EVtUf^>$hZsJul45U^N{N`@Uac4tRt7{MbVstH4IL9b z>j;&}q>r2@AjjlVT;MU}#h$)&q!qByPJgh@q@tBBCYS|o&0}(EQlHw#Q|<*I1hUst z803hK!h*l1FQT8J{tY!v7a;zhNi< literal 0 HcmV?d00001 diff --git a/sites/dev.scrapy.org/htdocs/guide/original-workflow.png b/sites/dev.scrapy.org/htdocs/guide/original-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..8213652267ea95812a4235687d6c0e692f6b92e0 GIT binary patch literal 5688 zcmYkAc{J4T+sCb$F~!(MMIl*YY{`+Z z!@|OfJXysc_LIma>T1f#mU!FJ-uRfw9Le5c%pFbD?A2&*wA^Ko!nPJD2c=@`ObmuO zJInO&V3w9L#l)EU`b;8`$-+Wnl1iDSVoWh2ljy4^m5Tx^H&V&_1eY zbp{;!T1WWQ_m<-3Id@{PUF4($lgX8^z+vlR*eFBRp{l)pS`lMYz`=Q#ja?kVG?zZw z0R!y<*a#WWvNd#~SRAiyh=`mPtP9d-#i7hw+cQ=xFN@v9c4)d#O)Aeu1>~S^?8bN> zHEapj91QY+8aFwu{z6+-KC6YOMt->coBM4?UoNig@%v?*n^d#>pti%JWP=qlv5oeR z7^<<7APZNguDYoD}l*#}Ki<5kN_(g!2K&0R|g_k;+ zQ*ACt?~`ZErG`5Fbh7<*W!mbAruA60xtVS6IWtC18?3;OIJKrB@_zb3ORSNjODns@ z`&q@jFa8ZvK>Jp(nf`*yx_XUU)1-WKJkiU&H9n)i2K&~*8dS#LpD7P%O^dFUkQIF} zu{?w3j9>LJ?k+ffqtW5e_{fMwwD#|-fJBIZ!m`8CoTwcCY$oHs;Yy>U}rM85h5wf#LW)P*6B3?&tEXwO!6KQ2V_x>l@2 zjHfv&v%1uK=E97XeIKoPHG14K?JO6_AbDlF^{PA9?HmYIiS=Y=9qBND^j;%F1#`5f zCy2Z_gHf0N_%7Nl8WUwD(;eFxn|KOmlSzF!qIs#PwiX@u$u~^*F;-ar;FO78WwP7C z5V|cV?y82DQEU0anNqbHi-Ycpdy;Q&q#@18LwI)@3X?9?~$83V7og3K=f)5J0J7oc=BbkMSv{E;|z z#~zff;ptcbLz?V7Q+i{7_?c{VogQ;)TENR6*<+J+{a|!9b9ZH8>u+ud=IRJF?>Lxj zb>TH}#`7|+mp4B3>o>7wYi*QRLBk6Ixj|}cqhjTkHa6A(E(u4i@I;z?m0Hnjz!I)0 z-;J?=D+a+@U1$+rNaSCn1FYq~Ib1GCboU8iikt+@C)R_tt>Dt|2o8d*iA@>~Tg&1h zgw99YM68`fqtchjb>|_VDYh=fl_1q^Q<|+;0y3~$S4tfY_YJk6nRx{x)2()!3F%}X z+n1rb(0qE@!b=P{b7`JGSEs6E4;Se%l5Iu1 z;xz-zR(7l?bsWSblt9w2(J_@B=I&@_sv3l;eUwokJS4jUZFu^7hgd&?5er>dW-QNA zvw!KkGB>u4H$pa!Z+(NMkJOWR|DmSmbe4$K5VXlg!1{U$rj!FZn>B#>yqwU5dA`2W zOWmOy{7C-D3?PkC8Qw7TV}$AMa%R~Km5tKSvhK6jP*$b!dXES}?k(?a)$u{LNg*Mg z)bRI1f0i}zwzT!$gTH>$IW0U!>LW8xq;ti`M?|HiHbmp0R)pl{w`}z|MR=I5J{oC~ z+Iv9f+;ffl@h00R%}wRnOpCY3ae#1cdx=;ILFB|0 zja`u)Z9NSB2d4NW#BfIJp7APIYV;)^L#CwF8D{SskOSl$@t{1~Am0_kd|e|Tz(aya zaPX3()N&$AHt*1+8=lRj2obvy)Vu_MY7ckf`Gz!xrYp4BL=+oAA@7A-gIpxlQP%H7 zfacUQAbHIFNbx}v{PD}JCy1pbuAt9`2-(zuU0uIn(3C_j)SUnhjBu|uckU^1*qRg!Pu6m`FFoI|=<3yDj{l{$RmBGxPDxe{dmEc3LVoED%%|P2i=C91 z{!`4mFnd&XDe_X>_0rZ)@A{pLXqpY1YE2?Y9ZsB2tKQt225)#r0A{!nzpfb|s+2Ie zV~9N0JpRrdnry>ULX5|-bG+~b`=DJto?zz1igfE1RXb3?zv7**`x=PM>|S|k0TH=8 zFFdgUj|$vz$`{g93Wi-tcWpYZ0p8Gq&>h^~*Pnj+aCZld*q0Gz9kw_I^ln69ILB>&#W zaFl!Pg~P3!>h8XR@jx#c$Mlv#{)cT)5HR-Xo{k9L)sid_;`v5uM#T-EoFz~;@f&H-t6?mN&+naD37(u|xQSZ0In>*btX^qcTkj@5kF$|;|w zunGp~P=odNhEvsmrre>3IBxBwdAW-Eu#e%A`=#OjY8`>#1g-TTQbrh9P>(0FUNz{g z>et7g;?QURouB*k^W*saLFmA63gd>%)6d&e@BrkB(8Hg>*ee>J%|9dPHqsX28@_K~4QT!>mpUDJWf(r% zyxp&8S;3$$bDX*wgW;CE5K*jFShZDUZ!s-+Z1wb!16!w|P#)*!3ozPKi^T`euUa+k zvrb=DZmE$g3h?yJkwHEC_O4S`QncOk4@)sA3VURvTYoka`Bk0VIUjS6^x!9=TH#h| zL|4nH8{+fZ$EqQ}{)8NkqwMmNTi>p)yj@{R&42rdpL?f#P!fh~{D7BzNyVGfKn=qq z|9VodXFs=$?mULLF!7TZX|_s=S+PxIHb7py{wh)~LnYk3@eXp8Y>r#@)7N0G z;V{_O)ly&}59N%|Xy8NkN*nH8J)y`V*o37h_6X{j&X09@&2Owm5Ci0#UO<+mc!0~G zK>QL^2`kk8PI$sx6suy0u(P6YAg$DjUq7Se6SVThr=N-Ab)Vb|XW>Gg`RDM7o>wyP zBq%8~GKsJ)+XDvfzGgGw4TU}_L4nyHZJ=Ej{l(n64G~V9ZX3o3 zXVXH0x|as7LkaKa7S%Y1r#30eqo~IJ;vws~MO#{O)6tXq%fPgX;-H@(w%1OiGYhAP zf5)4D^I!%|oP7E#xMN1({a4@uBIgL*mSLSf1DmLg900Km39mDSJSL5MNTrcX-%>;ROz>}Qi+yQL%r?Ck;j>~=oSc5qmn`D!&vxf^89$htBQYiKmg$1t2 zHGg^7Ia_af1PZQOU2x)qJszFJUPoU)p*g~;J{R3CKaCpB_R&{9#02r8pN|gm4Xl|d zs0xMZ;hfH*i#4WxJ*g!~Ar0kCuxbZu0B{llnrm4Z%HR|@_2>w8Y=+;O(rKS-2^}-9w_WntcFR|eN9I`Ho5i(t zwV4m7{&vYfn4(_O;mXDtpD%y>c%`23JMx-b!o@Cb3xg}_+jaLo771`uWYrw@WLBKry1+FvPPc6feE~NN z&556)kW+~q*3 zKLN?g+ULPW$o;Y>4U&C6MfMBjNy;}A+eg{jIZR^~rONals~0`x&`z&jD>HM1g`b<} zhwq(XBi*&leP?N+Rn&l_KC*~=de_Xk&&m1M6?A{g@?4h2?ETL_jW{~k^VRNwFHCdi zmw%~pafNAS|GiX;kV}bnjp@+)wkw0*EiM(0D#5p?4@Z z#4G09^7O@WIgV6zu+v#PKcKDO?EuL=8+FBuf_UMJhwjMz>A2!oZ$A#b$h zu$uJS;d`UsNAoAM0KWTtefe7H`cT49g}zfqm22MJ>d{P?Gw0_b$_*JalT zw_<>$G+o#{+eD;P6b85VXi|yMe{QH7hP$44z0P4UPkj33T_t+0vJ#=L4IBKu?cM1ox4+N=^p5O^GLx>{OP|z+*s88x?g0t7rN#BbN0u8XrpLE$; zTbUph+G7HoVD#g^`)Qo+AD}-qIrOd|xR9k;9M6IfLP6K8p!J;j@iDLsYxgcL{=LhQbV$?23@OV3TFKHUhv*b4}VVwEx~Si$;F8>++W_1%IT}gr z*beVPnrJ9=qU2bVeHLbmOzzedhFw+%Prp&U?|ky+wT{PsndL{KRWoD zBQ~?0zF&0ncr8Co-nop&=HI0$hi2Ek9e;UJgMDdM>@LFU3Bx@{U=e9`o|Q)g9hDS9 zw5KrEihs6>&}Mg5fu%ztC}TGPcR%eM?g2~3r64Sgo1h9T+?^5zr4ufAMq;HhLj+vd z&}NA08clFy+^r}3TY?Y?^rH-3T3rBo)O{{*5hQ4wr*9q z=(?4Q(H#>?h$U<2_1? zrb{+>33~ShbMq!}P~U|_RD4B=VYv#Ni_V>}Md3AayR0R&Lm@6z55!K^g-+~K@Wjf+ zU#}C7X6>(yubarCJ)q}K;QaiL z_~QSvXEEuo);!$GbC?dQzS}*7GIrB!qI>uYTmRTku+;EvebV34=`&`#+xl8j6pJap zu}jdZ7|O9nN#5-ps(Aj}-`J0&(6%CB+lmi09Vp8yvsgqGsux`=%mOGvoSg#mB;uG{ z1_|NZr#wn$|H}Ir=KPalWkR2OBIpbAFPwK24VXDQlFgDB;BYv1 zd-XT_AKy=Dd}@IA{3|-RIx0dmif|S7dEi-lR5Lm&etrRWj+KmCKR!aLC*e!3_*J{f z#Y4L?pVF<3UsXN)v}vFjHxVRGj{>iPDTjVGn!#2WpdoKxAWLkbH1zbxV=P1S^yQ-T zd*bvsEdlTXw!l=ge$q03c&G&?hQ;)C{X4RI@*yV?);N$eC(}d*COKXGev;iAzmw@J Oi max_w) { + message_w = max_w; + var borderw = (3+8)*2; // borderwidth + padding on both sides + message.css({width: message_w - borderw + "px"}); + } + + var row_offset = $(row).offset(); + var left = row_offset.left + row.offsetWidth - message_w; + message.css({display: "block", top: row_offset.top+"px", left: left-2+"px"}); + } + + function hide() { + /* Hide commit message */ + message.css({display: "none"}); + + /* Remove highlighting for lines of the current revision */ + $("table.code th."+message_rev).each(function() { + $(this.parentNode).removeClass("hilite") + }); + } + + if (message_rev != rev) { // fetch a new revision + if (message_is_visible) { + hide(); + } + message_rev = rev; + highlight_rev = message_rev; + + $.get(url + rev.substr(1), {annotate: path}, function(data) { + // remove former message panel if any + if (message) + message.remove(); + // create new message panel + message = $('
').css("position", "absolute") + .append($('
') + .append($('').click(hide))) + .append($('
').html(data || "(no changeset information)")) + .appendTo("body"); + + // workaround non-clickable "Close" issue in Firefox + if ($.browser.mozilla) + message.find("div.inlinebuttons").next().css("clear", "right"); + + show(); + }); + } else if (message_is_visible) { + hide(); + } else { + show(); + highlight_rev = message_rev; + } + + /* Highlight all lines of the current revision */ + $("table.code th."+highlight_rev).each(function() { + $(this.parentNode).addClass("hilite") + }); + + }); + }); + } + +})(jQuery); diff --git a/sites/dev.scrapy.org/htdocs/js/diff.js b/sites/dev.scrapy.org/htdocs/js/diff.js new file mode 100644 index 000000000..14f8bf9b4 --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/diff.js @@ -0,0 +1,113 @@ +(function($){ + + function convertDiff(name, table) { + var inline = table.className == 'inline'; + var ths = table.tHead.rows[0].cells; + var afile, bfile; + if ( inline ) { + afile = ths[0].title; + bfile = ths[1].title; + } else { + afile = $(ths[0]).find('a').text(); + bfile = $(ths[1]).find('a').text(); + } + if ( afile.match(/^Revision /) ) { + afile = 'a/' + name; + bfile = 'b/' + name; + } + var lines = [ + "Index: " + name, + "===================================================================", + "--- " + afile.replace(/File /, ''), + "+++ " + bfile.replace(/File /, ''), + ]; + var sepIndex = 0; + var oldOffset = 0, oldLength = 0, newOffset = 0, newLength = 0; + + for (var i = 0; i < table.tBodies.length; i++) { + var tBody = table.tBodies[i]; + if (i == 0 || tBody.className == "skipped") { + if (i > 0) { + if (!oldOffset && oldLength) oldOffset = 1 + if (!newOffset && newLength) newOffset = 1 + lines[sepIndex] = lines[sepIndex] + .replace("{1}", oldOffset).replace("{2}", oldLength) + .replace("{3}", newOffset).replace("{4}", newLength); + } + sepIndex = lines.length; + lines.push("@@ -{1},{2} +{3},{4} @@"); + oldOffset = 0, oldLength = 0, newOffset = 0, newLength = 0; + if (tBody.className == "skipped") continue; + } + var tmpLines = []; + for (var j = 0; j < tBody.rows.length; j++) { + var cells = tBody.rows[j].cells; + var oldLineNo = parseInt($(cells[0]).text()); + var newLineNo = parseInt($(cells[inline ? 1 : 2]).text()); + if (tBody.className == 'unmod') { + lines.push(" " + $(cells[inline ? 2 : 1]).text()); + oldLength += 1; + newLength += 1; + if (!oldOffset) oldOffset = oldLineNo; + if (!newOffset) newOffset = newLineNo; + } else { + var oldLine; + var newLine; + if (inline) { + oldLine = newLine = $(cells[2]).text(); + } else { + oldLine = $(cells[1]).text(); + newLine = $(cells[3]).text(); + } + if (!isNaN(oldLineNo)) { + lines.push("-" + oldLine); + oldLength += 1; + } + if (!isNaN(newLineNo)) { + tmpLines.push("+" + newLine); + newLength += 1; + } + } + } + if (tmpLines.length > 0) { + lines = lines.concat(tmpLines); + } + } + + if (!oldOffset && oldLength) oldOffset = 1; + if (!newOffset && newLength) newOffset = 1; + lines[sepIndex] = lines[sepIndex] + .replace("{1}", oldOffset).replace("{2}", oldLength) + .replace("{3}", newOffset).replace("{4}", newLength); + + /* remove trailing   and join lines (with CR for IExplorer) */ + for ( var i = 0; i < lines.length; i++ ) + if ( lines[i] ) + lines[i] = lines[i].replace(/\xa0$/, ''); + return lines.join($.browser.msie ? "\r" : "\n"); + } + + $(document).ready(function($) { + $("div.diff h2").each(function() { + var switcher = $("").prependTo(this); + var name = $.trim($(this).text()); + var table = $(this).siblings("table").get(0); + if (! table) return; + var pre = $("
").hide().insertAfter(table);
+      $("Tabular").click(function() {
+        $(pre).hide();
+        $(table).show();
+        $(this).addClass("active").siblings("span").removeClass("active");
+        return false;
+      }).addClass("active").appendTo(switcher);
+      $("Unified").click(function() {
+        $(table).hide();
+        if (!pre.get(0).firstChild) pre.text(convertDiff(name, table));
+        $(pre).fadeIn("fast")
+        $(this).addClass("active").siblings("span").removeClass("active");
+        return false;
+      }).appendTo(switcher);
+    });
+  });
+
+})(jQuery);
diff --git a/sites/dev.scrapy.org/htdocs/js/expand_dir.js b/sites/dev.scrapy.org/htdocs/js/expand_dir.js
new file mode 100644
index 000000000..223eefb40
--- /dev/null
+++ b/sites/dev.scrapy.org/htdocs/js/expand_dir.js
@@ -0,0 +1,116 @@
+// Enable expanding/folding folders in TracBrowser
+
+(function($){
+  var FOLDERID_COUNTER = 0;
+  var SUBFOLDER_INDENT = 20;
+  
+  // enableExpandDir adds the capability to folder rows to be expanded and folded
+  // It also teach the rows about their ancestors. It expects:
+  //  - `parent_tr`, the logical parent row (`null` if there's no ancestor)
+  //  - a `rows` jQuery object matching the newly created entry rows
+  //  - `qargs`, additional parameters to send to the server when expanding
+  
+  window.enableExpandDir = function(parent_tr, rows, qargs) {
+    // the ancestors folder ids are present in the parent_tr class attribute
+    var ancestor_folderids = [];
+    if (parent_tr)
+      ancestor_folderids = $.grep(parent_tr.attr("class").split(" "), 
+                                  function(c) { return c.match(/^f\d+$/)});
+    rows.each(function () {
+      var a = $(this).find("a.dir");
+  
+      if (a.length) { // then the entry is a folder
+        // create new folder id
+        var folderid = "f" + FOLDERID_COUNTER++;
+        this.id = folderid;
+        $(this).addClass(folderid);
+  
+        // add the expander icon
+        a.wrap('
'); + var expander = a.before(' ').prev(); + expander.attr("title", "Expand sub-directory in place") + .click(function() { toggleDir($(this), qargs); }); + } + + // tie that row to ancestor folders + if (parent_tr) + $(this).addClass(ancestor_folderids.join(" ")); + }); + } + + // handler for click event on the expander icons + window.toggleDir = function(expander, qargs) { + var tr = expander.parents("tr"); + var folderid = tr.get(0).id; + + if ( tr.filter(".expanded").length ) { // then *fold* + tr.removeClass("expanded").addClass("collapsed"); + tr.siblings("tr."+folderid).hide(); + expander.attr("title", "Re-expand directory"); + return; + } + + if ( tr.filter(".collapsed").length ) { // then *expand* + tr.removeClass("collapsed").addClass("expanded"); + tr.siblings("tr."+folderid).show(); + // Note that the above will show all the already fetched subtree, + // so we have to fold again the folders which were already collapsed. + tr.siblings("tr.collapsed").each(function() { + tr.siblings("tr."+this.id).not(this).hide(); + }); + } else { // then *fetch* + var td = expander.parents("td"); + var td_class = td.attr("class"); + var a = expander.next("a"); + var depth = + parseFloat(td.css("padding-left").replace(/^(\d*\.\d*).*$/, "$1")) + + SUBFOLDER_INDENT; + + tr.addClass("expanded"); + // insert "Loading ..." row + tr.after(''); + var loading_row = tr.next(); + loading_row.children("td").addClass(td_class) + .attr("colspan", tr.children("td").length) + .css("padding-left", depth); + loading_row.find("span.loading").text("Loading " + a.text() + "..."); + + // XHR for getting the rows corresponding to the folder entries + $.ajax({ + type: "GET", + url: a.attr("href"), + data: qargs, + dataType: "html", + success: function(data) { + // Safari 3.1.1 has some trouble reconstructing HTML snippets + // bigger than 50k - splitting in rows before building DOM nodes + var rows = data.replace(/^]+>/, "").split(""); + if (rows.length) { + // insert entry rows + $(rows).each(function() { + row = $(this+""); + row.children("td."+td_class).css("padding-left", depth); + // make all entry rows collapsible but only subdir rows expandable + enableExpandDir(tr, row, qargs); + loading_row.before(row); + }); + // remove "Loading ..." row + loading_row.remove(); + } else { + loading_row.find("span.loading").text("").append("(empty)") + .removeClass("loading"); + // make the (empty) row collapsible + enableExpandDir(tr, loading_row, qargs); + } + }, + error: function(req, err, exc) { + loading_row.find("span.loading").text("").append("(error)") + .removeClass("loading"); + enableExpandDir(tr, loading_row, qargs); + } + }); + } + expander.attr("title", "Fold directory"); + } + +})(jQuery); diff --git a/sites/dev.scrapy.org/htdocs/js/folding.js b/sites/dev.scrapy.org/htdocs/js/folding.js new file mode 100644 index 000000000..0f16a2de1 --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/folding.js @@ -0,0 +1,26 @@ +(function($){ + + $.fn.enableFolding = function(autofold) { + var fragId = document.location.hash; + if (fragId && /^#no\d+$/.test(fragId)) { + fragId = parseInt(fragId.substr(3)); + } + + var count = 1; + return this.each(function() { + var t = $(this).text(); + $(this).text(""); + var trigger = $(this).append("
").children(); + trigger.text(t); + + trigger.click(function() { + if (fragId == count) { fragId = 0; return; } + $(this.parentNode.parentNode).toggleClass("collapsed"); + }); + if ( autofold ) + trigger.click(); + count++; + }).css("cursor", "pointer"); + } + +})(jQuery); \ No newline at end of file diff --git a/sites/dev.scrapy.org/htdocs/js/ie_pre7_hacks.js b/sites/dev.scrapy.org/htdocs/js/ie_pre7_hacks.js new file mode 100644 index 000000000..a2701adba --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/ie_pre7_hacks.js @@ -0,0 +1,7 @@ +jQuery(function($) { // onload + $('select').bind('focusin', function() { + this.tmpIndex = this.selectedIndex; + }).bind('focus', function() { + this.selectedIndex = this.tmpIndex; + }); +}); diff --git a/sites/dev.scrapy.org/htdocs/js/jquery.js b/sites/dev.scrapy.org/htdocs/js/jquery.js new file mode 100644 index 000000000..74cdfee17 --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/jquery.js @@ -0,0 +1,11 @@ +/* + * jQuery 1.2.3 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $ + * $Rev: 4663 $ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>",""]||!f.1f("<9M")&&[1,"<73>",""]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>",""]||!f.1f("<4v")&&[2,"<1O><1U>",""]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>",""]||!f.1f("<7e")&&[2,"<1O><1U><6V>",""]||E.14.1d&&[1,"1x<1x>",""]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K im[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{})) \ No newline at end of file diff --git a/sites/dev.scrapy.org/htdocs/js/keyboard_nav.js b/sites/dev.scrapy.org/htdocs/js/keyboard_nav.js new file mode 100644 index 000000000..9719888e4 --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/keyboard_nav.js @@ -0,0 +1,61 @@ +(function($){ + var SELECTED_FILE_ELEM = null; + var ENABLE_KEY_NAV = true; + + $(document).keydown(function(event) { + if (!ENABLE_KEY_NAV) + return true; + var selection = SELECTED_FILE_ELEM; + switch (event.keyCode) { + case 74: // j + if (selection == null) { + selection = $('#f0'); + } else { + do { + selection = selection.next(); + } while (selection.length > 0 && selection.css('display') == 'none'); + } + break; + case 75: // k + if (selection == null) { + selection = $('#f0'); + } else { + do { + selection = selection.prev(); + } while (selection.length > 0 && selection.css('display') == 'none'); + } + break; + case 13: // Enter + case 79: // o + if (selection != null) { + var expander = selection.find('.expander'); + if (expander.length > 0) { + expander.click(); + } else { + window.location = selection.find('a.file').attr('href'); + } + } + return false; + break; + default: + return true; + } + if (selection.length > 0) { + if (SELECTED_FILE_ELEM != null) + SELECTED_FILE_ELEM.removeClass('focus'); + selection.addClass('focus'); + SELECTED_FILE_ELEM = selection; + } + return false; + }); + + $(function() { + $('a,input,select,textarea,button') + .focus(function(event) { + ENABLE_KEY_NAV = false; + }) + .blur(function(event) { + ENABLE_KEY_NAV = true; + }); + }); +})(jQuery); diff --git a/sites/dev.scrapy.org/htdocs/js/noconflict.js b/sites/dev.scrapy.org/htdocs/js/noconflict.js new file mode 100644 index 000000000..8e4a663c2 --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/noconflict.js @@ -0,0 +1,3 @@ +jQuery.noConflict(); // jQuery is now removed from the $ namespace + // to use the $ shorthand, use (function($){ ... })(jQuery); + // and for the onload handler: jQuery(function($){ ... }); \ No newline at end of file diff --git a/sites/dev.scrapy.org/htdocs/js/query.js b/sites/dev.scrapy.org/htdocs/js/query.js new file mode 100644 index 000000000..a8b97d96c --- /dev/null +++ b/sites/dev.scrapy.org/htdocs/js/query.js @@ -0,0 +1,278 @@ + +(function($){ + + window.initializeFilters = function() { + + // Bail early for Konqueror and IE5.2/Mac, which don't fully support dynamic + // creation of form controls + try { + var test = document.createElement("input"); + test.type = "button"; + if (test.type != "button") throw Error(); + } catch (e) { + return; + } + + // Removes an existing row from the filters table + function removeRow(button, propertyName) { + var tr = getAncestorByTagName(button, "tr"); + + var mode = null; + var selects = tr.getElementsByTagName("select"); + for (var i = 0; i < selects.length; i++) { + if (selects[i].name == propertyName + "_mode") { + mode = selects[i]; + break; + } + } + if (mode && (getAncestorByTagName(mode, "tr") == tr)) { + // Check whether there are more 'or' rows for this filter + var next = tr.nextSibling; + if (next && (next.className == propertyName)) { + function getChildElementAt(e, idx) { + e = e.firstChild; + var cur = 0; + while (cur <= idx) { + while (e && e.nodeType != 1) e = e.nextSibling; + if (cur++ == idx) break; + e = e.nextSibling; + } + return e; + } + + var thisTh = getChildElementAt(tr, 0); + var nextTh = getChildElementAt(next, 0); + next.insertBefore(thisTh, nextTh); + nextTh.colSpan = 1; + + thisTd = getChildElementAt(tr, 0); + nextTd = getChildElementAt(next, 1); + next.replaceChild(thisTd, nextTd); + } + } + + var tBody = tr.parentNode; + tBody.deleteRow(tr.sectionRowIndex); + if (!tBody.rows.length) { + tBody.parentNode.removeChild(tBody); + } + + if (propertyName) { + var select = document.forms["query"].elements["add_filter"]; + for (var i = 0; i < select.options.length; i++) { + var option = select.options[i]; + if (option.value == propertyName) option.disabled = false; + } + } + } + + // Initializes a filter row, the 'input' parameter is the submit + // button for removing the filter + function initializeFilter(input) { + var removeButton = document.createElement("input"); + removeButton.type = "button"; + removeButton.value = input.value; + if (input.name.substr(0, 10) == "rm_filter_") { + removeButton.onclick = function() { + var endIndex = input.name.search(/_\d+$/); + if (endIndex < 0) endIndex = input.name.length; + removeRow(removeButton, input.name.substring(10, endIndex)); + return false; + } + } else { + removeButton.onclick = function() { + removeRow(removeButton); + return false; + } + } + input.parentNode.replaceChild(removeButton, input); + } + + // Make the submit buttons for removing filters client-side triggers + var filters = document.getElementById("filters"); + var inputs = filters.getElementsByTagName("input"); + for (var i = 0; i < inputs.length; i++) { + var input = inputs[i]; + if (input.type == "submit" && input.name + && input.name.match(/^rm_filter_/)) { + initializeFilter(input); + } + } + + // Make the drop-down menu for adding a filter a client-side trigger + var addButton = document.forms["query"].elements["add"]; + addButton.parentNode.removeChild(addButton); + var select = document.getElementById("add_filter"); + select.onchange = function() { + if (select.selectedIndex < 1) return; + + if (select.options[select.selectedIndex].disabled) { + // Neither IE nor Safari supported disabled options at the time this was + // written, so alert the user + alert("A filter already exists for that property"); + return; + } + + // Convenience function for creating a