From eb71d7baa2f3e8bf8aaa76b59210f4896270ad9a Mon Sep 17 00:00:00 2001 From: Dean Michael Berris Date: Tue, 5 Feb 2013 21:56:12 +1100 Subject: [PATCH 1/6] Generate documentation for 0.9.5 --- libs/network/doc/html/.buildinfo | 2 +- .../doc/html/.doctrees/contents.doctree | Bin 0 -> 3768 bytes .../doc/html/.doctrees/environment.pickle | Bin 0 -> 76095 bytes .../doc/html/.doctrees/examples.doctree | Bin 0 -> 6964 bytes .../examples/http/atom_reader.doctree | Bin 0 -> 10121 bytes .../examples/http/hello_world_client.doctree | Bin 0 -> 11160 bytes .../examples/http/hello_world_server.doctree | Bin 0 -> 18569 bytes .../examples/http/http_client.doctree | Bin 0 -> 18367 bytes .../examples/http/simple_wget.doctree | Bin 0 -> 14969 bytes .../examples/http/twitter_search.doctree | Bin 0 -> 14747 bytes .../html/.doctrees/getting_started.doctree | Bin 0 -> 46869 bytes .../doc/html/.doctrees/history.doctree | Bin 0 -> 13074 bytes .../doc/html/.doctrees/in_depth.doctree | Bin 0 -> 5306 bytes .../doc/html/.doctrees/in_depth/http.doctree | Bin 0 -> 31212 bytes .../in_depth/http_client_tags.doctree | Bin 0 -> 9824 bytes .../html/.doctrees/in_depth/message.doctree | Bin 0 -> 52727 bytes .../doc/html/.doctrees/in_depth/uri.doctree | Bin 0 -> 33862 bytes libs/network/doc/html/.doctrees/index.doctree | Bin 0 -> 20414 bytes .../doc/html/.doctrees/reference.doctree | Bin 0 -> 4486 bytes .../.doctrees/reference/http_client.doctree | Bin 0 -> 88864 bytes .../.doctrees/reference/http_request.doctree | Bin 0 -> 84840 bytes .../.doctrees/reference/http_response.doctree | Bin 0 -> 126334 bytes .../.doctrees/reference/http_server.doctree | Bin 0 -> 109040 bytes .../doc/html/.doctrees/references.doctree | Bin 0 -> 9638 bytes .../doc/html/.doctrees/techniques.doctree | Bin 0 -> 3835 bytes .../.doctrees/techniques/directives.doctree | Bin 0 -> 17073 bytes .../.doctrees/techniques/polymorphism.doctree | Bin 0 -> 11107 bytes .../techniques/tag_metafunctions.doctree | Bin 0 -> 29080 bytes .../doc/html/.doctrees/whats_new.doctree | Bin 0 -> 35753 bytes libs/network/doc/html/_sources/contents.txt | 3 +- .../doc/html/_sources/getting_started.txt | 2 +- libs/network/doc/html/_sources/index.txt | 33 +- .../html/_sources/reference/http_client.txt | 54 +- .../html/_sources/reference/http_server.txt | 137 +- libs/network/doc/html/_sources/whats_new.txt | 9 + libs/network/doc/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes libs/network/doc/html/_static/basic.css | 16 +- .../doc/html/_static/comment-bright.png | Bin 0 -> 3500 bytes .../doc/html/_static/comment-close.png | Bin 0 -> 3578 bytes libs/network/doc/html/_static/comment.png | Bin 0 -> 3445 bytes libs/network/doc/html/_static/dialog-note.png | Bin 0 -> 1582 bytes .../doc/html/_static/dialog-seealso.png | Bin 0 -> 1502 bytes .../network/doc/html/_static/dialog-topic.png | Bin 0 -> 1910 bytes .../doc/html/_static/dialog-warning.png | Bin 0 -> 1391 bytes libs/network/doc/html/_static/doctools.js | 10 +- .../network/doc/html/_static/down-pressed.png | Bin 0 -> 368 bytes libs/network/doc/html/_static/down.png | Bin 0 -> 363 bytes libs/network/doc/html/_static/epub.css | 310 + libs/network/doc/html/_static/file.png | Bin 312 -> 392 bytes libs/network/doc/html/_static/footerbg.png | Bin 0 -> 333 bytes libs/network/doc/html/_static/headerbg.png | Bin 0 -> 203 bytes libs/network/doc/html/_static/ie6.css | 7 + libs/network/doc/html/_static/jquery.js | 9113 +---------------- libs/network/doc/html/_static/middlebg.png | Bin 0 -> 2797 bytes libs/network/doc/html/_static/minus.png | Bin 118 -> 199 bytes libs/network/doc/html/_static/plus.png | Bin 118 -> 199 bytes libs/network/doc/html/_static/pyramid.css | 323 + libs/network/doc/html/_static/searchtools.js | 138 +- libs/network/doc/html/_static/transparent.gif | Bin 0 -> 49 bytes libs/network/doc/html/_static/underscore.js | 830 +- libs/network/doc/html/_static/up-pressed.png | Bin 0 -> 372 bytes libs/network/doc/html/_static/up.png | Bin 0 -> 363 bytes libs/network/doc/html/_static/websupport.js | 808 ++ libs/network/doc/html/contents.html | 124 +- libs/network/doc/html/examples.html | 36 +- .../doc/html/examples/http/atom_reader.html | 44 +- .../examples/http/hello_world_client.html | 44 +- .../examples/http/hello_world_server.html | 46 +- .../doc/html/examples/http/http_client.html | 42 +- .../doc/html/examples/http/simple_wget.html | 46 +- .../html/examples/http/twitter_search.html | 44 +- libs/network/doc/html/getting_started.html | 66 +- libs/network/doc/html/history.html | 40 +- libs/network/doc/html/in_depth.html | 32 +- libs/network/doc/html/in_depth/http.html | 50 +- .../doc/html/in_depth/http_client_tags.html | 42 +- libs/network/doc/html/in_depth/message.html | 116 +- libs/network/doc/html/in_depth/uri.html | 82 +- libs/network/doc/html/index.html | 62 +- libs/network/doc/html/reference.html | 32 +- .../doc/html/reference/http_client.html | 140 +- .../doc/html/reference/http_request.html | 118 +- .../doc/html/reference/http_response.html | 100 +- .../doc/html/reference/http_server.html | 178 +- libs/network/doc/html/references.html | 40 +- libs/network/doc/html/search.html | 17 +- libs/network/doc/html/searchindex.js | 2 +- libs/network/doc/html/techniques.html | 32 +- .../doc/html/techniques/directives.html | 32 +- .../doc/html/techniques/polymorphism.html | 40 +- .../html/techniques/tag_metafunctions.html | 42 +- libs/network/doc/html/whats_new.html | 92 +- 92 files changed, 2764 insertions(+), 10812 deletions(-) create mode 100644 libs/network/doc/html/.doctrees/contents.doctree create mode 100644 libs/network/doc/html/.doctrees/environment.pickle create mode 100644 libs/network/doc/html/.doctrees/examples.doctree create mode 100644 libs/network/doc/html/.doctrees/examples/http/atom_reader.doctree create mode 100644 libs/network/doc/html/.doctrees/examples/http/hello_world_client.doctree create mode 100644 libs/network/doc/html/.doctrees/examples/http/hello_world_server.doctree create mode 100644 libs/network/doc/html/.doctrees/examples/http/http_client.doctree create mode 100644 libs/network/doc/html/.doctrees/examples/http/simple_wget.doctree create mode 100644 libs/network/doc/html/.doctrees/examples/http/twitter_search.doctree create mode 100644 libs/network/doc/html/.doctrees/getting_started.doctree create mode 100644 libs/network/doc/html/.doctrees/history.doctree create mode 100644 libs/network/doc/html/.doctrees/in_depth.doctree create mode 100644 libs/network/doc/html/.doctrees/in_depth/http.doctree create mode 100644 libs/network/doc/html/.doctrees/in_depth/http_client_tags.doctree create mode 100644 libs/network/doc/html/.doctrees/in_depth/message.doctree create mode 100644 libs/network/doc/html/.doctrees/in_depth/uri.doctree create mode 100644 libs/network/doc/html/.doctrees/index.doctree create mode 100644 libs/network/doc/html/.doctrees/reference.doctree create mode 100644 libs/network/doc/html/.doctrees/reference/http_client.doctree create mode 100644 libs/network/doc/html/.doctrees/reference/http_request.doctree create mode 100644 libs/network/doc/html/.doctrees/reference/http_response.doctree create mode 100644 libs/network/doc/html/.doctrees/reference/http_server.doctree create mode 100644 libs/network/doc/html/.doctrees/references.doctree create mode 100644 libs/network/doc/html/.doctrees/techniques.doctree create mode 100644 libs/network/doc/html/.doctrees/techniques/directives.doctree create mode 100644 libs/network/doc/html/.doctrees/techniques/polymorphism.doctree create mode 100644 libs/network/doc/html/.doctrees/techniques/tag_metafunctions.doctree create mode 100644 libs/network/doc/html/.doctrees/whats_new.doctree create mode 100644 libs/network/doc/html/_static/ajax-loader.gif create mode 100644 libs/network/doc/html/_static/comment-bright.png create mode 100644 libs/network/doc/html/_static/comment-close.png create mode 100644 libs/network/doc/html/_static/comment.png create mode 100644 libs/network/doc/html/_static/dialog-note.png create mode 100644 libs/network/doc/html/_static/dialog-seealso.png create mode 100644 libs/network/doc/html/_static/dialog-topic.png create mode 100644 libs/network/doc/html/_static/dialog-warning.png create mode 100644 libs/network/doc/html/_static/down-pressed.png create mode 100644 libs/network/doc/html/_static/down.png create mode 100644 libs/network/doc/html/_static/epub.css create mode 100644 libs/network/doc/html/_static/footerbg.png create mode 100644 libs/network/doc/html/_static/headerbg.png create mode 100644 libs/network/doc/html/_static/ie6.css create mode 100644 libs/network/doc/html/_static/middlebg.png create mode 100644 libs/network/doc/html/_static/pyramid.css create mode 100644 libs/network/doc/html/_static/transparent.gif create mode 100644 libs/network/doc/html/_static/up-pressed.png create mode 100644 libs/network/doc/html/_static/up.png create mode 100644 libs/network/doc/html/_static/websupport.js diff --git a/libs/network/doc/html/.buildinfo b/libs/network/doc/html/.buildinfo index 66e8867c5..ec5f28f98 100644 --- a/libs/network/doc/html/.buildinfo +++ b/libs/network/doc/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: 2782e6e8740d26e9cc1f54812c829fe8 +config: 08239cf2918f3b576f229180a785211f tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/libs/network/doc/html/.doctrees/contents.doctree b/libs/network/doc/html/.doctrees/contents.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e8fd6d32c097a6252905085b2e3849f0b2efc8ca GIT binary patch literal 3768 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/examples.doctree b/libs/network/doc/html/.doctrees/examples.doctree new file mode 100644 index 0000000000000000000000000000000000000000..462387b7082d357ad7503204d2e26bc17f6fa5c8 GIT binary patch literal 6964 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 AiU0rr literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/examples/http/atom_reader.doctree b/libs/network/doc/html/.doctrees/examples/http/atom_reader.doctree new file mode 100644 index 0000000000000000000000000000000000000000..766415d5cf7ddf59220975186d1c140d53392bd5 GIT binary patch literal 10121 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/examples/http/hello_world_client.doctree b/libs/network/doc/html/.doctrees/examples/http/hello_world_client.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6d07746d7606ce15069b7dcefed9cc638ca24e61 GIT binary patch literal 11160 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[h literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/examples/http/hello_world_server.doctree b/libs/network/doc/html/.doctrees/examples/http/hello_world_server.doctree new file mode 100644 index 0000000000000000000000000000000000000000..384ebcd0dced333fd7146024887570a9e45711da GIT binary patch literal 18569 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/examples/http/http_client.doctree b/libs/network/doc/html/.doctrees/examples/http/http_client.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a5df28895fabca0f948bce0b0d71318288418112 GIT binary patch literal 18367 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

csd8~!wb!hYAO4)4y7sT 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/examples/http/twitter_search.doctree b/libs/network/doc/html/.doctrees/examples/http/twitter_search.doctree new file mode 100644 index 0000000000000000000000000000000000000000..aecf52623ef29d1da1c94789c33d61a706c53c13 GIT binary patch literal 14747 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 Td>GJ>65U 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 t7N2I4KY2j?K5F$*rEd*L< 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/in_depth/http.doctree b/libs/network/doc/html/.doctrees/in_depth/http.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cfdfd55623874ca95cd81cf7d84aaa4f7109f671 GIT binary patch literal 31212 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/in_depth/http_client_tags.doctree b/libs/network/doc/html/.doctrees/in_depth/http_client_tags.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b7ed932b0f58e4650d0e33130fc43a37eb4109bc GIT binary patch literal 9824 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/in_depth/message.doctree b/libs/network/doc/html/.doctrees/in_depth/message.doctree new file mode 100644 index 0000000000000000000000000000000000000000..74504676f9aaa7ebeece13ea3c0b881957ba7ad7 GIT binary patch literal 52727 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/index.doctree b/libs/network/doc/html/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..eef06f5d666789b70f4761bcc4ff71c5dce3a344 GIT binary patch literal 20414 zcmeHP37i~7)elKFyF0l9AwW2qSsUB?c zS8N0nO}z0&@kBfkMGh4;DxQcJf~a`o4IYT%iTeHDtM0iMLll3%@B7R#U0wC+)qAhr zdsX$Ss;`)y&AHjKpD%d5MK@=8F@7DhihfKTu>49jJy0{c&CX(a%kAobICeY&DO1CT-Wo} zoZV$}p;yj$e%=QgZZVa!hCMYmQ1i@rr8Id~YRvMy^ayC5Kcp6z^Ri_k@R#!3GG#5b zaL|n9tgK6EuB{dgnv2q9-yL>czv%i_%Jb9Ys{;oPFxy!Q`JAT?3e@6mdzQH<6hTjo z2oAQ}%{DE7C3c57D`fu=yVG2lWjQhHJrV1N+A(vsFy144tHbQs<|1ag$9H>#=^kcU zEw$&EZJOi5%VtN`&KGjvLLD)rj_hviLQo9KV(KV#pb@B}(Sej65BZHJV-R+4uaOce z6Xq;P3Gz@~_H=Vr2y{#%O0r5+F6OgPk(fF*xdABpOwS^(FPE{1@?PI|5ocdj6n$XQ z>kB#VgIe`TgS~`aJMQW$)v`c!XUuj#J;HKT%gtGuZneUUrG20BnX->gTN$WT-R2CI zd(V*Bkx6GqiF>#gFS&Aw>w2nh$ZXFR(w>L(>LIgD=dM8tu=$)?YcDCAGYk2mrPiS* zJ0c}l$J^8GBZkVECVtBq%4cKh1c>m&K%LZW$CGQo^md=p`4QV6c4<6Kxr#2A$Q_~d z*ccl`o)tA`L0>noT&dRE5UhQSz05q+nkZRWKLwI3NIYxhQklt=Fn@BO5_Y?7cs9g9 z(ze=QgY}KwcHfY_ddTh_vU`TqDfW`Iy=F*lvfI;Td)>ec8w{9BS|SG9rv~aYdkLe3 zo}Avu;|^;AO47fdd~HS-o)M@sAsL%_Jh7ZfH_I{Wj%jDI1%lifsIwwLCQdK=wo6{Z z*jkt@8t0(LZEM^!Hjd!6cPxB8ZDcH+FZ2S-rbvvCP?n~1&D>?Fvmr7ToR;94A(q%omKclU99wh#qzO@j;QZV`od;ITX&`H>aBee)=LhNn z=CB*8a)y-#U-_(^whBhS7>Thlw3gFGTz8~kH85riKij+Q0lO9HZ4v1^K>CwuL7AZV z!a!XVQG9-t;$)yMW{TOPC(cOwR>Ig~WsJ3}jJ2!Rtg8xL)AsbKXqy$$b_r-}jZ0k$ zDux2}jEIV4m5NlLb}|+7nTiYHR^W;g#_HaadrxR2Aw3ld?GXtXkkA5=%A);Tpsc9< zRJHx#K#g$wJ46bWm!*7(hl7N%*&QntEZ;K9&?zJG8!}d4tisr4SQBXm@m3jd3I?>; zNWlCPJFA{>XKy1D_Eb!CL`>wt#8X9$av+J(KoufM3|A#F7N{aiVlzu(vs;=Zc6Tg? zFj;S}tBh7^zIOHM^*zv^wM~q>Q!(BdF6cH zl{dDEX|6K16|+s`@0yDISVaCf$bVv-Y64VE2I`p+ReqJK%L4T*rs@Pxbw=I`2f>_C z#*9kqRzJ^rjP35QkMYMc&dz78qGzo#LZfL^v|uWNXGa8I4ubc)IrVJtaz&u7jCi@M z%F9)OdJgk)B6wNTySmrt-fme&It%ArN*5=2q#Vu{z{0l8XAW*ZGqonQy4RoZ4H!`t z%4VefMrNKn6*F@pX08S^``?~=9=Lgapms;xTvg>}PoQ4F+#CyTY~L>>`ufJl$9rW; z*6Y$pUjrM<8;O76RK(AVh<_1?-)Hpd#h~>ifqH2~>mH%Cag6sc;ea2Dsh44Nx+YLB zkHBS0!eeO&pG0WlMy3*nsA)F}?z6p|ebD-XWHf=_JZA(dD zmYc>Dtz^g4TS4UYfqEMg$v*aCw`^oFSPx@@YPe-z))_`R!^xKZ+`x3tfn=ehu}~SR z-d?nUJx9c3XQgR%12g*eR*Wu+MEj0zaBA!WRqCDK`(1&0H?y%X6+qJUn4x(kJ71jW zP3LlY!B?`1IT&MV0`tNrm;-j#CXE~n^Rj^y^pzjf4A8VOuSl5 z&Hw_8g^~exRa7_c!BPZ;vOrNEkflgfa#EIaG36^Jr=x0VQr)7baOP~DG*6TY`E1_b zQ<>0Vu51lsOjfr>Yp&Zc{hLh4Qb654Xm;WS1eBp;9~@+TTEtVo4>ejzA@5t1F2vM_ z!TlY9`UtDiP0Yo#Yygw$U97FpMpCb2ThsgGNFYA*WPW#7p7KY5GTd_jj54g~> zY%!;Av@)l~kvV;{v9B?xy2X*0`W6~_AW+{%Bli8w|96`4blLYY*WU%n9UwWPLVXXk ze?L$^i1>U!^Epf7RzK98$!t6rs2?#KC!u=eW^y4j;#&%sa$`Uz3yXcMUJZ9xXY1Gq z985y}xRK+ZG*h~6U`fRBPeJX!(%jF$+|L8`3l>4QbD;DyvTaZ2&QT`k0`9}ivTNW8Fw?lo^K@?ss)y5a9=7s2j)(=lT z3W^`r-bt&+?^?7ta42`{?`<}Z#{%^SX7y1f?~hd*c(jELJi^uf1o`eCZGVPj{}QOb zMq+wQ)W(KQVC9T|!v5od`Wv%fsL>c1m^coE*a8+ASRG?buNj~u`hX}`q&+!nmsM~} zyz(|Old-IAWk-3wg%FLgHSeEQ&ZH_nri9QKt68Ix{k@gkmPTFm4<4nO#?F5ei8Kuk z;p!{t06YSkj$anYQ`H(6e;l%hF3=2VaAw$GJ9;3Lmf3-rf?L>S<){s%0|#&=d%1lN zl!j(8yg8EtIWjWnI*~J_b`;ChrCFJ&17%HmcEk{Ma(;geHi{t!BAJaxKy&aLDv`r9 zYwhWm0lTSVX|Aq1PpZz>Ra=8 z)@V9N@GRDNlFRnptm$Az(d959H6~3<1XWYZ14qI<=@16y&O8)}fDRMbxFe`Q^-_M1 z`bOtA28p^HrkHUZ&d>fQMe-4-f_^#@kARNCZ`4mrP78Y{Lm-dVkjdGQ&WaV=%cYV_ z{)!b8M}C84QkTFsvu}jPNyl&{jBj)-5&<12@Nq|QK?KWM*6(td66U&_pZ!Tz|Bw(` zjx2Ds0*`=J;y2=oThLrp2R&LPU_BbF&XJ|PQA3q6;K6?(VB)xlmGTTbm-n(|kE1@T zj5H?U2seX&Bky?t=J-E=5TzHdhUk#NQ9*WS1+0i^FZy9Vt-vTN}OXq`|QcQgkM%Tb#)o8$2Ua)JhFHpdgCpoznZIi7@aF~{|S z=VXm1xgs=24-486a?2&Jw;G$&IW=Q0B^XPW!?e^|KB4j zHBH+94ECOeM?eEovwlT5RZa9Ha~h6*XG{Ha!usLp$4oiVm?zNDus6tn^}`;39UktS zsm8T)QHbv2eL*cSIuALZ{d_zEx&XgX*Dy6&`SrrTg=Dwux;vzH2rwg7-G@fK{XiaQPq7Y9oXVv;cmolaLN@%F{@1*a6RMfzKX;bIv;+csp(RZ*DA+f2Cfr1a&J+qd%n47N_IU!l3(5eH5(kX*VyTdx zv?zum-vzwk=@}Mwby({V$O*S=4d2Sz#XQeZdJSV6PeITQc0hW@Eq-8=C++#GVmv)b zXAr$+H3dw*=p&3~}5D{G&il}9nj;=x}T48C1{m9`tdJb1=iqP3N@3H@RG>)Fj$i$UQ5s{AU(LywILQ+u(|V0mU?=%nqyoBD-s5sE z>8#pwN%T6d-Q_R=weIotQlX~B&^=aKxQ;9Iw?Oy?6hK+uh(|zg5;SoqY=w!bI>t8( z$Xhf>vIxc9(Q32VNaGw8PEyn?m*AAf2{CT%yx@hj^NK|$v1%Npr#H2EN{hoR`LXgC z2bG4gIAfnx!?yUWw+b=MY_E?5d%XbkCufG#(%X;$c5lEVptnnDyi$r5m`RL;?B(7e zFz*auT6?*7p){;j>*e0fmG;-my@zq`yO&$fj_5|N!(Q&aNCb2fw+}BT6gd#dz;Zr7B2 zP$>D3rX=~4Hd#>=b_hIa_^`BnN7(iV*gd^yoV8=ed4?PXqMmFa&(YBEu!d~+VVq{G zz`)H%w(yYnDIXG(1fO;5jj@S^b$Qa^8D5@GdvMCP^In2Jf;L-N#z%#eX3N+RS;oh> zUVrjGN$OrS361$U9szwq2#h-+{VYInHI0G(aEB@-q5K$q5^#|Bor2?28b@*-SC*NS z9K7R$ScdG3ClaBH*${i;@NL-eoyt{FlBet25@+OE|K7~8JIa{+}tFC@)Iy&-Q^qVG{T%)Cq()*#Km*5&#?G- z53pzzU5`GC*F9!OAzd6PBPdUw!@F#u;?V3AN5VEm+Vpuw+5g{;XzB>M3zC7-e*uqx z?#6HACRv56gXERS)%A6a z%VGxp>~ixsZc)O{yYEu>a-*9ug>|Y90P82Xf#X8^TO~EQcHN(bnxQSDl1?oTTjV-X z9vE#|i%pxiHW7j@Om^2bHwC;q3J+5^OJq;OZ3VF^qXicy3~L$G9wfzLggOb6yt`LR zt9Y6$j*hZti=TPH1?OInFyj2eko;VBX>nQ9Rsca`9m>J+VmBvn%3_s)^QUC2;PkFb zh9cx)H$|NZN66&XkQeGX+%EfC{ADl74j0d`aw=p}cXFy1=fk^^71SAk6ZyLPS>qgW zan3$Cwt>hrzJYo$jsGfYjbUh|{;#6qj5qxYib~&vZozSW3y**vU;Uq#vPh3Cev}3ThlYeGfVIQdw_)pOdp?y=g^S{R64M>&+h`70`q7u7h$H zHD7t5A2E(Dhsmg2b^chY)wCO~IxFq`ge&NvTr0FcMKJ{MGdu$Nxgd)>VOva?9v*q~ z=@$a>kOtuecSy@1L?FAt4@*%KDV2cvFHzn&wakRk>~7WT9(wErr_jo8)=j4-Ol8JJhhe?uam zzYA;y72~g68~=lg>(|C$+P--=B7l5szJaCMLwS6j4`UKd!?dBr3VC?T-`M8~s zcL1Op`@$M4*=aBD#b`Q8LHZ0l0-A|mbcL1zgxDtU!Zyv4^j?P>m(6KV(gVt=9U1it zXO;sCrUNBVf4(cRuU$%=r~{jb;Stbm{6`B7^R?D3s9RiYoTCi)P<^MEn+y< ztOJn<=pX@)J5s&NVM=N>Yq1nJVp}(0vj7ifVAiZ9NCb3Hg61tWG+6gu1aHIn|g4>4XL_#`J-nHf&CF#8mw^64#1~Te3hxug2 zkLG88@+eUKPr8WW0ENPI;Sta=_>B~X2@{2J8q~z8*NtPP=5e}a^0AE|k7HM3 znaA5+#zsziDI}o~%TR?CqFbsqc41W^mNOhH#0n&EenY_Hj#Te*xcORzSS7`c*wzi? zSuQ;c%nH$qL_mE4TS3M6YZYQO7f+!Oo#3;=Oe>98!^rkUBZRQEfQ~d`9nt|E&y7PP zA}O69?^+{Hl=NPQ+o;oslaNub5zHuazMh|YC~eU(bTW#e1qnO?+JN6k3z(RF(SnUq z^AugP#zSoP%Q?h^07it?D^L*tMDJaAy)MkY^Rj@R6VO1ecV>nib z(~$_MU%=yzRPS<_l3In>EX9r3)(to;mNOWb72-@J0@@<56;zDBRw1@>@e~Td9wOqU zl|G!sxb{UKgsyFXj`ZPaNaJ7xw+(%WgmkvNYkfFJ(t90lqfQ?Nkx{P?%qKH`EcS2N5U#*5cgNvuoFm^c=L9|k_6eHUg6%)dC0ybZ|SO(UoSU9<5BD39Mr z*Oxn~{ZhaK=NjhC_Tu+nzcwD3B zy$561O8eLcM-&~-3-f5+2R953u#Z?pi?3UUH}&D!y!;5F@?LoHjjUaH41T=V&W_N$ zV4I{lz8^(&B`VJcp7nPBcpeQRs)8>Rlr7$rmm72=E@H*Q=`7++U;vG8DKkX|Oo-1O z^4=G!<%`)u8I$|yi~vqt$6T~awYRh62q}0 zR!9Uy0{;I^hUBpnx*XP{TCd=XG@67rFvhk~X5jw+XWB-)z%{IU9FKq|L_TpR6d$V) z3|#)%`1Au!3e+<-l-v;GuRh2H(u9uMHr`>ZEbIAlp1p!K_%g08hx(F>Vc8raY`Xdg zmr2h8oPBt@_PRX3sKBD7w~`05TI(pAW^52+{XIh@xaWR)vq@!;}OtnxQ0Z}pfj(P z7krbWt-wdN(N}s*4Zkh|<-!Lo@No|LAO}9jF_UB9=FDw_Th66xQMb$n{yHSYHNGB+ zfUXmqVMOQ+^3v!Tx*Vp3>%Nhn{mGTktFwTb!1So0FC7|j`3gy#2NxcgAi_|udg)E5 z2J3n=9s#`tztPyqB*@rl-yjcjUcE5rtpebLBDr1=ysd%&BDq0c_EjXl7Ku|4#@kU{ zgz*kR{mxp{?+Q^@z7irqz%GZWU}3zQpHm4#c4=D*<2|SbVcdvEK<~wGBn&2@Rv3yD(kAHgb$Uh;o-cgx`QZ%&_L7$N*FP zNg37B&6(8y=X7iRuA3@omIfsU`sDQ5um8n1=gFYvKF*{vAXqN4lKF?rn=G>4z{hb}Ui{b3+2F=6K<1VEjCs!^K>(_9X zh`sG1 z%KlXNzs!jE=4C$X(^vRqE?;Rcmd8>P?8WJ;$U~>j&y~kYsfx?<=pN+5x8w3GZ>EL7 zU(>+z!igNHAuByb_X_M{?l%5r0e5~1&Je6X-S0yot{q#Yo?}-ZpQEqy>q2WHk55d& z8<)LMiuW_>Hggtcr8p2u-w>42=TPolc`uJyDScCN7vsD_dNgJ6HJ21FYGcxjyP@U0IOq_;iIZXDfs{nJpiCR<_xR2i@q($G~*@DD(ArESb@GH*$Z%;8iykA6)3P! z#0>%ZuH-Lb>EVM~ax*`a%J&54Z2fU4#OsTr^nC%I$L3IRp&tD}a_2Yn82u30W?R`G z?paR{ayk~GVk7#I#*{DCb~63Arpiw^JwJs@LcC^xo{Io~D)l~AGVLr#u@pUD( zWgLd_=~u|zZFb5!hj+W_*T@(&=ZQ{Md*C;cJI5QtC&%>NT8|z<-X0Sd?Mqd^^IPPZ zN7c;5N|X4QQc?U4j{Wrk*z2Q584A-4tcfO4Hcl_gL1y|LXU{C)5;XmulZV$!K2>kN zj{(FHvzo`=J5?3;AGq@Le2)IeiFvT2T9x?|GWVEEwadWeW^rlg7T->VAL^n%0|W*b z_NN$@M}I-)5dD==9xSGo$Eh6R`(kha-2FLv9EC9G+4!beCGT%KZ>|WmGAjHXxr615 zxwvuSB)d5D53V##zAZ-6u(uJ=0r>647qd>Z4{sePC}@^~<=oFA%BY%kT*&cmHa zl$Xs#b>E)TbHV9?YX*KXi$0!b(K7`vCM+!{LS?fv8jL(@1LzRV!mr%mz<1B69WMcO S;MZP)yP^EV`LlAS_kRGG9zx9k literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/reference.doctree b/libs/network/doc/html/.doctrees/reference.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4b8ae24ee709d2519f5fc4739f75a60231406166 GIT binary patch literal 4486 zcmd5=XP6sT6}8v9tK!}D?mBkj*v7(%6B)cxfB>f5r)J-j2A+OPy(U%-g^(d_uhN&9lnqAW=7g(e(@(i_WPvKoBQrP_ncey`k|)n zHzVb^vf}wRmqq=x!#!1`^?Q%gP)r-jtl(K4u6hBNG#t}NxjwmW-MWysc*wmbFLf+0 zvRoRi)eFm?Q|@HMrexHR%2Bw&_e`6&B;{i&u!+D5B{w@6*r}_LPZmE>sd~F=-84r#WYzKqik~E-c07+ zl*qBd;3-WZh#X@P}*jrXC`q}VycRq z*eb;?mdni0c>-bFsVw#w;v7SqZHTiBx^r1fiD@p*HRvuNfXMMk?427HaEYCMO8W@p z{Fv@4rnPl2;BIRf;3yYKx;vcSAJaYHbi(|r2F$-aW&SK8*{36clOrIz%jp8`;yqWm z2-gNK>HF@r8l@w=3%Xr+>N^e~$M=ruA~+%Refy(^wH9a)&}xTPAc}M!cztn9_tjqC z0+JmOjw}s$lZiHcAWOx2%?7TG)s=Bc-XRpDG~4m**`rGYKU!IaU||phU7}Gu zcq$Y}bz(J&_bZDF>o?xU;-gEEtwS;0UxR;Ja}H2n4CcrHndnw5+fECAz&+dX+GZCV zDbgI+b6HH6>j0*J?wX8IP20&xKeqg3xH9IIzTqT!wt3~KKpt$80=|Mo?nwTD}1y|D%JtX5H8D%!CQKE;6 z!}Za`!5LU4lc%*P5&AZ9nYMov>|7ZgS>Q$^rX~z0HSiiJSy#90X0j7y6RCj2gM@1cmxeS!Q`J>Y&kao79|c0gM%sk|}-9 z?NPMIhTE>+p!vl#5A#4Wix&dU&nAb?xsV zr--9rUVDNbQLCSRssl3cJ;^CPL61D;6=`9k>rT-1oQ(>{wlO~(Uu0vB*K{KcIF1V! zA7#*^%c3W)6|uOEvwX+u+B{H#9y2$jxmN%;k~AZcTqDLds?hRe%MUw%|ArbHA51xj zQPPQ+9?SChnD*k6F)gx5+3PfX*X*B^^f-ea&!$$)NXgqb8uSEq+N$Ha-Aa0*K~G`@ z$SJMR^kjpck~Gb+{xFvG`KMy`8hE%gwmr?Dr>|C!>`BEt{WC>+2AFYEOwUZ20TMh* z6OWC!e4e{=>oa9%^AdU}S~?`1j29R#hIIvD!-r}Iub^i~T2jvuy0zUL({l$FpSQL} zY!f%>!?!?3Rpj|nSP2oyu~J%eO1lw#N}b&$G)BymOU==)(DR|Y7sT|!KAmq)L@F*x zwK}mfMtTt*>+A%6i0VNvuCcshXXEKh5XAWMlt_B1K`&$DeazE5yga5?ut^6sIMkz1 z>ZPPt8uTibms}~-W=XGJHlwscAMF@|zuI!a>LR_yr`N{xx-y&YGs4vKosL@4>*2;` znD#>(W4Nx@nBBFS-cVy>VXKLwn8%~gr8lzeT1>Oms`7p81rArOiXXNiv5s4%H?abU z(B#@Qz4;_2c^)iHZj#Y-laWEur(9T(7We`*chU~V&SE$!F#YN2+LL3f%ndhu<^`^ zY>s_jO@Q+K7y2NvZGF54wNP7qreKS z%<)=&cI;y~Hlf?5?#{5qtqy&>#djKtO&MscKDWp=aBrSIU(4bOB#&&w(Q)Yu8oqAegJj7R=~=F%FQTewOt2&-Js^wt zON(q{x;~kjy!2(bsVO>;tfa5tidDeVSJ_CUS~L6UYpj^PuKE0RyzO|)Q$*kBpZq4< zWZI6j8h|mwCwi>u;{# zX9xb@rS1o86V^|Koj?l-_$vD0Nmgic5A%u6)Q=EX!k#5Oe+;F_4whn*A}q*~euBoN zc`^|9PuZ?a+zSf}m7u4D?bR;^#dSqvF^Im)v9n?<%g)hJJQ1PPFpKod_l&)-4`SyB?7 zOZuI`wkC{s(4xcSKMLH_xwGl_5XnZY=a6Cg;175(p1?CGo`0-G4Yp-<7fk<&@Ta+T z=~n#bnEs+y$$i)h_eG%R^8a6?&G)Y{{Y~sblSD83d(wH*;dE6Ci&&vwhb8^PpnoP~ Vs@}Z+71O`Pv_bz7TP@hH{1+Keeq;au literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/reference/http_client.doctree b/libs/network/doc/html/.doctrees/reference/http_client.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a9ece0235a43cd1e55c1d5eaa5dedcefe1f5933d GIT binary patch literal 88864 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%0D|r68{gAtBxum1!1FZ53_hODI>Db+vG> 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 PI2XtPUS$p>OOx~fsf)N! literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/reference/http_response.doctree b/libs/network/doc/html/.doctrees/reference/http_response.doctree new file mode 100644 index 0000000000000000000000000000000000000000..861e48b6570f49db4e2348c12154b1a49b3bfd0b GIT binary patch literal 126334 zcmeEv1(+Pg)^@PS;_fhmgd{{@@UXZuByd9(1_{~8?j*C#W_PD{Hz7ddaB+7o?(XjH zaB+8ccl+P-R#kUTO?PG@+=TD>pC{?s?&GIUopV~Id%szmn%kSYyINX12e-917dq=? zcYL9(tFAOl|NTp|`lZ?WHS}rAk1uph>L_%UX7@{T^vm_`(WA#imG9^%sLoQ);kiE8 zAK%{GGPXqy^ctR<4+m7Cv!lJOvyf_PZ)+-abd`D!&&?}{h0f0WxbSeFLvwXF+}xrH zOi@9ZAa+11hoh1=UkHy6fsmge$Hb2rS>kyo9C z(S~zpX`WG~c^l?w>Q)MtjP7jjR!xP{e8U^+nhQGS6!tAva>Yw5_?;kJ4*}trG@$xdp7hAj9s|ctD#S5>LSJ74f9zQ2U$ZGE%s@c z*C-PlT&!3J`Js`E7w2r4TTC2e=}Sv=H}q~QwzM`w?b4E?N=vzu(uXUjk#II zFD;9?QTd6+z*IwzhMw>QY%ZmXvo`cJ$Cq>2s6vP8Zfj}6gx8gp&kcjGhct9z>V`Cr zDJa#_Ib?gfY)Df_$Dp=CS8L0dA^6`p1b{ z3J33BTG21{9n;XOD?d)WSz4)~m(jk|uc0pA)umd-ba!F0`}?H<{Tg~VcXtS0XKCe8 z4ZWIL^PQded*G;s-edAjyF*rIY0#*K*6g~(S4=VFwj4QfyVM91xTUp=>EbfQ z<%%m7S8AAp6s2{F(06FR;>x3n14k7HjVcZvRa|9McM)QXM%cQptdWI1u$<~+1gr-? zt?!pMfcT;aTeEvizI%*Ik15TM!)hzml{SRF8~LS;sqZX3dW))s=7Ey)%^`)85@hXh-*$)|RH$NvV8O6INl%nASpSqwTgb#C2uXr`pGO2)E9` zDGD)@mufC_<&iDOuF-lbwTWKhjia$%OWg=^NgqMoN@g1$)FEpp}ZOs;=Ikjo9 z7)B3F4YTP3e+$-*CcTV?qMN7y>&vN zxwK7o7U77c)Fnw5hGnML+bW|P<^XX^b7|Y+qTRBxx5Lay zv2n>t|AH?^_@(WkTtg2C-kM7b*aLxWW3ZMeEsX@H2EVj}m^r1y+J{B))Q)~BCoJZK z{7B>%1HTmMjGe4Aq$Y-VjvI>G78j@eJHw)K%+fBd z)F{g6LlG_Werb#VglD)UT_u~Wl2Z5sv`QTpp^nYau?(?PfC^*%(m1Okk{qU!E`sa1f&I>;8TrsJ)q(y~~rN<|l@qHWM1idSlf4jq1}WcA$L z>Nx=1YEMih1wNgAsY}$IGE!}C0nU+<-|d$sP?v_fU=1~wCURw&LRIW1OKOj@d{>%O zTr`g|Rob)IJ1@0rPMi7m>Q|H!xVK;OMYq_Mv=4OX)>W{`^0#jpb5s5Tmixhpv3&N2 z6Ati82SQL$c%(!bi)iO5K(iO#M9ApHtTI@(p2u2^H+TU*;FwzQ3trnIw5bxVPZ*vDdVNSu9hTbKP?ipAnAbhubMwM?MzK?n#*Do6OGBZbuh(5KP~W-%O8TuJAaqwHdkHr#PpLr+9hw`wUJ zom&b})4dKZc8zac-s}Xe>@m&);^H|LZi(SrIt~^e@0U)1noPt;*fqplIt9~IIuV>s z@=GU+!Ba}CeJ1Nj;_Vc_bgFQXEH_}lHidD8w&no?N~gJzaC%%M%x5Fv47X83K()7x zt1JBnBF^+nXF){qG+B;kSMo_0Pm%g{4!kDWP3urP7bc$Pm(I7&Iup)9#q6m$moA|1 zT(LOoYHc3f+R}+G^FoNe$S+-N8JLCJP!}SVE)kV3tyC$KUBH@lSw+K4`nuBP;D3c* zy3+E$$hOCXm#z}lS5KDpHSw%RO9xO_x)%Je^Gnx*e-8a^j}gM~hDwI%;uYe)8{s~p z!EZPDrJF;tbn!avJ7c-9FWpkv&uG7lX>XoXSGpC#Z}UsH3l~{YBhkI0f6-^Ll9dLR z?ht+MOw{KthS%MG=^pSX-hp_!&16nymU}A+#py8QJ{Xc9@_yL%fM0sha=e>CAYoxl z6Xi<}b&rwgmic+uFFgWet~N72MNZ74apD)WbN*PrqImytzx0GSK-{Xt+9xZi(#3~G z>8FhM6*PR>Fa0+pOBWxf_lxj&QQZ2BUwT%+^MmU~ZK)O{-#pG8<;-Km;L>v<=lMiA zFVL$m`lXk^qWB!V`b^ZTFIN&~vI~lWuRy_giLXNC*Zk7!mf?%msl|vR-|$Os0-@58 zZ^cPm$U5?E?Z|ih(z{}^IC6V2@V!c^bny+*^L^vU?V;5Ne(A%IEM0u3+>syorH=(H zC061SnL)~#j?Pa+%%_QBKBFH$_e)=ZL-7;%@uR38zpNz8WET?szJh+S0>6gB-}t3( zEx*s>-1wbe`W^_CZu}um;KJ68KWaDr2Nxv4TW)mco z6*W8l@YNi|O?jkE7ypX5SoMtMlgTa&#Z@oiql>7kM{j@*-e2{>;Hx?^u>w4i8sl~~ zCz0pU$Q904a}(g2l*uk){IBLA0#bsSmz?I)oEXpBiBsl}<&gG7u-LPJj5xmpw;k-r#GTnj?^iwmC2%M$p*S4$E- z<&iw?iJ0irEJd)(P5c2U$ zQ9Cm$5J6^UMRMw^IdNt>#4{_!a!7k3Sj_1sqn?=#DBmBuz8XLxJu@Ac8R1<%Gb-`TM#|vkv#2*r0D!?NwCW;lU+=#*-DW0{8Z|*HGnWNi@{gh zkWC;(M90m~Fd`4v$d&W6EdiCvENzTf5iAyslu^&m z1SsEtU0>}$B0WD7Fh9b(e13K$o`{ip6SICM3|2blD ziEs9e<&gG7uo$$TjCyvup#1*W_0<6+(zDZr*%995vvVNv4l;N#t7qh3bugf!!Xd)yS3ea~uJc$}DB)=XfH>{G32eCu&ZdAGyS=PKxD__C&B)bh3U*X**k&5J6_^QgXUXbK-1`7av_7%OUNFU@`0p8TD+9hw@iq*H>4ONYB=I z%$D#jpRKEjca6b|Sxv(Rt7`!j6|N(eYecBR^@1nUbOZkI)r~|?c_dGJA}KmeHxcY| z%Vd`pYi<_g*wqAmZUGP`-ipCjw~~iej3C%_r`Kadm>mYx=%(uKMhd+e(d_{0TSu?X~6sl@ACP1ka!OnyhX8^aM`50 zt+QoZ8}6g7y5^uUxCGwP)-_l?3>;D95#qY0go->Wcrr_m;SXOuPV|&V^0X)NqOIHIoQFG#4b&HE$isg{@M6lTPvW$AJx}p3l*!9(`B+_%$jkyxu<#Y8K@m@E0av9IL z#MLmkPQ<@K4A+2A{F{JthTbB>w++LX#n~`ey(7qJPh>~u?OhVNGBVj^#lH6hId*k{ z;rjr>=npXX>O-Nz$Ysk0Z4o*wHGc~qd)ipMbX>afB8amWG zgEDleJa#g4s3nNp#lhWVD55@vXz}`IRH4En!)?@jE_kvozQ7;8`jY6W|B1$)I4L@N zUr~64uGzHA-q!@y=a#FBYHc1k#f;`^TnaqZFE#iXABM?lIQ5IvFV7aW1szhdy!ZzSiHLr+9;*){YsTBzT7 z$OLpn#Hc?22CF|Y`06ig?O9g^YGAKt?COCV;$J_iP0^(0g615t}U@B-6eR*%6z?nUI@8krdnE5ghomMU(qyQ`J!uuk;> z31+g6^mA%@=3aa2XbvK(xd0L)=O&74WF}Zn^8j8UYMg5C?x<7q0tQ+0VZh}>G7`hU zbph@;&w9+>)ZW^eolTOis3!rlpy0Xe1+AmdRHqgK6#N&);HyOhm6x5te^Kr@{Ck6N zVoP&ZF}tG35Var!H&%KXj%qO+>K@}6zKdheS4)tU(R)emB=W5*3 z^6Zw5W9NDUIX2&1r8Oz9xZ}=XV82=(aF?lSpIE0>001mk#NeyGX8Wj2nV>F#hn>5Tfe` zLhvAfzP+zj5u~&y?4y}>RU*5*Guah|aYm5!Ln|Sp)o>6CZFLO3T7%>%&u|w7Y<+B) zgNCU!dCW8Btwpl6HJOh2b-3fIfD5lUE?NwgQOsKxfB34N==xz8JQC5}+NIVL3|zC5 zfsZK`QpO`LVW7`ITtW&PxvLTMZu#GVIYGcx-Ji}TA6? z!J$Q)15S&!Anlf#RzDI|=xkCg9rAdq+Dg#Uo(PDVwKdUQ?#8UFAlFy0+6ISV+b|5i z8cqf&&+r!|9NP+5{Iem})wUXj-8s0P)OI}JhHw{e9IJl;hF?6WDy*OGfel<3#M!`;dA}2aAc~ZGTGTD_x!WaN;S#84KzG^0V$|E;~ zYay0A?TJdlVXTb$=1aLoY8)V#-695D6vS5h9hc$oH>S3@k|~t(fEjkm1K1H8a;$yR~^kty#8;%P0ESbrw+woD0CPGUmZ>! zdJ;rvbP_--jjwixIzp2jNwT9fSp*)KAkAD5%E(uqPE|IC98LOTG`-Hs$8x9A4x2-c z6S&PG$CLhqDE)~E^dd_9aFUFYLr%sYzB+~IDYm)xY+&e6a~G<9#QHdA)7j)yp-X!r zF&YJ@k=|7|lN}(kP6yCV;u-iG*AR)G^2iOdc4jPj+7so3!&x%w3xWESqf$3@HgGV7 z=V0*Fx!BsgA|j(x7@JqlBiZ=@8I-z!JFZP>&${qJ!0Ez^NPDrSHF;$RM{VWuP(>mzPf_wDUaNs)|Ij3X-~8eUtJ}m&MR^s@@nk*>KYR1kQTO8 z{c$bHt_#Q@_-eCxyZ7P-qK9rry}i5EqNpw{R4p!gVoJK zp7um=)LXZZjVsl7>sCRouUW)xK!;0i$Kb0w$T;O0xuP_@GWmsiCn@jJlzO4w%^g?2 zbWrT?5x8Bb_mcj;DE<8j^dd^8^8p!Up+1N|eDx5~Q@JIX{_JAV7wn_!^kE@Odm=FE z%|}S?YMaRp5>bx=Xk+g&{Eh34M8`EijFMfS;J!n?MH7uVY*|Px|bb5|El{#4mJ`Xq@_yTEP)U;-qj>Iy3Nf2;BPliZC{xT6= zzQ$Fr0BBwHD*pD>YeY|ZG;MAa35*#T9Ct^|2u9 zOJI@+sz~?**l@_F7;qhsd{dqgD=JrAq@R=W3r(pP>6hGb)e9HtR|2<-^lQ?86Q%z) zfnG$(WPT^3EYk1shp&DhdWv}|tfty-`-8{mV*OFb)1C;9I`t>Aakb85R}qmv185`g z7yRw3Ux}Xb$PIz;TP%6n6CH)a?=sfsmc_)EFV+eb)gM5`ocxIaSLLv^i&i984bmR7 z3E3>zYBK0HD|cMe(w=qbY=G0Dvy*lXO=}kIFf7`hf{^xvb<}0Oi0JY)F6#}Tby*+$ zji>U6p7O{IYRwr-p7ulwaoJol>P0JeS?9*CujV0*?a*R1kcYMSMSgt z3jj`kEJ)ggG%bIZ5?NBw8@6>}iB0i0cqp+83l}`TCqpFDEkbUtaO1Q^1-X7oB`pRj zIB0PUxcEl?DbI)(6RIxaB}uuIrqqjgY3{gchKqO^f!jsAEa_8G`g8)lh?2=&PDWY8 z%i|AUtw411E4fCMs;{>#Ouq^J5rHcTdfF2~QD^ognX6?cyPAkt2|ycx{qVQ1`V&3n zksAVGKrDIM6P<*^$};NbO&yigK!D)$K^X8TAGUUpilnMRIfP`Z1Z2=Z3J@=`uDxS_?qyqqXt3uht=Y$|E=EH8hqy z?TH%VqjhDh&mlGS7|~bNV-Idw4+E~UVQbwY%&WR(1CnhRkU{)L+;O!J-Lf&@bjv2B z-Bi=&mVi3j7tC*(Y%`1}mf@zxM!D`UqM}~fjD)Tn{KE)q>HlQx%Sp1%NjCyGMj2j54a5vx@u_#;{9QOn;fa2z;JTfR&&BaPJ6;T>UV=I zH$=80^1n24a6?3^R^=Re1WC8oq&i`YbV=4iGMNl_>5O*&VMagtA9J%8~Xxj~wX^3#KU<0WUD zAXI5j})&3*uz_jf;CkPkH2qh&(lxJne~U!r?R->vM}B0^>DP zrvn4=as~!m%){0$5)l}kuh`siCdtkU$e_~M+;J^Rd)9sD08aOvOWN}^ZM4-mUog_1 z@Q%9b0%E$1jjJvM(7Ng({OzlYiJtPv4SHP?OP=;b4RO__G6uQhGVH-Emt(+nJ8Z36 zgn3oBTuHL40y2odnmexcpjnbrdF9DX3lZk(M&Q8-H(~JA%_P#7t0qGPUBrSgr`$s7TMcztPPvT-T_rUGnUdQ9 zkK~j)$mveai8)1hM<*kaQ|==2-5NQ_DO$BEIprRb-m6JYDdS z_CY`f1wQ1CtAFU4j{v7@J|^uanzs50i-?N)=~EKAa*UroBXBY&ET01bW`BVJ5A+dx zvL`H}Y?v^U$FDi#ozP>i0;(_<_hj zYUChcXw|ADjGsvQvnJIE;}`B!YHAb4uL8FT<2Ta(9;N>yfnG$3rGLsO3F9yPfgjN# z@b8}%WMDs{kpvc_ZsZ_+e zY97Gps(DE}pQbHO7xN1ae!40{*1BpCHBL}%ct5zjf3?}IiO{#OnD%`2m)aHs+1#WXi zhV-jN=~qvn7g1vA8Zt_*SQCHvYAvFt_*)#CE9`v&$r(IdSzBn*o=A(%^g5(#<&@DpSm_gCAd}K4W0+I&*u}4QNu+a%@QzMKB&ReHxmhCzIYp~hC8rcfI#!eF zoHC9(m73a|QWUt&DJ`V;qV&5b(2FRsv{gpQDdX{nuiA*Nn>;*;mnx*z3vRKf{^-Zs z1wZYHr0A@7kj_;zlif&UlmN7gMB#7zj+f~8i7iIyLAto_lH&)y0tbg~8TD^>U7gef zzz{1FG2qG`wsygYsOTKU=8{Py+cO}8GJA2SQW@*Ay#c4oeA4ctX?fvez<}W!4H%&I z6%0I=CqtwQ*^ihmW8Y!L!JVYmC@X*0B>Z=~ZH&TaS z4?g)f245YDt@Vj8r%#Id9a!Nba5jbxBhBFf4P+m|9arzPXB~1R;B?4Qq&-^GvisPg zpx>ApcXLG~Mcs1@>0B|!J;xHLyN?*A>Nvn*@$ndZbpnxf_Ys4PsS!=XOmQNqPBK(w znc`#~bd}N!#P6p79?2A^lGACL6IO8A6W-A%jAV+_iF}4e4l;#StxBf&4@u9|q&ica z#hpq`ZKgO|;C7bJA^o{g`tuU#MU+^2zKoJ7F2EnYx{&DhUTj0E8=1nMA4sCONYK-s z2#QYf#UyjJ%w#ta5tjgH6UC+Y+gFznJ>`)bLhqn7D1LgaV!47&v%KN^2iEG-5yJu_CyD9&>b=cdE!p&!6$cN@YUVeTAv8>$>)iC zNONyM1KIa+$JIM@$o+uRArFxDK~2m4)vi(RHgE;Ct8H1$pJ@(*}A29gpM{KQ6g!$x?#!saAIiP{;U%2Dy9XjM!!0C|RNc+2{ z081>R0BzL75Fa1eiJ+HDR^HzTW4fgjy3cw?D*uwrQG?*_@KTIaG zl6W>ljG+frmR@*v9&}aI3}iCq06daRdScgCy-1|bO@wzeG$YBRH<9~jCKkLYR8~c0s#YlkHLaW8` z7p?rK)eXhlriV6$ zU%P0Oj~?LZV*R;|)I_|4V4`a2>MGz32JP}FGd_`GIN==y9bna=@ zfOiOzcWOHEhIKM=Sa6*k#g?``2Irfb^#^A<@a|>2!F2Qi>r>IWo5UVo}Ez^EWE zz^IrawKAZFtq#D3xuU$(K!GD72ML#kUSKZ|qUUgTK)zMO0~7PAO$`S8Fn*N4EX^S} zz*j?u0YPwc`}llI8=nR2n50$__Wa>@!<_Om_B}fAX^oby!@^G$$Q!lsJr1=hFdG&X zoS5&WsEj~+cT5_}kDjR2usgh=5B8yCcWXhdE(heL?ZYLBu7N$#8lb7QUMj8Z0ueAFrT=fmbj7Nf_swm0ow zr#6A62>wl}_GU)yXW+y5w?&M}ceXSIAKt02OQquR@Clwy{kjzSWKteK93Q&Ew^)K=K%YHnJ2<%T|cjBg#vm&mBCaU2T@$(LfY*sXY9 zeI`4?mb+~PUZ49v>1H(y#$mk<$Kb1Nv9;?}Vl1qw+Y$aR4bSa}h>Mm#`HX@odh!*8 zJgTgU@WW;-f|KV}5zpN=sW^VeD8G)1hhvWRy+5eq+J*6kS>A zcC)iIQt0acR@E9H0>0V-gRgd^LMhMaD-NQ&JhMjS=Oez_Nn`PMFRl;DSI@d-Mte5I zcNPX7BioC{vnN69C4_F?I%O9i!71{qn<~=Pu0VxxqcHetH*9Snh#_Ghj3&HM!*gqc zaoF*tq-z>q$hTqs+wuM;%sP6U7X4DEFc!w=+u90hsLF#$nbCTt$B=jBOc$(CO+r^c zZL*ue1J)KW_-ZUAraYsNm{>NIXEX+F91`HIIc9M2z(%eaSbREka zlPVKC7GHd`cTD*9^T6;cBEg)#n$%!Ew}ND#@E#3ZS(Vq* zcc%KujoxPaK8eQ0{w~wHkg0@MJX5@^$G-7CWI0jG2zlbGW5`irR4qKmc6W8F!XW*H zzhzLVu~-KMSX!60k+pQjNE+C+9`aJ51-Bn3^DqfueePVR#>{x zZ?a(p%V!nw-8Q_prViivQ+YKB?LccGk8kin%gx&rBu~W4*jf<@<-}o>(BbkCl0x&q zRAB;6mGGIK&UTzA;i4$W#v>LW9Uqva8G#0XF+%WRM)?3_>m+%aG(4+p=w+f3YrHGy+eF_+ohb%3WNcEihVdr_IajWYIqC6Rn83&SVab*5$| z{@e#})EW5zT_kI%eQ_A}?uWrw`;&*h9w$OkSAv)5fOb>RPLI^B4$wjmq|k%3(CNm# z!hHu*%ppdMyx7~6qo8((|Nc#Qvi}YR96rzw6vFq0SRIDraNyw>aL<`cv;#$~<3M>2 zrgh-oQ>WCCTAib)&e2*OzRmLQm0RKTW2nHfMu8RS^yI>*>lEsu%*1gdN}h@10mn?p zZxgC=R3`u#({myQy!)D*_4J5>&h+3&57uyXGX4bBDH!l87i`gONw2KI6~>-MyweR{ z-zvt2U4U472C0&*{SV-MyleXChp^;N6V#iFAQMx&RFR2~7;la7)jHG{NUPPdNx=rj;7vliD zdI<(!T}o&whdU#*9^Az(NZ0)^pz*kjXqOwb_{*190BQ(zMf3*B5yZolLRWFY(&KeX zZwP?ZFHT-1tR{DH(vyplUPd;nVKdxYUAA(Wk@jCL0Q0V_Yw)+PuEiEhz@yqw@;dI* zed>Do+v5dB5gfh1cmwv!FEEO4#KkwtSaE^zCLD#IZ^q!OTd=h!Iif{0di4dyV=x0@ zGdolC%j#Bb!fiC+c5Om#CR8+tTD!FGpvHF^jXU7l|8?iD?t<``wR$&os$8oRB#`bA zn)=)f(f3}+M!4RG!B_WF%amt~5O*SCd9%(vGsktFE45-lKaSV7x6ZxicXCo8_ z;NA0h$8HP0m)JZ254q@X%lC^klKPXXslGVr>sC#L(ReXi7-cxoZXQ#4LJDF|@a zQ#7l>UD-V)nw}P*>no@N-~1OK_~sc5zIv8SQn@vz);H=oaDdw4YNPh-B1b(h2cYH) zl#rn2ivo1jER63c;+{Zfoq7pisQNMnU%f&``UCf6(}`_0qsjD9ctS*mr#$Zx=RJe7 z5-4j7IEkkyAkhuR-u@YToUt$Qj_GFp{l?(u}7Sf@S#I;Q1Q z^7$;_1BE~5PNl+(4ot%rfV2PllC)oG+FT0^_+PFu(Od_szMA_r^>EeB=%w@xfx1nv zs-*fB*zoap81R!hlBU?XefYo9SQfT&1mX(E$I(R`cq4qHkN^-5T-b-Z>S4nQ~gEt0q{%- z=z({W;xQp?<;>??m{OKIoDyJ8Kc=My7#4C7b$S#5&!+oXX@Wb^nXGTGzt1KJp2_aB z)9g8n*=tU<*{Ua4z~SOXy<$9@*n5$AoI(h@-U9SY{_cYv{6>-Z3Hf`@SY~+57>-LA z&n07J{+=6$5ytai@YTH7+Wajdbr@Gcqzb{oR=o;GMbjx467zD(*RAE;1|`S*?Czi;_5At52aHC)|#Euz=kK6!{Dps zNm_e$7Po{UvI2RmXm})DjO$Cdt9#lLUZVa=GR9nt>xbh|v_A&C0S#Ll*djJM< zSJsjSQqmwTX`1u1c9qW0UPVqGOj$#WtjCj+Q`M_tQ<~NSeeq-#bHE#JqG;H6nf$Y)-A2>q_JyBnNd8srnzjWc_CzbfFly%-BdZCP3@5PGim)xP;oj{q;P<{H zt-T_Mufhl$K_1&19xF1!YH*B1(nu1y2Bkd_AT~9~SnHjF9e@mzcEsQ-xr%95kSG|9 zm}#yZJ84NfQ_?P4(lpl&?bM{&u`6YbGP0hWn$&2Tl=Wj)buCwVlBd)%p0;2QF8~F- z|86wb4UbIrKwCXV3xcg4jdW4oxM-W{>>@P=j8Q&hBAoKkM3Hf7B7~a-Xv;?dJ9wmt z_zC4>Tr9J+C)UZ5D9Tt_K3Z@X!S7+f3l*`o!7m~c%10}a$7|%Ee2AcMakmkt-QcXx z#a%V2+kl9PG+Ff>aDhiUG2oZp6sZe{m=sM1kpj|9{t8d*^=Wp4s&tsp+I z;op5Q;G@wbt-XSXv%(K;d3iEE+KxhjFlzf6dXn@pNhd( zr(tVjSwtq3gwu(9hDHubf(Qy%>wk!IrokD=)f$<$DuE+w_AJu6-U$sl8*msT*Pm)- ztj+-qtUVWlug;?Yo$f{5=*o?x`}2u>L4XX^F62(7YMf*E`Xa!Y?k^_oC7PDMP6^U| zMCZSMMTia241Xy#at)B>0PQa$us+upo~=z?bva1j*DEmK*#^?5rhp#HLp&8m&sAh} zwPBQSb^jWIT_ZFrvEy36O~gm9?q7$)(Dix@zPf=tbPR~lXbgZ>TABDu)wQN0b)yz{ z6UE)E#Z3pkfynMnykjn3m zWtR5D7zykLWUNf(58^Na`ymXzdKg=q%0*;CDu0B?k80!~m5ZQoF+N6|#|_RP_^`1t z5(YYzC&!ND@+U~_x+k>gNx)%IfAFrEvw8|du=i;U_%swH=!Gl_M;CG=nLk71X9HyD z_8fOAb>l3<+s^~eWc~taU(~d@F6dfYcC794{}ikWF(R7HU!qE`1+pZd{>ubTQ8s@C zByjAj81SJg(obPF7gvP=^g0>6VHhRd4S17q*9v?A3&+Kfw`7dD8}K%cL)&*S;I$gq z+OQX~(J+`k`TRXC?tO~;K#Q9``CL0KDW88xfgc%xZ&k@;$tOnUA>1IzN7h^U<2(^S zT!T_oLQ?w2Pws;!eWEgIYvezs1KcRdWRJAz{}Vy5>HkwY?K9)FhQG^c>T^gyVURg; z3d0wa9j7ls`bz=Y!tfP#eDyW)6AHsOvCPt*m?=x-TNx`0!*@8074kg>d~6I`yFx@{ zLSguk$UkZ1pfHG_a9#gQoL>yi7VvI)VW=7+NkJ$j<5#kE9T(dA8{n{Y6G)9jQNO8_ zseT7L_~;J|zWS50bukemqgfMg80tvj`8-uUU$OcJL97;Xv zN4~D-LSy>_4rArlbG6l@$qQ8jzz<$p8H29|Qn)TiVrDdzL<-U%A`cFbq4p5&RI1I` zz#OdtI1AFMq|IpB+~F`|+6$63aXKtMF)dn=R->Y>U9$3E)anFIQAJthTNYrb1i4{TVr9tM2S5L>(4M8#+z zO`n>yfflzR#cia;O`n>i9h_8?Hm1N$jKJCO7`l7Ct60c47gX$(XL+s3K>T<;__b}2 z2`1!Qy9;GMbI@!er$l@e0e^Lm7hduH#JCpuZM-m*9~!2}1HX7^QSw^{+`y>QJn#r? zD}FrDJPDT=?f1>~k0#_MhkZ}P;M7*~{tdiir3pXQCx6Sij-0^;zndP@-c?MQOAY!Q zPk$ydrfO|UC%N&J$(~@V)@FiWtJdap>=wqc!(yt|G&xpn3C<{1GJj67+KMvc^u!|A zT7b4#WwC?T+Y>*bSPhG1hIifLxGbvSGFBF=ZE+Z@XFCjd1O{8XdPHPGu^K_-?KN^x ztVB?lA4U?V!QgDbVl_>El*F+E*|`o2ZQK!X*eI7lr$Ls=fen1J69!-HOqsegiBZvv z5-Cl)5P8=C8QPBGPNlYt1kA{8fU`7>CT*jp&D|I+P1=lq%wiNTM5|byHn}dyWRI7K z97AAz?!teH!Kw)wBQTmV;2WV-KlRU1A4y0eEnK5xX~#HYN5WmGBEjwyYF09fEr6T6 z5~(lB!(q5;cMQI2B@exZL}+vkfmVJ}C7-(;Pvka@td9mdCzZu^(sUS_o>j`CY1o45 z7paRb=pR`ajS-2Ju|z+)lbOk$Vk@H(1X~$9>Dw;j+ifvRlWRF#2iD+Q)eYX5Vwpsz zHcp__I870A69s5%;~v=Y)gkPKayg;pK}IINVXpQlNhIv9-L zmqRe%jU$w**R~iIUE7iRcqow%3y`7j;oPazm(hS(IRbFj$0JF5l%~zy1pR|kw|_u= zEL)S}hG>C2nnt-k$Yf8Jusnvqe^P-w78)Zmj>CYD`cnOWR)LgI3m57MwBtl$N79YG zlL&X`FzpF1nZ}c4jJdIQ3Xa2Br((dPN!Z%-B4VS!cF-AJUv@ zXnMtzNL3i$KA|u=nicdZR#~AeJ4-AhiS17{M)1b9_NFGhqpqz9uYhak%hc*3XOUx7 z`*@!DX%(jM#IdgY#8I6y@IvhP>LTJNRKts7nc;IWI4<#e ziHw!i@KPK`xL$?<--5x`hO3B7sD@V%`AUr(R6`LIF0!kLbG5-)nbojnpGn=jhNP}@ zLVKP}dKK)MS9KJr7e zQvZCjkfbDH!!>*l?Yr05mvAO|AHnXFYgRJr_XBS7PV`Lj0UU-4AH?9RhsZ;Bn<6y2 z79(ZyVIn`Gk%Ka+bxtaikCNswL(`|WG8xyZ|6i$-WsPghW!A^(DtA6J*|Tk-d_oXx zp?s3=eag5u?wRwlOc(#uot#rjrFn$z93^|rF;>G5wR~}@YT!M+Ug-96Ds8^M1EBx2bEF;g{$l};=FEf^fTwR zJ55UE8>Dr;6B_g;;4ny@Ij@zmdJ8nL_H7LK3={?E^(pE`*Jq?wzDwly0%WN6K6ffr z;~c}+9{|o;`5|dP(zLm!{^=#ceR@(}110W>7R!%mtm~Uh_ACj)PYC?KP%J-%C5WWY zFyL)MH0%FHv6PSvm+=?0?@MD}(plwKgu8Q&XYg=bru}OfW6mnS!Ere8TMWMX4qKai zL~L|9M#|;)ME*e|2jx<0om4J=B+XBT<_;`F_rzyRd-J5&^Bn<{KZ_|xVtZTpQB?G1 z;Yyvj5eQs;pE1Q#$hzQNYcaPHdEzH0fVksGN}Lbo+iE-&{F&CdbCAiNXDi$8*(VJ7Bo7>ex>cA`ny3Ep^ zm>|J5E8sDOZ8jW6Y|W0rS96euPW2)(p|JHNaxaY>6gCkQu87{m>0@x@jb`#NL6ztc zJL*W1Y{#5{!;WRau?jym7f@l_+!*k+H1gH9iE`0(6Dec!5_!G=85+&col1>3qwwqk zfU}G(NZN%oZTa&kjMLz)^a$O&yec1WuKypd1~DyKf)=Ktu3fSeVALW6*5~$wpMw+E z|G5=vQK*3_TnvM+7N<_B8LSi5vP^Us>Pt|$C5>_kXG%*E>^fVs5`QlZxLKajGo@v4 z81^rV0Uw|v4;{iHG#bK@)So8uavC{E{aWXw)W1AwRxmVoxd{fzHC$}&36el&j@)1E z^kzlc=T1TL}WttUyaDCYvdsNi=c2xtU;VL z4UW7Rt(E|i^uHEqT(5+NtPMB}Nr7dxh*awU7uF5M;H!1XST7z?FS>Xl`M;jX>jlVA zX?^Zgs>C^kZ#Mv(`F}&wZlq~*M?l3HmpS9kLBzIb0oa(Dx`xSefK{6iIKvCTrceWO zxETh#E{QtL1O-55I*j%$sN9xDxuouYE5coGr#;~%4&PeFnC?G|rAs+;&=#Rz)Bov%#x z5?d^`7X(`@Mq5bD;N(tTk2LrB|6494$cYRNu8$mKaR!AaI5kpc2%; z#3~HF>ZDFHK>?EK4;M=pmFqUjP0?@3CXmRTg0v?BWELjMSnF@e_5d<`H3oPhqJtCko*!<7}=7f4(J0{>Rs^l2?({ zH?dglOJBItn8{vli`9ODV2joM^xpx-e_KvR|EUAP6xB**$f;HbQCysg2(yC)XsgvB z*uhh1#80SJhsH8Xdt#Y{?O`%jR;$Bt7y)_&245YCtqo8SnNY2cBJ$B1IjB}5C|rQY z5a(EfBX`28Rx3NDvE}MGa&mnYns+?lFi+kCUZq?mh*2ki13Yme27G>s;&ieZ>-sZ^Bnk9jx^aMr8SNqdH-<$K#_&U$72rB|9*94%P?q5iJ9vdm!X znFP-8f^`8u^SugFKUHBAh<#$ZOIgwWGd{Vh{ zkoH7^Ov42-*8Eem3xN%9U4+3`7h`KPf~Xi>2a%F>36U?=$U(`{7ABRf%Sdy%p^1AG z0iRFp#FuwsZ?70w`BgS^u+}1F(WmM@izSY~)lyeCydB@uF(2UuPJrIl)Y^^TmhxWB z*lt|!Zfsm`%aJ3u8?qdJV5v_S%RiD6y#DSAy2_pAO!gXE(XJE(ThXqfd#^U`T`Q)d z8I`KJS6u@hC}1*QP64}?+~YJt)Lkb)TfnZz4jwWienJ7eF_u}{6GJ45Z<4XHfZdG4 z2-jOM`07?{ZMcfagaUROk#E-s%;exz_ICmNxd8tujV~rk@HF*~aUDt%x+zmLa zk1hWPl+!z6x0 z6X#BVqCtJK!Cd3*8;kxotTV)=7#Xcdk5XgT!c6um38Kdctj`@dbC{zZhd!9qCouTx zNh+6`S(JlsB?iJJ@f5Xu+Gv?@Tj#$7yYAPlWCorA+$`hhZJlRv7>;-jgRh<^4;|hj zG#cKKs`CPoU)0D!)zLa*6|l>Ci8wDCoO(?AG$v*@++HDT*WOI_S~2!j0`)u5YL=^B z0~LJnItDz=L>4K&R;^|hm^v{$oVqv3>n+1;PPidbb|hcDO^|DbW+Rro12|ldJK8-= zxl-@q5Y&7R1Deu%+WA7P7>or_`w>SGoQ_^ffo_ccBy z=_iJC&X~s-%aW>Tmx2=u1Dwg42csqW?7yRX_>|6aCpeS6(RL4?34-k&KBt4fFb-ZD zv*%tRaL`v=86KGD~}6i3ITXGFG+^ zKj1K8@kb24`UzXxK8VPK_TgtD|DutD_CW-N3+`9q{AO?laKY8;GFgwmlhXA~XwDyi z!yGwLsEw`q6BMxYFAR8arcY?8s2W|akp^NGp!sUn02zwS#+^#VIKS}o?1W1LF$alz zYU139&~)Z$Ai}kV&=f199Yimx?3$R#UN3Rfo4}c;gXjZ&Fs*eMd^IPPo0&QY34(A{ z%tbBdHd-d#7o3N1*Z*lxc*zvZD`U)k!TE3;u9zQ#uNJ`8u4NG$jc^d7Wbo(M3le!D zjU4n4T5H=wEKHn549;}uA>4pll&oEYGufNO+QkT*(jH=QP{9{VV8D0L$YRQS2r)dI zyrsx%X~Qd~hggOn*Nn6$Y{ZgfWi0O@QaA)P(-?fU9JY4KM3^&WNK;`CvAiZ+frKk+ zLbr#|>L>LOeM!2KAzfoKJw)O;}uBtt8J)Rl}&dBpJ<4y}Qh%)2!M7$0bplv~hV8>Uh5I>;>Sv8hf+7t66 z{xdRGwjitFFxJ587<{z`wssAO$b=STO(L(Qk%JaQ1cmE$ZQ`tBaP-@0rpb@emkcF4 z*I}WJ>jDlN->wzBQ$c*>uCFIud_XIMjD*y(CfIN*+AB=7c$w~#RWSMIHkSLj-Y}sau|HI6Io1o zuOo(s)4Vfz?P7Sv^g6o|UPG`v2HMAvUl5V zXPh9|Zl}n}Xfcy99Hl1d+DdhU;wD3RV2yT1Cf#XwcBjxdMG>;C0<`VUc%dhHz_m z!)EFnDgDkK`&qYG;!`S=s#0jovA)ky5kYsqaDwIG{iMLlf6?S@gM?c zo{r~W=!3~V1OuMxp>i`*$0MN;uB$_-oF|aA>xNAB9`V76 z1Wswsa}ucFi<2?<>J+k=@}5Tw4=4Im@;c4%is^YyC&)D;?Fk#Pn;zs(a!Nj~X9AajB;MNt6rdR5uVZ*#~UDbD<#Ee&-@i#KmSJ zHbbRx`<-&lYMcml2{@w7k$HC7oJ%PyPCrEHWdgKq&gIzg)fL1~XmhTNWtR5DEQ$K7 zWUOp+uEt?R{xukUbuG3w@9M#E9tXk2E#66Zwt+8Cu@Sok}e^^O%9V z2$!bjZW7<4iF21ko0@X{XS&sjKo-lREzP|&!!JXvP)d5=D&OAxvr!;cV&S;%&JM%Pg{%dgL+e*%JBhFH2sj(2a@%aoTxMpXv4~ost z5?G&GWh%t0=Rge4JdeRwFOXAesyJaj#T(&#zDSlY8J00U&dUV3Mrk%;*DHWyKBCXT zyoy86_B9N?dY$xo9z~clk7Yg18=CM<627Gg-5y7)pVZ^LP11J^Y1}=m^10Tf)trU~ zXQAad|AZ#TSP*wPr`(uSt-&4h>aTa{RyPzf*+*@c^PV8sF6Vtt#Rq08Hb>ak(&bd2 z3iTmaB93LMoi^tq3X4+^f%>rkZJYB6c6{|I@e|sd&tjRSJ+Vsy|8p5D+ng_O7{UJ~ z248)Jt!;BeWI~(sHIcv3$U&PUg2ILREpfgxIPw5ee4A6GFiO<$6U?Dg@h0Bm}ytNaUA~Xg8?rzA``tp zL~L|{fY|mra}s$jjU4nkT5H?u%uSqm49@iHb=(M@ml9mNGug+)==lho%3f!F5W_PI zVDQy~W9yo%$6X)cWUo&r0Rn@QhHktS%+G(vv<6LKC zvQJ3du20}h-f3+BB@q=HV!-oV)Oe=vv?Q>?^|~=t-^8dsMUN0|N+Ngq(w+#A8Qe_9 zS|1_W9LVtG78rcBCAKyniGtDf1&+2S+lt6rYviCO)Are(EK8hi49@iH$=p~TMhUJn zGTEoa6T=Cd%ARan5W_RuVZiqS$!V&4GVw+@_an%1d&4rOCmTtSYgF13Hey$UjO9Jq z4mbpDcf{bU9JY2IMVK>>Wj)zWns8?l?xG3Zo=mHs)RXN>(ou#qKP^3(Ia3H@yO&dlNX5cV<46L|E*D0S}^4*xDr~Dn^$WSlZs~-$XuCBL}^iw$S!whY{y+gERelGdG%#paj<& zne6l8iX#b}%HHfK5W_P^WAN26Q)3C-r8hlk^Nj`aoil?`KXWyIb12 zR$X&+7k;MCGx)ME{ODs-b~9nhzh4j(NW2OM4>idf!}taytD4T7F}LdeLo3~x$z)%& z?a!HlVB4Rw=$W&PXX3tLpv|3(XVf{MMo%M7c6yp~$u~|HgvfaUv^~xF*zwf`#82pH zE{tWC_QV7Uxr=11>}f8>VT9c!7<_dpwl?fUWI|7K8Idp7$U#pdg2E+o1#zx4ILk+R zn#uS|8kMU^;yNX?<7&WRhkV1Jitp7mK!t7BV(`^<2_+mWY<{9lb6v?JQ(Sep5`_qseonr98oFVH0Z zc7e?{<*&wbw63_6FcVd@$ty0`3NX(xh3+}J#+}1V_ElTxo)-jL=w6^ZUo`IAcKW+h zy#(ISROZbogD+ERoTgYQuL#hV!B?^4tJjF1PzGO*WtR5DKv{Wj$XHnh-^5{r?OPb| zh9hik85EH^1mBuN{sOIpZ3@Wm5cyq=9F##36lRL|i1WU|*$9-jbD8SElm+?$8M-bD zt^5#hXe!?}FE5glk0$rhOn>ze7{Sz!G5G2eO4Z9*42v%3ND2Lv$e#ts(D!rhRO-uU zz^r@$I7{f4r2R_M#yyrhqe|%H9jDt(F+5sWzor?k)tT%o5{TarIAaRyw~&ol{SE`3 zc%mXRs<6t0hs)&$YV@PgD5kLfM3C#!v?pxDt3S)APpoWV{RM|$?5`N`+!VHUX^XIE z2!k#ttiNlbKS=baCJLZPW94f9MYJB!7rb-*xynt6sTMb~nr9(lvQe`F4&~(jPfc9a zY#@Nivtz)A$;e%=T2a(7*%slRMDC@LgCeZ$bc-wE2k~kp?Mc+!qjndWYG9I0%m|guzz}lSRri5=03&&AcXX z5uz-rQF7ZurIAInVx5JiF1&#@)m-Sxx3ub)wsxrY2`$Zq=G1trw0_NNUKLUSY|Ny( zp@0u zb!z&shHc_QEc$+^sF>uXDPtKUV}7V#;SjYfpoY+N4+B9gen|;kLoZbrE8jNE%?5I~ z(;E!%VcrmIbBOsKp>rGh0JXV&e7>bEH!C0=lT=!m4<1z}KVc>}SS0T6}EQi~uTvg!SW13@z99PpE zb3Nd(#>TF~_>R^*-hf=+)SBS2^3wazJ}9iY3_&V6{**$mXI=^ z#pFjcaYf0pMr}`x#OE^Yr!&#OQKQkk^iZYIyg6yN(6qTjVf9QD z%VL-*#w=P}Qcc&Yj1J_j2-MG@RJB2E4Q%*1i@{ghkTjJ`*J3`RQk)icnZw9qxZxpB zAV*ibWVLMxbM@AIB<8jQ95E-?;cc2w|H3gSI0A#OwkHGKbcwiVAb@Zl5SC{ZHByr| zkbDPC9)nk5%#I|;83GJ2CP+|X%T5F(+p;s@P)UBLWa!i`I0RF6#o((^q}Qg1FvpaI zL5FKmm3dI@rn!tJmqyJcmxx|rSe|ra44tTFGOHNX#KXx(H3JT#q#HmsRt4=WoWcYZV34{g6RQ4nl(--EuMWPE)Tqh@;5xar_)wI?(~s7pvVHGePa9A_u8 z=iUI?n(yOpU+qKmlt+eG2K&a6r#*3q`07AxZ6_c$ zMpq!ZaoY(TMC5}5WY~TPcU;#QFT?hK1I|w1P|_ZzX=k=hKn#m^0*6yg*D48om~;ez zwRQqW0vmol3Iks5Leknh0dZQ`2^>Qn#~L1SoxpK~xq7EP;UlUaFQd~5oPc9c@I(yw zJ`}b#5JX%w5KJa_I)Rfl`6(nnRg=ee0_Db>MuO7~0S31dID?>MTmAz$REl;2XW|e{ zISYfY&L+LCDk97=C9$-tb2OK8$>luFWwM<>xnbv%?gB&SbOIOhaI#Ss0S=>VCvY)# zVbCQQaKD?h+8`0)7?e=l)n%H;<>YaN<}sO0pxl@%Np+Q>O6~-%CPuPd*8pzf$LR#F z1q3Euhrw6ZlZ`e}L^~$hPT&S2->8v;PC#p()Ct@~nwt&HLbY`Q_@Gf&OB+v#r^hLM zgk9x%eFRwh$$feyrk@`Ib!P! zjdn3HTKS)#!mfQ1>M-s}0`=D^YO_W?1roUZX$-#lFX>bKxjp_lj~O03?(aTxVB24B5HCfXll^X4ZN$l zyhkqYYc7-R2FgwRfOH=kI;R`>h=-Fc`xtOoX1jq;unU7e#o(*YNUIGJA&x;w-N5IX z#~0-BrRFi2ZlK(luSoT^p-S!sz9B}kUEcz3BFX6nz5@g%eviRdKahhNR!H)GW~mm>E(a*Cv-#>mVj|Ohrg(OoW;npJ&=xU=P(QY#@B|h zMa}id5NT~T?z`k^Ph2B;dUn9ENKTmEox}9;jG6=LVWsxO;HzG=MXyw`Ho8(H{X}mf z_X&{Ug*xt3dV&6i7v=<<{lr|PomUgpU}ph>T7@u_%r~%f&GGYH@6Bvnk@D z!C|U^(@!j+$(JPgQkp!zpC~tGX%Z}B2$K4VWeHCnkV%WLrJr)q1mvuej?x8Ji1uOHy70OIOUbc32J(uEX2tg(3Dj@(PE$@VHY-9vZ6s zSp)DWpSQ$k4eIG(Hxe@0uWgsHo*>vRV|~ub24+^ytF6nJ!Ly<^gt}-rB%+*#V`OtpIdVBhN%(2gWI>q;H!}&N>w95B#ZaLhNFShI~ZyV6%EIZgt@wEKBBHv zX2faP1&p0=465yn!B@MGfzI0wL$n$uzL1O@iUh+7v5UD2Y!YN0wb#}YXz z&5_U0R3)u2wv#-%3=gMk>gM5OQzrlpQ*GBY5xX#S4-CGVL|SdA2yqOJ@0#k=o|?yA zv}b5qUNM;|BV0_3 zwkrRj!mfQ1-Z1V=0_$@r#Bnui)LB4=!_UUxt8+-1s)-U2D$Wa=mUGGCJi`J*MbmOV zVXoGik0^ct;E2DnrsYB$gMJrb@YTg+pwp~~iv|P;6PlJwG>c2g;xf%50k^`a%Sm*F zA#$6RD|tNGpsN6fUP04xHTGf5H5l++5E5%+M2usM{2abYo>bRqe%F)V4VoW+M_+}o z!ps}V;U>eusr@(eaI%%R01hi{?Y|YfF!DAGzPg>X+DH-N7#UytQ|b=Q<4*FpOY=ym z{izCL?k3eehAO%C-%E^SyY2%VcE!~G`vHN84`9H3VzSXDifG3~Tl*g(^1~WAsQr2g zCDr~%Nb{(n`HV}dYG&4#DmrVwTw(}D<3|a|_PJ`gCZf@G&k!^NxWr+(CKmR`=nQw#GT9$(VSii@ zY+-+b4t&x$@T8g5f$Aw}h&Yz{c1r%!)IH8#B+UN;XiNSx_}f>{5$$m$=?;&qGhz6ze$;{iW1e(?=1rBb1T%Ska`;g@Y_2WeDyA=Q#Df~ z48;#&U4M^k-ZyM8RMhnk2y?a9e8hkc0Y{LP)%A~X3_5;{0Y5`01D!%eTy$`d<;2Y~a^`8v`w&`Ub~f;I|lj^&J^# z14W!;psf+#6Zr>?9MlLs9Z5CfN7DRcX=*z^G+I`z5tF|UYHhW7ezJule6-(^{f{fh z&vcPHiJ9y#wsQO;2)1(kO1J)I+zuT?qcj%2cm)LOX$se>R&I?$me*$Rh z$zS-}S3Txt*7e8`D`6JyyX0w4+$BqWR=}|mE{4DUA>LB6L1iq|*)ia!^|VhfRPjJ` zp+>4qPa^jUkl~r$+^O^o=K!AR130Tp9cky(w0~=r5iO%tW-iKfRg@I~{pKcc3aZRJ zAb{WI#o(*?NIgYWM*I*~nfb|P0mBBKuc$H$66R{3_JofZu#k*Sm01|apyMJKe6=XH zwu2CH(YdWwWfs$n7AK=6G^1)&rrf|KNxGCF)dt#3sGs3mny_R8mjT?ZGRxu^3`}A0 zRhkTR@QOIcKwD*&Bl7YZIjAyP+oUS90%=w>GzZp}4x3sFd1Wp_Ry!XlySUie8k|E+ z?)oA!T+BmOeW|4D#!U7%o99;&1e@pk(Xjr;un~WYVQK)_Ls@a6la5!W;5cOw(E|ar z>39(S_SImbr#v!5(isvxB0s!;J`Yb=Q1E{fz;4)8QsK z1{F8OfLq;UptFUDi%uE{ZMN8)$XjUSAX{i{ld{E@q}j^Q{9N0j8q?l9scJ)-{L|6k zO;^IF@|PoWwD!kA$phCZ;(i4^9o`19H9h0bT_*ddO;K4vuqkRAdUKfZX6KCYrWy|U z2veC_Cx>lI&El*<7;Xok&0+t--@f{P-CYNm8^!fE#m3#nU=sQrgl_xbC?Upa5D4I$ zlK=t{FhY0Ioh0i{$J5GZ14}P9y@V24sG*1Yr>8(dNGF{%(tGbc;s1NTnO&{scJEfk zhJ5)xd*^munfKnjdGATuojHu?9ThS}2sk{JytATet0Nzwt=Uy;+!(fYeMmAG8tdgq zG`<{#YY^mAljwSh1i37cj}DQc;d^-F8pzrb8Xf~UgWR#CU215vXJMvW-hg=Zd{~u= z2F~LsqN|ZQFx1HrXf|{mM}9dTxUg^@jW4|xdcw$(jrU4uSN!15(Ke=zto6#+N#&jT$`qqcM8Kg^@EgNPxP?L|qw&Qjtx-q^aTH4Wjo}o-<5coE&F~oGH-=VaPAAnF zmMZx-hBJwgtk+q9TiIZ^xfRzP$Z`p!LIhGja1#5als8sM#LLS74Kn-X_}iEF62GHD zj)+rN#L{2Y!u1j3rT8jUaS!!^kFs$X=?Me_YMM7}me zhThll#LAC0XkgN18mT4 z4Lfp=A-|X8A2j6g3BOgD`$%xVB^Z_PA0QxElLrBZK+S~z5IUg7!)UPEJ*iFd(19E^ zk`w+ThRdVm@|fW=X2Ne(>T%LNVdzF%o{OG9M$=$1PQI!he<+$$EVPaO*ox!ha4BsQ5`VzI=*ojEXw6 zqhgToKTYJ%800YF8_AOr{%1+^IZLw*Sf$8C%kjbjHbYJS`P`Fy*{d&HXbDq2QebgM ze|Wcm^q=1YPV24!_&n|B&U1IqhG7BlykZ0ez!zxrFIuBto~{6}TD)RLmoGs+lmhA@ zPATwZN*=2&BI#EE4N8Hp;%{HRM*NNnIU*KG@#QM+g?{<^k{vKOZ*1zuUR$TuJw z*5xfFWj9DhMs`gLP{marhWx~JNovhV=0EbpVneY;Bq0j_;7lYrbaShh04&o@3R3@ws zGVs`dJT^2u#wZh7m6=GYNtP4%QUhvbEZQ(Dh6f3 zbRy3%$YGgaBu^?6W|C%>rP(}PnGhUJ(XuJ>7&|)$Rf3^QRV3I$07iX1VEWUS2$s*f zs}N?>bnX;)_iPka2pcO#P$A5ry*IJ;z9e0RV3cUTKrnP|+FLe-a0s*N8BTdHmtx22 zia5F%ph0=?8vKo|?}^`0Ax8wS&1301D{2&t#9L^)D0@Mg^57M;iEIhEuo$;O_(U?xZ$JT zI1g}}N`q&bWj^{K-~u%GS)L3`Sk~d9o?xT8Qy1)R$oC+5w;_+O3tE-glLUKN0_=){ z4|8E;)3RW1f|7OF2XKg_Y1h)p>(K>O_C@2%8%S?d(ZL*5lB(={p`@zdZHC8z)k?h7HuUoU-C5suODi zgkg=3L0NG${>BgO#P6t(BZA*CvGko4HI@eQW3^qBy)}JV5$O7=*h-c{Uaa!t(D;(W zH7GY!{pc!>lpDtrIUgd!EWNyO&1z==X6XZ*kLx97JTfU~Kp$~!%qruq$WMJ}v4j1(ln@*f^L=1VI#KCD2?N zmLtuOsb$FsQId690XRg{^GI!3641*^fS}rmXnZ+|e2i*3xT9Kfd2+Jh;*-lMhRc}c zNvoo#lI}E1=aeU>vpZS2GXRHjL3wf}ZlTawXnZ-Fv_>Hv#8D`zJUPekIF~$D86IPl zC#}k?Ce?YCD!Dv4pBTw{T>!ZCC#O8Q5D=(%5gHuaPBunG9okVbC{HdS@}&kjEKiK& zZh3-x{NwR;myzspLxwZ1VvetSFM$y~#ikkWHfVpU4;8}N?{go$n1Lb!D2U{!8Yw= z(NVD@s0=WgJ-+TnqTFOqvU|XMj*^SzEzDn z4#D$k`p_l5P4qhQVJU@^YRLVJby5mgxdrlzkEIvEYAs@yH{_Adk`@ zj~Rpf@2edyDI}iC0eJKR$>DLD;0bGj12OY%2(nKo;Z)F(nk?H7VX-wtwZa!JEP3AW zel6jtauCMS66#4ErgAXuR#y(emGwm5Zo5?u#Z6_gVsU+iXI^Sb+bj%UPk|indEnX- zQa%KRSQj5ggGV$}xRS~7Y89rd;26q}66NU#N;7AM$51{)@TdSB9z*#tg$GAieViPh zH5{|gLZ|p=8t{32)S>dphfyNA@s!CRTbg&2yoL(4~q3?KKIxN{`T^ijY981dpHIhJ zeh4~f{UbEK{Fs9ntyS#kJZU7h=W+go$UhB{A>Pk;Gg>^lEZpVifb(0AUy$~fhBiA0 zaStoLvWs4&w;v%`jQ)zUxT1I475{5O%`YkAN-DnrHmvzuG`{?fq~@2DaY^CmY8n{X zy3Oy&;}4d{Hgub@f}c9cABpX%VmRxf{S)ADk}be2nU(w*SWx0GXz<_ySsIs6k)kdE zRtvzYy|62P0~fIWI~rg9fh!`z8t@4X2FJ{ocB;ID_`naULE8E!2l$sA;CW-fnA4ME z(pKb@gLKP?oA<44H;zc5pVCq$uzyow*9W?LwhfDu|0qU~#9pG6Cg8guorYuAv6W;! z41}4}xp6Yt`V=8nZg}nn3JsRVhPc6Q0wfqelTC_c+*wi0bx~{tI6OHqlT8L3{yGH> zP75G2vm8_mXE_9!Y#NcL8{{xA=!nfsHiI}bElzAEn?;~&lcwmi0f*>rCfgX@ka!Ln zUp65RBe4!?Bp#K?HYM_0gX~IdL(*o%d5y){o4yip(zHuOBh_okBw4e~0f%OLV2rj$ zkS#zA{kKHp%T^r8=&uSyXDpJ_wkGm6Au?p#mN%nir1QdYIsj)*>m==VhBhmZdE9W{ zb|D+FLQ*hL6{3l4dkW;r&qx62Uq@)##I^&lVbUGZ__7m8( zuEcg#>8vPcUBkO+J8oi|2P`Nt9}V92$2F))Rivn2fYqLu#hAo4-ZV&;8Dn>jv4U?7SiQp@CxD50_Kzes@T{ z_=+;J7FxgA=Cf`1n9dUl>dh_ma$3B^e%!ODNh>7g^WI)Gp6glNJ==%ra&N^5(&aw1 z`0K63vkZZ8pMPSCiZ(4S`(hAyfX=a#D&N52V`au#Sg6n-RqlryUlx&I{8ahISjL?d z)moR?o3tGxRlXT;EU>qr@#U?!1`ABZa28mQD)%Sy0R}ltJUU`CRlbcl2U?uiRCy4A zu1%Vvza4Oh?xxCv(G7_YLF3DzpS+DVh| zB!gtF-UT?cnh*YMxtF{fgwXpiG}t77qZqwa@aRlMQsfat&VHEc^q$f>|>%<@I_h>UQi&@ zJb-HuK~#mPUt$Q|`B(FY^c$i95|s>52t^2OHAb0e6^piSt1;S2Kx&R<ttnr|8OhwV4impd=_v{!}6w4JOs3=Bg zmlf77nRR6sS&0!Kuug+hPMpZGV+F=~K1rcLIdL*>uqOlw#xEyMiDlebQI$1RoT}{@ z<-}=#!#7Vyw&N^bVoH&~}=UANBa^hS9U7IvTUj;Zs zcgu;@=!V4Sq4DK>@-VAahcpt8`s959kuNmJuEe&SxQI9xTbu=Sl6F>wMyg9lovhNO zfJ3ES!8|={xeQd$_;NJZqkuygjaB6697PI=D~Nn$hz#Mb;>~E`=&o>;s{v;r@jlXC zV`#I>AZ$B@#LHjsDtk2JUrR|`!MWNY_H~4&&G^>?8@9Xw4IWD&Y5I(>hG}N}8_DA) z%Ol-~?3;=0s?u3e&bnN0(RSPq*|!1v_ELs&Q>JVV1zgEN~ti*sTw;Sen zkold4dD~nN1&y(iQq^5#f461-DXzAZAM)(me`#y{wmw#;b6zWfCMu&57IvOS^Kp0A-GNZ$o&`u^QAN5WUU7{e5}my)dv+CWUYsAItn~zupESr}4$u*sS?ej{ ze8}R&W~~ns=-Q+y`bPkV=x)~fD7qo>(`bBohCECR*C7+K*2jqaaf9qiY_rz0#QB89 zF&~24bO23U&yhj0R-XhMTIq-2wz$iuKnT4*jmDSHa1^7r3Lc%QNbdS9kv|tAL%z@R zX0&{CS~$$}fHQY}fwW&VwAtZxlDo!T{;EJUfqjYMxYBd&L-sEdnl^!b1=uj?SJ7aX z0+OarU}~La0(*fxzHWJ>OJLt1wyO&EK|sH*+;3_-ZUXxju%N`Z(fINruEF|Mk)mD! zR_fC+32f|1knflgzRMB5XGT~vRtSy8Y)Pr?`yAs3c8urRNoD5I@K-UD**75CNn}5y zqOJ#Y_sk0u*^d+>NMt{zb$(*4)7}$2d>b;Yb>ycQ1CyoG;pDNOar9V`;j%whXpqN# zfg4|bNrLh7*so$4cUDwsT@An1c8oms8^Ey+ev1arGT<7l0~Nzr2SFbDJ(2%lki)E? zBR2EcABpoPixZp2{!E~2lcwl@0UV;cdF-#~hQxnE1ceJLDKX|OpVh_Vl&BOmgSKyiOnXqt4e1@IqS0BSle-v*c@O%iA~V>vMH{CQ>aK$ zrvR(nhY0?EpBOcSkgMngQ2fb*LE5>IhQX&P3kDAcu)U zM{K6HU5T@s#feRA^9Xcp(iD9@;1JzSZ41y1iM!DFvO9U0)TTowq_#bX+-;CuiEV1z zlQ?@>9P?v{an^QMji$K0$tPL4eE^4Y`eVqN3?i=wJ*==V8f>1x!HgADjp)2ZQr$u# z?-wFN%tgEzEhb$U?(;^#nd;s|+BX|o9^Jb3zidn!8dQ&H%6ki?a+P3QfC_IVG;PY; zAK0+#0cd=A8%firJT+1?K2U#BJQr_E%?W)pQQO>%Y57u_vly?ZQpv0kQd|8ZZ zu&7m}sB?goI(p3Kwp4Q=?=S=PaG)h-pqIrF(bE{wO@X*K|ML2_M`jxKY#6Hd*91qj z%R4dflFW?$TFo1(dBvO*`|I*9%JgnrGn3K5xAWvMb{>xF&U~jbcr6jT|D&(8ET2U) zA$TuBU%BWj4tq-_qtHY1S=}*pu!eUI%XkrUsT`@@`FwUNx|=Wk;kSP6KPsO^)j1(Z zbRjPtqI7<~k(pgzIoMmP<^s9vax_3oC#%G6hbq z7d;PeEY+oo+nxIgwZ4W|uGSaen4Tf8I8>N=WWL%c)~CuK;58Y-6~759Ze~tswcdQ+ zGHAK1F2jI8&Q0)MW=#sY;3V+AaqPSvZDMAI6|9PvTOsW!idTBWlFU|^ z>YC)B1AKjGAZKn%`JqA;f1V1o%xsms4#E<~ufhs)ns!et6nh&3a=LQL%q|Z07S&Z& zR*Usg5ii`Hf&SH*t!oW$xZx%7KT{b^QqlT6IZJP5=u5amjltXsUGZ`@`Y@Zb3XQ?x zTY&omegg((23x#i8YL37HwihwH^g0a^}L zXGbUG}J2SE2_0Qi|uF}7!T2{Jxt~Q*?L(xf=_eDsq(Z6Tq3gvnpue0gnjB3DZ zNjC-2Wf&5aSIBjWrpqkfn;R(?ypmjxp2d?hGg}>0ZcxODnIjH@IPcfLH_91#B`g*u)7MqpextA4(GdgU46sD^YMmcwcOi<|Mf2WwqzF^s4Fx9*1M-`x;~6xT3jIT zpPQ8DEW|9YxWdzAjkmr%xf#8yGE)YM8di1YZ$ZbB%uIS|b53q$@AUd0;%DxJ2J%&1 zZbRSd%yf0eFa&)7eVJ`-2pSm~SuniPE7gV=f(pguT|lmP$?b}TM1lj5SL90Nfl?L! zJ-I`>H>}o%2INltbF0?5a2E7kK&fz{&D21iYfix3O1yr#Aou7WGhvvh6Wxo>)tN0# z5GhuRjBc1HuaxVvA?1TW!IHEy%%xVB`_Q>Gvl-W28AcUNREP%Z3kA6!P^|80k{=2C z9x#0~Xv;7+JgCeYy_vagHZ;lUAtjoS*`Qpg%ft8^Z&BmAb7`*GI$^WQWPG$Jy{6PC zZBg2$w0UI{yf#yMZDoeOJ(HP(1%n9cA?-jmQ$0LFCXeD;+6lQ76I13%1Rx*tB>YK3biF;g=%Hxu(C==ZtY2v zCJmI!)mrC*@zKFrsXSU)_3YdRcw1dEI#@L2(eijTTP>JH1yil8HaE8pvWm6Zn0uGa zkCiHu=jPVKYy8Z5rg@QCeQs`zh=IwEE-X}1XNyE>WNf%V=>%AB&?+Uw|-MhlfvvV7gaw}ohvcw0=qt%)jAFP#4Wo;{;DOAVswva6k1ckv`WgROY zAV={C9eu{Sb7g?B@qyveV0NT1GC(cYn>*gSUUht+S}WCH(DG>CP+>u}vVK_Epm*)D zyr~xYMhewxej%*5;rz-*9ZAbqmsD$o5f7BAYz+Hv5>_^a{Y`#xwLESH3zc;5q~29Q z4K}D`nkZN~QW z|5s<=_u{fSX$H!BMkLe>I!2#$mQGWxRklC#^vVulWygWu)oS^L^u0<)?`l=6TxCjc zDqpLa(!h8PmYf<^cIxPzJTyK=xN2qE{NB|Dhx64ceovp@J9!{KcoH~OE1mOuS1Juv zD>LR-cJ5t=ET>zR)9H)5{^_hAMagxxHMX*boHzR>aI>yc7s(W4;D+q zLojD$_xY7Qno1F+KMbqv2@CHPR%XGP^4vq`%{wZ4tSUry|Dz78%tk3}UEH>~L$RZG z72#C&E<%}oI*QZg7pKoJcFr%(m|vVZf4m40ieOv>yM2=-F|TkkYHD{&7W=`B`-hbS zAVQJs_8K3^j}NHq4-6{@`Eqtr6sM5=8yeVG4(?se*R4bH5TTGdN*SVxhn z9v)VDs48pYA+9za0iFk16^qhsP6KhLTSRGYvAY5NNQi$_SUH;Flhol7KWP9|h5SO3 zA1kIR$3Tu_!^%9$aSh~{HBug$)n9kP{%mP1&TV6bh=r)GPU~xLL2b60?QBAq> zPf(pzw^Q%xkv^4PmdA0eOg7mY|BW4k)v;n}^yJR`(2xz^V};S7(&)mzli~EKN)9GD zKCHZnCSj~?GD+nGFhAD$;hJ&e%A3i5J}Mq4G4|(H0s)v*FBa#`XywFn5SfsfHwz23 zN?$GofV#PrH&hrP?{p-)GM6T@|lU)hhYkjR>HK z6%P)Tf!@huOJ=EhR|e<8SWBqT_;8^zG?!jEnRTR)bdljwjjcnfvH;dt7*>k(s1vAN z$yv7&bo8!Fi&ai4_UBfWu+u@gGF*t&!%Xpb(jS4JHfmZKg{zjs$`}auPJ%%f!c|eP zS96>z629P zRu=m*K_r@sGFc-AR5_VWu%ty5o9k=XDNQ`ahldNbzF|a*ROM9gI4!J%mIr9PrK5M% z0YOyWnp**dJ=J=A)T!Bd#Znc$kNjv=A!#JPBwNfcDr9TrY!%&_0vxSc%cIq=X3Gl@x(ba! zXf!*t1Wlgp!IaICY-xe$ltycaA*8|p2egrFzMA#@yetD0I)iBJvt^SSLrd#mOnID9 zbu?QY$(vestV}|LT96%Bl8q{KCvE-(wLH2oRXG<1Ixnoeiw4@Lop;d6?`|fZDV{~*=Oc!(J!o>P$^{4l z?+GgxT9?ig&$FRyRm;5cUUVS3bGHEXzt#OJ7eT{|!^-<;zW-)L5J}Eb7-UnkdK5h> z??(|afLsz*E~Sol$VK+AR`FS9J20kD881|82p;(%bYT=Jh6-%_@m0b4TF4I;v*@)H z4CBn)@+iKE6hTt)Zfv3(ldX=Ajg?XJ9r^57X{>-gG*M^nP(#E^KZexAO zE~Aa%x7Wm@*yozf-PN-`1Iu+bid`R8ZlJwq+bFiYKFy-Nv6)wXK7*=j&5&nNR1pNNmc)Tv?o3sAWSh)=@ zgB}{ca&8YRU!uKEf#b|`pJ#525HXUUazmvB8V9Li+LkGNa=5vO)(;%!OgqF%GZ1aZ5Z7AdV^k-Z}hH{Xc;Qs)F9_Q z#Wgg@xw%*QUOUKnUs(AT%Zrm4hb3kr?uQt6yMU*`&Tls`bAz1`#qYp~t;jq8&AuB} zzDLbS^1iyaJQ!BKPwxM=-h$$0+iQm|y_evN-ArGQA7pzRm9-lVw|)P}MM`u7H0r7T zV`Eb`c7(Fp-&c2@{{7?AC=q}g*YsR43XneuBBgBqzRo=wFUWFyeJI=Ce<&PyxM2GG zT~m(%*+Fy;;K%G^aHui*+OUxI!3R4t(;2h19QL7Bw%*d0-oqU*_7N|$)ha(gN&PUa z{D?*JaubJs4>k{PMMEg5$|Hy#kA{^WlljKbtaTaoPR5j0d3X_~eIC=a&x8C@jL1}e z!p8D(41Ka>G<(;=6%qqjy{iDfG*o$_cY~N)xT%zC<;ih2vpu3PX*THXjT@@^h=}(H2$*6=&e=P)h3e>z-A8MMC+c}Smj7mr3ore7Bd^ZTQJ1w19nsv zl!u4Qi`BKs4-6MLZR&em>;;(3#W`uBuAUuy&DlZ#-MMX-PBgP6;Gy_dNJ5hpa(Zcz ziB%#@nY+Q|?w7y1c4_hr& zX_yX6Zi>iFwd8V3jUL&n#k^h(Yk;aHE~!bGoj@2>XPUT7cU;($p5FM6=|o=LLwZwn zB4!4&;4nK2z1d-=IES&VgxLjPp_wUQ+eA*CdPD*1B8Fy7ooYBfROeHaCvse_RSe(B zd*W_H!q~0Z9X~>|hv3tJXhE<&TjFN|O2YcS7gO8#Izh}Vyh35lMiQF6@z)n7IoO66 zBdz%IOa><`Qo$hHAlh?(0XNyxPo|m!nExXD z?F^_n5TFp^AS9uAgXpH!r93o+hC1sb2|pIlf(8`Ueth+An2=5c&A|kKh=+(&lZZXj zY1TuTnUoK6m?J537_uPG;YdQ$BO*2i9t!T1(s5sz;N}Rv0Jk{;Y{P9Xfoym^6eV{g z9z%1KFzTeq@I{I(WsU|AggZtQj9n#^n% z^Pw%-#76ea@j^=S=<4aDN#8_ZJJ;Au@C0N+^EV?2&3utb2aXE`lH#1*O4ZBMoTv;$ ziNN_tpV0d)x_qRV+J7{f{N}ghp^ZKgcyGuHsaf-?)T<&1O-*Fdf#X7feAxy~ z+sdBzZZp!0v;{mxo*-+z(mYT*pKnk}#q9Fll50a*w;nM?@>hx~r#) zF7i)?_#D z4xc1|cZX}l>{E^z-2u$Zr|}FUQIdo^d`6J1sKZXz65hH4seBfXFu~`LgyuRSrUOTs zd>h>1dO_V_p{zUHsD~skCl=U!9{F;In}mC_#Z@!f!dm7F1kVIy6fgN(gqGye)w4TG z{)+^*1A?tc-imB!cpH+?+%7`t!119_?F;!!Lb=1DbI&AVa!uwLLny=##HuwgT(0o&f z>A;aD--c4YM^N`#C|k<+=^@F>i3N7wLcU7*e&K%G;~SmvXBQL4NnA%tL@jpY>tU`hledJ4C|) zSWr(u^Fw5@7yKiEG|3%(mpp>}rf&a2tY;icnMaWaUOz?>n#V+lLnom66Fq1_bF{p( zcjdwIaJ6S8Eb|N~9u4z2;gaMDHdYu+nJ177`cEPW%})uck8sfcnI01KCj)VDX{c80 zS(iL07I>hGyqcqEevVh@96P$dz*A^`DN;`EU+JMO-L)F%294x?EpkuA$^B+xa-FTn zC9Q#;Tz)8Jo(3t{;u$gdZJf#P^pGsUNPqJz@{>eOd2!189vL9{2PC2Sqo_DD{7DbZ zB*~q{_GjiNX<~hxS&}k;K_0076-j9RMnGR^&*`C=Dg_|b=b7?@>+kpxntup9om(BT z3mp`@Bgwo#piDsW@#^a8Z+$re}B3da<%)@U?44`1wNb%JFA zGKedf5_pojQ*aFecQ=t*6R)A-T1Y~(wg{vHN1sA?6@y0I))D-=7T)T%o*t6i>$UORQw3dP6AJBYhHhU zu>-xQX_)_<(%)~U5i%2yN4!j?3nR&(t7jil?<6qh#>@=-z*wPR(}74KI`7gFHxp16 zqR(V%CpGJ$m|gJ}CEA4~G`r!iwRI*S6BMVNF2g7tekDA1cj4?2;XsBx^^lZ56LGnc^KuSIQ+gk&h?qmYE=Xz7p+oQf=p=3o}Y;}~O=IYw}dbF0?WKQqUA zOcm)oJcXtgf8j#85{h(=-3LSa+EtACf$})kwZhKYo-)c+=XPy-n|WMq^+Vw;;Pw`- zkR@(?D$4Cj#doA1AGcEg$4Q9hQaaFoTf9*K-5S4G7AXxk)4`C(BMHr$L?yk-}KapB-3`Gi0MN%^z26xnmpOK=_yJpZvip~wwAJl z%z!00D1t+l;Ia^iZ009C3!=2ZQR;^%^WYotDO^8Kfmp%C0~4$R=v%5uwxpLW6z^s) zJJ@?!Q2^b!?UqtFQvw349v}(LNy1JqH8w0nn>eo;7L5@{<3*R~2-UmQD6yPdwOd}( zv{0w0B{`-HT)0L%G&6>Ls8~S~8be0Tu_&;2tfii~G*wHkCUWDJ+%nC3T9a``V<+^< z(X1{Ksl|>|tI5rikyrPHU|yR;p;Pr@5N(iE)qtaC|Sw5{gl$h z0(+kYv!6ik*F%y^CXhgo{SxG>p}kbNms#94(}f=(a3&y|c=zRUAtiZq^~|MlK1kqp z(}h z;LGz$F}lhzf*6`2B>O~penKFv$ifO&6TUu0_(?p5<{DwtrwGZap*%k&uuoesTb`fM zLy}7-kU(H`E%H^KpB3)sEN+`A!s`f}3CJd1p4SU0$)l_1D3<391a3D)cq1}Vo}Wh& znwvx>9XKu&sC{|fER-);l;xNrY*Eg)h*+~4NBeUAA_06k-zouaa{~A&!rSo-3sJg6 zaeqmWt*FCDcM#rB09DMLc!XKLj3hL72{9cw(&XDv=wA`kS1pt+^t<(tZb(m zUS5tr12*jQb0neph4`ccCk9n&?_a+Z%C9WSi%c)JaGPHXv00~H?>0{nz`MqgJ+nFk|dnvw}Na%9Txi?;r+x@#XO5gnBezFLh}b9rUOTsd>dTkkAnJ>g|aU4 zXFVi&IkCX*FUXgR{8hMrv$(A%o+_Q@If7>bGK%}a^Fm8<>FPO-KJa$}x0!eX$$ual z8oq!eH2)N#bl~_8mdN_-W8Hrpph`>aYdJKQERtKk_2nT#Yfs|zz7 zINIdgP~<5=tzn^Tk*}$TBr_)$_^pL}75Uo2UB}|)wqR6foSJPkomrQNnSd8pqNV)Y1+`SaUHvk~C-VjM>HWJBn;5bsyW;fsmnVV_cSXi4_ELb5L>k0f6 z=VTn&gBJS9jdOcji`+JGa@$T!PE&>L$ZaQb+sDc6FfqAlEv0jlf;);_N1WUgJtS=& zDQKo5-%n5MB=l)<^yzKT$%(e^WWJxCn1KgO0tm&~dKW!3vnMO!&t%H!iCys{G+hEu zPWA0ZAPoOA(P41*dwX{QCuw)}oIt{R5I8y2wtJ`6ENOG_1b~y5-TaR#$u((Zgd~*nv3CJL>+gyPs zsXN_{ByjT_-%)rC-Ht{Qnqx#D9XR?FBB2|`zU#x{!REFsw?G0vJ61I2SsGT~UOglw zs#lTYkngL=8->o5igu(0Vd?lb=;TCCd=vA%E1iIc(7ahFu8PdpLo<7_BL0a?Sw;Hr zBQ*U2Pv_P}Q{iXuxYKHM3MQ)Zgv|ux61Vw)aFQ&#dghbUq&hmcg*58&f--FlL<&YZX6@nBxz@yDuHR78h(UkT(Idtq#)L!mbjUKQqVYy znZ{=EPR28gvII$JPQhPq6q29VD5nbNvLp>xVuN&np$d^&xD%`hO+*}Ps)oK=x zPQ(Fr94%DDuIZtaJDtq!NW@u$W$vT*hn(RT&Nf?Yuq}ccsc~!(j#M#Nqr%5%S3QZ^ zGf6wm>69lEP?LB8oFTcAYPbS;JAu1jJ(=GD{wT3Ck%Ze6Ral0W8NH+<8ER>E4AT zH18Ib<(h+|wcKpU`J#1!qxIsmB}DbJCGR2Da?X}qNIDbDmb@4FQ1v1tp}Clh+-wO2 zmWu#;S*GFMX9>Pv1TV1!mxTbTnKc_a=$wheS;pp45xdM1L(^wZG>#wsU_PMCm@}Bm z@uv7BPkb;RV~=)(f<99IYdhufMD;TJ}n^=x+`#Wpqi13Sz|NFx(a6c++`4utur z&|-YuQ4kTIj}f8$H0Z~X4f|h-Bs5ovSUPaLD3~n*Hlm*p$ki4kw=zbbIUO0>y6z9( zZanpZaWPuAfW--Rw`KhRhyH#XDuEM~`ujQitwWN>@`HtJf4@!upEb)J>O5-}4^{5( z@63{I9ji`>Cq!U11lgs+#yhUQbCh*JDClF)oc+uHC-+&}EHwv9Syi7n=QQHn2o(tdT zCFb)M_a@=qY;jw_HLCChLEqw_xw5;Rw^5-l3a-6Ew;~_HaYDG2%bMGe5A|+G5}GfG zm{pHr#MProtb3a~EY6+6`Le~4$!vb3I(G@`D-No;M82w=_6ppM{KgXb8s0$UuOkV~ zH-v6QCabu}yFujTs)6R4mc>0{aj#{OTW)fV2Dwi}zvYNFpE_agS5|wAd>i?&NbL9t z^Buf`NghBFn(qqVnuN^aCh4Y0+$nSQon*@tRLu7*vj@fO`<7YmWgr}xi7gw0`a|OI zu;cI?L{AK&`6VWZ;*75xVQV;VH(G4wmlxy23b){ihk2%K6{pvNf;~;RhWH&L%Y%pQ zslzyNNQeBgJ8X{{bb&nDZJBbUi|*te(8QTULt6Nf$60{&KC?Z9-7R**0z1114xssk zI58Y6>mY?aZq!L=egGrDKFMhQL)j+jDqTGzKAQiCc-=ac?EkIp9)S%|IUYq4njgzz z>A)G3E{6KiyfvJMyyJ@}WgY_reDNp3e%xZ`D(GMwR%7o0{Ry1=>duRVxA0skoRcp% z;_W6L4mk--2q3mhg9C z*6cY;d`tK&@w#7TVSW#yu*x5hV2hPRNC!?r8lh#=;%>(1(`^hX^C!R|D*ahB{$gq5 z)&U>_DIWNN!yvM)`th@7*@k9s2fc4LcCpaxRH~6y_S94s|8NIFwv66K z9#zB!-)KDEJTh7sEmzHR zcs!?f@-QyZ8i$*i=kc7w|C0uH+NpQ-lShVURrxV*{*HIJT!ot#_^tmBJSLXc@_v<5 zy(7KAe2k30UP28eWc~@epf3CiNof9!zkaZco~??Y)^`&2zFf6lI90% z<7k`WC-38QR|E{6hNa;Y#*I;21ci>4?kVd`wdj{&_X2t#=%r!%Nki}KSbHfIVvOa4 zzKL!$8bY@TT@YSs6hG73Z*{3(Ji@z>>0}R2)?coKeHmr2#|V6WxO55*79ATiwewjjHAnF@>O6u`1Yzua892Loeo?%(4nn+b2N6cKvuUPel#`~yL8o|GCF)BTNX>WiDT1!nI`yTBLqI(Vsbd(FD|6`J+*Z12Hh z1vSjr-k6btuMURi(ZXl#)hl;ptNCdaSwTb9P$b`u@MiQD$L@FIPP86yh5jGV_ z+JfW`b-jhAZAPf0v3opN@9Q87aMnK>$|^bu8U@f*XG61021FY*(;(<(;?=C#h2DOf z6R-Q_m1PUigh94Mf|VfsMG@$KtB%$dP$8_KXqKXZLJws4CTd3SBO&yCq>bh+GKcP(A2^7dn z?Fn+D=u-6tb-U<`bqUq!i}(5JAu00UU1+9d_2A2V+0Fzu%Jy{|qd(4mwb>O0funXI z!LDrD)>TV7rLC51)^=C^9#Os~8RIPmZ_qS*Dj&_-UihJvL;7g2SIwGPco}QZX5+DU zjX1#G0LBG|P_ zadHRZHSBT_5^T&Ck#yjAP!L;z-S(@41$Bsp(&SKGjA#eep~`NOBpRPO4EcW3&fy~1 zV+rOSK=|+P_m@V-zs@?!I(UH_{Zoz6J`)w_B=%|gg4({^2!RZ%kl zWE9LGlF$r^Qd*s$Wu*kEX?HhQT@bwmj$T$SY&&r6sw89VLcu51w1lZ?5&3Yp%|UJ= zVx|N*C>0>VW@iz#Q-%~P@-|T7)oL##7MNknX+)exEvJ`Ewb7Ji(H?WO+nO>KfoRH# z;M<$hAiupSBVwisIGD1A1ZxRJ)S8lF#Z8HxosJVAuf{(`*-53kqGsk)T@h@h|nXmWZM`+$JaC=zLQT|5T>|ES~VlE+MCLoV^XuVVzNd{d#*OB^V1h&gx z64X9`9Mp@;k%Z=hqLB_93yK0yx6aO_f5^gHZ~Cwvk^@>2$O9aZLSgg zr!2hH=F@sevaM_L8RScwYlZt+i`%pk|8oS(1Y{6b>NuhI8%~IY_H1Q0!>ox z>bZerzeZrYPREn^I$puf-#~)1E`^M1Lvd2y!)xgFAQGH%DFQg< zlCYV8LbTECA;CXv;jL~z&_j}YUAG@1U%LHBxQ|%eTt8aZc}0u^Vi=xFHE~CG_OPR} z&h~cgx?TFj!9&|Q;)e_uKMWKwt;RdNYh||_sD5`BW(PP2hD+v#I?bcxoe3y)++aVJ z3`vol!5$-U_bVgcPrwVM@HmptJRzylffJhMN|ZvqCj0vLq%ePKF>QJLOb=!b}H_Fxe*T;M?T0yo#ZzvDG@`v;QHydVPUz|p4=ZFKvm;QwXet#1F; zLy~)4w@Irw-B!Sl(5#5RoW(oV)jVB+jV&W>Ygq|3jI(gOZ36@KFIL%BBD+jLLE|=B zS!|P1IvcG*obLaaNUMT8Y`q$i&`g#f>A=ZJqa4O1_a9lWDvLZh5}DY*VS_~ zNpD18>ydF%8{;*sv1u3 zZf-MpBnF|h;i+$|X7-Lrhw&$~711&Q8OC+Z3O&iq>AE$6IS#Z9euQRQ!KMR|!WYkW zEpame1*569XWFd;6WYjSb^r*>wj+|zbl|Ta0U}4(EE)mg7h+?ld5UnRMmP{?Cp{#U zshe&Z@@2Z|!tJ!Uxrbr8{n0LRuUOXa71KU2jO=j|eNcB)HZMvaua$5}I9wZ12ok z3S>AVi@^;Ib&14oj>Haf=H#-UR_5lH_wK?1KB z<8m8r9N8Rz_b8SFk%ZSUy3@B2>jYZi=)7+FD zDk6tjA~swfu7_rQd{?oD`99nqA^bUU{JCxL$%@W5}G#(KOH#o6roK+mJ|H(7T#Ls zO?pT&&jenx6Ob>>-Ynet7B`nc`870Tb>Y~Kok*-qKz?ye`-Gij<}~dmFx#;_euQQ~ zu<1ag;F5zaaWetsqM?SEcI)chSUVOI%M<_sqb)#!@oN0_%@`R*&e?M8rzo6Kgadg3 zJtTFh8}20J%W%WO9kIB%dtf+hd9agGSVLwHE9Nq1Opp0Cfoo8shAdw#m1oVWD}uJe zc4V=ni>u9IUyY!GtsS@m6U)80IDLsd5t$R6Xf!9H7;)wgU{V764y(Pi<(gNlYL!~4 zmcqT~Sh=W{i7nn#C1yS()9r?U&XFW(*i8vkDR%3@Y^W(xbx#X?@pvRYj!c zh}f=}YigQp%qTc6(4;PwCS7h3^5Jsa7~F=ASqu=!e=-uB1uA+rAX1pf=Rjl+5LwQ0 zHK$l6r;5pGmdQ&Y*l4y;WZ&Y*E`{0ND$w?3dmHj!#B8Sn1ZFz}Nod|Kde&?drpau} z=e*_}mdTl7a+YOc&9;05BeT6o`}9sRJlis~QTQA^G@Hz~PvE@|6OtXcelYO zD|+hrOxZqNfFGfGkHFJ9pUxBzGWz^T;DrRt1Y{Af)$bKTQogR9J4pN@0^7sx8i`$u z43y&gkYIRUB+`N7KtbBHQkMw+QVVbGbD18J{ITmC?0!d!`G z800D>q4@;<`WA@fBe!nZ0$nYfPewT4evKZIlGly$Ddfv2pBC}<-WLBKzm}?9+|>)c!ru6KUT@F8V#mkTUgUzireCqN(@*QM)^U6_46h> zRI1wFYO=7$tWa|eq4rwX(HAhs7BOU1?Gg`cEy!cb6~4c)d}9IDAQ!Ms1La7A#LMwo zsh6~dE62|&vpaY5f35E3b5H@ka~+bP-RQL9)jLsHvmySx zGLmI$DX^a1gnZO9{GB8ZF*oBUjP(U1p}7TreMKXqsGgx^?ZfYzd>L-bDE&`P2|9=_aF()y`qs091DulCZOLZ z_-|QwYoYt~kQ5*jcn!aed};U{;XYt-8w2`x36lv(J+9mL1e+x7bbFA%4Cvp-kI+0M z*mNLLaI}Y8;${L$LDT$zX)K`s5YI5kkC24s5&ZRjM)HxLwG8Nw3g^cW4!A$2hot0n zqx=NpJlS8oOM1E+Yp}Rmbj6zS~Z3CfI&My zs3Sf6m{^CtS=`3Ip+YTR8s>+?;Mmx7oIo;M8kpk7$}r3pUj(hs9e%wq?xz-v;~J{M zbZjOmenTt!8@xc7J&hzZ&j{OorIAq- z{bH@`Zw2`~3mLVtR>Bu)WuF!5?=7lrL;j$LW_f)p`$y*cR`yTA|8pGwFKzJ2iu(SQ zDO=gU;YVnm6SzHW$`l3*rA39lf$;?k3Z}1$?QrIKf@cCUipP(?3oR*SSI;-d;vWRI z2Tipi`2w9+FaI0f!NxVVLoXfV$j zOzp|okio2pN0?(RB)C`*e|>99>XE;-Y;D&O&bko}n6IaYq~LXvtdD$|WCP)DXmN8z zbTa3mg<_erU8#S|V9$>$#H{s;riKRJGS~#H^SllyV>w9Y{utZS%rm}jusx{8OR=U8 z6~+qK89G|)G#gO{++4^cHXFaOWJ!wdY`zJByI)y3Hw90WOd1KUMU-^77LkHv0-7)3 zsLf;cn+bDsi)pL(7J5i3S)YF1lKH-RZzcR}9DnOJ_+&-r+J-5s_qOX zKh45hD^1r!QiM$4wd_Q`w45Q_oh@!d#omP=IB=Iq%*kd7G)dVhw=02JvAggCJ9Gq_ z4nzudYxkD8I8>Qvu+1J!>lJ%XJi;7%A;D}O{`!hd>JwM&*}~a7!U6Mr^pF(1ZjybG zFOzf&cR!1pD@;_eS%NQHt=^vk;2dTqF@ql!ZE)~od4%=gaTBm5)c_;cFelNH@+E>l+NBk?0N zM+rQg+XyA=n^$~v^eyJc!ARbmWR506CLpVLNgN}@q?}zn_mj!71n!=I=sWeoO^T$}?2WunT>57EdcG!$9FZJ|rumZzH9a&Gl) zYRg9`Stg)P@sb#ogh_>5Nt6lP{aTQI43eM}D@ZUACz;cMQ;DWdICXP4s0y=YF>N>) z*F#eEdN^3bd|y2l3;*Oe{*pHMWJO0jg(<7YsrV6^(*)k8g%1gv3CJa0I&Tq9QpB#F z2T1>|1a8y9zYTe?*Xc;G>qJ!2fn!2(687?1zFqL|u<+JOXX+s-LMHH9o`rmA`A*@U zZE+h~_;U!72}nGy+_?fxQg+InM_>klci{(4R2FPH5GmBd^IPI#@_}fu%>_*BLEt@j zggGumf?Xo`>w^HPPaFg;63)dD4w%1B4@tr6CV4;dWs*yTd#T0Ey=|f(pccM$Bv`t} ze<{PjWt1%wP^)-Zd_XcLRdQuY$_iEE?niC5fv zP%4{i2$~7VBwjq95=v6SuAT=;{?i2RZb|Ml$bz-5MG~6Niby(eJSa@UT3*M`3H~|@ zZ*6qF9+DDd0Sv9ZE*{%!R39g>J+s_Vc>-@> z#wU@4=BL6<2aYsZw+V(n6a3FDytT+L^pIqn3A{$XM7}iom2iJ;aT|l-Q-sL`q#oDl zH-b%)b~-&xUK^XDfrdzTHwG$4;+K!&LFOpxDO6X4Dp>cI9#s6%O;GH)HYs7&r9~Cs;-d! zuFUS-#jjDt%s(I?iv0y7xc^YnreCwtqKeR8TwMK^Wd664IT=?c;qdq7I~6Sf`u_^Z zkH^&&@eD((gamUALbh?0Y$E@U#nn{=xvGVX;;NPJMdIpeLY*8jL4{de4@obocRN$e z_i=R%;jbCTU#ks1SyA1!nKG`fgCC(;SKxM;hOIb#tOuwTW<5e?0`iEv`TD|03fR^2 zBU0ahz;>BNg4%}2fmt^~5}J)gBON#v6s1j^-9+%4T6i00(|Sk>kO{no8RSdD&4jzT z#clZZ+=3vPfW+gfZ7I+sWvAL!1ZJ4c;zww<7Hm2YDU{nbEpaixOEg$!Tc-7I&+YIC zb8L?UN4(*$kFum5d0ERSyQ6SAA{;QEqKBm5b(2g*zD%-{aHm<^TqO~VFrO9cakA^^ ze1UHl=W*~XcMZATCqpDwF$@&&4$C5R!h02q=KyMpo@bgD*nM?N<*=k-XS+;}8pQ2B zUGgNwcXsboW_RwSS5{av1AI|JJ0l6rE)pXBN(%uWWr?{sH&deQ>O{emC;E@DC_9f` zdYQDK#isY|hI|*Yc7{^Bi_#vJ5^7Z@AnnNQV!>@sLGEQCqu^$RY7^Y}b=~gTuUR5D z+mU-SRG6pj0d^q|Z{mrq*Wku9gBs?0KHEW+k^q?AtM=PBgZuasm?3ZB)&B1NZHi86(%Qe7u97UeK+jRnXI9Kur{LlqjW8(wZ0gO9)Mh0-Q zx0!?Yv7;sD;<0ya3p3rr94Q!ky5w)YpB;sl_H@ak@e8-m>e-!*WO>YSJdQ;cT%8iT zc3yYf%@am*+>KcD62YC1)JX9-eUG3bUw zje;Fd!+GI253}Kv)CpJZej@3nBl+H#hVS!kIQ z#iV4JXy?^(5{%4)`s+f5!@>{k%aPQ{dO+ti{Jih;Q^dVI@MZ*+H= zxrdtFUACDLHMcvX!BtySub@#|G)&=^wJrLi_t_C(qX1uJ&CDpofWwrLgl3EyxuD7d zu$?M*9BoA)CI%9-$$sc#(QT{BPP%RVoWL6L{c*J8BDlyB%#Eua*z*-^7XYWv9^>wE zieJ@GSj5pN^km04=7hdkw2GY9Cg8{=UI2xaxBjLlgc;rRgmWCYW}W>&2A;yndEP5E zD+TYPYBu^tXT~m;SWSxb{GFBWWM=v^W0&9o_cIIL-?ZJRhB+0PU_*r+8-GOXX+mqm zCL}z+qu+ubp?Rxd(}AeL)^BTxn+Yfor97Rf-Q^#b$DD!pDDt->3C%n3*B3e2L@@#% z)c!=+GX;581PR{n)I(Bkry_WtjeNB+=Lq*)i<=unA-@7;YR)73OhCcoU(fH77)hzS zdY-4b-c8`{S4_n7!49Qx0TS%!lwj$=$xWlF?lqm+=??P0P+0G^Sh>q!Rrdv8eLY*- z#rNk2a5z%O4zciut9Qmnr)77rE`i{N9e?^3@~AVH0X6PdI7)t(&Y)ak=RH-M>3^aa zVsXOX7;q6qU)I?9f{&dS0~{CH%o*2-fYJlOkK{7@i_$5y*R2qRbADjE%A@$wn2 zX=dnj_cr0&f^rtCp-a`GPTi&oi3s{3v2PN1&MGUgwtbknK7@V*57?e71bdx`KkB>F z%WFP{T=)`IOT^HR3$GocD~Z4$dKG?P+pd7qfyg0{UELBn6Hp||`AMdBceHbME0MVd z87SUQAqmZ=@z)nG`Lv3npAqD>5hR#@Ru4(ZoswYwIpiyfUMJk^EpF~`6zI!WeC7sn z$pn-y9xQJZx1?}guKYev=D!uq1c(oo&x z`e>GJ61Y`)F_p}1c+1IS}CLD03GHWCDujY^%?^uLvb3h`qu*#^kHSu!~ZXH19?hjPx}m zq4~Nfr31%^63Iw%n{No@n-(NjhTHH1&ubgqiG~|)IFrZg@EX2=qn;HvmX`*L*v_X8 z7Opc}k}4L4#}cD_zrN`1l}OF{ry?WYN5t+| zMdojTHSBvolF)oxlBNTv2rb$WyT2o-2P~AFu3pyBB@N$Ic9XhM?EW6|ee8Zv1ixBCOY;UygyMyriu2za18w8UQFfX$fEn6EBz z_ghC7@GH5hC*!{z*tou?q(`Zy_fxWO$DuxmqwQ0@o)b{`C;7oV$W`4PQwRrT~CNo7#$zsMG(?ar_J{Fs}IkDNVGr? z$%sv6pR=A?pof|3Tc97{Av8Y}LR!~OzeKB>AAuG;pT(JIuO1PXc49qB1h!W{#t&>N z7H~QcIW!qRX^D)r9YjNu@i^1&+-%f!?;Y7?_ZssA$e<29i3Dps@YlC)l&V$h_A^2L zJc5L%ztBTcPiGQ{`b*?1O#Mo@zqYu!pF;ElxqtY7+GXJyG+DgCeM$yM+N*2M+H%+5 zD7QPe>++e$JPmx5=rc&L@}0xUJTc~fY(s`pGdHCR5YyOWExkz8;Ex4&2qD>U6W{51prLA z8WJ3-D{9t+6eMm!tW}w0n-#OV#YqWg4U407bT+?Hp*01ymV@%;&!*QkOH^ZRWw%#j z9pp#lAK{vH@fyOfhXg0VEc*%V38>9D!1}UXhml3ytBQPZ4d)$Jd%#DcCoMQm!o?()4m%m_hG~z zM>5w0*=67Qak;+1Vj0IOR*|=>Cp?0l#!w%o7BCqAG)yos)3LCbJkg?T@}}f6BVM(> zk@8Rp#~@LzU3Yfe2J%Db7FBqo9A0;MM&qOT@mjHLunU;rU7iP4XbhBwuzOc8clCPI z`WEOMcS1VCqvcv({mcqx>{f@i*3eP1%-P-M_zUjc6iJ^w3}c_{ZeA+VR3CZ-%1f}_ zykOL0A&kB_Pn+zvvs0Vjq%dM1^jU=CI~>Q|cHY(AZXD~2`jMASSlG)r@-k?W51l9g*)ZYw8feDG@=SPt`->lBL*XO_YIsww(y)FKe2HhtNzH zDw`_M>C{7lPW`f`^?4l<*@IToWlb|gZs$0;T_z^C@kHciirlVoa$OUX+pZ-!cUjYJ zBDZ^-+#Y&J+B{Ow?1_AT8OB~hpA|=+-3FbUXzRV1@7J>KgNM-UD->tzZap-!CoAIb z$CPVX_s5UW93XIeSifC~U~g(VkYJgB4B}rV2MIh$y=zXVzD(XgXxoR4(>fTh;n#;C z!Ey~zNC%DqrI24YA31-R;19R(){%PjkYt|;ymCh%U&_r9?p%wT!{FZ}-LZ5e^Dzy< zB({nAD8VJkdaaHov|a2kBFEqv>Kuy%w>1hi9XQJ5+eV#U!5?SgtvYYiLy~V@9qx0G zI>!t5O%_+*2nQ9agQle0In4tD5L|& zfKnustM3YA`E9-;0fH@%z`^pOF<@y}g$MPJ6scY}hM4awM?v@t;`j^O;FA@dyU2WB zIZAlI@y_HEp9H$uz@j1 z&5OCO>asm3$oCRD&3VMd1T&ME(cUE*NtWJd?XD9ra-OzSik=^-gyCh+y>V&;3Nd!O*%AIHC>4L(`1R4--9dUP3ngysVR zx93?DaVR;L)Ll-HOhDpsyM0igNy)nA%v43Xg3$KLGf(G3cm?x(7)fY8BJ6bFh?9H5 zJYK1f3jSjj-WuiOdPuUyZH0JGrLJU3rLMvc%pVFoom(GX(%-)bJ=C(<+e*cg^RFg! zCLo`FgR2m)Y9h8Q4Bj* zu}-L5!|jWZ$9h(9)QTOw>o?<@JAuKt_+?`D zu8gsVvbhVtfj0x^!Qxl%N~NJ)%vbR%U+kP;v<8?tzxV_*b~Se+W1NNkHT*zfqo+S< z7iju*Jci~Q`0I<7BFg*Suur>dHohs$dm>Cocds6jwy(#B`?T9ZT{)L0lels} z5lWJSSMG7;GCDkgU!i$Y&vv$%O?h+VDR<1G+{gu8L04Oz63lNLOro|(ppL-TjHd||)a%4E zc&6*mG{42K7ImV_{0GsII^jL}kAnYG1P?3zSr5q~ zsTcZRkgr1jt8o8jadTUs(AjlxUZ{g>IR;YiH#|qgOhA@#7kFL-lKi|2{GHJDuJ?(l z{{w(9zzayQGgUOxfn!NY6JB5MG_=`>)Gjin%)dYlF8Ob9nuN1RVd~uHp#J_Y!fRR> z1IfI+MCUAG)h_03y(Ri=JFqv$?s2(Sej%>-ijCu=DecVShzGwX1Q()U;IpcgMW;QSW3Qy3GnuiPdRE zsupw0mGB%e7}F!o%6zgh+m_wT`DPWo>s?_Ntr^)P8g5#Zbdu)8aBX2YWmZETY&jVT zHnkGajlI#j#ck)JO<6^tCWTB&wT6J2+$9>|S(9+}Mq({IVk$yNb{c`a^YNOf0lH5`xx3VOc9=*|MSrOUV5kXBrciUEW8e|*2Z*P!okq^}XLsgfhjV=#BzqHwrsdKsz}gBoNjGBT73>8SSN= zj(kW<-oi4ScmZ)|APLRR!nWd)QC!^3C~o_3XLhlKW{S|RmXNNooB*j&wJxFV=1~1K zXVi1By^h_L-Cn^xkPijzGG6B^hxucmjyW=r<4dWb(1Vg;|>+MaZad%``q5qg( zi*cMV-e@rtbeIb*$+ z>_}Hj3rDfC0n2YWABsf|8kf)k66_7f)onwAn=MTNX91xXJvYRjasQpmeec@zlFQC&qg0 z*iP@NV;EaP##@*%sW^Q;9ItmW>9c(?Z{_P%ahk(GY0$h451fpoJ`7%`Bkd@j4!&pL z7w*^7b2_&QD&o|sbgDz~H8hNixT3EoxKPPne%#=2!%L=4b$jSWaG98$ug8&i{yt?K zmp8;My8&LD3!)Qh`~pADiEB_^=)vHyD$v@#iQ;6}34TN2+jXx|Oq&_J4w_)9enSkCEAEP*1HcFbbYtDgcq0dq7xv=QD_!XM-^qkJk zM4(%CuVfLvt0lioz!GB-zME-xuG2-*rFVLBJ}?nOEJVm!n+k4SIb>|)g z?f=0FVlK1>c&`j_ku|{os3Vgobrz}yD1_YS12hg6$?Y- z_}$Q2=Uwo@R%1pnw|$a#(BsS#ocx4~cM(1pmuf}j+lIMw>eQ?@ExX%)ZOAeTbqM@e zQ#KN9T((E2_|Cy#c?5TG*?l!2h?Dpjg%K68X~!WhHl-TYQ$k`2R1c7fi0_xC$?98= zh?gK=5%E$P=Cc1EhRFoZHe6{* zLo6;J7#&a;%=>#{>pA@Bs4pmX0mZej(?AN*$MzUq&r4i&Lg-*|d=y8Fp|7U%Ljj0G zM0H#!j>D@#o)LGjDB{}q!lJ~A@ug;^(Q$mZ4KKkU3tat^GDxyM*5lSS$XDF@lvsC$l zRYfNUzox~8|FYQQkrES?z3U{t!_6%M@?)1@l#;hPCC@<|prgd2r2pbXkYg0nIEwmX zI<(V$e)3xs-`~Tf+7f&`XL*>ipU-{q4^qZn^yPfdj0Yz)2;lpU>>ZXy6$E`xurqtu zg6xv=I6i>Ka2)-h9RwOGqhp6fDfkGt-{kd(TN-7rQD6-{MvN5ICBVJk+=o+wnoDqY z4&;gVC#SI`vEA6%SQ3tX=FnMoA+Ab9b^MHJ|w! zIH6#_jsz>q#5Vn(XNy=*KXH>K-xTwE9P@S2z9vhReT93KpR}4K#J<9P$Vc2*6XPIicx&yA)lxm!wnwE{aCVm(yKe{CA@k*!IQ0@lF7%%+*RVpfFOikEsj`Lpk zY3aH_u4BaUES@rhPME=#KdB20tmIH@de6a4}Ct@=cN#CwSOCnQ+@EF!i~M7HrhQ5tHuH|bw2nZJt6-z=HjgeZ}c=pFdO zf1eZj^A5cq4VP`_{Rve#UlP;gxGw{%*qYDr=b`sl0OCFXqLcXJM`z7Wp}o-3WZ$}+ zs+0B?l}qT&qan* zlb;%1VWt^;Xg>C(x231=<^Yhp!P?4uJs^~M`tcqNO+09)8td&=*2_qS%;yfl3t2?(IzYdy6 zu8vG7oI--t@S>FtET4cPS)KWxy`I6188h7cb#ZKL-&8vU?V_7uXTtk96W&Si zx{adPvN5?YYiv0svf(B`hYdLi&`y+>Np`a-Si!VuB%#SrY*)2t#=4trru@xqer``X zE$V#>XL1b}&REpdJRBy%p_{l83JFGg3$x4?AW}D(-OaG22sgXcTO*TfMXc_Z#yJZb z&~26SE`c{!?>d9sh+$W($LZ~k z*HC{CB%#?;RMLTCLP>0mbr(47C8${ziVI?6azsbf&Q^AlDADM}-pKby)$SvL`&xpz z(-8Ff`wJ(J;R+or3yAIJ^H*)y!)VcGR?i#rMD~aUJIfR;Rvkl2%nGFudhFLzcAvW< zYwvmah12}V5q1dz3IjhFe%Fo+YG~~m-Q&6-MJbFsek_hYU<19pEr;Ak8nq;p#@ zjXLH)K*NxVEhQpAp*wnIDCyUq(k+bM9u^hkza9#F}2&* zCN#J?9Ds0;9webT0)Kt|AYXWg-QFAR)|=dT16#N<)~Vkgox)qlJ5n z#myZL14h1zZMD`CUdM`WQp~P77pbJ@DYrW}W7(xLy}*SLk3$lgH;Pbt zc?dyhn#g_6^RUy<9Ph|wen0YhcpwoOL*xn(c zZhHrQM~(qXc*I^8U&~A%o`KhoBs6*ag+nD^A~o^J!SjLQ2T$@VgaLU#_=6T7v8Y8r z9#SR(asfYrIXI*=_Jy(l?--ExFbna^2joklfLs(Z19Az!a2}AJTi(ER60#sNC5p%7 zVPPZ<-8HAqV}uwjuizR*4vbVrf=hKoC>=OHlt*D%Ri+{kV?ka+S8&Cwp~_X2gw58t zEV6h_5HH6aT;rew>n%cpeHtSB^4!5iW4p?CvWPEn#O*e+Sc_$MHJ+mEq|&%92=7_f zPGxEvg7^0!>Zz7PFXGc7Kze6d?68`!$JDc{jp$~(R4P9F8r-$7-U zwU_?Es1lqBba=%7n5oQJPzxUYP9&i@nXDZ=LqE77)Z>>`{5&zZPW_bCtRr?_sX*TwaKW(7aa&ZEgv> z2$^VzsBxk%d9l#i@p&H+*q3}ie&DJh0jC3zgS9VhiHu{Lh=wS38PgWmgna<-QRtT= z3C#!b*B3h3L}4t}b-Y55ABrHs`@?!j3hs0S?~fo~?chg+`!S3AirvBWak9?@6g=LO zyi#H$rS6(@rHb_`LcenNgna_+Pz+Zi!D47hmJXcYw3@14vYX|{`mPbyr!3ZM`@XD( zE?5+gKTXk>H6C9b#pBNa9c6VHnl3j}6unvOn*^S7ovPaxnCqkHEqDmc z7lqL7qOe<$3umHgi7j+#%p}AaV$0ceX^vDG)?MDEl(gRu_fc zg$xw$SCE9}tN81SmwZ~q(YpotwFnZ-zpjU*$Vse zal4oOO<_MGiA+G*oN+Z#_K1*T!nnz}I-5s{VJFI(ss0$5u+w8maCeYs;VvO!;L0E* zvXeaLae+KxL2~E7bGX!^uJf|r7Ph#AdjqjZ7PD!oF;g1J8=U2?edb({#ffST^V!9* zm@MHuHDCA%>c~Q!=1D7X%r^Qc{i%d)w#`jZ5&VpZSULWh(&pz73T5&OBsgnNI-~=q zB1@qmD+Wwk7aTK^9Nue zg3y-|ZR{UKvz-usA_CjkKjTMe{vzOXAaZEt{@M~b6Hr{Xv43OQotpxAm)d2`b3j6M zdmahyW5QqG{!)fk?e9MX`9cH1Rh>OHdQ`zkzkY;$N~c(^!{RS(O1dNK!;U% zW=J#V|A-o97qEo&XCevBt`y&mG10Ozy&u8v63A{bkeC7d2>$NMZt|MwgJTco`!9|? zMR6}nF_*$MF>N}V)3WyS<3Q{Z8pscxv~N~RylnC6W59N|r)52aHeeF8{g;U@BYV|8 zPw**HO)Z9F@_Qj)m)n1;*k;-kYU2hwn{a3>7NFzfhWp3uKGl5vkkaasDtf)MX6f2M z+^jgHgRe<8+PCU9Q2G0s`GphpIq;E^!a`);+0E~7T9u#Ms0BEbgTJ`n9A^yLBh~a( zRxLn|GFB(HIMpM?Q$40}Ggh3MmYEB81Q!)@!#c_`y8z!b_|Czp-DQjcn9{-`-s31j zE!v^OCB9^4$yb`(>;Kxj^7y!_dQVr{v`H7XmjDtriIJwIO;JNj=?b+Zg|-)lrCcVN zNoH=7nQ&&N3os%(Wk*&)d4k(h(Wm0V6L154xbP7bQ9wmd#43yX?!)i*_d9o)JCl;6 zRguR(_spF0JHPGx&VJ7CbUrAfyCazD&tw+hPuVP#42=l~Rq7vNT;@nnKx05#j?H)$ z3GJbnJ&GAP<5`R!I9(*bjh>)Gm%p@T<|dC~aS*tSA+91pu9`ER9jP*AIgq1KSb+dX zknr^z1@amU86rD8#|Y%g01^VcS^mVOw~B%QtB@`|+Od+iQ}ZV79CBjxYJHXVjz`;G ze)SbKfHn}FiFHYd#topo^8u-=t0gt`(iir3{(9n2do|Qy2bk~ib zYzPR^I=D&@$A0cJpH+7(Cb5JAk zL+hr1bm)d2u$jpe@gM3aAt;-Tl3CS3GEsHZQytN9joGAGH%rznnl(`cR>}OC0(_PQ z=6frF5BFNbBT96(01quu8R?LSmlS37prfN2lX(k(Am%v;@VcE~R58g=R7~Cq)v@08 z24&`4#dn_IJ74k1t1jB_ELsf%zkt7T){KZIz@L_{?2_hiqRs>~pspM8c zNhm5PePg^FyC`#+N^rSIaD_@BzA;{o+y;e-iGRf*4uA4=rHFBr6~jTjt1-UCR+>K} zvU4WxuC=U*#1CVp#4B#e=3r*R$9j^Sj8weJj2VRZgl3xDGp&pGpVG}dZi|Hdvz?Lz z*aG|!KRk2`!C9Po7PLD>yav#hQ))@OBebHF6R)do#IGuV@PZ^x3G3{sC7Z*2Dpywi z4h^SDhjI_bEgl*&#v8eqHj=;SZ9nns&1>QX2yX8J^3oP`(^D*gQQgGssKaHS*5=mM z2)WkQ=2^2a;j+yLoUzJ1V&!E)PX_KuKpt0yTX}P#LkJ6>a&JgxO?Y`8j=FSfN#;_b zXW1i-snwDXC5%z8Zo~qb`tCd@kj>d%OB=gy&71h4_YMIlG~?+zym}8Qd>=++fef`- z;;K`hur9ZVngddy>+bF?A{XQ>U>6K1eI%77;v1N-Jf6Hv`Q9!;PVKs`!hKiL^ik!gN_M(jF;!OE6ce!9gQSX5 z$koODo21eZ3k(GQhT~KAjY;^&p+jTem?EoQL(RjlmS!j3d$e~x6)a_4LkNE^{x)f= zuC;B|66u_)X01@rNZKlM9nhhbWIGs}cwaAsYI296`VGv$@y?C-fm4tI+~^59j0)af zGjo$i8936vnc7i6MEElAb`JMeEnfA84G&U$SnI-f&9+^65PH^{=`MK zS^>AWNjevfZ^WIninD-$E%;fzDaL!Y*H_F>t!^#c@S@L$4`vF1nL5oC(_-sY=TEmAVKF+x! zpy}U%bUVanCi7wZ2WKBafb)rxS%-uq6BsaZtl*Gvr;HZNN0sKsgyzSU=1#<4sjfSP z$|o$9xVk(lrTb=`#kM-?Trs*7Zz>f$Z&aJV(H;gI=^Qn_2G+@nB;X6Q3MVGqgSrH&lUmo)d6CHMbo zZh7>l7Idg7b}tV|p0C(EoTQI#9LlNcR|U(^ruH?YLkzyD!O8c?hPvkK$PE=ehyZR6 zg_Ig5MTi^bXotn-8%pINq4G_oB8E9yjDfnjH_C^7z9p!?t*CJ%4vKqN{!}YY8f`Rb z-$8ojEaZJe@_sj(_j~f^99dIptuneMkL1`aJ}Pj0I^r?>Dx1gUe`8`JN@FKY14cLn zpyb~dE~+J`pyc`o3^_3PA%2w269WD(Wg6bt$kT!0+iyP-rs6WRcRnIr>64O5r{quJ zSK0hn{_6wCF}+hEKdFhV$)o&K$kPmUF)}iBGe1Q%D#tSj%I0VI`t1jaYUR*3VYu?e zX`b1pIesoVexW(^?Kh;tXi3oa$IlAPa~9?hX(NU;Nu)r}OSZUnLV;dDIs`fpScier z{1V_0^j8SV=GTH-TLCf|Z3Pxk(C8#}gw|<(qm+Itlzyj_5<7}DP^>PP1kbtrUa0)R zQYnJ>*47=L8)K?9qIogP>yN@ib$R(U@=r*Y8u@2o`7i%!mYY24E?OV|DlEk%Xz%=< z)W^R`D(mC_;aAzbDF5|pb*0X!ja{&@&|;sn$Gi6E)9FmA$)oVBj$@Dx>&4NpUBcor zV-X7@9fzQ7#tRBHQj)A$8z*RviIQVi%@M7Qq-Sg6B!QW1VTQGaTqnSBjf7H6K{}+^ z{u=UB070mF1bB^EFse{wC|dKDhc!=hg4u&E)r`~}%`_!BT}aMQl8K#$-WFrjKfgS! zG*ig!X2~5Tb#cd*ip=gnMswOjkX9FjU%B=q9J{-{@B^p!1iaCc>`fjSiyC^PB*(F} zcRnVD-Xy6s^u6&5ZzRiq^>)zO>I+1!_N|Gh$s-dq^4Bn2l$Z!jXg0GSVqgo+2yj{t zU%$H{shS3UfaW+*avY>Nq6SV{*1!)InAchu|BciXHa6_y9C9?cYH_log95 zTK(n=|8a5KJ0F+ocetdo`n>_a;ND37HzsD*l$PpyQ%!tL9<{}4*uhX|kCoP7jz9{m zdI16)Cc@XRjwD^PIv%Mx7DzgZ>Pn`f)wLgpP~#TImev1Z_HK>=1K?~W0-Pek z7b;Kuv$=p#YC(k!2#%m;?pDogMgg)fStUFkYk7PentBCq1(;6A3BBCP0a|2|)+OS{ z4YIxS38}2BnQ2ktm9CrPASR6Vcmz0;BpPY-tios|up5kqqKBCMecZK@Wu0b8JR*$% z*KlzEtmx8reW}o*fy+mJHrY7;Tr2&c`Ec0(@)yedL!#jcP#*c@b|tnUeRP1=MOhpu zgBvcso}?f-_(8-D6;5XQ4U+H?ZIB{){?ugixLNc)!~$?IUVpYq$Gl}>BiUZa7aFAmm`}(Jp!2uAi+~w z{=@~cvV*5yq)YqNCwViPH*trwUt%Et7AA$#r0~(UC@Z4GC2#M1TG}E{QuT}yH&4t4 zL_pd72+C$aQX8eOW-8EAKen&V2~6I?a230<=CNxYl+-wNMMGOS1L?2@PHDqRYYbw+ zL;(RFE*BKq6O&|6;?{Vx$n-rs1;BazRioIEIY_T{HP;6-o+@ke`C22zo zeHPNeJU37LjOJ{_LF6(5IKmPHDl*AMMcyB|Ub2lc=P0_j3c7O@ow#Xy$*h&ao+k*- zw+J|b+D`Mw0>3~&hnD?9q(k<-fJw({0p1g z17f9IvV@D}My_)+!KZ^O5Z&1n4)1_^`blUv=J^3{L>oMEBl64-*rPmsC<9!%04ww7_zIwhNNCiB zT*2`Wrq7cX0czcRx{^gd(wk4)f?obAWJgVT)o@q^}{DLfER%=Q=Ba#-0c)bY$)ow*jt7=T?T`L5S|iEU^PPs*3%d=z?9IV)w-v-lIk z&}MCUFo?!Ol}S8^jMH2=s8`S@E)l}Df?W3_2@bU-QwFCR;D~{DmvFf~sioZ#r^5s5AG+#m7FOPXQ-D=tvraw@+GjAQ5wcKK8w zoK3KQ#j09=zAxLOwHZed(FBK=?XZ&$wU`^A2zEj@ibCR@Q0O%8Cc<&H`gZ&%o0|o^ z@&BFvXg$%P;w_?wDz$a)GL}QNcS!1@#KW&pD>LtefT)YNB7iqOk+$&_D=n%Ijo%LC z-z75NW@X+TC0wh{v1;8eFmW4EWVDiZBOSdKpInMpTJs*HLBa1uP&V%qL^`k|`RKq7 zW2If%0Qr7_{4a%+LkFz($~Q+|7;ITznja9z4=UtPu75rx$#LGpX5kK``)d#%7K9&B zgozixQH`_Y>iQ>`#M-v9mKPwM8Cif@ixO2%3bf&~yVQY$S2+)aN0kbLI2@gJ72yJn zEhhU49UU^Njy~#y^V2wYuB|EBWQ?$I_%)3Y-kExK8VekGoMl&!J9>r(2XF`AR0s|4 zlGUr%u5-JVuRC$|npG}+(7S7wuQ_4)8h7dHuCC=v*R5RL+1MqfGS|WzXw~-~aVkL>?WxJmT1m-Ii#%{u5!7XSn zS@pgu$#L>{!5Hzh)~_+No3LSC^L0dnjRz6nBp<%M5t3+NgviLFM&W4GdK74`*)E%J zDAI=n={FVWNDx4~5%IqzXufUH90NXrdoerM@KbLO3*Mpi_8p`{{AD1!GkP2I2=GDS z-$ejFjzU~}d5RfTIM4Kswr4VrDwW5C%Hv8!8rjietSpl63*H}Cy!0uvgMA@O;)jB6 z=#qE>=_rXKKy3&5UGpQLK><98plqHJnpyx9Dp~+bL1-uR(dNfW@Fzm>X(gE0Nyvj@ z!FW%mY(Et$&sZuvP|9ZhpFcvV(Lnx8n2MKgd*@VXAh$`X9zGlf%jV~RM=|~aLD@Vj znH%M>$1pO3IqJzaug?jJ=PioujqYC%n79OrjBV^Mkq!&3IlBK9(!lSp5tPku1d*B@ z$w$qOwP^>3XXdv`>~})!_exA$FYO@WKyfg)ioMAiD=~14*@t1J`2)yf{P9QOygmV1_5kTico zOfrK5gj$Ys;c}7L>%`^m^s$-w8QLS}PL}Z(k&45IxJ{0(QLfI1jIXelNVmtkU-zom z_k6a;5Vx{zZ!4Iwh;kZ~Z6ARdhsa9K$0H^)Q8=Fwa?ZkmZOe|k)1bFEU94sml6`42 zfmxudi3oX`(wWeY6|eqPWAwbb*%k5LSnN0@or#5f$@HXgx_TDRS~}x7Gs4@Q&UkJM zJL6Y&typa)0lxA{&&i~~A!i+a;7v_@bx;ASQ{_)p4a)4r>Qm2*I-p*LOOJFQgu9V& zwk5BCX<0YZk6%ag0m;EEra+OmK@Vs%4akowHVr}9OczR8#mI$-Ux915MO_wM=q+Av#)@?CIS|55AQ2yKS{1u zPBY@YzU?UI#<+6Amyq^HUQx~g_)#_o3JI&6gXB-Oa>y)|b1=h2iNnygyrgmlOWiOl z`jP6!`YrVHT4aWP4na^hE%^HSAtO=!q@4zPl*!flVO|G_E~hS)?!nd&eO{SXiJ6Hl zo_udUU*zg5Phps%c|B5AjdOOT8D~=kb143o%`ALdG7~-4@XW56Co_{Whh-*rW$HY( zR+%Z82QpJLM>}H<^X|vCs554+_dLQ(edgIrLsw>+cMqPl%1rm@L_9O2OFUAx5!L=l zu9rJgigH&vZw9d0GaCtAPJO@^TwoT=97N*KAimBdM3B3JnJba=@NJPBOchHK`XpFk zy=iB9W}DYP7NvgWIPBvkxY;djSDW821<}zvkHG(!krXc>*m&Js_ukjKOQ)( zGshx5Z#wZUn=ZmSGkra~bhZGAHx$fjq^ug_>;`&ylX6q(LEyl}fB3{U$04oDnQD4_ zkO3=mCDU(?N1U^_?evRy;fD7x}1IVk^(&=(0je^+_?5~zBvtG&UA8KK*kK{^GRRhGI~NP-CgQ4rxTMi zoh=y6W(yV$GwC$6h4`(`zHqij?-fJf?TUU&jDeFD1&%Zo2xv(#OGsmx@M=uAS| ztb^yYr%aZAXQVf0{j+ISiyl!=a3-QR>&^C=4T4e%8& z0Q?iU$y5sKz|{Bv5-)M~g{T8T^AOsPTNtEba{$`vj7#S>n!F%W!3PWJQVLQI^qWD6 zp055MU4Iw7V9t>EnbcmP)LqOLA*ia*2+k?mOSr5grXau#tOpSbE=ugQSc#buqMZq) zV(+XsnvMKjXHl{CY*I{m@yst|vpJGw3x7{@Q`rK~0Ps8n6?mrPn~aub5FBJTo3jYU zYL@JFH)T`UVmuo$XnYzf4b+qgIKf%B0_?nnzjyUJz;pO-)oce1d0}=69jeI|X0MgO z*BHUsNXY5~tg6x}mQ^nzk8K-^YmDortHfG$LwvtMM^F}MXs zGIG)YrP3Q`0~mgvFCrAWms~Nq+0DS=WIvrwnu{4dzCWMqGneq^K9waAtIk^i;z>1Y zV3Y2K>c5nk$HM*9W&F_qwM0$mazt)*_SPmO-Jh1W4aHQaxl3f81R7hLCQqcM@qST9GjC%i zc|EgWuEp=NxenhJuK`yZy-E0Fp7d_QkN~5Z{bf>-*+)jr@?5YC5#_N=8O=y%=B>s^ z##_nHbAGQZV;<@6Fbujsb981YhCTbq$jIZY(px}khx5a6karh9_c6D0?Bl?Z$4Q(F zk7W8-a%Q5cqU|o?=m7Mh!=39zfE)0|x$XHJjo(ONI8T)O?cO~0#Yy%;VjpHCkacsY^2`sDG-I3nNvorg? znXx2bAO;d-#1$X}!X2(~mbSDdKzbkaNZa&2=#jSReb6Iq(~JJUH#4i<)yj6=_V<%! zXTJB|cm2P2e((Mjm8x3_e9QK7j$1Xo6o1xC$4{x{yU(i?p<0;{eU4Ex{n@(dsa2us z$`m#%Teht1x}INgo%EjJk>RvwTWGDi=L$n8Gs2G*LxYOJsw#DJ{yr0JMsRnp$9;~O&(ue}Ek?BA{W=L(xq$v10t+wjda z%rffaPLffpSV~>eH%YCT3&dJ4 zD0{x;!?&(es+tp?8Vc1~F<3XqGfOp?YfM7zbw#ya3|0byZGI^-Mr{}qsj69V$>7#% z@vRiCO6v{F#*%+5CvPTSQRI*K| zTrGRWo(PjHezGwpS;i#Wz$9xqS;iy_NU{ux+A8}*stJ#6G9?By8rcMm?Xq8N1s2&D zi)@62=D|>?YvgLNIl&>@j>8T)AbJ^v>_~Q4rRAVl8-I;NY5)SYQ?3!~Tg{F9zbg>E z6=~TBDo0&gR4-@`a?h-=V^iun#Q620dLd$*jOp0>8L>=s1112XcFPr_JEq^z&W6l7 z1&&og$4RLh3%4Rt^1?I8%U8=Lk>%x2>)^~U_&kr^;N{UPrd>LlM`z0~_%TPGuU_=P zd6f-St}J?dW0KKTdC?OqtcFF(@O`q%fsfc33DusA=&c5IuIH(}MbT5S4em&4Us3dy zjmlZD_tZ^Av66#ie^K2mw;7@vSBE8(y)7g67UjO8ys0Sn7v+Is zAR$x6l8&?sI%CdY7&_X{{pIk`u~6L(!ICB25|oXgEE&qMLdNmPNU5#6yG2H9 zU4!$fj67QCZtzp5Va1tH2^P~tz6V^#f^x;HOUs$bp%X^Ka@};Q7@$fsz%!*@2^|Ze zx|bWT1<%FW-N$@l2v#>YRK)_(4^_B*J%GQ zSgy;eZq2Zq!U{C4&#Drmi5TlgD|4o9TNTT{5JP>SD7ryLSgG-rLBkNe_1Qx@Tvd5Y z^x*?q1h%OvV~oivj=pMpOvFP}N||uMM5rd=0(l>sgkK$8%F2jU>?SoOOWL*d*(^A# zvu0D=?Un`RZvzybTo%kzH2~v;$^~N`M-vDy#Bon7S=Dv8nZSsOSa`9 zY8BL@P5}?zIx+BXgVKS|y)C`2q zhU&E(796_cxA7c(B$=a6>p6P7q+W;Mpg1`C8tv8VS)H&$6ptm+-_UL|Mo9ycXI-Y$ z8zKDuP@QK$Sio!|pixJ?i3Pm5g8$VRo*1(x$RgaHq8da=^U5jrk0MXCA1E;x(lmqYpd^z?LY!UB*k#>BI^ zid)N1wV;`LA`5$c@?rgw$v-ANccsDlT?6^~d9*F&Lt&k}H* zc=*z|e4qo{(O$;ogOa`f zXsABK-hV_!K7Ux|rFQg(6G!t(snrWwn4B-%z2M(T%a=h}`?cy$JGN_7y?o6&D-FxW zq=`9mp)Y33@ftI$=k=zNT)jG>KGF$}j{=S*6j2`o8XphUClWLsZ9)Sb8h?5gc`Q_) zOsd4wSTu`#s>Ma>({j6>MLr`_dKT$Vy2)pwS>*9heU4G!wd!3hYt_%g`H#iU*K@}g zS~$mZM}yxNVbfwJUxGDX4%PQCD9rHjD5`km`AVq1H?bg*qX(Ps%gCh%nSn(A@6YJi z{A#Fvfb~DYQFJC*GT+&{WF9XaN}rKtx@>xWdNRN+Anm*9BRAfdP8N6Vi|m~GL1_Dx z*nAz*Kh(keMo526hx8Mn`Z`<6ZNJ(ax8LZ{c65N__L~_UxKD=ahuMs+7dImg>nD=1 z{*ffCdBd=j^@!~>ikrp`9kSR`=m^Iy1K(%!>PI_;>W=}|i!oO}4upRqR6m(O`DBFf z(ZUF1{?Fb1Q(*Vgq52ti#uagZ>z~lwBpJQF6{??QZW-t^e*Datle}q4A|m-tdv&v7 zO;{DZnaQc2Ye)a*J0RFV{}(j+Plf6iAxLuDZ#AR;OC8#d4l??`9HIYosD6c2>~B>u zM*FD*?O#pM=IvjiInd4FvkBely*ZaA^C!vm-HK~_d9Ip=(Rns9C;ghOeytPMzYeUM zS*zaw7{3{+--2#>nelXjEpK8YY!fxw9r)X5`a7ZeT{i2Iwc)U*S}^-|sD6)I?rm}i zHnyjZ9ZB!ujcprzBkj_Eza73m=m0?jzCYCPJrk-wf=tP6zugSqA9rXwx`yHVlL)?N zL-nVut)9tZhqP)NBl%2%90cd*HB+0{OpnlFY@uhIX{MF_XohEJbqLHIkN`g?A9gb@~}?nvJrpNE`| z&qEk%eICMCCxu)wJ}_zPu>a7G_&;_)t%3MIX~drk)jvZA$!)*WjQGEFXgfN@i2rMZ z`17IqH`YFV8QRC#KbK(t?+Nzow2NAfD7Y4Nn!2`S`V+cy19e889hCEDeDxolfd5Yb ze@P+gzkuU+Lt2JqJxtP3@O%;lEdDaQPs`Exf%CKiKOwD*IBDH4qcNQSTytp9D$S)U z=5jB)_}Idk+==*1?v9f8d7(f&V)8|pzh zhYs~>9s6P(3;&NgQi^5no?@>w#VGY_*^5*iU5hZK)w&QXVj93(NQ3%2Q@Huc6^+7p ziVcq=nbt7Zcmu;Hr&of~rDL2=^Ek$7h(+s7eABiQ#;#@hQGIrMB^uB=v`6r+$4^Kb z@Qk~`6#Fje2|HomCF6-Uq6JuO!cRz7;mL!}s{@1x#C`t=h22s_Re~()F50Mjy0lM3!2Xk2g%??R>{2`O=!cP)nJY zyk@5iYqg_Q)7?y4tu@`aNYfio7}AZJM^o%1Yq?gOHWxoMG}c@%~;ta)S#qe+}}Sjb#LKrf3f3t{+=_bu1Q#hU|ebJe|RsE%A`K2}9ucggPUIx(3tlc%O8XsUPcWlO`B=xD^?1&rwT$#A?0 ztQnBtxCOPx#6Tl0g%dcBUIt=Fx8ljibQ3z$K!-K)HawS39v0~c%H@MbOA4+?N16Jx zam5M5BE1|O^o(O%Iz?EdV=V7^ZW|CEd~-jA`R~aEu{OnWXM8hgOHFbMf0FXuhPw4&4s<5>HElgcvQq^)7kd~ zxsH#VNa`NL4v@B{*Pz^`5}qNAb6v46@n?ziV0@bEk%1EExgPRdsv<4RsSzZVEz_ei z%ErWMjAv+o6fJU|Q~^zFjc0h@#g0GM7(sZmpQkF<=!4%XW|VHj_Z+gkW}PjKGuAYr zc@KI>-PKDtQ|1i2N0XX5fTM&a6(uw5LOIQn#qR^Q;Y#s2?+2%RZrW$C->aB*QNJcw463EdNQ_`@JtiesXmZD*BX$Q?>D`P)!W6@g5pV$hYAPA|`iL&2lhF9&-{yX02>;#LU{J zCr#5QAM^`iJ1z^<1Ai(00W<1m)ha%n(RLaFZN={th+=vE=5dOlk^77Qe%$bK4*EB?-IRHQ#V#{@O`#qB8z618ku&w zABA&bJ4~%LMuUYgDtUEw?0HnWAXb{rIeL?378zdm%%BP@Yc{=ElZTLsa}mcDItn?4 z?a^B_eI0ubw-ae4vj*u=A3197&_Kqg_klVm z`t+3tgTa0ngfTIw19Jg}_iO5EuZBw;B^BU8hewZqc0nLhTVEJ_J^-57(X_p&&-&7J z^dUvnJeNmhFHaxjT9`uks!K^)lhVe&PmeNrmF+r{^dWxT*6RLJYajkFs!Zv=g{7D8 zmKJ>e5pKM~s?taKWe}aIIc`1%;svoa8aGVa)Z-ek@ntE#h(I4l74*UwRNcEg`UHqY zu}OC|%fXcieM`o482&0fhEjCseq71Gpb*hM8PNu`FB`MMrC@b3 znZEl#pTT=bpT#pHubJYNq}(-?=ASK7Tli-?QZieo4)W_ZTwh2}@lsyynBu*Myc)Uw zom0GM4#c{at3A;I=W&#T^f|7Y$MlMA+~@JG&$^=AczlTjcOr2A0XH8+Uot&;^aWHc X(iid6IZ52qpfBMgq%Y%%WZ8cMxy2@% literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/techniques.doctree b/libs/network/doc/html/.doctrees/techniques.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6cc5cb046bd65d8d61fe597d49c50e4ccd983ddf GIT binary patch literal 3835 zcmcgv_j@Eq5!LA=t+dML3x+%4bvm!X(i&s15$P~sV+2dE+K4dB_0IHeH#e!Kd!!XG z#s~N~k#o-3a#SO)4@8Mig+l@b|N&5voD@D_g2F*(X6%J&!VH@@tjVySjF&;4U(2vrF59?!>ZhvRJAe# z2rtR0R%erbme_TgE_GPN3%J&JzRY2hE$*F3Z2~TL*g=cc6%Jh~7dRX5tv~6|RdRx7 zY%EZbp!(V8~6$6AU*QH$F(BV#Rw%nV~Qwd*83 z*y6ML-|!jh;>8wEBYMmZDhVHX z+7X6sE^;?Ox%lSCAy?7HD7Gfsbc=f(8-zy;Nx40zr@}BB0g6pf6E#pNPo|B6s@SKn z?;c|uJq>O>J*Q{bl;5K#_XsI2tWGZulQ@g~Dm@dqaB_N9AF_VmnCveh*JkK+KSP|& zo7gj{5X)OA??j{ojE5RZvtKXX1%*&osETtAz1X^y#3_oM&Ntbl@=MvU1KBV;?2D$C zIP_9B+dr)5z{_%aIa^TZnHGGv*UB`#!l75PNiB>)FV*y_p}E*jO)Q3E>{Z&MsrONA@Y$k1cSPGq#r2)Nx9hb%= ztBr<ebmW#g8r+w?Xz8}O);L7ZW|FX-)T6g+wdoANothT&mC@3bBk*t!AcU_kGJ zWSBt|5PVTjvb`G$PV&H%3*NIf&Spy|N@eoirff9X2?(S(b>V4T45!{-$s<2N-rmO+ zY*ZRsK-VNdl=OZ!?u%B|p$|0Kf33m%^kabrl7OT(hu!ADnq|Y_WxDqWgA8~{Mecr;? zO(08L1=^+&4>WxNfRsb{gvNf^RBNnZvn;rn>Yk^rR`nTke+f(YL<6 zhAYKh4$*hmI9tCN$9|Vp`ZtR2u~YxICjUO0hng{vqqdR&u%REEXHy*!K~LCJ{Sbi_ z^cev9Bb15`aa(aI!_7t0kI|4VQFg2QC+w24y0^BrR+4Qf#i*!mUu-t8Qa9+Qwxvdf zcU`GEGQiK!&!E=hs6#(zC-!3L?k%BT$h+B`?RM?}!(Xyd<-@*gl|i+lh8 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/techniques/directives.doctree b/libs/network/doc/html/.doctrees/techniques/directives.doctree new file mode 100644 index 0000000000000000000000000000000000000000..06fa7830794b017c141018102daa25b6652e6c2f GIT binary patch literal 17073 zcmeHP2bdhil@^j#(zdipAT1bVnj}U-y9)vvkVG^hEi4$+c)_fPp6QzHUiEZOz3$!s zw2iRAtTDzp;ef#rM{FE$!eASN!zKH;oBvk%N=LH2Yk}^se8I| zz3{(Rud4Qj#dRmFC$Z;8gF)!1$l%YW3SvVauw|cKoa!YNt2eNlDxPVnNH0xwz z(IUqqRgb+%q%9kXtaVXRi()TEQ(;hbR3p;MQ@z4k-LffC)uxIfdmLqZ$FyOst|vt3 zqZ)+?)sJ69~*;Dx-Hd>3UWf(2SrTg8**0MbP z;O=HfwI~U^I>=?{Lq>-|j3Fyh6b(5wMdU?8m&>$<>aEs5pkm*v4dH(@gx^yk?HvM% zhhkNC15YOkwaO_BQWWdw-Ly|1n(D)9*7DdM=lSYQ*7AJp`uUb&$1!=eBnCAPPqkUG zRyawE%SHN#F>86c@eK+fqGHaW{%YoKwz254!#CLGHosq3$ND zM~dqq7lS>%;vO;P9y#V7HRc{Y=58KKT=ePYJ)O|q(H=DoIo#ge`iY>>NvVDTI(E6I zZAr~eYTcE=N_(8_mTTx2Vx%Xh`V=1NVFxT)w8vHEj%MiWxTejbYs>^xGi|fvjM)gu zw0%FE@`7k7kFspL<~itnh6mTy9lXJZ#3H7PWy&Vg2 zZ)w53ofUWc=u#*H&ra_Gk4{VV=}ht>5v)2He2QAG7fcV@j*}ryO9c)nTAhZZ8u|?I z>daK1#TD0~wRwEfXLCEbaINaBtY5^VJf~tUM@tM>qf5{L_$&!iHU)b3EL0wuHjS%T zpDU8pmI29g!X{Wbx)@bkGx|K1Q)tgh)Kb$RY2Axwb0OY5W-UW96h@zKZ7AiYQ=|0- z){5554$(<{;fU3X4-6>rl^z~p;a|!sc2T$N`d-XzH}u7z#z?9!VNpMuXLo7N1O4KP zwUjBQFLTcuT_%GaK+F1a)uCMd?wQ>F9&m;+yFF8Ffj?KI`Xy-CS_FcQK!>2L%k!S~ zsOS{xEr-7BR}E1OeI&R!PlepuIZPV@#l35FCr4QeZH{pn;G) z*jK<3>^g%afH4PFGY8gf=9H@l_=QZtEyJ!eL^3oNMJq{^0GMZx)JOs`>VQ4p-(pTF z6TSy*8L}d;*#aJ)bNTLz0H#Jrjv@hChUH@LjE_LeC~37q;(-Af>xyDPK;FM8j?bWZ zf#A6@507MeWpmOe`%h@fi+Bv4Zxi<-;Eee)?!uu79Gg%ijABxDQ_KVmJCiG#iDK2< z0j11Ms4M9EvW3vsDA2dc==*)>_;Zlt`Won+o$4Bk)pK-?;P%x}Ahv$>R69J=g{`0B zl9}~$#ojgM+dFsntosCP+xY)z+uZZr3)~Aw+{{iHY)4#|?U9%235?HGY>)O9_QUcPOxMRiSAhA#K;Gem zV<}kJkkZO@y3$5$?`1oaIg^F8up^UQMJyxhY{VRV#R&y$zS`+x4$wLlZAQ*w)Z-HH z>|?Ptyu1{#FGmCm8N)3MOg{|wMyBtfcQz)CFkhq0Ga0X1$Yk^v%(#h7#*&N}`exAW z)v3OP36!TnL~hI>X*Sib;hcpb=~gb;2}!U0xgqJc{{tlTGoZXqAnEp0zaHarZ)Mqi zLjg%|WJtQL6O!IE7m{YVg*VTKq_=<=Z%y^v(4;`p?Ol-cPytCLZ@|1~owVq;W18QGqGW-^IUZz* zJ0&$W(hfX!1%TgOaj%_qOSE;bcNYTI!wOw~4}|#HFirhl$lRT&eqW(lceL^Ou2kR6 z?7A83+5-}@EA2IA+B`GsaFu!4unh~+Yyr@)>)^_aiAYTrD#2H|CWs7H%4|I#fshP} znPq4R{4UTu^UB*D9gA2A#A8suzilQnC;S5oA?oIW3m*g*op+B3Cp`q%%5_^7N$Zw~j`gCe5MK)s zFo&K`1x8`YTdIzByldywM>@ywYlf~YB3(48>1+_j4 zYCW?i@HtTY^QryIVv8zF$b&y^hGJ zW9Y9zxgSjRLq+K#3coBXpuf%@(l;tyPP)|t-_&#TH?8Gf;Hc?=H*MLqSexDVU;zQRr( zz16>9FPQ7Erux_1husGwb^^a&ad|uA2dVybo`yuMx!uROAAnKrCU+>0i~TUwzsp%nfJbs~S#6IeKh~SQ}hqe z?;oc6kBY{BC<0Q1<9?LtKjtZ&nFC(7$7b_J1x#fLd+e%|u+DoLbw9}$Ano;q{*!`v zn3s(GPZt{d8HMKj8OHyV^!w+S;$NitFL{bQh951c1G0v$>I7SchW;zC^T(* z9*Qsmp<3BdNdFCU_iq=NLLvD2@4EG@miWGktG*XuXX@|K$4^rI4_O~*>mMuDvaE#u zr%}W|7j5lQv;>3yF|+oc=k2O-lU2n1n}+@uwENRk|10xtCz{#1b$7Yz1Cigl)g0hB zWiy;)w)x?>R|m&(OH^_(3tY+)F*i1uzXR_Eg%!bfQnFh_*vdkJx@2y+U_0_aj^AOUVDa=H9gn^eG#S(h% zkpv73CkL=vX24dwrw&v%8x%HW$ld0H7cJYe1vj8Ki;chrL~Korj+ zt8dPvzCkas75voJ`aJo4vzX{8+!1e^6f{qGqgrHF&~cD z)X-XFvbCXg_>t0jDZ6oWKiA}hOJ~^T7s<8$309&Gt3?M2W4f7G89tAhco1h! zQQD@xNXl%}eog1YPfxR^6Q3XhZ#LnT()00TyhG6i81BH zZkWWTYs-oaD>YgCWZlnc94jhbBZ)mZLgvs7McLAYjzp%|lcQw5M?c%=+dsjK>qO#X zWJ=xBuMA(zxVf1#3nV@kA1PI&e7Rhh%W}rzEekf-Kfx5_HrYWfRt%lB={RIStza> zF5WOU0dZD?VHbpFLW~zN7C9r= zK3V|JI5zhx)yl9e4Ez~6K!-!id^j1%gM5ze6-U?Jo17WOtw)-lrEy8Qd%p zTw^3li46*K-~lMZZuSu*=8dz)a%L9@4fhRrioM}tXA^)7Gg0g^BcQHqM7jqAn6p|4 zFyywN%b_ff6d@ju;5uKn8kFEj`?PUn|6_MScDr|Sy+9L&c$51 z_H*bwncsX+xgy`vq4T-Y_UFX>FThlwS{LG#(y&Z?<3vW33FbDCEa&}2Qsm;S$mpZs zJovg%Zyc%KSq-~_(Uj#Nz{^68~ocT7VJmSEYFp4h=@m5Ek)e%ASAyRC^*#}^2 zjc8X3+aI`yRD)b$mj&lpR13F&!erbv0);zwXf$u9L+IGN`w%s51LEQ%x}L?(&{}px zA;xA;G)NbPa4A>X{v4yki!mw4!)17-bh(gV<3vWD36=nn2W+d_ zyrXEXEbm_7&fgwnk63->g+**>M`TGuSKw)_K!V)3qnAh`?+sdOqnTzc^s7a!h^|EP z7+uAg>*id5l=faKxmR=UL0wgO4?UtWDey8b(2HwInVwTsQm?^N_QO{dcQ5(S57|h@ zZOd{l|wO@&uV4Lmb<0G`FTeBe@IkB`knfB1m>bZ36G z64wK96%eZLR=g7RC!se=aPYR zR)AS8H%W*HDI?Yj&&lquQiN|@VeRYWY(z0q$0)(m>MNL*v2zk>DNS+C+F~EInk_;i znwDxaoVfz)6GnlEIGEhAwTAdT_IU%xxWe{v(bS;pkRQ_Zc&3zcS!;bEd{w?G%4CY@ z<;cM}55)amMBH(gH`@=WV>^{zfxHoG6*cOpfP1|O`E&!)tV7*6ZtWNvio+0Bi9HoJ z216Pja^t2yMEkfzFNCbFiMO53Zk_2#vzz&+lJj_6gA+K0=D z9Yef{8|*4IYDpEwvWwz7G8QS7wfV5^6_Q2Z0R;G=MIfnhXDpcs^ZvpD7P82Pi%2J zKyP{-idk!U@)0V!=-&r1=yp!-aa1iCr`K~!)>_r9DVCTSUq!A`F}(rlv(_erk8q0g z@!EeQH^jS^UOlEa@kbxu7!HzVb(-&o(wmV6rmk_4W~*ANdqi(RI*no=7ryy z6<*C(CLvfD4c}3sw@KLz%(ez>5;MPAoamyrBNNvERBPav<4Qn zCQP+iLT6iys&XTN-h)E3))Ey=(tD+`Y~rm*B{;W)n+tTOB(KHkpb&B_2O@E)nx3y{GLjD|N&ALU}KZFa3X z^bx${;?W*)hR+>M&hh>Xa*tJ{}hM=n_{<`U)!gzpa>K)=dUPQ zL|;YX7(KvEZWPt?a2*^6T=1tBl-xRZ=xfM?g0I9MG$_*^%+mUVprw^~2&uU4Yi;Ou zBA}=g)7QDuBKdOx^bPz@>6>^~a8&LQcddI+Vy&O^ryer5=3y!LEj)2DYzs#f9+65g w(b@g!E|Z^Fy@ln8=us3Mqi^FW_o?xB3g|odNa?$Hx(|=h_xSywjeZCJ8;Xsy%)+menj%=L8FOt-hE zyI)oJ&W=PI%f@hvi6#ncaKOeU=bSM)nw-JpWOB~`tL~neUF{)>4}HRL_kA}z(_P`! zd;bgd-h1`5=OqKl>`q9J=b%BQ#ymz9qR3yM2`nQ)Os>K{FRlPEAdj z%*{eixUnz%A>QMAnnc5XqSGKWeVSb}@~Fu>CJQsHpTuonbq&oGG%pXOt~RROSH`$K zEV|GlM;`KWt+8?2B)Rq!9axi&ue?NKpCqQmHF>q0XGu3nvN*|98wBW#4xYP8&M|qR zZ|G1#hl5#pvZQSVw5?RMt?Z!fh>`PN5Jo=sqoXaldN&h{@_18+t^p5@6?83lpxr@5 z*>!SC&f*9lmW~J0a<+PY{qAM7N_8HG9vJJ;GcMc*wl$?u+BE%+(mFKF^Y*MwFHKis zl|^BviT|dF?}J2dG$D*;ro12yDOaXBd5DHK89noLkI)ST-Pn2-vT}^7qqezTxZd9{&CRL z2#yEGg6o4Df)jGau0hQJCpf(nJgXHvyA?dA6+E{U+|f@cY97DN`fnb4~5hH-VAWv8P+S(s>h@J+Bm^t5s_ zuw@X0I6Jr$Zem+rK^SZl`Jl5r2DZnV${8KlZsvo3HO*qvji3_^`p^leER4iMs|=Sj zd%)yjujt;3y+fiFDhff0Es zfHVf-YCrK;FOCi9Mb?a143velukh2&9N-z?>0)*qm$to97tNZ(n$ZPNUC{#~V{y;= z`u#$_;$E?`!mD8$EyC<(~pPZGnqVN4^k`raiB~gm;hy{sjCj*iju`@zR_?+y-lRi%IlCcv%mbLEw$do{!fd

N<)P+?#f^so5hr%Sh@t4@VU#~YK#Zid;=-nC#AL%y2eP?0;tRf63GoLi_Xw`Lq!wKNnDBtYYYU+bE3 zbrd4ZLXrR^`WEYf%X+XGYFv6E)5~yrL_>i6A?0wU@ zcoC?$cv19KA89es&10K=L-r$KpBqACj56%$jO@kel7yTgAY*d~373vZYuJY7IWUbn4U@ z(Lv<7QLZwYaqDGf+`88c80ki%w8Fdq%!Qjr+2jhRcWzTylC{cm#On44h2!i#VYN(~ znS(Lnj`EyUkY1j2x!$a8=>j2^0UYwXI}?Z#s&9S4=PU)o?OS1$`ka;ag#&))74HzS`MTHFD7GERdtKN%)bQ zSmx`aeZz&X(pfq1LvDRB6lEAx2D`{vmT@tBAM)D69pNq~_JKvN2z21okm|1^SWXf~ zQ8GXfvr1nyfliy3d*frx^U}E&)?j=S!1#W0vM+{=zNDZxLl^;{^3hU8Y$)GS&|6tX zk6zADRuN_`yEBe6wx^@`vwnMaY%a>^u`ITr3bNDMj)&b@MGRwuJ83unt9c`%%hv94 zhL_(xdE+~p^`s0i&uTU&Z7@H1d^^meN?Xj|Chc+gW-_7NFxO01s@;uRAjX8;;FQDD=5n4TuagdM(P40qpQkiAHw zgvmhoP>Kf|R`pmU=#WuMy10^byLbqiE1P3WGkR?PtAee&>4uT5x}vINDX5C8p>a4l zS6UXEfU(8#ohQO+myu9J2nc>hC?BKLqZ8C{`(+9*&9!op&MWycl%P5kXYe{0fm(IH z&#bbQ=Dlje4f^ukZssfYax)Lq%KMd2-Yc^IKO+0Df}VeML0`j;m~rq(q92y? zxGrVTDMLRp(eKjL36w7Ood;}Vfs*5hJFHMT!Yj_qJ1<* zag|cV9xMm_SXP5NoMz*#fJ zOViI>LT{By`3P*1JgoPgHF*ezDNNg_ba0W`(9c4SS;AY?)cl;B!5clKpGShM%6?(I zujm)#GTtMz^|U0 zkq0Xxs*a;yTML?N@nZfx|dt?x6!QyZg?5J7bL-2#(BTJ#Q>+@fk+Pfc|UEB zAZ6%x!7CJS!?>GN!+sCL4so#<2*BRBB=_m}*W|U#_bzHeEVOnVkt6syqQHQz8m)Fk1JVuS$h+mI7oHVpI~J#O5BY$H`hdM)PHbY z=bo)Uy(CZIB>j=1jiuf$GnId~E%&K-lis&hohvme_i>JXM1Rig+k*2`Z6p?K#mdlM zK%JN;@WZy}sygvsZp#B@i(8w)OMeA28KM&?`)h2mi}Ca~awgBZD=(nGl}Ac>DXYypF_JhHokq!|o#8&Nnwb{gA)71NU z6wECeN4DBQ*b5^3&-4sG-jDvVo}T5eH}2$idxw(gISdKjD-W?rY>ybN=XvII=<5ak zatJCgfe7v3;kLY?RB2T literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/techniques/tag_metafunctions.doctree b/libs/network/doc/html/.doctrees/techniques/tag_metafunctions.doctree new file mode 100644 index 0000000000000000000000000000000000000000..84530e913b25acec83c2cd9dbd24f78b36357137 GIT binary patch literal 29080 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/.doctrees/whats_new.doctree b/libs/network/doc/html/.doctrees/whats_new.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cef508a6adcc208cba516ccb91f67023b16df418 GIT binary patch literal 35753 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 F{2x2ABVhml literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_sources/contents.txt b/libs/network/doc/html/_sources/contents.txt index 55021d968..b014eab03 100644 --- a/libs/network/doc/html/_sources/contents.txt +++ b/libs/network/doc/html/_sources/contents.txt @@ -4,8 +4,9 @@ Contents -------- .. toctree:: - :maxdepth: 3 + :maxdepth: 4 + index.rst whats_new.rst getting_started.rst examples.rst diff --git a/libs/network/doc/html/_sources/getting_started.txt b/libs/network/doc/html/_sources/getting_started.txt index 861fb1795..26a53bb66 100644 --- a/libs/network/doc/html/_sources/getting_started.txt +++ b/libs/network/doc/html/_sources/getting_started.txt @@ -65,7 +65,7 @@ Getting Boost ============= :mod:`cpp-netlib` depends on Boost_. It should work for any version -of Boost above 1.45.0. If Boost is not installed on your system, the +of Boost above 1.50.0. If Boost is not installed on your system, the latest package can be found on the `Boost web-site`_. The environment variable ``BOOST_ROOT`` must be defined, which must be the full path name of the top directory of the Boost distribution. Although Boost diff --git a/libs/network/doc/html/_sources/index.txt b/libs/network/doc/html/_sources/index.txt index a276a88de..c0564448b 100644 --- a/libs/network/doc/html/_sources/index.txt +++ b/libs/network/doc/html/_sources/index.txt @@ -2,11 +2,12 @@ .. rubric:: Straightforward network programming in modern C++ .. :Authors: Glyn Matthews -.. Dean Michael Berris -.. :Date: Feb 22, 2012 -.. :Version: 0.9.4 +.. Dean Michael Berris +.. :Date: Feb 2, 2013 +.. :Version: 0.9.5 .. :Description: Complete user documentation, with examples, for the :mod:`cpp-netlib`. .. :Copyright: Copyright Glyn Matthews, Dean Michael Berris 2008-2012. +.. Copyrigh 2013 Google, Inc. .. Distributed under the Boost Software License, Version .. 1.0. (See accompanying file LICENSE_1_0.txt or copy at .. http://www.boost.org/LICENSE_1_0.txt) @@ -14,6 +15,9 @@ Getting cpp-netlib ================== +You can find out more about the :mod:`cpp-netlib` project at +http://cpp-netlib.org/. + **Download** You can download the latest releases of the library at: @@ -39,25 +43,12 @@ You can also file issues on the Github_ issue tracker at: We are a growing community and we are happy to accept new contributions and ideas. -Boost -===== - -The :mod:`cpp-netlib` is being developed for eventual submission to Boost_. - -.. image:: _static/boost.png - :align: left - C++ Network Library =================== -The :mod:`cpp-netlib` is a library that provides application layer -protocol support using modern C++ techniques. It is light-weight, -fast, portable and is intended to be as easy to configure as possible. - -It is developed by people linked to the Boost_ community and will soon -be submitted for review into Boost. A presentation about -:mod:`cpp-netlib` was given at `BoostCon 2010`_, for which the -`slides`_ and the `paper`_ can be found on-line. +:mod:`cpp-netlib` is a library collection that provides application layer +protocol support using modern C++ techniques. It is light-weight, fast, +portable and is intended to be as easy to configure as possible. Hello, world! ============= @@ -123,9 +114,5 @@ Want to learn more? .. _Boost: http://www.boost.org/ -.. _`BoostCon 2010`: http://www.boostcon.com/ -.. _`slides`: http://www.filetolink.com/b0e89d06 -.. _`paper`: http://github.com/downloads/mikhailberis/cpp-netlib-boostcon-paper/cpp-netlib.pdf -.. _Git: http://git-scm.com/ .. _GitHub: http://github.com/ diff --git a/libs/network/doc/html/_sources/reference/http_client.txt b/libs/network/doc/html/_sources/reference/http_client.txt index 52c31a055..bb6273106 100644 --- a/libs/network/doc/html/_sources/reference/http_client.txt +++ b/libs/network/doc/html/_sources/reference/http_client.txt @@ -139,37 +139,35 @@ initialization. ``client()`` Default constructor. -``client(boost::asio::io_service & io_service)`` - Construct a client to use an existing Boost.Asio ``io_service`` instance. -``template client(ArgPack const & args)`` - Pass in an argument pack. See supported parameters in the table below. +``explicit client(client::options const &)`` + Constructor taking a ``client_options`` object. The following table + shows the options you can set on a ``client_options`` instance. +----------------------+-------------------------------+-------------------------+ | Parameter Name | Type | Description | +======================+===============================+=========================+ -| _follow_redirects | ``bool`` | Boolean to specify | +| follow_redirects | ``bool`` | Boolean to specify | | | | whether the client | | | | should follow HTTP | | | | redirects. Default is | | | | ``false``. | +----------------------+-------------------------------+-------------------------+ -| _cache_resolved | ``bool`` | Boolean to specify | +| cache_resolved | ``bool`` | Boolean to specify | | | | whether the client | | | | should cache resolved | | | | endpoints. The default | | | | is ``false``. | +----------------------+-------------------------------+-------------------------+ -| _io_service | ``boost::asio::io_service &`` | Reference to an | -| | | instance of a | +| io_service | ``shared_ptr`` | Shared pointer to a | | | | Boost.Asio | | | | ``io_service``. | +----------------------+-------------------------------+-------------------------+ -| _openssl_certificate | string | The filename of the | +| openssl_certificate | string | The filename of the | | | | certificate to load for | | | | the SSL connection for | | | | verification. | +----------------------+-------------------------------+-------------------------+ -| _openssl_verify_path | string | The directory from | +| openssl_verify_path | string | The directory from | | | | which the certificate | | | | authority files are | | | | located. | @@ -182,11 +180,13 @@ the following: .. code-block:: c++ using namespace boost::network::http; // parameters are in this namespace - boost::asio::io_service my_io_service; - client client_(_follow_redirects=true, _cache_resolved=true, - _io_service=my_io_service - , _openssl_certificate="/tmp/my-cert" - , _openssl_verify_path="/tmp/ca-certs/"); + client::options options; + options.follow_redirects(true) + .cache_resolved(true) + .io_service(boost::make_shared()) + .openssl_certificate("/tmp/my-cert") + .openssl_verify_path("/tmp/ca-certs"); + client client_(options); // use client_ as normal from here on out. HTTP Methods @@ -207,7 +207,7 @@ and that there is an appropriately constructed response object named ``response_ = client_.get(request_)`` Perform an HTTP GET request. -``response_ = client_.get(request_, _body_handler=callback)`` +``response_ = client_.get(request_, callback)`` Perform an HTTP GET request, and have the body chunks be handled by the ``callback`` parameter. The signature of ``callback`` should be the following: ``void(iterator_range const &, boost::system::error_code const @@ -217,7 +217,7 @@ and that there is an appropriately constructed response object named ``response_ = client_.post(request_)`` Perform an HTTP POST, use the data already set in the request object which includes the headers, and the body. -``response_ = client_.post(request_, _body_handler=callback)`` +``response_ = client_.post(request_, callback)`` Perform an HTTP POST request, and have the body chunks be handled by the ``callback`` parameter. The signature of ``callback`` should be the following: ``void(iterator_range const &, boost::system::error_code const @@ -226,18 +226,18 @@ and that there is an appropriately constructed response object named Body is a string of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. The default content-type used is ``x-application/octet-stream``. -``response_ = client_.post(request_, body, _body_handler=callback)`` +``response_ = client_.post(request_, body, callback)`` Body is a string of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. The default content-type used is ``x-application/octet-stream``. Have the response body chunks be handled by the ``callback`` parameter. The signature of ``callback`` should be the following: ``void(iterator_range const &, boost::system::error_code const &)``. -``response_ = client_.post(request_, content_type, body)`` +``response_ = client_.post(request_, body, content_type)`` The body and content_type parameters are of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. This uses the request object's other headers. -``response_ = client_.post(request_, content_type, body, _body_handler=callback)`` +``response_ = client_.post(request_, body, content_type, callback)`` The body and content_type parameters are of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. This uses the request object's other headers. Have the response @@ -247,7 +247,7 @@ and that there is an appropriately constructed response object named ``response_ = client_.put(request_)`` Perform an HTTP PUT, use the data already set in the request object which includes the headers, and the body. -``response_ = client_.put(request_, _body_handler=callback)`` +``response_ = client_.put(request_, callback)`` Perform an HTTP PUT request, and have the body chunks be handled by the ``callback`` parameter. The signature of ``callback`` should be the following: ``void(iterator_range const &, boost::system::error_code const @@ -256,18 +256,18 @@ and that there is an appropriately constructed response object named Body is a string of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. The default content-type used is ``x-application/octet-stream``. -``response_ = client_.put(request_, body, _body_handler=callback)`` +``response_ = client_.put(request_, body, callback)`` Body is a string of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. The default content-type used is ``x-application/octet-stream``. Have the response body chunks be handled by the ``callback`` parameter. The signature of ``callback`` should be the following: ``void(iterator_range const &, boost::system::error_code const &)``. -``response_ = client_.put(request_, content_type, body)`` +``response_ = client_.put(request_, body, content_type)`` The body and content_type parameters are of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. This uses the request object's other headers. -``response_ = client_.put(request_, content_type, body, _body_handler=callback)`` +``response_ = client_.put(request_, body, content_type, body_handler=callback)`` The body and content_type parameters are of type ``boost::network::string::type`` where ``Tag`` is the HTTP Client's ``Tag``. This uses the request object's other headers. Have the response @@ -276,7 +276,7 @@ and that there is an appropriately constructed response object named &, boost::system::error_code const &)``. ``response_ = client_.delete_(request_)`` Perform an HTTP DELETE request. -``response_ = client_.delete_(request_, _body_handler=callback)`` +``response_ = client_.delete_(request_, body_handler=callback)`` Perform an HTTP DELETE request, and have the response body chunks be handled by the ``callback`` parameter. The signature of ``callback`` should be the following: ``void(iterator_range const &, @@ -320,7 +320,7 @@ An example of how to use the macro is shown below: // somewhere else std::string some_string; response_ = client_.get(request("http://cpp-netlib.github.com/"), - _body_handler=body_handler(some_string)); + body_handler(some_string)); You can also use if for standalone functions instead if you don't want or need to create a function object. @@ -337,7 +337,7 @@ to create a function object. // somewhere else response_ = client_.get(request("http://cpp-netlib.github.com/"), - _body_handler=print_body); + print_body); The ``BOOST_NETWORK_HTTP_BODY_CALLBACK`` macro is defined in ``boost/network/protocol/http/client/macros.hpp``. diff --git a/libs/network/doc/html/_sources/reference/http_server.txt b/libs/network/doc/html/_sources/reference/http_server.txt index 296b4b801..90a472382 100644 --- a/libs/network/doc/html/_sources/reference/http_server.txt +++ b/libs/network/doc/html/_sources/reference/http_server.txt @@ -167,73 +167,70 @@ And that the following typedef's have been put in place: Constructor ``````````` -``http_server(address, port, handler)`` - Construct an HTTP Server instance, passing in the address and port as - ``std::string const &`` and handler being of type ``handler_type`` but - passed in as an lvalue reference. - -``template client(ArgPack const & args)`` - Pass in an argument pack. See supported parameters in the table below. - -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| Parameter Name | Type | Description | -+========================+==========================================+==================================================================================================+ -| _address | string_type | The hostname or IP address from which the server should be bound to. This parameter is required. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _port | string_type | The port to which the server should bind and listen to. This parameter is required. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _handler | ``Handler &`` | An lvalue reference to an instance of ``Handler``. This parameter is required. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _thread_pool | ``boost::network::utils::thread_pool &`` | An lvalue reference to an instance of ``boost::network::utils::thread_pool`` -- this is the | -| | | thread pool from where the handler is invoked. This parameter is only applicable and required | -| | | for ``async_server`` instances. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _io_service | ``boost::asio::io_service &`` | An optional lvalue to an instance of ``boost::asio::io_service`` which allows the server to use | -| | | an already-constructed ``boost::asio::io_service`` instance instead of instantiating one that it | -| | | manages. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _reuse_address | ``bool`` | A boolean that specifies whether to re-use the address and port on which the server will be | -| | | bound to. This enables or disables the socket option for listener sockets. The default is | -| | | ``false``. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _report_aborted | ``bool`` | A boolean that specifies whether the listening socket should report aborted connection attempts | -| | | to the accept handler (an internal detail of cpp-netlib). This is put in place to allow for | -| | | future-proofing the code in case an optional error handler function is supported in later | -| | | releases of cpp-netlib. The default is ``false``. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _receive_buffer_size | ``int`` | The size of the socket's receive buffer. The default is defined by Boost.Asio and is | -| | | platform-dependent. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _send_buffer_size | ``int`` | The size of the socket's send buffer. The default is defined by Boost.Asio and is | -| | | platform-dependent. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _receive_low_watermark | ``int`` | The size of the socket's low watermark for its receive buffer. The default is defined by | -| | | Boost.Asio and is platform-dependent. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _send_buffer_size | ``int`` | The size of the socket's send low watermark for its send buffer. The default is defined by | -| | | Boost.Asio and is platform-dependent. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _non_blocking_io | ``bool`` | An optional bool to define whether the socket should use non-blocking I/O in case the platform | -| | | supports it. The default is ``true``. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _linger | ``bool`` | An optional bool to determine whether the socket should linger in case there's still data to be | -| | | sent out at the time of its closing. The default is ``true``. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ -| _linger_timeout | ``int`` | An optional int to define the timeout to wait for socket closes before it is set to linger. | -| | | The default is ``0``. | -+------------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +``explicit http_server(options)`` + Construct an HTTP Server instance, passing in a ``server_options`` object. The following table shows the supported options in + ``server_options``. + ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| Parameter Name | Type | Description | ++=======================+==========================================+==================================================================================================+ +| address | string_type | The hostname or IP address from which the server should be bound to. This parameter is required. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| port | string_type | The port to which the server should bind and listen to. This parameter is required. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| thread_pool | ``shared_ptr`` | A shared pointer to an instance of ``boost::network::utils::thread_pool`` -- this is the | +| | | thread pool from where the handler is invoked. This parameter is only applicable and required | +| | | for ``async_server`` instances. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| io_service | ``shared_ptr`` | An optional lvalue to an instance of ``boost::asio::io_service`` which allows the server to use | +| | | an already-constructed ``boost::asio::io_service`` instance instead of instantiating one that it | +| | | manages. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| reuse_address | ``bool`` | A boolean that specifies whether to re-use the address and port on which the server will be | +| | | bound to. This enables or disables the socket option for listener sockets. The default is | +| | | ``false``. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| report_aborted | ``bool`` | A boolean that specifies whether the listening socket should report aborted connection attempts | +| | | to the accept handler (an internal detail of cpp-netlib). This is put in place to allow for | +| | | future-proofing the code in case an optional error handler function is supported in later | +| | | releases of cpp-netlib. The default is ``false``. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| receive_buffer_size | ``int`` | The size of the socket's receive buffer. The default is defined by Boost.Asio and is | +| | | platform-dependent. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| send_buffer_size | ``int`` | The size of the socket's send buffer. The default is defined by Boost.Asio and is | +| | | platform-dependent. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| receive_low_watermark | ``int`` | The size of the socket's low watermark for its receive buffer. The default is defined by | +| | | Boost.Asio and is platform-dependent. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| send_buffer_size | ``int`` | The size of the socket's send low watermark for its send buffer. The default is defined by | +| | | Boost.Asio and is platform-dependent. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| non_blocking_io | ``bool`` | An optional bool to define whether the socket should use non-blocking I/O in case the platform | +| | | supports it. The default is ``true``. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| linger | ``bool`` | An optional bool to determine whether the socket should linger in case there's still data to be | +| | | sent out at the time of its closing. The default is ``true``. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ +| linger_timeout | ``int`` | An optional int to define the timeout to wait for socket closes before it is set to linger. | +| | | The default is ``0``. | ++-----------------------+------------------------------------------+--------------------------------------------------------------------------------------------------+ To use the above supported named parameters, you'll have code that looks like the following: .. code-block:: c++ using namespace boost::network::http; // parameters are in this namespace - boost::asio::io_service my_io_service; - boost::network::utils::thread_pool pool(2); handler handler_instance; - async_server instance(_address="0.0.0.0", _port="80", _handler=handler_instance, - _io_service=my_io_service, _thread_pool=pool, - _reuse_address=true); + async_server::options options(handler_instance); + options.address("0.0.0.0") + .port("80") + .io_service(boost::make_shared()) + .thread_pool(boost::make_shared(2)) + .reuse_address(true); + async_server instance(options); instance.run(); Public Members @@ -245,7 +242,8 @@ instance has been constructed in the following manner: .. code-block:: c++ handler_type handler; - http_server server("127.0.0.1", "8000", handler); + http_server::options options(handler); + http_server server(options.address("127.0.0.1").port("8000")); ``server.run()`` Run the HTTP Server event loop. This function can be run on multiple threads @@ -401,15 +399,9 @@ And that the following typedef's have been put in place: Constructor ``````````` -``http_server(address, port, handler, thread_pool)`` - Construct an HTTP Server instance, passing in the address and port as - ``std::string const &`` and handler being of type ``handler_type`` but - passed in as an lvalue reference. The ``thread_pool`` parameter is an - instance of ``boost::network::utils::thread_pool`` that has been previously - instantiated. - -.. note:: The ``boost::network::utils::thread_pool`` has a single constructor - parameter which is the number of threads to run the thread pool. +``explicit http_server(options)`` + Construct an HTTP server instance passing in a ``server_options`` instance. Public Members `````````````` @@ -420,8 +412,9 @@ instance has been constructed in the following manner: .. code-block:: c++ handler_type handler; - boost::network::utils::thread_pool thread_pool(2); - http_server server("127.0.0.1", "8000", handler, thread_pool); + http_server::options options(handler); + options.thread_pool(boost::make_shared(2)); + http_server server(options.address("127.0.0.1").port("8000")); ``server.run()`` Run the HTTP Server event loop. This function can be run on multiple threads diff --git a/libs/network/doc/html/_sources/whats_new.txt b/libs/network/doc/html/_sources/whats_new.txt index 72afdf641..25880faf3 100644 --- a/libs/network/doc/html/_sources/whats_new.txt +++ b/libs/network/doc/html/_sources/whats_new.txt @@ -7,6 +7,15 @@ :mod:`cpp-netlib` 0.9 --------------------- +v0.9.5 +~~~~~~ +* Removing dependency on Boost.Parameter from HTTP client and server. +* Fix for Clang error on Twitter example. +* Adding source port to the request (HTTP server). +* Updates to CMake config for MSVC 2010/2012. +* Support chunked content encoding in client response parsing. +* Fix bug with client not invoking callback when a request fails. + v0.9.4 ~~~~~~ * Lots of URI fixes. diff --git a/libs/network/doc/html/_static/ajax-loader.gif b/libs/network/doc/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/basic.css b/libs/network/doc/html/_static/basic.css index 32630d54c..43e8bafaf 100644 --- a/libs/network/doc/html/_static/basic.css +++ b/libs/network/doc/html/_static/basic.css @@ -79,6 +79,14 @@ div.sphinxsidebar input { font-size: 1em; } +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + img { border: 0; } @@ -236,7 +244,6 @@ img.align-center, .figure.align-center, object.align-center { } .align-center { - clear: both; text-align: center; } @@ -440,6 +447,11 @@ dl.glossary dt { font-style: oblique; } +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + /* -- code displays --------------------------------------------------------- */ pre { @@ -525,4 +537,4 @@ span.eqno { #top-link { display: none; } -} +} \ No newline at end of file diff --git a/libs/network/doc/html/_static/comment-bright.png b/libs/network/doc/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/comment.png b/libs/network/doc/html/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 zcmV-*4T|!KP)Oz@Z0f2-7z;ux~O9+4z06=<WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bXU&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWwr)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>={htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~mM9!g3B(KJ}#RZ#@)!hR|78Dq|Iq-afF%KE1Brn_fm;Im z_u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!LkCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RV2nzr)JMUJvzW@LNr%6OX zR5;6Zk;`k`RTRfR-*ac2G}PGmXsUu>6ce?Lsn$m^3Q`48f|TwQ+_-Qh=t8Ra7nE)y zf@08(pjZ@22^EVjG*%30TJRMkBUC$WqZ73uoiv&J=APqX;!v%AH}`Vx`999MVjXwy z{f1-vh8P<=plv&cZ>p5jjX~Vt&W0e)wpw1RFRuRdDkwlKb01tp5 zP=trFN0gH^|L4jJkB{6sCV;Q!ewpg-D&4cza%GQ*b>R*=34#dW;ek`FEiB(vnw+U# zpOX5UMJBhIN&;D1!yQoIAySC!9zqJmmfoJqmQp}p&h*HTfMh~u9rKic2oz3sNM^#F zBIq*MRLbsMt%y{EHj8}LeqUUvoxf0=kqji62>ne+U`d#%J)abyK&Y`=eD%oA!36<)baZyK zXJh5im6umkS|_CSGXips$nI)oBHXojzBzyY_M5K*uvb0_9viuBVyV%5VtJ*Am1ag# zczbv4B?u8j68iOz<+)nDu^oWnL+$_G{PZOCcOGQ?!1VCefves~rfpaEZs-PdVYMiV z98ElaJ2}7f;htSXFY#Zv?__sQeckE^HV{ItO=)2hMQs=(_ Xn!ZpXD%P(H00000NkvXXu0mjfk@WH7pQF=3=faW zkFSqR=8AIgXBSA;Hc`EO&K^N)42Y`_9UkcY+JOPZzW)_SXY=A^lj%j;c6NwBgJ_tV zm_2r=oma1nQ4OegJG6y4*V7pt+<)-viajx2cgoi@dv1pQz5%6oPs>nSm~*w?TqQVv zob8dII{c&Oe%S1c$Jb4}_O0hohn`**8Ge(}Coiu}Aq2|y9sKoAe_L3{Is>OKFbSRv z1pSn5A0ELYKmLQ6BwuOzH&f_kC zpw7uXeVu-psxJ`U5$EUY>gJ?Py7zS&L7kH>03>~lEiK4GzOF#Bu=x@I$Wn<&a}!AV z0JO@7l0!?lsTn6_uHD-u=x*nv?jh4tOM8aU5Jm$S4XgGI1^n1jw1Qj)a0G^`sW^46 z`zk{v@<5WOf#ro&h@# znjak7C0?~s9=SM_n9NYjv(wK7=2M5YtS{PKY$ zvq{93_SMB}%_$-0$B^l1M4*|BZ#$YIXIuaXZY|uu(-Vrempj=|${=$lGCK?Q%G0#? z`m+#hhFpCs04oQ|EN0RVf?FVz z;UBke#-&y%!v?064Rok zOzr0t(XWi*Ji3QBXXf%JRoe>fIM6Q~a~|x{=CxG~y=Q>o+w;yR!_$*li|?MfjH_0w z4(~z?Yj=n@ipBh~`I%&-^WdPS`V7dV>N~21K#jH|clB`PgWJ~4*uv-kzRU4neaIZ( zs_AL~J|J*?3i;mzZ}f)kj*(jv-9BB_qC@+I5-iVl$9ByRp&N*X5L#OY%C2rk literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/dialog-seealso.png b/libs/network/doc/html/_static/dialog-seealso.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb7b05c84809454c095bcb61b27d83585540bb2 GIT binary patch literal 1502 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 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/dialog-warning.png b/libs/network/doc/html/_static/dialog-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..7233d45d8e6e41ef8fcb318c76303a9b6f23997e GIT binary patch literal 1391 zcmV-#1(5oQP)}piCG~<@Tj_&{ee%V|SZW{gB8?y>5~HGEkRU`Q5xgR16NK8$#%7av&gnyv zB_>9ji%*39&LbK3qFu zI7(%ZZ%;}2Gqh=wf?-g1;X+qD8r}8{{PEcV%0X!tqH%6yq(DC>&`hf#DjvXW3(1702fiEY= zF5vsm0&oGwD!P6+uzb1JdigTStXXLJ`Pjl?)VXtsUA;>7;>9+ps^67D`lthR!lCrM zJiGbuAzhIO`u_b0*{$vea+<+#n+u)TG0)=^W&Y8i0fonJZU{&O3K7Vlni6`w*i02KV;P{rfRu zG0etBGUm-QC7c=+fU_{mF@F3e|CA|e+x6?%3JOrCPscC}T3cI*Mx&UfiIS0lW6Kua z*4E+=1XR`QT~P`vMhu|BsqFlGD_&EBWm!0O?*~ty__PKSBsxE>~io%jH4{flNukRa8X# z{rjXQCrg{pH?0i59u|NFLJ0B8)HQ2(TUCW{yU};B)sYgKfwF=i#fQ*|T%prYYO&>#^_Jg-l9HIC3}~D2jrjDCoMLxDnFn#I<)X9Z#O% zl~TASP4c~kT|)vm3aV6;lT*TB*>>d$((gwvEKE2_WWLjh)9HL~UI>A6!v?geQ)#cO zBP%CIQ>6UickujYfDG8-Td-iF{q<|n@$@N&XN+4a)1MXii!#xt%)zy89UYGz zG12e0NnI~2gPDT@C~$aEUY=^+y^GP-hO?w((CCB^XqtxXDMlUN#ETcC z1p+4hp6CQXDP-AvzM{13Y_09qE$nO8qUGca8odyL^73*nUc5M{b0Gw_%uGDnx6}FT z856u-Rdc(;WsuwJSM3x1@yun*tghR)G2?Oc_3NRv6|2V>LcBLlv~F)$efs`;+#5F% zJ#z;0`E&f~>DJ4JhLgbjz5vpKd|!698oPE4fasPj{qtqSV!U}nQhK`b970DyKML_) z0Ovbsj@-OC=8MgnrPMUAEG)wS)5J22?y+HDnPzw2Z#-bF|D0)J#^W@' + _('Hide Search Matches') + '') - .appendTo($('.sidebar .this-page-menu')); + $('

') + .appendTo($('#searchbox')); } }, @@ -213,7 +213,7 @@ var Documentation = { * helper function to hide the search marks again */ hideSearchWords : function() { - $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('#searchbox .highlight-link').fadeOut(300); $('span.highlighted').removeClass('highlighted'); }, diff --git a/libs/network/doc/html/_static/down-pressed.png b/libs/network/doc/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsbES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-`{mj$Z%( literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/down.png b/libs/network/doc/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ieNbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/epub.css b/libs/network/doc/html/_static/epub.css new file mode 100644 index 000000000..28dff738b --- /dev/null +++ b/libs/network/doc/html/_static/epub.css @@ -0,0 +1,310 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: {{ theme_bodyfont }}; + font-size: 100%; + background-color: {{ theme_footerbgcolor }}; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: {{ theme_sidebarbgcolor }}; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: {{ theme_bgcolor }}; + color: {{ theme_textcolor }}; + padding: 0 20px 30px 20px; +} + +{%- if theme_rightsidebar|tobool %} +div.bodywrapper { + margin: 0 230px 0 0; +} +{%- endif %} + +div.footer { + color: {{ theme_footertextcolor }}; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: {{ theme_footertextcolor }}; + text-decoration: underline; +} + +div.related { + background-color: {{ theme_relbarbgcolor }}; + line-height: 30px; + color: {{ theme_relbartextcolor }}; +} + +div.related a { + color: {{ theme_relbarlinkcolor }}; +} + +div.sphinxsidebar { + {%- if theme_stickysidebar|tobool %} + top: 30px; + bottom: 0; + margin: 0; + position: fixed; + overflow: auto; + height: auto; + {%- endif %} + {%- if theme_rightsidebar|tobool %} + float: right; + {%- if theme_stickysidebar|tobool %} + right: 0; + {%- endif %} + {%- endif %} +} + +{%- if theme_stickysidebar|tobool %} +/* this is nice, but it it leads to hidden headings when jumping + to an anchor */ +/* +div.related { + position: fixed; +} + +div.documentwrapper { + margin-top: 30px; +} +*/ +{%- endif %} + +div.sphinxsidebar h3 { + font-family: {{ theme_headfont }}; + color: {{ theme_sidebartextcolor }}; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: {{ theme_sidebartextcolor }}; +} + +div.sphinxsidebar h4 { + font-family: {{ theme_headfont }}; + color: {{ theme_sidebartextcolor }}; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: {{ theme_sidebartextcolor }}; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: {{ theme_sidebartextcolor }}; +} + +div.sphinxsidebar a { + color: {{ theme_sidebarlinkcolor }}; +} + +div.sphinxsidebar input { + border: 1px solid {{ theme_sidebarlinkcolor }}; + font-family: sans-serif; + font-size: 1em; +} + +{% if theme_collapsiblesidebar|tobool %} +/* for collapsible sidebar */ +div#sidebarbutton { + background-color: {{ theme_sidebarbtncolor }}; +} +{% endif %} + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: {{ theme_linkcolor }}; + text-decoration: none; +} + +a:visited { + color: {{ theme_visitedlinkcolor }}; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +{% if theme_externalrefs|tobool %} +a.external { + text-decoration: none; + border-bottom: 1px dashed {{ theme_linkcolor }}; +} + +a.external:hover { + text-decoration: none; + border-bottom: none; +} + +a.external:visited { + text-decoration: none; + border-bottom: 1px dashed {{ theme_visitedlinkcolor }}; +} +{% endif %} + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: {{ theme_headfont }}; + background-color: {{ theme_headbgcolor }}; + font-weight: normal; + color: {{ theme_headtextcolor }}; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: {{ theme_headlinkcolor }}; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: {{ theme_headlinkcolor }}; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: {{ theme_codebgcolor }}; + color: {{ theme_codetextcolor }}; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: {{ theme_bodyfont }}; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} diff --git a/libs/network/doc/html/_static/file.png b/libs/network/doc/html/_static/file.png index 4d6c7e7768fedd6d181e4eab4f3c32233834d64e..d18082e397e7e54f20721af768c4c2983258f1b4 100644 GIT binary patch delta 376 zcmV-;0f+v$0*C{U8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-Uj4h;tZDYjG`0003MNkl`)4f+1;qh67(fvDEhv1eJ8B5z|D(=6?jwT?@G*xx{!8|7v!a z`RAJ*84Ly&S(Y8pPKRL_o&yj?k!hWIP^Jc2 zYmy`>H54Tx^m@I@E>7_g1VJM~ot$D}kziJH5%|7eGw~f`7O*UGAGHtxw@&0P_ z3IJPcpX_XQxp8@XAxYJ=@cw!9I|0D(cF5_SAR>(4t^u$Ymtmj^o`nO-iXV{!3p~ Wt8{-jMt;Wt0000X>^8d zd5>*+l5TsFZhMn*pU;7TfrgBfiIk#=n5~JKu8Nwknz-1g!py+b#KgqJ#l^+O#>U6T z$Li|p>+9?6?CkCBW}0US|u z008`nFaa53ttH}+!91tw6?<><1lVO|pK|8hc61^ZT|eiCGF9(x;P*EWNYZUli+~q;(eTbfe*U$baTG!fAgG=`DK4DzIF9EWa~YA`tJ9_ z8KSNH@Hyb?@aX8R^MT1t_v-D!{?^ltv3)o9> f@a++B;w^4}o%yp?Jw|+(00000NkvXXu0mjfL|da= literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/headerbg.png b/libs/network/doc/html/_static/headerbg.png new file mode 100644 index 0000000000000000000000000000000000000000..0596f2020327efd97a4467c3025691844bb703d5 GIT binary patch literal 203 zcmV;+05t!JP)t-jh%+|_^FEwkAv~hm;c(PdXHHPSc-$gT+Ec53X`vdosFfm>3bJhR=002ovPDHLk FV1j%>T7Uom literal 0 HcmV?d00001 diff --git a/libs/network/doc/html/_static/ie6.css b/libs/network/doc/html/_static/ie6.css new file mode 100644 index 000000000..74baa5d5a --- /dev/null +++ b/libs/network/doc/html/_static/ie6.css @@ -0,0 +1,7 @@ +* html img, +* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", +this.src = "_static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", +this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) +);} diff --git a/libs/network/doc/html/_static/jquery.js b/libs/network/doc/html/_static/jquery.js index f3201aacb..7c2430802 100644 --- a/libs/network/doc/html/_static/jquery.js +++ b/libs/network/doc/html/_static/jquery.js @@ -1,8981 +1,154 @@ /*! - * jQuery JavaScript Library v1.6.2 + * jQuery JavaScript Library v1.4.2 * http://jquery.com/ * - * Copyright 2011, John Resig + * Copyright 2010, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation + * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Thu Jun 30 14:16:56 2011 -0400 + * Date: Sat Feb 13 22:33:48 2010 -0500 */ -(function( window, undefined ) { - -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { - -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // A central reference to the root jQuery(document) - rootjQuery, - - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, - - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, - - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, - - // Check for digits - rdigit = /\d/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, - - // Matches dashed string for camelizing - rdashAlpha = /-([a-z])/ig, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // The deferred used on DOM ready - readyList, - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, - - // [[Class]] -> type pairs - class2type = {}; - -jQuery.fn = jQuery.prototype = { - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem, ret, doc; - - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } - - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = quickExpr.exec( selector ); - } - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - doc = (context ? context.ownerDocument || context : document); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return (context || rootjQuery).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if (selector.selector !== undefined) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.6.2", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return slice.call( this, 0 ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) { - ret.selector = this.selector + (this.selector ? " " : "") + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // Add the callback - readyList.done( fn ); - - return this; - }, - - eq: function( i ) { - return i === -1 ? - this.slice( i ) : - this.slice( i, +i + 1 ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).unbind( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyList ) { - return; - } - - readyList = jQuery._Deferred(); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - return setTimeout( jQuery.ready, 1 ); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - // A crude way of determining if an object is a window - isWindow: function( obj ) { - return obj && typeof obj === "object" && "setInterval" in obj; - }, - - isNaN: function( obj ) { - return obj == null || !rdigit.test( obj ) || isNaN( obj ); - }, - - type: function( obj ) { - return obj == null ? - String( obj ) : - class2type[ toString.call(obj) ] || "object"; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw msg; - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return (new Function( "return " + data ))(); - - } - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - // (xml & tmp used internally) - parseXML: function( data , xml , tmp ) { - - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - - tmp = xml.documentElement; - - if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { - jQuery.error( "Invalid XML: " + data ); - } - - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Converts a dashed string to camelCased string; - // Used by both the css and data modules - camelCase: function( string ) { - return string.replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); - - if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { - break; - } - } - } - } - - return object; - }, - - // Use native String.trim function wherever possible - trim: trim ? - function( text ) { - return text == null ? - "" : - trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); - }, - - // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; - - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // The extra typeof function check is to prevent crashes - // in Safari 2 (See: #3039) - // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); - - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); - } else { - jQuery.merge( ret, array ); - } - } - - return ret; - }, - - inArray: function( elem, array ) { - - if ( indexOf ) { - return indexOf.call( array, elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; - }, - - merge: function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var ret = [], retVal; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, key, ret = [], - i = 0, - length = elems.length, - // jquery objects are treated as arrays - isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( key in elems ) { - value = callback( elems[ key ], key, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return ret.concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - if ( typeof context === "string" ) { - var tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - - return proxy; - }, - - // Mutifunctional method to get and set values to a collection - // The value/s can optionally be executed if it's a function - access: function( elems, key, value, exec, fn, pass ) { - var length = elems.length; - - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - jQuery.access( elems, k, key[k], exec, fn, value ); - } - return elems; - } - - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); - - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - - return elems; - } - - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; - }, - - now: function() { - return (new Date()).getTime(); - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); - - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; - - return { browser: match[1] || "", version: match[2] || "0" }; - }, - - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } - - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; - }, - - browser: {} -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} - -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} - -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); - -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; - -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); - } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); -} - -return jQuery; - -})(); - - -var // Promise methods - promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), - // Static reference to slice - sliceDeferred = [].slice; - -jQuery.extend({ - // Create a simple deferred (one callbacks list) - _Deferred: function() { - var // callbacks list - callbacks = [], - // stored [ context , args ] - fired, - // to avoid firing when already doing so - firing, - // flag to know if the deferred has been cancelled - cancelled, - // the deferred itself - deferred = { - - // done( f1, f2, ...) - done: function() { - if ( !cancelled ) { - var args = arguments, - i, - length, - elem, - type, - _fired; - if ( fired ) { - _fired = fired; - fired = 0; - } - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - deferred.done.apply( deferred, elem ); - } else if ( type === "function" ) { - callbacks.push( elem ); - } - } - if ( _fired ) { - deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); - } - } - return this; - }, - - // resolve with given context and args - resolveWith: function( context, args ) { - if ( !cancelled && !fired && !firing ) { - // make sure args are available (#8421) - args = args || []; - firing = 1; - try { - while( callbacks[ 0 ] ) { - callbacks.shift().apply( context, args ); - } - } - finally { - fired = [ context, args ]; - firing = 0; - } - } - return this; - }, - - // resolve with this as context and given arguments - resolve: function() { - deferred.resolveWith( this, arguments ); - return this; - }, - - // Has this deferred been resolved? - isResolved: function() { - return !!( firing || fired ); - }, - - // Cancel - cancel: function() { - cancelled = 1; - callbacks = []; - return this; - } - }; - - return deferred; - }, - - // Full fledged deferred (two callbacks list) - Deferred: function( func ) { - var deferred = jQuery._Deferred(), - failDeferred = jQuery._Deferred(), - promise; - // Add errorDeferred methods, then and promise - jQuery.extend( deferred, { - then: function( doneCallbacks, failCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ); - return this; - }, - always: function() { - return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); - }, - fail: failDeferred.done, - rejectWith: failDeferred.resolveWith, - reject: failDeferred.resolve, - isRejected: failDeferred.isResolved, - pipe: function( fnDone, fnFail ) { - return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject ); - } else { - newDefer[ action ]( returned ); - } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } - }); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - if ( obj == null ) { - if ( promise ) { - return promise; - } - promise = obj = {}; - } - var i = promiseMethods.length; - while( i-- ) { - obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; - } - return obj; - } - }); - // Make sure only one callback list will be used - deferred.done( failDeferred.cancel ).fail( deferred.cancel ); - // Unexpose cancel - delete deferred.cancel; - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - return deferred; - }, - - // Deferred helper - when: function( firstParam ) { - var args = arguments, - i = 0, - length = args.length, - count = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - // Strange bug in FF4: - // Values changed onto the arguments object sometimes end up as undefined values - // outside the $.when method. Cloning the object into a fresh array solves the issue - deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); - } - }; - } - if ( length > 1 ) { - for( ; i < length; i++ ) { - if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject ); - } else { - --count; - } - } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); - } - return deferred.promise(); - } -}); - - - -jQuery.support = (function() { - - var div = document.createElement( "div" ), - documentElement = document.documentElement, - all, - a, - select, - opt, - input, - marginDiv, - support, - fragment, - body, - testElementParent, - testElement, - testElementStyle, - tds, - events, - eventName, - i, - isSupported; - - // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = "
a"; - - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; - - // Can't get basic test support - if ( !all || !all.length || !a ) { - return {}; - } - - // First batch of supports tests - select = document.createElement( "select" ); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; - - support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: ( div.firstChild.nodeType === 3 ), - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName( "tbody" ).length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName( "link" ).length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55$/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: ( input.value === "on" ), - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // Will be defined later - submitBubbles: true, - changeBubbles: true, - focusinBubbles: false, - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - support.noCloneEvent = false; - }); - div.cloneNode( true ).fireEvent( "onclick" ); - } - - // Check if a radio maintains it's value - // after being appended to the DOM - input = document.createElement("input"); - input.value = "t"; - input.setAttribute("type", "radio"); - support.radioValue = input.value === "t"; - - input.setAttribute("checked", "checked"); - div.appendChild( input ); - fragment = document.createDocumentFragment(); - fragment.appendChild( div.firstChild ); - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - div.innerHTML = ""; - - // Figure out if the W3C box model works as expected - div.style.width = div.style.paddingLeft = "1px"; - - body = document.getElementsByTagName( "body" )[ 0 ]; - // We use our own, invisible, body unless the body is already present - // in which case we use a div (#9239) - testElement = document.createElement( body ? "div" : "body" ); - testElementStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0 - }; - if ( body ) { - jQuery.extend( testElementStyle, { - position: "absolute", - left: -1000, - top: -1000 - }); - } - for ( i in testElementStyle ) { - testElement.style[ i ] = testElementStyle[ i ]; - } - testElement.appendChild( div ); - testElementParent = body || documentElement; - testElementParent.insertBefore( testElement, testElementParent.firstChild ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - support.boxModel = div.offsetWidth === 2; - - if ( "zoom" in div.style ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.style.display = "inline"; - div.style.zoom = 1; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); - - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = ""; - div.innerHTML = "
"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); - } - - div.innerHTML = "
t
"; - tds = div.getElementsByTagName( "td" ); - - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Check if empty table cells still have offsetWidth/Height - // (IE < 8 fail this test) - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - div.innerHTML = ""; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( document.defaultView && document.defaultView.getComputedStyle ) { - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.appendChild( marginDiv ); - support.reliableMarginRight = - ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; - } - - // Remove the body element we added - testElement.innerHTML = ""; - testElementParent.removeChild( testElement ); - - // Technique from Juriy Zaytsev - // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( div.attachEvent ) { - for( i in { - submit: 1, - change: 1, - focusin: 1 - } ) { - eventName = "on" + i; - isSupported = ( eventName in div ); - if ( !isSupported ) { - div.setAttribute( eventName, "return;" ); - isSupported = ( typeof div[ eventName ] === "function" ); - } - support[ i + "Bubbles" ] = isSupported; - } - } - - // Null connected elements to avoid leaks in IE - testElement = fragment = select = opt = body = marginDiv = div = input = null; - - return support; -})(); - -// Keep track of boxModel -jQuery.boxModel = jQuery.support.boxModel; - - - - -var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([a-z])([A-Z])/g; - -jQuery.extend({ - cache: {}, - - // Please use with caution - uuid: 0, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ jQuery.expando ] = id = ++jQuery.uuid; - } else { - id = jQuery.expando; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); - } else { - cache[ id ] = jQuery.extend(cache[ id ], name); - } - } - - thisCache = cache[ id ]; - - // Internal jQuery data is stored in a separate object inside the object's data - // cache in order to avoid key collisions between internal data and user-defined - // data - if ( pvt ) { - if ( !thisCache[ internalKey ] ) { - thisCache[ internalKey ] = {}; - } - - thisCache = thisCache[ internalKey ]; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should - // not attempt to inspect the internal events object using jQuery.data, as this - // internal data object is undocumented and subject to change. - if ( name === "events" && !thisCache[name] ) { - return thisCache[ internalKey ] && thisCache[ internalKey ].events; - } - - return getByName ? - // Check for both converted-to-camel and non-converted data property names - thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] : - thisCache; - }, - - removeData: function( elem, name, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var internalKey = jQuery.expando, isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - - // See jQuery.data for more information - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; - - if ( thisCache ) { - delete thisCache[ name ]; - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !isEmptyDataObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( pvt ) { - delete cache[ id ][ internalKey ]; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { - return; - } - } - - var internalCache = cache[ id ][ internalKey ]; - - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - if ( jQuery.support.deleteExpando || cache != window ) { - delete cache[ id ]; - } else { - cache[ id ] = null; - } - - // We destroyed the entire user cache at once because it's faster than - // iterating through each key, but we need to continue to persist internal - // data if it existed - if ( internalCache ) { - cache[ id ] = {}; - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - - cache[ id ][ internalKey ] = internalCache; - - // Otherwise, we need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - } else if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ jQuery.expando ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } else { - elem[ jQuery.expando ] = null; - } - } - }, - - // For internal use only. - _data: function( elem, name, data ) { - return jQuery.data( elem, name, data, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; - - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); - } - } - - return true; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var data = null; - - if ( typeof key === "undefined" ) { - if ( this.length ) { - data = jQuery.data( this[0] ); - - if ( this[0].nodeType === 1 ) { - var attr = this[0].attributes, name; - for ( var i = 0, l = attr.length; i < l; i++ ) { - name = attr[i].name; - - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); - - dataAttr( this[0], name, data[ name ] ); - } - } - } - } - - return data; - - } else if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - var parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; - - if ( value === undefined ) { - data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - - // Try to fetch any internally stored data first - if ( data === undefined && this.length ) { - data = jQuery.data( this[0], key ); - data = dataAttr( this[0], key, data ); - } - - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - - } else { - return this.each(function() { - var $this = jQuery( this ), - args = [ parts[0], value ]; - - $this.triggerHandler( "setData" + parts[1] + "!", args ); - jQuery.data( this, key, value ); - $this.triggerHandler( "changeData" + parts[1] + "!", args ); - }); - } - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - !jQuery.isNaN( data ) ? parseFloat( data ) : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON -// property to be considered empty objects; this property always exists in -// order to make sure JSON.stringify does not expose internal metadata -function isEmptyDataObject( obj ) { - for ( var name in obj ) { - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - - - - -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery.data( elem, deferDataKey, undefined, true ); - if ( defer && - ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && - ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery.data( elem, queueDataKey, undefined, true ) && - !jQuery.data( elem, markDataKey, undefined, true ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.resolve(); - } - }, 0 ); - } -} - -jQuery.extend({ - - _mark: function( elem, type ) { - if ( elem ) { - type = (type || "fx") + "mark"; - jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); - } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); - if ( count ) { - jQuery.data( elem, key, count, true ); - } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); - } - } - }, - - queue: function( elem, type, data ) { - if ( elem ) { - type = (type || "fx") + "queue"; - var q = jQuery.data( elem, type, undefined, true ); - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery.data( elem, type, jQuery.makeArray(data), true ); - } else { - q.push( data ); - } - } - return q || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - fn = queue.shift(), - defer; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } - - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift("inprogress"); - } - - fn.call(elem, function() { - jQuery.dequeue(elem, type); - }); - } - - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue", true ); - handleQueueMarkDefer( elem, type, "queue" ); - } - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - } - - if ( data === undefined ) { - return jQuery.queue( this[0], type ); - } - return this.each(function() { - var queue = jQuery.queue( this, type, data ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; - type = type || "fx"; - - return this.queue( type, function() { - var elem = this; - setTimeout(function() { - jQuery.dequeue( elem, type ); - }, time ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, object ) { - if ( typeof type !== "string" ) { - object = type; - type = undefined; - } - type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } - while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { - count++; - tmp.done( resolve ); - } - } - resolve(); - return defer.promise(); - } -}); - - - - -var rclass = /[\n\t\r]/g, - rspace = /\s+/, - rreturn = /\r/g, - rtype = /^(?:button|input)$/i, - rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - rinvalidChar = /\:|^on/, - formHook, boolHook; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.attr ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.prop ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classNames, i, l, elem, - setClass, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call(this, j, this.className) ); - }); - } - - if ( value && typeof value === "string" ) { - classNames = value.split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 ) { - if ( !elem.className && classNames.length === 1 ) { - elem.className = value; - - } else { - setClass = " " + elem.className + " "; - - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) { - setClass += classNames[ c ] + " "; - } - } - elem.className = jQuery.trim( setClass ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classNames, i, l, elem, className, c, cl; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call(this, j, this.className) ); - }); - } - - if ( (value && typeof value === "string") || value === undefined ) { - classNames = (value || "").split( rspace ); - - for ( i = 0, l = this.length; i < l; i++ ) { - elem = this[ i ]; - - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - className = (" " + elem.className + " ").replace( rclass, " " ); - for ( c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[ c ] + " ", " "); - } - elem.className = jQuery.trim( className ); - - } else { - elem.className = ""; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.split( rspace ); - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " "; - for ( var i = 0, l = this.length; i < l; i++ ) { - if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var hooks, ret, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return undefined; - } - - var isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var self = jQuery(this), val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, - index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, - - attrFix: { - // Always normalize to ensure hook usage - tabindex: "tabIndex" - }, - - attr: function( elem, name, value, pass ) { - var nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } - - if ( pass && name in jQuery.attrFn ) { - return jQuery( elem )[ name ]( value ); - } - - // Fallback to prop when attributes are not supported - if ( !("getAttribute" in elem) ) { - return jQuery.prop( elem, name, value ); - } - - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // Normalize the name if needed - if ( notxml ) { - name = jQuery.attrFix[ name ] || name; - - hooks = jQuery.attrHooks[ name ]; - - if ( !hooks ) { - // Use boolHook for boolean attributes - if ( rboolean.test( name ) ) { - - hooks = boolHook; - - // Use formHook for forms and if the name contains certain characters - } else if ( formHook && name !== "className" && - (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { - - hooks = formHook; - } - } - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return undefined; - - } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, "" + value ); - return value; - } - - } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - ret = elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return ret === null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, name ) { - var propName; - if ( elem.nodeType === 1 ) { - name = jQuery.attrFix[ name ] || name; - - if ( jQuery.support.getSetAttribute ) { - // Use removeAttribute in browsers that support it - elem.removeAttribute( name ); - } else { - jQuery.attr( elem, name, "" ); - elem.removeAttributeNode( elem.getAttributeNode( name ) ); - } - - // Set corresponding property to false for boolean attributes - if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { - elem[ propName ] = false; - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to it's default in case type is set after value - // This is for element creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - }, - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabIndex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - }, - // Use the value property for back compat - // Use the formHook for button elements in IE6/7 (#1954) - value: { - get: function( elem, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.get( elem, name ); - } - return name in elem ? - elem.value : - null; - }, - set: function( elem, value, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.set( elem, value, name ); - } - // Does not return so that setAttribute is also used - elem.value = value; - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } - - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return (elem[ name ] = value); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: {} -}); - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - // Align boolean attributes with corresponding properties - return jQuery.prop( elem, name ) ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - var propName; - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - // value is true since we know at this point it's type boolean and not false - // Set boolean attributes to the same name and set the DOM property - propName = jQuery.propFix[ name ] || name; - if ( propName in elem ) { - // Only set the IDL specifically if it already exists on the element - elem[ propName ] = true; - } - - elem.setAttribute( name, name.toLowerCase() ); - } - return name; - } -}; - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !jQuery.support.getSetAttribute ) { - - // propFix is more comprehensive and contains all fixes - jQuery.attrFix = jQuery.propFix; - - // Use this for any attribute on a form in IE6/7 - formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret; - ret = elem.getAttributeNode( name ); - // Return undefined if nodeValue is empty string - return ret && ret.nodeValue !== "" ? - ret.nodeValue : - undefined; - }, - set: function( elem, value, name ) { - // Check form objects in IE (multiple bugs related) - // Only use nodeValue if the attribute node exists on the form - var ret = elem.getAttributeNode( name ); - if ( ret ) { - ret.nodeValue = value; - return value; - } - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); -} - - -// Some attributes require a special call on IE -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret === null ? undefined : ret; - } - }); - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Normalize to lowercase since IE uppercases css property names - return elem.style.cssText.toLowerCase() || undefined; - }, - set: function( elem, value ) { - return (elem.style.cssText = "" + value); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }); -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); - } - } - }); -}); - - - - -var rnamespaces = /\.(.*)$/, - rformElems = /^(?:textarea|input|select)$/i, - rperiod = /\./g, - rspaces = / /g, - rescape = /[^\w\s.|`]/g, - fcleanup = function( nm ) { - return nm.replace(rescape, "\\$&"); - }; - -/* - * A number of helper functions used for managing events. - * Many of the ideas behind this code originated from - * Dean Edwards' addEvent library. - */ -jQuery.event = { - - // Bind an event to an element - // Original by Dean Edwards - add: function( elem, types, handler, data ) { - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - if ( handler === false ) { - handler = returnFalse; - } else if ( !handler ) { - // Fixes bug #7229. Fix recommended by jdalton - return; - } - - var handleObjIn, handleObj; - - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - } - - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure - var elemData = jQuery._data( elem ); - - // If no elemData is found then we must be trying to bind to one of the - // banned noData elements - if ( !elemData ) { - return; - } - - var events = elemData.events, - eventHandle = elemData.handle; - - if ( !events ) { - elemData.events = events = {}; - } - - if ( !eventHandle ) { - elemData.handle = eventHandle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.handle.apply( eventHandle.elem, arguments ) : - undefined; - }; - } - - // Add elem as a property of the handle function - // This is to prevent a memory leak with non-native events in IE. - eventHandle.elem = elem; - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = types.split(" "); - - var type, i = 0, namespaces; - - while ( (type = types[ i++ ]) ) { - handleObj = handleObjIn ? - jQuery.extend({}, handleObjIn) : - { handler: handler, data: data }; - - // Namespaced event handlers - if ( type.indexOf(".") > -1 ) { - namespaces = type.split("."); - type = namespaces.shift(); - handleObj.namespace = namespaces.slice(0).sort().join("."); - - } else { - namespaces = []; - handleObj.namespace = ""; - } - - handleObj.type = type; - if ( !handleObj.guid ) { - handleObj.guid = handler.guid; - } - - // Get the current list of functions bound to this event - var handlers = events[ type ], - special = jQuery.event.special[ type ] || {}; - - // Init the event handler queue - if ( !handlers ) { - handlers = events[ type ] = []; - - // Check for a special event handler - // Only use addEventListener/attachEvent if the special - // events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add the function to the element's handler list - handlers.push( handleObj ); - - // Keep track of which events have been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - global: {}, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, pos ) { - // don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - if ( handler === false ) { - handler = returnFalse; - } - - var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - events = elemData && elemData.events; - - if ( !elemData || !events ) { - return; - } - - // types is actually an event object here - if ( types && types.type ) { - handler = types.handler; - types = types.type; - } - - // Unbind all events for the element - if ( !types || typeof types === "string" && types.charAt(0) === "." ) { - types = types || ""; - - for ( type in events ) { - jQuery.event.remove( elem, type + types ); - } - - return; - } - - // Handle multiple events separated by a space - // jQuery(...).unbind("mouseover mouseout", fn); - types = types.split(" "); - - while ( (type = types[ i++ ]) ) { - origType = type; - handleObj = null; - all = type.indexOf(".") < 0; - namespaces = []; - - if ( !all ) { - // Namespaced event handlers - namespaces = type.split("."); - type = namespaces.shift(); - - namespace = new RegExp("(^|\\.)" + - jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - eventType = events[ type ]; - - if ( !eventType ) { - continue; - } - - if ( !handler ) { - for ( j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( all || namespace.test( handleObj.namespace ) ) { - jQuery.event.remove( elem, origType, handleObj.handler, j ); - eventType.splice( j--, 1 ); - } - } - - continue; - } - - special = jQuery.event.special[ type ] || {}; - - for ( j = pos || 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( handler.guid === handleObj.guid ) { - // remove the given handler for the given type - if ( all || namespace.test( handleObj.namespace ) ) { - if ( pos == null ) { - eventType.splice( j--, 1 ); - } - - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - - if ( pos != null ) { - break; - } - } - } - - // remove generic event handler if no more handlers exist - if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - ret = null; - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - var handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - delete elemData.events; - delete elemData.handle; - - if ( jQuery.isEmptyObject( elemData ) ) { - jQuery.removeData( elem, undefined, true ); - } - } - }, - - // Events that are safe to short-circuit if no handlers are attached. - // Native DOM events should not be added, they may have inline handlers. - customEvent: { - "getData": true, - "setData": true, - "changeData": true - }, - - trigger: function( event, data, elem, onlyHandlers ) { - // Event object or event type - var type = event.type || event, - namespaces = [], - exclusive; - - if ( type.indexOf("!") >= 0 ) { - // Exclusive events trigger only for the exact event (no namespaces) - type = type.slice(0, -1); - exclusive = true; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - - if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { - // No jQuery handlers for this event type, and it can't have inline handlers - return; - } - - // Caller can pass in an Event, Object, or just an event type string - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - new jQuery.Event( type, event ) : - // Just the event type (string) - new jQuery.Event( type ); - - event.type = type; - event.exclusive = exclusive; - event.namespace = namespaces.join("."); - event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); - - // triggerHandler() and global events don't bubble or run the default action - if ( onlyHandlers || !elem ) { - event.preventDefault(); - event.stopPropagation(); - } - - // Handle a global trigger - if ( !elem ) { - // TODO: Stop taunting the data cache; remove global events and always attach to document - jQuery.each( jQuery.cache, function() { - // internalKey variable is just used to make it easier to find - // and potentially change this stuff later; currently it just - // points to jQuery.expando - var internalKey = jQuery.expando, - internalCache = this[ internalKey ]; - if ( internalCache && internalCache.events && internalCache.events[ type ] ) { - jQuery.event.trigger( event, data, internalCache.handle.elem ); - } - }); - return; - } - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // Clean up the event in case it is being reused - event.result = undefined; - event.target = elem; - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data != null ? jQuery.makeArray( data ) : []; - data.unshift( event ); - - var cur = elem, - // IE doesn't like method names with a colon (#3533, #8272) - ontype = type.indexOf(":") < 0 ? "on" + type : ""; - - // Fire event on the current element, then bubble up the DOM tree - do { - var handle = jQuery._data( cur, "handle" ); - - event.currentTarget = cur; - if ( handle ) { - handle.apply( cur, data ); - } - - // Trigger an inline bound script - if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { - event.result = false; - event.preventDefault(); - } - - // Bubble up to document, then to window - cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; - } while ( cur && !event.isPropagationStopped() ); - - // If nobody prevented the default action, do it now - if ( !event.isDefaultPrevented() ) { - var old, - special = jQuery.event.special[ type ] || {}; - - if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction)() check here because IE6/7 fails that test. - // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. - try { - if ( ontype && elem[ type ] ) { - // Don't re-trigger an onFOO event when we call its FOO() method - old = elem[ ontype ]; - - if ( old ) { - elem[ ontype ] = null; - } - - jQuery.event.triggered = type; - elem[ type ](); - } - } catch ( ieError ) {} - - if ( old ) { - elem[ ontype ] = old; - } - - jQuery.event.triggered = undefined; - } - } - - return event.result; - }, - - handle: function( event ) { - event = jQuery.event.fix( event || window.event ); - // Snapshot the handlers list since a called handler may add/remove events. - var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), - run_all = !event.exclusive && !event.namespace, - args = Array.prototype.slice.call( arguments, 0 ); - - // Use the fix-ed Event rather than the (read-only) native event - args[0] = event; - event.currentTarget = this; - - for ( var j = 0, l = handlers.length; j < l; j++ ) { - var handleObj = handlers[ j ]; - - // Triggered event must 1) be non-exclusive and have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event. - if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handleObj.handler; - event.data = handleObj.data; - event.handleObj = handleObj; - - var ret = handleObj.handler.apply( this, args ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - return event.result; - }, - - props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // store a copy of the original event object - // and "clone" to set read-only properties - var originalEvent = event; - event = jQuery.Event( originalEvent ); - - for ( var i = this.props.length, prop; i; ) { - prop = this.props[ --i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Fix target property, if necessary - if ( !event.target ) { - // Fixes #1925 where srcElement might not be defined either - event.target = event.srcElement || document; - } - - // check if target is a textnode (safari) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && event.fromElement ) { - event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; - } - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && event.clientX != null ) { - var eventDocument = event.target.ownerDocument || document, - doc = eventDocument.documentElement, - body = eventDocument.body; - - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); - } - - // Add which for key events - if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { - event.which = event.charCode != null ? event.charCode : event.keyCode; - } - - // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) - if ( !event.metaKey && event.ctrlKey ) { - event.metaKey = event.ctrlKey; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && event.button !== undefined ) { - event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); - } - - return event; - }, - - // Deprecated, use jQuery.guid instead - guid: 1E8, - - // Deprecated, use jQuery.proxy instead - proxy: jQuery.proxy, - - special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady, - teardown: jQuery.noop - }, - - live: { - add: function( handleObj ) { - jQuery.event.add( this, - liveConvert( handleObj.origType, handleObj.selector ), - jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); - }, - - remove: function( handleObj ) { - jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); - } - }, - - beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( jQuery.isWindow( this ) ) { - this.onbeforeunload = eventHandle; - } - }, - - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; - } - } - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !this.preventDefault ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // timeStamp is buggy for some events on Firefox(#3843) - // So we won't rely on the native value - this.timeStamp = jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - - // if preventDefault exists run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // otherwise set the returnValue property of the original event to false (IE) - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - // if stopPropagation exists run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -// Checks if an event happened on an element within another element -// Used in jQuery.event.special.mouseenter and mouseleave handlers -var withinElement = function( event ) { - - // Check if mouse(over|out) are still within the same parent element - var related = event.relatedTarget, - inside = false, - eventType = event.type; - - event.type = event.data; - - if ( related !== this ) { - - if ( related ) { - inside = jQuery.contains( this, related ); - } - - if ( !inside ) { - - jQuery.event.handle.apply( this, arguments ); - - event.type = eventType; - } - } -}, - -// In case of event delegation, we only need to rename the event.type, -// liveHandler will take care of the rest. -delegate = function( event ) { - event.type = event.data; - jQuery.event.handle.apply( this, arguments ); -}; - -// Create mouseenter and mouseleave events -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - setup: function( data ) { - jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); - }, - teardown: function( data ) { - jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); - } - }; -}); - -// submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function( data, namespaces ) { - if ( !jQuery.nodeName( this, "form" ) ) { - jQuery.event.add(this, "click.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; - - if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { - trigger( "submit", this, arguments ); - } - }); - - jQuery.event.add(this, "keypress.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; - - if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { - trigger( "submit", this, arguments ); - } - }); - - } else { - return false; - } - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialSubmit" ); - } - }; - -} - -// change delegation, happens here so we have bind. -if ( !jQuery.support.changeBubbles ) { - - var changeFilters, - - getVal = function( elem ) { - var type = elem.type, val = elem.value; - - if ( type === "radio" || type === "checkbox" ) { - val = elem.checked; - - } else if ( type === "select-multiple" ) { - val = elem.selectedIndex > -1 ? - jQuery.map( elem.options, function( elem ) { - return elem.selected; - }).join("-") : - ""; - - } else if ( jQuery.nodeName( elem, "select" ) ) { - val = elem.selectedIndex; - } - - return val; - }, - - testChange = function testChange( e ) { - var elem = e.target, data, val; - - if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { - return; - } - - data = jQuery._data( elem, "_change_data" ); - val = getVal(elem); - - // the current data will be also retrieved by beforeactivate - if ( e.type !== "focusout" || elem.type !== "radio" ) { - jQuery._data( elem, "_change_data", val ); - } - - if ( data === undefined || val === data ) { - return; - } - - if ( data != null || val ) { - e.type = "change"; - e.liveFired = undefined; - jQuery.event.trigger( e, arguments[1], elem ); - } - }; - - jQuery.event.special.change = { - filters: { - focusout: testChange, - - beforedeactivate: testChange, - - click: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { - testChange.call( this, e ); - } - }, - - // Change has to be called before submit - // Keydown will be called before keypress, which is used in submit-event delegation - keydown: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || - (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || - type === "select-multiple" ) { - testChange.call( this, e ); - } - }, - - // Beforeactivate happens also before the previous element is blurred - // with this event you can't trigger a change event, but you can store - // information - beforeactivate: function( e ) { - var elem = e.target; - jQuery._data( elem, "_change_data", getVal(elem) ); - } - }, - - setup: function( data, namespaces ) { - if ( this.type === "file" ) { - return false; - } - - for ( var type in changeFilters ) { - jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); - } - - return rformElems.test( this.nodeName ); - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialChange" ); - - return rformElems.test( this.nodeName ); - } - }; - - changeFilters = jQuery.event.special.change.filters; - - // Handle when the input is .focus()'d - changeFilters.focus = changeFilters.beforeactivate; -} - -function trigger( type, elem, args ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - // Don't pass args or remember liveFired; they apply to the donor event. - var event = jQuery.extend( {}, args[ 0 ] ); - event.type = type; - event.originalEvent = {}; - event.liveFired = undefined; - jQuery.event.handle.call( elem, event ); - if ( event.isDefaultPrevented() ) { - args[ 0 ].preventDefault(); - } -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - - function handler( donor ) { - // Donor event is always a native one; fix it and switch its type. - // Let focusin/out handler cancel the donor focus/blur event. - var e = jQuery.event.fix( donor ); - e.type = fix; - e.originalEvent = {}; - jQuery.event.trigger( e, null, e.target ); - if ( e.isDefaultPrevented() ) { - donor.preventDefault(); - } - } - }); -} - -jQuery.each(["bind", "one"], function( i, name ) { - jQuery.fn[ name ] = function( type, data, fn ) { - var handler; - - // Handle object literals - if ( typeof type === "object" ) { - for ( var key in type ) { - this[ name ](key, data, type[key], fn); - } - return this; - } - - if ( arguments.length === 2 || data === false ) { - fn = data; - data = undefined; - } - - if ( name === "one" ) { - handler = function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }; - handler.guid = fn.guid || jQuery.guid++; - } else { - handler = fn; - } - - if ( type === "unload" && name !== "one" ) { - this.one( type, data, fn ); - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.add( this[i], type, handler, data ); - } - } - - return this; - }; -}); - -jQuery.fn.extend({ - unbind: function( type, fn ) { - // Handle object literals - if ( typeof type === "object" && !type.preventDefault ) { - for ( var key in type ) { - this.unbind(key, type[key]); - } - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.remove( this[i], type, fn ); - } - } - - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.live( types, data, fn, selector ); - }, - - undelegate: function( selector, types, fn ) { - if ( arguments.length === 0 ) { - return this.unbind( "live" ); - - } else { - return this.die( types, null, fn, selector ); - } - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - - triggerHandler: function( type, data ) { - if ( this[0] ) { - return jQuery.event.trigger( type, data, this[0], true ); - } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, - guid = fn.guid || jQuery.guid++, - i = 0, - toggler = function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - }; - - // link all the functions, so any of them can unbind this click handler - toggler.guid = guid; - while ( i < args.length ) { - args[ i++ ].guid = guid; - } - - return this.click( toggler ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -}); - -var liveMap = { - focus: "focusin", - blur: "focusout", - mouseenter: "mouseover", - mouseleave: "mouseout" -}; - -jQuery.each(["live", "die"], function( i, name ) { - jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { - var type, i = 0, match, namespaces, preType, - selector = origSelector || this.selector, - context = origSelector ? this : jQuery( this.context ); - - if ( typeof types === "object" && !types.preventDefault ) { - for ( var key in types ) { - context[ name ]( key, data, types[key], selector ); - } - - return this; - } - - if ( name === "die" && !types && - origSelector && origSelector.charAt(0) === "." ) { - - context.unbind( origSelector ); - - return this; - } - - if ( data === false || jQuery.isFunction( data ) ) { - fn = data || returnFalse; - data = undefined; - } - - types = (types || "").split(" "); - - while ( (type = types[ i++ ]) != null ) { - match = rnamespaces.exec( type ); - namespaces = ""; - - if ( match ) { - namespaces = match[0]; - type = type.replace( rnamespaces, "" ); - } - - if ( type === "hover" ) { - types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); - continue; - } - - preType = type; - - if ( liveMap[ type ] ) { - types.push( liveMap[ type ] + namespaces ); - type = type + namespaces; - - } else { - type = (liveMap[ type ] || type) + namespaces; - } - - if ( name === "live" ) { - // bind live handler - for ( var j = 0, l = context.length; j < l; j++ ) { - jQuery.event.add( context[j], "live." + liveConvert( type, selector ), - { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - } - - } else { - // unbind live handler - context.unbind( "live." + liveConvert( type, selector ), fn ); - } - } - - return this; - }; -}); - -function liveHandler( event ) { - var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, - elems = [], - selectors = [], - events = jQuery._data( this, "events" ); - - // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) - if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { - return; - } - - if ( event.namespace ) { - namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - event.liveFired = this; - - var live = events.live.slice(0); - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { - selectors.push( handleObj.selector ); - - } else { - live.splice( j--, 1 ); - } - } - - match = jQuery( event.target ).closest( selectors, event.currentTarget ); - - for ( i = 0, l = match.length; i < l; i++ ) { - close = match[i]; - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { - elem = close.elem; - related = null; - - // Those two events require additional checking - if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { - event.type = handleObj.preType; - related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; - - // Make sure not to accidentally match a child element with the same selector - if ( related && jQuery.contains( elem, related ) ) { - related = elem; - } - } - - if ( !related || related !== elem ) { - elems.push({ elem: elem, handleObj: handleObj, level: close.level }); - } - } - } - } - - for ( i = 0, l = elems.length; i < l; i++ ) { - match = elems[i]; - - if ( maxLevel && match.level > maxLevel ) { - break; - } - - event.currentTarget = match.elem; - event.data = match.handleObj.data; - event.handleObj = match.handleObj; - - ret = match.handleObj.origHandler.apply( match.elem, arguments ); - - if ( ret === false || event.isPropagationStopped() ) { - maxLevel = match.level; - - if ( ret === false ) { - stop = false; - } - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - - return stop; -} - -function liveConvert( type, selector ) { - return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); -} - -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - if ( fn == null ) { - fn = data; - data = null; - } - - return arguments.length > 0 ? - this.bind( name, data, fn ) : - this.trigger( name ); - }; - - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } -}); - - - -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rNonWord = /\W/; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); - - if ( m ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; - } - } - } while ( m ); - - if ( parts.length > 1 && origPOS.exec( selector ) ) { - - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context ); - - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } - - set = posProcess( selector, set ); - } - } - - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; - } - - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; - - if ( parts.length > 0 ) { - checkSet = makeArray( set ); - - } else { - prune = false; - } - - while ( parts.length ) { - cur = parts.pop(); - pop = cur; - - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } - - if ( pop == null ) { - pop = context; - } - - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } - - } else { - checkSet = parts = []; - } - } - - if ( !checkSet ) { - checkSet = set; - } - - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } - - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); - - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } - - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } - - } else { - makeArray( checkSet, results ); - } - - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } - - return results; -}; - -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); - } - } - } - } - - return results; -}; - -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); -}; - -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; -}; - -Sizzle.find = function( expr, context, isXML ) { - var set; - - if ( !expr ) { - return []; - } - - for ( var i = 0, l = Expr.order.length; i < l; i++ ) { - var match, - type = Expr.order[i]; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - var left = match[1]; - match.splice( 1, 1 ); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); - - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; - } - } - } - } - - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; - } - - return { set: set, expr: expr }; -}; - -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); - - while ( expr && set.length ) { - for ( var type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - var found, item, - filter = Expr.filter[ type ], - left = match[1]; - - anyFound = false; - - match.splice(1,1); - - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } - - if ( curLoop === result ) { - result = []; - } - - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); - - if ( !match ) { - anyFound = found = true; - - } else if ( match === true ) { - continue; - } - } - - if ( match ) { - for ( var i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - var pass = not ^ !!found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - - } else { - curLoop[i] = false; - } - - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } - } - - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } - - expr = expr.replace( Expr.match[ type ], "" ); - - if ( !anyFound ) { - return []; - } - - break; - } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw "Syntax error, unrecognized expression: " + msg; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" - }, - - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } - }, - - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); - } - - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} - - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } - - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } - }, - - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } - } - }, - - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); - }, - - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } - }, - - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }, - - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } - } - - return ret.length === 0 ? null : ret; - } - }, - - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); - } - } - }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } - - } else if ( inplace ) { - curLoop[i] = false; - } - } - } - - return false; - }, - - ID: function( match ) { - return match[1].replace( rBackslash, "" ); - }, - - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, - - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); - } - - match[2] = match[2].replace(/^\+|\s*/g, ''); - - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); - - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } - - // TODO: Move to normal caching system - match[0] = done++; - - return match; - }, - - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } - - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } - - return match; - }, - - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); - - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); - - if ( !inplace ) { - result.push.apply( result, ret ); - } - - return false; - } - - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; - }, - - POS: function( match ) { - match.unshift( true ); - - return match; - } - }, - - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; - }, - - disabled: function( elem ) { - return elem.disabled === true; - }, - - checked: function( elem ) { - return elem.checked === true; - }, - - selected: function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - parent: function( elem ) { - return !!elem.firstChild; - }, - - empty: function( elem ) { - return !elem.firstChild; - }, - - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; - }, - - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); - }, - - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); - }, - - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, - - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, - - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, - - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, - - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, - - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, - - reset: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; - }, - - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; - }, - - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); - }, - - focus: function( elem ) { - return elem === elem.ownerDocument.activeElement; - } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - - last: function( elem, i, match, array ) { - return i === array.length - 1; - }, - - even: function( elem, i ) { - return i % 2 === 0; - }, - - odd: function( elem, i ) { - return i % 2 === 1; - }, - - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, - - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, - - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, - - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; - - } else if ( name === "not" ) { - var not = match[3]; - - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } - - return true; - - } else { - Sizzle.error( name ); - } - }, - - CHILD: function( elem, match ) { - var type = match[1], - node = elem; - - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - if ( type === "first" ) { - return true; - } - - node = elem; - - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - return true; - - case "nth": - var first = match[2], - last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - var doneName = match[0], - parent = elem.parentNode; - - if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { - var count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - - parent.sizcache = doneName; - } - - var diff = elem.nodeIndex - last; - - if ( first === 0 ) { - return diff === 0; - - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, - - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - - ATTR: function( elem, match ) { - var name = match[1], - result = Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, - - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } - } - } -}; - -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); - }; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} - -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); - - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } - } - } - - return ret; - }; -} - -var sortOrder, siblingCheck; - -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; - -} else { - sortOrder = function( a, b ) { - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Fallback to using sourceIndex (in IE) if it's available on both nodes - } else if ( a.sourceIndex && b.sourceIndex ) { - return a.sourceIndex - b.sourceIndex; - } - - var al, bl, - ap = [], - bp = [], - aup = a.parentNode, - bup = b.parentNode, - cur = aup; - - // If the nodes are siblings (or identical) we can do a quick check - if ( aup === bup ) { - return siblingCheck( a, b ); - - // If no parents were found then the nodes are disconnected - } else if ( !aup ) { - return -1; - - } else if ( !bup ) { - return 1; - } - - // Otherwise they're somewhere else in the tree so we need - // to build up a full list of the parentNodes for comparison - while ( cur ) { - ap.unshift( cur ); - cur = cur.parentNode; - } - - cur = bup; - - while ( cur ) { - bp.unshift( cur ); - cur = cur.parentNode; - } - - al = ap.length; - bl = bp.length; - - // Start walking down the tree looking for a discrepancy - for ( var i = 0; i < al && i < bl; i++ ) { - if ( ap[i] !== bp[i] ) { - return siblingCheck( ap[i], bp[i] ); - } - } - - // We ended someplace up the tree so do a sibling check - return i === al ? - siblingCheck( a, bp[i], -1 ) : - siblingCheck( ap[i], b, 1 ); - }; - - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } - - var cur = a.nextSibling; - - while ( cur ) { - if ( cur === b ) { - return -1; - } - - cur = cur.nextSibling; - } - - return 1; - }; -} - -// Utility function for retreiving the text value of an array of DOM nodes -Sizzle.getText = function( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += Sizzle.getText( elem.childNodes ); - } - } - - return ret; -}; - -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; - - form.innerHTML = ""; - - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); - - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; - } - }; - - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } - - root.removeChild( form ); - - // release memory in IE - root = form = null; -})(); - -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") - - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); - - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); - - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; - - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; - } - - return results; - }; - } - - // Check to see if an attribute returns normalized href attributes - div.innerHTML = ""; - - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { - - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; - } - - // release memory in IE - div = null; -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; - - div.innerHTML = "

"; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function( query, context, extra, seed ) { - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); - - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); - - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } - - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); - - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } - - } else { - return makeArray( [], extra ); - } - } - - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); - - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; - } - - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } - - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); - } - } - } - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - // release memory in IE - div = null; - })(); -} - -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; - - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; - - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); - - } catch( pseudoError ) { - pseudoWorks = true; - } - - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); - - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} - } - - return Sizzle(expr, null, null, [node]).length > 0; - }; - } -})(); - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "
"; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - // release memory in IE - div = null; -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; - -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; - -} else { - Sizzle.contains = function() { - return false; - }; -} - -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function( selector, context ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})(); - - -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.POS, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var self = this, - i, l; - - if ( typeof selector !== "string" ) { - return jQuery( selector ).filter(function() { - for ( i = 0, l = self.length; i < l; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }); - } - - var ret = this.pushStack( "", "find", selector ), - length, n, r; - - for ( i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( n = length; n < ret.length; n++ ) { - for ( r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && ( typeof selector === "string" ? - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array - if ( jQuery.isArray( selectors ) ) { - var match, selector, - matches = {}, - level = 1; - - if ( cur && selectors.length ) { - for ( i = 0, l = selectors.length; i < l; i++ ) { - selector = selectors[i]; - - if ( !matches[ selector ] ) { - matches[ selector ] = POS.test( selector ) ? - jQuery( selector, context || this.context ) : - selector; - } - } - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( selector in matches ) { - match = matches[ selector ]; - - if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { - ret.push({ selector: selector, elem: cur, level: level }); - } - } - - cur = cur.parentNode; - level++; - } - } - - return ret; - } - - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( i = 0, l = this.length; i < l; i++ ) { - cur = this[i]; - - while ( cur ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } - } - } - } - - ret = ret.length > 1 ? jQuery.unique( ret ) : ret; - - return this.pushStack( ret, "closest", selectors ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); - } - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ), - // The variable 'args' was introduced in - // https://github.com/jquery/jquery/commit/52a0238 - // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. - // http://code.google.com/p/v8/issues/detail?id=1050 - args = slice.call(arguments); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, args.join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -} - - - - -var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rtagName = /<([\w:]+)/, - rtbody = /", "" ], - legend: [ 1, "
", "
" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - col: [ 2, "", "
" ], - area: [ 1, "", "" ], - _default: [ 0, "", "" ] - }; - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize and - - + + +

Last update:

+

Feb 05, 2013

+ next »
diff --git a/libs/network/doc/html/examples.html b/libs/network/doc/html/examples.html index 23e2292f9..43599e279 100644 --- a/libs/network/doc/html/examples.html +++ b/libs/network/doc/html/examples.html @@ -1,19 +1,21 @@ - + - Examples — cpp-netlib v0.9.4 + Examples — cpp-netlib v0.9.5 + + - + +

Last update:

+

Feb 05, 2013

@@ -160,7 +160,7 @@

Quick search

diff --git a/libs/network/doc/html/examples/http/atom_reader.html b/libs/network/doc/html/examples/http/atom_reader.html index 94ded0563..9c8a142e5 100644 --- a/libs/network/doc/html/examples/http/atom_reader.html +++ b/libs/network/doc/html/examples/http/atom_reader.html @@ -1,19 +1,21 @@ - + - Atom feed reader — cpp-netlib v0.9.4 + Atom feed reader — cpp-netlib v0.9.5 + + - + @@ -43,10 +45,11 @@ +
-

cpp-netlib v0.9.4

+

cpp-netlib v0.9.5