From 7d3eaaa1c1e06bde29727c9c9e517346de403d6c Mon Sep 17 00:00:00 2001 From: JC Brand Date: Mon, 3 Jun 2013 22:42:34 +0200 Subject: [PATCH] Add more info on prebinding/session support --- docs/doctrees/environment.pickle | Bin 10479 -> 10841 bytes docs/doctrees/index.doctree | Bin 69513 -> 76943 bytes docs/html/_sources/index.txt | 50 +++++++++++++++++++++++++++ docs/html/index.html | 57 +++++++++++++++++++++++++------ docs/html/searchindex.js | 2 +- docs/source/index.rst | 36 +++++++++++++++++++ 6 files changed, 134 insertions(+), 11 deletions(-) diff --git a/docs/doctrees/environment.pickle b/docs/doctrees/environment.pickle index be13ff91be0842f1972de99ec6724689657334ea..31669e05c879bbd0abc0ebe8d5b7e70328811301 100644 GIT binary patch delta 910 zcmah{O-~b16m2U|+6dUvLcge;nNAssEz~cpD29+o)IcK8NMgu1EiD}wXYkE5NX#sV z!Ic|x{{WbM=jNXG?m73|`)=OHtLtNrC8xdh zN#3~?h=e)4tj(ngnraYD$!oV$`T5jju_RR#12)?P>6zVTD~Be?3yP8Pkj-YJ72>}N zF+VTvSCE&eT3jHn5KOX$Q7C)=Qv=Uq9Bee#f|p6caKKgb2FqZODZ%Af*0qio+I|D> z$3nhMyrKPD1e3hOi1zRx=7$b83^x*uuonx#B{m67zB=cY#V^5Kw%5J_tEgCF2GSoe zOAS9!jEo<~_YBFZT#^ftA!{o6jCpMF1;Hd=!NUgXzfmbOy$u;Q;M=i??-;Rn&Q@+V z$u2AeTN~a}6&mkR3f8%9`wqC{w}9jN+&}lZ8VAg9QD3dY>QRSa5+_Fb42=uHk2q_s zqKi+~PSZ|somb&bya#^qO`e87v(C%vRBT{$6rzb1*ou2y0rbELJr39m2O+{Y`-7Hu zsOnuEGwgt6ub-|a8ln27js?K#&^JEHx=vI$jb#&>%Zh zZ(iQfiwNEa^B?f6m#GJL5qA*gVXX7}=u7;#3@`7!{C>ap%gc{!E$v-dS0bU*Mklf} ziO;zOd{kh0mSLFNI>@fAfoy9Es5)$h7-p~ruc>+P2B-KO4huY9<2g)oHDo77!|#X_ zu*r2XU7W{Vj*TBCqsxY6bPZK;jJ|~|pE?Mh=JU87592+)h8{N-+3|h!$GE|t2|d9* zdeb12tb8I=&$eOc_h;f7?9<@E=Rlm07(MC1mk@fT=Jnk_(yxBcU!C}S#T~=CQMjbs zRBRQDRR_KiPv7*Nng>6q3VP!I>Yu(F*W1SipT!T!Fb<1#d|!-WvDCwl>OAHv>^VQAB~UEe3^KCe=*KMuEkza6l$ZOe4Y`2G2gJq3+upW0y>*`iw&pk# zi4DgB!4!(Z)6j8zC0wW%2%(I*fZ(YL(jgf%DAK5cHZH6El~u#k#-W5~#kowG@I~f9 z3o0~7(OU{wUDr~fiVwwwkbp15xml4YSBiIO&6b@$*>zmQT!tFqo)mNXD*bG#<*sxz fu%V7zEyYh0r$^d@7M$>n$K-#`GxXeaJ2SrkioVdy diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree index 77a7c27f0fec47a420596a5c5885931ab5115064..8efabeebc53946402ebf136dd27182ce09459b06 100644 GIT binary patch literal 76943 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

Z@;GVqpI|OVLH|;oI~6n` zP|&}L*nDvc^&jwt9NG+hc3(EfFDgsVO3FM5b7%_%+0uYmH#Fo9{?OoXi%#IMWUdo+ z*(98`G)MgF5#Xl5v+C9B_?UnPaX9c6iL;dfdAUhh6%w^F3(FJzH>N-7D;?-C|ouJoTu&Rk} zwL#_tZVTKCfNkb$ku%s6ASKKc=aLb3{(7Z^W8XAq!-|Xf$Lz+@uVHR1|3$kEmKp+b)ebI;^yMQC)#I6W@*-Zt=zKHmPmT3WM4{l%b?#k;Pme-#{m;0ym z#7uK4=Cr1ir!7oQ8y>AAgY~kV^}{10-BGKUHd7CRoQ7*UdEyno-4@8s6E?$4$Kv%E zr)##)(mjJiHIW<-$|yt+@Ns8Vw%A;-1A0%@MC=aeg}biXP?tyAfczE z+e^XB>51XRUuc)ZM!B`p2@NkLQ^8zI?wieh`zgj+_iqC~V}M+nJ43x^UheuS_PQQ+?| z1URokDP=vI5IG9@TcjXI7?8~QsG4bXJo~|lJr&J1Zb8q>cS(wnJxx|*(@IaQD}IGBckSI&`OBt{uWDSw^H zm>MW!F%g?DyZ}do4`_Y~0$+|%wzHm|l&yz1=un=@5XAc~3}8=EzD!L+n!!_;RY!GA$xm zfHg(8@L+O7ci^s4;ME2=*nw*#K<%vOm82EsGz)V&Fqd-5ANFQu26PPCGH7Dy59?pX+YIa@i( zdX`~oNQ-NvLF-k(a}3~E4O*W@M{-=U_)3i1O z!!&42HQJyRG&-(9+u1f~A?ZQlnpR?cQTjNIja7o23>0MuQ4qd}0H;ML%^*qg5!O|n zf~+whv8`AcameHdr`n1QD@sHawiW9MM6VDrz7?w?3jB>A@TI1dvYt(d9EJReg47L2 zCJAFkD~91b7r$`(4Q8rF&D?!HZzl3n(g1J_!%d~p$?)ue;k86;KD9*F0TvRhN8rn- zl7_!A3FJKTY$V_*cIPU{c?LucE22t0#qNB@c~jskKGx}V%MT8i^py~ga=SnYUuX#H zfr3ztD#6Uq!z}9cL_36&D~UnB1GYNa`VZiWu#1oY zgrXSMQuX}1i#6R2bq2@5y_E3uKYke=e0jNoXFW@eyjyB&O_ykN2Q|u#iu6)KH=jEZ zF9UsK<^}}5T&}DHoRWRbOm~9b6$)YPWZbeyEr^?&dVb?X>j!w z7lD?f-rzDYxALO()@L}_(Fp`MaoV#OgUeIQ?to}Mo&d{LbXwJJF=iz_txqYRI+mSy(ZeN9X&FxpJc3x$* z^M(IC?a0*>HRsU`q85COirk^0<%g&RUrXp_=6_KiuZCzSJl7$>g)*vztY?)(YjB0f zbx*EWz#9ypb^%tiZ(_HT*(z2D&Qx#=`|ndsj;J;h9MtRjez)n9)NHyVO_} zW|7j8ldxOnQ*tBHKu$%fTdiwet4Vj})V!dMeH{@^_vE?a?It7vt=)_O=QJosS{p*nD)-=k3X z8Ypc>LzaR)J8#wKsMz=6OYs;L`+h#|tYRM#i2XLjpxAH66E5x0_pEoc5u2$-#eSzo z$BDhjiXD=E7jex-Ts_odl+9{5!!7SdJj8zw0$<*%goAX+jEb+7>iZPr{RSj+4=UBu z3rRLP$t)d1aYri-s)d6aYV$RP!U&c^c#9pX`j#D_I?m(u#ajfE z{kU7Y%!Lx%g%%w1j)Spqpfxy0jN2lr$5Y@3ju~jb%)t>lG-YdoL*=UZCXSWEuvI60 zQ34}c)Drjsl_Zi)w(odUkS!ln2;(#5WR(x$BNX-k0$)C?5Lw;C?I4g8Rb`#*KB90B zS~%|2Y|&QeYDXOBYWGosTUR?eSA_bNhY)2P?s%rHb-1(f<{UnGn3P(rL;dJJ#_wh~ zdxYS}@fGrX0)a1&;MX}`kaLs!%?wY7>daXAq{01^;(prTjsY8J#T{Yr8AbZ6MT*_T z`Z%nQg+kVUSM{F-w1b<5eAP}SdH!DftGHi7BPu)YRK;K$ag9l+s6u*vve~?0pNVz^EQW z;LEp_sjO#trk=uj@;eIhT?3+Ll$-&Fub>;Om$K+icFbHN4E3lLnW{?9;H*~{%J)De zMk(J{;+;x4K2XXJh-j`>dHSjU5JVvJj}YJp15GpQS(YfJ%Ip^5exgu6HBfq{cV$Ff z) zYkF40po4}ba^otG+vXf83?2g*-Aa_#Ga>P%R9`5+1&tPo%qq<9lyqnQEDuEaJrSGF zDD6Lh1cdz~0$={5DP}#(5G8EMoj)toUkp@+XP*gL>tr_@+)_D@=N2)7jCou!;xp!y zK$<521!>~Q%3l!&Hvfjem%l4HlP6>;%#(j;{69^6=2S39yTy!O6Hb>E?8enq`kbz} z205kK)5Y3I$FXJ+joo;2_XTDX&~tDC!WrmaAm1XV$*zBEs-4-jDiH8LL~K4+Y;6W# zLa1nS1lVSeU%K;HUa6N*OIs?)Rt7|^$CYmMDsmX4@E|R7KYLiOg!MCKUN~>XQ!2-S zMvN-PE9p*Eqytqg)p5W2Z5x>yX_Qhqj1|=xD+yb)7TGt zO(g1iO_NB^_L>f&g+FzTm>w08;(Am)`RYKuC)&p8iQ6)niN|!brto_+vxz*&c0hv? zw?}{rA@J*ZVpNy0fu@;l2h@%VwUdDg=HQKvTZd~qE95Q)a;!1St{NT5ci9bJic59O zvO6F5&@oFUu!B7mgJYIG@r3RF`i^~qX3WA=qhpr6G`dw;W~ai*cFYoz-kZ4QxVv!7 zf)nXvA4EX*Bm!UdRf<7^7rCG0IM8RInLfIb_V7n1%bnI||5{{_LjvdYn)N>#ao6jKSX&?YuyAb#?UDL~Y zmK{o`vbx51hC&@=pfU>~E`;fhNYmY|XY%7Te$J^He-gf+0SMlqmK46Vh#NEnGnICH zLvT(YbvK|O^)q8YQlJ9Sdl2|COA|It2E|mlTP=LH0?r8mJ7yvd*0@N1$szbsJYLOv zE+2PO^BxE!nWq>u@A-K0Wr4nDy+LE%OfqWThiY`3dFQNohol!0*UUt$mRzOI3#oC) zgdB$N5c_ZhzARFLL3(5&wC*DmE56)3d=W@$d+kF#8qkV!Iv>7U532?|PA@X=QazncKe0xyn$J4!4-+#c|lB zwWU0KbCWAiPPopKJK+iE1RMpHVP6sLX>nStl0>q{7Nw4h4CP z2?03)bYoP$RFmsec_~o&i9~EZ>-;POS?J{?1ima+F0!6wl9~whvO+;lHXxY-^-{%h z#2T2IS?L(e4RAKgXo2%hT9#BbIBH#TBXpgG@w0=NuQsVM%r3#%WPshIVxc@zkVN3; z7Yw>qBE=YuouZ6%YHUrQu~UiId>%Png#@9?)d+k^D}PzfvQO=)E?paOnnIm!pfa9C2{ef{8SMIQRxr3POw((z!;%}c44nMxD#o`ABY|$t02Fldbdr@b zfeSIuLV#6tP0q9j6e+ZqUX4G;#AlX5Ky#)V)|O}{v;t!)t&$C|8e8K0kP1G$QTf?W9B%#o84-oTcJz?U`nbsbo;5av@^Q3A5a4YRo@ z*&M+o^Ewxd=ETnT;&bF~!=UluLJaQ~(Okx5H|6R&ye*UpQfU#>jQFaWcxS$?59Avm zV)HrXu7*UQFhSr;U3toSmSt+GB_A6K)ih9LCS9vfcox+C} zbe_haZ{jmEpbD+VoRPQ*8(!URj_wa@w3PTjYZ2O*#05&N(_hcqOte`WKBjz;N$OaR$l+L;? zCb;K>gn>iG17j>nk0r$S{)oe@Qmf3x5WuVI1bH;RC(#J+D zDJ1OFg09%Znqm%()v3%A3-A?SYTRt>knV3>zAg zJ(s9jI0K@Cs$=6_%wvp&YKq zjgiZAD7;cZ+cj;-a@FN3#G@GO4oYJZl2-x<`gj!rU#?b)rXZ6Yn0#~%W*C&7SM!o< z40qQmcds_wWuA97f~>-5)^*aZQFCDFitkt=8@Oa-&l-bi&O8^o-)HeSQq4i(YfF#xtzDbo`U|e3Xz|^OBnFoi%w)*)g>nbji^;P)mFvzt zyE@3THxtpEX!s%&>n?DIT)G9qzGyDFy67H-y4OId19^1S&E`Xkl7i~w zt%?+1oxCQ{)qQ}1uIQQ`Ls{-eG?;xG0$<*)6itml#zK2~hsM9t#J8-8Xn8f=UEA%6 zPH2@Xu#HF&UnuVajTU)KL4CK9?#%QX0zuwGM6;ULI+W3=)~A&AdqD!iz7K&f@7ENw zo@IyW^7KQRTzsD16sY0>KtUDHI#2Rp z5Qc(2g20ytl^0_TR7PkGAJzDWOnjyR)vUncVf(Zg>JRL%wqr{SGIPfH6pqSGJ=;aA z@~K8ueT<(9pC+7RX=)j>@!HKSxr!bu2(C3q$-`ivMUBRkKBjzin$j(S{yt8`<_pL8 zCy+kW{0IVHKB??xJu3}$8*2Jf3i4?KlDP$%UR9l$EQQBHv4(bT$8G?|npX?n@dY%i zm1LLG9x813h)m04p2^ks343-Y$V6rWw6zTeywTCFwgqNMhb?imEyx!Z%4fi7OqP6B z1?bF@+k!0l91)xU1rmN9j3V#8fB*;is9agkip|_=sYAY`P+vAsnc3Le(-lmGc3}q{ z_R?W~wNaJP=}EJX8lJA$)YUaLH#l`>@~mlIAwR7bK+THrv+HtjN&K_>UoC|$?vh5& ztjiE00RP#p?bL<3Ay5~krkZ`&CLR#cBDm1<;UXFK^dwgX1z9U|EzL3IoeST($J?R% z!J9u_AN_<6Ujp9k7|K+dy`bXcvNG}0VF`cwSo5J@QI*EmlXnD0^;JN@sQ$m+lgUli zyL=7GgQ0&N0S=2&eVev`Mjh5r-_-a=O?>7=)KHixVGUHrDZ}g;>Q#_oLlD{zwj!9e z06?ruTI`TbK}x;_vN6@kW13oLb@GlN=f6$F=CjStcR&>?`7Q!qzNbuNJ$!4ZU>Qiu*y-Z3TD4>uOC6&H^4dL0Am><2YDx)tHP1ta&G!*HB0O0_vuOv&$&eoPhf2W6`>zuq5IF@Gdta8&N|&i9{? zJXHN>1h_>=xy^c37-}}QE^6eklF>-W;{ZSoJfX;cHOT5pl}aW1vSu__FW4*R7bdO0 zR_k}~J8-&y-)M9iIX&K_Ab$f*)&hSgZFT%|H=)Zv7_~T8tn?O*dTYJ%Pk!4$y+a;w z3dVe$W%FN%_2u6rg{yH6M5U>0h80mZV9|avoX2tKInMq=a)vYO%P*U44K9vrH@k`ElVyorssk;frvp$A5+(sqZifkB(CR3loy)us6pWZ6bcz)|r zi9XUP(FDZ$GLfVp(NZUodNc;CKE1PtH_H6hOwllZBMw(1^9g(^p3uttHvG1`GXG#F z^V=fUmq{cA=DA{~*}=21t%=kZ_Vg4gsdc3_r4h7+xl~n#did6J!YCXS=-Sig)@Axu zO0`iPsFpX%_++ML7+MzhGe2>^bx24(12u4GzxPs8CbMi4kfKE7X1z;P6(V z_UE@rD%8h2g*pJSz8pwW5NaPM6b}YVRSJ#JP~4Y|vNVl!3`_H^iF7gfbSq2K`Rzbu z=@XqS%|NU#2ayz5n%BY->Vh_wSUc!3X7%b|V;z=dd(26?^`4D#I+NrLr%NoS-Q;R{ zE2k-b+gmw(q?6Mg#KJR^q`+y=>J>cQ-JcIRUAJys%6-LY@Ehf9Hpv;zZn2!rAr}i; zIXjr&wpPwQ*~!@n zw2qA6P#*Oewc@blh!i#_T90GA-qVmmp=X#ACDLQb)q9ML8x`v?@?ykVW5qh0BAnSO z)*^m8NX7beC>EV`c?Ds58|?|B>kDrcIRdaN(vt=;!^A-u>a)SR9Ep#<9EIQXM10_G zj=C(?k4NLTE3-Y6VZ{k6oL*UiNN-ngmeadfQK?6q5rTVgd*v9y@#58-9>B~_W3L>` zk42bT&N~{vy>c8s9LW!Q21y-`;JSgdIWmG3#$Gud@m=17=v#VI0pn+MqOo z^YeJYTB9y?{W=MqVx;I;Y>?nM#LK8O`8>(Z8vzlHz-#$!i$X=#@nLIv8zK*|1!O(m z$-m}NU%9ZhP?k}ATZX)bq;<3rY6)_#0^+cea>Ih1N3e0}NtQnziw368CtUIN73r5C z$E(r@QPi)h&%EMf3G8|o@d1|Jjsjp;K)s0c%TR_~z|Z6Ih5qJ{Tu4gk?FzUcjTSRn zF4T*KLPIXX_si3JRhtcXD2zq_ViFop)&?5#Qoc;${m{5>t#3W+XL%XEAycR1F%i)h zSa4llj_;_oF@MPW!!7V726!@hA3UHB++fCUST0rAotbT1tYPN&xh)2A86wjY5!Zdd ztV8m$fv?-+9PkFMztOB)EnZI2|zT_RT~NzHQ@_u3Nn^kX{Z75a5&T)&xH(^r6( zOt}x!FWkQajbDk#4e7lg>TpmSgl5!N$1dc8Tm_)Z(_0oQYvq+n%m_YGFEsOza=0w7 z($Cu!)}#AS=)=-gK`NLwmaFyq4%8kl&1#ey5Y(vf8l}07?WMD<$h8VQnZ+Su$gkF~ zQ`&M&uEXc_xMpLpdx5-$&k0M4h3I-iNpGYGGFfgQ*w%{DT`vvEjeMWdmoL@1O@N0? zqFI#JD(=>(Xt2j=u(V!YM=+MSTz?#ROYLs}`~Z;CheTPAD`G*iNy& zuUHx?mhrzKckuH#>@-E)dncb?(yHCIBKl^4cv^IDivaE%4b^!Uk+&%2w<6hnQxO+aY3bjKZ!T{(>u2}bEegK8<93kZ&}LMX02Gnzl)XJQk;AmS@8fKK|F&e5WAw(iNXV@6k8}%3MJof zCYtZwnLFoXCYjuO?wOhIQwn5ooK4X&q<-1x{)T z!k9TKSTl>C_|^!e3Z=JrjedN@Q*?!Jv(5n|jCBp59IIOZF+kk`h^(mxpp~Q-LsT{H zjtChCeE~4I>X$pH?=;E~>e_HzA`W(`q+&1ATQ)SzDAq($FjhqhGn#oP>$-+;3_pvi z*c@qq#@l+fuUO8))U7Omy^@t(3Qg1GI1A72>m9pY@rx6OaT5oEd`6S>Zo&}rn&sJM zA{!DEIGVzyon(~6K})p^SH&1Yf1aIQ4Dw{k;r6|4Eo6j;Gejxfg}*_dk9B1Av>D{azcO*jvORFk|6`KGnw7#-JZ_u9Mv<~1Z@rx z2ws4SBHoH9igl*h@yC-qT+oa3SNl*zu#9?Jv}qMfpF{ZpU-BhyX(DI@4b3; zzp6TayZ%C@zfmui{8YJ8aQp;chn#XfQQLOv1-0#h+V)-PapnAwQ{Pl|{MrsdZB$og zmuw?@9T3^p_bU3*$wYVXoI7C zC*}D`w=(2Z^Mg)p$IY2Bh|8CYL;1Q>+i7KHXT0`Rd^hJiYD2N#$u(4|Hh!fr?blVM z>I#KwsWDhA*CuHEs&e{@Wo2d}zPZJMlN)OEOR|otO5yslf`}kukE`sGhTDm)J1JS zE$v2E%SrO-_;rNH zk)nv~*ACRAeaH8yb-z)qR#d%~T$$M&r1Iq?srP83NNT=o2kCVCN|nKC#jn>UZx&4s zyZL%@Q>Bp{E|yBkvf~tL2kWd8Oa{~Ri^NTB_xpbBu$7s^k-l>Bh2&60 zK}~&?23fbNp5iAf)p~KLc#flzE_FL)vzUbBa;fOobE;Aq@@ri>xq(Kh#1d7Tx>B;h z*_a=yqAV4>e0i{v%vY-=%iy%ljr1*;3nWoSmv4r;w9N!Rh67I zCpl}zf+OcGm~jLiW*(7BoQWE+9~Ec5kgwL0b+_mXNi^B4aOzHJQxYvSazG_Z#r3GA zrziVRwH510->o!Cg(Paxk^^26FsM2!ZZr@{D6F1bSFiNfmE){S7NBR;;2WG&dNise zR6ezwyIp#;5p`X=W|UJ!6;bR*cOy~DXHrl^4-0;e*WXicHuNAV+syYsD}IkA)Pv^P z*_cwOeq&PLAR9mVdu4SZ+eveTIp@1cPJIh zPOZ9p6rfF)saA8hb72gsUE(#)M)arr|H(YB)sY#EpthmQ&8D|;bMD!VzI>yvT?Mqb zN~2sz)P_+WHU_m#7JfT-o!jp^C{G5Yc8-fodwG{T)a#aeYp+O8G^W-)tWX9~B?o!8 z)a$PAb&(Nnb){?cer~@m9;tkxpgXe$F;P1YiJl+SF0hGiG>MKe5Vcn_%?rEIW6O;p z^f}RAc-3-9lO82jSGy>kKnsi>V5MBzRJ-`n^bUiiN?+}gOUVUz5mv!YdJN286=5x# zdux}bN24(*poVz$rEF>XOAWN%DAIoIHNCahrpFHDHx`^~-L1WD`F0Rw`Dj>AtoG`a zYOz02dp)GMET~;>rLd|SCGoW@D8n19-rfjdSZcwLUwcz}RH@RRFV(JewCZYac8|=1 z;o4i=(Rrr5qt)V79aWh~o~XSQsb3w`-iFkrFTKVN08owTRNhVo-eDMsWKqt&jOF5; zu0I0eyI@1_4r=cKY4`20p{t<pbLvAE%BkmAeiSMnIrkb$`H^c80lOS_rP`fE4^QkV_VeMwtW;1KI zNa+YIaug7Y1^3tn^!ia!{xq_IgP5h!LCj~61D_3Qp99Ix$XkJWqt23XAse;Z%$HEU z+U@2`sJPna8+|TycSlhBLdfl%aYBpkzS!kbMRx_YFNM%|$3fpgLB8x#5%&bOuY|z& ziXy&BMa-(*7psWVsffFX|1~Ir!>+ZRgN3g{9rp*dZ%`d0fP52V?h%1qtqB+6yR^jz zg4(x2j=nu2``_sj)qFRoeJ_OmejM}zWcCN5nFoW~4@2M|#Q}epz&{qvJQUP^5(58J zH1jiR=7`$Ev6?xRnt71;KZj;G=2}!vW>%bbTF){Wh}$vOFQA-X2DM*-_7j$OUwKnmap!VC4z2C*jB7*;3+r%G&+8;ycN8+G=L(cysl0O>M{u~1TMI?WWk{?-n zJXZ3>l>86G|EsYH)M<7ozQPQ}{|2%D9@PFpv1t=AApZoJN84ovysYn42|Q49v(=7xidEhUD9>Z!B)StrU&j8YZpGMNjR)RE7pMsc0yPo8)G}uf zwu;KmOg-mOp!QramdD`QMxWEPL$!;fIZ3C9F3ez{c9oY-h0`F_ZW2k2?=F~oL^1b_ z$Ml#8k@sRqrSFZ0K^LFSedPs8-wzK|`W&@Co??~0luBp%BzgctU*-~4k2sy9 z4g?fboJ0_)gYZiga|&n+IFm^^=aJcVh0?6m!9wg1O-xI1sJwLOF4Vwbh^LjSDT3P- z#hp3=E|a04(->0ohvOko(*@jUuUlR^(`7QmO);eAd+-pb83Jx_XUYpSKMN1k{9JVe zo?lA34wBzh!6UnYB2n`x`ndMK=BBMR!CgCJ0I@k@1cqOcus9%7%Hl5h;3HD2T^I5s!^W^q2-kK8_*vxCjq{I$pqy9v90C z^mqausKOr41cDDf-=fqEH!sYFiuwt}5a{G3OY z+7%@gL9gIvHNMtRPF^}R6w0{{@uJ#br$7zJyHV1hymTha zbcpOSq=Jih2$Uz_26w%@K*1$Eq<27ndWIUpW2}acp@zu-sg@b~vU<>>y5{PEssIGK zt|ACj4ZqYimm5YxP^6jj$Y-q9eW6s>l(g0x@-njU8zi3f@30_mj3RFu0h#Gg#&Z}_ z>o3Pcpk5*1MstC@bSBJXhmBkkvcBGl zc+uCp1oz!h-1m%t%Va3odl^z+@54i&t`TsfulLIf^mQ#BL|;d!58yFYU&m8lWPnsZ z$k2~jqf^%*2I~3{f1j_(WadI)J*K6mlN9+LE?DB6M!hbhNfUDla2z>tl!) zZGBvDKM}?KQ?+xUvX=*>NZlzdE{(M8oOO6eO^=28oNVYM%LID5HA|LQ*gf+ z#l33;TqZ-=zQm9kyBiOI`m%rT3uB^>zGGQ(OQKA?_zu&LbyV($F`A!Z$Sqt)U0xWn>L~3-O|%Zwu~sqPX83 z0hh^8mhUm7hQ5!7K>a|#jfNhS7ij2*cn}TEQ9r_CtcH%GhR6V^{+OYzvD%i@)kBDa zqJDxPP(Q`5t+Cnxe?}TPk9=)OUk?kRpKC%|U%!x-k@fXU#EZUuCAhzi;{Ij?TqZ-w ze#?;h`W+qu^?Ly~`uc;sKwp2vgXn9ndIXQL`dUbRkpWWu6GPnsnq^P*C_X_?e?}0f zzu=d8Vhd;i9wSc9BOhDR&*MViubP0?&)?)_Wc~ad@uHu92<|_lxKE6L%Va3YzZgNOrl*P<4jFCjf>O{0I$H_~FF7*&CA(8BB?I@T#MKQ<6V|q-4GEZPg zO-{r^pmr8;qsd+51)7|M2eGvIYF9kQYH}4dNd`!DH->udcm@4YjFW=e9p9nGJrD$H zPyAAioMCQ(+KbpZj~un@P(~1Y3;I49T`Oo`dFfD4DCT|=&%W&bf_y*}`M?p7nGU5% zGNgVF!b6}Y3%JqI!Sd3XFq0wfAq=VCL-7!(!vx&mPLUVrw+j!{@2nYWDjs9?djj=K z21s=pLtp%TM04Wrvn=%YQHLWQdY+CTP~G^Yp6M7B3!NghoJS7Z^&Rcy_6W5ZnwnPo zOnK>)-fC_Z;ze^u2=0+l+}R`GG8xJ^haojL7Y~7&C*VeN^W_DaTYv}A+)Q;89%D7P zhMFS-qR9|zWgOkMf*nWvoJXEU&{b>smSO86A$q(f zsx`M*UOF_VOY{kd6t$fwh$lr6PmV|Qm<9!0!jNiPiibcg6L6!p5&5{3X4Rnb^0Z~pyM;w!X!`J;LyLK(in8bb&ZZ2{dyUKUK-U#AKb!ZJ;p4= z!0k*sWUK?2xJ+m#!*#jDu+!&b<#Kv*8m1PkH^sCh{6FCJ1=qEF39cVQPQDDUkV>)- zK5fa#t1AQbVfb%!=Y4o|(Ln;vlarHOtMmEQQ%SKO>tv}`#obQDIU+9Oz~sgyQ21yusv z@@)+T%*ozHT?`R9y#xJ3V%$Gf8PVy{SVL{7qN?CU7SQMewxB0;e9^h6s)%lLFKDpT z*7#iyQCss}Da1fQK7v5i@oNf{N5Qn|`Qj$pv=7zLI2#0KSmU(8gi2~(l6HowZr(5Y z3AGW3P~aw^a*msGyfiWV^BGY@l?nKs=<|5x5c4RRKOjv~v*z>O7$#b%nepw?vSJXrOqOz2_;Z>5%MJAbxA;i)$ z{K4{t>2S^RlY^CfiBhprP?Zhz+@)I)5nh)4A|E9%z@$m=vn<_*Yqvw}gg5}>OnDjU=t#y3VK z={t;l7x@kBEWkh7)z0wn2zK&AbcRF?6E)La z#I_Ll&8O76AahLJ^=?r`yGd1-?`zA+dx+;}{x7NOy$~7Y<$VY+u`UYAdPaXVpl0Rx zegU~wgJk{&bArq96tm@mb)b*kKiKvoF2-y~=uTw1uf|-G6;)u?qrQY~CDyeqkFU!m zyNW3%g`6%AmK~lgHWrn$Iy2#fH{f`*>bc5>5FfZ&G6VdjJ zZy=888OOLmwDoj78F9ha0=4=_NhRLN;$w({)E`F>s828jJ%segr#4eR^L}voUtvV* zlUke`MVyeopU)Skxi9&9M`ltka-LOO|Z;o>@VrBE- zJJEK)kL&r|BI$LOyF+Zb`?LV~vfq#lsn6g8tmv}{0`)nG&4#g%igFnHzg1vvGcfd# zj1{L@1c+;k!0kjcMIhd*G`1ALV-=;~^CUEq!>YOiu@K=42m*B{(=i2s4BLV*j|Jfw zDq4L}r*M~~@Fkr>=GjmT6$^90pSKz`F^0Tb68N%CAiWLuMH$EEg1QG^Ipnr8MBW+r zz)|H_1U!=G>R!g2E)zpv<>SFJF*McMzyd-##L)c`*E%tz z>!HAg33PVG}lU zR7z%O#U25Ae~xVa^b=^j(bJ?$ue9TFe$B})AcFvUi7N4Q= z-yy&nBYtg7z$Bq^*J%!RxJVOKuKI&U{-Yp2qLF1OCkh4O$%Cm8|0J-F8d$C}nk;J8 zfx@wwAp0``O&!S1-_)m9!N<&Gym2PX$5fb8P7Py2TGc5O^W0C|!?&Icb}OpC0Jg1~ zl=|^8e%F;cX{yKZ4n6!8L7@JIU#kZ)Y-_~xsDKyOl+@ofqyG>_|EU?xyaX5vv)MN1 zPY8$qG8|q3)uFR5`wJsQD{h(^dkfL*uhaWMnVsv_>3xO+x}UA5p%XG5?CeewhC>R8 zMmgTXkRq;JJ}LZmmdly8T>e`Cw9oq12&Dc4L|E81+tb3f#V;&OeAc&y3bahUb}o}( zVB@HKDWSFlWz^c+OENo{WaxO*s!=wBqa?OnR-FQ?jM0ck8R1C*&CF0^@D*~5MG&ZQ zLPAfEFiEK~(qjxaDj}ahV{eum*(@59iE2lHf#gmI0yQ4LRLvGqLOsY#`~*RqXb_)j zm_Y^FKGx2}c}ByGU4RL}V#X$F5~3i^t_T9P8&fd7EAnaU67E*m8e3JnYpQz))jc&; zv7fD>66(#C(!GS--i92fT&+0{U@v1bkDb0~)NpP`OiArA^U0X#L6>_ScX6k%>zd7N z6g8oTzs=bpsRSbBl2e>b3M}xsxT3j_FxhUd)#XRpqPedC_|naMrc$W=Km?h$KY~CV zAQZFDiXv1_C7br|K%tv7bh&O3(Oa_(B!;!og9vPFlzv`T&uTIvbYn;>G|NI^?7<|_ z+9{Kk?+||1K4l^7q4)-&4?_^BDfqP(OLncr&P5{6FlSYlPGG7eFij_rc@_j)m3p|4 zoo>iBl`5tbuheb=w<{I!DuoEG)Wh18ir5}%tlKwBpFPH~dsGjQ;&eTO-y^za0yFUq zx}Jp~P)Fd`>Y7qmUBh)~n-rjq6sXx6DkEP*(OU;Xa|Cj(h8$@aFi)Z*MM%xZ7k9A? z0~YXccNqrEw?*nGLEtdpXgmdKp}c2ZY+du1VssdAjKsBCoF4c*&S5}E^H}2PfzRTO zeRJwK#6s{z2(Vp5Nb2OsfL0F|#1~8a2|7M=In;#`-(1UL1=Knyz=U*i-I6tH%xJ*& z|JlFiQ2;z*083mlC!D~{fvnibv|TDmEIS^+co4Zk6ahZjh4ZDf&+as#Aq$8aFA{(tffjBhi1hU)Vy%lUKXm$kFf={PXOoz(l6o^j5x6a zT1srK(;;BQI>Q02H_}LTfY_0d>LA`>UoHapwUC_YU6K=PUmIy(FOoi$r#W0N9F{bP znHQ5I*dX&jCJx1AVn|pk8`iFYves0LStVt$K6KTghM`Xe3vYh%4s{8WI|1lPxh%|0c%QqPJP%B-!1?R%L2d5RLSgh zdy7&L5jqWZku}t+0Qi}Mo{o&F258upLJ%llP_s`D6)L7un=MXVXfzCs*cNAlM7A@p z39-c)Mtn?*vk{-ce7Kcf;wKyAC4qlYZQZLtRzCzdxG@F?hkDoAuY(0Fg zFm|3{>;c*bPkfS9d?)Eu`Z(&#M`}`g%3vzFDCVmS>fjpaU{M{_cRsRJ0ojvLeBS<t**NKL|bGo5CA`O{!2h5>Xl#y#(p7!K)p&h%f2KygFVrL%&_(% z;qPL@pNznonc3{85yQ5Gmk>BI0<-XHGa__{Z4cyt8P*OD52q|dsyL)BC8e0&*sJ+n zkGL$jdJVoohp$BtsMq1wwwUDFwwOzh)^lZb>h(Is%Ou6ib&8qiGKEn4wlrTMNxi`& zb-S1@&WPkWs-_#T4udW0+Z!H;ijs!@I15&6(c&pkbWcO4%g(j)+|yL0x}I(f#i3L} zDvg*@iF$-(7>vGOoREBfS_~e>=bH9UyUJ)jJRmiQkDJQ18O8 zwR_5B?Y;}iK3yA7@75IGBNX4ODQ32YLaT1yCv>hcbZlwo@T}F!)cXO#8S85aYCWPo z`P!}*oq6m&e1J%PW(#CL2nZXU-N zDWn_m6sVizJ?rg^*(`9uM5D7vpOWa-T$NcQZ$}_-A}OSNGf|(x=|Q&u583`{1cCaD zq!+S79(B>+EYoKNob-N&(lwq~X7(U@Nm%zHIv zrUj%!jIRppeFm0$>f4QzRqNLzeq>3$j(AAYc}TgsA2AT-8wdjRO(CO&VZv>~@c7oP zD+=lXP5xU#{@a?o90R*`bUM`X9U=H#Ly$QXDRtDy_atg$jeH;R&o5*??*EP>exG&Sb;HyDq~)(GK`kPw@3UZNjoh3 z;DSveMhr%<16EkOUOwr!H{9a^hxBTkzv~6GhAOL=5 z%F`EK{Si2@kw*{&>Q6!-yEO#BCpB+IAdd=}KN~VK!>qO29B~lZjyV28z{m_UVf6^( zD2QN(aq%uw(cH?}+{&5UQjal})}EQHfIQCcdWM>bslVbK;{Odnp#F|u+pVS~s1~G4 zeHrV6mzH^`e`v=4DU3g%8PB`~84c~jmeYR;$4?rLzX;VXJux{?7CYw4bX!rcPU^!3 zr2r+_DU_+{Dt6o8{uNA6Tfa$ts=O}BiOdPo-8CIY*=wUqem=Qwb^8S=DDt{Qb3Tr< z+Z@}Y*4G6*VGjP+u8}QtxhbP8vjAKagX4BtHV?NK*MEzMoyGM`TU`Gm0Di`Kp>&|O zfnOr5eOm;9+77>L5MHq4VG7KAQ&ns)OzdEo;Cw?|7B%Y)qS|_66tPUb!OhGad8;cC z&SKe0WDveVsXx1(|leNl5MyW^d;9r`%3wM$_x6}tq9A>2~e+*266`y`1$ zwUr^I_R=b7&x5^1{LVbc**w^Xc>e#qdiI5wFq{1l1Zsa#O4c(vqoIh|peW$a&QKj7 zum@_`k(`{85*^X6ItX9fr7}Y`nUDL*3{}DE`(Q!f4Amic3e=(Up7kc{87d|kouN8R zqFehxdWLF$GeZ?po!!lervIE!VD zG+K6jmau7~uqn~H^Alqf7XNU&esfPJk8R}MV0MZ)okgl z+EyL7f(M2(|5p zV)Oa{D_>Z69EN%oP;1yCku*pkRK5Ryihf!U${gNml{OQbw!lX><$vc zb_bUcII=uzm8X^?LU#qNKONR>6R+emh;Ed;4@itmL2G;wV49upu-|R9-(z&^`8~XB zt4H4p)?=vpJvtlITBI7M`3%47)@o!%)R}-nUYvyh{*Cyxc|ncXyx0|t#ubyZHFB>Y zXEkzW1mIBLx)0FW6UYgLb(#Wu0v($?^AZ;+da4g!+}YCj_49FzG=9n!#eyKP@pJHm zQ^Msv>n+obA5)AreuEO-YQVZ1aH47aLdq^txAwgHB9NeG4?&>TOJX4}WUyHWmIP!- zgJdp+>eq5G%^`RJrzr4<0(6>v95usJ7%>Z{7vHf0)v|yz9X;VqQ5T3L7op)onVgY2 zVmh6o(S%8hh~^KTY4Bv@v5x4t%Pm!O$FzqFol~sJN6xrK^d>D@S@?|Pi)qntv6Wni zrYZuU#~@Ev5LE>dv{ge8C?yoKGKzV+6u>F<*j)Ybg;d>;ik&uZNMySxnh;liHXt7P z&iXd8K(B`J8N6;p5U5Q;Lr>O4Tk*wXnzpgjYs%ZIHkT|hiP^VA8v5`f5) z3lYH2O2}qClPa0jrHz-ETqGbDYY-WOL@b;ahp9^#mmaMz6jPh=CObE#b=0}l<(n*{ zmkK=|PWoy*;gBhL&r02Bmy%N`hba^~+}EpKi+Cu6%$Q2)^Gy16g4UssaLN4jgy%^7 zGCTz8askhJh8mML)TF3hA<-Swz%`8f4FvW_WbloMhC<(jAW&Bdp)egLE(+yTFlBzT zK)ppn$su zQy;+>aC`%TKz&rub#2Xr+G=ar!NLKB`k2Q0xL|!kW9bbpjP79ilLB|6fn(}Ax5)BM z@^xgEKZSU(jNfgT!|G-{f#F*a1nSfHwH-7j(#9}T(iWjUqtQMqXrI$)qKD98w4Pz5 z?I$~$?Y=qm*ZbEe)U7~9p}tKh-EJtIiDGk`i4-njB>y#%aT^!A@aB^J9ntV*+Xq`(*U-iepc>d&Lj_%PQ$F$gddVCAh z>hoZe%DzL`ExKMzWqpAy311+vpLy{`Qg?zA?{nx=31jdbA_N4!M`DkV;qnh8}IQe(TEgT)NPXX?8?>2}Z7 z64WnrO23qpex*~A)9s!u4w*_>D>8Zm1YtH6A}Q#M4|^8ZcWtY!1#2*Vpx_ zfVe>&XAKUt9aV_qq8mJdlIEX~8RGDCZkfU6iaLB@qVv|6OGahfK6lN22KsQJ+ zUxZ|*+Ap(ee@p;;@ebTln(A=?LYTiIz(GfXm3>Mqa758ez4CX#{fEJQs^eCOXe*X~ z630|5JhP(h^v<^WL?0fYPj!5PRN~i<{)H$=^dtgY1H%+dy+S^1y@Dw@IZ)w00<{e~ z>VOIlRM5iNLcJ|w;mToPZq|hw?H`WA#=(L(;L{dp*>EPgi^Ec!ZXA*=2iu~O)rZs$ zV9^N+510i<8>siN@nmK>Um$Ewn^$(|DYN7%u?_UUn)fbp#RA27-HOOXD)@#fqSd%u zIOB0~qC!7xaiD4Mh;1)YbsEwY){u4(06(K%6tUGPB#+D-jUZ5CgqQ4##0!j`mSBv2 ztZ+2Wa6~U^?gNTuQL`;2nlm9YySP5}Y z5G33kXppcSL+yd@;CN32f!d3-jeum&3V09&d@B1_duvkr2&sKFDZSY9RH&h1P$}Tg zuDH`ywu09+h(XIV2z51}$tUiR44<%}xB^`zcD0&KlKy?YhFg-HSY}cj=$TSU-xdFQ8 z7%i;QnspgAbD*BWT{=>i;T#66rS@^4$W?-7C!V{2&CWpS&$FY$UX!g@QG=SZ>|0hS zw1*J3s7SwvUN}CegRY|&I~+Ls!i}+>Ksy`lI&o|eQJ{2W4i{k}8Dy3ruC^I6T>$)y z`vOX5eWe_ekKjYk2b9GAdB&GQ}rOdM;8LG+l85RibqYUjc!EUSN zVhCK#`z!|Lc#>wz!6OQ}N)BfcyKF}<69OhMi-E)GacucH&NR%6;l3X^Sg75YkCt@X zbD+BXoz|Ea62P7&dW`UTtl>2_OOJ~snDZzmvvd)|&MZA1pOK}D5d`W4{MxFUNw#IF z90vRh)uK++37sSfovahm#|uA0ipWsP*0lR2LVBqo%|nZaa)I>A0GAjWE=% zx9aluSYu5KfL>6E<5-;m0O)WnfE=HEW+1nuj z+o5|IaZPWB+rdXrUu?$*SAe7NoK0$5zWciuAdoPNAW%7`X!=0pU$@KVzM|(KkJLJy zT3%A?)2U@nfNal^1!(sMIEl8tZ>WoryN)urk285k zgzYr>Yplr+2!Qsz8Ce@@5MVG17Xi+G5}a&?Mm#bO%%2KxR&1UiuQ$lCwSP$>+u7BG zXuv~=kE#93_zdnU2m)0V8oFv@l5JI61x&xd`KfA}KPCM6n!n78z(|-Sa=cw#*l8Gc zwm9fwM%rp<0}-}<&^1gFF@vs+_>R2WgaC&sk+!LD$eyimrberTrz!^O<(lLxgk+#e zX10n%sHn&Y>|7yto+cL=fkis_q5t#w0u`}ibpgJ($H*Y;m3-V;24UCPVtAn-a1iz? zJO%0^dCz)E55kysbP#s2M8^%nhRh%=qIl;i#(-1!IZuCu6*~2}VSIGse5Y%KLWW>BWjRitj)Sn0qGzoSh@=Bsw}8AygJc$=h^*!`oR$)E>zM6jQL&4p(#OY@ZDsWMWw6{|s?b|KDgNVqm5sbP z@4cWFBhULJkxqF&X63ntc>Z(5#QQ-ED!3Lwpgtf;XFbCig%%Y=O6CUz@H!1Rl1Y9@ zq9Y=x595n_hM45_eC!gF{G=7>BZ5Gaya7+}z>s(3g*Hhh8a2s}Npze^UTI7+r2KKB z>M3P<_vd)hbxu_(L%#Y1q9FPw5d`W+AsMDfHk!GAlYo3mgUD&%O+z{flf{m@8F9$V z2%}<~w+Ko^5ym!evVwn_c$&R-lAl2o*!wI3+(09QvYttY3^m!iRX}djAaWfcHeA(F zWWswd>^cx{sN(vB-oDB1lsUaa7M!?*+uZSBc4_&EA(X*lH&>*@d}UJ_F5d|c4Hs?d zRgZ9Ugmvmm4mfpe*(#*e?O-oPL!TF}J2iB()zBTp^Ixh`eF5AdlkP+is4t2vS|nY4U#z$HONZ2c9-W8W0RYsr_RLt0xN%VYh9^=B?YVKQy)8WO2IEyR8QkWkV4w5|sKcoMN7*>3!Bk=ZdpsK0IXpdCZVdI& zm~p6le}AKj)mJ|WTT9`%0gMP><1MO`ivhKva&0bAsmk)J3>e^n#0?%++wf3QE$5`+ z75hy3Q|jxGDMt7Ai>RHt|D4tRH;AWKOaE6?@lA*Xb9ev&ZY~l9WIdxF8i1HXq}lkk z0DeaUj?`>?SE3_|RNuoF_jqYGzR$t=(AMw^Wv zNpxJZ@d49pgp_|wRNZHgX2Wmv(ZLKB_Yh(r`A-nw`XZqiCP*%t1>t7`@~{SpZ8d(5 zI2crfPiZxNAt(_&m{#LXEB7yn7vF093Q=J1*9dTOi4e+qCLJ==Wbd~E@;eP89!FuT z!G=NVdnq4OKyz1IsEK4B_h6yC%KliahQdb&OWr8XejUA=--B?BY=4mSI%T`d%JxU% z`OiH+kAN-|^Ctv>dQ`Z`dWK1=qTOQuEP#K}fFoJ#V-g*aMm>%%?onc~f92zNvDhzL z>Ha1NwAjDnDNz5A_pEoDwpb<_wb*}3bezS0+E{Ez`3a)xQxW?rzMEt92lu^PLzUFO z5C_?xM1aL}p&2GgKAJ}H9|7409;2LX^U+FS=F6O2rf-dIInEWeGdj7vOcNFP@u#j{ z!WqK$qt0|^1J(hD7C(WDV)fa`sFJa+qmMzB)6cl5M1Pf(+7{`O7ZRjzh0Nz2VQ?JNG_Wwqk~ z9ixBz)8x+ZOVZzSrJvW(&6x&Y0hW4TWMV-L&6s-F$Z!D&3ee z?B+6HPf6{{#9E7kOt$XE?^;Ajb9cN$#61uMYES&yi4F>+vq7I3*}A$M>UuAYzqjD; zqw(d8$$0osX=w2xjo!Y3zMn=PsS4R&q9ggI4!{?8tyCcg@^PwEA@|$-ObP<4kc03P zsLAr4_3qbI2osG~AqPuztIqTq^1Y@C2`L{!RJ|z^u9>AWj!aO8;u|!17y?`xBecS# zn10iyy98va2FYZR*XGy`c|}h-3B+ec^dytJ+2?nuB82LMJAiLM$xXblSPhBo&CV-Y>5Eq z0}n$%)lz(gx|Sgb)N%pI%9)5E2-2daumZ8&_OdbL6oFk~V7WfpR2LUkS4vDfCz=YE zA5KL)G7rDoXf3PL@C+tSM-Zr0__dWflR}2Ul^}t%(RBHlLxA>lGDWS{MArz>v?ltr zu{(r5L&&T(WVo_xbDbhnm@ao@khSWWChFWZDGwDDVqr zS*lmFmKD}=nzhUe%R{LA)<$=ou$0#BzJ|W-NBM4MUNQEge`DW!b zBp_uC5?gmx5C=^~7?irRDku>Jn7Z?)R^S@(;_FU@D6r=v2vl7NWj&J)8EUfE5ReTT zMDFiO`#f9;lRb6<#yZ1Tr!akbfgV<3IvumMoHmzgE;6)`1z#Lt3>O7DS#N6bl*ie_ z_NFe3OIQ_iq{?B6aU-kd2RYr7FHB9TVK5h?pN+zEr+yx``q@N0|D`F@Ip7T$^l}7& zdWA@m^^Bm*l4b@40&=bfF)nDx9Q>iN;r5)+SxFz_Z*xg;#!?@wB?s^5#?EM4rYlXm zmO#U%Co^RNFw}fXorgqY6o0<((y91gTE$;LJnOLc0`dAvqzQ#yhyeS>g+uHcCnGtJ zDr_qBA_2KrgUF4&Yh`x^PAR1)j?BrU=S%+v+xa!8ZljYdR!w`Ylo#t^G-idhKNzwk zp^s|RbNa^33^d{PkWa4G$E`$1-<3WOH(RIFC7R9l3ShIa*s15=SUq1#JpUyj!mGgw z)c+a;fqJblp7o4eRCrVUuM?2hYmm$(XcLcj*a741-8`L%b&0JI)Ud+cyU=vRk>4*Dt5uz`&034p&8?@+`f35UVz=kOWx{1=4*cHc zz~uly4qW__kwRSoj*t;=KoF=m;+K;|FCG4%WEy~&gJ~#qANeciTgvU9QKOhLU4!Ce{C@1D0=V7#nCvR#>-nikO^fuJ zd5%?UdLNmRnKA_$OT}I7({odg68f#^DQ!}cK*}rPmOLhvf-##X+#@!f$?-T1Cl#qN z47s4i6Sj&40fM9w5m$ap>g3Pe(w;~AC)uJWc*`@_GYnZo5{M&WB zH2-TN9gHEI{nlEc&?`VHm2jt?a1#43I?$M7cc(H@@7 z=@PWb%?7!(%4ynNO1%TjwPe2D)b~!|xwF3ctIhRy5l?q%UUD+M8@wTR-h&`e?-fb1 zo)MH;A{i8!NqL_DUZVj=8U?&xq9Ynn*W!!2Tt)#O;N$)>3V6b5=!1g5QNVS0!fi70 zp7lm^n{3WwqR~;nhb2006tFE2cqU^=`Ff)2?)FAkxg5OBI_|d>khyr_`LJ+8%g;3Tr z>5!o&d$$P4r!`0>iK-Z8hHek%2YJ%eaDJ1X-Y69GTt`ZM2EZ}=epYC7^7|jl@8^i; zKfN?=1uO)(4MCu87s^@BButjI06Y}v^8#{*1`(r*0y({b zD>LGAq}S$B>Ptuf+N2o9OyxMCyCvNYZHA}oe3|g{(7Fc?f%=MoXFWrWyc=p_OZQ52 z2Q|u#S)H#E+JF8;ybtt|nO{SI(;$SEkW;cRnQ0Fsx?iBap`kMOYlCc2yI&cCZNeiU z*~N<7x_5F+Le~b||EY(fx)h_ zC=0rQfX@uhB{o*T9aeP?BxG(+-@9Yx$1Ns%vM4x`^JopY8k^!-O6|G*O%b;vf5O~; z0P&LB-xBS7+i2(O|9jd|-=U~Ek7f|H;O~ma9U5A(omlYq2<>P77xnRdh=#)R0|bG3 zP_&TsjFM;#w(y{x6$|;H0RBh=X4Z;@U_@?qI)(Rrz;N*mHp#&(CI`wze`vbC0D8EH zE)DLuDi}{sf=ZE+l9Mo-3RCLGNF$~lcu11&%&8s1I`$_-^q*JWeu^ZZwVxpf)WgD2 z)-w!KL!vc3M;Ym${9M3)p}`{_&K-M9e<>gl8P%`w#a$(xlwb4l5Oz{lj0@Iw>UZ*vQ@3?5g(*jSDZiKKxL(Sxx|b3m{RiU4IF|nr-=Tv?5a2EpAsD7dCPW9; ztNBrZ`m=_TX0*vt=+*oeiH?f>7{0hCh}e(waSsuDr%>#_3I@gg8=i0{iM(gMlop$* zM#cVzM8}Ce)rj3B{ZHcRtxB@(c@vw}=1hQk0`U<4UkC#Aq!13%B{L$v6q$bu$bU3Q z=EEp5Yn>#Uoa8z^L*d}uKezy(Hec^JRm>RC$p%$@%N`kVDdrYK?SA2u`-^g-F;CY| z0JRV2-j_I^6O&U7`H~HEgYgH=;~d&xppGgeK|xDy3;XN{ZTc^jRup;qiB&s_v*l0k~y=Ci9r zMhcSj?X`N@Bijw}5U73M?(X;uiS|GM4+^27hr>(~5=Hmz4wG4SL|=H5RC{SY_ZB|) z(R^lJM25mFvW?`v!r6X?v$LS8H5DoFZ0njPgcI($Br;SyN8ig+uT)CmOr%T|ujGO9 zTFX2RAN2y3F%srJ$?3_Jr>#h-{gF&eDLp_^Z?}Q!ib-K9J&=g{3e@M3y(ChBQ5}Q; zek;OM)-ya)PtAJrU;#NqgUBxKGtKFkP#dlg!l~@Cd)kCeJxWC;s*+R6{K^7#D5%6J z1 zYLO*+RNAfA$SUnL|YXS*1M} zBp~cO1c90_DP}#x5G8EModp7Ql!nUibQp!!I@!$zw^%CRxkZdHV~!S#_>4I)lx88I zAWa-ubqwOb=CKF@b)1mXc|w+&d9q02kJs^;RbY^%#&;_XxTWw8KRL@NFB8*YPD%E3 zu{M%%toGJqH(nnlj@bnC9ISv?F0Iz^`o+$sadJ6E@k{bsL;L~XBW zHR+jN)8Vx6r>_y+qaspVkE*9o>Gyl0ZCr|HlBzXKytNxHE}dz9_cL3`gE|9fP~uty zaJa#*?TJxc+6H`mA{d~~6sWT_RCrF9*0CP3*)hw@1oCVRIntP=SE3{NuCn;zu8}cI zj*o}QnB}n04%P_<$1Hg~1*%Wpv)*xf%)(ToW0ro2ZdI1{B^#MK7^HODMC zvqw3Ifb0VZ;Kw2q!vx7iv!J*FQq&-s*~nO)`D0G|Vf}&L3aSU$t8^xWte}u=Y80`f ziI@BN7*Vhnvp{*E0Nag7BV&j4LO7x>J?p%pD^yR3i2k!kc?bj`YZ*bHDw1B-Gwe`0 zk<~W7Re`E$sLTS03t_q=(sXyrA;vhqxViAg7c>CjLLAhR!nYQ2!-hZ!?f8aZdMLFI zC`kS67*KUkf#?kcf!ZJm>n4L@irlRhJ}iJ6n}8iN5t}3~l3(f^d~r_}^L{xW_ZIV> z8A|dB!Jv5ucnZ|H@}BipY4c{1QS&}eqT|eag)#3Y>GO%JXCl_9eAzEax7k-0;5)>A zC4xX*CS?J{r2;hhzTx31NBsJ00%bNt`N)3{6Xyv%mCBGh~ zrdK)!^8GYbtp(0ENm&xrVC`AutMo8J50D+iLZv~C$*qchKf6h;Q>r>D5jsSKgRVCt z#TbpfMHuPS*!)mqR}oQP?fSxS`c@u@z?11%u)!bPo2Tq63v8GpapH6oTyhYmtpHDfwDz!x*qCr zApU+(Z4qCO9IlnbI&I>(Q0@;9(SMG)`5=fwA=e?mO1|)r^$d&DLQB4XSfH-gP%={~ zWeD|ui$Gz1encSS^YesIt{VUax#%Zu$*GUx8`%07fZGpNGskDfx z^X(={yffcU3g!D05&h?xyPJ^+6m|;&+=L-KWj(_(wbYW2pAo3fYN*VKRJ=ckZBA%< z!`3}N&~wV-+=>%duU>TWiL0ZHeG?{Z9oPftPPb?$G=k4bGVw;REL761fP#{qGhWnf zAP9xrjv!E<7ap_)QTV0>-68Q`(D9jRP=!=u)=2DxP4jT$W{s9ocLJ?NXl)W-6l$F& zaY`udT}1S^Hn}eW3nJZ(AW&bHM6#aYfpRpZx<^31qCql$hg3^tJI$00IO{?R1+Ph? zXPyysda|m|%ZvEo>ZNqnbzvz;z~2h{zZ*Evl=V5|>XoY9q^9Rk^ligjsi|WPrF#wA z(g8A(y$;=bHlBu4zq{t1b^99>rj9P#V!()VBZxeS8~1puQs% zbwMUOF!|^j%n&HOpys8%tGWB0aQA)9UFHR6Bg`tUts9@;9|%hi8kSCjW+oSKfS917j9;m6Hc8OwOEo6u?`` zR#@NvP*RMq@6%xs`w^g!_0I=e>c^lBi+Kn^pnf9kXp5mrnw8{FCH`kRKJ#uUD2$(lo0dQ(I!m8Fw7_*GrpHNvze%d@}leVb4#7PB@zx*SE{8 ze>q8KYu04&QT z;IfRF3^jFu`W@Jd$+O=J*PVHm4fE^|MATMg>k@BK(K7J z=pf9~?IgMQJS~Q**d9<&#dFS++5v>2piu~LLW%IAt%1sDTEiHLAFJatb*N?~kA`N2 zqAdYCPNe?8HZ(J~S{&pmy|Kc&e6Viv8$0NWAE5dHpGtyAEO-)Y}kexM1<{i-V z>dN$FQJ(-nXJFRQ*6r91z*zH2!8_SOvszAeS?wWr;3G1nfO#fc-zQ>c0;IJK2fWeI zuCxVuNrx?Qv@Iy$ir!toX-t+(5&=51q#S0+u0-_z3nbhPj3V!LM-ZqzM6Rr7#Aa@_ z)FFEc)Lt4YGZTBeyTYl^E*v*k$FZQ8Q?95@c9R%9U2%O-*W~=bkVr<9uUzYxFE7w%>wlF zBu@(qvQ*|$nq$g47rw*IYD5phw_vI~28jT^1ibyKDN}Lgyt0+c$iz=aC4#9V&4=zS zDvhrv{m`iP0Thht|LdI@v6XsP`$Bmz^!*S7YJbtUZVPDC%^KR1#!ks*{5xwa)6~{4nPy6VZRJ**O?g zp^`%o1nN*>BI_9*sRz+Y`@OgrC1Ez_FhpaWbBdsLY1GW;pe;T9BpW;I9D1|^#rj>( zM}?KRKF!`o$DB8j(E(!C1Dja zkBH%6f-gAV^N~DMy#PU=juLLOo)LzcjjfC7d8}mA6Y6LHAO{u-@-Z4&T&Ys2WNw}9 z!<$Qa7bK0pR_k}~9ynbr-?pWCPLI|psAEBswZL(t-Evo~TEwVDdAHPSjykIJs^j@> zSMd&cja4w_>kONV5sOo}ND3pd!%%4oo6U-7UC5&Ora6z}(6gMKNOGF9aTxl+#Y~+< zE>3FY>|}o1OE`ONCud6#8>pou1cy@FX-uU%BkVv`eKzA%%>`9u!nCwOK|@@8qkgP zoL!g6ou(@FN`IxaMaI`KHO=_i?KR_RGI?Sv<7e>Op2GNLos6$VEZh-E3XIcNQyAy5 zMo-CjW~f@-B8O*^tmg19bgY7E&muQ-S~+|fzl{|RFYn~=Y{Uktm!!bqOv~Y7d%y(x z4=y&t@&KP^X?*GmBP@{EHi+$h#Z4B{3NJ`n1vt7@ zD39MJh){3r6ly(UaY7kML8t?*P&`2;Rd(u4L$P1B$kGt$XqFB(dM-2h)vYX5`0Y?( z=}nz1RS_Gg8cBhrIV~)qE@)$kwS%1Z;#UUh!y;EC z(<;`5{5DO*x~eG_opgCgQ+h|~38U)^Zx!__z^+V>AHWO~2W6Js_58NXebU7!pjPP4-4RhJ^t+a8?dGkXF8m3qV(VFT(%x=H%I>eYlha}?nK zEKdHt>NWhh2BwzxQuysvujPls`9V$~vFF>E0c@{&9pbyZ>(Nko69DD${%%JIvLN=V z*Gv4L7~hY0$6F47UUeDCE)gcVH&VP(*yk5_JMNF`RhJXwRv_lRN$6tqsw?VHl97y)PGD!8RHwm0aett|=z0Cr5CE+e2obV23 zNNDKI{P?JR+{%3mz3MH*JsthJd}e%mF7&Fa7(14__r?OISG|=VMhQ6gu-cZG`D)wg zUUfBrt`dHDf1E7?g^n`NtKLS?HPmk-y|ce*sIS7caBW_`dOKo!)jRN;-i6lz*cfei z@08egF?P2$R1NTM0eBAq#`PEL##Q^h^7VcA<%uZioy=7a%3O26!ELd=~tXAfnD!P-3hSt&J+N<0(=+gm!J&wMSdPtaQYg9>Ml}B@9f|T8CuLH z)Niii)YX^p{nGUQl|~&N3M0|Kn}kM_wf?&LGGE5?eokCSliSGpS>1zg$kd4iOhn{D z3-;Al@Ex@_HbU`+RResl2A+W42lots8_f6(sjmv`?#wnW*6t-s#zjTXO7(xcL&b&am>7m||aFzyXS?CHmJ$~WZe?zo^Vzdq-{ zOQw{=^b7azK;z#;C(MT0#~1I3N%Cj?`O%lGAmiv`R({S;r8k4;Z#HB$960**?rISDL1%;zyV z&6D~$-%>rSw|l()o`SQX>2&J(da6K!_MmQZHl}dqkopCYCYtRkEW*f(y80!)ZcdLg zo*>BHU*W^b^aL@*rs97sUw5K)g;mRMNbo>YwXn}w-Gm9YvQ#Z(3BZ1j`YoZ*K;VF( zjXAeC=$7!mu71bQqp;Hyb?@)_ykDz!+luHP0OCo}!Po+~vNhHDMT1C$IXtVvhuYzV-ES(1M*)IDX7Wo4kFWlWkG<(Vq$I(U1rq`2_#x|= zvjz1R#G<_JsPe<%x5xCi@uIk}(tn)98-3~B+nYJv>im^R+oZQI7JT(LJmU}&{C2ss zy&PIr_jrBN&m3U|p> z5qE*U1o0?+LrTVDpVvLbt1?(92aS3s5_J)O*79dHi5%;#VK?Roe(2$c$K6N09r-qf zZ}++PxDUGzxwp7Cdc4}wEAoezJbLHxhj;6FSMZ0|C3)}T53ix|ZsO0q{J9%H?tJfT zFyir~Ywvgb;c0i?lYHWdGTuaru-Kb}eu;acw~9=kz_zvfullname

  • hide_muc_server
  • prebind
  • -
  • xhr_user_search
  • +
  • show_controlbox_by_default
  • +
  • xhr_user_search
  • -
  • Minification
    @@ -172,6 +173,32 @@ website. This will remove the need for any cross-domain XHR support.

    authenticated in your website will also automatically be logged in on the chat server, but this will require custom code on your server.

    Jack Moffitt has a great blogpost about this and even provides an example Django application to demonstrate it.

    +

    When you authenticate to the XMPP server on your backend, you’ll receive two +tokens, RID (request ID) and SID (session ID).

    +

    These tokens then need to be passed back to the javascript running in your +browser, where you will need them attach to the existing session.

    +

    You can embed the RID and SID tokens in your HTML markup or you can do an +XMLHttpRequest call to you server and ask it to return them for you.

    +

    Below is one example of how this could work. An Ajax call is made to the +relative URL /prebind and it expects to receive JSON data back.

    +
    $.getJSON('/prebind', function (data) {
    +        var connection = new Strophe.Connection(converse.bosh_service_url);
    +        connection.attach(data.jid, data.sid, data.rid, function (status) {
    +            if ((status === Strophe.Status.ATTACHED) || (status === Strophe.Status.CONNECTED)) {
    +                converse.onConnected(connection)
    +            }
    +        });
    +    }
    +);
    +
    +

    Here’s what’s happening:

    +

    The JSON data contains the user’s JID (jabber ID), RID and SID. The URL to the +BOSH connection manager is already set as a configuration setting on the +converse object (see ./main.js), so we can reuse it from there.

    +

    A new Strophe.Connection object is instantiated and then attach is called with +the user’s JID, the necessary tokens and a callback function.

    +

    In the callback function, you call converse.onConnected together with the +connection object.

    @@ -275,8 +302,18 @@ have to write a Javascript snippet to attach to the set up connection:

    The backend must authenticate for you, and then return a SID (session ID) and RID (Request ID), which you use when you attach to the connection.

    +
    +

    show_controlbox_by_default

    +

    Default = False

    +

    The “controlbox” refers to the special chatbox containing your contacts roster, +status widget, chatrooms and other controls.

    +

    By default this box is hidden and can be toggled by clicking on any element in +the page with class toggle-online-users.

    +

    If this options is set to true, the controlbox will by default be shown upon +page load.

    +
    -

    Minification

    +

    Minification

    -

    Minifying Javascript

    +

    Minifying Javascript

    We use require.js to keep track of Converse.js and its dependencies and to to bundle them together in a single minified file fit for deployment to a production site.

    @@ -307,14 +344,14 @@ manager, NPM.

    You can read more about require.js’s optimizer here.

    -

    Minifying CSS

    +

    Minifying CSS

    CSS can be minimized with Yahoo’s yuicompressor tool:

    yui-compressor --type=css converse.css -o converse.min.css
    -

    Translations

    +

    Translations

    The gettext POT file located in ./locale/converse.pot is the template containing all translations and from which for each language an individual PO file is generated.

    diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index bd953ba65..f409c10c5 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:0,"new":0,net:0,"public":0,gener:0,here:0,valu:0,box:0,convert:0,convers:0,mysit:0,implement:0,via:0,extra:0,apach:0,releas:0,href:0,org:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],xhr:0,can:0,lc_messag:0,purpos:0,root:0,fetch:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,occup:0,end:0,goal:0,write:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,django:0,inform:0,order:0,xmpp:0,over:0,through:0,streamlin:0,snippet:0,jid:0,directli:0,fit:0,pend:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,extract:0,variabl:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,put:0,succesfulli:0,blogpost:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,provid:0,remov:0,bridg:0,toward:[],browser:0,sai:0,saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,exampl:0,build:0,which:0,singl:0,sure:0,though:0,track:0,object:0,most:0,deploi:0,homepag:0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,just:0,configur:0,solut:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,requir:0,enabl:0,method:0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,state:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,pot:0,backend:0,creat:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,servic:0,plugin:0,defin:0,file:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,media:0,make:0,minif:0,cross:0,same:0,html:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,user:0,xhr_user_search:0,recent:0,stateless:0,person:[],contact:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,firstnam:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,valid:0,input:0,yuicompressor:0,match:0,applic:0,format:0,read:0,nginx:0,traffic:0,like:0,xss:0,success:0,specif:0,server:0,benefit:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,deploy:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"function":0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,"true":0,congratul:0,requirej:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,otherwis:0,problem:0,expect:0,featur:0,onconnect:0,exist:0,chat:0,want:0,when:0,detail:0,gettext:0,field:0,other:0,test:0,you:0,nice:0,node:0,stai:0,lang:0,longer:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]}) \ No newline at end of file +Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:0,"new":0,net:0,"public":0,widget:0,gener:0,here:0,valu:0,box:0,convert:0,convers:0,mysit:0,fetch:0,implement:0,via:0,extra:0,apach:0,ask:0,href:0,org:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,write:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,django:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,snippet:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,could:0,success:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,provid:0,remov:0,bridg:0,toward:[],browser:0,sai:0,saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,element:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,contact:0,build:0,which:0,singl:0,sure:0,roster:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,just:0,configur:0,solut:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,deploy:0,requir:0,enabl:0,emb:0,method:0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,statu:0,state:0,reus:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,conjunct:[],job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,creat:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,file:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,person:[],exampl:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,firstnam:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,valid:0,input:0,yuicompressor:0,match:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,specif:0,server:0,benefit:0,necessari:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,though:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,obj:[],controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"var":0,"function":0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,"true":0,congratul:0,requirej:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,onconnect:0,exist:0,chat:0,want:0,when:0,detail:0,gettext:0,field:0,other:0,test:0,you:0,nice:0,node:0,releas:0,stai:0,lang:0,longer:0,getjson:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]}) \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 9ca76ecac..0e0826d5c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -108,6 +108,42 @@ but this will require custom code on your server. Jack Moffitt has a great `blogpost`_ about this and even provides an `example Django application`_ to demonstrate it. +When you authenticate to the XMPP server on your backend, you'll receive two +tokens, RID (request ID) and SID (session ID). + +These tokens then need to be passed back to the javascript running in your +browser, where you will need them attach to the existing session. + +You can embed the RID and SID tokens in your HTML markup or you can do an +XMLHttpRequest call to you server and ask it to return them for you. + +Below is one example of how this could work. An Ajax call is made to the +relative URL **/prebind** and it expects to receive JSON data back. + +:: + + $.getJSON('/prebind', function (data) { + var connection = new Strophe.Connection(converse.bosh_service_url); + connection.attach(data.jid, data.sid, data.rid, function (status) { + if ((status === Strophe.Status.ATTACHED) || (status === Strophe.Status.CONNECTED)) { + converse.onConnected(connection) + } + }); + } + ); + +**Here's what's happening:** + +The JSON data contains the user's JID (jabber ID), RID and SID. The URL to the +BOSH connection manager is already set as a configuration setting on the +*converse* object (see ./main.js), so we can reuse it from there. + +A new Strophe.Connection object is instantiated and then *attach* is called with +the user's JID, the necessary tokens and a callback function. + +In the callback function, you call *converse.onConnected* together with the +connection object. + ========================================= Quickstart (to get a demo up and running)