From 92a461de0d59980a586adb61eeb3e1d5443374fb Mon Sep 17 00:00:00 2001 From: hjulienne <hanna.julienne@gmail.com> Date: Fri, 29 Nov 2019 14:24:06 +0000 Subject: [PATCH] add filter imputation quality --- .../_autosummary/jass_preprocessing.doctree | Bin 65769 -> 66856 bytes .../doctrees/_autosummary/modules.doctree | Bin 2652 -> 2652 bytes doc/_build/doctrees/environment.pickle | Bin 39457 -> 37654 bytes doc/_build/doctrees/index.doctree | Bin 50353 -> 47663 bytes doc/_build/html/.buildinfo | 2 +- .../html/_autosummary/jass_preprocessing.html | 287 ++++++----- doc/_build/html/_autosummary/modules.html | 45 +- doc/_build/html/_modules/index.html | 41 +- .../jass_preprocessing/compute_score.html | 47 +- .../jass_preprocessing/dna_utils.html | 41 +- .../_modules/jass_preprocessing/map_gwas.html | 106 ++-- .../jass_preprocessing/map_reference.html | 67 +-- .../jass_preprocessing/save_output.html | 41 +- doc/_build/html/_sources/index.rst.txt | 5 +- doc/_build/html/_static/basic.css | 92 +++- doc/_build/html/_static/doctools.js | 7 +- .../html/_static/documentation_options.js | 290 +---------- doc/_build/html/_static/jquery.js | 6 +- doc/_build/html/_static/searchtools.js | 54 ++- doc/_build/html/genindex.html | 50 +- doc/_build/html/index.html | 456 ++++++++---------- doc/_build/html/objects.inv | Bin 556 -> 545 bytes doc/_build/html/py-modindex.html | 52 +- doc/_build/html/search.html | 41 +- doc/_build/html/searchindex.js | 2 +- doc/source/reference.bib | 48 ++ jass_preprocessing/__main__.py | 4 +- .../__pycache__/compute_score.cpython-35.pyc | Bin 2302 -> 2305 bytes .../__pycache__/map_gwas.cpython-35.pyc | Bin 4472 -> 4870 bytes .../__pycache__/map_reference.cpython-35.pyc | Bin 4295 -> 5148 bytes jass_preprocessing/map_gwas.py | 4 +- 31 files changed, 778 insertions(+), 1010 deletions(-) create mode 100644 doc/source/reference.bib diff --git a/doc/_build/doctrees/_autosummary/jass_preprocessing.doctree b/doc/_build/doctrees/_autosummary/jass_preprocessing.doctree index f63ae09cfdfcd8b45cc4aa8ea86a829b1d0de6f2..21720e6739f21406af758d3ad572b9c65697995b 100644 GIT binary patch literal 66856 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 literal 65769 zcmdsg3zQsJb)bGD&5VAdu?&*2L`Sylk*yiYwjh$?I0$3QwqWp&V8=4;n(msZF7=PD zYDr^<tiAX%&XzIYCJAfo1WtAdh6OfzNDR9tBxFx~SSKgMKmfC6vvz`6a5!uToB-L7 zy`Orw>Qz;Dzn&h=jAah3J5}#<-@W(U-}}_PYd$c%V&w|_FW6M96`Fpj>`hc_McZoy zgZQ9gSN+ywtv&a(-qjilMoQIUsbLrVyl*vTY~O3$*$OsJ*J^&X=G*y(J?%lcV0Ed8 z|BeN_E45;?Y>&H^=jH1SyWXf3Y|krIXC^%Bq@Axd{d&`HIV*y-+@N&jtaMffLk;Vc zS8Fy3b}LxX3f3z4{(VlZV()X@X1QcntNU(j)LcMn-wj7@xg~#N!yb?N*_ZBmU##ni z`s`sCrsp>Rr(A71mo6U1G!D0db-p!IwJLVY*$@m{KD05_^nr3X@_~{EV{gqdE$(bN z>n$K?vySD7YU>JRAPU2SQ&!;w5f8{Ypo%nuHRV#(ZXH`03>KVHx!AC)Nbj|E3m~G} zIuC|js#P_zIU~*%XEeCI2O<Fp_Azny<*lY)^O}{4)tJp7-bBNLp0_#|Ip@MKot-eU z^WgvI!~eJ42@lo>yOD&zff%#Lk>cab>~R)}mhI$VEL6C?WaPraR@2#aY|Oa;dsq<+ z_$9w=C&nCHjQt+ZXzO?=W~wn~)VTyka3FI8h?R5(eXY6GK8+K=6w?P<G*eJ~osk}J z+BNBnPCC1t*Egpu_-Cv+6>RqEPN{l&!YUTS894yc&pw?PI5OKg2L^N<4JcR#ve77! zV2#0)0l5ZRF(w(rQM4IjO7DSzGSqd>ZkhC37BXD~0EHnW-%8{akHfj1l?RiAM00t} z-)xdOZw(H{6vWt`+*qj^icS~p0K~hb2mRr6qTpnVfJcKhppXk$e7^$*;V|FV7Hbu& zRBZ*T>a(c4p@u(O2i6ZxH><2A6t{wPwJDcgI`v>(wZ>xgFwNqKiG;$Ka}+ECw3YWt zpzQo+BQ^2%$H`ThIc0f!bJthuM?=xdUt22|?Z)0*Wj62m&Eo8y7HFqsBLcHby#Z3k zEf7zX=({Ww>R@2HgzD~LBw@Kssy<jB8!hPKP(cMdJ2Rd&WJp_R9#o8wcLR|ZXF1vu zWottX^4iYrP5>>PUjrcsSeu2@F&H{sDIfOg7Fy0h(8ZqJI0<$N)pUZv&XJ&NADU7F z5-DZ%9#&TOG^apHhG-ZWV{je_aePw4(P=p!XoHYO<940@PQ3F`>KqIskkGdq<r1(h zLCFgYL{m}oKN(>f%?;@|>U1O+pbpVkezr?<s4I`C@@l+j#dkaZl}Gt0Ao1ryJvtJM zrl*&AH(8bSKEIgN=b)Ot<~>DK^!C3d?b|RymYy}WYI!!I9+^+H6_Y@|Z)xNU*4U@( zjaIP6@hjzQkv<x1sN3MFR%i03!L5p#MVfAPen9O7YvC0*KCR%jU3?z!^q^>{Oiz~V zQw4C4TfusG2&j}xg%aop(XB(&EUV(xo?mQ%8w<6`Uj{pzXN}=y_*QYp6qFCtDivEW zd$d`LvI6dMsY<?~$T*G6T?f8A6ANc~=$Hi?70%;O=R|0<$xyT44c@`N-<>UuPwo)3 z#;p1w|MPAB2RMd|b7|VM_A1n>emqi$j6G^6_tjZ=5yjYFU~9J`7{ZA()3EAJ#54A! z_P@PR^6i}O*ty8Hw2Qf;U~Y2LwMMR7^a{0xowKS|dDbg=IF-RVy1Tk`eT-d|BSG&y zC~6Ug?nT&9s2SZ073tjV3PO4z*}%2SaEadEgSVbG3318kBc#bs&E^YEqgJVT5MSX$ z&+sY1LAo|(1NAyRx=RPsLy3o2aaivM40Q+hGwwW<lHR9#02!s+CZ|IFl2glYlN`^z z2Fv<wJfpkgO$S%CCyIgPA*X1W3IV%F&b^>K!M|`10Zqt1a^C&0bAPbC?YLXcgFX30 z+;Zd^J)+UKtC!-8x^HFH>dsIHN26<-+7yTJtNDF9bVSO~eKSGMZ^v<UZ$Uf+9b><z z11Z}fGLuB)lW{}>L#Ia(&eZRTT#<!va@=2&LHJC~sQoN&1tzbVN0n7s5t7_1H)!8; z<h>a87gf=F`S*!lzzit4c`44Wjt-CWJ>3!D0K)mluz^h1#`$sNx;Q^I@K~IG?ay0b z$xk{g?jR5#j%T)`;%<gwoKi6GPQD;S{e6LcPavL_Na!Q<%-sh6BxxOry_tLBUXW-Z zxTKp;QmR09)1m|&Xalx8<_<|O%`16hSLAuXR8-a1Y5b5>a{p2wrb+0H;6E29Nkb{J z>?B`s9$M{0h7Ur`6V{9k&LyypOX%6AoRq-y+A7ZFy)NEu@EUA4k-?K{;Ldf=+EKF* zN)d)_`qxO+rB9{q|3N7C5<$JuYuIZ}g<gM1AMFX!V}Q~<Iyr`KiK-cmo*Ow5#4Bo} zbvLex3C4Q(gKgLff#xy1vEbtN8N)&ir+}R&-#pAhCL|{;GEPPG>@cNtbv90DEvl3* z<%b8eWNJ@_OsO`GGg_(<BN|gDAYsO+X$%N@K}QMSZsE>$f-<6q_x2Y(Xf!p6AM^_H zmsP2kf!C$GJH!q|fsQ<lQqjhO)iD|fBfQ;iJMv+UAv@4{W5&?BhB#6O<59>7AIJ!D zv@%K_^In{Q1_6#5Q7Xp45pi0$OMLS-kSN3W=78WFVL28?HpLRGgw;I1RLD<<*<Qb4 zm3)e7mZfkeVw&rL4zZZ#oQ$zzG?TReAVrbgT0Y99R@=ohKi5?(Acf)PkwMAyZik4* zpjAyH#bTNgX%}=9juVuKX$pvmAY>fVWRkKS3a64N=+Vq;yNFwiU`rIqyhjFbKhrRZ zWVWOxiFqb9qpl($$1xvj-|qm;MDxDF@_PGECE7>FI+T*-9l`ABlyB9iuFAN&B<YJ1 z!#pQs{enPG3&aFQQr|?+vSS$55N0uqG=+_}GlxO2EWC-kL#MH=alT5iFD%)!Vcy?W z11EYg$~r2#ri`-tUErdrVg6?<YnFI?RRT*k%4B+%9VZiJ_xmu)nAzQ&7|A?LF16U7 z$sJg|XeM_vbj2aqDuNOwcL*^Vbwh-VO>T;eN|&ouH5FOxNOrHATb0`r49tvbY@t%M zV4AQC%PV}@wjB^GFA*pt*V$)#h~<l7dyWe+-z?A@1!4lDnfRv;wudFt%=V=7XE$HX z*@4{M6#M5+TID7#;1zSY*W|Kc*b+ete&ATc4u*P-R&;ZPTDe)N=KLDHBabjww0vtC z*Z$E1WHoD^XFC&UC<*3#oDXD`d|X3lToQ<B92sSV=9P-MpnWO^wwL5-e`hPW01aOv z4Fj*o>9wAMp`wX!U0PC^6H32~WTjtde_tY{Hv#pJGb*Y9qtpv^0I3%vlr#qL<~;*6 zlwu5oGxrjdk#h0-bCQIHCg~O_+<r+mYa^vp%S9;_BLOi>r!Z;K(|XUf_9<AB=RIdM zPirt~DG!)?)8r9?%QkH+hK*oLMMrb}(8G8%sdGO8vLn;}sjec`J`HsUIf*1>vUPQI zh4GMmx-`SdmG?LmV-1`6x8amX`M1VNr)QBaX1?vYI)bnj6Vl1#+P-@!=3k0lTb+bQ z`*|2!%%k0;<BtyQ`JEV|=Z~ndcFydMPVL~nK=-Ri=N@uLU0T$HJC-;48<Fhi2ue7y z-#{z`8Dl3lNx62te=pg4!iOb^iBY3>A2w{k*oWov3SahN*Q`;F{!f$mz7$^rTXrkJ zyF2AiP`E>vBHXR!61Nw{f88r2Jzt<vfmjsLk9vj(o}D}48Di$YN>kWqJGY>{4!=s* z1o<h;vwKqHS=kC<KteH5>x-n#Zv~ngYV)00G@$8%)F8D!w+z&JNWGM9zYazk)9vSE zjHX8gPc6=0!M_7Zf94guBeUubf)WaT3b7b<Lu8B<d?xvn)=Xw9P9{;%wfv9>5o-Dn zlb$twycJVzAFHEqXN~`eVEk@@Lh`+IR%v`<|DtI8&j=y^gFuf9#KcAAd?P)}*7z(N z#u}fSiZnh#^9sy&wGYfIRy~iWW?I3njJO=$j^kTBET@u*uw1pHf@+G&w`E1;7h*rj za2To|Cp=VrqoADHhoIa9AvHm0atDS;sF3_?!surS$_U9D{n-vhKa+@Dm2Dr8)9~7H zD2m5T<iac*XR@Tj@xixP_1w|7AGrloW3V(NGLN+*WHn)N{|R_5q4bXuqL3c*HAixu z?c;e~b@t7}M8q^4bR$v#RJOew9PERwS-fKb^Nzz%1~?n081V>!`(y0b;1t1X+Q4-r zSfHNu(XSndjeZUM!D|NXCPI5B^bK%M<D}j2^OX{v!p>95)$8hqDshK=!sQuZr+N(= zS+bfpb40_@%s;JgAyUaKt#Dp8qGQErazY<od_~fhbSW=%8w@k%g~IAzHq9U8y^U>D zke+CuHrx53SqTf_IL?s?BzzBUXy*ns(T}AW4vO4gN>IWJy&RDcT#UWYcI0b^#kEN+ zbVqbmaXLnko;^^iZt8ksVTC69oOcRxw+IvxYkB*e7k0`rC|Q#uaW3(CQC!XkgpN&t zP6))bMV~N7&$3-ko*rf{=UCd7U3oQ6@SIgH=R&<5E|u}M6=d41oaciDvl@P`TA!#| zRW5=ye_3fWb623hajS{J3vf>Wd>sT=@5Xg5Wsi@N~&87xNj%hQoxM`xLg2b>&5P z<3V_u8!o4yrlRAEI5W4ppXpp3&SB!k79kq?8S0T>_(pZEnOu@kp8mLVle><s2wjqR zbww7|7hj<9<Bq>SBq%~*s#c7h#^o`5sdI-ghPd#K1c%V+go|RP%64w7j>73h3$=T4 z<Kyg#;o5BuURlvg@T$AX2~iBLCMd(H(1ulpn*|!R>P(F6!En?)w)ZWCJ)MH_>UN<t zT`IKZ)VW>#a19@fjW?lF?%P7SZ!+bM1gmmm33VL4$~>VXCyJeW-It*W!Gq4<gjYGZ z7r-0sK+Z^#j;UkFNwo+k^G6hs>`L9S@N8^!Y}j437LB(%i2t;gZ>C4OcbzK3&<MMx zKTXqT<(_Qvz`^(2i}ya3Yxi~=@{wdCDJ80NjwjoflbO#9L4Ez4;K!1W&ptuV+&_SS z!UT=++;#sXRw-C_vkmuTROdBWrLGzr&(v|D?1come--PHG)&L4(}JTl`kc(2D)~;r z#Gui!-`TXv7(cOPF`J!`6F4;gF4X9mwS6=synmBW@D~JPT1LD_h;0HwY||0yJ<z%m zQ#Sb$9Exwid2}!=)f2r0SreUttaQ_h6kypvIKu#IPa4UwNFVPd&7ZGZzC-cW14|HZ zr4htjPGU9pb{KIi)*8*K)JvR2?ae#Rsv-T)c$_sW)1ypKBF^#<iBUJi#W>E&BAqtL zW0BrNNeuKD>)cF1!muku$}H>}i|td48+xGdXW0^}yRA|e)pYX?o|FN!n1s<OfFVL2 zB_GAjtfN>RMKZPupGfqBx+-MaSrzY*%q1P0Gjgc-D?-u#F3{%$V%j2=Eqaz6@39ol zJKnqG?N<2&?QJB-2Sr74mw5dNJteOi9gJYv=+15)`!2a@rI!&Zf#*2x?}6-M(Z4Hv zd4aj{@yI8l;=RRg3*h+0BP~%!?g9jA>(?pAdKE$QasME=TR#QYnAv_J&Sfum7c|^C z0Kf=!2t(vN#9WnF3_<?qc-Q)Rba+{$#dBj2y-`3&!VXz`l=Cnx4{j%3vP5U=jG{vK zrAQ1Qc8<EyqCh?9>Mi(tqj2LOLE!49gTL@qAHiP{q*@F9;5I3^_bPGiR7x!lK{XY> zxW|zzhS420ujU&Ym?;_QtpdrIQvsd4$qeY^?T*e|Rv57B-=(l918yBv^FG1!LW0~0 z_(u_BUZQ#lt{dTsQ6#9CqQT`Q5>$K>t}dCyMq|2+4yyKhl+dW2q8W4TQK7&C1ZB!+ z_-cve^J9QuAM*Jr8R>@wk};>`Q{H6Cr@Y<Pmbr?|ESl}hiBxi%D3!k|__0*tv+eSX zwK_ig37fKoO+thoiLoJSlZ1Fq@ckk|^RYs@5jfE<Lr|;Q;VLX$?xv<0a%LE^7P;7a zSpV|j-c!848H@2YX}Bs*IZmps+0=x&vZzSuBDJVpi<Evx`1-#EVh%?Vi4eP42(kN% zQ17Xct8hJs5AndA;5Dy=_v7@E9Ld@Usn&=lvKn8c^vLia=rXhQ=htPSIhM{Ygo%=} zHD#AQN|ijc1gVlNWMMWXlO;a`;fW<nwq{rBC0#--&O2SQ75Q<-(<M8h7tVQaAt;e9 z*@j4rx*;yc>5^>XY04s&Fxi{LK~I>xwu@k4>Lf(4_tZ&NV#heMkyTj@l6{%0WoU<( zyiqD;J-PNgH&7hSk||m(y|0@ReW88}nR-^GQ%ELLal@Ioqit3wS`sKP5YrZ^yq2D2 zr&Cxm=bcWu^jh5X6&@N@=7yXK+bTFYwGc=b$zncb87Wxvj7m>~R6@@wmG=SZ#S?f` zc=I50WVxkOLSZoWWaAkbHEvccpO&G1l!rR66*Vw<T4-sIMd?2tJ(AYvQDlm7YCM3U zbRn&=kJ0iTy2ap0%p;YOrL3VHSy=C$QpsvT=gQv-SH3||X6PEe>LYX=g2wwzt^5nL z(MRaIdPw;VKT3}|6}k#FGDBB+yW5QWisl^08dee|!M&l{{*qw+3_<;iHt!i>o8Dfg z3*JfCy9>8|SLkw0+RZyJk=C4n-eg&;stC%eWxufYB7!o7IDEClLVN=t*oP3`C?kEN zKr-f(5X+lPA(ponCWSbY-HPNa!)A3vgt;#i;T?iEi!eU>BN1yh4fyOy7Vw45%k*l^ z+T>+C8G}nu|9P1!!>u8=*!U$O-WQT|p)d^-K0|v08@O;oJ$|1E1ggue`@DeKUoW}< z^w*XM#;*%0?-PiL8VLbH>>eS+t}8;lr$Vl1*jACw-1L(F$hztQV{P;bCZxqhN_u=8 z$YhxG*dw@QW;$4w@-Pxgbo}ZPBsv5^3?~y?L4F$s8q03LH$6hu;gL_ex!7o@JvB4$ zl*VU}+Gjka@p%#b-zO-M()cVQG3ti67^gI16w{_|ERXRQ$&U3r#?G|gyEjxpC^neJ z2$5QLX^g*<kv-2OjnWvyk>I1)nPoBJl@vAE`S?MiC)7+K8_%jF21((fBr(n#R-XE> zKq~}d+9H)dN|et|Vz6A!JBe}k&7f^^DE>M4BqnW!-J6@XeMn%i^uQSa$Eu#7qX3fR z@O)S`FM?5yNef-C1)q<^^-ERND!>g}__ZWl#f+qJBDChC!BXquZtg_1wPYy?rRE{$ zRW1h!5w~K$h|9$UxyvoD63XWS<W+8xp<c&BedXj;4y5f%6oW>2lzE+1&{zDk5+S{X zpII#^0c1mPzcAu%f-<Af@KqmC=u@Ee`c0)g2?+KPh5oLL^fv^OF{h$Xd6OB1%G>tG z2^5(*@@!vDW<R%yCgPofpF>dp36tw1eJzJ<IBKH}Rbc>^SR)q;0XtZ@J{SqJur0B5 zC1zQ$eh<08cuhr77TmuQB0WP;rr?IJ7E*9GYC&(08?9ajR82)V(UCs-e~{7ttw2JD zlrYPiOktL{m-ZqD3Llp5o~nw-bI&O9e<Y(=D3KpkE>La^_I8k%&r5a(RXaUOZd6ZE zisg3adgUi>B`8yF!&eI_x2u5)Jxc3AK+sfLsd;^*SIJ2C3nXJs$*8=^lu>?*lCoaf zVoAYgd66FWCh*xW(X$2Et}E#@2^`J$>PlUmGRI{Mw-D5SDz2ZiPlkE8KDtn&XI;@p zL!vo6p`a@e(=y^cLKl-1AjEMOLcM3;_Md{y_R~FGfYIrun+a}ik#cV>Adq41?YwZD za7eu27fbLpZnfu>l5Mj~kZe<=N@d#SU|6wC+geqymoyu-G4C|nlStSzo@V<!k?+R| zN~GC7f=G<IAuh&gHbpLNX2x=Ce~|1|&#{fBB?R+oAr`&o)dp32U}Oz*TTvA?2DYz% zA(;Ou(<{oMMLVI*dr=c0dG0vT3+k1SKWA0`jKphE@@K0zD8J|*g|^=jh-r&delI=C z&Y!XT%{zZ~)ls}HzENw=z*#ETBphA&6uST_+`>-<!fip2J;TLF+!wT@D$+aw*6&Ew zl;b4UYk+lPnYRlcM+oXKiM0U!TYPhm=qPg+E?!*?n>Ed08R=y_(pOFnYoF4$QRb@i zaT^E&x-ZryqW(xj_ZIU<^>lhygx&>$G9#z(RUeVlW1wLAO;tSv2pUIDcwS2%=_4}I ze<P5LITbm{o6N{b-gY@7r7&P0y-Q)4?c6%*<zEp@Zz8Dwq}40!K-K4j0-q)*Q$E92 zODvyX0R;Py&*x>Ne=d-WIVGR+CR0A;ZTo{#x@fj9CsN66qEvoV@MEdOXV=Ly*4y}O zOrDJpgwNR1K!_togywatYljb%;*N}lJ#E8UTLIED^u5@`Cs&}zxD?Uvcg^~|tk$Bs zq?Imt&1GHkn)#_&XybT<mTJW4rdR3&B;Ob{ow>cBqwaiNu~B)BKP28|-1)iyOOwI^ z(~DoF0>(7iACArX%B{}7=n7b4Au_uMmPr*qXUB?v^ewew6HcneE=5JZcBu*2&HISf zcC!Yc$(Wl1c@b5yv%By-+JD+ZWT9u_k+1%iyu4M04_?{D_VRQj{D4kADr~f6Owfay zTd!zysgRV(#K`0`#Nq5rUES*LLxvcBiues!*6jG)_6%y!hrlSAwH&#c*i3c+#u`g; zji$%b?$d{w645VlrAFK3yt2LvthGg7jJbjN6?D1(2J|!U;52Aeo1w8h)UD7JpPM^M zP$K&^iI|MKAwtI4uPjQo!(b|jfu0Fd-!2p+%#vTRTZL2$riri2uOH3|mNkJwiY@Pa zRL3vxYN8ii>`Gi;l%&*$g_!RX=pliaz~~lUNzbyAQY@TiNvV`QzHMmbiWOHocHu;> z#P>*u9>$CL>@w}t!emvn^Te@E!c7zK2tE{V=cN2FT+(Nk?Fo2-_YT5Mnp3q}*~U9y z?E>rpn;5<ob6(Bxi)@}#YnF?-DQ=3-%j4JB&@<Qt_GP+Us@Lt}uH019&z*wK{1RLO z7^<jY?A|{Gcd4u9@Pd|;P#x|FEYIeOwhw(mwNeANhr?H0JpA}v1N#Deup%St;Ss#y zQWeq_;2)#j4vmGeKXBW|<w(F6@BL6j!WZv-Vo`~xX*&0_AiClW{h`SACk0~JMk#OS zUbnwVKJJi&0&`{^lCTrArL}eriSZ}uzJ|2x-5F7oSccAs&@Z*#_AHFGjWZ&Z9t?8b zyhq&`p+@_2MqWT3^soxohcoiB%!&U+P{JAc7Gg5$h6v5e8BvtfrfAF^`biRlcFstM z#L_q;Bb$`dwpO5!VrQQ-LR?=IXXKy|b4;L}0x^M6O@En$B-<HbxiE7^GH#ilStM5k zQx3}}KvR>l`x;1;g;+E~X_~^l5yU}^`J~9kH3apy5;wN+OL3tvF2Hv3nhbTChdQsN zIPetJG5z31{$zNE8|gj2Sp-j3eN#MFu^Th65=_VE(ft+28*VTLM;*5h_Pm59v0*QJ zW-|lC_X>p`Bq(!nB7D`y;>2Hr?$H*{(wD*ab~WKsfUW6DMY=CFJ9xqN(?Wxf2qe@< zEnCQ&%w-FCdw>G3UWGv+#!1)twILIoaY5DpE*aM}LHO)Wf)-%*%4SA!a?DrJrLGz{ zbL7i{@Bd&d`<}O(Xc|H^+APAE<h^FI4kkmgp2CwElzc0s|E>(+1%Y@d3rhO+{H=hT zKU>FbCZUgMPJXSv8XB`;)n?_a{bYeyup<g><*<RMNr>T%^q{klN@zI3sOuJJkcD`0 zomdwLv9=SGsYSzA3ps$aX6vR!0kd=^eK3d8gGnht9t+Cyh?HhIiR2q0_An4)?-QYR z>4M;~WwD^*RqNr33Z}K%FREOl((ZbNp7R(#-z_wjg%!P{{&E@aO~5yZj~!0dSAtdb z*_Kla232ORC7-tO+$k(;me1JHhAL4`W4UrUvB>hvFy>fZ1HSZDsW*K)pJYPMxeaQ# zzuZQddAAq~EhnKXUT7&1l*nz=5tC6jM94U|(T<u*5s`I`<u~q6V$m+Y5hAiQ`HjZ~ z%l8QsQtj-^ZxH7fCBN~fLd^dn(8mN~0;64d2R+NqZ?Ig<JHPSGBgG;tjD)8hVa<Z0 zKse%FD!?UDaP~d53d0xN6zyWTzLG1!q6M#w&}xW<hwGswEhOZ%n~CA;r*kDAYV76p z8d%;}*M-B1hYy$NmkPN`)AMl|CTw*0a2>z%#+V%jWW)1_;$f*4q6Hz2Own&-W6&)Q zjnWurH9a&X<bD&RO5FNyh}eCJAo?moxmGxle`mAi+tF7IlmZjdejA%<|AjPO6OS+R zjRf1$DFc>|UN|-ouC=#sObvI${UPGG+x>wI@;d_YaHCn)$&YKl?DI>wa9gY57BWtL z^z1BM*40@`cF~`kWW3}vIs&vabCGr>QG^SP^2O=Bm>FWS&_<L;med<g;)s55!b4gM zLymb!Bk3wV`$p7cf4<TA$cV*R_qhnVV&7;xK?&a|hnS4IAwtH!QJRiwhAO3^HaH$g z_OE+IBT2DBy%Az#<{-sCay3A$p%|FmF%*_pxN}nBm|%Q_DHa{Vf(xEP={N5qR!8sW z_C!CZu0kH2eV!P}*`j!2_X%0wDbS2SOkgDSCVH0biLn6A+Y@WN1=Hzt-*PO+-p*1E zzr{KMTTq(3gT#+^zuYo;BV0KMk4vzvB%YK{?4H3pU0~V-%T5`a`)W%;F*O@WW4Rv$ zaS#{kH$`6F!&0)`E;9-RbOBbMo|d70iibL{EcTLI61|_aeMXvAKD?Y**#M>8O(bE{ zXW}H7*p!}@vDgqP5o5#hvXJ@(f-)1Z;j2Cpuv?(<1zpA(*n-~5!hAn@J+#H{$iJki zk;>o-oidlP<n7k1Wh^<CM)Nz!E+aFZ+d{kWb;0W|3F`kW*dg&6+Q=%r=R-81VwZ4u zUIH6)IDl(C+*cH<s0;2vVcG;inSvX>T26v{^8yO)Z9;<^1QKeb1Xtc<3a-4}-k$S{ z11!BA3W^AGt0=;|1w$5LeD-G|)~x68*?(jKU)UR;do@jMR#)$lF*FG3|C*W9I;e>; z08vlY(>arTE9`i`4B%mbcqj`>dTn)7Vy6XJU42UM{_p~^U<YOM@}#cQyHgCcT|cX< zDcd+4VPv$r8Y`~kfQ|dJLaaX_C{ss<ua;Iv0%qM-S6@gECZ*zdEGWxQOX&|26v;P2 z>_H>M5f?&jS6BbtlID}>!fR2<7~*Fief&keV9yD{eO(iTdI$Zb2i>0lS70ngtEj`H zP}VF(c%hCY-*_(6izNw{8&eZ0!k+<oVkyE+`mpA4N{t%qFG08!*|0bX!ky3+d*oXP zN+bxkAtvzgG)BlcL71eXQkKc|;NE2KdU|jx-B+6sDohcE_?V>#V+YpSG-#SI%&x8m z$Clt~8PXwvLeidnc|8)3Mak=(5MtgT&`km{fzh_CrDxfBJ(e1?yk2~ri=FVjj$N+X z4eeZ5c*}UB0Y}2%Y#65LcmWoLlofBcltZ*)*;@xn>Igaa-7swNJ?|5`oEC`b5?Nn_ z!W$vRoQuP~!)khtI+uX@xhQina4gtfp>y`*X*1ReHiz%<K3>?G<h5)kcc(lC;)IXs zR)@>7Zgtokp5m9HMt3(*Q{dX9YU^ZrB2K2qg*cBAlyUh&sXvD#pNG%(`uV)U(fRi7 zM#iT%@WdfrbpU7HJ21oSHidBPM}raHnrfD<27bCWkJp1`EEV^ANmvgAIeh5wl~&WQ zdCf}2YRq1R;lb0$K3bvPc4x~u4+LusAsUPvzwMsO-gVFA?^6G2XSI|u29f8{2Cwq! zPN{l&!anU!#5!pOTVj9Zfgo@-+GDNw><AtmhW~IK5pB~jWbf;Aesy@bShey^I7tc* zueDFX>Cf;qDsG^_uMW`OtlXO>j}Tn8aqAwpBnA$eOI=|x4EIQf+q&Q*1~&HY!715% zt?9#Nui;_TH2)3hvekViNgk)=e8ADvb9k_QMKF*U92&2!?w6&7olIb?9SoIg)fp~t z(Uv=y(oI^lUlFYJXW-VkdPF5|=x?MU;S`9K*E+UJ#|IOxutQ-TzSKmHn|V3a%pjCJ zRVw;U>)3FrDPZsmP@_5J{yqGo4n)w%I=1vH?OOum2K=d7aW*-^mFFl~jFC#C4i0Q} zqjoA;bAwUM0T7Qys@GR{ts6I7Bf-Ss+LU|vE+wzIE7MAwz9@~teAQjYaUH48djR{K z;$6;}gw}E_$^r!AJq;13%Wfp%R_6z#N`j&K>|s`?tza}wo>s6H=4Y{1XgNPt`%Sg{ zdWL=$lD2|%Q2CVAsJ0#^8AD@;k7zf1uo{>H(~H`#z$e~Yw8d55A3YZg0)mCI<$0}1 z2V@Pj*|C-3>|0kZ`F6u9$3)ECN27DE&XSa|V9jaht>s<?Z-ce<*>S|c*2EU9=%A7p z$)dAwdkxg$U}0RKT?9EtoGr@Kjsz<~kaoNL1|5y<QhF0X?l$;Go1VSO^`O$buM~+z zstV3RDYpQG00LP;pxXpuQX%<P(=&G?{G$=gK#}xM>HR#t#JXjw5PACw)gk+O93*Oy z2Y?--Mcm8aFZXi%xdNYys&HQqe+K8L^~!|MtmPhrGV|6C?i--Ct{L1n!6PLq?xXMr z*!FCN;2wjw?g!zgy*e0*P!-7qqq^ID0;;h-ctoIoOHh_R;5R7Hvr@WFQ2$c8$Jph1 z1u2Xk1|@uPKL->A5<e{@{**vW>?PMI2P1<GwkTZsZ0DFriC3s*`T2Pc7B$TOL{=(4 zrHh8?etX3k)-o><vK_U||Aiv$wai9zI)vQ`&*O(8#D6EyHwenoH2eky{Yz5%8G`!P zG+CGQy+XWZ@IkV$k95bDt)x3P!#}Ln*9yesTQ0go3yCv560O85TX$$fF&QlCjw_Ir zedrFY(=+X%{30RSQFk1LA{}&xj;=^Fc`3(4h<`z#{RCy{4t|4zezBC^Nl@RqgAx&4 z0$jXy5Dva4x?b{mcYw`UEc28ph_Uyt&^dR-JO+yM?S9~x>3rLn5e>vBccy3CdkEEz zv+cK_Nc-8gK8~zD*FGeI8whkCL0NN+-=J`xmeMtX7ICh9GSPK3*AU`-B0^uK%%TO* z7X{*UvioQ7AlR&>jv-&9CyrtAOQQCVp-U}~-8NBsG+5`?3Vy?m<)Jw>`mAarScjQH zxG|yyxzx$vb@><``?NnY#7+`D54I+Q*K4J<KQgLDK_S*XtQFV($f&EkdcD`z)jiff zsCB9Rk<ou#fFEqxnD9DXwCj*nzTsctKgsj0nJL$%p!E%<YN6aL+W4&$qO<!Pkl+0Z z{`@umd>wzDhaWpDmHY*G!44G*42lykz5(Q{ZcgF<T--R|;!38wZ2*2Q#UK2dI(^;R z{TXbscDD?|&mp+%$9*&Y<W_+kZ43i_S-f*!kB_%H8#uo?Q1T$X*_y*aQ4QYhpf3xA z8AV9dL0!P*%WI(dXYuEs;bQWPKDOYEaoK%fjgEcr{vY=@V5k`_e;glYw~RG9wj9pK z?;&xJ!0!J8Txh?Mv)>tWA6lK+;}iHeyGN|ivB!I%0MKh4kj-6zKX`WD#S_2o_4wy; z{K1cP(KnXd@8h4VppH9-KUmv+4#=EAhyR0*v$4V&9kD{r0am|>!h|$&uY(8f9oXVs z&OI((r0n7qu<p+xKFD(y?=y7qCN>vOxY1E0_x7~_mGS5Eged$pgF(;s@jS5yt7VWD zrzNk6=?1Or79m^y%T~DwlSFC1V1ozicRrs!^;&bmIrKLjM)mS=FxBEI6%6?et6)!A zg%eO{2$q}j;X2P?@EZ8eNU5HOD`0Wa%!3!clc$t8bTk=k0yO-RU$*n7;m*}c>)~L% zS8Fy3cD`Jyo`3@D^89zpxdf8y)~P&v9vqhTimhWSgAEP4UIYBfaK~#I)~A9^cB4^i zK#@WXKN${p_rC4cYsU|^f=!4;!Ox#8c_p}X7TO(}v8#}N=RY=rqRu1w*s0fYF{K@x zTPWA86L}l5`{le<EH-QpZj6NiZY*2XnWi;k!*Xj8KA*74hV1|5VzW}u*FC#gtmRKv z%FxAdIFe=q{~GaTtG;zQ@04a7xKZ8lVFeTy=Tuc7Vbwz#5Ls~D0Y;Dqyltxj)i>vh zB@agqomQtyGw^6r-Ht`wSZzbTXv694DjedjRpIY}qCM55qK)Z76rf|#^L0|?`A@h9 zw^+6ttzZPH;lav<12irJbK#L)nX-$3(JXM?v27oib$+P|E15#@WGic#?65fF!7dB0 zIi<6D6Va>$`wALW3sx9`NcL&?{;v&d@6od@_Gws%$CK$z5ISb{K(JQGFjOk$>yUgX zorc|Z!46<_B|lxO`BgYF9gP{5#c>o52g8n47LgeU&P5`kZO8+g^1fYx(ZW${Sh=z5 z<Gc4CfNAk6dJWeB+YO|vNZ_1v0GPn?4OWfh8^*8!TbzR1g|Wp}kaK*$?j7E@@6@SN zu$jPjYSoEaV`g8`KDiG{di!7%362c_->ga<s&CRs3U8bK^!UMX4|pEzC^&EozW~Hx zN&uliWbHgm(-W|g`*5%k=2NLU4I)U>2`0(L5J6mpqA9llWg)`ve1)G6_cD7ECEK4S z{2aeh2HZCDVzsas<`m%rxFp^rnD4&fT$n`X!1kJ2qX=?Yx2r{%nCR?G0-88mL>s|_ zP^^g+Xr_Zr=nLf|-Uh2mz>C#(^(53E6$VGMmc|NVR&7>f^vx+Yq-#ZqDE~mS^}!a9 zO_(@7XhdKzI166uT_6LjUtm5=I$)xMb+~7!RK#~<Z1TzOlgXzaGWqmF>X&|ghGvXx z*#}XZlU^q`fPQ`*l{48BGCuS(ggTw95}6_TAu~ijWQOp^x!l>$#(^xv1y~Dh0+@-r z*i4YE_$rzY_6g8JkgfPW+E=o)WE|*+oD}*YBZ5CoT0i9hBQd6N{6v{i(N=kQ;(;zC zo{ef`l+qgtP1t5tg;@u(3fvnil<=O3T9qn+VysNTz7@q%dN>G-hZ)iEQO|Ew<#9S= z|6p5J2InT~sq%1y3VX(7+K5wg<e1HoQ#MD&an41~OuERGNpj5QT;#?ixdC%7a$%Aj zfjM#l=Ewn<b1t7GqR+WV@JZ*cIimHPi*%kO@<K_V?<5&s=mng=IWo+1O;FiZ0~AAy zX1LQ}lQ-*u=24Hu{-V%17&6E`5BI~I3SGlc6Rr-{@PhQfH8<b<)|<hIhoa86Zpao6 zBK@%eP3&PcdJV2d>-!E~{kAG-VVFp8g9uzf0(>K0!8aHTk6pBFK#w<DFc$W#9~6i$ zf^Z*z2PxM$+$obL!74?9b#Fg%^W^oDM<XHxi@6IdLF<(XTGMwabW-0D28hwEonEe4 zJyETls^-u?Lz9xbSc{0XKQh826%}4=%&xo%5-;BSTUyWBA05zm@!k(6mIMB?F#96{ zg}(p%*zSH5+KI&eWAK+!^59{i#(@Y)51BGpaomIoy|F@~Y;#`RWr9VoybwIn%=mL* z!RG~92Fx%bLvPH`(iY|nDV_<2Xt<=A@@-+o^8%fnOwn>dOUx7vmo!sWy-HcDA1x=Q zyu(C3dz&e-1e-ZarcChYRdK~IQ4IOOvn%*NaKXtn+U@QT&Ws4e)5Rv|29rrvuo1%v z&BYupVrZg5<st1I?Il)E*z3fQMES9yi#3TD1f%hml@q!$*qU@t$#;cT){F0qfkks_ G;{O9nQ^X1Y diff --git a/doc/_build/doctrees/_autosummary/modules.doctree b/doc/_build/doctrees/_autosummary/modules.doctree index 27e69465a3f3a5f52f0a552a07a3b5fae79b0de3..adbb1224878275e58a1f99845253ac74761f99f4 100644 GIT binary patch literal 2652 zcmaJ@U27aS6m{&iz3bTPk2ozQ3290~9fG}mD75q?AEkY$VM$5ahk_Y2BkfADMw;rw zyZaDmA6jA%ed+Z7_DHj{&YBRzf=6@b>fUqCJ<=bY|9;+DNq?bFb>W?m_C#sQY#q9B zp=8R{|JINHtl!p0;edFjM_N0j9m}jE#?_}cLcj3FATYDqn}XHDu-&dmq2lw-;v>UG z7P-PsAslf+tE^q=;vYpyY>n54c2?$EX3O85p(?{FZ5%Vmdea%A>`0q3J>I_l&Ah;s z&@*H*uPv<9Vc+`PI^obR_NViTx&;@KqL2El<||>-vLe2}>VAtjXGHE@D)A_+H`Su3 zgEz$5tU_r<7tC6r#x)6Rf?DKi-X33n+s#RFo_a^fW+9OQd1HsvS8Zk=HXRwqr<#Ap zZ}2sKiy!h&&*~#oxQ-SiThzzzfg*k%#ead{BmBO^@9|mf`4fKJeEh*mV?Lzoyk^tL z^#^1As*?g@matKg$ac*KVWVXnb$t^$4ck5^{3*Y~pM~Lo>yi!l8!rV@YVgwNH$Zjp z)ALuavX_Pdloqc6)HZ0c4YDXR>&udu*`U<aOJ+}u#g5NUSAC9JyM-<*?G^oa_hHxR z!WqVnCx%oNR6<%nzJDLhuxl$W)bxZ<I#>VZ{LAGHLT4;>USEc;@@38pqxI=Z#5!yO z5hD_V!*GA8gAa(~ZxjNS!j4dd^ptTyDTH?!s|(xn#gRbYQH;Nlu(5~$sgMh)k~W8l z@2BB#X~Q{WkWxvelvR$`r=75s<YKjwv-&b>;w68^U$lY(V?O}i&VoF=dOq|y!;7^P zn6M{df5`({0dL@+DEGH@=(Urb)ZB+yEXy#~mW&&L@4TNOHTVQ%B=ttsMg;?gq~3^8 zt1<q<hl9n$FJ;^liV6c|Ww4|%b7|+zI5tg9`~iPxLs!r%&+1y{9Oe{8x4&?{k<rRA zs48syN~A}*3+wAqg1L93tYAESW{fr&Q-!8+*2DTQuYWxL7SvU&%5s8+y^(eJoI6+9 z?*@a(WO7o?9M|eZoAH3Mivc3-01Ck7LXC7bjXoCL^q%&v@@|nmYc}IVQ3(YD4+yPr zb=al8tg;0n7KPozt8&RSp;1-9t1ALyz6=M^)nI=~3-diML*I;w=)+BLOthO(VM#7o zR%kU6V=V14C_W-MgDg2?4(WDM2@5D=(6rKMUjRp=h)lUsP-U5?XtR{awZ(~anPeAC z)~D-XvpqTZi?B1_F>B=?Zh={CD2%!SH)to0*)ZIWSjV7<b>>)ENl*mQWBvHiS6_q0 z+lAERJYyvhGQ(^es1V=23%l1a27}&>B7;5PS+MBM2)irPN0{LMgzX6272kJTzMa-M zNCk7F#5Z@P1lRrLbl5CydTfDj=s}%0BSvCc^TTj=Sz*^TuonxoI5RlT92uz%JCdle z$BY3#isx1MN!YV9<;XPSV$3CeP)$ebsMvm^qU=Ig;dDAp8~4p%;^%<3AK_in#CCJ^ zwzRE=eKr+1^l^@R+pezTA`xZzz5s4nIJx`X<I;dQU697t!a8NSkJ9Q#N64-K2&)3@ z^&H8wiJ;NGx?vmq<Iq;=(tvMzW2TrPP3`gWvMlMFIPx(<QNr+OOjW@Nn1w2vN>N}u ztuj=0?yD$e7(S>h&SU>@h4pCYGvFG5s<QTg9`a+<J73dfydOm|ev*VJlw~GeD%zdj zg*#0wlPtxeA;+(>h5m#X1rGs?hLIAfwi8-e0~bWNv6#TEIYZG~aHoo+jAQ7^Io6oE zz>9;$rRl1j(;Gf-E+lVj{*d3XVT;D8YSBDcx)L?l4|qBBvvdthZXNFcy%^$V6{ZOZ P9}I2iwY$a`pP&2>grgzu literal 2652 zcmZuzO>Y}F6m)FamTXJ@idz&(kS0OU<Y23Z0ts^Kp*_@qkRoYs0YNP(k?}6M<%caD z0<?#=3BX&~|Jxx~T3c=mEUe|eCFjk|dvAa5{QL9HTK)?IrVH<6Y0s2q+{VyN3l&!` z{u7`75kJId;Xo=T4KEyV)J(av@m&o4iPlbO$BE$+i@2~MS^j_Yo?3fa8(te-aBHQS zMzI#QEq0Jvwfl-YVk7hny|UVyg2%8H!`AZmXee~WhvL02C0A<r+UWOqfB4h)Z{CpC zhGYNb=0hMJHt!7y^-fz~Rn*Lfm1e%=_RLrp!?vSSMJpb~Uf7||89DY238w_RV_IC~ zG>}-A`8oyWEVqji$uz%ne($2#rD3xT$jOq`WT_9GQYs$L*F(1uvSfxUaP|x=Y&z*m zzQTbx2%p<U9EoFbS3DIbfGEDi!C&FJhwA~Zhwq{nkI&b|6WpwY&Raf9ihXvcKV#N0 z@huL-bMbg2jz(dtrhw(5_{NW^cp(OUjE%a5u4?TSy9H4kF7UkkAD*!9bm0u=r&os7 zH8+vofH+DB!@jMBRI@Y6*urPqi<hp?IcU%LA)gWYQWd3VTu8=1;HS`4z8Z7GSv-fI z0N%(f%_uxv5k494mL`8i8nz2sX9tclKF}GqmU|~+L${(c#%m|yc_%R(cCuPlt8yMc zi5KDS$}tOn#n73SdW-;w6!sRNClc0!=wd{ZP@OE)3-PKYn}hQWKenN3xpOEI6yIT6 zjT57l<B%b2{Yp!Zt=e+jvv9W~zj+j&jUU5tzHe?xsSDa19D2^sf+uSusORXITuGL4 z>xO$4)YXKSJXN~I11HGR>Z9Bga^_?<(WV0PyG?x&*!m)l!ZumdsW=Y1s9?es9hXU$ zJ7EunuYs@Rm%L0RFyO{$gOEbA)C<DqFK>T5eHp_bp+Hx;lvX-zuy1e56*siG>BAu; z!B2;RoXsToJcg5^)bxVzipr9}PzF6F6VWfJntD3r1Sg@Ntiv>6pZTgLwdI~^GOJ3Q zva?9Wn{;<z=gQF;5ppU@T<8^@QYW0vt6)*tM1w`};EEcBBnY5$T480MFlkfrI8;sK zGzHbXPF)dBRcL@%*(2z!(3m#%3!99OeGWB~Vm0*sDqEzv6;!bjl@$&WAr?(ZfaVhV zVu_<D7!b`Nyx`nHulrKf-nE?H-es#{9_=DEW$VYQY7a7J5(YGimMMV)KC89m<mTET zpGk*fsq=QJ_GZ{>Y3NCoif|%lQ5=Q`(7GZwheksWv31JgQ`ix-Y+bV%P7;Z!hzMjN zj#tRmA=@t2PoIAK9V+9C{8%c>P2#mR;YaZlA~Y69JIfYNBBUM16j>zU!`H&O+P)eN zudc4n>bVnIooO>2GJZKkq#ef4V>l8CR&`Q!l~O$QZgTqa)I#&{pb!+*2ErO9KvbFl z1eJQ>Yh>3)WlJ@I1#?BAPWlUgiva_C$qU!`?l18<tudY@caw}yxT*xUeeK;%iBTUJ z53t;Na!Y*icR0o{*M`BAHChZzn%d|H7*naV-3SW{PiGzSJRGF?O0I<s>k>k2aCM3I zk6LxFt2QSJkD+t7sbkQjnbr<_%(*numg6mrx-{OxA&iNtari!gx@_^8(QWz*ieZ$$ zAhy#iZazK4Be844R`Oi)DT3HZGpawp>un_yOm~YukyAQaIi-!>E4)ebF||C7<a&jK z(*Y#Egr-rAb=mqkFLuET++tj6gZ*Xv^7{z0{7yKz_1-dmE%egKZe9b_hbSJ6EZPV) zFzXGhd4>#V=qDAHWap!ISW<M^UV1Cf4sS*`XfUS+%lsCde1uPf!*H|`+a`1OHf->k N&)sb~O?vq8*?*2c9mD_t diff --git a/doc/_build/doctrees/environment.pickle b/doc/_build/doctrees/environment.pickle index f5c71c806c0033c18802de52f9650f07ccba2a70..0e2a4461c68e576828433c99f3dd95c1b29d96f5 100644 GIT binary patch literal 37654 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 literal 39457 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 Bb+Z5f diff --git a/doc/_build/doctrees/index.doctree b/doc/_build/doctrees/index.doctree index 6e782da42779c8fdf7cc36eff0048a4115c4ebed..3a79313c70a1d3ffaa95b8b69159c0c2db221dcd 100644 GIT binary patch literal 47663 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 Y0%y#AA|@cl1iYC2o3WxJkM;HcU&-Ikw*UYD literal 50353 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 B=uZFu diff --git a/doc/_build/html/.buildinfo b/doc/_build/html/.buildinfo index d400170..b684fa9 100644 --- a/doc/_build/html/.buildinfo +++ b/doc/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 7890896c7cf0d3614ade393a5c103246 +config: f0cd103aab646a141229409df671f02e tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/_build/html/_autosummary/jass_preprocessing.html b/doc/_build/html/_autosummary/jass_preprocessing.html index 573ab6b..3cbc003 100644 --- a/doc/_build/html/_autosummary/jass_preprocessing.html +++ b/doc/_build/html/_autosummary/jass_preprocessing.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <script type="text/javascript" src="../_static/language_data.js"></script> + + <script type="text/javascript" src="../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> - - - <script src="../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -161,12 +163,12 @@ <span id="jass-preprocessing-compute-score-module"></span><h2>jass_preprocessing.compute_score module<a class="headerlink" href="#module-jass_preprocessing.compute_score" title="Permalink to this headline">¶</a></h2> <dl class="function"> <dt id="jass_preprocessing.compute_score.compute_sample_size"> -<code class="descclassname">jass_preprocessing.compute_score.</code><code class="descname">compute_sample_size</code><span class="sig-paren">(</span><em>mgwas</em>, <em>diagnostic_folder</em>, <em>trait</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_sample_size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_sample_size" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.compute_score.</code><code class="sig-name descname">compute_sample_size</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em>, <em class="sig-param">diagnostic_folder</em>, <em class="sig-param">trait</em>, <em class="sig-param">perSS=0.7</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_sample_size"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_sample_size" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="function"> <dt id="jass_preprocessing.compute_score.compute_z_score"> -<code class="descclassname">jass_preprocessing.compute_score.</code><code class="descname">compute_z_score</code><span class="sig-paren">(</span><em>mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_z_score"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_z_score" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.compute_score.</code><code class="sig-name descname">compute_z_score</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/compute_score.html#compute_z_score"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.compute_score.compute_z_score" title="Permalink to this definition">¶</a></dt> <dd><p>Compute zscore value and sign1 add the corresponding column to the mgwas dataframe</p> </dd></dl> @@ -177,12 +179,12 @@ add the corresponding column to the mgwas dataframe</p> <p>Few fonction to to compute DNA complement</p> <dl class="function"> <dt id="jass_preprocessing.dna_utils.dna_complement"> -<code class="descclassname">jass_preprocessing.dna_utils.</code><code class="descname">dna_complement</code><span class="sig-paren">(</span><em>input</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.dna_utils.</code><code class="sig-name descname">dna_complement</code><span class="sig-paren">(</span><em class="sig-param">input</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="function"> <dt id="jass_preprocessing.dna_utils.dna_complement_base"> -<code class="descclassname">jass_preprocessing.dna_utils.</code><code class="descname">dna_complement_base</code><span class="sig-paren">(</span><em>inputbase</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement_base"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement_base" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.dna_utils.</code><code class="sig-name descname">dna_complement_base</code><span class="sig-paren">(</span><em class="sig-param">inputbase</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/dna_utils.html#dna_complement_base"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.dna_utils.dna_complement_base" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </div> @@ -193,102 +195,84 @@ add the corresponding column to the mgwas dataframe</p> to map columns</p> <dl class="function"> <dt id="jass_preprocessing.map_gwas.convert_missing_values"> -<code class="descclassname">jass_preprocessing.map_gwas.</code><code class="descname">convert_missing_values</code><span class="sig-paren">(</span><em>df</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#convert_missing_values"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.convert_missing_values" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">convert_missing_values</code><span class="sig-paren">(</span><em class="sig-param">df</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#convert_missing_values"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.convert_missing_values" title="Permalink to this definition">¶</a></dt> <dd><p>Convert all missing value strings to a standart np.nan value</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>GWAS_table</strong> (<em>pandas dataframe</em>) – GWAS data as a dataframe</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">a pandas dataframe with missing value all equal to np.nan</td> -</tr> -</tbody> -</table> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><p><strong>GWAS_table</strong> (<em>pandas dataframe</em>) – GWAS data as a dataframe</p> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>a pandas dataframe with missing value all equal to np.nan</p> +</dd> +</dl> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_gwas.gwas_internal_link"> -<code class="descclassname">jass_preprocessing.map_gwas.</code><code class="descname">gwas_internal_link</code><span class="sig-paren">(</span><em>GWAS_table</em>, <em>GWAS_path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#gwas_internal_link"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.gwas_internal_link" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">gwas_internal_link</code><span class="sig-paren">(</span><em class="sig-param">GWAS_table</em>, <em class="sig-param">GWAS_path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#gwas_internal_link"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.gwas_internal_link" title="Permalink to this definition">¶</a></dt> <dd><p>Walk the GWAS path to find the GWAS tables</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>GWAS_table</strong> (<em>str</em>) – path of the folder to explore</li> -<li><strong>findfile</strong> (<em>str</em>) – name of the file to find</li> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>GWAS_table</strong> (<em>str</em>) – path of the folder to explore</p></li> +<li><p><strong>findfile</strong> (<em>str</em>) – name of the file to find</p></li> </ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a pandas dataframe with one column for the filename +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>a pandas dataframe with one column for the filename and one column containing the complete path to the file</p> -</td> -</tr> -</tbody> -</table> +</dd> +</dl> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_gwas.map_columns_position"> -<code class="descclassname">jass_preprocessing.map_gwas.</code><code class="descname">map_columns_position</code><span class="sig-paren">(</span><em>gwas_internal_link</em>, <em>GWAS_labels</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#map_columns_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.map_columns_position" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">map_columns_position</code><span class="sig-paren">(</span><em class="sig-param">gwas_internal_link</em>, <em class="sig-param">column_dict</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#map_columns_position"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.map_columns_position" title="Permalink to this definition">¶</a></dt> <dd><p>Find column position for each specific Gwas</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>gwas_internal_link</strong> (<em>str</em>) – filename of the GWAS data (with path)</li> -<li><strong>GWAS_labels</strong> (<em>str</em>) – filename of the csv information file</li> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>gwas_internal_link</strong> (<em>str</em>) – filename of the GWAS data (with path)</p></li> +<li><p><strong>GWAS_labels</strong> (<em>pd.DataFrame</em>) – corresponding row of the information file</p></li> </ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">pandas Series with column position and column names as index</p> -</td> -</tr> -</tbody> -</table> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>pandas Series with column position and column names as index</p> +</dd> +</dl> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_gwas.read_gwas"> -<code class="descclassname">jass_preprocessing.map_gwas.</code><code class="descname">read_gwas</code><span class="sig-paren">(</span><em>gwas_internal_link</em>, <em>column_map</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#read_gwas"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.read_gwas" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">read_gwas</code><span class="sig-paren">(</span><em class="sig-param">gwas_internal_link</em>, <em class="sig-param">column_map</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#read_gwas"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.read_gwas" title="Permalink to this definition">¶</a></dt> <dd><p>Read gwas raw data, fetch columns thanks to position stored in column_map and rename columns according to column_map.index</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>gwas_internal_link</strong> (<em>str</em>) – GWAS data as a dataframe</li> -<li><strong>column_map</strong> (<em>pandas Series</em>) – Series containing the position of column in</li> -<li><strong>raw data</strong> (<em>the</em>) – </li> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>gwas_internal_link</strong> (<em>str</em>) – GWAS data as a dataframe</p></li> +<li><p><strong>column_map</strong> (<em>pandas Series</em>) – Series containing the position of column in</p></li> +<li><p><strong>raw data</strong> (<em>the</em>) – </p></li> </ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a pandas dataframe with missing value all equal to np.nan</p> -</td> -</tr> -</tbody> -</table> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>a pandas dataframe with missing value all equal to np.nan</p> +</dd> +</dl> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_gwas.walkfs"> -<code class="descclassname">jass_preprocessing.map_gwas.</code><code class="descname">walkfs</code><span class="sig-paren">(</span><em>startdir</em>, <em>findfile</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#walkfs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.walkfs" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_gwas.</code><code class="sig-name descname">walkfs</code><span class="sig-paren">(</span><em class="sig-param">startdir</em>, <em class="sig-param">findfile</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_gwas.html#walkfs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_gwas.walkfs" title="Permalink to this definition">¶</a></dt> <dd><p>Go through the folder and subfolder to find the specified file</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> -<li><strong>startdir</strong> (<em>str</em>) – path of the folder to explore</li> -<li><strong>findfile</strong> (<em>str</em>) – name of the file to find</li> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>startdir</strong> (<em>str</em>) – path of the folder to explore</p></li> +<li><p><strong>findfile</strong> (<em>str</em>) – name of the file to find</p></li> </ul> -</td> -</tr> -</tbody> -</table> +</dd> +</dl> </dd></dl> </div> @@ -297,7 +281,7 @@ column_map and rename columns according to column_map.index</p> <p>Module of function</p> <dl class="function"> <dt id="jass_preprocessing.map_reference.compute_is_aligned"> -<code class="descclassname">jass_preprocessing.map_reference.</code><code class="descname">compute_is_aligned</code><span class="sig-paren">(</span><em>mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_aligned"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_aligned" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">compute_is_aligned</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_aligned"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_aligned" title="Permalink to this definition">¶</a></dt> <dd><p>Check if the reference panel and the GWAS data have the same reference allele. return a boolean vector. The function should be the complement of “is_flipped†but we still compute @@ -307,63 +291,77 @@ instance)</p> <dl class="function"> <dt id="jass_preprocessing.map_reference.compute_is_flipped"> -<code class="descclassname">jass_preprocessing.map_reference.</code><code class="descname">compute_is_flipped</code><span class="sig-paren">(</span><em>mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_flipped"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_flipped" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">compute_is_flipped</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_is_flipped"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_is_flipped" title="Permalink to this definition">¶</a></dt> <dd><p>Check if the reference panel and the GWAS data have the same reference allele. return a boolean vector.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mgwas</strong> (<em>pandas dataframe</em>) – GWAS study dataframe merged with the reference_panel</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">merge studies,</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">is_flipped (pandas dataframe)</td> -</tr> -</tbody> -</table> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><p><strong>mgwas</strong> (<em>pandas dataframe</em>) – GWAS study dataframe merged with the reference_panel</p> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>merge studies,</p> +</dd> +<dt class="field-odd">Return type</dt> +<dd class="field-odd"><p>is_flipped (pandas dataframe)</p> +</dd> +</dl> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_reference.compute_snp_alignement"> -<code class="descclassname">jass_preprocessing.map_reference.</code><code class="descname">compute_snp_alignement</code><span class="sig-paren">(</span><em>mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_snp_alignement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_snp_alignement" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">compute_snp_alignement</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#compute_snp_alignement"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.compute_snp_alignement" title="Permalink to this definition">¶</a></dt> <dd><p>Add a column to mgwas indicating if the reference and coded allele is flipped compared to the reference panel. If it is, the sign of the statistic must be flipped :param mgwas: a pandas dataframe of the GWAS data merged</p> <blockquote> -<div>with the reference panel</div></blockquote> +<div><p>with the reference panel</p> +</div></blockquote> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_reference.map_on_ref_panel"> -<code class="descclassname">jass_preprocessing.map_reference.</code><code class="descname">map_on_ref_panel</code><span class="sig-paren">(</span><em>gw_df</em>, <em>ref_panel</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#map_on_ref_panel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.map_on_ref_panel" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">map_on_ref_panel</code><span class="sig-paren">(</span><em class="sig-param">gw_df</em>, <em class="sig-param">ref_panel</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#map_on_ref_panel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.map_on_ref_panel" title="Permalink to this definition">¶</a></dt> <dd><p>Merge Gwas dataframe with the reference panel Make sure that the same SNPs are in the reference panel and the gwas</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> -<li><strong>gw_df</strong> (<em>pandas dataframe</em>) – GWAS study dataframe</li> -<li><strong>ref_panel</strong> (<em>pandas dataframe</em>) – reference panel dataframe</li> +<dl class="field-list simple"> +<dt class="field-odd">Parameters</dt> +<dd class="field-odd"><ul class="simple"> +<li><p><strong>gw_df</strong> (<em>pandas dataframe</em>) – GWAS study dataframe</p></li> +<li><p><strong>ref_panel</strong> (<em>pandas dataframe</em>) – reference panel dataframe</p></li> </ul> -</td> -</tr> -<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">merge studies,</p> -</td> -</tr> -<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">merge_GWAS (pandas dataframe)</p> -</td> -</tr> -</tbody> -</table> +</dd> +<dt class="field-even">Returns</dt> +<dd class="field-even"><p>merge studies,</p> +</dd> +<dt class="field-odd">Return type</dt> +<dd class="field-odd"><p>merge_GWAS (pandas dataframe)</p> +</dd> +</dl> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.map_reference.read_reference"> -<code class="descclassname">jass_preprocessing.map_reference.</code><code class="descname">read_reference</code><span class="sig-paren">(</span><em>gwas_reference_panel</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#read_reference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.read_reference" title="Permalink to this definition">¶</a></dt> -<dd><p>helper function to name correctly the column</p> +<code class="sig-prename descclassname">jass_preprocessing.map_reference.</code><code class="sig-name descname">read_reference</code><span class="sig-paren">(</span><em class="sig-param">gwas_reference_panel</em>, <em class="sig-param">mask_MHC=False</em>, <em class="sig-param">minimum_MAF=None</em>, <em class="sig-param">region_to_mask=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/map_reference.html#read_reference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.map_reference.read_reference" title="Permalink to this definition">¶</a></dt> +<dd><p>helper function to name correctly the column +:param gwas_reference_panel: path toward the reference panel file +:type gwas_reference_panel: str +:param mask_MHC: Whether the MHC region should be masked or not. default is False +:type mask_MHC: bool +:param Filter the reference panel by minimum allele frequency: +:type Filter the reference panel by minimum allele frequency: hg19 coordinate +:param minimum_MAF: minimum allele frequency for a SNPs to be retain in the panel +:type minimum_MAF: float +:param region_to_mask: a list of additional regions to mask +:type region_to_mask: dict</p> +<dl class="field-list simple"> +<dt class="field-odd">Returns</dt> +<dd class="field-odd"><p>the reference_panel with the specified filter applied</p> +</dd> +<dt class="field-even">Return type</dt> +<dd class="field-even"><p>ref (pandas dataframe)</p> +</dd> +</dl> </dd></dl> </div> @@ -371,39 +369,39 @@ Make sure that the same SNPs are in the reference panel and the gwas</p> <span id="jass-preprocessing-save-output-module"></span><h2>jass_preprocessing.save_output module<a class="headerlink" href="#module-jass_preprocessing.save_output" title="Permalink to this headline">¶</a></h2> <dl class="function"> <dt id="jass_preprocessing.save_output.save_output"> -<code class="descclassname">jass_preprocessing.save_output.</code><code class="descname">save_output</code><span class="sig-paren">(</span><em>mgwas</em>, <em>ImpG_output_Folder</em>, <em>my_study</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.save_output.</code><code class="sig-name descname">save_output</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em>, <em class="sig-param">ImpG_output_Folder</em>, <em class="sig-param">my_study</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output" title="Permalink to this definition">¶</a></dt> <dd><p>Write the preprocessed Gwas for ldscore analysis</p> </dd></dl> <dl class="function"> <dt id="jass_preprocessing.save_output.save_output_by_chromosome"> -<code class="descclassname">jass_preprocessing.save_output.</code><code class="descname">save_output_by_chromosome</code><span class="sig-paren">(</span><em>mgwas</em>, <em>ImpG_output_Folder</em>, <em>my_study</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output_by_chromosome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output_by_chromosome" title="Permalink to this definition">¶</a></dt> +<code class="sig-prename descclassname">jass_preprocessing.save_output.</code><code class="sig-name descname">save_output_by_chromosome</code><span class="sig-paren">(</span><em class="sig-param">mgwas</em>, <em class="sig-param">ImpG_output_Folder</em>, <em class="sig-param">my_study</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/jass_preprocessing/save_output.html#save_output_by_chromosome"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#jass_preprocessing.save_output.save_output_by_chromosome" title="Permalink to this definition">¶</a></dt> <dd><p>Write the preprocessed Gwas for imputation</p> </dd></dl> </div> <div class="section" id="module-jass_preprocessing"> <span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-jass_preprocessing" title="Permalink to this headline">¶</a></h2> -<table border="1" class="longtable docutils"> +<table class="longtable docutils align-default"> <colgroup> -<col width="10%" /> -<col width="90%" /> +<col style="width: 10%" /> +<col style="width: 90%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference internal" href="#module-jass_preprocessing.map_gwas" title="jass_preprocessing.map_gwas"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_gwas</span></code></a></td> -<td>Map GWAS</td> +<tbody> +<tr class="row-odd"><td><p><a class="reference internal" href="#module-jass_preprocessing.map_gwas" title="jass_preprocessing.map_gwas"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_gwas</span></code></a></p></td> +<td><p>Map GWAS</p></td> </tr> -<tr class="row-even"><td><a class="reference internal" href="#module-jass_preprocessing.dna_utils" title="jass_preprocessing.dna_utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">dna_utils</span></code></a></td> -<td>Few fonction to to compute DNA complement</td> +<tr class="row-even"><td><p><a class="reference internal" href="#module-jass_preprocessing.dna_utils" title="jass_preprocessing.dna_utils"><code class="xref py py-obj docutils literal notranslate"><span class="pre">dna_utils</span></code></a></p></td> +<td><p>Few fonction to to compute DNA complement</p></td> </tr> -<tr class="row-odd"><td><a class="reference internal" href="#module-jass_preprocessing.map_reference" title="jass_preprocessing.map_reference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_reference</span></code></a></td> -<td>Module of function</td> +<tr class="row-odd"><td><p><a class="reference internal" href="#module-jass_preprocessing.map_reference" title="jass_preprocessing.map_reference"><code class="xref py py-obj docutils literal notranslate"><span class="pre">map_reference</span></code></a></p></td> +<td><p>Module of function</p></td> </tr> -<tr class="row-even"><td><a class="reference internal" href="#module-jass_preprocessing.compute_score" title="jass_preprocessing.compute_score"><code class="xref py py-obj docutils literal notranslate"><span class="pre">compute_score</span></code></a></td> -<td></td> +<tr class="row-even"><td><p><a class="reference internal" href="#module-jass_preprocessing.compute_score" title="jass_preprocessing.compute_score"><code class="xref py py-obj docutils literal notranslate"><span class="pre">compute_score</span></code></a></p></td> +<td><p></p></td> </tr> -<tr class="row-odd"><td><a class="reference internal" href="#module-jass_preprocessing.save_output" title="jass_preprocessing.save_output"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_output</span></code></a></td> -<td></td> +<tr class="row-odd"><td><p><a class="reference internal" href="#module-jass_preprocessing.save_output" title="jass_preprocessing.save_output"><code class="xref py py-obj docutils literal notranslate"><span class="pre">save_output</span></code></a></p></td> +<td><p></p></td> </tr> </tbody> </table> @@ -438,25 +436,16 @@ Make sure that the same SNPs are in the reference panel and the gwas</p> - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> - <script type="text/javascript" src="../_static/jquery.js"></script> - <script type="text/javascript" src="../_static/underscore.js"></script> - <script type="text/javascript" src="../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_autosummary/modules.html b/doc/_build/html/_autosummary/modules.html index 889969b..1e41c94 100644 --- a/doc/_build/html/_autosummary/modules.html +++ b/doc/_build/html/_autosummary/modules.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <script type="text/javascript" src="../_static/language_data.js"></script> + + <script type="text/javascript" src="../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> - - - <script src="../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -154,9 +156,7 @@ <li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.map_gwas">jass_preprocessing.map_gwas module</a></li> <li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.map_reference">jass_preprocessing.map_reference module</a></li> <li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing.save_output">jass_preprocessing.save_output module</a></li> -<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing">Module contents</a><ul class="simple"> -</ul> -</li> +<li class="toctree-l2"><a class="reference internal" href="jass_preprocessing.html#module-jass_preprocessing">Module contents</a></li> </ul> </li> </ul> @@ -191,25 +191,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> - <script type="text/javascript" src="../_static/jquery.js"></script> - <script type="text/javascript" src="../_static/underscore.js"></script> - <script type="text/javascript" src="../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_modules/index.html b/doc/_build/html/_modules/index.html index e6e25ee..685e610 100644 --- a/doc/_build/html/_modules/index.html +++ b/doc/_build/html/_modules/index.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <script type="text/javascript" src="../_static/language_data.js"></script> + + <script type="text/javascript" src="../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> - - - <script src="../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -171,25 +173,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> - <script type="text/javascript" src="../_static/jquery.js"></script> - <script type="text/javascript" src="../_static/underscore.js"></script> - <script type="text/javascript" src="../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_modules/jass_preprocessing/compute_score.html b/doc/_build/html/_modules/jass_preprocessing/compute_score.html index 98653d3..5f53904 100644 --- a/doc/_build/html/_modules/jass_preprocessing/compute_score.html +++ b/doc/_build/html/_modules/jass_preprocessing/compute_score.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="../../_static/language_data.js"></script> + + <script type="text/javascript" src="../../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> - - - <script src="../../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -147,7 +149,7 @@ <span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span> <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span> -<span class="n">perSS</span> <span class="o">=</span> <span class="mf">0.7</span> + <div class="viewcode-block" id="compute_z_score"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.compute_score.compute_z_score">[docs]</a><span class="k">def</span> <span class="nf">compute_z_score</span><span class="p">(</span><span class="n">mgwas</span><span class="p">):</span> <span class="sd">"""</span> @@ -168,7 +170,7 @@ <span class="k">return</span> <span class="n">mgwas</span></div> -<div class="viewcode-block" id="compute_sample_size"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.compute_score.compute_sample_size">[docs]</a><span class="k">def</span> <span class="nf">compute_sample_size</span><span class="p">(</span><span class="n">mgwas</span><span class="p">,</span> <span class="n">diagnostic_folder</span><span class="p">,</span> <span class="n">trait</span><span class="p">):</span> +<div class="viewcode-block" id="compute_sample_size"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.compute_score.compute_sample_size">[docs]</a><span class="k">def</span> <span class="nf">compute_sample_size</span><span class="p">(</span><span class="n">mgwas</span><span class="p">,</span> <span class="n">diagnostic_folder</span><span class="p">,</span> <span class="n">trait</span><span class="p">,</span> <span class="n">perSS</span> <span class="o">=</span> <span class="mf">0.7</span><span class="p">):</span> <span class="k">if</span> <span class="s1">'n'</span> <span class="ow">in</span> <span class="n">mgwas</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> <span class="n">myN</span> <span class="o">=</span> <span class="n">mgwas</span><span class="o">.</span><span class="n">n</span> @@ -192,7 +194,7 @@ <span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">"Some snp had an infinite sample size"</span><span class="p">)</span> <span class="n">myW_thres</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">percentile</span><span class="p">(</span><span class="n">myN</span><span class="o">.</span><span class="n">dropna</span><span class="p">(),</span> <span class="mi">90</span><span class="p">)</span> - <span class="n">ss_thres</span> <span class="o">=</span> <span class="n">perSS</span> <span class="o">*</span> <span class="n">myW_thres</span> + <span class="n">ss_thres</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">perSS</span><span class="p">)</span> <span class="o">*</span> <span class="n">myW_thres</span> <span class="n">mgwas</span><span class="p">[</span><span class="s2">"computed_N"</span><span class="p">]</span> <span class="o">=</span> <span class="n">myN</span> <span class="n">plt</span><span class="o">.</span><span class="n">clf</span><span class="p">()</span> <span class="n">p1</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">distplot</span><span class="p">(</span><span class="n">mgwas</span><span class="o">.</span><span class="n">computed_N</span><span class="p">[</span><span class="o">~</span><span class="n">mgwas</span><span class="o">.</span><span class="n">computed_N</span><span class="o">.</span><span class="n">isna</span><span class="p">()])</span> @@ -235,25 +237,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> - <script type="text/javascript" src="../../_static/jquery.js"></script> - <script type="text/javascript" src="../../_static/underscore.js"></script> - <script type="text/javascript" src="../../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_modules/jass_preprocessing/dna_utils.html b/doc/_build/html/_modules/jass_preprocessing/dna_utils.html index c30ed3b..431e99d 100644 --- a/doc/_build/html/_modules/jass_preprocessing/dna_utils.html +++ b/doc/_build/html/_modules/jass_preprocessing/dna_utils.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="../../_static/language_data.js"></script> + + <script type="text/javascript" src="../../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> - - - <script src="../../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -183,25 +185,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> - <script type="text/javascript" src="../../_static/jquery.js"></script> - <script type="text/javascript" src="../../_static/underscore.js"></script> - <script type="text/javascript" src="../../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_modules/jass_preprocessing/map_gwas.html b/doc/_build/html/_modules/jass_preprocessing/map_gwas.html index ec7b414..0cbd1a3 100644 --- a/doc/_build/html/_modules/jass_preprocessing/map_gwas.html +++ b/doc/_build/html/_modules/jass_preprocessing/map_gwas.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="../../_static/language_data.js"></script> + + <script type="text/javascript" src="../../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> - - - <script src="../../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -151,6 +153,9 @@ <span class="kn">import</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">gzip</span> +<span class="kn">import</span> <span class="nn">re</span> + <div class="viewcode-block" id="walkfs"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.walkfs">[docs]</a><span class="k">def</span> <span class="nf">walkfs</span><span class="p">(</span><span class="n">startdir</span><span class="p">,</span> <span class="n">findfile</span><span class="p">):</span> <span class="sd">"""</span> @@ -214,46 +219,48 @@ <span class="k">return</span> <span class="n">df</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">def_missing</span><span class="p">,</span> <span class="n">nan_vec</span><span class="p">)</span></div> -<div class="viewcode-block" id="map_columns_position"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.map_columns_position">[docs]</a><span class="k">def</span> <span class="nf">map_columns_position</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">,</span> <span class="n">GWAS_labels</span><span class="p">):</span> +<div class="viewcode-block" id="map_columns_position"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_gwas.map_columns_position">[docs]</a><span class="k">def</span> <span class="nf">map_columns_position</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">,</span> <span class="n">column_dict</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> Find column position for each specific Gwas</span> <span class="sd"> Args:</span> <span class="sd"> gwas_internal_link (str): filename of the GWAS data (with path)</span> -<span class="sd"> GWAS_labels (str): filename of the csv information file</span> +<span class="sd"> GWAS_labels (pd.DataFrame): corresponding row of the information file</span> <span class="sd"> Return:</span> <span class="sd"> pandas Series with column position and column names as index</span> <span class="sd"> """</span> - <span class="n">column_dict</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">GWAS_labels</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s1">'</span><span class="se">\t</span><span class="s1">'</span><span class="p">,</span> <span class="n">na_values</span><span class="o">=</span><span class="s1">'na'</span><span class="p">,</span> <span class="n">index_col</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> - + <span class="nb">print</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">)</span> <span class="n">gwas_file</span> <span class="o">=</span> <span class="n">gwas_internal_link</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> - - <span class="n">my_labels</span> <span class="o">=</span> <span class="n">column_dict</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">gwas_file</span><span class="p">]</span> - <span class="c1">#Our standart labels:</span> - <span class="n">reference_label</span> <span class="o">=</span> <span class="n">column_dict</span><span class="o">.</span><span class="n">columns</span><span class="o">.</span><span class="n">tolist</span><span class="p">()</span> - <span class="c1"># labels in the GWAS files</span> - <span class="n">target_lab</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">my_labels</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> - <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">)</span> + <span class="n">reference_label</span> <span class="o">=</span> <span class="n">column_dict</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">tolist</span><span class="p">()</span> + <span class="nb">print</span><span class="p">(</span><span class="n">reference_label</span><span class="p">)</span> + <span class="c1"># labels in the GWAS files</span> + <span class="n">target_lab</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">column_dict</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span> + <span class="n">is_gzipped</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">".gz$"</span><span class="p">,</span> <span class="n">gwas_internal_link</span><span class="p">)</span> + <span class="k">if</span> <span class="n">is_gzipped</span><span class="p">:</span> + <span class="n">f</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">)</span> + <span class="n">line</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> + <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">)</span> + <span class="n">line</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> <span class="n">count_line</span> <span class="o">=</span> <span class="mi">0</span> - <span class="n">line</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> - <span class="nb">print</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> - <span class="n">header</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> + <span class="n">header</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> <span class="k">def</span> <span class="nf">get_position</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">x</span><span class="p">):</span> <span class="k">try</span><span class="p">:</span> <span class="k">return</span> <span class="n">I</span><span class="o">.</span><span class="n">get_loc</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span> - <span class="n">label_position</span> <span class="o">=</span> <span class="p">[</span><span class="n">get_position</span><span class="p">(</span><span class="n">header</span><span class="p">,</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">target_lab</span><span class="p">]</span> + <span class="n">label_position</span> <span class="o">=</span> <span class="p">[</span><span class="n">get_position</span><span class="p">(</span><span class="n">header</span><span class="p">,</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">target_lab</span><span class="p">]</span> <span class="n">mapgw</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Series</span><span class="p">(</span><span class="n">label_position</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">reference_label</span><span class="p">)</span> <span class="n">mapgw</span> <span class="o">=</span> <span class="n">mapgw</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="o">~</span><span class="n">mapgw</span><span class="o">.</span><span class="n">isna</span><span class="p">()]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span> <span class="n">mapgw</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> - <span class="nb">print</span><span class="p">(</span><span class="n">mapgw</span><span class="p">)</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="k">return</span> <span class="n">mapgw</span></div> @@ -269,18 +276,28 @@ <span class="sd"> Return:</span> <span class="sd"> a pandas dataframe with missing value all equal to np.nan</span> <span class="sd"> """</span> - + <span class="nb">print</span><span class="p">(</span><span class="s2">"Reading file:"</span><span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">)</span> + <span class="n">is_gzipped</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">".gz$"</span><span class="p">,</span> <span class="n">gwas_internal_link</span><span class="p">)</span> + <span class="k">if</span> <span class="n">is_gzipped</span><span class="p">:</span> + <span class="n">compression</span> <span class="o">=</span> <span class="s1">'gzip'</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">compression</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="nb">print</span><span class="p">(</span><span class="n">column_map</span><span class="o">.</span><span class="n">values</span><span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="n">column_map</span><span class="o">.</span><span class="n">index</span><span class="p">)</span> <span class="n">fullGWAS</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">gwas_internal_link</span><span class="p">,</span> <span class="n">delim_whitespace</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> - <span class="n">usecols</span> <span class="o">=</span> <span class="n">column_map</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> <span class="c1">#column_dict['label_position'].keys(),</span> + <span class="n">usecols</span> <span class="o">=</span> <span class="n">column_map</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">compression</span><span class="o">=</span><span class="n">compression</span><span class="p">,</span> + <span class="c1">#column_dict['label_position'].keys(),</span> <span class="n">names</span><span class="o">=</span> <span class="n">column_map</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> - <span class="n">index_col</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> - <span class="n">header</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">na_values</span><span class="o">=</span> <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'#N/A'</span><span class="p">,</span> <span class="s1">'#N/A'</span><span class="p">,</span> <span class="s1">'N/A'</span><span class="p">,</span> - <span class="s1">'#NA'</span><span class="p">,</span> <span class="s1">'-1.#IND'</span><span class="p">,</span> <span class="s1">'-1.#QNAN'</span><span class="p">,</span> - <span class="s1">'-NaN'</span><span class="p">,</span> - <span class="s1">'-nan'</span><span class="p">,</span> <span class="s1">'1.#IND'</span><span class="p">,</span> <span class="s1">'1.#QNAN'</span><span class="p">,</span> <span class="s1">'N/A'</span><span class="p">,</span> + <span class="n">header</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">na_values</span><span class="o">=</span> <span class="p">[</span><span class="s1">''</span><span class="p">,</span> <span class="s1">'#N/A'</span><span class="p">,</span> <span class="s1">'#N/A'</span><span class="p">,</span> <span class="s1">'N/A'</span><span class="p">,</span><span class="s1">'#NA'</span><span class="p">,</span> <span class="s1">'-1.#IND'</span><span class="p">,</span> <span class="s1">'-1.#QNAN'</span><span class="p">,</span> + <span class="s1">'-NaN'</span><span class="p">,</span> <span class="s1">'-nan'</span><span class="p">,</span> <span class="s1">'1.#IND'</span><span class="p">,</span> <span class="s1">'1.#QNAN'</span><span class="p">,</span> <span class="s1">'N/A'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">,</span> <span class="s1">'NULL'</span><span class="p">,</span> <span class="s1">'NaN'</span><span class="p">,</span> - <span class="s1">'nan'</span><span class="p">,</span> <span class="s1">'na'</span><span class="p">,</span> <span class="s1">'.'</span><span class="p">])</span> - + <span class="s1">'nan'</span><span class="p">,</span> <span class="s1">'na'</span><span class="p">,</span> <span class="s1">'.'</span><span class="p">,</span> <span class="s1">'-'</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="p">{</span><span class="s2">"snpid"</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="s2">"a1"</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span><span class="s2">"a2"</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span><span class="s2">"freq"</span><span class="p">:</span><span class="nb">float</span><span class="p">,</span> <span class="s2">"z"</span><span class="p">:</span><span class="nb">float</span><span class="p">,</span><span class="s2">"se"</span><span class="p">:</span><span class="nb">float</span><span class="p">,</span> <span class="s2">"pval"</span><span class="p">:</span><span class="nb">float</span><span class="p">})</span> + <span class="nb">print</span><span class="p">(</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">head</span><span class="p">())</span> + <span class="n">fullGWAS</span><span class="o">.</span><span class="n">set_index</span><span class="p">(</span><span class="s2">"snpid"</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">head</span><span class="p">())</span> <span class="n">fullGWAS</span> <span class="o">=</span> <span class="n">fullGWAS</span><span class="p">[</span><span class="o">~</span><span class="n">fullGWAS</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">duplicated</span><span class="p">(</span><span class="n">keep</span><span class="o">=</span><span class="s1">'first'</span><span class="p">)]</span> <span class="c1">#fullGWAS = convert_missing_values(fullGWAS)</span> @@ -314,25 +331,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> - <script type="text/javascript" src="../../_static/jquery.js"></script> - <script type="text/javascript" src="../../_static/underscore.js"></script> - <script type="text/javascript" src="../../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_modules/jass_preprocessing/map_reference.html b/doc/_build/html/_modules/jass_preprocessing/map_reference.html index 336b4d0..3279e2d 100644 --- a/doc/_build/html/_modules/jass_preprocessing/map_reference.html +++ b/doc/_build/html/_modules/jass_preprocessing/map_reference.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="../../_static/language_data.js"></script> + + <script type="text/javascript" src="../../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> - - - <script src="../../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -149,17 +151,37 @@ <span class="kn">import</span> <span class="nn">jass_preprocessing.dna_utils</span> <span class="k">as</span> <span class="nn">dna_u</span> <span class="kn">import</span> <span class="nn">warnings</span> - -<div class="viewcode-block" id="read_reference"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_reference.read_reference">[docs]</a><span class="k">def</span> <span class="nf">read_reference</span><span class="p">(</span><span class="n">gwas_reference_panel</span><span class="p">):</span> +<div class="viewcode-block" id="read_reference"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_reference.read_reference">[docs]</a><span class="k">def</span> <span class="nf">read_reference</span><span class="p">(</span><span class="n">gwas_reference_panel</span><span class="p">,</span> <span class="n">mask_MHC</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">minimum_MAF</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">region_to_mask</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> helper function to name correctly the column</span> +<span class="sd"> Args:</span> +<span class="sd"> gwas_reference_panel (str): path toward the reference panel file</span> +<span class="sd"> mask_MHC (bool): Whether the MHC region should be masked or not. default is False</span> +<span class="sd"> Filter the reference panel by minimum allele frequency (hg19 coordinate)</span> +<span class="sd"> minimum_MAF (float): minimum allele frequency for a SNPs to be retain in the panel</span> +<span class="sd"> region_to_mask (dict): a list of additional regions to mask</span> +<span class="sd"> Return:</span> +<span class="sd"> ref (pandas dataframe): the reference_panel with the specified filter applied</span> <span class="sd"> """</span> - <span class="n">ref</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">REF_filename</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span> <span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">,</span> + <span class="n">ref</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">gwas_reference_panel</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span> <span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">,</span> <span class="n">names</span> <span class="o">=</span><span class="p">[</span><span class="s1">'chr'</span><span class="p">,</span> <span class="s2">"pos"</span><span class="p">,</span> <span class="s2">"snp_id"</span><span class="p">,</span> <span class="s2">"ref"</span><span class="p">,</span> <span class="s2">"alt"</span><span class="p">,</span> <span class="s2">"MAF"</span><span class="p">],</span> <span class="n">index_col</span><span class="o">=</span><span class="s2">"snp_id"</span><span class="p">)</span> + <span class="c1">#Filter Strand ambiguous</span> + <span class="n">ref</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="o">~</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">ref</span><span class="o">+</span><span class="n">ref</span><span class="o">.</span><span class="n">alt</span><span class="p">)</span><span class="o">.</span><span class="n">isin</span><span class="p">([</span><span class="s2">"AT"</span><span class="p">,</span> <span class="s2">"TA"</span><span class="p">,</span> <span class="s1">'CG'</span><span class="p">,</span><span class="s1">'GC'</span><span class="p">])]</span> + + <span class="k">if</span> <span class="n">mask_MHC</span><span class="p">:</span> + <span class="n">ref</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">loc</span><span class="p">[(</span><span class="n">ref</span><span class="o">.</span><span class="n">chr</span> <span class="o">!=</span><span class="mi">6</span><span class="p">)</span><span class="o">|</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span> <span class="o"><</span> <span class="mi">28477797</span><span class="p">)</span><span class="o">|</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span> <span class="o">></span> <span class="mi">33448354</span><span class="p">)]</span> + + <span class="k">if</span> <span class="n">minimum_MAF</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">ref</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">ref</span><span class="o">.</span><span class="n">MAF</span> <span class="o">></span> <span class="n">minimum_MAF</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">region_to_mask</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="k">for</span> <span class="n">reg</span> <span class="ow">in</span> <span class="n">region_to_mask</span><span class="p">:</span> + <span class="n">ref</span> <span class="o">=</span> <span class="n">ref</span><span class="o">.</span><span class="n">loc</span><span class="p">[(</span><span class="n">ref</span><span class="o">.</span><span class="n">chr</span> <span class="o">!=</span> <span class="n">reg</span><span class="p">[</span><span class="s2">"chr"</span><span class="p">])</span> <span class="o">|</span> <span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span> <span class="o"><</span><span class="n">reg</span><span class="p">[</span><span class="s2">"start"</span><span class="p">])</span><span class="o">|</span><span class="p">(</span><span class="n">ref</span><span class="o">.</span><span class="n">pos</span> <span class="o">></span> <span class="n">reg</span><span class="p">[</span><span class="s2">"end"</span><span class="p">])]</span> <span class="k">return</span><span class="p">(</span><span class="n">ref</span><span class="p">)</span></div> + <div class="viewcode-block" id="map_on_ref_panel"><a class="viewcode-back" href="../../_autosummary/jass_preprocessing.html#jass_preprocessing.map_reference.map_on_ref_panel">[docs]</a><span class="k">def</span> <span class="nf">map_on_ref_panel</span><span class="p">(</span><span class="n">gw_df</span> <span class="p">,</span> <span class="n">ref_panel</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> Merge Gwas dataframe with the reference panel</span> @@ -294,25 +316,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> - <script type="text/javascript" src="../../_static/jquery.js"></script> - <script type="text/javascript" src="../../_static/underscore.js"></script> - <script type="text/javascript" src="../../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_modules/jass_preprocessing/save_output.html b/doc/_build/html/_modules/jass_preprocessing/save_output.html index f9a906e..4b47c43 100644 --- a/doc/_build/html/_modules/jass_preprocessing/save_output.html +++ b/doc/_build/html/_modules/jass_preprocessing/save_output.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="../../_static/language_data.js"></script> + + <script type="text/javascript" src="../../_static/js/theme.js"></script> - + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> - - - <script src="../../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -217,25 +219,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> - <script type="text/javascript" src="../../_static/jquery.js"></script> - <script type="text/javascript" src="../../_static/underscore.js"></script> - <script type="text/javascript" src="../../_static/doctools.js"></script> - - - - - <script type="text/javascript" src="../../_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/_sources/index.rst.txt b/doc/_build/html/_sources/index.rst.txt index 733fd0b..83387d8 100644 --- a/doc/_build/html/_sources/index.rst.txt +++ b/doc/_build/html/_sources/index.rst.txt @@ -70,7 +70,7 @@ Input | 1 |14930| rs75454623 | A | G | 0.482228| +-----+-----+------------+-----+-----+---------+ -* Folder containing all raw gwas data (all chromosomes in one file) (minimal conditions?? tab separated?) +* Folder containing all raw gwas data : (all chromosomes in one file) (minimal conditions?? tab separated?) * a list containing the name of GWAS file to the string format. * A descriptor csv files that will described each GWAS summary statistic files: @@ -84,7 +84,7 @@ Input +===========================================+============================================================+ | path to the data | filename | +-------------------------------------------+------------------------------------------------------------+ -| study info fields | consortia,outcome,fullName,type,Nsample,Ncase,Ncontrol,Nsnp| +| study info fields | Consortium,Outcome,fullName,type,Nsample,Ncase,Ncontrol,Nsnp| +-------------------------------------------+------------------------------------------------------------+ | names of the header in the GWAS file | snpid,a1,a2,freq,pval,n,z,OR,se,code,imp,ncas,ncont | +-------------------------------------------+------------------------------------------------------------+ @@ -92,6 +92,7 @@ Input .. Give an example .. | I don't know | altNcas,altNcont| +Note that the combination of Consortium and outcome must be unique because it will be used as an index in the cleaning process. Here is an example of descriptor field, the field irrelevant (for example odd ratio for continuous trait) for the study must be filled with na. diff --git a/doc/_build/html/_static/basic.css b/doc/_build/html/_static/basic.css index 104f076..ea6972d 100644 --- a/doc/_build/html/_static/basic.css +++ b/doc/_build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -231,6 +231,16 @@ a.headerlink { visibility: hidden; } +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -279,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center { margin-right: auto; } +img.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + .align-left { text-align: left; } @@ -287,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center { text-align: center; } +.align-default { + text-align: center; +} + .align-right { text-align: right; } @@ -358,6 +378,11 @@ table.align-center { margin-right: auto; } +table.align-default { + margin-left: auto; + margin-right: auto; +} + table caption span.caption-number { font-style: italic; } @@ -391,6 +416,16 @@ table.citation td { border-bottom: none; } +th > p:first-child, +td > p:first-child { + margin-top: 0px; +} + +th > p:last-child, +td > p:last-child { + margin-bottom: 0px; +} + /* -- figures --------------------------------------------------------------- */ div.figure { @@ -460,11 +495,58 @@ ol.upperroman { list-style: upper-roman; } +li > p:first-child { + margin-top: 0px; +} + +li > p:last-child { + margin-bottom: 0px; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + dl { margin-bottom: 15px; } -dd p { +dd > p:first-child { margin-top: 0px; } @@ -537,6 +619,12 @@ dl.glossary dt { font-style: oblique; } +.classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} + abbr, acronym { border-bottom: dotted 1px; cursor: help; diff --git a/doc/_build/html/_static/doctools.js b/doc/_build/html/_static/doctools.js index ffadbec..b33f87f 100644 --- a/doc/_build/html/_static/doctools.js +++ b/doc/_build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -87,14 +87,13 @@ jQuery.fn.highlightText = function(text, className) { node.nextSibling)); node.nodeValue = val.substr(0, pos); if (isInSVG) { - var bbox = span.getBBox(); var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.x.baseVal.value = bbox.x; + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; rect.y.baseVal.value = bbox.y; rect.width.baseVal.value = bbox.width; rect.height.baseVal.value = bbox.height; rect.setAttribute('class', className); - var parentOfText = node.parentNode.parentNode; addItems.push({ "parent": node.parentNode, "target": rect}); diff --git a/doc/_build/html/_static/documentation_options.js b/doc/_build/html/_static/documentation_options.js index 837eacf..ad3a3d9 100644 --- a/doc/_build/html/_static/documentation_options.js +++ b/doc/_build/html/_static/documentation_options.js @@ -6,291 +6,5 @@ var DOCUMENTATION_OPTIONS = { FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SEARCH_LANGUAGE_STOP_WORDS: ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"] -}; - - - -/* Non-minified version JS is _stemmer.js if file is provided */ -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - - - - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - -function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; -} - - + NAVIGATION_WITH_KEYS: false +}; \ No newline at end of file diff --git a/doc/_build/html/_static/jquery.js b/doc/_build/html/_static/jquery.js index 644d35e..a1c07fd 100644 --- a/doc/_build/html/_static/jquery.js +++ b/doc/_build/html/_static/jquery.js @@ -1,4 +1,2 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r}); +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); diff --git a/doc/_build/html/_static/searchtools.js b/doc/_build/html/_static/searchtools.js index 7473859..6031f99 100644 --- a/doc/_build/html/_static/searchtools.js +++ b/doc/_build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -36,8 +36,10 @@ if (!Scorer) { // query found in title title: 15, + partialTitle: 7, // query found in terms - term: 5 + term: 5, + partialTerm: 2 }; } @@ -56,6 +58,14 @@ var Search = { _queued_query : null, _pulse_status : -1, + htmlToText : function(htmlString) { + var htmlElement = document.createElement('span'); + htmlElement.innerHTML = htmlString; + $(htmlElement).find('.headerlink').remove(); + docContent = $(htmlElement).find('[role=main]')[0]; + return docContent.textContent || docContent.innerText; + }, + init : function() { var params = $.getQueryParameters(); if (params.q) { @@ -120,7 +130,7 @@ var Search = { this.out = $('#search-results'); this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); this.dots = $('<span></span>').appendTo(this.title); - this.status = $('<p style="display: none"></p>').appendTo(this.out); + this.status = $('<p class="search-summary"> </p>').appendTo(this.out); this.output = $('<ul class="search"/>').appendTo(this.out); $('#search-progress').text(_('Preparing search...')); @@ -138,7 +148,6 @@ var Search = { */ query : function(query) { var i; - var stopwords = DOCUMENTATION_OPTIONS.SEARCH_LANGUAGE_STOP_WORDS; // stem the searchterms and add them to the correct list var stemmer = new Stemmer(); @@ -260,11 +269,7 @@ var Search = { displayNextItem(); }); } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { - var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX; - if (suffix === undefined) { - suffix = '.txt'; - } - $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix), + $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX, dataType: "text", complete: function(jqxhr, textstatus) { var data = jqxhr.responseText; @@ -314,12 +319,13 @@ var Search = { for (var prefix in objects) { for (var name in objects[prefix]) { var fullname = (prefix ? prefix + '.' : '') + name; - if (fullname.toLowerCase().indexOf(object) > -1) { + var fullnameLower = fullname.toLowerCase() + if (fullnameLower.indexOf(object) > -1) { var score = 0; - var parts = fullname.split('.'); + var parts = fullnameLower.split('.'); // check for different match types: exact matches of full name or // "last name" (i.e. last dotted part) - if (fullname == object || parts[parts.length - 1] == object) { + if (fullnameLower == object || parts[parts.length - 1] == object) { score += Scorer.objNameMatch; // matches in last name } else if (parts[parts.length - 1].indexOf(object) > -1) { @@ -386,6 +392,19 @@ var Search = { {files: terms[word], score: Scorer.term}, {files: titleterms[word], score: Scorer.title} ]; + // add support for partial matches + if (word.length > 2) { + for (var w in terms) { + if (w.match(word) && !terms[word]) { + _o.push({files: terms[w], score: Scorer.partialTerm}) + } + } + for (var w in titleterms) { + if (w.match(word) && !titleterms[word]) { + _o.push({files: titleterms[w], score: Scorer.partialTitle}) + } + } + } // no match but word was a required one if ($u.every(_o, function(o){return o.files === undefined;})) { @@ -425,8 +444,12 @@ var Search = { var valid = true; // check if all requirements are matched - if (fileMap[file].length != searchterms.length) - continue; + var filteredTermCount = // as search terms with length < 3 are discarded: ignore + searchterms.filter(function(term){return term.length > 2}).length + if ( + fileMap[file].length != searchterms.length && + fileMap[file].length != filteredTermCount + ) continue; // ensure that none of the excluded terms is in the search result for (i = 0; i < excluded.length; i++) { @@ -457,7 +480,8 @@ var Search = { * words. the first one is used to find the occurrence, the * latter for highlighting it. */ - makeSearchSummary : function(text, keywords, hlwords) { + makeSearchSummary : function(htmlText, keywords, hlwords) { + var text = Search.htmlToText(htmlText); var textLower = text.toLowerCase(); var start = 0; $.each(keywords, function() { diff --git a/doc/_build/html/genindex.html b/doc/_build/html/genindex.html index aa1da30..7ec4d12 100644 --- a/doc/_build/html/genindex.html +++ b/doc/_build/html/genindex.html @@ -18,32 +18,34 @@ - - + <script type="text/javascript" src="_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + + <script type="text/javascript" src="_static/js/theme.js"></script> - + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="#" /> <link rel="search" title="Search" href="search.html" /> - - - <script src="_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -146,7 +148,6 @@ <a href="#C"><strong>C</strong></a> | <a href="#D"><strong>D</strong></a> | <a href="#G"><strong>G</strong></a> - | <a href="#I"><strong>I</strong></a> | <a href="#J"><strong>J</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#R"><strong>R</strong></a> @@ -194,14 +195,6 @@ </ul></td> </tr></table> -<h2 id="I">I</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="index.html#module-impute_jass">impute_jass (module)</a> -</li> - </ul></td> -</tr></table> - <h2 id="J">J</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%; vertical-align: top;"><ul> @@ -295,25 +288,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/index.html b/doc/_build/html/index.html index d124afb..0e893ca 100644 --- a/doc/_build/html/index.html +++ b/doc/_build/html/index.html @@ -17,32 +17,34 @@ - - + <script type="text/javascript" src="_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + + <script type="text/javascript" src="_static/js/theme.js"></script> - + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> - - - <script src="_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -166,41 +168,41 @@ heterogeneous GWAS summary statistics and performs standardization and quality c <h1>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h1> <p>The QC and preprocessing step goes as follow:</p> <ul class="simple"> -<li>map column from of a specific GWAS to standardize names</li> -<li>Select GWAS SNPs that are in the input reference panel</li> -<li>Align coded allele of the GWAS with the reference panel</li> -<li>Infer Number of sample by SNPs if not present in input data</li> -<li>Filter SNPs with a small sample size</li> -<li>Normalize the effect size by sample size to have Z-scores</li> -<li>Save the output by chromosome as the following example:</li> +<li><p>map column from of a specific GWAS to standardize names</p></li> +<li><p>Select GWAS SNPs that are in the input reference panel</p></li> +<li><p>Align coded allele of the GWAS with the reference panel</p></li> +<li><p>Infer Number of sample by SNPs if not present in input data</p></li> +<li><p>Filter SNPs with a small sample size</p></li> +<li><p>Normalize the effect size by sample size to have Z-scores</p></li> +<li><p>Save the output by chromosome as the following example:</p></li> </ul> -<table border="1" class="docutils"> +<table class="docutils align-default"> <colgroup> -<col width="28%" /> -<col width="19%" /> -<col width="17%" /> -<col width="14%" /> -<col width="22%" /> +<col style="width: 28%" /> +<col style="width: 19%" /> +<col style="width: 17%" /> +<col style="width: 14%" /> +<col style="width: 22%" /> </colgroup> -<thead valign="bottom"> -<tr class="row-odd"><th class="head">rsID</th> -<th class="head">pos</th> -<th class="head">A0</th> -<th class="head">A1</th> -<th class="head">Z</th> +<thead> +<tr class="row-odd"><th class="head"><p>rsID</p></th> +<th class="head"><p>pos</p></th> +<th class="head"><p>A0</p></th> +<th class="head"><p>A1</p></th> +<th class="head"><p>Z</p></th> </tr> </thead> -<tbody valign="top"> -<tr class="row-even"><td>rs6548219</td> -<td>30762</td> -<td>A</td> -<td>G</td> -<td>-1.133</td> +<tbody> +<tr class="row-even"><td><p>rs6548219</p></td> +<td><p>30762</p></td> +<td><p>A</p></td> +<td><p>G</p></td> +<td><p>-1.133</p></td> </tr> </tbody> </table> <ul class="simple"> -<li>(Optional) Save the output to one file with a chromosome column</li> +<li><p>(Optional) Save the output to one file with a chromosome column</p></li> </ul> <p>(input format needed to perform LD-score)</p> </div> @@ -214,170 +216,147 @@ heterogeneous GWAS summary statistics and performs standardization and quality c <div class="section" id="input"> <h1>Input<a class="headerlink" href="#input" title="Permalink to this headline">¶</a></h1> <ul class="simple"> -<li>A reference panel (1000 genome format). The user is expected to provide a reference panel in tsv format with the following columns in that order, without header:</li> +<li><p>A reference panel (1000 genome format). The user is expected to provide a reference panel in tsv format with the following columns in that order, without header:</p></li> </ul> -<table border="1" class="docutils"> +<table class="docutils align-default"> <colgroup> -<col width="12%" /> -<col width="12%" /> -<col width="29%" /> -<col width="12%" /> -<col width="12%" /> -<col width="22%" /> +<col style="width: 12%" /> +<col style="width: 12%" /> +<col style="width: 29%" /> +<col style="width: 12%" /> +<col style="width: 12%" /> +<col style="width: 22%" /> </colgroup> -<thead valign="bottom"> -<tr class="row-odd"><th class="head">chr</th> -<th class="head">pos</th> -<th class="head">snp_id</th> -<th class="head">ref</th> -<th class="head">alt</th> -<th class="head">MAF</th> +<thead> +<tr class="row-odd"><th class="head"><p>chr</p></th> +<th class="head"><p>pos</p></th> +<th class="head"><p>snp_id</p></th> +<th class="head"><p>ref</p></th> +<th class="head"><p>alt</p></th> +<th class="head"><p>MAF</p></th> </tr> </thead> -<tbody valign="top"> -<tr class="row-even"><td>1</td> -<td>13116</td> -<td>rs62635286</td> -<td>T</td> -<td>G</td> -<td>0.0970447</td> +<tbody> +<tr class="row-even"><td><p>1</p></td> +<td><p>13116</p></td> +<td><p>rs62635286</p></td> +<td><p>T</p></td> +<td><p>G</p></td> +<td><p>0.0970447</p></td> </tr> -<tr class="row-odd"><td>1</td> -<td>13118</td> -<td>rs200579949</td> -<td>A</td> -<td>G</td> -<td>0.0970447</td> +<tr class="row-odd"><td><p>1</p></td> +<td><p>13118</p></td> +<td><p>rs200579949</p></td> +<td><p>A</p></td> +<td><p>G</p></td> +<td><p>0.0970447</p></td> </tr> -<tr class="row-even"><td>1</td> -<td>14604</td> -<td>rs541940975</td> -<td>A</td> -<td>G</td> -<td>0.147564</td> +<tr class="row-even"><td><p>1</p></td> +<td><p>14604</p></td> +<td><p>rs541940975</p></td> +<td><p>A</p></td> +<td><p>G</p></td> +<td><p>0.147564</p></td> </tr> -<tr class="row-odd"><td>1</td> -<td>14930</td> -<td>rs75454623</td> -<td>A</td> -<td>G</td> -<td>0.482228</td> +<tr class="row-odd"><td><p>1</p></td> +<td><p>14930</p></td> +<td><p>rs75454623</p></td> +<td><p>A</p></td> +<td><p>G</p></td> +<td><p>0.482228</p></td> </tr> </tbody> </table> <ul class="simple"> -<li>Folder containing all raw gwas data (all chromosomes in one file) (minimal conditions?? tab separated?)</li> -<li>a list containing the name of GWAS file to the string format.</li> -<li>A descriptor csv files that will described each GWAS summary statistic files:<ul> -<li>a header</li> -<li>1 line per study</li> -<li>the fields are:</li> +<li><p>Folder containing all raw gwas data : (all chromosomes in one file) (minimal conditions?? tab separated?)</p></li> +<li><p>a list containing the name of GWAS file to the string format.</p></li> +<li><p>A descriptor csv files that will described each GWAS summary statistic files:</p> +<ul> +<li><p>a header</p></li> +<li><p>1 line per study</p></li> +<li><p>the fields are:</p></li> </ul> </li> </ul> -<table border="1" class="docutils"> -<colgroup> -<col width="42%" /> -<col width="58%" /> -</colgroup> -<thead valign="bottom"> -<tr class="row-odd"><th class="head">category</th> -<th class="head">field name</th> -</tr> -</thead> -<tbody valign="top"> -<tr class="row-even"><td>path to the data</td> -<td>filename</td> -</tr> -<tr class="row-odd"><td>study info fields</td> -<td>consortia,outcome,fullName,type,Nsample,Ncase,Ncontrol,Nsnp</td> -</tr> -<tr class="row-even"><td>names of the header in the GWAS file</td> -<td>snpid,a1,a2,freq,pval,n,z,OR,se,code,imp,ncas,ncont</td> -</tr> -</tbody> -</table> +<p>Note that the combination of Consortium and outcome must be unique because it will be used as an index in the cleaning process.</p> <p>Here is an example of descriptor field, the field irrelevant (for example odd ratio for continuous trait) for the study must be filled with na.</p> -<table border="1" class="docutils" id="id1"> +<table class="docutils align-default" id="id1"> <caption><span class="caption-text">GWAS information table!</span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption> <colgroup> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> -<col width="5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> +<col style="width: 5%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><table class="first last docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field-odd field"><th class="field-name">header:</th><td class="field-body">“filenameâ€</td> -</tr> -</tbody> -</table> +<tbody> +<tr class="row-odd"><td><dl class="field-list simple"> +<dt class="field-odd">header</dt> +<dd class="field-odd"><p>“filenameâ€</p> +</dd> +</dl> </td> -<td>consortia</td> -<td>outcome</td> -<td>fullName</td> -<td>type</td> -<td>Nsample</td> -<td>Ncase</td> -<td>Ncontrol</td> -<td>Nsnp</td> -<td>snpid</td> -<td>a1</td> -<td>a2</td> -<td>freq</td> -<td>pval</td> -<td>n</td> -<td>z</td> -<td>OR</td> -<td>se</td> -<td>code</td> -<td>imp</td> -<td>ncas</td> -<td>ncont</td> +<td><p>consortia</p></td> +<td><p>outcome</p></td> +<td><p>fullName</p></td> +<td><p>type</p></td> +<td><p>Nsample</p></td> +<td><p>Ncase</p></td> +<td><p>Ncontrol</p></td> +<td><p>Nsnp</p></td> +<td><p>snpid</p></td> +<td><p>a1</p></td> +<td><p>a2</p></td> +<td><p>freq</p></td> +<td><p>pval</p></td> +<td><p>n</p></td> +<td><p>z</p></td> +<td><p>OR</p></td> +<td><p>se</p></td> +<td><p>code</p></td> +<td><p>imp</p></td> +<td><p>ncas</p></td> +<td><p>ncont</p></td> </tr> -<tr class="row-even"><td>GIANT_HEIGHT_Wood_et_al.txt</td> -<td>GIANT</td> -<td>HEIGHT</td> -<td>Height</td> -<td>Anthropometry</td> -<td>253288</td> -<td>na</td> -<td>na</td> -<td>2550858</td> -<td>MarkerName</td> -<td>Allele1</td> -<td>Allele2</td> -<td>Freq.Allele1.HapMapCEU</td> -<td>p</td> -<td>N</td> -<td>b</td> -<td>na</td> -<td>SE</td> -<td>na</td> -<td>na</td> -<td>na</td> -<td>na</td> +<tr class="row-even"><td><p>GIANT_HEIGHT_Wood_et_al.txt</p></td> +<td><p>GIANT</p></td> +<td><p>HEIGHT</p></td> +<td><p>Height</p></td> +<td><p>Anthropometry</p></td> +<td><p>253288</p></td> +<td><p>na</p></td> +<td><p>na</p></td> +<td><p>2550858</p></td> +<td><p>MarkerName</p></td> +<td><p>Allele1</p></td> +<td><p>Allele2</p></td> +<td><p>Freq.Allele1.HapMapCEU</p></td> +<td><p>p</p></td> +<td><p>N</p></td> +<td><p>b</p></td> +<td><p>na</p></td> +<td><p>SE</p></td> +<td><p>na</p></td> +<td><p>na</p></td> +<td><p>na</p></td> +<td><p>na</p></td> </tr> </tbody> </table> @@ -385,74 +364,62 @@ heterogeneous GWAS summary statistics and performs standardization and quality c <div class="section" id="command-line-usage-example"> <h1>Command line usage example:<a class="headerlink" href="#command-line-usage-example" title="Permalink to this headline">¶</a></h1> <p>It is possible to launch the complete preprocessing (all steps described in section Overview section) from the command line:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">jass_preprocessing</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">--</span><span class="n">percent</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">size</span> <span class="n">PERCENT_SAMPLE_SIZE</span> - <span class="o">--</span><span class="n">gwas</span><span class="o">-</span><span class="n">info</span> <span class="n">GWAS_INFO</span> <span class="o">--</span><span class="n">ref</span><span class="o">-</span><span class="n">folder</span> <span class="n">REF_FOLDER</span> - <span class="o">--</span><span class="n">gwas</span><span class="o">-</span><span class="n">folder</span> <span class="n">GWAS_FOLDER</span> <span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span> - <span class="n">OUTPUT_FOLDER</span> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">jass_preprocessing</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">--</span><span class="n">gwas</span><span class="o">-</span><span class="n">info</span> <span class="n">GWAS_INFO</span> <span class="o">--</span><span class="n">ref</span><span class="o">-</span><span class="n">path</span> <span class="n">REF_PATH</span> + <span class="o">--</span><span class="nb">input</span><span class="o">-</span><span class="n">folder</span> <span class="n">INPUT_FOLDER</span> <span class="o">--</span><span class="n">diagnostic</span><span class="o">-</span><span class="n">folder</span> + <span class="n">DIAGNOSTIC_FOLDER</span> <span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span> <span class="n">OUTPUT_FOLDER</span> <span class="p">[</span><span class="o">--</span><span class="n">output</span><span class="o">-</span><span class="n">folder</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="n">file</span> <span class="n">OUTPUT_FOLDER_1_FILE</span><span class="p">]</span> + <span class="p">[</span><span class="o">--</span><span class="n">percent</span><span class="o">-</span><span class="n">sample</span><span class="o">-</span><span class="n">size</span> <span class="n">PERCENT_SAMPLE_SIZE</span><span class="p">]</span> + <span class="p">[</span><span class="o">--</span><span class="n">minimum</span><span class="o">-</span><span class="n">MAF</span> <span class="n">MINIMUM_MAF</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">mask</span><span class="o">-</span><span class="n">MHC</span> <span class="n">MASK_MHC</span><span class="p">]</span> + <span class="p">[</span><span class="o">--</span><span class="n">additional</span><span class="o">-</span><span class="n">masked</span><span class="o">-</span><span class="n">region</span> <span class="n">ADDITIONAL_MASKED_REGION</span><span class="p">]</span> </pre></div> </div> <div class="section" id="Named Arguments"> <h2>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline">¶</a></h2> -<table class="docutils option-list" frame="void" rules="none"> -<col class="option" /> -<col class="description" /> -<tbody valign="top"> -<tr><td class="option-group" colspan="2"> -<kbd>--percent-sample-size</kbd></td> -</tr> -<tr><td> </td><td>the proportion of the 90th percentile of the sample size used to filter the SNPs</td></tr> -<tr><td class="option-group"> -<kbd>--gwas-info</kbd></td> -<td>Path to the file describing the format of the individual GWASs files</td></tr> -<tr><td class="option-group"> -<kbd>--ref-folder</kbd></td> -<td>reference panel location (used to determine which snp to impute)</td></tr> -<tr><td class="option-group"> -<kbd>--gwas-folder</kbd></td> -<td><blockquote class="first last"> -<div>Path to the folder containing the GWASs summ stat files, must end by ‘/’</div></blockquote> -</td></tr> -<tr><td class="option-group" colspan="2"> -<kbd>--output-folder</kbd></td> -</tr> -<tr><td> </td><td>Location of main ouput folder for preprocessed GWAS files (splitted by chromosome)</td></tr> -<tr><td class="option-group" colspan="2"> -<kbd>--output-folder-1-file</kbd></td> -</tr> -<tr><td> </td><td>optional location to store the preprocessing in one tabular file with one chromosome columns</td></tr> -</tbody> -</table> +<dl class="option-list"> +<dt><kbd>--gwas-info</kbd></dt> +<dd><p>Path to the file describing the format of the individual GWASs files with correct header</p> +</dd> +<dt><kbd>--ref-path</kbd></dt> +<dd><p>reference panel location (used to determine which snp to impute)</p> +</dd> +<dt><kbd>--input-folder</kbd></dt> +<dd><p>Path to the folder containing the Raw GWASs summary statistic files, must end by ‘/’</p> +</dd> +<dt><kbd>--diagnostic-folder</kbd></dt> +<dd><p>Path to the reporting information on the PreProcessing such as the SNPs sample size distribution</p> +</dd> +<dt><kbd>--output-folder</kbd></dt> +<dd><p>Location of main ouput folder for preprocessed GWAS files (splitted by chromosome)</p> +</dd> +<dt><kbd>--output-folder-1-file</kbd></dt> +<dd><p>optional location to store the preprocessing in one tabular file with one chromosome columns (useful to compute LDSC correlation for instance)</p> +</dd> +<dt><kbd>--percent-sample-size</kbd></dt> +<dd><p>the proportion (between 0 and 1) of the 90th percentile of the sample size used to filter the SNPs</p> +<p>Default: 0.7</p> +</dd> +<dt><kbd>--minimum-MAF</kbd></dt> +<dd><p>Filter the reference panel by minimum allele frequency</p> +<p>Default: 0.01</p> +</dd> +<dt><kbd>--mask-MHC</kbd></dt> +<dd><p>Whether the MHC region should be masked or not. default is False</p> +<p>Default: False</p> +</dd> +<dt><kbd>--additional-masked-region</kbd></dt> +<dd><p>List of dictionary containing coordinate of region to mask. For example :[{‘chr’:6, ‘start’:50000000, ‘end’: 70000000}, {‘chr’:6, ‘start’:100000000, ‘end’: 120000000}]</p> +</dd> +</dl> </div> </div> <div class="section" id="indices-and-tables"> <h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1> <ul class="simple"> -<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li> -<li><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></li> +<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li> +<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li> </ul> -<span class="target" id="module-impute_jass"></span><table border="1" class="longtable docutils"> -<colgroup> -<col width="10%" /> -<col width="90%" /> -</colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><code class="xref py py-obj docutils literal notranslate"><span class="pre">imputation_launcher</span></code></td> -<td>Imputation launcher</td> -</tr> -<tr class="row-even"><td><code class="xref py py-obj docutils literal notranslate"><span class="pre">ld_matrix</span></code></td> -<td>Function set to compute LD correlation from a reference panel in predefined Region</td> -</tr> -<tr class="row-odd"><td><code class="xref py py-obj docutils literal notranslate"><span class="pre">stat_models</span></code></td> -<td>This module contain the statistical library for imputation.</td> -</tr> -<tr class="row-even"><td><code class="xref py py-obj docutils literal notranslate"><span class="pre">windows</span></code></td> -<td>implement the imputation window is sliding along the genome:</td> -</tr> -</tbody> -</table> <ul class="simple"> -<li><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></li> +<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li> </ul> </div> @@ -484,25 +451,16 @@ heterogeneous GWAS summary statistics and performs standardization and quality c - - - - - <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/objects.inv b/doc/_build/html/objects.inv index f516960de89418426bd3e9053677ae0cb36091f7..82a46b99e139cbf660b44a2c0de0fb5639805a65 100644 GIT binary patch delta 426 zcmV;b0agC21fc|wfq#@sPQx$|hW9;%5p2t2%MDl{A+ca-O`U0KYL6|C-BMOugX?h; z;<!&J;vt7k;>Y;^X8uh42+Yz4^uZ})*3=5Wy0)%K2F0b2kfP&cEriv@<EPm3S+wS~ zM32wJcyuI0IqOqI$;t&BRD3rB>rMC4&pmLONJZ^PT>T9BD}UDWuCPj+hCrsM4c9hn zE8LHA0R}Bn93uA*2sr_+>5&C5+a*-DXrtSGURq#?(&~OgF2E$@0V+7p52-0)ATZKs znh!zA1LaJz)P*?Kz4ic{fY5BeOl|QcnEAA}a=<ADB!xrt(pG$XUuc$KbW7L_RmVPR zYP9$NfMW9NvVSUHD2KQ_bCegP2SPI#sBhzg&ZvZ8SfF$%cCOX#w>{~PnEJ`@kL6?~ z)hsyc*x5gu^-ZAQ*jzVGiSf@g#SsY)Y7Q+PqKc{frT%*VE74Jlq^ZHDUckVl>&i}I zvs#Yb<l$%+w&v_bJfKn8yy%WF-d<i=bZ1ijxgZ;RG9&8JI)e49@n)mw-j)U{2{1xX Uv%?c*tpwkf{k!bZJ4Dmn(bQYoy8r+H delta 437 zcmV;m0ZRU%1gr#*fq#}ujvFBmhW9=N(PV2U+4=@qj5JafvqWXO+$M$sQQ#SSm22dB zIZ2wvueNN(j_BER^C-Tb`l&{(txpl<Phb{)JGZV$2E|vQsloTzDq8bY#-^XebdtlQ z59ota$gHWIDOU)rT)+WBLW+))wGg&nuB?0%e(HhsrhDmKFMqg9q@s2tzTGGJkk;;$ zSS6i?K&Ge-*EZ`2?prwlgBB@{vG)rJxd5)|kp(Z?H>hsWf!iG~Z7@V>bw43DU=s2O z8O-uSYKj;Lj5M0oW2oeYawb{oLLBR!J%Ua^XpSdS8~z4ny{t_RxWs^@aEw|y!jJcb zW(h{Ogw0raoPSF#jrRTnq?r6Zt;!e5P%ifz<pJq|(2OS3m+_!7D#<WxP`VU5*J{_> z8TwMD{^rlya<P?a6`XbK?0=i}k3hk(nKw>}>3vLb1>r%hp~az8F_mxf_w%=)lNPD} z7wQ297F|_#h{I@E_B}Tzr?9=wS;Q+EmCcLpipHN`zb;vHYf}EWARGH>(rxRCtlv%# f6NUR+3ao5^5rSF`SCp|5{G-gjWRLy=Q}WOd1{~U* diff --git a/doc/_build/html/py-modindex.html b/doc/_build/html/py-modindex.html index 06b433b..ecef577 100644 --- a/doc/_build/html/py-modindex.html +++ b/doc/_build/html/py-modindex.html @@ -17,13 +17,20 @@ - - + <script type="text/javascript" src="_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + + <script type="text/javascript" src="_static/js/theme.js"></script> - + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="genindex.html" /> @@ -31,21 +38,16 @@ - - - <script src="_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -143,27 +145,18 @@ <h1>Python Module Index</h1> <div class="modindex-jumpbox"> - <a href="#cap-i"><strong>i</strong></a> | <a href="#cap-j"><strong>j</strong></a> </div> <table class="indextable modindextable"> <tr class="pcap"><td></td><td> </td><td></td></tr> - <tr class="cap" id="cap-i"><td></td><td> - <strong>i</strong></td><td></td></tr> - <tr> - <td></td> - <td> - <a href="index.html#module-impute_jass"><code class="xref">impute_jass</code></a></td><td> - <em></em></td></tr> - <tr class="pcap"><td></td><td> </td><td></td></tr> <tr class="cap" id="cap-j"><td></td><td> <strong>j</strong></td><td></td></tr> <tr> <td><img src="_static/minus.png" class="toggler" id="toggle-1" style="display: none" alt="-" /></td> <td> - <code class="xref">jass_preprocessing</code></td><td> + <a href="_autosummary/jass_preprocessing.html#module-jass_preprocessing"><code class="xref">jass_preprocessing</code></a></td><td> <em></em></td></tr> <tr class="cg-1"> <td></td> @@ -220,25 +213,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); - </script> + </script> + + + + + </body> </html> \ No newline at end of file diff --git a/doc/_build/html/search.html b/doc/_build/html/search.html index 62ecb37..b5326cc 100644 --- a/doc/_build/html/search.html +++ b/doc/_build/html/search.html @@ -17,32 +17,35 @@ - - + <script type="text/javascript" src="_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + <script type="text/javascript" src="_static/searchtools.js"></script> + + <script type="text/javascript" src="_static/js/theme.js"></script> - + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="#" /> - - - <script src="_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -179,26 +182,16 @@ - - - - - <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - <script type="text/javascript" src="_static/searchtools.js"></script> - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> + + + + + <script type="text/javascript"> jQuery(function() { Search.loadIndex("searchindex.js"); }); </script> diff --git a/doc/_build/html/searchindex.js b/doc/_build/html/searchindex.js index 93bbf73..aeb01f7 100644 --- a/doc/_build/html/searchindex.js +++ b/doc/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["_autosummary/jass_preprocessing","_autosummary/modules","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["_autosummary/jass_preprocessing.rst","_autosummary/modules.rst","index.rst"],objects:{"":{impute_jass:[2,0,0,"-"]},"jass_preprocessing.compute_score":{compute_sample_size:[0,1,1,""],compute_z_score:[0,1,1,""]},"jass_preprocessing.dna_utils":{dna_complement:[0,1,1,""],dna_complement_base:[0,1,1,""]},"jass_preprocessing.map_gwas":{convert_missing_values:[0,1,1,""],gwas_internal_link:[0,1,1,""],map_columns_position:[0,1,1,""],read_gwas:[0,1,1,""],walkfs:[0,1,1,""]},"jass_preprocessing.map_reference":{compute_is_aligned:[0,1,1,""],compute_is_flipped:[0,1,1,""],compute_snp_alignement:[0,1,1,""],map_on_ref_panel:[0,1,1,""],read_reference:[0,1,1,""]},"jass_preprocessing.save_output":{save_output:[0,1,1,""],save_output_by_chromosome:[0,1,1,""]},jass_preprocessing:{compute_score:[0,0,0,"-"],dna_utils:[0,0,0,"-"],map_gwas:[0,0,0,"-"],map_reference:[0,0,0,"-"],save_output:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"90th":2,"boolean":0,"case":0,"function":0,"return":0,The:[0,2],accord:0,add:0,align:2,all:[0,2],allel:[0,2],allele1:2,allele2:2,alt:2,analysi:0,anthropometri:2,build:[],can:2,categori:2,check:[0,2],chr:2,chromosom:2,code:[0,2],column:[0,2],column_map:0,compar:0,complement:0,complet:[0,2],comput:0,compute_is_align:0,compute_is_flip:0,compute_sample_s:0,compute_scor:1,compute_snp_align:0,compute_z_scor:0,condit:2,consortia:2,contain:[0,2],content:1,continu:2,convert:0,convert_missing_valu:0,correctli:0,correspond:0,csv:[0,2],data:[0,2],datafram:0,describ:2,descriptor:2,detect:0,determin:2,diagnostic_fold:0,dna:0,dna_compl:0,dna_complement_bas:0,dna_util:1,each:[0,2],effect:2,end:2,equal:0,eventu:0,execut:2,expect:2,explor:0,fetch:0,few:0,field:2,file:[0,2],filenam:[0,2],fill:2,filter:2,find:0,findfil:0,flip:0,folder:[0,2],follow:2,fonction:0,format:2,freq:2,from:2,fullnam:2,genet:2,genom:2,giant:2,giant_height_wood_et_:2,git:2,gitlab:2,give:[],goe:2,gw_df:0,gwa:0,gwas_fold:2,gwas_info:2,gwas_internal_link:0,gwas_label:0,gwas_path:0,gwas_reference_panel:0,gwas_tabl:0,gwass:2,hapmapceu:2,hard:[],have:[0,2],header:2,height:2,helper:0,here:2,heterogen:2,how:[],http:2,imp:2,impg_output_fold:0,imput:[0,2],index:[0,2],indic:0,individu:2,infer:2,info:2,inform:0,input:0,inputbas:0,instanc:0,irrelev:2,is_flip:0,jass_pr:2,launch:2,ldscore:0,list:2,locat:2,maf:2,main:2,main_preprocess:[],make:0,map:[0,2],map_columns_posit:0,map_gwa:1,map_on_ref_panel:0,map_refer:1,markernam:2,merg:0,merge_gwa:0,mgwa:0,minim:2,miss:0,modul:[1,2],more:0,must:[0,2],my_studi:0,name:0,nan:0,nca:2,ncase:2,ncont:2,ncontrol:2,need:2,normal:2,nsampl:2,nsnp:2,number:2,odd:2,one:[0,2],option:2,order:2,ouput:2,outcom:2,output:2,output_fold:2,output_folder_1_fil:2,packag:[1,2],page:2,panda:0,panel:[0,2],param:0,paramet:0,pasteur:2,path:[0,2],per:2,percent:2,percent_sample_s:2,percentil:2,perform:2,pip3:2,pos:2,posit:0,possibl:2,preprocess:0,present:2,process:2,proport:2,provid:2,pval:2,python:2,qualiti:2,raiss:2,ratio:2,raw:[0,2],read:0,read_gwa:0,read_refer:0,ref:2,ref_fold:2,ref_panel:0,refer:[0,2],reference_panel:0,renam:0,repositori:[],rs200579949:2,rs541940975:2,rs62635286:2,rs6548219:2,rs75454623:2,rsid:2,same:0,sampl:2,save:2,save_output:1,save_output_by_chromosom:0,score:2,search:2,section:2,select:2,separ:2,seri:0,set:0,should:0,sign1:0,sign:0,size:2,small:2,snp:[0,2],snp_id:2,snpid:2,sourc:0,specif:[0,2],specifi:0,sphinx:[],split:2,standard:2,standart:0,startdir:0,stat:2,statist:[0,2],step:2,still:0,store:[0,2],str:0,string:[0,2],studi:[0,2],subfold:0,submodul:1,summ:2,summari:2,sure:0,tab:2,tabl:0,tabular:2,take:2,termin:2,than:0,thank:0,thi:[],through:0,tool:2,trait:[0,2],tsv:2,two:0,txt:2,type:[0,2],use:[],used:2,user:2,valu:0,vector:0,walk:0,walkf:0,weird:0,which:2,without:2,write:0,zscore:0},titles:["jass_preprocessing package","jass_preprocessing","Welcome to jass_preprocessing\u2019s documentation!"],titleterms:{argument:2,command:2,compute_scor:0,content:0,dna_util:0,document:2,exampl:2,gwa:2,indic:2,inform:2,input:2,instal:2,jass:2,jass_preprocess:[0,1,2],line:2,map_gwa:0,map_refer:0,modul:0,name:2,overview:2,packag:0,preprocess:2,save_output:0,submodul:0,tabl:2,usag:2,welcom:2,what:2}}) \ No newline at end of file +Search.setIndex({docnames:["_autosummary/jass_preprocessing","_autosummary/modules","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["_autosummary/jass_preprocessing.rst","_autosummary/modules.rst","index.rst"],objects:{"":{jass_preprocessing:[0,0,0,"-"]},"jass_preprocessing.compute_score":{compute_sample_size:[0,1,1,""],compute_z_score:[0,1,1,""]},"jass_preprocessing.dna_utils":{dna_complement:[0,1,1,""],dna_complement_base:[0,1,1,""]},"jass_preprocessing.map_gwas":{convert_missing_values:[0,1,1,""],gwas_internal_link:[0,1,1,""],map_columns_position:[0,1,1,""],read_gwas:[0,1,1,""],walkfs:[0,1,1,""]},"jass_preprocessing.map_reference":{compute_is_aligned:[0,1,1,""],compute_is_flipped:[0,1,1,""],compute_snp_alignement:[0,1,1,""],map_on_ref_panel:[0,1,1,""],read_reference:[0,1,1,""]},"jass_preprocessing.save_output":{save_output:[0,1,1,""],save_output_by_chromosome:[0,1,1,""]},jass_preprocessing:{compute_score:[0,0,0,"-"],dna_utils:[0,0,0,"-"],map_gwas:[0,0,0,"-"],map_reference:[0,0,0,"-"],save_output:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"90th":2,"boolean":0,"case":0,"default":[0,2],"float":0,"function":0,"return":0,For:2,The:[0,2],accord:0,add:0,addit:[0,2],additional_masked_region:2,align:2,all:[0,2],allel:[0,2],allele1:2,allele2:2,alt:2,analysi:0,anthropometri:2,appli:0,becaus:2,between:2,bool:0,can:2,check:[0,2],chr:2,chromosom:2,clean:2,code:[0,2],column:[0,2],column_dict:0,column_map:0,combin:2,compar:0,complement:0,complet:[0,2],comput:[0,2],compute_is_align:0,compute_is_flip:0,compute_sample_s:0,compute_scor:1,compute_snp_align:0,compute_z_scor:0,condit:2,consortia:2,consortium:2,contain:[0,2],content:1,continu:2,convert:0,convert_missing_valu:0,coordin:[0,2],correct:2,correctli:0,correl:2,correspond:0,csv:2,data:[0,2],datafram:0,describ:2,descriptor:2,detect:0,determin:2,diagnost:2,diagnostic_fold:[0,2],dict:0,dictionari:2,distribut:2,dna:0,dna_compl:0,dna_complement_bas:0,dna_util:1,each:[0,2],effect:2,end:2,equal:0,eventu:0,execut:2,expect:2,explor:0,fals:[0,2],fetch:0,few:0,field:2,file:[0,2],filenam:[0,2],fill:2,filter:[0,2],find:0,findfil:0,flip:0,folder:[0,2],follow:2,fonction:0,format:2,freq:2,frequenc:[0,2],from:2,fullnam:2,genet:2,genom:2,giant:2,giant_height_wood_et_:2,git:2,gitlab:2,goe:2,gw_df:0,gwa:0,gwas_info:2,gwas_internal_link:0,gwas_label:0,gwas_path:0,gwas_reference_panel:0,gwas_tabl:0,gwass:2,hapmapceu:2,have:[0,2],header:2,height:2,helper:0,here:2,heterogen:2,hg19:0,http:2,imp:2,impg_output_fold:0,imput:[0,2],index:[0,2],indic:0,individu:2,infer:2,info:2,inform:0,input:0,input_fold:2,inputbas:0,instanc:[0,2],irrelev:2,is_flip:0,jass_pr:2,launch:2,ldsc:2,ldscore:0,list:[0,2],locat:2,maf:2,main:2,make:0,map:[0,2],map_columns_posit:0,map_gwa:1,map_on_ref_panel:0,map_refer:1,markernam:2,mask:[0,2],mask_mhc:[0,2],merg:0,merge_gwa:0,mgwa:0,mhc:[0,2],minim:2,minimum:[0,2],minimum_maf:[0,2],miss:0,modul:[1,2],more:0,must:[0,2],my_studi:0,name:0,nan:0,nca:2,ncase:2,ncont:2,ncontrol:2,need:2,none:0,normal:2,note:2,nsampl:2,nsnp:2,number:2,odd:2,one:[0,2],option:2,order:2,ouput:2,outcom:2,output:2,output_fold:2,output_folder_1_fil:2,packag:[1,2],page:2,panda:0,panel:[0,2],param:0,paramet:0,pasteur:2,path:[0,2],per:2,percent:2,percent_sample_s:2,percentil:2,perform:2,perss:0,pip3:2,pos:2,posit:0,possibl:2,preprocess:0,present:2,process:2,proport:2,provid:2,pval:2,python:2,qualiti:2,raiss:2,ratio:2,raw:[0,2],read:0,read_gwa:0,read_refer:0,ref:[0,2],ref_panel:0,ref_path:2,refer:[0,2],reference_panel:0,region:[0,2],region_to_mask:0,renam:0,report:2,retain:0,row:0,rs200579949:2,rs541940975:2,rs62635286:2,rs6548219:2,rs75454623:2,rsid:2,same:0,sampl:2,save:2,save_output:1,save_output_by_chromosom:0,score:2,search:2,section:2,select:2,separ:2,seri:0,set:0,should:[0,2],sign1:0,sign:0,size:2,small:2,snp:[0,2],snp_id:2,snpid:2,sourc:0,specif:[0,2],specifi:0,split:2,standard:2,standart:0,start:2,startdir:0,statist:[0,2],step:2,still:0,store:[0,2],str:0,string:[0,2],studi:[0,2],subfold:0,submodul:1,summari:2,sure:0,tab:2,tabl:0,tabular:2,take:2,termin:2,than:0,thank:0,through:0,tool:2,toward:0,trait:[0,2],tsv:2,two:0,txt:2,type:[0,2],uniqu:2,used:2,useful:2,user:2,valu:0,vector:0,walk:0,walkf:0,weird:0,whether:[0,2],which:2,without:2,write:0,zscore:0},titles:["jass_preprocessing package","jass_preprocessing","Welcome to jass_preprocessing\u2019s documentation!"],titleterms:{argument:2,command:2,compute_scor:0,content:0,dna_util:0,document:2,exampl:2,gwa:2,indic:2,inform:2,input:2,instal:2,jass:2,jass_preprocess:[0,1,2],line:2,map_gwa:0,map_refer:0,modul:0,name:2,overview:2,packag:0,preprocess:2,save_output:0,submodul:0,tabl:2,usag:2,welcom:2,what:2}}) \ No newline at end of file diff --git a/doc/source/reference.bib b/doc/source/reference.bib new file mode 100644 index 0000000..83b447b --- /dev/null +++ b/doc/source/reference.bib @@ -0,0 +1,48 @@ +@article{Pasaniuc2014, +abstract = {MOTIVATION Imputation using external reference panels (e.g. 1000 Genomes) is a widely used approach for increasing power in genome-wide association studies and meta-analysis. Existing hidden Markov models (HMM)-based imputation approaches require individual-level genotypes. Here, we develop a new method for Gaussian imputation from summary association statistics, a type of data that is becoming widely available. RESULTS In simulations using 1000 Genomes (1000G) data, this method recovers 84{\%} (54{\%}) of the effective sample size for common ({\textgreater}5{\%}) and low-frequency (1-5{\%}) variants [increasing to 87{\%} (60{\%}) when summary linkage disequilibrium information is available from target samples] versus the gold standard of 89{\%} (67{\%}) for HMM-based imputation, which cannot be applied to summary statistics. Our approach accounts for the limited sample size of the reference panel, a crucial step to eliminate false-positive associations, and it is computationally very fast. As an empirical demonstration, we apply our method to seven case-control phenotypes from the Wellcome Trust Case Control Consortium (WTCCC) data and a study of height in the British 1958 birth cohort (1958BC). Gaussian imputation from summary statistics recovers 95{\%} (105{\%}) of the effective sample size (as quantified by the ratio of [Formula: see text] association statistics) compared with HMM-based imputation from individual-level genotypes at the 227 (176) published single nucleotide polymorphisms (SNPs) in the WTCCC (1958BC height) data. In addition, for publicly available summary statistics from large meta-analyses of four lipid traits, we publicly release imputed summary statistics at 1000G SNPs, which could not have been obtained using previously published methods, and demonstrate their accuracy by masking subsets of the data. We show that 1000G imputation using our approach increases the magnitude and statistical evidence of enrichment at genic versus non-genic loci for these traits, as compared with an analysis without 1000G imputation. Thus, imputation of summary statistics will be a valuable tool in future functional enrichment analyses. AVAILABILITY AND IMPLEMENTATION Publicly available software package available at http://bogdan.bioinformatics.ucla.edu/software/. CONTACT bpasaniuc@mednet.ucla.edu or aprice@hsph.harvard.edu SUPPLEMENTARY INFORMATION Supplementary materials are available at Bioinformatics online.}, +archivePrefix = {arXiv}, +arxivId = {arXiv:1309.3258v1}, +author = {Pasaniuc, Bogdan and Zaitlen, Noah and Shi, Huwenbo and Bhatia, Gaurav and Gusev, Alexander and Pickrell, Joseph and Hirschhorn, Joel and Strachan, David P. and Patterson, Nick and Price, Alkes L.}, +doi = {10.1093/bioinformatics/btu416}, +eprint = {arXiv:1309.3258v1}, +file = {:home/hjulienn/.local/share/data/Mendeley Ltd./Mendeley Desktop/Downloaded/Pasaniuc et al. - 2014 - Fast and accurate imputation of summary statistics enhances evidence of functional enrichment.pdf:pdf}, +issn = {13674811}, +journal = {Bioinformatics (Oxford, England)}, +keywords = {Hughes}, +mendeley-tags = {Hughes}, +number = {20}, +pages = {2906--2914}, +pmid = {24990607}, +title = {{Fast and accurate imputation of summary statistics enhances evidence of functional enrichment}}, +volume = {30}, +year = {2014} +} + +@article{Berisa2015, +abstract = {We present a method to identify approximately independent blocks of linkage disequilibrium (LD) in the human genome. These blocks enable automated analysis of multiple genome-wide association studies.}, +author = {Berisa, Tomaz and Pickrell, Joseph K.}, +doi = {10.1093/bioinformatics/btv546}, +file = {:home/hjulienn/.local/share/data/Mendeley Ltd./Mendeley Desktop/Downloaded/Berisa, Pickrell - 2015 - Approximately independent linkage disequilibrium blocks in human populations.pdf:pdf}, +isbn = {1367-4811 (Electronic) 1367-4803 (Linking)}, +issn = {14602059}, +journal = {Bioinformatics}, +mendeley-groups = {Genetics}, +number = {2}, +pages = {283--285}, +pmid = {26395773}, +title = {{Approximately independent linkage disequilibrium blocks in human populations}}, +volume = {32}, +year = {2015} +} + + +@article{lee2013dist, + title={DIST: direct imputation of summary statistics for unmeasured SNPs}, + author={Lee, Donghyung and Bigdeli, T Bernard and Riley, Brien P and Fanous, Ayman H and Bacanu, Silviu-Alin}, + journal={Bioinformatics}, + volume={29}, + number={22}, + pages={2925--2927}, + year={2013}, + publisher={Oxford University Press} +} diff --git a/jass_preprocessing/__main__.py b/jass_preprocessing/__main__.py index 6c989c0..b9ca5f3 100644 --- a/jass_preprocessing/__main__.py +++ b/jass_preprocessing/__main__.py @@ -48,7 +48,7 @@ def launch_preprocessing(args): GWAS_link = jp.map_gwas.walkfs(args.input_folder, gwas_filename)[2] mapgw = jp.map_gwas.map_columns_position(GWAS_link, gwas_map.loc[tag]) - gw_df = jp.map_gwas.read_gwas(GWAS_link, mapgw) + gw_df = jp.map_gwas.read_gwas(GWAS_link, mapgw, imputation_treshold=eval(args.imputation_quality_treshold)) if args.additional_masked_region is None: ref = jp.map_reference.read_reference(args.ref_path, bool(args.mask_MHC), float(args.minimum_MAF)) @@ -85,6 +85,8 @@ def add_preprocessing_argument(): parser.add_argument('--mask-MHC', required=False, help= "Whether the MHC region should be masked or not. default is False", default=False) parser.add_argument('--additional-masked-region', required=False, help= "List of dictionary containing coordinate of region to mask. For example :[{'chr':6, 'start':50000000, 'end': 70000000}, {'chr':6, 'start':100000000, 'end': 120000000}]", default=None) + parser.add_argument('--imputation-quality-treshold', required=False, help= "minimum imputation quality in summary statistics", default=None) + parser.set_defaults(func=launch_preprocessing) return parser diff --git a/jass_preprocessing/__pycache__/compute_score.cpython-35.pyc b/jass_preprocessing/__pycache__/compute_score.cpython-35.pyc index b2269fda3bde8364ba13e9146007998e0f9aa6cb..f309bb5578658c372a0bb4aeeb4dcf60206238ee 100644 GIT binary patch delta 652 zcmYjOTWi!%5T42HWH;HG?4^5?B5qL^rIbbRrC6n2pr|POwxF=xvsJ@hLXtidvxVCF z1LQpDyT3pMeeci6gD8UFpActag`P0q%zXL2nM3l&KP-2aOQqu1(W|HT3jjai%+aa7 zMG>cOJEK*p!!f|X18IOXL0WK(Fz`Vl^t<9W`yPG#@(eLkHSG|6^-eojtq}WsH$T5N zM+S@NI22rOQN$Z+U2meHw)M4+2`NCJL25#KVR1?=sM118jq1XH*?aXvud7e`RdRgO z?`{+2LLxxgaD?z0A+aGSKx%Ls6yXRUdVowiOmg9#zHO4?lwyOL8qJOYfyW+6P7M|U z5+72XXQcwF3!8NxjP(*33J^3v(lA?nH){1_&a@zCLrP`@OwNN`Qjg7s9jx#o5?(W( zp!j@Xwy{ee8=@*hjbWLg!B8j2^oO_aMJ~5Rbz<EycPH~<q8!n}wz?!Xbtm%F3$bFE z;W+B|)f>@sd{*aBRwrVs=V6ha3+Q1PJ*|ZmtP@5(l6A|O6%J=|7-w22Gjp~#4fko& z4f{G?R1>=qFOg~>;_+~29?haF)Mfs3n1qvgGI_bP7VdLJL-HJ5=GFYG^XdOCappSg Zwl}78xi=Z#MCxLXz(p6&{SU*f`~_%!ej5M) delta 652 zcmYjOO=}ZT6g_X=d}fm7vq_VHQi9PSwid)yXf5?)Qw7N`f{^A#akOcenJx+wOQ<_H z%G<c{54aI=?Xo+6!3b^y!N1@_ymze72lw3j?z#7z$IPPgr`)L*3c2p-??;;+@B`<L zLG>+)==g1Ce0^Agl29gI0mCws1!ZS-1xjGhbAIvagQrij^K<LdhsQz;wP!3uNxwE; zwkt%BB@fZbQJ54v6wyt6O*Vzp_vBi~L;?f`5)<vY#VN5+BU?%<wYkLfo&GKx`lGx` z8{gy|!d0_zEO8<b<ZuFnyCQZG_(&wU$a6t#lj5x9owfRL0l^ZK$9%R`WF{!Fjv_S! za~p9PiH+LaVUC`seDvcAf+|mmxQ1X^e=(cuE)ud^fg(qTI3X0tH<6I9k!g`HO|%fS zk$Bp&x+V!adfj>`?9U6UEqX3}kg&>7V_0TrFw_ZBd4KzE==0Unr}k}YHVFp<z2vk+ zOZS{DnG1{hxpP6kaW?!Ck7ZESU!5J1(<Qgw-k@%;n%c9`RE?t4n5op79`4VMNO9Y} zab=Zl{Am1acC;47qc}>fEQJLkhE6mY?Hz>E@UnjIUfk`n#U%#*xgl%+b3Erwz0~dR YAE?6@lTAUlh-dR6FN*)eu#J56FLYab2mk;8 diff --git a/jass_preprocessing/__pycache__/map_gwas.cpython-35.pyc b/jass_preprocessing/__pycache__/map_gwas.cpython-35.pyc index c7ec3b42eabafcaddf309b681081255d9931337e..33f12606fa632933c72b40bde5f16c076d365a8b 100644 GIT binary patch delta 1665 zcmZvc&u`pB6vy9qZSStv`y<&jznX?klcw3Cv}yqrqEZ#LASzKn4O}dt#oF;EUN*Kn zo-`0;wTGaf3JD1ri3=Al9Fb6N@LzDl>Wvd;E+|64cV?F#2OQ7K^UQnCGtZyz{&w+X zeRZ~4b$(rW`rh|VqMzwMmjV9{M*7+3t6L8laf1d$@`}XAeu=yi@d9y^J|^<Y#4X~s z_8sB~D`~$%97~S&UE+9jwO{@2%PoW5&wey+XRC!Kn>xK&_}XBXPJgm)8thg!RazTW z@Ol%Yptf<F5lNyWqGLu3|N7VmQxCjK3qymB81)V67wDL1SkSTX5i3pVTYA}^EMs<P zk}OhRA3@bLXowh#L`JeqeFrZZsqCRmM@Xyaszo|N4vt~!r6NW1Bvt7DM4}zT5>4KX zENoSWJ;8=;)gW~33DGCG8TAa+FLdezCp77vdU5$(on56P-M}Mt7&gS)9O~D!t*est zg?@wNl-|L3aeC6`V`5D0y{W<&(ze?*e<OQT{_1kVuio>e|C;dkg7#Lc8w(MnNgVMo z+G&aSpcVI8ayQ7<o!z-Jc1<W44$Z4Ohiiw{zU*zjC|LG`^99?>-mZMg*0ZOT6_#dy zR9+h8#V|?+em8jMmp^f}XL2hMVI*@aO$MP97Aoboj0a&V#jJX;?ngZMFt;E3gZ&`Q z4H4va8u+5So0~g_VUnA15=41P1U?^x5mtH7jd|eN+kps?Q5eKs&kWPZ&+Y6Rx3ydm zb13Xpy76FtFY55HE4}j0fuDAI;ULI<cbAu(Fzu+~Nx*Z~%S~0-bGq?<Bs<xa>gs46 z6+~N^n%d;do}YBa_0mofr=bkv=q;?IS74~(ux6po9AlnMGn>_!%ccz%);7*D*It6X zz#4|b#2rL;RXf$Cn$g0zi;=!Q27Ju)i2cjD)L=t@6Heh6BwkSB1LqN7GXDl1krU>@ z5gs(BOj^_j#x#*A*i&neZizq@s2hhurDJ_UP$OO=b=QeEh))p*R88VD#Lp3*)$?=2 z=ZP;6UnG8>_!998w1b#s;?F2;@s_qL+Fm3HzE`zf)Ao|GVG-OGl@>Mk{qjU4>@HLQ z5uy@bS9$^Zx+9qVCk7!Z3O9aLE)(BCGOI738m70~?bA1EC+z*h>O+8|xK<y3YfQ0t z9vy$vYw%zY?sX1!Lkav9v|e#P1zm$Q2R(ZURFUFC=T-!vq+=fNnecNL`JFMaS-H_2 zow3c_;_{;;@T@dSLhc#<b&MOi*%QH|oE_#y8hB=c9Pum)<mLxKkmOb`6sc^xViR-X zhBD77b6pulhn9$^+3$4I$9Vy&LDnGlWp3``U|u;5<h4$yG~_vaA0q4eGT?1%ECMjC zMF4)q%c|fjFxj__wJq>4q1Sboqq!{`wozqO_+^k=X6He2nZ3#ytckH$5D$>ku4QM9 tjkQ%(Oto>m?Yi=m>_khMJIXxBZcVK(Dv{e-3`!9AE4VZ6oZECa{{r<KY5V{H delta 1217 zcmYjQPj4GV6o0epU3>q<_PTN6&=$7|Y27M<OI0;OEwo4oi33t9AuW}x#WN=BuGg!X zb=o3ZIRph&s0Xwhx%3ktl<&Zm`yRM(f>RG1P%rS_I2Fv!ynXM@oA=(l_nXt*zprk0 zgTTGD_tzI^ZGhk5f5Slj16=Cp`|bUG6L<~20f_3rE#S818^BR)Xx;&i)788S+ym}w z-uwBdeS<wJ|1|EF>*g+7JA2=JX|Stjzgf2pcBkw%c8+}v)4*j?xN8ic0GKdXFyJ^1 z;5zy$?g=xO1}xA3^>sKwgBJ9bCM*n?AT?2_X`u!a3r+x*miA}E0yXt>C7xT_P&CNX zF$s7P8<r@eg`<x-P`I!_o&lqT(1Aly(Iu*$W8gOzeh%<0P6lJlN#FbwU}3{Y<k;2G zJy>8>0$5;5j4e_0bh=3WyX3Ojn*>m-k?Zr_Ch#@jP26ORGVydKlwXSuFjO22+VNKT z!uheM3OU&CkCRkn@l^C@<9=}{`XhBze&!zTRi+a8Yvxo=77vf&bS{*<gvG9$B;(@g za5PILmK|QRccoGO>i)nEOYVKgZj`UQD{NYZ{+;8fo@99%kHo`2{=qS5%Px6nND=cP z2C6KTr%6$n>1-rBv}G5wG*LxmeL_Jhdlk5<&2o{g&ZS8vDl3;sRz&uJkcm)HEm2uq z*|92~<)Sia%TqI1R(`AF%MElKc^`lN;lVJCzZ9t|U-_F}<V>HvksHC~78^(IXg1G^ zp^i{1?+4rV4LmCM%E!Uw<4=)QJ4nF0VswnaY#N(}&ur#1m#rJVb<tdBmskrWm&to* zH=^f2!^HJAt_Qf(3nb@Qh5xXMxFv8R3XwtR>i0q~#iqxCsCk6%gr<fHf@0NY#4&FJ z54FAn`~vWG;9cMwz&GKm5ZiAP^z}r)lN#_I@GSyJv$xtg7`%1%PV<!Aj#^x#$#nSS zFe!w}sclhxt^{^kRTg1HNh*MDyWAsg8%gQ4NB67RV<Ga&8YfZ}155W=zDFjvh*(G> zm(Q`=qqq=!V6M7?6;J2WY&ebc@?yAi{R!HsO(YP6%)!rQ^f$4{4hxMfQ&J5Fe))BH med`*svPpzGEc-;L?(#wTOSsz&k+rcy`ZN3s{)XT2Z~hCsNC4pg diff --git a/jass_preprocessing/__pycache__/map_reference.cpython-35.pyc b/jass_preprocessing/__pycache__/map_reference.cpython-35.pyc index e0226d72d0a5b90b2e537f6dd35d4fdb9a64b645..d03d20df9c848f4a7b393963c7ac3aa0c54e76a8 100644 GIT binary patch delta 1737 zcmZ`(O>7%Q6n?w@iT~{+b&@JlJ0Voqh_p=uDG89~r%e!53L+JeEQQU)Gj=vv?`~(; zq>)lAm2%*Os=Xjo34xFh9Lb$42M&nqsy75u#gQ8a;Jvk*7z8Wt=b72>eeZj3X7~Gv zN0rHud_MF0#N(~P2*A(KcO`JVh_`qD;pF0)4g!C15D9n?gIXFy62t&J0H|d^q(G#j zaTWwlv(Y#Q0)P2voTu=OYT@DM&rGh?<GnOV{LkaPLTSb|03TpagCltO%cV{nj^ePV zM;MDR4x@VsQWOOcMGz%u#^D1Eif8X3Sp)T`F9huk!hSb!0K^dN11yswPKIGW4$Dzg zRM&nQ)OUTcDLB$C;zX1fc_+%KcJ~c9iox}*Ww@8<<0s(=eI?=SNj{pN!TCu}S}5Z} zFYle7U=z)3R7d!%4iKEvW`kezh3A?F+%uGHNG0vMG+b^=i&Z>dRp*(@{axle2V99@ zdZ65Dn3l}2-qqsXzOnxL3ajimj)m;aUFq*i#Sj>+E7>$1n|ZrV+Y)R?GK!FbIf~hi ze~}5<;BCuirpH#f<((?8nwBpWW$f%6GS)I}v(;`fZduZjtfAzcHhMi|mEGp_9IHEy z5~j_4Sv~dE4Kdc2R#~NCIowBo|EtqLN1SckddtIN$*7V(H*IFxov4_oCnwt7vJBrb zs2)}kW}VbIvrNxtPJ?kFOdl)fR<8w-ERiFPx24}!_I#gSgH<qv;2sm)=MBYM5(TM^ z)BoO>1Cw?HpLnjUn++4&iJOAmV%&8toCa@dbDc1Tg@<X=7V@r9cdSrfx?R(6FV*yw zwVJ-R@`PRkQ-1WVW`4o{)WU@4bLEFIX^Uz))Ljv#l;pywd+&uY%c-k0@>K>QjGLZm zD~eYG1X+Y?vUaBb7%e|NN43<`LsHB3x=&kDEBv#Ek$f1##jio(M*;r06+G4!f+?L% zlD;>F0J$-3OiSxidQ!Wr=d=;L^V*`O#*Vl3XJgu6@L}SU35t#+)F_U^Qj5EWW7GNW zp6us?h2(^G<#;<er(?*csmp5@kywp~i58WhW=P;Aip`jw(XdR{m7=Q{X-Bd{b*JUF zeQBIhZU%$tGJ4)lZXUm%{zmJ(NE$=jGMl!<PGW#1ThjKc88t{bW(lIczDy%(uDVJv zPcTRD3PIPNdX>i42o@0{b3N_<HWz%A&5yo|R4<1BsTplXFH-|GwS4?T_P$<<()MKx zwhAAgBiB#<!mC<V5#a?~2or7Wf>Kw5OmV!kj4Nt^;Is}h8K&?%VVic-3*$6WRpMNr zCqvhzt7M(iTd~<CsbP9b6^5C2xYd?7lyX$4+in=Mxm`_kD_$bjYY4R={AL(fa`0u5 zW&5@{_^~*y*}-qcOBdFWS1p7Ch9R7~VT8%<TNU{X6L!1h9;%zcwbIng4U%0WprfU( d5JV+K#gR^5SG)Tjd{#Q2*30K}6S?7B>2LKlxS#+4 delta 923 zcmZ8g&u`N(6t>f5B$>OGcE1Dyt=j~2Y;@33*aX`UTMtNZ0K}y35JibM1tm`8w2YyO zNr*d|%z*>{0350K8~7i515TWFLxKzVC7U*I<S);D?|uG0IeCBSOLc0rP_P!i{@ffc zBlI1e7@CS#)l7Exr&gEq=ruxZ6L~uF2GZC<-YMi6X*`HLm9o;9AWtnx8W)hKp+~jC z{>RBl7ax)XaY4<yKz>_62cf4Jb+rA1x`j~>L&uAzFtw&w$uB%^=kDKWNz-Q@eQvu^ zP|Haz_N2k7<JoTVtW6%Sx9lxHpv(zrO=}Nt?>LFg=@#XbxzvswMgwlDlRh9mq+Y)r zv7j#tTW?edh%gkO{5T%RCg!F7XMH+{iIB#-DpaQ}yr?2s3Z2-F7;tB-qe7TfJR^E! zqfe}FShXDt&et!f;#ywnAt>ROfn*N)EkCih0zZzam$9b&Me%@)jonZM3CKZ%4cyR1 zGBwS9k6;bYikCxY_8`lz0Du`j4`2b*0j>dD1!w?d8u$Xlz|C(eNEJANzs>$t0I9MY zg>kn-Z6)%s<eu8kG#N^hc_eD7KT&+8mD2N194$Vbesg|Swfy*_Mr|Y$I1Su-S9#{V zF6{Ezy(P87n*hg#K&>=(9L{{Uoya^yyb3kvAX8qWF{iH6@gug870Fx>xv5oYJ#m6A zUFSUFQe&~qF^ARk%=#j5TvyO8v#0~c#IN$i#s4mL^vHX{;zRQxWu3NIt<-T##FeoE zXq7tahVd?66K^YXoAB-O6@U`J3_xltHQ0jX@iEy=t37Gl3L~!@&}Ch%67}1m0Zi0W N#3V;7QY95q`U^=T&3^y@ diff --git a/jass_preprocessing/map_gwas.py b/jass_preprocessing/map_gwas.py index 0f5c35b..19a0d3c 100644 --- a/jass_preprocessing/map_gwas.py +++ b/jass_preprocessing/map_gwas.py @@ -121,7 +121,7 @@ def map_columns_position(gwas_internal_link, column_dict): f.close() return mapgw -def read_gwas( gwas_internal_link, column_map): +def read_gwas( gwas_internal_link, column_map, imputation_treshold=None): """ Read gwas raw data, fetch columns thanks to position stored in column_map and rename columns according to column_map.index @@ -155,6 +155,8 @@ def read_gwas( gwas_internal_link, column_map): print(fullGWAS.head()) fullGWAS.set_index("snpid", inplace=True) print(fullGWAS.head()) + if imputation_treshold: + fullGWAS = fullGWAS.loc[fullName.imputation_quality > imputation_treshold] fullGWAS = fullGWAS[~fullGWAS.index.duplicated(keep='first')] #fullGWAS = convert_missing_values(fullGWAS) -- GitLab