From b3a0bf032c12ffe1688ed17fc3048e80e2847dce Mon Sep 17 00:00:00 2001 From: Ziaeemehr Date: Wed, 14 Aug 2024 18:45:46 +0000 Subject: [PATCH] deploy: 157bd64e5a40d2f9152cb290e2a51b9d9290fa59 --- .buildinfo | 4 + .doctrees/environment.pickle | Bin 0 -> 80692 bytes .doctrees/examples/chap_02.doctree | Bin 0 -> 72300 bytes .doctrees/examples/chap_03.doctree | Bin 0 -> 56015 bytes .doctrees/examples/chap_04.doctree | Bin 0 -> 57899 bytes .doctrees/examples/quick_guide_igraph.doctree | Bin 0 -> 31966 bytes .../examples/quick_guide_networkx.doctree | Bin 0 -> 17701 bytes .doctrees/index.doctree | Bin 0 -> 131209 bytes .doctrees/nbsphinx/examples/chap_02.ipynb | 848 ++++++++++++++++ .doctrees/nbsphinx/examples/chap_03.ipynb | 530 ++++++++++ .doctrees/nbsphinx/examples/chap_04.ipynb | 561 +++++++++++ .../examples/quick_guide_igraph.ipynb | 375 +++++++ .../examples/quick_guide_networkx.ipynb | 212 ++++ .doctrees/nbsphinx/examples_chap_02_10_2.png | Bin 0 -> 8931 bytes .doctrees/nbsphinx/examples_chap_02_12_1.png | Bin 0 -> 9877 bytes .doctrees/nbsphinx/examples_chap_02_15_1.png | Bin 0 -> 8977 bytes .doctrees/nbsphinx/examples_chap_02_17_1.png | Bin 0 -> 10234 bytes .doctrees/nbsphinx/examples_chap_02_19_1.png | Bin 0 -> 8683 bytes .doctrees/nbsphinx/examples_chap_02_5_1.png | Bin 0 -> 30781 bytes .doctrees/nbsphinx/examples_chap_02_7_0.png | Bin 0 -> 30837 bytes .doctrees/nbsphinx/examples_chap_02_8_1.png | Bin 0 -> 30744 bytes .doctrees/nbsphinx/examples_chap_03_11_1.png | Bin 0 -> 16768 bytes .doctrees/nbsphinx/examples_chap_03_13_1.png | Bin 0 -> 19924 bytes .doctrees/nbsphinx/examples_chap_03_18_0.png | Bin 0 -> 50508 bytes .doctrees/nbsphinx/examples_chap_03_21_0.png | Bin 0 -> 27826 bytes .doctrees/nbsphinx/examples_chap_03_6_1.png | Bin 0 -> 14789 bytes .doctrees/nbsphinx/examples_chap_03_9_0.png | Bin 0 -> 39880 bytes .doctrees/nbsphinx/examples_chap_04_16_1.png | Bin 0 -> 15814 bytes .doctrees/nbsphinx/examples_chap_04_19_0.png | Bin 0 -> 19579 bytes .doctrees/nbsphinx/examples_chap_04_24_1.png | Bin 0 -> 15982 bytes .doctrees/nbsphinx/examples_chap_04_25_0.png | Bin 0 -> 26314 bytes .doctrees/nbsphinx/examples_chap_04_6_0.png | Bin 0 -> 59799 bytes .doctrees/nbsphinx/examples_chap_04_9_1.png | Bin 0 -> 16792 bytes .../examples_quick_guide_igraph_22_0.png | Bin 0 -> 12733 bytes .../examples_quick_guide_networkx_13_0.png | Bin 0 -> 43774 bytes .nojekyll | 0 _images/examples_chap_02_10_2.png | Bin 0 -> 8931 bytes _images/examples_chap_02_12_1.png | Bin 0 -> 9877 bytes _images/examples_chap_02_15_1.png | Bin 0 -> 8977 bytes _images/examples_chap_02_17_1.png | Bin 0 -> 10234 bytes _images/examples_chap_02_19_1.png | Bin 0 -> 8683 bytes _images/examples_chap_02_5_1.png | Bin 0 -> 30781 bytes _images/examples_chap_02_7_0.png | Bin 0 -> 30837 bytes _images/examples_chap_02_8_1.png | Bin 0 -> 30744 bytes _images/examples_chap_03_11_1.png | Bin 0 -> 16768 bytes _images/examples_chap_03_13_1.png | Bin 0 -> 19924 bytes _images/examples_chap_03_18_0.png | Bin 0 -> 50508 bytes _images/examples_chap_03_21_0.png | Bin 0 -> 27826 bytes _images/examples_chap_03_6_1.png | Bin 0 -> 14789 bytes _images/examples_chap_03_9_0.png | Bin 0 -> 39880 bytes _images/examples_chap_04_16_1.png | Bin 0 -> 15814 bytes _images/examples_chap_04_19_0.png | Bin 0 -> 19579 bytes _images/examples_chap_04_24_1.png | Bin 0 -> 15982 bytes _images/examples_chap_04_25_0.png | Bin 0 -> 26314 bytes _images/examples_chap_04_6_0.png | Bin 0 -> 59799 bytes _images/examples_chap_04_9_1.png | Bin 0 -> 16792 bytes _images/examples_quick_guide_igraph_22_0.png | Bin 0 -> 12733 bytes .../examples_quick_guide_networkx_13_0.png | Bin 0 -> 43774 bytes _modules/index.html | 81 ++ _modules/netsci/analysis.html | 320 ++++++ _modules/netsci/plot.html | 181 ++++ _modules/netsci/utils.html | 534 ++++++++++ _sources/examples/chap_02.ipynb.txt | 848 ++++++++++++++++ _sources/examples/chap_03.ipynb.txt | 530 ++++++++++ _sources/examples/chap_04.ipynb.txt | 561 +++++++++++ .../examples/quick_guide_igraph.ipynb.txt | 375 +++++++ .../examples/quick_guide_networkx.ipynb.txt | 212 ++++ _sources/index.rst.txt | 102 ++ _static/basic.css | 925 ++++++++++++++++++ _static/doctools.js | 156 +++ _static/documentation_options.js | 13 + _static/file.png | Bin 0 -> 286 bytes _static/graphviz.css | 19 + _static/language_data.js | 199 ++++ _static/minus.png | Bin 0 -> 90 bytes _static/nature.css | 252 +++++ _static/nbsphinx-broken-thumbnail.svg | 9 + _static/nbsphinx-code-cells.css | 259 +++++ _static/nbsphinx-gallery.css | 31 + _static/nbsphinx-no-thumbnail.svg | 9 + _static/plus.png | Bin 0 -> 90 bytes _static/pygments.css | 75 ++ _static/searchtools.js | 620 ++++++++++++ _static/sphinx_highlight.js | 154 +++ examples/chap_02.html | 862 ++++++++++++++++ examples/chap_02.ipynb | 848 ++++++++++++++++ examples/chap_03.html | 546 +++++++++++ examples/chap_03.ipynb | 530 ++++++++++ examples/chap_04.html | 588 +++++++++++ examples/chap_04.ipynb | 561 +++++++++++ examples/quick_guide_igraph.html | 426 ++++++++ examples/quick_guide_igraph.ipynb | 375 +++++++ examples/quick_guide_networkx.html | 267 +++++ examples/quick_guide_networkx.ipynb | 212 ++++ genindex.html | 247 +++++ index.html | 640 ++++++++++++ objects.inv | Bin 0 -> 1718 bytes py-modindex.html | 113 +++ search.html | 100 ++ searchindex.js | 1 + 100 files changed, 15311 insertions(+) create mode 100644 .buildinfo create mode 100644 .doctrees/environment.pickle create mode 100644 .doctrees/examples/chap_02.doctree create mode 100644 .doctrees/examples/chap_03.doctree create mode 100644 .doctrees/examples/chap_04.doctree create mode 100644 .doctrees/examples/quick_guide_igraph.doctree create mode 100644 .doctrees/examples/quick_guide_networkx.doctree create mode 100644 .doctrees/index.doctree create mode 100644 .doctrees/nbsphinx/examples/chap_02.ipynb create mode 100644 .doctrees/nbsphinx/examples/chap_03.ipynb create mode 100644 .doctrees/nbsphinx/examples/chap_04.ipynb create mode 100644 .doctrees/nbsphinx/examples/quick_guide_igraph.ipynb create mode 100644 .doctrees/nbsphinx/examples/quick_guide_networkx.ipynb create mode 100644 .doctrees/nbsphinx/examples_chap_02_10_2.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_12_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_15_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_17_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_19_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_5_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_7_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_02_8_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_03_11_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_03_13_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_03_18_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_03_21_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_03_6_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_03_9_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_04_16_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_04_19_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_04_24_1.png create mode 100644 .doctrees/nbsphinx/examples_chap_04_25_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_04_6_0.png create mode 100644 .doctrees/nbsphinx/examples_chap_04_9_1.png create mode 100644 .doctrees/nbsphinx/examples_quick_guide_igraph_22_0.png create mode 100644 .doctrees/nbsphinx/examples_quick_guide_networkx_13_0.png create mode 100644 .nojekyll create mode 100644 _images/examples_chap_02_10_2.png create mode 100644 _images/examples_chap_02_12_1.png create mode 100644 _images/examples_chap_02_15_1.png create mode 100644 _images/examples_chap_02_17_1.png create mode 100644 _images/examples_chap_02_19_1.png create mode 100644 _images/examples_chap_02_5_1.png create mode 100644 _images/examples_chap_02_7_0.png create mode 100644 _images/examples_chap_02_8_1.png create mode 100644 _images/examples_chap_03_11_1.png create mode 100644 _images/examples_chap_03_13_1.png create mode 100644 _images/examples_chap_03_18_0.png create mode 100644 _images/examples_chap_03_21_0.png create mode 100644 _images/examples_chap_03_6_1.png create mode 100644 _images/examples_chap_03_9_0.png create mode 100644 _images/examples_chap_04_16_1.png create mode 100644 _images/examples_chap_04_19_0.png create mode 100644 _images/examples_chap_04_24_1.png create mode 100644 _images/examples_chap_04_25_0.png create mode 100644 _images/examples_chap_04_6_0.png create mode 100644 _images/examples_chap_04_9_1.png create mode 100644 _images/examples_quick_guide_igraph_22_0.png create mode 100644 _images/examples_quick_guide_networkx_13_0.png create mode 100644 _modules/index.html create mode 100644 _modules/netsci/analysis.html create mode 100644 _modules/netsci/plot.html create mode 100644 _modules/netsci/utils.html create mode 100644 _sources/examples/chap_02.ipynb.txt create mode 100644 _sources/examples/chap_03.ipynb.txt create mode 100644 _sources/examples/chap_04.ipynb.txt create mode 100644 _sources/examples/quick_guide_igraph.ipynb.txt create mode 100644 _sources/examples/quick_guide_networkx.ipynb.txt create mode 100644 _sources/index.rst.txt create mode 100644 _static/basic.css create mode 100644 _static/doctools.js create mode 100644 _static/documentation_options.js create mode 100644 _static/file.png create mode 100644 _static/graphviz.css create mode 100644 _static/language_data.js create mode 100644 _static/minus.png create mode 100644 _static/nature.css create mode 100644 _static/nbsphinx-broken-thumbnail.svg create mode 100644 _static/nbsphinx-code-cells.css create mode 100644 _static/nbsphinx-gallery.css create mode 100644 _static/nbsphinx-no-thumbnail.svg create mode 100644 _static/plus.png create mode 100644 _static/pygments.css create mode 100644 _static/searchtools.js create mode 100644 _static/sphinx_highlight.js create mode 100644 examples/chap_02.html create mode 100644 examples/chap_02.ipynb create mode 100644 examples/chap_03.html create mode 100644 examples/chap_03.ipynb create mode 100644 examples/chap_04.html create mode 100644 examples/chap_04.ipynb create mode 100644 examples/quick_guide_igraph.html create mode 100644 examples/quick_guide_igraph.ipynb create mode 100644 examples/quick_guide_networkx.html create mode 100644 examples/quick_guide_networkx.ipynb create mode 100644 genindex.html create mode 100644 index.html create mode 100644 objects.inv create mode 100644 py-modindex.html create mode 100644 search.html create mode 100644 searchindex.js diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 0000000..307f85d --- /dev/null +++ b/.buildinfo @@ -0,0 +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: 3f8eccb0f4f653ac806a39692c1d1bf0 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..de61c7187729db1d472f83df2c3f24c33b7e99c0 GIT binary patch literal 80692 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 z z&St2FBlJU?jMSdYVB~T4iG4ZUOnKp3W=!dSB@{rpuuSL!u^F!7f&xO);?5b-2|RCt zabS!CIQA!?*0Bc?c!s7PH*%MrRr z%A~Ib)a^CDV@>L0YO@n+&4Y4UB1oTF{cWLzEzf|k=hDwG#b3y#KUM5R*F z8tIB0qdC=6luweru-1cLbaBQQCDjg1uBxz%v;`Ut0)D}(R|Aq8ru`tf6F4199k#n> zUE0!?JE+Y4xgk4+JC{u1mTNxYMjrV4qx@1Z&0egHabuRbP)8=JfUwTb(fQK*)vlcu$`j>xPY4U8C`Qrgu>Hz^_>0g{r6rT&k7|nzw z#)C7dtihTv?EXYMl0ch|4C8_+zLm6RqykWa^y?hOX6Q$0bSp!AV|C{&kD=d0Jsf5% zon0CMi&SS{v@4@?nXV_}Pt=_S$7OZ)i1M~>{}?vZqF_*(p)_=uA|pyEld1tQc@Y&5 zxg4k`YOSX)_9K=9@XD?|#94s0=5Dy(Z z*ftQ~uXhh)5aJG{R<>o$1RTP#86(7OwWGV@1P$ENm?ZNE=|+14#IEQ18A)!_=rOu1 z?H+hffmg;};X?I`@1l&y(28P`im8D^M-cy!qDUI`9yEt)4PfK;Xlo8iRCj3)_sdCn zo~qZY^-TYx&_5mJ!NUn8YwD!DQSgr8Nvo!Cm(E&wWpu`;B2rGP6$JYf$7yuhGK`vP zO`x`mOyNDvM@+1ZZ$LT(zMxuez_w=QakLOCE8fnGUh7Tq78h+d@8K(?(%cAIJd)it8}9B}j+Ov)W7vC*4lQV(S^nnq}3-or^`z(NlKtA-?< z=~M(dh<^em;nV#ptCKdW<&lHAgX&ZI5_SooAEHBz9LcG?bk&Kt?*-TX{nN8JITsvg zx0BUentKDyv7`s`_>sn^c3Xg}6qy42Y0a)8gO}GpV?5#yYV3qDYt(@~+)G{~XptBo zyKD}RZz$pPhS@2eJFSmI5iLBx+dexC(nPgsv^3OR*bXt&)cAtlG=2*Da}bOLtqGch zk}<(_LSoFEDPfo(5*i%4&KaLnP8joq5R%jh$~LL%j9ts+;>aPmf|~?) z3C>oeTF9!inaaL)K`wpZm{T36G0Qq~NLMEch!+3hL4vQkKGo#q2qvD$%GV|^WmGSL zC`-)@LRiX#c{k!n5ttU^tQy1m;n$p2>V+0Bg2p^NRq=!dPKmQR@oamlSws&jl}eJG zr=c5@E>i8%bfS@{*~{+C_=M|Vx||r_Wt5X4j?M!`YD#nkOAXM+zcAHlYj-Q2w9*`Y z1SA84az|kp0C_zRFA;HqMTQo6Y?;SH7V=3fBUqk``>{F{6;JL{nbF9ee$IgrhDD7( zsK%J~j$qhOkK>@JGt??LNR4yG!&rBs+y6&s`*uI#4mh{xh9~=BkhyAFN+>utDK9cB zcOqMg332~v?4~^(@w-3b3L>HpD@7z9 zND+NlDL^fv@N2=`Il?z55ZY%#yG#}^nfTpvW+9uuMiWfuAwM$cISAA2ifzUKyPNco z*3o4n9=XUU)U6krItDlstk3!uEAVr}NQ1Oopwq-X!+;K-t+xfqC$f z_>d{eYFk-CbWO_JeRGTyq<_Oor zYBZAWD`}`9tR%_VI&3K2?q(F=Now01)vgSOsi%|6GAjQ#ebQV=Bg9!)Q@!-Y1Y3`S#L>avDR*XuTs_0NBecxRT+5Ofqq)XdC?!iIQVvmn8gMk<%q(QuPRY7}EHO$M z8_Q9PC?zvdnQTazV4^{(T_8$D#b+H{2W;A+mgPU>(<0QOM$HH_;KX;mSLn=7xp;x+ zUo=C)io5c>Q55P*`wKHHSqeRA`!*n|iix38JOf&!J?u{xk*B$3tZH|*0$3gb${uqP7)+h|Hz#PD|1lAf^c65@W5&!W zsqHB>4k_z{u{PV86H!h|O}X#DJY;(R{;bUK;Zh{_8hn%rgGrM-1~0~urwQy3Bbfb9 zswzGO5g$9&TANq%4@qy-uUQTwZzPtoc%f2n{<$+|p)&N$kU$ zS3GAd>N3@YF`* zz1W?bi=)%pgCkN~LNKOt3{t|;9V%%(8OF&L<~t`zGMvHbj9#d0i@}_%Gh->b*|sSi zyVPU1BxfFb{RXp1-5ela`kr*P(1L@eWVx1$$V|Mj_aYbTmsn5+CVpgO|J(IR8vj zJ9Fy|X_}NtIjO`GoDwzyxlY*Q;bhd=FWf5x^AIyX!3KoU1_lNN)@mOYOXC3H|w>2vVpLt`ths^b>sEd4!nE?&AfEAWN)8o7III) zh@$t{fThFEENYNf`0!(3?Fb?;QHNPbjFqVz*21yP9&%uiPGUb|K4N+YvTSBk4z?#O zv~Bn-+3A2VCNm3TyvD0U!mG@_vO7c~2M}qW4n(sif|PL8BLx-k1P@|Ia8^`>Vx3N* z(sZ9-SOmfm#A$cNopAHh?yNhnBH-xGMOQ;m{nQpfo=_oA3^k>e8IEQ8t9{-yrPYj% zJXFj&))^vhapzJLLEfb@&Y3jEu{5E)OdQKCnUag($aDycI$VaOF5;=92r6T|j0?IH ze(CD*)C@yHTGVH}c7JY9YI-^{@RbalBkHX2^af7o;VUC%Gc1iWQA9h{($nIo8HR); zZi1M*R6G%ZVriH&N>#;^S~0O45ZILVP*9}I96sP2R$eEbsM;<^IB;wVA?%p^*a-kJ zDVRH$y8sLPyYWR`lt)e}Cg$AyKy5%pJCL40;`{ucM_WcsUPe`R7151H@7K(lMILu1CFgdbY*KFNwazZ bU8afaM)S|Mg7zpf>w~xz-)J?P6OaX0+4VT}cZ9VFX*6McN)Q)6?_+qn#zIUF}*(yON~^EuI~k>h7AU z>g}%X?W*3LL0W_108(7UKG3qA12*vw&hd!@7{@s=kjTd;$1!$@V-jo>e83pT#K%qo ziA_urL%#c7y;nb7-CZ?5t(DRv?M&6H_j}*H_uYHnefPb4@VUEg+PjB-oLjA$ZkQVx zwOBN(Ma^nD`-{~=qoSF1^TW;2A8lT5rk&xsdd;df>IJRo>_Lu#Zj_64&1|kV)A}Cg zpl+<|W&E?ts<|$U>4W-^e)DS6NvXD7H}VY|)l+r*jG~32&dr6gYFS9c^Ps6#_|yJk zqvpNj)xzbvw#M=duGORtuT&A-3@`~2r!4d-TC zU8mZb`mi%pQ_*R=sqb@!b8?h;8xn)Ne?qTTw26AdG`0G~wQBwHgsIt9!4Q8?%9_wN z)Jmv;)8Kbso=9|s{b)@<5-bUUzMAh3y*~++3y}3}W1b`}_qaOlD^xIaO z`eFQgCH}n%|Lz1xhBqqZC99?q)c4mgIIVtFYc}-P>-XqK^nJR5e|PI6`q77n8hQN< z&druqu#KwOG689P9JCF)toc4UZ+pinbl=wM%9L_kx9ys>G%>Mm*m@(ML1!m^*ibdC zqUm)p_I$aTpQxyYIne@^fl3(l{qEO+3)%+Zm@_Q<(R^Q% zAsmMHCO*9L`qA@^yxJZ}18j2rbvQ$4wox~l&OWe+eJhOYy)?z0@(%VjOU&K5*Q@Fm)J&sIF6=eTd=Qe+mpp$!{u4%E^4Syr#ah ztVkqO#+6R9$%dTPPdP`rRN@=!yZmF-Pe^#))wLnC(>are#~<)F(gBYJ((2C=Yzfug z)yQjY@t!hWcd7r?$jo32*#3wd#mLi(>g-fuc5ZHJYI<^Jc1F#s>fD05P|Rm%=I6D= zwWkH13>p=6-AAKDy@Sq0mb$bg;a;eg)qIBdkXkS3ne}RQy{s`-L0sGhJERQbd9}E% zWvr{~DFr`EYS~^=9<6Dn@{p;Vq8v^1{U5a*nX?Zin$E#s5oaHx=mjw~N&A9DsGyof zqp0#l$l3d*rv6E*0p|Hy2F4@$M`@s-}&_N~`;L3>Qd9W*MlO<;|8aShNn7 z4XlZ3Ifv!0aM_o`8CaQIUE)AI<-Tw_N8kUm6qnJ_>53%^h(m$cqu9D(DI~`zc2zM<%T~)}Bx(xekjv<|QZ*Gue5s?#-8G{o z^Nc`rc%vZC4q`+G-$s=2D*})&axcUTmIfdYw@hNnFl!Av2eDCYKaoSVOA>)?|`qlR~h;Qa4g-AaBLKQmlYw zvkK^08a0#%(XWY8Z{Jk3ILMWbM+S&JE- zm>wNP-we}EkDO*Dt)&sv%O6>V1+`pgl%eG?p-sICQ5FN`Ia2N`G!)hHL;e}VhN@yv#^ON!C*F0G9kwkFd#t9uI2!z+9rgm zy1L0nH=2Povsu&97@5~-sJ^93CN(Tl-AY;0G?`Y4{YE2fFdS+u$p^FtDI@itePCtT zDog?{E0OXRV&1hehDABcc&D~JnayU$m{v=gEq(}La*&3r_2pwlwGKmN@mL@OH6t>h z{>|XmHDjICo1Pt0W=8`BnYC_tprx8>iRulL>|e&EDCtHLB{(q z2AbEhoq?_NT3T?`J~4p|`@}>niIGO1n1~f8CMLOHz7VlsCKp8hFwW8`1(DxEZch+# zZr5Ob*c>Na-WpfeVAPjBfDOpfyQETHjw6_abk2aiFs*;f8DztY zRDnwaH<9$v!P*)YH}ZDle+y!+hrL3%E75Z-y|FNf4 zr11ptAOempX)L(zV=_UXMyhJ%pLP4zBZBPG(2&N7!R7HbFg?^4hv#KE*AVZ`JB~)ix^E zSI9OA0SLRSb!++3rAtp;y1wes*rkL-cBxNgL~T)2c1bgfVdx8*>(5Vsqq;oP&nrdJ z?$KuC{76cjjG$D%Vc3zxIY^4(hA>q7sq?*UsPl(Fo&8m9hgUU0T7BSJOFJ$yct)#} zvFTy}Q~|dj?tbAXi{~U+1V!bvb4#^h%dH`OD9Yqpx|1z;9mG%}y6Z!p+%6<^E|LbD zrENamZgBYx$?4o_X4^YIAKw8ny>t*Thy;$+4LD&Ly~YaY-*av~qr%GcD1(3W9%o2s z*X5qKa|*lgVv9YKnZWT%`4}+dF5tvlbIU)X*%wkyPgWO zTdW$p?ato&nx%h;(OS-dYTbZjgxzTF{;=gP6NX^(zVu_L))mNFG^BLt0)36f7Xft6Xm5u9G+I{TaGc32{gZ3HKH z#M|BXwl6<}LfwquZ%3Y^3T%0GIJVf>rMGpyImm3vAQX61VdGMR{|&Y;x$Q8;-5tpu zD>qrlkWF@F=xt@qbj`A(%28ohcZ-n4Gi9swb=whIC_3C;~ zd|;r;@osU52?Kmo4$%eP{Mv{xE{MGTW|owv+BLM4nOeI(A}z#yOzUGB@fbfY?l7iF zR{KH(tKEY6G!D}hGFa)ikh@h3<2*RHg7wT$`mf_GUSVO!@6ZQBX?qE5ANEfZSxNV> z0&%RQCBKQsc{{g`KGDLsm1*)a%YqNDz%l_n`?TPc%Ct0zMsuyn%)(UAI=Ji2NbI}| za0m+m+cAy(E+nPbaM%Xm_Ms$pv7Lu*q}9RoAHNa1Cg*27Vt$euM84Q&PJU>|;p|!i zoL#6{LS#8MMB1vtUy%R_GQ*Bq!>brp$I=>FSubZd;nsSoJbWV#|Me>mbAIK4UgQka zqGlkb?_&jJ6DtoT2Kp#wEjxViIIMf{L2=zuTn`8);^vUZ1x@&ChzxSIm(Gejg)#)Z z7nol}uU#gXm(66LA3-mQ(>v`(albI+_2J08thVZoa=%9=&qk0*a>4KYaR^2Ves$z- z23~YR6f>_#H1KZ!l zK~=fr;M~l-e~qLUxkmn9nuxI5M$9$xyDr=lDKy_uZehGMSRJo?n@n-mdvei+z zgHESB0~+&Ere9<x? z{L37^Wt9c~GNa5X3$R3nJP(~-HYw5eVg%Z5!_Ii_p1rW)yoCcjU}*f=B! zXaN5`TnF(TPPmKfT9wl7$V$vM8wDKCx4pt5LnyfQ71i^2j zK5-_I#-jCC1UMG&s#`!P0<{~Y<=h1@1{oP=n^8s1{ctR@^BX!A{DuyCkxXxRuvH$7 z>q#_(vR$RnFpcg*p>Cc;CAJxG3ZX7=cvN+DptD@_VV3jss5}+6l0J6w7?k=4j?tM7 z{(Oo*KS1fHea{c_=Tnq^hCe^(KChbk|2orXUNdqRz7uDzd7GD!BiT>)kVcVkA?l8fKbuQ3;=YgQ|89|4RD-cDkoWrS{#2I@xP_26ah- zBM~H+TqQgbhZqHKF5QCMo=RByHVDo;k;h3i$gF#&8D5FS+(KGe_()!RPm@O&`{^KS zh56M(tUz+jFvB&&ljHZU+xI`fem}^5pGonwQ|?>fT$z)!n8YFt{R~^Ix1*tLkSLqy zgAZtEPbAUMPL7{=VEn{`<0oj;Cr;7dPHNSz)Ga}DH3CFQb)k2)1Iyvop-O=w;*;#u z`(t;it=91YuTMdu?WlF+*xYuY1i>t#v<^-c!Pa`Eb$l=uhlnTs{6-Y?WA5|(bCgXi z{`?w)dUAGhH)kjJmhJmbZfMpMjXbUGOT=74zGpFVO62=e#PGMnG@c_&{30J>fN4CM zglQc2kMKlChOy)IO3?gy1Za{ni;uJe$D!a51)~Tj%g%f!c4yi$iJ$lS5+vJ>Oyc+1 zT*hD$rOzU#CsB~@Lx=l0x(6HV6`%OWvG~N6C5d~7655!LvI5Dh6Q{RxNN6&fn~Lqb zFqiC_`+SVa2N<{!NOi36bK7@F$Xt`(bc#{ z1K1YG60sZ|{V{!Zl#VP>mVkl6kI|1&`L$}pEYe{lX0b@YfkO)vIA0A=fmg;m4Ah58 z04frNKNf+)$;}EMjf2dBqn4gQZchjZnH4yS2U%>-%nH9Bi#cpr82CIR-wtw8*sSo| ztUwgKhx!oOaGvLSKpR5hL2h8xL&zJDH&J#-JJ@o0iC2G$o`+fEc65e6B*FA+92^0i z;c^n4Apt--86bMvrUdE#i~wm;UE`12f$_fhpb=6+k|J^t`)+Q4D6(#;pgc(! z$~REAprDBQgo5%AYTJ^6a;Dq7c=+m5Q268o5w*7p%C}>os}xtA!IjCZCt$m8l3hGa zld(k!d(#DdBJ94(z#g^YdR_jNqlz9@x)7oFnsBFOZp%xZMPJvoxn}~f^U~_HM1bca z5FojH`k^?eAPB1TBgpN^r$otQq~e$nB(0tarr(c6RUx4;{(jf<4C^~Aj$y&{bF4rV znS}Zf5=>{h2&RbUK>-+=KZ+>&pU%Q!tleks1lvhEo>T%<=Ia=4eM;`{2n z!V3`l2)^TnCvnG((c~rWW%CeZE=cw5ovt%Bnxd^jcz5Pu$kga_8LAh^|A}*nqVeS~$ z#p`YE2s;7O2`?dUMWJpkUMg&vA=@SMw}M5{Gg)H6U=ez0)o>&B1|sz`14jqXtyu0) zsd%>ooQ=8}U~MGq@PElf6eAHW*}WJ5k&8eNUMi6g#`%=F#NEG45-;=Bx-|-WXk9T8 z=wGCes~6dHOBo_L+=Ou5y>!9fGSwGsmr{K3lKQ~z1+XQ-H6jQuxnx_9LwaIODZL%J zTP0ggiNR&1XOiuFEG`yebMYnHk1;OOVZ9BrrH`@#$tBx=%OzV$zv5C676LsGjGTwx zWl3~~#|vuCVw^_?GiMRgDYFQjjzT!{<26R4oKl`b{Pq>v!C8e2jYn`sGVtOJ!QAO> z4v&cFjw{cQ%=1zb0=rW@quJH#Av^HPYfzH({srbZyw+_;6F5QA#IJM2@oNGX>C);X z%78ba?v*sX#GXsrMju2h@1Umip~0fWd)vpKk3hquI@BX=P|tb(Ma89UqZ00LrCWVZ zz4XT+xy}o*r@O7rx#G=saJlZNbAFm}rVeYMkPo7CPQD%nTkF-LY_Gg>F8A+P1XyaaXr_@$i-OYd3T=pPV3~ z_IB&z3edH548#_UIaC_+B{}z=WO`o#*Um8w4;u#}Tp4%OT8gxb+}*X9V3;v-a+XBa zlP7475<6sFB{uYEms#>zPacu2bhVz89tN;Vj}XTSnog+A9W$Lg9gDGeJ3cU$_-+Yy z-y~yy8p8{VlW|Qan*^Gqakj5A&`0Sgvdb5J+Wcvw^*9_^*~wV4P2L=? zSf-Ocu!U7>$L&;-;GT;hxa6jj55*xpvDB1)1i4#HC!7+4i%!o>C;uQ87u&MwO*K#@L$C?orpW*$o%12L)@g`Yqzi6O(#CPi7=YDHWOhmX)%_( z)Q2I->&uwO@Ori#^T=}~E_{h2hu=Kn{PhmoMs^Q9T5KaR@T0Re{R7=Wn-L`Ai(!|8IYu6BjRl96qL!150;O|5p5nYP5KE7tuEqmP3 z)OtZ5uhz%&Yt}e2j;rI$d2-^!J90U0^f)05E+vzugd2`$x70b;I#0Hd8r2ocHsTDJ zxS*-&Y_UoGG3U(AfQ0-_^kwwD+y%oZpNKm2g`Kpl{D)W^O`0jl{dYRx{!4FiMR^Xx z2uq@IEh`_Q=}T%^`EdrfC>2I_`68WQrO-bL!upoA0%5*|JNjz4(M&07R~i~!N`Izd zvM&_xr>50`w-x09j@Zf>LTu#;hS)fGDb8r3R9(aE(H7_lftxw)c!CVu;w@@x3g{q> zWTGWE5YTxRk%pb_L^x-DH14P(BO{?p4UJJHsFU6Ebp_TD)>VW^VhKl;b87uE3o2V^ z)Dg+qW;d@Xs>KhDqCdEAP0>tVmx0Y@{J1TyuxLco2@1_jA&_|^8MRi!MZIbHSvK|% zE;FO3O;wyiWsS0GS*dHfQPz|zd=S*gQROrN6(dl^p;ZQbHx0dFag7wWPgKMm0`&+T zx{|3?!KT)143@sq4-bXp%QuFx6_-a8a>C(RsO7V`HI5=WxwC*1v^X_u6f}!i9Yx?} zKx_ay{5Y+z=tGDbhND=Zct9Q5nD$M0SM7qJfi}7U4bt ziLvVxp)Ni?hz}n6HpY~zF2cGfjbPuRjjO1fN>x+@tCDDazEQ~oYcK(FGT{E?wL@K% zUzU|wf#4^FzZJK;OHz|dSFj4VI{?JW$|?hXj-ZZf2ho2~KQ4S{Q+^a{9H@grfdvOm zooN{~Ik9q7jQTXy<`c8jvesHk;nPf;Qp_n%bdu3H;WG_YjDcv}hbF8A7awTwXH=ZF zT~+Rr`9)=q39g0}->%d3eiq$JNP)>{(PuPDZQzi3mR0J89}9B93tdXmsb5K%1kC{V z10>z93f4jf=@2r690;kBhy&1UQeY6r-+*D9!4~NZkU02E#ba8%L4Ua%Nd~!`vb?N} z;9@D zRj5xys8GrG%Kk|lWlC5rNB~~Cx-wgF3v}JaNZcER@}F=_G7&ZPI z2UcJU>77ZokhTu44sNZ^i`fMU@SARF1$ff!l#zBoUfeR^gj3QsYLG)b9D9guw--je z5e6Ah$L)o`>_*js@kMPfa0(B$)~oG>%;G4Y6c9o(b5F=}oeWAEU|G zV(5rxT+k=N?)NdUN3G>vmzS7X#MEr7U}RKNEpJ)~*XJ6KnVl?Wm}^z{dOdm+H`0j! z?9O(okihxH2;d}_3V$vRm;|zwK8W0&R7hA(VHG&kf@s$>aqwg;j0=fk@x{S^$1oy+ zIQV<4Kokmv`VbTcFTM@ujJQO|_uU9_>NrA#tqELFU&kf|?8;q!mcrkeUmSny^#o)jF3Tc_q6cZ z;$ef*`hrMshA*gjc!5l1CWQgXm%^D5d1x&F{P8@rNZXi4iCI~KPNJQwQa`qE(OS5k zMl3zTQv;#7&IUABdXr4{Em2q%^SY78X@E(+o*qS^E}?jw54%b#bk}Ru`sEGgHn5R$ zQ)}=Jf*%3?uN70BbX@WifIy$)0(~HB!!~d;yIUc7JK^>-@-O69%3EVfxvCZeX#zQJ z$iB(xG$W=nxvqUV&cq6;FFlFet-3a!=P=P9bVGV;KIh7dX3ip}ZK%w=s8p_-&!Cw>7r z@P8ID@Z^~Ft8qXeG3#fLyA`uIL~a1gauQ?Kqf>p{a!zrbixv+h`qFCoes4V&s%V{ofHoO^!?dE6$)LE`0;JTXBiQ;0C~@pG=NR zzAIF*#s}_DJ$5icR*bo-zX4?vuj+TBP&ZsU=-Hfc8;4j=L#Yx+{$9iolH2C&%xu|q zJeOU}&dqJvc08Avo}Qc8g6+6yST7;l@yiIvl0m%}G_aGlZmpy3*e8CUXR*_F!h-Z~VoBcti>vP* zN9bmOiyZ$bYA#~xX8#do6YFMwz~&%ISogYohM)Me>DZZlrC4DGqA|EaScT=0$Ldua zLuALRxs{Zkva?3qb8`H!6|4bLsoSaQBm#dc0%*y#!T%Zud;%j&FCcfTHprnFM9Lm( zgMSbUAGfRx{=gy9$0@j!Yz~e`PCy4a`X$j-If17mCNQaF`L%YF_KuDdu>)vWH~Sk()~6j5s>5Gr{nEBFHnsW0bSDV54n4>UTx>_{-g8_V4QkoiMY1 z4=a$I*%vsoKZQ6JDsC3x{-RM^})YNv33+)AA?c+8j7 zIn74dvQbDqhy%^#)RRv>nL1gptMw3n?@3z{!GAUa!MEc?_&*5SKf=KrVCg@Vgr)Bi zpgZyL8@7LPsy-PpRY{rm-hnpL^VZz~xnSA5RlNkx^Ra=`mQmmC!6wKvJ1U7k&2T*# zhkjOYXwHvk1pn2kz~pP*Sr_!+z*h*7S(#?#!$RFsDwlL_WwX>K0%>bmPZ z2QQGIHyw8HSyS>pfn~+q$QV{mBv1yH1M!MjXfA}*DjF+ESbD)kI8W!TTQ%5Eqp@@=bTx{?H6ozJ{ife#xt(cMd(-LD? zm8T7>R#rDztRa~PrG(+Uk7Iot+cg}M>~$@Iy(YK87UD2kp^}##MQ*9yOPP=J-Qe=o zV;k&SVy#>u`)7QQoS$GTONZ4xEcAVl6^L4jLVXC?U@z~84Rky&7;r+pS!oY|Y7 zvL*~WY<}%&n-YD084%h@%j+shZ@(cl-u^6Eie*j;^K@1(5X;JuX7 z_L+!jODbp=+D+9;NAP#Iw|0WQ(A#&l4GE^-jSZ%@%6rL!QjoRAQAd7(5kd!sC0Kft zm6bEEV57a&;j6^X!`E4dIcG}-Ddi(PL?^{$?`^HDC$4Mv_W;<$ipl?Bvk@csNkG-U zcpol|KVCGho=6?H>`fesf{$TME1qD|ZH8phH73p4`Dzi;D23Bqs+#4^@#@;Ry;;)~ zPd2A$oJK({kE>;49oI@%jAF5@-OuG@t{6mD*r5))T5DT@jyT@vj;}O=f!d<=I7U@{9?o9?@~XB`oI*E@CQ#J34akd7tS+5{< zxOie}dUARiiSEdG;^Oqo^kO)1A(Ne7n3zPJP2!6Wki`?+ zF~=*(JI4KRTT;orc6wnpoF3UTu^HiI##3~srtl@ushPzY>SzE~bF+&x;k2pD+}vVz zF;xtWjpqEpb#q9LLT+ANv%^9x_JVp11Mjq(T zG{Di)$l~O}R14b7X3+K7Y)elm*tgd*ACb39rx%n0xpP5@&oSARI z@~LcQVRnA16`7*?CAO?$^oqtG=+$JlmBeNjvV?PinVX!N`PQ~^=y_^>x^)0iePWwO%|_<(u!ZX+SFf#e|N4ny)zmE zx?L$Z^{hULUH{VSv7<&BF=A?Lkjdf)P*2!j)iqfh#O*TB?X+T!)ez|)_Uee@K?73_ z7x2{VW@#Vg^ezGCN_Nm{(Itpw>2FD!k9p6Nwo$7$9X@vQcK9kU$Oe9e22KG+cGGO} zc+>>N+)sTJWfPk%9${0F*ob}61V(T>HdbM&X!A#=TH|6AZ!1&oJt|5-lTA&sPh2@=k6a_AM|Q{)S}03)3$tgTai*r&tD=w^={}P7 zNRL8eWXZn5QaMabyCq2D6OT~z=us$lEZJ9BQG}ZvYXjl+NIT<&nNCKJLJ#A~BrdZj zPvuJS5?qU-Z?5KqC#fv4BJ7?f{-g-aC^hFMkheiHgL|1(lE((|HtLp#@);)ef*Q)hRUv&pq zP&x99=INmtXS^C8z9UfK@F`ubA&BAll&`ko0#8&ZF;vw)Usc2Ys>IMl0nBips zeZ;xl%v&|xFgJ1q+-Q+2SXT2H=asm^*0jpZ)SZKI5!X#1{dzO)4BAy&EjJ(D%>#=6QYoyfeJ6nRHinwT_yG;RK`MTGUDnFSqapafZRXjMtR= z+NhWDcF?XCa(T6InZBaoLEPw#IdTrKRjW2``_+6OAKvR6v~WuXNgx{}$TX31$g=B3 z4G^kSP}D+|ujMIPSz{@=Ylf}om~##~j~3kmwC~6g4&a7mT#245YgaXZ?swfTI z4gx;J>-G8|O5YXy5Gw54Mq>c3Svo*e#+aJU!7}cZZct!k!pWv{lV&!ZSK#6n_(4G> zr)$*F49+D04nqhsw}xQ?B1RFos;wCtO}OwKQX6(P=OsBe89=Xt#YUx;lPCzlvIK(# z3&q{esODCd!jPM$-%F}lTBBIaZNSif-nk97@2aKYej*Ap%1bgVDcCu7WiLa~TXERL zA{QwHf;2#T2QU~5#K7nbl^%4n<<@ZPyVV3QdKEpP5sRGFswU=!YAa&OZ>g)- zOktxRpx#<}K9wZ1;lbnc*>tP9AQvo!>u2F*2{{YW3bCp!a(9;&YuLe*1>SN*-B zdh%H#q`j=wGlpibu{OX0CTQmajS=4k9pT>6=EM7)*8wXlIZ2>$06D8hIP$D>o3&}$ z>PAk7=NvrvbYSp6xk|`?z``Z+cJ4|8lug|173`hA=E_z0{BhvE4!jio!31)O1DqKU z=?eNr4NV+E?`*@y3~)~HEbymVpz9bs)^M1Zh1JN1@);FEUy4i1=y8DYC14E>Iw5K| zxh`6|rrBuZjskLB&S`XBJcrB7iPf@h-%d5tq+42fjWf1qoqd{lwTYOW&VJ5NK*2yp z!{iQkIovnCj!4UdI=7=!KrR~`7Iom}cw*rC7xd3s&f&l(+F77)j=9xEjFx{XIar_S!NusxDAU?=?B4Y^qJB_^hYhd z8GrarlXK9IFRWJw3+~Z;!cm?=j6vk%kn*SSe1ISDtAeBa5(Qb-SB4U0?%_ayCf0d$XJOMs4-FV|DC`*7bIvL`656Ra-N=SGsw9hqqrh z>UtCZyG_-s2i5dF`iQ>wO4rM&u4^0Rj*I50xm`xpK~-;WrKvg&UgGy2Q*H5I`>LIG z_)u0WtF~5SWp=aXz1^l|Vjz2J77gf@cd%)gnrXSZtvR~Ytag8T-w*ho_jkO#u3D$o zy85U$(pE8Ox2x~+MoYmg@iZbPcWPRfVagiU3tWM?V0N==Waf>i6US z2l4+K@c)|tlF_wRbJ1z51oeGwOir_}Y2A+gnEqD%aebGr;QvGVVg1P2kxp4Z>g{#3 zifdSA&jRG}agS@bO-=gb{rJ^o4BypkWlniYcipzLI6YlAT)k5+V6f9aVW^tc(sWzQ zz1+0Q(=F97r!%1N^wm>Z3% zl7QbB4EQuw9rLXY0u)sO%0moaM?sEi-B#PWgdX0hWw0Toysj)Nr^{BeroOkS1gNM? zDOqdEW}VlUy~q1BBF**v@?7<&1E@aIw3$yd(lk>%eW9qS!)oS_V%V$lfk425_%fO|@JgZlu~3y->HTdQ)QzgLt_Mrbq>*%4)T)6`X7J zoPs}#YSUd*-qqGj<#|(CrV?F@{TEYb=Iug_uD3s0#oNW`dR{Eeuw#KJs(@0As>(%? zxASdX{c}zSEc9Up#>e$f&`R~gX94p!OE5p`z0v8E9k5yOeakFWwVGiXF@EfQuuxF? zFNyMM0X>(?@#X%90z>pqGj@cce-<+7Jg34iAt+tEl%94E_DKZ_RHeZ<$oc~YI$hQa> zNl+CK^LA@%Z5vf}x7B2l=|7{|e}dMr&n$CwuIt@H9PqTQsVn$b8b6=A{$IuVdpD0L z9n)7%6cC33TyRN80PI4&_T)%EnH#)^{}p zis=6xdZ=5~Y`e?2{}1@0M!A39+iRBDaJt@zS%&`Xb~PEdh@8HGni45Mf!dG?A~kXL zNm;5~{21nSTCus(0R@?q4&a077>?^GR!vz^nA)pc*P;I@np)A>3!sl-D?lxjHKD9( zRpmMqP6b3#R?7xxZe3{?l$R{lm}_?`uA;{KxvnWStJ$=!6GA$g;ys4?zKw-MpQmTd%z@(te zjVl+lwx+sla!MX!$7YAa5zr+0U;2-8GRv1i43XNIGeyT_3x%hJpKDJhkVB%9FogB{r?dx zAnF>=qEe^a*nxji2mE29)waM5IFrixPoUiPx}rLY*$!TD_O-^|u8FtMZp)T!(o4s5 z#M_qYwwspQG|GkcI{l*W?WUWnLCP!KQcz&;{r>28iEnZIUDs=FT!HATCM;v)AYP`e zB$S(8k*A`t7?eDI z26g*FGfp0V8Hc=7q4cve|bX6AB0;(}etkEv^#Gd8JUf2K7ZluZFj`<@s=K%fwQ3Co6 zPu8Cq1QCTM+aUcgBx~9OTnM1{GaBRJ!#QyGKiG5Bcc6tb) z{q+QB4@&HRI0%g6#Qq1U)Q8wF{=!{5cEB8=RIq_@wGtPJC0}pPuS_cK@kM5)IRj<@ zU%(l%$>qltHx~HpEYy_fu zc#hRWyR^H8$_=Bv)v4=TwQXCDW0ad(sME62r1~1zVUjFot@FXcti-h9M)=84o>XQg zl@)(FRD%8(HD3)V@Tp^JPc13!MVjE5H07Um2G|yp%Rn*wT}7LXhd0XqKEoiO!Pb>G zCY1)8_cGtyFg2ZTgD?Qn*`eWAnMH`UKrPMXz_2y915M*h4twcmxo1J?IM`$_=2nO~ z7ipL)e9HmlpS754<4dtHN1x71nBZ*~Zju zOl7DcBjsxgQv+82zY|#f@PhTv24VVvV0{IpCBb^XELh7L7$tK*`jVB4hNxs^T69FA zf0YbIovo9pk3)QIRDpg3b%$1<-;7GhGPP&NeAL?o-?(I7^)5UGSMAfeCz|f5(@>^g z?39U3E;2oM>BbXB<`zy>;Dpv}_H&W_9c72?)y*gB?y1~U)6|$yU|)@<19Vh+t-8={6Q}{=0)IIxhS*si74Q{A@w`P}B*J$0m zL?&pEK3wXyvvm3LD*;(DB^7k_}z)F1Ng2a zz*jchdI3oHklk`k7?Nd}ekcW|(+O}&2h+^}p@yy(%;v8TJe%E^3qmfqYg?YoPY08U zvZ%awx7Be2gS$SGwBK(WXQ-9sO7%T2jYB9I@=USq;4~iXnfxcb>nOIzSR^;uZQ7*% z;XycLjNwH5rFs3k-X10a5?ug|pX~>t_+H}gunPKLc?X|U&C2?_*ea|f`j6t{3jB%Q zGCZ8ZeOV|>Eo{D4G)=+1dh?hXVEN49I!wLktl-Z8!yw>WQ_i02K{J- zD1-1ZS|34QjbEac9&hk9i{f#<@d147Yb)C#JpQ}D<1pah3-2QLhGMnJ^Q~OBI?XEl zDC9=$z~e!?psQE0#jKlcu@7b2$*WhD8r+bq5;LayTZ4;}@F5v+9|mO!%NQw)~xHS*3 zh@}S-;34($?N~4A7(!_AEshp6G_1?Ack|A|l?#kK5H$|0D9Xx+PLw1fEdGJy@(6v_ zkNSp+I2LhRhJb6IQh_Y{3&5&Jzm(kdB)h_BL&1R&*}x~I zIczqn;WKhLkO<+L@`=TP*z$u2y@Py5PEH9H5{6HHTp7KJ)UCj zCU)=vE_17A{K8-AZC!)moTq~s4CCSZoHTdLc>~xI2i+IYOiWnk^(;T%G1<0B4*{LL zfGPFR$$);o=LsBx#kGWfzUNRWc^?+Af{Pyn@g7lH>Z;_vXA(uk0dNZ(b`}bp?T9x7 z-f;AR5Lk^{!Dh#EIS3JM(uDQv(oC^92@{<7yLct%w}SXChJ;JX@nWv2w#ro$$4^AX zShh2R2Xd)YT7?S;5y-=Y0qZx5<;@ohvy-shoq(4`GxI@j4CKSVWL#n9N(PNm86!%NGhzQI4nuHgOB`pF`79j*MU`1w%}J$7#OAkJ;05yI zyf64l3#(O)cD#AND%k*=&86qmrla|erKQ^8l>(9E(hYgEHxE-F1;DrD0}(?4OsMnF z1k|<+$Fa;j1No#h+o>58miu?odZs4QdLAo}p-Wo2HRc1$A6`AoJzwko^ZEShxc`c~ zukz!kd``HHjGV%@k@1cqW5BSr1cp7lg|a*d>kcfGD=6K&+vc1+s`90pB4Z+KgW+qj zR?hzZAc8O^DdXGi#>XLT63r1GW}+%xvGL-2ZI4xGd>Rc3)0iKc86U$IZLJqd#aC-< z9W;%tb>oYeQRAOtc246r@za|hdPgmqBSn>V)SpIU8`@ESs^6jrtc~ob`N~9bwa<=P z!nKWWs-;Gl()&t8)en^HsfY?5D*O*YpeE?(nQA}j)fsC4p_i~-*REMj7ST>|opBXg zYyk!+8LGyAOzSCao71U=Fo3oLuLLz1WWKdQ)i~D7pANzi0!vR7`xhAC zMpffKr^yYg8vkEZ>Zcli9^@zD-V%e{Qp4HciGC4LwaUz5f`6QA*ZF7d>TiFNmst3LUNCYNCfQ(lf=J3Ya232{ARy(5wbjDlHiLIMb~~Ni4fnm4r!kx zqz!%jKXx8=e%CPTk^NEKP)#@7*+|=uYjDLyd@zC=ZN4GSkI2vbKWS+Owl4U7=5s~j zK>}o3VqQ3RVjv2a?F%Pl`vN@#Tz2oCUS)F7w1VBJ+gF8*vxA+e)X%=~=ddqOggWg( zXS8E*ld$b5oI6W5R&GuzFPO*#SW<3~^UJE^H|-NwOX{^cDqSidP`_9}Sa`9p02f=K zcm=`xvY%{*N(6Pu3pZYHEw+Cj&oLwm_eSB4`%01zjdeOMHn-@Vy?}d3nO0VqpDWes zz_KG)k)-|dAX_p@6bQE9;XtEXXy#iBN~N0ysIjEEV<0VcEwnZ8ez*@Wsk~EA+c=G* znos(O-8}UpmQ&E|Dmu9#Ah$S!^n)5!IjMoA8%b|brOHeNNgsVLpK9Ccdg7p*@#z)j zm}AaGHjL!X;rDB)_NrztjaedXY-#Ka<4U25PO3OueUhio9y{$br)QXJ*Z=DK{p_)$ zE2T4pFGt5hBgHle(7N@tsS!2>$h}Phps&{f2?WAPNf1uMTRI*cL`(_os4&+GBi*woa zP98trTklxmWD%NKR(}h{h2DC{3nz+*Ys##5;$&~V6NTf&lYQ#VC-ir+aI84rr`|$B zz4^ji5lUy~I2RJe$xy#vz4@qpZ<~@hPf)fgDXIeboN!^Al2YKZ5KvN}YE&T2;(qqc zShe3n+y1LuM9Nm}i$4SLH;iF>lS1-xxRt%k^y7iWWO~hhf-<#cUs0J_voDFK)$A`W z(`xn?m}xcpi_FxTeT8Of&A!B*UbCOzOt0Bbbf(wrCpQ|k2!oqy$fBmU}1zT#A%LhWa7Bx_3M!8&Jd(#Yi zuds+GMY(X>Z?w1D8|Ct`SJxW;8~vaYw}$@{R^fI=xy-$aQ7%E-L6pna2~Rg1 zQ7&IaYa5Dk`8WO6CB$0vC62P-ixWlHI}zpb2_S7a3XgJIrh+V(DXTW6PVwaWDL=Vh zO1nQq;qF1<#FUxLj2udB$;ik#%3agZ)OVy%;9$pQnCkE6MT zQ+Vj3ZR8O{!@d?)wRI;iPGEdZ4lUSU&L=G9@Sf)5gDk7yP>n+<-Ro)Qs~mC(I(H-8 z(;UU`jmFeRTRHcIEu<1H0kDHoNqG=(#szT+m6E9><{FO$;QulANmq@ETVjZNiJg|W zj0+*?z;+xZXPNBHq{9Aro=(~Wo0i|5x2|jU8QZ8vUfPzc8Iii@ah->T9I&P%7hE>n zo?gyrE_!bo6}jNExGJqFzj)7k-XlMruDBLI1P})oL=XCVozF6$=MN^J-Dcc5|D1H} zpX8_|yK}rR597-rh-gnt%Yq8VtXjw&)*_xWpYZWIn|6$T%40xc@AE55g zy6Nw+MMw$;3zg~fXJAbvX-a{eacwl;Lr3sNl`ThGddco+zDijl*xVg zA<|;n_-WznEV?1+ovPVUQDA0aVUCW(JdO67I4}WM2o zma*ER@`C29V#Jk6<(-8|sW}bUoPN2vSRV%IEH+N zc95aDV^Mhqa3LTw4VjJD(E*870!G!qHOzpQgNmn@&nYj#h~lX1$WPoEXDVk+>w1%& z1%bm47zo!n)Skg;mHbO*pLqrs2+ZVX@b_#X$NMH$LkCgQT?fw?HosHO4>(Kv2lqZi z|FE;kax2jjE22fDr=IGwb2D>uQgxbxBUOn0?5VymcWiDUCvp$?scF$F@>9I}e4%)9 z{ut7X*e zC_ge}8VK&UCkXCgO_|?I6V^WtVZAMY=?J_#umj$fzY=M`4hdVtNNy9^9W*m-6WQyW z$O1umVPHX->Vg`%E7;UVP3@U3s3+MjcmNkvQYp zoDkkd`4tB`1$Vt4lOO(Aq{j%*!UMK7!Cgmb0&&ZK#*HLSI4KFPAiXpbNtvM zb?s8+3Y|DbhfcA65L&TXK!63i!DDHRf+cad5Aj=G7Os$zeBDR%i@5lsjhjGDv0Cdb z1BX$s|8JUmkW6YL}_jEqiVqGucvA?~}zJ=u!C^wHo=c!5|P9xq5BVN+u_UE?SW zYKnu$8Gmv{0H7qA0&?*CPzvo|V*db*6#(d!5pl)E^dedm- zFU@FEI1qxaSP6mSUw=}w;n%TDe#46op%AXTdI+&d3j}y}F={@*wTkj2?!4w#u((ED zcS|@18@{I?LUEhA=-#1i>e{9*5YHA;S0GZqkRVcr52pD1Ai^~WruYSv?hU5kvNo!7 z-R5A57Y5Q+V(QG`!4%(Q+C+v*8jqX(BUa&dCa}y8ac|79$Fv4*2MH{@_H8DCMYJap zSibKg;m~)ney`uU2+WNf)5;eoim&|=ScGz|AKJPYwZ8_W4M*Ymc_5LCV@sFPfoDmS~bmRvHV>1j)!_dBbwE<3P=&xR8pa)etg5@i}4(llD2>&P)MM z2H(z5uF6DEgXOARiteLMBFP7#MHQscR1$}ll**$Rju`QV>xWZ16%3GLLONF<^cDx# zUZEYDm>YIhN4*@vVf0cNlUbE-p?%A8$$)m*UQ#YYW2@Zw_9uU3_1mBP>`ffiDkhOt zBoGg0i9%!d8b|EhdvVXR36-$x-K(v!OcrO_zu&p*jqrP6x+@-TIWKEX{1`#p58{Zr zx5ORc&l4c9FGEIADK@)}Bo_(b_)Y4Og}>O{xnsvm7DAPfMT477Sag&|C!=a+go9c;ErGRauaHOQ&W~vN4bpfCp=sgF=w`R z-C*?4R!O0zz%svD8+RjHwxTLd3&{vmxXu-KDnntWdtI>&u{wx6GlT1u--DnuXX-`Q zw(6?;UVbr8L3v3>h7h}?2e&cfzU$!PWLvA_iW?hyBb?-n8Iz422m0DpwS$;D|FUHh z(RWID9UQ`jm*b4v^sw3E?GY6F}ebY?54GoiQ^u5H3d2BrnQwCdO6lm zCV@6AD$RQbSuT6nY?AvT9Z95~;zMq<(U`a<&U+*aoy6cDOhPuPiw|vTG7o29t<*{O zJVpal5rf{@mMZ_;rbhUyKTI?u&3aQH`^=_5_G6r4zx{!aZNT}gJfgO>qfwE9?Kr2px(EngIhxI-yH@=bsa49tEjurWT+~nT)3fK#Nwizt!$x3HbDqVUN@rnaCSn`HNbK85Rn~&-;18rd47+kVR(%-8@t6jrfE&OtaFRS*2IGLr&LG<_=VR6eP zLr%_3(i@;UJ(7=Gee!?Um|=?xcuvu`KlUJ2F*Gvv2tcY7lSs1M zgBT*&7~3=}dF*CP(Q|vLcoj*YNper>Io?Y;4Gr3%FS!Di=)G-|kntM~_q$JTu0hVS zm%YV-)+-c>fLel3{M{I;XJRhjFEb2}3&pR-+R4Pqz`d|WB=bA0!G?i<#7@jNzC^Ip zyAZ+2EkQ31%V4b=-=SG#i9aB=fIsZFMcID)-53NiAt@B`|HbAGU@pWld0={x_!hM$ z^Q|bKzT1Z%QI?p*E<8vL+?9(qFx(vO8ZSs~#RoGOM!c6W;(suxWOwc}wm)S>qljW= z@v1nSw}@j%GPreHyJssIQ`dSWvcxjQ(n}`%@T;_b`HkShQB-1E<7c)4&eCY8;Z33T zVyuB|?D7?iU^-FMjt^!q)V@KetuO#(cOF6Q^tK!S61d;^Eh2!Za=>VabJg_PgDMB! z7bhm@B355wJDsM>3}ftFz>(YI)5H$BtFj0G+kvWp8xF($YlwEJ=P0#~DUNHX1zG@e zV5;z)*A)lub7uRp%8q7V1}E_Soh&fS+RYPlnjr7pbKI{p_aZcV7>6NKI$YRX8D1jEA4v)VNNNn|65G%ouzo zy9%_%o5V<~7tvh%XsIq(s@M;0MmjsTpfsmblSDG|?Ki zWCgY*`z`KQn27il&RG-$vIW5;AEI_*(SP|3Co{YPi1mcl44BODHA0kOlNtUaTcYe_ zhL7MrZU1mu0KUCWsBX4%;uQ}=Sz~Y4#9NqI+mJ|2qg-gO(=YmrVDenUYv zJeuy7RFor1?DU-+MZ(YE3w;YuM#7#V;%{B;^;waJg*kFvt8GClt>@aMYihFt#}13F z$1A6;R zqs<-%FS;BpDv!j^HsH}$@*INetEUBLxP7jKtQe@<4`=qcl`@kv3BR^J5^f=+)X|352z- zwEaSfc_ggCXaWd(1&qEP=7MZ9r)}m0&c4l@cuZ;8;d%G_wVa_^#2$({R79_qe z9&nde@xh<9ukOL{s|@s+yFBjBiBQ?_eCmCJ3{EU_Lr3Y5PYDLa#~NR71x&1Q2!CmE zrU}*g25>UER$IiTzJe7Ghv7*XNmJ4$PP+N$4Wa5CNomT=lcFpnsh81ZU2P-tV`@%n zc$AW7C>?}ezTrw&f72DRZ0NK4j^jn#Bn~4eVf%|DW4yoF&3k)X%T=4*vpc+;D5F*J*r7q}^bS-y zwvF7alHb9KcaM0}#Eu6EKKqd7O%aq%*Sin7LF~Sp0?tRkIR|DH#+!Gu-FXnY?TsMa z8!=wp75(IjH(KX0+?I`&MsaX4_E1PF!o%IXLqzD9t9Z=$j~$zmiuSu!rBqfctMnBe z@4*P|^{#h+&9Yn*SA9qy&+hd0J2-{`mVnY4rJ{84<^ZYTI2wK4?^g(3+=Dn$gp|P+a1D7*XYcZIy4nmL_jvaqvJ_Cm;Se216x!qM zscPj;9qk>suG%J`MtgltZQ;!*z+cg5QdqA8h6xyzkfmf*QL5{WcHG+3{FGzh_ao7d zCC#=iyQCulrK#C~I1RPpcD;if(o!pXSSwxc(b$(*6OC7hdJph+!!d~3k3>JjDtq_R z9Dr*$8=8gM!j!k4Lc=<0of6xtc)m+ByWRsh&)Kr8rK(8Cf-weg7=Z~0yLEzyQ3b9F z)87FceQlM(SKeI)&})AcR;yBgf&eUgfgC4X45K!w!Gr7#LvC9B@KxKmjeY)#CL?zh}P_l%S3dBOY zSde{qKlRq)F+lWyU8}^Jr#E5qPl)E}oN+?hRn0CKnp#Uoux>nMWPSK>ZA-dk~rbWnq54=nuwU;}fY~p4Q zuxI{QVriWmxQ~LDVmw$tPH})U10rg#c94Py z4rGayGg^ecbc_n4$K8xC0c%=i4Oe=R;m6T6%|#~B)$+-i+2bdw^J=AhtU5nChw2V>Tnnm< z5WQ7d?Y;Dp|IRmloj8J!RS;l}hj-z{K}eOV)e6&$8(*W>50zo(Y{8%!NlNZE{t_3; zd52&J?Q`K?V+{6u&rej2w9%W`-1uc0nIxVg0=(mm(k#fKz{DM!$1OJaTWqYi*r0B) z9&fR>Zguo~As8Ev-2+|tSmSZ}M{Owhr|}pj*EmGKUZG!y=@(^qH;&LRQdBzLei_3V z9QRlJJEe%K_#0wnq8wja`3*0J6$eGMaPd??G_2@@v6n&V(MXG2|o8E<)>3F{C`2q-E9B> literal 0 HcmV?d00001 diff --git a/.doctrees/examples/chap_04.doctree b/.doctrees/examples/chap_04.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d841e0b8b6ea034cfddf5818f0e415a6545cf173 GIT binary patch literal 57899 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 aDAii9K2ScDST|LsrQTZ=$*5@+v;Q9)tD61* literal 0 HcmV?d00001 diff --git a/.doctrees/examples/quick_guide_igraph.doctree b/.doctrees/examples/quick_guide_igraph.doctree new file mode 100644 index 0000000000000000000000000000000000000000..231c7745d7bd0a53a1febe0a0e0873e9e047353d GIT binary patch literal 31966 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 literal 0 HcmV?d00001 diff --git a/.doctrees/examples/quick_guide_networkx.doctree b/.doctrees/examples/quick_guide_networkx.doctree new file mode 100644 index 0000000000000000000000000000000000000000..980ad121227137e2c8533aa0696eccddc088af84 GIT binary patch literal 17701 zcmd^HeT*H~Rk!2)eD?0zPVBlQsfW0>-!A*!dgD!EZ{k#DlbB%QG*Jiv+f3)Zx$n)) z&YO9i4|_MMNzy7b3%5cjgG8W6RB9=pKoF>eHbo#IA^0QW5B>@iX!{3$Ap#O8G*VT5 z=id2zU;FmOi7M6d?t63Rex7sgIlp`EIs3x+Z~WN9yTm^}=eG^h*{Eu|?zlShBR-|O z^{~a9AbKU5e=)idmHD)%UH9G4tFwsjLXEm%+PcS_=xS6pcJUd*Y#KIx0$X#MX)|No zm@p=GxQX#^LaS7iK`a-`FB@z8=r*0?*7|&Y zt;T~HowpqbW@QYP!4&kr&{))UD#wurVQg3pIF)^~4Er5mxb_y{Ts8iTgKl&<2g z&uERaXSBP|-nVjgd3mK#J9CEJv%IX|t1q8AbNWo}Ozks?%#52Yt(n`#w86*uGoo~L zHKlvqwY6H6)RyMejcU_%n>G`wg)BheFNq43nx;2d)xXv(DfqXl*}!>3 zp`W!fUNip4_+#UB<4hw8S2g41Yc8EJx2#)M#GE zDBWr_r$y)1Jf;Pv(^M{y0`etQ)_7NWwuiqp+#aU&kXd+JRu_i+M4m|57?pTzEx`zU zuAWRw=taLsrn?jJ#NFyl{r=7f`d*Hp^93dMy?CY1C~eQZ2CL{RKD)*| z%~k@Mjp8;GNzYXnkc9<7_Jsu)7)J@A4m{oFVDBp>QY#vMvuZYl$ov_D=_7uoma zWjEK?qoXhDWH;@5Z-7*tbV+ii8WZ)GH#vz3{|V?+p;;i5qnMn$R$4A-rTL$CL!khK zPG<^K0c*8`O{r%T&4&WEZTGsrnh3`ZT4c+%c0}Z4+4tVWWj}yr<0M#jodCy3=H<}5 zbQ_RoVa#>x&8|0SH)ERtscIDm(fWF>1|Pe8=4whC`5>1KHSz_l+V40u!YkmppfGG% z{=7X!zJ`#XZR~G|4_?-<66KCsFVhDO+<6<_DKUJEZL~dfU<56jj)&GS%f_F>2mAt4 zPEC4WBEFA~9_L}kFX1z{97zg`qd}@+U9;78y+CooR(q2q!fBV1qT~=yr5mNv1?3z* zt3m;n=N09cf`cCl;>}o|U!~kNqi6c{ru3Dq^qq9x!>lyXyiep-Jes6*671)~n)O-C zB~dG}(zQO{RaVqK-As^u-bJ)^ZavHu3UNU%8jd~D}5Gw02S4->(lnzcI`XcapIQ%uVmJ>GX;!q0INXVUS{9 zW1Z#xO8AOv%XB2?jshwUf;Jg(H zILTpFqqFiR{ARwP)nL*;DKxd>)-3qx6t+=k?Ev`HVbc8tE{@h%a<~lM{56O+JZ4Rh z+!xR?AdM0cif7pWFklV=U4dvaTs-&yK=^vV0pJJ?mjZv~ ze0JfVY?;0lGJ<}0M+Buqz`vy}#3A6-f^aOQhXC6LSW&@QyeVw-a-v z?=NF|4!xIG78TqBy56~y9@9^zXk37I;WO`QmOyvF@av3%UCymk@19Rg!iPO<%9azo z*fI);JvIz$QV=_b+C43XWK)O55GZz_ttblcs8F`p%f;6Vno;PeR3lb$Ix5qRM}*vv z14BqcCIo}EBPpH%+Ht>dz$xeLrt9H8rj)dGOcx-U$v9)8YSbViuko3>M4Ksg;xuc&N$ad z`LGi!@CK|v!od-(K+;^g6fgee$X4K?0S;cyY(Pu4}jS@OWh8nWOX zQ9$2M>iD$`TW~ctFw#6QT@`&xKauz<%*-RS9}0V+M7v6Q>h*X(s8m$GfX>CF$U?QT z--0rg3rGIr;s~&+T+SwiiQsr5k0?L71V}~oi@ij36wCPPFyfk8#+OjLr)89)TeOS= z-8;qYJgQAB_Hyy9;gv$SXQU8$RTlf6kBj@ses>(!-+~-NT#|J*dJpo>kc@ zI5}3NtLE~FW2evFuZiD_iukDKA9V3>wZn5WTH{pazKv;js>k=^$oWSYg@2KxD6H|5 zJ8|T6sEC2yo15QpN}K=gL7SbrY~JoekGYODCTg&&Je|$%v2ITFo=sl|&9~FZ6gPF* z`ZApZ`}$@6NicK>zl<@_Q<2EM(K+UyVa$OLJ5vPj!yS`#A~5E^7ZA3Dvy~jq&5-qe zdDobtydF_%`QR}EuLBVE%+sbHYPR_-{FijSD~(=9spK`eYR-b$JHyiVrY*!e|D%AV ze=7y1rUNWYcb@V-wGlcZ>K-#g$Oc7OUyJ8S4i`ZIACTF`4P)3e6f;mvAK_;R-1JO) z6IVLE*>r$ZsAWtqN3%D56Sz9@W`sUd9@B!h?FP14BZRHPR~>hrV&@;`DQ0}RkWzUk zNclg((S$!EBITrcjFkUpc%xWwHjG`qH;Ijv0qU@N5y`{ULMw7R{{R!^Hxhdqi{UoARhb4&>a8TpStIW14A{ zI)4Ij^GQ&AwYr4=YAr-)i!ctgr(^h_a0{& ztlgA>5IfIzFGSW`poh=*!E=P0J4C#RWQIp>(sC%827&q3Uty3~7j~ib?cmHex8rlN zJ&XyuyZ#0Zb<~nH`Tn5+{r?vItQEk?SV>geat4z^c^8By|PgdS2& z_I+Z1N6g}m&B%K(dq+5ky(_re>mZh2g4~S-4PlLhh>#1(#q&tO+ zLMa9!%Jeo%x{C|*70$_PN_=>qeVax$|=QnJa7ZejxO%v zrKAqi@fecA+0AF`p+~8>YMgj`iSJ8FMB3~nK836>%Ctd3@_{sc77 zV|t5$$1y{1GvWsut{Wi1nB`tx+|6ew#TG%h>ITJQAk~-8QYcm%6cX9JKDxYJmM|OH zvrgcv0w*PD&loXo5a&UI3?8G{Ue!h>3dna0FBv#3B#-0#0NXG@wLl9(KPw&ASuJd0 zxY_HP=YVRcfw0&XN~S^nI-^B_U$Zh~7Kyhm-2fx2I1CzFC1xG&VP%mHl?NzN7e}qcPu4Yk;izNb_#n zA`f~diP07^8Sz_?kLUXJVO$fQHwppIcoh{+{Bfk5*HmI;cOI%E}jc8Cd?;Imp7 zxN26!Z!sZWGdg0c)l>vQSWy56Ec0N4slz!@B7~dRpB1%z7V55wd~MX)j|gzrXKKEs zkdk_!V!xYGMCVjQ@ln(Q781{LGT9o~d;72$qzF1vF+ghKYHGto7CL3mAEs{@1XH&{osi0wnr_f^0jkWE-{SlIO=K8s zs97)-Qu8UxneX#)><)nUu(L^<-722tql&ZwEhg@r6c(i+*~^nV4s;eoMCmCcgRuaE z9IB(%y2_ArZ>tDqAXO`-eIU;Chq&4eso1vo9_Cz&V8Hm4R4CZN5JucQh_p2|&^&~Y z3eh>xnSV+O+<41))8_{ZujJok04Uu)P1AVGr-2)36UtDgKl*^ylT;|bm#v3MBV?w^ zcsI^9tcYAgk&l?#G2@*q(Xk?3DUtQhbV`uH?6RyPa`z(ZTkwYQIMSseB0a>-uegSZ ztS517;o`10Ev@A4dact0ETqS(lJi(u=V-nihC1Zav?Mt$Y@b-vmhtYE@y?c*-zIj8E|{`FPWS6|h6tnZBr7c5+W|AN)^YN1%39d+~hawYH8Tfwq? zCD)wx%8k}jt=+F_J=)3y12uQ1UTM~HUMpAtPvi>4QoiPuTMxH_Rrq+LSgMb*@=NPp zu2HO%!{UX$LVscD!>vqVAn0op8zoP=73@1Y*C>az(G4 z^M;-4-I_b`v8U_BVQ1f-z57R7SQ}Kf$Ty|8)>snN{{;CU-G+KohAA zH+Q_|P2w}nU}?jh!dtDv>cW=7io({y;=;CIbgWRB_Qq<>a@nhmp%%us-&be;fxx~}?7i}e%Xbeu)lsnXzCHUdzjSnP zkXw5I4CPMM+-gA<;djn{5vTwgga0?M%31|La-2f)NMSnyzi>XFy|4qC-39RfBKW@x z{_h4P7cMDWQP@@(1}H9pVh7qiybm54qjh5;ZRJ5fg>@@fI6^3mNR&vM0q`%UPKtv) zQ#glT2sYnZt~cCL2~b!m4?DM1W}HUFY1X0Dp$FNhc|a)QL32f5Q@&5gc6b@EH_Ex; zPH;cJ5IozgV-o=9cSEJ*PB@vnyPGt>sSAf&~e#Z#~f^fple^R-&LyqC{v*X zh1W0;L?07u{h~cvD}b$6o3w#f0`CF}!#0+U3i1{v$R2GaUwiB~6@Yy0vA4H`sBg6w zbtQ=UCVNp2_ZpQFC~xas-5kQbtWv1^_wCia3e^378LHb$_1A@Cg?rIwb5DwRg=Umq z03Sx5JtcE2A$N1=2TBzj989|~IxK^?il8*ul=2`~bn1Pfwa>~tnDt5L0PCMN(HfJF z^-1aah$;~M5b^oYo(F=JB^YDX+){P|v~gS>s2l~SyFYZXBc3xlc!5)?4a&ZF=TxzA zNuklG*2l-j;CrDtF$(^9>=%lz=S_Qs8XE?V!o8hbZ@sUWDjekcL0!}H2LrRyrSUrS z5HKrPR;_t;uXX~y_Q4n)E}aUNmE7`F6MBzUuw=rm7htYXC{7hh@V}9DYg0IaMs$6T zb?R#+O=>#zwYQe@#T?8PNU!BiK+nikk#s9Wk3RrY9&-ReU+(vZCCK>ZJbibwdK^ag zvWimj2B+>xy13jSm1L6se6&(oPRM^v&Fvv{^%M`&<~|yJ^~ge^0r`_h!>{a zV!7q-htk1PxX_rZ0ss~xrC>RHdb3p+uoN2r5WGF(*2=Auq-X;$;WYqDp=f{(e+P0y z$Cq1ytL<&LLO}5$0zQA9!SmqW{7p!POv0E4kX#%y>~sZ81~adiVeiGVU|4@AeBlEm zKfJmt=_(99m+=ZE6FwZWk!V7HAKW)J;4i?lMh5g>g0;%lo5Bmm*7I+|$Avf%vuy+Q z-rt57*=+dyJqFLWGutZK9_yZ4%M~7p^+zj}+oZ9o27CkXK+LKbkY5D@_S32*^ZhCo zAt>tJe81901!4P(oA0eq)Yg1ln27PVgE3CE;Y2nbKL0v{=M#;m>ve;LL&_8o8#njQ z^7tiK3yl=}hY{!>MjEt#aQU<~yesz}t~{9y`*Y@W!08LNf=z6WL}rvDh04rGqcVaM zN{K&8a&+tiSj1CL?kj@3?ike<;%`ub&qb)ZS+$xMQ!cH&Yj_C6~1Exp^WW@7h zD9Zm-Sc0&%gA8l>h#sYmicV%>z|-HDs#TiR*ewk9EzMO*^{SVP-Ao;wLTIs4nknWR zh1TJHh{SIpH(UJwO%UaO8~$+r$~Z`iOZY#AXA|lGw)$Xx>*nK34L~ndnTcH|VM~Y* z*5+cjq?yOc`-7U@$ajzIAwED66&+gah3SJbwq#jZyo$ zjXbJ{_Un_O{m=~$3q6Ccb|*%0;)f%w(Wy#hs^pOgE1kQ>=B?d;-oF>P=B?8|2|pOp zHzy(80Y)XXzaAgALVJ3xz6X^BC64yfp#-@NJPy>G6Mg~yaBT#Y(`=JSi`badB1Upj zo7l{sklTdwQ10QRcJUi1A!`@@3HU+U1C`sXJ?w_|@QXxG7VSY>HScc@ky`D0iqa#u zlBFv}{+{&{MN)U9mrxtb3&1#QFl*ziNKNHq_@Gr&Nve-Fl4HD)XkuALK0y{xZVb;; zb104Be$g0uN%oou=+{!7QaS;4S2lMN)IWp#$DmH7(&906{X+ot=ZF@Jp#CAMFzt}= z@g%IC2FEWOIUMV#DEZ{~C& zeEykOf+PHe{I#>y7~tmVKa1RpRiIV zo+t+s{p_B7TDLv~3Sa4IQ?v(2*&7JN~a;JDP=1!kM7GvO~jB61Ty3cr5U?nmz>5Z3Fa&h^M+c`oI<`2w}T>2jxB z#}TZC?sR{$I|c0|2O|C_vL8b%70L{;V}RI?5+zt5R$F!N-01-U_Rihu0j)dzDMB{l zP7g?s{!hGb1?kY89%%KO73 z6uQ$r0M36k2j`EdP7K}Yf%$c(T#w1_bQp9Kb*F?O345dXj1~4mcS@_8XLp)_${{p) zWX?2?qf@Tq2v$RPdLY@If_9SK>A^(AQlZQcyB83FK`2;5R^dk~lOt>%-O$3Eayh*j@ljrBDNIG-J6gVF#E5Wkit%${VgbdMioy;k&y?@(%TC z8-tX)0^}b@-i>K1E|Knp2@&60N&+n&)1 zR?-V2u)YSHwOWP#BaN1ecKZy~xL}2P6PlHSdrahQV!@UjJDh5*0$EdaFYipuIRKjK z9O%p0v4bm0`wUeVnD`q&SC=(h__>c;50S-xh_V>?W0h(Hw!qaJUcOPOlyZ{nW>$IWW0)KRzWmSFc6ti`=n%V7SAp44%hG8?Lx4RYK$~m;`@X{zR7;o!BIjpTO2$sN} z+Iae12HepqypydLVH0YjS(AI$;37^Ub7O6R)QucNew}3Sb zkeW!2kZ^9nGF}OHAL4>&F4q76(p_sNSO)x!(CnjSNQHb=^3^4Gay3@A#lIq~GkE10 zfQV$D?S~f<&%c%^2zReed$0l#*`gb4(P%kTGBsCNhm`acEIdS2ydYS~ZJLc*gFmwo zpBDOmIMh{=y9yST<30I9RLl3npXfM1c5jkh?xiK}A|?F$;173hK_5XEVc&mg$_>b~ zW{(NJPhgd)U9w+*+p!@CW4s3Ux@Vl{pW!4^WvQpaBC;HhHE$1n=+cocG@$yo0+~6M__WBi7tTrKW)SAg8_Xpaj$pXbA@kD{-Ly zAr{%##jFlp8VXjb^r{HJi32f^(;VsUqzEFMHY0P0-^22m^OgbqMe1AHgfc zM*-jT5C}LYbtzb3(nsv*$f?}t3!xBtSWylXUXKCjaj?8#(3mb>vv0}dE zUkj|L+Zo9CFv>D@QbHI07(77|@8KW@=qg&lAa)p)2_H_NQ1>+j{geriD$=0>7v$^) z=ue^3f>RWT@1!gZW?^Q7>TJ|o{(k^5a`|zXgOMAwXBy-^U1m24Azp@TZwu867~GFn zz+I8vUgOdxRgV!b0=oEn#sT+2SyA3B_fjxGx z)7+_fCyFq{hA9-x3!uJH-gM4h21RpT+D~;~*p}4A$*mV4hoR9kKWbP6kXgdm2FMHq zfH1F=Pd?j&>`ox}6R;E(jgAKfkMhw-IIEE_3H9x?QJ?SN(_8#)_-C8H0sm}24Bf4e zA(DCj0PY+c8X~|Q8gj<@$s-R?EDt*H?--m$P%KxQ4TkTT0z@+$1V0>R0BvK!gHvN5 zcmzj<3=I*~lbT?{2it3*WFxGFGzMB6k2s)d%jC!zQX45-C)H5j)nPrbwUgF@T`8#p zhkU~h%xxinr%{8G7x>{Sxn>Q|sG*HB583wM z1cU^@u{b4VHO7`;;tQ100kb~xQ0!osn>02tw+HbP2+$=Ut8(znKv;kHOg|W`Ql64f z97LYNksv{eG%&c;3ZI84K5u|O0LqPpegSm6CJ!k^FB9#fv1_^xpAHc|0GK~W>x33Z zdXpkFNo8QO>ImJ-!H~^eX!NpRXd=RpKH~idK25n`e9=}X3@s^^_1#}<<;cojaX5V(R6@UMnH;RNOS6pw=XGV~@C;QsY; zwE%49sMy_GG{d60V^G=CvjPJ9;~De*9G%UHS~#UnDwIJvv_N6xz5{^?6cf zhtU3iBE*fLjT8-`oiVi&2ex?u0qcRKss^<}$goEB^+RDpSW`{gz#0i8!P*}hN*i>| z%YZAR`t@a;d=mQAn}GdjbmbBob#vtJB5GEVkJmay{sz$O1*A?D`K#11EQeL}vH;KZ z5hk?Y@tJc+%7!iA_Ffv4i__amg);83QHI=-;7lCAt{!%gv5Hfray*H;S+(%GxOS0;J{8v>caB?eJQ^reBbOXvw3bdU(~7ra8dMjArFDI57m zkmp}6QJ|u#(c7jFUOyH{@sa@TTXq@rx zDiH$zR~v!l#(Ew|`yL{#zJajDN)@ATcIs#j)!8y2z#8kX8a&DxD}vsxv2Ictt6qwY z0B?Al2eo)C4k82nwdO>vC@)b4%Wh)lU2?mM3&KWU0eJO;;w$mr}K-Z|tPgs-EA@Lbx=ZgR=XPeJ7L zpz}~>*LAywon6=Of+KC&_Z#T<>+$-H()XL__Z#r~&Gh?C?EAx%4xZ4QB~@q9$7IM? zN|3mkESZlUbbux)K)p?P^=5h%g2}k*jO<~X&xEn-Lu{#+6yWQ<>Rmf=cr#PmNWR|Zn{QX*!cge5u)bZsFC6x5d3`rax}XpSjyn5 zE=Ea9N#9L_|0rae%u{a1&l5P6qwNxVEDuO{2i`jOw)04fs9)jhE8MTB&L|Tss?I?! z*<`a!&m~t92!eioV%^4Nun4sj7LUk@b^a#&NwN;)-{r~(IRg$)uPX!4;W#+>x{6;O z!E`!Ity{rv^51LV3AW}_4MoWr-)3h4lo#d?pf45;Z{9 zcm1QXs+KZ6GBqj*87xmkO$kUz9=R)&H)&-}n}l%(6xGEBB;~T~ky}X#HG4#)DyaO5 z>j{(WV&`0Y9dfO@qXZ}De--Q_uhI)B`L`gy)QVr1tjJ=W{7|B3gj+dJ(_jJqYM_$3 z057n>sFz&8Osr^~-N4c(AxuoD5ga>A(ipzi$y9Q4DwJ%44|h z-En#0bbgcZ%DXJ>_!Z|EXO&OE73$v*+McH&#IrylI@n2QJtS2GvuFiR5K?$AvbX*4 zdeb39#2#v!)ej;3El}A1Q~cP9A0NYyZQ-}=@a>d;KKXRW=MM6@lYCx4J}<;i6l8w7 z`u${>Z`;{l6z%L2Yw1OIzd5ny%psO!s&@4o5+CNBeacK)%={9)Ac_!dE~F%B zY}1yfOvrf~{(Y!X8bd!fRfSUS(gRl3V=LXqpped?;vj;>;F*P&0U(c(Qu-J?Y)uT4 z?7}9jUKGeH+we|e4P;<3a>}?m8jJVS7S`SQ(sFI0wQ-;iEt5r7ZFf9#pMYAC>86Rp!4iC!2glxOwR}d zI90FSD5~Q@qfmhBOR>edTMc+&i*wjxx0}bZm2~C=`+%2AQI%vRT`w?Ooa18_9+6O7 zNe?%DZXUFq)eFw}pk;eIZLoy_KDOmDsfIC`)sF$UbXLCyzmZuz`F0k}>i59r=-lxv zEFqNfjjJb$jk$L5`<>A#eY}cZ%;z`6t4*2AuZ=&+{ZP^^;azS8bI9&f#khIY{-&^= z;PEptjZcz4K8N?egR?Z;Y}oN6J{t;ZJ&At^it5Ik(nx}Z>mM*H5u3ydYxwsgzwSVrt7PT{+tUoE#7oV(WdN^BumyM?Q zZ2cK5w9Wr*{F5+SzZNE`WR}fSQ)nj2aG0vXr|x7XeGJSl&+=eaO{Y2S^3Sd|CX+@Y zG7j$}6()_rr8_VfRko{t+)9CL!u%&tD7xzbugRT z7`7}|VXN1oLz81RW1(~h@)>#fIPPR%@6K-GD=^E?unV|GgMAKp zXvEn$m0`z<9xka1m#^Eb@0@F;V`=*;ZgFm8YoZdfk`i-hn2As^AsS0rQx zgt5zS5S;M=;m&s2V380$N8mE4iZF?UJOSL&NXV1;jYLAox3eG;k|F&Q9QZa_X%_)G zFB$<6MSBtXI9F7M`HJKXaR-mpn*6*hHI-pdJk6bvd`YAY*BUq`ZjHo2jdBo%SP+04T$A_V)UBu&qq=d@spfEp^MLpz-+~$VwqrZgB z|F(1XU!=_Z5#-eIG}{2qQ(_}a~P_EqlnZ6hrBW#0_Hg<+*+~Htn;W8c=FmbIj1!Y zN*O&Xz_tq*Pj{IzNO&H}S>O>d9(5sOe7=)MuC`GS4@X^zg|_*Z;-7?Y)GK(LDAO(; zMJJh&@B=xEXQoih6-b^D_U8-*7^j47lyKJ16hjQ2_apx!PA4HNL`@1gVZmUpnTyQY zq(E23SC*lrJJAr>gH}dkA+UR)P&5RF*W~7r?h&Po5@vSXGkh1RQw@RbY;SemHJCgq z+Hy6*tUCOOv}GO!Lk<~K+s#l9c4cZVQ}abII2E}7Xe!(f2zRm3oQ4Y8RWwV~ef zEWjpN{)hnqHnY3U;88ZSL&wr?F2e$Bj28^BT?VCSN23>*&Fr{q<+Gsqn%Vt#V9Rc1 zCphE2b#psyu$dk2Yq?CSIZbAEe*xUmncXMx8=2XWZ)d^GZhr~R1jDVlbvS^M?9nyZ zrWVUwPpqXE^S#Z9HK#0gZ%BNYyN{H+!YzEAft_1gg}nJB@GD_GXC`w!MGNuyU=LQk z|2>q|dJgy#C~7wc{GnNi*xW)G#QzuMci!g~-vlbDa|^*uY;N%dDA)De0*TYP#jcg` z4S({v#im4PsM8FtA@KfRgrY{%jB9UjOSxtV=NS!H0%cSj?o;SSuS~v359p4csT$5f zy01ty=Mj)z9)YRNIWnjr3+HDf(LK>5Ex;(wRfd=hiF1`+uAN_RqbxpIc?lNU=3j+> z5+*Ajgt>qd8M2amcXrAHUpn7C&NAC0qr_o{PE~Sl87C&;+Lf}BMOU}5B$+oO=9(pV z#fB$V%;cC>g;KkbUSWigNfGLmJOy~VJ(sd?T@1=@NkuZhd)IwA%@;u6a z7!6PJwRaiTBdxDwtsuvyS`R@XU8f;UrWhCOzSvPsu|dd&6KEt)S-36L-TD2l39-#5MVQE)H!_H)>;)>&&O}cILpTyBpzkBN>>F}xR zg%FZAU2V(_hdB&;lAl7C8?MEQrwKQiT@aPpwObB8nfc>q!@UJ?%(WyPHfu}C+DjFE zq7#WCzBsZsA`-HS+)dg!@q!g(m_Pjp6pDtf@R~eu(l<+%v%s3dR%i+zB6X^vt3hEA z?&su7!sC1{LR>p)|$bjE26m{yX!2{RBubg>~zV_H#pw)ftvESG|Ds|BRWMc~1 z`JV$I_$C2?-g?aWQ@rR=#=>M0%06H~fI0s^FnE+Xe{`XC&VQxi{Pj|>Fc}}!bLT!^ zVX`f&Y{O)NGd`+6znwN%n2gUAxlF1eOu}UQfLj_S+mGK!n2dZo3&Lc>?g>~%oAR=G zZwlU(*)9oUdo&3`E#8a3*c!FUl!(|W^(pRhqL+pHy&Y69`+l_no5#Rz3F`@7dnOVg zqH@nm@M|Iz(mMF{GAOE>$HW)bA2KTu3w{Yp_`iVs&U^6d2vA84ehF@3!LJ*jT-U)b zBu;~0PvSTH$%9|#sF+ZrUR*Wc%x{7+Y$UJW?vYWWUaWeEB%q7HU83;bAUw7*jBc41 z5DoH;j2rG()dm@v2#_e&S<>DxeD&)>mGisxMij$H8e=6gG3hc$^a)gN$3db$w=yi7)O-vI>71(+Bx1(LO()Nj zQu-j#r5!1jce@>y7S7;{HrgN~awZ>!WB$%SD{MqgRiO^yBCdvqV>7YxTd1EqQxj#;sqR%hgexqlhJLh1hH>Jufm>5WH%F!5fbAwn)9 zABRAyZ8pvo3JJunP4y8!utKhkLt4Ekkb04o!dMJ}+3#Gi-wr6>ZYuAz6Nod}{z1X` zWj2hDC(iJ@Ay8xUYk>^y@m+dqfFC34&2n8|IwLLp~L%iCQ=*!yple|kxx+U7fr$Tfm z1s2SsFrN(T2_8GG)=yOZyu@I>5sH|kD(xxRUxlK&X+k^(^Chzqu^5c7ga1Y3x4Rh3 zhUg2QnXlq+d;T<#NDaUUR;a#2AL0KQlrspxs7_otX&Nch=*!x3;2Zwr(U8kkuL-^IvX|T@EZ9BVOYi24%XcLp0gVAh3BC zh6hfc6)h5@G#eP}^PXfhVxuEIiyFd0+x(01PePRD720?vtdxc zG3oWBls;y2ZMXX6eRlU133u^`jgH7PlSz${oQDl`#UeRWLBh%N@xC;;=aC#qtuHYk zz^0j389d6Snb?xsO{`cXhw*}uoLx|gbq2jita*}E$ER%i$vR7{39wMQ4?0ECYQ`b4 zFvs6qhhOn!B}n~n8!o&yOdEf=P>DaJ)X<9{ z#JMST!<-6-ZIQQkZAy8XJDk+}!ZU0I1EtSz%tI2J!+L_(o!*c{st)3DiC_`aV)~Szu`|l$Jc-ohwqo6 zqPB(F0iA7t!l@Je`Erp*fT*2|Jj~dHN&DG@*>&w^OKgpT>$r0-JqhB|HHs)nj*PI}Cf>U0Xphwo*DW^6s!RN@0$a@RJ>ySQA9}-G@ zb0~b0618#Ur=X~=F-m;}JHGizQbIkNb&y8rFfR|WOAm_ zNAy&5XBsgo%9%!eq(yM4*e@Z|C-u}iIMs+Up$=E&MaDFPwJi|~{EH^#KY?P*@1Wqd zKq7TeAXteF3TB{OcY^|?Oa}%3hTrff9~7*MHEuQT&-DVsfjKCaIvkK+FgbQRjLUg? zB?+C-Q&aK$RCsl`>l~q5Odp6OU|N?GDEv9&jd!EkX)ex;&k7%k;r*WqtKRz^sUVGeuLqMf8OT30lI$`{5)H&qA`{Utq-NDzlJC7(c zG1wJ6!{>2ilu*y?egpz%uxE_+%Hz&NrBZ^O!c`KsD=}KI&kN63gBK&?``00*QXH7% zPE?u=w%y&$^D}%$og2MLw^@Q`>!he|LviGVTJWYGSyl{N_ef6Gn_MrwD=k>5P$N$$ zrzH7fXcD>vFc9)3h57ednVW_AN1%|duav_43=$ad-c3sB!~D1PPG3}AFi5!AtWHTO zhayVxcP^C92)w`mm9!rm2$q(L4cK#1YCYBBNj3gmSUWYzj<)!gxVksOmFm1Q{ytzb zSnQVPTFT3X(HQq&(JlU+@JDAiwc8=DM`rJRFZ2gXYu+S%$$J*636{f8Z?;-0=86q` z&pZ5_ackw)$zY&5H%=37T0V9p!C-iy-g>x2e&$MUz3!2p%iu2g**fCigd!Ly1!dX+ z&kCP|07J9kHppP1ya6t1%=G>rY9-N739~o0(HJtqqM;Pt+S>UdjYQyLLO?x!Z9?bJ zdg#m|Vf!r_vI(B$*MM^d<4r04R|4--_%z8oOB$KW<2F<&^D|ExXrHYKFqPsyzBf>n z#$SsiofB|F57bE8_{N|ob%`;`du%i%;}y?Hc&CBJ7+$HGZ19T8rFhksV$u7Z2E4H7 zJ&qp?qxa0vxTv^_X$lsAdasqpay50PUI%uJVbdqnCm$ zeDT=_ZyNIz)ja?Pw2SHr&iL%Zbgwg?r*fH8MVKsn9R_Y`NcDF7MnbCO+gT7&9l=b4 z=w!*sK(+!MnkgC5v7Fm@;a&t)*T<_(Ug=sJe~`ERq+7xPcv=Tw9z=D+dQNwOUy|er zQPd8WwuDT69mSj9DAp8^P^S|(uKNeN$|hKeMX_EA<+_VvA!QoH`ZfH9KY0`@8Gy(b zTh-!<0T1~yC}$MLx@_7#4qLKlzAEk)KH(Ni?nKFh?x2UbHT##koLGl`#-g`gN0StW_J;6v)dJJwex?9MPSI!Nv{e? z*Q>A%N+IfmL>-Cf>h(GZ1q)~5L|0-FPE=hrT?~P5LPiN?(hYwQFeA5xvUh4}%d*Nb z!eCK#t|f&De+n2O_Zw~v_KmbC6%shCSG`DoQi&Bj*HaAjuvOpgf^vKsKlhN`DU&(}9xF z(ZJHb468^6V-0RufsyK>TQDw{`miKCF2Va8lJtjAFe_zPz@VLZ{3Yp;1c_aY z$#x8~eoaYt=%-~VC1tDQ<){+6sJ`fkJb1s-O3!TJ@lq%h?bajMr z!QuQiV)Lfh_Bqky?zEARta?a1-)*T`K&mL%bTZ02|p?ENlO3bl71c}kjTy~jpj+~mJ! zpeWVkcqa1Gq?EpuUudEOjsvrY1vs9!kyQrAD&YP(1DP2(sGv6BK=n{?=u5Fx&LIO{ z*eWM>eC?vJY}YYsotPl7k!h;y1c5g$T>#le@bA%92I~DTtCt6Q)sc3zqhQ;Qzm0{` z`|bmLHNHCP)@tq?$q^vKI2^@Ax>}wtKwC+?%T@D<_C%{Tsy5OzS4S%0=#5<$KwY{K zBuq-`eMfM{$I+&*hv)M! zE|aPVlZ*iuxTWhm6Znm+?~re2!TQd4%FHMWDbi)gRMKwA8defn+tk#H^`3{?(9o~@ z;3AMa8?Fe|Jugp|iJXJZ$lk<7q4V3&;~uB&bHexh7l1&zdo*7pnhEO(e&zJ;_-d<@ zgv^C;?P8JEFhs{)uO$6?s4nZ3q$i*#bVw#a`QO%4(S<)56_fDi`}9^}69fsqdBL-4?L2clZYC(16GUxHNq1O`<-LDOOU8_AU(_f)1n85H~ z^i*^(WK>LGxL}jclleLrGAarT?bn9ZY8j9XY6Zpa)`nIAQ_&!jfnB==V^?cKmuVHL z<$fO#*T^~EsHdVsC8J`3%DeScbf{!hxRt-3Wh z2m*G`*PZb}8Z;tnA|j)K9_d$y10ATnqYEWYraF^{mk_(-q#$2r=0{Gz&Cx-!kVtOB zdL=)p73!n+V8}}ExwDabdM07u$2KWKoeAiWck@-P?yRNT9$;?z70XcxfjA>IS)~9j_MoYda?DAb324%Yp0C(Re+!@)03Swgy6hF}})GNh2Qj%R* zDnwdh#ENrG2i6E1wg$^!gJ-iZgYt=vMQU$rk{JclB-{~p*=EC$61up`Mi&t?q5r?!$V^ebIXi1&63OFk8`fkq z;c*eSnwyD=U}Gi}oSI2riY<{pW8Rc$cdDu`GUn@+^yT+4;(A;*$6l4K40jw9g3l_kJ*UFP6fe4eJR`oefLj%&uqS zGWef`scbon(s6flHljHX&p9k$GQd>Q!GM23@_GG(ZP^WF@fO$Jrx}c85ISF z_DefAYZ;IYY6Zpamcg$lX0iYy)kU{p>}na@*D6wr%1I)w(Yns8o{A2YjEV^=AJCMr zC8N?MD!-*=;0&Sio5V~OsHD2+7M0yDgRk1saVI_qMGZUgt$HdtU@|Huz#P(3(E*cD zQGjW;41Tqic*mgZW-NIHF^~l$Ep&aKR$T2eIHO{+44&6h(Jg~p$Wqf&F~E)4GWcV9 zIvp&7Qz7krNZS&zWpFV)_dkNOrukh4|9v2lx(qH@i7kV_6UueB433oPGWh$zT0Z{d z%i!BIK@)WeoNEXIi|>XCjF!OfGFk#pJOf~OaHiNO;6^hNw4ed*dia9nd8k>0fBsO5 zY1!@ZW!+L^8Pj6H*9H6K@uWED_cy z?)4Ep6&)rS6%$N;Qcp#PNk&D%q+NL7i(29xEv79F-aYDF>9G^);PAq{K-xnfnRwAznfv4RDygZ~1FCZnG zTU;ksDVM!mgTF3}gKvH+7ij)BEt+MQ$K$eRKE8vo*q<=I=Pwq!Y`bkNmh%L$*riYy zT9@f-ML58kN$)J)?WzY3doWFe&kBaN6F% zOGn}PYN^sVNZzeJ>k?Szjw11%Xy;cVAbSw#y)>*Rc+Kez^d`!l z5bQm5*4U7krt7Hj(NN>oS-iJHQNyV5%k)%qqkBfhWOQHBQ_+pm7?mzY_pj0tm%F;t z7BzkaF_6XRo@$}(z)y-A-$F=qA2t3Rt@gB&%-^Ccm_&{Lo1TgehKz~{3_q%;qJtr$ zqQKBTYWz1^20DgfcTwZNBxbSzBh^K>U|b#PVVT!dG(0Gt;r*R_Npy2R(kfPq((e=T zjY1)d&ewIOz7C~~iU~^3(Noc(lu=Q1Xcr3EsU_YqLc570ZwHpFB6m~^-QshlGT=)> zr*>uIX00N%h`gQ%Y=p>TdMY|ZGAbsBoX}IzA(Bz)0+9_Z@iT(RDlw3S$F$J(6IyY# z!8u07Bslk*dMdi$oP{j!)l)IRjS`$&7#<%4--Pe~V?C7)0&`TvZXL)PvM(GLqWBas z#fhXZNPSu_S^-|e7kmHPL-a+we+5Mi=Kx>UQ_(pQM#aR5d`C}32L?u^3n%h(E%7tr zME-*q$ij(O==xkoJ5VvuwTTnirKh5EA{Me-s;6Qgi{eE3NU(;FCfP6HOm5Iq>%f^% zQM+{}-R|Rfsa`IfCwTyh8hR36PetcR7!?ywGOMSeLjI}aMX&%>0qto4MsfCo$M?YQnU|p1qpd zmWU;oh~+{55QbvsH^Jm8Ad#A2B3OwfnCyXa-6fbHWtw2}0+_|epFF{2L&8F(nqFJUG)dJW!S6$hw>W+@EU!Cy#J>YRK8K zB8=%FA7{KnU$sekEoq@24^i~D#x7<29n!U6@Muht@+G08zqip5f5q?TvCuaEv-l_e zir)u5zi7b%=`FwFq|6cot}qAblia!P4*Xd*Fo?_{+rZHd!uouGND-B&F72sf^*!Po2k_D4rHq|r{R^-b;34sl&$9B z5bkD~C2p#$@L!Xso?-g=I6i>=~!pBfG)auJPMQPl&*G6;v zJ;Eaf8e=ExGBw}{w!29wz3neH(*%cv>Ei+^hiv4Pk%AK3XdpL33KiA{DM%m*DH$-Z z(ounm5<96RbgYgPP5{UhYJ>u0xkO09NYO@T93!5Au2hWR+nQZcN{^9EDGK1ANWCvm z@M;^0WE3EeuQZU1p@52Gg90Rwgo1n6i^5|gkS<0aNq~W_CS2i{d(i~oyaSa;fwL~5 zj0B*kZPd*H^mYR^s{mR9y88`MN)Mp%&UMBy)=d=xh99)iiwr}Q^bZa6!(d32Vgo}Y zkOaf~5gthcR=C*BU^Nwr3A7TR__wIY5Q?!f5)?mgqjC<#&l;#&h2nb9-=|3_Jru9$ zPH!BJ-Bu$Y`8^x`$dE*d|JguK43bniHjqRDNszp5XefD}V?4)60bgRR3E*3OfdF4Z z83}xA@X6G)^T;rjgKs4iYBxMp!M6!CH9$(~!Iv@B5Qmw00RgC8HZseALMbjZkevaF z3Ty)?B#;EC!{Fmmro7hE-6Uw8n_7PYxDKKEsAt=d$dv@ITWwU$;dPUNidA@>2YS1X zl+wd%kFB;i%iCPAF zU`V9G+aM7MBq8zMp`nxzS~uadBq(l9qm%%@5279^{MIM2CqeE*HY(?k`y&HYtB`X* zf4@&k=^=Mj7i#19>#7a`#!uO3Mg}9w`j-Y8Vqm0du>m6zNCM-1d>K-Sy7ngGn(>v8 z>G~v62}t}NDv=`boM=Q?Lg5c=bj?xt9RnS!DBJ^z`zKOLkHY;O=!~PUqp|{ZOD_b4 znT~g5)Lj6wErG)A#=Q)6R1G$$L*-G_=}WP<7k$eh*u4jq%%E0W&T4n&sJ)mUf^pOX+UDz+7{nvzAv)-TmC=@l!sD4sU zMVC>{sF-9_zgOytrGVk$sEzJ=U>Mrd;;banFNp6R*q`!nFU({++%l@Y*Gba1BzpAIA zgC(P40?Y5|spw$Is3@?s+X=hyBAs`Y&1wb7Zg#@{j2OrQkW>r303_?_(f}#8u=SB{ zQJN%Nq}8JqkUOBLp`YBZr=kNSqhbQc>-1D~fMis<0OUPd;%5YqcM=0x0Fr8}{gJrx}y8I>*&`FmR8X9ST? z69ZWw(n8nIYsJ;>g<@2c4D*EtIY8l?K<8iSsp#^{EoAwEo{9l(lpO#mTeJU3Po;y* ze=4HA18G|#meMX}MgA;~L*_T7y#ypuQ`!Y9v6OZf%5|60j+ALi`=*QG8~)@e?K|4c zS=ID*t|bWaVUOIQoZZQ9 zyR-Z@%l4rQm*h4ME!f>7&FKk9xrd`Z3HT7j6^A#PFejW`#fjct)YQoFqp67gs!&`}2vaow;DmDZME`5&WhsO6)x z*nhQA8#nw94b-I?ejVuGd!&@!agSK3g2TeHlmN}jU7#4N1y|;aG2eF(3b*UN7-*>I zHlRU;QPAj1UDgj0Z1Jx(u*e?zD2{#FEitkMS0*ejxDG=pHWuFs^+d+v>i);2cYBRy ztqcn<6m#Kkq4=w96wgO(S7M>`QQP5ib=0lZ+_~{V2mW1$UvW^yM^bs|9QE)mmdeBc z2UqkTZA6#HB=r^Vd`M92o?4_m4}^7dHA+{6BJZ_Qq}nJkmE&^-b z0Viz)l>Pc7teq_N%o zH+m;(l{wgddi$u8*?Z*`m+c;Pb{?seNA4{b$u#|Lx16s`JNLP@BFy_8765>)w4*zn zd#W{wIcr(s}mD=&}Wwj3_)&I4}e$$M?*B*Pjj)u_9J8g6$WA{Qy zN1&Jm!IDb3G}n5nrTX2%`M8+9T}v2`*RgnQN}O#+h=b zr(HPiaNp>qj&p%SCUYZrYyqEt58_i~eu9T0qPM@m;nM-StsMORasHG$%Z^UOr`P~8 z@)Qo8`1y+PRBRMNs^YWrgR~>b;_C=_N0K2tv(ygq$DM_<{GnQ!#{tXL|6df10s?^a zDZoQC^U41Yu&i>jq_lMXUAQNqT)5Re0Eu~eLGl+9n3SO^vG)&4QrI(1&*H&L?p{@& zY?7Y!BjA>%XZ;wzk@PI`?JP*o+BfAjva~&9^KQef!_TVQC}`8NE{vpQCDzc3bgXkz zxg(>JjDN6Caygq)p5`N%)ce94uFB{-LGv7{!LXj-b*K0J7^yl)ct^$}h}e^%eOmV; zwWB*h)6mR?VE$H=aekLU&H)ms%OHZ4*fK~TlJEwLmoL$Mr7qAY-$z?JUCVx^@$DmPE^S+_{&20K}(W`a%3g zyfpdN3ok7?jg0@E)d1=h)P;^T8^uz+pY% zjp~;`X1hiuI17&Vup>a-j8^By^Oam3)CjAbFiuufwEghnZY(kaUM#o}$!K2Gg|~ON zf{ha4QBfp501(PxX4)rp-weL~<MNN(>>|u=;G0m@^Pz}Is?z30eHe=BoVPT# zxEH%jSWqA()a=*J4rTmXJ=?mZnHMP&igNfVj4TYwe+o5yLr+h4C?lmO`Ul<{s)lX?uKsbv(z!y$7t&x!~C-|0&|9-~So>A%y9`ZS8LMlMmchNX}$8iKVcy8dnEk@M&gA@SX9onw+Y#_bA9) zcU*``HQ)fW;}6J3G3J`}MrFGA3U{L9u~YNvVa%$7k^*U)K`7%W9Y&(gq-(G7vrCJ`p5&{hS9~)(4nCrXFOtNx-b#B2&d%va6pxl@kXac zhn@25=%JchEs$?F7RmSBBxU5KLoa3TcO+HEj?kmE>(1DNyb_Kv$a#W;KM~ra&ar|A zIZ!#b45uaKO3l1CK1k}qBO|l9N~uxz?V|7E*e(C4df{pO<=9$s7WV- z6;9x>qnK_5h^93`9WJQ_#~$QT9mK;r2ssjoqnn`8sojI&I+Yls!Qy(9PkaRH;{?3? zR7dh)xw^ePGsS$P0GcEFSj6E_q0a6n_n8=k2Gs)|%L>8839nR#((3t)qHqC@jD)Nq zFloL9p;1&GoZ3kWf#S+wSMuy+r3`Tv)EC=u#!sXSYm$|TPm_}vrRt=5BrGJzqhKJt zrbe*=U?6}>sN@*A%alUkNf^b0V$vnxr*k6sAd?SQ21@Q+rP*-Y(p04e`kZD`6sMRj z8chgsC(u{4QJiYlJX#XBF1WJ*1KL_c?Oi9Xg|KI2SE1*7eLuy>iDUnL$+?f39nr~TeO==TEZHI;sEO>Az%yO4xCqI-BY z!iwJ4v)&Ks>v}(V_I`73{4^J)SJep(JZGZ;xr4+6>Swn0iSs z^bNkE>w1L9-?tH2h9c%me}|Yr-+tLxjatiQtcEuJ3qn8{s|Cjhz*w&Z$KNFkYvg{5 zp}NhGCJD&{At4SR>59eZpnC~&E55X!@VUd3^uT%3&!$#(@yTdi1PI7U7U zalEfX1p{p7t4A);u#c^F!$O>EGLmP|tHguz%@@e20iU%SK>Xv+PiF6lOcmAjz2@xV+0whNgK$Z{*xect#*EHFgH)a z(Q>I$Zcyc#(AXzzG#0@WX70a0l%`^8l^XZw97Hb*CSJ5+f*}ei8zSlgQ#}I0jGh&& zf8B<48F3pyd0!>UGeR8Ivkl_VI!TDTDm|DZk6;qRFiBt=2OBB)-l3s7c0z(qgHAK?d6h#4Y zl5Ppzyv>F&87W&qF>fJ?F+vK}p$$?{^GQexyW2|04Bqyg$6%o!@i8K?V!HT67?D3i)z{iUud5s ze2t_p8Y!a!x?q$9simw2j;iptP|Htj)Di*K`M~(U5Y4E-S{+&A;^br31sh9-0Vl>o zIR-AIZ3wP)X&M74CEgRPZLncY295*jSqp^?$4XR_Ho!ssCjn<7x^~$6b;BgIt&Wfl z%^tljbi3b1w-NO10O`kwdi6;fch8gbfSmcLS}5m68|BEr+XrFxDw77eWB*Mjhf|lfaeBO z&D#MrhfO;`Bhq%DFU8KhpexGyN7=-grUB?5Ra35z7n*XVFU5Gd%3w)x4^4<0B9H28 zWk=+&^e;RjXBU*h9=%=f$Ijp28SZ@R;e2gA`yk-KZu6PojHkF?+U_(Gww;o1gWxi$ zDm2;j{@1`Q-A?%_{6@A@l5d@ErzD%lwnaCLWc=6SP7}5tWCW9SrQMXuHj#FlDIbw_ zlkvZbdlEOe)#3=`A&RB_s7*5zlQInQ&|Fgj+9;?Ax<v8U_BVFwG3LTPrg2-{IwSS&HNNQd~Kzg}t9a&V0HaIl^nvkGUDfHJbx zT4k!{)$8~|j-anmX}G1<;RV4Ue+H(8hZi)F-ojv2u33Y_XdscD)^#LU!LPtstzPR$ zunbNhXuvjudMj9iI>r65qmwmAXZOnaR?vT+TWZ3tQGS9-&<`2X)n=o0q_Fx(Fu;z8 zs??yS0XWaVt2f{X6!@{663haXyXJ^Zcb-s@%Wk+Tv-L7uVNLpS4>ZXWOb--3%%l%JaQ#V79esZw_XR% zfgCFkURY7{s+C$JTk=kLpu0uEV8JbgKl_3;-fR(6)^HomI)A7y=*xQ(%_*pF)r?y! zgUa9u$U>inD+8eWoQD#%P6n%rWl&HSpj64jQ>|d2*_a%;Vx(S#?_1TIS+7>B)UpLY zbjgErXZn%V9PH~_P1P*b(no4(1=}KbB31ZnM?jgYXuX05UV5u~BT_gx2W6;(q6(m* z63EmFR+ilIRMRCJK=SZ=kyma7>uO%EQp;!aUKL;hWN>Hkk)S_UDZ@k(HB!t2P+@P{ zENn{+R=LeaB`Yoki(t=MurlAAu4Y60fnv!8h&6b%vJ2a^j|8j9mGF>Zaj9DOn)yn0 zb{g??4jyk)_p)+Hf|6V#d!kq`HV8gfOc_-+)NntC5E2m9e%wn0z^GBmq;=p8(M{*th^WW}+^ zRaLK=1-0-KqM$wE74SA*7TZR!xzK1->*Hf%aJkN0)o7(QHP#9?;FE*}crx4Y;HV*J zaIIh&Tpzh;&jHZrs@h~OQaxS~)nCl3$FoNew8y>LXwhp-5*pC{#|n+<5)d0`xD(Kh zU>{EF@UmbVpmI7JHqcOjY`uyYITf5!pDQ=q*=(UWRVcxKK=6`M1;M|fKJ7wNdwCOD zb{$l;j{K%Sv!zPTWy;-_D}dY0f$3?B13eQZLh0kpDv($O+>w|m^8}{=Kb2guJP9b^ zu3;@Yi+Xb+@?3Em;ajS>v^_2%P6<#0rw8Yu5zhe&1Uh?hc8jGfyw48( zEMa>M){Ne_?v*B~S34Cf_R1$(N17ACGU`yE1p^q1<$MvEM z_X>67y-D=m!CK{N*_{Sba2aZw41e@vBg&KOOYtK8p7H+?d--qR$6vxLe*FI%KR%8h zFW^TLI#a(!KESv775w;J{P=DB_zq&P(+IOW%X$&-ZhlZ5M&gyWNh+mnRTlZ4BYgu|1ByOV^olZ2~Ngrif0 zn^T07Q-q6C&B6}oK8XSgD~R?A_fggLqyC8MK84?i>WZiTa($BXz;+Xx>s`0>tj;p18S`1Tg~_&$E@*$y9< z;s?HQ!N)f;_iV&+C9@gZuJ*+_&EhR?7V@ z=?GTliqLywPXe6-y@CTQ{v7Rb=Z_Y=BcG zzt$@C!&tf2z`^;3XkF|M%uitWm#Z{!aMuc!!}5HI_NXxNSb77y{#5IY`33afqp;=T yZWz&2U3kqz7J9}y^x>3pI2=?iFAp!1Zg@G{kqzDc6b{}7^EhH\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import netsci\n", + "import numpy as np\n", + "import networkx as nx\n", + "from tqdm import tqdm\n", + "import matplotlib.pyplot as plt\n", + "from netsci.plot import plot_graph\n", + "from netsci.analysis import find_sap, find_hamiltonian_path" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degrees: {0: 2, 1: 2, 2: 2, 3: 5, 4: 3, 5: 1, 6: 3, 7: 2}\n", + "Average degree: 2.5\n", + "Adjacency matrix:\n", + " [[0 0 0 1 1 0 0 0]\n", + " [0 0 1 0 0 0 1 0]\n", + " [0 1 0 1 0 0 0 0]\n", + " [1 0 1 0 0 1 1 1]\n", + " [1 0 0 0 0 0 1 1]\n", + " [0 0 0 1 0 0 0 0]\n", + " [0 1 0 1 1 0 0 0]\n", + " [0 0 0 1 1 0 0 0]]\n", + "Edges: [(0, 3), (0, 4), (1, 2), (1, 6), (2, 3), (3, 5), (3, 6), (3, 7), (4, 6), (4, 7)]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make a random graph with n nodes and p% probability of edge connection\n", + "num_nodes = 8\n", + "probability = .4\n", + "seed = 2\n", + "graph = nx.gnp_random_graph(num_nodes, probability, seed=2, directed=False)\n", + "\n", + "# degree distribution\n", + "degrees = dict(graph.degree())\n", + "print(\"Degrees:\", degrees)\n", + "\n", + "# calculate the average degree\n", + "average_degree = np.mean(list(degrees.values()))\n", + "print(\"Average degree:\", average_degree)\n", + "\n", + "# adjacency matrix\n", + "adjacency_matrix = nx.to_numpy_array(graph).astype(int)\n", + "print(\"Adjacency matrix:\\n\", adjacency_matrix)\n", + "\n", + "# edges\n", + "edges = list(graph.edges())\n", + "print(\"Edges:\", edges)\n", + "\n", + "# plot the graph\n", + "plot_graph(graph, node_size=1000,\n", + " node_color='darkred',\n", + " edge_color='gray',\n", + " figsize=(5, 5),\n", + " title=\"Random Graph with {} nodes and {}% edge connection\".format(num_nodes, probability*100))\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shortest path from 3 to 0 : [3, 0]\n", + "Diameter: 3\n", + "Average shortest path length: 1.82\n" + ] + } + ], + "source": [ + "# shortest path, find distance between two nodes\n", + "source = np.random.randint(0, len(graph)) # random source node\n", + "target = np.random.randint(0, len(graph)) # random target node\n", + "shortest_path = nx.shortest_path(graph, source, target)\n", + "print(\"Shortest path from\", source, \"to\", target, \":\", shortest_path)\n", + "\n", + "# diameter : maximal shortest path length\n", + "if nx.is_connected(graph):\n", + " diameter = nx.diameter(graph)\n", + " print(\"Diameter:\", diameter)\n", + " \n", + "# average shortest path length\n", + "avg_shortest_path_length = nx.average_shortest_path_length(graph)\n", + "print(f\"Average shortest path length: {avg_shortest_path_length:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAGpCAYAAABoEYRXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB34klEQVR4nO3deXxU1dnA8d+dTPZ9I4Q1yJKwhC1AQEBZRFCQxYoCraLFreLSvvZVwa1WAbW+2paitRVbtaDgliBSlU0EJGyyI4EgWyAJWUlC1smc948wIyELgdzJncw8388nH8idO+c+M5mZZ+655zxHU0ophBBCCOHSTEYHIIQQQgjHk4QvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbuKKE/+9//xtN0+w/ZrOZ6Ohopk2bxpEjRxwV42X94Q9/QNM0w45/qW+//bbG8+Tl5UVkZCRDhw7l6aef5sSJE/Xed+/evcyaNYvOnTvj6+uLr68vXbt25YEHHmDHjh3N+Chqi4mJYcKECc16TNtr7vjx4/ZtS5cu5c9//nOtfY8fP46mabz22mtXfby0tDTuvPNOOnTogK+vL507d+Z//ud/yM3Nveo2HSEmJoa7777b6DAcoq6/eWM888wzaJpGr1696rx9zZo1DBkyBD8/PyIiIrj77rs5e/Zso9v/6KOP6Nu3Lz4+PrRp04bf/va3FBcX19jn1KlT3HzzzQQFBdG9e3eSk5NrtfPxxx8THh5Odnb2FT2+q2X7PPr222+b5XjuqqSkhD/84Q91Ps9X+5rW21Wd4f/rX/9iy5YtrFmzhocffpgVK1YwbNgw8vPz9Y6vRZs/fz5btmxh/fr1LF68mBEjRvDuu+/SvXt3lixZUmv/t99+m4SEBLZu3cpjjz3GypUr+fLLL/ntb3/LgQMHGDhwIEePHjXgkRhn/PjxbNmyhejoaPu2+hJ+U2VnZzN48GA2b97Miy++yKpVq5g9ezb//Oc/ueGGG7BarbofU+hj9+7dvPbaa0RFRdV5+4YNG7jpppuIiooiOTmZv/zlL6xZs4bRo0dTXl5+2faXLFnC9OnTGThwIP/97395/vnn+fe//82tt95aY7+ZM2dy7tw5PvnkE6ZMmcLtt99e4z177tw5HnvsMV577TUiIyOb9qCFUykpKeGFF16oM+HX9TlmCHUF/vWvfylAbd++vcb2F154QQHq3XffvZLmdPP888+rK3woDrV+/XoFqI8//rjWbbm5uapfv37KbDarvXv32rdv2rRJmUwmdcstt6jy8vI6212+fLk6ffp0g8c+f/5804JvQMeOHdX48eMd1n5jjR8/XnXs2LHW9mPHjilA/elPf7qqdv/5z38qQK1Zs6bG9vnz5ytA/fDDD1fVriN07NhRzZw50+gwHML2OXPs2LFG7V9ZWan69u2rHn30UXX99dernj171tpn4MCBqkePHqqystK+bfPmzQpQb775ZoPtWywWFR0drW688cYa25csWaIAtWrVKqVU9XtP0zT1/fff2/fp2rWreuutt+y/P/DAA2rEiBGNelx6sX0erV+/vlmP626ys7MVoJ5//nmjQ6mXLtfwBwwYAEBWVpZ9W1lZGY8//jh9+/YlODiYsLAwhgwZUmcXl6ZpPPzww3zwwQd0794dPz8/+vTpw8qVK2vt++WXX9K3b1+8vb3p1KlTvd23ZWVlzJkzh06dOuHl5UXbtm2ZPXs2BQUFNfazdVOvXLmSfv364evrS/fu3e3H/ve//0337t3x9/dn0KBBTe5WDwsL4+2338ZisfDGG2/Yt8+fPx8PDw/efvttvLy86rzv1KlTadOmjf33u+++m4CAAPbt28eNN95IYGAgo0ePBmD16tVMmjSJdu3a4ePjQ5cuXXjggQfIycmp0abtcsiuXbu49dZbCQoKIjg4mF/96lf1djl+9dVX9O/fH19fX+Li4nj33Xcv+7gHDhzI+PHja2yLj49H0zS2b99u3/bZZ5+haRr79u0DaneFjRgxgi+//JITJ07UuGxyqddff51OnToREBDAkCFDSElJuWyMnp6eAAQHB9fYHhISAoCPj0+D97c9lwcOHGD69OkEBwcTFRXFr3/9a86dO1dj38a+PisrK3niiSdo3bo1fn5+DBs2jG3bttV5/MzMTB544AHatWuHl5cXnTp14oUXXsBisdTY76233qJPnz4EBAQQGBhIXFwcc+fOvdzTwwsvvEBiYiJhYWEEBQXRv39/Fi9ejLpk/S3be6oxr5OUlBSGDh1q7yafM2cOlZWVl43lYi+//DJ5eXnMmzevzttPnz7N9u3bufPOOzGbzfbt1157Ld26dePzzz9vsP2UlBQyMjK45557amyfOnUqAQEB9vtXVFSglMLf39++T0BAAGVlZQB8//33vP/++7z99ttX9PgAjhw5wowZM2jVqhXe3t50796dRYsW1drv0KFDjBs3zn7Z4sEHH6SoqKjWfkop5s+fT8eOHfHx8WHAgAGsXr2aESNGMGLEiBr7FhYW8vvf/77Ga/W3v/0t58+fb1TsX331FaNHjyY4OBg/Pz+6d+/OggULauyzYsUK++WWwMBAxowZw5YtW2rscyXvryvJKY19bgsKCnj88ce55ppr8Pb2plWrVtx8880cOnSI48eP23tsXnjhBfvnku2yW31d+u+++y59+vTBx8eHsLAwpkyZwo8//lhjH9vnfFpaGjfffDMBAQG0b9+exx9/vFG9UzVcybeD+s7w//a3vylAffrpp/ZtBQUF6u6771YffPCBWrdunfrqq6/U73//e2UymdR7771X4/6AiomJUYMGDVLLly9Xq1atUiNGjFBms1kdPXrUvt+aNWuUh4eHGjZsmPrss8/Uxx9/rAYOHKg6dOhQ4wzfarWqsWPHKrPZrJ599ln1zTffqNdee035+/urfv36qbKyMvu+HTt2VO3atVO9evVSH374oVq1apVKTExUnp6e6rnnnlNDhw5Vn332mfr8889Vt27dVFRUlCopKWnweWroDN8mOjpade7cWSlVfQbh6+urhgwZ0mC7l5o5c6by9PRUMTExasGCBWrt2rXq66+/Vkop9dZbb6kFCxaoFStWqA0bNqj33ntP9enTR8XGxqqKigp7G7bekY4dO6r//d//VV9//bV6/fXX7c/VxfvanqsePXqo999/X3399ddq6tSpClAbNmxoMNannnpKBQQE2NvLzMxUgPL19VXz5s2z7/eb3/xGRUVF2X+/9GzvwIEDaujQoap169Zqy5Yt9h+lfj7Dj4mJUePGjVNJSUkqKSlJxcfHq9DQUFVQUNBgjAUFBapDhw7quuuuU/v371dFRUVqw4YNqkOHDuqWW2657N/D9lzGxsaq5557Tq1evVq9/vrrytvbW91zzz32/a7k9Tlz5kylaZr63//9X/XNN9+o119/XbVt21YFBQXVOMPPyMhQ7du3Vx07dlRvv/22WrNmjXrxxReVt7e3uvvuu+37ffjhhwpQjzzyiPrmm2/UmjVr1N///nf16KOPXvbx3X333Wrx4sVq9erVavXq1erFF19Uvr6+6oUXXqixX2NfJwcOHFB+fn6qR48e6sMPP1TJyclq7Nix9vdzY87wDxw4oLy9vdWXX36plFJ1nuF/9dVXCrDvc7HbbrtNRUdHN3iMv//97wpQBw4cqHXbgAEDarxv4+Li1F133aXy8vLU559/rkwmk9q6dauqqKhQPXv2VH/84x8v+5jqeozBwcEqPj5evf/+++qbb75Rjz/+uDKZTOoPf/iDfb/MzEzVqlUr1bZtW/Wvf/1LrVq1Sv3yl7+0P58Xn+HPmTNHAer+++9XX331lfrnP/+pOnTooKKjo9X1119v3+/8+fOqb9++KiIiQr3++utqzZo16i9/+YsKDg5Wo0aNUlartcHY33nnHaVpmhoxYoRaunSpWrNmjXrzzTfVQw89ZN/H1lNy4403qqSkJLVs2TKVkJCgvLy81MaNG+37Nfb9pVTjc0pjn9vCwkLVs2dP5e/vr/74xz+qr7/+Wn366afqscceU+vWrVNlZWX219msWbPsn0tpaWlKqbp7rWw9h9OnT1dffvmlev/999U111yjgoOD1eHDh+37zZw5U3l5eanu3bur1157Ta1Zs0Y999xzStO0Wu+9y7mqhJ+SkqIqKytVUVGR+uqrr1Tr1q3VddddV6O77FIWi0VVVlaqWbNmqX79+tUMAlRUVJQqLCy0b8vMzFQmk0ktWLDAvi0xMVG1adNGlZaW2rcVFhaqsLCwGgnf9sS/+uqrNY6zbNkyBah//OMf9m0dO3ZUvr6+Kj093b5t9+7dClDR0dE1usiTkpIUoFasWNHg89SYhJ+YmKh8fX3tjxVQ06ZNq7Wf7Xmz/Vz8Bps5c2ajLqVYrVZVWVmpTpw4oQCVnJxsv832Jvrd735X4z62N+F//vMf+7aOHTsqHx8fdeLECfu20tJSFRYWph544IEGY1izZo0C1HfffaeUUuo///mPCgwMVA899JAaOXKkfb+uXbuqGTNm2H+v641yuS79+Ph4ZbFY7Nu3bdumAPXhhx82GKNSSp05c0YNGTJEAfafqVOn1kjC9bE9l5e+7h566CHl4+Nj/9s19vX5448/Nvi3uTjhP/DAAyogIKDG30YppV577bUayerhhx9WISEhl30sl1NVVaUqKyvVH//4RxUeHl7jddnY18kdd9yhfH19VWZmpn2bxWJRcXFxjUr4VVVVKjExUU2fPt2+ra6Eb3u+bF8ML3b//fcrLy+vBo8zb948BaiMjIxat914442qW7du9t83b96sWrdurQBlMpnUc889p5RS6sUXX1Q9evSo93JdQ8aOHavatWunzp07V2P7ww8/rHx8fFReXp5SSqknn3xSaZqmdu/eXWO/MWPG1Ej4eXl5ytvbW91xxx019tuyZYsCaiT8BQsWKJPJVOsk75NPPqlxOaMuRUVFKigoSA0bNqzeLwZVVVWqTZs2Kj4+XlVVVdW4b6tWrdS1115r39bY95dSjc8pjX1u//jHPypArV69ut7H21CX/qWfY/n5+crX11fdfPPNNfY7efKk8vb2rvEZaPucX758eY19b775ZhUbG1tvPHW5qi79wYMH4+npSWBgIOPGjSM0NJTk5OQa3WVQPRp16NChBAQEYDab8fT0ZPHixbW6LABGjhxJYGCg/feoqChatWplH9F+/vx5tm/fzq233lqjazUwMJBbbrmlRlvr1q0DqDWKeerUqfj7+7N27doa2/v27Uvbtm3tv3fv3h2o7j728/Ortb2hUfaNpS7pBq1PQkICnp6e9p//+7//q7XPL37xi1rbzp49y4MPPkj79u3tz33Hjh0B6nz+f/nLX9b4/fbbb8dsNrN+/foa2/v27UuHDh3sv/v4+NCtW7fLPie2bts1a9YA2LsPx40bx/fff09JSQmnTp3iyJEj3HDDDQ22dTnjx4/Hw8PD/nvv3r2By//d8vPzmTRpEoWFhSxZsoTvvvuON998k02bNjFx4sRaXeP1mThxYo3fe/fuTVlZmX1EeGNfn7bnvr6/zcVWrlzJyJEjadOmDRaLxf5z0003AdWD1gAGDRpEQUEB06dPJzk5udYlnoasW7eOG264geDgYDw8PPD09OS5554jNze31mj3xrxO1q9fz+jRo2sMtPPw8OCOO+5oVDyvv/46R44cafQAzvpm8jR2hk9j7n/ttddy8uRJDh06RF5eHi+88AJHjhxh/vz5vP3225jNZp5//nk6dOhA69atefjhh+1d/nUpKytj7dq1TJkyBT8/vxp/25tvvpmysjL75ar169fTs2dP+vTpU6ONGTNm1Pg9JSWF8vJybr/99hrbBw8eTExMTI1tK1eupFevXvTt27fGsceOHXvZkf/ff/89hYWFPPTQQ/U+d6mpqZw5c4Y777wTk+nndBQQEMAvfvELUlJSKCkpqXGf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8eLFFBYW8v7779u7W6H6GveiRYt45JFH6N+/P/fffz89e/bEZDKRkZFhP0O4tPu+LnFxcXTu3JmnnnoKpRRhYWF88cUXDXbbfvbZZ5jNZsaMGcOBAwd49tln6dOnT63rfE2RkJBAaGgo33zzTY0pTjfccAMvvvii/f+XEx8fz2effcZbb71FQkICJpPJ3uPUFLNnz2bJkiWMGTOGp556ivbt27N//35eeukloqKial1Lv1qNfX12796dX/3qV/z5z3/G09OTG264gf379/Paa6/Veh388Y9/ZPXq1Vx77bU8+uijxMbGUlZWxvHjx1m1ahV///vfadeuHffddx++vr4MHTqU6OhoMjMzWbBgAcHBwQ32fI0fP57XX3+dGTNmcP/995Obm8trr71W60vllXjmmWdYsWIFo0aN4rnnnsPPz49FixY1arpXSEhInV9GQ0JC6vyi+sorrzBmzBimTp3KQw89xNmzZ3nqqafo1atXjdfiiRMn6Ny5MzNnzmTx4sVAdQ/cq6++yp133skDDzzA9OnTOXLkCE888QRjxoxh3Lhxdcb4P//zPyQmJtZ4D40dO5bHH3+cIUOGEBAQwF//+lfuvffeBh/rX/7yF4YNG2a/xBQTE0NRURFpaWl88cUX9iT029/+lnfffZfx48fbX7NLlizh0KFDNdoLCwvjf/7nf1iwYAGhoaFMmTKF9PR0XnjhBaKjo2tcS//tb3/Lp59+ynXXXcfvfvc7evfujdVq5eTJk3zzzTc8/vjjJCYm1hl3QEAA//d//8e9997LDTfcwH333UdUVBRpaWns2bOHv/3tb5hMJl599VV++ctfMmHCBB544AHKy8v505/+REFBAS+//HKDz01TXclzu2zZMiZNmsRTTz3FoEGDKC0tZcOGDUyYMME+XqBjx44kJyczevRowsLCiIiIqPNLUUhICM8++yxz587lrrvuYvr06eTm5vLCCy/g4+PD888/75gHfCUj/OqblqdU9SjcDh06qK5du9pHSL/88ssqJiZGeXt7q+7du6t//vOfdRbJAdTs2bNrtVlXcZEVK1ao3r17Ky8vL9WhQwf18ssv19lmaWmpevLJJ1XHjh2Vp6enio6OVr/5zW9Ufn5+rWPUVUymrpgaW9jFNkrf9mM2m1V4eLgaMmSImjt3rjp+/Hi99929e7e65557VKdOnZS3t7fy8fFRXbp0UXfddZdau3ZtjX1nzpyp/P3962zn4MGDasyYMSowMFCFhoaqqVOnqpMnT9YaRWp77nbu3KluueUWFRAQoAIDA9X06dNVVlZWo56r66+/vsbI3oZMmTJFAWrJkiX2bRUVFcrf31+ZTKZaf5+6Runn5eWp2267TYWEhChN0+x/+4b+Ppc+7vr88MMPasqUKapdu3bK29tbXXPNNeree+9VJ0+evOx9bc9ldnb2ZR9DY1+f5eXl6vHHH1etWrVSPj4+avDgwWrLli11vjeys7PVo48+qjp16qQ8PT1VWFiYSkhIUE8//bQqLi5WSin13nvvqZEjR6qoqCjl5eWl2rRpo26//fYaRaDq8+6776rY2Fj787JgwQK1ePHiWo/tSl4nmzdvVoMHD1be3t6qdevW6n//93/VP/7xjysqvHPpMeoqvKOUUt98840aPHiw8vHxUWFhYequu+6q9Rq3vYbqKmq0dOlS+2dP69at1aOPPqqKiorqPNaaNWuUv79/rfe6xWJRTz75pGrdurUKCwtT991332Wn+dri+vWvf63atm2rPD09VWRkpLr22mvVSy+9VGM/2/ve9hhnzZqlkpOTa03Ls1qt6qWXXlLt2rVTXl5eqnfv3mrlypWqT58+asqUKTXaLC4uVs8884yKjY1VXl5e9mlsv/vd72rMsKjPqlWr1PXXX6/8/f3t0zBfeeWVGvskJSWpxMRE5ePjo/z9/dXo0aPV5s2ba+xzJe+vK8kpjX1u8/Pz1WOPPaY6dOigPD09VatWrdT48ePVoUOH7PusWbNG9evXT3l7e9d4HdVXTOqdd96xv6aCg4PVpEmTak3/rO9z/moKzmlKNXK4uHBJf/jDH3jhhRfIzs522HUjIYTzO3bsGHFxcTz//PONKsQkWh5duvSFEEK0HHv27OHDDz/k2muvJSgoiNTUVF599VWCgoLsg4mF65GEL4QQbsbf358dO3awePFiCgoKCA4OZsSIEcybN6/eBYhEyydd+kIIIYQb0GVanhBCCCGcmyR8IYQQwg1IwhdCCCHcgCR8IYQQwg1IwhdCCCHcgCR8IYQQwg1IwhdCCCHcgCR8IYQQwg1IwhdCCCHcgCR8IYQQwg1IwhdCCCHcgCR8IYQQwg1IwhdCCCHcgCR8IYQQwg2YjQ5ACD0opSjJzsZSUkJVRQUeXl6Y/fzwi4xE0zSjwxNCCMNJwhctUklODifXrSNr504ytm0ja+dOKouKau3nGRhIVEIC0YMGEZWQQIdRo/CLiDAgYiGEMJamlFJGByFEYyilyEhJYdeiRaQuW4bVYsFkNmO1WC57X9t+JrOZuGnT6Dt7NtGJiXL2L4RwG5LwRYuQlpzMpmeeIWf/fjSzGdWIJF8f2/0j4uMZ9tJLdJk4UcdIhRDCOUnCF06tNDeXtY88wqEPP0QzmVBWq25t29qLmz6d0QsX4hserlvbQgjhbCThC6d1JCmJr++9l/KCAlRVlcOOo3l44B0Swth33qHr5MkOO44QQhhJpuUJp6OUImX+fJKnTKEsP9+hyR5AVVVRlp9P8pQpbF2wAPkOLIRwRXKGL5yKUoqNc+ey7eWXDYshcc4chs2bJwP6hBAuRc7whVPZumCBocneWWIQQgi9yRm+cBpHkpJInjLF6DDsJicl0WXSJKPDEEIIXUjCF06hNDeXxbGxlOXlgTO8JE0mfEJDmZWaKqP3hRAuQbr0hVNY+8gjlBcUOEeyB7BaKS8oYO2jjxodiWiAUorzZ89y7vhx8g4f5tzx45w/e1YGXgpRBznDF4ZLS04myYmnw01OTpbiPE5CSioLcfUk4QtDKaV4r3dvcg8e1LWojl40k4nwnj2ZuWePjNo3iJRUFkIfkvCFoc5s2cLSa681OozLmrFlC20GDzY6DLcjJZWF0I9cwxeG2rVoEZrZuRdt1Mxmdi9aZHQYbqU0N5eVM2aQNHkyuQcPAjQp2V98/9wDB0iaNImVM2ZQmpvb5FiFaCnkDF8YpiQnh79HRzeqa/ZKbAU+AbyAeTq1aTKbeTAjQ64DNwMpqSyEY8gZvjDMyXXrdE/254CVQJCurYLVYuHU+vU6tyouJiWVhXAsSfjCMFk7d2LSuTv/U+AaoKuurVaf4Wft3Klzq8LGVlJ509NPV29orgGcF45jO7YkfeHKJOELw2Rs3arrGf5O4CfAEbX6rBYLGdu2OaBlAc5RztgZYhDCkSThC0Mopcj64Qfd2isGVgA3AyG6tVpT1o4dcgboAEeSkn4+szfYxrlzSUtONjoMIRxCEr4wREl2dp0FU67WZ0AkMES3FmurKCqiJDvbgUdwP6W5uXx9773gLPPiTSa+mjVLRu8LlyQJXxjCUlKiW1t7gYPAVMDRacNSWlrj9+zsbL7++mv279/v4CO7JimpLETzce4J0MJlVVVU6NJOOfA5MJTqkfm2dGwb310KeFA9RU8PVeXlWCwWDh48yPbt20lPTwege/fu9OrVS6ejuIe05GQOffih0WHUoqqqOLR0KXF33CHFeYRLkYQvDOHhpU8KPk/19fvvLvxc6jmgJ3C3LkeDD5cvJx+oumjKmKZp+Pv763QE96CUYtMzz6CZTE5bUnnTM8/Q+ZZbpAyvcBmS8IUhzH5+urQTCDxYx/Z1VI/YvxfQMxXnnDsHAQE1timl2LFjB7t378ZsNuPt7Y2Pjw++vr74+/sTFBREUFAQISEhhIWFERYWhtnJqws6WkZKCjlOfBlEWa3k7NtHxtatUlJZuAz3/tQRhvGLjMQzMLDJA/c8gc51bN9O9QCVum67Wl6BgUyYNYtVq1ZRdEncoaGhmM1mysvLKS8vp7i4GKvV2uCofpPJhNlsxsvLC29vb/sXhICAAIKCgggODiYsLIzw8HD8dPqC5CxsJZWbWi63HPiK6nEcJVQP3BwF9G1qgPxcUlkSvnAVkvCFITRNI6p/f9I3bDA6lEaLGjCAuLg4unTpwpYtW9iwYYM9qY8aNarOa/hWq5Vz586Rl5dHfn4+586do6ioiOLiYkpKSigrK6O8vJzCwkLy8/OxNtC9rWkaZrMZT09PvLy88PHxwc/Pj4CAAAIDAwkODiY0NJSwsDBCQkIwmYwZk1tZWUllZWW9X1JKcnJIXbasycke4D0gHbiJ6mS/C1gCKKBfE9tWFguHPvqIEW+8ISWVhUuQhC8ME52YyJnNm3Uvrwsw7cKPXkxmM9GDBgFgNpsZPnw48fHx/Pe//+Xw4cOEhobWfT+TidDQ0Hpvr0tJSYn9C0J+fj5FRUUUFRVx/vx5ysrKKCsro7S0lKKiohpjCS6laRomk8n+BcHWixAQEGDvRbDFFh4ejpdO4yrWr1/P1q1bGT58OMOGDat1+UKvkso/AkeAGfyc3LsA+VSXV+5D06ch2Uoqx06d2sSWhDCeJHxhmKiEBIcke0ewWixEJSTU2BYSEsL06dMpKioiMDBQt2P5+fnh5+dHu3btGrW/xWIhPz/f/iWhsLDQ3otQWlpKWVkZFRUVlJSUkJOT06jLDJ6envaxCLbLDIGBgYSEhNh7EQICAursRbD1VGzYsIHdu3czfvx4unb9udixraRyU//2+wFvoPcl2wcCS4GTQEyTjvBzSWVJ+MIVSMIXhukwapQuH/zNwWQ2037kyDpv0zPZXw2z2UxkZCSRkZGN2t9qtVJcXExeXh55eXn2ywxFRUU1LjMUFxdTUFBw2csMHh4eNS4zFBQU2G8/d+4cS5cuJSYmhgkTJhAeHq5bSeVMoBXV0y4vFn3R7TFNPIaUVBauRBK+MIxfRASxd9zBIZ2u5zqKZjYTN22ay1zHNZlM9pkDMTExjbpPRUUFubm55OXlUVBQYO9FOH/+vL0XwfYloa7LDMePH+dvf/sb3l5eeG/frsvjKAHC6tjud9HterCVVJbpeaKlk4QvDNVv9mx+XLLE6DAapCwW+s6ebXQYhvLy8iI6Opro6OjL7vvKK69QVlYGVPcAKKXw9fUlOjqatsHB/KBjlcXmSMG2ksr+rVo1w9GEcBxJ+MJQ0YMHExEfT+6BA05bgCWiVy+iExONDqVFUEpRXl4OgIeHB/Hx8SQkJNC2bVs0TePc8ePotWSSH3WfxZdcdLteLi2pLERLJAlfGErTNIa99BJJkyYZHUqdlNXK0BdflO7cKzB48GBCQkLo3bs3Pj4+NW7Tq6QyVF+r3011GeWLr+NnXvi3tW5Hqi6pLERLJ4vnCMN1mTiRuOnT0TwuHX5lLM3Dg7gZM6Se+hXQNI0bb7yRQYMG1Ur2oF9JZYBeVBfe2XfJ9h1Ur6vQQbcjgYe3t46tCWEMSfjCKYxeuBDvkBAwqFhMLSYT3iEhjP7rX42OxKXoVVIZIA7oSvXSyFuBNOATIBUYj74fbmZfXx1bE8IYTvLpKtydb3g4Y995B5zlOr7VyrjFi/ENDzc6EpdiK6msl5lAAvA18A7Vc+9/CfTX7QjVJZX9GjnlUQhnJglfOI2ukyczbN48o8MAYPj8+XRx0nEFLZmtpLJevIFJVK+K+DLwP+hTR/9iUQMGyBgO4RIk4QunkjhnDolz5hgaQ+Xw4ZyJiyMvL8/QOFxVdGIiphayWuDFJZWFaOlaxrtOuA1N0xg2bx5egYFsnDu3+pp+c3TzXzhOwrPP8p2HB3v37mXv3r1ERkbSq1cvevToQYSLFN4xWksvqSxES6WphgprC2GgtORkvpo1i/KCAlQDi8Q0lebhgXdICOMWL6bLpEm89957HD9+/OfbLxSPiY6O5te//rXbr2XfVCU5Ofw9OrpFJH2T2cyDGRkuU2VRuDfp0hdOq8ukScxKTSX29tuB6iI4erK1F3vHHcw6fNh+zT7hkjM623diT09PPJxs6mBLZCuprDn5FydXK6kshCR84dR8w8OZsHQpk5OSCO/ZE6DJicJ2//CePZmcnMyEJUvwDfu5Knu3bt1qJfbw8HB++ctfyuAtnfSbPdup108AKaksXI8kfNEidJk0iZl79jBjyxa6T5tmH/TV2ORv29/k6Un36dP5ZUoKM/fsqbOojpeXF926dUPTNHuCz83N5fDhwzo9GmErqax3r41eNJOJyN69paSycClyDV+0SOmpqfz72WfpERRE5U8/kbljB5VFRbX28wwMpPWAAUQPGkRUQgLtR45sVBftwYMH+fjjj2nTpg233HIL7777LpWVldx6663Ex8c74iG5nbQVK5y2pDLA5ORkqbIoXIokfNHiKKX429/+Rl5eHjNmzKBr164opSjJzsZSWkpVeTke3t6YfX3xi4y8qm74qqoq9uzZQ48ePexrvL/55ptUVlYyefJk+vTp44BH5n5WzphB6vLlDh2UeaU0Dw9i77iDCU6+iqMQV0oSvmhxNmzYwLfffgvATTfdxKBmmid97tw53nzzTSoqKpg4cSL9+vVrluO6stLcXBbHxlKWn+8cVRZNJnxCQ5mVmipVFoXLcc4LaELU48CBA/ZkD3Dy5MlmO3ZwcDCzZ8/Gy8uLFStW8MMPei306r6kpLIQzUcSvmgxzpw5w+eff15j27Fjx2jOTqqgoCB70v/iiy/YuXNnsx3bVUlJZSGahyR80SKUl5ezdOlSqi651ltSUkJBQUGzxhIUFMTDDz+Mt7c3K1euZPv27c16fFfkDCWVE+fMYdBTTxkagxCOJAlftAhVVVWEhITUOQCvObv1bQIDA+1Jf9WqVWzbtq3ZY3AltpLKw+fPr97QXNP1Lhxn+IIFDJ8/X+osCJcmg/ZEi1JRUcFrr72Gpmm0adOG06dPM3bs2FrV8ZpLcXExixYtoqysjLFjxzJ48GBD4nAlRpVUFsLVScIXLUpZWRmvvPIKsbGxTJs2DaWU4WdlJSUlLFy4kLKyMm688UaGDBliaDyuoDQ3l7WPPMKhDz9EM5lQOg7qs7UXN2MGoxcurFFlUQhXJl36okXZv38/AN27dwcwPNkD+Pn58cgjj+Dr68s333zD999/b3RILZ4RJZWFcHWS8EWLcujQIQB6XkgCzsLPz4+HH34YX19fVq9ezebNm40OySU0VFK5MV2TV1JSWQhXJ136okV57bXXsFqtPPHEE0aHUqeysjIWLlxISUkJo0aNYvjw4UaH5FJKcnI4tX493y1dSt7u3fjk5FBZXFxrv6stqSyEK3Pu9SmFuIjVauX8+fPExMQYHUq9fHx8eOSRR1i4cCHr1q1DKcV1111ndFguwy8iguixY8n48UdU377cftddtPL3162kshCuTLr0RYuRmpoKQNeuXQ2OpGG2pO/v78/69etrVAYUTaOU4vPPP7cXW/rxxx/xb9WK4I4dCevWjeCOHfFv1UqSvRB1kIQvWoyDBw8C0Lt3b4MjuTwfHx8effRRAgIC2LBhA+vXrzc6JJeQkpLC8ePH7b8fPHiwWSstCtGSScIXLUZ6ejqenp4EBAQYHUqjeHl58cgjjxAQEMB3333HunXrADh69ChvvfVWkyoEKqU4f/Ys544fJ+/wYc4dP875s2ddOvllZWWxZs2aGtvOnz/P6dOnDYpIiJZFruGLFuPcuXO0bt3a6DCuiC3p/+1vf2Pjxo3k5eVx6NAhqqqq2Lt3b6Ov75fk5HBy3Tqydu4kY9s2snbupLKoqNZ+noGBRCUk2AerdRg1ymUGq61YsQLrJfPxNU3j4MGDtGvXzqCohGg5JOGLFiE9PR2lFNdcc43RoVwxLy8vHn74Yf7yl79w4MAB+/Z9+/Y1mPCVUmSkpLBr0SJSly3DarFgMpuxWiz13qeyqIj0b7/lzKZN9v3jpk2j7+zZRCcmtuhr2/Hx8fj4+HD69GnKy8uB6ufo6NGjBkcmRMsgCV+0CHv37gVaxvX7upw5c4aysrIa23JycsjOziYyMrLW/mnJyWx65hly9u+vnnN+Ick3lOwvZr1o/x8/+oiD//kPEfHxDHvppRY7B33w4MEMHjyYjz/+mIMHD3LfffdRUFCAv7+/0aEJ0SLINXzRIhw/fhyTyUSrVq2MDuWKVVVV8eGHH9bqjgZqnPFDdUnZlTNmkDR5MrkXBimqRib5+tjun3vgAEmTJrFyxgxKc3Ob1KaRcnJy8PDwoE2bNvTo0YOOHTsaHZIQLYIkfNEi5OXlERoaanQYV8XDw4MJEyYQExNTq0s9JSXFPtDuSFISi2NjSV2+HEDX+vEXt5e6fDmLY2M5kpSka/vNpaioCF9fX6PDEKLFkS594fTy8/OpqqqiQ4cORody1eLj44mPj6ekpITU1FT27dvHsWPHKC8vZ8uWLZi+/ZZNTz9dvVyrzon+UqqqirL8fJKnTGH4/PkMeuqpFnVtv6ysjDZt2hgdhhAtjiR84fT27NkDVCfNls7Pz49+/frRr18/ioqKWL58ORuefBLPTZuqd3Bwsre7cJyNc+dSUVTEsHnzWkTSP3/+PEqpFnlpRwijSZe+cHppaWlomuZy12oDAwPpmZn5c7I3yNYFC9j28suGxtBYx44dA6Bt27YGRyJEyyMJXzi9nJwcAgICMJlc6+V6JCmJTc88Y3QYQPWZflpystFhXNapU6cA6NSpk8GRCNHyuNYnqHA5ZWVllJeXu9wZXWluLl/fey84Sze6ycRXs2Y5/ej9s2fPAhAm69gLccUk4Quntm/fPgB69OhhcCT6WvvII5QXFICzlMK1WikvKGDto48aHUmD8vPz8fb2NjoMIVokSfjCqdlWyOvevbvBkegnLTmZQx9+iKqqMjqUGlRVFYeWLiVtxQqjQ6nX+fPnW8xaCkI4G0n4wqllZGTg6+uL2ewaE0qUUmx65hk0Jx2PoJlMbHrmGadchMdqtWKxWFpsPQYhjOacnzpCUP0BX1JS0uIWzGlIRkoKOfv3615URy/KaiVn3z4ytm41OpRaMjMzAYiOjjY4EiFaJkn4wmkdOnQIgK5duxociX52LVqE5uS9FZrZzO5Fi4wOo5bjx48D0L59e2MDEaKFcu5PHuHWDl6oJd+nTx+DI9FHSU4OqcuWNbk2/kfAzgZufxhoSsUCZbFw6KOPGPHGG061tO6ZM2cAXK4egxDNRRK+cFrp6el4eXnh5+dndCi6OLluXaNXu2vIDcCQOrb/i+o3tB7nv1aLhVPr1xM7daoOrekjNzcXk8mEl5eX0aEI0SJJl75wWoWFhYSHhxsdhm6ydu7EpEN3fgTVZ/AX/1iA88AA9HlTm8xmsnY21I/Q/AoLC13my58QRpCEL5zSyZMnUUrRuXNno0PRTcbWrbqc4ddlG6ABg3Rqz2qxkLFtm06t6aOsrIygoCCjwxCixZKEL5ySreCOq1y/V0qR9cMPDmm7FNgHdAH0rD+XtWOH00zPKy0txWq1EhkZaXQoQrRYkvCFUzp+/DgeHh5EONGgsaYoyc6msqjIIW3vBirR7+zepqKoiJLsbJ1bvTqyaI4QTScJXzil/Px8QkJCjA5DN5aSEoe1vQ3wA3o5oG1LaakDWr1y6enpgCyaI0RTSMIXTicvL4+qqiqXmn5VVVHhkHbPAOlAfxwz5aaqvNwBrV45W9EdVxrEKURzk4QvnM6ePXsAiI+PNzgS/Xg4aCrZ9gv/JjqkdfBwkoVq8vPz8fLyQnOW1QWFaIEk4Qunc/ToUTRNo0OHDkaHohuzA6aTWYAfqJ5376jiw2ZfXwe1fGVk0Rwhmk4SvnA62dnZBAYGYnLSBWauhl9kJJ6Bgbq2uR8owXFn916Bgfg5wah4q9VKZWWlLJojRBO5zieqcAklJSVUVFS43GhsTdOI6t9f1za3AV6AoyYuRg0Y4BRd6NkXZgpERUUZHIkQLZskfOFU9u/fD0CPHj0MjkR/0YmJulTas7kfmAf46Nbiz0xmM9GD9J7od3VsU/Jc6RKPEEaQhC+cSmpqKgBxcXEGR6K/qIQEh1Xa05vVYiEqIcHoMICfF82JiYkxNhAhWjhJ+MKpZGZm4ufnh9nJl5C9Gh1GjdL1DN+RTGYz7UeONDoMAHJycjCZTHg7yYwBIVoqSfjCaVgsFkpKSlz2Wq1fRASxd9yB5uRJXzObiZs2zWmWxj137hw+Po64cCGEe5GEL5yGrTs/NjbW4Egcp9/s2Sgn79ZXFgt9Z882Ogy7srIygoODjQ5DiBZPEr5wGgcPHgRcq+DOpaIHDyYiPh7NSaccaiYTkb17E53oqMl+V6asrAyr1eoyayoIYSTn/NQRbik9PR0vLy+XXvNc0zSGvfQSymo1OpQ6KauVoS++6BTT8QBOnDgByKI5QuhBEr5wClarlaKiIrc4k+sycSJx06ejeXgYHUoNmocHcTNm0GXiRKNDsTt58iQgI/SF0IMkfOEU0tPTUUrRuXNno0NpFqMXLsQ7JAScpWvfZMI7JITRf/2r0ZHUkJWVBUCkE1T8E6Klc5JPG+Hu9u7dC0CfPo6qG+dcfMPDGfvOO+AsXftWK+MWL8bXyVajy8/Px9PT06XKLAthFHkXCadw4sQJPDw83Gr5066TJzNs3jyjwwBg+Pz5dJk0yegwaikuLsbf39/oMIRwCZLwhVPIz893y8VREufMIXHOHMNjGPTUU4bGUBer1UpFRYVbvi6EcARJ+MJwubm5VFVV0bFjR6NDaXaapjFs3jyGz59fvaG5uq4vHGf4ggUMnz/faUblXyw3NxeA1q0dtfivEO5FEr4w3J49ewDo3bu3wZEYQ9M0EufMYXJSEj6hoQ4fva95eOATGsrkpCQSnfDM3ub48eMAtG/f3thAhHARkvCF4Y4ePYqmabRr187oUAzVZdIkZqWmEnv77QC6F+extRd7xx3MOnzYKa/ZX+z06dMAdOrUyeBIhHANkvCF4XJycggKCpKR2FSP3p+wdCmTk5II79kToMm19233D+/Zk8nJyUxYsgTfsLAmx+po2dnZmEwmqaMvhE7kE1YYqqSkhIqKCqmkdokukyYxc88eZmzZQvdp0+yr7Jk8PRt1f9v+ymSi9bhx/DIlhZl79jhVUZ3LKSwslGQvhI6ce9ku4fJs8+979OhhcCTOR9M02gweTJvBgxnxxhucWr+ezB07yNy+ncwdO6gsKqp1H8/AQFoPGED0oEG06t+fZTt28FNgILd07+6UA/MaUlJSQqtWrYwOQwiXIQlfGOrw4cOAa6+Qpwe/iAhip04ldupUAJRSlGRnYyktpaq8HA9vb8y+vvhFRtoTu9VqhR9/xGq18s477/DrX/+akJAQAx9F41VUVMiiOULoTBK+MFRmZiZ+fn6YnXyNeGejaRr+lzn7LbqoB6CoqIh3332Xe+65p0XMa7ctmtOmTRuDIxHCdcg1fGEYi8VCaWmpzLN2kPz8/Bq/nz9/nnfffZe8vDyDImq8U6dOAbJojhB6koQvDPPjjz8C0p3vKJcmfKvVSnFxMUuXLjUoosbLyMgAICoqyuBIhHAd0o8qDGNL+O5acMfRLk34AO3atSMxMdGAaK6MLJojhP4k4QvDnD59Gi8vL5l65SDl5eVA9VlyTk4OXl5ezJo1y+CoGqe4uBg/Pz+jwxDCpUjCF4awWq0UFRXJoCwHGjVqFEOGDCEkJISPP/6YgwcPkpeXR1gLKLpTXl5OdHS00WEI4VKkv0wY4uTJkyil6Ny5s9GhuCxvb2/7NLzrrrsOgA0bNhgYUePYBhXK9Xsh9CUJXxhi3759APTp08fgSNxDVFQUPj4+9roHzuzYsWOALJojhN4k4QtDnDhxAg8PjxbRvewqYmNjKSsrs4+Ad1ayaI4QjiEJXxiioKBAkn0zs3Xrb9y40eBIGnb27Fk0TZNBe0LoTBK+aHbZ2dlUVVXRsWNHo0NxK2FhYfj7+3P06FGjQ2nQuXPnZOaGEA4gCV80O9uCOTL/vvl1796diooKTp48aXQo9SotLSUwMNDoMIRwOZLwRbM7evQomqbJoCwDXH/99YDzdutbLBaqqqpk0RwhHEASvmh2OTk5BAUFGR2GWwoICCAoKIjjx48bHUqdbD0PUp9BCP1JwhfN6vz581RWVtKuXTujQ3FbvXr1wmKxcOTIEaNDqcW2Sp6M7xBCf5LwRbOyXb/v0aOHwZG4r2HDhgGwefNmgyOpLTMzE5AzfCEcQRK+aFa2wi9xcXEGR+K+fH19CQ0NJT09HavVanQ4NeTl5WE2m2XRHCEcQN5VolllZWXh5+cnH+gG69OnD1VVVRw8eNDoUGooKiqS+fdCOIh86opmY7FYKC0tlUVRnMCQIUMASElJMTiSmioqKggNDTU6DCFckiR80Wx+/PFHoLrEqzCWl5cXERERnDlzxmm69c+dO4dSilatWhkdihAuSRK+aDa27uP4+HiDIxEACQkJKKXYtWuX0aEA8NNPPwGyaI4QjiIJXzSb06dP4+3tLWVTncSAAQPQNI3t27cbHQoA6enpgCyaI4SjSMIXzcJqtVJcXExkZKTRoYgLzGYzUVFRnD17FovFYnQ4ZGdno2kaAQEBRocihEuShC+axYkTJ1BK0blzZ6NDERcZOHAgSimnOMsvKCjA29vb6DCEcFmS8EWz2LdvHwB9+/Y1NhBRQ9++fTGZTOzcudPoUCgpKZFFc4RwIEn4olmcPHkSs9lMSEiI0aGIi5hMJtq0aUNubi4VFRWGxWFbNCc8PNywGIRwdZLwRbPIz8+X+dVOyjYn//vvvzcsBtuAPanRIITjSMIXDnf27FmsVisxMTFGhyLqEBcXh4eHB3v27DEsBtsqefIaEcJxJOELh7Mlkj59+hgciaiLyWSiffv2FBQUUFJSYkgMGRkZALKKohAOJAlfONyxY8fQNI22bdsaHYqox9ChQwHYtGmTIcfPzc3Fw8ND1lgQwoHk3SUcLicnh+DgYKPDEA3o0qULZrOZ/fv3G3J8WTRHCMeThC8cqri4mMrKSumqbQFiYmIoKiqisLCw2Y9dXl4uMziEcDBJ+MKh9u7dC0DPnj0NjkRcznXXXQfAd99916zHLSwslEVzhGgGkvCFQx0+fBiAbt26GRyJuJz27dvj5eVlX9WwuRw7dgyQAXtCOJokfOFQZ8+exd/fXwZjtRBdunShpKSE3NzcZjvm6dOnAbjmmmua7ZhCuCP5FBYOY7FYKC0tlWIqLYitW3/Dhg3NdsysrCw0TSMoKKjZjimEO5KELxzmwIEDAMTGxhociWisqKgofH19OXLkSLMds6CgAC8vr2Y7nhDuShK+cBjbteBevXoZHIm4Et26daOsrMxeDMfRZNEcIZqHJHzhMGfOnMHb2xsfHx+jQxFX4PrrrweaZ7S+1WrFYrHIojlCNANJ+EJXBQUFFBcXY7VaKSoqIjIy0uiQxBUKDQ3F39+fn376yeHHsg3Ya926tcOPJYS7MxsdgHAt//rXvygsLMTf3x8Af39/cnJyCA8PR9M0g6MTjdWjRw+2b9/OiRMn6Nixo8OOc+LECQCHHkMIUU3O8IWuwsLCADh//jwAqampLFq0iM8//9zIsMQVso3W37hxo0OPYxsn0L59e4ceRwghCV/orGPHjnWeyXfq1MmAaMTVCggIICgoyH4G7ig5OTl4eHhgNktnoxCOJglf6KpDhw4opWpsS0xMpF+/fgZFJK5Wr169sFgs9mqJjiCL5gjRfCThC11dWh61c+fO3HjjjQZFI5pi+PDhAHz//fcOO0ZZWZmspChEM5GEL3Tl5eVlP2MLCgpi6tSpUla3hfLx8SE0NJRTp05htVp1b7+4uBillMzkEKKZyCexuCpKKc6fPcu548fJO3yYc8ePc/7sWZRSeHp6AnD33Xfj7e1tcKSiKfr27YvVarVXTdTT8ePHAVk0R4jmIiNlRKOU5ORwct06snbuJGPbNrJ27qSyqKjWfp6BgajoaFrHxZG1ejXeo0bhFxFhQMRCD4MHD2b9+vWkpKQQHx+va9unTp0CZECnEM1FEr6ol1KKjJQUdi1aROqyZVgtFkxmM1aLpd77VBYVQVERxT/9xMoVKzCZzcRNm0bf2bOJTkyUufgtjJeXFxEREWRkZGC1WnW9PJOVlQVUF/oRQjiedOmLOqUlJ/Ne794svfZaDl1I9kCDyf5i6qL9f/zoI5YOGcJ7ffqQtmKFw2IWjpGQkIBSil27dunabkFBgVzyEaIZScIXNZTm5rJyxgySJk8m9+BB4OfkfbVs9889cICkSZNYOWMGpc243rpomgEDBqBpGtu3b9e13fPnzxMQEKBrm0KI+knCF3ZHkpJYHBtL6vLlACidR2bb2ktdvpzFsbEcSUrStX3hGGazmaioKM6ePYuliV/+bGyL5tgqMwohHE8SvkApRcr8+SRPmUJZfj6qqsqxx6uqoiw/n+QpU9i6YEGtQj3C+QwaNAilFNu2bdOlvczMTEAWzRGiOUnCd3NKKTbOncump5+u3uCA+dZ1unAc27El6Tu3Pn36YDKZ+OGHH3RpzzYlr0OHDrq0J4S4PEn4bm7rggVse/llt49BNMxkMtGmTRtyc3OpqKhocntnzpwBJOEL0Zwk4buxI0lJP5/ZG2zj3LmkJScbHYZowJAhQwDYvHlzk9uyLZrj5eXV5LaEEI0jCd9Nlebm8vW994KzzIs3mfhq1iwZve/E4uLi8PDwYO/evU1uq7CwEF9fXx2iEkI0liR8N7X2kUcoLygAZ7l2brVSXlDA2kcfNToSUQ+TyUT79u0pKCigpKSkSW2Vl5cTFBSkU2RCiMaQhO+G0pKTOfThhw4fjX+lVFUVh5YuleI8TmzYsGEAbNq06arbKCkpwWq10qpVK73CEkI0giR8N6OUYtMzz6A56Qp2msnEpmeekVH7Tqpz5854enqyf//+q27DNkK/TZs2OkUlhGgM5/zUFw6TkZJCzv79uhfV0YuyWsnZt4+MrVuNDkXUIyYmhqKiIgoLC6/q/rJojhDGkITvZnYtWoRmdu41kzSzmd2LFhkdhqjHddddB8CGDRuu6v62RXMiZBVFIZqVJHw3UpKTQ+qyZU2ujW9zDFgMPAfMAV4BVuvQrrJYOPTRR5Tk5OjQmtBbu3bt8Pb25tChQ1d0P9tlmvz8fJmOJ4QBnPtUT+jq5Lp1jV7t7nJ2AR8CfYBpgBeQC1xdJ29tVouFU+vXEzt1qk4tCj117tyZgwcPkpubS0hICLm5uURGRta7/PH333/PunXrCA0N5dy5c3h7e7Nnzx5at25NVFRUM0cvhHuShO9GsnbuvOx69o1xDvgEGAzcetH2Lk1qtSaT2UzWzp2S8J3Uddddx8GDB1m6dCklJSWUlZVx33331TsQz8fHh6qqKnIu9NqUlZWRdGHxpIcffpjw8PDmCl0ItyVd+m4kY+tWXc7wtwIVwMgmt1Q/q8VChk4LtQj9VFRU8PXXX/PBBx8AkJeXR1lZGVCd1OsTFxdX6+xf0zSuueYaWTFPiGYiZ/huQilFlk4LnxwD/ICzwL+ALMAXiAfGA/V/7F+ZrB07UErV200sml92djYpKSm1tmuaRnBwcL338/Pzo0OHDpw4ccK+zdvbm8mTJ8vfV4hmImf4bqIkO5vKoiJd2jpH9Rn+B0Bf4H5gBLCT6kF8es2grygqoiQ7W6fWhB7atm3LhAkTam0PCAjAw8Ojwfv26NGjxu+TJk0iMDBQ1/iEEPWThO8mLE0shXoxBViAURd+OlOd8G8CjgNHdDsSWEpLdWxN6CEhIYFJkybV2NaYbvnu3bvb/9+/f3/i4uJ0j00IUT9J+G6iSoclTW38Lvwbe8l228f3ad2OBFXl5Tq2JvTSt29fpkyZYv+9MdPsAgMDMZlMaJrG2LFjHRmeEKIOcg3fTXjoOO85GjhZx3ZbV76eV2Q9vL1rbauoqMDT01Ou/Rqsd+/eVFRU8OWXX9aquqeUoiQ7G0tJCVUVFXh4eWH28yMgIIAuXbrIPHwhDCAJ302Y/fwuv1MjxVM9Uv8Q0Pai7bYyLB11OxKYLyyhmpOTw+HDh/nxxx85ffo0119/Pddff72ORxJXY8CAARw4cIDzZ89yaPlysnbuJGPbNrJ27qxzzIjJ15e8Pn3YsGkTUQkJdBg1Cj+puCdEs5CE7yb8IiPxDAzUZeBeLNADWEP1WX0HIJ3qKnvdAb0qpJt8fVm2ciUFBQUUFRWhaZq9WltDU8BE81BKkZGSgv+KFWQnJ7OyquqydR6spaVkp6SQu2MHVosFk9lM3LRp9J09m+jEROm1EcKB5Bq+m9A0jaj+/XVr71fAcKrP9BcDW4DrgLt0OwJURkVx6tQpii58Sbl4Bb28vDzy8/N1PJq4EmnJybzXuzdLr72WEytWwIWllhtb58G2n9Vi4cePPmLpkCG816ePLI0shANpStYhdRsbnnySna+/rlt5XUcymc30efRRzvTty08//VTvfpqm4ePjQ0hICK1bt6Zjx4506dIFf3//ZozWfZTm5rL2kUc49OGHaCaTrqsu2tqLmz6d0QsX4ivV94TQlSR8N3Jo+XJW3nGH0WE02i3LlxM7dSp79+7liy++oKqqCqUUXl5eTJo0iePHj5ORkUFBQQElJSVYL0o+JpMJPz8/QkNDad26NZ06daJz584yWKwJjiQl8fW991JeUIC6cEbvCJqHB94hIYx95x26Tp7ssOMI4W4k4buRkpwc/h4d3WLO8B/MyLAP6MrNzeXjjz8mKyuLDh06cM8999S6T3FxMWlpaZw4cYKsrCwKCgooKyurcSnAw8MDf39/wsLCaNu2LZ06daJjx46YnXzJYCMppdi6YAGbnn4aTCbQ8ay+XheOM3z+fAY99ZRc2xdCB5Lw3cyXv/oVh3RcItcRNLOZ7tOmcfOFeu02FouFTZs2ERUVVaOIy+Xk5+dz5MgRTp48SXZ2NufOnaP8kvn9ZrOZwMBAwsPDadeuHZ07d6ZNmzaYTO49zEUpxca5c9n28suGxZA4Zw7D5s2TpC9EE0nCdzNntmxh6bXXGh3GZc3YsoU2gwc7rH2r1Up2djZpaWmcOnWKnJwcCgsLqaysrLGfl5cXQUFBREZG0r59e7p06UJkZKTD4nI2KfPnV5/ZG2z4/PkkzpljdBhCtGiS8N2MUor3+vQh98ABXQdc6UUzmYjo1Yu7du825IzOarWSnp7O0aNHOX36NLm5uRQXF2O5pEfEx8eH4OBgWrVqRfv27enWrVuDi8e0REeSkki+qJqe0SYnJdHlkpK+QojGk4TvhtJWrCDJiT84Jycn02XiRKPDqMFisXDs2DGOHTvGmTNnyMvLo6SkhKqLBq9pmoavry8hISFERUURExNDly5d8NOx6FFzKc3NZXFsLGV5eeAMHxEmEz6hocxKTZXR+0JcJUn4bmrljBmkLl/u0NHWV0rz8CD2jjuYsGSJ0aE0WllZGUePHuX48eNkZmaSn59PaWlpvTMGoqOj6dSpE9dcc41TzxiQ14cQrkcSvpuyn8Hl5zfPqOvLcbEzuOLiYvtAwczMTM6dO1fvjIHw8HDatm3LNddcQ4cOHS67zKyjpSUnk+TE0+GcsQdIiJZAEr4bk2u0zS83N9c+UPDs2bMUFhbWmjHg6elJQEAAERER9hkD0dHRzTJjQCnFe717k3vwoNOO8Qjv2ZOZe/bIqH0hrpAkfDcno7CNZ7VaycrK4ujRo6Snp5OdnU1RUZFDZgwUFRWRlpZGnz596vwCIbM4hHBdkvDdnFKKTU8/zdYFCwyLQeZZ181qtXLy5El++uknzpw5U+eMAU3T8Pb2ts8Y6NixI127diUoKKjONtetW8fGjRtp164dt912W62ZBS25ToMQomGS8AVKKba9/DIb585t/kpqCxaQ+NRTjj+eC6lrxsD58+drDBS8eMZA69atiYmJoXPnziQnJ3P48GE0TcPLy4vJkycTFxcH6FeJ8TTwFZAJFAOeQCRwLZDQpJZ/dmklRiHE5UnCF3Zpycl8NWtWs9VKH7d4sctfs29OZWVlpKWl2WcMFBQU1JoxUJf+/ftz0003kfbZZ7qstXAU2A3EAMFABbDrwraxwA1NPkI121oLQojGkYQvamiW1dBmzKheDS0sTLe2Rf0KCwtJS0vj2LFj7N+/v859NE0j+ocfKPzyS4d15y8ECgE9RoyYzGYGPP441xlY8leIlsa9C4WLWnzDw5mwdCmTk5II79mzemMTp4lpFxamCe/Zk8nJyUxYskSSfTMKCgqif//+DBkyxL7t4vES3t7eREREUJKa6tBr9/7o94FjtVjI2LZNp9aEcA9yhi/qpZTin88+S9natVh27MBqsWDy9MR6yejxupjMZvv+cdOm0W/2bFoPGiQD8wz0448/snz5cjw8POjUqRNxcXF069aNwMBAlFL8NTiYyqIi3Y5nBRRQCuwFkoHJwJAG7nMlvAIDeeTcOXlNCdFIkvBFvTZs2MC3335Lp06duO3mmzm1fj2ZO3aQuX07mTt21JkcPAMDaT1gANGDBhGVkED7kSNlYJWTqKys5MyZM0RHR9eq8nf+7FneiorS9XifAikX/u8BTKR64J6efpOVhX+rVjq3KoRrkkXARZ1SUlL49ttvAQgPD8cvIoLYqVPtg6SUUpRkZ2MpLaWqvBwPb2/Mvr74RUbKGZeT8vT0pGPHjnXeZikp0f14o4BBVI/UPwgkUT2Ab4SOx7CUlurYmhCuTRK+qEEpxYYNG9iwYYN926UrxUH1NWA5s3IdVRUVurcZeuEHoPuFf/8LDAACdDpG1SVVCoUQ9ZNBe8JOKcU333xTI9kDFBQUGBOQaDYezbCQTweqr+vn6dimh7e3jq0J4dok4Qu7vXv3kpKSUmu7JHzXZ26GJXzTAA3Qc36G2ddXx9aEcG3SpS/sOnfuzIABA9i7dy8VF3XxFhUVoZSSa/MuzC8yEs/AQF1G6X8CeFN9Rh8AnKd6lP4e4Hr06873CgzE7wrXEhDCnckZvrALCAhg/PjxDBs2DIDWrVtjMpmwWq11XscXrkPTNKL699elrY7AKeBz4B9UfwEoAqYBE3Q5QrWoAQPkS6gQV0DO8EUtu3btwmQycd9991FeXk5+fj6enp5GhyUcLDoxkTObNze5lv7ACz+OZDKbiR40yMFHEcK1SMIXNRQXF5Ofn09MTAwmkwlfX1985TqpW4hKSGhysm8uVouFqAS9luIRwj1Il76owTb3/vrrrzc2ENHsOowahcncMs4BTGYz7UeONDoMIVoUSfiihoMHD+Lt7U1MTIzRoYhm5hcRQewdd9jXPnBWmtlM3LRpUsFRiCskCV/YnTlzhtLSUmJjY40ORRik3+zZDl1ARw/KYiFy0iQKCgo4d+4cRUVFFBcXc/78+RqzS4QQNTn3V3nRrNavXw/AqFGjDI5EGCV68GAi4uPJPXBA16WRdaNpqKgoVu3fDwcO1LrZZDLx8MMPExoaWsedhXBvcoYvALBarRw7doygoCCCg4ONDkcYRNM0hr30knMmewClGP/Xv+Lt41PnzQEBAQQFBTVzUEK0DJLwBVB97b6qqoq+ffsaHYowWJeJE4mbPh3Nw8PoUGrQPDyImzGDHlOnct9992GuY6xBv3798HCyuIVwFpLwBQCbN28GYOjQoQZHIpzB6IUL8Q4JAZOTfESYTHiHhDD6r38FqldwnDChdhmfDRs28I9//IOzZ882d4RCOD0neTcLI1ksFrKysmjdunWtddKFe/IND2fsO++As3TtW62MW7wY3/Bw+6Y+ffoQHx9vr7Y3btw4OnbsSEZGBm+99RaLFy8mL0/PpXqEaNkk4Qs2b96MUoprr73W6FCEE+k6eTLD5s0zOgwAhs+fT5dJk2ptHz9+PMHBwURERDBw4EDuvvtuHn74Ydq2bUt6ejoLFy7kvffeo7Cw0ICohXAumlJKGR2EMNaf//xniouLmTt3LiZn6cIVTkEpxaann2brggWGxZA4Zw7D5s2rt25+WVkZSqlaFSGzsrJISkoiMzMTqF4cavLkyQQE6LV8jxAtiyR8N1dYWMgbb7xB586d+dWvfmV0OMIJKaXY9vLLbJw7t/qafnN08184zvAFC0h86qkmNXXmzBmSkpLIzs4GIDY2lkmTJknJaOF2JOG7ueTkZHbv3s29995L27ZtjQ5HOLG05GS+mjWL8oICVFWVw46jeXjgHRLCuMWL6+zGv1onT55kxYoV5ObmomkaPXr04JZbbsHb21u3YwjhzCThu7lXXnkFgCeffNLgSERLUJqby6r77+fYZ5+BpoGOHx+ayYSyWombMYPRCxfiGxamW9sX++mnn/jiiy8oKChA0zR69+7NzTffLANWhcuTSntu7OTJk5SVldFfp3XQhevLLS3lYN++aF5etN2/n9z9+9HM5iaV47XdP7xnT4a99BJdJk7UMeLarrnmGh577DFSU1NZtWoVe/bsYd++ffTr149x48bVOb9fCFcgZ/hu7IMPPuCnn37i8ccfl4FMokFVVVVs2LCBjRs3AuDp6cmcOXPI2LqV3YsWceijj7BaLJg8PbFWVl62PZPZbN8/bto0+s2eTetBg+odmOdI+/fv5+uvv6a4uBgPDw8GDhzImDFjZACrcDmS8N2U1Wpl3rx5BAUF8dhjjxkdjnBiOTk5fPrpp/bR7lBd+Obhhx+2/16Sk8Op9evJ3LGDzO3bydyxg8qiolpteQYG0nrAAKIHDSIqIYH2I0c6zap3u3btYvXq1ZSWlmI2mxkyZAgjRoyQxC9chiR8N7Vr1y5WrFjB6NGjGTZsmNHhCCeVlpbGRx99hNVq5eKPiujoaO6///5676eUoiQ7G0tpKVXl5Xh4e2P29cUvMtKQs/grsX37dtauXUt5eTmenp4MGzaMYcOGSeIXLZ5crHJTKSkpaJrG4MGDjQ5FODGr1YqmaVx6XnC5AW6apuHfqpUjQ3OYgQMHkpCQwJYtW/juu+9Yv349mzdvZuTIkfJ+ES2afGV1QxUVFZw9e5bo6GgZoCQa1K1bN37729/S6pLk7enpaVBEzcNkMjF06FCefPJJRowYgdVq5euvv+aVV15hx44dRocnxFWRhO+GbAOvpCtfNIaHhwc5OTn4+vrSvXt3AHzqWZ7W1ZhMJq6//nrmzJnD0KFDqays5Msvv+RPf/oTe/bsMTo8Ia6IXMN3Q6+//jqlpaU8/fTTRociWoBly5Zx6NAhpk2bRmxsLFlZWfj4+BAcHGx0aM3Odqa/Y8cOrFYrAQEB3HTTTfTo0cPo0IS4LOnPdTP5+fkUFRURGxtrdCiiBTh37hyHDh0iPDzc/pqJiooyOCrjmEwmbrrpJsaMGWOfw//xxx8TFBTEhAkT6Nq1q9EhClEvOcN3M59++in79+/nwQcfdOsPbtE4ixcvJj09nfvuu482bdoYHY7TqaioYOXKlezfvx+lFKGhodxyyy106tTJ6NCEqEWu4buZw4cP4+fnJ8leXNaZM2dIT0+nffv2kuzr4eXlxa233soTTzxB9+7dKSgo4P333+dvf/sbp06dMjo8IWqQLn038tNPP1FRUUHfvn2NDkW0AJ999hkAv/jFLwyOxPn5+Phw++23U1JSQlJSEkeOHOHdd9+lVatWTJ48mejoaKNDFEISvjv57rvvALj++usNjkQ4u0OHDpGbm0tcXJxbDs67Wn5+fsyYMYPCwkKSkpI4duwY//jHP4iOjmbKlClERkYaHaJwY5Lw3YTVauXUqVOEhYXh5+dndDjCya1cuRKTycSUKVOMDqVFCgoK4q677qKgoIDPP/+ckydP8uabb9KuXTumTJlCmINWAhSiIZLw3cTOnTuxWq0MHDjQ6FCEk0tJSeH8+fMMGjRIloxtopCQEO655x5yc3P5/PPPSU9PZ+HChcTExDBlyhSCgoKMDlG4EUn4bmLbtm1omsagQYOMDkU4MavVyrp16/D09GTs2LFGh+MywsPDuffee8nKyiIpKYnjx4/zxhtv0LlzZyZPniyrVYpmIaP03UBZWRk5OTm0a9dOFgARDVq9ejWVlZWMHDlSXisOEBUVxQMPPMB9991HZGQkR48e5f/+7//46KOPKCsrMzo84eLkHe0GbIP1hg8fbnAkwplVVFSwbds2/Pz8GDJkiNHhuLQ2bdrw0EMPcc899xAWFkZqaiqvvvoqn3zyCRUVFUaHJ1yUdOm7gb179+Lp6SlVwESDkpOTsVqtTJgwwehQ3EaHDh145JFHOHr0KCtXruTAgQMcPHiQPn36MH78eFncSuhKXk0uLjs7m/Pnz0utb9GgwsJCDh48SFhYmH2BHNF8OnfuzGOPPcahQ4f473//y+7du9m7dy/9+/dn7NixkviFLuRV5OLWr18PwMiRIw2ORDizTz75BIBbb73V4EjcW1xcHHFxcezfv5+vvvqKHTt2sGvXLgYNGsQNN9wg4ypEk0jCd3FpaWkEBAQQERFhdCjCSWVkZHDq1Cnatm1L27ZtjQ5HAL169aJXr17s2rWL1atXs2XLFrZv386QIUMYMWKEJH5xVSThu7DU1FQqKytl7r1okK2E7m233WZwJOJS/fr1o1+/fmzbto1169axceNGUlJSGD58OEOHDpXEL66IJHwXtmnTJkBG54v6paamkpOTQ2xsLCEhIUaHI+oxaNAgBgwYwJYtW/juu+9Yt24dmzdvZsSIEQwePNjo8EQLIV8PXZTVauX06dNERETg4+NjdDjCSdlK6E6ePNnoUMRlmEwmhg4dypNPPsn1119PVVUVX3/9Na+88go7d+40OjzRAsgZvovaunUrSikSExONDkU4qe3bt1NcXMzAgQPlS2ELYjKZGDFiBNdddx1r165l69atrFy5knXr1nHjjTfSp08fo0Osk1KKkuxsLCUlVFVU4OHlhdnPD7/ISDRNMzo8t6AppZTRQQj9LVy4kIKCAp5++mm5zidqsVqtvPLKK1itVubMmSOvkRbMarXy9ddfs2PHDqxWKwEBAdx0002GT8Utycnh5Lp1ZO3cSca2bWTt3EllUVGt/TwDA4lKSCB60CCiEhLoMGoUfjLI2CEk4bugkpIS/vSnPxETE8PMmTONDkc4odWrV/P9999zww03MHToUKPDETqwWCysWrWKPXv2YLVaCQ4OZvz48c1acEspRUZKCrsWLSJ12TKsFgsmsxmrxXLZ+9r2M5nNxE2bRt/Zs4lOTJSzfx1JwndBq1atYvv27cycOZOYmBijwxFOpqKigldeeQVvb2+eeOIJo8MROquoqGDlypXs378fpRShoaFMnDjR4Z8FacnJbHrmGXL270czm1GNSPL1sd0/Ij6eYS+9RJeJE3WM1H1JwndBr776KlarlaeeesroUIQT+uSTTzhw4AC33XYbPXv2NDoc4SBlZWWsWLGCQ4cOoZQiIiKCSZMm0a5dO12PU5qby9pHHuHQhx+imUwoq1W3tm3txU2fzuiFC/END9etbXckF+5cTEZGBqWlpXTr1s3oUIQTKiws5MCBA4SGhkqyd3E+Pj7cfvvt/P73v6dr167k5OSwePFi3nrrLTIyMnQ5xpGkJBbHxpK6fDmArsn+4vZSly9ncWwsR5KSdG3f3UjCdzG2UrqjRo0yOBLhjGxFdqZMmWJwJKK5+Pn5MWPGDH73u9/RqVMnzp49yz/+8Q/+8Y9/kJ2dXWv/06dPU15e3mCbSilS5s8necoUyvLzUVVVjgq/+nhVVZTl55M8ZQpbFyxAOqavjiR8F3Ps2DGCgoKkiIqoJSsrixMnTtCmTRvat29vdDiimQUFBXHXXXfx2GOP0aFDBzIyMnjzzTd59913yc/PB+Ds2bO88847LF++vN6kqpRi49y5bHr66eoNOp/V1+vCcWzHlqR/5WQevgs5cOAAFouFvn37Gh2KcEK2BXKkhK57CwkJ4Z577iE3N5fPP/+cU6dO8de//pWYmBg8PDzQNI2ffvqJ77//vs4ZHFsXLGDbyy8bEHnNGLwCA0mcM8fQOFoaOcN3IZs3bwaQaVailiNHjpCTk0PXrl0JDQ01OhzhBMLDw7n33nt58MEHad26NcePH+fo0aP2M+e1a9dy+vTpGvc5kpT085m9wTbOnUtacrLRYbQokvBdhMViITMzk6ioKLy8vIwORziZL774Ak3TZPlbUUtUVBQPPPBArdH7SimWLVtGWVkZUD0a/+t77wVnmRdvMvHVrFmU5uYaHUmLIQnfRXz//fcopRgyZIjRoQgns2PHDoqKiujfv7+U0BV1On36NOnp6bW2FxUV8fe//52qqirWPvII5QUF4CzXzq1WygsKWPvoo0ZH0mJIwncRP/zwAx4eHsTHxxsdinAiVquV1atXYzabufnmm40ORzipoqIiPD098fDwwGQy1ahud+7cOf5y//0c+vBDh4/Gv1KqqopDS5eStmKF0aG0CDJozwUUFhZy7tw5OnfuLDXRRQ3r1q2joqKCUaNGyWtD1CsuLo65c+fW2q6UIisri48HD6bcZGq+EflXQDOZ2PTMM3S+5RYpw3sZ8gngAr799lsARowYYWgcwrlYLBZSUlLw9fVl+PDhRocjWiBN07AeO0b5iRNOmeyhujhPzr59ZGzdanQoTk8Svgv48ccf8fHx0b1kpmjZVqxYQVVVFTfddJPRoYgWbNeiRWhm5+4M1sxmdi9aZHQYTs+5/4risk6dOkVZWRn9+vUzOhThRIqLi9m/fz8hISEyrkNctZKcHFKXLWvSQjgAR4G/13Pbw0DHJrUOymLh0EcfMeKNN2Rp3QZIwm/hpDtf1OXTTz9FKSUldEWTnFy3rlFL2zbWTUDnS7a11qltq8XCqfXriZ06VacWXY906bdgVquVEydOEBISQlBQkNHhCCdx9uxZjh8/TnR0NB06dDA6HNGCZe3ciUnH7vwIqs/mL/7x1qltk9lM1s6dOrXmmiTht2D79u2jqqqK/v37Gx2KcCKffvopAL/4xS8MjkS0dBlbt+p6hu9IVouFjG3bjA7DqUmXfgu2ZcsWNE2TYjvC7ujRo5w9e5YuXboQLmuHiyZQSpH1ww+6tvk5sATwpPrs/gagk47tZ+3YgVJKpufVQ87wW6iKigqysrJo3bo1ZicfQSuaT3JyMpqmybV70WQl2dlUFhXp0pYPMAz4BfAAMAkooHogX6ouR6hWUVRESR1L/opqkilaqE2bNgEwbNgwgyMRzuKHH36gqKiIfv364efnZ3Q4ooWzlJTo1lbbCz821wC9gP8DvgRidTsSWEpLdWzNtcgZfgu1e/duzGYzPXr0MDoU4QSsVivffPMNHh4eUkJX6KKqosKh7fsC3YEMoFLHdqvKy3VszbVIwm+B8vPzKSoq4pprrjE6FOEkvv32W8rLyxk+fLhc4hG68Gihq256eOs17t/1SMJvgdavXw/I3HtRzWKx8P333+Pj4yMldIVuzA6+LFQC/Ai0oXoQn17Mvr46tuZa5FSgBUpNTcXPz4/o6GijQxFO4IsvvqCqqopbbrlFFsgRuvGLjMQzMFCXgXtLgFCgHeAP5AAbgCLg9ia3/jOvwED8IiN1bNG1SMJvYY4dO0ZFRQV9+vQxOhThBEpKSti3bx/BwcHymhC60jSNqP79Sd+wocltRQN7gC1ABdXX7zsB04H2TW79Z1EDBsiUvAZIwm9hNlx480l3voCfS+hOnjzZ6FCEC4pOTOTM5s1NLr4z6sKPI5nMZqIHDXLwUVo26f9rQaxWK6dOnSIsLEymXQmys7P56aefaN26NTExMUaHI1xQVEJCi6q0F5WQYHQYTk0Sfgvyww8/YLVaGTBggNGhCCcgJXSFo3UYNUrXWvqOZDKbaT9ypNFhODVJ+C3I1q1b0TSNxMREo0MRBjt27BhZWVlcc801RMhyoMJB/CIiiL3jDjQnT/qa2UzctGmyNO5lSMJvIcrKysjJyaFt27YyEluQlJSEpmlydi8crt/s2Sgn79ZXFgt9Z882OgynJ5mjhfjuu+8AuO666wyORBht9+7dFBYW0qdPHxnLIRwuevBgIuLj0Zz0REMzmYjs3Zto6fm8LOf8C4pa9u3bh6enJ127djU6FGEgq9XK119/jYeHB+PHjzc6HOEGNE1j2EsvoaxWo0Opk7JaGfriizIdrxEk4bcA2dnZFBcX06VLF6NDEQb77rvvKCsrY+jQoVJCVzSbLhMnEjd9OpqHh9Gh1KB5eBA3YwZdJk40OpQWQRJ+C/Dtt98CMGqUo2eyCmdmsVjYtGkT3t7eXH/99UaHI9zM6IUL8Q4JAWfp2jeZ8A4JYfRf/2p0JC2Gk/zlREOOHDlCQECAjMZ2c19++SVVVVWMHTtWBm6KZucbHs7Yd94BZ+nat1oZt3gxvuHhRkfSYsinhpM7cuQIlZWVxMfHGx2KMFBJSQl79uwhKCiIfv36GR2OcFNdJ09m2Lx5RocBwPD58+kyaZLRYbQokvCdnIzOFwCfffYZSikmyQecMFjinDkkzpljeAyDnnrK0BhaIkn4TsxqtXL69GkiIiLw8fExOhxhkNzcXI4ePUqrVq245pprjA5HuDlN0xg2bx7D58+v3tBcl5cuHGf4ggUMnz9fRuVfBRnm62TOnTvH+++/T0xMDGazGaUUg2RBCLf2ySefAFJCVzgPTdNInDOH8B49+GrWLMoLClBVVY47nocH3iEhjFu8WLrxm0DO8J1MWVkZeXl5/PDDD2zbtg2A4uJi8vLyDI5MGOH48eNkZmbSqVMnWrVqZXQ4QtTQZdIkZqWmEnt79ar2ehfnsbUXe8cdzDp8WJJ9E0nCdzJBQUG1tm3cuJGFCxeSkZFhQETCSLYSurfeeqvRoQhRJ9/wcCYsXcrkpCTCe/YEaHLtfdv9w3v2ZHJyMhOWLME3LKzJsbo7SfhOxsfHp86CKh07dpRpeW5m3759nDt3jl69ehEQEGB0OEI0qMukSczcs4cZW7bQfdo0+yp7Jk/PRt3/4v27T5/OL1NSmLlnjxTV0ZFcw3cymqYRGBhIfn6+fVuXLl24/fbbpbKaG7FaraxatQoPDw8mygeeaCE0TaPN4MG0GTyYEW+8wan168ncsYPM7dvJ3LGDyqKiWvfxDAyk9YABRA8aRFRCAu1HjpRV7xxEMogT8vPzsyf8nj17MmXKFDycrKSlcKxNmzZRVlbGsGHD5IueaJH8IiKInTqV2KlTAVBKUZKdjaW0lKrycjy8vTH7+uIXGSkj7puJfJI0I/sLvqSEqooKPLy8MPv51XrBFxcXA9XJ/tZbb5Wqam7GYrGwceNGvL29GTlypNHhCKELTdPwl4GnhpKE70AlOTmcXLeOrJ07ydi2jaydO+vt0opKSLB3aVmLiggODuYXv/iFfPN1Q//973+xWCyMGzdOvuwJIXQjCV9nSikyUlLYtWgRqcuWYbVYMJnNWC2Weu9TWVRE+rffcmbTJqwWC8pkou3EiWQMHkx0YqIkfTdSVlbGrl27CAwMJCEhwehwhBAuRFNKKaODcBVpyclseuYZcvbvRzObUQ0k+cux3T8iPp5hL70kI1XdxNKlSzly5Ai//OUvZTlkIYSupL9QB6W5uaycMYOkyZPJPXgQoEnJ/uL75x44QNKkSaycMYPS3NwmxyqcV15eHkeOHCEyMlKSvRBCd5Lwm+hIUhKLY2NJXb4cAKXz0pG29lKXL2dxbCxHkpJ0bV84DymhK4RwJEn4V0kpRcr8+SRPmUJZfr5D60gDqKoqyvLzSZ4yha0LFiBXYlzLyZMnycjIoGPHjkRFRRkdjhDCBUnCvwpKKTbOncump5+u3qDzWX29LhzHdmxJ+q7j888/R9M0brvtNqNDEUK4KEn4V2HrggVse/llt49B6GP//v0UFBTQs2dPKaErhHAYSfhX6EhS0s9n9gbbOHcuacnJRochmmjVqlWYTCZuueUWo0MRQrgwSfhXoDQ3l6/vvRecZV68ycRXs2bJ6P0WbPPmzZSWljJ48GC8vLyMDkcI4cIk4V+BtY88QnlBATjLtXOrlfKCAtY++qjRkYirYLVa+fbbb/Hy8mL06NFGhyOEcHGS8BspLTmZQx9+6PDR+FdKVVVxaOlS0lasMDoUcYVsJXRvuOEGKaErhHA4+ZRpBKUUm555Bs1JP5Q1k4lNzzwjo/ZbkLKyMnbu3ElAQAADBw40OhwhhBtwzgzmZDJSUsjZv1/3ojp6UVYrOfv2kbF1q9GhiEZKSkpCKSVr3Qshmo0k/EbYtWgRmpOvSa6ZzexetMjoMEQjFBQUkJqaSkREBF27djU6HCGEm5DFcy6jJCeHv0dHN7jaXWOVAWuAMxd+zgNjgBub3HI1k9nMgxkZ+EVE6NSicIR33nmH06dPc//99xMdHW10OEIINyFn+Jdxct06XZI9QAmwFagCeurSYk1Wi4VT69c7oGWhl/T0dE6fPk2HDh0k2QshmpUk/MvI2rkTk07d+aHAH4HfADfr0mJNJrOZrJ07HdCy0Mvnn38OyAI5Qojm59wXpp1Axtatup3hO7pcj9ViIWPbNgcfRVytgwcPkpeXR48ePQgKCjI6HCGEm5Ez/AYopcj64Qejw7giWTt2yPQ8J/Xll19iMpmYNGmS0aEIIdyQJPwGlGRnU1lUZHQYV6SiqIiS7GyjwxCX2LJlCyUlJQwaNEhK6AohDCFd+g2wlJQYHcJVsZSWGh2CABYvXkxYWBgjRoxg/fr1eHp6MmbMGKPDEkK4KUn4DaiqqDA6hKtSVV5udAhur6qqivT0dNLT09m3bx9KKUaPHi0ldIUQhpFPnwZ4tNCuVw9vb6NDcHuWiwZ62sZUbNq0iS1btsgYCyGEISThN8Ds52d0CFfF7OtrdAhur7Kysta28vJyvvnmG/Lz8w2ISAjh7qRLvwF+kZF4BgbqOnDvEFAB2Drds4C9F/4fBzS1T8ErMBC/yEj775WVlZw+fZr09HRiYmJo165dE48gGsNyyVROTdPw8fFh8uTJhIWFGRSVEMKdScJvgKZpRPXvT/qGDbq1+Rlw8fndXn5O+HOApqaCgLg4fvjhB3Jycjhx4gSZmZn2LuSBAwdKwr8KSilKsrOxlJRQVVGBh5cXZj8//CIj0bS6qytceobftWtXJk6ciL+/f3OELIQQtUjCv4zoxETObN6sW/Gdubq0Ug+TiUwvL06tXFnnzZLsG6ckJ4eT69aRtXMnGdu2kbVzZ529PJ6BgUQlJBA9aBBRCQl0GDXKvo7B2bNngeovjbfccgt9+/at98uBEEI0B0n4lxGVkKBbsnc4q5VBt97K9vJyKuqYYbB+/XpOnjxJ79696dChgwEBOi+lFBkpKexatIjUZcuwWiyYzOYG//aVRUWkf/stZzZtsu8fN20afWfP5tDp02iaxt133y3PtRDCKchqeZeh52p5jmZbLQ8/P5YtW8apU6fs3fkmkwlN06iqqgKqzzyDg4Np37498fHxdO7c2W2njKUlJ7PpmWfI2b8fzWxGNeFvbbu/R7t29Hz8cW787W/1C1QIIZpAEn4jfPmrX3Fo2bImJQJH08xmuk+bxs0ffABUzwNfuXIlu3fvBqB3795MmTKFnJwcdu/ezU8//UROTk6Na82BgYG0bduWHj160L17d8w6LRrkrEpzc1n7yCMc+vBDNJMJZbXq1ratvbjp0xm9cCG+4eG6tS2EEFdDEn4jnNmyhaXXXmt0GJc1Y8sW2gwebP9dKcWWLVtYvXo1kydPpk+fPrXuU1hYyO7du0lLS+Ps2bOUX1S0x8/Pj+joaOLi4ujdu7dLlYQ9kpTE1/feS3lBAepCr4cjaB4eeIeEMPadd+g6ebLDjiOEEJcjCb8RlFK816cPuQcO6HoWqBfNZCKiVy/u2r27zoFhRUVFBAQENGrQWFlZGXv27CE1NZXMzExKLyrT6+PjQ6tWrejWrRt9+vQhICBA18fRHJRSbF2wgE1PPw0mEzTH3/PCcYbPn8+gp56SwXtCCENIwm+ktBUrSHLiVc4mJyfTZeJE3du1WCwcOHCAgwcPcubMGYqLi+23eXl5ERERQZcuXejbty+hoaG6H19PSik2zp3LtpdfNiyGxDlzGDZvniR9IUSzk4R/BVbOmEHq8uUO7QK+UpqHB7F33MGEJUua5XhWq5XU1FQOHDhAeno6hYWF9oGBZrOZsLAwrrnmGvr27UtUVFSzxNRYKfPnV5/ZG2z4/PkkzpljdBhCCDcjCf8KlObmsjg2lrL8/ObpCr4ckwmf0FBmpaYaNijMarVy4sQJ9u3bx4kTJygoKMB64bkxmUyEhobSsWNH+vTpQ7t27QybCXAkKYnkKVMMOXZdJicl0cWJe4yEEK5HEv4VksRxeRkZGezevZtjx46Rl5dXaypgu3bt6NWrF127dm2WLwD2L2p5eeAML3cn+KImhHA/kvCvgnQNX5nc3Fz27NlDWlparamAAQEBtG3blp49ezpsKqBcihFCCEn4V0Upxaann2brggWGxdCSB38VFxeze/duDh8+XOdUwNatWxMXF0d8fDw+Pj71tqOU4vvvv6dbt25EXrRg0MXSkpNJcuLpcI4abCmEEJeShH+VlFJse/llNs6d2/zTuxYsIPGppxx/vGZSVlbGvn37OHToEBkZGY2eCpiZmcnbb7+Np6cnt99+O126dKnRrlKK93r3JvfgQaedThnesycz9+xpkV/chBAtiyT8JkpLTuarWbOarYDLuMWLne6avd5sUwF//PFHTp8+XWMqoKenp30qoKZpfPfdd/bbbrrpJgYNGmT/vaUWTBJCCEeQhK+DZinROmNGdYlWN1xL3Wq1cvjwYQ4cOMCpU6dqTAW81MCBAxk3bhwmk0mXkshpwA/AcaAA8AXaAWMu/NtUl5ZEFkIIR5GEr6O05GQ2PfssOfv26bYIS0R8PMNeekmu817ENhVwyZIl9hkAF/Py8mL04MFsuvHGJi969AFwHugNRF34/wYgHbgP6FL/XRvNtuiRbWldIYRwBPdcHs1BukyaxMw9e5ixZQvdp03DdGHEucnTs1H3v3j/7tOn88uUFGbu2SPJ/hImk4mgoKAa0/0uZrFY+ObNN3VZ4XAK8CBwLdCZ6sR/P+AHrG1y69WsFgun1q/XqTUhhKibay+HZgBN02gzeDBtBg9mxBtvcGr9ejJ37CBz+3Yyd+ygsqio1n08AwNpPWAA0YMGEZWQQPuRI+Vs7zLOnTsHVA/q69Chg/0nOjoas9nMut//nt2XWc++MepaLcCb6rP9c01q+Wcms5msnTuJnTpVpxaFEKI26dJvRkopSrKzsZSWUlVejoe3N2ZfX/wiI2WU9hVSSnH+/Hn8/f3rfO4+GjGC9A0bHHLsUmA+1d35M3Vqs/3Ikdyxbp1OrQkhRG1yht+MNE3Dv1Uro8NwCZqm1btan1KKrB9+cNixPwcqgNE6tpm1YwdKKfniJ4RwGLmGL1xOSXZ2nZdO9PAVsAuYiD6j9G0qioooyc7WsUUhhKhJEr5wOZaSEoe0+w3VA/XGAUMd0L7looJDQgihN0n4wuVUVVTo3uY3wGqq59/r2ZV/saqLSgwLIYTeJOELl+Ph5aVre6sv/IwGbtS15Zo8vL0d2LoQwt3JoD3hcsx+frq1tYHqs/tYoDtw4pLbO+p2JDD7+urYmhBC1CQJX7gcv8hIPAMDdRm4d/DCv6kXfi71pyYfoZpXYCB+9az4J4QQepCEL1yOpmlE9e+vyzz83+gQT2NEDRggU/KEEA4l1/CFS4pOTLSXKnZ2JrOZ6ItW+RNCCEeQhC9cUlRCgi619JuD1WIhKiHB6DCEEC5OEr5wSR1GjWpRZ/jtR440OgwhhIuThC9ckl9EBLF33IHm5ElfM5uJmzZNFksSQjicJHzhsvrNno1y8m59ZbHQd/Zso8MQQrgBSfjCZUUPHkxEfDyayTlf5prJRGTv3kQnJhodihDCDTjnJ6EQOtA0jWEvvYSyWo0OpU7KamXoiy/KdDwhRLOQhC9cWpeJE4mbPh3Nw8PoUGrQPDyImzGDLhMnGh2KEMJNaEopZXQQQjhSaW4ui2NjKcvPB2c42zeZ8AkNZVZqKr7h4UZHI4RwE3KGL1yeb3g4Y995xzmSPYDVyrjFiyXZCyGalSR84Ra6Tp7MsHnzjA4DgOHz59Nl0iSjwxBCuBlJ+MJtJM6ZQ+KcOYbHMOippwyNQQjhnuQavnArSim2vfwyG+fOBZOpebr5Lxxn+IIFJEqyF0IYRBK+cEtpycl8NWsW5QUFqKoqhx1H8/DAOySEcYsXSze+EMJQkvCF2yrNzWXtI49w6MMP0UwmXefr29qLmzGD0QsX4hsWplvbQghxNSThC7eXlpzMpmefJWffPjSzuUnleG33j4iPZ9hLL8k8eyGE05CELwTV1/Yztm5l96JFHProI6wWCyZPT6yVlZe9r8lstu8fN20a/WbPpvWgQVJBTwjhVCThC3GJkpwcTq1fT+aOHWRu307mjh1UFhXV2s8zMJDWAwYQPWgQUQkJtB85Ula9E0I4LUn4QlyGUoqS7GwspaVUlZfj4e2N2dcXv8hIOYsXQrQYkvCFEEIINyCFd4QQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAOS8IUQQgg3IAlfCCGEcAP/D9aSvdyDuny5AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# directed graph\n", + "graph_dir = nx.to_directed(graph)\n", + "plot_graph(graph_dir, \n", + " node_size=1000,\n", + " node_color='darkred',\n", + " edge_color='gray',\n", + " figsize=(5, 5),\n", + " seed=1,\n", + " title=\"Random DGraph with {} nodes and {}% edge connection\".format(num_nodes, probability*100));" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Weighted adjacency matrix:\n", + " [[0 9 4 9 9]\n", + " [9 0 1 6 4]\n", + " [4 1 0 0 6]\n", + " [9 6 0 0 8]\n", + " [9 4 6 8 0]]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# weighted graph\n", + "seed = 3\n", + "np.random.seed(seed) # to fix the plot\n", + "\n", + "num_nodes = 5\n", + "probability = 0.8\n", + "graph_w = nx.erdos_renyi_graph(num_nodes, probability, seed=seed)\n", + "\n", + "for (u,v) in graph_w.edges():\n", + " graph_w[u][v]['weight'] = np.random.randint(1, 10)\n", + "\n", + "# plot the weighted graph\n", + "edge_labels = nx.get_edge_attributes(graph_w, 'weight')\n", + "\n", + "plot_graph(graph_w, \n", + " with_labels=True, \n", + " node_color='lightblue', \n", + " node_size=700, \n", + " font_size=12,\n", + " edge_labels=edge_labels, \n", + " figsize=(5, 5), \n", + " title=\"Weighted Random Network\")\n", + "\n", + "weighted_adjacency_matrix = nx.to_numpy_array(graph_w, weight='weight').astype(int)\n", + "print(\"Weighted adjacency matrix:\\n\", weighted_adjacency_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "self avoiding path" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A->B->E->F\n", + "A->C->F\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a graph\n", + "G = nx.Graph()\n", + "edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'F')]\n", + "G.add_edges_from(edges)\n", + "\n", + "# Find all self-avoiding paths from 'A' to 'F'\n", + "start_node = 'A'\n", + "target_node = 'F'\n", + "all_saps = list(find_sap(G, start_node, target_node))\n", + "\n", + "for path in all_saps:\n", + " print(\"->\".join(path))\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Hamiltonian path is a path in a graph that visits each vertex exactly once." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hamiltonian Path found: (1, 2, 3, 4, 5, 6)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example usage\n", + "G = nx.Graph()\n", + "G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 1)])\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "path = find_hamiltonian_path(G)\n", + "if path:\n", + " print(\"Hamiltonian Path found:\", path)\n", + "else:\n", + " print(\"No Hamiltonian Path found\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hamiltonian Path found: (0, 1, 2, 4, 3)\n" + ] + } + ], + "source": [ + "# hamiltonian path of weighted graph:\n", + "path = find_hamiltonian_path(graph_w)\n", + "if path:\n", + " print(\"Hamiltonian Path found:\", path)\n", + "else:\n", + " print(\"No Hamiltonian Path found\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Adjacency List" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adjacency matrix\n", + " [[0 1 1 0 0 0]\n", + " [1 0 0 1 1 0]\n", + " [1 0 0 0 0 1]\n", + " [0 1 0 0 0 0]\n", + " [0 1 0 0 0 1]\n", + " [0 0 1 0 1 0]]\n", + "adjacency list\n", + " {1: [2, 3], 2: [1, 4, 5], 3: [1, 6], 4: [2], 5: [2, 6], 6: [3, 5]}\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = nx.Graph()\n", + "edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]\n", + "G.add_edges_from(edges)\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "adjacency_matrix = nx.to_numpy_array(G).astype(int)\n", + "print(f\"adjacency matrix\\n {adjacency_matrix}\")\n", + "\n", + "\n", + "adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}\n", + "print(f\"adjacency list\\n {adjacency_list}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Adjaceccy list of directed graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adjacency matrix\n", + " [[0 1 1 0 0 0]\n", + " [0 0 0 1 1 0]\n", + " [0 0 0 0 0 1]\n", + " [0 0 0 0 0 0]\n", + " [0 0 0 0 0 1]\n", + " [0 0 0 0 0 0]]\n", + "adjacency list\n", + " {1: [2, 3], 2: [4, 5], 3: [6], 4: [], 5: [6], 6: []}\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = nx.DiGraph()\n", + "edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]\n", + "G.add_edges_from(edges)\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "adjacency_matrix = nx.to_numpy_array(G).astype(int)\n", + "print(f\"adjacency matrix\\n {adjacency_matrix}\")\n", + "\n", + "adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}\n", + "print(f\"adjacency list\\n {adjacency_list}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Implementation of BFS for Graph using Adjacency List:](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Breadth First Traversal starting from vertex 0: 0 1 2 3 4 " + ] + }, + { + "data": { + "image/png": "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peH777+H3W7HnXfeienTp+PKFZ6eKyu5P3HULDs7mzp37kyCINDEiROpvLxc7pKcwmw202uvvUZarZZiY2Np3759cpekWtzDy6CyshIvvfQSkpOTYTabsX//fixZsgQBAcp8hptWq8Urr7yC7OxsBAcHo3v37pg4cSIqKhr+7DtWT3J/4qhNVlYWxcTEkFarpddee43MZrPcJbmUzWajxYsXk06no9atW1NmZqbcJakKB95FSkpK6KmnniIA1KNHDzp27JjcJcnq119/pZSUFAJAI0aMoEuXLsldkipw4J1MFEVav349hYeHU1BQEC1fvpwnpVwliiK9//77FBgYSJGRkbRx40a5S1I8DrwTnT17lvr160cAaODAgfT777/LXZJb+u233+ihhx4iAPToo4/ShQsX5C5JsTjwTmCz2Wjp0qXk7+9PTZs2pU2bNsldktu7diUUFhZGjRs3pg8++IBEUZS7LMXhwEvs6NGjdM899xAAGjduHBkMBrlL8igXL168Pq24b9++dPbsWblLUhS+LSeRK1euIDU1FZ06dYLBYMDevXvx7rvvIiiIV3mtj9DQUKxduxbbtm3Dzz//jA4dOmDZsmUQ+Zl20pD7E0cJ9u7dS7GxseTj40Opqal05coVuUtShLKyMho7diwBoG7dutHx48flLsnjcQ/fAGVlZRg3bhx69OiBJk2aIDs7G3PmzIGvr6/cpSlCYGAgMjIysHv3bly4cAEJCQlIS0uDzWaTuzTPJfcnjqfatGkTNW3alPz9/Sk9PZ1vtTmZ0WikqVOnkkajoU6dOtGRI0fkLskjcQ9fT3/88QcGDhyIgQMHIjk5Gbm5uXjmmWeg0fA/pTPpdDosXLgQBw8ehMViQXJyMl555RWYzWa5S/Mscn/ieAq73U4ZGRkUGBhIERER9Omnn/JtI5mYzWaaM2cO+fj4UPv27Wn//v1yl+QxOPAOyMvLo+7duxMAGjVqFE8DdRNHjx6lu+66iwRBoEmTJtHly5flLsntceBrYTab6dVXXyWtVku33XYbff3113KXxG5gs9nozTffpEaNGlFUVBTt3LlT7pLcGge+BgcOHKAOHTqQl5cXvfzyy2QymeQuidXi1KlT1KtXLwJAI0eOpNLSUrlLcksc+BuUl5fTs88+S4IgUHJyMo8GexBRFOm9996jwMBAatq0KX3++edyl+R2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import deque\n", + "\n", + "# Function to perform Breadth First Search on a graph\n", + "# represented using adjacency list\n", + "def bfs(adjList, startNode, visited):\n", + " # Create a queue for BFS\n", + " q = deque()\n", + "\n", + " # Mark the current node as visited and enqueue it\n", + " visited[startNode] = True\n", + " q.append(startNode)\n", + "\n", + " # Iterate over the queue\n", + " while q:\n", + " # Dequeue a vertex from queue and print it\n", + " currentNode = q.popleft()\n", + " print(currentNode, end=\" \")\n", + "\n", + " # Get all adjacent vertices of the dequeued vertex\n", + " # If an adjacent has not been visited, then mark it visited and enqueue it\n", + " for neighbor in adjList[currentNode]:\n", + " if not visited[neighbor]:\n", + " visited[neighbor] = True\n", + " q.append(neighbor)\n", + "\n", + "# Function to add an edge to the graph\n", + "def addEdge(adjList, u, v):\n", + " adjList[u].append(v)\n", + "\n", + "def main():\n", + " # Number of vertices in the graph\n", + " vertices = 5\n", + "\n", + " # Adjacency list representation of the graph\n", + " adjList = [[] for _ in range(vertices)]\n", + "\n", + " # Add edges to the graph\n", + " addEdge(adjList, 0, 1)\n", + " addEdge(adjList, 0, 2)\n", + " addEdge(adjList, 1, 3)\n", + " addEdge(adjList, 1, 4)\n", + " addEdge(adjList, 2, 4)\n", + "\n", + " # Mark all the vertices as not visited\n", + " visited = [False] * vertices\n", + "\n", + " # Perform BFS traversal starting from vertex 0\n", + " print(\"Breadth First Traversal starting from vertex 0:\", end=\" \")\n", + " bfs(adjList, 0, visited)\n", + " \n", + " #plot the graph\n", + " G = nx.Graph()\n", + " G.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 4)])\n", + " plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "if __name__ == \"__main__\":\n", + " main()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : False\n", + "Number of nodes : 5\n", + "Number of edges : 9\n", + "Average degree : 3.6000\n", + "Connectivity : connected\n" + ] + } + ], + "source": [ + "from netsci.analysis import graph_info\n", + "graph_info(graph_w)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Table 2.1" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import pandas as pd\n", + "from netsci.analysis import average_degree\n", + "from netsci.utils import list_sample_graphs, load_sample_graph" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "nets = list(list_sample_graphs().keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "G = load_sample_graph(\"Internet\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : False\n", + "Number of nodes : 192244\n", + "Number of edges : 609066\n", + "Average degree : 6.3364\n", + "Connectivity : disconnected\n" + ] + } + ], + "source": [ + "graph_info(G)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing sample graphs: 100%|██████████| 10/10 [00:00<00:00, 19463.13it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collaboration\n", + "Internet\n", + "PowerGrid\n", + "Protein\n", + "PhoneCalls\n", + "Citation\n", + "Metabolic\n", + "Email\n", + "WWW\n", + "Actor\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "for net in tqdm(nets, desc=\"Processing sample graphs\"):\n", + " print(net)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing sample graphs: 100%|██████████| 9/9 [00:33<00:00, 3.72s/it]\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
num_nodesnum_edgesavg_degreedirectedname
023133934398.078416FalseCollaboration
11922446090666.336385FalseInternet
2494165942.669095FalsePowerGrid
3201829302.903865FalseProtein
436595918265.018500TruePhoneCalls
5449673468947920.857285TrueCitation
61039580211.168431TrueMetabolic
7571941037313.627339TrueEmail
832572914971349.192513TrueWWW
\n", + "
" + ], + "text/plain": [ + " num_nodes num_edges avg_degree directed name\n", + "0 23133 93439 8.078416 False Collaboration\n", + "1 192244 609066 6.336385 False Internet\n", + "2 4941 6594 2.669095 False PowerGrid\n", + "3 2018 2930 2.903865 False Protein\n", + "4 36595 91826 5.018500 True PhoneCalls\n", + "5 449673 4689479 20.857285 True Citation\n", + "6 1039 5802 11.168431 True Metabolic\n", + "7 57194 103731 3.627339 True Email\n", + "8 325729 1497134 9.192513 True WWW" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_list = []\n", + "\n", + "for net in tqdm(nets[:-1], desc=\"Processing sample graphs\"):\n", + " G = load_sample_graph(net)\n", + " num_nodes = G.number_of_nodes()\n", + " num_edges = G.number_of_edges()\n", + " avg_degree = average_degree(G)\n", + " directed = nx.is_directed(G)\n", + " \n", + " # Append a dictionary of data for this network to the list\n", + " data_list.append({\n", + " 'num_nodes': num_nodes,\n", + " 'num_edges': num_edges,\n", + " 'avg_degree': avg_degree,\n", + " \"directed\": directed,\n", + " \"name\": net\n", + " })\n", + "\n", + "# Create the DataFrame from the list of dictionaries\n", + "df = pd.DataFrame(data_list)\n", + "\n", + "# Display the DataFrame\n", + "df" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/examples/chap_03.ipynb b/.doctrees/nbsphinx/examples/chap_03.ipynb new file mode 100644 index 0000000..ccf8348 --- /dev/null +++ b/.doctrees/nbsphinx/examples/chap_03.ipynb @@ -0,0 +1,530 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 3](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_03.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Random Networks**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A random network consists of N nodes where each node pair is connected with probability p.\n", + "To construct a random network we follow these steps:\n", + "1) Start with N isolated nodes.\n", + "2) Select a node pair and generate a random number between 0 and 1. If the number exceeds p, connect the selected node pair with a link, otherwise leave them disconnected.\n", + "3) Repeat step (2) for each of the N(N-1)/2 node pairs.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "import networkx as nx\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "from netsci.plot import plot_graph" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "LABELSIZE = 13\n", + "plt.rc('axes', labelsize=LABELSIZE)\n", + "plt.rc('axes', titlesize=LABELSIZE)\n", + "plt.rc('figure', titlesize=LABELSIZE)\n", + "plt.rc('legend', fontsize=LABELSIZE)\n", + "plt.rc('xtick', labelsize=LABELSIZE)\n", + "plt.rc('ytick', labelsize=LABELSIZE)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "def create_random_network(N, p):\n", + " G = nx.Graph() # Initialize an empty graph\n", + " G.add_nodes_from(range(N)) # Add N isolated nodes\n", + "\n", + " # Iterate through each possible node pair\n", + " for i in range(N):\n", + " for j in range(i + 1, N):\n", + " if random.random() <= p: # Generate a random number and compare it with p\n", + " G.add_edge(i, j) # Connect the nodes if the condition is met\n", + "\n", + " return G\n", + "\n", + "# Example usage:\n", + "N = 10 # Number of nodes\n", + "p = 0.3 # Probability of edge creation\n", + "\n", + "seed=2\n", + "random.seed(seed)\n", + "np.random.seed(seed)\n", + "\n", + "random_network = create_random_network(N, p)\n", + "plot_graph(random_network, seed=2, figsize=(5, 3), title=\"Random Network\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other option would be to use the `nx.gnp_random_graph` function from NetworkX, which generates random graphs with a given number of nodes and a given probability of edge creation.\n", + "\n", + "```python\n", + "G = nx.gnp_random_graph(N, p)\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Binimial distribution\n", + "\n", + "Degree distribution in a random network follows a binomial distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2PMrHqke5SHbtm3TSik9ePDgAsdnzJihAT1v3jyPnW+z2XRISIju2LGjdjgcBdqPHDlSA/r3338vduxS3FII73Mc2mkUnzzwh1ev48zNOlNA027z6rW8oSoXt3zllVcKvTd58mQNFCpuecstt2hAr1692n3MVdyyQ4cOOjIyUj/55JN65syZuk+fPhrQN910U4G+n3322UJFIos65tKgQQPds2fPAseGDh2qAX3llVfqmTNn6qeeekpXq1ZNh4aG6s2bN5fq+1GUH374QU+ePFlPnjxZX3jhhRrQDz/8sPvYP6WkpOgGDRrosLAw/cwzz+i3335b9+rVSwP6f//7X6G++/fvrwF9xx136P/973/6jjvu0IAeNWpUobavvvqqBnSvXr3022+/rZ955hkdGhqqW7RoUaBopid4urilXyVNTz31lAb02rVrCxzPzs7WISEh+uqrr/bY+VlZWVoppfv161eoH1cl1N27dxc7dkmahPA+x57fjETmyH7vX2vrauNap497/VqeJklTQZmZmTo6OrpESdOzzz6r58+fr9u2bauDgoJ0vXr19IQJE3ReXsEq9J5Immw2m37ppZd0ixYtdFBQkK5evboeOHCg/uMPz/5x4IrrbI9/O3z4sB41apSuWbOmtlgsukOHDnrhwoVF9p2dna2feuop3aBBAx0UFKTj4+P1pEmTCn2/XGbPnq3btWunLRaLrlWrlr7tttv0sWPHPPp5XXF5MmlSWvvPHNSVV17Jt99+W+Tti5dccgm7d+8+54Z+JT2/V69erFu3jhdffJHrr7+egIAA1qxZw3333cegQYP46KOPznqt3NzcAncLpKWlERcXR2pqKhERHtx5XQjh5ty2FrIzUE07o6rV9u619m+FE4kQ3RhTveZevZan5eTkcODAAeLj4923cQtRFRXn30JaWhqRkZHF+v3tV2uakpKSiIqKKrJ+Q2xsLCkpKeTlnb2SbUnPnzdvHr179+bxxx+nadOmxMfHc/vtt/PQQw+dt67HlClTiIyMdD/+XQlVCOFZWmvIyV974qU75/5JheeXHsg47fVrCSEqBr9Kms5XIMvVxlPnWywW4uPjufnmm1mwYAELFizg+uuv5/nnn+fFF188Z6xPPPEEqamp7se/7xoQQniYLRe0E1AQVPLbqEssND9pyjyN1ue/CUUIUfn5VZ2mkJAQjh8/XuR7xSl6VZLzs7KyuPjii+nYsSMLFy50t7vxxhu58cYbeeaZZ7jhhhto3rzoYXmLxVKqPX2EEKWUk3/nnCUYZSqHv/eCw8AcAA67UYU8RKbdhajq/GqkKSYmhpSUlCIriyYmJhIVFUVQ0Nkrxpbk/MWLF7Nnzx6GDBlSqO2QIUNwOp38+OOPZfg0QgiPys0fJbaUT7VgpRSEVjNeZEjpASGEnyVNXbp0wel0snHjxgLHc3Jy2LJlS4ECWWU931W9tKjKqna7vcBXIYTv6XJOmgAIq2ZcW5ImIQR+ljQNGzYMpVShAlnvvvsuWVlZBYpe7du3j507d5b6fNceQh9++GGhOFzHXJVLhRB+IH8RuLKWX9KkwmQxuBDiDL9a09S2bVvGjBnDrFmzGDx4MP369WPHjh3MmDGDnj17MmLECHfbyy+/nISEhAIVVEtyfv/+/enatSsrV67k0ksvZfDgwQB89tlnrFu3jiFDhhTY4VoI4WO5rjVN3r9zzs01PZebhbblogJlHaMQVZlfJU1glF1v2LAh77zzDitWrCAqKoqxY8cyadIkTMVY/Fnc881mM99++y1Tpkzhs88+47HHHkMpRdOmTZk6dSrjxo3z5scUQpSUD6bnVEAgOjjMWAiecRqq1ym3awsh/I9fFbesyEpSHEsIUTLanof+/VsAVMcrUWfZPd4bnAf+hJRDULcRprgW5XbdspDilkIYKnVxSyGEKJKrqGWgpVwTJgCVvxiczNPlel0hhP+RpEkI4f98ceecS9g/ilw6pcilEFWZJE1CCP+XW37bpxRiDQVzIDidkJ1W/tcXQvgNSZqEEH5P51cDVz4YaVJKues1SemByu/gwYMopZg4cWKx2k+cOBGlFAcPHvRqXMI/SNIkhPB/vpye40y9Jily6b/WrFmDUgqlFO+++26RbZRS9O/fv5wj8x+ffPIJt912G+3btycwMPC8yV5SUhI333wztWrVIjg4mM6dO7No0aIi2+bm5vLMM88QHx+PxWKhcePGPP/889hstiLbz5kzhw4dOhAcHEydOnW48847SU5OLrLtL7/8Qp8+fQgPDyciIoKrrrqKLVu2lPTje4QkTUII/+eenvNN0iQjTRXLxIkTyc7OLpdrPf3002RnZ9OgQYNyuV5ZvPXWWyxcuJDg4GAaN258zrYnT56ke/fufPbZZ4wePZrp06cTFhbG0KFDmT17dqH2w4YNY/LkyfTu3Zs333yTXr16MWHCBO66665Cbd944w1uueUWIiMjmT59Ovfccw8LFy6kV69eZGZmFmj7888/07NnTw4cOMCkSZN47rnn2LNnDz169ODPP/8s2zekNLTwiNTUVA3o1NRUX4ciRKXitNu0Y+MK7di4Qjtteb6PITfbJzGURHZ2tt6+fbvOzvb/WD1l9erVGtCdO3fWgH7xxRcLtQH0Nddcc85+Dhw4oAH97LPPeilS30lISNA2m01rrfWYMWM0oA8cOFBk20ceeUQDetmyZe5jdrtdd+nSRdeoUUOnp6e7j69YsUIDety4cQX6GDdunAb0Tz/95D6WnJysQ0JCdJcuXbTdbncfX7ZsmQb0Cy+8UKCPLl266PDwcH348GH3scOHD+vw8HDdt2/f837m4vxbKMnvbxlpEkL4N9cokzkQFRDokxCUOQCCw40XUnrArw0dOpROnToxdepUTpw4Uaa+FixYQLt27bBardSvX5+JEycW2pO0qDVNrmO7du3iySefpF69elgsFtq3b8/KlSsLXcdutzN16lRatWqF1WqlZs2aDBo0yOMjKfXr1ycgoHg1refPn0/jxo0ZMGCA+5jZbGbs2LGcPHmywOeYP38+AA8++GCBPlyv586d6z62dOlSsrKyGDt2LOZ/lA8ZMGAAjRo1KtB27969bNq0iSFDhhAbG+s+Hhsby5AhQ/j22285evRosT6Pp0jSJITwb76emnMJjQRAZ6b6No4y0lqjs7P98+GBWstKKV566SVSU1N54YUXSt3PsmXLGD16NAMGDOCVV16hefPmPPfcc0VON53NLbfcwrp16xg/fjyTJ08mOTmZ6667rtA6opEjR/L4449Tr149XnnlFe69915Wr15Nt27d+P333wu0PXXqFCkpKcV65ObmluqzHzlyhMTERC666KJC77mObdq0yX1s06ZNxMbGEhcXV6BtXFwcMTExhdoCdOvWrci+d+7cSUZGRrHaaq357bffSvrxysTvtlERQogCcvPXpgT5NmlSoZHolMNQwZMmcnJIv7a7r6MoUviyHyE4uMz99OnTh759+/LWW2/xwAMPlGq90datW9m0aZN7D9L77ruPwYMH88EHH3DPPfcUmVD8W1RUFMuXLzfuwAQuu+wyunbtyttvv82UKVMAWLVqFZ988glDhw5l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17M//vGPbNu2jRkzZjBv3jxCQ0M5cOAATz/9NO+88w55eXlEREQAnuUWxowZg9Fo5Le//S0xMTHs2LGDKVOm8Pe//5177rknyO/m+iorK6OyspLMzEwSEhIwGo0cP36c7du38/bbb1NQUEBcXBygv9hcafXq1Zw/f97vPj3GJj09nSVLlrQqu/KDT49xKS0tZfz48VitVh555BGSk5Opra2lsLCw1YK/eXl5jB8/nn79+rFu3ToAtm7dSnp6Orm5uaSkpATrLbSL+++/nyFDhviUFxYW8vvf/5777vvuZuZ6Gzdut5upU6eSm5vLggULyMrKwmaz8dZbb7Fw4UJOnDjBhg0bgC4+bpToFI4ePaouXrzoU75q1SoFqC1btnjLZs+erQwGg/r888+9ZfX19SoxMVElJycrt9vdEV0OunfeeUcBasOGDd4yPccmPz9fhYSEqJdeekkB6vHHH2+1X2+xAdSCBQu+t57e4qKUUnfffbdKSEhQFRUVV62XmpqqLBaLKisr85aVlZUpi8WiMjIy2rubncaSJUsUoPbs2eMt09u4yc3NVYBavnx5q3Kn06kGDRqkYmJivGVdedxI0tTJFRYWKkAtXbpUKaWU1WpVJpNJTZw40afuunXrFKCOHDnS0d0MiiNHjihAPfXUU0opfcemublZjRgxQk2fPl2dOXPGJ2nSY2xakian06nq6+v91tFjXD7++GMFqM2bNyullGpsbFQNDQ0+9b788ksFqEWLFvnsW7RokdI0TVVWVrZ7f4PNarWq6OholZCQoJqbm71lehs3//jHPxSgXnzxRZ99qampKj4+XinV9ceNzGnq5MrKygDo3bs34DlM7HQ6ueuuu3zqjh49GoCjR492XAc7kMPhoKqqirKyMj744AOWLl0KwLRp0wB9x2bjxo2cPHmSrVu3+t2v19j85S9/wWw2Y7FYiIuLIysri9raWu9+PcZl3759ACQmJnLfffcRERFBZGQkycnJ7Nq1y1uv5X23FRulFPn5+R3T6SDKycmhrq6Ohx9+mJCQEECf4yYtLY1u3brx4osvkpOTw9dff83JkydZuXIl+fn5rFmzBuj640bmNHViLpeL9evXYzQamTt3LgAVFRWA/5sJt5T5uwlxV7Bz506ysrK8zwcOHMiuXbtIT08H9BubM2fO8Oyzz7J69WoGDhxISUmJTx09xiYt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make a random graph with N nodes and average degree of k\n", + "np.random.seed(2)\n", + "\n", + "num_nodes = [100, 1000, 10000]\n", + "average_degree = 50\n", + "lambd = 50\n", + "colors1 = plt.cm.Reds(np.linspace(0.2, 0.6, len(num_nodes)))\n", + "\n", + "for i in range(len(num_nodes)):\n", + " probability = average_degree / num_nodes[i]\n", + " graph_b = nx.gnp_random_graph(num_nodes[i], probability)\n", + " degrees = [d for n, d in graph_b.degree()]\n", + " sns.kdeplot(degrees, fill=False, label=f\"N.bino={num_nodes[i]}\", color=colors1[i])\n", + "\n", + "s = np.random.poisson(lambd, num_nodes[-1])\n", + "sns.kdeplot(s, fill=False, label=f\"N.pois={num_nodes[i]}\", color='b')\n", + "\n", + "plt.xlabel(\"k\")\n", + "plt.ylabel(\"P(k)\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### The evolution of a random network" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Connected Components:\n", + "Component 1: Size 19\n", + "Component 2: Size 1\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Step 1: Generate a random graph (Erdős-Rényi model)\n", + "n = 20 # number of nodes\n", + "p = 0.12 # probability of edge creation\n", + "G = nx.erdos_renyi_graph(n, p)\n", + "\n", + "# Step 2: Find all connected components\n", + "connected_components = list(nx.connected_components(G))\n", + "\n", + "# Step 3: Calculate the size of each connected component\n", + "component_sizes = [len(component) for component in connected_components]\n", + "\n", + "# Display the graph and component sizes\n", + "print(\"Connected Components:\")\n", + "for i, component in enumerate(connected_components):\n", + " print(f\"Component {i + 1}: Size {len(component)}\")\n", + "\n", + "# Optionally, visualize the graph\n", + "plot_graph(G, seed=2, figsize=(5, 3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the size of giant connected component vs average degree" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N=10000, Ln(N)= 9.210340371976182\n", + "average k = 0.100, giant_component_size= 4\n", + "average k = 0.500, giant_component_size= 11\n", + "average k = 0.900, giant_component_size= 164\n", + "average k = 1.000, giant_component_size= 480\n", + "average k = 1.100, giant_component_size= 1682\n", + "average k = 2.001, giant_component_size= 8028\n", + "average k = 2.902, giant_component_size= 9363\n", + "average k = 3.803, giant_component_size= 9755\n", + "average k = 4.705, giant_component_size= 9909\n", + "average k = 5.606, giant_component_size= 9967\n", + "average k = 6.507, giant_component_size= 9989\n", + "average k = 7.408, giant_component_size= 9999\n", + "average k = 8.309, giant_component_size= 9997\n", + "average k = 9.210, giant_component_size= 9998\n" + ] + }, + { + "data": { + "image/png": "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bW2tVWtyNjIhhLB1EY6qsLAQXbt2RUREBHbv3m2cer9v3z7ExsZi6tSpWLFihY2rdB6LFi3CggULMH78eKxevRqurq62Lskp1dTU4Pvvv2+wvaCgAE888QTuuece/OMf/0CfPn3Qs2dPG1ToPIqLi9G1a1eoVCpkZWVBrVYDqGuli4iIQEVFBXJycti1bwVPP/003nrrLbz22mt47rnnjNtLSkrQt29fFBUVobCw0Dj+lMyPgcjC3n77bcyePRvx8fGYOHEiCgsLkZaWBnd3d+zbt8/YrUaW9d577+Gpp55Cly5dsGjRogZhKDAwEImJiTaqjgAgOzsb4eHheOKJJ/D+++/buhynsXLlSvz9739Hr169MH36dMhkMqxYsQInTpzAxx9/zNlNVnL27FlERUXhypUrGDduHG677TZcuXIFK1aswJ9//ok333wTzzzzjK3LdGy2XRfSOaxZs0YMHDhQKBQK4efnJx599FFx+vRpW5flVCZPniwANPk1bNgwW5fo9M6cOcOVqm3km2++EfHx8cLT01OoVCpx++23i40bN9q6LKdz/vx58eSTT4revXsLpVIpvLy8xG233SY+//xzW5fmFNhCRERERE6PI0qJiIjI6TEQERERkdNjICIiIiKnx0BERERETo+BiIiIiJweAxERERE5PQYiIiIicnoMREREROT0GIiIiIjI6TEQERERkdNjICJyMhqNBiqVCjKZDB9//LGty7EL2dnZkMlkxi8XFxf4+PigR48eePjhh/HJJ5+gsrLS1mUS0Q3gvcyInMyyZcvwz3/+E927d0dwcDB++eUXW5ckednZ2QgPD8fw4cMxdepUAEBZWRmys7Pxww8/4MCBA+jZsye++OIL3HLLLTaulojag4GIyMnExMTAy8sLjz76KJ588klkZWWhd+/eNqunrKwMnp6eNnv+1jAEoieeeALvv/9+g/1r1qzBlClTEBgYiN9//x2+vr7WLxJAVVUVXF1d4ebmZpPnJ7Jn7DIjciKHDx/G/v37MWXKFIwdOxZyuRwrV6407tfpdAgJCUG/fv0aPX/FihWQyWTYsGGDcVtVVRVeffVV9OnTBwqFAr6+vhg5ciQOHDhgcu62bduM3XTvvfceIiMjIZfL8e9//xsAsGfPHkyZMgW9evWCSqWCt7c34uPj8dVXXzVay6+//orbb78dSqUS/v7+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Pn/5y18AAG+++abJMQcPHjQZ89MSFxcXjB8/HpmZmfj8888bPab+azbXe0hk79hCROTgtmzZgnPnzmH+/PlNHvPwww/j+eefx4oVK3DbbbcBAO6//3507NgRycnJ0Gq1JoOpDWbNmoUtW7bg+eefx7Zt23DnnXfCx8cH586dw08//QSFQtHoejvXu/nmm9GnTx+88cYbKC8vR+/evXHy5EksX74cffv2RWZmpsnxixcvxp133on4+Hj885//RKdOnfDNN9/gypUrAOoGWBsMGjQIKSkpWLBgAQYMGIAxY8agc+fOyM/Px/79+7Fx40ZUV1e36md56tQprFmzBkDdwO/s7Gxs3rwZBw4cQK9evfDll1+atAT99a9/xdSpU7Fs2TIcPHgQI0eOhL+/P3JycrBz50788ccfxnWB7r33Xtx333349NNPcfnyZdx7773Iy8vD0qVLMXDgQOzfv9/kdTXnlVdewW+//YZx48bhq6++wpAhQ+Dh4YGzZ89i48aNiI6ONt62xVzvIZHds/q8NiKyqkceeUQAEIcPH272uH79+glPT0+TKehPPfWUACC8vLwanRYvRN0U8rffflvExMQIlUolVCqV6NGjhxg3bpz44YcfjMcZpt2vWrWq0etkZ2eLv/71r8Lf318olUoxaNAg8eWXX4oFCxY0mHIuhBDbt28X8fHxQqFQiI4dO4opU6YYp8fXXxrA4LvvvhN333236NChg/Dw8BChoaFixIgRYunSpc3+XIS4Nu3e8CWTyYSXl5fo3r27GD16tFi9erWoqKho8vxPPvlE3HbbbcLb21vI5XLRtWtX8dBDD4nPP//c5Ljy8nLxzDPPiODgYCGXy0X//v3F+vXrxZw5cwQAcfHiReOxhmn3TSkrKxOLFi0Sffv2FQqFQnh5eYmIiAgxffp0sWvXLpNjW/seEjky3rqDiBzGvn37MGjQIKSmpuL555+3dTlm88ADD2Dr1q3QarXG7kUiMi+OISIiuyOEaHB3eSEEXnvtNQBodt0eKWtsvZ8DBw5g8+bNuPPOOxmGiCyIY4iIyO5UVVWha9eumDBhAnr16oXi4mKkp6dj586dGDduHKKiomxdYrssWrQIBw4cwPDhw+Hr64tjx47hww8/hFwux0svvWTr8ogcGrvMiMju6HQ6PPbYY9ixYwfy8/Oh0+nQo0cPTJw4Ec8884zd3u1906ZNeO2113Ds2DEUFxfD19cXt99+OxYsWID+/fvbujwih8ZARERERE6PY4iIiIjI6TEQERERkdNjICIiIiKnx0BERERETo+BiIiIiJweAxERERE5PQYiIiIicnoMREREROT0/h9Ib2NCtc3yMAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "N = int(1e4)\n", + "print(f\"N={N}, Ln(N)= {np.log(N)}\")\n", + "k_avg = [.1, 0.5, 0.9, 1.0] + np.linspace(1.1, np.log(N), 10).tolist()\n", + "giant_component_sizes = []\n", + "for i in range(len(k_avg)):\n", + " p = k_avg[i] / N \n", + " G = nx.erdos_renyi_graph(N, p)\n", + " connected_components = list(nx.connected_components(G))\n", + " component_sizes = [len(component) for component in connected_components]\n", + " giant_component_size = max(component_sizes)\n", + " giant_component_sizes.append(giant_component_size)\n", + " \n", + " print(f\"average k = {k_avg[i]:10.3f}, giant_component_size={giant_component_size:10d}\")\n", + " \n", + "giant_component_sizes = np.array(giant_component_sizes)/N\n", + "plt.plot(k_avg, giant_component_sizes, marker='o', label='Giant Component Size')\n", + "plt.xlabel(r'Average Degree')\n", + "plt.ylabel(r'$N_G / N$');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Degree distribution of real networks" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW', 'Actor'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from netsci.utils import load_sample_graph, list_sample_graphs\n", + "from netsci.analysis import graph_info\n", + "\n", + "graphs = list_sample_graphs()\n", + "graphs.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Successfully loaded Collaboration\n", + "================================\n", + "Scientific collaboration network based on the arXiv preprint archive's \n", + " Condense Matter Physics category covering the period from January 1993 to April 2003. \n", + " Each node represents an author, and two nodes are connected if they co-authored at \n", + " least one paper in the dataset. Ref: Leskovec, J., Kleinberg, J., & Faloutsos, C. (2007). \n", + " Graph evolution: Densification and shrinking diameters. \n", + " ACM Transactions on Knowledge Discovery from Data (TKDD), 1(1), 2.\n", + "Graph information\n", + "Directed : False\n", + "Number of nodes : 23133\n", + "Number of edges : 93439\n", + "Average degree : 8.0784\n", + "Connectivity : disconnected\n" + ] + } + ], + "source": [ + "G_collab = load_sample_graph('Collaboration', verbose=True)\n", + "graph_info(G_collab)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Figure 3.6" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy.stats import poisson\n", + "from collections import Counter\n", + "\n", + "fig, ax = plt.subplots(1,3, figsize=(15,4))\n", + "\n", + "c = 0\n", + "for net in [\"Internet\", \"Collaboration\", \"Protein\"]:\n", + " G = load_sample_graph(net)\n", + " degrees = [G.degree(n) for n in G.nodes()]\n", + " degree_count = Counter(degrees)\n", + " k, pk = zip(*degree_count.items())\n", + " k = np.array(k)\n", + " pk = np.array(pk)/sum(pk)\n", + "\n", + "\n", + " ax[c].loglog(k, pk, 'k.', label='real')\n", + " ax[c].set_xlabel(\"k\")\n", + " ax[c].set_ylabel(\"pk\");\n", + " ymin, ymax = np.min(pk)*0.9, np.max(pk)*1.1\n", + "\n", + " # add poisson distribution to graph\n", + "\n", + " k = np.arange(0, max(degrees)+1)\n", + " pk_poisson = poisson.pmf(k, np.mean(degrees))\n", + " ax[c].loglog(k, pk_poisson, 'r', label='poisson')\n", + " # plt.ylim([1e-5, 1])\n", + " ax[c].legend(frameon=False);\n", + " ax[c].set_ylim([ymin, ymax])\n", + " ax[c].set_title(net)\n", + " c += 1\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Clustering coefficient\n", + "\n", + "The local clustering coefficient of a random network is\n", + "\n", + "$$\n", + "C_i = p= \\frac{⟨k⟩}{N}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To analyze the dependence of the average path length $d(p)$ and the clustering coefficient $\\langle C(p) \\rangle$ on the rewiring parameter $p$ for a small-world network, you can use the Watts-Strogatz model. This model begins with a regular lattice and introduces randomness by rewiring each edge with probability $p$. Here's a step-by-step guide on how to perform this analysis:\n", + "\n", + "1. **Generate a regular lattice**: Create a regular ring lattice with $N$ nodes where each node is connected to its $k$ nearest neighbors.\n", + "\n", + "2. **Rewire edges**: For each edge in the lattice, rewire it with probability $p$. This involves replacing the existing edge with a new edge that connects the node to a randomly chosen node in the network.\n", + "\n", + "3. **Compute $d(p)$ and $\\langle C(p) \\rangle$**:\n", + " - $d(p)$ is the average shortest path length between all pairs of nodes in the network.\n", + " - $\\langle C(p) \\rangle$ is the average clustering coefficient of all nodes in the network.\n", + "\n", + "4. **Normalize by $d(0)$ and $\\langle C(0) \\rangle$**:\n", + " - $d(0)$ is the average path length of the regular lattice (when $p=0$).\n", + " - $\\langle C(0) \\rangle$ is the average clustering coefficient of the regular lattice (when $p=0$).\n", + "\n", + "5. **Plot the results**: Plot $d(p)/d(0)$ and $\\langle C(p) \\rangle / \\langle C(0) \\rangle$ as functions of $p$ on a log scale to observe the small-world phenomenon." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x44ds2rfvn27MBqN4qWXXjK3DRgwQFxxxRXm9U8++UQYDAZx7733ilatWpnblyxZIgCIzZs3m9tGjx4tbL82ctuoUaNUrwWAGD16tF2bwWAQW7ZssWq/9dZbRXBwsCgqKjK3de/eXYSEhIicnBxzW3V1tRgyZIjqudVYunSpACBatGghLly4YG6/cOGCaNGihYiJiRHFxcXm9uTkZAFAfPjhh1bnqaysFMnJySIqKsrqb11ZWSkGDhwoAIgff/zR7m8zePBgUV1dbW7fsWOHMBgMol+/flbnV/ZBZsOGDQKAeP31163aAQgA4vPPP7dqnzBhggAgPv74Y7vrz8rKMrfJ/2NLly41tx06dEgAsPp/kT9L7e/8zTffCABi3rx5Vu2ffvqpACD+9a9/2R1jS+/evQUAMXHiRKv2zMxMAUA8+OCDLs9B6jd0fRO/5pVXXkHjxo3RpEkTdOrUCQsWLMCgQYPw5Zdfmve5cOEC/vvf/+L2229HeHg4zpw5Y361bNkSbdu2xTfffGPev0+fPsjLy8PevXsBAN9++y06duyIESNG4NChQzh06JC53WQyoXv37pr6+uSTT+q6th49euDGG2+0auvTpw8qKyvNrt5Tp05h69atuOOOO9C+fXvzfgaDAU8//bSuzwOAhx9+GDExMeb1mJgY/OMf/0BBQQGysrKs9o2Li8Po0aOt2nbu3IkjR45gzJgxSExMNLcbjUY899xzAIDMzEy7z3366aethgw6d+6MW265Bd9++y0KCwvN7Q0aNAAAVFdXo6CgAGfOnMF1112HmJgYbN261e687du3twvwevbZZwEAn3/+udO/hTfo168fWrdujSVLlli1L1myBDExMbjrrrs0n0vut8zgwYPRvn17RpsTjlET/2bcuHFYv349vvrqK7z55puIi4vDqVOnEBERYd7nzz//RHV1NZYtW4bGjRvbvfbt24dTp06Z9+/Tpw8ASYjlZZ8+fdCrVy8EBweb27OyspCWluYyUlimXbt2uq6tdevWdm2ya/fs2bMAYH5oUIq0zFVXXaXr8wDJlWtLhw4dAMBuzL9169Z2ruODBw8CAK655hq788hj2PI+Wj63urrafI2AdC/S09PRoEEDNGzY0HwPCwoKcP78eU3nveKKK9CwYUO76/EFBoMB48ePx65du7Bz504A0pDJxo0bce+991r9nzqjYcOGaNq0qV371VdfjTNnzqCgoMCr/SZ1C45RE7+mbdu26NevHwBpnPOmm25Cz5498fDDD5uDoMTlAKYRI0Zg7NixqudR/mCmpKSgUaNG2LhxI2677TYcOnQIffv2RVRUFLp06YKNGzeiZ8+eOHHiBCZOnKi5ryaTSde1OYtClq9JOAjOche14iPyZ9huU7seb/bH9nO3bduG/v37o23btnjttdfQqlUrREREwGAw4J577kF1dbXdORwVUxFC+KzQii0PPPAApkyZgsWLF2PBggVYunQpqqur8eCDD2o+h7PrcLadBAYUalKnuPHGG3HffffhX//6FyZMmIAbb7wRbdu2hcFgQFlZmVnUnREUFIRevXph06ZNWL9+PYKDg9G7d28AQN++fbF48WL07NkTgMX6ri1kqzsnJ8dum1qbK/bs2YM777zTqk0eAlCz8G1p06YNAOCPP/6w2/b7779b7WP7GbZufjmAr2XLlgCAlStXoqqqCl999RVatWpl3u/ixYuq1rR8Pbbk5eWhoKBA0/V4g4SEBNx5551YsWIF3nzzTSxbtgwpKSm44YYbNJ/j/PnzOHnypJ1VnZOTg/j4eERHR3u726QOQdc3qXO8+OKLMBqNePHFFwFI7uJbb70Va9euxY8//mi3vxAC+fn5Vm19+vTB+fPnMWfOHHTt2hVRUVHm9lOnTmHBggVo2LAhUlJSfH9BTkhISEC3bt3w//7f/8O+ffvM7UIIvPnmm7rP995771m5UQsKCvD++++jYcOGuPnmm10en5KSguTkZHz00UfIzc01t1dXV2PmzJkApLFVW9544w0ra3znzp3YsGED+vTpYxYh2cNga7XPmDFD1ZoGgH379tmN4b7++usO++EukZGRDh8WAOChhx5CQUEB/vGPf+DIkSO6rGmZ1157zWr9888/x759+1hkhdCiJnWPtm3b4p577sEnn3yC77//HmlpaXjvvfdw00034eabb8b999+PlJQUVFdX4+DBg1i7di1GjRplVb9ZtpT37NmDF154wdyempqK8PBw7NmzB4MGDfI4vccbzJo1C3379kXPnj3x6KOPonHjxvjyyy/NwqHHLRofH4/u3btj7NixEEJg6dKlOHr0KBYvXmwO5HKG0WjEggULkJGRga5du+Lvf/87GjVqhMzMTHz33XcYP348UlNT7Y47cuQIBgwYgDvvvBN5eXmYP38+IiIiMGvWLPM+gwcPxuzZs3HrrbfioYceQmhoKNavX4/ffvsN8fHxqv3p2LEj7rvvPowfPx7t2rVDVlYWVq9ejd69e2PEiBGa/y6u6N69OzZs2IA333wTSUlJaNCgAe644w7z9ltuuQWtW7fGxx9/jIiICIwcOVLX+ePj45GZmYkTJ04gPT3dnJ6VkJCAadOmee06SB2lVmLNCXGBnDozc+ZM1e179uwRQUFBIj093dyWn58v/vnPf4p27dqJsLAwERMTI6699loxYcIE8ccff9idIyEhQQAQ3377rVV7nz59BAAxd+5cu2OcpWc5Ag7Ss9TSfdTSiIQQ4rvvvhM9e/YU4eHhIi4uTowZM8acSvTwww87/Gzb865fv15MmTJFJCUlidDQUHHNNdeITz75xG7/5ORk0bt3b4fn+/7770X//v1FdHS0CAsLE9dee6145513rFKwhLD8bU6fPi3uu+8+ERsbKyIiIsTNN98sduzYYXfezz//XKSkpAiTySTi4uLE8OHDxZEjR1T7I/8N169fL7p16ybCw8NFkyZNxGOPPSYKCwtVr9/d9KycnBzRp08fERkZKQCI5ORku77PmDHDaZqeI3r37i2Sk5PFgQMHxJ133imioqJEZGSkuPPOO8X+/ft1nYvUTwxCeDlahRBSI+zYsQNdu3bFzJkz7VJ7bFm2bBkeeOABZGVlIT09vWY6GGC89dZb+L//+z9s3rwZaWlpmo9LT0/H4cOHnVZfI4FN7fv1CCFOEULg0qVLdm3ymGb//v1ro1tEQWVlJd577z106NBBl0gTogWOURPi55SVlSE5ORn33XcfrrzySly4cAFr167Fli1bMHLkyFoPeAtkDh06hC1btmDt2rU4ePCgat10QjyFQk2InxMSEoLbbrsNa9euRV5eHqqqqsy5xk899VRtdy+g+e677/DAAw8gPj4eU6ZM8WoAGyEyHKMmhBBC/BiOURNCCCF+DIWaEEII8WMo1IQQQogfQ6EmhBBC/BgKNSGEEOLHUKgJIYQQP4ZCTQghhPgxFGpCCCHEj6FQE0IIIX7M/wexj9vQDqJ9+QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Parameters\n", + "N = 1000 # Number of nodes\n", + "k = 10 # Each node is connected to k nearest neighbors in ring topology\n", + "p_values = np.logspace(-4, 0, num=100) # Rewiring probabilities\n", + "\n", + "# Initialize lists to store results\n", + "average_path_lengths = []\n", + "clustering_coefficients = []\n", + "\n", + "# Generate the initial regular lattice\n", + "G0 = nx.watts_strogatz_graph(N, k, 0)\n", + "d0 = nx.average_shortest_path_length(G0)\n", + "C0 = nx.average_clustering(G0)\n", + "\n", + "for p in p_values:\n", + " G = nx.watts_strogatz_graph(N, k, p)\n", + " d = nx.average_shortest_path_length(G)\n", + " C = nx.average_clustering(G)\n", + " average_path_lengths.append(d / d0)\n", + " clustering_coefficients.append(C / C0)\n", + "\n", + "# Plotting\n", + "plt.figure(figsize=(5, 4))\n", + "\n", + "# Average path length plot\n", + "plt.plot(p_values, average_path_lengths, marker='o', linestyle='-', color='blue', label=r\"$d(p)/d(0)$\")\n", + "\n", + "# Clustering coefficient plot\n", + "plt.plot(p_values, clustering_coefficients, marker='o', linestyle='-', color='red', label=r\"$\\langle C(p) \\rangle / \\langle C(0) \\rangle$\")\n", + "plt.xscale('log')\n", + "plt.xlabel('Rewiring probability p')\n", + "plt.legend(frameon=False)\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/examples/chap_04.ipynb b/.doctrees/nbsphinx/examples/chap_04.ipynb new file mode 100644 index 0000000..b7f5012 --- /dev/null +++ b/.doctrees/nbsphinx/examples/chap_04.ipynb @@ -0,0 +1,561 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 4](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_04.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **THE SCALE-FREE PROPERTY**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from netsci.utils import generate_power_law_dist, generate_power_law_dist_bounded" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "LABELSIZE = 13\n", + "plt.rc('axes', labelsize=LABELSIZE)\n", + "plt.rc('axes', titlesize=LABELSIZE)\n", + "plt.rc('figure', titlesize=LABELSIZE)\n", + "plt.rc('legend', fontsize=LABELSIZE)\n", + "plt.rc('xtick', labelsize=LABELSIZE)\n", + "plt.rc('ytick', labelsize=LABELSIZE)\n", + "# set legend font size \n", + "plt.rc('legend', fontsize=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Comparing Poisson and Powe-law Distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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27aNzp074+rqyujRo3F2dub3339n5MiRnD17Nt3uAe3bt8fHx4fJkydz7do1Zs+eTefOnenWrRsLFy5k0KBBWFlZMXv2bHr06MGlS5coV66c3jb+/PNPZs2axbBhw/Dw8GDLli18/fXXhIaGsmLFCl25oKAg/v33X7p06YK3tzfx8fFs2LCBd999l8jISMaPH58mvj59+mBra8tHH32ESqXC09Mz3fd+6dIl2rRpg4eHh+5C9/79+xw6dIj//vuPpk2bAhAeHk79+vV5+PAh77//PpUrV+bQoUPMnDmTPXv2cOjQIaytrfW2PX78eJ4+fcr777+PhYUFP/30EwMHDqRChQo0adIk0+8kJSWFDh06sG/fPrp27cro0aMJCwtj3rx57Nixg0OHDlGlShWaNWvGypUr+fDDD3F1deXzzz8HoEaNGpluPyNXrlwB0DX5z8lv43ndu3dn3759vPfeewQEBJCQkMDly5cJCgrSxbpq1Sr69+9P06ZNmTRpEjY2NoSHh7Njxw4iIiJ0311Of6fu7u5MmDCByMhIfvjhBzp27EhoaCj29vaZxn7mzBk2bdrEG2+8QdmyZUlKSmL79u18+umnXL9+nZ9//jnNOln9zseMGcOsWbNo1KgRI0aMIDo6mqlTp1KqVKlMY8qKF7/DrP52S5cujZ+fH7t379YlcykpKezfvx8TExN2797Np59+CmhaGB06dIiePXvq9nvz5k0aNWpEUlIS77zzDuXLl+fatWvMnz+fvXv3cvz4cRwdHfVizerfaXYkJSXx/fff0717d7p27YqNjQ1Hjx5l8eLF/Pvvv5w4cULX7adly5YsX76cJ0+eYGNjA8CePXswMTFh//79JCUl6cru2bMHHx+fNMex7LK0tKR///5MnjyZv//+O9Nj9cv+fqpUqcLKlSvp168fTZs25d133wU0Nxmet2nTJubMmcMHH3zA+++/j4ODw0vj7N+/P6ampnzyySfExcXx888/06FDB7Zt20bbtm2z/b4///xzXFxc+OOPP5g5c6bu99m4ceMM18mv425wcDCdOnWievXqfPrppzg5OXHnzh327t3L5cuXqVq1arbfnxCiiFCEEKIQcXFxUezt7bNcPiUlRfHx8VHs7e2V8PBwveXt27dXAOXAgQO65QMGDFAAZcSIEXrb+eijjxRA8fb2VuLi4nTLT58+rQDK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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.stats import poisson\n", + "\n", + "# Parameters\n", + "mean_poisson = 11\n", + "alpha_power_law = 2.1\n", + "x_values = np.arange(1, 1000)\n", + "\n", + "# Poisson Distribution\n", + "poisson_pmf = poisson.pmf(x_values, mean_poisson)\n", + "\n", + "# Power Law Distribution\n", + "power_law_pdf = x_values ** (-alpha_power_law)\n", + "# Normalize power-law PDF to make it a valid probability distribution\n", + "power_law_pdf /= np.sum(power_law_pdf)\n", + "\n", + "# Plotting\n", + "\n", + "fig, ax = plt.subplots(1,2, figsize=(12,4))\n", + "\n", + "ax[0].plot(x_values, poisson_pmf, label='Poisson Distribution (mean=11)')\n", + "ax[0].plot(x_values, power_law_pdf, label='Power Law Distribution (α=-2.1)')\n", + "ax[0].set_xlim([0,50])\n", + "ax[0].set_ylim([0,0.15])\n", + "ax[0].set_xlabel('x')\n", + "ax[0].set_ylabel(r'$p_k$')\n", + "fig.suptitle('Comparison of Poisson and Power Law Distributions')\n", + "ax[0].legend(frameon=False)\n", + "ax[1].loglog(x_values, poisson_pmf, label=\"poisson\")\n", + "ax[1].loglog(x_values, power_law_pdf, label=\"powerlaw\")\n", + "ax[1].set_ylim([1e-6, 1])\n", + "ax[1].set_xlabel('x')\n", + "ax[1].set_ylabel(r'$p_k$')\n", + "ax[1].legend(frameon=False);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### load sample graphs of the book" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Actor', 'Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW']\n" + ] + } + ], + "source": [ + "from netsci.utils import list_sample_graphs, load_sample_graph\n", + "from netsci.analysis import graph_info\n", + "\n", + "nets = list(list_sample_graphs().keys())\n", + "print(nets)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : True\n", + "Number of nodes : 23133\n", + "Number of edges : 93439\n", + "Average degree : 8.0784\n", + "Connectivity : disconnected\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiYAAAGACAYAAACZY6koAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBBUlEQVR4nO3df3SU5Z3//+fMxISEAAGjGJkwEJOKAX+ABCEq5rDrqlupPbXoYsWg0aQVpKy6/R48e7T1Y0G7tbho2iUyXf2gi9IfW49YP2olgjVQghJFUEkoSTMQbUAhRH6EzNzfP+7MJJNMkplkJvMjr8c5OXHu+7rv+z3DLfPmuq/rfVkMwzAQERERiQHWaAcgIiIi4qXERERERGKGEhMRERGJGUpMREREJGYoMREREZGYocREREREYoYSExEREYkZSkxEREQkZiRFO4B44vF4OHToEKNGjcJisUQ7HBERkbhhGAbHjx/n/PPPx2rtvV9EiUkIDh06RHZ2drTDEBERiVuNjY3Y7fZe9ysxCUJ5eTnl5eW0t7cD5oc6evToKEclIiISP1paWsjOzmbUqFF9trNorZzgtbS0MGbMGI4dO6bEREREJATBfodq8KuIiIjEDCUmIiIiEjOUmIiIiEjM0ODXIHgHv7rd7miHIiIiQ8wwDNrb2/Ud0A+bzUZSUtKgy2lo8GsINPhVRGR4aWtro6mpiRMnTkQ7lLiQlpZGVlYWycnJPfYF+x2qHhMREZEAPB4PBw4cwGazcf7555OcnKzimr0wDIO2tjaam5s5cOAAeXl5fRZR64sSExERkQDa2trweDxkZ2eTlpYW7XBiXmpqKmeddRYNDQ20tbUxYsSIAZ1Hg19FRET6MNB/+Q9H4fis9GlHm8sFlZXmbxERkWFOiUkQysvLyc/Pp6CgILwndjpxTSykct6juCYWgtMZ3vOLiIjEGSUmQViyZAl79+6luro6fCd1uXDesx2HcYB5VOIwDuC8Z7t6TkREZFhTYhIlrqq/UWr8Fx5sAHiwUWb8Cte2xihHJiIiieKBBx5g/vz50Q4jJEpMoqSWPF9S4uUmiTpyoxSRiIgkmpqaGi677LJohxESJSZRkld4DlaLx2+bzeohd845UYpIREQSzYcffsj06dOjHUZIlJhEid0OFc9asdnMwrs2m8HaCit2e5QDExGRyBjiWZiNjY0cOXLE12Ny9OhR5s+fT2FhIU1NTUMSw0AoMYmikhKor7dQWWn+LimJdkQiIhIRTic4HDBvnvl7CGZh1tTUMGbMGCZPnszu3bspKCggKyuLd955h6ysrIhff6CUmAQhYtOFMXtOiopQT4mISKJyuaC0FDwdj+89Higri3jPSU1NDZdeeikbNmxg7ty5PPjgg1RUVPjWsfnTn/7E6tWrIxrDQGgRvxBoET8RkeHj1KlTHDhwgMmTJw+4vDpgPr6ZNy/w9qKigZ+3HzfffDOVlZUAbNq0icLCwohdy6uvzyzY71D1mEjEuKqbqPzFLlzVsfssU0Qk4vLyoHupdpsNciM7C7Ompoabb76ZU6dOcfTo0R77b7jhBj755BNuuOEGHnnkEWbPno3D4WDv3r0Rjas/SkwkIpyL38Ux61zmPTAdx6xzcS5+N9ohiYhEh90OFRVmMgLm77VrI/oM//jx4xw4cIB7772XX/7ylyxcuJA9e/b4tamtrSUvL4+PP/6YyZMns337du655x5effXViMUVDK0uLGHnqm6i9PlC/+Jxz8/huiVN2Atid8CViEjElJTAdddBXZ3ZUxLhgYU1NTXYbDby8/OZPn06e/bsYf78+ezYsYPMzEyOHTtGeno6X3/9NWeddRaLFy8GIDk5mTFjxkQ0tv6ox0TCrvbdzwMXj3vviyhFJCISA4ZwtsOHH37IlClTSElJAeCJJ54gPz+f73znO7S1tfHxxx8zdepUPv74Y2bNmuU7zrs9mtRjImGXd/V5WHH7JSc22sm9cnwUoxIRGT6WLl3K0qVLfa+tViubNm3yvf7444+ZNm0aH3/8MRdffLFv++7du5k2bdqQxtqdekwk7OwFWVQUV2GjHTCTkrXF2/QYR0QkRuzZs4dp06axZ88eX2LS3t5Oa2srGRkZUY1N04VDoOnCoXFVN1H33hfkXjleSYmIxJ2wTRceRsIxXViPciRi7AVZSkhERCQkepQThEhWfhUREZFOSkyCsGTJEvbu3Ut1dXW0QxEREUloSkxEREQkZigxkYSmsvgiIvFFiYkkLJXFFxGJP0pMJCH1VhZfPSciIrFNiYkkJJXFFxGJT0pMJCF5y+J3pbL4IiKxT4mJJCSVxRcRiU+q/CoJq+S5q7luSdey+FdHOyQRkSH1wAMPsG/fPl599dVohxI0JSaS0FQWX0SGs5qaGgoLC6MdRkj0KEdERCRBffjhh0yfPj3aYYREiYmIiEgCamxs5MiRI1x22WUAHD16lPnz51NYWEhTU+yWTlBiEgQt4iciIoPlckFlpfl7KNTU1DBmzBgmT57M7t27KSgoICsri3feeYesrNh9xK3EJAhaxE9ERAbD6QSHA+bNM387nZG/Zk1NDZdeeikbNmxg7ty5PPjgg1RUVJCcnDyg8/31r38dkkG0SkxEREQiyOWC0lLweMzXHg+UlUW+56Smpobdu3ezdOlSXnvtNcrKygZ1vtdff51PP/00TNH1TomJyEANdb+siMSl2trOpMTL7Ya6ushet6amhptvvplTp05x9OjRHvt3797NnDlzmDZtGjfffDNtbW1ccsklfPXVVwC89957FBcXA7Blyxb+/d//nWeffZbp06dz8uTJiMWtxERkIJxOXBMLqZz3KK6JhUPTLysicSkvD6zdvm1tNsjNjdw1jx8/zoEDB7j33nv55S9/ycKFC9mzZ49v/6lTp1i4cCHPP/88H3/8MZmZmbz00ku0trYyduxYAD766COmTp0KwDXXXMO0adN4++232bVrF6mpqRGLXYmJSKhcLpz3bMdhHGAelTiMAzjv2a6eExEJyG6HigozGQHz99q15vZIqampwWazkZ+fz+LFiyktLWX+/PkcPnwYgD/84Q9cf/31fOMb3wBgypQpNDY2+l6Df2IC4HK5yM7OjlzQHZSYiITIVfU3So3/8l+52PgVrm2NUY5MRGJVSQnU15tPf+vrzdeR9OGHHzJlyhRSUlIAeOKJJ8jPz+c73/kObW1tfPLJJ1x00UW+9nv27MFutzNt2jTftp07d/peu1wuJkyYENmgO6jyq0iIaskLvHIxuUTwH0AiEufs9sj2knS1dOlSli5d6ntttVrZtGmT73VWVpZvIOsHH3zAjh07mD59uu8RzdatW/nss8+YOHEiAAcOHOD8888fktiVmIiEKK/wHKwWDx6js8PRZvWQO+ecKEYlIhK8RYsWccstt3DxxRczduxYNm7cSEpKCvPnz2f//v3k5uZy0UUXYbFYAJg2bRq1tbVcfPHF/OY3v2HKlCkRi81iGIYRsbMnmJaWFsaMGcOxY8cYPXp0tMORKHI6oazMwO22YLMZrF1riXjXrIgMrVOnTnHgwAEmT57MiBEjoh1OXOjrMwv2O1Q9JiIDUFIC111noa4OcnMtQ9Y9KyKS6JSYiAzQUD4vFhEZLjQrR0RERGKGEhORKFMBWRGRTkpMRKIoGgt7iYjEsmGVmNx7771kZ2czevRoJkyYwPLly2lra4t2WDJMRWthLxEJjaf7QjfSq3B8VsNq8OvSpUv5j//4D0aOHElzczO33HILK1eu5Mc//nG0Q5NhqK+FvTSoViT6kpOTsVqtHDp0iHPOOYfk5GRfXQ/xZxgGbW1tNDc3Y7VaSU5OHvC5hlVikp+f7/tvq9VKUlIStbW1UYxIhrO89CasnOtXRdZGO7kjm4Gs6AUmIoD5PTF58mSampo4dOhQtMOJC2lpaUycOBFr91ULQxCTicmqVav44IMPeP/99zlw4AAOh4P6+vpe22/YsIGf//zn7N27l5EjR3Lttdfy+OOP43A4erR9/PHH+elPf0prayvjxo3jj3/8YwTfiUjv7K2fUsG/U8Za3CRho521lGH/ehFKTERiQ3JyMhMnTqS9vR232x3tcGKazWYjKSlp0L1KMVn51WKxMG7cOGbMmMH777/P6NGje01MnnnmGe677z6uvPJKbr/9dg4fPsxTTz1FSkoK1dXVvdb2/+STT3jhhRf4wQ9+gD3IfnNVfpWwcrnA4cDlyaKOXHKpw2773FzhS89yRCTBxHXl1/3795OTkwOY9flbW1sDtjty5AgrVqxgxowZvPPOOyQlmW/n+uuvZ9asWTz88MOsW7cu4LEXXXQRl156KYsWLaKysjIyb0SkLx1rodvLyrC7Dw7NWugiIjEuJmfleJOS/rzyyiu0traybNkyX1ICMHPmTObOncvGjRv7nHXjdrvZt2/foOMVGbDBrIWuAigikoBiMjEJ1o4dOwAoLCzssa+wsJDjx4/7lnU+duwYzz33HEePHsUwDHbv3s3/+T//hxtuuKHX858+fZqWlha/H5Gws9uhqCi0nhIVQBGRBBXXicnBgwcBAo4R8W5zdfxr0mKx8MILL5CTk8OoUaO46aabuPHGG1mzZk2v51+1ahVjxozx/WRnZ0fgXYiEqKMAisuTRSVFuDxZKoAiIgkjJseYBOvEiRMApKSk9NjnXW7Z22b06NH86U9/Cun8K1as4P777/e9bmlpUXIi0Vdbi9OzmFIq8GDDipsKdyklKoAiIgkgrhOTtLQ0wHzkkpqa6rfv5MmTfm0GIiUlJWDSIxJNrvQpvqQEwIONMtZy3chmlJaISLyL60c5EyZMADof13TV12MekXhW25rlV5QNwE0SdV+r9omIxL+4TkwKCgoAqKqq6rGvqqqK9PR0pkyZMujrlJeXk5+f77ueSDTl5UH3ooo2G+TmRiceEZFwiuvE5KabbiItLY01a9bQ3t7u275z5062bt3KLbfcMqh6/V5Llixh7969VFdXD/pcIoPVUf4EW0enicqfiEgiickxJuvXr6ehoQGA5uZm2traeOyxxwDIyMhg6dKlAGRmZrJy5UqWL19OUVERixYt4vDhw6xevZrx48fz6KOPRu09iERSSQlcd5254F9urpISEUkcMVmSvqioiC1btgTcF2jdnBdffJEnn3ySTz75hLS0NK699lpWrVrF5MmTwxqXStKLiIgMTLDfoTGZmMSa8vJyysvLfZVilZhIXHK5oLbWHKSiLhYRGWJKTCJAPSYSt5xOKC0Fj8ccOVtREVr5exGRQQr2OzSuB7+KSBBUKVZE4ogSE5FE11Ep1kED86jEQQNOd7E5clZEJMYoMQmC6phIPOutUqxr5IVRjkxEpCclJkFQHROJZ6oUKyLxRImJSIJTpVgRiSdKTEQSnCrFikg8icnKryISXqFWilXJExGJFvWYBEGDXyUR2O1QVNR/ouF0gsNhMG+e+dvpHJLwREQAFVgLiQqsSaJzucAx0YPH6Pw3i83qob7Bqp4TERkUFVgTkZDVVjX7JSUAbo+Vum3NUYpIRIYbJSYi4pNHLVbcfttstJOLirGJyNBQYiIiPvbCiVRYvo+NdsBMStZafoB9TnaUIxOR4UKJiYh0stspeXY29dYLqKSIeusFlDw7W1NzRGTIaLpwEMrLyykvL8ftdvffWCTelZRgv+467MHOLRYRCSPNygmBZuWIiIgMjGbliEjEuaqbqPzFLlzVTdEORUQShBITERkQ5+J3ccw6l3kPTMcx61yci9+NdkgikgCUmIhIyFzVTZQ+X+hbtdiDjbLn56jnREQGTYmJiISs9t3PfUmJl5sk6t77IkoRiUiiUGIiIiHLu/q8wIXYrhwfpYhEJFEoMRGRkNkLsqgorvIvxFa8DXtBVpQjE5F4p+nCQehax2Tfvn2aLizSwVXdRN17X5B75XglJSLSp2CnCysxCYHqmIiIiAyM6piISNS5XFBZaf4WEQmGEhMRiQinExwOmDfP/O10RjsiEYkHSkxEJOxcLigtBY/HfO3xQFmZek5EpH9KTEQk7GprO5MSL7cb6uqiE4+IxA8lJiISdnnpTYHrnIxUZVgR6ZsSExEJO3vrp1RQ6l/nhDLsX38W5chEJNYlRTsAEUlAeXmUWJ/jOs8b1JFLLnXYbZ9D7k+iHZmIxDj1mAShvLyc/Px8CgoKoh2KSHyw26GiArvtc4rYYiYla9ea20VE+qACayFQgTWRELlc5ojX3NyASYmruonadz8n7+rzVDlWJMEF+x2qRzkiEjl2e6+9JM7F71L6fCEesrDipqL4XUqeu3qIAxSRWKNHOSIy5FzVTR1JiQ0ADzbKnp+Dq1qzdkSGOyUmIjLkat/93JeUeLlJou69L6IUkYjECiUmIjLk8q4+L3CdkyvHRykiEYkVSkxEZMjZC7KoKK7yr3NSvE0DYEVEs3JCoVk5IuHlqm6i7r0vyL1yfI+kxOUyS9vn5WmWsUgi0KwcEYl59oKsgL0kTmfnIoBWK1RUQEmJuU8Ji0hi06McEYkpfa1M7HSCwwHz5pm/nc7oxioi4afERERiSm8rE2/b1nvCIiKJQ4mJiMSU3lYmNg4fCZiw1NUNYXAiEnFKTEQkpvS2MnFh5j6s3f7GstnMavcikjiUmARBi/iJDKGOlYnrmUQlRdQziRLb89jnZFNRYSYjYP7WuoAiiUfThUOg6cIiQ8TpNAeQuN2dGUjHtJx+1gUUkRgV7HeoEpMQKDERGULKQEQSiuqYiEh8621lYhUyEUloGmMiIvGjj0ImruomKn+xSysUi8Q5JSYiEh/6qLzmXPwujlnnMu+B6ThmnYtz8bvRjVVEBkyJiYjEh14qr7k21VD6fCEezOk6HmyUPT9HPScicUqJiYjEh7w8AhUyqT000peUeLlJou69L4YwOBEJFyUmIhIf7HYCFTLJmz8lYKXY3CvHRyFIERksJSYiEj9KSqC+Hiorzd8lJdgLsqgorvKvFFu8DXtBFi6X2VTr6YjED9UxCYHqmIjELld1E3XvfUHuleOxF2ThdHaOlbVazc6WjhptIhIFKrAWAUpMROKDy2XOJu46VtZmMztZVPpEJDqC/Q7VoxwRSTi9TODRSsQicUCJiYgknLz0psADYkd2TCHW4BORmKXEREQSjr31Uyoo9R8QSxn2rz/rs3qsiETfsElMTp8+zT333ENOTg7p6enk5eXx1FNPRTssEYmEvDxKrM9RzyQqKaKeSZTYnoeRI6G0FJcni0qKcHmyfNVjRSQ2DJvEpL29nfPOO48333yT48eP8/LLL/PTn/6Ul19+OdqhiUi4ddQ8sds+p4gt2G2fw9q10NqK07MYBw3MoxIHDTjdxRp8IhJDhvWsnDvuuIOMjAzWrFkTVHvNyhGJMy6XmXTk5oLdjqu6Ccesc/0qxdpop35HM/aCrCgGKpL44npWzqpVq1iwYAE5OTlYLBYmTZrUZ/sNGzZw+eWXk5qaSmZmJgsXLqShoaHPY9rb29m2bRuXXHJJGCMXkZhit0NRkW+OcG1rVuDy9V8rKRGJFTGZmDz00ENs3ryZCy64gLFjx/bZ9plnnuG2224jNTWV1atXs3z5ct566y0KCws5dOhQr8ctXbqUjIwM7rjjjnCHLyIxqpfldsjNjU48ItJTUrQDCGT//v3k5OQAMG3aNFpbWwO2O3LkCCtWrGDGjBm88847JCWZb+f6669n1qxZPPzww6xbt67Hcffffz9VVVVs3ryZ5OTkyL0REYkp3uV2ysrMuiYdy+2o6JpIDInJHhNvUtKfV155hdbWVpYtW+ZLSgBmzpzJ3Llz2bhxI21tbX7HLF++nDfffJO3336bzMzMsMYtIrEvwHI7AcuaqNSJSHTEZI9JsHbs2AFAYWFhj32FhYVs2bKFTz/91DeOZNmyZWzevJnNmzdzzjnn9Hv+06dPc/r0ad/rlpaWMEUuItFkt3f2kgRaUwe0zo5ItMRkj0mwDh48CIA9QD+sd5ur4587DQ0NPP3009TV1flqmaSnp3PDDTf0ev5Vq1YxZswY3092dnYE3oWIRIvL1ZmAgPm7tLTnNpU6ERk6cd1jcuLECQBSUlJ67BsxYoRfG4fDQagzo1esWMH999/ve93S0qLkRCSBBFpTp/tr6FxnR2NRRCIvrhOTtLQ0wHzkkpqa6rfv5MmTfm0GIiUlJWDSIyKJwTtLp2syYrUChoHHsPi22awecnPjuoNZJG7E9f9pEyZMADof13TV12MeERHonKVjs5m9qTabQcUTX/ZcZ8cow46e5YgMhbhOTAoKCgCoqqrqsa+qqor09HSmTJky6OuUl5eTn5/vu56IJI4SnNR7HOaaOh4HJV+sosRY57/OjrFOZetFhsigStJ/9NFH/VZOXb9+PYsWLRroJXx1TOrr63vsO3z4MA6HgylTpvCXv/zFN2V4586dzJo1izvvvBNnGFcOVUl6kQTjcpkrDPd4loP/NpsN17ZGaluzyMvTWBORgQj2O3RQY0xuuOEGtm/f3uuA0Jdeeom77ror5MRk/fr1vpLyzc3NtLW18dhjjwGQkZHB0qVLAcjMzGTlypUsX76coqIiFi1axOHDh1m9ejXjx4/n0UcfHcS7E5GE19vo1wcfhNWrfVXYnLdXUjo7S9OHRYbAoHpMLrroIiwWC++9916P0vG//e1vWbhwIddddx2bNm0K6bxFRUVs2bIl4D6Hw9Gj9+TFF1/kySef5JNPPiEtLY1rr72WVatWMXny5JCu2x/1mIgkmEA9JjabWXkNoK4O18gLcXQkJd2bqOdEJHjBfocOKjFpaGhgzpw55OTk8Pbbb/tmsLzyyissWLCAoqIiNm3aFPdl38vLyykvL8ftdrNv3z4lJiKJxOnsWaO+S3dIZSXMm9fzsMpKc31AEQnOkCQmADU1NVxzzTXMmzeP3//+97z++ut85zvfYc6cObz++uu+eiKJQD0mIgnK5TIHt+bm9ugG6atTRT0mIsEL9jt00LNyLrvsMn73u9/xxz/+kRtvvJHvfve7zJw5k02bNiVUUiIiCcxuN7s/AlaR9k4pNl9r4T+RyBp0j4nXiy++yB133MGsWbN46623SE9PD8dpY4p6TESGL1d1E3V//pzcq87DXpCFy2WOndUsHZHgRGRWzrxAD1q7GDlyJGfOnOFb3/qWb5vFYuHtt98O5TIxp+sYExEZhpxO7KWl2Dum5TgXvUPp+qs1S0ckAkLqMZk0aRIWi6X/ht0cOHAg5GNikXpMRIahboNMXEzAQQMebL4mGnMi0r+I9JgEKnImIpLQutU6qSXPLykBLfInEk5hWcTv5MmTVFZWsn//fiwWCxdccAFFRUU9FtYTEYk73Vb6y6MWK+4ePSYjR5pTiDXmRGRwBp2Y/Pd//zcPPPAAx44dw/tUyGKxkJGRwZNPPsnixYsHewkRkejxTsvpqHVit31Oxe1VlL1wFW63BZvN4PbbLcyejcaciITBoGblbNiwge9973tMnDiR73//++Tn52MYBnv37uW//uu/cLlc/M///A+33nprOGMeciqwJiJ+tU7eeAPXPT+hzshhJCeYbdmOx+isvqAxJyI9DUmBtUsuuYT29na2b9/e4yLHjh3jiiuuIDk5mY8++migl4gpGvwqIt0Hw1ZSxDwqezRTZVgRf0NSYG3fvn3ceeedAS8wZswY7rzzTmprawdzCRGR2NJtMKx3zElXNtrJba0xsxOXa4gDFIlvg0pMzjvvPPrqcLFarYwfP34wlxARiS3ewbAd7BykglJstANmUrKWMuzfmmEusuNwmOvxiEhQBpWYLF68mOeee47W1tYe+1paWvj1r3/NnXfeOZhLiIjElu416q1WSiz/TT2TqKSIeiZRwq/B+482j8ccOKueE5GgDGpWztVXX82mTZu4+OKLuffee5kyZQoWi4W9e/fyq1/9iszMTK6++mq2bt3qd9zcuXMHFbSISFSVlMB11/kNhrWXlWF3H+yYWtytvdsN27ZBZqbZ4wKqZy/Si0ENfrVa/TtcvFVhu56ya6VYwzCwWCxxV9pds3JEpF/eWTsjR+KbO+xlsZg/Ho/5G8weFc0tlmFkSGblPP/88wM6rri4eKCXjCrNyhGRoDidvronWK1mEtLbX7WaWyzDxJAkJsONEhMRCZaruonaP39B3ohG7Pd+q+/Gv/gFLFig5EQS2pBMFxYRkZ6cTnDMzmLe/ZfhWHojTsvdfR9w//2avSPSQT0mIVCPiYj0p1v9NQBsVg/bjDm0GmnkWfZjxxX40Y4e60gCU4+JiEgUdKu/BoDbY+UKtjOPShyWBpw/O2w+vunOu0yxyDCmxEREJIy61V/zMQxzNo7HY6H0/xvHxhF34LJk42IClRThYoLZY5KbO8QRi8QWJSYiImEUoP5aDx4P3Hrv2UykgYn8zexJoQHn7ZV6jCPDnhKTIJSXl5Ofn09BQUG0QxGROFBSYg4VqayE7dsDJydg9qIYHX8Ne7BR9sJVuDZWqUqsDGsa/BoCDX4VkYHoWtakP5UUUWR9V4XXJOFo8KuISIzw9qBs3Nh77wmAlXb+zrm4PFlaX0eGLSUmIiJDwG43a6h1H3/irVBvwY2BlVvZaI43cRdrho4MS0pMRESGUNfxJw0N8Le/wcZfHcEC/uNNWItr5IVRjVUkGga1urCIiITObveffJN54dk9FyQmibqvs9AcHRlu1GMiIhJlgWqf9FrSxOUyu1s0/kQSlBITEZEo6177xGaDtWsDlDRxOs169/PmaW0dSViaLhwCTRcWkUhyuczxrrm5AZKSgIvwaG0diR/BfodqjEkQysvLKS8vxx1MEQIRkQHqPvbET8BFeDrW1lFiIglEPSYhUI+JiESNekwkzqnAmohIPOs6yNXlMntMnngiiIEoIvFNj3JERGKN0wmlpWbviLcCm2GYU3cefxwKCnoZiCIS//QoJwR6lCMiERfokU1XenwjcUqPckRE4lGgQa5deQe8iiQoJSYiIrEkQLU1FxOopAgXE/wrr6nYmiQgJSYiIrGkW7U1p+VuHDQwj0pzcb/bK802KrYmCUpjTEKgMSYiMmRcLlzbGnH8y2w8Hotvs80G9duasM+2a+qwxBWNMRERiWd2O7WZc/ySEugYYvLnz3svttaFnvRIPFJiIiISo3pd3O+q8/pd9U9PeiReKTEREYlRvS7uV5DV56p/LldnGRQwf5eVqedE4oMKrImIxLCSErjuugCL+/W6Q8vqSHxTYiIiEuN6Xdyvlx3eR0Ddx8Z2edIjErP0KCcI5eXl5OfnU1BQEO1QRGSYC2ZAa+cjIHPSpc1maFkdiRtKTIKwZMkS9u7dS3V1dbRDEZFhLJQBrSU4qfc4qKSIeo+DEjT6VeKD6piEQHVMRCRaAi2hY7PB//wPFBZ26w3prfG2bdDaaj7rUfeJDDHVMRERSSC9DWi99dYAvSe9NZ49W/OHJeYpMRERiUHdx5IEqmni1WM6cG+NA8wfVhE2iTVKTEREYkygsSTda5p051f4tXvjQEmK243zP1tVhE1ijsaYhEBjTEQk0nobHuJdBsflMoeK3HordP3bO+BSOS6Xma2MHAmzZ+PyZFFLHnnUgtWGg/qe6/B0P4dImGiMiYhIHOqrOBqYScOCBfDss70Wfu1kt0NRERQU4Fz0jt8qxf/5j68GXoenDpGoUo9JCNRjIiKR1l+PSfe2AQq/BnVO79MdLVAsQ0U9JiIicajX9XECJAveDpH+EolAvTAeD9x/f3DXERlK6jEJgXpMRGSoBNsbEuy5euuFgfBdR6QvwX6Haq0cEZEY1Ov6OL1wucyekfSvv6B13yHyrj7PXIWYzl6YsjJzHEn33hElJBJLlJiIiMQ5pxNKS709IucC47HipqL4XUqeuxroczFikZiiRzkh0KMcEYk1gR7TeNlop35HM/Yst9md0lGK3tu74leZPuBGkfDR4NcANm7cyFVXXUV6ejqTJk2KdjgiIoMWaGCrl5sk6n7+B79qbc7F7/YsqhbK6oAiETasekzeeustvvzySw4ePMiaNWuo9478CpJ6TEQk1vTbY2LJwW40mm2ZgIMGPHSWj7XZDOo9Dl+bjo2aNyxhpx6TAK699lpuvfVWJk6cGO1QRETConN6sfffmOZvG+2sve73fglHLXl+SQmA222hzsih20ZVWpOoicnEZNWqVSxYsICcnBwsFku/j102bNjA5ZdfTmpqKpmZmSxcuJCGhoahCVZEJMpKcFLvcVBJETuYReUtv6J+RzMl6wr91snJoxYrbr9jbbSTS7ckxGYzR8iKREFMJiYPPfQQmzdv5oILLmDs2LF9tn3mmWe47bbbSE1NZfXq1Sxfvpy33nqLwsJCDh06NEQRi4hEicsFpaXYjUaK2EIBOyn63X3mgNdu1drsts+poAwb7UBHrwpl2DnYeT6rVZXWJKpicrrw/v37yckxuxanTZtGa2trwHZHjhxhxYoVzJgxg3feeYekJPPtXH/99cyaNYuHH36YdevWDVncIiJDrq/Fdex2/3nCf/87JbfeynX8P+rIJZc6/6QE4KWXzMV4RKIkJntMvElJf1555RVaW1tZtmyZLykBmDlzJnPnzmXjxo20tbVFKkwRkejLy/N7XAP0fBTjrV1faD7asXOQIrb0TEpsNpgzJ+Ihi/QlJhOTYO3YsQOAwsLCHvsKCws5fvw4n376qW+b2+3m1KlTnDlzBsMwOHXqFKdPn+71/KdPn6alpcXvR0QkpoS6uE7XthZLZ1KjxXIkRsTko5xgHTxoZvv2AP8jebe5XC4uueQSANavX8+dd97pa5OamorD4eh12vCqVav4yU9+EuaoRUTCLJSyrt3bgsrBSkyJ68TkxIkTAKSkpPTYN2LECL82AIsXL2bx4sVBn3/FihXcf//9vtctLS1kZ2cPMFoRkQjqY3GdHkVdu7ftKyHpONiVPoXa1qzAhWFVNVbCKK4f5aSlpQEEfBxz8uRJvzYDkZKSwujRo/1+RETiyaCKunYc7Jz3Ao5Z5wY+h6rGSpjFdWIyYcIEwHxc011fj3lERIaDjpnEvkk7Ho+5wnCAvzJ7PdjlyaKUCl9hNr9zDOoCIoHFdWJSUFAAQFVVVY99VVVVpKenM2XKlEFfp7y8nPz8fN/1RETiQV8ziYM9OHC12I5zDOoCIoHFdWJy0003kZaWxpo1a2hvb/dt37lzJ1u3buWWW24hOTl50NdZsmQJe/fupbq6etDnEhEZKsHMJO7O5YLKSqhuOJdKyzzSae1ZLdZ7joFcQKQfMTn4df369b6S8s3NzbS1tfHYY48BkJGRwdKlSwHIzMxk5cqVLF++nKKiIhYtWsThw4dZvXo148eP59FHH43aexARiTbv7OCyMrMjo78ZwU5n1ycz+cDbWHGziP/LCyzCTZJZLfb2bdjtVwMhXkAkCDG5unBRURFbtmwJuC/Q9N4XX3yRJ598kk8++YS0tDSuvfZaVq1axeTJk8Mal1YXFpF45HL1PyO4v1WKtzGHrxlpVou1fe6/+nAwF5BhL9jv0JhMTGJNeXk55eXluN1u9u3bp8RERBJOZaU5sabX/RRRxBb/A4qKIh6XJI5gE5O4HmMyVDTGREQSXaDhIl5W3Izk684NAxxH4h2/okk70hclJiIi0qNaPRi+3x5szGY7Tu4a8DgSlTuRYOlRTgg0xkREEp13uEhrfTPfuisTw7D49tmsBvXbP8dekBXyObuPX7HZ/IepSOLTo5wwUh0TERkuvAsRj3Sc45eUALg9Fuq+Di0pAZU7kdCoxyQE6jERkeEinL0c6jERUI+JiIiEwDcwtboJKiux4/Ibc+IbWkLoI1i7j19RuRPpixITEZFhzm9g6qxzcc57ARwOSnBSX2/mIfX1UMLAR7CWlOB/rpIIvRmJe3qUEwI9yhGRRBPwMQvt1DPJv5CansfIIOlRThhp8KuIJKqAA1NJoo5c/xGqGsEqQ0Q9JiFQj4mIJBr1mMhQUY+JiIj0q8fAVNpZS5mZlHQdoaoRrDJE1GMSAvWYiEii8q3DN7IJ+9ef9b4gn7fhyJHQ2gp5ebiwU1sLeelN2Fs/Nevbg/n4Jy9PyYsAwX+HJg1hTCIiEqPsdm/+kNXx00fDN96A0lLweHBa7qaUtXgMK1bOpYJ/p8Ty32ZbwzAX4Kmo0DQcCZp6TEKgHhMRGfa6jDVxMQEHDXjwLbDTOT6Fg53HaCyKoDEmYaVZOSIiHbrMzqklzy8pgS4zevw2avaOBE89JiFQj4mIDHvqMZEBUo+JiIiEX5fZOXYOUmH5Pjar2YPim9FjOWSOLQHN3pGQqcckBOoxERHp4JvGk4sLe88ZPeDbr6REQLNyREQkkjqn8WCnlxk9SkhkAJSYiIhI0Fwuc/xrejocOGBuKyz0z0G8bQZUzqTrwSEkNgM8TGKQEhMREQmK0+krX+LHYoFnnzVLlXRtY7GY+4MuZ9L14BDqnwzwMIlRGmMSAo0xEZHhKtBSOV1ZrbB9O8ye3XubPifnDHAtHi3hEz80KyeMVMdERIa7QIsLd+XxwJ//3HebPsuZDHD1Yi16nHiUmARhyZIl7N27l+rq6miHIiISFXl5nTOAA7Fa4aqr+m5js3VO2AnqAn0eMKjDJIYpMRERkX51X1y4K4vF3FdQ4N/GYgmhnMkAVy/WoseJR2NMQqAxJiIy3HVdXLi+3tw2Z07PWTneEiYQYjmTrgeHOCtHZVNiW7DfoUpMQqDEREREZGA0+FVERETijuqYiIhIWARTWC1gITSXC6qqzP/uqNbm146e+8MRox75xCYlJiIiMmjBFFYLWAgNJ9xzj9kYwGLBeccWStdfbbazeKgwfmy269jvq+Y2iBhViC12aYxJCDTGRESkp/6Kr9lssG1bz+JrNptBvceB3WjsPBcTcNCAh87pPzbaqWcSdg6aG6xWaGgIeXCsCrFFl8aYhJEKrImI9K6/4mtud+Dia263hTojx/9c5PklJQBukqijS2ESjyfkCmoqxBY/lJgEQQXWRER611/xNZstcPE1m80g1/JX/3NRixW3fzvayaVLBmG1hlxBTYXY4ocSExERGZTuRc4CFVbrXnzN3G7B/uwjfhmD3XKIiuKqznZWD2stP+h8jOOt5hbi8xcVYosfGmMSAo0xERHpXTCF1QIWQnO5zEEo4KvW5teOnvvDEaOSkqGlAmsRoMRERERkYDT4VUREROKOEhMRERGJGUpMREREJGYoMREREZGYocREREREYoYSExEREYkZWsRPREQGprelersvMxxgZWBXdRO1735O3tXnYS/I8h2Sng4HDgBHjlB49mfYJ58Fra240qdQ25rV76rAvoWKO45n8mSqDmR1v7yv3ZEjcPbZg160OLjPRYKixERERELX21K93ZcZ7loqq2NlYOe736D0+UI8ZGHFzaLCfazf/o1ua9mcjYXZPMs9AJRSgYe+VwV2+i1UfDYw22+/d2Fi8F/QuOu+Qa82rCWMB00F1kKgAmsiIvS+VG+gJYS7H2rJxmEc6LZQnwFYAra30g5Y/FcbDrAqsMsFEyf6JxsBz2c12wRqN+jVhrWEcZ9UYC2MtLqwiEgXvS3VG2gJ4e6HGhf0WD24t6QEwENSz9WGA6wKXFvbf1ICZni9tRv0asNawjgslJgEQasLi4h00dtSvYGWEO5+qGV/j9WDzR6TwKy091xtOMCqwHl55uOY/litvbcb9GrDWsI4LJSYiIhIaHpbqrf7EsLdv6StVuzPPmKuHky7eSjtFBfW+g7xa46bCsqooLSzfS+rAtvt5hiRrkmHBQ8WOnswvEM+nn02YGiDX21YSxiHhcaYhEBjTEREuuhtqd7uywwHWBnYVd1E3XtfkHvleN+snLo6GDnSHJLBkSPMOXsf9klJ8PXXuEZeSN3XWf2uCuxbqLjjeCZNYlt9VvfL+9p5Z+UMctHi4D6XYU6rC0eAEhMREZGB0eBXERERiTtKTERERCRmKDERERGRmKHERERERGKGEhMRERGJGUpMREREJGYoMREREZGYocREREREYoYSExEREYkZwyoxaW9v54c//CHjxo0jIyODkpISTp06Fe2wREREpMOwSkxWrlxJZWUlu3fvpra2lr179/KjH/0o2mGJiIhIh2GVmKxbt46HHnqICRMmcM455/DjH/+Y559/Hre7+xLcIiIiEg0xmZisWrWKBQsWkJOTg8ViYdKkSX2237BhA5dffjmpqalkZmaycOFCGhoa/NocPXqUxsZGLrvsMt+2GTNm0NLSQn19ffjfhIiIiIQsJhOThx56iM2bN3PBBRcwduzYPts+88wz3HbbbaSmprJ69WqWL1/OW2+9RWFhIYcOHfK1O378OAAZGRm+bd7/9u4TERGR6EqKdgCB7N+/n5ycHACmTZtGa2trwHZHjhxhxYoVzJgxg3feeYekJPPtXH/99cyaNYuHH36YdevWATBq1CgAjh07xnnnnQeYvShd94mIiEh0xWRi4k1K+vPKK6/Q2trKsmXLfEkJwMyZM5k7dy4bN27kl7/8JcnJyWRkZJCdnU1NTQ0XXnghALt27WLUqFH9PioSEZGBc7mgthby0puwH3jX3FhYaP6urcWVPoXa1izy8sBu73pAHi7sVFV1OaSpiaoXD8Dx4xTObMM+f7p5kMuF69Vd1Dalkzd/CmRldR43uQkOHKDqyIVw9tlMngytB5rJoxZ74cSOi3ZctqqZ9LoaWk8lkTd/CvYsty8Wbzv8Q+zc3C0Ge0GWf/uqzmu6sPsdH/B8XQ/u+iF0O8CF3e/cPU7Q58n7+gMLsn24GTFu6tSphsPhCLivrKzMAIx9+/b12LdixQoDMD788EPftp/85CfGJZdcYhw8eND4+9//bsyZM8e47777go7l2LFjBmAcO3Ys5PchIjIcrVtnGFarYYBhWGk31nGX+QIMw2Ix1nGXYaXd3G81jHXFW30HrLPcbVhw+5qDx++1BbexjhLDKC421lHiO48Ft2HB0+U4d8dP53l88VjuNox168w4Le6e+ykxOoNb1/M9eTevW+cXg5V2871423ec20q7Ucxzna+thlFcHOB8XT9Ai8XvM+t6wDrL3X7n9r6fwH8A3U/e3x9YEO1DEOx3aFwnJjfeeKMBGCdOnOixr7y83ACM1157zbftzJkzxn333WdkZGQYo0ePNu66666Ax3qdOnXKOHbsmO+nsbFRiYmISJAaGzu/47w/Ns4YjUwwDDAameD7Iu++v5EJhqXbvkA/Vs4YO5jZ4zzB/tg4Y+ywzDKsVk+v+73xGjab0bjjUM/3ZPMEjMHGGWPHq58HOHfga3Wez/zsjMZG/6Sk20+vn591onlswD8A78mD/QPro32Igk1MYnLwa7BOnDgBQEpKSo99I0aM8GsDkJSUxJo1a/jqq684duwYTqeT1NTUXs+/atUqxowZ4/vJzs4O8zsQEUlctbXg8fhvc5NEHbnmfvLwYAu4v5Y8jG77AvGQxJ+5ssd5guUmiT8bc/B4LL3u98aL203tn7/o+Z7cloAxuEniz68fD3DuwNfqPB/U1WF+gIbRa7tePz/PZPMEAf8AvCcPdMIQ20dIXCcmaWlpAJw+fbrHvpMnT/q1GYgVK1Zw7Ngx309jY+OAzyUiMtzk5YG127eMjXZyMb/o8qjFijvg/jxqsdB/jSkr7VzFez3OEywb7Vxl2YbVGjgB6BovNht5V43v+Z5sRsAYbLRz1Q2jApy792Sj4zLk5mJ+gJbek5hePz/rAfMEAf8AvCcPdMIQ20dIXCcmEyZMAMDlcvXYd/DgQQDsgxi4k5KSwujRo/1+REQkOHY7VFSY321gfmmupQw7B8FiwW45RAWl2Gg399tgbfE27LbPsXOQZy3fx2Lp/Be8BQMLXV+7qeD7FBRPpYIy33ksuLF0+fI3j+naE2B0xmP5AQXPllJRYcFm9QTcb+dgR3BrsRdk+b8nG6xda6Fg3ff9YrDRztribRTcON7v3DbaKeb/dr62QXFx9/N1jDm12+HZZ/2TE6vVd4Cdg1RYvo/N4vaPt+Jh89gefwBdTx7MH1g/7SPEYhh99BPFAO904UBF0JxOJ3fffTfPPfccxcXFfvuKiop4//33OXLkCMnJyYOKoby8nPLyctxuN/v27ePYsWNKUkREguRymU8Dckc2Ya//s7lxzhzzd10drpEXUvd1Frm5XWbl1NVBbi4u7Gzb1uWQpia2baiH48eZc3kb9hsv65yVs6mGus/Tyf3mhZCV1XncpCaor2fbkW/A2WczaRJ8Xd9MLnXY52T7zcqp29bMyLoP+fp0ErnfvNCcldMRS/dZOT02d4uh+6ycum2d13Rh9zs+4Pm6Htz1Q+h2gAu737kDzsrp9eR9/YEF2T5ILS0tjBkzpt/v0LhOTA4fPozD4WDKlCn85S9/8U0Z3rlzJ7NmzeLOO+/E6XSGLZZgP1QRERHxF+x3aEzWMVm/fr2vpHxzczNtbW089thjgFmtdenSpQBkZmaycuVKli9fTlFREYsWLeLw4cOsXr2a8ePH8+ijj0btPYiIiEjoYrLHpKioiC1btgTc53A4evSevPjiizz55JN88sknpKWlce2117Jq1SomT54c1rjUYyIiIjIwCfMoJxZojImIiMjgKDGJAPWYiIiIDEyw36FxPV1YREREEosSExEREYkZSkyCUF5eTn5+PgUFBdEORUREJKFpjEkINMZERERkYOK6jkms8uZwLS0tUY5EREQkvni/O/vrD1FiEoLjx48DaJVhERGRATp+/Dhjxozpdb8e5YTA4/Fw6NAhRo0ahcVioaCggOrq6j6P6a9NS0sL2dnZNDY2JuTjoWA+o3iOIVznHuh5Qj0ulPbBtu2rne7v+I4h3u7vUI7R/R2ccN5fhmFw/Phxzj//fKzdVzHuQj0mIbBarX6rFdtstn5vxmDaAAm7enGw7z9eYwjXuQd6nlCPC6V9sG2Daaf7Oz5jiLf7O5RjdH8HJ9z3V189JV6alTMIS5YsCUubRBYL7z+SMYTr3AM9T6jHhdI+2Lax8GccLbHw3nV/D+wY3d/Bicb716OcKNNMH0lkur8lken+jgz1mERZSkoKjzzyCCkpKdEORSTsdH9LItP9HRnqMREREZGYoR4TERERiRlKTERERCRmKDGJE+3t7fzwhz9k3LhxZGRkUFJSwqlTp6IdlkhYbNy4kauuuor09HQmTZoU7XBEwub06dPcc8895OTkkJ6eTl5eHk899VS0w4ppSkzixMqVK6msrGT37t3U1tayd+9efvSjH0U7LJGwGDt2LPfddx+PPvpotEMRCav29nbOO+883nzzTY4fP87LL7/MT3/6U15++eVohxazNPg1TkycOJGf/exn/Mu//AsAb7zxBrfccgtffvklNpstytGJhMdvf/tbHnzwQerr66MdikjE3HHHHWRkZLBmzZpohxKT1GMSZqtWrWLBggXk5ORgsVj67ZbesGEDl19+OampqWRmZrJw4UIaGhr82hw9epTGxkYuu+wy37YZM2bQ0tKiv8BlSEXi/haJFUNxf7e3t7Nt2zYuueSSMEaeWJSYhNlDDz3E5s2bueCCCxg7dmyfbZ955hluu+02UlNTWb16NcuXL+ett96isLCQQ4cO+dp5Fw/MyMjwbfP+t3efyFCIxP0tEiuG4v5eunQpGRkZ3HHHHeEOP3EYElb79+/3/ffUqVMNh8MRsN3hw4eN9PR0Y8aMGcaZM2d826urqw2LxWKUlJT4tn311VcGYHz66ae+bX//+98NwKirqwv/mxDpRSTu765+85vf9HpOkUiL9P39r//6r8bFF19sNDc3hzXuRKMekzDLyckJqt0rr7xCa2sry5YtIympcy3FmTNnMnfuXDZu3EhbWxtg9o5kZ2dTU1Pja7dr1y5GjRqlGQwypCJxf4vEikje38uXL+fNN9/k7bffJjMzM6xxJxolJlGyY8cOAAoLC3vsKyws5Pjx43z66ae+bXfffTcrV67k0KFDNDc38+Mf/5jFixdr4KvEpFDvb7fbzalTpzhz5gyGYXDq1ClOnz49ZPGKhCLU+3vZsmX86U9/YvPmzZxzzjlDFme8UmISJQcPHgTAbrf32Ofd5nK5fNseeughrrnmGqZOnUpubi4XXXQRTzzxxNAEKxKiUO/v9evXk5qaym233cbf/vY3UlNTufDCC4cmWJEQhXJ/NzQ08PTTT1NXV+erZZKens4NN9wwdAHHmaT+m0gknDhxAiDg4k8jRozwawOQlJTEmjVrNL1M4kKo9/fixYtZvHjxkMQmMlih3N8OhwNDVTlCoh6TKElLSwMI2F198uRJvzYi8Ub3tyQy3d+RpcQkSiZMmAD4d2d79dVNKBIPdH9LItP9HVlKTKKkoKAAgKqqqh77qqqqSE9PZ8qUKUMdlkhY6P6WRKb7O7KUmETJTTfdRFpaGmvWrKG9vd23fefOnWzdupVbbrmF5OTkKEYoMnC6vyWR6f6OLK2VE2br16/3lSR++umnaWtr44EHHgDMeiRLly71tf3P//xPli9fzpVXXsmiRYs4fPgwq1ev5qyzzmLnzp2+7kKRWKH7WxKZ7u8YEd36bonnmmuuMYCAP4GqCL7wwgvG9OnTjREjRhjjxo0zbr31VuOvf/3r0AcuEgTd35LIdH/HBvWYiIiISMzQGBMRERGJGUpMREREJGYoMREREZGYocREREREYoYSExEREYkZSkxEREQkZigxERERkZihxERERERihhITERERiRlKTERERCRmKDERERGRmKHEREQi4oorruDiiy8edtcWkcFRYiIiYed2u9m9ezeXXXbZsLq2iAyeEhMRCbvPPvuMkydPRiU5iOa1RWTwlJiISNjt2rULgOnTpw+ra4vI4CkxEZGw8yYHXXstWlpaWLBgASkpKTzzzDMJeW0RGbykaAcgIoln165dZGdnM27cOABqampYsGABp0+fZuvWrVxxxRUJeW0RGTz1mIhI2NXU1Ph6LCoqKpgzZw45OTl88MEHEU8MonltERk8JSYiElYNDQ18+eWX5OXl8b3vfY8f/OAH/OhHP+L1118nMzMzYa8tIuGhRzkiElY1NTUAPP3001gsFl577TWuv/76gG1nzZrFI488wje/+c0hv/ZgXXHFFSxbtozvfe97ETm/yHClHhMRCSvv4NN77rmHtrY2Pvzww17b7tixI2xJSajXHgyPx8PHH3+sKckiEaDERETCateuXZx99tmUl5dz1113sWLFCl5++eUe7V599VXy8/MB+N///V8uvvhifv7zn5OTk8OoUaNYsWJFxK7t5XQ6yc/PZ/To0RQUFPD+++8D8Itf/IJvfetbfm0vv/xyNm7cSFNTE+np6Zw8eZIrrriC9PR0tm7dGnKsIhKYEhMRCatdu3b5ehLWrl3LP/zDP1BcXMx7773n1+6DDz7w1RrZtWsXdXV1jB07lk8//ZTNmzfz+OOP88UXX0Tk2gBPPfUUq1ev5ne/+x1Hjx7l9ttv59vf/jYej8cvNoAzZ86wZ88epk+fTlZWFr/+9a+ZMWMGra2ttLa2Mnfu3JDiFJHeKTERkbA5cuQIjY2NvuQgKSmJ3/72t+Tm5nLTTTdRW1vra/vBBx8wY8YMwEwoiouLKSkpITk52deT0t2kSZOwWCyDvvZXX33FI488wvr167nooouwWq3ceeeduFwuDh065BcbwJ49ezjrrLPIzc3tEbuIhJcSExEJm0DFzcaMGcNrr73GWWedxT//8z9z+PBhX9uuicm3v/1t3zEffvgh48ePZ/z48X7nb21t5fzzzx/0tauqqhg3bpxfr8jhw4dJSkpi1KhRfPbZZ36Jh7cnxpsUKTERiRzNyhGRsPnHf/xHDMPosd3hcNDU1OR7ffjwYVwuF9OnT6e5uZmDBw8yc+ZM3/7uj1IAPvroI44cOcKvf/3rQV0boLm52VeAzev3v/89s2fP5rPPPmPMmDFkZ2f79r3++ut+8dTU1LBy5cqAcYjI4KjHRESG3AcffMCkSZPIyMhg165dTJw40a/OSKAeiTfeeINLL72U4uLiQV+/oKCAvXv3Ul1dzZkzZ/jNb37DE088wc9+9jM8Hg/t7e20trYC8NJLL/G73/3Ol5h4PB6OHj066BhEJDAlJiIy5Lo/xunaW+Ld1r3H5N/+7d+oqanBah38X1tTp07l6aef5rvf/S5jx47lqaee4g9/+ANz5sxh1qxZfPOb32Tq1Klcc801fPnll4wZM8YXj9Vq5cEHH+Sf/umfSE9Pp66ubtDxiEgnixGo71NEREQkCtRjIiIiIjFDiYmIiIjEDCUmIiIiEjOUmIiIiEjMUGIiIiIiMUOJiYiIiMQMJSYiIiISM5SYiIiISMxQYiIiIiIxQ4mJiIiIxAwlJiIiIhIz/n8i7RU1F0zk+QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import Counter\n", + "from scipy.stats import poisson\n", + "G_collab = load_sample_graph(\"Collaboration\")\n", + "graph_info(G_collab, quick=True)\n", + "in_degrees = list(dict(G_collab.in_degree()).values())\n", + "out_degrees = list(dict(G_collab.out_degree()).values())\n", + "in_degree_count = Counter(in_degrees)\n", + "out_degree_count = Counter(out_degrees)\n", + "\n", + "k_in, pk_in = zip(*in_degree_count.items())\n", + "k_out, pk_out = zip(*out_degree_count.items())\n", + "\n", + "plt.figure(figsize=(6,4))\n", + "plt.loglog(k_in, pk_in, 'r.', label=r\"$k_{in}$\")\n", + "plt.loglog(k_out, pk_out, 'b.', label=r\"$k_{out}$\")\n", + "plt.legend(frameon=1)\n", + "plt.xlabel(r\"$k_{in}, k_{out}$\")\n", + "plt.ylabel(\"pk\");" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + " α = 3.042, σ = ± 0.327\n", + "Calculating best minimal value for power law fit\n", + " α = 5.496, σ = ± 0.937\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Values less than or equal to 0 in data. Throwing out 0 or negative values\n", + "Values less than or equal to 0 in data. Throwing out 0 or negative values\n" + ] + } + ], + "source": [ + "# find the exponent by fitting a power law by powerlaw package\n", + "import powerlaw\n", + "\n", + "for x in [k_in, k_out]:\n", + " fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting\n", + " print(f\" α = {fit.power_law.alpha:6.3f}, σ = ± {fit.power_law.sigma:6.3f}\") # the exponent" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Generate the powerlaw distribution (bounded)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[0;31mSignature:\u001b[0m \u001b[0mgenerate_power_law_dist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxmin\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "generate power law random numbers p(k) ~ x^(-a) for a>1\n", + "\n", + "Parameters\n", + "-----------\n", + "N:\n", + " is the number of random numbers\n", + "a:\n", + " is the exponent\n", + "xmin:\n", + " is the minimum value of distribution\n", + "\n", + "Returns\n", + "-----------\n", + "value: np.array\n", + " powerlaw distribution\n", + "\u001b[0;31mFile:\u001b[0m ~/git/workshops/netsci/netsci/utils.py\n", + "\u001b[0;31mType:\u001b[0m function" + ] + } + ], + "source": [ + "generate_power_law_dist?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[0;31mSignature:\u001b[0m\n", + "\u001b[0mgenerate_power_law_dist_bounded\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mN\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mxmin\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mxmax\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mseed\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "Generate a power law distribution of floats p(k) ~ x^(-a) for a>1\n", + "which is bounded by xmin and xmax\n", + "\n", + "parameters :\n", + " N: int\n", + " number of samples in powerlaw distribution (pwd).\n", + " a: \n", + " exponent of the pwd.\n", + " xmin: \n", + " min value in pwd.\n", + " xmax: \n", + " max value in pwd.\n", + "\u001b[0;31mFile:\u001b[0m ~/git/workshops/netsci/netsci/utils.py\n", + "\u001b[0;31mType:\u001b[0m function" + ] + } + ], + "source": [ + "generate_power_law_dist_bounded?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "plotting the powerlaw distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_distribution(vrs, N, a, xmin, ax, labelsize=10):\n", + "\n", + " # plotting the PDF estimated from variates\n", + " bin_min, bin_max = np.min(vrs), np.max(vrs)\n", + " bins = 10**(np.linspace(np.log10(bin_min), np.log10(bin_max), 100))\n", + " counts, edges = np.histogram(vrs, bins, density=True)\n", + " centers = (edges[1:] + edges[:-1])/2.\n", + "\n", + " # plotting the expected PDF\n", + " xs = np.linspace(bin_min, bin_max, N)\n", + " expected_pdf = [(a-1) * xmin**(a-1) * x**(-a) for x in xs] # according to eq. 4.12 network science barabasi 2016\n", + " ax.loglog(xs, expected_pdf, color='red', ls='--', label=r\"$x^{-\\gamma}$,\"+ r\"${\\gamma}$=\"+f\"{-a:.2f}\")\n", + " ax.loglog(centers, counts, 'k.', label='data')\n", + " ax.legend(fontsize=labelsize)\n", + " ax.set_xlabel(\"values\")\n", + " ax.set_ylabel(\"PDF\")\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.000035809608483 74.39513593875918\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeMAAAEwCAYAAACE3Rm5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9M0lEQVR4nO3deXhT1bo/8O9OoKUjpRRRSI1AmQtKAYEq0FPFHq4KjwOlcES4Rqg/QawoCBwvozKKyKAeSnsEmUEPzihoI6iMZRKVSosUGtFTytAROiTr90dIaNqkTdqkO2m+n+fpc9u9V3ZWuTm+XWu9612SEEKAiIiIZKOQuwNERETejsGYiIhIZgzGREREMmMwJiIikhmDMRERkcwYjImIiGTGYExERCQzBmMiIiKZNZG7A42RwWDAxYsXERQUBEmS5O4OERHJRAiBwsJCtGnTBgqF7fEvg7ELXLx4EeHh4XJ3g4iI3EROTg5UKpXN+wzGLhAUFATA+I8fHBwsc2+IiEguBQUFCA8PN8cFWxiMXcA0NR0cHMxgTEREtS5ZMoGLiIhIZgzGREREMmMwJiIikhnXjImIHCCEQEVFBfR6vdxdITegVCrRpEmTem9jZTAmIrJTWVkZ/vzzT5SUlMjdFXIj/v7+uOOOO+Dj41PnZzAYewCdTofMzEx07Nixxn1qROQ6BoMB586dg1KpRJs2beDj48OiPl5OCIGysjJcunQJ586dQ8eOHWss7FETBmN3JgRSH3kEE776CgaDAQqFAsnJydBoNHL3jMjrlJWVwWAwIDw8HP7+/nJ3h9yEn58fmjZtivPnz6OsrAzNmjWr03MYjN2Ybs0aTPjySxhu/mwwGDBhwgQEBQUhOjqao2QiGdR15EONlzM+E/xUubHMoCBzIDYxGAwYOXIk1Go1UlNTZekXERE5F0fGbqzj4MFQKBQwGKqGZGNQTkxMRM+ePVFUVMT1ZCIiD8aRsRUVFRV48cUXERoaipCQEGg0Gty4caPB+6FSqZCcnAylUmn1vl6vR//+/REbG8uRMhGRB2MwtmLBggXQarU4deoUMjMz8euvv2LatGmy9EWj0SA7Oxvbt2+3ui5hGjWb1pO3b98OnU7X0N0kokbu559/RocOHfDXX38BAPLy8nDPPfegrKxM5p41DgzGVqSkpGDmzJlo27YtWrVqhTlz5mD9+vWybfJXqVQYMWKExSjZVmDmejIRuUJkZCQSEhKQlpYGAJg7dy5effXVeu2trY/33nsPPXv2NB/IM2DAAOzatcuu17777rto164dmjVrht69e+P777936L4reHQwXrhwIUaMGIH27dtDkiTcddddNbbfsmULevfuDT8/P4SFhWHUqFE4f/68RZtr164hJycH99xzj/laVFQUCgoKkJ2d7fxfwgGmUbJWq8XBgwdtZvCZ1pM5QiYiR/Tu3RuRkZHVvi5evAgA6N69O86cOYOsrCwcPXoUCQkJsvVVpVJh0aJFSE9PR3p6OmJjYzF8+HD88ssvNb5u27ZtSEpKwj//+U8cP34cAwcOxNChQ3HhwgW77ruM8GAARGhoqHjwwQdFixYthFqtttl21apVAoC47777xHvvvSfmz58vWrZsKdq0aSP++OMPc7sLFy4IAOLPP/80XysrKxMAxPHjx+3qV35+vgAg8vPz6/qr2SUlJUUolUoBwOrX9q1bRVpamsjJyXFpP4i8wfXr18Wvv/4qrl+/LndX6mTz5s3C19dX6HQ68zWNRiN69Oghrl27ZtczDh8+LEaNGiVGjBgh0tLSbLbr2LGj6N+/vygpKTFfMxgMol+/fmLq1Kl1/yVq0aJFC5GSklJjm3vvvVc899xzFte6dOkipk+fbtd9a2r6bNgbDzw6GJ89e9b8fffu3W0G47y8PBEYGCiioqJEeXm5+fqRI0eEJElCo9GYr129elUAEBkZGeZrubm5AoDIysqyq18NFYyFECInJ0ds375dKBQKi0AsAUJx83uFQiGWLFnCwExUD54ejA0Gg+jZs6eYOHGiEEKIOXPmCJVKZRGca3P16lURFhYmHn744RrbHTt2TPj6+oo9e/aYr23YsEHcdttt5v8uvvHGGyIgIKDGr3379tnVr4qKCrFlyxbh4+MjfvnlF5vtSktLhVKpFP/5z38srk+ePFkMGjSo1vu2OCMYe/TWpvbt29vV7pNPPkFRUREmT56MJk1u/cp9+vTBoEGDsH37drz77rvw8fFBSEgIwsPDceLECXTu3BkAcPz4cQQFBdU6DS4H03pyQUEBEhMTodfroYAxClcuFmJKQGMVLyIXKC62fU+pBCpXZaqprUIB+PnV3DYgwPH+wXi4/RtvvIEnn3wSbdq0wYoVK/D999+jbdu2dj8jJCQEALBo0aIa2/Xq1Qt33303MjIy8OCDD6KkpAQzZszA/PnzERwcDAB47rnnEB8fX+NzauvbqVOnMGDAANy4cQOBgYHYuXMnunXrZrN9Xl4e9Ho9WrdubXG9devW+Ouvv2q970oeHYztdfjwYQBAdHR0tXvR0dHYu3cvMjIy0LNnTwDAs88+iwULFmDgwIFo2rQp5syZg3HjxtncYlRaWorS0lLzzwUFBS74LWqm0WgQFxeHrKws5ObmYuTIkVbbcX8ykQsEBtq+9z//A3zxxa2fb7sNsHXQxODBwHff3fr5rruAvDzLNkLUtZd45JFH0K1bN8ydOxe7d+9G9+7dHXp9eXk5QkNDERkZWWvbTp064bfffgMALFmyBKGhoRaDgNDQUISGhtb6nE2bNiExMdH8865duzBw4EAAQOfOnXHixAlcu3YNH330EcaOHYu9e/fWGJABVKspLoSwuFbbfVfwimD8xx9/AIDVoGO6ptPpzMF45syZyMvLQ/fu3WEwGPDkk09i8eLFNp+/cOFCzJ071wU9d4xKpYJKpYJOp7NZLAS4tT+Z9a6JvMvXX3+NjIwMq6M/e2RkZJhnDGvTuXNn7Nu3DzqdDkuXLsVnn31mMaBZsGABFixYUOMzdu3ahWHDhqFfv37ma5VHyz4+PoiIiABgnOk8cuQIVqxYgTVr1lh9XlhYGJRKZbVRbm5uLlq3bl3rfVfyimBsOu7M19e32j1TUe/KR6I1adIEK1euxMqVK+16/owZMzBlyhTzzwUFBQgPD69Pl+vFVCzENG1tTeX9yYmJiYiLi+MImaiuiops36s6o5aba7tt1R0STtzBcezYMYwYMQJr1qzB1q1b8X//93/YsWOHQ8/o0aMHPv30U7vadurUCWvXrsX06dMxZMgQxMbGWty3d5raz88PQUFBdr2nEMJilrIqHx8f9O7dG3v27MFjjz1mvr5nzx4MHz681vuu5BXB2HTCSmlpKfwqr8cAuH79ukWbuvD19bUa6OVUedo6PT0d06dPN68nVx0v6/V6HDhwAGFhYZy2JqoLR9ZxXdW2BtnZ2Xj44Ycxffp0jBkzBt26dUPfvn1x9OhR9O7d2ynvUVWnTp2Qk5ODDz/8ED///HO1+/ZOU9syc+ZMDB06FOHh4SgsLMTWrVvx3Xff4auvvjK3Wb16NXbu3Ilvv/3WfG3KlCkYM2YM+vTpgwEDBiA5ORkXLlzAc889Z9d9l6kxvcuD1JRNnZiYKACIM2fOVLs3Y8YMAUCcPHnSaX1pyGxqe+Xk5AitVisOHz5sPfP65jWFQlHr1gAib+Sp2dSXL18WXbp0ERMmTLC4PmzYMBEXF+eU93j//fdF1XBSXFwsJEkSL7/8slPeo6pnnnlGqNVq4ePjI1q1aiUeeOABsXv3bos2s2fPthoX3nnnHfNro6KixN69ex26X5XXb22qrKZgnJKSIgCIdevWVbs3ePBgERgYKEpLS53WF3cMxpVV3p+suBmMKwdnhUIhtm3bxm1QRJV4ajBuCLNnzxaDBw+2uHb58mWnD3TclTOCsUdX4LLX8OHD4e/vj5UrV6KiosJ8PT09Hfv27UN8fLxsJd3kULmS15aUFFTNzWRZTSJyxNdff40lS5ZYXDt58iR8fHzQtWtXmXrlWTx6zXjDhg3mcpaXLl1CWVkZXn/9dQDG/XCTJk0CYMygW7BgAZKSkhATE4MxY8YgLy8Py5cvR+vWrTFv3jzZfge5mDOvIyJ4TCMR1cuBAweqXTt58iS6deuGpk2bytAjzyMJUY9NazKLiYnB3r17rd5Tq9XVaklv2rQJy5Ytw+nTp+Hv748hQ4Zg4cKFaNeunVP7VVBQgObNmyM/P9+8wd2dpaam1ph5rZAkGITgNijyajdu3MC5c+fMBwgQmdT02bA3Hnh0MHZXnhaMAeM+6wMHDiAhIcHm/mQAUCqVyM7O5giZvA6DMdnijGDsFWvGVDurxzRaqTij1+uxY8cOnghFROREDMZkweKYxkOHrB7TOGXKFCZ3ERE5kUcncJFrmJK7ANis5GUwGJA4fjx6duqEoooKJncREdUDR8ZUI9NI+a233qp2Ty8E+g8ahNjYWI6UiYjqgcGYamVaT7Y2ZV35mMbECRO4lkxEVAcMxmQX0+ET5uQuK4FZbzAga9ashu4aEZHHYzAmu1kkdx08WC0gKwDk/vUXR8dERA5iMCaHqFQqxMTEoG/fvhYjZUmSICQJI3ftMq8f677/HtoPPmBwJiKqBYMx1ZlppLx9+3ZjML5ZP8ZgMGD8+PFQDxqE2LFjob7zTqS++y50Oh20Wi2DM5EbiImJQVJSktzdoJsYjKleVCoVwsLCqlXtEkLcSu4SAuMnToT6zjuZeU3kgb777jtIkoRr167J3ZVGi/uMqd46duxo87AJk5uHnQIwjpwnTJiAoKAgREdHc38yEXk9joyp3qxlWktWSmlWxmMayds15LJNcXExnn76aQQGBuKOO+7AsmXLLO5v3LgRffr0QVBQEG6//XaMHj0aubm5AIDs7Gz87W9/AwC0aNECkiRh3LhxAICvvvoK999/P0JCQtCyZUs88sgjOHv2rMt/n8aIwZiconKm9fnz57F27Vq7grPpmEauI5M3SU1NhVqtbrBlm6lTp0Kr1WLnzp3YvXs3vvvuOxw9etR8v6ysDPPnz8fJkyfx8ccf49y5c+aAGx4ejo8++ggA8Ntvv+HPP//EihUrABiD/JQpU3DkyBF8++23UCgUeOyxx2qcJSMbBDldfn6+ACDy8/Pl7oqscnJyhFarFTk5OSIlJUUolUqBmzPWVb+0//63xevS0tJETk6OjL0nsnT9+nXx66+/iuvXr9frOTk5OUKhUFh8/pVKpcs+74WFhcLHx0ds3brVfO3y5cvCz89PvPjii1Zfc/jwYQFAFBYWCiGE0Gq1AoC4evVqje+Vm5srAIhTp045q/seoabPhr3xgCNjchnTNiiVSmWReV11f7ISQIBGA+0TT+DN+fMbdMRA1NAyMzOrjRz1ej2ysrJc8n5nz55FWVkZBgwYYL4WGhqKzp07m38+fvw4hg8fDrVajaCgIMTExAAALly4UOuzR48ejfbt2yM4ONh8Nnxtr6PqGIypwVg7plGpVOKpO+9EfyEQ+5//YOqsWeb/UHEKmxojU8JjZUqlEhERES55P1HLkfXFxcV46KGHEBgYiI0bN+LIkSPYuXMnAOP0dU0effRRXL58GWvXrsWhQ4dw6NAhu15H1TEYU4OrvL584MABbNDpYGuFyZUjBiI5VE14VCqVWLNmjct2FURERKBp06Y4ePCg+drVq1dx5swZAEBGRgby8vKwaNEiDBw4EF26dDEnb5n4+PgAgMXpbZcvX8bp06fx2muv4YEHHkDXrl1x9epVl/wO3oDBmGRhmsIuKiqqMdlDqVQiICCAxUKoUan8B2l2djY0Go3L3iswMBAajQZTp07Ft99+i59//hnjxo0zj87vvPNO+Pj4YNWqVfj999/x6aefYv78+RbPUKvVkCQJn3/+OS5duoSioiK0aNECLVu2RHJyMrKyspCWloYpU6a47Pdo7BiMSVbWpuxMlAoFnnrqKfTv39+8hrx06VIGZmoUKudUuNrSpUsxaNAgDBs2DA8++CDuv/9+9O7dGwDQqlUrrFu3Djt27EC3bt2waNEivPnmmxavb9u2LebOnYvp06ejdevWmDRpEhQKBbZu3YqjR48iMjISL730EpYuXery36WxkkRtCwrksIKCAjRv3hz5+fkIDg6WuztuLzU1FYmJidDr9VAqlVi4cCH69u2LgIAA9O/f3+rIWaFQIDk52aUjCqLKbty4gXPnzqFdu3Zo1qyZ3N0hN1LTZ8PeeMAKXCQ7jUaDuLg4ZGVlISIiwjxS0Gq1NqewTcldcXFxrOBFRB6PwZjcgkqlqhZUayuzqdfrceCHHxDWujU6duzIoExEHotrxuS2qmadViUBSBg1iuvJROTxGIzJrVXOOl26dOmtEps375tPhjIYMG3aNBYLISKPxGlqcnumKeyYmBgkJCQgKysLubm5GDlypNX2pvXknj17oqioiFPYROT2GIzJo5gCs06nq3U92ZSJzcxrciZuQKGqnPGZ4DQ1eaTa1pMBsKwmOVXTpk0BACUlJTL3hNyN6TNh+ozUBUfG5LEqb4lKT0/H9OnTodfroQCqldc0ldU0TVfrdDpkZmZyCpvsplQqERISYi4V6e/vX+u53dS4CSFQUlKC3NxchISE1Dg4qA2LfrgAi37IQ6fTISsry2qxEKUk4cChQygqKsLRo0fx6quvcgqbHCaEwF9//YVr167J3RVyIyEhIbj99tut/nFmbzxgMHYBBmP5WVT1AvDUkCHY8O23VteYlUolsrOzOUImu+n1epSXl8vdDXIDTZs2rXFEzApc5NUqT2EHSBL6x8bWmOxVeQqbqDZKpbJeU5JEVTGBixot88lQBkOtJ0O56ixZIiJ7MBhTo1fjyVAA1tx9N1SVzmklImpoDMbU6Fk7zH3J3LnQPvEEshUKaI4dg65LF2ifeQa6rCyZe0tE3ogJXC7ABC73ZMq2rnwyFH7+GalPPIEJZ87AAB7NSETOxWxqGTEYew6dTge1Wm25DcqUXR0YCISEyNc5IvJ49sYDTlOTV8vMzKyW3KXX67Hj7beha9MGmD0busxMm6dB6XQ6nhRFRPXGYExezVZy15Rly6C+fh3j5s2DulMnq6dBpaamQq1W86QoIqo3TlO7AKepPUvlAiG1USoUyD5/HgBsT29zvzIR3cRpaiI7mc5Mfuutt2ptqzcYkDV3rs3p7SxmYxNRHTAYE8G4/WnEiBE29yObKAFEhIdbnd5m8RAiqisGY6KbrO1HHjt2rMXPa156CaqZM2+1vRmQlUolFi5ciMzMTCZzEZHDuGbsAlwz9mxV9yNX/hnAraMXw8Kg69wZWTod0gcOxKvff8+ToIjIAvcZy4jBuHFKTU3FhAkTbgXcZcugSUuD7rPPoIblGcpKpRIHDhxAUVERz0wm8mIMxjJiMG58aioOkrlhA2Jnzqz2GoVCYTFSjouLuzWqZnAm8grMpiZyopqypzuOGWM18cvU3mAwYPz48dyTTEQ2MRgT2aGm7OmqiV/W/kclhLAIzomJiUz0IiIzBmMiO1jLtF6zZo15utm0V1mr1eLg4cO1bpHinmQiqqyJ3B0g8hQajQZxcXHVT366SaVSma8lJyebq3opAIibXyYKhQK5ubnQ6XRcPyYiJnC5AhO4CKi0RSogAF9PnIjEI0egByABgCRBCMFtUESNHLOpZcRgTNbotm/HgSlTkPDHH9wGReQl7I0HnKYmaiCq+HiEtWgBw0MPWVzX6/Xo37+/eRvUokWL0KdPHwZmIi/CBC6iBtSxa9dat0FNmzaNW6CIvAyDMVEDqrYNqoasa9MWqCNHjkCr1XIrFFEjxjVjF+CaMdXGlNwVEBBgnqK2pWolLyZ7EXkOVuAicmMqlQoxMTHo27evxUjZGhYLIWr8GIyJZFa5YMjSpUvNxzJa+x+nXq/Hjh07GJCJGhlOU7sAp6mpPnQ6HbJ++w0Be/ag/+LFsDaBzcMniDwDp6nrqLS0FOPHj0f79u0RGBiIjh074u2335a7W+RFVCoVYh54AH0XLULy8uXmkXJlPHyCqHFhMK6ioqICt99+O3bv3o3CwkJs27YNb7zxBrZt2yZ318gLaZKSkH3+PN56661q93j4BFHjwWBcRUBAAObPn4+IiAhIkoSoqCgMHToUP/74o9xdIy+lUqkwYsQIHj5B1Ii5ZTBeuHAhRowYgfbt20OSJNx11101tt+yZQt69+4NPz8/hIWFYdSoUTh//rxT+lJRUYEDBw6gZ8+eTnkeUV1YO6ZRqtLGdKQjEXket0zgkiQJoaGhiIqKwtGjRxEcHIzs7GyrbVevXo0XXngB9913H5566ink5eXh7bffhq+vL44cOYI2bdqY25aWlqK8vNzm+/r5+VXbYvLcc8/h6NGj+PHHH+Hj42NX/5nARa5iPnwiIgJfr12LxHnzoAegBLDm/vuh+f77Gl/LZC+ihmV3PBBu6OzZs+bvu3fvLtRqtdV2eXl5IjAwUERFRYny8nLz9SNHjghJkoRGo7FoP3LkSNNJdla/tFqtRfuXXnpJ9OjRQ1y6dMmh/ufn5wsAIj8/36HXETkq58IFoZ0+XeTccYcQp0/bbJeSkiIUCoUAIBQKhUhJSWnAXhJ5L3vjgVuOjCuLjIxEUVGR1ZHxv//9b2g0Gqxbtw5jx461uBcTE4Njx44hLy/P7hFtZUlJSfjmm2+g1WrRqlUrh17LkTE1uIoKoEmlc19eeQVo3hyYOhW6vDyo1WqLKl9KpRLZ2dkcIRO5mFdsbTp8+DAAIDo6utq96OhoFBYWIiMjw+HnTp48Gd988w3S0tLsCsSlpaUoKCiw+CJqUJUD8enTwFtvQTdrFrQdOmD/6tXVym0y2YvIvXh0MP7jjz8AwOpf96Zrjm71OH/+PFatWoWsrCzzXuPAwEAMHTrU5msWLlyI5s2bm7/Cw8Mdek8iZ9DpdMYDJQIDkfrss1ADiL14EQmLFzPZi8jNefR5xiUlJQAAX1/faveaNWtm0cZearUajs7cz5gxA1OmTDH/XFBQwIBMDSo1NRUTJkyAwWCAJBlDr+lTLGDMvFYCxmQvpRJr1qzhFDWRG/HoYOzv7w/AOE3s5+dnce/69esWbVzJ19fX6h8ERA1Bp9OZAzEAq39MCgBbALQKDETEjz9CVWWrHjOtieTl0dPUbdu2BWB9KrqmKWyixiQzM7PGIxgB42h4wL/+hZg1a24FYiGAnBykpqbWWFbTPP3N6l5ELuPRwbhv374AgP3791e7t3//fgQGBqJLly4N3S2iBtWxY8dq1bkkSTLvmTdPSycmAqNH32r06afQtW+PCePH2yyrWVugJiLncDgYX7hwwTwFLLfhw4fD398fK1euREVFhfl6eno69u3bh/j4+DptayLyJFWrcymVSqxdu9Z8LGN2djY0Go3Fa3Q6HbQpKdhfUQFDlWltU6Z11elv1r8mch2H14zbtWuHDRs2YPTNv7BLSkrw2muv4fnnn3daduaGDRvM5SwvXbqEsrIyvP766wCAkJAQTJo0CQAQFhaGBQsWICkpCTExMRgzZgzy8vKwfPlytG7dGvPmzXNKf4jcnUajQVxcnLk6l2l5xtoyjUWyF4zJXZXDsUKSkJubi9zcXKtbonbs2IERI0ZwCYjImRytJiJJkti0aZP557y8PKFQKMS3337r6KNsGjx4sM0qWdaqcW3cuFH06tVLNGvWTISGhoqRI0eK33//3Wn9cRQrcJG7ysnJMVfiMn1JkiSUkmT8/uaX6bp083rVL1bxIrKPvfHAKdnUwslFvL777juH2v/jH//AP/7xD6f2gagxspbsJYTAlu3bgb/+QsLkyTBUum5ae9br9RavMU1Zx8XFcYRM5AQencBFRI6xluylVCoxYMAAhEVGompOthACW158EW9NnVrtWaziReQ8DMZEXsRaspepAIjNQJ2cjBHLlkEhSdXusYoXkXPUaZr60KFDaHKzFm5hYSEAYO/evcjLy7PaPj4+vo7dIyJnqynZKzk5GYmJidDr9cZAvXgxVAcOAB99hGQAibBdxYuFQ4jqzuFTmxQKhbncHmC5XixV+cvZtOZUdb2pseOpTeTJKp+ZbA6qu3cDkydD99tvyAIQ0bs3VGvXAr16AbDM0FYoFEhOTq62nYrIG9kbDxwOxuvXr3e4M1WPN2zsGIypUSorA95+G5g3DyguBnx8gAsXoCsv5xGNRDbYGw8cnqb2tsBKRDf5+ADTphmreE2dCtxxB9C6NTK1WptHNNYlGHO6m7wRE7iIyDEqFbBlC/DmmwBsZ2jXJbmL5TfJWzk8TV3ZgQMH8Pnnn+PMmTMoKChAcHAwunTpgkceeQT9+vVzZj89Cqepyduk9uyJxFOnjMldkoQ1b70FTVKSQ8/Q6XSc7qZGx2XT1IAxg3r06NH48ssvrRb8WLBgAYYNG4aNGzciICCgLm9BRB5Es3s34iZORNZ//oMIIaCaNw/w9QUmTABubqOqjbWCJPWZ7ibyJHWapo6Pj8cXX3yB/v3749///jeOHj2KzMxMHD16FCkpKejXrx8++eQTJCQkOLu/ROSObr8dqo8+Qsz33xuPaLx6FXj+eeDee4GDBwHUfhSjM6e7iTyOo3U29+zZIyRJEpMnT66x3aRJk5xes9pTsDY1eYucnByRlpYmcnJybl0sLxdi1SohmjcXAhDi7bdFSkqKuSa2QqEQS5Ysqf46IURKSopQKpUCgFAqlax/TR7P3njg8JqxRqPBnj17cO7cOXMVH2sqKirQvn17PPTQQ0hJSanXHwyehmvG5A1q3VucmwusXAnds89C3aFDtSloAFZfZ3WfM5GHctk+47vvvhuDBw/GypUra207efJk7N27FydPnnTkLTwegzE1do4kW2m1WsTGxtp8FpO0qDGzNx44vGas0+nQtWtXu9p27doVOTk5jr4FEbm5mpKtTExrxIGBgdXWgmt6HZE3cjgYm7Yw2SMoKAhFRUUOd4qI3FttyVaV9wv3798fY8aMsbmspZQkRKjVLu8zkTtzOBjr9fpqNaht8ca61ETeoKbTn3Q6nXktGTCefbxx40YcOHAAWq0WS5cuhfJmIFcCWCMEVA8/DFy+bPW9asvCJmoM6n1qU00O3tzSQESNj63Tn2xNYRcXFyMmJgYxMTFISEhA1pkziDh2DKrFi4G77gJCQ6u9Bw+gIG9Rr1ObxM1TmWwRPLWJCVzkdRyupHX1qvHgCdO9vDxg3TroHn8c6o4dWZGLPJrLKnC9//779eoYETVuVs9FrnL2sYUWLaArLkamVms8HGLePGDtWmSuWMGKXOQ16lyb+tKlS/j9998RFhaGDh06OLtfHo0jYyL79wtXm4r+3/+F5vPPofvvf6EGUDkcc2RMnsZlW5sMBgOee+453HHHHYiOjkanTp0wYMAA/PXXX/XqMBE1LiqVCjExMTUGTmvJXonr1kGXlgZVUhKSJQmmHGylJGHN6tUMxNQoORyMV69ejeTkZNx+++14/PHH0aNHDxw6dAjjx493Rf+IqBGzuV85NxdYvhyan35Cdv/+0ALIFgIaZlRTI+XwNHWfPn1w/fp1HDx4EEFBQQCA8ePH4/3338elS5fQokULl3TUk3Camsg+diV7CQFs3QosWgTdxo3IzMszri23bQvYuc2SSC4um6b+7bffMG7cOHMgBoAXXngBBoMBZ86cqVtvicgr1bRf2UySgFGjkPrCC1Dfcw9iY2OhVquR2qsXMGsWUFLi8Pty7zK5G4eDcXFxMdq0aWNxzfRzSR3+R0FE3k2j0SA7OxtarRbZ2dlW9xHrdDpMSEy0XFs+eRK6+fOBbt2Ajz82jqDtULk6mFqtRmpqqjN/HaI6qdN5xlX3Flfed0xE5Kjakr2sri0DyGrVCjh/HnjsMeB//geoZXbOasJYYiJHyCS7OlXg+vzzzy0+vCUlJZAkCVu3bkV6erpFW0mSMHXq1Pr1koi8mqkWdtW15YgffgDWrwfefBP46isgMhJ4+WXj9LWfX7Xn1HTABbO0SU51qsDl0BuwApfc3SFqFFJTU6sVEjFPaWdmAi++COzaBXTuDPz0E+DjU+0ZDlcHI6onl1Xg0mq19eoYEVFd2KqFDQDo2BH44gvgs8+A5s1vBeLycuD334HOnaHT6ZCZmYnFixdj+vTp9lUHI2ogda7ARbZxZEzkJpYtA6ZPR+oDD2DCnj3mKl+LFi1C3759a60ORlRfLtvaRETkrqptWTpxArqKCkz4+muLpK0ZM2YwEJNbYTAmokah6palpUuXQvvMM9g/fToMVdqakraI3EWdsqmJiNyJtS1L06ZNA2BMIpUkyWLrpRJAxMGDQEyMDL0lqo4jYyLyeNa2LJmYgrC5ypckYY1CAdWwYQ3WP6LacGRMRB7LlCEdGBhYbR9yZUIIbNmyBa1atTKuFd+4AURE3GqwahVw//1Ar14N1HMiSxwZE5FHqrxG3L9/f4wZM8Y8+q1KqVRiwIABt6p8VQ7EJ04ASUlAnz7AxInAlSs235M1rclVGIyJyONYWyPeuHEjDhw4AK1Wi6VLl9Z8+ERlt90GxMcDBgPw7rvGoiEpKcafK2FNa3Il7jN2Ae4zJnItrVaL2NhYq9djbiZl6XQ66wVCbD8UmDQJ+PVX48/33gu88w7Qpw8rd1GdcZ8xETVaplrVlSmVSkRUmn6u7fCJav72N+O+5FmzoPXzg+7wYSAuDigurrGmtb04xU01YTAmIo9j1znIdZD6wQdQv/46Yq9fhxpA6t//DgQE2BX8a3wup7ipFpymdgFOUxM1DIenomt5Vk1T0amTJyNx1SrogeoHVdTjudS4ueygCCIid6FSqZwW0Go8XrFtW2j270ccgCwAEY8/DtWjj9b/uXb03bR9q2PHjgzejRinqYmIUMs6tCQBX34J1TPPIAaAascOoFMnYOVKoKKi7s+tBae3vQeDMRER7FiHvu02IDUVOHAAiIoC8vONZyhHRRmv1fW5NljbvpWYmMgEsEaKa8YuwDVjIs9l1zq0Xm/cizxzprFIyOefAw8/XP/nVmLP9i1yf/bGAwZjF2AwJvISly8DW7caK3eZHD8OREYCTZvW69FM/GocuM+YiMjVWra0DMS5ucb9ynffDaSl1evRrtq+Re6JwZiIqI6qFfL47TfjiPj0aeCBB4CRI4GcnDo/X6PRIDs7G1qtFtnZ2XZtpSLPxGBMRFQH1jKdde3aQZuaCt24cYBCAWzfDnTpAixaBJSW1ul9HK4kRh6Ja8YuwDVjosbN2nquJEmQJAkGgwEKhQLJr70GzbffAj/+aGzQtStw7BjQrJlMvSY5cM2YiMhFrBXyEEJYbkN64w3otmwB1q8HWrcGHnyQgZhsYjAmInKQtUIeVen1emSdPQs8/bRxLfn112/d/PVXYP584MaNaq/jgRLeicGYiMhBVTOdFQoFJEmyaGNRZat5c8A0RSmE8ajGWbOA7t2Ne5RvYsUt78VgTERUB5Uznc+fP4+1a9favw1pwgSgTRvg99+BRx8FHn0Uuh9+cLjiFkfRjQcTuFyACVxE3smhKluFhcap6uXLgYoKaJs2RWx5ebVmtipupaammoO3QqFAcnIy4uLieKiEm2EFLhkxGBOR3TIygBdegO6bb6AGUDktzFbFLbuyuZOTuS/ZDTCbmojIE3TpAuzeDdWHHyI5MtJyqvvdd62OcO3K5q4yxc0pbffGYFyD69evIyIiAoGBgXJ3hYgaM0kCnngCmlOnblXcOnMGmtWrgRkzgOJii+Z2Z3NnZQFgYpgnYDCuwaxZs6BWq+XuBhF5EXPFrSNHgFOnjNW7unQBduwwZmLDsWxuR49i5AhaHgzGNhw9ehS7du3Cq6++KndXiMgbxccDn3wC3HUXoNMZfx4yxLhHGfZnc1ub0q48aq6MI2gZCTe0YMEC8eSTT4p27doJAEKtVtfYfvPmzSIqKko0a9ZMtGzZUiQkJIjs7Ow6v395ebno1auX2Lt3r9BqtSIgIMCh1+fn5wsAIj8/v859ICLPlpOTI9LS0kROTk79HlRSIsScOUI0ayYEIESTJkK8/LIQZWVW31Or1Vq8Z05OjlAoFAKA+UupVFbrl73tyDH2xgO3HBnPnDkTaWlp6NChA1q0aFFj29WrV2P06NHw8/PD8uXLkZSUhD179iA6OhoXL160aFtaWoqioiKbX3q9HgCwdOlS9OrVC4MGDXLZ70hEjZdTR5h+fsDs2cYR8bBhQEWFcfq6SZNqTa0dKmHvUYyOjKDJBRrojwOHnD171vx99+7dbY6M8/LyRGBgoIiKihLl5eXm60eOHBGSJAmNRmPRfuTIkRZ/9VX90mq1IjMzU9x5553i8uXLQgjBkTEROaQuI0yHRtFffCFERsatny9fFuLkSbv6VXXUXN9+U+3sjQduGYwrqykYp6amCgBi3bp11e4NHjxYBAUFidLSUofe7/333xe+vr6iZcuWomXLliI4OFgAEC1bthR79+616xkMxkTeKy0tzeYf+9akpKSYg6BCoRApKSmOveFzzwmhVAoxebIQV6/Wq+8pKSlCqVSaA7HDfaFqPHqa2l6HDx8GAERHR1e7Fx0djcLCQmRkZDj0zPj4eGRlZeHEiRM4ceIEUlJS4O/vjxMnTqBfv35O6TcRNV7Wth1Z1KmupN6ZzgYDcPUqoNcDK1cCnTsbT4mqMt1sr8pJYdnZ2Swa0oA8Ohj/8ccfAGB1U7zpmqPp+f7+/lCpVOavVq1aQZIkqFQq+Pr6Wn1NaWkpCgoKLL6IyDvZu0YLOLZOa3UdWqEAtm4Fdu82BuLcXGDcOGDgQOD48Tr3v+q6M7meRwfjkpISALAaJJvdPDfU1KauYmJiUFRUVGObhQsXonnz5uav8PDwer0nEXk2e0eY9o6iax1BDxkC/PQTsGQJEBAA7N8P9OkDbNni/F+OXMKjg7G/vz8A48i0quvXr1u0caUZM2YgPz/f/JWTk+Py9yQi92bPCNOpmc4+PsDUqcazkxMSgJAQY5Amj1A9N96DtG3bFoDxr8aOHTta3KtpCtvZfH19bU5hExHVRKPRIC4ursbTnkwj6MoB2dY6NNq2NY6Ic3OBsDDjNSGAadOMhUP69nXVr0L14NEj4743P1T79++vdm///v0IDAxEly5dGrpbREQOqW0U7cg6tNltt936/tNPgTffBPr1M56lnJfnzO6TE3h0MB4+fDj8/f2xcuVKVFRUmK+np6dj3759iI+Ph4+Pj4w9JCJyjnplOvfrB4wZYxwhr10LdOoEvPeeMQvbAaxb7TpueZ7xhg0bcP78eQDAqlWrUFZWhpdffhkAEBISgkmTJpnbrlixAklJSbjvvvswZswY5OXlYfny5WjatCnS09PNU9kNiecZE5Fb+uEHYNIk4ORJ48+9egHvvAMMGFDrS1NTU81JZKbzkuPi4pCZmYmOHTsy+9oGe+OBWwbjmJgY7N271+o9tVqN7Oxsi2ubNm3CsmXLcPr0afj7+2PIkCFYuHAh2rVr1wC9rY7BmIjcVkUFsGYN8NprwLVrxlHyr78CN6fArdHpdFCr1RZr1pIkQZIki+DMfcnVeXQw9nQMxkTk9nJzgZkzgSefBP7+d+M103JflbrXWq0WsbGxNT5OqVQiOzubI+Qq7I0HHr1mTEREdXTbbUBKyq1ADACrVwNRUcC+fRZNre2HrsqRQyW49lwdgzERERlHxStXGk+EGjwYeOop4ObJd1WzuRUKBSRJsni5za1WVfDMZOsYjImIyDg1feQIkJgISBKwaZOxxOabbwLl5RbZ3OfPn8fatWsd22oFx2txexOuGbsA14yJyKOlpxuzrg8dMv7ctSuwbh1w770WzXQ6XY3FSqqytfas1WoRExNjV9d0Op1HZXBzzZiIiOqmTx9jfevUVGMVrzNnACulhR09VMKRE62sacxT3AzGRERUnUIBPPOMMRBv3w5ERt669803gJUzAWpTp0piNzX2KW4GYyIisq1FC+Dxx2/9fOqUMQO7Rw/g668dflxdK4k5ctykJ2IwJiIi+/35J9CqFZCZaQzKjz0GVCnEVJu6nJlc3ylud8dgTERE9nvoIeMxjVOmGKt2ffyxMcFr/nzgxg2XvW19prgdIdceaGZTuwCzqYnIK/zyizHr+rvvjD9HRRm3R9VSIKQ+HM3gdoS1+tv1LfHJcpgyYjAmIq8hBLBtG/Dyy8Yzk198Ue4e1Ym1+tvOKPHJrU1EROR6kgQkJAAZGcDEibeuf/01MGsWUFIiX98cIHeCGIMxERHVX1DQrQMmysqM09fz5wPdugE7dxpH0G5M7gQxBmMiInKupk2BRYuA8HDg/Hnj1qihQ417lt1UQyWI2cI1YxfgmjEREYDiYmDhQmDpUuNouWlT49ryP/8JBAbK3TurnJ0gxgQuGTEYExFVkpVlTOz68kvjz599BjzyiLx9aiD2xoMmNu8QERE5Q0QE8Pnnxq8vvgAefvjWvaIitx0lNySuGRMRketJEvDoo8C//mX8HgDy8oAOHYBXXgEKCuTtn8wYjImISB7btwO5ucCyZUCXLsYzlL105ZTBmIiI5PH888Z15IgIY83rp54CYmKMh1F4GQZjIiKSz9ChwM8/A2+8Afj5Afv2Ab16GWtfe9EomcGYiIjk5esLzJxprOL1xBOAXm88dMK0tuwFmE1NRETu4c47gQ8/BPbsAXr3vnU9M9OYdd2rl3x9czGOjImIyL0MGQKEhhq/F8K4ttynj/H/Xrkib99chMGYiIjc140bQKtWgMEAvPce0KkTsHat8edGhMGYiIjcl58fsHkzoNUC3bsDly8DEyYA/fsbz05uJBiMiYjI/cXEAMePA8uXA8HBxkDcrx/w1Vdy98wpGIyJiMgzNG0KJCUBv/0GPP20sVBIbKzcvXIKBmMiIvIst98OrF8PHD4M+PgYr5WVAQkJwP798vatjhiMiYjIM1U+YOKdd4Bt24D77gPGjQP++1/ZulUXDMZEROT5/vEPQKMxfr9+vTHresUKoKJC3n7ZicGYiIg83223ASkpwMGDxoIhBQXG9eVevYwlNt0cgzERETUe/foBhw4Ba9YYC4f8/DMwb57cvaoVgzERETUuSqVxL/KZM8D/+3/AypW37hUXA+Xl8vXNBgZjIiJqnFq2BN59F+jW7da1V18F7r4b+PZb+fplBYMxERF5h8JC4KOPgNOngQcfBOLjgZwcuXsFgMGYiIi8RVCQMRC/8AKgUAA7dhgLhyxaBJSWyto1BmMiIvIeISHGNeRjx4D77wdKSoAZM4AePYATJ2TrFoMxERF5n7vvNm552rDBWNHr0iWgbVvZusNgTERE3kmSgKeeMta6/uwz41GNJps3G49vbCAMxkRE5N2Cg41T1iaff26s6LVsWYN1gcGYiIioMkkC7r0XmDy5wd6SwZiIiKiyhx82ltUMCmqwt2QwJiIiqkqSGvTtGIyJiIhkxmBMREQkMwZjIiIimTEYExERyYzBmIiISGYMxkRERDJjMCYiIpJZE7k70BgJIQAABQUFMveEiIjkZIoDprhgC4OxCxQWFgIAwsPDZe4JERG5g8LCQjRv3tzmfUnUFq7JYQaDARcvXkRQUBCkGqq49O3bF0eOHLF5v6CgAOHh4cjJyUFwcLAruuoWavt38PQ+OOvZ9XlOXV7ryGvsbVtTO37eG0cfnPnshvzMu+rzfvjwYRQWFqJNmzZQKGyvDHNk7AIKhQIqlarWdkql0q7/6AQHBzfq/zjZ++/gqX1w1rPr85y6vNaR19jb1p52/Lx7dh+c+eyG/My76vPevHnzGkfEJkzgktHEiRPl7oJbcId/B1f2wVnPrs9z6vJaR15jb1t3+P+13Nzh38ATPu/1fZajr5X7885pajdWUFCA5s2bIz8/X/a/pIlcjZ938mYcGbsxX19fzJ49G76+vnJ3hcjl+Hknb8aRMRERkcw4MiYiIpIZgzEREZHMGIwbgYqKCrz44osIDQ1FSEgINBoNbty4IXe3iFxi+/btuP/++xEYGIi77rpL7u4QOQWDcSOwYMECaLVanDp1CpmZmfj1118xbdo0ubtF5BItWrTACy+8gHnz5sndFSKnYQJXI3DnnXdiyZIlSEhIAAB8/fXXiI+Px5UrV6BUKmXuHZFrfPjhh3jllVeQnZ0td1eI6o0j4wa0cOFCjBgxAu3bt4ckSbVOsW3ZsgW9e/eGn58fwsLCMGrUKJw/f96izbVr15CTk4N77rnHfC0qKgoFBQX8jxTJyhWfd6LGisG4Ac2cORNpaWno0KEDWrRoUWPb1atXY/To0fDz88Py5cuRlJSEPXv2IDo6GhcvXjS3Mx1KERISYr5m+t50j0gOrvi8EzVaghrM2bNnzd93795dqNVqq+3y8vJEYGCgiIqKEuXl5ebrR44cEZIkCY1GY7529epVAUBkZGSYr+Xm5goAIisry/m/BJGdXPF5r2zHjh02n0nkaTgybkDt27e3q90nn3yCoqIiTJ48GU2a3DrLo0+fPhg0aBC2b9+OsrIyAMZRcHh4OE6cOGFud/z4cQQFBTHTlGTlis87UWPFYOyGDh8+DACIjo6udi86OhqFhYXIyMgwX3v22WexYMECXLx4EZcuXcKcOXMwbtw4Jm+RR3D0867X63Hjxg2Ul5dDCIEbN26gtLS0wfpL5AoMxm7ojz/+AACrxzCarul0OvO1mTNnYvDgwejevTsiIiLQtWtXLF68uGE6S1RPjn7eN2zYAD8/P4wePRoXLlyAn58fOnfu3DCdJXIRBmM3VFJSAgBWC+Y3a9bMog0ANGnSBCtXrsTVq1eRn5+P1NRU+Pn5NUxnierJ0c/7uHHjIISw+OLOAfJ0DMZuyN/fHwCsTr1dv37dog2Rp+PnnYjB2C21bdsWgOXUnElNU3pEnoifdyIGY7fUt29fAMD+/fur3du/fz8CAwPRpUuXhu4WkUvw807EYOyWhg8fDn9/f6xcuRIVFRXm6+np6di3bx/i4+Ph4+MjYw+JnIefdyLWpm5QGzZsMJf3W7VqFcrKyvDyyy8DMO4XnjRpkrntihUrkJSUhPvuuw9jxoxBXl4eli9fjqZNmyI9Pd08tUfkrvh5J7Ifg3EDiomJwd69e63eU6vV1TJCN23ahGXLluH06dPw9/fHkCFDsHDhQrRr164BektUP/y8E9mPwZiIiEhmXDMmIiKSGYMxERGRzBiMiYiIZMZgTEREJDMGYyIiIpkxGBMREcmMwZiIiEhmDMZEREQyYzAmIiKSGYMxEdXLnDlzIElStfKWRGQ/BmMiIiKZMRgTERHJjMGYiIhIZgzGRF5i165dkCQJb731ltX7AwcORMuWLVFWVobDhw9j3Lhx6NSpE/z9/REUFIT77rsPO3futOu9xo0bB0mSrN6TJAnjxo2rdn3btm24//77ERQUBH9/f/Tr1w8ffvhhtXZffPEFBg8ejFatWqFZs2Zo06YNhg0bhl9++cWuvhG5IwZjIi/x0EMP4Y477sAHH3xQ7d65c+fw448/IiEhAT4+Pti5cyfOnDmDUaNGYcWKFfjnP/+JK1eu4PHHH8fmzZud3rfXXnsNCQkJCAoKwvz587F48WIEBARgxIgReOedd8zt9u7di2HDhiE/Px/Tp0/HO++8g+effx7FxcU4c+aM0/tF1GAEEXmNV155RQAQJ0+etLg+Z84cAUAcOnRICCFEUVFRtdcWFxeLTp06ia5du1pcnz17tgAgzp07Z742duxYYes/LwDE2LFjzT+np6cLAGL69OnV2g4fPlwEBQWJgoICIYQQL730kgAgcnNz7fp9iTwFR8ZEXmTs2LEAUG10vHHjRnTp0gX33nsvACAgIMB8r6SkBJcvX0ZJSQliY2Nx+vRpFBQUOK1PppH2008/jby8PIuvYcOGobCwEAcOHAAAhISEAAB27NiBiooKp/WBSG4MxkReJDIyEr169cLmzZuh1+sBAD/++COysrLMgRoAcnNzMWHCBLRu3RoBAQEICwtDq1at8K9//QsAcO3aNaf16fTp0wCAbt26oVWrVhZfGo0GAPDf//4XADBp0iT07t0bEydORGhoKIYOHYoVK1aY7xN5qiZyd4CIGtbYsWORlJSEPXv24O9//zs++OADKBQKPPXUUwAAg8GAIUOGICMjA5MnT0bfvn3RvHlzKJVKvP/++9i8eTMMBkON72ErecvaaFYIAQD48ssv0bRpU6uv6969OwAgNDQUhw8fxg8//IA9e/Zg3759ePnllzFr1ix88skniImJsfefgcitMBgTeZnRo0dj6tSp+OCDD/C3v/0N27dvR2xsLFQqFQDg1KlT+OmnnzBr1izMnTvX4rUpKSl2vUdoaCgA4MqVK+bvAeD333+v1rZTp0746quvoFKp0KNHj1qfrVAoMGjQIAwaNAiAcWTdu3dvzJ49G3v37rWrf0TuhtPURF6mVatWGDp0KD7++GNs2rQJ165ds5iiViqVAG6NWE1+/vlnu7c2derUCQDwzTffWFxftmxZtbamEfnMmTOtjpxzc3PN3+fl5Vl9r6CgIFy5csWuvhG5I46MibzQ2LFj8emnn+Kll15CYGAgHn/8cfO9rl27onv37liyZAlKSkrQuXNnnDlzBmvWrEFkZCSOHTtW6/NHjRqFmTNnYsKECcjIyEDLli2xa9cuq8G0b9++mDt3LmbPno177rkH8fHxaNOmDf78808cPXoUX375JcrKygAA48ePh06nw0MPPQS1Wo3S0lLs2LEDubm5mDp1qvP+gYgaGIMxkRd65JFHEBoaiitXrmDcuHHw9/c331Mqlfjiiy/wyiuvYP369SguLkZkZCTWr1+PkydP2hWMg4OD8eWXX2LKlClYsGCBOeBv3LgRLVq0qNZ+1qxZ6N27N1auXIm3334bxcXFuO222xAZGYkVK1aY240ZMwbr1q3D+vXrcenSJQQHB6NLly7YvHkzRo0a5Zx/HCIZSKLqXBQRERE1KK4ZExERyYzBmIiISGYMxkRERDJjMCYiIpIZgzEREZHMGIyJiIhkxmBMREQkMwZjIiIimTEYExERyYzBmIiISGYMxkRERDJjMCYiIpIZgzEREZHM/j/JhFyl0uY7agAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(2)\n", + "\n", + "N = 10000\n", + "a = 3.0\n", + "xmin = 1\n", + "xmax = 100\n", + "\n", + "fig, ax = plt.subplots(1, figsize=(5,3))\n", + "x = generate_power_law_dist_bounded(N, a, xmin, xmax)\n", + "print (np.min(x), np.max(x))\n", + "plot_distribution(x, N, a, xmin, ax)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + "fit.power_law.alpha=2.995340848455978\n", + "fit.power_law.sigma=0.02600579145725683\n" + ] + } + ], + "source": [ + "# find the exponent by fitting a power law by powerlaw package\n", + "\n", + "import powerlaw\n", + "fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting\n", + "print(f\"{fit.power_law.alpha=}\") # the exponent\n", + "print(f\"{fit.power_law.sigma=}\") # standard error" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate descereted power law distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAF9CAYAAAD4A0k5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABL6ElEQVR4nO3deVxVdf7H8de91w0EVMIyvYYiuORSqbSYGTmVY4s2/dLUyXRi1CbNyNTSHJcsyTZzadFkstLSmhknKy1NUafUXFKzkgQV5aaTO4soCJzfHzeuIDvcy114Px+P+/jBOd97zvc258f9+F0+H5NhGAYiIiIiPsLs7g6IiIiIOJOCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn1LL3R3wRXl5eRw5coTAwEBMJpO7uyMiIuI1DMMgPT2dpk2bYjZXbgxGwY0LHDlyhObNm7u7GyIiIl4rJSUFq9VaqfcquHGBwMBAwP4/TFBQkJt7IyIi4j3S0tJo3ry547u0MhTcuED+VFRQUJCCGxERkUqoyrIOLSgWERERn6LgRkRERHyKghsRERHxKVpzIyIiLpebm8uFCxfc3Q3xELVr18Zisbjs+gpuRETEpTIyMrDZbBiG4e6uiIcwmUxYrVYCAgJccn0FNyIi4jK5ubnYbDb8/f1p3LixEpsKhmFw/PhxbDYbERERLhnBUXAjIiIuc+HCBQzDoHHjxvj5+bm7O+IhGjduTHJyMhcuXHBJcKMFxSIi4nIasZGCXP08KLjxQjabjfj4eGw2m7u7IiIi4nEU3HiZuLg4QkND6dmzJ6GhocTFxbm7SyIiIh5FwY0XsdlsDB8+nLy8PMBefXzEiBEawRERESlAwY0XSUxMdAQ2+XJzc0lKSnJTj0REpCQ//vgjrVq14n//+x8AJ06c4NprryU7O9vNPfN9Cm68SEREBGZz4f/JLBYL4eHhbuqRiIiUpEOHDgwYMIB169YBMG3aNJ5++mnq1Knjlv7ExsYSGRlJYGAgl19+Offddx+//PJLme+bOnUqJpOp0KtJkyaF2rz55pu0bNmSevXq0aVLF/773/+66mOUi4IbL2K1WlmwYIFj25zFYmH+/PlYrVY390xEpGbq0qULHTp0KPI6cuQIAO3bt2ffvn0kJSWxY8cOBgwY4La+btiwgZEjR7JlyxbWrFlDTk4Od955J2fPni3zve3bt+fo0aOO1549exznli1bRkxMDM8++yw7d+7klltuoXfv3hw+fNiVH6d0hjhdamqqARipqakuuX5KSooRHx9vpKSkuOT6IiLOcu7cOePnn382zp075+6uVNiHH35o1K1b17DZbI5j0dHRRseOHY0zZ86U6xpbt241Bg4caPTr189Yt25die0iIiKMG2+80cjMzHQcy8vLM2644QZj3Lhxlf8QpTh27JgBGBs2bCi13ZQpU4xrrrmmxPPXX3+98eijjxY61rZtW+OZZ54p8T2lPRfO+A7VyI0XslqtREVFacRGRMSFBgwYQJs2bYiNjQXs00pfffUVq1atokGDBuW6RkREBGvWrCEzM5PbbrutxHbLli1j586dfPvtt45jS5Ys4eDBg0yaNAmAGTNmEBAQUOqrItNBqampAAQHB5fZNjExkaZNm9KyZUsGDBjAgQMHAMjOzmbHjh3ceeedhdrfeeedbNq0qdx9cTZlKBYRkepX2lSIxQL16pWvrdkMBTMfl9S2fv2K9Q97orkXXniBBx54gKZNmzJ79mz++9//0qxZs3Jfo2HDhgC8+OKLpba77rrruOaaa0hISOD2228nMzOTCRMmMH36dIKCggB49NFH6d+/f6nXKW/fDMNgzJgxdO/enQ4dOpTa9oYbbuD999+ndevW/Pbbbzz//PN069aNn376iaysLHJzc7niiisKveeKK65wLKR2BwU3IiJS/UormHjXXfDFFxd/v/xyyMwsvu2tt8L69Rd/b9ECTpwo2q6SRTvvuecerr76aqZNm8bq1atp3759hd5/4cIFgoODywwgAFq3bu1Y4PvSSy8RHBxMdHS043xwcHC5RlmWLFnCiBEjHL+vWrWKW265pVCbUaNG8cMPP/DNN9+Ueb3evXs7fu7YsSM33XQTrVq14r333nOsIbo047BhGG7NSq3gRkREpARfffUVCQkJxY5OlEdCQgJt2rQpV9s2bdqwceNGbDYbL7/8Mp999lmhukszZsxgxowZpV5j1apV9OnThxtuuMFx7NLRnMcff5wVK1awcePGSi1vqF+/Ph07diQxMZGQkBAsFkuRUZpjx45V6r+Xsyi4ERGR6peRUfK5SwspHjtWcttL0mOQnFzpLl3q+++/p1+/fsyfP5+lS5fy97//nU8++aRC1+jYsSMrVqwoV9vWrVvzzjvv8Mwzz3DHHXfQs2fPQufLOy3l5+dHYGBgkXOGYfD444+zfPly1q9fT8uWLcv/QQrIyspi79693HLLLdSpU4cuXbqwZs0a/vSnPznarFmzhr59+1bq+s6g4EZERKpfRdbAuKptKZKTk7n77rt55plnGDx4MFdffTWRkZHs2LGDLl26OOUel2rdujUpKSn885//5McffyxyvrzTUiUZOXIkH374IZ9++imBgYGO0ZYGDRo4KrbPmzeP5cuXs3btWsf7xo4dy7333stVV13FsWPHeP7550lLS2PIkCEAjBkzhsGDB9O1a1duuukmFixYwOHDh3n00Ucr3deq0m4pERGRAk6dOkXv3r3p06cPEydOBOz5bO69916effZZp9xj0aJFRdaktG7dGrCvh3FFcta33nqL1NRUoqKiuPLKKx2vZcuWOdqcOHGC/fv3F3qfzWZj4MCBtGnThvvvv586deqwZcsWQkNDAXjwwQd5/fXXee6557j22mvZuHEjK1eudJx3B5NhVHKVlZQoLS2NBg0akJqa6ljlLiJSE50/f56DBw86steK3dSpU1m/fj3rCyyGPnXqFJdddhm7d++mU6dO7utcNSjtuXDGd6impURERKrZV199xezZswsd2717N3Xq1KFdu3Zu6pXvUHAjIiJSzTZv3lzk2O7du7n66qupXbu2G3rkW7TmRlzGZrMRHx+PzWZzd1dERDxeTEwMO3fudHc3fIKCG3GJuLg4QkND6dmzJ6GhocTFxbm7SyIiUkMouBGns9lsDB8+nLy8PADy8vIYMWKERnBERKRaKLgRp0tMTHQENvlyc3NJSkpyU49ERKQmUXAjThcREYH5kqyhFovFJXkbRERELqXgRpzOarWyYMECR00Ui8XC/PnzK1XDREREpKIU3BQjJyeHJ554guDgYBo2bEh0dDTnz593d7e8SnR0NMnJycTHx5OcnFyosq2IiIgrKbgpxowZM4iPj2fPnj0kJiby888/M378eHd3CzZsgClT4Nw5d/ekXKxWK1FRURqxERGRaqXgphgLFy5k4sSJNGvWjMaNGzN16lTee+89cnNz3depCxfgscfgueegQwdYtcp9fREREfFgXh3cxMbG0q9fP8LCwjCZTLRo0aLU9h999BFdunTBz8+PkJAQBg4cyKFDhwq1OXPmDCkpKVx77bWOY507dyYtLY3k5GTnf4jyqlULpk2DZs3gwAG46y74v/+DlBT39UlERMQDeXVwM3HiRNatW0erVq1o1KhRqW3nzZvHoEGD8PPzY9asWcTExLBmzRq6devGkSNHHO3S09MBaNiwoeNY/s/559zCZIIHHoC9e+Gpp8BigX//G9q1g5dfto/siIiIS0VFRRETE+PubkgZvDq42b9/PydPnmTNmjU0bdq0xHYnT55kwoQJdO7cmfXr1/Poo48yadIkvvzyS44ePcrkyZMdbQMDAwFITU11HDtz5kyhc24VGAivvAI7d8LNN8PZszB+PHzxhbt7JiIiBaxfvx6TyeT4DpHq49XBTVhYWLnaffrpp2RkZDB69Ghq1bpYK7Rr16706NGDjz/+mOzsbMA+StO8eXN27drlaLdz504CAwPLnPaqVh07wsaN8O678OCD0LfvxXPuXBskIiLiZl4d3JTX1q1bAejWrVuRc926dSM9PZ2EhATHsb/+9a/MmDGDI0eOcPz4caZOncrQoUMdeVsulZWVRVpaWqFXtTCbYehQWLrUPm0FcOYMtG8Pb72lIEdEfEp1F+M9e/YsDz/8MAEBAVx55ZW8+uqrhc4vXryYrl27EhgYSJMmTRg0aBDHjh0DIDk5mdtuuw2ARo0aYTKZGDp0KABffvkl3bt3p2HDhlx22WXcc8897N+/v1o+U01RI4KbX3/9FaDYLcn5xwr+P8vEiRO59dZbad++PeHh4bRr146ZM2eWeP3Y2FgaNGjgeDVv3tzJn6AC3noLfvnFvrPqxhth+3b39UVExEncUYx33LhxxMfHs3z5clavXs369evZsWOH43x2djbTp09n9+7d/Oc//+HgwYOOAKZ58+b861//AuCXX37h6NGjzJ49G7AHTWPGjGHbtm2sXbsWs9nMn/70pyJla6QKDB/Rvn17IzQ0tNhzPXv2NAAjNze3yLm4uDgDMD755JNK3/v8+fNGamqq45WSkmIARmpqaqWvWWk5OYYxd65hBAUZBhiGyWQYjz1mGKdOVX9fRKTGO3funPHzzz8b586dq/Q1UlJSDLPZbACOl8ViMVJSUpzY08LS09ONOnXqGEuXLnUcO3nypOHn52c88cQTxb5n69atBmCkp6cbhmEY8fHxBmCcPn261HsdO3bMAIw9e/Y4q/ser7TnIjU1tcrfoTVi5Mbf3x+wTx9d6tzvCfHy21RG3bp1CQoKKvRyG4sFRo2yj978+c9gGPDmm9C2LSxe7L5+iYhUkjuK8e7fv5/s7Gxuuukmx7Hg4GDatGnj+H3nzp307duX0NBQAgMDiYqKAuDw4cNlXnvQoEGEhYURFBREy5Yty/U+Kb8aEdw0a9YMoNh52tKmrLxakyb2YGbdOntgc+wYrF3r7l6JiFSYO4rxGoZR6vmzZ89y5513EhAQwOLFi9m2bRvLly8HcGxQKcm9997LyZMneeedd/juu+/47rvvyvU+Kb8aEdxERkYCsGnTpiLnNm3aREBAAG3btq3ublWP226D3bvtuXBeeuni8d9+g4wM9/VLRKSc3FGMNzw8nNq1a7NlyxbHsdOnT7Nv3z4AEhISOHHiBC+++CK33HILbdu2dSwmzlenTh2AQtntT548yd69e5k0aRJ/+MMfaNeuHadPn3bZ56ipakRw07dvX/z9/ZkzZw45OTmO49u3b2fjxo3079/f8RD6pDp1YOxYaNz44rFhw+Dqq2H5cvvUlYiIB6vuYrwBAQFER0czbtw41q5dy48//sjQoUMdI0hXXXUVderUYe7cuRw4cIAVK1Ywffr0QtcIDQ3FZDLx+eefc/z4cTIyMmjUqBGXXXYZCxYsICkpiXXr1jFmzBiXfpaaqFbZTTzXBx984CifcPz4cbKzs3n++ecBe76aUaNGARASEsKMGTOIiYkhKiqKwYMHc+LECWbNmsUVV1zBc88957bP4BbHj8OePfbSDfffby/lMHculDNvkIiIO1it1mpdQvDyyy+TkZFBnz59CAwM5KmnnnIkeG3cuDGLFi1i4sSJzJkzh86dO/PKK6/Qp08fx/ubNWvGtGnTeOaZZ/jLX/7Cww8/zKJFi1i6dCmjR4+mQ4cOtGnThjlz5jjW64hzmIyyJhY9WFRUFBs2bCj2XGhoaJFaUEuWLOHVV19l7969+Pv7c8cddxAbG+tYzOUsaWlpNGjQgNTUVPcuLi5NZibExsLMmfbSDfXqwcSJ9mzHdeu6u3ci4iPOnz/PwYMHadmyJfXq1XN3d8RDlPZcOOM71KuDG0/lFcFNvl9+gZEjLy42joiAzz+H1q3d2y8R8QkKbqQ4rg5uasSaGylFmzawZo09y/GVV9qzGrszCWElVHfWUhER8WwKbsReuuHBByEhAf7zH/Dzsx/PzYVFi6DAImxP446spSIi4tkU3MhFQUH2gpz53noL/vIX6NIFvv3Wff0qgc1mY/jw4Y7kXnl5eYwYMUIjOCIiNZyCGylZw4YQHAw//ADdu8Mjj9h3WnkId2QtFRERz6fgRkr20EP2Bcf5+STefde+RmfBAvCAAm/uyFoqIpWjvStSkKufBwU3UrqQEFi40D4t1akTnD4NI0bY61e5mTuylopIxeT//6dKC0hB+c9D/vPhbNoK7gJetRW8InJyYN48mDYN1q+Ha65xd48A+9qbpKQkwsPDFdiIeBjDMDh8+DAXLlygadOmRUZbpebJy8vjyJEj1K5dm6uuugqTyVTovPLceCifDW7yZWRAQMDF3198Ea66CgYOtO+8EhEpIDs7m4MHDxZZIyc1l9lspmXLlsWWPlJw46F8Prgp6Oef7SM4OTn2Ip1vvAHt2rm7VyLiYfLy8jQ1JQ516tQpcRTPGd+hXl1bSjxAq1YwdSo8/zzEx9sDnbFjYdIk8Pd3d+9ExEOYzWZlKJZqo8lPqZq6deHZZ+0jOHffba9TFRtrrzi+YoW7eyciIjWQghtxjpYt4bPP7BmOr7oKDh2CP/8ZTpxwd89ERKSG0bSUOI/JBH37wu2326epmja1byXPl5MDtfTIiYiIa2nkRpyvfn371NTjj1889vXX0KHDxerjIiIiLqLgRqrH9On2bMe33w6DBsHRo+7ukYiI+CgFN1I9Pv3UntXYbIaPPoK2bWHOHI+pOG6z2YiPj1fRTRERH6DgRqpHw4Ywdy5s3QrXXw9pafDEExAZCdu2ubVrcXFxhIaG0rNnT0JDQ4mLi3Nrf0REpGoU3Ej16tIFNm+Gt9+GRo1g1y44fNht3bHZbAwfPtyROTUvL48RI0ZoBEdExIspuJHqZzbbi2/+8gu8+ircf//Fc4mJ1VpxPDExsUhK+NzcXJKSkqqtDyIi4lwKbsR9GjeGMWMu1qM6eRJuugl69IAffqiWLkRERBRJAW6xWAgPD6+W+4uIiPMpuBHP8f33kJUF334LnTvDU09BerpLb2m1WlmwYAEWiwWwBzbz589XdXERES+mwpkuUKMKZzqbzWYfzfnkE/vvTZvCrFnQr59LK47bbDaSkpIIDw9XYCMi4kaqCu6hFNw4wVdf2beO56996dULPv9cGY5FRHycM75DNS0lnqlXL9izB6ZNsxfnDA1VYCMiIuWibwvxXPXqweTJ9gKcjRpdPL5/v32n1V13ua9vIiLisTRyI56vVSsIDrb/bBgwciTcfbd9C7kbc+SIiIhnUnAj3iU3Fzp1sk9RLV8O7drBSy/BhQvu7pmIiHgIBTfiXWrVsgczO3fCLbdAZiY8/TRcey1s3FitXVE9KhERz6TgRrxThw6wYQO89549GeDPP8Ott8J//lMtt1c9KhERz6Wt4C6greDV7PRpePZZiI+316qqW9elt7PZbISGhhYq22CxWEhOTlaOHBGRKtJWcBGw76R68017huP8wCYnBx5+2CUVx1WPSkTEsym4Ed/h53fx5zfegA8+gBtugMces4/uOInqUYmIeDYFN+KbHnwQHnrIvnX8rbegTRt4/33771WkelQiIp5Na25cQGtuPMj69faRm7177b/fcot9CqtDhypfWvWoREScT7WlPJSCGw+TnQ2vv24v5ZCZCT17wtq17u6ViIgUQwuKRcqjTh0YP94+evN//wezZ188d+GCU6aqRETEcyi4kZrjqqvgn/8sPCU1fry9RpV2OomI+AwFN1JznTgBCxbAl1/aA55p0+D8eZfeUlmNRURcT8GN1FwhIfYyDrffDllZMHWqPcj56iuX3E5ZjUVEqocWFLuAFhR7GcOATz6BmBg4etR+7IEHYO5caNLEKbdQVmMRkfLRgmIRZzCZoH9/SEiAJ58EiwVWr3bqLZTVWESk+ii4EckXFASvvWYv4/Duu4VHbX7+uUqXVlZjEZHqo+BG5FKdOsH991/8feVKaN8e/vIXOH68UpdUVmMRkeqj4EakLPnFNxctspdxmD8fLpliKo/o6GiSk5OJj48nOTmZ6Oho5/ZTREQALSh2CS0o9kFbtsDf/ga7dtl/v/56e82qzp3d2i0REV+jBcUi1eXGG+0jOLNnQ2AgbN0KkZHwwgtOvY3y4IiIVJ2CG5HyqlULRo+GX36BgQPtU1MdOzrt8sqDIyLiHJqWcgFNS9UQO3fCdddd/P2LLyAsDNq1q/CllAdHRMRO01Ii7lQwsDl2DAYPhmuugQkT4OzZCl1KeXBERJxHwY2IM+TkQPfu9irjL74IV18Nn35a7rcrD46IiPMouBFxhqZNYcUKe0ATGgqHD8N990GfPnDwYJlvVx4cERHn0ZobF9Camxru7Fn7LqpXXrGP5NSvbw9wGjcu8602m42kpCTCw8MV2IhIjeSM71AFNy6g4EYA2LsXRo60T1HNm+e0y9psNhITE4mIiFAAJCI+RwuKXSArK4thw4YRFhZGQEAAERERvP766+7ulnijdu1g7Vp49dWLx375BR56CI4cqdQltV1cRKRsCm4ukZOTQ5MmTVi9ejXp6eksW7aMF154gWXLlrm7a+KNTCaoW/fi76NHw5Il0LatPSFgTk65L2Wz2Rg+fLhjV1VeXh4jRoxQwj8RkUsouLlE/fr1mT59OuHh4ZhMJjp37kzv3r359ttv3d018QWxsfbSDenpEBMDXbvC5s3lequ2i4uIlI9HBjexsbH069ePsLAwTCYTLVq0KLX9Rx99RJcuXfDz8yMkJISBAwdy6NAhp/QlJyeHzZs306lTJ6dcT2q4zp3twcz8+dCoEezeDd26wV//CidOlPpWbRcXESkfjwxuJk6cyLp162jVqhWNGjUqte28efMYNGgQfn5+zJo1i5iYGNasWUO3bt04csm6hqysLDIyMkp85ebmFrn+qFGjaNiwIQ8//LBTP6PUYGYzDB9uX3/zl7/Yj8XFwXvvlfo2bRcXESkfj9wtdeDAAcLCwgDo0KEDGRkZJCcnF2l38uRJWrRoQevWrfnuu++oVasWANu3b+f666/nkUceYeHChY72AwYMKHXtTHx8PFFRUY7fx4wZw9dff826desICQkpd/+1W0oq5JtvYM4cWLwY6tSxH8vOvvjzJbRdXER8WY3YCl5acPOPf/yD6OhoFi1axJAhQwqdi4qK4vvvv+fEiRPUKeFLojQxMTF8/fXXxMfH07gc+UkKUnAjVZKdbV+L07MnPPccVPAZ0lZxEfFmNX4r+NatWwHo1q1bkXPdunUjPT2dhISECl939OjRjhGbigY2IlX2xRewZ499N1XbtrB0KZTz3yDaKi4i4uXBza+//gpQ7L9O849VdJvsoUOHmDt3LklJSY5cNwEBAfTu3bvE92RlZZGWllboJVJpf/oTfPklhIfD0aMwcCDccYd9jU4ptFVcRMTOq4ObzMxMAOoWzCPyu3r16hVqU16hoaEYhsH58+cLLTZetWpVie+JjY2lQYMGjlfz5s0rdE+RInr1so/eTJtmz5Ozdi107AiTJtlLOhRDW8VFROy8Orjx9/cH7CMnlzp37lyhNq40YcIEUlNTHa+UlBSX31NqgHr1YPJk+Okn+OMf7UHN5s3w+8L5S2mruIiInVcHN82aNQOKn3oqbcrK2erWrUtQUFChl4jTtGoFK1fCv/4Fb7xhz3oMcOYMFMjnVNJWcbDvBNT0lIjUFF4d3ERGRgKwadOmIuc2bdpEQEAAbdu2re5uiTifyQT3329fYJxv0iR7Uc6ZM+07rIDo6GiSk5OJj4937DDUAmMRqWm8Orjp27cv/v7+zJkzh5wCNXq2b9/Oxo0b6d+/f6W2gYt4vJwc+PlnyMyEZ56Ba6+F9esB+whOfr4mLTAWkZqo+Ml7N/vggw8c5ROOHz9OdnY2zz//PAANGzZk1KhRAISEhDBjxgxiYmKIiopi8ODBnDhxglmzZnHFFVfw3HPPue0ziLhUrVr2RcaLF8NTT8HevXDbbfDnP8Mrr0CTJqUuMFb+GxHxZR6ZxC8qKooNGzYUey40NLRIQr8lS5bw6quvsnfvXvz9/bnjjjuIjY2lZcuW1dDbopTET6rV6dP2Kaq33rLnwwkKgn/9C1vbtoSGhhYKcCwWC8nJyQpuRMRj1YgMxd5IwY24xfbt8Le/wf799pw4jRsTFxfHiBEjyM3NdSwwjo6OdndPRURK5IzvUI+clhKRSujaFbZscQQ2YF9g3Ot//yOpUyfCr7tOIzYiUiN49YJiEbmExWLfQZVvxQqskyYRFR2N9euvSyzjYLPZtF1cRHyGghsRX9a4MbRvD8ePw1/+Aj162DMfF6B6VCLia7TmxgW05kY8yoUL8PrrMHWqfeu4xQJPPglTpmA7c0aLjkXEo9T4quAiUg61a8O4cZCQYE8EmJtr3y5+zz0lbhffvHmzpqlExGspuBGpKZo3t5dw+OILCAuDp58uth6VyWRiwIABmqYSEa+l4EakprnrLnvSv969L9aj+j3AyQ90lNVYRLyZghuRmqhAWZLo++4j2d+feOCjxo25dBleflZjERFvoeBGpKYLDsb67rtENWtGt99+K/JHwWKxEB4eru3iIuI1FNyI1HQmEzzwAOzdi/Wpp1hgMmH5/ZTFZGL+m2/y1VdfFdkurmBHRDyVtoK7gLaCi1fbswfbI4+QtH074SYTrF5NaK9ehXZVmUwmTCYTeXl5mM1mFixYoLIOIuIUqi3loRTciNfLy4P334dDh4jv0YOePXuW2ly5cUTEWVRbSkRcw2yGoUMBiLDZMJvNRfLhFJS/6FjBjYh4Aq25EZFSObaLm0yA/Y+G6ZI2+YuORUQ8gYIbESlTdHQ0yQcOEP/44xwKCOAduLjo2GJh/vz5GrUREY+h4EZEysXaogVRc+Zg3beP6EGDSAbigeSGDYkODHRz70RELlJwIyIVc+WVsGQJ1rVriWrTBuvJk/Drr9oaLiIeQ8GNiFROz57www/w1lvE1a9fOA/Om2+6u3ciUoNpt5SIVF6dOtjuuYfhoaGF61GNHEmnjAwyunYlonVrrccRkWpV4ZGbw4cPc+7cOVf0RUS8UGJiYpFt4rnAjU8/Tc8//EGVxUWk2lU4uGnZsiXLly93/J6ZmcmYMWNUWE+khoqIiHBUEy8oP9zJy8tjxLBh2Pbvr96OiUiNVeHg5tKExufOnWP27NkcPnzYaZ0SEe/hyINjsW8OLy7QyTUMkm69FY4fr+7uiUgN5JQFxargIFKzRUdHk5ycTHx8PFu2bCkS4FiA8IgIbOfPV2hHlXZgiUhlaLeUiDiF1WolKiqKyMjIQiM5FouF+XPn8tU99xDaosXFHVWDBkFOTonXi4uLK1KJXESkPBTciIjTFRzJSU5Optd99zF8/PjCO6o++ghbx47w7bdF3m+z2Rg+fHjh9iNGaARHRMqlUlvBv/vuO2rVsr81PT0dgA0bNnDixIli2/fv37+S3RMRb2W1Wh1bwOPj44vdUZWUkIC1e3d45BGYORNCQoASdmCpOKeIlJPJqOCCGbPZjMl0sWxewbcXPJ5/zmQykZubW8VuehdnlGsX8SU2m43QArlwwD5dldyvH9alS+0HgoPtAc4jj2A7cqT49snJCm5EfJwzvkMrPHLz7rvvVupGIlJz5e+oGjFiBLm5uY5im/TqRXy3bkS8+SbWhAQYNgyOH8c6YUKx7RXYiEh5VHjkRsqmkRuR4tlsNpKSkggPD+err75yrKsxm80s6NePXps2kThnDhFdu2K1Wgu1V2AjUjM44ztUwY0LKLgRKV1x01QmkwmTyXQx2Jk/n+hvv4U774QBA+CSaW8R8U1umZYqaPPmzXz++efs27ePtLQ0goKCaNu2Lffccw833HBDVS4tIj6suAXDhmE41vDl747qlZeHddEiWLgQ3ngD2rYtci2bzUZiYiIREREa3RERoJIjN+np6QwaNIiVK1cWm8DPZDLRp08fFi9eTP369Z3SUW+ikRuR0hU3clOc+EceIerDD+H8eahdG8aNg2efBX9/wJ4Lp9DU1oIFREdHV8dHEBEXcdu0VO/evfnqq6+46aabGDZsGNdccw1BQUGkpaWxc+dOFi5cyJYtW7j77rv57LPPKtUxb6bgRqRscXFxjgXDZrO50MgNFNgdlZ0Njz8OK1faT4SGwty52K67TjuqRHyQU75DjQpas2aNYTKZjNGjR5fabtSoUYbZbDbWrl1b0Vt4vdTUVAMwUlNT3d0VEY+WkpJixMfHGykpKcbChQsNi8ViAIbFYjEWLlx4sWFenmEsX24YzZsbBhhG69bGutWrDaDIKz4+3l0fR0ScwBnfoRUeuYmOjmbNmjUcPHjQkV69ODk5OYSFhXHnnXeycOHCykVeXkojNyKVU+buqLNnYfp0uP12bG3bauRGxAc54zu0wuUXtm/fzn333VdqYANQq1Yt7rvvPrZt21apjolIzZNfn6rE4KR+fXjxRbj99ovVyH/fRWUxm+25c0DFNkVquAoHNzabjXbt2pWrbbt27UhJSalwp0REyiN6yBCSr7qKeCA5Lw8WLFCxTRGpeHCTv+W7PAIDA8nIyKhwp0RESmKz2S6OzNSqhXXXLqJGjgRg+NatKrYpIhUPbnJzc4vUkCpJTawrJSKuExcXV3RkpmFDmDePxLff5tKN5fnFNkWkZqlyVfDSbNmypTKXFxEpwmazOXLaQIFEf716YbVaibj7bsxmc+EFxmYz4eHh5bq2EgGK+I5KBTfz5s1j3rx5jqrfJSnrvIhIeRWX1Th/ZMZqtRYtzmk2M3/BgovBytat0LUrmAsPWCsRoIjvqfBW8Pfee6/CNxkyZEiF3+PNtBVcxPmKy2pc3NbvYreT79oFXbrATTfBm29iCw4mMTGRgIAAbrzxRm0nF/EgbqktlR+oHD9+nAMHDhASEkKrVq0qdXMRkfIqMjJjsTB//vwiQUj+KE4hv/wCfn7w7bfEXXstw4G830eWL/33XcHRIBHxThUeucnLy+Oxxx5j4cKFjj8K119/PcuXL6dJkyYu6aS30ciNiOuUmeivJCkp2EaMIHTVqiILjwvSyI2Ie7klid+8efNYsGABTZo04f7776djx4589913DBs2rFIdEBGpiDIT/ZWkeXMSx40rNrAx/74Op6TRIBHxLhWelnr//fdp164dW7ZsITAwEIBhw4bx7rvvcvr0aRo1auT0ToqIOENERETRHVUmE5u3bOHs2bMVHw0SEY9U4ZGbX375haFDhzoCG4DHH3+cvLw89u3b59TOiYg4Q37iP8BesuH38jH5IzWRkZH20aDERFi1yp1dFREnqHBwc/bsWZo2bVroWP7vmZmZzumViIiTXJr4DyA5OZn4+HiSk5OJzp9SP3cO/vpXuOsu+L//A5WOEfFaFQ5ugCK5a/J/r+DaZBERlyop8R9QdN2OYcD994PFAv/+N7RrBy+/DBcuuKPrIlIFlUri9/nnnxeq15KZmYnJZGLp0qVs3769UFuTycS4ceOq1ksRkUooK/FfIf7+9mDm4Yfhscfgm29g/HhYtAjeegt69Ki+jotIlVR4K7jZXLHBnppYX0pbwUU8Q3kT/xV5X0oKiW+8QcSCBVhPn7Yf3LEDOncudG2VbBBxPrck8ctflCci4unKm/ivoCLlGG69leiGDQsFNirZIOLZKjxyI2XTyI2IZylv4r8SR3r278f6+2Jk265dhF53XaF8ORaLhc2bN5ORkaGRHJEqcsvIjYiItym2JEMxSlyjc/CgI7hJnDy5SCLA3NxcR40qjeSIuF+ldkvVFOfOnSM8PJyAgAB3d0VEqkF+kr+CLBYL4eHhF9tMnVrsH85Ld2QV3HQhItVLwU0pJk+e7MiLISK+L3+NzqVJ/qxW68VEgJdfzoKFC7H8HgQV90c0f0eWiLiHgpsS7Nixg1WrVvH000+7uysiUo2io6MLJ/mLji4+EeChQ8SvXs2WkSOL/CG9dLRHRKqXRwY3sbGx9OvXj7CwMEwmEy1atCi1/UcffUSXLl3w8/MjJCSEgQMHcujQoUrfPycnh2HDhvHmm29Sp06dSl9HRLxTweKcpSYCvOMOIufNY8HMmVh+T2bqGO1p2NCeGFBEqp1HBjcTJ05k3bp1tGrVqsxCnPPmzWPQoEH4+fkxa9YsYmJiWLNmDd26dePIkSOF2mZlZZGRkVHiKz8fz8svv8x1111HDyXtEqnxSksEmC96/HiSDx++ONrzyCPQty/cfTfs31/dXRap8Txyt9T+/fsJCwsDoEOHDmRkZBTb7uTJk0yYMIHOnTuzfv16atWyf5w//vGPXH/99UyePJmFCxc62g8ZMoRly5aVeN/4+HisVitvv/02O3fudOInEhFvVWwl8WKmnQrtyPrxR3uG4+xsaN8eJk60ZzuuV686uy5SY3nkyE1+YFOWTz/9lIyMDEaPHu0IbAC6du1Kjx49+Pjjj8nOznYcX7p0KYZhlPiKiorim2++4bfffqN169aEhITQt29fzp49S0hICBs3bnT6ZxURz1baIuMSdegAP/wAt98OWVkwZQp07AirV1dTr0VqNo8Mbspr69atAHTr1q3IuW7dupGenk5CQkKFrtm/f3+SkpLYtWsXu3btYuHChfj7+7Nr1y5uuOGGYt+TlZVFWlpaoZeI+I7iFhmXqU0bezCzdClceSUkJWHr1Yv4qChsP/7o+k6L1GBeHdz8+uuvAMX+Cyr/WEVzTfj7+zuGl61WK40bN8ZkMmG1Wqlbt26x74mNjaVBgwaOV/PmzSv4SUTE0xVcZFxuJhM8+CAkJBB3++2EAj03bCD0mmuIi4tzWV9FajqvDm4yMzMBig066v0+t53fprKioqJKXPOTb8KECaSmpjpeKSkpVbqniHi//Lw4NpsNW1oaw9etc2Q2zt9xte3bb4l/803HP8IKvqe464hI+XjkguLy8vf3B+zTQn5+foXOnTt3rlAbV6pbt26JozoiUvNcWlhzzJgxxe64uvGWW8gzDMyjRjG4f38++OSTQiUcABXoFKkErx65adasGVD81FNpU1YiIq5SXF6c1157rUhZB4C83/Pg5BkG7y1bVug9w4cPLza/jkZwRMrm1cFNZGQkAJs2bSpybtOmTQQEBNC2bdvq7paI1GDF5cXJy8tjzJgxjh1XxQU6l8rLyyszv46IFM+rg5u+ffvi7+/PnDlzyMnJcRzfvn07GzdupH///sowLCLVqqTim0888YRjx9WWLVvKDHDMJlOZRTxFpHgeuebmgw8+cJRPOH78ONnZ2Tz//PMANGzYkFGjRgEQEhLCjBkziImJISoqisGDB3PixAlmzZrFFVdcwXPPPee2zyAiNVN+XpwRI0aQm5tbJC9O/v+9tM1DDz3E4sWL7b8D86dPhyZNSryOiJTMZBieV/wkKiqKDRs2FHsuNDSU5OTkQseWLFnCq6++yt69e/H39+eOO+4gNjaWli1bVkNvi0pLS6NBgwakpqYSFBTklj6IiHvZbDaSkpIIDw8vMSC5tI3j97p1sd5008U2r7xCeN++WG+7rTo/gohbOOM71CODG2+n4EZEnGbHDoiMhFq1YOxYmDQJKrgL1GazkZiYSEREhEZ+xOM54zvUq9fciIj4vJAQuOceuHABYmPh6qthxYpyvz0uLo7Q0FB69uxJaGiokgdKjaCRGxfQyI2ION2KFTB6NPy+HpF774U5c6BFixLfYrPZCA0NLVL0Mzk5WSM44rE0ciMiUlP06QM//QQTJkDt2vDZZ9C9u73yeAEFMxoXty1d28mlJlBwIyLiLerXhxkzYPduuO02+PvfoUC6i0unoLZv367t5FIjKbgREfE27drB2rUwbJjjkO0f/2D4X/9aKKPxhAkTmDlzpiN5oLaTS03hkXluRESkeMXufMrJIXHSJPIuaZubm0vXrl1JTk4uc1u6iC/RyI2IiJcocedTrVpExMUV+YNuMZsdAU1UVJQjsFGlcfF1Cm5ERLxAcQU5R4wYwbZt24iPj4eOHVmwYAGW39fYWID5eXlYn3sOTp50XEdbw6UmUHAjIuIFStr5dOONNzoCFcxmkg8dIn75cpL79yca4J13YOtWoOQASSM44msU3IiIeIHiCnICRQIVgKj77sO6bBn8978wfjz07g2UHCBpa7j4GgU3IiJeIL8gZ/7Op+ICnSKBSvfuMHOm49eIBg2KrsvR1nDxQQpuRES8RHR0NMnJycTHx7Nly5YK57CxbtrEAuzrccC+4Hj+229rB5X4HAU3IiJeJH/nU2RkZKGRnHLlsBk1iugvvyS5RQvigeS8PKKXLYN9+6qn8yLVRLWlXEC1pUSkuthstornsDl/Hl56yZ7tOCvLnuV44kSYMsW1nRUpB9WWEhGp4S7NYVMu9erB5Mn2WlV//KO9PtWZM47TyoMj3k7BjYhITdWqFaxcCcuXw7RpgPLgiG/QtJQLaFpKRLyRzWYjNDS00HZxi8VCcnIyQNGyDyIuoGkpERFxmpLy4MweO1ajOeJVNHLjAhq5ERFvVNzITf6/gAuGPPmjOQVHcIot6ClSCRq5ERGRKstfQAwU2V4+5ppriq02XjBZoNbpiKfRyI0LaORGRLxFXFyco96U2WxmwYIF9OrVy7G9HChxHY7Vai1xnc7mzZvJyMjQSI5UmEZuRESk0koqpAk4tpdfWvbBkSywcWP4+99J/P77Mgt6aiRHqlstd3dARETco7RCmgVHW6KjowuN5litVmzjxpH4yisENGyI2WQi75JJgEsDpl69emkER6qNghsRkRoqv9L4pVNKxdWnyh/Fgd+nsl57jTzAfOYMg4HFQC4UuR4UHzCJuJKmpUREaqgSp5xKCUKKTGVhD2w2A/FmM1sGDqxwQU8RZ1NwIyJSgxWsNJ6cnEx0dHSp7YudygLO3nILUXl5RC5ZwoIbbqhYQU8RJ9NuKRfQbikR8VWlZTG2/vADjBsHn36KrV69ihf0FEG7pUREpJqVOpV1113w44/we0ATFRWF9eWXYepUeyXyMqhgpziLRm5cQCM3IuLrbDZb2SMzP/4IHTvaf27VCubNs1chL0Zx+XbKmiIT3+SM71AFNy6g4EZEBDAM+Oc/ISYGjhyxH3vgAZg1Cy4p3VBaokCpWTQtJSIinstkgn79YO9eePJJsFjswU7btvDqq9gOHiQ+Pp5NmzaVuH1cU1VSGQpuRETEtYKC4LXX4PvvoVs3OHuWuClTCA0Pp2fPngwYMACTyVToLRaLhe3bt6tmlVSKghsREakenTrBf/+L7ZVXGJ6Z6RityV8dUXCRcmxsLE8//XSRTMcawZHyUHAjIiLVx2wmsXPnIuUaDMPgo7/8hfi1a0lOTqZr164lTlWJlEXlF0REpFoVW/YBuGnhQnuunDffhAqUhhC5lEZuRESkWhWbK2fgQKxBQbB1K1x/PdYXX2TB668r07FUiraCu4C2gouIlK1IrpyjR2HsWPjwQ3uDyy/HFhtLUljYxWrkNhuJiYlEREQ4LdBxxTWl8rQVXEREvJYji3F+QHHllbBkCaxdC23awLFjWK+6ytEmLi7O6bunXHFNcT+N3LiARm5ERKooKwtWroQ//Qkof6K/iozCKHmgZ9LIjYiI+Ka6dR2BDUBiKYn+8lV0FKbYCufakeUTFNyIiEi1qEq24Qg/vyJfWBaz2bF7ymazOWpTQfny4uTv2ip0Te3I8gkKbkRExOWqurbFeu+9LHjzTSy/ZzK2APPNZqyLFkFWVqVGYUqtcC5eTWtuXEBrbkRELnLm2habzUbSunWEz5+PddMm+8H27bGtWEFoRESl7lGuCudSbbTmRkREPJ4z17ZYrVaiHn4Y6zff2LeMN2kCd92FNSys0qMwRXZtidfTyI0LaORGROQil+5KSk2FWrWgfn37vVavJmnFCsLHjsXaokXVri1uoZEbERHxeK5c22JLTyd+61b7wuG8PKxTpxL1xhtY+/aF/GkrqXE0cuMCGrkRESnK2Wtb4uLiHDukzGYzC95+m2iAp5+G06ftjaKj4cUXISSkyveT6uGM71AFNy6g4EZExLVKneqqWxeeeQb+8Q/7ieBgmDkTHnkEzJqw8HSalhIRkRqp1EXKjRtDXBx88w106gSnTsGwYfDxx27qrVQ3BTciIuJ1ypWA7+abYccOmDULoqKgX7+L5zRp4dMU3IiIiNcp9yLlWrUgJgbWrYPf23LuHPToAUuXKsjxUVpz4wJacyMiUj0qtUj5tdfgqafsP//hD/DGG/Yq5OIRtOZGRERqtEol4Bs5EqZPh3r1YO1a6NgRJk2CzEzXdVSqlYKbEnz22Wd07tyZgIAArrzySl5++WV3d0lERCqhSMHOunXtwcxPP8Fdd8GFC/DCC9C+PXz+uXPuIW6l4KYYX375JY8++igvv/wyZ86c4ZdffqF3797u7paIiFRQqQU7w8Lswczy5dC8OSQnw/z5zr2HuIXW3BQjMjKSRx55hL/97W+Ver/W3IiIuF9JuXA2b95MRkYGERERF6ezzp6F55+H4cOhZUv7sbQ0+9RVnToVvkdycjJg37Je6D5SJp9dcxMbG0u/fv0ICwvDZDLRooz6IB999BFdunTBz8+PkJAQBg4cyKFDhyp177Nnz7Jjxw4yMjJo27YtV1xxBX369OHgwYOVup6IiLhHSblwbrzxxqKjLPXrQ2zsxcAG4Ikn4JprID6+wveYPXu2RnPcyCNHbkwmE8HBwXTu3JkdO3YQFBTkiIIvNW/ePB5//HFuvvlmHnroIU6cOMHrr79O3bp12bZtG02bNnW0zcrK4sKFCyXe18/Pj6NHj9K8eXM6dOjAZ599xuWXX05MTAzbtm3j+++/x2Qyldl/jdyIiLhfcaMqlyqxgOfp09CuHfz2m/33P/8ZXnnFXoW8jHvk599xSaHQGsAp36GGB9q/f7/j5/bt2xuhoaHFtjtx4oQREBBgdO7c2bhw4YLj+LZt2wyTyWRER0cXav/ggw8aQImv+Ph448yZMwZgvPPOO473HT9+3ACMQ4cOlav/qampBmCkpqZW4FOLiIizLVy40LBYLAZgmM3mEv/2F+v0acMYOdIwTCYjBYx1/v5GynPPGUZOTon3sFgsxtixYyt2HynEGd+hHjktFRYWVq52n376KRkZGYwePZpatWo5jnft2pUePXrw8ccfk52d7Ti+dOlSDMMo8RUVFUWDBg0IDQ0tNEJTntEaERHxPNHR0SQnJxMfH8+WLVvKzmpcUMOGMG8ecc8+SyjQMzOT0MmTiQsLw/bf/zp2RxW8R3JyMk888UTF7iNO55HBTXlt3boVgG7duhU5161bN9LT00lISKjwdR999FFmz55NSkoK58+fZ9KkSXTp0oWrrrqqyn0WEZHqlZ8LJzIysnxZjQuw2WwMnzGD/AmmPGDY4cOERkUVWk9TMN9OubMni8vUKruJ5/r1118Bin1g8o/ZbDY6depUoeuOHz+e06dP07lzZ/Ly8ujevTv//ve/S2yflZVFVlaW4/e0tLQK3U9ERKpHdHQ0vXr1KndW4+IWDBuA8fuxvLw8RgwfTq877sBa4B/AFb2POJdXBzeZv2eTrFu3bpFz9erVK9SmIsxmMzNnzmTmzJnlah8bG8u0adMqfB8REal++aMr5ZFfoLO0Rcm5eXkk3X031iVL7FXIK3EfcS6vnpby9/cHKDRqku/cuXOF2rjShAkTSE1NdbxSUlJcfk8REXG9S6eYzGZzkXWYFiD8xx+hc2d7zar09HJdW1mNXcerg5tmzZoBFPtglDZl5Wx169YlKCio0EtERHxDwQXDhw4d4p133im8nuall7Defz/k5tqLcrZtC598UmrFcWU1di2vDm4iIyMB2LRpU5FzmzZtIiAggLZt21Z3t0RExMcUXDB86e6o6HHj4F//gpUr7SUdjhyB/v3h8ceLvZbNZmP48OGOqa68vDxGjBihERwn8urgpm/fvvj7+zNnzhxycnIcx7dv387GjRvp378/dUpJmy0iIlIZxVYj790bfvwRpkyxF+d84IFi31tSVuOkpCRXdrlG8cgMxR988IGjfMLcuXPJzs7mqaeeAqBhw4aMGjXK0Xb27NnExMRw8803M3jwYE6cOMGsWbOoXbs227dvd0xdVSdlKBYRqeF++w2uuOLi73Fx0LQp9O5daj2qii6lsNlsPle/ymczFN96660lZhEuLlvx4sWLjeuuu86oV6+eERwcbDz44IPGgQMHqr/jv1OGYhERcUhONgx/f8MAw7j/fsM4fLhIVuOFCxdW+LILFy50ZF02m82VuoYncsZ3qEeO3Hg7jdyIiIhDejpMmwavv25fdFy/PkyZgu2BB0g6dKhSeXCcOfrjaXy2KriIiIjPCAy0F93cuRNuvhnOnoXx47Heey9RZnOlghGt2ymdghsREZHq0LEjbNwI774LISHw009wxx3wv/9V+FL5yQULUv2qixTciIiIVBezGYYOhV9+gREj4OmnoUmTi+fLuVJE9atKpzU3LqA1NyIiUi6GAfkZj7dvh1GjYN486Nq1XG+32Ww+V79Ka25ERES8WcFSDs88A999B9dfDyNHwpkzZb692Hw7ouBGRETEIyxeDA89ZB/NefNNaNMGPvig3FNVcpGCGxEREU/QpIk9mFm3zl6f6tgxePhhuO02++JjKTcFNyIiIp7ktttg926IjQU/P9iwAb75xt298ioKbkRERDxNnTr2NTh798L48TBs2MVzv/2mqaoyKLgRERHxVKGhMHOmfQs52BMA3nAD3HMPHDjg3r55MAU3IiIi3mLTJjhyBFauhPbtYfp0OH/e3b3yOApuREREvMUdd8CePfCHP9iDmsmToVMnWL263Jew2WzEx8djs9lc2FH3UnAjIiLiTdq0gTVrYOlSuPJKSEyEXr2gf3/Izi71rXFxcYSGhtKzZ09CQ0OJi4urpk5XLwU3IiIi3sZkggcfhIQEiImxr8nJy7MvRC6BzWZj+PDhjoKbeXl5jBgxwidHcBTciIiIeKugIJg1C3bsgNdfv3j8f/+Db78t1LQmVRJXcCMiIuLtrr0WCpZgGDsWuneHRx6B48eBmlVJXMGNiIiIL8nNtSf/A3j3XfsanQULsDZtWmMqiasquAuoKriIiLjdpk3wt7/BDz/Yf7/hBnjrLWyNG3t0JXFVBRcREZHidetmX4szaxYEBNgrjnftinXrVp+vJK7gRkRExFfVqmXfTZWQYN9ddcUVcPvt7u6Vyym4ERER8XXNmtnz4vzwg32HFdjrU40daw98fIyCGxERkZoiJOTizx98AK++as9w/OyzkJnpvn45mYIbERGRmuiWW+Duu+HCBZgxA66+GlascHevnELBjYiISE3UsiV89hn85z9w1VVw6BD07Qt9+kBysrt7VyUKbkRERGoqk8ke0Pz8MzzzjH0B8mefwYAB9jU5XkrBjYiISE1Xvz7ExsLu3dCzp30tjslkP+eFQY6CGxEREbG7+mpYuxZuvvnisRdegEGD4OhR9/WrghTciIiISPHOnIEXX4SPPoK2bWHOHMjJcXevyqTgRkRERIrXsCFs3AjXXw9pafDEExAZCVu2uLtnpVJwIyIiIiXr3Bk2b4a334ZGjWDXLrjpJhg+HE6dcnfviqXgRkREREpnNsOIEfZsxkOH2o+9/77HBje13N0BERER8RKXXw7vvgvR0bB3L4SHu7tHxVJwIyIiIhXTvbv95aE0LSUiIiI+RcGNiIiI+BQFNyIiIuJTFNyIiIiIT1FwIyIiIj5FwY2IiIj4FAU3IiIi4lMU3IiIiIhPUXAjIiIiPkXBjYiIiPgUBTciIiLiUxTciIiIiE9R4UwXMAwDgLS0NDf3RERExLvkf3fmf5dWhoIbF0hPTwegefPmbu6JiIiId0pPT6dBgwaVeq/JqEpoJMXKy8vjyJEjBAYGYjKZipyPjIxk27ZtJb6/uPNpaWk0b96clJQUgoKCnN5nVyjrc3raPSp7rYq8r7xtK/OMlHVOz5Br71Edz09521e1ja88Q9Xx/DjzPr7yN6ik8+V9fgzDID09naZNm2I2V271jEZuXMBsNmO1Wks8b7FYSv0ftrTzQUFBXvFHBcr+nJ52j8peqyLvK2/bqjwjZb1Xz5Br7lEdz09521e1ja88Q9Xx/DjzPr7yN6is8+V5fio7YpNPC4rdYOTIkVU67y2q43M48x6VvVZF3lfetlV5Rnzl+QHveoaq4/kpb/uqtvGVZ6i6Poc3PUPV8Teoon1yBU1LeYm0tDQaNGhAamqqV/yLSTyPniGpKj1DUhXV+fxo5MZL1K1blylTplC3bl13d0W8lJ4hqSo9Q1IV1fn8aORGREREfIpGbkRERMSnKLgRERERn6Lgxsfk5OTwxBNPEBwcTMOGDYmOjub8+fPu7pZ4kY8//pju3bsTEBBAixYt3N0d8TJZWVkMGzaMsLAwAgICiIiI4PXXX3d3t8SLPPbYYzRv3pygoCCaNWtGTEwM2dnZFbqGghsfM2PGDOLj49mzZw+JiYn8/PPPjB8/3t3dEi/SqFEjHn/8cZ577jl3d0W8UE5ODk2aNGH16tWkp6ezbNkyXnjhBZYtW+buromXGDVqFAkJCaSlpbFr1y52797NjBkzKnQNLSj2MVdddRUvvfQSAwYMAOCrr76if//+nDp1CovF4ubeiTf55z//ydixY0lOTnZ3V8TLPfzwwzRs2JA5c+a4uyviZU6ePMmAAQO4/PLLWbJkSbnfp5EbN4mNjaVfv36EhYVhMpnKHP7/6KOP6NKlC35+foSEhDBw4EAOHTpUqM2ZM2dISUnh2muvdRzr3LkzaWlp+oLyQa54hqRmqY5nKCcnh82bN9OpUycn9lw8gSufnxdffJHAwEBCQkL4/vvvGT16dMU6Z4hbAEZwcLBx++23G40aNTJCQ0NLbDt37lwDMG6++WbjrbfeMqZPn25cdtllRtOmTY1ff/3V0e7w4cMGYBw9etRxLDs72wCMnTt3uvDTiDu44hkq6JNPPin1muL9XP0MGYZhjBgxwujatauRlZXlgk8g7lQdz8/PP/9sTJw40UhJSalY3yrUWpxm//79jp/bt29f4kNx4sQJIyAgwOjcubNx4cIFx/Ft27YZJpPJiI6Odhw7ffq0ARgJCQmOY8eOHTMAIykpyfkfQtzKFc9QQQpufJ+rn6Enn3zS6Nixo3H8+HGn9ls8g6ufn3zLli0zoqKiKtQ3TUu5SVhYWLnaffrpp2RkZDB69Ghq1bpY57Rr16706NGDjz/+2LGKvGHDhjRv3pxdu3Y52u3cuZPAwEDtevFBrniGpGZx5TMUExPD6tWrWbt2LSEhIU7tt3iG6voblJuby759+yrUNwU3Hm7r1q0AdOvWrci5bt26kZ6eTkJCguPYX//6V2bMmMGRI0c4fvw4U6dOZejQoVpMXINV9BnKzc3l/PnzXLhwAcMwOH/+PFlZWdXWX/E8FX2GRo8ezddff826deto3LhxtfVTPFNFnp/U1FQWLVrEmTNnMAyDPXv2MH36dHr37l2heyq48XC//vorAFartci5/GM2m81xbOLEidx66620b9+e8PBw2rVrx8yZM6uns+KRKvoMffDBB/j5+TFo0CAOHz6Mn58fbdq0qZ7OikeqyDN06NAh5s6dS1JSkiPXTUBAQIW/nMR3VOT5MZlMLF68mLCwMAIDA+nbty/33HNPhXfa1Sq7ibhTZmYmQLGFxurVq1eoDUCtWrWYM2eOtlyKQ0WfoaFDhzJ06NBq6Zt4h4o8Q6GhoRjKMCIFVOT5CQoK4uuvv67yPTVy4+H8/f0Bip0WOHfuXKE2IsXRMyRVpWdIqsIdz4+CGw/XrFkzoPC0Qb7ShvpE8ukZkqrSMyRV4Y7nR8GNh4uMjARg06ZNRc5t2rSJgIAA2rZtW93dEi+iZ0iqSs+QVIU7nh8FNx6ub9+++Pv7M2fOHHJychzHt2/fzsaNG+nfvz916tRxYw/F0+kZkqrSMyRV4Y7nR7Wl3OSDDz5wpJ2eO3cu2dnZPPXUU4A9X82oUaMcbWfPnk1MTAw333wzgwcP5sSJE8yaNYvatWuzfft2x5Cf1Cx6hqSq9AxJVXj081OhlH/iNLfeeqsBFPsqLsvj4sWLjeuuu86oV6+eERwcbDz44IPGgQMHqr/j4jH0DElV6RmSqvDk50cjNyIiIuJTtOZGREREfIqCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn6LgRkRERHyKghsR8VlTp07FZDKRnJzs7q6ISDVScCMiIiI+RcGNiIiI+BQFNyIiIuJTFNyIiNutWrUKk8nEa6+9Vuz5W265hcsuu4zs7Gy2bt3K0KFDad26Nf7+/gQGBnLzzTezfPnyct1r6NChmEymYs+ZTCaGDh1a5PiyZcvo3r07gYGB+Pv7c8MNN/DPf/6zSLsvvviCW2+9lcaNG1OvXj2aNm1Knz59+Omnn8rVNxFxDgU3IuJ2d955J1deeSXvv/9+kXMHDx7k22+/ZcCAAdSpU4fly5ezb98+Bg4cyOzZs3n22Wc5deoU999/Px9++KHT+zZp0iQGDBhAYGAg06dPZ+bMmdSvX59+/frxxhtvONpt2LCBPn36kJqayjPPPMMbb7zBY489xtmzZ9m3b5/T+yUipTBERDzA2LFjDcDYvXt3oeNTp041AOO7774zDMMwMjIyirz37NmzRuvWrY127doVOj5lyhQDMA4ePOg4NmTIEKOkP32AMWTIEMfv27dvNwDjmWeeKdK2b9++RmBgoJGWlmYYhmE8+eSTBmAcO3asXJ9XRFxHIzci4hGGDBkCUGT0ZvHixbRt25brr78egPr16zvOZWZmcvLkSTIzM+nZsyd79+4lLS3NaX3KHwl6+OGHOXHiRKFXnz59SE9PZ/PmzQA0bNgQgE8++YScnByn9UFEKk7BjYh4hA4dOnDdddfx4YcfkpubC8C3335LUlKSI/ABOHbsGMOHD+eKK66gfv36hISE0LhxY95++20Azpw547Q+7d27F4Crr76axo0bF3pFR0cD8NtvvwEwatQounTpwsiRIwkODqZ3797Mnj3bcV5Eqk8td3dARCTfkCFDiImJYc2aNfzxj3/k/fffx2w289BDDwGQl5fHHXfcQUJCAqNHjyYyMpIGDRpgsVh49913+fDDD8nLyyv1HiUtJi5utMUwDABWrlxJ7dq1i31f+/btAQgODmbr1q188803rFmzho0bN/LUU08xefJkPv30U6Kiosr7n0FEqkjBjYh4jEGDBjFu3Djef/99brvtNj7++GN69uyJ1WoFYM+ePfzwww9MnjyZadOmFXrvwoULy3WP4OBgAE6dOuX4GeDAgQNF2rZu3Zovv/wSq9VKx44dy7y22WymR48e9OjRA7CP/HTp0oUpU6awYcOGcvVPRKpO01Ii4jEaN25M7969+c9//sOSJUs4c+ZMoSkpi8UCXBxRyffjjz+Weyt469atAfj6668LHX/11VeLtM0fMZo4cWKxIzvHjh1z/HzixIli7xUYGMipU6fK1TcRcQ6N3IiIRxkyZAgrVqzgySefJCAggPvvv99xrl27drRv356XXnqJzMxM2rRpw759+5g/fz4dOnTg+++/L/P6AwcOZOLEiQwfPpyEhAQuu+wyVq1aVWxwEhkZybRp05gyZQrXXnst/fv3p2nTphw9epQdO3awcuVKsrOzARg2bBg2m40777yT0NBQsrKy+OSTTzh27Bjjxo1z3n8gESmTghsR8Sj33HMPwcHBnDp1iqFDh+Lv7+84Z7FY+OKLLxg7dizvvfceZ8+epUOHDrz33nvs3r27XMFNUFAQK1euZMyYMcyYMcMRQC1evJhGjRoVaT958mS6dOnCnDlzeP311zl79iyXX345HTp0YPbs2Y52gwcPZtGiRbz33nscP36coKAg2rZty4cffsjAgQOd8x9HRMrFZFw6visiIiLixbTmRkRERHyKghsRERHxKQpuRERExKcouBERERGfouBGREREfIqCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn6LgRkRERHzK/wPRJZt/vcgAhgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from netsci.utils import generate_power_law_discrete\n", + "# Example usage\n", + "gamma = 2.5 # Power-law exponent\n", + "k_min = 1 # Minimum value of k\n", + "k_max = 1000 # Maximum value of k\n", + "size = 100000 # Number of samples\n", + "\n", + "samples = generate_power_law_discrete(size, gamma, k_min, k_max, seed=1)\n", + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "plot_distribution(samples, size, gamma, k_min, ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Powerlaw package\n", + "\n", + "- Alstott, J., Bullmore, E. and Plenz, D., 2014. powerlaw: a Python package for analysis of heavy-tailed distributions. PloS one, 9(1), p.e85777.\n", + "\n", + " - probability density function (PDF), \n", + " - cumulative distribution function (CDF)\n", + " - complementary cumulative distribution (CCDF)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + "xmin progress: 00%\r" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fit.power_law.alpha=2.995340848455978\n", + "fit.power_law.sigma=0.02600579145725683\n", + "----------------------------------------------------------------------\n", + "(894.9727455051284, 5.263968413468816e-22)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import powerlaw\n", + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "fit = powerlaw.Fit(x) # xmax=50\n", + "print(f\"{fit.power_law.alpha=}\")\n", + "print(f\"{fit.power_law.sigma=}\")\n", + "print(\"-\"*70)\n", + "print(fit.distribution_compare(\"power_law\", \"exponential\"))\n", + "\n", + "powerlaw.plot_pdf(x, linear_bins=0, color='k', marker='o', lw=1, ax=ax);" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "fit.plot_pdf(c='b', lw=2, marker=\"*\", label='pdf', ax=ax)\n", + "fit.power_law.plot_pdf(c='b', ax=ax, ls='--', label='fit pdf')\n", + "fit.plot_ccdf(c='r', ax=ax, ls=\"-\", label='ccdf')\n", + "fit.power_law.plot_ccdf(c='r', ax=ax, ls='--', label='fit ccdf')\n", + "ax.legend(frameon=False);\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/examples/quick_guide_igraph.ipynb b/.doctrees/nbsphinx/examples/quick_guide_igraph.ipynb new file mode 100644 index 0000000..3d250aa --- /dev/null +++ b/.doctrees/nbsphinx/examples/quick_guide_igraph.ipynb @@ -0,0 +1,375 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [igraph](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/quick_guide_igraph.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Quick Guide for igraph**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, ensure that python-igraph is installed. You can install it using pip:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.11.6\n" + ] + } + ], + "source": [ + "try:\n", + " import igraph\n", + " print(igraph.__version__)\n", + "except ImportError:\n", + " print(\"igraph is not installed.\")\n", + " \n", + "# If `igraph` is not installed, you can install it using the following command (uncomment the following line):\n", + "# !pip install python-igraph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Creating Graphs\n", + "- Empty Graph\n", + "\n", + "To create an empty graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import igraph as ig\n", + "g = ig.Graph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Graph with Nodes and Edges\n", + "To create a graph with 10 nodes and specific edges, also get summary of the graph with `print(g)`:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IGRAPH U--- 10 2 --\n", + "+ edges:\n", + "0--1 0--5\n" + ] + } + ], + "source": [ + "g = ig.Graph(n=10, edges=[[0, 1], [0, 5]])\n", + "print(g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will display the number of vertices and edges, and list the edges if the graph is small." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assigning Attributes\n", + "You can set and retrieve attributes for graphs, vertices, and edges." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import igraph as ig\n", + "\n", + "# Create a graph with 3 nodes\n", + "g = ig.Graph(n=3)\n", + "\n", + "# Assign a 'color' attribute to all nodes\n", + "g.vs[\"color\"] = [\"red\", \"green\", \"blue\"]\n", + "\n", + "# Assign a 'label' attribute to the first node\n", + "g.vs[0][\"label\"] = \"Node 1\"\n", + "\n", + "# Assign a 'label' attribute to the second node\n", + "g.vs[1][\"label\"] = \"Node 2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a graph with edges\n", + "g.add_edges([(0, 1), (1, 2)])\n", + "\n", + "# Assign a 'weight' attribute to all edges\n", + "g.es[\"weight\"] = [1.5, 2.5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Retrieving Attributes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'color': 'red', 'label': 'Node 1'}\n" + ] + } + ], + "source": [ + "# Get all attributes for the first node\n", + "node_attributes = g.vs[0].attributes()\n", + "print(node_attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['red', 'green', 'blue']\n" + ] + } + ], + "source": [ + "# Get the 'color' attribute for all nodes\n", + "colors = g.vs[\"color\"]\n", + "print(colors)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'weight': 1.5}\n" + ] + } + ], + "source": [ + "# Get all attributes for the first edge\n", + "edge_attributes = g.es[0].attributes()\n", + "print(edge_attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.5, 2.5]\n" + ] + } + ], + "source": [ + "# Get the 'weight' attribute for all edges\n", + "weights = g.es[\"weight\"]\n", + "print(weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Load graph from adjacency list" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File /Users/tng/git/workshops/netsci/netsci/datasets/networks.zip already exists.\n", + "path='/Users/tng/git/workshops/netsci/netsci/datasets/'\n", + "Number of vertices: 23133\n", + "Number of edges: 93439\n", + "Is directed: False\n", + "Density: 0.000349\n", + "Average clustering coefficient: 0.264317\n" + ] + } + ], + "source": [ + "import os\n", + "from netsci.utils import list_sample_graphs\n", + "from netsci.utils import get_sample_dataset_path\n", + "from netsci.utils import download_sample_dataset\n", + "\n", + "def load_edges(filepath):\n", + " edges = []\n", + " with open(filepath, 'r') as file:\n", + " for line in file:\n", + " if line.startswith('#'):\n", + " continue # Skip comments\n", + " A, B = map(int, line.split())\n", + " edges.append((A, B))\n", + " return edges\n", + "\n", + "def load_graphi(filepath:str, directed:bool=False):\n", + " edges = load_edges(filepath)\n", + " G = ig.Graph(edges=edges, directed=directed)\n", + "\n", + " return G\n", + "\n", + "path = get_sample_dataset_path()\n", + "\n", + "# make sure you have downloaded the sample dataset\n", + "download_sample_dataset()\n", + "\n", + "file_name = os.path.join(path, \"collaboration.edgelist.txt\")\n", + "print(f\"{path=}\")\n", + "\n", + "G = load_graphi(file_name, directed=False)\n", + "\n", + "print(f\"{'Number of vertices:':<30s} {G.vcount():20d}\")\n", + "print(f\"{'Number of edges:':<30s} {G.ecount():20d}\")\n", + "print(f\"{'Is directed:':<30s} {str(G.is_directed()):>20s}\")\n", + "print(f\"{'Density:':<30s} {G.density():20.6f}\")\n", + "print(f\"{'Average clustering coefficient:':30s}{G.transitivity_undirected():20.6f}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Visualizing Graphs" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# need to install matplotlib and pycairo\n", + "# !pip install pycairo -q " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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GZDftW/fPtxuN99//705e/jhh3n00UdxOp0WJhMRkaKgMiC/KTMzk2nTppGXlwdA6dKlSUxMpE2bNhYnExGRoqIyIJdUUFDAvHnzWLFihTmrV68eLpeLG2+80cJkIiJS1FQG5FdOnDhBWloa27dvN2edO3fmqaeeIioqysJkIiJSHFQG5Ge2bNnC+PHjOX36NAAREREMHTqU+++/X8sGRURClMqAAIXLBpctW8aCBQvMZYM33HADLpeLRo0aWZxORESKk8qAcP78eaZOncqnn35qzlq0aEFSUhLly5e3MJmIiJQElQGb27NnD263m4MHD5qzvn370rdvXy0bFBGxCZUBG/vwww+ZOXMmFy5cAKBs2bIkJibSunVri5OJiEhJUhmwofz8fObOncuqVavMWYMGDXC5XFSrVs3CZCIiYgWVAZs5duwYaWlp7Nixw5x16dKF4cOHExkZaWEyERGxisqAjXz++edMmDCBs2fPAoXLBocPH07Xrl0tTiYiIlZSGbABv9/P0qVLWbRoEYZhAFC1alVSU1Np0KCBxelERMRqKgMh7ty5c0yZMoWNGzeas9atW5OYmEjZsmUtTCYiIoFCZSCE7dq1C7fbzZEjRwBwOBz8+c9/5pFHHiEsLMzidCIiEihUBkLUmjVreOGFF8jPzwegXLlyJCUl0bJlS4uTiYhIoFEZCDH5+fnMnj2b1atXm7NGjRrhcrm44YYbLEwmIiKBSmUghBw5cgSPx8O3335rzv7rv/6LwYMHa9mgiIhclspAiPjss8+YNGkS586dA6BUqVKMGDGCzp07W5xMREQCncpAkPP5fLz66qssWbLEXDZYvXp1UlNTqVevnsXpREQkGKgMBLGzZ88yceJENm3aZM7atm3LM888Q5kyZSxMJiIiwURlIEh98803eDwejh07BkBYWBh/+ctf6NmzJw6Hw+J0IiISTFQGgoxhGKxevZrZs2dTUFAAQIUKFRg7dizNmze3NpyIiAQllYEgkpeXx/PPP88HH3xgzpo0aUJKSgqVK1e2MJmIiAQzlYEgcejQIdxuN99995056969O4MGDSIiIsLCZCIiEuxUBoLAhg0bmDx5MufPnwcgKiqKUaNG8cc//tHiZCIiEgpUBgKYz+dj4cKFvP766+asZs2auFwu6tSpY10wEREJKSoDAerUqVNMmDCBLVu2mLN27dox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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "# Compute a layout\n", + "layout = g.layout(\"kk\") # Kamada-Kawai layout\n", + "\n", + "# Define visual style\n", + "visual_style = {}\n", + "visual_style[\"vertex_size\"] = 20\n", + "visual_style[\"vertex_label\"] = range(g.vcount())\n", + "visual_style[\"layout\"] = layout\n", + "visual_style[\"bbox\"] = (300, 300) # Bounding box size\n", + "visual_style[\"margin\"] = 20\n", + "\n", + "# Plot the graph\n", + "ig.plot(g, **visual_style)\n", + "\n", + "# Plot the graph in the axes\n", + "ig.plot(g, target=ax, **visual_style)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/examples/quick_guide_networkx.ipynb b/.doctrees/nbsphinx/examples/quick_guide_networkx.ipynb new file mode 100644 index 0000000..60bf575 --- /dev/null +++ b/.doctrees/nbsphinx/examples/quick_guide_networkx.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Networkx](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/quick_guide_networkx.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### **Quick Guide for Networkx**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating Graphs\n", + "\n", + "#### Basic Graph Types\n", + "\n", + "NetworkX provides several types of graphs:\n", + "- **Graph**: An undirected graph.\n", + "- **DiGraph**: A directed graph.\n", + "- **MultiGraph**: An undirected graph that can have multiple edges between nodes.\n", + "- **MultiDiGraph**: A directed graph with multiple edges." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can create an empty graph as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import networkx as nx\n", + "\n", + "G = nx.Graph() # or nx.DiGraph(), nx.MultiGraph(), nx.MultiDiGraph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Adding Nodes and Edges\n", + "You can add nodes and edges to a graph using the following methods:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1: 1, 2: 2, 3: 2, 4: 1}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Add a single node\n", + "G.add_node(1)\n", + "\n", + "# Add multiple nodes\n", + "G.add_nodes_from([2, 3])\n", + "\n", + "# Add an edge between two nodes\n", + "G.add_edge(1, 2)\n", + "\n", + "# Add multiple edges\n", + "G.add_edges_from([(2, 3), (3, 4)])\n", + "\n", + "# get degree distribution\n", + "degrees = dict(G.degree())\n", + "degrees" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nodes can be any hashable Python object except None." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Node and Edge Attributes\n", + "You can also add attributes to nodes and edges:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Add node with attributes\n", + "G.add_node(4, color='red')\n", + "\n", + "# Add edge with attributes\n", + "G.add_edge(1, 3, weight=4.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Graph Algorithms\n", + "NetworkX provides a wide range of graph algorithms, such as shortest path, clustering, and many others. For example, to find the shortest path using Dijkstra's algorithm:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'c', 'd']\n" + ] + } + ], + "source": [ + "# Create a weighted graph\n", + "G = nx.Graph()\n", + "edges = [('a', 'b', 0.3), ('b', 'c', 0.9), ('a', 'c', 0.5), ('c', 'd', 1.2)]\n", + "G.add_weighted_edges_from(edges)\n", + "\n", + "# Find shortest path\n", + "path = nx.dijkstra_path(G, 'a', 'd')\n", + "print(path) # Output: ['a', 'c', 'd']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Visualization\n", + "NetworkX includes basic functionality for visualizing graphs, although it is primarily designed for graph analysis. You can use Matplotlib to draw graphs:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JZGJefXthbGefR75LG8AcFn6ZYvGffAsb4ZJIiIyNZ6hJBLB1lmDYSEx7vUcC4kZts4abNQxiYiIngQDJZEIBthbY8NDz9s2ho3BMgxo4ws/RERETWGgJBJJZIArVk7xNspY70zxQUSAq1HGIiIiaileyiES2Q8phVifmAGNTnjsze+HmUvMYCExw8ZgGcMkERGJioGSqB0oqlBh7aGrOJNTBnOJ2SOD5YPXx3r2wdZZg7nNTUREomOgJGpHlCV3sSe5ECezS1FYrsLD35xmuN+0fLy3E+aOdOVtbiIiajcYKInaqRq1BvnlNajX6NDNQoKBDjZ8Ag4REbVLDJREREREZBDe8iYiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjLI/wMVJ4BQPoQRMQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "G = nx.complete_graph(5)\n", + "nx.draw(G, with_labels=True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/examples_chap_02_10_2.png b/.doctrees/nbsphinx/examples_chap_02_10_2.png new file mode 100644 index 0000000000000000000000000000000000000000..05eb9d5bcedefc5b4af66184391dfe343cbd9f47 GIT binary patch literal 8931 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

h8rETcwP{m{h zPEN?LU%$v_H+4V2*kDn^aeKnXCUDD2*RB$=_Z+7Ody3P~iX!2cXQSnW>l17W1ms`O zWkv}Q2Oc+tHZomN6}FpWr63vJ-KMgR$=ecSdH`#L5Qf50lVGb=g&vC9FQ*NpPvU0{LZ<}I+9kpKm7Pj<>Oe(-Zijbdw;C-24riC=uB_?C#;A85X8!IY=|1a4;Y?*%&B{vAyFD+L@-Hw5^vWJdg2%#q9@<>6&XeG8Wb7GsM6AA@2|Z%g8hB5G>tl#Gm6 z^EwYq^`N1lVUaQRG?M%>j*6#Y?22wNzdedTt@IJMfB+%bHcqDq`2J=jxjfi~Q{0Oe z>Y&~#DlWbg^v7X)x-NO^rL0~`MCFGMZMCi_P=P*;jEqdl%}oTZ!uTLt(tWAnEjg9L zLi$}^$Qv)Uoc{iP61jlwwjzy$Dz8P=rlSdS%BcZA6~$O5MtlPU1K4_DY&|r(o>59l z%5A2e3KSx+omvzIF9F6q5TWtIWjVcL|J}pusC6kRGjYEW`q>Q92>BgA;W>|-*n3^&vg!4DO9cJ;; zIIx+-;taW<{}A4c_3JYF^gyX@>683RN4gUWM=g^WyfA()c)L5yJ2*xK?(Ln|r(@ z^m*>p0iJ&h@I4MbX+aguTq#PT)-Bs(@#vzH95UC^0{bwp{3s*CRK9}fnOT`ub47f* zEFJ@_A%`FS$fB&avHaVrkwOJsuG-i$6{B!{zqM00O1%XMX0pLN1>Fd6nvwNw_S9?C z8{@*p^6pP-*Um?4fQljU+i_b83Lrm!{-lL<$o->apML#aoKOAYDV1k>W}Hxb7&s~} z(P<+dP@^u^j+MGBvpxh)r`oF^9(>W!V&5sdeZGS8R@geeW?m7sdm=G;CgV=^ zXrbo?6V4rpOip?Gnq?JK64@4dk8DdMaD#Zj?2;fhG>JD-J9*d{VOaW>&IggvwKKyP zy7v8KA2TSV&qu!6FS=8)hgoHyrqOTXWl)|d7krt&x|#m(#n0U-$=Gn{BgzG-5%bdy)&#r>O*1*T+u% z$fbzayftp0vKiDDm||4?{KP?t4K7}aq)w=Uce#=4{_xD3%9b5;wFbsoDl?s<2$qh( z&`9`p82P-_JGmYwoIRZIgVlSqbaVy_M3s23V9o(8yAwA#b9Lumv{B``UI3R|i0&cm z)M1>HyRL%NwX7LJO%(E-B7|gQ8uKlo-=NWyWpLizI3j!D90(=L_uT;FNJ9Bq1fS|K ze=h-$2TWuphA6|0q*@^`b{MF>)A;X?{FbMB)!zOW03KmAVZi)o0whkOtrx9KO8#Vx zp=TC$Ws+p3N>jK=vl1o35kK2F5hDvjnOPA42f|=5PUztA?Hj76-;I}&ybanvpd=Pg zqx%I)8{*^gLcOkg^TbX{)z1SI4J(ZRb;pt9vFM{6^D_`HL ziS%+~^nD>}E9f9uU0ZAXAC5JhK@UXHQA`#o)=GZ&dPp7p z>Mkz;r6EvPR_J22b+%>e@vZ#+y}v5O&6V3;H=fr-a(T3c0>zyGS{?l+J3BQ$A6d31 zx`z$W48qC96|sDmaD!E`;&{bzfq;w|k&;3%y+zG^13Y4Pcb8GZg%(wkxi5-_pC@W- zYuzD@qT&jWJ(#R)lb88pI+-e2i1Yh$3LZF3g?v&#`r8S?niqlL}!vZf2@ zfgqZ+6OdI(wHQ)N%*sYrmMH`=VB)3$yTmX)mOYpdWHpNnABwpfWwpHG^Uw&w4MN4a zRvdZaOF+iFK?GX;<)N~pXtqj@jKsDI%Lt+YkO$O@JHdy}AT7RqNK8UfIJyA~ye3Br zV9YZ-JPa7p8s>2trH?uQA^}cnk?{vIhnrVfjOrAy%*(^k z`?N4_7~FcNFQM(gJq@BN`?02m*3r?isVSTQMh%`x394Vk&~qUpj0UFY zPObc(X+Vv`gW;`)Q(Zv|rM%)BcTW{h2Z9!mxpD-Fnw`_SoT^j0#lrWZ({1 zc9%YUKQuElu$7iEdSSx+LQ{M_`{$0&ecBvVKzo{+nsUH{J{bz8W9S|LjCyD{cWR%5 zsLZ+ArvE(wpi-3#tBj7pk*<7cREbCajB{lK=eTE_ZE0WM@pXuYp8JVQN-hB@#3I8k zRSk&-LR&PQ{{z<}N-XCssRZpCF@ZKx7Jx0gl+)WPQokUiKnQ2tt0Ag>=&HL8xTufi z^T*_kvBDMOOEx;Zg0;aA_t-0s@=9ZuBWV-E_$9OQ;=4Qu{|sSkO@Duh%Ds6kg51UM zik9f2k1^!UDBLy&Y~ov+1+E_77i`S*)K2f0KKk>Hw?^Vq{$he_EgSj8)$@Asj2ULtSwfKCl}&J{->jdI%tyZn3H4n&u0f|!O@((3A@Wg;g_e& z$#L=V?LcI?W7~mS(O(^(F4j~X)hY(Z!KONK7Ok+p9a*vewNo*cQp-Rv9n`C8aJW3G zq=w{H1ViBJ+;9E3Y2WM7QY2RwmYKQg#p$V+<=w_AYM4^IdF&kOfpNk^Es8>9ifsyP z%8Gq@7>qM8yWk?myM9sd3d8^r%a1JeJ>iJO(U1e1do^tqP z*+{QH>6(@j0GKTx5R7;1a8V_b-CXYn0g9phd^=73`_Ew^MS|Fz)L7NF5t-k-*gZ0= z+JB_qGB7fVIhhaVunQK~f<3cke8DX7JVU6k+bYg$|Z)j{jY`4hi|p~5ay(v3#IS#mKsPKWe!&-|KXm|NeO`&-?(vVZzCtoEaJ39ds z!i7%AJd8Bx;P5u8jCVx^Q`gUY^96VUGU1@VOn~<}S@r)-wK^*{J_Ayr2DC;O7nhXG z%(w&wVc9A})v50yq~}Ll{Pk5h^3HruD{VVtB5WB?&(H0)C#zRC5)sk~L-YeP_q>3C zKYS2aSzWd3P2tKEe@abDjECZ-V(`8=cAu+5eAP?=BRpms7C~CWoMky#Dd}gnl&>YV zH`aUo+{kvDf;Qjw>1h_Zz}+qk2eE0#ZaQ1d7FUUtrtK6#9~^W71pWpsQNvYo8vpr| z4A3a`WOjwB;3Jn;>FJBb$%>KLEbgyWCPAss9<)N$9@dJ>0V{9}`Gm3xAu}wcMJip( z3knLNk5JZ~{r$&KSwxL7$d|mjufctZB|3lkH;jY<+69c9lAa!Y^WnRN)t}iG8R`uw zfXWno{CKzOWKWraL>_|CHI**WI8clFXZy=Nz-}yw<``4G)t(S4n7++|PNlF&3er1>X=&|&p)-{r%X_Nu!Rajk3 zb+G!gb9c6Jf4_&ret)SO>W6;XFk$>8B2VQny>Y;wTwPpt=cng&@G~E`$ttYM z*1xiU&rz+!E(a=0Cd|$4yUi>eyVH#-gouYv`M-VphLJmfE<#{bZWjIdvnc#eAHP>% zU{*M`or-t)M3WqiO-Ss!3Dm9HVAk8E>Ut)e=eR`0UK)a z!+A1WY!IPJ#`CHMkJa8Mi-~tpL`7Yhe(0^X5Jf{UCI@$whmQ~c;&?~R%S!|V5C5%- z@uI4tB%q;_QmA|8$h(I80uK!-GkC!oEh7PZj0c<0(XPN&yO-43( z)^{Orwt@XTTsHYUTLQKe&2T61m#$IrO?s@pX0@Qu`|~9n{l7#(AtFMG10>e2F7+I_ zz$9SeG+Lv}lf0|2Iv3BSg`~>iwi-Ios7 zW&}GRC__o8l#iRU=8){{Q-004B=U5dO?+={F}}O}1_HWrV_R=bN=Kv6^3k%4pU7t+9pu1@9+jPc| z0l%`Umkj?JXYFPO)&AP8ze!LpWzav^nkbKpi);Jr*#7{er@Fb|1ip1YE)0WerkZ^F z)Fr0fxyDuNiBnpA|fePtyA zuGxJvQ9lKFlUYm*7s^W;2Q zNw}RNB3XJs3{tnX z7@l8Uxl+Kvk#l&fx|8olY3;FL**Flq>S6ob7y-F2jUObN>NW?_#mlpU2LiO<)r&;N z4m+y@IHj)$BjLh{!7_q2GTdiQ{PFqgiQ47L5D`Lwc6`;98xk4?r=%G~?tZ6*$w`Qd z+Z=EIl7^p(v|RqtRXHZy`{*&>k_h&msb*znM*M#SXdxj?<^dW8t6-^*30qo7EIPoK zl)0oXEkB>*cxO5mkA$8RuyfG=3O^ssuZQ+K&enV5{A;hY6{^L0f%JK}GtD68G>EW( zV$?Nx1%U#{dWIoCg!Y(^g<`Sp zxxQIzn8Ise>m;C>yUjH*QO6^;UN+=3G{~|_dqFUp1%f}&g&P9*{_6|;_R-4{#RKv6 z<)XfZJYds*Ew`}n1gVQ7X`XbtGlmX9O@sV*5Wdbso z$;RIIxg@E-jI7(Jjb&+OygXh&`~HIrOtCH|MzgrMXpwP4Ah?+w;1RrgAdoSvh?u3StRMC@yWQ$ekt2F(~WR4)zKjW;_!oq52IeZ zAO$=G#FHmz2jwV)(1Xdq4$|IBxX)ha#)6Z8mz|xRv}LZdyLE7ZqhaD0D($$0{~81{ z9$5Hb4T%xrwRN6eOX^rA8kKbe5zU7D3?yXY@bGXqs7)>oG?)OcrvhCMV5$9FQxFhG#Zi^kQc5gJAUv5_ScY4{Y5=f+ z1_>HS@82`A7PiTywA-{DAeE9alXj+RVIX1}SDr9~00B2bD*0o+Tp&5%k=l3fiq0of zuu7+Fi4r+4C8~XEY+Sa!K4;+O;o1LjtFqwJC(^y<6RSqPb@Y|b=dWMsfdMhs3X~pz zSOA8b^7?hmc$u;Nk5@MdNmov8&>E{d!T5jGd-J@8T0WQYU9|z#5QW|e?x}(e@S4~D zlE#7kmzfz0aVaT)1>fZt=s7r$KfZV`Nz=mkr+Y{VB97S_v?|JB6EEBJBeu{|PR0IeT@Nl5vMY|X((s-Snk+>9e9u@SYS8S}5_ z47LlJznsj>%#?I=j*1EQLGGHHoBI^X?hPfDCm76EN`Cc<_U(ZAvl=Ja`LY(VMAAe} z9za}wCjTTRCg!A$$Kd>d_{949I#gzI{kZ^|RmKvI!yDXx(x`N`hTC$rrd98^s^mPf zF=WXcq2)C2J!ihInHH57%>wjcX}|T9vtd(AClv=L_2o!$s#;+U^v*|I*v`Tka~^K+mQA|qK?@UHHI;)<%%Jh4q##JTqExlslNhHQ>( zHW?pWa50gsW@r-3XEG^yRFpnOa&U0S&oRwN02_<{g68i+;Hs#V1>< zB+Er+Q&udb_#&kCh-$VRhX=EB{<%jPtKO|1YKZK5N@7L`}i-@(w=TqBow#FnY!|*>1I6Ec(30kT*VUB z9DwI)4a0A>Xdwht;l_>kwsZZJ?L9~zn`|=BVGd`W67OItwZ75 zNZKHTndzLMcKav2-0pD5U--&tJmlF@k*{R(@WR`ecy$1#*0yMuPURzzUYu{fh%=1Y8tz<`VoGCzM%h7`icDEBfQ$yE`*yO{eyfehciN8z~v zO_ExtRV@gBMzB$q^vg6J54FWmZto-#jy;k|@TyKh3 zGI;2x`zgt49pp87tG2$Sw>N^p2_~j`Q+8}6sLUk0DVHYtx`IFe0}0Q$Tp}ozurQSi ztd)n;LLJzJsAd_Q6tVSJ=9&Se`rG>{6frSXqi`?hxK^9sY$}go0fiom(ti^OP8(c> zFw4t#tc7mqpp+xlZngyGadoIi@OMQI-Hf7SP{sW9V1dY+ix#G8L5P?4|NhZ60oR;i Vfh+`)4*o?9qNAa&4kYc!{{hgD^Edzi literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_02_15_1.png b/.doctrees/nbsphinx/examples_chap_02_15_1.png new file mode 100644 index 0000000000000000000000000000000000000000..69322d69ad5782ec604e17f0da85b3693aa76cca GIT binary patch literal 8977 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 IV;c5<04`6(+W-In literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_02_19_1.png b/.doctrees/nbsphinx/examples_chap_02_19_1.png new file mode 100644 index 0000000000000000000000000000000000000000..989443fbd66d68b94e35478a90dc219fd0178c75 GIT binary patch literal 8683 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%0A?5hh{XJ7T?2^g1-k?o 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 R#QuptoApd|i?prI{uiAJPwW5y literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_02_7_0.png b/.doctrees/nbsphinx/examples_chap_02_7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ba27eaf5b46eeac7ada9a5f000d42a0372cdf966 GIT binary patch literal 30837 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 G&;1YJd4lKw literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_02_8_1.png b/.doctrees/nbsphinx/examples_chap_02_8_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ef189835d9a8220629b5e352fddcc88c384d6f GIT binary patch literal 30744 zcmbTecQ}{-|33VZvSn`(qKxd)uy@ijqL8gJ%8tm)ij3@3Mybdw3d!D-Q6ZE)LWLG3 z?(_P5zW48U|8d{-l^>9*^^Jp6BC=I(b}&o`#!-L?Y22(bY5{ zk;qc%m_KJ+(|d4KF)*Ua@w!Cmpl)balS$>3q>46=PkU-z2XizE#yCottvNmd%yQ6 z*Ou7F6~FoP(`C1C&Hj#HSUaL-zpGNff3!HYc=n>Z$5(~OwW)g^Uk@s_aFPpLXUtLc zFQVOvzkTQtu=&~T_z3DD?_ z<<*lD0hw7Tfl&?`R$A4R@%HU8~q=rhGueOG)Gc@=$1+P>$m9o{TXOXHL_isaW2F4PK(j++oo-JQoL<@D0}1)?s`njvZ^hd-#ggg$t%rl`k%jPON>O zUHb7u;(g^zcV=AR=D!ys`vPx1ZOE1IGOzNa#{HzJ1S;Fu*o=*j2k$;{&(-4gQ2OC3 zl1(Fq5w|9N^BJ8-W@f_M6L;IbzP+!ly}f=kaPzg-MaSmuZienmmDZHK zW)+fJq7Mv2S5{UkBtzF3!lG$>uU?(#y{{7)7niES&c_$K-(@HZOH>i??~t

dCo- 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 N>fOh;N@)N9 literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_03_13_1.png b/.doctrees/nbsphinx/examples_chap_03_13_1.png new file mode 100644 index 0000000000000000000000000000000000000000..010396f37c1ecd327308916e26a99a2838e50ff4 GIT binary patch literal 19924 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 bZXB^*vp111>)hl=!5?KsRZOA$y+{8KSz%}v literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_03_18_0.png b/.doctrees/nbsphinx/examples_chap_03_18_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6994359f3db8269c383cd211ce1fdf619a902b78 GIT binary patch literal 50508 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 z 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

$ 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 R-Q-!&cI#-Q?K*P)zW_EVlz{*M literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_03_21_0.png b/.doctrees/nbsphinx/examples_chap_03_21_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8a6ab5ff8c5f966039a922f1203dad21ec2baa GIT binary patch literal 27826 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 literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_03_6_1.png b/.doctrees/nbsphinx/examples_chap_03_6_1.png new file mode 100644 index 0000000000000000000000000000000000000000..132e61b6fe179ed64b1d9d2766eb843756b6d31e GIT binary patch literal 14789 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 literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_03_9_0.png b/.doctrees/nbsphinx/examples_chap_03_9_0.png new file mode 100644 index 0000000000000000000000000000000000000000..d36f6364b50b120f2e252419c9a5754fbc8a78bd GIT binary patch literal 39880 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 QF$F&iAAj#E`u@~E0n`~$VgLXD literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_04_16_1.png b/.doctrees/nbsphinx/examples_chap_04_16_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c11ac40aee398b7eaba472f362ae36516c5d0be GIT binary patch literal 15814 zcmb7r1z40@+~?3;qI3?33QCF~ARr7NNJ>daqjXEBpfm`If`F8ObVxS{0|*F8Nuz|) zC0+ZUd%yj5_uJj)*}cz2?`3A*dCz&z`JZ3?!_`$4$cPz;5eNjC;yu&@1OjUge)tLT z;Wr^u^tJHUZ8y1xZkmpd-8@WPED+}xa8 z#rXK_|MLyJjxJC5`gm%;!$pXk?&-NA5EQ1EAFPj3xz-589U(>3T`kX)wJ9%8&EYz! z%?;J`Y>w=U8uy~5lSq`Xg184XJ6MW|V{x*bP&M)&rS2A9C1m2u5{&3dXHoLOO}b0* z^{N%e$0*AS2}+R{8NO+L8K4s5T-jH+XEpvoW&DG!^0z_pb+WAGoXul)N)gp znTe?v^PQEvdV)cb|J%Kd!d)@3g-FZE;r;b)oP5MClCH)5?StYgZ%1=WxczcXJw5uf zlO46!uU~gfU2@?#J3FhHixHolo74RLgrCj_k*XTn+pFxh`lAf(XM>s-!w<&#{WUfC zK^`jkmOZ@fbEc$`Dq&E0xu9X48xg!D+Zn@bdwo@d8sFT53-_&IiW zclUtRO_%+su9epb39TmlY!VVo@Rcqep_3tLX{_&V*+=aB?$0VLB<*`ATrlWL7d4gW z(8r*BuzjD-;mnSoj^DHm7Z(qYT}JzQnvfgwySGHRMbfk2* zT{wqqgdb>XS}xI2QQf9hKsyx9&9Sm*1JtcB?{+fr&NrLJ#m6maRlc4 zRc5Wv@CIxuMV~HT6ciHLS}AEZ8?Ue~|0|dEjZIvfaiZF>x{lYBK{$EjRkh;`d8+E@ zz!Ybu{QB>-0QpdI=FL&7z_O?_1o&EH}LgmHx!sMiAoev*Am@M`tSxr>k(66+4 ze%p1?NEG+rHS*gX_FgM0 zirt^~p}6C-caybC$fO0aI$qgRJlb@;UT-y8%=}K+_QiCg&)o4wv&Ww%9#1!ZqZ%i6 z`6#-ey|oG1c+SbEqmP8EX38x|y!Y41q@<)moX9sf>uJt6eyo88f{Zi*Qjd^%@s1fa3bDe9;y8ix6 z2)6B=ot2}4vCEe)%Uw-S!fII_-77MX)7O93)!prEEfv<#y1O#kQPO!G`B zv9s9MHae>N$4zWUI9i^=`|lt2;z#w5M}^2)C9lgzGhBvgW&i&DyIs}FkFu;kGtJFc zuU!)`7NR4~G;a1cTOP`LdVbjkhEEa~AOFBS8SYtE0_K)xw9ah_nWL8GFzRP(b7c2} zkwQX@F71xb$cf+n`jkEXTtkBd6&>Bx%*;%bmsjoKQ5=Ut2&bY<*0;oxM~&Xv2ugZ- z`bFE?+FIP6y6>FZcB&O1KOW!T?b*K2E0)}naN z5=Dj|{AcV_Zlb7jCZ$XmEIq;mB}=LlTi4xXZ7LcXE*AfTp9~Ys;_k`^M@JE`#1c#F zf0W*xbf2(aJm+oNLNg-S*wWD@e#d)b!zB?B#ATK}G(YF&IQ$P6Xp`5J?%#j@An)S& zVSm8&Vzu`YdZY|DKaLz%iE_~S{2j@G1voLh{z^^qu7(B`m)iR%E)|E=g-c++KJrOC+QJRCkM_@7>32jcnJo*UGCn+xsOJk-aZGMRlNqd#I%1)>#B@)ldm)>*4(%_*Z}L(r8p-wXER z6|E7Mcs5V>XR_=ks@$bGI5}|fE876j@heo{Y}ZrYCPv^voevVnadAb56TEmP*Bj1TGuOePgfp)@-s4G`Rjd0zuLjx zx$)`B$N>}$o5l?#7Urn6rw5y+2x&Jrw@ROH-@g5*_uzvs8u;`?4bk$cUosMpgvMmH zCCF;L;u=(kVCOmX*rb`3zJA2_?+;#gmZvk z90@M|c+!qr>9*zy^t)TQWnHZ$0PZ6b6b6M0!)j zY3n^U{tO1C?;dJx5oWZ5uR!De7z|@-RAr&HM6Z>9k;2$$HKxQ@d>HzV6E$u)ro2fu~hQ=Z+SbO zr1?D-NY^Vh!J@hTP<>9weQo@?>E{<2up1X`6BK$RB_-j=N0_86Nw~}t>J&Z<61E+A z=x6lsA>C^w%SsIg2M1nwc#l^6bhjf+?8Mf4M@Os2?`Udld{M|0w*HRGqg&kmC4pzn z`z(rHh~M(d#eW_R9NQ&oZ&y0BuD9Q`w^vy>?G6tQ4~vYPBTV{O91&qRQy`Z0CfT;$ zewg`!>SU|)>JNb^Ist6kk;2xIB7?1f^ZkGyW#*x>{eQk?5lEi?)vOuTlIu2icPknGENFR+i`}`yJeaE{QgTI?nQvv+ zn@Q9OVQOlcQpJ@|qA=q8Xt)Z0Y;4T);Ag0S-;o;(7k{emsq9RXpYz{88t|nP*ETe? zb5&DczIqi*A$3A2b$;SndAz5pIU(q}s7%T%b`fCD)$7;WF+-g4nE6>y(j-`|*XS+m zzCIc5*nB$TYyai-H9Dckq(^_3g0XP$*>2yar{y(laqYkJWYq6%ov(i6|DhAqVuiwl&wpp2(?Qpg-*BK{_I@;$K=9r|!$0HG8 zu+z2cMLai6Ff|*BVCo312Pry1dpfPKhCYgi;0aXWD*Fkvy*etv(}v%H5H3m+Oh8dp z<9@hpnM>g|nIQD6OhI?He01~Y=bsxJu?al7Q2X0_@4!Pk-dmIP^=+`bJTU{u18q%ORN&#F*EIaTL&69E0}`i>jyd-PQPTk0=;Ie*AbC^Ey0i zIjA+!#!_Fc>XzlB!$fpD5p~TQWt0{Hd=Ks5PwK^aUY;O5M}9Wg)i2f=sNy<-L)7bW zdN4~oyurqUm_OU4Rp>;a$j$hW8LdUN8SX$}`g9zSP#%man~bL1t2E{Q~yf71fZVui{BwD)T{r6~*txhd_Pl zo=T99JdVnn7IR;<+9@S^l^mLi%^#C;ML97rJ)I4upx_!HNab}W2HsL=sefNb$yx_( z&d@y}JYTNj>@4u!|Hv8_AOBa3_$H^KhIMMH_t5Z5OpSnk}++hHef(Tq) zwL4jJ48TEDSbf8e=QM?r6A@Sf>|uWIh0x^!x=17Fl+{g(2qtR5zLqXbq@J91H%BK z(b@g#%GOpV>)d3m>tY}y3rkF_(SGI@(a>|@;GbMYO{TZJB)7a(nAA4Rtln-cD?VEmzNuE`#pOns| zi3SMJ*HrQ307?H7(H9h~y$6k=JT0jF_@ivIAu5W75IF0V1$t$sSGsG!&z)aodugK?E$)qs5P$0qMRyA)gLxO|&q5 z*T&1uoi8vZo2Lc1Hn2nHqek8dfwjB)t(y$dJ<~k={FDsQ_%Qz+fQcg00?z2?(9uG% zUpE?dRN*^JfQ=jglH6L#O*1Br_981KFJ^0mJkGcye@8r+s1;6Jvx$o*TZX8e2heF3Wh zHd4l0q!f||Z0pVE{+P2KF_5p#Q)p04F7Cc6UF|T18GFOwVlqvMBT&l4uc?tRp(`O;_4ux~m}GaVit5|Wd@ zsTX(P6BfP%=w)DK7fS6zppHj-YmtG02+R#Gcj;xQ!zn$M%|V>`#bL50$o2Qvj7RnE zRwIQ;lT+*>4+funp7v}ZHslnKmJhC}5w)+rr_TNf?|>5Tl8t)$tT!d@T7M_yr- z7INLz9?Vg}LI7bD+z*+IUJ^1riWO*_=OHGGwoEbGLoVQrKE9D1i$xafP%P2b@0tr&fcA!_LlLbGkQCbmsin zQNo1Z9Sh(5P)}B^aLX?dTg5O37vHC~O7p_6E4-fM zb00MwMr6p_g3G&a@ujNRSMZ|$8GW9bL=e%FuPq3czI&*z9dw1-wbMG#>iM_ul zhuQ^Q&ZtkvW%RXWPkNI-^W0)zaGmCrg50}+F=UE#c0OE1=8LFm)+2KB?%ZF%X0O!X zzSt!hz=E(-b98MMq?&?tgA`Bts_ef~RBdBlAVT+2*rT{_Y3=%Bb7~D{emd&bnp5lc zFsfVo9LZO)P$8iPsnd_QD3SR*_~x0(g=-2d;_ihV{kBHlMEOZVj+Kq{FX0i;@EV4J zy2j;775BO3@hY~V(4L+4K8NlZeM?am?dP`il}UO%G3M_edKAnA^uJ0E>%!ir?+I(I zaaK}M=?EdBcEFp2At~MuUjNje{$hdt3lv!bawcgY&;80=+h(L_K{I{_UmI@n_*zpO zvnO8*_ZXhbm&Tu?k(ig5h7YKR;JG#Ql12fy^%q zpJZm+z6iAucJr{Bf1P6XgQSwnSFR)%cwa+=B^z^rAPAdpV9Cu;iVMl*REterL-?^m zj++f(td3 z4{IO|7SO=SuOiETQD{3z^N~X#M!I0wh3BFM2U^&icJ`gXF#7f6B}z(@_nB4MHkbLh ze5kz0b!L$+=G+Oy0s;bmCaOz1?u{`(ZLv843D`oX)}#w+a$l#Q{xNH=Q3;5l;&d;= z8R-9ATzQg!#mfDU$*_F(($9Z&l->&J`+Ox#0w*_bK(e?IN*`kALZRCNb^3Qe?C5d4Q`i*J@%YCoPQtRV+3vj1U0c$B$PrJWT5BAZzjw z2VeGsJbtrwLKexpLt(X+{~x-b=FtNU4d4Of=>R5Fy;w9JVE{q?ceL9F4k|B}YUSB@ zP9jhX!XhFtr3>VeD8PFK_PQlT(X>XMSo>2Rte8V?eqrG!jQd4N311A;?Ps^_#}g;s zym^z^&@j1pd~|rIJz=&z>DvDjXz&3*Hy~r?y5~tPa>ZtnzDOjtamk~|cCVduf^^){ z#k1p#!?R-s;~opX%omm(5|j>qR>wXqZh)@AJ7iNi?C#~|h2-Z~N6E>BZ*RNo?7{*d zRE!Ui&nmN$a+$w3sOYZKT%lhicl_4KTk-FoZ?YhAcW0da{{5Q-fdrb8F-mot`*#~& zMylka`AO$c%3QSxySKpiE)qXSu)!bq6cw#oj4pWb`OF0w#6CzgDnP*cSUSzDwxGg&Xd`aS>4#6 zXc1Le{r&ri^TyHc3XQ#C_vq;8GAk~M>~8L05{>|(AV8TIVSuP0CPlT!O37$j7O)5v zh0ia18yo_O56{GpyDsONT_&1SNaz!qgAQxX%Cn{U?0KTFtplDJdteIF2Oy&lbp|C) z`<9JRymQ}LYk-&`0#A?kb?d7G&i#SlWP-XxHgzKte;5d+&2TNJqToi7h}!)tT-aF( zGd6#hatA6MV~OTEC$1Oh8KiR|e>;iN8P_*oK0&kkD*vAcHdhp`5hY=X7DX3o>$CC8CwE*Iv| z(Wr?^+fXvbTPA<|noI91DQ#l#?cwh<4}JH=7i5gR3)lGoeS&S%aCWqU2n5GN`Q1$- z1SJj43s4!^u3aO7@`lk}Fv!{W(51p*iUFi5kmt;crl_Gt{rPL(y9K zlV!&s;aS?ptv8bIY(H6}@ppOn{!QBvWzZ5MK+TSr2{@m!K6Spx;}lo_rMp`|_m`lb zVm#;Tc#D&>#kWg!Zadz?d^%gm^4P|$mTO}}ZQXJW7>*Y@em=)~-Xe9jMUlG~^iiPv z&FbZlmN#n?LCt3}ZS&pyT6GTkJ|io;G$jHmdYv5|&LPV4xGbqHa;TWHH>=rN+yWrn zhRDfh+Nf4hVjCFwQaP%m>aXb){*s%Q0Qb+RUBCQo9wMwyIyEJVs^`sJcE#cKvIyEZ z*CFe7M_^D`xqPB=Fg0aIm~2cpf{yuV9Aw3&m?;kAlY(nwJRoBIi=WZbjh+Hp1mp-- zzYq&Vcwou>(qx zr@_sGGwsiqC_-_S7vI-6kc2j!hwnF4H0l<33{3BH_NrQxP$Gv1h`}8C0#B7x;z?(M zfjVKqO8sPonsHkhgx&*i{m0FT)E+!-Fo>+}uu8mv}={C46q4H=9&Vfx> zY;(OyLQrI+ot*dqjz3di@xlcg%k{C;9pc=)?uie3tKsdMxv+NPLxde0@l+nf%l1Rz zNLkO3@3b5o3KR$iJLTH}I6*};Cl5i7f|dIM=px2o;B~xG9mm`I$%z%bf^7UKk7N z+O=zcMoU;F59g_Y5{T9}qvm5Anwj%sC1rZ|XBcCx8oV!go_Wnq`ve6OU=8_S%o572 z50{9^dU|Vrb&Lb_!BmGbL}7mGu1!U_WFwQwAx?B!z}VQ=j@}rZQwJuUR2fTbQY^q^|V*i-n-4;kYEWG5O$B@G_bDJ2km&=m*!Q) zM}bcwETRpM3kR1lIw5GxYvUM6Bc=(DslZnx2o zblJ~FQ-yqb^1C!DI<{yq%}&LXmX?--iwhqL*1dc8q(_p3!bIIk^E)Dg>esPlWD6Pz zDAL&+HA*y-+xs+=?5HFv!-)*%pE4DHc)FXvHA^(u*dSptCH99UfN42~SuZY9;$087 zQ{(yB@$NDmm9T?Ozg)4)UfFY+8|gf}@;N%T5=>^(5+-Z<7R3)+BMj$-mkpDT0Q6yK zJ{V*#$eG1N>y25WIn0sA`y{%_5oa^!&lh+4GmbX`GVs-JGr3wQzeigdB$MLfy!TnZ zJ?Y%Z92OHJ4>~!{wp;HhyUO>xlOQZha*XFUyhF~pYXfUt^ z0q|kaUsE#%mtH0%g+r*s96XUdZ2}G(wx`7{a#hY2%JW=rZs6po zDJuDA^NF}6kI@><5c6XPhWxVDiWis*$N^HaVu zFy-gUl+RdxlMN4E=D1hrhm@ZfsrLB0_^Pl;xzzH!@UY47${Y7V@4zupMka7}o2_JD zkZx}cmR61;ZM>Wx0}FoJbEN8eQsT4H+AnW8O`~P7hD%M!Mx-*woh(4F>3Pl0Oh@<7 zp4G)thR|-T9Ir^fQn2{aObr$aHEC07bIIxaRJz27Y{(UPpNXD2P9eWRezG|r0E{KH z#8Ht_o|ailAXat0uQqx66;*_yqI8;MOM7@r0?)0PSHeZz+Cag&<{lbwOxHMbkTZ!Q zigY4jFeAPPD9h?8{Ps>9e4NeodUPiHwQJ}!9#a)tm&@xy?pW(WTrM}@y`bV3jG8-e zS%Pk`f+u4qbusZK(ZR0nT>t(wNy85LKrRK3heoP%ngErsevbZd0zfj9);s^=wasvw zvptcyrg^AO3@>zk%*yyRDTi_3B<8$~-*gkf%xvF4+BQETH@7B_CMCxmOI4Fvm^3su)7DEzMe|$Ut1BGN!`y#@mI<_n=4yv( zYFE<S^ zccPzMRgj}E8Q!hE^>CsoAu+KFw^TmD7R}otY>w==92KiDa-58maLp;Z*Y!IMheFEm z{I`x-|K1Ik08nS}&1p^exwbF7<-;+kX5jHiVv-_9$z!V|kF0!CKCxk{=}!#n8rH9> zAZ@R$MW250m?8U+J-qU*c)Uq&JsiSTA7k<_Z6B$H z?p@5O2>bj$!bv5K_POEeSg-ObdT(_P2;3nk?FKtuGJamxto+JBH zWrqcuU%wik#rI`Uq8+$3NSBwDGA!C4rdg!kA(1$(aK3T4JL))fva4%y<~xgywkeql zx-g9yQrBH=q0~#nc$|vmR^}R(1zxT#H|4H{Y<)!QeF|KkiuQT!Xx4FKqvN0PBnYMU zr%Au-=YbqYYYR43{lhF8QccXpQH1Z z7kYvsh^>-u$=P{%RX(obb^xX8U2wHbhBU~`zkdDl{1}pKipLA$8g<;1pdb|Nz;&RT za6H}U)#R-JiHVvBWYl zOT1#jU))*<8%C#KVI7~!i^{d5h(jR|0O4?bog0?>D*t1%&t-NF3bAJMg!(L`=vx@L zR`0&n1}-tThi+IGV@D@WnlJX`Q`+=F`T!Qe_8JBHy(g{)$={15Y>J~etmuhEDok3j zw;(|B{Of*f*wr-8jT?Q7tj8k|gG&rf2c!%bJ*M%eYd=wj z7O{X=Ii+sNNWljDQYKI99ZuP2zYH4*?|0)yp%kq62=F6y>uH&pF?tvzKt%uc9vpar z$MCZ~oLbcR7w&@x4`#u6roN(@4v`PlB@rrNqme3Ry`j9~57S9s@o}7Xxzk5+cyzH- z#TnJY^985uO1>zX0`$1f@I4SRSmz)+AxxfXHY~l%S~`UIqI#azVhM;McjGz1w1rfZ zzMl$2Dj*kky(z3qe5_ucM6^oP_9?S|2BOLV&wb+-{;x?xlSxsNS?Sq>EwTOP=ECOExz*y&JDkdEN3+NZgCb zv}L|aL5~eMqSS(jk`l2xL-BVB$8PM`iE)f!TUKycbF&m;uB##+Hm5;_b2c3GY@k}5 zB)obxx4qAa+<)9pIGC68RZ_BLC=dPV74?O{mz3r&xnkAth)f4p*iX;|Zk0e{M_hlh zz?yhs%-7G)Ue%PEY8VCOmzTE~J@{Uk=fzuNe|iMv zg$vIVUvVW(6hAD(2Eh%J8RUQ5O9v99>EZSQCT8`0aIjBvj4b>&pb>+kp9Ch~IcMh; z=lX$ZZ#3YL(y6c9*VNSPQ?$t0iJ$xR3j@qxx&)8M@iBrQ{v7yBK)6Pi?|_L4a%ZG1 zq-NW|1a~_6YkhEhY~J;f9pj&kLxD#$7GdJWlR9#ErH{!#uW6~YMQd!AG-He8wiJC^ zas%U##&#s06P8)zEchzJUT*w*Zm?hG_gq|ql7t|_tqov7@Mx|&iwD?P$?B$w0LuL#V zpjYVN(PdBzVUVEnT)sBD*zKYHsrKJ<%d@txNJo3K*J1?|d+rhy_M0bsnMio=LaFtu zvUZRyu@@F-#wLIFr**=}m?v!TI&GbOsEg_A5s*mk%F51V{8UWAEO<6q$y4gU?6lEH z)8{7kD7r%_zr1pfMggHQIrOIGQ>_iDrLd+H=KV7%qClZ(-gk__dt7Il3ym!q36Ur_xk|UYj z>U2EyU4AWqQ?EcVyHdjJZ}^BO{I<*Fhbx$a9C>_tcx52}(#s@k(l4=h@U^bBYbDpE zBpJ?JbMWZIWUcpn{;Ml|N!0sK7%gKqLrw6E8T^w*K{10P78qYAXc|4=TJgQ-1^?@QBt}kDr z21j>(<4o0IiF+_83^*vS;|gGg?NXeh5+oNHxal-|;x#w&F+(=m=gpLs?B%erwtsyN zDk?aeO@7LlEIpXBsB}s`&najFx^W9LEO8abg|sVKsWw+Zy|PyPEXR=N48-dQ+?mf9PuBz=W><{3;$qA%(lQisilE^z@F{oT*{AZV(cC;fpV{v-k;}c40xRAf#Oawb)Ba-^6dEQmV_%JR z?OID~F!~ug9v*sk!Kg9n@~tT*%z_eTIX%J(CC9QIp(6=BIT7M_d_UQkf9ao>c$Ko9 z`L>gUTF#FHTD~MyuV13YSyGlR=b)PX? zby_h#F!#OSNZr}0(40mzSF#9WtfL*sLl&Ec;j{oNu<)N&%-VBox+mu#YVCqA@Qar=oHO$=qmwpd`($L)zh569`+9IMy zT`N97N5qamKtvZ}0qJykwZQ;dAZszX=%+YDQ`~I| z)C4df3X)PE81ifWu1(MaR4empPESWbauP!6cb%L{dFqyFY>quP|4NFkjO}`jEJIb3~l(p$g0;|~cU__|DRKh>|=m5{nxtYU)+%bk!v;;xkaz4-hO zE&+ka^10~P@y2YPpVP>vm7SEjhLO0@9}^?*-A@{P-2cbLrW?F=7!=yMz}Nc*$ZBEz znSoPi0DLV_-IKimL1vK-AZhhG8tWK3>%ZK67qQ?XLD%pPP82t2=l_7=$6 z@!JetO_2(i&g_E|ACrppS+DK%y}`{*3`^rA_G0&!OKBdN=!n)DtiJyrmT69kG%Mxfm&Gq8AI>brzd?g9vjn-z$q+P12^aY0{olYA@zhMjmb=xEG#Y( zBajd{Ic&y_OEui`DzO72`&OFbytSyHgEWk-x?l>T^3O6ek;>pIs=S*N>&a3}lcc+8 zMOo!I69c{y0I=x@k|IF&EOzGurUSXR zuC6YAW1qdTCuQ)MFfCDl5!+I3yJ9p&F2^_pr@uSJkO7)QlR;obmN1A>#38++qN4Ta z{yZ@$+Tl;E)ENR%(8>R<804Fs$|RvDW}CCEn1&PR#=@xC*Nqx#OvUbNsm1tDi`e}@ zKw}FgdkAsjKzKT09_y3*sh3@-@XbZE9z4KC=#VUm*pBpOk|A#XN2(imT3lLM?9h@{{o8?r;6aHO_NvA*BbuzG7_y8gu9Z8xK*a+W4s1e=3tKE_d#CYFO)!8u))B>B70fbfRTI0kaM$UAqYBq|l=i(#9Uvj#ikMEuWb zT|pTU`|%LqXg?vuw7I|E`I23>6xMeI1dXt~?`uh&G*FL0MhjE#42Axe&H4Xc95MZK z!#(hr*%TjCZoffUNMQ;-GU>loQzJ7-=7Ct_*tq*<_!x2qD2Nej0F?h6N?{I3(LY0Z z)W8y;(e9sdihHbAtTdvd83`2Q3#VUk5FQA0R4fpNfPw1a>JYR!H1;if=RoLz5T_<-P!)m=lAKSPZn>{MG+mM6 zL$pIGxK9cQ6bZr%#N**{*o1}{Y7P-U_7F3BMTwGn(j{L$UAjO6Fpqf-P_`H!Nn7)eA zQc6f9L4#;W2m*m|g`sTc?grg+fK%9r6B37w-n(ruMUaxiLO=|K1459!K@14E4FTx( z!x+z4SXhK4B(eoMMVlo7rz8lcwQ=Fx-6dF+h(L#_x(w|C9U5au8X-2p+oMJBTYu-o zq#%LfLwDF!Fl1l@=p=4Xd*ySvcm#$qjKDPfhsrX$5pXUpc`%Cu{ZJCSLz)OgaBCo> z(%CpTz+P382cr3{!OIo0v<+~e{AlnJBE^@D-Z16y>KV7vA;dyp+{teh)|v$+D^O_= zY&UOS1Q`Mi-41~u;+VkaJr5V&3fPWZ_ucNk0s-u@{j{L2B8ZH6C4o_64h>)j&`Gpe z-F!+0?Scw+cGn^9gP0x4(>#F8C_j7<)9>=D666l|Mgej+pZlBd!z#pw?du4xx;4V8ZCc+^$NV z9hloeARl(tr^HMh?gWHG^g|W@v%@F#)wjU$AVO^RiOf7SG_JDKtE|eQIs`wrC?>_# z)wOTt_rijnUkL<*4QpNg-6MdV8wOxzF;UlF*>8a;9bBN=pftg{1v*iiDE2ge=PW3U0fHB2>S6N_eV%8A!1umonFd^yhWiA_DqyoTw6+@E#kLdCL-eCM+OXPp;Nj{V6 Y4l&IBz9?=3J=F+BIaO4#jLEbA1}R`(QUCw| literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_04_19_0.png b/.doctrees/nbsphinx/examples_chap_04_19_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d20d3bfddb98af8760ec76fd4084070e6ae170 GIT binary patch literal 19579 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 literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_04_24_1.png b/.doctrees/nbsphinx/examples_chap_04_24_1.png new file mode 100644 index 0000000000000000000000000000000000000000..004dfbef37644f71ada0e605b8de881a27466608 GIT binary patch literal 15982 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 literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_04_25_0.png b/.doctrees/nbsphinx/examples_chap_04_25_0.png new file mode 100644 index 0000000000000000000000000000000000000000..8d42e74bbfe4e17951e2240a8ddd54c80ffaa6bf GIT binary patch literal 26314 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 DkNjBg literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_04_6_0.png b/.doctrees/nbsphinx/examples_chap_04_6_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c3213ac2321d335c8ed04c3c45c97b5fe155e05d GIT binary patch literal 59799 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 z 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 J&UHiI{|6SkxitU) literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_chap_04_9_1.png b/.doctrees/nbsphinx/examples_chap_04_9_1.png new file mode 100644 index 0000000000000000000000000000000000000000..aee42ac87f266937e3e16f4120d56b6c85a22e19 GIT binary patch literal 16792 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 Y-nd68KXVBFF9|SNDMfVd1H;$<3!osW6#xJL literal 0 HcmV?d00001 diff --git a/.doctrees/nbsphinx/examples_quick_guide_igraph_22_0.png b/.doctrees/nbsphinx/examples_quick_guide_igraph_22_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a452893afacff23965adee0edc6b135e43844e19 GIT binary patch literal 12733 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 SwlGxSKRX*o>jRcvq5lV=Yxi>i literal 0 HcmV?d00001 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/_images/examples_chap_02_10_2.png b/_images/examples_chap_02_10_2.png new file mode 100644 index 0000000000000000000000000000000000000000..05eb9d5bcedefc5b4af66184391dfe343cbd9f47 GIT binary patch literal 8931 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

h8rETcwP{m{h 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 Vfh+`)4*o?9qNAa&4kYc!{{hgD^Edzi literal 0 HcmV?d00001 diff --git a/_images/examples_chap_02_15_1.png b/_images/examples_chap_02_15_1.png new file mode 100644 index 0000000000000000000000000000000000000000..69322d69ad5782ec604e17f0da85b3693aa76cca GIT binary patch literal 8977 zcmai4by$>NuwG(m2?>cMq>)bP?nXoqTuPAcS{ekUK|(-5T0$D>ZUj`imj;pU2Dyjd zeV+U8{bSjOZ_k-C=giDI^UnDqv^A9;;85Z~Adm+t%JR>^_YL@5V_|^5nq`-Z;7i0^ z!N6VD>5aRWnX4s4!_3{;-pSqG#+=U6($&qz$&sH+kc*##&f4AG*-ez2+u{EPa5=eJ zasOg(7zIMGot0m@K_CQX_aBr(sRA1agg!t;UgkL>eRtm5PuH?l>R?D^R(mvg&!))1 z=A{McEPXP(WC_9_j@tj1mG4QFFtvh?l1z_fGg3#Vaw$lEq&VCV`Qb9SI#xQ0o-R2S zKjddzhAdn4W-B9;id)9D5_Z>UzKXBrZIoJ#`Tf3avEJ$ z&t7Odxd1GT=L?w(r4M%kDm3FqPX8asqN&2y9*n3i@1EW44nxM!Gg-qt8h;otWv)b7X6zB6bw|U3m?GHq>!P?X+>yJDILF9Q2fHoZsACn9>0){ZBt(U8n^?L zB{|h!6$M!76RM`?w9OrN4r((A{KE8b|9Bwgw&H46w@yZ=7d*R>;leGky(jb1ZM^hF zE8os|o5Z}tPtX-DV%pa1`a|Bk`vmsR&V5ORF(^iS0|%C1Qzc?rJKNN3vKV0Vr8Uhf z6otoV*Sbo?y8pMDzsUdw$p5VghPfjAIsVOWS<=R$CH+f`ZAOv)&O`a`Jq@g}Sn) zB3kES<*u{INj&#;mLl@_Rv6k{f>NnfV(pw#5OH8V((d$&v&3ICoR!{B=B4}K9w|d; zi_BQo!W+`?V(JGQFl%CTlN4#cZrd93vz?hA{(Efb6B(N?UvKzgF+u0zVVa2^^XrKz zDx%rX{Xc*H%wspn0h9D27xUbaKD!u^5F69%3jV^@lS%t3@^j!v)A>e^oHNRC+0k}i zAK9XwWqF$rQWnY*cUc=qVR3O+GzI^`Aa@&`loai1UmdMuJXukgO!@KE_^j}h+san! zbiE71UemrLBO~KdQ9;I0hZeB`qfv4$vFb#>z0m8~YMa8sLg|12Nj`plv1Su3AAj!V z1Jn$^BNhAU3Y4fv+{tSjSkDvCGc;NC3L+zMkcib7Yg=1c85xxK1hji2=ia{S6usm$ zeg`roCT%oEb&fshB5vJRM5q~m6FnEwwXaSm33$Ae>GyuXrk8i!WsB~XylE1dHDvAV z*l}=iCGf?DTOT~-V-j9Yw`kB6lCvSdPd{IA>(#P`4Vo$2R57d&K(SiBdn*9(Mw{`ztl z)-(=Y8~e$!=_H3>5||Gpu_>#nc4kQU4%a!EWKI#%(8N-UdD3xk;60spC;s{7`;grM z3y?BKtV(5Pcknw9oyF6;gRVVP4*!3aD+ayR?6$magMrk z3b)nrgNrLK(H4JIRlFSE?M6L@%}*L>LT1aI@9MY9nhqw7oF20(&lqJsbwq|UsUbZ46^HNuRcO=qY>9GXAZ(=%Hi_{c+!XHf5)jbvhb%Nl&Xwx$g)|G-{Ghy!Vo z8VXS?-aM$?6UQf-+L|b?H1EL?Kl;IdIP7_JyG3lPC2>mfgq^(-$m;ItF#{;!n!+fi zWBd)ylB61;$$HA!Oa7wlRRk&fi=|Ii8HY_3XuC$vZfsP9X8*^l2WX0<~{F|$(w&W(pe#q2VmnR9q0?*8A5(^q z$8*Pk<5fN3#Kc6-cp3BQ>1nE{#}i<`_{_{W5R46KN1wn~^WDGe=_*TH8t*lt3Hy$Z zC$p{@8HTtw8==pfG)p~1zaRka-8-N&EKKU|a>$?=!CP%On>9xIeI`21u@SpKE7Q|= z+9J!SEkMH6)%75y?FJerah8f)SN_fNC^6~k)z#LPt@vR#G2(i+F8UdG%;ih&|WqKM<+bSwPybBBa?y}ljd3EK}FnEYdN=nKhDERRK z1z+gI`1lWaY~gbvM9SySl(iQ94|`o;R3fg7>>M0PO^hn*8ynw2y8KS%SRX9-^eI@~ zUqnHA~$w96czU^8z{r={cxlc>R?qZwCo@=vW@c!GeO^f~3Yc76r zJPrS}5#ulJhbP)xU{%0U$9RT^;EcZOnfh>CuumhgEF=E?@2Yy104 z_$~!wrYh!|$%Wxt-lug1n>w*f8h2sXPOR9TDP_$279b~QT&7u9U%w9&ZNC!|6JL6J zHz3y$KUp%v2pE}|nC_9S)&JU*?^DH_UzFg9_k^O>Z_J7r`+8uQN)UE_2OXFIlO?Xa zmCyB_KR3O(IK;xmmDAB7%E_HKd7^>MdNAKk-u35K+99x7&eyL{EvZ`pU`C8Dzi;1h z`TC%0gNhFTcgTE`*J`4cWQSA0F%?nZlTqq>>;)AXFXF(IgoH%8d}*+W|r1kugOm=@T%jG5VEpm&(Q zu{X58zyFb=)Qh?3TtNvbwA-<^*2wFa@4RN6p)_?0-KP`!CT5c*FH@xgB^Ls&ch$*SW|sa&DeHuA>E zUM3>vF=vcEmx@MVQ1qN_eUFy^wO8dVluqJ!fW6%G@@O65wk^~h0~_0YjAWHVA7wgf}N)Q0fR4-#<6y2(lOYTP|Yzx-)QJ}`CBpl!U{XX#}2oQ zLaegOQv~ATL(RFVb5nbMC*g=E;>)Ik9)+fS*02ILt-v-OAN+@$ zC*&_RWn>0MV*7&#vCmv_nya%@(?KKS$UfXuG{cw+Y6}NTyB1t3EK~5uJx3%=2Ilj zv|(v#(?ti@zMYHk2s4%>yo>3J-90z=3}Bj_{q}vjVvAS(de;vW{a2k+65cLP|D);h z6rCgA6;R2V&du(eccWO5|0n|PF8Cd-Hn}H9V?fpG{9sx1_`KA}`L}HkC+^*n$6VRt zbaK{%hlI`Pn7@qbFfwmW1#cW@RzdwNksyH|ucdPNem5X&N04>YdGwCnk7 z8O3APYhN;Z!uw{iiNv?op$9i=Z|BH$qU`Z2tr2o#R5Q^bF8!9%82!V;M#0oNcM5fp zLBQqdIknz9tD9EL{a%ih5)T%M`iBJ}j~Aqo=@4x`Hqlz8y^i9sy|JissGj~3j<-4E zE6~!VM)x0?zvc;OutAgbxn;6YZ$!y0ZzJl9gSD<{>C1-rUuWZvifFxmu^g`h2|9_; z<+}9wlSc&_XCs;N-sxq-V$JdoWqq@&J7zcQ_rm6(kf4E4|MLu+c%O7<{_j`F>rBrk2hUdj9J~y?(%uCDVyJhT z&Z~N=+c3D>^0pLN02-uTR6;kYZxaVN)c*?ULt(7>q1t^#YM;vL@F40zK?Qq~9Tv;kZ!G-XF!ON1(A@Ux_7ADf z7TrqHT^-vj=wWA$esBEH-*<-}cgp15*PE5+vM#TDn{sND;696oe||79V=W0#_Q#3S zuROaVj78-RDZ>}69-mnHQRjQ;{@YwWblASRjc9v#)U0wj=X{IxfN%Tn^h){hG2oMU zB#$03NJzl<9;!S&IWahL4-rWGF7Q6(m8Yy8 zAVEO+DPx3PR?uT%BJ^Ht^62723_?O=W@bkYSvl?Osl`T_DI5QCNV=txl9O`+@BURy zN(bxn=+^~+?TwcbK*WazXTM;w9zUyz zWz6 zzjJlv$gg0fU#C+hansWVv!Sa>U|aE@KjXy2Y1M6p-;ffP58Jog=?vgW0PWP66R}ye zGV&Z-GPBwfX+DX2^R29`Sl2EP@bt1CVdDRQ z<1|FmVF`O5F+wxKtw5tGJT9)lu?6*uh#Q7y(-%~&?$xbHr};+Gw{$UN`2}? zBYC+-yfw)lKKkY_3XWg9Gf=SBScLUJo{yMCQ(jgU73>pq(ivAjmjWgDrtO8EKYy;h z6yXkh2-Kc2`)zl|d(WQlgYB9|gGQ!1vwCU}DDXy^VNhqze(=P?8tnK$oS^hY)Y_Uw zgIWVRRI)u)o%vo)o$(vs`Akeuz)icYorystCLbXi(GP#1TKF*qR(HE-JzXwLS@Ag^Dr;LoqjAX!(bH1Z|W@b~`4k ze%-&O{no@Lk_m7zkVz#KApVe;7}x+0k)gD|&_YB@%k9Ocp9MyKE=`FWjm>W*he`&0 zQfE$=@FiOexGqJ0EsT6-b$>Y0R8JjYWsO@;KxC1FJAzJdurof3I!N&WSPgp3R@s&;D!2L($@CTIrh zkjE4}EGda(Hk2W!s)`RX@ZYI?lb`oFY?xfSKHukdW7^YM(i^bg)2TC-2Yw+eOdb&t z;hM5S1~vW)h+#;;?bV2Vi!xBJE#Nk5!gigjhZCn+6^<-*va`GAfg1#Bt`Mm41aMA3 zxr>arQ3DO`&;FYy==0J8ZrgZDpXG(fL6kY(T4nkx&R@|KmX|BNe$4`^}POLOix5fTV!k6%FC>Qm>(9=Oy4mAg~s}fo^SW6&fwR z(=E`HAw+NcZ!>vlo12^Dpf&YQL)hVM5V*ww?b8wG-@!sM9~xvW4+`RX8qxdV5FMJ> zRi40Q`sX6TejYhEleO$!l+EsxT^nZ5}JbyiYgvUu2YQnWxGB)Cql0uhE@4P#5xg;8boGNm%N+>5@ zh(V;O)+F0^ZUT!-JxP-ELYyj8Uu9Qa%u#|&#j-(N?4anP$AEs8N#`4hLP)OtY9jn~ z&97%k1WYz5# zlK{v>9o6!H=})hwlaphilFS08^Ym`LYe_@VUK$EloI+x=>)eIFmtJIlW^L`v*Yrv5wN3ApZ45_L#KBP^IQGp{-# z@HmlA{Dsom5vdyWfUM6_f6fvwyOFN#Wu^91^^=DC-;OV_8-KfRm?~nl+t=jw|Izk? zAYDogQcFFZ|5`YPtlrr6ylp&r()-ll@q|b*^78Co#NOd*cz6uI z3#H@rfaEV8`o0Q0M&i$j8jigsEF~+7_bD1YBM0%z;c3&gH)`%h&(|%5y6@Q2IXWIX z9V)MWbIKVm#MnM*tFU}Fba3@LP~Jm9h z0y#S;1(26kR#)Rcd~jaY^79k#?CK(Q>q!PA*!|3o0?-A9s$P?$8at;{3^xT4oFgGG zNo_Y)_TDq zI?BRF8B-(pWudJ4zq#)=t7#U``#POWzZ;I&+R)A=XI?x#3p{-ak^XZ!^LL`@n6CA- zw-NU>qL-YKic06@OYdbZJ-rF0Kq==X25fHTHgbj}@KEOb87yY8& zMlcnrpnppvL)eav!l@B6eK+9=yYwU=le~O8w-0O>9T|7w&-ToE#Zl$V zqfpYVv1{(%)hP;jLV{Q`r+`6}$>~$~Vj&qqfD*nvQL;+h55e7I{f!NbntJz4q2u(< z#l;2WewsV3`&+3asQ_9CAxTNsJbOmZ$=oCNOMi(=cz6Wx1tz^1R)-4JDuKRxvT)wt z^to$U+QZ|NlpCG;wk11zIbnaoT0mKKGfdxe@7S6v`|78Sz~p33Wf_Ll4p;k>cbdz_ z(Z^K({ZX#A^FK0&RpkcSDaJjc^rym)M=*#0NixC0$5#Z224v)>=KTh@4O5{sZf{;| zVXJe*3J(`Awo8NxBxq!65ess$G%=CtT8vFJvd8i#slr?)Sie%T<*nK9HgfOlKK_)k z50m;cI2R)$I=D$oNq?q0W!smbTQhI#G%UFJO6 zCSM>Yqbe&b&C9?VwI-x2@eos!680Bpy}Wt7b7{`b@k;}1B#hqUfJgkm+_AvOj+>0K z>7cA{&?2L65g;l=%9M91QPKNp7IH46~Q`b7VKZ)E&` duWejPDMRF(|rx=Umbkw!oPK?y;+yBjI#5NQ~?;qLkV z&N`E~o!#!0F;{ z!!`V@egbsz*i})_0|LP{L;NBYNfz2cAS^a7<)pQsS^JB=hFTl<=OOvnes}He1ZR@kdlP>0*7gVyBYay zq9ZRmA2*gqP%!NRUfR<%4{Nl)H$lyQ&CVVpVxxQ)OSq%LqrM|2+?2g;v=McW67wje zFe+#;#ppOAkX2)_KDQCB$*{sB>hS(w9x=k4A#`P3w!EJ;Oi&1WrMtM{A7kn8fB#r6 zXd|RAcmISWY|r8B;5kNSPfn$y*o~o8M<>S=otmjNR>NJ@MNHQ*wiVyU$}0O=8y794 zK6i@hB6X0PTk3J->$H|MFh7X`-`9l{H5)J6=$~(G z8*56LgOAV7y&O3l!)-#DqyJc`!Voh4Gv`| zd7Tply}hB-2^Pl+S3y5)gOQ2uyS+9kuj)Su=3o!cG3=Qa7e@?WNi?}sDY)5}{pr%N zdl2fnM#O&a%CWG4N%Uu9O~p*Qa(T6G&RqfZ3O*s<5X};Sz9E95;SrZ9Zma=EH_qlK zxA>~uyHG1(>vpBy-qIxYGtVC?1AU)29meAk5Zr-VG;M#B+REwZ_IqgY_)01i^iV4x zQkk&KS(p=6cr0<7eMiH7^NQ%}1y)B1J__E&G^XvdXG1B&iyS$)L{J$=OYZcHEa?jy zCe&al6Qjsrj`X<1q_3-`%97@DS*h=9M3Ek{ZrIru^&GGTxHDcquT4hV$EZk@cahkG zw51Dec}+pBR~?|92j&o|2QvoR#DQ|(vrM7jHH;2Tf?Cf>tkn?tHRCB)2ra03fr3apj{5mzUqDiDl|O`rN_ zz+1#H)%)>xcKcuHeQu$`8#>|D0ag|RaWwkHxnR=oKZ^v~gnfSF@Yqedn^@oR_QDyP z4F7Q;q0e{~r#RhyM89Q6S1e)ThYw*^gDGZb(KO~;MT(xgi$CwRIdW7xK8@iZ$D=I#B>p&Hv&pts8taJKNh=~9C< z$>5;8QRNGE^*3+cMAp>_`3qn{5MPd1@~#eYwRVk4KD5o`cc1^fD_!;MnJYbV02GfKKtdmXF}esm-q6eJ-gE>1@h_gRhA_5RlP@)BM- z9>IiY?|!uQ0-KB*(%;`71B0Qd&ELdzn+Kc>3#N(t*DTJ<0mHzEu+oD<7YYB zp4Gd9jg5_>`O5ze_mjORo??b}VQOj$0)kl8v*hGtA@@HR%qm&4D;{9~_s819(Lc}Z z^4Lw}qvgz?E*a+?Uwi?v36f$p-t6xKdd+L!oa`i=7;&YH?&|82Pd$O4X218|oU3-| z>+eT|M@-$6$k)uBb#CkARC#TnWjT9XU!Ni?(Odam#GnjdyA)r&ayWLU&IMnWQAz}m zfk$A1hDd`yF)%S@Y;A3mdbfqabT9^grU|*xr&-tJj&FOuS7dyzNLlH|hcK`|fB&ux zBtIKA9zm%VZ_4A`MA%Q0nH~v2>?2(9Q?<%XaMX4zx+&c;_zXj3>I$JO`BY=OXS1!r zt-l9-Ly%P!8(sHid9<{(^@*Vh@na}p2GI7O?8wN-cqAm&=VCjnkL}QRsC#4C_ZVft zf5#7wj`m)iY;u4hLEAa86svab*LMR|e-R_CgOSEQ%a-aJWP`3Ltog}-sZQALH~jl; zr%H|lPPM+%)SV~@TlvbbUcZj0trbMWrFNXULUhKRVuepgh*F{ZU!RLQI%M(-3k?Dv z5GHF^`L9Lu@bG8{D-`}x2T$S%2nl&ySEL@Hq3PdIA?6zXnwjv!hYuyxpMJ=4jp9w9 zeG>I~(%s$7(Ga{T1oH!f(5G0fZfr!Zc19cAQ8gRmwz)l5x-~+y2B$Pn*4Hzn2d!Gtk`7nYXRbX zc}O`8rGOEGL(*yc$^OS(SU!PzaqUnBipnziQ!TQ%LgI;KVimK~M$E7Wb>^u$Wh#AyYqwta`jh&|@XBfM(+1S`zPq);& zdU|ShZuTYMxpqp}& z>3cmq5mHz|ZA=+acS!tT5JB&>@7eLU!?^GOny8)dae*ETEh7;BUK?1Fxc|A_#lfP% z*_}7VCg!d$s8*YYFpH$GJ%qVLF#b~8gJSO!G zIm@bc7A7MOk92cxj)ronm8n||4Py;=wqpq|_iLBmXJ$HRuIw&-v>=P>O{vEI5jq2~ zot?dMXW>JbWVzR{Km1&<725VA(h7in02oHwLXX7R*_lk#+p&1i^|ZJGG8#I{%8FvM zArP=&@C;7`N=8kFZ+9+saIhgx2kQdf{_ZJCz2VXh@7x>2t`gawX)jjNTyL-#N_Y@> zEMK>+)l-JZlu~bqgbzD0<_lEmb4*N3I5uRV&*>r7pzC3yp{?<5xOlm%a!|XS1s+s9 zV11CH8pA*-;)x;h35NV&0|2<#?*iwrDe6YH!J^~WsDaUQpV|N!%1|pk&+Q4+!0XeB zZ*vy(qd|L-z^mbemxL;S2jQTmKzfF?aoARgIl5}wPDl>SNTezNwYEJn`H%1XDh zoi~|Wn@F2rEb*rPx1X=xPKc_JlCGu>yIop&80M{y;_S!K;VQQca6O;b!ler^|2JB! z_a@ZVmv|FG6Nytr*d!&JD$kbVC6=q*s5onT;ED+-+>Q4Ttm%_9AlUanZp*osM`@Y9`UWyI!%M zuLl|A-u>z9V&lr;;qq4NEw#9x>DJh1u^A=9#ZrS>*Q2#=l6@+hmyMWW5NvFjmRlv)*4A>X;gmUe4i)TJiHZ?LMXXB$o~KK2V75Aa zj2I_6$9jw%cMpvVZ*+CZ*4Ec|6RxhV=$M#LoBc0(!ceis>OE{qbSsbroflTBak|a` zjsT==pP#?YTT8L^5f@YQ=c4%^LQ!IWDYEwQAI);>VRA^@T6Y{iF>xe_fNR%hy8s@a zgXxTw8VHKrU#=q{Pbi~AR=>}bo0f?wvUdDRWS)`0`a`(T;Dxn2UD{djDi!bP)7Y3849DL;3xdRX zWY~p$j~NFB2Ys7^eWIFIk&s9$umSg>+C!JD#}3(8nW4H!8pNa8n<=t!apml!Wn=r^ zuRxidoekYCNOj$wU}9uq`fSk)OA~M)Y4F?*6I>1;1Y1*j`=aYjIXjk#iHV$?99;YB zxGf+>_N}4l_J`YmRMWD}k}hf;TeEDk=9?q<8}VM8y0k$E`GLS20KniKU0Q$TE78S*tn3Y`X?7-SZ`Tu)!k(2* zctmB8H%^sm7uSP-E;Fcgri3_O!dDk?C2!ld&-@yzLxpPRYh64bb%!lCuo-tOEG%Kj z0$@Qy4)q*XAX8zY$JaX0fcp34x~I;8pb89^=~c=KU}Lk*{(?l9sMbSip(`t zcE0z!Z)nKVlQ1?M*a|q1%bS}MeNNP+m#2rzG!)Mr+kgqfM??>41q6s!S64wKW%oW< zh|M6^_w0N#IXOuyES!GP>jptx+P=KJH0^#%+&3~J9}pmBZ*LEuwMh8ve{pd6CrMRJ zUw>zdnIQC&xIYOK6H}7}tXMYGM*}dAUxli@i3|$wv$J757CkFxGbRd~BcF~YUUAVq zdp0<(%!vFFAiu`9u5zMtGMouB>Z4HVXfH6=}ar7;@j7)U$Q7U+-mKMzH;?vM1 zR6ESji;GhM`04_FaMXdtl`9+lE_$PID7bA#D3=D8D{XKQ8!dT%i4q$6w^oOc;0(?|o74~As~lZB-ToyMbSs30 zLmmMf;EQIVitbO#$7Lq1OW)lE{1{+=lW7HN$$r~ARlW)W$yA@VLt=)(yF6c}s!i$y zKxRyN(;q!8N7?$&qHIBihAVMN>%BJ{y0Bo#u3v>QU*jY@nk~*_H9(aA^{f8fgbGYQ z4q!8pokQww&1q@F`U`z=4fi-(1?p^Y(nu(1xnKfeA5BQ1xVX5|1GOZmOY*??dw^*r zrlv-N@VEw;FW}5QAxJ1->(MF?w@m)|CM7TZ^mW!o?s6Q8X+z`q-{cRNnL**jeCe;B zAKp2~s^~O&fHm(&L`S3l9ZC-$8hTAB+RLa?(%r6?}>Hz$$!A!QEMbJN#Usb zdx5T)9ltg99*mR$eYF#nYvsE8WOzETzK)=N@>lH~Adu>6YP7a1yVI2(e?T-u&Gy0W zG+n53L!3I;K$u>oH617C6FNG&v%@W&9h^RPM?b8+{Qc!G@CyUzpZeCdvpT1=<{hJt z$sbp$3z^qD`tydTZyd~?F8-?3FgK?Mo+KYn&ZJ8<0=H+E$~*N|*VBsyroUD>D$zMr ztaGHi^LSyV-XSUV$cm|3?fUZhWrV&V z@lW~C*pe|DeGW-VU>D25G>E{rKVOSl+(|y!IUibB$U?$t7*kTh&PXlv=nbD4`WWjT zWaYD3uE&Kj>s8*B&y_GFQeS+)3oVFzpMGFq!1eahO&S5#+pGV;y%`B&$9VWlx{D!p zYy*jbSIA+0=g?4n zHg;>VQBX!k=22-h@?jX@8I?))8I^(ioa#)5BJBKL%Kf+0MD4;Ieb%7POSrSqsXQvF-$Rh`B&$)2__d@w{-_5 zQ1@|OvF8s~?K^H(U|3flpWZYci$_1=z_2BY%Mu_B4>G*q61$%u5Ua3FH$AHp0j$P* zPq*>4k5^PYBNDY>5@U*9W$PVRW=jWbRHCPCd>xPHFP-7tnPd2Ra|Z|4Cr4%RGL^jX z75HlBS!M=CX+s0Kgaj;yK{~XSAy)BGq?V)i3g?|ECeQ}@q%A3hXSXg@b%uTv|9Jm) zzk%DOe&$Ed&R#OL zQ5V+LCHDv&Jx}L{vG=#pr_Vn;+M-@MkkL9Ok&LcQ(WRHZ)yZKH6Qdj-A6HaT`qF%s z0TLx<tXCi(h0 zJYT($f-n!~SIK>gHx0(EXm_Ou>qvJ3j1Due2fxo%T)5R-wMKx-g;1%V~BPr>O1@J%iFNoj~D@U^z`)QK8MC} z?H6!(Ta)j}dtjuCjXtvUi7Vp@G%pU9nvc3kO{DV1XYV_+v_LFC=nMCEH}j>ypfK{r z6+>C7iFhB&|2JE3XU$h0{ivzfz4i421KkFW?cvvdYRyn_dSC>9YI9a7qZwj12rZgA}XuyC4fov;jbn&F$^} zeoJ0wfaMF_aimUH|EMqs3Z|m8F)=dERxhosnLmNldTgpRPR|qVtbY0k$n<~_rVH*< zt%C{c!a)F}Qm2I$fJ>R`kpN6^deaOHDJDMt1yEj={13$u)GGMl9(uVNT>;*oizl-D z^Uq`R3Nn!XdY8`V)ubZ>Od7_*#YOLRGbKY)Dj)zk7jy+_5X(yUi^jL|fGc-P8=Lic zm(~{`$^G)>3pdyz$N3r@G}(CrQ7({3cShqzD;4~7XeNSoWUA-Mhpr1DXlyE{Q5Z0B zV4+Y7x72>iG+_^BUS8h!85wWe+N6fEgb6{!zr0*eP}iP5b)O%R|1o3naDNx(i0Twu z>Bxr~a^3#722t&29ATr0nV1Ge2 zQnwuZUn5ESSkaqr&!3A)-KjgBZ5HZwC@00^}EzTx6xXw>U33+?@0{jqq}h_!whMEj###4Bv@j!)<48C<5P0=VRkGcb+jM908wL(eH()4g zZ{9H3-lhE6++^V6`$czg2*H`d7e&yQ^Zj`@APzL$ozHuJ(_|-E2X4`QwBG9mq@L5= z8Qhc2QH7Z@qa(lqbBl`lIQQ#x+}(M}qNF`Nt7Lb4zP9~h3KXpc5eH$MR(jEs!TWOp z&Z`}fS%#dO3yX{O^&XqUB8n-Ev>_#QK-BH7HB zH6F}KkCRwbd(!!A-X|u8j(ido&8PA?SZLQV35*<-xWPt6MNQ+i!c5^Xi0bR>lmBHX z43mBF0=22Bsf4rD&_)Vyo_TVkJOLE&Tsax7`S3y^M(GKc;6Gfg{rZ{DojS6FJxuw@ z=}1JqL)9DdT{h+D@mucB4eA;j=Qn~{gqN0Ur5t_uEE9Omd5Zz5=PE;RyK z>^H3)csWpqQdf3&y|eEdjcX=zEz%S$kr%7r*fb$xwINL}E~bLzm;apuA! z31LlK)znkYp80tSK*$+@ zbB50t`wx!~+pQGlWGqKmfD{#C&(+Ccl;pif9%j6Xk8^*d#+o6X)9CNZMP!31b_VCP z1?ie@r8SOm;Mp5FdHI^_Mc%i=B<^uywfP!-=Gj=N2A_UU-z0dt1zUANAC%y)(-i{GkO2Tx^pCt{xXsKj0Xk zM)W9== zIBK|u$B114*_U~H80zKeFIB3=EbFJQnfL0o$JP$*1_sMLcc4(V!_J2Tm1^kyWHwUM zVT&lRgEY|QcV+a9yFs`gloa950muC;x{cl(AUoXN`pf?+&t(x)0+Wl0zDIt&$0hZ1 zan0?tvDLF(p5An{eOCCRI8v@2iv;ng-<38DqN4NQR6g{lV2w8}S6kcJXYSac0dOad zGJ_8bF1PjeqN|D>MQ9%IKeOKuIZn2+&o3;X&v%jRTVRhat3FFx2S(cK{s@w*#g_Q~ zeF$&@yx^PpW%$)*j%dS69OwXhE0mzo5h>vCFoOE7V{BEz<<^Y>z18s^(~9YZ?x{4p z%UKl>7_mS)9F6Yza}wZ_a+a2iUsZDswwR}qV&v2myOmpTbP62~TZFPNu|D_&MBA65 zWh)V1%VT#xbC6I-Kw2f)1+AKJXOTvTq2vWDI6&_&%n2gDIp6ODA#f~D0arorTXw-F zyaw-BH~>A_(|eY>hu_;&4iQCk%db~Xdo-_#2eG;_j22>#MG3{IaHzk-nbAPD zINhJ08COPD^H-H*>+9WXIF;JZ&yb4DT%0NJ`Cj@(n$SfN%a)%U`zh}u`b3OEl}}+E zLqFAFmi*~z-+qL~uG5;6K?fqzrETJ$>6GQVEVm#8FOU&#ynlZC)M$dR_#Yxnuq;{@ z7Ic8H?w%eQO!%=tlj)e3MN4j+G&4ibI{W~t82b4ptwFl2LE;GJ-dfIRM~#|YXl$Za!6J zE-J>U(=3Q?n1kf?TlQ*;z$#I*nV0Y~ON|;y3RQD@fD(}ii9TpQ4!vmrSpg2RBg1E_kDE~{F7}T))-`WI-!`{yI@GQH`e?WZ*I#H~{ z6>xVp!^+RC*kT;>rP04lk9?q5)Hr{NfvFZl*uFG(ze>=?kCZz1m0w3*c~Nu)tr$TF zLQm)n_HmnlTz#G~YutG*944Bpg?{6=1`c?ckgem3(|tw^ACs>-Br6K@2BB*)N zJo%^GOxcBLq2-MK-Tn<97v&k@I70@o1J(W?+2p-XBa?gaqJ3s2wUx#cePp^*b0t<8 zNLfH);*iLgho37EZ7hF(xFFo4&N97#Kw4glqdtr%KgwP=)gom8x)>1I&^o!v_-*mb z&CL@}m_QxOwC6!3Us&nSwNMYqr9oauX1&6)T(& zH51iFj!R%4O{-iGD(HM|^VhFvKmjdoy_E!V;X8Q-AkyskKe(;;NEc{K1+#E*;Tkn~ zN`t%tk&ZF@3^*O&8Uo|Lg>Ng=`3hid_#8<6J%HVWH(IRmahVQH_GUO0as;pFhXDt* z+GTRCYb}51{ZUjTrLV7lM-x)4^FxN6!~!7CS@Q!(AbETa3_&yiCH%elT3kRXOSn20 zIEK14d)*wDolj%QFkK#`w!T*hHQBJh_UGdZP4r;BCi)YWjr#6b7Fd{Kt40RoT?50z zrMMs&yZNkLOqZyrrm2YnTc;(6rA<_XuO~>ZaRpytg-qjUlm)o+Dq*=W9GLng^$z1` z9LFN7KKeyMt$CL|Zrk-uvk*Qeiz{8|aI1fCyfJum-FR5L!}Djyca-k%`b|K(-^8A; zR{~w6453SmY12YJ29_E<_QR(b^EIIuGPG>o3eDGYSA3x4lm2>|b`Qk)e}JmL1aM8xAUT zZcpH*2o4wae5u-(qot#>K2h*$>sKKz5$20<3$&!i{$<3vZ&cLpIe9EV1-yu-bLwYrVsTUeHG!32(H7YPW$=ayUc3H+V;cFs5x2)~kQjB-|BdxAW|F)Ne}^x@&i zsu-$s9bq(}%SS6ESV7=gfEyj`AxRdaf&yH9`2W10b`_lU1oHJ;IgA?I!-Kqhp(0l% IV;c5<04`6(+W-In literal 0 HcmV?d00001 diff --git a/_images/examples_chap_02_19_1.png b/_images/examples_chap_02_19_1.png new file mode 100644 index 0000000000000000000000000000000000000000..989443fbd66d68b94e35478a90dc219fd0178c75 GIT binary patch literal 8683 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%0A?5hh{XJ7T?2^g1-k?o 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 R#QuptoApd|i?prI{uiAJPwW5y literal 0 HcmV?d00001 diff --git a/_images/examples_chap_02_7_0.png b/_images/examples_chap_02_7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ba27eaf5b46eeac7ada9a5f000d42a0372cdf966 GIT binary patch literal 30837 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 G&;1YJd4lKw literal 0 HcmV?d00001 diff --git a/_images/examples_chap_02_8_1.png b/_images/examples_chap_02_8_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ef189835d9a8220629b5e352fddcc88c384d6f GIT binary patch literal 30744 zcmbTecQ}{-|33VZvSn`(qKxd)uy@ijqL8gJ%8tm)ij3@3Mybdw3d!D-Q6ZE)LWLG3 z?(_P5zW48U|8d{-l^>9*^^Jp6BC=I(b}&o`#!-L?Y22(bY5{ zk;qc%m_KJ+(|d4KF)*Ua@w!Cmpl)balS$>3q>46=PkU-z2XizE#yCottvNmd%yQ6 z*Ou7F6~FoP(`C1C&Hj#HSUaL-zpGNff3!HYc=n>Z$5(~OwW)g^Uk@s_aFPpLXUtLc zFQVOvzkTQtu=&~T_z3DD?_ z<<*lD0hw7Tfl&?`R$A4R@%HU8~q=rhGueOG)Gc@=$1+P>$m9o{TXOXHL_isaW2F4PK(j++oo-JQoL<@D0}1)?s`njvZ^hd-#ggg$t%rl`k%jPON>O zUHb7u;(g^zcV=AR=D!ys`vPx1ZOE1IGOzNa#{HzJ1S;Fu*o=*j2k$;{&(-4gQ2OC3 zl1(Fq5w|9N^BJ8-W@f_M6L;IbzP+!ly}f=kaPzg-MaSmuZienmmDZHK zW)+fJq7Mv2S5{UkBtzF3!lG$>uU?(#y{{7)7niES&c_$K-(@HZOH>i??~t

dCo- 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 N>fOh;N@)N9 literal 0 HcmV?d00001 diff --git a/_images/examples_chap_03_13_1.png b/_images/examples_chap_03_13_1.png new file mode 100644 index 0000000000000000000000000000000000000000..010396f37c1ecd327308916e26a99a2838e50ff4 GIT binary patch literal 19924 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 bZXB^*vp111>)hl=!5?KsRZOA$y+{8KSz%}v literal 0 HcmV?d00001 diff --git a/_images/examples_chap_03_18_0.png b/_images/examples_chap_03_18_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6994359f3db8269c383cd211ce1fdf619a902b78 GIT binary patch literal 50508 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 z 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

$ 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 R-Q-!&cI#-Q?K*P)zW_EVlz{*M literal 0 HcmV?d00001 diff --git a/_images/examples_chap_03_21_0.png b/_images/examples_chap_03_21_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8a6ab5ff8c5f966039a922f1203dad21ec2baa GIT binary patch literal 27826 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 literal 0 HcmV?d00001 diff --git a/_images/examples_chap_03_6_1.png b/_images/examples_chap_03_6_1.png new file mode 100644 index 0000000000000000000000000000000000000000..132e61b6fe179ed64b1d9d2766eb843756b6d31e GIT binary patch literal 14789 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 literal 0 HcmV?d00001 diff --git a/_images/examples_chap_03_9_0.png b/_images/examples_chap_03_9_0.png new file mode 100644 index 0000000000000000000000000000000000000000..d36f6364b50b120f2e252419c9a5754fbc8a78bd GIT binary patch literal 39880 zcmbTebwHM3v?oX^hzcswjiiLqjUpkPN`unfodzg^fP{o}mw+qJGY2#At52%k$fqtgoK15i-d$+j&TEiqbA#L4gc^u zh^aX!TN^nzzqK<&l6~u7V`1%JVX8;rWN2q^YHh{N!priMiNeIe!N#7CmDTdUJ%PpA z&X~2IaFY_=1k>iFx;+vS_FKdslg=(GVn_8mTkEu=vKc<1 zK1fN$oA0IwYs3|;GP*6Y7THTuzh@TYiz3h8* z{lo204ot*@xE~+MieSJ`jTDk$@C-`Pr~i+qym*(7n#mL^M<*#M>GSz>O8BlL58^fS zH*z^wS6Bc3{riS3&Yejzlonf3N{WhwrEB;t;w_VL?~?L~*0>#Xjf%r#nAq4izgoMA ziuwen+(UelZE9NDJ$(G-OF=J|P!3l=b14=oDv?lH#7jRgboCLbW3c=$AFSO`ERKkZ z9aqeq&wpmup7_vn8x=*@*FOtBdW<+R6(v(s)6~?|Z!s}zYYIN}&UgX7nVIy#5y+vb zk{FbXNyWt+_a8jK#KNLxWb}vEjm}A`U}~6Ka1m!^Wj&&$MR8%W{m-X{hvPOhG-Rsg z$3K!zZo|BLmsUU^_RnYRu+Y%Cf>cSo4_K65hK8QP^DA`IMmibTM!ur|ug%I)6`vwQ7 z$Y7e=%S*U2U{E~CzDDSS^C||O?I$HMZn+{@mwcraFja$DbKt%oa#4F%S_SDQHkl|x z!$lYxtF~%24T#flFV2owms`%8=@L8|EXyXv&ki>x9jm&&uhY=b*zR?5E9bms z{_yeR>O=*503I`Ap{11-OSiz@?VX(+H6}bFZmW*HZsDzhs-bh=>jM@eAH`BP#li70 zbA6h9VVLRG8F+NxIYn97gCuFY^veUf(6~5lmSMNk)r{7zuJq?0Z!Fr?6uPYCmZ_E7 zQ2ze?o5O12IMz}=UO@6_bMj=psGC60jiWz9o{ov>YtoC)Z0?8aA{(FY5H~HfhOJIk zaa-4((83bbYw*FGa2(d2I^_|fgawh@*TWlaV?d6S{oGt7Q!(SE826{KgFr6K@t#6# z&9uP^d*jg1&?qiTjS4MR3JRp0K@G}Hl~{J;yRhQV&-c3bSNoS^Ep^>iY3`En)PF$7 zisCT6?>z0vJ?(i!s$J>u_WXFqz`&qrow@p$#n?O<*Z^EuGR@j2@K z8_0^~u}zloWLEq2&S_)pZHY#fZk^BrI=R1AW%wq_13zeo3$&}8b{4|qmGX52neebS z#>6eX1^Eoo+YLqmXl_(V%$=ZyLFW*JL+1oM2way&I9Wm3y(R`P^hJ2Tpi8*EhGn`iQ`@6cU_FXC)CBzI>y1FV#(Z-gE`v*LPmb;ohOom<>{#vzg0dwz}H zKb21hd8zP9<6nOUw&&U5Vs6>g-20nk^n-3Gxte8#@Iib|>lpQ(N0ZGnzdxSLe8eta zj(4AE{Zk<-CRX5aV&_cdGHMvvTVk#{<#lG6E)$JXpZzN57*3J^mH`$%i$j@XVAQ1d z)x}TEvaU&EIK`JQU(yd5M+v%fl})*sOA2wlVM4m;7Z}LAAHNo5POYVS_BvPN;i#&G z1=DA2au(a$mr~cgAW@zS`Pra9|C)&}TXdoowL^pM$~>k*##>*t04gafSZ)sg2EJfE zpnYQ86?;En8t$5N16mWtP)e{+TVI;AdZB@2L1_9-GMB{qD_vOmlu(I+?uX^U%<6?` z?=s@uvY(9~Zj7_PsYi-n(U!8aV=FNmM0qn+?b@ibFjeWerdM)S_VXvxJ1U8+pRdi| zbLA}?6ZaNs2XS3{*)7=}vPsUAH-d(wt+t|=!chd3ay633D&<8gmE z#3gHV-p$rh&WohYek1fsocxOTRbwb^TDU}dJ>!Sv1n>C90Q|iX{otL& zNZp9DgHB_0_KXr1$As3_)<&IvTtY%g8ylN1`S%_?K*f#yU~fx$wmhIMBO?=Hsl5^K zV<{(dVUw3q)Hg$(9Q9e8bvQ#p_V>Cs2m7|8dTI9qf`g6sS9(1T233Em7p03XZ;lkC z^b|m$qlyJne1DxH9%#cCw_L5`aUNabjJPR$e3fd!!NQm2Do@2EBpwhGw?k9XS`i#B z=!)aV_hWeaG~~tSyAMs=S9&O+^W7@WUAbQHCSz}f**WnQb6n_rMc;AWE`G54fJKp4 z@M6DTR8(|(B_$ZoZ3~KMeWIeMg_Aqyb*|ptQs?HdhPjT{i6K&6)h1tX%nSBG+miMcFhYL2G#2Qn2Mwx((Zo}Lj){_w$h_`_W@JTy->`yT3-DoSQ_%XYyn z4SGe}Kw|D7sP6#iUbttm=J_=dOPw+7hHbbo3B+K{M?ZNh64I)w-WkIk97M{$`}-#O z_Vyp_2Sh|t-SL9a0&z{&0K6R-eC*DfT0*BQ)Oz~*(J=B5OR9P9=%!Spq1X=_ zX=!O{Hnz}#0Tn7LDi6{ioL8Ury2&Z%9t@^Z|I>X{-|fDsD=hMwh_O~XjmWaCwRINC z?r(E*mGwRRWJboWI^WRq%Lq<@Hn*h5cPZ%lUGC|mERd??Snk`OmfuW)8TtCUCFFG| zH>sKvFj8dx&B%F4ZA!&SxRI|JfI)fw34t?iNoOq6$-W(w8h&o_2u~ep?S=HTybCV7 z4kCW`*YJ&UwL@iI@})uanbP1_OGXC`spvB}7oF>KNk0#veK_}CukapcU_N0+Z{x&s z9Sp^T>o>J2cEXE_f6OjTkERjGsYIyc_6$Rj<9db2JADe7i9)GYs+M)@Zlo7{^ObA0 z_<`Z3Jcc5#B;tTvv{Ga!XAL#bF69{oyq}i;G`}wrdkw>GNmNOpy66dp1(<6qza|=s zU#{>H^R?Tac^!;-Z@g}w#C(A7P_1O!I5+Y^J*aSOfefat24!ceZ zuC{NHQ72Kj5`CJ>(WG;LMM`+G_toVhN%R$BQk8F%j+;!^3ci2;ep&VqdP@1pQcTvX z96UgA4x1Cvu$~@{a&dD<8ppeSIzDy*paQFV>0~*f*{JB@s8?4kufs~u`zc*}Uo61s>43qOE!=k(BrBb_x{MP%n^t;LqJ=#9-oAZ%o0Knnw8$9WOxR-N z39Wp*3>2d)0NmBV9Q+5gGBeP~7zYjmxu<3#G_5FMjj#4+*mnya{et>%JNPGNWR%`4 zl&@+sdk^>mQ4jo8dsoa)s?)T+KPd2VvHtw6jp9Yu(ycIwz}m9BLzB8iW`2H604&QuS;dVuC2WEFxpc$J#t2>?x@Et=s{b8QRYb<>8E=kWjuftK}8r-a{M~@zv#B`>Y z47qhgJtgXa$LI?;sDlNPk!t`z9X+j@%&T%(O*S9MOzQ9NpKMnBsg{H+Xf;ue;`x=B zTMqRUD%_4-T25|=l9I9#=H8f9SyeErW~mJ7sV~0H_FoCd$NyP{A&5~or_qgTAcl_S zR=TxK)HFQ7#8Fq7`qvE&mnbe+DIc@yX$Q{VnO#mRTS2m7S z%wQ%Pwlu!}16Mn2Nd$&=aUjN?)7F&ipHFutH^hTTT7f@_z)&Fs zvLX>owg~+-RkO?rz*`V-?L{*)NL zHd=kUYz%9NJ&tV(&W1F?!ox+O+enc(yIyzHg7U4{y)NBk z#_AhDnzC-|{Fa5aBp1i`^lby$Qb)A%+#Yb%HMyvIg5PfYy%Oq`4h+%}OboC4_Ulox zaS3?W`qHqV?$<|)nmsLALurr%4hEFb$4afI<6*7+a#&Rg4GYV9)jmRQ`~MA9ea9kF zt-Yxcvqi79mE5$@&GcC4XXOqjKdNQ>3-lYV%Y3!>2@Jlj98+U^FYuAr1;O>(sS~zA%%Rc z7w8&2LrPA&tGg7&=er6UsvPj7 zrK7`lmsJKzoAfu8M^Epo>8iKf?~3xE3wt+aTH5rM(!9eft2Mr^tT3RI7!sj*x=G@^69=V)*%iYU!0j#v3xNL9RXp~uX!i!%@ zOYiMVJP-;0ZXV7+(X!{0RC2<3^gO^fLj01RYpk~DmC#zlU>$K7CdPQ*v?)SWa-Wdda>M20dPqzshz7nz% zJb8m8m(icHEDT8aD+zBX%&BaL6_|rlxE|OD3~DDQv$(p)Cv<|tJAvD zgc8P9}yZh31#(&Ks*qh(u_!pcVbI*a(Q!vcm*PMriqy7mZ+@YQ7F)yy5G5gaA>BfAA&sXO8>;3%0BidB z`!g1Ly?}aWU|?8SjH?N?l_Ih4m$Cc$ZhchUHNb4Yc zsg3yxV^&?myrosweJ+iE`BKt%Ig+e}XXC&e#E2VpQa`#>DcT2{l$SM`@Zcya0N1Mj zdV>tJcjk00e;E+$awER3fbmaxfgLnJf}72CTSPb_E>X<*#Sav4RCdQRrI|Q{P1^(l zhnDLw#V{04PF}^OfBS|LL@une;NHmK_9}F*sIagcfZ!@j-)q6A3i@aT{Bd21HZGt2 zL~Jruz4F#IpiwDX(9;JeEj-M7IhKaNknwZf(T6|vBuICw6nzCm((rj;MH&SRQ{T@Z#P;mNHO>t&hwo_G2 zy(*>8)~cP{4HWoU9*3qG>*M2t@=!(E&g<&(VilC2$EtY?AUPUt&-_O604R-EnUpU+ z;f~B|V9e@Qoj7Y_Bvx$PM4X5DxEKACVRmk)}JnmkXbXq?H!pp{ zUnrE_OE1S;beb&uHWwj6!02cz4ZcfgPNrdEn$`nar0;bEu^s)3ZrYSSS0UgN%wBoe zF2_ob2>WaCrM0BNIRFI2xQf*D8qdJhyMt~|!4vl_?)Bv`zR2+%1dH^NUsgp`6(TTI zlB!talw5t^wgrkLeOeTctzN;Hd@RqsG+Zzf_RX{!gb_Gm+q*V4eqN@Amceed4hs6C z(ycUHxS3WVmf=eKThn#1)O+L!9=n)jlTO5NYw4am*{*KYQBu0kJ?+5`!XFh6PZW@x zB9q=^s_~_zrCsR4IOOEPje1G2ngp)S_eLyAsm8mb*+J9f!yzF7ir`qj*TpX>C&yB_ z!CH4Nk|5-XfsIW^MfD*kuhJhRzVQ8d_iOj$YB@fBPqyz7wd})oFh9USV2LzGNL2>L z#{JNC>?(BBs}F`W0hE4&c@6f2M^`Cm+o|qHn}}tB5RZY^J;1|j>PdPLE$Hr)bO>-j ze|Mo3As4|Zgn@p9K$x4AYk4A;(=PLOtST1qsHmwCH1cS|9vezE6rAhxr(B?0h!soi z+LbGS+dPlA-yRi!c((@snJlxO-t$_TJJ+Od-LfVGQ{$L>m_Cdb=ONBY7!HV~AN~a5 zE4kI@-vPdjKHahr&vWuBVhU~QO=BGH927e=N$)F9!LH}B4(MlFoiM+#yE zTnp=$qlCSMkg$c0-@F&n%3tn^TN5e;xL;UUNB~yHl6N>ZyaXwbh?B7gI9!dzSn(I= z6*$DiYeHZRv_p?PJ{-5^b=x;75DLz?t_thg_#gI|foRW+(@(jA*!nb5ii$4wX5VYH zOEKtxM+9P@>#Q%n)MPiPp9sea^~UWP7@bM3drJbaY{cZa<2sqkCK^BvN2u3fbn>*k zywPiURe3#p$syDdyU>!A!OcOy%gvf2o!9v~vLIC+UmQ(i6$?84!-X-|=(e!56!EW! z9IzzdT9(R{WRb0kAj`4hR!p)`dm?@)c6-C=XeV5zN=YFr;eQlV)x&q*h|~5YapUofrZ-*(}YwS9G>jm*BWIRB^W6lZ1+i ziP?C18|Kv#d>V6W^Np|QGtb`llHv~+fK!9Ap;=<~%0RcEpnyckqkP2EJQoblZ!qNvx6;y`^Cgho{jCjVLQjnEz6Fhkb94$09 zRt9V~q$qA{odWy{xK)*E8<)(F+X*I1)NWZTY>fH;9c((N&b+2gniI9sL=xA;c6J(c zt?>M?^cfokTAPut3@>zX$M(^31_^q1B*-S{^5NRtCKrl@h4U2LFo2q>$$Ofm7V0Ze z<{XAF?i&B4D5i+}1`Wc9tk=jvy?OTyTeN?*4%})42L{E+hE5isnq)zqHXbEqQ>K+- zzdJ84FZx({e1aw86FRyK1q64zB6@Z1JWUh$pBK(LFC?8}npU>WK;*Lzald_Z)K$m^`R|S?25TLNR(qUD^!NH+`jNJR& zHcQVxD2NuscYNZy0zyX}) zJKq8QJ z`mztsWjkjZE{@57)NTomKBN^ss*)%wDhlkjP|HL;N$PP&U{-)(lsT&T=`hI9r_4da z1=I}w$5T-Wi9JBKd(b89`enHvx?*{l9&C&cdoE9a5V$g3C;Xq{)?c#{HvOirC>!mC z>84;y{M4?(d#CGt@$elKqhhWGXZ_13+GKEd@R&9J`rV_3i9-Ta%LJCTYz)^<-PJ`f z3=`*Z^Sp{r;K1wwtPcC}Lkh}hRi$$*@ie2+Y1_g0cxhaqTQsFxuUoIIXK8!4>_|zlwOma_rjxf(0O-wTHVqx{GYT5c;!kzR#h!)ho zr)9eF-c0WU#9#o-NXp96P*F7u&qDBIMgL~6xAo_Lj!!rlrc1Dl=O+q~+2oSu#*>o& zo$$p{{Z}?-^q*`@(#yO32jqCB`zkJNm$i@!3AFqerGW$ZT(#K`n(Xf2FnPvzd<(PEC;RExq%k1ZV`*-fCUw(2JOxr7xKz;)fJ1{CeN&V?*5YYUx`TG+F zbmZr?fr}PDlM-cS9G+RF=ci=t{!d_cjl9r_&$v}pAPDRa2nbxJ{xUN#e2KBHjRuHx z4}dfv9d(c^LM-j=?GYr>FF3eaub>B_9`W9nt`=OHAsfpb(J)^~F~BPUa5mw(9QO!x zztO`;U9Th%Wgz|a;NHF8uT-@gK>`P$Ac)8i_*~h_cd7@94ST(0c;Mqh%vxx`|InMw zc22agsK}F4oDz^E$LQ!Nhe=POR{j}GZiJ}_@{{RA`3~=Rynt)y=4930sBywmz*On- z336&`1PBNK`mpa9HZj*%sPFzNXX`1CJz4Nt8bSLg2WWJw#B)B7yBx%K;Oz!b{1c$b zBcMG1#gJ(AZR}uZ`O&}&5rQeL?2o_ja5MZDOrM+HmnX)fwUmZQz7nbF>1NL|($i1* za3N}7-1c?@0lu9qwjJr07kIWm-&>yM_aK!*hBI&jNtutIe|$J8JZ3OQ)%+PiCw0_Q zAp1-MH+ler2Vy7h<@)%bSr&~J4`~DwvWughg2O3R>bVdi!I2orthpp)R5tDi_`v}H zrh}VX<=L_S!^a$n&4I+KiNQdDOrKrt_sehULrj40(IZg=MjzjBI@$q!*z{Q)I1=cm zD}8AJcd@aDA;;lFj!) zXoRl*PohT!!bKv8&|q@^8_w^B2f>-~?K%NJn}EXv2Yg{@=Y83)9wQumlAsU1@&OwC z4&b7ZxvfwFhx+;-@Ec(Vsp`0<{Vhn41zwJcfkFRz{C}J!GJrG^`WTA9@yti`Q=6K2 ze&@Wi5y+CXwzcU2N{{L^I@$pdz9&;L1;r9_UhN3)gUtW~M#Sbk{B@g<&Bwa#A_5=* z-rAmv#!hVjMCXEv`Av8G#b#I@J~8bhDlGIM73&od`D$oknDoD8>AW}1hEeq$R?2+> zf)%SO7_A6J9N~sQxTMQ94%omirwt7R4hQ@t0bV1&)A}30C5S1y>69TC#~AJtC+p(E zgBOtYH{k@vH6#ex>=s%?wzM63#gGt`0tDyEgy#P%B!}O(dUhOCgEb^}So7vL3L6_6 z;7oq&aS&M(Kxhbrftda`q2T9rCm~mTD=kcJO2q?^b~$O!?p#>ss}BQH$FL$UGc~Hn zi}op~SY~u|5aRm-E4&)8oG5^h-?0#p!-8$xx43*6AFl;FH4z@Rwk-Gme*d& z!wV70zRFHy(@DidAH6tkycG?EfBMk4I#ce7tQ3P1vG;lfdlt|MMz`LDP)$B<6o^ z*&ryk-4XWou&(z*GsrE=#mZ$=ZBzirv`2&_dnL$iL0Uj$x|+$owcb!7x~5-H5X;a! zbS9Qw;|pU1W<-QBeW&b6*Cs0L-$wzPfYgA(`%;)CSzwOxqH*|e;T_Jt?#m{dBj(~Z83fT7u#6d&W z^x@g%Q=SfGTfjsS)0M^({T7%wwRN zsm#F$n`~b0jA{OFc1`z@C2tO_oFeOKp$JypO`#T3`byx^-UAA7x^=a-Wgs z4PRAbSk`LMts2727bGH#` zTC)Lqgd=9933+5lZ*&~*%!81J4XP9!B-@5{+yjAW;AS6ic%C{SR0p^HmER);`pAe2 zE|(DoPskmZ4q$uiq%LbKr*uyXquYjdlPlX|Yx>`sf`4a$XN{AER#F_p=kDop5|u^& znf&TqsiY$|c6LW#no0gMWfOJ*H}?Mx=1eyKHyQ39Ousc?d;by>DYQYn5d`5dE;3Rz z^9n@EmG`JO|H1Ru;K9jcF)R>q22j4k(mDko#Hp;1UrA3pja#0=^$;u7uJft^G*))^ z&YeNv!KeO@^Lpwo4mH0BRb@Q>@Hp4d-AW!T+W(gFT40r>lxla~mVYUP_Eh#sBiEiI zPve|G`JK?KPnCgB8cVhvc^3YQVPg_7$Lq390r_x&v-Khf8}$y)`mz0&>4#DjdJN#UGfP2`q2r&#rwFW#F_J!BPMBxJw-1IL_rC&NhR)qS22>rX33N zB>kl1ufc4l-&(ZRZpMm31Omig$IZ^0g|pwQatiaLmsaCQh42a!??ZQu{8bAA}tLkSt+NU8nhO1O%V$2_K}ZW&0lmuHiKvc2wMecxQx!gdp&_{j|R34k=WuXg4wLvWKRx-}dv{HKotnpioj$dMP8b zZ^|Tc{Gm~gl8b97MKk7l`eJFU-4g6WgLo%TP*+zyd6NUg_x$|)>WzwKZFmqlzQraB zE_Vy5&4g>71ZbiN2!7`t6Hz`5PfK_^`Py z$wk`XlNfn)9_Ays+kcRv7h(xNKC(OajPCUa)qaFN<$B$VUx?|V-EA6T%}Zsa>o5C_ zK`DR;-1_L+;FlJw%!JS$H{-@#socO9aY3Z~Fs>9rurx1~z4}rOwZm|}2mQzI2!}Y3 z+kOc5Ef_oZU{bbqZH3Zi^tTdQS3ida3HhYIjg33d@WP_O3P7e2oCX_D-AJQNUrY)~+#E;B{^JjCC&pI3D< zy7etoe(Z_}C>>WoRw9@5Yir04O|QE=4FGV(=Cb`p=we^_Xa|PqX5Ez+4Coe6O9Y%Q zVRyp`U@~o2eqhbf}rOs=u13A|eo9i4cI zuIUnUe1zaN4{^Rlh)^%V&|iYIh!G@-Cv2NZm%lo~Pom=DmE@3yqB((U>YdFLP`}48 zTuBQxkf{O(+}75{$To|tU)(a-^kBIveNHZ3pcQs$Gy?}Dgd{x>L|(-15YT+#M$Z2n zc7t*FQdZVc7*MUlB{n^nZF#BGvPw?R{Ms7f&VWa2XCE+?&p=1lJPB`k^Cq!yENkTo z)epdwi5rmXx?K;+lrA^sfX2D_K6^oMW>wU0X;zk-aV{DqmGqYtz^ZP7cZ!N4fP(aw z@c_v3#owQbp1y^8c{oQE`yF@ycxJ?;q<8880!tn6`ryzkkeOybl2rcoP=>aL$PP$# zAWp*zIKO`oVuJAnxk)^p_^_})fIL?qh~3=f%#0@t$*CkSt!6VwW@UGSZI~p*C72P8 z5&$_+Sjsu60EXX!(+7K8-p~K19}7X2K2Hk(+K4#!z;ZJ<51cyOb*Eh6l-wRea^GX4I!uiHE|oHNj-2}_t%EIwR@`o zHlW{91`fFhAx47lKGL>A^&QddtH8!RPxogp&$co^=JGh-X||Xs4?%=NL9mJ(H^xtH zvkPR4mQje#HeSv*@8gYD`Ou~;f^p7dijso%4E#BeDV)^`^w2@a{7T9nAsI#+=Zy6| zG=3Vk1i=29ZdgH`#iso&t*uGGqC4URV;~bcD4n2yp;#}RzQic@w%wzR$p1!k{Db8C zil+%LIFkqZ`uY%Cwm3OoZKgg*MssL;yZ>I8BAGUQ3ICLjB)AuHy8J^g64Cq7BhUCq zAOjq}a8x!O2!c{J0V@lNb9#J3sTum|v7$v1=ds>2`cJ{3py{$33i)IXD@fE5B7Z)S z)j9kQbSLEsuedKOcuP_2x)U>O_?pe|vB$+;RR?XH<=00vTW94G7F`fJ8F1N_oh;%X z?<>1p^76}1RR&AYit7b3Xnja6MwrVK80)T0xY{P1!3WGf+t=o9?e{fCi`D25T4O0T zb@{-?3U6$rt5&yfbl#+2lwGm<~vIb?kdBi#KuHFB!*HP7ZvK!<1)5Dc4 zL{-Pv|L1Cm+OJO{h<>YrhiK9s?H~K?yHZ~m2=Nhlu4812%NmK*HHY;FdQwU_jI^u` zdr5Hye4Myb_sj`TKZa>(?|HY~RTX{#WztjCuiQm;R~%+K-l*B8XKc+MId8McwURoB zsNDB@l>xilN=$OQEr!e)#`j~px~SHoZCCUqo-__EdowRpJxDh`&6`QVcT#je4^xYG z`Tpywt9c-kAvJ@|W;w;%Jyvp}zZ~>fQQRy&x*D7V{w<<~s)3 zpq|wt%oSVSk&R+C4`E&5L-df4A9pYV3CqrJ><72o=3Nz9B(MSlZ~G3&r0p7+Y?X^g zqkK>>vd^k2VAl2VJQ#k%ws*80NoXtoNX~NZ(26*ETgP0b2z#ze=3?9Uob*GvXKRN(m&QVOSgq>YJ9Tcn=`)Vp9uBFrF~L49+84gJ>9D^VhBNHfORn9OwXVR&$=9`TMEsrMk@5kNPc=`NCN0NO zwuZ2t{SBMun;%;R?e5oD5uOh0+&@@m;r|w^R|xN=z)gQd2f!A0oD%t&`UOg3&QItehKNko=&cZmWLhpqXZ^gUHC^ zJ8Xkcak(zJ26~HV^J@CvP!{df#$$U(>(-9c!K~G2?;;akroURY32qvhnRC&JCqt`W zsL>xO>K5smYvkd&QaP8?qLy_XHBpsiguO(M5J$#s!TXNOsujB!_pG=&Sh(Jm9$C}C za#M{hmc$*$lb`nK(kMZ`kL$1?^8P<`^{zLY(+9VM`UwqW-AI~eedZi-aL|^{NptLq zs_&=ZBzs&-;(-(AcBt=PhcixfSp?N#f2*4DMAGT>2<`m*Pf_quz-T~@{%)T~!LjqA(y zCywJG>uiDN0dJ5nci7v!uF0IurYza7>lL4q^t*L-#>2>5kSZPC4|F^u6WXO3GiWF{ zP_>(mce)JIHoR#E1lrGE1_40jO;kCz^?-hm2}^a2TO&Q8ym)w+F_7qW5Y}-@-xfoO zhl7K(Rfqll{dVJFDHC=j=DX@Ntb(hPGv4l3N;67+Qiy%GKGv{mv-V`Vq4UHaq8J$N z8uq-L(w#<5i|z38A|IT~j+98XvK*@qlPBtKzOcEOVNUe0#a<`Ir%SMT%C0aSD9V4l z53c<*@Az=LjfIAMVbNWEZ<0IpFI3Mv438YPoqWXHb|p8B$iBbs8x_HBaL-rDedx*#ccmo!S-;52(F8C61D&~zJ zx2r3Bdn#+pX1Ziu;kU&+jQp+4g{AB73$geV6qLX|REiY1*l!T;)E4J7@;k(PcvM~d zNAZwB-Hw2PVPT5{x2}b$XyRyBEFG7gG@LKw$%dHYr|eDch$b>Eotj#(Y;6! z|M4elF#6ZB7t;E)x3B*6X0rURwn|z`Mn1$MTI{Y-wC+{5zlx1;=W)c#==->W8&jVm zudX;d*v8srkAeCAXo_7tX6o#MZRmy$>a)#t?f{GY3B#MvWRsKs<1o4kFwPVD?GmCl z7Xmu(U~-I~Oi$|Gb9tM;8@MOncJRS{s{{4T`lkW|o)-mIyVQpp-gs6_)QHM8)R3$I zK?IR{1Ub2JXTDicN)hA<0MRcXIAA*TGdg1qS44&Clw`2pQkS*4z*Mj~){*dPJPt`< za#?z8+KsTyf~EUOz~bWYN3|2z8#lwupYkp;qz`$8R?7=LdNY@UPAruRr(1oWP8KYD z1hN6<5(5$E{*kO|3@HXg5*c=vwSz3{Kd4cidmna=Kf8>xZ!6*9OJF}C;JxBZUu?># zYiu2O#`pKUQ~xOb+2B#Pa6`kN*|=zREk}KVtBZN58&0P_0mJ#fZC5Ck%0C$sRSM-y zekvXBs*I4vn5~oI5Ih2@toNrnJ3>$ffvX9Gp%#F_JPs>3kn)2tlpSmhdRbcM z@9Pu3yeLFe6mC2vBk|E810{W$P5et*>m7*&UQ`#G=|{z{ zC&pY+Yw~kH`J4Y6SCejWcR<--napB#S&&?%RhgvITE` zf1sL%y#f<1^MSDcvzjRqzOsR9vmv61YI`Dh$~Tt8$WXXJ_h!SFTe8Og62E80fAkZ*|7$vvnlgEFUfox27!o8-zn0@_9)L!{2&V$prtRP>)u+JQORYGq$_6#; zAtJC1;k9kpk8TICa+gO6@Z}J**}b^9BAaK{ANqeQx3YeVF`k2~PcX%OZ*W$L{HD5F zwiun6iv8}0p)T@v!)0$O^JRxiw}Ftd(R0K~w`mLKh?b!RHQ*(rdRB+?$sx9muxN~7 zrwU@b#f1A-O}xJ{hNAj{d^c|p>7UE_Bag7YxbN;`IB)Epc+OCDsNQA|4Y(zRuCB<; zZ$C{VtdQ?U^w}=i)mewWt3TuG4TNQXE2qP~TRr#n>z``RMMcp-FVqL3jF7$sw(C*j z{a~lzD15*ov#v-U`?uz+c%=G^N!9+{!cUoQvL1wS5}8Bz_eo6VzqAMTrW2k?d@JyX z-bpu~*BRyjiK~HLv2P!IE&P+0^76}|oq)sy4(-ts*!739g++<>&WW!+B4F>Y?heCHhUM`vV%dwjZ|R|uc(DAaJ3Ih}urG9!GnG_?3p-PGhWsbL5|T%=4X zm3tEgY)RpKYiAm3RMXBpBxwP8C?WncBC!cwUC*pFrMvnJNwm(mwY}6uB03vliG|-R zP~Um_>YGSJ0f8g7f0_?QcLvEmjF*XQojm;T=V{3*e94G!=C0K4 zS(Pa9q0n9j`?3tooVnQDLfiB-{VPj$`7PIYrWjvoqD{l&hmx6CR=bW4WN8|XVpqrL z&LzjOkqwo*&f-jax|g5$g*Nm!T3Gohgq3|Wd8EQQU^8Q{G<=Clw$Frx1u^%ovJ`&= zNfk<%9ot2vSk&3;bwt^Qa3*=Ni(F21UJP&PH+mZQBjNQYM3?(q5Z6)1#f&F% zoX^IJhA-kbXJ?eEcjo$_d;O^uZbi|Wyu%7{K=$xRbBOC_Gfzq+XWi|GzmZ+fL#94( zTA#18tV;$Vk`q)6ihacpj#bh%0Tm%lNEP;$j&T3fUwt2N%$dua^qg0~zSB8V`sOJg zQ@&y+%e#6Cv$6XGj)qi7>_T5&teunBTrZ?FQAuT3sudT9g8R-a{Bl|->&rqDU?gr{J z={{(9O39qE@HG+ouNIJ5@T6tHTk6rU2a_5?1b@K9=zz@VXo3Ds z(4{~`s@)zkh7N-iL^^(KGLOFAZuTsKiKoBJJAhm{uY zy5{X^?3^8ORysyiKyr+s_i1FIA96y51|1PtMEI+$wa0oP&R*r&1YiRM!0yrrutvzj zBqQW86~7xYorDkHoj|YGkMw-8z=^83)K+p__3|L*xr^gV;l``UA8qgbP z!xK??!Y3FQEOd8nD^~5FPyEtmOrOFX&11fwc1huwgV|W8k=EsmM$Ek-2Rxw~aou=4 z6-OKr2UAc^hL{_`*-jMgRI-o8fSwq+F za*-J2eyQzQi-nHMYx2j)2pp6jX|KPV7Lev0}`qu--frymJp@=<1fPpx5W^bI!O zJNcAjqPz>?hX)^-tg_4OPpvqb(@K){*clK<&xO#&RDVP)Aueg`0>+)&s53pgyY&qbJ$|7S9{Oqu5}K;!2h4{xvjmPRh$Dmd>= zV-#pZOGH6Y?Bq|rI{qSFQD@_NrcgUh)P6JJ)p8o0oL;uhpJB>dlwHqP@88A#UR+qF zbPFP)$@YxN|0R5uY{ug7utAKUq}pXwBwj~26f5~~Z~QfdE!}`$(?I#h{6BjPo-X8F z==m=aeS__{-Ym@LW?9SXEm!H@6Zq$(`la2*Hhd3Etf}RB@r#HZ4Z~wkmhn2 zq9Yd?k^;{6Q(BhAEl6%tEg4y+@bZKe@ zoo4Xgrb*X!RN>Xp+@=86SkWN%d%X!Xhl)u40R)x!KCHWl-jW$(p|tLNtFI6(yLGaY zZ)_(fTK~f@SiuvbCF&{>KWa;Fg4B93kZhmvv;g#S*`;V_sIQ|^V?OkhySF$6M(FVX$0$pEE) zmPX+_xaAS(b2vds2LOzqV}H+PuMND8kt0Yr=mi9(W2xjqnP29mO2Uo_DyGOWQ$i|X z0Y@IPKV(x=#Vzq!<;PkQ-y4{V2&VncZ_7i_a)Y;o_cLKuw3U#%0_tw~N)BvV!v~*q zpPQezZa|m}<}l*G_5q(+J{1=S?rYd>3(N?}Wm$Eq`zxqkhcZjRPIxU6>BYo{v7mDY zWhw42#4X-VavB6~F0JbL{lTaceEhdGD8&D!oGpt~rv}wwA`zeru?c(&@uzU>9tAckc)@vTx07VP=9W#IJpCKIX)IjCgDxyx zqccZ(Xn`eI`~{Rm9uyNFWvE&~EVHdwX04)l4KQQQ7(UH(H9uBFQ$+%{Ha?r#z#ijF zt0{k9JuvNKuU$q2KUzON<+q*h26A#RIp;UNC7^lz5?qe}W&eT)IwZ@3!4Tsy&tm0< ze}}Eecgtm&w>IqDX%vFLyJ==1ULJcG4pXqu(94 zOhm`De?lcfd7I5%3i}ujQyU>%<#iReUYt8P5ltWIhK9q7cK=F4juBoQ|5F+|Txj?X zN)g9Ejx+*B`=1aPul$V#x;gASp8yG8#;|HDEfqlh0)N_<#hjsOB+Dx%-?@dU$yr6 zmN+O!0Mh3;y z&M0zVaP8^&0Onr+?1rG{zyKtqscL?BAXO0qb*6(nXt;gKiB`cjSoUh)r5Z=>@1+1d&Mn6BP|B* z7hR&dJm6ejz5-0TH}BpN10;eI)f{j+3%ee$o?ioBE;AfGca{&(BA^n;`o1!hA3Iad{CY1D`8`4C0IJ?dmTse)EwDze9CyLZC?VNudm`o@Mk z$8T`OBSI7S(n6d?7-;&m;PVZjW&!ehD!9ZCI1hCldg$Q#w*&>*w5ie$Quz4z7#ag? z2iIm};9r0XI1T2vVXI32OCph2KoFm#Bph_QVAl56Q2U_haoRAz1rSguVbgHlDad%I z`rtR6nxSEIjz4fy$?n0N-jUsuP>sm@b{vS0sFv}#AE4vo6H--rNA3#mJv$4aD|b!D z)mH&8Hy_?nBu+q^(Dy#q0GJ96xG@rtPT;^cFy#GlCwQuy!VxII-(*iDK#4mQCm7Lz zP+QhFh=@)=t>#Ggp{J!S=N(VNBUPrb$Ghnmt*h%+cJ!3($6cmWD2#y+aSDrqeB*3+ zb!4Fzlv~0Ct+s1t8%CjjM*~I7a9ai!B=f$I5Ss5QOk;Q9NG`Z3*t2=#f09|9KcSp< z7?JyGICXgUp~*k`66ZI*p_%e!Us!!PYFkWSF|wrF`=FPpG#g$IMztDL>P3vo-F^vjLhssvC#3Rf|;K8$3N4FF>56 zkuKYww>~?xLg3VML#Fb!jyrrZa$8y!GTYK~rrT3noroR-O^{{WU+#SBiEzbZgFAgv z>V27m^N3IqzH`k;+_WLrJrJDaJQKT+kPfpAMMuqg8p%FC`OR!k7!{X7fAGsYh2F2} zJR8QDLg$Ev=Kb7|cMMgubR}f&2JB2urxCcBckm+#aM;xR@V$KsnW*A$)aNRAcNu*j z;31ksEJh>jOV)$`_KY!(vHvC}`{!R|Tw?jL(f}vR_^=L(kMg}50+)wvb)F&09fX<8 z@PdiGzQ^3q=R}m1i61g%o8GDf&@Ydah`h8OZbE`PeIwo`ouiUF2;^Z`PZ<0F+HLYeT#YzTAPIFG73P=PK}W-u zs%i+t$xDYU*PFKBP1fpMlb){)^MueyA!H{&as>DbF)Y-=EHc8Bfz4WlFY- z(i4&M*EJbLOjHme!FNp5F8A;E7anXre?{^mRu4(@YNn1FpU2(Nj&`^fwTTd85T>j| zaim7l?&Dt!XKxV+7#vJr{G~>IH#}wozoa^ zuhUDMINm@(7?-Sst#!p0XhK4!axZr^jG9OC;x!A+MuEjffjx3U{RJH}PpsI03qtAh zBPED6%l9}>FG+Q0_zrk@Ho>LTst+e>hS25aG}qN;jSys>r`P@Bl>0O`_jC6NT7`rC zL}l-wfLaVwGtqdsiB^LmgjL9m>Aloq0mra=ofw9CXu-dm`pdj?;(Hg_AQ^60lLE!8 zLSCp%WnJ0sjB>wnl6wAgMY_%RXa}W!qBxKo!U8KQlGiAo6~^9R6#m%?GRiA!-D?NnahYr?@CX$zw>S-QN>WDgBQCQ zCALhnU|KlP9^T%wX0Bc*lku4Grh>T{db3opN`E|*$*a!onSE1RpZ zqv9Z!(%C+z#%vE_RE9S@#;~s~w2>lT6?Ii-)vmQMCNgM=zj`tBr_UY0q6lC?F$(pc z{&@Ggx9W+=mI2UE1PxYp{p%~$T_^XMTbb0LqrhEs@^xWo`6KoMBjsS1SukSqR@qNR%I4*KgxNd0%Q8yG z!>uc;k)k@MH45l5Ron-klTZD?rFk!WLffCY|CMK{!@j<$iT*wN=b5fX+rE3}M$uf{CG%-8=UWSjHWky`nf9vO%MuarZE#9r(mV|}V8 zcIUhsrCIXt6SMC}c%&p?Hwd!uLznv#V)A1*RrTO+xd865ijQ!u8CxTzRjA}IL9 zo`*0by|^GaYb^&dZCojjRstWR5TJ|YgKndhqRisQi7yy@<9;4sAaWeIA7GD00b7}$ zC)5h3{@2;Fr2}tQ;Y`}Mf{A$ju9npQIt~Zkal`I{+bw*EhP_lKLT%H*slZyx)$-&>440@ESB#TF)0QUsDqAy+C3hDZkP z-gVMR6=2L1qUJB`rr+m?&hXAso2EeUsxG2S=ofgnqwH$)-k|t}s}Ta)S=~A8mYNP7 ztcHuCm}(~qX=o6hJsSOMu!V}qF5>wU0RnHTps6F5N)7+FxzB3Uu4`0lkP$d9LvoRv zwvnJVfAaKWltT;PE}H^@OGdRmcE-Xo?Y-MW^1}s{OP2Q8s^5g}7k?IJZDY?B7C(#2 z%{zy$z(P$a5^D@=QMdHK0LNH?!K z6F#mE&Y=G6d=(r1Yop1q@YxilQ{9Yt$o{W^;(CmaS(GW=7)Bcp)rQ!ub*CH@p03~2 zG9=Y0;Rn>9qlCtGQFEeAWYR)>?+{uZFc9cbJ2ExXE{g@r$J)Lb&Htr~Xcc{pjP%mb zCo#lPVFVeeb>EdNes*cji)m993!(c~vKI$!#p2)j)yX9$IZGguwxsBppcEH3MdxRX zZIvMU+|(ZPKEp5(x+P}GjML3h+^P-0UXB))U>dme)G1xERj8P4)(IPAZNvi8g)?}0 z5o5Gk0i`)GR2#^i!B62 z!OHOU&GNX_nY+m<&CCe1Fi;>8V*QPd(@n2OV5cdHK@pkd_~lTbZ20QreS$nOT7e z`Nx;eh+pHU)l`C@woARDuJ|q602696L1G@Vko*Bd)#TqvW>%f{>p8--AP;S*owqgP z4^NiwTnAD`K6+u5{B1r}a+44J!egQN)dRb&&1{md>15Y1#m{d$mZ20@-{yIYt{MbC zjKun&>L!gSu#nM`V|dYz?7x1mse`9{F_D3{2QPYY8q2+(zYp;4z!6YWc7O4jrT_^{ z4)dQ?j`=M%kwPX$wbq+F`G08}t&8((ya?w(PBF7oVxZznQ;(5NeAGl-(rpI(m(=E4 z?h(56B3IObf#yEqv!CM=HT@T&_Zv8x$n$VDpzw1fLT{jEdF0=b;o}HdbnkN8-D!50 zhBcuqr{thiE}$@+9wtQ;Yz>&pG$Tf|MU)kzNB&vH5i^hE6Rp{Wl?o3`H{Z;^!NX8> z{?`pZT<BpIe!hfU&TjsxK6r2e~#}o{iMrFOboD4#elFOnp3BEwVy% zJ5$ZqR;$=m7ZnrY#@+I3Di15cHG$7qG@#XU!=BZMX1SYU*GNh!P>=KFlay-+(#5v- zg;=F5l``i|{#ff11iX#R?1;8DtvQ|#{>Mw^y?&lOPFg)Wb-&41(EqzRG)iF{MssmT zmSD#a%D=?3Sid!CJx;v#?F^dcJ+#>MckOd5I$&Ru?ruP35PnQVmducvhh$CXEqHSL z?y`#B7+)_6{L)F^%$Mx?kuVeE-(4(m*q@$cHG-a_aCgIUcY=w8+*ZWaf*SHjEz2}v zjf~j4d2*ZfHj<=jC#xS}gRl-lJ^WE*_z$zg-;ZUjm>dA=H->LZb6tr%$6?h(n2j5s z4(|;IAr920Pvmx{mV>;#JjQ71OZAA*R{gCfCa=YT{`(!h`hwf1V3u$dJ1)25SbFG( zjtn(92GVF1{Y77fYC6nD+#k3a@Mr*a2ah2t!RQeaC)u7IwnPQabCWf>``a-7Qct7saclg{IQW3~l|_Iz&+Smu zXg4mJ@`u_5f2W?KqRz+gFqWIUe)U&x5C{uwvm7FI2|uUve6hzUat>2!x^t*4D4}e? zUaniX{BUbsOoB+5c>*RMp|2ITjN95MppN@K}cUxWPWb7raw@ zh%Sf0B`qj9%Zm+^)9<_yB$ngvBMzw9{?uA2C90Hx*$Iw%t(D$b&)ZZgN-P{4u3Q}k zud(z!+AdL|r2niG>hDmi$z2CzWM39(UB1utxzBhxOYd~Tg%(4dp|gVJQ8l^U(Ex5Y z@(h3fJ}x`^cg25}1ryD6Y=73fIlWWcdH+=~fvB$^6?S51C#miOe^bb(CMGpNf3g1A zo9R5hJqTzliTYXBs;`;pAI?Z)x5H?hNJsEg`J5c0oAZd}+zdV}a;hpVt16b^PYVcCQs?dSU88 zl|q572s3B?9U{pV$w9%CdOed6R0r7Nc1uN51~JWcvgFgk75;N{FlPk_N9l}p6#Urb zv*UokT40a5G~cv-3;C(dqA>8DSd5=;WZHkc~DEJd0=`lnMQLnhTJBtkye}FC<)^5-XyBn~gP;b|N=)9nSi46Uf zU?9Z|(r}`kF&d<*BMvaj0jjIF&OhQlw(6a4;~tY}^I?{VFu~U_*zob#xU$1<(Q00) zI7z=XlC<+!HH+HomJIZYdesin1#4!;#&HV`2P$HbO2bP*S+?*u+LEpKi0{c=`M-VL z*zpsY*`|anzSjz&l~+;@VwBE-FGAu6eu#dKMW*>cF{-Fl{#!uAg>{`x4^3j3H$e3z z@)Wa0$U;+BO1RBOLN&q%rc8Q>5L?c;9=JUnHN>|mju~dEsr7xhXVgZ}RV~13O`0yt z6^0G998IfP;##o-?7rdN@<(0iEdetMDll@4bhka~>C;Hn$fWaLUQ<XJP0zeF%f7gST< z_urba+0N?pF=no2>U}OwcK5!PYgF3B`D@oU3oNrp{lYPBS--sqAZndc(X^V}+BZ?8ViIx;hZG^u9A` zP{4fs?_n`7TF61+GuG`tYzdgas4<8QwK<=HXvq?SRpK5s5GQxbRLur0l03+7aG)@- zAs4-AA?_j6h{#yfJb85ogIq09U^3-UH3IjzC%^lZqeim7 z(9&4{nOkH0qZA|J*bVK4AZN8rV&u$VuiS&j5899wZ?G zBptvTJKX_n0*Axz8)9=^`Oe!{pl>*Wh{ap{^sErs_XFzO3;nkQC_2X}GBU~g7}b!o zpJfgIWf=b1lP`qTH?BE+PW!jTSwvA1e>!;)TC-Hn^-v};gv1OaK$^6mg;^!62H=4j z%U3|BB=hPO8fb>|>1*I>WR2rQfRmK~*`^e<%UfS;n%;%5EV~^6K_!+$A7ZRl7?ue1 ze#_aA+o*0IhLIlY(4F5$NcfmHt548y1+SRb+=AhCQ%?AsRvA$=>-hv!axX|Ld5K_8 zJlo$u##T_U0EM>?+=<)3j_J4dt}q^xy%r8%aXjPX{sTEDQi`lN9WULa-?}H%oV=!vVu0veoHtwB+c82Vy{KPoPkEmZ4 z_-d-ZX1X+wRbso%Z9pJ7Z=EeCy`12e-7s+H!U@UhU%*hc_}}V6HG>9#Uj#2DXzDo= z0e0P-ppp0gX$4x37G7bwal)Vw|2^c(zgn~ZL5np>m2~J4F3+~Cf@&2;y5m{KarQg! zxS5h~eBtZf`;a7{tLP6A}Hm`zi3t!)7gyInPe=rhabbI3xeN$kIRNcp0;86UBS`&%5r*n^3qma@>Devf z6&f0;fJXzZ-d1bnqFO}Y3lg+ot~4c!XmK?ub1bhfjRzrt{I}X=FiS1(#S4gjl2-L< zB5tp^e=p+;r0)s)tYy<#*n{N+9&sO}W2f1mGdA)r~2rKP@gm%Oe86o@W+A-$mh?0fzM%nF!&rYX`OmZ_%%SA_X zHZIB{ZJGilOpFGGXzuPR>LC!9S2yuq1On*iOj256S7ghQZy*m&y~#7Ns@#u8EOvhMbtv5dF8 zwzK}RMgu!gW@^?JO>VFGKFYA<|NQY=d?-eFW=DZkCzF8l<6f<8dY6swXT5*TBx@ z$bs#<{UaoN4^VtohMbg$@0udCcd1a8FSdh_lJ>M@7lN2A_YG#lUYMX*zT)cZmDMPT z7!(K+bFS>4XwyS1sf`Y~6>D!4d~~&%CuDs~m&!*H?3w+EhWS}epGQmqgqn>l3iw(9 zD9?nZj*(=r#b;#;R=n|5JH`;bvZ84&e%$tn(za)W3PMm#i`~J(U%8Qr3 z+moGa`EFt+Ao-Z=a>&GbJ~`Pbx2~MEx2j^|4x}A(w#JK-?A))JnB##O_o5IUFR=<{ z=iIwp`Vd{Jdp6aVd1donu3yk&2Z3eM2BPr>qwJk*FaBfro`IU2=w!)H)i+Pct1zL; z)y~F;4F+z%z=@N=XKqj@eRjDAf&Nu-VThgULJTLbxwJ$HON1EB24@D%FChT_kz`@f zXkv%V2FMe%%3Pl3x;7OFI6+DpKL;3HV#i!?NXx(jsfb4W_8aflWWZjcuGYP>ko4Yf zhf`6;iaHgwB3_{lPU5khT`*XH+v{J1z?LjMkg{j})wS1qqc zZln2h$yy>rD1R5WoYCH%Z}m0WMBozro9=SX+8QlBW9dm;`Hf6vVz_@;7Fkc={H@`Q zUY5dm=r`}p0!X~CS@s~u$DJ}C@~V%kQ7wo^s-qGY-uEQc8xbNNSTuL3@Od-mO)GY8 zNe`7tK@BwH3I$1bzHqx5TR24o5gJ~gsZWDpP(W(rr6~Sk9!j+iVn~N|5X78falHD#2j|F0}zliQ5YcDSoMxEkyHeVPXo6ACV!kd@;+}(e2HD8LXFBFR!Wsk4WINV1(?vj$}trw9Rb; zXG8{NI@xpWAj%&wX4a+CRrl$&4o)0KO9LWqJ^MU4gDl3$2O-mh&tJ(>* zkzxFp=w*1dk}g?D3ZoK8J$ROvmfilW&PmJS4A@ z!2NzzH&d}P9Y($SOYX_L%QybP^G<^oZ%Jpop*ZStn7C{OZ5Ez;#MbI`%^c{COc8j|lImui z;A#yg6s>!C@dgvjNuDq>ZvWb^V#84)zxDa~o|~5;99IKJfxcTw+_3^00(3(Pn$hci z2UfM^*9PnBiFGzG1#TNZV`a~$`*v;{^^$QU@C$$8A}n$md3^V97aNqUY5P+>j~<3&@(I2SMz1;7eVTesA^gx@ z?Nv5a%p(1dB`SWp5>jf0GyYh}CX!pv1({i3J!Na#c&(UG8^S&)GhqRAZtjGs$s0|( zXSLsi$`Dv7uGtYx8Pe(W1|tKLyA$tot;?PLR z{d!3^cy{F#fU*Sqmd>a0h!oyoqc43!qA-y)=pOBf;8rD+53MNi#7C5n;pa}vrjVR- zXmU*rW>Zb|aQsx`Jnu0=pECPYP(|HtI&X>Ez{;Mgr&G{YPa6Qpx@W7z==ue~N(w7;$zOyo+j%u%e zWRjC}MANzDOy}IbNAOFySqkRWDl^|!u+$tf(UE;|@bH0k<`C9pHAU2}1Ahi_ei?kS z?#Dcm3}9l6ZFiVUI8Dooh4H0zZ#HH=FPIwOaItvwDTZ(2SHzBJpvQz#h1Dh zQwS3?KzK9fGC^*-#VSRI8m6pVxp;P4|D0c*w5X;da_%p)HF_StuUy!iu)H+STf{~k z@*NyE5^SYk!sKq2(>upYYD(ODc!%?`%D&`X@8#B@bD5m(r_s-Q+919^p+GEgz#*embl$amnA`pk=kl>Y zI|`Z{Vc(@|%a%{=eqMmtCJ)@=-w>4l9n%Umt2PlVn!@YX|Fj zx7^T;-wfq-S6d7aH0wDG$Ci~XQ3K(<&j!iz6E@pLoH9f?agu*(9=+jQH_f{I^zwTL zBCSTl(_E`V32jyd(hD}JkIkJ2kC%gAV*A`G5(}Wi;CI6YH5VQVPH>}0?SasMz??vL zPa7ez|HcD4qhsr}u)G)&c0<{{jIqrjDq8^sU=CT%kJR>nblue22Cw3|eBPa%WHdCK zP2Y~qk*phf?h{ts8J3X!^0DwETKG+2LJCKee-Ws%MnA;9eY|x@{?gB6+D_p-Ijsg~ z-zg)8Od}cWB{RLCZj=p@%_OVl(x;fwWXJ44P$+81WT$#tTyj(fiUp-!P;BcT#98<}4oPdfKXUoWm3AI$YzRr1Qon zWw;rcJ3l@~2@9UD=xt}A_HNYYMvJP7qNr5Z3-lGIzb+hZq7WpKJhUaH5YuI+0kP8X zlc!T+n0F>&HNbwy!g@b0y8xTV;uFp#`=a$UJ)ApvXfDP@Xu)^Cus%wK{@RSCQTY## zUjjX3TT0mO>7s_1RSJ6}{zMMW2wTVXYWJz0IVz$hQqKEtbQ|p6>0eTuv&zjlKKDs;6|!JNUB$ULf1qO_2QhW5%&-x!k}bLNMS>o916#bgmwabq&w? zo_J6)&a5=j@M z3=Z*qbzl|&L9748|C08A&Bv?@pPGXlZ1NZSkz^9B-l?mz7W@e^D+oT+icy-~o%kyR zKKS6C%b7}|FB-v1cu$ZFiOSUXH5U8+=iWu}7mY49G=m^%n?_`NfPcjgHF9f66g6vY z>+Ahsat7}v0N{D-<$S!%*>~Tjz0OiNPa?9qkHuZgY%j=~J>v{Fw2V@kk6J84NZnsp z|KoH#k*^}MqGoQaICAosiLqF>k~8}Q*lWPRiNO7m^x)>@~ad**=W zdZQ@j9=3wLJyOesST6o^F(Hc*)$c%@WZCJ#WJwdQjEwYy%oTi4(j)3q9=OI;4#&-T zyk|TIrvPTdWBs)I(zWIFZm2iKK=I2MpD$jQlkZCOG(&yi6+iA#vNU&;r=I<8_v1$H z3Kn8PDKjvsty#{AVyW&*94_r&e-2+T5JWRTGFIQe(xYGDk9#XC?>{L@{S2d$z}pp|@`%WJFvy!#&5;SS;!PjJw z88^|5zdUJC9x3xCeItVI2|MF-#y24e&z`**&XZ-ZejyYSDk(F0^7c$JF0C9XE6JG) z<3m#aXZzkK&O$E3R#{5S#Z0+h*1{~G4A$T@4=i6fPdic9+}H3A>DNgTAM5|BO1|eYTM?x?RmmGdNVpr5kab>sy%S#2 zo0Arop9CK*38N_k`Z)M^IFOOd7aIRTM2LR9T@$go5?E*>euV^1rV#q~HRG|q+ z$TmyWjME83rz24>pA@1$Rf=Z*}&-W_N;y6q5B`@7Y9)Oi-31_sDIv#5dKx z9u4X-o!yf&zkLBsukIxA9nOyj`xHaPvI&B*-`^{)UEI=^VYd(wk!{9XMfCo7-qJ#6 zae@o*?cxm!wNeL(X00pGcjrpwN8u#qZr0#!h|`Y%W;`(&zebYpIe+DfRC;b^<19R`Ec*Cc3$d2p1A0R-PVC*VI6LBmKt^zj_sp;q&H{<@^b2-mp)=bt`EWY$;xi~ zg%NHSy9m=M2!TlzZmbWKvaYv@p~;`WEI|GSqMAdGM2l_bzM1MBNS1ihmvi*aMR)s2T9L(V8zA`%IKrbvZ_M-!%Nv$~ zN3MdkqI#V<)|+pwMllu_2fX+ReMY`(QL;lLtw0A;C#Cr-tLsDbr}sCz0;$_gEiWy( zk>0BmHDn=fpw{K@9lEX+t3bCq^QTSq@7E-#Zpm+J(oaUp8Pl!{#KSBm5c0|6 z`WNh}96ghH$0^028CED+?d?s(AxFMnd9Hy(CBCbqrM)&J<=5?qR-hik6%q%JPb&G2 zSI}ES%Xx}j%F7Q2^F<2cXH}D(WVvx2hTK1r44&^MNay5Kf#HLMLfDWZ^jDCj69O~! zaKzMjsToV6RrAWgP%`&gSKq7Gg(woCOv!j$eWVjdR`u9cej7I{37Na@Y{V-q|I_Qu zE!BdFcgFNo9Q+SEkNLJZs~_YK@E>P(;-LN5 zV)(o2=kEn>T*uuDZW(=`N&46Q3PQpGsaCNGJQM9*R;$CaPxR``4oDQtPl(U`V+ic* zIcT*l7kgh!jnCFrbXO_94w%fJ#S$54w;ArlX^ZTHf`Z?^io^1YrG~YYAZ`D?$9P1@4k3$;!Exf8#mz z;=NK@|L#1apfef$XHIB!yi>OR-pYGuEo$+Ho-T&p{U>-eR-sDdvO`yxvNLWz?70L! zy{fZ?PI1{F(?b3yStkN@g;<9|#oUTfAQ{{o=SaRbR`eFT%fW1U&S&59>75IE(LL&v z?w7tQBeJox_Sp^m?~MO*D?CVn^^pU<5FPs4=nQ2FKLR-#VS*5~GAAqYMXj-j^q5M! zbVtP^UXjHsN};oYmnyJb^xE!I-w!(}tY^&wpW{&&)w5jklggep1>+Khxd@GfxU?S! zbozaMWi;N?H|C7|ad`I1y=<5N0#+L%Q@DHDbGSeAbu?R|A$Q_y?ae3;JC%0&fwyG7 zYWYW4dyM?Q?ui#K;!RO{NhN4_H~dB^a9z6l72ELO-|@TV7VJ}g{Z@ts_LWyIgb=^p z&d>D*_Dg@nM~^$Jk@Q{Ya+A`QC^W6G7-EOfef>JHHzm~9FpX*TX-@tU$am6Dfa&Sh zM<=8FIW!Z#@1H2%lV^?G)>L@vA-)mAS?x=;nf^RV+`xV%r@p(r=5%P9HD*|+2ELQxJ%EQkp8e< z)QcUswJdcp5P{pv`rPTc%90#v>yPqwD$gajpz)qfdY zg6d|Ic=0=pp6wdIl0e#GY+_;$$j%Y8Uqu2TG&G{3sQ}K6)^X{zto!B`h_b!|%F92r zG>5)|jSX8epUt!9&jUdqMkHu*=q;Q4SWMQu?a*CT?+X=e{{n$WB!lksO2Xu-7qas% z3yBA6I8Dx1$|qGwSg* z^xQ2LN9oGEhi{gi$$bw*`|MD+JWo2#Z`L}o&cqWaaVciLu+}z8IWSz7cW|ewB)ron znItYQxdBVvm<~gW*1XtQB0+H|Xcqs2_2{Q#m8dw&sJYpzA?B|)yqw0LBYtPwq0AF^ zK;yLV@ufneWxp0++jY<@!Y!tNWC=(&<$(F~=^B6-uO>=-{-i&gF#xBgr`{|-FE1BJ z-Heo_h5uhw)iggn6_r+ihIa?i0MpIho~_>Bv;W>Q<+Of~nn;oJb|iMao)Q>*XIPZq zd11rG$1+Vp!!!MOod3ynu2^tyuvWAEMdmzSmu9uJ(%kKu)2#uQr(H?J{IP+{!D}4a zHNPisgGuK$aH8L0B&DRyrA-$x>ZF?GtjXTGg1V^3@2qpuNMf2oEX-pmM$H!~;t@C1 zgeldBF6JQnHl+JWW%m=b7(_McVFIwfGp;Y;trpHK9JSj=pq^IS`rTxNFm?COPfTw? zXRb7k-CMPfhaqqD?zW*?wJ z=1%M?B=Lm7Z=r$$W=W|>Iz`n@U+Jf2@aO3a+=>0wY*nChSd4KxddzBe*F&$}cino4 zc6z-Rxb)R614+tm@WTLqZ;z7R;p5=fRT<0l1Q z_B`M_Ss8z@;U}I|bBsTW6yaHdk98{08~OqVh@uxLqrvypS!InNQoZ@O<>d=Pe%h|U z7u;-dc(fThHB=;4LmE70ZTpBdm>Vwcik0B*v(jCr=e?J=0wp zvKnwbvf>b}uy!N`bwzL#v0+3~inzoGohoQt`m>UvdFPL5(%j$fyDbUByj`XAqPAXn zXwc~b6KOMrnFXmqYE(vkIfKknr|R3W*ot#e#!uUSwB@KQlZ7|?YI5tiLU;*CCj)1k z{&M{ad!;s(Q{MMfaX>mLi7TiMjZ5McT3{gKP*&Ti`7nFX{ix$WhF`8b{tHE^hRX9p z8#DD$8O|pnzQR~25~qz&)1zvs7jAvSkDuJ&P#Z6wH~qM-^73&l&}fK$DjMEq2^#qiqOt2>671a%R-s+Ke%IF9v+;^oZ+cG$H4 zl(er^;3?otDOO2gj+E7Wg6;Yw>Odu>H*kz{=l-jutBj$eyN^r3(VKfHN}gGk{-btw zoBiE~TG+-0thag7F;(>S7fnac+A%rcDHZ7_5BGDf{`R-RC|AuT7n8p-2LH}L z1aKH$L#?_$1ma50KUut=tkA0n=%U_jDe?4$?CkCW&~%+;s!}}9j5S{iI*wa3an-m5 zi$(pn3%=y7yV{nU?^8B?;8m(!_A%(PZf-xfzCH=?-7Dud%AB2@K@Ma(0F3uG{$zP& zJxgD9th_qP7p6G(oX@5~)hH`2v$0`T9Z!_A{?zAucW4)H%O zY_M-V#wYT%_4m{Aya*t^tN90tvE0|`O2vA!Pq@RO_Mt!G_mJ2!8mIjgqSF*`w& ztD1(!2LBf(4h}e<-sY)E{p1B3sfoLL-BSHBY&;cL5{>5Ury89i0LRxZ*gl+>OcH1V z=R7hpawHk=PJNZKq9XD#$XgOC0j6m=Cnp{dz#@KDghmsHn;G#}U49INPz>`#0fkf* z^AZ5b@Fhoq3^w;ZrF5|Y0QdK`y9Lzxk(y6n_?-`%xLMH91?>AZkg)=&Y{JVMC_>>q z#;XABZsWN4Ee)Lh|E*cZq^yM|gcKnFmSzp|Ir{q*fI6!)jDTUf(ftKnjR9!?i$qNz zOX8J<#m^x+f4^!}fV2Goa7>FtZM!==)3x@rNx5Ir(>d}$#+M}8%EaHV^xymbfWv@y z3t-99o$bxU0^Ug}$Y4J#SQvI0B{aV!_Pp3zsoP4+DlHxMJgft18M`sXDc56GaM63gQ3&^9B>-Y=8y?shhb! zezfKJsH)<QE#8fCM-ImGR^N9Sovsg>@=S6_eM%A=6n3&iQPCSQ0Q3M8GQ> zL`uRl3qVMw+x_{J_a=$!g#FmhcSute;t$6$)^pWS0AW+6FPOT?dSquh+EPvw`b@1Hpl4?dY-vmI}^`6YZo2Gby?^-zu3KP6Cu;?3viuOaSKy zB=kIWU&n(7(-#%xl$MrG__u)bh@=uv^SQq%16>ONDK)P>JcQt?z3gnHUAD>ycz_}x zVqC?M5EGw(D224!gWChsO%HN@+nQuRnEsla3{P6ASO(y5(=geGOs&ottEH!frczW3N zu8Zz+2$lfOyvQxuMK3OH5EK}g|6Sih9$^OrJ$$M%_*8~44nDTICT(#wGwv;zE7rVz z^-6_^h)A>Ods0#XD{%y9w$pF%@$pO%e=9oc+Hdos-FrWc_ z-|XdH=#V$|69tPb`{T!tjV5~T^RGt7dx(gMnI+it>eZQY;wCIL=ws#KSgpJRz}F_s zhz6wVk%hlOBSIdvSvFl;90QY2B?6d`V`8L%iC)&ir5 zCX*ppDX9|KL@W(dfoTZ@==-JZ&-PdOlYz`#xZn4^=bU@beIE!Jff1v8T=s!utv}Ty zW+o&gh+IQuuzw-M@9L1s(9v=-`g)eCxZjS+A-E%+O2-xe% zT<~WoAnP!#&Oh#~@Mm8Y2)yWY-9Gh#d7wn#N0K3nJP00FeWnZpG6gaM06KD3tYc-n zVrrtGSCjrQy8Ax-L{Ll@OKWR5-_C#_kZ5NAVFd%CX@LGodmkSkY@W0C)aYi)XGxQt z!9$6eG8mo`6L`qXTVSy#atX|&2b>WC90F~Cr&c_>QR07?V6#BLCEPYRsy*!b0jz_T z`F>fhQ&Z1j0@@wU+A>C1xjK{PR`4DHEe)3SmavS!Ra=`sFc7wV#}1t`$RU1%$hnk9_TD(t`sJrme9XhQsSFeUB`)!r;*bJh}nild(Z{FB@4&} zxXq3tWknCynFdS@_KWcF%Xsx=L^_nQOQO50B3e`RRXufPem{ncG8v54a3_K&5-R0g9~VA)p2C zcD&k~nDJe}b{3nx4uTAG{_d!?=@}V|mRneqLlT-Iz~l@7P$nlY@03&`mFBdC?FN)` zM4rs60gPvz7X%sVB#wIkqMESRx;VR{ynHvtg$0b$8#{~o@!HPp`moV>(`D#5JqSuQ zlna%3K?HAh#%CzzAMM z`Hly4kpLsuf~44vB}(w)2>oYxG5n%|7hwP-tq-lw216hRlHaLNJX<;UVId9(v04gp zvw;ot$;iweRJ6XPW5?l>+Z*F1$m)qSI5sPoTQFaX{S;LiFC5lbbvJvOAEg`6#Z9 zSlsmF-My4q(RIMFGx&Tq0_8PXBv3hyIfaFlsuK;&q^2iB#~OIQ1tY4LIu*#MRO7-zcZs{5k(n8Up7JQb(y5-Fo`&vYEw(h2!CPqb7pd?EOPOQymKa7 zN!tSbG+&7ML4fxpIo?_5x?I#{sd6x~P1RmW!xn^XR1vltHt?}>cCp#!ARE4&lI`>}ncH4hm`2S_}$WG>$wwx_^en;}P QF$F&iAAj#E`u@~E0n`~$VgLXD literal 0 HcmV?d00001 diff --git a/_images/examples_chap_04_16_1.png b/_images/examples_chap_04_16_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c11ac40aee398b7eaba472f362ae36516c5d0be GIT binary patch literal 15814 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 Y4l&IBz9?=3J=F+BIaO4#jLEbA1}R`(QUCw| literal 0 HcmV?d00001 diff --git a/_images/examples_chap_04_19_0.png b/_images/examples_chap_04_19_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d20d3bfddb98af8760ec76fd4084070e6ae170 GIT binary patch literal 19579 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 literal 0 HcmV?d00001 diff --git a/_images/examples_chap_04_24_1.png b/_images/examples_chap_04_24_1.png new file mode 100644 index 0000000000000000000000000000000000000000..004dfbef37644f71ada0e605b8de881a27466608 GIT binary patch literal 15982 zcmb8W2Rzm7|37}DtgIthnFlG!N>(IW5|Zqdo$PEfvW_H9B^4P-DqC5}UdJs;vdM1P zgoOCLF5RE?9gqL_e?RUX-8W~v-`DlJUa#kR$LMOS(@?QdVK5k)vl=RT7|b4442Hy> zf((9A8-?Ekf5~{M8hKrGv-k47>}iKNf7#33+0D!OiZ!>7o#(YHZmuVUPYRz9;&$}% za=#`kBI5GT7YMs~I*7C%tM~{XLg}tyd<}!4yNv#jJXgrRg2BiSo>fuQ_e+@@4m8vE z-d0%bm8KBqVa_a#xvV&A?erqlHZxQC?3J85nRoP_<$pJMpy$fuT9NhLC`$T>dG*Zw z<2?2UD!)B@_<}Uk=ti##K}dCvt<+LIKh`#7glqf3!HW26U*1iv2FZ0y6s7!lD6{Y) z&VNZJEw<5FGFeeYMa9-;xKTJ1kH?!GP$t7-v6MG>!r}k+)+M0d-moHa<8U}dQCoT} zmcY#-4!_c%r)Gs;@lntf?JqR2vEgMBHp8#1c$rlN96TVPtzu%r7O?WI^F^;E{J^0j zMe%*AJP$!*Z~lEep6LCc-Tu?3Poo{D7F5byU49yBqNTtp%-q|#)HNWTFmf&No{f_Urq!Xnn!C#nnrfE-n82sea|k(V*+sBZZUTtL^j+4SA)dS(rsEBGS?8; z{OP*#y^EZLgk-MNyv&tjd}3m3ZZ7WLJx0F6hpoSMJk}LVl)m=mR+jns^E8;+k&zM4 z{O=)B=Dcvz9+aQ&dMr<#jfjjS!H`k2gboZ07z{o>{$vry68Hq(CC(uk81Ip zanGM05i%~`JJVZ0j#-)QKTunu&gnbkK^}Uw>QJxcKR&IKQB?NMDE zCS709)a;^Q;`0|T6fayLObxwye>(QyF@w=}4^K!3t_gkio1l63KrFLeF>Q5q^?822 zs}HIoclN`!_mYxG&*WUZ{HP-_G10i=xW!u*UiI55JKMiKdd+>usyF8w2Hk3gzieJD zFs*pB3FhtFw|Z{FCu{EbvuO? z9lYDRH?tFe^ClH>%JaGYOYOW~H~^C`*`EpU9yvmB=7&1&{6OHnkC(1ox$>>IfGdic z)w64%oA21M{jfCn+qcz%g5;iLW@6dcZsz6+B@d$-=$FbZnYJ^Tz6xiql?|zvuiOiF`^H()`a8WgnHeG zZ`IJzQ9pZ@5;Hp6|H{$PvDVbBYTxKU0P~M8?WCB!WMtM&HxFuPX+@aiHNU>nrE6>) z1Le5&MXILmW7atrJsmj4A3uI{UT$)eU^Bh`whJ0Y=IhstYMEH4l8t8z>aaLkdq=p> z=Na${2xNC(&6~5iLm-4rPTI071hc~`i;0PSa4PvWTv>L0=4F0%a<>6KUead zIB{TUX^EqBu-t?9nf7C+Zh5FH_VW%k%KH{tMOmoLopwH5)ERq`oyzcx<DM=Uf zb(-w}SvQn29DSMJSX2clX6X&DRKW+N#0^GLn|25jG_yW@_rjRC`VOxA z`1RxK(z_Gy(_g-v{`;DTgl+pCsbz*)6qM!u=v2wj9gP*KKBJ~aw*BjUi1mkb#lAAP zG>uCPSZsgVD5(NR;&HNIi-M|y3bC=VODkPE6Hu5m*eeD+i;f z$tM;T;@`c~a_%c6F*Y`4k@FLUgMF%~4Z7O2c-el|+Y*bfjx)sUh5p$x))4J6lUHWl zS9sZ|I!J~*k^xJ&I997e&a&R0ddx6?v|VbX@#eu}>3S~`Qd4h_Y_FB=ev#`fQU!CB zpYy{@J*IA#Vbn-_Pcxz`eXp=%Hd_pJA={WR#;10hJ;tWxHqYV1WF8(K>%SL5;-UTR zUW(HJ<){Oc6cn`%Y1gCTPj65pOSv_V)`b(&(nNfWVJ-5kiSFWXnI{}N8sRd>78dBT z^kQHjcx9RMwYyi zlb6rvb}G8sE4;Nn5$`t|M!wj@Y>7wfiN$DN_Fg}l``CMX%OCnDxntkQ{)#*z`=U@Uz!D`%?uli{*J5s|XQoW9|xW0O+v9U4z?c3eu zBDRa#mLGxs^7i-I;QE(jH(h=G2y#w8OvujW$e(YaP>zZXTpx?}nC%n0#Ui$cEsiW? zy@6{H4#iD$FBK$F)Kc!SnK)>UT*2!+AG^BX4#OIv>2@o$LK=P#h(Oe#gPmR0ivoHD z-RX7iJ9qEO9JvS3qak6;eq(Je7Ao2X+S~4$c4n$iz_RRaxiE1~De73>`W0xYBDp3d zRF)yXPgd`22g)thlJ*tb#rE03DTy7snI>F3o?Rk%?3mcq9wF!c;(gb?cBp!Kirb1m z+{;|!{8Khr3Ech;&^#ICW+YH+F-6tP)vXYJ>@G*%PB_z%ObZv z8m@8n>{z-k4)^9LHLI=1$n~FNl?&C%N=kby0>1O#Vm(22@ZiDwGl%a|!oh(pf{q5A z8E0@#MdkKw8}XqaEj3f0*}gD<8V$DMV-xWTYRbx_OhQJX#l_<14n-=FJk}(+Ub7$+Tf@zg7K?8#cs7h4~#}ng3ZM{NyGOw{6I^;3v zQZ@#VBhMm9gHQJe;}K!uD1E^aHxB@8R7t7k#r{9+sku(G!z7}hp*dK|o>c0)@L7_S z3>*wW5I#C8WO_Qy6u}n;4F)AO&cw^!G!x5?-96SW;{6N-QP*YPg zx8h{~!`&WUNWJVFmz^!(TJziIlmYaOj@p+AMSe@xv!AODUEf$yJagturAu#~Y4rNK zpI=}gFF*f27<7FV*97iq+Qr6IOwY_*Ff|?gQs>P&t0S1Gl-)&gCN{lu^8K_ zc=BY=x%)y_dV)7rzJG&-PbMd4zNwtqd8VKj(7^M4|45}UI6Qj5WBm1=GLKgVp0Rh`d!;Sg2jn*3qHn;&S}U`!qVb_#K)Z{HA!(!+>S}qat=w~p>Ye=wVaw`U8yg!wmKQB8UmO z|MfKuf!Dx=s z@NZFI5|y8OADfTl6ghU{p!SDe7D+=9o9(4xJ#RVb@9%#+A8=P)OAGn+&9#HY5ljpW z47x@}_^quVc;oQNRVS7>wUkr7x6#_Tp81e~J#=XQL#?P!pY&nMn{+TUGIC2vF~e8^ z^1@iW*Hg41il%|UtDcaMP-{Vh!!bK_8!UYP{{6mPU2nd5Y*ZAPkXboBW)!BQ|Bo-m z1Jhozhz7vqdm!n;2JMP)=gy7!;mXYP^z^1ZI!fo@P5_N*9X_C)B3+mFS@pHs$mw?} zG6&F5{v0rK{O$U9?2vFOo=EBCljEDC6lId9rmd}=)2pPUWb$r>NF<(tu6LVDffg?N z!2=f9v=#XLoU+n~9owY1%jR#qC<|(~Wud|rN5kpHp(B-U@=CyzW`i9#W<_)t>iy{? zWLiosQnkW>HkVx=fi;f1V|eMxMlo{*gNZ~#i!mc~v$d(zYqruUZ{NzHOXTP0N0sV% zX10|(J4;`%KSxnzat~mzMUR+ki)(9YaA9ln!?8cUzPEv@HY#yC*o$6|3o@&3;ioOg z&!8>($PFNgI&sn_Tk$$ai6?MIJuBD+6K}>Fz|d%J;hz+LTUCY1!Fu6yRk{1v zjVwcDIIj{CjGdjG`1p8rFE0rtWo1HQBEL^7l=+%%p+G~c#HtgYfIwM*IgWtAtOUqQ zu*J#4p!7UsCXh)=&DzmsE3PP~zgXj%|FeS@3Bqt7 z034mKpWYG_6m%ZAjmJlf`S66Nq?rjX=vUU(o(Vg~gL|?jYMan?;e|eQ>ideRE)S*L zI7{6|T(e)|@!!;_Stq@o>K*lx<-okAU;_XG|3b~H>FUyRhHQD<;yA^mu)UtilEr|n zI0+boef>Kdv#1A=yb|NJ&mqri0BBw~8ni6D3w z=c$lV|JTu6?YtAmf_u8V$A*1JA`NmP3kpOG^37r#QvJz>-&B}4AI23^=HKmvx&HH_ ziOEgXSf!c=&GKjmyw>1L8zeAWiTpmzJlDX=C>rY@g`s{#4K13(>t134^BAHLa~P#zp@|G z3E4P+cyFF*S^fDmZU$^WyE0itNoXi0*Z37#%WV#2*lw}lEk87QRaI53lhjluSD?h) zsg9LAv#bg3E3zTqUWyMHZQ%-O{QYwzKFK105>x=^o(`xaD^YIXBQU8C-#wdhBL<&> zaY%Cap&TBC{t1J=4*ue~+gfPdM1|_PzrWw8(2C@*zy1<(IY_k+_NFXR09RIjG?&AQ zn0_00?F7t^rtGxfo1d!!Gt0}%Rg<3`R9_8{2U1r-6LpJL)K=GFZn%<}PGL(F0Qkpg z?--RmFiytD$C>tr0eZsa-&M5bjf;zOA*05KCbt8BjqG%MZF33WLp)FTbJEA=xv{YU zSnSD`1jSDz6=tqoFqG#(w|PzqfSfAwNmJ=^?~k89TNcL}=8O(v2@^I%?&(nI_}bZ| zp-hUI-@nE(i;REIPJ_{uH#`Hyt`CyV)gD&q*r_M zn_$*NfBWVLtBU|6;RxtZ&RRHv)#tbV#MV|tpt+#LAe9BxVezRbYFroszS2SKqVqL7 z!2oZqrv6GS4_JMPa9=--G8rM%wQ^1p*cBolY^%0Z@Oq{uNfbqkJ?>(HTxyvVJ zdh&?v?W(r6d?1G45F5AwYgv4^$fji+C;~tO0nUJLJkXaEXYW84n!3l6SzXNuGg{5a zh$Sc}$Q==b_D6^meaa{-6rG%!;yHbq6H$p2nQQL9mhCXTJ)?jS;mkyUlGAF-P+@|5 zl03oVL(=2u?A*xVI}`>TkPX049gvTuKAU*dj#>rM7%SzT`1l6~P85XvK6X!&AI6qD zXjyWbv#$_?LM1xKxLcyo((v63SmXD0OcMcL9y*}O10tMu$yaN$NeW;J5n?vYqe+&* zS3L5rSTa^wyiZqDp;cXMDt~Qq{IE_cKp9aDK8A>>sM5jHa99A$qtNg}PBky?|g*bi^hj193GYA6%?quxVR*%U#)Te+MY}v z5)vZ!2(NBqb>{e7wocmZ_op{=+c)R?Uy(bN3@raRCsGvwBMe|@ za-d2=*Nf-R3$Flj?w`i1m|zAw##OT?ivMeW}`khIL~b{hNo)j{S)czC6k z4vt47OYfVPEXENl!N))e|4OX_=#+U<3 zK!^eFU_d8WUkKUR4+MMU_q?yP-(tGPr2|-Rt;GcB!WgqaGmp$&-7W%7(mqSe5qok% z<_AX!>FXO3YqR~~afhU=K?DHW<63$;N(EO3=h}Vc+XY*D`*GkU2!6v)7U9U8Yn+b3 zn+W)UKsS?HqK=!B*TiZ9%z}!D=24F7n@d%B%#)}I@EBC@`Rnx4iZLA>`sM%K;@S=G-T$l`KgEVl0e2MNm^N=<0s3 zu1%JAUtsXO1SRJO*a5VQ3zsfM0v(z_GkN~)4{gjD0|O>tuC?ubc%l3T=iSqi zUuUBuB1S>;Ztt+OwdIzPVQq=$iq<-;tffT_Jtg4hyi5C>8yn2=H!ucr%`2I54DyuB z%{dVE9}3y|4HAYyY-CkA>mjUnl{7V}5EujzT+)y>@gE%5_1cG{ zSgcjFxzXc;E%3^vA3qunxxEe3QTY9OIIFb+KBoT>;IR&29^X~aDSTdXNZIh>Og$38_LEqNNgT+7;~CMM_2nKD2@f9N;iYK$2{a)5O<&ULENL@0P~!J%Dyg$3 zB*Ynb=Fg#P@i6}g#J;I62?B~Y`7Bp#yz z7SjLv^~*X*Y4RgtL;IP9U;7XL`(Pu;gR0Ao+kF0K5P6=4Z{?%-gZ(Ch;5Ier|1}YS zC+vU?A}t(FR28$OCvg8)7LlnISHJb^2h?OFjA{IZ!&pi@EF~Bq|Be7rYwooSi31&O zV!AtrMb_&GI-V&CAr?=aVu(HE+GM@0+zctLwl_K*Ra8~?O?t}c3m$x`_hKpl(7@-A zo$GJc2CgDY@8zW&Q9v+0TqX1bzj78sa=2o49eB$&NN?7#Ff6Boq(28P$fL85wpMD? z+RO$1sN6m$oWu(-u+nF)9y*Vh-=fvqt>w1od3gsbC2+-i0>z=4Cli2cB&4L=0yR6s zu)xCTl|9X2?G&Q=5f$1{c~+IlPawS#?%j*1uU7&!%4&JCmF0vzb@0Y_0T4x>Xj{Y5 zMl*qPGdt@Hm7MwfIRz;hbuH>3ZAl`r=4@E+P*|Uodax!hfHV-fpBdRFETUGJ>W%3f zra9o|)MTXMCr(@zWhwu_Ou)na5wAe+7P72nM-)Xvg924I*gP3vqF@pd6C*!-&{a`a z=LIwf^c2K6RRe?j#KZ#?0<>F`wK}+LTgl|2D_w`*u6#TP4qF`zNdgGpheEPW(lB<< ztisTyR?|!w%rA?;xs$o3W%=!rPy$e?;Ayrqk?`VXfY4wo_9-YR03t6M zmb8Dxnw6C$$`^f+ASR6k4J-El?jXsnWh-b@Eh;&=xFlbttE9r4h~oJTwm}A z<4qq!(o07e|8A|hRIDa>Om_uz5L^bh0rY&(1-Y+yJOz^bL`CT@W^1dSJsWeftkkH& zlRsc>HU`Kul8r$!sCn^|7x$GPrgYbLOnQ4dNb~W~O9p^{7Yo`7fvZ^QyP%eK`Z_&5 z{RdYxyb<{R{P{DQa@N*37?_lRGysiDTr~x43{92z8Rl;P)o#NJ7cYiGxx9OPiWx>h zPY@%{6AMarKvi|q!i~{UD`br9fMrC_%8HzY7=0eXW|0%s%!`ZJ^q_uXP;mf6^Z*5s zX;*24{T{mZUVa?}iqWw#5)AapGr+5YL07l=y|H?K4dDv#AbP%B|2f-FT4FLhz6FNt z()Q+p4M3X5+texbnv;*9)NZK(d==zQYRk}j!JVjiK~L`n<$=Sapgz`uZzSr!Y+H1W z-_zuV_GK3;7LL|`N|0`pEEsgTSY9E8NaQqu{5Myf4-BchyStqh=P3d*-XSU1M)1^V@(f}D?|>i(1{0x; zL1Nb=E|+|{sdoM=keN3tsZi7~Dv#FJ*ME5BpwrmgjO;ORM_qn;Llp%F2j2&Ozx>=! zeq1j%L8B1lKIg$w8b}o=>+9<$?ey_H>A*_Znt|Gd83osO+$5e;{!z(yAxlfkpdam0 z(jnV&Xvd~M9ew+w;}kfrbJfB}k5WRG;C|*6WqzEe4%B=z3?SIQFqruCNQ!R~jv-DV z>9Kl!W@g6JEGH-DYLA*Dfa1l~Rn>q1*(h3$o9dkYjlytUEyyTB4x%b(QO)sO@c@*| z`mEycxdM(v$48ny1H6Pa&Mbr&GU@t@ixr&nd>_>`V^>j`Fj9_$kfD=3eZbbdB z@G?9*J3E2@b;AAoQNh1AjQ7xEFWf~1hMZ48{76!r9Vj^mj5p=crC1NphE4D9v#j(v z4qdp=eM||{dw>41lv`?6o_4k}95ZBQUg>(4QC!S$^ytxVpQ}z$QBkRwzPKCffxTdg z9MGc|pIO0B_k-0bvZ}k`^HY__QwqUJL4cD^larIL1CI0YJ#Cs!L#C&;cJtCi3-AF5 zW{^VJKxO)__DD8BWMxk5p%$X^FmM*Z_XRccbZA*w8NeQyy`W{D_@kvhvP;wjk-$j@ zY~R%DYsSa;6YX+v&z8WlwCYHaLGBR@&I9<;G3l1WDEgdM1m6BYkSfwm*{VK)?e#nhOy22j?-xe>p=< zD&yl1sBgpDjsbJHJl+_Cq<-)-ddCC0?iubfc;RRpagZdQ>I*Ibe9CzC>=_`FkQ)BO zhl{`78)AaA4Bp3ULSkkgLCnf?(j=jN|I(LDmb>@0dO3JewB`CDs}36)LNPySHp>jw2+%%-eHj&SeV z{j{`rfwUk7hzhlUAb1N38*k1)xKutafF*>pirelAA{R2%;7SodeqK<3z-S$cK=l)9 zY7}W)t_+GET~f4aCSF;F0_CRjOFCK{kIS8j3BcH-`LogwAVL! zgayjWrR8?Eev}9ODu(jxr$!rshqMv_#vk~h7_RFpSkyZpQw0_=;XK*|vMVZ+jxZ;; z7o!zMk?9DO3EZthj|nxn$v0Pa)m)XyGfqxUi!f|>062lLA*6TlB3L%Z0TQ=^D2gQ< zm# z!5+~{m19NTJ;->7LYU+y|66(2+KR^*9lvmn)0+7Vi&{Mz^SPqUjFc1;k0yhAfp=1?Z1rxee0Z(8p z_7mc+fVM7xv<Yt=BS%I}FDB|b0wUATyC!>=`#`LP6I!5J2W1|WTuH{b3 zl3FoVb|^^gMo^$-W#2UTAfscxe1aCdrVdYi0|Uv;3JA<}_ik)%nktcFU^mhmHs^K~ zsyFA-B2x^(gBi{j0PE}F3k0pGKp!m|sD#m%u6tzhtHMr2Luw?7PSi*4&m&8CHbErt zK7N_=N?vHv0uUoU1;2Yt8=juM3-5WfFYZ}C|J9z{@1HVbp%qO43u~Dx8~JRX+_9EI zoLbh_*O`wZRRD$j)^2=89oX2bA5@X`U%CvF1GFFQc^3zj2`Ca!iL;N6CkH4LI8P@t)G%Wzj)TkAeKUUJlSh^kK615)-?vBQF4zd3d?_+E;C$ah8o#t*Nq` z9DgOC6ym3&d3o#pYqQ33Ykf8ls%Ti78wBRU@AJ@>+!ZShex^Hg$_a&?Uvx0ND_2a= zz7CcHBMbgnIWh+7Ke3~uxq(hW$mcAdXqk~gQ0pCji27kG;dNzS05T$d6~YNEKqMFA zL$;J>?+_KGU5Fq)af2Ik+t9*abyg2L{^#RmLpOjT$SpMNpWTutC3xIH>_Mhj6px zOFR?6`6>4AC&j>IOmA0Af{3Cr>>H@;KyZYT=WlV!vt77w0pXFJ0!z0m3fDKhg4X&S zTt52(R0TH+QWA9T5FNa#DS*R;o#kW5HLGBN{G%TrYmc$|eaN~Qej_t?AfWiprJd&F zJ!(b9}9^ssljfM|41ZS$vwY`N0thu+#e;r$|+1XS8Iz$US%B?K>k=fn!W5JShL)m}l7Lj!T@*5`v zakOh3%*@!;;@Iqd`9la13V{q!oIx-NzQi8J;gTQ92TE>jZ7qU)n)&i2RoeA6RxleO z4>POs;g4B95U?TTBx`73(36FvO76R@LJA|G+TJ%OA4I-8=re8a0rozw7QkYSMIfwN zU0n?%4iV8(=l=TDn4yStI-;=oo4uID}K%g!Ej z5rE{AjzjVR5=ig^#c33R2hBi^0gBFoKi&Ch!u>j((%nBg>3yKRFJB6_L3eXX+GN0X zo&R=#&ZV4~Fglaf(q$-0g99$xH!Todg5*Pz0_W zR5x%Kn}OF?p6BMOfP9GJa46Cuxxw-{2_Ww4*Afr34p)vOyVq2DFZ5^izVFP;`aZwJ({K>M44K=_&1&x+o!k$??E@%0P`-McKZYu0 zglcDpgOpgL=~SQ488yR|lp^hc^4dg26ut%-r2$?F!Po(-^98*p9HlYfHx{A+Q3Q90 z?3*{UB$&484$uXHyl}-G!O@=QX@dt)_Qk=ID|EsO7v&Zl*c!!W-kvXhvi{_h(w(6f;&iaV+ zokRP`$&r?{CKT(sXZQ1|$jI2l%SQpQVh5IGoiu$PX&|87;fXSH;OObdE$xLQF8KVBobmy9 z^E-nOW`w&u8!x}cQtCQP6a~cFoC%xe8N4gA_UWO1K%PAkB;NPo; zMdzLvpzR=B)XV8c^vQj+mIT$quK2|FhGh2!jwfnHLi&6Z%vKgSk}q>|;27plfY*O4 z7>s!)&=(-AJ-)e6(}J!Vjv{>SPW-EL(v=Z-B0sv@PIay(bKha~G2GnTXJ+r1F*zi` z_nO9lU6F5I=?>|)Gcc1_GOfER%CJXf=|ydM&O&>aWHAF1F-FmUD_CD;O!zAT~*!awII z`y6mJIbQYA_O`Z`)@0`0WXJ?U5UABrqO|f%QopkrJY)cfh$F}IIH=x;Mqo+KsH#Su zAG~l5e(q z_*!l2lijLgK#duT5lF2CDpbEf?X`XC9#1&>URlJ%kkk*^8bHAibx-T#kGTm<9n4iC z(m!=|F?4ivp!X^k^v0Usx#<2^0x|+*If@8rgw+6`- zxs(u5Y!YtEkg+3TLS?RfNiQw!@dPkog4}ar(=V|6!C!`uOEWZyC5R1-L+-{pX{szq-|~F5uXPL3VuiK?4YQ^xMJp`eYg8 zcr1=8?%lT!GUa0;A-`h#_+{90?16AFtW0KP2?1GEr%ySN9DKnQ%W zfqRC8XAoi%fMcFoc-!@{6r?W0e6uS*szG!F;|Fm+@Z=Fu0IME(3`q0?D@gV?>u$L@ zXTUqa96w2N{+SAbJOr|vAsv#L zkx}Ov3}GNp`CK@iO5SvDdd>929V>zn@f@*r$kdI&9zqU#)N_*FZ`7gd3`>??|M(-l z7b@_u%gviN-)vPQI0YADC7Fye#czLoNd|a5e!dqHvtB2F-y+`!0PF;6l(4Q7Jt2Gd zv!QWAVrELZ{kJ~2RSilEC$POv5C>861pHas=m{|t5j8g-o`t+*aS3S0&Lh><4=Kazpu6ySmeenQE000{`;kQ^vF6KLL2EpW){an5O@{61zc^!37p3yyzc}xvF)%F33 z0Q(LzXdKZW(Vr4~sTG2S?BKnweVHFW{R=Fzf%%7>y7p&K3vHB55V} zw*N~MO1usVr?rg@0NaE|j|QAoJ8s?d=EuU#g%`y#6ddB#YoF8^}x}&Tj}FAWo5$8Yu_9FI^yX zf@t04p>hwul}>fE*I_xYv>gn$UL&n=TGGJ}hRJIqYdKzC($>~i>EJDC2+vwuTc>wB zb%Gs`|9QZ^JXadJS$M0hlB44hC?ivjWXPk_GcrcNObG(ZwC|1gv2A!rpaEzZxHBwL zuI$ZmhoaF_2RQu^**~dBD5${Jzy7KR{)|aC{s1{~q)UuAvmp3C0 zMHvAUQ3J668tJ#5ya_Dbf0wwVe*3eC57f5s!)iw5=H@bW8HI<37r}D?KE18re%BjX zUXO$vob_O-3j`eZfZ^7Bnaa*IoW6Re9S$QWJzE>p2|tU53CZoW0~8)g^TRD!})#~_XHI&@@f zP?;h0&owY~S{X+;lcAelUfwsYE&zSvpcjZrkbU?H4qg)=v|B?%X5i6@Ak~QMp;piQ zw%M9lk}}Aq?47Gfl*F4g0aU*Uns8l1L*~W6Aa9@Fx0A$nhBR(se~V( zi9}5Nqi(cuzdr;-axXbKM6D?;_M>Yg?Em{|pAR@kiQjMS+u4$HlRB{whWzuGR+`-p zN$4Mje~e92=iv<9Bd!4(PKF?ZWf#IDCb0~GO*&=C=3om>3d2GE)zS?8dBFU^0J#IW!KG= zRBp%4^wC$4LFRzau(Z5fpSH8*;OFljV@`z~hKMapZ2~tEUjL_uNr_inKEGuJY=QnyvSR%>{jqs(hje<_%>F5LlybZnr zJ=5?HSI^YNcYa8QkDs3hViS-Z<>c%QR*m~lQKalm%(pLyeeLc2uMb>?ULDkohZq7p zX#|gcgzMTd5aN(g-yrQiiou+Dp0N*qer12*teU? z|1dqD1Hi(uhYSNjFp^jOL$i>fdTs8+|K#@WrGWi~`7q5JzpEnPiA%dbq@beO^I?mi zaTiP~dV*0KHhet0OCM2G&Dx#?mXyOST3+CU%l@B?xmrn z)d&*u?z3ii%-V1S+h|X|%m5|B-yBX#HRKIc+xsA@A>Jnh|dVo8SF*bC{{YSA;IaS! literal 0 HcmV?d00001 diff --git a/_images/examples_chap_04_25_0.png b/_images/examples_chap_04_25_0.png new file mode 100644 index 0000000000000000000000000000000000000000..8d42e74bbfe4e17951e2240a8ddd54c80ffaa6bf GIT binary patch literal 26314 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 DkNjBg literal 0 HcmV?d00001 diff --git a/_images/examples_chap_04_6_0.png b/_images/examples_chap_04_6_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c3213ac2321d335c8ed04c3c45c97b5fe155e05d GIT binary patch literal 59799 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 z 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 J&UHiI{|6SkxitU) literal 0 HcmV?d00001 diff --git a/_images/examples_chap_04_9_1.png b/_images/examples_chap_04_9_1.png new file mode 100644 index 0000000000000000000000000000000000000000..aee42ac87f266937e3e16f4120d56b6c85a22e19 GIT binary patch literal 16792 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 Y-nd68KXVBFF9|SNDMfVd1H;$<3!osW6#xJL literal 0 HcmV?d00001 diff --git a/_images/examples_quick_guide_igraph_22_0.png b/_images/examples_quick_guide_igraph_22_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a452893afacff23965adee0edc6b135e43844e19 GIT binary patch literal 12733 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 SwlGxSKRX*o>jRcvq5lV=Yxi>i literal 0 HcmV?d00001 diff --git a/_modules/index.html b/_modules/index.html new file mode 100644 index 0000000..4314be9 --- /dev/null +++ b/_modules/index.html @@ -0,0 +1,81 @@ + + + + + + + Overview: module code — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + +
+
+
+
+ +

All modules for which code is available

+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/_modules/netsci/analysis.html b/_modules/netsci/analysis.html new file mode 100644 index 0000000..55e139d --- /dev/null +++ b/_modules/netsci/analysis.html @@ -0,0 +1,320 @@ + + + + + + + netsci.analysis — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + +
+
+
+
+ +

Source code for netsci.analysis

+import itertools
+import numpy as np
+import networkx as nx
+
+
+
+[docs] +def find_sap(G, start, target, path=None): + + """ + Finds all self-avoiding paths (SAPs) in a given graph from a start node to a target node. + A self-avoiding path is a path that does not revisit any node. + + Parameters + ---------- + graph : NetworkX graph + The input graph where SAPs will be found. + start : str or int + The node where the search for SAPs starts. + target : str or int + The node where the search for SAPs ends. + path : list, optional + Internal parameter used to keep track of the current path during the search. + + Yields + ------ + list + A self-avoiding path from the start node to the target node. + + Examples + -------- + >>> import networkx as nx + >>> G = nx.Graph() + >>> edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'F')] + >>> G.add_edges_from(edges) + >>> start_node = 'A' + >>> target_node = 'F' + >>> all_saps = list(find_sap(G, start_node, target_node)) + >>> for path in all_saps: + >>> print("->".join(path)) + """ + + if path is None: + path = [] + + if len(G.nodes()) == 0: + return [] + + path.append(start) + + if start == target: + yield path[:] + else: + for neighbor in G.neighbors(start): + if neighbor not in path: + yield from find_sap(G, neighbor, target, path) + + path.pop()
+ + + +
+[docs] +def is_hamiltonian_path(G, path): + ''' + Check if a given path is a Hamiltonian path in a graph. + + Parameters: + ----------- + G : networkx.Graph, networkx.DiGraph) + The input graph. + path : list of str or int + list of nodes in the path. + + Returns: + ----------- + bool : + True if the path is a Hamiltonian path, otherwise False + + ''' + return all(G.has_edge(path[i], path[i + 1]) for i in range(len(path) - 1))
+ + + +
+[docs] +def find_hamiltonian_path(G): + ''' + find the Hamiltonian path in given graph. + + Parameters + ----------- + G: nx.Graph or nx.DiGraph + input graph. + + Returns + value : list of nodes in Hamiltonian path if exists, otherwise None. + + ''' + nodes = list(G.nodes()) + for perm in itertools.permutations(nodes): + if is_hamiltonian_path(G, perm): + return perm + return None
+ + + +
+[docs] +def check_connectivity(G): + ''' + Check if the graph is connected. + + Parameters + -------------- + G : networkx.Graph, networkx.DiGraph + The input graph. + + Returns + ------------ + + connectivity: (str) + for directed graphs, it returns + - "weakly connected" + - "strongly connected" + - "disconnected". + for undirected graphs, + - "connected" + - "disconnected". + ''' + + is_directed = isinstance(G, nx.DiGraph) + + if is_directed: + if nx.is_weakly_connected(G): + return "weakly connected" + elif nx.is_strongly_connected(G): + return "strongly connected" + else: + return "disconnected" + else: + if nx.is_connected(G): + return "connected" + else: + return "disconnected"
+ + +
+[docs] +def graph_info(G, quick=True): + """ + Generate various graph information. + + Parameters + ------------- + G : (networkx.Graph, networkx.DiGraph) + The input graph for which the information is to be generated. + + + """ + is_directed = isinstance(G, nx.DiGraph) + + # number_of_triangles = #TODO + + connectivity = check_connectivity(G) + + if not quick: + if connectivity == "strongly connected" or connectivity == "connected": + diameter = nx.diameter(G) + else: + diameter = -1 + + print("Graph information") + print(f"{'Directed':40s}: {str(is_directed):>20s}") + print(f"{'Number of nodes':40s}: {len(G.nodes()):20d}") + print(f"{'Number of edges':40s}: {len(G.edges()):20d}") + print(f"{'Average degree':40s}: {sum(dict(G.degree).values()) / len(G.nodes):20.4f}") + print(f"{'Connectivity':40s}: {connectivity:>20s}") + if not quick: + print(f"{'Diameter':40s}: {diameter:20d}") + print(f"{'Average clustering coefficient':40s}: {nx.average_clustering(G):20.6f}")
+ + + # return { + # "Directed": is_directed, + # "Number of nodes": len(G.nodes()), + # "Number of edges": len(G.edges()), + # "average_degree": sum(dict(G.degree).values()) / len(G.nodes), + # "diameter": diameter, + # "average clustering coefficient": nx.average_clustering(G), + + # } + +
+[docs] +def longest_shortest_path(G): + """ + Calculate the longest shortest path (diameter) in a given graph. + + Parameters + ------------- + G (networkx.Graph or networkx.DiGraph): + The input graph, which can be directed or undirected. + The graph should be connected, otherwise the diameter will not be defined. + + Returns + --------- + value : int, float + The longest shortest path (diameter) in the graph. + If the graph is empty, returns 0. + If the graph is not connected, returns float('inf'). + """ + path_lengths = dict(nx.all_pairs_shortest_path_length(G)) + diameter = max(max(lengths.values()) for lengths in path_lengths.values()) + + return diameter
+ + + +
+[docs] +def average_degree(G): + """ + Calculate the average degree of a graph. + + Parameters + ------------- + G (networkx.Graph or networkx.DiGraph): + The input graph, which can be directed or undirected. + + Returns + ----------- + vlaue: float + The average degree of the graph. + """ + + degrees = [d for n, d in G.degree()] + average_degree = sum(degrees) / len(degrees) + return average_degree
+ +
+ +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/_modules/netsci/plot.html b/_modules/netsci/plot.html new file mode 100644 index 0000000..c6988a5 --- /dev/null +++ b/_modules/netsci/plot.html @@ -0,0 +1,181 @@ + + + + + + + netsci.plot — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + +
+
+
+
+ +

Source code for netsci.plot

+import itertools
+import numpy as np
+import networkx as nx
+import matplotlib.pyplot as plt
+
+
+
+
+[docs] +def plot_graph(G, **kwargs): + """ + Plots a NetworkX graph with customizable options. + + Parameters + ---------- + G : NetworkX graph + A NetworkX graph object (e.g., nx.Graph, nx.DiGraph). + **kwargs : keyword arguments + Additional keyword arguments to customize the plot. These can include: + + node_color : str or list, optional + Color of the nodes (can be a single color or a list of colors). + node_size : int or list, optional + Size of the nodes (single value or list of sizes). + edge_color : str or list, optional + Color of the edges (can be a single color or a list of colors). + width : float, optional + Width of the edges. + with_labels : bool, optional + Whether to draw node labels or not. + font_size : int, optional + Size of the font for node labels. + font_color : str, optional + Color of the font for node labels. + title : str, optional + Title of the plot. + seed : int, optional + Seed for the random layout algorithm. + figsize : tuple, optional + Size of the figure. + ax: axes object + Axes object to draw the plot on. Defaults to None, which will create a new figure. + pos: object, optional + Graph layout (e.g., nx.spring_layout, nx.circular_layout), nx.kamada_kaway_layout(G). + Defaults to nx.spring_layout(G). + + """ + + # Extracting optional arguments + node_color = kwargs.get("node_color", "lightblue") + node_size = kwargs.get("node_size", 300) + edge_color = kwargs.get("edge_color", "black") + width = kwargs.get("width", 1.0) + with_labels = kwargs.get("with_labels", True) + font_size = kwargs.get("font_size", 12) + font_color = kwargs.get("font_color", "black") + title = kwargs.get("title", None) + seed = kwargs.get("seed", None) + edge_labels = kwargs.get("edge_labels", None) + figsize = kwargs.get("figsize", (4, 4)) + ax = kwargs.get("ax", None) + pos = kwargs.get("pos", None) + + if ax is None: + fig, ax = plt.subplots(1, figsize=figsize) + ax.axis("off") + + if seed is not None: + np.random.seed(seed) + + if pos is None: + pos = nx.spring_layout( + G, seed=seed + ) + + # Draw the network + nx.draw( + G, + pos, + node_color=node_color, + node_size=node_size, + edge_color=edge_color, + width=width, + with_labels=with_labels, + font_size=font_size, + font_color=font_color, + ax=ax + ) + + if edge_labels is not None: + nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels) + + # Set the plot title + if title is not None: + plt.title(title) + + return ax
+ + + # Show the plot + # plt.show() +
+ +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/_modules/netsci/utils.html b/_modules/netsci/utils.html new file mode 100644 index 0000000..94fcd69 --- /dev/null +++ b/_modules/netsci/utils.html @@ -0,0 +1,534 @@ + + + + + + + netsci.utils — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + +
+
+
+
+ +

Source code for netsci.utils

+import os
+import gzip
+import json
+import numpy as np
+import networkx as nx
+from numpy import power
+from os.path import join
+from cycler import cycler
+from scipy.special import zeta
+from scipy.optimize import bisect
+
+
+try:
+    import powerlaw
+except:
+    pass
+
+
+
+[docs] +def get_adjacency_list(G): + """ + Generate an adjacency list representation of a given graph. + + Parameters + ------------- + G (networkx.Graph, networkx.DiGraph): + The input graph for which the adjacency list is to be generated. + + Returns + --------- + value: dict + A dictionary where each key is a node in the graph and the corresponding value is a list of neighboring nodes. + """ + return {n: list(neighbors) for n, neighbors in G.adj.items()}
+ + + +# def _load_graph(file_path, kind, url): + +# path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +# path = os.path.join(path, 'netsci/datasets') + +# if not os.path.isfile(file_path): +# os.system(f"wget -P {path} {url}") + +# if os.path.isfile(file_path): +# os.system(f"gunzip -k {file_path}") + +# with gzip.open(file_path, 'rt') as f: +# G = nx.read_adjlist(file_path, create_using=kind) + +# os.remove(file_path[:-3]) +# return G + + +
+[docs] +def download_sample_dataset(): + url = "https://networksciencebook.com/translations/en/resources/networks.zip" + path = get_sample_dataset_path() + path_zip = join(path, "networks.zip") + file_path = join(path, "collaboration.edgelist.txt") + if not os.path.isfile(path_zip): + os.system(f"wget -P {path} {url}") + else: + print(f"File {path_zip} already exists.") + + if not os.path.isfile(file_path): + if os.path.isfile(path_zip): + os.system(f"unzip {path_zip} -d {path}") + print(f"Extracted {path_zip} to {path}")
+ + + + +def _load_graph(file_path, url, directed, verbose=False): + + path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + path = join(path, "netsci/datasets") + path_zip = join(path, "networks.zip") + + if not os.path.isfile(file_path): + if not os.path.isfile(path_zip): + os.system(f"wget -P {path} {url}") + + if not os.path.isfile(file_path): + if os.path.isfile(path_zip): + os.system(f"unzip {path_zip} -d {path}") + + # Step 1: Read the adjacency list from the file + edges = [] + with open(file_path, "r") as file: + for line in file: + if line.startswith("#"): + continue # Skip comments + A, B = map(int, line.split()) + edges.append((A, B)) + + # Step 2: Create the graph + G = nx.DiGraph() + G.add_edges_from(edges) + + # Step 3: Determine if the graph is directed + # is_directed = False + # for A, B in edges: + # if not G.has_edge(B, A): + # is_directed = True + # break + + if not directed: + G = G.to_undirected() + return G + + +
+[docs] +def load_sample_graph(name, verbose=False): + """ + Load a graph and return it as a NetworkX graph. + + Parameters + -------------- + name: str + The name of the graph. Get names from `netsci.utils.show_sample_graphs()`. + verbose: bool, optional + If True, print information about the loaded graph. Default is True. + + Returns + ----------- + value: networkx.Graph + Loaded graph. + """ + + path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + path = os.path.join(path, "netsci/datasets/") + + with open(os.path.join(path, "sample_graphs.json"), "r") as f: + data = json.load(f) + if name in list(data.keys()): + filename = data[name]["filename"] + file_path = os.path.join(path, f"{filename}") + directed = data[name]["directed"] + G = _load_graph( + file_path, url=data[name]["url"], directed=directed, verbose=verbose + ) + if verbose: + print(f"Successfully loaded {name}") + print("================================") + print(data[name]["description"]) + return G
+ + + +
+[docs] +def list_sample_graphs(): + """ + make a list of available real world graphs on datasets + """ + + path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + path = os.path.join(path, "netsci/datasets") + # names = [f[:-7] for f in os.listdir(path) if f.endswith('.txt.gz')] + # read json file sample_graphs.json + + with open(os.path.join(path, "sample_graphs.json"), "r") as f: + data = json.load(f) + + return data
+ + + +
+[docs] +def generate_power_law_dist(N: int, a: float, xmin: float): + """ + generate power law random numbers p(k) ~ x^(-a) for a>1 + + Parameters + ----------- + N: + is the number of random numbers + a: + is the exponent + xmin: + is the minimum value of distribution + + Returns + ----------- + value: np.array + powerlaw distribution + """ + + # generates random variates of power law distribution + vrs = powerlaw.Power_Law(xmin=xmin, parameters=[a]).generate_random(N) + + return vrs
+ + + +
+[docs] +def generate_power_law_dist_bounded( + N: int, a: float, xmin: float, xmax: float, seed: int = -1 +): + """ + Generate a power law distribution of floats p(k) ~ x^(-a) for a>1 + which is bounded by xmin and xmax + + parameters : + N: int + number of samples in powerlaw distribution (pwd). + a: + exponent of the pwd. + xmin: + min value in pwd. + xmax: + max value in pwd. + """ + + from numpy.random import rand, randint + from numpy import power + + data = np.zeros(N) + x0p = power(xmin, (-a + 1.0)) + x1p = power(xmax, (-a + 1.0)) + alpha = 1.0 / (-a + 1.0) + + for i in range(N): + r = rand() + data[i] = power((x1p - x0p) * r + x0p, alpha) + return data
+ + + +
+[docs] +def generate_power_law_discrete( + N: int, a: float, xmin: float, xmax: float, seed: int = -1 +): + """ + Generate a power law distribution of p(k) ~ x^(-a) for a>1, + with discrete values. + + Parameters: + ----------- + N: int + Number of samples in the distribution. + a: float + Exponent of the power law distribution. + xmin: float + Minimum value in the power law distribution. + xmax: float + Maximum value in the power law distribution. + seed :int, optional + Seed for reproducibility. Defaults to -1. + + Returns: + ------- + np.array + Power law distribution with discrete values. + """ + + if seed != -1: + np.random.seed(seed) + + if seed != None: + np.random.seed(seed) + + X = np.zeros(N, dtype=int) + x1p = power(xmax, (-a + 1.0)) + x0p = power(xmin, (-a + 1.0)) + alpha = 1.0 / (-a + 1.0) + + for i in range(N): + r = np.random.rand() + X[i] = int(np.round(power(((x1p - x0p) * r + x0p), alpha))) + + # sum of degrees should be positive + from random import randint + + if (np.sum(X) % 2) != 0: + i = randint(0, N - 1) + X[i] = X[i] + 1 + + return X
+ + + +
+[docs] +def tune_min_degree(N: int, a: float, xmin: int, xmax: int, max_iteration: int = 100): + """ + Find the minimum degree value of a power law graph that results in a connected graph + """ + + for i in range(max_iteration): + seq = generate_power_law_discrete(N, a, xmin, xmax, seed=i) + if np.sum(seq) % 2 != 0: + raise ValueError("The sum of degrees should be even") + G = nx.configuration_model(seq) + G.remove_edges_from(G.selfloop_edges()) + G = nx.Graph(G) + seq1 = np.asarray([deg for (node, deg) in G.degree_iter()]) + avg_degree = np.mean(seq1) + + if nx.is_connected(G): + break + if i == (max_iteration - 1): + raise ValueError("Unable to find a connected graph with the given parameters") + return avg_degree, G
+ + + +
+[docs] +def make_powerlaw_graph( + N: int, + a: float, + avg_degree: int, + xmin: int = 1, + xmax: int = 10000, + seed: int = -1, + xtol=0.01, + degree_interval=5.0, + plot=False, + **kwargs, +): + """ + make a powerlaw graph with the given parameters + + Parameters + ---------- + N: + number of nodes + a: float + exponent of the power law distribution + avg_degree: + expected average degree + xmin: int, optional + minimum value in the power law distribution. Default is 1. + xmax: int, optional + maximum value in the power law distribution. Default is 10000. + seed: int, optional + Seed for reproducibility. Default is -1. + xtol: float, optional + tolerance for bisection method. Default is 0.01. + degree_interval: float, optional + interval for bisection method. Default is 5.0. + plot: bool, optional + If True, plot the power law distribution. Default is False. + kwargs: obtional + additional keyword arguments for plot_pdf function. + + """ + + color = kwargs.get("color", "k") + linestyle = kwargs.get("linestyle", "-") + lw = kwargs.get("lw", 2) + + xmin_tuned, G = bisect( + lambda x: tune_min_degree(N, a, x, xmax) - avg_degree, + xmin, + xmin + degree_interval, + xtol=xtol, + ) + sample_seq = np.asarray([deg for (node, deg) in G.degree_iter()]) + avg_degree = np.mean(sample_seq) + + fit = powerlaw.Fit(sample_seq, discrete=True) + if plot: + ax = fit.plot_pdf(linewidth=2, label=str("pdf, %.2f" % a)) + fit.power_law.plot_pdf(c=color, linestyle=linestyle, lw=lw, ax=ax) + + return { + "G": G, + "avg_degree": avg_degree, + "xmin_tuned": xmin_tuned, + "fit": fit, + "ax": ax, + }
+ + + +
+[docs] +def generate_power_law_discrete_its( + alpha: float, k_min: int, k_max: int, size: int = 1 +): + """ + Generates the power law discrete distributions using the inverse transform sampling method. + + References + ----------- + + Devroye, L. (1986). "Non-Uniform Random Variate Generation." Springer-Verlag, New York. + + Parameters + ---------- + alpha : + Power law exponent. + k_min : + Minimum degree. + k_max : + Maximum degree. + size : + Number of samples to generate. Defaults to 1. + + Returns + ------- + np.array: + Array of generated power law discrete distributions. + + + Examples + --------- + + >>> gamma = 2.5 # Power-law exponent + >>> k_min = 1 # Minimum value of k + >>> k_max = 1000 # Maximum value of k + >>> size = 10000 # Number of samples + >>> samples = power_law_discrete(gamma, k_min, k_max, size) + """ + + # Calculate the normalization constant + norm = zeta(alpha, k_min) - zeta(alpha, k_max + 1) + + # Generate uniform random numbers + u = np.random.random(size=size) + + # Initialize the result array + result = np.zeros(size, dtype=int) + + # Inverse transform sampling + for i in range(size): + cdf = 0 + for k in range(k_min, k_max + 1): + cdf += (k**-alpha) / norm + if u[i] <= cdf: + result[i] = k + break + + return result
+ + + +
+[docs] +def get_sample_dataset_path(): + path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + path = os.path.join(path, "netsci/datasets/") + return path
+ +
+ +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/_sources/examples/chap_02.ipynb.txt b/_sources/examples/chap_02.ipynb.txt new file mode 100644 index 0000000..bd2facf --- /dev/null +++ b/_sources/examples/chap_02.ipynb.txt @@ -0,0 +1,848 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 2](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_02.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Graph Theory**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import netsci\n", + "import numpy as np\n", + "import networkx as nx\n", + "from tqdm import tqdm\n", + "import matplotlib.pyplot as plt\n", + "from netsci.plot import plot_graph\n", + "from netsci.analysis import find_sap, find_hamiltonian_path" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degrees: {0: 2, 1: 2, 2: 2, 3: 5, 4: 3, 5: 1, 6: 3, 7: 2}\n", + "Average degree: 2.5\n", + "Adjacency matrix:\n", + " [[0 0 0 1 1 0 0 0]\n", + " [0 0 1 0 0 0 1 0]\n", + " [0 1 0 1 0 0 0 0]\n", + " [1 0 1 0 0 1 1 1]\n", + " [1 0 0 0 0 0 1 1]\n", + " [0 0 0 1 0 0 0 0]\n", + " [0 1 0 1 1 0 0 0]\n", + " [0 0 0 1 1 0 0 0]]\n", + "Edges: [(0, 3), (0, 4), (1, 2), (1, 6), (2, 3), (3, 5), (3, 6), (3, 7), (4, 6), (4, 7)]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make a random graph with n nodes and p% probability of edge connection\n", + "num_nodes = 8\n", + "probability = .4\n", + "seed = 2\n", + "graph = nx.gnp_random_graph(num_nodes, probability, seed=2, directed=False)\n", + "\n", + "# degree distribution\n", + "degrees = dict(graph.degree())\n", + "print(\"Degrees:\", degrees)\n", + "\n", + "# calculate the average degree\n", + "average_degree = np.mean(list(degrees.values()))\n", + "print(\"Average degree:\", average_degree)\n", + "\n", + "# adjacency matrix\n", + "adjacency_matrix = nx.to_numpy_array(graph).astype(int)\n", + "print(\"Adjacency matrix:\\n\", adjacency_matrix)\n", + "\n", + "# edges\n", + "edges = list(graph.edges())\n", + "print(\"Edges:\", edges)\n", + "\n", + "# plot the graph\n", + "plot_graph(graph, node_size=1000,\n", + " node_color='darkred',\n", + " edge_color='gray',\n", + " figsize=(5, 5),\n", + " title=\"Random Graph with {} nodes and {}% edge connection\".format(num_nodes, probability*100))\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shortest path from 3 to 0 : [3, 0]\n", + "Diameter: 3\n", + "Average shortest path length: 1.82\n" + ] + } + ], + "source": [ + "# shortest path, find distance between two nodes\n", + "source = np.random.randint(0, len(graph)) # random source node\n", + "target = np.random.randint(0, len(graph)) # random target node\n", + "shortest_path = nx.shortest_path(graph, source, target)\n", + "print(\"Shortest path from\", source, \"to\", target, \":\", shortest_path)\n", + "\n", + "# diameter : maximal shortest path length\n", + "if nx.is_connected(graph):\n", + " diameter = nx.diameter(graph)\n", + " print(\"Diameter:\", diameter)\n", + " \n", + "# average shortest path length\n", + "avg_shortest_path_length = nx.average_shortest_path_length(graph)\n", + "print(f\"Average shortest path length: {avg_shortest_path_length:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAGpCAYAAABoEYRXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB34klEQVR4nO3deXxU1dnA8d+dTPZ9I4Q1yJKwhC1AQEBZRFCQxYoCraLFreLSvvZVwa1WAbW+2paitRVbtaDgliBSlU0EJGyyI4EgWyAJWUlC1smc948wIyELgdzJncw8388nH8idO+c+M5mZZ+655zxHU0ophBBCCOHSTEYHIIQQQgjHk4QvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbuKKE/+9//xtN0+w/ZrOZ6Ohopk2bxpEjRxwV42X94Q9/QNM0w45/qW+//bbG8+Tl5UVkZCRDhw7l6aef5sSJE/Xed+/evcyaNYvOnTvj6+uLr68vXbt25YEHHmDHjh3N+Chqi4mJYcKECc16TNtr7vjx4/ZtS5cu5c9//nOtfY8fP46mabz22mtXfby0tDTuvPNOOnTogK+vL507d+Z//ud/yM3Nveo2HSEmJoa7777b6DAcoq6/eWM888wzaJpGr1696rx9zZo1DBkyBD8/PyIiIrj77rs5e/Zso9v/6KOP6Nu3Lz4+PrRp04bf/va3FBcX19jn1KlT3HzzzQQFBdG9e3eSk5NrtfPxxx8THh5Odnb2FT2+q2X7PPr222+b5XjuqqSkhD/84Q91Ps9X+5rW21Wd4f/rX/9iy5YtrFmzhocffpgVK1YwbNgw8vPz9Y6vRZs/fz5btmxh/fr1LF68mBEjRvDuu+/SvXt3lixZUmv/t99+m4SEBLZu3cpjjz3GypUr+fLLL/ntb3/LgQMHGDhwIEePHjXgkRhn/PjxbNmyhejoaPu2+hJ+U2VnZzN48GA2b97Miy++yKpVq5g9ezb//Oc/ueGGG7BarbofU+hj9+7dvPbaa0RFRdV5+4YNG7jpppuIiooiOTmZv/zlL6xZs4bRo0dTXl5+2faXLFnC9OnTGThwIP/97395/vnn+fe//82tt95aY7+ZM2dy7tw5PvnkE6ZMmcLtt99e4z177tw5HnvsMV577TUiIyOb9qCFUykpKeGFF16oM+HX9TlmCHUF/vWvfylAbd++vcb2F154QQHq3XffvZLmdPP888+rK3woDrV+/XoFqI8//rjWbbm5uapfv37KbDarvXv32rdv2rRJmUwmdcstt6jy8vI6212+fLk6ffp0g8c+f/5804JvQMeOHdX48eMd1n5jjR8/XnXs2LHW9mPHjilA/elPf7qqdv/5z38qQK1Zs6bG9vnz5ytA/fDDD1fVriN07NhRzZw50+gwHML2OXPs2LFG7V9ZWan69u2rHn30UXX99dernj171tpn4MCBqkePHqqystK+bfPmzQpQb775ZoPtWywWFR0drW688cYa25csWaIAtWrVKqVU9XtP0zT1/fff2/fp2rWreuutt+y/P/DAA2rEiBGNelx6sX0erV+/vlmP626ys7MVoJ5//nmjQ6mXLtfwBwwYAEBWVpZ9W1lZGY8//jh9+/YlODiYsLAwhgwZUmcXl6ZpPPzww3zwwQd0794dPz8/+vTpw8qVK2vt++WXX9K3b1+8vb3p1KlTvd23ZWVlzJkzh06dOuHl5UXbtm2ZPXs2BQUFNfazdVOvXLmSfv364evrS/fu3e3H/ve//0337t3x9/dn0KBBTe5WDwsL4+2338ZisfDGG2/Yt8+fPx8PDw/efvttvLy86rzv1KlTadOmjf33u+++m4CAAPbt28eNN95IYGAgo0ePBmD16tVMmjSJdu3a4ePjQ5cuXXjggQfIycmp0abtcsiuXbu49dZbCQoKIjg4mF/96lf1djl+9dVX9O/fH19fX+Li4nj33Xcv+7gHDhzI+PHja2yLj49H0zS2b99u3/bZZ5+haRr79u0DaneFjRgxgi+//JITJ07UuGxyqddff51OnToREBDAkCFDSElJuWyMnp6eAAQHB9fYHhISAoCPj0+D97c9lwcOHGD69OkEBwcTFRXFr3/9a86dO1dj38a+PisrK3niiSdo3bo1fn5+DBs2jG3bttV5/MzMTB544AHatWuHl5cXnTp14oUXXsBisdTY76233qJPnz4EBAQQGBhIXFwcc+fOvdzTwwsvvEBiYiJhYWEEBQXRv39/Fi9ejLpk/S3be6oxr5OUlBSGDh1q7yafM2cOlZWVl43lYi+//DJ5eXnMmzevzttPnz7N9u3bufPOOzGbzfbt1157Ld26dePzzz9vsP2UlBQyMjK45557amyfOnUqAQEB9vtXVFSglMLf39++T0BAAGVlZQB8//33vP/++7z99ttX9PgAjhw5wowZM2jVqhXe3t50796dRYsW1drv0KFDjBs3zn7Z4sEHH6SoqKjWfkop5s+fT8eOHfHx8WHAgAGsXr2aESNGMGLEiBr7FhYW8vvf/77Ga/W3v/0t58+fb1TsX331FaNHjyY4OBg/Pz+6d+/OggULauyzYsUK++WWwMBAxowZw5YtW2rscyXvryvJKY19bgsKCnj88ce55ppr8Pb2plWrVtx8880cOnSI48eP23tsXnjhBfvnku2yW31d+u+++y59+vTBx8eHsLAwpkyZwo8//lhjH9vnfFpaGjfffDMBAQG0b9+exx9/vFG9UzVcybeD+s7w//a3vylAffrpp/ZtBQUF6u6771YffPCBWrdunfrqq6/U73//e2UymdR7771X4/6AiomJUYMGDVLLly9Xq1atUiNGjFBms1kdPXrUvt+aNWuUh4eHGjZsmPrss8/Uxx9/rAYOHKg6dOhQ4wzfarWqsWPHKrPZrJ599ln1zTffqNdee035+/urfv36qbKyMvu+HTt2VO3atVO9evVSH374oVq1apVKTExUnp6e6rnnnlNDhw5Vn332mfr8889Vt27dVFRUlCopKWnweWroDN8mOjpade7cWSlVfQbh6+urhgwZ0mC7l5o5c6by9PRUMTExasGCBWrt2rXq66+/Vkop9dZbb6kFCxaoFStWqA0bNqj33ntP9enTR8XGxqqKigp7G7bekY4dO6r//d//VV9//bV6/fXX7c/VxfvanqsePXqo999/X3399ddq6tSpClAbNmxoMNannnpKBQQE2NvLzMxUgPL19VXz5s2z7/eb3/xGRUVF2X+/9GzvwIEDaujQoap169Zqy5Yt9h+lfj7Dj4mJUePGjVNJSUkqKSlJxcfHq9DQUFVQUNBgjAUFBapDhw7quuuuU/v371dFRUVqw4YNqkOHDuqWW2657N/D9lzGxsaq5557Tq1evVq9/vrrytvbW91zzz32/a7k9Tlz5kylaZr63//9X/XNN9+o119/XbVt21YFBQXVOMPPyMhQ7du3Vx07dlRvv/22WrNmjXrxxReVt7e3uvvuu+37ffjhhwpQjzzyiPrmm2/UmjVr1N///nf16KOPXvbx3X333Wrx4sVq9erVavXq1erFF19Uvr6+6oUXXqixX2NfJwcOHFB+fn6qR48e6sMPP1TJyclq7Nix9vdzY87wDxw4oLy9vdWXX36plFJ1nuF/9dVXCrDvc7HbbrtNRUdHN3iMv//97wpQBw4cqHXbgAEDarxv4+Li1F133aXy8vLU559/rkwmk9q6dauqqKhQPXv2VH/84x8v+5jqeozBwcEqPj5evf/+++qbb75Rjz/+uDKZTOoPf/iDfb/MzEzVqlUr1bZtW/Wvf/1LrVq1Sv3yl7+0P58Xn+HPmTNHAer+++9XX331lfrnP/+pOnTooKKjo9X1119v3+/8+fOqb9++KiIiQr3++utqzZo16i9/+YsKDg5Wo0aNUlartcHY33nnHaVpmhoxYoRaunSpWrNmjXrzzTfVQw89ZN/H1lNy4403qqSkJLVs2TKVkJCgvLy81MaNG+37Nfb9pVTjc0pjn9vCwkLVs2dP5e/vr/74xz+qr7/+Wn366afqscceU+vWrVNlZWX219msWbPsn0tpaWlKqbp7rWw9h9OnT1dffvmlev/999U111yjgoOD1eHDh+37zZw5U3l5eanu3bur1157Ta1Zs0Y999xzStO0Wu+9y7mqhJ+SkqIqKytVUVGR+uqrr1Tr1q3VddddV6O77FIWi0VVVlaqWbNmqX79+tUMAlRUVJQqLCy0b8vMzFQmk0ktWLDAvi0xMVG1adNGlZaW2rcVFhaqsLCwGgnf9sS/+uqrNY6zbNkyBah//OMf9m0dO3ZUvr6+Kj093b5t9+7dClDR0dE1usiTkpIUoFasWNHg89SYhJ+YmKh8fX3tjxVQ06ZNq7Wf7Xmz/Vz8Bps5c2ajLqVYrVZVWVmpTpw4oQCVnJxsv832Jvrd735X4z62N+F//vMf+7aOHTsqHx8fdeLECfu20tJSFRYWph544IEGY1izZo0C1HfffaeUUuo///mPCgwMVA899JAaOXKkfb+uXbuqGTNm2H+v641yuS79+Ph4ZbFY7Nu3bdumAPXhhx82GKNSSp05c0YNGTJEAfafqVOn1kjC9bE9l5e+7h566CHl4+Nj/9s19vX5448/Nvi3uTjhP/DAAyogIKDG30YppV577bUayerhhx9WISEhl30sl1NVVaUqKyvVH//4RxUeHl7jddnY18kdd9yhfH19VWZmpn2bxWJRcXFxjUr4VVVVKjExUU2fPt2+ra6Eb3u+bF8ML3b//fcrLy+vBo8zb948BaiMjIxat914442qW7du9t83b96sWrdurQBlMpnUc889p5RS6sUXX1Q9evSo93JdQ8aOHavatWunzp07V2P7ww8/rHx8fFReXp5SSqknn3xSaZqmdu/eXWO/MWPG1Ej4eXl5ytvbW91xxx019tuyZYsCaiT8BQsWKJPJVOsk75NPPqlxOaMuRUVFKigoSA0bNqzeLwZVVVWqTZs2Kj4+XlVVVdW4b6tWrdS1115r39bY95dSjc8pjX1u//jHPypArV69ut7H21CX/qWfY/n5+crX11fdfPPNNfY7efKk8vb2rvEZaPucX758eY19b775ZhUbG1tvPHW5qi79wYMH4+npSWBgIOPGjSM0NJTk5OQa3WVQPRp16NChBAQEYDab8fT0ZPHixbW6LABGjhxJYGCg/feoqChatWplH9F+/vx5tm/fzq233lqjazUwMJBbbrmlRlvr1q0DqDWKeerUqfj7+7N27doa2/v27Uvbtm3tv3fv3h2o7j728/Ortb2hUfaNpS7pBq1PQkICnp6e9p//+7//q7XPL37xi1rbzp49y4MPPkj79u3tz33Hjh0B6nz+f/nLX9b4/fbbb8dsNrN+/foa2/v27UuHDh3sv/v4+NCtW7fLPie2bts1a9YA2LsPx40bx/fff09JSQmnTp3iyJEj3HDDDQ22dTnjx4/Hw8PD/nvv3r2By//d8vPzmTRpEoWFhSxZsoTvvvuON998k02bNjFx4sRaXeP1mThxYo3fe/fuTVlZmX1EeGNfn7bnvr6/zcVWrlzJyJEjadOmDRaLxf5z0003AdWD1gAGDRpEQUEB06dPJzk5udYlnoasW7eOG264geDgYDw8PPD09OS5554jNze31mj3xrxO1q9fz+jRo2sMtPPw8OCOO+5oVDyvv/46R44cafQAzvpm8jR2hk9j7n/ttddy8uRJDh06RF5eHi+88AJHjhxh/vz5vP3225jNZp5//nk6dOhA69atefjhh+1d/nUpKytj7dq1TJkyBT8/vxp/25tvvpmysjL75ar169fTs2dP+vTpU6ONGTNm1Pg9JSWF8vJybr/99hrbBw8eTExMTI1tK1eupFevXvTt27fGsceOHXvZkf/ff/89hYWFPPTQQ/U+d6mpqZw5c4Y777wTk+nndBQQEMAvfvELUlJSKCkpqXGf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8eLFFBYW8v7779u7W6H6GveiRYt45JFH6N+/P/fffz89e/bEZDKRkZFhP0O4tPu+LnFxcXTu3JmnnnoKpRRhYWF88cUXDXbbfvbZZ5jNZsaMGcOBAwd49tln6dOnT63rfE2RkJBAaGgo33zzTY0pTjfccAMvvvii/f+XEx8fz2effcZbb71FQkICJpPJ3uPUFLNnz2bJkiWMGTOGp556ivbt27N//35eeukloqKial1Lv1qNfX12796dX/3qV/z5z3/G09OTG264gf379/Paa6/Veh388Y9/ZPXq1Vx77bU8+uijxMbGUlZWxvHjx1m1ahV///vfadeuHffddx++vr4MHTqU6OhoMjMzWbBgAcHBwQ32fI0fP57XX3+dGTNmcP/995Obm8trr71W60vllXjmmWdYsWIFo0aN4rnnnsPPz49FixY1arpXSEhInV9GQ0JC6vyi+sorrzBmzBimTp3KQw89xNmzZ3nqqafo1atXjdfiiRMn6Ny5MzNnzmTx4sVAdQ/cq6++yp133skDDzzA9OnTOXLkCE888QRjxoxh3Lhxdcb4P//zPyQmJtZ4D40dO5bHH3+cIUOGEBAQwF//+lfuvffeBh/rX/7yF4YNG2a/xBQTE0NRURFpaWl88cUX9iT029/+lnfffZfx48fbX7NLlizh0KFDNdoLCwvjf/7nf1iwYAGhoaFMmTKF9PR0XnjhBaKjo2tcS//tb3/Lp59+ynXXXcfvfvc7evfujdVq5eTJk3zzzTc8/vjjJCYm1hl3QEAA//d//8e9997LDTfcwH333UdUVBRpaWns2bOHv/3tb5hMJl599VV++ctfMmHCBB544AHKy8v505/+REFBAS+//HKDz01TXclzu2zZMiZNmsRTTz3FoEGDKC0tZcOGDUyYMME+XqBjx44kJyczevRowsLCiIiIqPNLUUhICM8++yxz587lrrvuYvr06eTm5vLCCy/g4+PD888/75gHfCUj/OqblqdU9SjcDh06qK5du9pHSL/88ssqJiZGeXt7q+7du6t//vOfdRbJAdTs2bNrtVlXcZEVK1ao3r17Ky8vL9WhQwf18ssv19lmaWmpevLJJ1XHjh2Vp6enio6OVr/5zW9Ufn5+rWPUVUymrpgaW9jFNkrf9mM2m1V4eLgaMmSImjt3rjp+/Hi99929e7e65557VKdOnZS3t7fy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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# directed graph\n", + "graph_dir = nx.to_directed(graph)\n", + "plot_graph(graph_dir, \n", + " node_size=1000,\n", + " node_color='darkred',\n", + " edge_color='gray',\n", + " figsize=(5, 5),\n", + " seed=1,\n", + " title=\"Random DGraph with {} nodes and {}% edge connection\".format(num_nodes, probability*100));" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Weighted adjacency matrix:\n", + " [[0 9 4 9 9]\n", + " [9 0 1 6 4]\n", + " [4 1 0 0 6]\n", + " [9 6 0 0 8]\n", + " [9 4 6 8 0]]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# weighted graph\n", + "seed = 3\n", + "np.random.seed(seed) # to fix the plot\n", + "\n", + "num_nodes = 5\n", + "probability = 0.8\n", + "graph_w = nx.erdos_renyi_graph(num_nodes, probability, seed=seed)\n", + "\n", + "for (u,v) in graph_w.edges():\n", + " graph_w[u][v]['weight'] = np.random.randint(1, 10)\n", + "\n", + "# plot the weighted graph\n", + "edge_labels = nx.get_edge_attributes(graph_w, 'weight')\n", + "\n", + "plot_graph(graph_w, \n", + " with_labels=True, \n", + " node_color='lightblue', \n", + " node_size=700, \n", + " font_size=12,\n", + " edge_labels=edge_labels, \n", + " figsize=(5, 5), \n", + " title=\"Weighted Random Network\")\n", + "\n", + "weighted_adjacency_matrix = nx.to_numpy_array(graph_w, weight='weight').astype(int)\n", + "print(\"Weighted adjacency matrix:\\n\", weighted_adjacency_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "self avoiding path" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A->B->E->F\n", + "A->C->F\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a graph\n", + "G = nx.Graph()\n", + "edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'F')]\n", + "G.add_edges_from(edges)\n", + "\n", + "# Find all self-avoiding paths from 'A' to 'F'\n", + "start_node = 'A'\n", + "target_node = 'F'\n", + "all_saps = list(find_sap(G, start_node, target_node))\n", + "\n", + "for path in all_saps:\n", + " print(\"->\".join(path))\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Hamiltonian path is a path in a graph that visits each vertex exactly once." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hamiltonian Path found: (1, 2, 3, 4, 5, 6)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example usage\n", + "G = nx.Graph()\n", + "G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 1)])\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "path = find_hamiltonian_path(G)\n", + "if path:\n", + " print(\"Hamiltonian Path found:\", path)\n", + "else:\n", + " print(\"No Hamiltonian Path found\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hamiltonian Path found: (0, 1, 2, 4, 3)\n" + ] + } + ], + "source": [ + "# hamiltonian path of weighted graph:\n", + "path = find_hamiltonian_path(graph_w)\n", + "if path:\n", + " print(\"Hamiltonian Path found:\", path)\n", + "else:\n", + " print(\"No Hamiltonian Path found\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Adjacency List" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adjacency matrix\n", + " [[0 1 1 0 0 0]\n", + " [1 0 0 1 1 0]\n", + " [1 0 0 0 0 1]\n", + " [0 1 0 0 0 0]\n", + " [0 1 0 0 0 1]\n", + " [0 0 1 0 1 0]]\n", + "adjacency list\n", + " {1: [2, 3], 2: [1, 4, 5], 3: [1, 6], 4: [2], 5: [2, 6], 6: [3, 5]}\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPwAAAD7CAYAAABOrvnfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAifklEQVR4nO3deXxTZb4/8M9J2lDSlu5pqW1pWWQV2iKWXazgADOIAsnoKDIqsjgdRVFHQcVlvNxRUbHggFfRq4ha3JD5gbSOQIsiIJaODoPMj55CKbTpviQlSXOe+0cJw9KmSXtOzknO9/168RKb9Mm3JZ/k2fIcjjHGQAhRBY3cBRBCfIcCT4iKUOAJUREKPCEqQoEnREUo8ISoCAWeEBWhwBOiIhR4QlSEAk+IilDgCVERCjwhKkKBJ0RFKPCEqAgFnhAVocAToiJBchdASJsgoMXuhMAYNByHMJ0WQRp6L5ICBZ7IosnmAN9gRaXFBovDecXtocFaJIT2QlqkHn16BctQYWDi6Igr4ksWexuKqxphttrBAXD35HPdbtDrkBEfgVAdvT/1FAWe+AzfYEWJuRGMuQ/65TgAHAeMMkQgLVIvVXmqQIEnPnGsthlHa1p63M6w2DAMiQkXoSJ1opkRIjm+wSpK2AHgaE0LyhqsorSlRjQoIpKy2NtQYm7s8LafD3yHVQvmdXjb6o+24+r00R3edsTciDi9jsb03UC/MSKp4qr2Mbs7dzz0BEZkjb/ka8mDhnR6f8ba252YHCNGiapCgSeSabI5YLbau7xf335pnb6bd4QBMFvtaLI5aMnOSzSGJ5LhG6zgJGqbO98+8Q4Fnkim0mLzaPntf55fAePwZNw5+mo8d+/t+NfhA11+DzvfPvEOdemJJByC0OEOuovpw8Px67sWYvh14xAeGY3Kkzy2bfornr5rHlZseB8Zk6a4/X6Lw4k2QaBtuF6gdXgiiYZzDnxzssbr77M0NeKhm7MRFhGFV7Z93eX9s/vFIjKExvGeopdGIgmhm+8joX0iMHrKNJz85Shs51olexy1osATSWi4HkzXnQ8x50EbPXocFaLAE0mE6bTd+r6Wxgb8sOdrpA0dDl2vEMkeR61o0o5IIkijQWiw1u3E3avL70ds4lUYOHwUwqOicfYkjy/f2YDG2mrkrH61y8cIDabPzXuLAk8kkxDaC6UN1k6X5voNHorvdn6J/I/exzmrBWERkRg6+jo8+GIuBl6T7rZt7nz7xDs0S08k02Rz4Osy72fqPTU1NZZ22nmJ+kNEMn16BcOg14m+245D+6EYFHbvUeCJpDLiI8BxgJgdSY5rb5d4jwJPJBXEnPj2k80eLbF5Kt1Ax111l88D3yYIaDjnQF2rHQ3nHGgTBF+XQHzEarVi9uzZyH3uKQTVnulZY+d7CCUF25EcTpN13eWTl0k6oVR9mpqaMGvWLBw+fBg7duxA9vjRPTvTTsOBnSnFnx9cipp/lWDdunWi9hrUQtLAe3pCqcXhRGmDFScarHRCaQCoq6vDjBkz8MsvvyA/Px/jx7cfbpEWqYdBr/P61No413Pi6r7YuHEj7rvvPiQkJOCpp57ywU8TWCRblqMTStXJbDZj2rRpqKioQH5+PjIzMzu8X096fS+88AKefPJJbNiwAYsXL5bk5whUkgSeTihVp4qKCtx4441oampCQUEBhg8f7tH3eXvlGcYYHnzwQaxfvx5bt27FnDlzxPoRAp7ok3benFD69dYPMHdIIu7IHNjh7XRCqf/geR6TJk1Ca2srCgsLPQ470L4NNzIkGNG9dYgMCe5yuyzHcXjttdcwb948/O53v8PevXt7Wr5qiBp4dyeUXq626iz+98XnEW1IcHu/I+ZGWOxtYpRHJPLLL79g0qRJ0Gq1KCoqwsCBHb+Ai0mj0eC9997DxIkTcfPNN6OkpETyxwwEogbekxNKXTau+hOGXZuFkeMnu72f64RSokz/+Mc/MHnyZERGRqKwsBApKSk+e+xevXrh888/x6BBgzB9+nTwPO+zx/ZXogXedUKpJ3nf++WnOHroeyxatbrL+158QilRloMHD2LKlClISkrCnj170LdvX5/XEB4ejh07diAsLAw33XQTzGazz2vwJ6IF3tMTShtra/DOfz2NO5evQExCokdt0wmlylNYWIipU6di6NCh+OabbxAbGytbLQaDAfn5+WhpacHMmTPR3NwsWy1KJ1rgPT2h9M1nn0Bi2gD86vYFHrdNJ5QqS35+PqZPn44xY8Zg165diIiQf197Wloadu7ciX//+9+YM2cObDZ6vnRElMB7ckIpAOzf9f/ww+4CLH3+Za93SblOKCXy2rZtG2bNmoXs7Gz87W9/Q1hYmNwlXZCeno5t27ahqKgICxYsgEDPlyuIEniLveuwt1oseOv5FZh5592INsTD0tQIS1Mj2hztVyaxNDXinNV9t73Fg8ch0vnwww8xd+5czJ49G5999hl69+4td0lXmDJlCrZs2YK8vDwsW7ZM1E/pBQJRNt7Utdqx51St2/uYT5dj6dQst/cZc+Ov8Pj6dzq9fUpKDKJ767pVI+mZTZs2YeHChbjrrrvw1ltvIShI2VufN27ciCVLluCFF17AihUr5C5HMUT5V/Pk5NDIuDg8+7+fXPH1z/9nHY4e+h4r39yMPlHRPX4cIr7c3Fw88MADWLp0KdatWweNH5wjt3jxYlRVVWHlypUwGAxYuHCh3CUpgiiB9+TkUF2vkCuuEAoAuz/Pg0ar6fC27jwOEdfq1auxYsUKPPLII3jxxRf96hNqTz31FCorK7F48WLExcVh9uzZcpckO1Feql0nlEqJTij1LcYYVq5ciRUrVuCZZ57xu7AD7Vtwc3NzMWfOHNx2220oKiqSuyTZifbhmZKqRrcnlPYEB6B/pB6j6Fgjn2CM4aGHHsLatWvx0ksv4ZFHHpG7pB6x2WyYMWMGiouLUVhYiGuuuUbukmQj2ltmWqRekrAD7evwqRHKmxEORE6nE4sWLcLatWvxxhtv+H3Ygf9swU1NTcX06dNx8uRJuUuSjWiBl+qEUsHpxJF9ezFt8kQcOnRI5NbJxdra2nDXXXdh06ZNePfdd7F06VK5SxJNREQEdu7ciZCQENx0002oqZHu+GwlE3VQ7DqhVExBQVpMHZYGh8OBrKwsLFq0SLX/WFKy2WwwmUzIy8vDRx99hAULPN8J6S8SEhKwa9cuNDQ0YObMmWhp6fmZDf5G1MCH6oIwyiDuODvdEIHJ47Jw6NAhvP7668jLy8PgwYOxYcMGOJ20EUcMVqsVt9xyC3bs2IEvvvgCRqNR7pIkM3DgQOzcuRPHjh3D3LlzYbfb5S7Jp0Sf9k6L1GNYrDjbLYfFhiP1/DFXQUFByMnJwfHjxzF79mwsXboUWVlZOHDggCiPpVbNzc2YOXMmioqKsGPHDvz617+WuyTJZWZm4osvvsCePXtwzz33qGoLriTrXENiwpERHwENB6/H9BwADQdkxkdgSMyVLxwGgwGbNm3Cd999B0EQMHbsWCxcuBDV1dWi1K4m9fX1mDp1KoqLi5Gfn4/s7Gy5S/KZ7OxsvP/++9iyZQseeeQR1WzBlfTacp6eWgv854RSb06tdTqdePPNN7FixQpwHIc///nPWLx4MbRa2qDTFbPZjJtuugmnT592e9hkoFu/fj1ycnLwl7/8BY899pjc5UjOJxeTlPpc+urqajzxxBN4++23kZmZiXXr1mHcuHFilB6QKioqMHXqVDQ0NKCgoAAjRoyQuyRZPf3003j++efxzjvv4Pe//73c5UiL+ZjD6WT1rXZWa7Wx+lY7czidorX9/fffs9GjRzMA7O6772ZVVVWitR0oSktLWVpaGktOTmbHjx+XuxxFEASBLVq0iGm1WrZ9+3a5y5GUzwMvtba2NrZhwwYWFRXFIiMjWW5uLnM4HHKXpQjHjh1jSUlJbMCAAaysrEzuchSlra2N3Xrrrax3797s22+/lbscyQRc4F2qq6vZfffdxziOY6NGjWL79u2TuyRZlZSUMIPBwIYNG8bOnDkjdzmK1NrayiZPnsyioqLYzz//LHc5kgjYwLscPHiQjRkzhgFgCxYsYJWVlXKX5HMHDx5kUVFRLCMjg1VXV8tdjqLV19ezkSNHsqSkJHbq1Cm5yxFdwAeeMcacTid78803WUxMDIuIiGBr165VTTe/sLCQhYeHs3HjxrH6+nq5y/ELFRUVLDU1lQ0ZMoTV1NTIXY6oVBF4l5qaGrZkyRLGcRwbOXIkKywslLskSeXn57PevXuzG264gTU3N8tdjl/55ZdfWGxsLMvKymItLS1ylyMaVQXe5dChQ+y6665jANj8+fPZ2bNn5S5JdNu2bWM6nY7NnDmTWa1WucvxS4cOHWKhoaFsxowZzG63y12OKFQZeMbau/lvvfUWi42NZX369GGvvvpqwHTzP/zwQ6bVatncuXOZzWaTuxy/lp+fz4KDg9n8+fOZU8QlZLmoNvAutbW17P7772ccx7ERI0awvXv3yl1Sj7z99tuM4zg2f/78gHkBk9uWLVsYAPboo4/KXUqPqT7wLocPH2Zjx45lANgdd9zhl0tXubm5DABbsmRJQLwbKcnatWsZAPbyyy/LXUqPUOAv4nQ62aZNm1hcXBwLDw9na9as8Zux2+rVqxkAtnz5ciYIgtzlBKQnnniCAWDvvfee3KV0GwW+A3V1dSwnJ4dpNBo2fPhwtnv3brlL6pQgCGzlypUMAFu1ahWFXUKCILB77rmHBQUFsR07dshdTrdQ4N0oLi5m48ePZwDYbbfdxk6fPi13SZcQBIEtW7aMAWAvvvii3OWogsPhYLNmzWJ6vZ7t379f7nK8RoHvgtPpZO+++y4zGAwsLCyMvfTSS4ro5re1tbH77ruPAWDr16+XuxxVsVgsbMKECSw6OpodPXpU7nK8QoH3UH19PXvggQeYRqNhQ4cOZX//+99Fabc7nx50OBzsjjvuYBqNhr377rui1EG8U1dXx4YPH86Sk5NZeXm53OV4zCefhw8kJSUlyMnJwb59+2AymbBmzRokJSV51UZPzgew2Wy4/fbbsX37dnzwwQcwmUw9+nlI91VUVGD8+PEICwtDUVERoqPdXypNCSjw3cAYw+bNm/Hoo4+ipaUFTz/9NJYtWwadzv2FLnt6AlBrayvmzJmD3bt345NPPsFvfvMbEX8q0h3Hjh3DxIkTMXjwYBQUFECv18tdklsU+B5obGzEM888g9zcXAwaNAi5ubmYOnVqh/flG6woMTeCMfdBvxwHgOOAwX16Yeltc3Do0CFs27at08chvnfgwAFkZ2cjOzsbn3/+udsr67YJAlrsTgiMQcNxCNP59hJqFHgR/PTTT8jJyUFhYSHmzZuHV155BcnJyRduP1bbjKM1PT8D/dO/vor7jbMxYcKEHrdFxPXVV19h1qxZmD9/Pt5+++1LrsMn9RFv3qDAi4QxduEE1KamJjz55JN4+OGHcabVieKqRtEeJzM+4sLR3URZNm/ejPnz5+Pxxx/H6tWrJT/EtTso8CJramrCs88+i7Vr1+La8RPw2MYtQAddtp++34fCLz/FseIfUFt5BqHhERgwYiSM9z+MASNGdtq+hgOmpcZJ9oQgPfPKK69g+fLleHPrNsSNHNPtIdwoQwTSJHhhp8BL5J///CcKjp/GVVcPg7aDMd3LDy5Cc0M9xk3/DZIHXI2mulp8+c5GnPhnCZ56awuuGTuxw3Y5AHF6HSYmx0j8E5Dueu2DT5By7QQwxnp0ie1hsWEYEhMuYmUUeMk02Rz4uqzza+A11tYgIib2kq+1WizI+dV4JA8ajGfeyXPb/tTUWMnHe8R7fINV0UM46hdKhG+wuh23XR52AOgdGoqkAVej9uwZt21z59sfFS/udfxIz1jsbSgxuw/7vw4fwKcbc3H8yGE4bDZEJ/TFlNnzYLz/oQ7vf8TciDi9TrQhHAVeIpUWm1djNwCwNDeh9OhPuGas+1l4dr79Ud2ujkihuKp92bUzRds/w+t/egDjps/CH/97LUL0oagqL0OduarT72GsvV2xhnAUeAk4BKHD5ZeuvPXcCtharZi7+MEu72txONEmCD5dwyWda7I5YLZ2fiXa2qqz2LDqMUz77XwsWrX6wtc9eXE3W+1osjlEGcLRs0UCFrv3Yf9w7Yso3P4Zfv/4M25n6S/W0o3HIdJwDeE68/etW3DOasUtC//gdduuIZwYKPASELycB81btwaf/PU1/G7Z45h55z2SPQ6RTldDuKM/HEBYRBQqSv8/lt8yFcbhybh7/DXYuOpPsLY0u23bNYQTAwVeAhovlmLy1q3Bx+vW4Lc5yzF3yQOSPQ6RjidDuNqqs7Cfa8WaZYswYcZsrNr0MWbfuxR7tm3FC4vu7PJy1a4hXE/RGF4CYTrPLle99Y1X8fG6NZi3dBlMOcslexwiLU+GcExgsNvO4Y4/PIE5i/4IABiRNR5BwTq8819P4x/7izBq/GS3bbTYnYgM6dl7NL3DSyBIo0FosPswfrlpAz56/SVkTLoBo6+/EcePHL7kT1dCg337oQvSOU+GVuGRUQCA9IlTLvl65qQbAAD80Z9EeZyu0Du8RBJCe6G0wdrpuO6H3QUAgOKi3Sgu2n3F7Z8e63wtnjvfPlEGT4ZW/QYPxfGSK1/IXV15juv6xVuMIRwFXiJpkXqccDOz+tz7n3a7bXa+faIMngytxt40EwV5m1FcuBv9h11z4es/Fn4DALg6PVOUx+kKBV4ifXoFw6DXodpq93oDjjuuvfS0rVY5XEM4dxN36ROn4NobpmHrG6+CMQGDRmXixM8l2Lr+VYyeMhVDR2e5fQyxhnC0l15CFnsbCsqqIYj4G6ZPyylTSVWj2yEcANjOtSJv/SvY97fPUV9tRpQhHpN/MwemnIcRrOt8iMYB6B+pF2UrNQVeYkr/MAURR1cfluopsT4sRdO8EkuL1GNYbJgobQ2LDaewK5RrCCf2zggO7YdiiDWEo8D7wJCYcGTER0DDwesnBIf2bnxmfASGxIjzwkGkkREfAbH3QnFce7uitUddet/x5sgjJgjgNBrJjzwi4lL6EI4CL4OuDjW01NXgyLd78XTOYkSE0Gy8vxHr0NJhseGi9+oo8DLr6Njir/PzMWPGDBQXFyM9PV3uEkk39PRY8nSDNJOzNIaXWZBGg8iQYET31iEyJBhBGg1uvPFGREVFYevWrXKXR7opLVKPaalxiNO3X5ykq6G96/Y4vQ7TUuMkm5yld3iFuvfee1FYWIjjx4/36CBEIr+Lh3AtNge4yzbQ0Ln0BLt27cL06dPx448/IiMjQ+5yiAjOnj2L/gMH4qPPvsCkydfLcuUZ6tIrVHZ2NqKjo6lbH0B4nsc5qxX9ExMuGcL5EgVeoYKDg3HrrbciLy+vy8MRiH/geR4AkJaWJlsNFHgFMxqNOHHiBI4cOSJ3KUQEPM8jNjYWYWHybaCiwCuYq1ufl+f+ohTEP5SWlqJ///6y1kCBVzBXt37r1q3UrQ8APM/L2p0HKPCKZzKZcOLECRQXF8tdCukhCjzp0g033ICYmBjq1vs5h8OB8vJyCjxxj7r1gaG8vByCIFDgSddMJhNKS0vx448/yl0K6SYlLMkBFHi/4OrW0yYc/8XzPDiOQ0pKiqx1UOD9QFBQEObMmUObcPwYz/NITk6GTqeTtQ4KvJ8wGo3geZ669X6qtLRU9u48QIH3GzRb79+UsCQHUOD9RlBQEObOnUvdej9FgSdeMxqNKCsrw+HDXV97jiiHxWKB2WymwBPvTJkyBbGxsdSt9zNlZWUA5F+SAyjwfsU1W0+bcPyLUtbgAQq83zGZTCgrK8MPP/wgdynEQzzPo1evXujbt6/cpVDg/c3111+P2NhY2oTjR0pLS5GamgqNj0+36Yj8FRCv0Gy9/1HKDD1AgfdLJpMJJ0+epG69n6DAkx6ZPHky4uLiaLbeDzDGKPCkZ1zdepqtV766ujo0NzdT4EnPGI1GnDx5EocOHZK7FOKGkpbkAAq835o8eTIMBgN16xWOAk9EQZtw/ENpaSkiIiIQFRUldykAKPB+zWQy4dSpUzh48KDcpZBOuCbslHJ9QAq8H3N162kTjnIpaYYeoMD7Na1WS5twFI4CT0RlMplQXl6OAwcOyF0KuYwgCDh58iQFnohn0qRJiI+Pp269Ap05cwZ2u50CT8Tj6tZv3boVgiDIXQ65iNKW5AAKfEAwGo0oLy+n2XqFKS0tBQCkpqbKW8hFKPABwNWtp004ysLzPBISEqDX6+Uu5QIKfADQarWYN28ePvnkE+rWK4jSZugBCnzAcHXrabZeOSjwRDITJ05EQkICdesVhAJPJOOaraduvTLYbDZUVFRQ4Il0TCYTTp8+je+//17uUlTv1KlTYIxR4Il0JkyYgL59+9ImHAVwLclR4IlkaBOOcvA8D61Wi+TkZLlLuQQFPsCYTCZUVFRQt15mPM8jJSUFQUFBcpdyCQp8gHF162m2Xl5KnKEHKPABR6PRYN68edStlxkFnviM0WjEmTNnsH//frlLUS0KPPEZ6tbLq6mpCbW1tRR44hsajQZGo5E24chEiR+LdaHAByhXt/67776TuxTVocATnxs/fjwSExNpE44MeJ5H7969ER8fL3cpV6DAByiarZeP0o6mvhgFPoCZTCacPXsW3377rdylqIpSZ+gBCnxAGzduHK666irq1vsYBZ7IwtWtp9l631Ha5aEvR4EPcNSt9y2z2Qyr1UqBJ/IYO3YsrrrqKtqE4yNKXpIDKPABz7UJ59NPP4XT6ZS7nIBHgSeyMxqN1K33EZ7nER0djYiICLlL6RAFXgXGjh2LpKQkmq33ASVP2AEUeFW4eLaeuvXSosATRTCZTKisrMS+ffvkLiWgUeCJImRlZSE5OZm69RJqa2tT3OWhL0eBVwnq1kvv9OnTcDqdFHiiDCaTCVVVVdStl4jSl+QACryquLr1tAlHGjzPg+M49OvXT+5SOkWBVxGO42gTjoR4nkdiYiJCQkLkLqVTFHiVMRqNqKqqQlFRkdylBBylz9ADFHjVycrKQkpKCnXrJUCBJ4pD3XrplJaWUuCJ8hiNRpjNZhQWFspdSsBobW1FZWUlBZ4oz3XXXYeUlBTahCOisrIyAMpekgMo8KpE3Xrxudbg+/fvL3Ml7lHgVcpkMlG3XkQ8zyM4OBiJiYlyl+IWBV6lxowZg379+tFsvUh4nke/fv2g1WrlLsUtCrxKXdytb2trk7scv+cPS3IABV7VTCYTqqurqVsvAn9YkgMo8Kp27bXXIjU1lbr1IqB3eKJ4rm79Z599Rt36Hqivr0djYyMFniif0WhEdXU19u7dK3cpfstfluQACrzqubr1tAmn+/zhc/AuFHiV4zgOJpOJZut7gOd5hIWFISYmRu5SukSBJzAajaipqcGePXvkLsUvKfny0JejwBOMHj0aaWlp1K3vJn9ZkgMo8AQ0W99T/rIkB1DgyXkmk4m69d0gCALKysoo8MS/ZGZmIi0tjTbheKmyshI2m40CT/yLa7aeuvXe8ac1eIACTy5iMplQW1uL3bt3y12K33AFPjU1Vd5CPESBJxdkZGSgf//+NFvvBZ7nERcXh7CwMLlL8QgFnlxwcbfe4XDIXY5f8KclOYACTy5jNBqpW+8Ff1qSAyjw5DIZGRkYMGAAdes9RIEnfu3iTTjUrXfP4XDg9OnTFHji30wmE+rq6qhb34VTp05BEAS/WZIDKPCkA+np6Rg4cOCFTThtgoCGcw7UtdrRcM6BNkGQuUJl8KePxboEyV0AUR6O4zB/4SJUOTh8daIK1rYrAx4arEVCaC+kRerRp1ewDFXKj+d5aDQapKSkyF2Kxyjw5BIWexuKqxox4pY7MbStrcOwA4DF4URpgxUnGqww6HXIiI9AqE5dTyee55GUlITgYP95waMuPbmAb7CioKwa1VY7AEAb5D7A7Px/q612FJRVg2+wSlyhsvjbGjxAgSfnHattRnFVIwT2nyB7igEQGFBc1Yhjtc1SlKdI/rYkB1DgCdrf2Y/WtHR4W2tLC9576Xk8d89tuHvcCMwdkoiPc1/utK2jNS0oU8k7PQWe+B2LvQ0l5sZOb29uqEdB3gdw2O24bup0j9o8Ym6ExR6Yn7hzrVicrmtEaIwBaQMGyl2SVzjGmLc9OBJA9pXXotpq77Qb73p6cByHpvpa3D3uGpj+8DB++8dHOm2TAxCn12FisvIPdfREk80BvsGKSosNFsdlV9tlDKG6IL9ZsVDXtCq5RJPNAfP5CbrOdOdgRgbAbLWjyeZQfADcca1YmK12cOhkboPj/GrFgrr0KsY3WCHVOavc+fb91eUrFl11g/1lxYICr2KVFpvXM/KeYufb90eBvGKhzH4HkZxDEK4cj4rM4nCiTRAQpPGf95XOViz4f/2MLa/9BaeO/wtNdXXQhYQgMXUApt/xe1x/89wO2zpa04IQrRapkXqpy/YYBV6lLHZpw+7SYnciMsQ/Au9uxcLS1ITYhERM/PUtiDYkwNZqReH2z/D6Y39EdUU55i1d1uH3HTE3Ik6vU8yYXhlVEJ8TfLQ489DDD0Nrb0VCQgLi4+ORkJBw4U98fDzCw8MVc8WW4qpGdPZrGZE1HiOyxl/ytWtvmAZzRTkK8jZ3Gnh2vnuvlBULCrxKaXwUMiY48dNPP6GgoACVlZWw2y9dFejdu/cVLwYd/T0+Ph56vXRdY09WLDrSJzIajbU1nd6utBULCrxKhem0Ht/3x8JvYLNa0WppH9uWn/g39n/1NwBA5vXZ6NW78yC+9ca6C2N4xhgaGxtRWVl54U9VVdUlfz9w4AAqKythNpvhdF467AgPD7+ih9DR3w0GA3Q6nVe/D9eKRVf9HkEQwAQBLU2N2P/Vdhz5dg8WPvmC2+9xrViMio/wqiYp0MYbFdtVavZo4m5J9nWoPnO6w9v++vUBGJKSO7wtNFiLX/U3dKs2QRBQW1t7xYtCRy8SNTU1uPxpHB0d7fZFwfX/cXFx0Gq1Hv8uNq76E/I/fh8AEBSsw90rnsX02xd0+X09+V2IiQKvYiVVjShtsEqyNMcB6B+p98m7msPhQHV19RUvBB39vaGh4ZLv1Wg0SErph1d27vNoLqH6zGk01taisa4GP+wuwNd5m3Hn8pWYfe/SLr/35kHxsq9YUJdexdIi9Tgh0QYRdr59XwgODkZiYiISExO7vO+5c+dgNpsveTFoOGf3eOIwLjEJcYlJAIDR198IAPjg1dWYcqsJEdHuJ+aUsGJBgVexPr2CYdDr3O6l7w7XXnolTFJdLiQkBCkpKZecUlPXaseeU7Xdam/QNenI/+g9VJWf7DLwvloZccc/FkiJZDLiIyD2hD3HtbfrL3qyYvHzwe+g0WgQn9xP0scRC73Dq1yoLgijDBEorur8I7LeSjco98MjHfFkxeKvTz0KfVgYBo7MQGRMHJrq67B/13Z8u+NLzL53aZfv7p4+jtT851+FSCYtUg+b09npIRjeGBYbrqitpJ4I0mgQGqx1O0s/OH00vvn8Y+z5YisszU0I0YcidfAwPPBibqdbay8WGqyVfcIOoFl6chG+wYoSc/tuM2+eFBzau/Hphgi/C7tLoKxYdIXe4ckFaZF6GPS6rj8Dfp7r9jiFfwbcE4GyYtEV//0XIpII1QVhYnKM+1NeEHjn0qtlxYK69KRLbYKAFrsTAmPQcBzCdMoYj4rNYm9DQVk1BBEToeGAaalxiun9UOAJuQjfYBV1xSIzXlnzGoH3Mk1ID6RF6jEsNkyUtpS4YkHv8IR0IFBXLCjwhHTCo1Nrz3PdrvRTaynwhHQhkFYsKPCEeMHfVywo8ISoiP+8NBFCeowCT4iKUOAJUREKPCEqQoEnREUo8ISoCAWeEBWhwBOiIhR4QlSEAk+IilDgCVERCjwhKkKBJ0RFKPCEqAgFnhAV+T9IBe7X5z8oegAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = nx.Graph()\n", + "edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]\n", + "G.add_edges_from(edges)\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "adjacency_matrix = nx.to_numpy_array(G).astype(int)\n", + "print(f\"adjacency matrix\\n {adjacency_matrix}\")\n", + "\n", + "\n", + "adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}\n", + "print(f\"adjacency list\\n {adjacency_list}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Adjaceccy list of directed graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adjacency matrix\n", + " [[0 1 1 0 0 0]\n", + " [0 0 0 1 1 0]\n", + " [0 0 0 0 0 1]\n", + " [0 0 0 0 0 0]\n", + " [0 0 0 0 0 1]\n", + " [0 0 0 0 0 0]]\n", + "adjacency list\n", + " {1: [2, 3], 2: [4, 5], 3: [6], 4: [], 5: [6], 6: []}\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = nx.DiGraph()\n", + "edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]\n", + "G.add_edges_from(edges)\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "adjacency_matrix = nx.to_numpy_array(G).astype(int)\n", + "print(f\"adjacency matrix\\n {adjacency_matrix}\")\n", + "\n", + "adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}\n", + "print(f\"adjacency list\\n {adjacency_list}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Implementation of BFS for Graph using Adjacency List:](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Breadth First Traversal starting from vertex 0: 0 1 2 3 4 " + ] + }, + { + "data": { + "image/png": "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peH777+H3W7HnXfeienTp+PKFZ6eKyu5P3HULDs7mzp37kyCINDEiROpvLxc7pKcwmw202uvvUZarZZiY2Np3759cpekWtzDy6CyshIvvfQSkpOTYTabsX//fixZsgQBAcp8hptWq8Urr7yC7OxsBAcHo3v37pg4cSIqKhr+7DtWT3J/4qhNVlYWxcTEkFarpddee43MZrPcJbmUzWajxYsXk06no9atW1NmZqbcJakKB95FSkpK6KmnniIA1KNHDzp27JjcJcnq119/pZSUFAJAI0aMoEuXLsldkipw4J1MFEVav349hYeHU1BQEC1fvpwnpVwliiK9//77FBgYSJGRkbRx40a5S1I8DrwTnT17lvr160cAaODAgfT777/LXZJb+u233+ihhx4iAPToo4/ShQsX5C5JsTjwTmCz2Wjp0qXk7+9PTZs2pU2bNsldktu7diUUFhZGjRs3pg8++IBEUZS7LMXhwEvs6NGjdM899xAAGjduHBkMBrlL8igXL168Pq24b9++dPbsWblLUhS+LSeRK1euIDU1FZ06dYLBYMDevXvx7rvvIiiIV3mtj9DQUKxduxbbtm3Dzz//jA4dOmDZsmUQ+Zl20pD7E0cJ9u7dS7GxseTj40Opqal05coVuUtShLKyMho7diwBoG7dutHx48flLsnjcQ/fAGVlZRg3bhx69OiBJk2aIDs7G3PmzIGvr6/cpSlCYGAgMjIysHv3bly4cAEJCQlIS0uDzWaTuzTPJfcnjqfatGkTNW3alPz9/Sk9PZ1vtTmZ0WikqVOnkkajoU6dOtGRI0fkLskjcQ9fT3/88QcGDhyIgQMHIjk5Gbm5uXjmmWeg0fA/pTPpdDosXLgQBw8ehMViQXJyMl555RWYzWa5S/Mscn/ieAq73U4ZGRkUGBhIERER9Omnn/JtI5mYzWaaM2cO+fj4UPv27Wn//v1yl+QxOPAOyMvLo+7duxMAGjVqFE8DdRNHjx6lu+66iwRBoEmTJtHly5flLsntceBrYTab6dVXXyWtVku33XYbff3113KXxG5gs9nozTffpEaNGlFUVBTt3LlT7pLcGge+BgcOHKAOHTqQl5cXvfzyy2QymeQuidXi1KlT1KtXLwJAI0eOpNLSUrlLcksc+BuUl5fTs88+S4IgUHJyMo8GexBRFOm9996jwMBAatq0KX3++edyl+R2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import deque\n", + "\n", + "# Function to perform Breadth First Search on a graph\n", + "# represented using adjacency list\n", + "def bfs(adjList, startNode, visited):\n", + " # Create a queue for BFS\n", + " q = deque()\n", + "\n", + " # Mark the current node as visited and enqueue it\n", + " visited[startNode] = True\n", + " q.append(startNode)\n", + "\n", + " # Iterate over the queue\n", + " while q:\n", + " # Dequeue a vertex from queue and print it\n", + " currentNode = q.popleft()\n", + " print(currentNode, end=\" \")\n", + "\n", + " # Get all adjacent vertices of the dequeued vertex\n", + " # If an adjacent has not been visited, then mark it visited and enqueue it\n", + " for neighbor in adjList[currentNode]:\n", + " if not visited[neighbor]:\n", + " visited[neighbor] = True\n", + " q.append(neighbor)\n", + "\n", + "# Function to add an edge to the graph\n", + "def addEdge(adjList, u, v):\n", + " adjList[u].append(v)\n", + "\n", + "def main():\n", + " # Number of vertices in the graph\n", + " vertices = 5\n", + "\n", + " # Adjacency list representation of the graph\n", + " adjList = [[] for _ in range(vertices)]\n", + "\n", + " # Add edges to the graph\n", + " addEdge(adjList, 0, 1)\n", + " addEdge(adjList, 0, 2)\n", + " addEdge(adjList, 1, 3)\n", + " addEdge(adjList, 1, 4)\n", + " addEdge(adjList, 2, 4)\n", + "\n", + " # Mark all the vertices as not visited\n", + " visited = [False] * vertices\n", + "\n", + " # Perform BFS traversal starting from vertex 0\n", + " print(\"Breadth First Traversal starting from vertex 0:\", end=\" \")\n", + " bfs(adjList, 0, visited)\n", + " \n", + " #plot the graph\n", + " G = nx.Graph()\n", + " G.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 4)])\n", + " plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "if __name__ == \"__main__\":\n", + " main()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : False\n", + "Number of nodes : 5\n", + "Number of edges : 9\n", + "Average degree : 3.6000\n", + "Connectivity : connected\n" + ] + } + ], + "source": [ + "from netsci.analysis import graph_info\n", + "graph_info(graph_w)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Table 2.1" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import pandas as pd\n", + "from netsci.analysis import average_degree\n", + "from netsci.utils import list_sample_graphs, load_sample_graph" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "nets = list(list_sample_graphs().keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "G = load_sample_graph(\"Internet\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : False\n", + "Number of nodes : 192244\n", + "Number of edges : 609066\n", + "Average degree : 6.3364\n", + "Connectivity : disconnected\n" + ] + } + ], + "source": [ + "graph_info(G)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing sample graphs: 100%|██████████| 10/10 [00:00<00:00, 19463.13it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collaboration\n", + "Internet\n", + "PowerGrid\n", + "Protein\n", + "PhoneCalls\n", + "Citation\n", + "Metabolic\n", + "Email\n", + "WWW\n", + "Actor\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "for net in tqdm(nets, desc=\"Processing sample graphs\"):\n", + " print(net)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing sample graphs: 100%|██████████| 9/9 [00:33<00:00, 3.72s/it]\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
num_nodesnum_edgesavg_degreedirectedname
023133934398.078416FalseCollaboration
11922446090666.336385FalseInternet
2494165942.669095FalsePowerGrid
3201829302.903865FalseProtein
436595918265.018500TruePhoneCalls
5449673468947920.857285TrueCitation
61039580211.168431TrueMetabolic
7571941037313.627339TrueEmail
832572914971349.192513TrueWWW
\n", + "
" + ], + "text/plain": [ + " num_nodes num_edges avg_degree directed name\n", + "0 23133 93439 8.078416 False Collaboration\n", + "1 192244 609066 6.336385 False Internet\n", + "2 4941 6594 2.669095 False PowerGrid\n", + "3 2018 2930 2.903865 False Protein\n", + "4 36595 91826 5.018500 True PhoneCalls\n", + "5 449673 4689479 20.857285 True Citation\n", + "6 1039 5802 11.168431 True Metabolic\n", + "7 57194 103731 3.627339 True Email\n", + "8 325729 1497134 9.192513 True WWW" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_list = []\n", + "\n", + "for net in tqdm(nets[:-1], desc=\"Processing sample graphs\"):\n", + " G = load_sample_graph(net)\n", + " num_nodes = G.number_of_nodes()\n", + " num_edges = G.number_of_edges()\n", + " avg_degree = average_degree(G)\n", + " directed = nx.is_directed(G)\n", + " \n", + " # Append a dictionary of data for this network to the list\n", + " data_list.append({\n", + " 'num_nodes': num_nodes,\n", + " 'num_edges': num_edges,\n", + " 'avg_degree': avg_degree,\n", + " \"directed\": directed,\n", + " \"name\": net\n", + " })\n", + "\n", + "# Create the DataFrame from the list of dictionaries\n", + "df = pd.DataFrame(data_list)\n", + "\n", + "# Display the DataFrame\n", + "df" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/examples/chap_03.ipynb.txt b/_sources/examples/chap_03.ipynb.txt new file mode 100644 index 0000000..ccf8348 --- /dev/null +++ b/_sources/examples/chap_03.ipynb.txt @@ -0,0 +1,530 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 3](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_03.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Random Networks**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A random network consists of N nodes where each node pair is connected with probability p.\n", + "To construct a random network we follow these steps:\n", + "1) Start with N isolated nodes.\n", + "2) Select a node pair and generate a random number between 0 and 1. If the number exceeds p, connect the selected node pair with a link, otherwise leave them disconnected.\n", + "3) Repeat step (2) for each of the N(N-1)/2 node pairs.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "import networkx as nx\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "from netsci.plot import plot_graph" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "LABELSIZE = 13\n", + "plt.rc('axes', labelsize=LABELSIZE)\n", + "plt.rc('axes', titlesize=LABELSIZE)\n", + "plt.rc('figure', titlesize=LABELSIZE)\n", + "plt.rc('legend', fontsize=LABELSIZE)\n", + "plt.rc('xtick', labelsize=LABELSIZE)\n", + "plt.rc('ytick', labelsize=LABELSIZE)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "def create_random_network(N, p):\n", + " G = nx.Graph() # Initialize an empty graph\n", + " G.add_nodes_from(range(N)) # Add N isolated nodes\n", + "\n", + " # Iterate through each possible node pair\n", + " for i in range(N):\n", + " for j in range(i + 1, N):\n", + " if random.random() <= p: # Generate a random number and compare it with p\n", + " G.add_edge(i, j) # Connect the nodes if the condition is met\n", + "\n", + " return G\n", + "\n", + "# Example usage:\n", + "N = 10 # Number of nodes\n", + "p = 0.3 # Probability of edge creation\n", + "\n", + "seed=2\n", + "random.seed(seed)\n", + "np.random.seed(seed)\n", + "\n", + "random_network = create_random_network(N, p)\n", + "plot_graph(random_network, seed=2, figsize=(5, 3), title=\"Random Network\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other option would be to use the `nx.gnp_random_graph` function from NetworkX, which generates random graphs with a given number of nodes and a given probability of edge creation.\n", + "\n", + "```python\n", + "G = nx.gnp_random_graph(N, p)\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Binimial distribution\n", + "\n", + "Degree distribution in a random network follows a binomial distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2PMrHqke5SHbtm3TSik9ePDgAsdnzJihAT1v3jyPnW+z2XRISIju2LGjdjgcBdqPHDlSA/r3338vduxS3FII73Mc2mkUnzzwh1ev48zNOlNA027z6rW8oSoXt3zllVcKvTd58mQNFCpuecstt2hAr1692n3MVdyyQ4cOOjIyUj/55JN65syZuk+fPhrQN910U4G+n3322UJFIos65tKgQQPds2fPAseGDh2qAX3llVfqmTNn6qeeekpXq1ZNh4aG6s2bN5fq+1GUH374QU+ePFlPnjxZX3jhhRrQDz/8sPvYP6WkpOgGDRrosLAw/cwzz+i3335b9+rVSwP6f//7X6G++/fvrwF9xx136P/973/6jjvu0IAeNWpUobavvvqqBnSvXr3022+/rZ955hkdGhqqW7RoUaBopid4urilXyVNTz31lAb02rVrCxzPzs7WISEh+uqrr/bY+VlZWVoppfv161eoH1cl1N27dxc7dkmahPA+x57fjETmyH7vX2vrauNap497/VqeJklTQZmZmTo6OrpESdOzzz6r58+fr9u2bauDgoJ0vXr19IQJE3ReXsEq9J5Immw2m37ppZd0ixYtdFBQkK5evboeOHCg/uMPz/5x4IrrbI9/O3z4sB41apSuWbOmtlgsukOHDnrhwoVF9p2dna2feuop3aBBAx0UFKTj4+P1pEmTCn2/XGbPnq3btWunLRaLrlWrlr7tttv0sWPHPPp5XXF5MmlSWvvPHNSVV17Jt99+W+Tti5dccgm7d+8+54Z+JT2/V69erFu3jhdffJHrr7+egIAA1qxZw3333cegQYP46KOPznqt3NzcAncLpKWlERcXR2pqKhERHtx5XQjh5ty2FrIzUE07o6rV9u619m+FE4kQ3RhTveZevZan5eTkcODAAeLj4923cQtRFRXn30JaWhqRkZHF+v3tV2uakpKSiIqKKrJ+Q2xsLCkpKeTlnb2SbUnPnzdvHr179+bxxx+nadOmxMfHc/vtt/PQQw+dt67HlClTiIyMdD/+XQlVCOFZWmvIyV974qU75/5JheeXHsg47fVrCSEqBr9Kms5XIMvVxlPnWywW4uPjufnmm1mwYAELFizg+uuv5/nnn+fFF188Z6xPPPEEqamp7se/7xoQQniYLRe0E1AQVPLbqEssND9pyjyN1ue/CUUIUfn5VZ2mkJAQjh8/XuR7xSl6VZLzs7KyuPjii+nYsSMLFy50t7vxxhu58cYbeeaZZ7jhhhto3rzoYXmLxVKqPX2EEKWUk3/nnCUYZSqHv/eCw8AcAA67UYU8RKbdhajq/GqkKSYmhpSUlCIriyYmJhIVFUVQ0Nkrxpbk/MWLF7Nnzx6GDBlSqO2QIUNwOp38+OOPZfg0QgiPys0fJbaUT7VgpRSEVjNeZEjpASGEnyVNXbp0wel0snHjxgLHc3Jy2LJlS4ECWWU931W9tKjKqna7vcBXIYTv6XJOmgAIq2ZcW5ImIQR+ljQNGzYMpVShAlnvvvsuWVlZBYpe7du3j507d5b6fNceQh9++GGhOFzHXJVLhRB+IH8RuLKWX9KkwmQxuBDiDL9a09S2bVvGjBnDrFmzGDx4MP369WPHjh3MmDGDnj17MmLECHfbyy+/nISEhAIVVEtyfv/+/enatSsrV67k0ksvZfDgwQB89tlnrFu3jiFDhhTY4VoI4WO5rjVN3r9zzs01PZebhbblogJlHaMQVZlfJU1glF1v2LAh77zzDitWrCAqKoqxY8cyadIkTMVY/Fnc881mM99++y1Tpkzhs88+47HHHkMpRdOmTZk6dSrjxo3z5scUQpSUD6bnVEAgOjjMWAiecRqq1ym3awsh/I9fFbesyEpSHEsIUTLanof+/VsAVMcrUWfZPd4bnAf+hJRDULcRprgW5XbdspDilkIYKnVxSyGEKJKrqGWgpVwTJgCVvxiczNPlel0hhP+RpEkI4f98ceecS9g/ilw6pcilEFWZJE1CCP+XW37bpxRiDQVzIDidkJ1W/tcXQvgNSZqEEH5P51cDVz4YaVJKues1SemByu/gwYMopZg4cWKx2k+cOBGlFAcPHvRqXMI/SNIkhPB/vpye40y9Jily6b/WrFmDUgqlFO+++26RbZRS9O/fv5wj8x+ffPIJt912G+3btycwMPC8yV5SUhI333wztWrVIjg4mM6dO7No0aIi2+bm5vLMM88QHx+PxWKhcePGPP/889hstiLbz5kzhw4dOhAcHEydOnW48847SU5OLrLtL7/8Qp8+fQgPDyciIoKrrrqKLVu2lPTje4QkTUII/+eenvNN0iQjTRXLxIkTyc7OLpdrPf3002RnZ9OgQYNyuV5ZvPXWWyxcuJDg4GAaN258zrYnT56ke/fufPbZZ4wePZrp06cTFhbG0KFDmT17dqH2w4YNY/LkyfTu3Zs333yTXr16MWHCBO66665Cbd944w1uueUWIiMjmT59Ovfccw8LFy6kV69eZGZmFmj7888/07NnTw4cOMCkSZN47rnn2LNnDz169ODPP/8s2zekNLTwiNTUVA3o1NRUX4ciRKXitNu0Y+MK7di4Qjtteb6PITfbJzGURHZ2tt6+fbvOzvb/WD1l9erVGtCdO3fWgH7xxRcLtQH0Nddcc85+Dhw4oAH97LPPeilS30lISNA2m01rrfWYMWM0oA8cOFBk20ceeUQDetmyZe5jdrtdd+nSRdeoUUOnp6e7j69YsUIDety4cQX6GDdunAb0Tz/95D6WnJysQ0JCdJcuXbTdbncfX7ZsmQb0Cy+8UKCPLl266PDwcH348GH3scOHD+vw8HDdt2/f837m4vxbKMnvbxlpEkL4N9cokzkQFRDokxCUOQCCw40XUnrArw0dOpROnToxdepUTpw4Uaa+FixYQLt27bBardSvX5+JEycW2pO0qDVNrmO7du3iySefpF69elgsFtq3b8/KlSsLXcdutzN16lRatWqF1WqlZs2aDBo0yOMjKfXr1ycgoHg1refPn0/jxo0ZMGCA+5jZbGbs2LGcPHmywOeYP38+AA8++GCBPlyv586d6z62dOlSsrKyGDt2LOZ/lA8ZMGAAjRo1KtB27969bNq0iSFDhhAbG+s+Hhsby5AhQ/j22285evRosT6Pp0jSJITwb76emnMJjQRAZ6b6No4y0lqjs7P98+GBWstKKV566SVSU1N54YUXSt3PsmXLGD16NAMGDOCVV16hefPmPPfcc0VON53NLbfcwrp16xg/fjyTJ08mOTmZ6667rtA6opEjR/L4449Tr149XnnlFe69915Wr15Nt27d+P333wu0PXXqFCkpKcV65ObmluqzHzlyhMTERC666KJC77mObdq0yX1s06ZNxMbGEhcXV6BtXFwcMTExhdoCdOvWrci+d+7cSUZGRrHaaq357bffSvrxysTvtlERQogCcvPXpgT5NmlSoZHolMNQwZMmcnJIv7a7r6MoUviyHyE4uMz99OnTh759+/LWW2/xwAMPlGq90datW9m0aZN7D9L77ruPwYMH88EHH3DPPfcUmVD8W1RUFMuXLzfuwAQuu+wyunbtyttvv82UKVMAWLVqFZ988glDhw5l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17M//vGPbNu2jRkzZjBv3jxCQ0M5cOAATz/9NO+88w55eXlEREQAnuUWxowZg9Fo5Le//S0xMTHs2LGDKVOm8Pe//5177rknyO/m+iorK6OyspLMzEwSEhIwGo0cP36c7du38/bbb1NQUEBcXBygv9hcafXq1Zw/f97vPj3GJj09nSVLlrQqu/KDT49xKS0tZfz48VitVh555BGSk5Opra2lsLCw1YK/eXl5jB8/nn79+rFu3ToAtm7dSnp6Orm5uaSkpATrLbSL+++/nyFDhviUFxYW8vvf/5777vvuZuZ6Gzdut5upU6eSm5vLggULyMrKwmaz8dZbb7Fw4UJOnDjBhg0bgC4+bpToFI4ePaouXrzoU75q1SoFqC1btnjLZs+erQwGg/r888+9ZfX19SoxMVElJycrt9vdEV0OunfeeUcBasOGDd4yPccmPz9fhYSEqJdeekkB6vHHH2+1X2+xAdSCBQu+t57e4qKUUnfffbdKSEhQFRUVV62XmpqqLBaLKisr85aVlZUpi8WiMjIy2rubncaSJUsUoPbs2eMt09u4yc3NVYBavnx5q3Kn06kGDRqkYmJivGVdedxI0tTJFRYWKkAtXbpUKaWU1WpVJpNJTZw40afuunXrFKCOHDnS0d0MiiNHjihAPfXUU0opfcemublZjRgxQk2fPl2dOXPGJ2nSY2xakian06nq6+v91tFjXD7++GMFqM2bNyullGpsbFQNDQ0+9b788ksFqEWLFvnsW7RokdI0TVVWVrZ7f4PNarWq6OholZCQoJqbm71lehs3//jHPxSgXnzxRZ99qampKj4+XinV9ceNzGnq5MrKygDo3bs34DlM7HQ6ueuuu3zqjh49GoCjR492XAc7kMPhoKqqirKyMj744AOWLl0KwLRp0wB9x2bjxo2cPHmSrVu3+t2v19j85S9/wWw2Y7FYiIuLIysri9raWu9+PcZl3759ACQmJnLfffcRERFBZGQkycnJ7Nq1y1uv5X23FRulFPn5+R3T6SDKycmhrq6Ohx9+mJCQEECf4yYtLY1u3brx4osvkpOTw9dff83JkydZuXIl+fn5rFmzBuj640bmNHViLpeL9evXYzQamTt3LgAVFRWA/5sJt5T5uwlxV7Bz506ysrK8zwcOHMiuXbtIT08H9BubM2fO8Oyzz7J69WoGDhxISUmJTx09xiYt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make a random graph with N nodes and average degree of k\n", + "np.random.seed(2)\n", + "\n", + "num_nodes = [100, 1000, 10000]\n", + "average_degree = 50\n", + "lambd = 50\n", + "colors1 = plt.cm.Reds(np.linspace(0.2, 0.6, len(num_nodes)))\n", + "\n", + "for i in range(len(num_nodes)):\n", + " probability = average_degree / num_nodes[i]\n", + " graph_b = nx.gnp_random_graph(num_nodes[i], probability)\n", + " degrees = [d for n, d in graph_b.degree()]\n", + " sns.kdeplot(degrees, fill=False, label=f\"N.bino={num_nodes[i]}\", color=colors1[i])\n", + "\n", + "s = np.random.poisson(lambd, num_nodes[-1])\n", + "sns.kdeplot(s, fill=False, label=f\"N.pois={num_nodes[i]}\", color='b')\n", + "\n", + "plt.xlabel(\"k\")\n", + "plt.ylabel(\"P(k)\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### The evolution of a random network" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Connected Components:\n", + "Component 1: Size 19\n", + "Component 2: Size 1\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Step 1: Generate a random graph (Erdős-Rényi model)\n", + "n = 20 # number of nodes\n", + "p = 0.12 # probability of edge creation\n", + "G = nx.erdos_renyi_graph(n, p)\n", + "\n", + "# Step 2: Find all connected components\n", + "connected_components = list(nx.connected_components(G))\n", + "\n", + "# Step 3: Calculate the size of each connected component\n", + "component_sizes = [len(component) for component in connected_components]\n", + "\n", + "# Display the graph and component sizes\n", + "print(\"Connected Components:\")\n", + "for i, component in enumerate(connected_components):\n", + " print(f\"Component {i + 1}: Size {len(component)}\")\n", + "\n", + "# Optionally, visualize the graph\n", + "plot_graph(G, seed=2, figsize=(5, 3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the size of giant connected component vs average degree" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N=10000, Ln(N)= 9.210340371976182\n", + "average k = 0.100, giant_component_size= 4\n", + "average k = 0.500, giant_component_size= 11\n", + "average k = 0.900, giant_component_size= 164\n", + "average k = 1.000, giant_component_size= 480\n", + "average k = 1.100, giant_component_size= 1682\n", + "average k = 2.001, giant_component_size= 8028\n", + "average k = 2.902, giant_component_size= 9363\n", + "average k = 3.803, giant_component_size= 9755\n", + "average k = 4.705, giant_component_size= 9909\n", + "average k = 5.606, giant_component_size= 9967\n", + "average k = 6.507, giant_component_size= 9989\n", + "average k = 7.408, giant_component_size= 9999\n", + "average k = 8.309, giant_component_size= 9997\n", + "average k = 9.210, giant_component_size= 9998\n" + ] + }, + { + "data": { + "image/png": "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bW2tVWtyNjIhhLB1EY6qsLAQXbt2RUREBHbv3m2cer9v3z7ExsZi6tSpWLFihY2rdB6LFi3CggULMH78eKxevRqurq62Lskp1dTU4Pvvv2+wvaCgAE888QTuuece/OMf/0CfPn3Qs2dPG1ToPIqLi9G1a1eoVCpkZWVBrVYDqGuli4iIQEVFBXJycti1bwVPP/003nrrLbz22mt47rnnjNtLSkrQt29fFBUVobCw0Dj+lMyPgcjC3n77bcyePRvx8fGYOHEiCgsLkZaWBnd3d+zbt8/YrUaW9d577+Gpp55Cly5dsGjRogZhKDAwEImJiTaqjgAgOzsb4eHheOKJJ/D+++/buhynsXLlSvz9739Hr169MH36dMhkMqxYsQInTpzAxx9/zNlNVnL27FlERUXhypUrGDduHG677TZcuXIFK1aswJ9//ok333wTzzzzjK3LdGy2XRfSOaxZs0YMHDhQKBQK4efnJx599FFx+vRpW5flVCZPniwANPk1bNgwW5fo9M6cOcOVqm3km2++EfHx8cLT01OoVCpx++23i40bN9q6LKdz/vx58eSTT4revXsLpVIpvLy8xG233SY+//xzW5fmFNhCRERERE6PI0qJiIjI6TEQERERkdNjICIiIiKnx0BERERETo+BiIiIiJweAxERERE5PQYiIiIicnoMREREROT0GIiIiIjI6TEQERERkdNjICJyMhqNBiqVCjKZDB9//LGty7EL2dnZkMlkxi8XFxf4+PigR48eePjhh/HJJ5+gsrLS1mUS0Q3gvcyInMyyZcvwz3/+E927d0dwcDB++eUXW5ckednZ2QgPD8fw4cMxdepUAEBZWRmys7Pxww8/4MCBA+jZsye++OIL3HLLLTaulojag4GIyMnExMTAy8sLjz76KJ588klkZWWhd+/eNqunrKwMnp6eNnv+1jAEoieeeALvv/9+g/1r1qzBlClTEBgYiN9//x2+vr7WLxJAVVUVXF1d4ebmZpPnJ7Jn7DIjciKHDx/G/v37MWXKFIwdOxZyuRwrV6407tfpdAgJCUG/fv0aPX/FihWQyWTYsGGDcVtVVRVeffVV9OnTBwqFAr6+vhg5ciQOHDhgcu62bduM3XTvvfceIiMjIZfL8e9//xsAsGfPHkyZMgW9evWCSqWCt7c34uPj8dVXXzVay6+//orbb78dSqUS/v7+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Pn/5y18AAG+++abJMQcPHjQZ89MSFxcXjB8/HpmZmfj8888bPab+azbXe0hk79hCROTgtmzZgnPnzmH+/PlNHvPwww/j+eefx4oVK3DbbbcBAO6//3507NgRycnJ0Gq1JoOpDWbNmoUtW7bg+eefx7Zt23DnnXfCx8cH586dw08//QSFQtHoejvXu/nmm9GnTx+88cYbKC8vR+/evXHy5EksX74cffv2RWZmpsnxixcvxp133on4+Hj885//RKdOnfDNN9/gypUrAOoGWBsMGjQIKSkpWLBgAQYMGIAxY8agc+fOyM/Px/79+7Fx40ZUV1e36md56tQprFmzBkDdwO/s7Gxs3rwZBw4cQK9evfDll1+atAT99a9/xdSpU7Fs2TIcPHgQI0eOhL+/P3JycrBz50788ccfxnWB7r33Xtx333349NNPcfnyZdx7773Iy8vD0qVLMXDgQOzfv9/kdTXnlVdewW+//YZx48bhq6++wpAhQ+Dh4YGzZ89i48aNiI6ONt62xVzvIZHds/q8NiKyqkceeUQAEIcPH272uH79+glPT0+TKehPPfWUACC8vLwanRYvRN0U8rffflvExMQIlUolVCqV6NGjhxg3bpz44YcfjMcZpt2vWrWq0etkZ2eLv/71r8Lf318olUoxaNAg8eWXX4oFCxY0mHIuhBDbt28X8fHxQqFQiI4dO4opU6YYp8fXXxrA4LvvvhN333236NChg/Dw8BChoaFixIgRYunSpc3+XIS4Nu3e8CWTyYSXl5fo3r27GD16tFi9erWoqKho8vxPPvlE3HbbbcLb21vI5XLRtWtX8dBDD4nPP//c5Ljy8nLxzDPPiODgYCGXy0X//v3F+vXrxZw5cwQAcfHiReOxhmn3TSkrKxOLFi0Sffv2FQqFQnh5eYmIiAgxffp0sWvXLpNjW/seEjky3rqDiBzGvn37MGjQIKSmpuL555+3dTlm88ADD2Dr1q3QarXG7kUiMi+OISIiuyOEaHB3eSEEXnvtNQBodt0eKWtsvZ8DBw5g8+bNuPPOOxmGiCyIY4iIyO5UVVWha9eumDBhAnr16oXi4mKkp6dj586dGDduHKKiomxdYrssWrQIBw4cwPDhw+Hr64tjx47hww8/hFwux0svvWTr8ogcGrvMiMju6HQ6PPbYY9ixYwfy8/Oh0+nQo0cPTJw4Ec8884zd3u1906ZNeO2113Ds2DEUFxfD19cXt99+OxYsWID+/fvbujwih8ZARERERE6PY4iIiIjI6TEQERERkdNjICIiIiKnx0BERERETo+BiIiIiJweAxERERE5PQYiIiIicnoMREREROT0/h9Ib2NCtc3yMAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "N = int(1e4)\n", + "print(f\"N={N}, Ln(N)= {np.log(N)}\")\n", + "k_avg = [.1, 0.5, 0.9, 1.0] + np.linspace(1.1, np.log(N), 10).tolist()\n", + "giant_component_sizes = []\n", + "for i in range(len(k_avg)):\n", + " p = k_avg[i] / N \n", + " G = nx.erdos_renyi_graph(N, p)\n", + " connected_components = list(nx.connected_components(G))\n", + " component_sizes = [len(component) for component in connected_components]\n", + " giant_component_size = max(component_sizes)\n", + " giant_component_sizes.append(giant_component_size)\n", + " \n", + " print(f\"average k = {k_avg[i]:10.3f}, giant_component_size={giant_component_size:10d}\")\n", + " \n", + "giant_component_sizes = np.array(giant_component_sizes)/N\n", + "plt.plot(k_avg, giant_component_sizes, marker='o', label='Giant Component Size')\n", + "plt.xlabel(r'Average Degree')\n", + "plt.ylabel(r'$N_G / N$');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Degree distribution of real networks" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW', 'Actor'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from netsci.utils import load_sample_graph, list_sample_graphs\n", + "from netsci.analysis import graph_info\n", + "\n", + "graphs = list_sample_graphs()\n", + "graphs.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Successfully loaded Collaboration\n", + "================================\n", + "Scientific collaboration network based on the arXiv preprint archive's \n", + " Condense Matter Physics category covering the period from January 1993 to April 2003. \n", + " Each node represents an author, and two nodes are connected if they co-authored at \n", + " least one paper in the dataset. Ref: Leskovec, J., Kleinberg, J., & Faloutsos, C. (2007). \n", + " Graph evolution: Densification and shrinking diameters. \n", + " ACM Transactions on Knowledge Discovery from Data (TKDD), 1(1), 2.\n", + "Graph information\n", + "Directed : False\n", + "Number of nodes : 23133\n", + "Number of edges : 93439\n", + "Average degree : 8.0784\n", + "Connectivity : disconnected\n" + ] + } + ], + "source": [ + "G_collab = load_sample_graph('Collaboration', verbose=True)\n", + "graph_info(G_collab)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Figure 3.6" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy.stats import poisson\n", + "from collections import Counter\n", + "\n", + "fig, ax = plt.subplots(1,3, figsize=(15,4))\n", + "\n", + "c = 0\n", + "for net in [\"Internet\", \"Collaboration\", \"Protein\"]:\n", + " G = load_sample_graph(net)\n", + " degrees = [G.degree(n) for n in G.nodes()]\n", + " degree_count = Counter(degrees)\n", + " k, pk = zip(*degree_count.items())\n", + " k = np.array(k)\n", + " pk = np.array(pk)/sum(pk)\n", + "\n", + "\n", + " ax[c].loglog(k, pk, 'k.', label='real')\n", + " ax[c].set_xlabel(\"k\")\n", + " ax[c].set_ylabel(\"pk\");\n", + " ymin, ymax = np.min(pk)*0.9, np.max(pk)*1.1\n", + "\n", + " # add poisson distribution to graph\n", + "\n", + " k = np.arange(0, max(degrees)+1)\n", + " pk_poisson = poisson.pmf(k, np.mean(degrees))\n", + " ax[c].loglog(k, pk_poisson, 'r', label='poisson')\n", + " # plt.ylim([1e-5, 1])\n", + " ax[c].legend(frameon=False);\n", + " ax[c].set_ylim([ymin, ymax])\n", + " ax[c].set_title(net)\n", + " c += 1\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Clustering coefficient\n", + "\n", + "The local clustering coefficient of a random network is\n", + "\n", + "$$\n", + "C_i = p= \\frac{⟨k⟩}{N}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To analyze the dependence of the average path length $d(p)$ and the clustering coefficient $\\langle C(p) \\rangle$ on the rewiring parameter $p$ for a small-world network, you can use the Watts-Strogatz model. This model begins with a regular lattice and introduces randomness by rewiring each edge with probability $p$. Here's a step-by-step guide on how to perform this analysis:\n", + "\n", + "1. **Generate a regular lattice**: Create a regular ring lattice with $N$ nodes where each node is connected to its $k$ nearest neighbors.\n", + "\n", + "2. **Rewire edges**: For each edge in the lattice, rewire it with probability $p$. This involves replacing the existing edge with a new edge that connects the node to a randomly chosen node in the network.\n", + "\n", + "3. **Compute $d(p)$ and $\\langle C(p) \\rangle$**:\n", + " - $d(p)$ is the average shortest path length between all pairs of nodes in the network.\n", + " - $\\langle C(p) \\rangle$ is the average clustering coefficient of all nodes in the network.\n", + "\n", + "4. **Normalize by $d(0)$ and $\\langle C(0) \\rangle$**:\n", + " - $d(0)$ is the average path length of the regular lattice (when $p=0$).\n", + " - $\\langle C(0) \\rangle$ is the average clustering coefficient of the regular lattice (when $p=0$).\n", + "\n", + "5. **Plot the results**: Plot $d(p)/d(0)$ and $\\langle C(p) \\rangle / \\langle C(0) \\rangle$ as functions of $p$ on a log scale to observe the small-world phenomenon." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x44ds2rfvn27MBqN4qWXXjK3DRgwQFxxxRXm9U8++UQYDAZx7733ilatWpnblyxZIgCIzZs3m9tGjx4tbL82ctuoUaNUrwWAGD16tF2bwWAQW7ZssWq/9dZbRXBwsCgqKjK3de/eXYSEhIicnBxzW3V1tRgyZIjqudVYunSpACBatGghLly4YG6/cOGCaNGihYiJiRHFxcXm9uTkZAFAfPjhh1bnqaysFMnJySIqKsrqb11ZWSkGDhwoAIgff/zR7m8zePBgUV1dbW7fsWOHMBgMol+/flbnV/ZBZsOGDQKAeP31163aAQgA4vPPP7dqnzBhggAgPv74Y7vrz8rKMrfJ/2NLly41tx06dEgAsPp/kT9L7e/8zTffCABi3rx5Vu2ffvqpACD+9a9/2R1jS+/evQUAMXHiRKv2zMxMAUA8+OCDLs9B6jd0fRO/5pVXXkHjxo3RpEkTdOrUCQsWLMCgQYPw5Zdfmve5cOEC/vvf/+L2229HeHg4zpw5Y361bNkSbdu2xTfffGPev0+fPsjLy8PevXsBAN9++y06duyIESNG4NChQzh06JC53WQyoXv37pr6+uSTT+q6th49euDGG2+0auvTpw8qKyvNrt5Tp05h69atuOOOO9C+fXvzfgaDAU8//bSuzwOAhx9+GDExMeb1mJgY/OMf/0BBQQGysrKs9o2Li8Po0aOt2nbu3IkjR45gzJgxSExMNLcbjUY899xzAIDMzEy7z3366aethgw6d+6MW265Bd9++y0KCwvN7Q0aNAAAVFdXo6CgAGfOnMF1112HmJgYbN261e687du3twvwevbZZwEAn3/+udO/hTfo168fWrdujSVLlli1L1myBDExMbjrrrs0n0vut8zgwYPRvn17RpsTjlET/2bcuHFYv349vvrqK7z55puIi4vDqVOnEBERYd7nzz//RHV1NZYtW4bGjRvbvfbt24dTp06Z9+/Tpw8ASYjlZZ8+fdCrVy8EBweb27OyspCWluYyUlimXbt2uq6tdevWdm2ya/fs2bMAYH5oUIq0zFVXXaXr8wDJlWtLhw4dAMBuzL9169Z2ruODBw8CAK655hq788hj2PI+Wj63urrafI2AdC/S09PRoEEDNGzY0HwPCwoKcP78eU3nveKKK9CwYUO76/EFBoMB48ePx65du7Bz504A0pDJxo0bce+991r9nzqjYcOGaNq0qV371VdfjTNnzqCgoMCr/SZ1C45RE7+mbdu26NevHwBpnPOmm25Cz5498fDDD5uDoMTlAKYRI0Zg7NixqudR/mCmpKSgUaNG2LhxI2677TYcOnQIffv2RVRUFLp06YKNGzeiZ8+eOHHiBCZOnKi5ryaTSde1OYtClq9JOAjOche14iPyZ9huU7seb/bH9nO3bduG/v37o23btnjttdfQqlUrREREwGAw4J577kF1dbXdORwVUxFC+KzQii0PPPAApkyZgsWLF2PBggVYunQpqqur8eCDD2o+h7PrcLadBAYUalKnuPHGG3HffffhX//6FyZMmIAbb7wRbdu2hcFgQFlZmVnUnREUFIRevXph06ZNWL9+PYKDg9G7d28AQN++fbF48WL07NkTgMX6ri1kqzsnJ8dum1qbK/bs2YM777zTqk0eAlCz8G1p06YNAOCPP/6w2/b7779b7WP7GbZufjmAr2XLlgCAlStXoqqqCl999RVatWpl3u/ixYuq1rR8Pbbk5eWhoKBA0/V4g4SEBNx5551YsWIF3nzzTSxbtgwpKSm44YYbNJ/j/PnzOHnypJ1VnZOTg/j4eERHR3u726QOQdc3qXO8+OKLMBqNePHFFwFI7uJbb70Va9euxY8//mi3vxAC+fn5Vm19+vTB+fPnMWfOHHTt2hVRUVHm9lOnTmHBggVo2LAhUlJSfH9BTkhISEC3bt3w//7f/8O+ffvM7UIIvPnmm7rP995771m5UQsKCvD++++jYcOGuPnmm10en5KSguTkZHz00UfIzc01t1dXV2PmzJkApLFVW9544w0ra3znzp3YsGED+vTpYxYh2cNga7XPmDFD1ZoGgH379tmN4b7++usO++EukZGRDh8WAOChhx5CQUEB/vGPf+DIkSO6rGmZ1157zWr9888/x759+1hkhdCiJnWPtm3b4p577sEnn3yC77//HmlpaXjvvfdw00034eabb8b999+PlJQUVFdX4+DBg1i7di1GjRplVb9ZtpT37NmDF154wdyempqK8PBw7NmzB4MGDfI4vccbzJo1C3379kXPnj3x6KOPonHjxvjyyy/NwqHHLRofH4/u3btj7NixEEJg6dKlOHr0KBYvXmwO5HKG0WjEggULkJGRga5du+Lvf/87GjVqhMzMTHz33XcYP348UlNT7Y47cuQIBgwYgDvvvBN5eXmYP38+IiIiMGvWLPM+gwcPxuzZs3HrrbfioYceQmhoKNavX4/ffvsN8fHxqv3p2LEj7rvvPowfPx7t2rVDVlYWVq9ejd69e2PEiBGa/y6u6N69OzZs2IA333wTSUlJaNCgAe644w7z9ltuuQWtW7fGxx9/jIiICIwcOVLX+ePj45GZmYkTJ04gPT3dnJ6VkJCAadOmee06SB2lVmLNCXGBnDozc+ZM1e179uwRQUFBIj093dyWn58v/vnPf4p27dqJsLAwERMTI6699loxYcIE8ccff9idIyEhQQAQ3377rVV7nz59BAAxd+5cu2OcpWc5Ag7Ss9TSfdTSiIQQ4rvvvhM9e/YU4eHhIi4uTowZM8acSvTwww87/Gzb865fv15MmTJFJCUlidDQUHHNNdeITz75xG7/5ORk0bt3b4fn+/7770X//v1FdHS0CAsLE9dee6145513rFKwhLD8bU6fPi3uu+8+ERsbKyIiIsTNN98sduzYYXfezz//XKSkpAiTySTi4uLE8OHDxZEjR1T7I/8N169fL7p16ybCw8NFkyZNxGOPPSYKCwtVr9/d9KycnBzRp08fERkZKQCI5ORku77PmDHDaZqeI3r37i2Sk5PFgQMHxJ133imioqJEZGSkuPPOO8X+/ft1nYvUTwxCeDlahRBSI+zYsQNdu3bFzJkz7VJ7bFm2bBkeeOABZGVlIT09vWY6GGC89dZb+L//+z9s3rwZaWlpmo9LT0/H4cOHnVZfI4FN7fv1CCFOEULg0qVLdm3ymGb//v1ro1tEQWVlJd577z106NBBl0gTogWOURPi55SVlSE5ORn33XcfrrzySly4cAFr167Fli1bMHLkyFoPeAtkDh06hC1btmDt2rU4ePCgat10QjyFQk2InxMSEoLbbrsNa9euRV5eHqqqqsy5xk899VRtdy+g+e677/DAAw8gPj4eU6ZM8WoAGyEyHKMmhBBC/BiOURNCCCF+DIWaEEII8WMo1IQQQogfQ6EmhBBC/BgKNSGEEOLHUKgJIYQQP4ZCTQghhPgxFGpCCCHEj6FQE0IIIX7M/wexj9vQDqJ9+QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Parameters\n", + "N = 1000 # Number of nodes\n", + "k = 10 # Each node is connected to k nearest neighbors in ring topology\n", + "p_values = np.logspace(-4, 0, num=100) # Rewiring probabilities\n", + "\n", + "# Initialize lists to store results\n", + "average_path_lengths = []\n", + "clustering_coefficients = []\n", + "\n", + "# Generate the initial regular lattice\n", + "G0 = nx.watts_strogatz_graph(N, k, 0)\n", + "d0 = nx.average_shortest_path_length(G0)\n", + "C0 = nx.average_clustering(G0)\n", + "\n", + "for p in p_values:\n", + " G = nx.watts_strogatz_graph(N, k, p)\n", + " d = nx.average_shortest_path_length(G)\n", + " C = nx.average_clustering(G)\n", + " average_path_lengths.append(d / d0)\n", + " clustering_coefficients.append(C / C0)\n", + "\n", + "# Plotting\n", + "plt.figure(figsize=(5, 4))\n", + "\n", + "# Average path length plot\n", + "plt.plot(p_values, average_path_lengths, marker='o', linestyle='-', color='blue', label=r\"$d(p)/d(0)$\")\n", + "\n", + "# Clustering coefficient plot\n", + "plt.plot(p_values, clustering_coefficients, marker='o', linestyle='-', color='red', label=r\"$\\langle C(p) \\rangle / \\langle C(0) \\rangle$\")\n", + "plt.xscale('log')\n", + "plt.xlabel('Rewiring probability p')\n", + "plt.legend(frameon=False)\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/examples/chap_04.ipynb.txt b/_sources/examples/chap_04.ipynb.txt new file mode 100644 index 0000000..b7f5012 --- /dev/null +++ b/_sources/examples/chap_04.ipynb.txt @@ -0,0 +1,561 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 4](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_04.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **THE SCALE-FREE PROPERTY**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from netsci.utils import generate_power_law_dist, generate_power_law_dist_bounded" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "LABELSIZE = 13\n", + "plt.rc('axes', labelsize=LABELSIZE)\n", + "plt.rc('axes', titlesize=LABELSIZE)\n", + "plt.rc('figure', titlesize=LABELSIZE)\n", + "plt.rc('legend', fontsize=LABELSIZE)\n", + "plt.rc('xtick', labelsize=LABELSIZE)\n", + "plt.rc('ytick', labelsize=LABELSIZE)\n", + "# set legend font size \n", + "plt.rc('legend', fontsize=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Comparing Poisson and Powe-law Distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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27aNzp074+rqyujRo3F2dub3339n5MiRnD17Nt3uAe3bt8fHx4fJkydz7do1Zs+eTefOnenWrRsLFy5k0KBBWFlZMXv2bHr06MGlS5coV66c3jb+/PNPZs2axbBhw/Dw8GDLli18/fXXhIaGsmLFCl25oKAg/v33X7p06YK3tzfx8fFs2LCBd999l8jISMaPH58mvj59+mBra8tHH32ESqXC09Mz3fd+6dIl2rRpg4eHh+5C9/79+xw6dIj//vuPpk2bAhAeHk79+vV5+PAh77//PpUrV+bQoUPMnDmTPXv2cOjQIaytrfW2PX78eJ4+fcr777+PhYUFP/30EwMHDqRChQo0adIk0+8kJSWFDh06sG/fPrp27cro0aMJCwtj3rx57Nixg0OHDlGlShWaNWvGypUr+fDDD3F1deXzzz8HoEaNGpluPyNXrlwB0DX5z8lv43ndu3dn3759vPfeewQEBJCQkMDly5cJCgrSxbpq1Sr69+9P06ZNmTRpEjY2NoSHh7Njxw4iIiJ0311Of6fu7u5MmDCByMhIfvjhBzp27EhoaCj29vaZxn7mzBk2bdrEG2+8QdmyZUlKSmL79u18+umnXL9+nZ9//jnNOln9zseMGcOsWbNo1KgRI0aMIDo6mqlTp1KqVKlMY8qKF7/DrP52S5cujZ+fH7t379YlcykpKezfvx8TExN2797Np59+CmhaGB06dIiePXvq9nvz5k0aNWpEUlIS77zzDuXLl+fatWvMnz+fvXv3cvz4cRwdHfVizerfaXYkJSXx/fff0717d7p27YqNjQ1Hjx5l8eLF/Pvvv5w4cULX7adly5YsX76cJ0+eYGNjA8CePXswMTFh//79JCUl6cru2bMHHx+fNMex7LK0tKR///5MnjyZv//+O9Nj9cv+fqpUqcLKlSvp168fTZs25d133wU0Nxmet2nTJubMmcMHH3zA+++/j4ODw0vj7N+/P6ampnzyySfExcXx888/06FDB7Zt20bbtm2z/b4///xzXFxc+OOPP5g5c6bu99m4ceMM18mv425wcDCdOnWievXqfPrppzg5OXHnzh327t3L5cuXqVq1arbfnxCiiFCEEKIQcXFxUezt7bNcPiUlRfHx8VHs7e2V8PBwveXt27dXAOXAgQO65QMGDFAAZcSIEXrb+eijjxRA8fb2VuLi4nTLT58+rQDK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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.stats import poisson\n", + "\n", + "# Parameters\n", + "mean_poisson = 11\n", + "alpha_power_law = 2.1\n", + "x_values = np.arange(1, 1000)\n", + "\n", + "# Poisson Distribution\n", + "poisson_pmf = poisson.pmf(x_values, mean_poisson)\n", + "\n", + "# Power Law Distribution\n", + "power_law_pdf = x_values ** (-alpha_power_law)\n", + "# Normalize power-law PDF to make it a valid probability distribution\n", + "power_law_pdf /= np.sum(power_law_pdf)\n", + "\n", + "# Plotting\n", + "\n", + "fig, ax = plt.subplots(1,2, figsize=(12,4))\n", + "\n", + "ax[0].plot(x_values, poisson_pmf, label='Poisson Distribution (mean=11)')\n", + "ax[0].plot(x_values, power_law_pdf, label='Power Law Distribution (α=-2.1)')\n", + "ax[0].set_xlim([0,50])\n", + "ax[0].set_ylim([0,0.15])\n", + "ax[0].set_xlabel('x')\n", + "ax[0].set_ylabel(r'$p_k$')\n", + "fig.suptitle('Comparison of Poisson and Power Law Distributions')\n", + "ax[0].legend(frameon=False)\n", + "ax[1].loglog(x_values, poisson_pmf, label=\"poisson\")\n", + "ax[1].loglog(x_values, power_law_pdf, label=\"powerlaw\")\n", + "ax[1].set_ylim([1e-6, 1])\n", + "ax[1].set_xlabel('x')\n", + "ax[1].set_ylabel(r'$p_k$')\n", + "ax[1].legend(frameon=False);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### load sample graphs of the book" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Actor', 'Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW']\n" + ] + } + ], + "source": [ + "from netsci.utils import list_sample_graphs, load_sample_graph\n", + "from netsci.analysis import graph_info\n", + "\n", + "nets = list(list_sample_graphs().keys())\n", + "print(nets)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : True\n", + "Number of nodes : 23133\n", + "Number of edges : 93439\n", + "Average degree : 8.0784\n", + "Connectivity : disconnected\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import Counter\n", + "from scipy.stats import poisson\n", + "G_collab = load_sample_graph(\"Collaboration\")\n", + "graph_info(G_collab, quick=True)\n", + "in_degrees = list(dict(G_collab.in_degree()).values())\n", + "out_degrees = list(dict(G_collab.out_degree()).values())\n", + "in_degree_count = Counter(in_degrees)\n", + "out_degree_count = Counter(out_degrees)\n", + "\n", + "k_in, pk_in = zip(*in_degree_count.items())\n", + "k_out, pk_out = zip(*out_degree_count.items())\n", + "\n", + "plt.figure(figsize=(6,4))\n", + "plt.loglog(k_in, pk_in, 'r.', label=r\"$k_{in}$\")\n", + "plt.loglog(k_out, pk_out, 'b.', label=r\"$k_{out}$\")\n", + "plt.legend(frameon=1)\n", + "plt.xlabel(r\"$k_{in}, k_{out}$\")\n", + "plt.ylabel(\"pk\");" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + " α = 3.042, σ = ± 0.327\n", + "Calculating best minimal value for power law fit\n", + " α = 5.496, σ = ± 0.937\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Values less than or equal to 0 in data. Throwing out 0 or negative values\n", + "Values less than or equal to 0 in data. Throwing out 0 or negative values\n" + ] + } + ], + "source": [ + "# find the exponent by fitting a power law by powerlaw package\n", + "import powerlaw\n", + "\n", + "for x in [k_in, k_out]:\n", + " fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting\n", + " print(f\" α = {fit.power_law.alpha:6.3f}, σ = ± {fit.power_law.sigma:6.3f}\") # the exponent" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Generate the powerlaw distribution (bounded)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[0;31mSignature:\u001b[0m \u001b[0mgenerate_power_law_dist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxmin\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "generate power law random numbers p(k) ~ x^(-a) for a>1\n", + "\n", + "Parameters\n", + "-----------\n", + "N:\n", + " is the number of random numbers\n", + "a:\n", + " is the exponent\n", + "xmin:\n", + " is the minimum value of distribution\n", + "\n", + "Returns\n", + "-----------\n", + "value: np.array\n", + " powerlaw distribution\n", + "\u001b[0;31mFile:\u001b[0m ~/git/workshops/netsci/netsci/utils.py\n", + "\u001b[0;31mType:\u001b[0m function" + ] + } + ], + "source": [ + "generate_power_law_dist?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[0;31mSignature:\u001b[0m\n", + "\u001b[0mgenerate_power_law_dist_bounded\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mN\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mxmin\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mxmax\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mseed\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "Generate a power law distribution of floats p(k) ~ x^(-a) for a>1\n", + "which is bounded by xmin and xmax\n", + "\n", + "parameters :\n", + " N: int\n", + " number of samples in powerlaw distribution (pwd).\n", + " a: \n", + " exponent of the pwd.\n", + " xmin: \n", + " min value in pwd.\n", + " xmax: \n", + " max value in pwd.\n", + "\u001b[0;31mFile:\u001b[0m ~/git/workshops/netsci/netsci/utils.py\n", + "\u001b[0;31mType:\u001b[0m function" + ] + } + ], + "source": [ + "generate_power_law_dist_bounded?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "plotting the powerlaw distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_distribution(vrs, N, a, xmin, ax, labelsize=10):\n", + "\n", + " # plotting the PDF estimated from variates\n", + " bin_min, bin_max = np.min(vrs), np.max(vrs)\n", + " bins = 10**(np.linspace(np.log10(bin_min), np.log10(bin_max), 100))\n", + " counts, edges = np.histogram(vrs, bins, density=True)\n", + " centers = (edges[1:] + edges[:-1])/2.\n", + "\n", + " # plotting the expected PDF\n", + " xs = np.linspace(bin_min, bin_max, N)\n", + " expected_pdf = [(a-1) * xmin**(a-1) * x**(-a) for x in xs] # according to eq. 4.12 network science barabasi 2016\n", + " ax.loglog(xs, expected_pdf, color='red', ls='--', label=r\"$x^{-\\gamma}$,\"+ r\"${\\gamma}$=\"+f\"{-a:.2f}\")\n", + " ax.loglog(centers, counts, 'k.', label='data')\n", + " ax.legend(fontsize=labelsize)\n", + " ax.set_xlabel(\"values\")\n", + " ax.set_ylabel(\"PDF\")\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.000035809608483 74.39513593875918\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(2)\n", + "\n", + "N = 10000\n", + "a = 3.0\n", + "xmin = 1\n", + "xmax = 100\n", + "\n", + "fig, ax = plt.subplots(1, figsize=(5,3))\n", + "x = generate_power_law_dist_bounded(N, a, xmin, xmax)\n", + "print (np.min(x), np.max(x))\n", + "plot_distribution(x, N, a, xmin, ax)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + "fit.power_law.alpha=2.995340848455978\n", + "fit.power_law.sigma=0.02600579145725683\n" + ] + } + ], + "source": [ + "# find the exponent by fitting a power law by powerlaw package\n", + "\n", + "import powerlaw\n", + "fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting\n", + "print(f\"{fit.power_law.alpha=}\") # the exponent\n", + "print(f\"{fit.power_law.sigma=}\") # standard error" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate descereted power law distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAF9CAYAAAD4A0k5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABL6ElEQVR4nO3deVxVdf7H8de91w0EVMIyvYYiuORSqbSYGTmVY4s2/dLUyXRi1CbNyNTSHJcsyTZzadFkstLSmhknKy1NUafUXFKzkgQV5aaTO4soCJzfHzeuIDvcy114Px+P+/jBOd97zvc258f9+F0+H5NhGAYiIiIiPsLs7g6IiIiIOJOCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn1LL3R3wRXl5eRw5coTAwEBMJpO7uyMiIuI1DMMgPT2dpk2bYjZXbgxGwY0LHDlyhObNm7u7GyIiIl4rJSUFq9VaqfcquHGBwMBAwP4/TFBQkJt7IyIi4j3S0tJo3ry547u0MhTcuED+VFRQUJCCGxERkUqoyrIOLSgWERERn6LgRkRERHyKghsRERHxKVpzIyIiLpebm8uFCxfc3Q3xELVr18Zisbjs+gpuRETEpTIyMrDZbBiG4e6uiIcwmUxYrVYCAgJccn0FNyIi4jK5ubnYbDb8/f1p3LixEpsKhmFw/PhxbDYbERERLhnBUXAjIiIuc+HCBQzDoHHjxvj5+bm7O+IhGjduTHJyMhcuXHBJcKMFxSIi4nIasZGCXP08KLjxQjabjfj4eGw2m7u7IiIi4nEU3HiZuLg4QkND6dmzJ6GhocTFxbm7SyIiIh5FwY0XsdlsDB8+nLy8PMBefXzEiBEawRERESlAwY0XSUxMdAQ2+XJzc0lKSnJTj0REpCQ//vgjrVq14n//+x8AJ06c4NprryU7O9vNPfN9Cm68SEREBGZz4f/JLBYL4eHhbuqRiIiUpEOHDgwYMIB169YBMG3aNJ5++mnq1Knjlv7ExsYSGRlJYGAgl19+Offddx+//PJLme+bOnUqJpOp0KtJkyaF2rz55pu0bNmSevXq0aVLF/773/+66mOUi4IbL2K1WlmwYIFj25zFYmH+/PlYrVY390xEpGbq0qULHTp0KPI6cuQIAO3bt2ffvn0kJSWxY8cOBgwY4La+btiwgZEjR7JlyxbWrFlDTk4Od955J2fPni3zve3bt+fo0aOO1549exznli1bRkxMDM8++yw7d+7klltuoXfv3hw+fNiVH6d0hjhdamqqARipqakuuX5KSooRHx9vpKSkuOT6IiLOcu7cOePnn382zp075+6uVNiHH35o1K1b17DZbI5j0dHRRseOHY0zZ86U6xpbt241Bg4caPTr189Yt25die0iIiKMG2+80cjMzHQcy8vLM2644QZj3Lhxlf8QpTh27JgBGBs2bCi13ZQpU4xrrrmmxPPXX3+98eijjxY61rZtW+OZZ54p8T2lPRfO+A7VyI0XslqtREVFacRGRMSFBgwYQJs2bYiNjQXs00pfffUVq1atokGDBuW6RkREBGvWrCEzM5PbbrutxHbLli1j586dfPvtt45jS5Ys4eDBg0yaNAmAGTNmEBAQUOqrItNBqampAAQHB5fZNjExkaZNm9KyZUsGDBjAgQMHAMjOzmbHjh3ceeedhdrfeeedbNq0qdx9cTZlKBYRkepX2lSIxQL16pWvrdkMBTMfl9S2fv2K9Q97orkXXniBBx54gKZNmzJ79mz++9//0qxZs3Jfo2HDhgC8+OKLpba77rrruOaaa0hISOD2228nMzOTCRMmMH36dIKCggB49NFH6d+/f6nXKW/fDMNgzJgxdO/enQ4dOpTa9oYbbuD999+ndevW/Pbbbzz//PN069aNn376iaysLHJzc7niiisKveeKK65wLKR2BwU3IiJS/UormHjXXfDFFxd/v/xyyMwsvu2tt8L69Rd/b9ECTpwo2q6SRTvvuecerr76aqZNm8bq1atp3759hd5/4cIFgoODywwgAFq3bu1Y4PvSSy8RHBxMdHS043xwcHC5RlmWLFnCiBEjHL+vWrWKW265pVCbUaNG8cMPP/DNN9+Ueb3evXs7fu7YsSM33XQTrVq14r333nOsIbo047BhGG7NSq3gRkREpARfffUVCQkJxY5OlEdCQgJt2rQpV9s2bdqwceNGbDYbL7/8Mp999lmhukszZsxgxowZpV5j1apV9OnThxtuuMFx7NLRnMcff5wVK1awcePGSi1vqF+/Ph07diQxMZGQkBAsFkuRUZpjx45V6r+Xsyi4ERGR6peRUfK5SwspHjtWcttL0mOQnFzpLl3q+++/p1+/fsyfP5+lS5fy97//nU8++aRC1+jYsSMrVqwoV9vWrVvzzjvv8Mwzz3DHHXfQs2fPQufLOy3l5+dHYGBgkXOGYfD444+zfPly1q9fT8uWLcv/QQrIyspi79693HLLLdSpU4cuXbqwZs0a/vSnPznarFmzhr59+1bq+s6g4EZERKpfRdbAuKptKZKTk7n77rt55plnGDx4MFdffTWRkZHs2LGDLl26OOUel2rdujUpKSn885//5McffyxyvrzTUiUZOXIkH374IZ9++imBgYGO0ZYGDRo4KrbPmzeP5cuXs3btWsf7xo4dy7333stVV13FsWPHeP7550lLS2PIkCEAjBkzhsGDB9O1a1duuukmFixYwOHDh3n00Ucr3deq0m4pERGRAk6dOkXv3r3p06cPEydOBOz5bO69916effZZp9xj0aJFRdaktG7dGrCvh3FFcta33nqL1NRUoqKiuPLKKx2vZcuWOdqcOHGC/fv3F3qfzWZj4MCBtGnThvvvv586deqwZcsWQkNDAXjwwQd5/fXXee6557j22mvZuHEjK1eudJx3B5NhVHKVlZQoLS2NBg0akJqa6ljlLiJSE50/f56DBw86steK3dSpU1m/fj3rCyyGPnXqFJdddhm7d++mU6dO7utcNSjtuXDGd6impURERKrZV199xezZswsd2717N3Xq1KFdu3Zu6pXvUHAjIiJSzTZv3lzk2O7du7n66qupXbu2G3rkW7TmRlzGZrMRHx+PzWZzd1dERDxeTEwMO3fudHc3fIKCG3GJuLg4QkND6dmzJ6GhocTFxbm7SyIiUkMouBGns9lsDB8+nLy8PADy8vIYMWKERnBERKRaKLgRp0tMTHQENvlyc3NJSkpyU49ERKQmUXAjThcREYH5kqyhFovFJXkbRERELqXgRpzOarWyYMECR00Ui8XC/PnzK1XDREREpKIU3BQjJyeHJ554guDgYBo2bEh0dDTnz593d7e8SnR0NMnJycTHx5OcnFyosq2IiIgrKbgpxowZM4iPj2fPnj0kJiby888/M378eHd3CzZsgClT4Nw5d/ekXKxWK1FRURqxERGRaqXgphgLFy5k4sSJNGvWjMaNGzN16lTee+89cnNz3depCxfgscfgueegQwdYtcp9fREREfFgXh3cxMbG0q9fP8LCwjCZTLRo0aLU9h999BFdunTBz8+PkJAQBg4cyKFDhwq1OXPmDCkp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1q188803rFmzho0bN/LUU08xefJkPv30U6Kiosr7n0FEqkjBjYh4jEGDBjFu3Djef/99brvtNj7++GN69uyJ1WoFYM+ePfzwww9MnjyZadOmFXrvwoULy3WP4OBgAE6dOuX4GeDAgQNF2rZu3Zovv/wSq9VKx44dy7y22WymR48e9OjRA7CP/HTp0oUpU6awYcOGcvVPRKpO01Ii4jEaN25M7969+c9//sOSJUs4c+ZMoSkpi8UCXBxRyffjjz+Weyt469atAfj6668LHX/11VeLtM0fMZo4cWKxIzvHjh1z/HzixIli7xUYGMipU6fK1TcRcQ6N3IiIRxkyZAgrVqzgySefJCAggPvvv99xrl27drRv356XXnqJzMxM2rRpw759+5g/fz4dOnTg+++/L/P6AwcOZOLEiQwfPpyEhAQuu+wyVq1aVWxwEhkZybRp05gyZQrXXnst/fv3p2nTphw9epQdO3awcuVKsrOzARg2bBg2m40777yT0NBQsrKy+OSTTzh27Bjjxo1z3n8gESmTghsR8Sj33HMPwcHBnDp1iqFDh+Lv7+84Z7FY+OKLLxg7dizvvfceZ8+epUOHDrz33nvs3r27XMFNUFAQK1euZMyYMcyYMcMRQC1evJhGjRoVaT958mS6dOnCnDlzeP311zl79iyXX345HTp0YPbs2Y52gwcPZtGiRbz33nscP36coKAg2rZty4cffsjAgQOd8x9HRMrFZFw6visiIiLixbTmRkRERHyKghsRERHxKQpuRERExKcouBERERGfouBGREREfIqCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn6LgRkRERHzK/wPRJZt/vcgAhgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from netsci.utils import generate_power_law_discrete\n", + "# Example usage\n", + "gamma = 2.5 # Power-law exponent\n", + "k_min = 1 # Minimum value of k\n", + "k_max = 1000 # Maximum value of k\n", + "size = 100000 # Number of samples\n", + "\n", + "samples = generate_power_law_discrete(size, gamma, k_min, k_max, seed=1)\n", + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "plot_distribution(samples, size, gamma, k_min, ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Powerlaw package\n", + "\n", + "- Alstott, J., Bullmore, E. and Plenz, D., 2014. powerlaw: a Python package for analysis of heavy-tailed distributions. PloS one, 9(1), p.e85777.\n", + "\n", + " - probability density function (PDF), \n", + " - cumulative distribution function (CDF)\n", + " - complementary cumulative distribution (CCDF)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + "xmin progress: 00%\r" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fit.power_law.alpha=2.995340848455978\n", + "fit.power_law.sigma=0.02600579145725683\n", + "----------------------------------------------------------------------\n", + "(894.9727455051284, 5.263968413468816e-22)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import powerlaw\n", + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "fit = powerlaw.Fit(x) # xmax=50\n", + "print(f\"{fit.power_law.alpha=}\")\n", + "print(f\"{fit.power_law.sigma=}\")\n", + "print(\"-\"*70)\n", + "print(fit.distribution_compare(\"power_law\", \"exponential\"))\n", + "\n", + "powerlaw.plot_pdf(x, linear_bins=0, color='k', marker='o', lw=1, ax=ax);" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "fit.plot_pdf(c='b', lw=2, marker=\"*\", label='pdf', ax=ax)\n", + "fit.power_law.plot_pdf(c='b', ax=ax, ls='--', label='fit pdf')\n", + "fit.plot_ccdf(c='r', ax=ax, ls=\"-\", label='ccdf')\n", + "fit.power_law.plot_ccdf(c='r', ax=ax, ls='--', label='fit ccdf')\n", + "ax.legend(frameon=False);\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/examples/quick_guide_igraph.ipynb.txt b/_sources/examples/quick_guide_igraph.ipynb.txt new file mode 100644 index 0000000..3d250aa --- /dev/null +++ b/_sources/examples/quick_guide_igraph.ipynb.txt @@ -0,0 +1,375 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [igraph](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/quick_guide_igraph.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Quick Guide for igraph**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, ensure that python-igraph is installed. You can install it using pip:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.11.6\n" + ] + } + ], + "source": [ + "try:\n", + " import igraph\n", + " print(igraph.__version__)\n", + "except ImportError:\n", + " print(\"igraph is not installed.\")\n", + " \n", + "# If `igraph` is not installed, you can install it using the following command (uncomment the following line):\n", + "# !pip install python-igraph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Creating Graphs\n", + "- Empty Graph\n", + "\n", + "To create an empty graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import igraph as ig\n", + "g = ig.Graph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Graph with Nodes and Edges\n", + "To create a graph with 10 nodes and specific edges, also get summary of the graph with `print(g)`:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IGRAPH U--- 10 2 --\n", + "+ edges:\n", + "0--1 0--5\n" + ] + } + ], + "source": [ + "g = ig.Graph(n=10, edges=[[0, 1], [0, 5]])\n", + "print(g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will display the number of vertices and edges, and list the edges if the graph is small." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assigning Attributes\n", + "You can set and retrieve attributes for graphs, vertices, and edges." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import igraph as ig\n", + "\n", + "# Create a graph with 3 nodes\n", + "g = ig.Graph(n=3)\n", + "\n", + "# Assign a 'color' attribute to all nodes\n", + "g.vs[\"color\"] = [\"red\", \"green\", \"blue\"]\n", + "\n", + "# Assign a 'label' attribute to the first node\n", + "g.vs[0][\"label\"] = \"Node 1\"\n", + "\n", + "# Assign a 'label' attribute to the second node\n", + "g.vs[1][\"label\"] = \"Node 2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a graph with edges\n", + "g.add_edges([(0, 1), (1, 2)])\n", + "\n", + "# Assign a 'weight' attribute to all edges\n", + "g.es[\"weight\"] = [1.5, 2.5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Retrieving Attributes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'color': 'red', 'label': 'Node 1'}\n" + ] + } + ], + "source": [ + "# Get all attributes for the first node\n", + "node_attributes = g.vs[0].attributes()\n", + "print(node_attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['red', 'green', 'blue']\n" + ] + } + ], + "source": [ + "# Get the 'color' attribute for all nodes\n", + "colors = g.vs[\"color\"]\n", + "print(colors)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'weight': 1.5}\n" + ] + } + ], + "source": [ + "# Get all attributes for the first edge\n", + "edge_attributes = g.es[0].attributes()\n", + "print(edge_attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.5, 2.5]\n" + ] + } + ], + "source": [ + "# Get the 'weight' attribute for all edges\n", + "weights = g.es[\"weight\"]\n", + "print(weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Load graph from adjacency list" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File /Users/tng/git/workshops/netsci/netsci/datasets/networks.zip already exists.\n", + "path='/Users/tng/git/workshops/netsci/netsci/datasets/'\n", + "Number of vertices: 23133\n", + "Number of edges: 93439\n", + "Is directed: False\n", + "Density: 0.000349\n", + "Average clustering coefficient: 0.264317\n" + ] + } + ], + "source": [ + "import os\n", + "from netsci.utils import list_sample_graphs\n", + "from netsci.utils import get_sample_dataset_path\n", + "from netsci.utils import download_sample_dataset\n", + "\n", + "def load_edges(filepath):\n", + " edges = []\n", + " with open(filepath, 'r') as file:\n", + " for line in file:\n", + " if line.startswith('#'):\n", + " continue # Skip comments\n", + " A, B = map(int, line.split())\n", + " edges.append((A, B))\n", + " return edges\n", + "\n", + "def load_graphi(filepath:str, directed:bool=False):\n", + " edges = load_edges(filepath)\n", + " G = ig.Graph(edges=edges, directed=directed)\n", + "\n", + " return G\n", + "\n", + "path = get_sample_dataset_path()\n", + "\n", + "# make sure you have downloaded the sample dataset\n", + "download_sample_dataset()\n", + "\n", + "file_name = os.path.join(path, \"collaboration.edgelist.txt\")\n", + "print(f\"{path=}\")\n", + "\n", + "G = load_graphi(file_name, directed=False)\n", + "\n", + "print(f\"{'Number of vertices:':<30s} {G.vcount():20d}\")\n", + "print(f\"{'Number of edges:':<30s} {G.ecount():20d}\")\n", + "print(f\"{'Is directed:':<30s} {str(G.is_directed()):>20s}\")\n", + "print(f\"{'Density:':<30s} {G.density():20.6f}\")\n", + "print(f\"{'Average clustering coefficient:':30s}{G.transitivity_undirected():20.6f}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Visualizing Graphs" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# need to install matplotlib and pycairo\n", + "# !pip install pycairo -q " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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GZDftW/fPtxuN99//705e/jhh3n00UdxOp0WJhMRkaKgMiC/KTMzk2nTppGXlwdA6dKlSUxMpE2bNhYnExGRoqIyIJdUUFDAvHnzWLFihTmrV68eLpeLG2+80cJkIiJS1FQG5FdOnDhBWloa27dvN2edO3fmqaeeIioqysJkIiJSHFQG5Ge2bNnC+PHjOX36NAAREREMHTqU+++/X8sGRURClMqAAIXLBpctW8aCBQvMZYM33HADLpeLRo0aWZxORESKk8qAcP78eaZOncqnn35qzlq0aEFSUhLly5e3MJmIiJQElQGb27NnD263m4MHD5qzvn370rdvXy0bFBGxCZUBG/vwww+ZOXMmFy5cAKBs2bIkJibSunVri5OJiEhJUhmwofz8fObOncuqVavMWYMGDXC5XFSrVs3CZCIiYgWVAZs5duwYaWlp7Nixw5x16dKF4cOHExkZaWEyERGxisqAjXz++edMmDCBs2fPAoXLBocPH07Xrl0tTiYiIlZSGbABv9/P0qVLWbRoEYZhAFC1alVSU1Np0KCBxelERMRqKgMh7ty5c0yZMoWNGzeas9atW5OYmEjZsmUtTCYiIoFCZSCE7dq1C7fbzZEjRwBwOBz8+c9/5pFHHiEsLMzidCIiEihUBkLUmjVreOGFF8jPzwegXLlyJCUl0bJlS4uTiYhIoFEZCDH5+fnMnj2b1atXm7NGjRrhcrm44YYbLEwmIiKBSmUghBw5cgSPx8O3335rzv7rv/6LwYMHa9mgiIhclspAiPjss8+YNGkS586dA6BUqVKMGDGCzp07W5xMREQCncpAkPP5fLz66qssWbLEXDZYvXp1UlNTqVevnsXpREQkGKgMBLGzZ88yceJENm3aZM7atm3LM888Q5kyZSxMJiIiwURlIEh98803eDwejh07BkBYWBh/+ctf6NmzJw6Hw+J0IiISTFQGgoxhGKxevZrZs2dTUFAAQIUKFRg7dizNmze3NpyIiAQllYEgkpeXx/PPP88HH3xgzpo0aUJKSgqVK1e2MJmIiAQzlYEgcejQIdxuN99995056969O4MGDSIiIsLCZCIiEuxUBoLAhg0bmDx5MufPnwcgKiqKUaNG8cc//tHiZCIiEgpUBgKYz+dj4cKFvP766+asZs2auFwu6tSpY10wEREJKSoDAerUqVNMmDCBLVu2mLN27dox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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "# Compute a layout\n", + "layout = g.layout(\"kk\") # Kamada-Kawai layout\n", + "\n", + "# Define visual style\n", + "visual_style = {}\n", + "visual_style[\"vertex_size\"] = 20\n", + "visual_style[\"vertex_label\"] = range(g.vcount())\n", + "visual_style[\"layout\"] = layout\n", + "visual_style[\"bbox\"] = (300, 300) # Bounding box size\n", + "visual_style[\"margin\"] = 20\n", + "\n", + "# Plot the graph\n", + "ig.plot(g, **visual_style)\n", + "\n", + "# Plot the graph in the axes\n", + "ig.plot(g, target=ax, **visual_style)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/examples/quick_guide_networkx.ipynb.txt b/_sources/examples/quick_guide_networkx.ipynb.txt new file mode 100644 index 0000000..60bf575 --- /dev/null +++ b/_sources/examples/quick_guide_networkx.ipynb.txt @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Networkx](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/quick_guide_networkx.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### **Quick Guide for Networkx**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating Graphs\n", + "\n", + "#### Basic Graph Types\n", + "\n", + "NetworkX provides several types of graphs:\n", + "- **Graph**: An undirected graph.\n", + "- **DiGraph**: A directed graph.\n", + "- **MultiGraph**: An undirected graph that can have multiple edges between nodes.\n", + "- **MultiDiGraph**: A directed graph with multiple edges." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can create an empty graph as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import networkx as nx\n", + "\n", + "G = nx.Graph() # or nx.DiGraph(), nx.MultiGraph(), nx.MultiDiGraph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Adding Nodes and Edges\n", + "You can add nodes and edges to a graph using the following methods:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1: 1, 2: 2, 3: 2, 4: 1}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Add a single node\n", + "G.add_node(1)\n", + "\n", + "# Add multiple nodes\n", + "G.add_nodes_from([2, 3])\n", + "\n", + "# Add an edge between two nodes\n", + "G.add_edge(1, 2)\n", + "\n", + "# Add multiple edges\n", + "G.add_edges_from([(2, 3), (3, 4)])\n", + "\n", + "# get degree distribution\n", + "degrees = dict(G.degree())\n", + "degrees" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nodes can be any hashable Python object except None." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Node and Edge Attributes\n", + "You can also add attributes to nodes and edges:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Add node with attributes\n", + "G.add_node(4, color='red')\n", + "\n", + "# Add edge with attributes\n", + "G.add_edge(1, 3, weight=4.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Graph Algorithms\n", + "NetworkX provides a wide range of graph algorithms, such as shortest path, clustering, and many others. For example, to find the shortest path using Dijkstra's algorithm:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'c', 'd']\n" + ] + } + ], + "source": [ + "# Create a weighted graph\n", + "G = nx.Graph()\n", + "edges = [('a', 'b', 0.3), ('b', 'c', 0.9), ('a', 'c', 0.5), ('c', 'd', 1.2)]\n", + "G.add_weighted_edges_from(edges)\n", + "\n", + "# Find shortest path\n", + "path = nx.dijkstra_path(G, 'a', 'd')\n", + "print(path) # Output: ['a', 'c', 'd']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Visualization\n", + "NetworkX includes basic functionality for visualizing graphs, although it is primarily designed for graph analysis. You can use Matplotlib to draw graphs:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JZGJefXthbGefR75LG8AcFn6ZYvGffAsb4ZJIiIyNZ6hJBLB1lmDYSEx7vUcC4kZts4abNQxiYiIngQDJZEIBthbY8NDz9s2ho3BMgxo4ws/RERETWGgJBJJZIArVk7xNspY70zxQUSAq1HGIiIiaileyiES2Q8phVifmAGNTnjsze+HmUvMYCExw8ZgGcMkERGJioGSqB0oqlBh7aGrOJNTBnOJ2SOD5YPXx3r2wdZZg7nNTUREomOgJGpHlCV3sSe5ECezS1FYrsLD35xmuN+0fLy3E+aOdOVtbiIiajcYKInaqRq1BvnlNajX6NDNQoKBDjZ8Ag4REbVLDJREREREZBDe8iYiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjLI/wMVJ4BQPoQRMQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "G = nx.complete_graph(5)\n", + "nx.draw(G, with_labels=True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 0000000..df38886 --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,102 @@ +Python codes for Network Science, Barabási, 2013. +################################################## + +- Barabási, A.L., 2013. Network science. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 371(1987), p.20120375. + + +Installation, How to use +============================= + +- using on Colab (Recommended) + + - Go to examples + - Open a notebook and click on "open on colab" + - Uncomment the cell with pip install command to install the netsci package. + +- using on local machines + +.. code-block:: bash + + pip3 install -e . + # or + pip install "git+https://github.com/Ziaeemehr/netsci.git" + + +Indices and tables +------------------- + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + +Table of Chapters +============================= + +.. list-table:: + :header-rows: 1 + + * - View Notebook + - Open in Colab + * - `Networkx quick guide `_ + - `Networkx quick guide [C] `_ + * - `Igraph quick guide `_ + - `Igraph quick guide [C] `_ + * - `Chapter 2 `_ + - `Chapter 2 [C] `_ + * - `Chapter 3 `_ + - `Chapter 3 [C] `_ + * - `Chapter 4 `_ + - `Chapter 4 [C] `_ + + +Chapters +=========================== + +.. toctree:: + :maxdepth: 3 + :caption: Contents: + + examples/quick_guide_networkx + examples/quick_guide_igraph + examples/chap_02 + examples/chap_03 + examples/chap_04 + +API and documentation +=========================== + + +.. automodule:: netsci + :members: + :undoc-members: + + + +netsci.analysis +--------------------------- + + +.. automodule:: netsci.analysis + :members: + :undoc-members: + :show-inheritance: + :inherited-members: + +netsci.utils +------------------------------ + +.. automodule:: netsci.utils + :members: + :undoc-members: + :show-inheritance: + :inherited-members: + + +netsci.plot +--------------------------- + +.. automodule:: netsci.plot + :members: + :undoc-members: + :show-inheritance: + :inherited-members: diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 0000000..f316efc --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 0000000..4d67807 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 0000000..6a26c0f --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.1.dev1+g157bd64', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_static/graphviz.css b/_static/graphviz.css new file mode 100644 index 0000000..027576e --- /dev/null +++ b/_static/graphviz.css @@ -0,0 +1,19 @@ +/* + * graphviz.css + * ~~~~~~~~~~~~ + * + * Sphinx stylesheet -- graphviz extension. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +img.graphviz { + border: 0; + max-width: 100%; +} + +object.graphviz { + max-width: 100%; +} diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 0000000..367b8ed --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/_static/nature.css b/_static/nature.css new file mode 100644 index 0000000..ba033b0 --- /dev/null +++ b/_static/nature.css @@ -0,0 +1,252 @@ +/* + * nature.css_t + * ~~~~~~~~~~~~ + * + * Sphinx stylesheet -- nature theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: Arial, sans-serif; + font-size: 100%; + background-color: #fff; + color: #555; + margin: 0; + padding: 0; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.document { + background-color: #eee; +} + +div.body { + background-color: #ffffff; + color: #3E4349; + padding: 0 30px 30px 30px; + font-size: 0.9em; +} + +div.footer { + color: #555; + width: 100%; + padding: 13px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #444; + text-decoration: underline; +} + +div.related { + background-color: #6BA81E; + line-height: 32px; + color: #fff; + text-shadow: 0px 1px 0 #444; + font-size: 0.9em; +} + +div.related a { + color: #E2F3CC; +} + +div.sphinxsidebar { + font-size: 0.75em; + line-height: 1.5em; +} + +div.sphinxsidebarwrapper{ + padding: 20px 0; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: Arial, sans-serif; + color: #222; + font-size: 1.2em; + font-weight: normal; + margin: 0; + padding: 5px 10px; + background-color: #ddd; + text-shadow: 1px 1px 0 white +} + +div.sphinxsidebar h4{ + font-size: 1.1em; +} + +div.sphinxsidebar h3 a { + color: #444; +} + + +div.sphinxsidebar p { + color: #888; + padding: 5px 20px; +} + +div.sphinxsidebar p.topless { +} + +div.sphinxsidebar ul { + margin: 10px 20px; + padding: 0; + color: #000; +} + +div.sphinxsidebar a { + color: #444; +} + +div.sphinxsidebar input { + border: 1px solid #ccc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar .searchformwrapper { + margin-left: 20px; + margin-right: 20px; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #005B81; + text-decoration: none; +} + +a:hover { + color: #E32E00; + text-decoration: underline; +} + +a:visited { + color: #551A8B; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: Arial, sans-serif; + background-color: #BED4EB; + font-weight: normal; + color: #212224; + margin: 30px 0px 10px 0px; + padding: 5px 0 5px 10px; + text-shadow: 0px 1px 0 white +} + +div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 150%; background-color: #C8D5E3; } +div.body h3 { font-size: 120%; background-color: #D8DEE3; } +div.body h4 { font-size: 110%; background-color: #D8DEE3; } +div.body h5 { font-size: 100%; background-color: #D8DEE3; } +div.body h6 { font-size: 100%; background-color: #D8DEE3; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + line-height: 1.5em; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +nav.contents, +aside.topic, +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: 10px; + line-height: 1.2em; + border: 1px solid #C6C9CB; + font-size: 1.1em; + margin: 1.5em 0 1.5em 0; + -webkit-box-shadow: 1px 1px 1px #d8d8d8; + -moz-box-shadow: 1px 1px 1px #d8d8d8; +} + +code { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ + font-size: 1.1em; + font-family: monospace; +} + +.viewcode-back { + font-family: Arial, sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +div.code-block-caption { + background-color: #ddd; + color: #222; + border: 1px solid #C6C9CB; +} \ No newline at end of file diff --git a/_static/nbsphinx-broken-thumbnail.svg b/_static/nbsphinx-broken-thumbnail.svg new file mode 100644 index 0000000..4919ca8 --- /dev/null +++ b/_static/nbsphinx-broken-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/_static/nbsphinx-code-cells.css b/_static/nbsphinx-code-cells.css new file mode 100644 index 0000000..a3fb27c --- /dev/null +++ b/_static/nbsphinx-code-cells.css @@ -0,0 +1,259 @@ +/* remove conflicting styling from Sphinx themes */ +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt *, +div.nbinput.container div.input_area pre, +div.nboutput.container div.output_area pre, +div.nbinput.container div.input_area .highlight, +div.nboutput.container div.output_area .highlight { + border: none; + padding: 0; + margin: 0; + box-shadow: none; +} + +div.nbinput.container > div[class*=highlight], +div.nboutput.container > div[class*=highlight] { + margin: 0; +} + +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt * { + background: none; +} + +div.nboutput.container div.output_area .highlight, +div.nboutput.container div.output_area pre { + background: unset; +} + +div.nboutput.container div.output_area div.highlight { + color: unset; /* override Pygments text color */ +} + +/* avoid gaps between output lines */ +div.nboutput.container div[class*=highlight] pre { + line-height: normal; +} + +/* input/output containers */ +div.nbinput.container, +div.nboutput.container { + display: -webkit-flex; + display: flex; + align-items: flex-start; + margin: 0; + width: 100%; +} +@media (max-width: 540px) { + div.nbinput.container, + div.nboutput.container { + flex-direction: column; + } +} + +/* input container */ +div.nbinput.container { + padding-top: 5px; +} + +/* last container */ +div.nblast.container { + padding-bottom: 5px; +} + +/* input prompt */ +div.nbinput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nbinput.container div.prompt pre > code { + color: #307FC1; +} + +/* output prompt */ +div.nboutput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nboutput.container div.prompt pre > code { + color: #BF5B3D; +} + +/* all prompts */ +div.nbinput.container div.prompt, +div.nboutput.container div.prompt { + width: 4.5ex; + padding-top: 5px; + position: relative; + user-select: none; +} + +div.nbinput.container div.prompt > div, +div.nboutput.container div.prompt > div { + position: absolute; + right: 0; + margin-right: 0.3ex; +} + +@media (max-width: 540px) { + div.nbinput.container div.prompt, + div.nboutput.container div.prompt { + width: unset; + text-align: left; + padding: 0.4em; + } + div.nboutput.container div.prompt.empty { + padding: 0; + } + + div.nbinput.container div.prompt > div, + div.nboutput.container div.prompt > div { + position: unset; + } +} + +/* disable scrollbars and line breaks on prompts */ +div.nbinput.container div.prompt pre, +div.nboutput.container div.prompt pre { + overflow: hidden; + white-space: pre; +} + +/* input/output area */ +div.nbinput.container div.input_area, +div.nboutput.container div.output_area { + -webkit-flex: 1; + flex: 1; + overflow: auto; +} +@media (max-width: 540px) { + div.nbinput.container div.input_area, + div.nboutput.container div.output_area { + width: 100%; + } +} + +/* input area */ +div.nbinput.container div.input_area { + border: 1px solid #e0e0e0; + border-radius: 2px; + /*background: #f5f5f5;*/ +} + +/* override MathJax center alignment in output cells */ +div.nboutput.container div[class*=MathJax] { + text-align: left !important; +} + +/* override sphinx.ext.imgmath center alignment in output cells */ +div.nboutput.container div.math p { + text-align: left; +} + +/* standard error */ +div.nboutput.container div.output_area.stderr { + background: #fdd; +} + +/* ANSI colors */ +.ansi-black-fg { color: #3E424D; } +.ansi-black-bg { background-color: #3E424D; } +.ansi-black-intense-fg { color: #282C36; } +.ansi-black-intense-bg { background-color: #282C36; } +.ansi-red-fg { color: #E75C58; } +.ansi-red-bg { background-color: #E75C58; } +.ansi-red-intense-fg { color: #B22B31; } +.ansi-red-intense-bg { background-color: #B22B31; } +.ansi-green-fg { color: #00A250; } +.ansi-green-bg { background-color: #00A250; } +.ansi-green-intense-fg { color: #007427; } +.ansi-green-intense-bg { background-color: #007427; } +.ansi-yellow-fg { color: #DDB62B; } +.ansi-yellow-bg { background-color: #DDB62B; } +.ansi-yellow-intense-fg { color: #B27D12; } +.ansi-yellow-intense-bg { background-color: #B27D12; } +.ansi-blue-fg { color: #208FFB; } +.ansi-blue-bg { background-color: #208FFB; } +.ansi-blue-intense-fg { color: #0065CA; } +.ansi-blue-intense-bg { background-color: #0065CA; } +.ansi-magenta-fg { color: #D160C4; } +.ansi-magenta-bg { background-color: #D160C4; } +.ansi-magenta-intense-fg { color: #A03196; } +.ansi-magenta-intense-bg { background-color: #A03196; } +.ansi-cyan-fg { color: #60C6C8; } +.ansi-cyan-bg { background-color: #60C6C8; } +.ansi-cyan-intense-fg { color: #258F8F; } +.ansi-cyan-intense-bg { background-color: #258F8F; } +.ansi-white-fg { color: #C5C1B4; } +.ansi-white-bg { background-color: #C5C1B4; } +.ansi-white-intense-fg { color: #A1A6B2; } +.ansi-white-intense-bg { background-color: #A1A6B2; } + +.ansi-default-inverse-fg { color: #FFFFFF; } +.ansi-default-inverse-bg { background-color: #000000; } + +.ansi-bold { font-weight: bold; } +.ansi-underline { text-decoration: underline; } + + +div.nbinput.container div.input_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight].math, +div.nboutput.container div.output_area.rendered_html, +div.nboutput.container div.output_area > div.output_javascript, +div.nboutput.container div.output_area:not(.rendered_html) > img{ + padding: 5px; + margin: 0; +} + +/* fix copybtn overflow problem in chromium (needed for 'sphinx_copybutton') */ +div.nbinput.container div.input_area > div[class^='highlight'], +div.nboutput.container div.output_area > div[class^='highlight']{ + overflow-y: hidden; +} + +/* hide copy button on prompts for 'sphinx_copybutton' extension ... */ +.prompt .copybtn, +/* ... and 'sphinx_immaterial' theme */ +.prompt .md-clipboard.md-icon { + display: none; +} + +/* Some additional styling taken form the Jupyter notebook CSS */ +.jp-RenderedHTMLCommon table, +div.rendered_html table { + border: none; + border-collapse: collapse; + border-spacing: 0; + color: black; + font-size: 12px; + table-layout: fixed; +} +.jp-RenderedHTMLCommon thead, +div.rendered_html thead { + border-bottom: 1px solid black; + vertical-align: bottom; +} +.jp-RenderedHTMLCommon tr, +.jp-RenderedHTMLCommon th, +.jp-RenderedHTMLCommon td, +div.rendered_html tr, +div.rendered_html th, +div.rendered_html td { + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} +.jp-RenderedHTMLCommon th, +div.rendered_html th { + font-weight: bold; +} +.jp-RenderedHTMLCommon tbody tr:nth-child(odd), +div.rendered_html tbody tr:nth-child(odd) { + background: #f5f5f5; +} +.jp-RenderedHTMLCommon tbody tr:hover, +div.rendered_html tbody tr:hover { + background: rgba(66, 165, 245, 0.2); +} + diff --git a/_static/nbsphinx-gallery.css b/_static/nbsphinx-gallery.css new file mode 100644 index 0000000..365c27a --- /dev/null +++ b/_static/nbsphinx-gallery.css @@ -0,0 +1,31 @@ +.nbsphinx-gallery { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); + gap: 5px; + margin-top: 1em; + margin-bottom: 1em; +} + +.nbsphinx-gallery > a { + padding: 5px; + border: 1px dotted currentColor; + border-radius: 2px; + text-align: center; +} + +.nbsphinx-gallery > a:hover { + border-style: solid; +} + +.nbsphinx-gallery img { + max-width: 100%; + max-height: 100%; +} + +.nbsphinx-gallery > a > div:first-child { + display: flex; + align-items: start; + justify-content: center; + height: 120px; + margin-bottom: 5px; +} diff --git a/_static/nbsphinx-no-thumbnail.svg b/_static/nbsphinx-no-thumbnail.svg new file mode 100644 index 0000000..9dca758 --- /dev/null +++ b/_static/nbsphinx-no-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 0000000..9c2afde --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #ffffff; } +.highlight .c { color: #888888 } /* Comment */ +.highlight .err { color: #FF0000; background-color: #FFAAAA } /* Error */ +.highlight .k { color: #008800; font-weight: bold } /* Keyword */ +.highlight .o { color: #333333 } /* Operator */ +.highlight .ch { color: #888888 } /* Comment.Hashbang */ +.highlight .cm { color: #888888 } /* Comment.Multiline */ +.highlight .cp { color: #557799 } /* Comment.Preproc */ +.highlight .cpf { color: #888888 } /* Comment.PreprocFile */ +.highlight .c1 { color: #888888 } /* Comment.Single */ +.highlight .cs { color: #cc0000; font-weight: bold } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #003388; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #333399; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #6600EE; font-weight: bold } /* Literal.Number */ +.highlight .s { background-color: #fff0f0 } /* Literal.String */ +.highlight .na { color: #0000CC } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #BB0066; font-weight: bold } /* Name.Class */ +.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #880000; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #FF0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0066BB; font-weight: bold } /* Name.Function */ +.highlight .nl { color: #997700; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #007700 } /* Name.Tag */ +.highlight .nv { color: #996633 } /* Name.Variable */ +.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #6600EE; font-weight: bold } /* Literal.Number.Bin */ +.highlight .mf { color: #6600EE; font-weight: bold } /* Literal.Number.Float */ +.highlight .mh { color: #005588; font-weight: bold } /* Literal.Number.Hex */ +.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ +.highlight .mo { color: #4400EE; font-weight: bold } /* Literal.Number.Oct */ +.highlight .sa { background-color: #fff0f0 } /* Literal.String.Affix */ +.highlight .sb { background-color: #fff0f0 } /* Literal.String.Backtick */ +.highlight .sc { color: #0044DD } /* Literal.String.Char */ +.highlight .dl { background-color: #fff0f0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #DD4422 } /* Literal.String.Doc */ +.highlight .s2 { background-color: #fff0f0 } /* Literal.String.Double */ +.highlight .se { color: #666666; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */ +.highlight .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ +.highlight .si { background-color: #eeeeee } /* Literal.String.Interpol */ +.highlight .sx { color: #DD2200; background-color: #fff0f0 } /* Literal.String.Other */ +.highlight .sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */ +.highlight .s1 { background-color: #fff0f0 } /* Literal.String.Single */ +.highlight .ss { color: #AA6600 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0066BB; font-weight: bold } /* Name.Function.Magic */ +.highlight .vc { color: #336699 } /* Name.Variable.Class */ +.highlight .vg { color: #dd7700; font-weight: bold } /* Name.Variable.Global */ +.highlight .vi { color: #3333BB } /* Name.Variable.Instance */ +.highlight .vm { color: #996633 } /* Name.Variable.Magic */ +.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 0000000..b08d58c --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,620 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score + boost, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 0000000..8a96c69 --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/examples/chap_02.html b/examples/chap_02.html new file mode 100644 index 0000000..ed9a2ef --- /dev/null +++ b/examples/chap_02.html @@ -0,0 +1,862 @@ + + + + + + + + Chapter 2 — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Chapter 2

+
+

Graph Theory

+

Code by : Abolfazl Ziaeemehr - https://github.com/Ziaeemehr

+

Open In Colab

+
+
[1]:
+
+
+
# uncomment and run this line to install the package on colab
+# !pip install "git+https://github.com/Ziaeemehr/netsci.git" -q
+
+
+
+
+
[2]:
+
+
+
import netsci
+import numpy as np
+import networkx as nx
+from tqdm import tqdm
+import matplotlib.pyplot as plt
+from netsci.plot import plot_graph
+from netsci.analysis import find_sap, find_hamiltonian_path
+
+
+
+
+
[3]:
+
+
+
np.random.seed(0)
+
+
+
+
+
[4]:
+
+
+
# make a random graph with n nodes and p% probability of edge connection
+num_nodes = 8
+probability = .4
+seed = 2
+graph = nx.gnp_random_graph(num_nodes, probability, seed=2, directed=False)
+
+# degree distribution
+degrees = dict(graph.degree())
+print("Degrees:", degrees)
+
+# calculate the average degree
+average_degree = np.mean(list(degrees.values()))
+print("Average degree:", average_degree)
+
+# adjacency matrix
+adjacency_matrix = nx.to_numpy_array(graph).astype(int)
+print("Adjacency matrix:\n", adjacency_matrix)
+
+# edges
+edges = list(graph.edges())
+print("Edges:", edges)
+
+# plot the graph
+plot_graph(graph, node_size=1000,
+           node_color='darkred',
+           edge_color='gray',
+           figsize=(5, 5),
+           title="Random Graph with {} nodes and {}% edge connection".format(num_nodes, probability*100))
+plt.show()
+
+
+
+
+
+
+
+
+Degrees: {0: 2, 1: 2, 2: 2, 3: 5, 4: 3, 5: 1, 6: 3, 7: 2}
+Average degree: 2.5
+Adjacency matrix:
+ [[0 0 0 1 1 0 0 0]
+ [0 0 1 0 0 0 1 0]
+ [0 1 0 1 0 0 0 0]
+ [1 0 1 0 0 1 1 1]
+ [1 0 0 0 0 0 1 1]
+ [0 0 0 1 0 0 0 0]
+ [0 1 0 1 1 0 0 0]
+ [0 0 0 1 1 0 0 0]]
+Edges: [(0, 3), (0, 4), (1, 2), (1, 6), (2, 3), (3, 5), (3, 6), (3, 7), (4, 6), (4, 7)]
+
+
+
+
+
+
+../_images/examples_chap_02_5_1.png +
+
+
+
[5]:
+
+
+
# shortest path, find distance between two nodes
+source = np.random.randint(0, len(graph)) # random source node
+target = np.random.randint(0, len(graph)) # random target node
+shortest_path = nx.shortest_path(graph, source, target)
+print("Shortest path from", source, "to", target, ":", shortest_path)
+
+# diameter : maximal shortest path length
+if nx.is_connected(graph):
+    diameter = nx.diameter(graph)
+    print("Diameter:", diameter)
+
+# average shortest path length
+avg_shortest_path_length = nx.average_shortest_path_length(graph)
+print(f"Average shortest path length: {avg_shortest_path_length:.2f}")
+
+
+
+
+
+
+
+
+Shortest path from 3 to 0 : [3, 0]
+Diameter: 3
+Average shortest path length: 1.82
+
+
+
+
[6]:
+
+
+
# directed graph
+graph_dir = nx.to_directed(graph)
+plot_graph(graph_dir,
+           node_size=1000,
+           node_color='darkred',
+           edge_color='gray',
+           figsize=(5, 5),
+           seed=1,
+           title="Random DGraph with {} nodes and {}% edge connection".format(num_nodes, probability*100));
+
+
+
+
+
+
+
+../_images/examples_chap_02_7_0.png +
+
+
+
[7]:
+
+
+
# weighted graph
+seed = 3
+np.random.seed(seed) # to fix the plot
+
+num_nodes = 5
+probability = 0.8
+graph_w = nx.erdos_renyi_graph(num_nodes, probability, seed=seed)
+
+for (u,v) in graph_w.edges():
+    graph_w[u][v]['weight'] = np.random.randint(1, 10)
+
+# plot the weighted graph
+edge_labels = nx.get_edge_attributes(graph_w, 'weight')
+
+plot_graph(graph_w,
+           with_labels=True,
+           node_color='lightblue',
+           node_size=700,
+           font_size=12,
+           edge_labels=edge_labels,
+           figsize=(5, 5),
+           title="Weighted Random Network")
+
+weighted_adjacency_matrix = nx.to_numpy_array(graph_w, weight='weight').astype(int)
+print("Weighted adjacency matrix:\n", weighted_adjacency_matrix)
+
+
+
+
+
+
+
+
+Weighted adjacency matrix:
+ [[0 9 4 9 9]
+ [9 0 1 6 4]
+ [4 1 0 0 6]
+ [9 6 0 0 8]
+ [9 4 6 8 0]]
+
+
+
+
+
+
+../_images/examples_chap_02_8_1.png +
+
+

self avoiding path

+
+
[8]:
+
+
+
# Create a graph
+G = nx.Graph()
+edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'F')]
+G.add_edges_from(edges)
+
+# Find all self-avoiding paths from 'A' to 'F'
+start_node = 'A'
+target_node = 'F'
+all_saps = list(find_sap(G, start_node, target_node))
+
+for path in all_saps:
+    print("->".join(path))
+
+plot_graph(G, seed=2, figsize=(3, 3))
+
+
+
+
+
+
+
+
+A->B->E->F
+A->C->F
+
+
+
+
[8]:
+
+
+
+
+<AxesSubplot:>
+
+
+
+
+
+
+../_images/examples_chap_02_10_2.png +
+
+

A Hamiltonian path is a path in a graph that visits each vertex exactly once.

+
+
[9]:
+
+
+
# Example usage
+G = nx.Graph()
+G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 1)])
+
+plot_graph(G, seed=2, figsize=(3, 3))
+
+path = find_hamiltonian_path(G)
+if path:
+    print("Hamiltonian Path found:", path)
+else:
+    print("No Hamiltonian Path found")
+
+
+
+
+
+
+
+
+Hamiltonian Path found: (1, 2, 3, 4, 5, 6)
+
+
+
+
+
+
+../_images/examples_chap_02_12_1.png +
+
+
+
[10]:
+
+
+
# hamiltonian path of weighted graph:
+path = find_hamiltonian_path(graph_w)
+if path:
+    print("Hamiltonian Path found:", path)
+else:
+    print("No Hamiltonian Path found")
+
+
+
+
+
+
+
+
+Hamiltonian Path found: (0, 1, 2, 4, 3)
+
+
+
    +
  • Adjacency List

  • +
+
+
[11]:
+
+
+
G = nx.Graph()
+edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]
+G.add_edges_from(edges)
+
+plot_graph(G, seed=2, figsize=(3, 3))
+
+adjacency_matrix = nx.to_numpy_array(G).astype(int)
+print(f"adjacency matrix\n {adjacency_matrix}")
+
+
+adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}
+print(f"adjacency list\n {adjacency_list}")
+
+
+
+
+
+
+
+
+adjacency matrix
+ [[0 1 1 0 0 0]
+ [1 0 0 1 1 0]
+ [1 0 0 0 0 1]
+ [0 1 0 0 0 0]
+ [0 1 0 0 0 1]
+ [0 0 1 0 1 0]]
+adjacency list
+ {1: [2, 3], 2: [1, 4, 5], 3: [1, 6], 4: [2], 5: [2, 6], 6: [3, 5]}
+
+
+
+
+
+
+../_images/examples_chap_02_15_1.png +
+
+
    +
  • Adjaceccy list of directed graph:

  • +
+
+
[12]:
+
+
+
G = nx.DiGraph()
+edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]
+G.add_edges_from(edges)
+plot_graph(G, seed=2, figsize=(3, 3))
+
+adjacency_matrix = nx.to_numpy_array(G).astype(int)
+print(f"adjacency matrix\n {adjacency_matrix}")
+
+adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}
+print(f"adjacency list\n {adjacency_list}")
+
+
+
+
+
+
+
+
+adjacency matrix
+ [[0 1 1 0 0 0]
+ [0 0 0 1 1 0]
+ [0 0 0 0 0 1]
+ [0 0 0 0 0 0]
+ [0 0 0 0 0 1]
+ [0 0 0 0 0 0]]
+adjacency list
+ {1: [2, 3], 2: [4, 5], 3: [6], 4: [], 5: [6], 6: []}
+
+
+
+
+
+
+../_images/examples_chap_02_17_1.png +
+
+

Implementation of BFS for Graph using Adjacency List:

+
+
[13]:
+
+
+
from collections import deque
+
+# Function to perform Breadth First Search on a graph
+# represented using adjacency list
+def bfs(adjList, startNode, visited):
+    # Create a queue for BFS
+    q = deque()
+
+    # Mark the current node as visited and enqueue it
+    visited[startNode] = True
+    q.append(startNode)
+
+    # Iterate over the queue
+    while q:
+        # Dequeue a vertex from queue and print it
+        currentNode = q.popleft()
+        print(currentNode, end=" ")
+
+        # Get all adjacent vertices of the dequeued vertex
+        # If an adjacent has not been visited, then mark it visited and enqueue it
+        for neighbor in adjList[currentNode]:
+            if not visited[neighbor]:
+                visited[neighbor] = True
+                q.append(neighbor)
+
+# Function to add an edge to the graph
+def addEdge(adjList, u, v):
+    adjList[u].append(v)
+
+def main():
+    # Number of vertices in the graph
+    vertices = 5
+
+    # Adjacency list representation of the graph
+    adjList = [[] for _ in range(vertices)]
+
+    # Add edges to the graph
+    addEdge(adjList, 0, 1)
+    addEdge(adjList, 0, 2)
+    addEdge(adjList, 1, 3)
+    addEdge(adjList, 1, 4)
+    addEdge(adjList, 2, 4)
+
+    # Mark all the vertices as not visited
+    visited = [False] * vertices
+
+    # Perform BFS traversal starting from vertex 0
+    print("Breadth First Traversal starting from vertex 0:", end=" ")
+    bfs(adjList, 0, visited)
+
+    #plot the graph
+    G = nx.Graph()
+    G.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 4)])
+    plot_graph(G, seed=2, figsize=(3, 3))
+
+if __name__ == "__main__":
+    main()
+
+
+
+
+
+
+
+
+Breadth First Traversal starting from vertex 0: 0 1 2 3 4
+
+
+
+
+
+
+../_images/examples_chap_02_19_1.png +
+
+
+
[14]:
+
+
+
from netsci.analysis import graph_info
+graph_info(graph_w)
+
+
+
+
+
+
+
+
+Graph information
+Directed                                :                False
+Number of nodes                         :                    5
+Number of edges                         :                    9
+Average degree                          :               3.6000
+Connectivity                            :            connected
+
+
+
+

Table 2.1

+
+
[15]:
+
+
+
import networkx as nx
+import pandas as pd
+from netsci.analysis import average_degree
+from netsci.utils import list_sample_graphs, load_sample_graph
+
+
+
+
+
[21]:
+
+
+
nets = list(list_sample_graphs().keys())
+
+
+
+
+
[17]:
+
+
+
G = load_sample_graph("Internet")
+
+
+
+
+
[18]:
+
+
+
graph_info(G)
+
+
+
+
+
+
+
+
+Graph information
+Directed                                :                False
+Number of nodes                         :               192244
+Number of edges                         :               609066
+Average degree                          :               6.3364
+Connectivity                            :         disconnected
+
+
+
+
[19]:
+
+
+
for net in tqdm(nets, desc="Processing sample graphs"):
+    print(net)
+
+
+
+
+
+
+
+
+Processing sample graphs: 100%|██████████| 10/10 [00:00<00:00, 19463.13it/s]
+
+
+
+
+
+
+
+Collaboration
+Internet
+PowerGrid
+Protein
+PhoneCalls
+Citation
+Metabolic
+Email
+WWW
+Actor
+
+
+
+
+
+
+
+
+
+
+
+
[20]:
+
+
+
data_list = []
+
+for net in tqdm(nets[:-1], desc="Processing sample graphs"):
+    G = load_sample_graph(net)
+    num_nodes = G.number_of_nodes()
+    num_edges = G.number_of_edges()
+    avg_degree = average_degree(G)
+    directed = nx.is_directed(G)
+
+    # Append a dictionary of data for this network to the list
+    data_list.append({
+        'num_nodes': num_nodes,
+        'num_edges': num_edges,
+        'avg_degree': avg_degree,
+        "directed": directed,
+        "name": net
+    })
+
+# Create the DataFrame from the list of dictionaries
+df = pd.DataFrame(data_list)
+
+# Display the DataFrame
+df
+
+
+
+
+
+
+
+
+Processing sample graphs: 100%|██████████| 9/9 [00:33<00:00,  3.72s/it]
+
+
+
+
[20]:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
num_nodesnum_edgesavg_degreedirectedname
023133934398.078416FalseCollaboration
11922446090666.336385FalseInternet
2494165942.669095FalsePowerGrid
3201829302.903865FalseProtein
436595918265.018500TruePhoneCalls
5449673468947920.857285TrueCitation
61039580211.168431TrueMetabolic
7571941037313.627339TrueEmail
832572914971349.192513TrueWWW
+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/examples/chap_02.ipynb b/examples/chap_02.ipynb new file mode 100644 index 0000000..bd2facf --- /dev/null +++ b/examples/chap_02.ipynb @@ -0,0 +1,848 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 2](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_02.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Graph Theory**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import netsci\n", + "import numpy as np\n", + "import networkx as nx\n", + "from tqdm import tqdm\n", + "import matplotlib.pyplot as plt\n", + "from netsci.plot import plot_graph\n", + "from netsci.analysis import find_sap, find_hamiltonian_path" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degrees: {0: 2, 1: 2, 2: 2, 3: 5, 4: 3, 5: 1, 6: 3, 7: 2}\n", + "Average degree: 2.5\n", + "Adjacency matrix:\n", + " [[0 0 0 1 1 0 0 0]\n", + " [0 0 1 0 0 0 1 0]\n", + " [0 1 0 1 0 0 0 0]\n", + " [1 0 1 0 0 1 1 1]\n", + " [1 0 0 0 0 0 1 1]\n", + " [0 0 0 1 0 0 0 0]\n", + " [0 1 0 1 1 0 0 0]\n", + " [0 0 0 1 1 0 0 0]]\n", + "Edges: [(0, 3), (0, 4), (1, 2), (1, 6), (2, 3), (3, 5), (3, 6), (3, 7), (4, 6), (4, 7)]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make a random graph with n nodes and p% probability of edge connection\n", + "num_nodes = 8\n", + "probability = .4\n", + "seed = 2\n", + "graph = nx.gnp_random_graph(num_nodes, probability, seed=2, directed=False)\n", + "\n", + "# degree distribution\n", + "degrees = dict(graph.degree())\n", + "print(\"Degrees:\", degrees)\n", + "\n", + "# calculate the average degree\n", + "average_degree = np.mean(list(degrees.values()))\n", + "print(\"Average degree:\", average_degree)\n", + "\n", + "# adjacency matrix\n", + "adjacency_matrix = nx.to_numpy_array(graph).astype(int)\n", + "print(\"Adjacency matrix:\\n\", adjacency_matrix)\n", + "\n", + "# edges\n", + "edges = list(graph.edges())\n", + "print(\"Edges:\", edges)\n", + "\n", + "# plot the graph\n", + "plot_graph(graph, node_size=1000,\n", + " node_color='darkred',\n", + " edge_color='gray',\n", + " figsize=(5, 5),\n", + " title=\"Random Graph with {} nodes and {}% edge connection\".format(num_nodes, probability*100))\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shortest path from 3 to 0 : [3, 0]\n", + "Diameter: 3\n", + "Average shortest path length: 1.82\n" + ] + } + ], + "source": [ + "# shortest path, find distance between two nodes\n", + "source = np.random.randint(0, len(graph)) # random source node\n", + "target = np.random.randint(0, len(graph)) # random target node\n", + "shortest_path = nx.shortest_path(graph, source, target)\n", + "print(\"Shortest path from\", source, \"to\", target, \":\", shortest_path)\n", + "\n", + "# diameter : maximal shortest path length\n", + "if nx.is_connected(graph):\n", + " diameter = nx.diameter(graph)\n", + " print(\"Diameter:\", diameter)\n", + " \n", + "# average shortest path length\n", + "avg_shortest_path_length = nx.average_shortest_path_length(graph)\n", + "print(f\"Average shortest path length: {avg_shortest_path_length:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAGpCAYAAABoEYRXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB34klEQVR4nO3deXxU1dnA8d+dTPZ9I4Q1yJKwhC1AQEBZRFCQxYoCraLFreLSvvZVwa1WAbW+2paitRVbtaDgliBSlU0EJGyyI4EgWyAJWUlC1smc948wIyELgdzJncw8388nH8idO+c+M5mZZ+655zxHU0ophBBCCOHSTEYHIIQQQgjHk4QvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbkIQvhBBCuAFJ+EIIIYQbuKKE/+9//xtN0+w/ZrOZ6Ohopk2bxpEjRxwV42X94Q9/QNM0w45/qW+//bbG8+Tl5UVkZCRDhw7l6aef5sSJE/Xed+/evcyaNYvOnTvj6+uLr68vXbt25YEHHmDHjh3N+Chqi4mJYcKECc16TNtr7vjx4/ZtS5cu5c9//nOtfY8fP46mabz22mtXfby0tDTuvPNOOnTogK+vL507d+Z//ud/yM3Nveo2HSEmJoa7777b6DAcoq6/eWM888wzaJpGr1696rx9zZo1DBkyBD8/PyIiIrj77rs5e/Zso9v/6KOP6Nu3Lz4+PrRp04bf/va3FBcX19jn1KlT3HzzzQQFBdG9e3eSk5NrtfPxxx8THh5Odnb2FT2+q2X7PPr222+b5XjuqqSkhD/84Q91Ps9X+5rW21Wd4f/rX/9iy5YtrFmzhocffpgVK1YwbNgw8vPz9Y6vRZs/fz5btmxh/fr1LF68mBEjRvDuu+/SvXt3lixZUmv/t99+m4SEBLZu3cpjjz3GypUr+fLLL/ntb3/LgQMHGDhwIEePHjXgkRhn/PjxbNmyhejoaPu2+hJ+U2VnZzN48GA2b97Miy++yKpVq5g9ezb//Oc/ueGGG7BarbofU+hj9+7dvPbaa0RFRdV5+4YNG7jpppuIiooiOTmZv/zlL6xZs4bRo0dTXl5+2faXLFnC9OnTGThwIP/97395/vnn+fe//82tt95aY7+ZM2dy7tw5PvnkE6ZMmcLtt99e4z177tw5HnvsMV577TUiIyOb9qCFUykpKeGFF16oM+HX9TlmCHUF/vWvfylAbd++vcb2F154QQHq3XffvZLmdPP888+rK3woDrV+/XoFqI8//rjWbbm5uapfv37KbDarvXv32rdv2rRJmUwmdcstt6jy8vI6212+fLk6ffp0g8c+f/5804JvQMeOHdX48eMd1n5jjR8/XnXs2LHW9mPHjilA/elPf7qqdv/5z38qQK1Zs6bG9vnz5ytA/fDDD1fVriN07NhRzZw50+gwHML2OXPs2LFG7V9ZWan69u2rHn30UXX99dernj171tpn4MCBqkePHqqystK+bfPmzQpQb775ZoPtWywWFR0drW688cYa25csWaIAtWrVKqVU9XtP0zT1/fff2/fp2rWreuutt+y/P/DAA2rEiBGNelx6sX0erV+/vlmP626ys7MVoJ5//nmjQ6mXLtfwBwwYAEBWVpZ9W1lZGY8//jh9+/YlODiYsLAwhgwZUmcXl6ZpPPzww3zwwQd0794dPz8/+vTpw8qVK2vt++WXX9K3b1+8vb3p1KlTvd23ZWVlzJkzh06dOuHl5UXbtm2ZPXs2BQUFNfazdVOvXLmSfv364evrS/fu3e3H/ve//0337t3x9/dn0KBBTe5WDwsL4+2338ZisfDGG2/Yt8+fPx8PDw/efvttvLy86rzv1KlTadOmjf33u+++m4CAAPbt28eNN95IYGAgo0ePBmD16tVMmjSJdu3a4ePjQ5cuXXjggQfIycmp0abtcsiuXbu49dZbCQoKIjg4mF/96lf1djl+9dVX9O/fH19fX+Li4nj33Xcv+7gHDhzI+PHja2yLj49H0zS2b99u3/bZZ5+haRr79u0DaneFjRgxgi+//JITJ07UuGxyqddff51OnToREBDAkCFDSElJuWyMnp6eAAQHB9fYHhISAoCPj0+D97c9lwcOHGD69OkEBwcTFRXFr3/9a86dO1dj38a+PisrK3niiSdo3bo1fn5+DBs2jG3bttV5/MzMTB544AHatWuHl5cXnTp14oUXXsBisdTY76233qJPnz4EBAQQGBhIXFwcc+fOvdzTwwsvvEBiYiJhYWEEBQXRv39/Fi9ejLpk/S3be6oxr5OUlBSGDh1q7yafM2cOlZWVl43lYi+//DJ5eXnMmzevzttPnz7N9u3bufPOOzGbzfbt1157Ld26dePzzz9vsP2UlBQyMjK45557amyfOnUqAQEB9vtXVFSglMLf39++T0BAAGVlZQB8//33vP/++7z99ttX9PgAjhw5wowZM2jVqhXe3t50796dRYsW1drv0KFDjBs3zn7Z4sEHH6SoqKjWfkop5s+fT8eOHfHx8WHAgAGsXr2aESNGMGLEiBr7FhYW8vvf/77Ga/W3v/0t58+fb1TsX331FaNHjyY4OBg/Pz+6d+/OggULauyzYsUK++WWwMBAxowZw5YtW2rscyXvryvJKY19bgsKCnj88ce55ppr8Pb2plWrVtx8880cOnSI48eP23tsXnjhBfvnku2yW31d+u+++y59+vTBx8eHsLAwpkyZwo8//lhjH9vnfFpaGjfffDMBAQG0b9+exx9/vFG9UzVcybeD+s7w//a3vylAffrpp/ZtBQUF6u6771YffPCBWrdunfrqq6/U73//e2UymdR7771X4/6AiomJUYMGDVLLly9Xq1atUiNGjFBms1kdPXrUvt+aNWuUh4eHGjZsmPrss8/Uxx9/rAYOHKg6dOhQ4wzfarWqsWPHKrPZrJ599ln1zTffqNdee035+/urfv36qbKyMvu+HTt2VO3atVO9evVSH374oVq1apVKTExUnp6e6rnnnlNDhw5Vn332mfr8889Vt27dVFRUlCopKWnweWroDN8mOjpade7cWSlVfQbh6+urhgwZ0mC7l5o5c6by9PRUMTExasGCBWrt2rXq66+/Vkop9dZbb6kFCxaoFStWqA0bNqj33ntP9enTR8XGxqqKigp7G7bekY4dO6r//d//VV9//bV6/fXX7c/VxfvanqsePXqo999/X3399ddq6tSpClAbNmxoMNannnpKBQQE2NvLzMxUgPL19VXz5s2z7/eb3/xGRUVF2X+/9GzvwIEDaujQoap169Zqy5Yt9h+lfj7Dj4mJUePGjVNJSUkqKSlJxcfHq9DQUFVQUNBgjAUFBapDhw7quuuuU/v371dFRUVqw4YNqkOHDuqWW2657N/D9lzGxsaq5557Tq1evVq9/vrrytvbW91zzz32/a7k9Tlz5kylaZr63//9X/XNN9+o119/XbVt21YFBQXVOMPPyMhQ7du3Vx07dlRvv/22WrNmjXrxxReVt7e3uvvuu+37ffjhhwpQjzzyiPrmm2/UmjVr1N///nf16KOPXvbx3X333Wrx4sVq9erVavXq1erFF19Uvr6+6oUXXqixX2NfJwcOHFB+fn6qR48e6sMPP1TJyclq7Nix9vdzY87wDxw4oLy9vdWXX36plFJ1nuF/9dVXCrDvc7HbbrtNRUdHN3iMv//97wpQBw4cqHXbgAEDarxv4+Li1F133aXy8vLU559/rkwmk9q6dauqqKhQPXv2VH/84x8v+5jqeozBwcEqPj5evf/+++qbb75Rjz/+uDKZTOoPf/iDfb/MzEzVqlUr1bZtW/Wvf/1LrVq1Sv3yl7+0P58Xn+HPmTNHAer+++9XX331lfrnP/+pOnTooKKjo9X1119v3+/8+fOqb9++KiIiQr3++utqzZo16i9/+YsKDg5Wo0aNUlartcHY33nnHaVpmhoxYoRaunSpWrNmjXrzzTfVQw89ZN/H1lNy4403qqSkJLVs2TKVkJCgvLy81MaNG+37Nfb9pVTjc0pjn9vCwkLVs2dP5e/vr/74xz+qr7/+Wn366afqscceU+vWrVNlZWX219msWbPsn0tpaWlKqbp7rWw9h9OnT1dffvmlev/999U111yjgoOD1eHDh+37zZw5U3l5eanu3bur1157Ta1Zs0Y999xzStO0Wu+9y7mqhJ+SkqIqKytVUVGR+uqrr1Tr1q3VddddV6O77FIWi0VVVlaqWbNmqX79+tUMAlRUVJQqLCy0b8vMzFQmk0ktWLDAvi0xMVG1adNGlZaW2rcVFhaqsLCwGgnf9sS/+uqrNY6zbNkyBah//OMf9m0dO3ZUvr6+Kj093b5t9+7dClDR0dE1usiTkpIUoFasWNHg89SYhJ+YmKh8fX3tjxVQ06ZNq7Wf7Xmz/Vz8Bps5c2ajLqVYrVZVWVmpTpw4oQCVnJxsv832Jvrd735X4z62N+F//vMf+7aOHTsqHx8fdeLECfu20tJSFRYWph544IEGY1izZo0C1HfffaeUUuo///mPCgwMVA899JAaOXKkfb+uXbuqGTNm2H+v641yuS79+Ph4ZbFY7Nu3bdumAPXhhx82GKNSSp05c0YNGTJEAfafqVOn1kjC9bE9l5e+7h566CHl4+Nj/9s19vX5448/Nvi3uTjhP/DAAyogIKDG30YppV577bUayerhhx9WISEhl30sl1NVVaUqKyvVH//4RxUeHl7jddnY18kdd9yhfH19VWZmpn2bxWJRcXFxjUr4VVVVKjExUU2fPt2+ra6Eb3u+bF8ML3b//fcrLy+vBo8zb948BaiMjIxat914442qW7du9t83b96sWrdurQBlMpnUc889p5RS6sUXX1Q9evSo93JdQ8aOHavatWunzp07V2P7ww8/rHx8fFReXp5SSqknn3xSaZqmdu/eXWO/MWPG1Ej4eXl5ytvbW91xxx019tuyZYsCaiT8BQsWKJPJVOsk75NPPqlxOaMuRUVFKigoSA0bNqzeLwZVVVWqTZs2Kj4+XlVVVdW4b6tWrdS1115r39bY95dSjc8pjX1u//jHPypArV69ut7H21CX/qWfY/n5+crX11fdfPPNNfY7efKk8vb2rvEZaPucX758eY19b775ZhUbG1tvPHW5qi79wYMH4+npSWBgIOPGjSM0NJTk5OQa3WVQPRp16NChBAQEYDab8fT0ZPHixbW6LABGjhxJYGCg/feoqChatWplH9F+/vx5tm/fzq233lqjazUwMJBbbrmlRlvr1q0DqDWKeerUqfj7+7N27doa2/v27Uvbtm3tv3fv3h2o7j728/Ortb2hUfaNpS7pBq1PQkICnp6e9p//+7//q7XPL37xi1rbzp49y4MPPkj79u3tz33Hjh0B6nz+f/nLX9b4/fbbb8dsNrN+/foa2/v27UuHDh3sv/v4+NCtW7fLPie2bts1a9YA2LsPx40bx/fff09JSQmnTp3iyJEj3HDDDQ22dTnjx4/Hw8PD/nvv3r2By//d8vPzmTRpEoWFhSxZsoTvvvuON998k02bNjFx4sRaXeP1mThxYo3fe/fuTVlZmX1EeGNfn7bnvr6/zcVWrlzJyJEjadOmDRaLxf5z0003AdWD1gAGDRpEQUEB06dPJzk5udYlnoasW7eOG264geDgYDw8PPD09OS5554jNze31mj3xrxO1q9fz+jRo2sMtPPw8OCOO+5oVDyvv/46R44cafQAzvpm8jR2hk9j7n/ttddy8uRJDh06RF5eHi+88AJHjhxh/vz5vP3225jNZp5//nk6dOhA69atefjhh+1d/nUpKytj7dq1TJkyBT8/vxp/25tvvpmysjL75ar169fTs2dP+vTpU6ONGTNm1Pg9JSWF8vJybr/99hrbBw8eTExMTI1tK1eupFevXvTt27fGsceOHXvZkf/ff/89hYWFPPTQQ/U+d6mpqZw5c4Y777wTk+nndBQQEMAvfvELUlJSKCkpqXGf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8eLFFBYW8v7779u7W6H6GveiRYt45JFH6N+/P/fffz89e/bEZDKRkZFhP0O4tPu+LnFxcXTu3JmnnnoKpRRhYWF88cUXDXbbfvbZZ5jNZsaMGcOBAwd49tln6dOnT63rfE2RkJBAaGgo33zzTY0pTjfccAMvvvii/f+XEx8fz2effcZbb71FQkICJpPJ3uPUFLNnz2bJkiWMGTOGp556ivbt27N//35eeukloqKial1Lv1qNfX12796dX/3qV/z5z3/G09OTG264gf379/Paa6/Veh388Y9/ZPXq1Vx77bU8+uijxMbGUlZWxvHjx1m1ahV///vfadeuHffddx++vr4MHTqU6OhoMjMzWbBgAcHBwQ32fI0fP57XX3+dGTNmcP/995Obm8trr71W60vllXjmmWdYsWIFo0aN4rnnnsPPz49FixY1arpXSEhInV9GQ0JC6vyi+sorrzBmzBimTp3KQw89xNmzZ3nqqafo1atXjdfiiRMn6Ny5MzNnzmTx4sVAdQ/cq6++yp133skDDzzA9OnTOXLkCE888QRjxoxh3Lhxdcb4P//zPyQmJtZ4D40dO5bHH3+cIUOGEBAQwF//+lfuvffeBh/rX/7yF4YNG2a/xBQTE0NRURFpaWl88cUX9iT029/+lnfffZfx48fbX7NLlizh0KFDNdoLCwvjf/7nf1iwYAGhoaFMmTKF9PR0XnjhBaKjo2tcS//tb3/Lp59+ynXXXcfvfvc7evfujdVq5eTJk3zzzTc8/vjjJCYm1hl3QEAA//d//8e9997LDTfcwH333UdUVBRpaWns2bOHv/3tb5hMJl599VV++ctfMmHCBB544AHKy8v505/+REFBAS+//HKDz01TXclzu2zZMiZNmsRTTz3FoEGDKC0tZcOGDUyYMME+XqBjx44kJyczevRowsLCiIiIqPNLUUhICM8++yxz587lrrvuYvr06eTm5vLCCy/g4+PD888/75gHfCUj/OqblqdU9SjcDh06qK5du9pHSL/88ssqJiZGeXt7q+7du6t//vOfdRbJAdTs2bNrtVlXcZEVK1ao3r17Ky8vL9WhQwf18ssv19lmaWmpevLJJ1XHjh2Vp6enio6OVr/5zW9Ufn5+rWPUVUymrpgaW9jFNkrf9mM2m1V4eLgaMmSImjt3rjp+/Hi99929e7e65557VKdOnZS3t7fy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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# directed graph\n", + "graph_dir = nx.to_directed(graph)\n", + "plot_graph(graph_dir, \n", + " node_size=1000,\n", + " node_color='darkred',\n", + " edge_color='gray',\n", + " figsize=(5, 5),\n", + " seed=1,\n", + " title=\"Random DGraph with {} nodes and {}% edge connection\".format(num_nodes, probability*100));" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Weighted adjacency matrix:\n", + " [[0 9 4 9 9]\n", + " [9 0 1 6 4]\n", + " [4 1 0 0 6]\n", + " [9 6 0 0 8]\n", + " [9 4 6 8 0]]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# weighted graph\n", + "seed = 3\n", + "np.random.seed(seed) # to fix the plot\n", + "\n", + "num_nodes = 5\n", + "probability = 0.8\n", + "graph_w = nx.erdos_renyi_graph(num_nodes, probability, seed=seed)\n", + "\n", + "for (u,v) in graph_w.edges():\n", + " graph_w[u][v]['weight'] = np.random.randint(1, 10)\n", + "\n", + "# plot the weighted graph\n", + "edge_labels = nx.get_edge_attributes(graph_w, 'weight')\n", + "\n", + "plot_graph(graph_w, \n", + " with_labels=True, \n", + " node_color='lightblue', \n", + " node_size=700, \n", + " font_size=12,\n", + " edge_labels=edge_labels, \n", + " figsize=(5, 5), \n", + " title=\"Weighted Random Network\")\n", + "\n", + "weighted_adjacency_matrix = nx.to_numpy_array(graph_w, weight='weight').astype(int)\n", + "print(\"Weighted adjacency matrix:\\n\", weighted_adjacency_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "self avoiding path" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A->B->E->F\n", + "A->C->F\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a graph\n", + "G = nx.Graph()\n", + "edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'F')]\n", + "G.add_edges_from(edges)\n", + "\n", + "# Find all self-avoiding paths from 'A' to 'F'\n", + "start_node = 'A'\n", + "target_node = 'F'\n", + "all_saps = list(find_sap(G, start_node, target_node))\n", + "\n", + "for path in all_saps:\n", + " print(\"->\".join(path))\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Hamiltonian path is a path in a graph that visits each vertex exactly once." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hamiltonian Path found: (1, 2, 3, 4, 5, 6)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example usage\n", + "G = nx.Graph()\n", + "G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 1)])\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "path = find_hamiltonian_path(G)\n", + "if path:\n", + " print(\"Hamiltonian Path found:\", path)\n", + "else:\n", + " print(\"No Hamiltonian Path found\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hamiltonian Path found: (0, 1, 2, 4, 3)\n" + ] + } + ], + "source": [ + "# hamiltonian path of weighted graph:\n", + "path = find_hamiltonian_path(graph_w)\n", + "if path:\n", + " print(\"Hamiltonian Path found:\", path)\n", + "else:\n", + " print(\"No Hamiltonian Path found\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Adjacency List" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adjacency matrix\n", + " [[0 1 1 0 0 0]\n", + " [1 0 0 1 1 0]\n", + " [1 0 0 0 0 1]\n", + " [0 1 0 0 0 0]\n", + " [0 1 0 0 0 1]\n", + " [0 0 1 0 1 0]]\n", + "adjacency list\n", + " {1: [2, 3], 2: [1, 4, 5], 3: [1, 6], 4: [2], 5: [2, 6], 6: [3, 5]}\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPwAAAD7CAYAAABOrvnfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAifklEQVR4nO3deXxTZb4/8M9J2lDSlu5pqW1pWWQV2iKWXazgADOIAsnoKDIqsjgdRVFHQcVlvNxRUbHggFfRq4ha3JD5gbSOQIsiIJaODoPMj55CKbTpviQlSXOe+0cJw9KmSXtOzknO9/168RKb9Mm3JZ/k2fIcjjHGQAhRBY3cBRBCfIcCT4iKUOAJUREKPCEqQoEnREUo8ISoCAWeEBWhwBOiIhR4QlSEAk+IilDgCVERCjwhKkKBJ0RFKPCEqAgFnhAVocAToiJBchdASJsgoMXuhMAYNByHMJ0WQRp6L5ICBZ7IosnmAN9gRaXFBovDecXtocFaJIT2QlqkHn16BctQYWDi6Igr4ksWexuKqxphttrBAXD35HPdbtDrkBEfgVAdvT/1FAWe+AzfYEWJuRGMuQ/65TgAHAeMMkQgLVIvVXmqQIEnPnGsthlHa1p63M6w2DAMiQkXoSJ1opkRIjm+wSpK2AHgaE0LyhqsorSlRjQoIpKy2NtQYm7s8LafD3yHVQvmdXjb6o+24+r00R3edsTciDi9jsb03UC/MSKp4qr2Mbs7dzz0BEZkjb/ka8mDhnR6f8ba252YHCNGiapCgSeSabI5YLbau7xf335pnb6bd4QBMFvtaLI5aMnOSzSGJ5LhG6zgJGqbO98+8Q4Fnkim0mLzaPntf55fAePwZNw5+mo8d+/t+NfhA11+DzvfPvEOdemJJByC0OEOuovpw8Px67sWYvh14xAeGY3Kkzy2bfornr5rHlZseB8Zk6a4/X6Lw4k2QaBtuF6gdXgiiYZzDnxzssbr77M0NeKhm7MRFhGFV7Z93eX9s/vFIjKExvGeopdGIgmhm+8joX0iMHrKNJz85Shs51olexy1osATSWi4HkzXnQ8x50EbPXocFaLAE0mE6bTd+r6Wxgb8sOdrpA0dDl2vEMkeR61o0o5IIkijQWiw1u3E3avL70ds4lUYOHwUwqOicfYkjy/f2YDG2mrkrH61y8cIDabPzXuLAk8kkxDaC6UN1k6X5voNHorvdn6J/I/exzmrBWERkRg6+jo8+GIuBl6T7rZt7nz7xDs0S08k02Rz4Osy72fqPTU1NZZ22nmJ+kNEMn16BcOg14m+245D+6EYFHbvUeCJpDLiI8BxgJgdSY5rb5d4jwJPJBXEnPj2k80eLbF5Kt1Ax111l88D3yYIaDjnQF2rHQ3nHGgTBF+XQHzEarVi9uzZyH3uKQTVnulZY+d7CCUF25EcTpN13eWTl0k6oVR9mpqaMGvWLBw+fBg7duxA9vjRPTvTTsOBnSnFnx9cipp/lWDdunWi9hrUQtLAe3pCqcXhRGmDFScarHRCaQCoq6vDjBkz8MsvvyA/Px/jx7cfbpEWqYdBr/P61No413Pi6r7YuHEj7rvvPiQkJOCpp57ywU8TWCRblqMTStXJbDZj2rRpqKioQH5+PjIzMzu8X096fS+88AKefPJJbNiwAYsXL5bk5whUkgSeTihVp4qKCtx4441oampCQUEBhg8f7tH3eXvlGcYYHnzwQaxfvx5bt27FnDlzxPoRAp7ok3benFD69dYPMHdIIu7IHNjh7XRCqf/geR6TJk1Ca2srCgsLPQ470L4NNzIkGNG9dYgMCe5yuyzHcXjttdcwb948/O53v8PevXt7Wr5qiBp4dyeUXq626iz+98XnEW1IcHu/I+ZGWOxtYpRHJPLLL79g0qRJ0Gq1KCoqwsCBHb+Ai0mj0eC9997DxIkTcfPNN6OkpETyxwwEogbekxNKXTau+hOGXZuFkeMnu72f64RSokz/+Mc/MHnyZERGRqKwsBApKSk+e+xevXrh888/x6BBgzB9+nTwPO+zx/ZXogXedUKpJ3nf++WnOHroeyxatbrL+158QilRloMHD2LKlClISkrCnj170LdvX5/XEB4ejh07diAsLAw33XQTzGazz2vwJ6IF3tMTShtra/DOfz2NO5evQExCokdt0wmlylNYWIipU6di6NCh+OabbxAbGytbLQaDAfn5+WhpacHMmTPR3NwsWy1KJ1rgPT2h9M1nn0Bi2gD86vYFHrdNJ5QqS35+PqZPn44xY8Zg165diIiQf197Wloadu7ciX//+9+YM2cObDZ6vnRElMB7ckIpAOzf9f/ww+4CLH3+Za93SblOKCXy2rZtG2bNmoXs7Gz87W9/Q1hYmNwlXZCeno5t27ahqKgICxYsgEDPlyuIEniLveuwt1oseOv5FZh5592INsTD0tQIS1Mj2hztVyaxNDXinNV9t73Fg8ch0vnwww8xd+5czJ49G5999hl69+4td0lXmDJlCrZs2YK8vDwsW7ZM1E/pBQJRNt7Utdqx51St2/uYT5dj6dQst/cZc+Ov8Pj6dzq9fUpKDKJ767pVI+mZTZs2YeHChbjrrrvw1ltvIShI2VufN27ciCVLluCFF17AihUr5C5HMUT5V/Pk5NDIuDg8+7+fXPH1z/9nHY4e+h4r39yMPlHRPX4cIr7c3Fw88MADWLp0KdatWweNH5wjt3jxYlRVVWHlypUwGAxYuHCh3CUpgiiB9+TkUF2vkCuuEAoAuz/Pg0ar6fC27jwOEdfq1auxYsUKPPLII3jxxRf96hNqTz31FCorK7F48WLExcVh9uzZcpckO1Feql0nlEqJTij1LcYYVq5ciRUrVuCZZ57xu7AD7Vtwc3NzMWfOHNx2220oKiqSuyTZifbhmZKqRrcnlPYEB6B/pB6j6Fgjn2CM4aGHHsLatWvx0ksv4ZFHHpG7pB6x2WyYMWMGiouLUVhYiGuuuUbukmQj2ltmWqRekrAD7evwqRHKmxEORE6nE4sWLcLatWvxxhtv+H3Ygf9swU1NTcX06dNx8uRJuUuSjWiBl+qEUsHpxJF9ezFt8kQcOnRI5NbJxdra2nDXXXdh06ZNePfdd7F06VK5SxJNREQEdu7ciZCQENx0002oqZHu+GwlE3VQ7DqhVExBQVpMHZYGh8OBrKwsLFq0SLX/WFKy2WwwmUzIy8vDRx99hAULPN8J6S8SEhKwa9cuNDQ0YObMmWhp6fmZDf5G1MCH6oIwyiDuODvdEIHJ47Jw6NAhvP7668jLy8PgwYOxYcMGOJ20EUcMVqsVt9xyC3bs2IEvvvgCRqNR7pIkM3DgQOzcuRPHjh3D3LlzYbfb5S7Jp0Sf9k6L1GNYrDjbLYfFhiP1/DFXQUFByMnJwfHjxzF79mwsXboUWVlZOHDggCiPpVbNzc2YOXMmioqKsGPHDvz617+WuyTJZWZm4osvvsCePXtwzz33qGoLriTrXENiwpERHwENB6/H9BwADQdkxkdgSMyVLxwGgwGbNm3Cd999B0EQMHbsWCxcuBDV1dWi1K4m9fX1mDp1KoqLi5Gfn4/s7Gy5S/KZ7OxsvP/++9iyZQseeeQR1WzBlfTacp6eWgv854RSb06tdTqdePPNN7FixQpwHIc///nPWLx4MbRa2qDTFbPZjJtuugmnT592e9hkoFu/fj1ycnLwl7/8BY899pjc5UjOJxeTlPpc+urqajzxxBN4++23kZmZiXXr1mHcuHFilB6QKioqMHXqVDQ0NKCgoAAjRoyQuyRZPf3003j++efxzjvv4Pe//73c5UiL+ZjD6WT1rXZWa7Wx+lY7czidorX9/fffs9GjRzMA7O6772ZVVVWitR0oSktLWVpaGktOTmbHjx+XuxxFEASBLVq0iGm1WrZ9+3a5y5GUzwMvtba2NrZhwwYWFRXFIiMjWW5uLnM4HHKXpQjHjh1jSUlJbMCAAaysrEzuchSlra2N3Xrrrax3797s22+/lbscyQRc4F2qq6vZfffdxziOY6NGjWL79u2TuyRZlZSUMIPBwIYNG8bOnDkjdzmK1NrayiZPnsyioqLYzz//LHc5kgjYwLscPHiQjRkzhgFgCxYsYJWVlXKX5HMHDx5kUVFRLCMjg1VXV8tdjqLV19ezkSNHsqSkJHbq1Cm5yxFdwAeeMcacTid78803WUxMDIuIiGBr165VTTe/sLCQhYeHs3HjxrH6+nq5y/ELFRUVLDU1lQ0ZMoTV1NTIXY6oVBF4l5qaGrZkyRLGcRwbOXIkKywslLskSeXn57PevXuzG264gTU3N8tdjl/55ZdfWGxsLMvKymItLS1ylyMaVQXe5dChQ+y6665jANj8+fPZ2bNn5S5JdNu2bWM6nY7NnDmTWa1WucvxS4cOHWKhoaFsxowZzG63y12OKFQZeMbau/lvvfUWi42NZX369GGvvvpqwHTzP/zwQ6bVatncuXOZzWaTuxy/lp+fz4KDg9n8+fOZU8QlZLmoNvAutbW17P7772ccx7ERI0awvXv3yl1Sj7z99tuM4zg2f/78gHkBk9uWLVsYAPboo4/KXUqPqT7wLocPH2Zjx45lANgdd9zhl0tXubm5DABbsmRJQLwbKcnatWsZAPbyyy/LXUqPUOAv4nQ62aZNm1hcXBwLDw9na9as8Zux2+rVqxkAtnz5ciYIgtzlBKQnnniCAWDvvfee3KV0GwW+A3V1dSwnJ4dpNBo2fPhwtnv3brlL6pQgCGzlypUMAFu1ahWFXUKCILB77rmHBQUFsR07dshdTrdQ4N0oLi5m48ePZwDYbbfdxk6fPi13SZcQBIEtW7aMAWAvvvii3OWogsPhYLNmzWJ6vZ7t379f7nK8RoHvgtPpZO+++y4zGAwsLCyMvfTSS4ro5re1tbH77ruPAWDr16+XuxxVsVgsbMKECSw6OpodPXpU7nK8QoH3UH19PXvggQeYRqNhQ4cOZX//+99Fabc7nx50OBzsjjvuYBqNhr377rui1EG8U1dXx4YPH86Sk5NZeXm53OV4zCefhw8kJSUlyMnJwb59+2AymbBmzRokJSV51UZPzgew2Wy4/fbbsX37dnzwwQcwmUw9+nlI91VUVGD8+PEICwtDUVERoqPdXypNCSjw3cAYw+bNm/Hoo4+ipaUFTz/9NJYtWwadzv2FLnt6AlBrayvmzJmD3bt345NPPsFvfvMbEX8q0h3Hjh3DxIkTMXjwYBQUFECv18tdklsU+B5obGzEM888g9zcXAwaNAi5ubmYOnVqh/flG6woMTeCMfdBvxwHgOOAwX16Yeltc3Do0CFs27at08chvnfgwAFkZ2cjOzsbn3/+udsr67YJAlrsTgiMQcNxCNP59hJqFHgR/PTTT8jJyUFhYSHmzZuHV155BcnJyRduP1bbjKM1PT8D/dO/vor7jbMxYcKEHrdFxPXVV19h1qxZmD9/Pt5+++1LrsMn9RFv3qDAi4QxduEE1KamJjz55JN4+OGHcabVieKqRtEeJzM+4sLR3URZNm/ejPnz5+Pxxx/H6tWrJT/EtTso8CJramrCs88+i7Vr1+La8RPw2MYtQAddtp++34fCLz/FseIfUFt5BqHhERgwYiSM9z+MASNGdtq+hgOmpcZJ9oQgPfPKK69g+fLleHPrNsSNHNPtIdwoQwTSJHhhp8BL5J///CcKjp/GVVcPg7aDMd3LDy5Cc0M9xk3/DZIHXI2mulp8+c5GnPhnCZ56awuuGTuxw3Y5AHF6HSYmx0j8E5Dueu2DT5By7QQwxnp0ie1hsWEYEhMuYmUUeMk02Rz4uqzza+A11tYgIib2kq+1WizI+dV4JA8ajGfeyXPb/tTUWMnHe8R7fINV0UM46hdKhG+wuh23XR52AOgdGoqkAVej9uwZt21z59sfFS/udfxIz1jsbSgxuw/7vw4fwKcbc3H8yGE4bDZEJ/TFlNnzYLz/oQ7vf8TciDi9TrQhHAVeIpUWm1djNwCwNDeh9OhPuGas+1l4dr79Ud2ujkihuKp92bUzRds/w+t/egDjps/CH/97LUL0oagqL0OduarT72GsvV2xhnAUeAk4BKHD5ZeuvPXcCtharZi7+MEu72txONEmCD5dwyWda7I5YLZ2fiXa2qqz2LDqMUz77XwsWrX6wtc9eXE3W+1osjlEGcLRs0UCFrv3Yf9w7Yso3P4Zfv/4M25n6S/W0o3HIdJwDeE68/etW3DOasUtC//gdduuIZwYKPASELycB81btwaf/PU1/G7Z45h55z2SPQ6RTldDuKM/HEBYRBQqSv8/lt8yFcbhybh7/DXYuOpPsLY0u23bNYQTAwVeAhovlmLy1q3Bx+vW4Lc5yzF3yQOSPQ6RjidDuNqqs7Cfa8WaZYswYcZsrNr0MWbfuxR7tm3FC4vu7PJy1a4hXE/RGF4CYTrPLle99Y1X8fG6NZi3dBlMOcslexwiLU+GcExgsNvO4Y4/PIE5i/4IABiRNR5BwTq8819P4x/7izBq/GS3bbTYnYgM6dl7NL3DSyBIo0FosPswfrlpAz56/SVkTLoBo6+/EcePHL7kT1dCg337oQvSOU+GVuGRUQCA9IlTLvl65qQbAAD80Z9EeZyu0Du8RBJCe6G0wdrpuO6H3QUAgOKi3Sgu2n3F7Z8e63wtnjvfPlEGT4ZW/QYPxfGSK1/IXV15juv6xVuMIRwFXiJpkXqccDOz+tz7n3a7bXa+faIMngytxt40EwV5m1FcuBv9h11z4es/Fn4DALg6PVOUx+kKBV4ifXoFw6DXodpq93oDjjuuvfS0rVY5XEM4dxN36ROn4NobpmHrG6+CMQGDRmXixM8l2Lr+VYyeMhVDR2e5fQyxhnC0l15CFnsbCsqqIYj4G6ZPyylTSVWj2yEcANjOtSJv/SvY97fPUV9tRpQhHpN/MwemnIcRrOt8iMYB6B+pF2UrNQVeYkr/MAURR1cfluopsT4sRdO8EkuL1GNYbJgobQ2LDaewK5RrCCf2zggO7YdiiDWEo8D7wJCYcGTER0DDwesnBIf2bnxmfASGxIjzwkGkkREfAbH3QnFce7uitUddet/x5sgjJgjgNBrJjzwi4lL6EI4CL4OuDjW01NXgyLd78XTOYkSE0Gy8vxHr0NJhseGi9+oo8DLr6Njir/PzMWPGDBQXFyM9PV3uEkk39PRY8nSDNJOzNIaXWZBGg8iQYET31iEyJBhBGg1uvPFGREVFYevWrXKXR7opLVKPaalxiNO3X5ykq6G96/Y4vQ7TUuMkm5yld3iFuvfee1FYWIjjx4/36CBEIr+Lh3AtNge4yzbQ0Ln0BLt27cL06dPx448/IiMjQ+5yiAjOnj2L/gMH4qPPvsCkydfLcuUZ6tIrVHZ2NqKjo6lbH0B4nsc5qxX9ExMuGcL5EgVeoYKDg3HrrbciLy+vy8MRiH/geR4AkJaWJlsNFHgFMxqNOHHiBI4cOSJ3KUQEPM8jNjYWYWHybaCiwCuYq1ufl+f+ohTEP5SWlqJ///6y1kCBVzBXt37r1q3UrQ8APM/L2p0HKPCKZzKZcOLECRQXF8tdCukhCjzp0g033ICYmBjq1vs5h8OB8vJyCjxxj7r1gaG8vByCIFDgSddMJhNKS0vx448/yl0K6SYlLMkBFHi/4OrW0yYc/8XzPDiOQ0pKiqx1UOD9QFBQEObMmUObcPwYz/NITk6GTqeTtQ4KvJ8wGo3geZ669X6qtLRU9u48QIH3GzRb79+UsCQHUOD9RlBQEObOnUvdej9FgSdeMxqNKCsrw+HDXV97jiiHxWKB2WymwBPvTJkyBbGxsdSt9zNlZWUA5F+SAyjwfsU1W0+bcPyLUtbgAQq83zGZTCgrK8MPP/wgdynEQzzPo1evXujbt6/cpVDg/c3111+P2NhY2oTjR0pLS5GamgqNj0+36Yj8FRCv0Gy9/1HKDD1AgfdLJpMJJ0+epG69n6DAkx6ZPHky4uLiaLbeDzDGKPCkZ1zdepqtV766ujo0NzdT4EnPGI1GnDx5EocOHZK7FOKGkpbkAAq835o8eTIMBgN16xWOAk9EQZtw/ENpaSkiIiIQFRUldykAKPB+zWQy4dSpUzh48KDcpZBOuCbslHJ9QAq8H3N162kTjnIpaYYeoMD7Na1WS5twFI4CT0RlMplQXl6OAwcOyF0KuYwgCDh58iQFnohn0qRJiI+Pp269Ap05cwZ2u50CT8Tj6tZv3boVgiDIXQ65iNKW5AAKfEAwGo0oLy+n2XqFKS0tBQCkpqbKW8hFKPABwNWtp004ysLzPBISEqDX6+Uu5QIKfADQarWYN28ePvnkE+rWK4jSZugBCnzAcHXrabZeOSjwRDITJ05EQkICdesVhAJPJOOaraduvTLYbDZUVFRQ4Il0TCYTTp8+je+//17uUlTv1KlTYIxR4Il0JkyYgL59+9ImHAVwLclR4IlkaBOOcvA8D61Wi+TkZLlLuQQFPsCYTCZUVFRQt15mPM8jJSUFQUFBcpdyCQp8gHF162m2Xl5KnKEHKPABR6PRYN68edStlxkFnviM0WjEmTNnsH//frlLUS0KPPEZ6tbLq6mpCbW1tRR44hsajQZGo5E24chEiR+LdaHAByhXt/67776TuxTVocATnxs/fjwSExNpE44MeJ5H7969ER8fL3cpV6DAByiarZeP0o6mvhgFPoCZTCacPXsW3377rdylqIpSZ+gBCnxAGzduHK666irq1vsYBZ7IwtWtp9l631Ha5aEvR4EPcNSt9y2z2Qyr1UqBJ/IYO3YsrrrqKtqE4yNKXpIDKPABz7UJ59NPP4XT6ZS7nIBHgSeyMxqN1K33EZ7nER0djYiICLlL6RAFXgXGjh2LpKQkmq33ASVP2AEUeFW4eLaeuvXSosATRTCZTKisrMS+ffvkLiWgUeCJImRlZSE5OZm69RJqa2tT3OWhL0eBVwnq1kvv9OnTcDqdFHiiDCaTCVVVVdStl4jSl+QACryquLr1tAlHGjzPg+M49OvXT+5SOkWBVxGO42gTjoR4nkdiYiJCQkLkLqVTFHiVMRqNqKqqQlFRkdylBBylz9ADFHjVycrKQkpKCnXrJUCBJ4pD3XrplJaWUuCJ8hiNRpjNZhQWFspdSsBobW1FZWUlBZ4oz3XXXYeUlBTahCOisrIyAMpekgMo8KpE3Xrxudbg+/fvL3Ml7lHgVcpkMlG3XkQ8zyM4OBiJiYlyl+IWBV6lxowZg379+tFsvUh4nke/fv2g1WrlLsUtCrxKXdytb2trk7scv+cPS3IABV7VTCYTqqurqVsvAn9YkgMo8Kp27bXXIjU1lbr1IqB3eKJ4rm79Z599Rt36Hqivr0djYyMFniif0WhEdXU19u7dK3cpfstfluQACrzqubr1tAmn+/zhc/AuFHiV4zgOJpOJZut7gOd5hIWFISYmRu5SukSBJzAajaipqcGePXvkLsUvKfny0JejwBOMHj0aaWlp1K3vJn9ZkgMo8AQ0W99T/rIkB1DgyXkmk4m69d0gCALKysoo8MS/ZGZmIi0tjTbheKmyshI2m40CT/yLa7aeuvXe8ac1eIACTy5iMplQW1uL3bt3y12K33AFPjU1Vd5CPESBJxdkZGSgf//+NFvvBZ7nERcXh7CwMLlL8QgFnlxwcbfe4XDIXY5f8KclOYACTy5jNBqpW+8Ff1qSAyjw5DIZGRkYMGAAdes9RIEnfu3iTTjUrXfP4XDg9OnTFHji30wmE+rq6qhb34VTp05BEAS/WZIDKPCkA+np6Rg4cOCFTThtgoCGcw7UtdrRcM6BNkGQuUJl8KePxboEyV0AUR6O4zB/4SJUOTh8daIK1rYrAx4arEVCaC+kRerRp1ewDFXKj+d5aDQapKSkyF2Kxyjw5BIWexuKqxox4pY7MbStrcOwA4DF4URpgxUnGqww6HXIiI9AqE5dTyee55GUlITgYP95waMuPbmAb7CioKwa1VY7AEAb5D7A7Px/q612FJRVg2+wSlyhsvjbGjxAgSfnHattRnFVIwT2nyB7igEQGFBc1Yhjtc1SlKdI/rYkB1DgCdrf2Y/WtHR4W2tLC9576Xk8d89tuHvcCMwdkoiPc1/utK2jNS0oU8k7PQWe+B2LvQ0l5sZOb29uqEdB3gdw2O24bup0j9o8Ym6ExR6Yn7hzrVicrmtEaIwBaQMGyl2SVzjGmLc9OBJA9pXXotpq77Qb73p6cByHpvpa3D3uGpj+8DB++8dHOm2TAxCn12FisvIPdfREk80BvsGKSosNFsdlV9tlDKG6IL9ZsVDXtCq5RJPNAfP5CbrOdOdgRgbAbLWjyeZQfADcca1YmK12cOhkboPj/GrFgrr0KsY3WCHVOavc+fb91eUrFl11g/1lxYICr2KVFpvXM/KeYufb90eBvGKhzH4HkZxDEK4cj4rM4nCiTRAQpPGf95XOViz4f/2MLa/9BaeO/wtNdXXQhYQgMXUApt/xe1x/89wO2zpa04IQrRapkXqpy/YYBV6lLHZpw+7SYnciMsQ/Au9uxcLS1ITYhERM/PUtiDYkwNZqReH2z/D6Y39EdUU55i1d1uH3HTE3Ik6vU8yYXhlVEJ8TfLQ489DDD0Nrb0VCQgLi4+ORkJBw4U98fDzCw8MVc8WW4qpGdPZrGZE1HiOyxl/ytWtvmAZzRTkK8jZ3Gnh2vnuvlBULCrxKaXwUMiY48dNPP6GgoACVlZWw2y9dFejdu/cVLwYd/T0+Ph56vXRdY09WLDrSJzIajbU1nd6utBULCrxKhem0Ht/3x8JvYLNa0WppH9uWn/g39n/1NwBA5vXZ6NW78yC+9ca6C2N4xhgaGxtRWVl54U9VVdUlfz9w4AAqKythNpvhdF467AgPD7+ih9DR3w0GA3Q6nVe/D9eKRVf9HkEQwAQBLU2N2P/Vdhz5dg8WPvmC2+9xrViMio/wqiYp0MYbFdtVavZo4m5J9nWoPnO6w9v++vUBGJKSO7wtNFiLX/U3dKs2QRBQW1t7xYtCRy8SNTU1uPxpHB0d7fZFwfX/cXFx0Gq1Hv8uNq76E/I/fh8AEBSsw90rnsX02xd0+X09+V2IiQKvYiVVjShtsEqyNMcB6B+p98m7msPhQHV19RUvBB39vaGh4ZLv1Wg0SErph1d27vNoLqH6zGk01taisa4GP+wuwNd5m3Hn8pWYfe/SLr/35kHxsq9YUJdexdIi9Tgh0QYRdr59XwgODkZiYiISExO7vO+5c+dgNpsveTFoOGf3eOIwLjEJcYlJAIDR198IAPjg1dWYcqsJEdHuJ+aUsGJBgVexPr2CYdDr3O6l7w7XXnolTFJdLiQkBCkpKZecUlPXaseeU7Xdam/QNenI/+g9VJWf7DLwvloZccc/FkiJZDLiIyD2hD3HtbfrL3qyYvHzwe+g0WgQn9xP0scRC73Dq1yoLgijDBEorur8I7LeSjco98MjHfFkxeKvTz0KfVgYBo7MQGRMHJrq67B/13Z8u+NLzL53aZfv7p4+jtT851+FSCYtUg+b09npIRjeGBYbrqitpJ4I0mgQGqx1O0s/OH00vvn8Y+z5YisszU0I0YcidfAwPPBibqdbay8WGqyVfcIOoFl6chG+wYoSc/tuM2+eFBzau/Hphgi/C7tLoKxYdIXe4ckFaZF6GPS6rj8Dfp7r9jiFfwbcE4GyYtEV//0XIpII1QVhYnKM+1NeEHjn0qtlxYK69KRLbYKAFrsTAmPQcBzCdMoYj4rNYm9DQVk1BBEToeGAaalxiun9UOAJuQjfYBV1xSIzXlnzGoH3Mk1ID6RF6jEsNkyUtpS4YkHv8IR0IFBXLCjwhHTCo1Nrz3PdrvRTaynwhHQhkFYsKPCEeMHfVywo8ISoiP+8NBFCeowCT4iKUOAJUREKPCEqQoEnREUo8ISoCAWeEBWhwBOiIhR4QlSEAk+IilDgCVERCjwhKkKBJ0RFKPCEqAgFnhAV+T9IBe7X5z8oegAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = nx.Graph()\n", + "edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]\n", + "G.add_edges_from(edges)\n", + "\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "adjacency_matrix = nx.to_numpy_array(G).astype(int)\n", + "print(f\"adjacency matrix\\n {adjacency_matrix}\")\n", + "\n", + "\n", + "adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}\n", + "print(f\"adjacency list\\n {adjacency_list}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Adjaceccy list of directed graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "adjacency matrix\n", + " [[0 1 1 0 0 0]\n", + " [0 0 0 1 1 0]\n", + " [0 0 0 0 0 1]\n", + " [0 0 0 0 0 0]\n", + " [0 0 0 0 0 1]\n", + " [0 0 0 0 0 0]]\n", + "adjacency list\n", + " {1: [2, 3], 2: [4, 5], 3: [6], 4: [], 5: [6], 6: []}\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = nx.DiGraph()\n", + "edges = [(1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (5, 6)]\n", + "G.add_edges_from(edges)\n", + "plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "adjacency_matrix = nx.to_numpy_array(G).astype(int)\n", + "print(f\"adjacency matrix\\n {adjacency_matrix}\")\n", + "\n", + "adjacency_list = {n: list(neighbors) for n, neighbors in G.adj.items()}\n", + "print(f\"adjacency list\\n {adjacency_list}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Implementation of BFS for Graph using Adjacency List:](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Breadth First Traversal starting from vertex 0: 0 1 2 3 4 " + ] + }, + { + "data": { + "image/png": "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peH777+H3W7HnXfeienTp+PKFZ6eKyu5P3HULDs7mzp37kyCINDEiROpvLxc7pKcwmw202uvvUZarZZiY2Np3759cpekWtzDy6CyshIvvfQSkpOTYTabsX//fixZsgQBAcp8hptWq8Urr7yC7OxsBAcHo3v37pg4cSIqKhr+7DtWT3J/4qhNVlYWxcTEkFarpddee43MZrPcJbmUzWajxYsXk06no9atW1NmZqbcJakKB95FSkpK6KmnniIA1KNHDzp27JjcJcnq119/pZSUFAJAI0aMoEuXLsldkipw4J1MFEVav349hYeHU1BQEC1fvpwnpVwliiK9//77FBgYSJGRkbRx40a5S1I8DrwTnT17lvr160cAaODAgfT777/LXZJb+u233+ihhx4iAPToo4/ShQsX5C5JsTjwTmCz2Wjp0qXk7+9PTZs2pU2bNsldktu7diUUFhZGjRs3pg8++IBEUZS7LMXhwEvs6NGjdM899xAAGjduHBkMBrlL8igXL168Pq24b9++dPbsWblLUhS+LSeRK1euIDU1FZ06dYLBYMDevXvx7rvvIiiIV3mtj9DQUKxduxbbtm3Dzz//jA4dOmDZsmUQ+Zl20pD7E0cJ9u7dS7GxseTj40Opqal05coVuUtShLKyMho7diwBoG7dutHx48flLsnjcQ/fAGVlZRg3bhx69OiBJk2aIDs7G3PmzIGvr6/cpSlCYGAgMjIysHv3bly4cAEJCQlIS0uDzWaTuzTPJfcnjqfatGkTNW3alPz9/Sk9PZ1vtTmZ0WikqVOnkkajoU6dOtGRI0fkLskjcQ9fT3/88QcGDhyIgQMHIjk5Gbm5uXjmmWeg0fA/pTPpdDosXLgQBw8ehMViQXJyMl555RWYzWa5S/Mscn/ieAq73U4ZGRkUGBhIERER9Omnn/JtI5mYzWaaM2cO+fj4UPv27Wn//v1yl+QxOPAOyMvLo+7duxMAGjVqFE8DdRNHjx6lu+66iwRBoEmTJtHly5flLsntceBrYTab6dVXXyWtVku33XYbff3113KXxG5gs9nozTffpEaNGlFUVBTt3LlT7pLcGge+BgcOHKAOHTqQl5cXvfzyy2QymeQuidXi1KlT1KtXLwJAI0eOpNLSUrlLcksc+BuUl5fTs88+S4IgUHJyMo8GexBRFOm9996jwMBAatq0KX3++edyl+R2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import deque\n", + "\n", + "# Function to perform Breadth First Search on a graph\n", + "# represented using adjacency list\n", + "def bfs(adjList, startNode, visited):\n", + " # Create a queue for BFS\n", + " q = deque()\n", + "\n", + " # Mark the current node as visited and enqueue it\n", + " visited[startNode] = True\n", + " q.append(startNode)\n", + "\n", + " # Iterate over the queue\n", + " while q:\n", + " # Dequeue a vertex from queue and print it\n", + " currentNode = q.popleft()\n", + " print(currentNode, end=\" \")\n", + "\n", + " # Get all adjacent vertices of the dequeued vertex\n", + " # If an adjacent has not been visited, then mark it visited and enqueue it\n", + " for neighbor in adjList[currentNode]:\n", + " if not visited[neighbor]:\n", + " visited[neighbor] = True\n", + " q.append(neighbor)\n", + "\n", + "# Function to add an edge to the graph\n", + "def addEdge(adjList, u, v):\n", + " adjList[u].append(v)\n", + "\n", + "def main():\n", + " # Number of vertices in the graph\n", + " vertices = 5\n", + "\n", + " # Adjacency list representation of the graph\n", + " adjList = [[] for _ in range(vertices)]\n", + "\n", + " # Add edges to the graph\n", + " addEdge(adjList, 0, 1)\n", + " addEdge(adjList, 0, 2)\n", + " addEdge(adjList, 1, 3)\n", + " addEdge(adjList, 1, 4)\n", + " addEdge(adjList, 2, 4)\n", + "\n", + " # Mark all the vertices as not visited\n", + " visited = [False] * vertices\n", + "\n", + " # Perform BFS traversal starting from vertex 0\n", + " print(\"Breadth First Traversal starting from vertex 0:\", end=\" \")\n", + " bfs(adjList, 0, visited)\n", + " \n", + " #plot the graph\n", + " G = nx.Graph()\n", + " G.add_edges_from([(0, 1), (0, 2), (1, 3), (1, 4), (2, 4)])\n", + " plot_graph(G, seed=2, figsize=(3, 3))\n", + "\n", + "if __name__ == \"__main__\":\n", + " main()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : False\n", + "Number of nodes : 5\n", + "Number of edges : 9\n", + "Average degree : 3.6000\n", + "Connectivity : connected\n" + ] + } + ], + "source": [ + "from netsci.analysis import graph_info\n", + "graph_info(graph_w)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Table 2.1" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import pandas as pd\n", + "from netsci.analysis import average_degree\n", + "from netsci.utils import list_sample_graphs, load_sample_graph" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "nets = list(list_sample_graphs().keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "G = load_sample_graph(\"Internet\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : False\n", + "Number of nodes : 192244\n", + "Number of edges : 609066\n", + "Average degree : 6.3364\n", + "Connectivity : disconnected\n" + ] + } + ], + "source": [ + "graph_info(G)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing sample graphs: 100%|██████████| 10/10 [00:00<00:00, 19463.13it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collaboration\n", + "Internet\n", + "PowerGrid\n", + "Protein\n", + "PhoneCalls\n", + "Citation\n", + "Metabolic\n", + "Email\n", + "WWW\n", + "Actor\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "for net in tqdm(nets, desc=\"Processing sample graphs\"):\n", + " print(net)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Processing sample graphs: 100%|██████████| 9/9 [00:33<00:00, 3.72s/it]\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
num_nodesnum_edgesavg_degreedirectedname
023133934398.078416FalseCollaboration
11922446090666.336385FalseInternet
2494165942.669095FalsePowerGrid
3201829302.903865FalseProtein
436595918265.018500TruePhoneCalls
5449673468947920.857285TrueCitation
61039580211.168431TrueMetabolic
7571941037313.627339TrueEmail
832572914971349.192513TrueWWW
\n", + "
" + ], + "text/plain": [ + " num_nodes num_edges avg_degree directed name\n", + "0 23133 93439 8.078416 False Collaboration\n", + "1 192244 609066 6.336385 False Internet\n", + "2 4941 6594 2.669095 False PowerGrid\n", + "3 2018 2930 2.903865 False Protein\n", + "4 36595 91826 5.018500 True PhoneCalls\n", + "5 449673 4689479 20.857285 True Citation\n", + "6 1039 5802 11.168431 True Metabolic\n", + "7 57194 103731 3.627339 True Email\n", + "8 325729 1497134 9.192513 True WWW" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_list = []\n", + "\n", + "for net in tqdm(nets[:-1], desc=\"Processing sample graphs\"):\n", + " G = load_sample_graph(net)\n", + " num_nodes = G.number_of_nodes()\n", + " num_edges = G.number_of_edges()\n", + " avg_degree = average_degree(G)\n", + " directed = nx.is_directed(G)\n", + " \n", + " # Append a dictionary of data for this network to the list\n", + " data_list.append({\n", + " 'num_nodes': num_nodes,\n", + " 'num_edges': num_edges,\n", + " 'avg_degree': avg_degree,\n", + " \"directed\": directed,\n", + " \"name\": net\n", + " })\n", + "\n", + "# Create the DataFrame from the list of dictionaries\n", + "df = pd.DataFrame(data_list)\n", + "\n", + "# Display the DataFrame\n", + "df" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/chap_03.html b/examples/chap_03.html new file mode 100644 index 0000000..6a3532d --- /dev/null +++ b/examples/chap_03.html @@ -0,0 +1,546 @@ + + + + + + + + Chapter 3 — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Chapter 3

+
+

Random Networks

+

Code by : Abolfazl Ziaeemehr - https://github.com/Ziaeemehr

+

Open In Colab

+
+
[1]:
+
+
+
# uncomment and run this line to install the package on colab
+# !pip install "git+https://github.com/Ziaeemehr/netsci.git" -q
+
+
+
+

A random network consists of N nodes where each node pair is connected with probability p. To construct a random network we follow these steps: 1) Start with N isolated nodes. 2) Select a node pair and generate a random number between 0 and 1. If the number exceeds p, connect the selected node pair with a link, otherwise leave them disconnected. 3) Repeat step (2) for each of the N(N-1)/2 node pairs.

+
+
[1]:
+
+
+
import random
+import numpy as np
+import networkx as nx
+import seaborn as sns
+import matplotlib.pyplot as plt
+from netsci.plot import plot_graph
+
+
+
+
+
[2]:
+
+
+
LABELSIZE = 13
+plt.rc('axes', labelsize=LABELSIZE)
+plt.rc('axes', titlesize=LABELSIZE)
+plt.rc('figure', titlesize=LABELSIZE)
+plt.rc('legend', fontsize=LABELSIZE)
+plt.rc('xtick', labelsize=LABELSIZE)
+plt.rc('ytick', labelsize=LABELSIZE)
+
+
+
+
+
[3]:
+
+
+

def create_random_network(N, p): + G = nx.Graph() # Initialize an empty graph + G.add_nodes_from(range(N)) # Add N isolated nodes + + # Iterate through each possible node pair + for i in range(N): + for j in range(i + 1, N): + if random.random() <= p: # Generate a random number and compare it with p + G.add_edge(i, j) # Connect the nodes if the condition is met + + return G + +# Example usage: +N = 10 # Number of nodes +p = 0.3 # Probability of edge creation + +seed=2 +random.seed(seed) +np.random.seed(seed) + +random_network = create_random_network(N, p) +plot_graph(random_network, seed=2, figsize=(5, 3), title="Random Network") +
+
+
+
+
[3]:
+
+
+
+
+<AxesSubplot:title={'center':'Random Network'}>
+
+
+
+
+
+
+../_images/examples_chap_03_6_1.png +
+
+

Other option would be to use the nx.gnp_random_graph function from NetworkX, which generates random graphs with a given number of nodes and a given probability of edge creation.

+
G = nx.gnp_random_graph(N, p)
+
+
+
+
+

Binimial distribution

+

Degree distribution in a random network follows a binomial distribution.

+
+
[4]:
+
+
+
# make a random graph with N nodes and average degree of k
+np.random.seed(2)
+
+num_nodes = [100, 1000, 10000]
+average_degree = 50
+lambd = 50
+colors1 = plt.cm.Reds(np.linspace(0.2, 0.6, len(num_nodes)))
+
+for i in range(len(num_nodes)):
+    probability = average_degree / num_nodes[i]
+    graph_b = nx.gnp_random_graph(num_nodes[i], probability)
+    degrees = [d for n, d in graph_b.degree()]
+    sns.kdeplot(degrees, fill=False, label=f"N.bino={num_nodes[i]}", color=colors1[i])
+
+s = np.random.poisson(lambd, num_nodes[-1])
+sns.kdeplot(s, fill=False, label=f"N.pois={num_nodes[i]}", color='b')
+
+plt.xlabel("k")
+plt.ylabel("P(k)")
+plt.legend();
+
+
+
+
+
+
+
+../_images/examples_chap_03_9_0.png +
+
+
+
+

The evolution of a random network

+
+
[5]:
+
+
+
import networkx as nx
+import matplotlib.pyplot as plt
+
+# Step 1: Generate a random graph (Erdős-Rényi model)
+n = 20  # number of nodes
+p = 0.12  # probability of edge creation
+G = nx.erdos_renyi_graph(n, p)
+
+# Step 2: Find all connected components
+connected_components = list(nx.connected_components(G))
+
+# Step 3: Calculate the size of each connected component
+component_sizes = [len(component) for component in connected_components]
+
+# Display the graph and component sizes
+print("Connected Components:")
+for i, component in enumerate(connected_components):
+    print(f"Component {i + 1}: Size {len(component)}")
+
+# Optionally, visualize the graph
+plot_graph(G, seed=2, figsize=(5, 3));
+
+
+
+
+
+
+
+
+Connected Components:
+Component 1: Size 19
+Component 2: Size 1
+
+
+
+
+
+
+../_images/examples_chap_03_11_1.png +
+
+

Plotting the size of giant connected component vs average degree

+
+
[6]:
+
+
+
N = int(1e4)
+print(f"N={N}, Ln(N)= {np.log(N)}")
+k_avg = [.1, 0.5, 0.9, 1.0] + np.linspace(1.1, np.log(N), 10).tolist()
+giant_component_sizes = []
+for i in range(len(k_avg)):
+    p = k_avg[i] / N
+    G = nx.erdos_renyi_graph(N, p)
+    connected_components = list(nx.connected_components(G))
+    component_sizes = [len(component) for component in connected_components]
+    giant_component_size = max(component_sizes)
+    giant_component_sizes.append(giant_component_size)
+
+    print(f"average k = {k_avg[i]:10.3f}, giant_component_size={giant_component_size:10d}")
+
+giant_component_sizes = np.array(giant_component_sizes)/N
+plt.plot(k_avg, giant_component_sizes, marker='o', label='Giant Component Size')
+plt.xlabel(r'Average Degree')
+plt.ylabel(r'$N_G / N$');
+
+
+
+
+
+
+
+
+N=10000, Ln(N)= 9.210340371976182
+average k =      0.100, giant_component_size=         4
+average k =      0.500, giant_component_size=        11
+average k =      0.900, giant_component_size=       164
+average k =      1.000, giant_component_size=       480
+average k =      1.100, giant_component_size=      1682
+average k =      2.001, giant_component_size=      8028
+average k =      2.902, giant_component_size=      9363
+average k =      3.803, giant_component_size=      9755
+average k =      4.705, giant_component_size=      9909
+average k =      5.606, giant_component_size=      9967
+average k =      6.507, giant_component_size=      9989
+average k =      7.408, giant_component_size=      9999
+average k =      8.309, giant_component_size=      9997
+average k =      9.210, giant_component_size=      9998
+
+
+
+
+
+
+../_images/examples_chap_03_13_1.png +
+
+
+
+

Degree distribution of real networks

+
+
[4]:
+
+
+
from netsci.utils import load_sample_graph, list_sample_graphs
+from netsci.analysis import graph_info
+
+graphs = list_sample_graphs()
+graphs.keys()
+
+
+
+
+
[4]:
+
+
+
+
+dict_keys(['Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW', 'Actor'])
+
+
+
+
[5]:
+
+
+
G_collab = load_sample_graph('Collaboration', verbose=True)
+graph_info(G_collab)
+
+
+
+
+
+
+
+
+Successfully loaded Collaboration
+================================
+Scientific collaboration network based on the arXiv preprint archive's
+ Condense Matter Physics category covering the period from January 1993 to April 2003.
+ Each node represents an author, and two nodes are connected if they co-authored at
+ least one paper in the dataset. Ref: Leskovec, J., Kleinberg, J., & Faloutsos, C. (2007).
+ Graph evolution: Densification and shrinking diameters.
+ ACM Transactions on Knowledge Discovery from Data (TKDD), 1(1), 2.
+Graph information
+Directed                                :                False
+Number of nodes                         :                23133
+Number of edges                         :                93439
+Average degree                          :               8.0784
+Connectivity                            :         disconnected
+
+
+

Figure 3.6

+
+
[10]:
+
+
+
from scipy.stats import poisson
+from collections import Counter
+
+fig, ax = plt.subplots(1,3, figsize=(15,4))
+
+c = 0
+for net in ["Internet", "Collaboration", "Protein"]:
+    G = load_sample_graph(net)
+    degrees = [G.degree(n) for n in G.nodes()]
+    degree_count = Counter(degrees)
+    k, pk = zip(*degree_count.items())
+    k = np.array(k)
+    pk = np.array(pk)/sum(pk)
+
+
+    ax[c].loglog(k, pk, 'k.', label='real')
+    ax[c].set_xlabel("k")
+    ax[c].set_ylabel("pk");
+    ymin, ymax = np.min(pk)*0.9, np.max(pk)*1.1
+
+    # add poisson distribution to graph
+
+    k = np.arange(0, max(degrees)+1)
+    pk_poisson = poisson.pmf(k, np.mean(degrees))
+    ax[c].loglog(k, pk_poisson, 'r', label='poisson')
+    # plt.ylim([1e-5, 1])
+    ax[c].legend(frameon=False);
+    ax[c].set_ylim([ymin, ymax])
+    ax[c].set_title(net)
+    c += 1
+
+plt.tight_layout()
+
+
+
+
+
+
+
+../_images/examples_chap_03_18_0.png +
+
+
+
+

Clustering coefficient

+

The local clustering coefficient of a random network is

+
+\[C_i = p= \frac{⟨k⟩}{N}\]
+

To analyze the dependence of the average path length \(d(p)\) and the clustering coefficient \(\langle C(p) \rangle\) on the rewiring parameter \(p\) for a small-world network, you can use the Watts-Strogatz model. This model begins with a regular lattice and introduces randomness by rewiring each edge with probability \(p\). Here’s a step-by-step guide on how to perform this analysis:

+
    +
  1. Generate a regular lattice: Create a regular ring lattice with \(N\) nodes where each node is connected to its \(k\) nearest neighbors.

  2. +
  3. Rewire edges: For each edge in the lattice, rewire it with probability \(p\). This involves replacing the existing edge with a new edge that connects the node to a randomly chosen node in the network.

  4. +
  5. Compute :math:`d(p)` and :math:`langle C(p) rangle`:

    +
      +
    • \(d(p)\) is the average shortest path length between all pairs of nodes in the network.

    • +
    • \(\langle C(p) \rangle\) is the average clustering coefficient of all nodes in the network.

    • +
    +
  6. +
  7. Normalize by :math:`d(0)` and :math:`langle C(0) rangle`:

    +
      +
    • \(d(0)\) is the average path length of the regular lattice (when \(p=0\)).

    • +
    • \(\langle C(0) \rangle\) is the average clustering coefficient of the regular lattice (when \(p=0\)).

    • +
    +
  8. +
  9. Plot the results: Plot \(d(p)/d(0)\) and \(\langle C(p) \rangle / \langle C(0) \rangle\) as functions of \(p\) on a log scale to observe the small-world phenomenon.

  10. +
+
+
[10]:
+
+
+
import numpy as np
+import networkx as nx
+import matplotlib.pyplot as plt
+
+# Parameters
+N = 1000  # Number of nodes
+k = 10    # Each node is connected to k nearest neighbors in ring topology
+p_values = np.logspace(-4, 0, num=100)  # Rewiring probabilities
+
+# Initialize lists to store results
+average_path_lengths = []
+clustering_coefficients = []
+
+# Generate the initial regular lattice
+G0 = nx.watts_strogatz_graph(N, k, 0)
+d0 = nx.average_shortest_path_length(G0)
+C0 = nx.average_clustering(G0)
+
+for p in p_values:
+    G = nx.watts_strogatz_graph(N, k, p)
+    d = nx.average_shortest_path_length(G)
+    C = nx.average_clustering(G)
+    average_path_lengths.append(d / d0)
+    clustering_coefficients.append(C / C0)
+
+# Plotting
+plt.figure(figsize=(5, 4))
+
+# Average path length plot
+plt.plot(p_values, average_path_lengths, marker='o', linestyle='-', color='blue', label=r"$d(p)/d(0)$")
+
+# Clustering coefficient plot
+plt.plot(p_values, clustering_coefficients, marker='o', linestyle='-', color='red', label=r"$\langle C(p) \rangle / \langle C(0) \rangle$")
+plt.xscale('log')
+plt.xlabel('Rewiring probability p')
+plt.legend(frameon=False)
+plt.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+../_images/examples_chap_03_21_0.png +
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/examples/chap_03.ipynb b/examples/chap_03.ipynb new file mode 100644 index 0000000..ccf8348 --- /dev/null +++ b/examples/chap_03.ipynb @@ -0,0 +1,530 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 3](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_03.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Random Networks**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A random network consists of N nodes where each node pair is connected with probability p.\n", + "To construct a random network we follow these steps:\n", + "1) Start with N isolated nodes.\n", + "2) Select a node pair and generate a random number between 0 and 1. If the number exceeds p, connect the selected node pair with a link, otherwise leave them disconnected.\n", + "3) Repeat step (2) for each of the N(N-1)/2 node pairs.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "import networkx as nx\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "from netsci.plot import plot_graph" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "LABELSIZE = 13\n", + "plt.rc('axes', labelsize=LABELSIZE)\n", + "plt.rc('axes', titlesize=LABELSIZE)\n", + "plt.rc('figure', titlesize=LABELSIZE)\n", + "plt.rc('legend', fontsize=LABELSIZE)\n", + "plt.rc('xtick', labelsize=LABELSIZE)\n", + "plt.rc('ytick', labelsize=LABELSIZE)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "def create_random_network(N, p):\n", + " G = nx.Graph() # Initialize an empty graph\n", + " G.add_nodes_from(range(N)) # Add N isolated nodes\n", + "\n", + " # Iterate through each possible node pair\n", + " for i in range(N):\n", + " for j in range(i + 1, N):\n", + " if random.random() <= p: # Generate a random number and compare it with p\n", + " G.add_edge(i, j) # Connect the nodes if the condition is met\n", + "\n", + " return G\n", + "\n", + "# Example usage:\n", + "N = 10 # Number of nodes\n", + "p = 0.3 # Probability of edge creation\n", + "\n", + "seed=2\n", + "random.seed(seed)\n", + "np.random.seed(seed)\n", + "\n", + "random_network = create_random_network(N, p)\n", + "plot_graph(random_network, seed=2, figsize=(5, 3), title=\"Random Network\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other option would be to use the `nx.gnp_random_graph` function from NetworkX, which generates random graphs with a given number of nodes and a given probability of edge creation.\n", + "\n", + "```python\n", + "G = nx.gnp_random_graph(N, p)\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Binimial distribution\n", + "\n", + "Degree distribution in a random network follows a binomial distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2PMrHqke5SHbtm3TSik9ePDgAsdnzJihAT1v3jyPnW+z2XRISIju2LGjdjgcBdqPHDlSA/r3338vduxS3FII73Mc2mkUnzzwh1ev48zNOlNA027z6rW8oSoXt3zllVcKvTd58mQNFCpuecstt2hAr1692n3MVdyyQ4cOOjIyUj/55JN65syZuk+fPhrQN910U4G+n3322UJFIos65tKgQQPds2fPAseGDh2qAX3llVfqmTNn6qeeekpXq1ZNh4aG6s2bN5fq+1GUH374QU+ePFlPnjxZX3jhhRrQDz/8sPvYP6WkpOgGDRrosLAw/cwzz+i3335b9+rVSwP6f//7X6G++/fvrwF9xx136P/973/6jjvu0IAeNWpUobavvvqqBnSvXr3022+/rZ955hkdGhqqW7RoUaBopid4urilXyVNTz31lAb02rVrCxzPzs7WISEh+uqrr/bY+VlZWVoppfv161eoH1cl1N27dxc7dkmahPA+x57fjETmyH7vX2vrauNap497/VqeJklTQZmZmTo6OrpESdOzzz6r58+fr9u2bauDgoJ0vXr19IQJE3ReXsEq9J5Immw2m37ppZd0ixYtdFBQkK5evboeOHCg/uMPz/5x4IrrbI9/O3z4sB41apSuWbOmtlgsukOHDnrhwoVF9p2dna2feuop3aBBAx0UFKTj4+P1pEmTCn2/XGbPnq3btWunLRaLrlWrlr7tttv0sWPHPPp5XXF5MmlSWvvPHNSVV17Jt99+W+Tti5dccgm7d+8+54Z+JT2/V69erFu3jhdffJHrr7+egIAA1qxZw3333cegQYP46KOPznqt3NzcAncLpKWlERcXR2pqKhERHtx5XQjh5ty2FrIzUE07o6rV9u619m+FE4kQ3RhTveZevZan5eTkcODAAeLj4923cQtRFRXn30JaWhqRkZHF+v3tV2uakpKSiIqKKrJ+Q2xsLCkpKeTlnb2SbUnPnzdvHr179+bxxx+nadOmxMfHc/vtt/PQQw+dt67HlClTiIyMdD/+XQlVCOFZWmvIyV974qU75/5JheeXHsg47fVrCSEqBr9Kms5XIMvVxlPnWywW4uPjufnmm1mwYAELFizg+uuv5/nnn+fFF188Z6xPPPEEqamp7se/7xoQQniYLRe0E1AQVPLbqEssND9pyjyN1ue/CUUIUfn5VZ2mkJAQjh8/XuR7xSl6VZLzs7KyuPjii+nYsSMLFy50t7vxxhu58cYbeeaZZ7jhhhto3rzoYXmLxVKqPX2EEKWUk3/nnCUYZSqHv/eCw8AcAA67UYU8RKbdhajq/GqkKSYmhpSUlCIriyYmJhIVFUVQ0Nkrxpbk/MWLF7Nnzx6GDBlSqO2QIUNwOp38+OOPZfg0QgiPys0fJbaUT7VgpRSEVjNeZEjpASGEnyVNXbp0wel0snHjxgLHc3Jy2LJlS4ECWWU931W9tKjKqna7vcBXIYTv6XJOmgAIq2ZcW5ImIQR+ljQNGzYMpVShAlnvvvsuWVlZBYpe7du3j507d5b6fNceQh9++GGhOFzHXJVLhRB+IH8RuLKWX9KkwmQxuBDiDL9a09S2bVvGjBnDrFmzGDx4MP369WPHjh3MmDGDnj17MmLECHfbyy+/nISEhAIVVEtyfv/+/enatSsrV67k0ksvZfDgwQB89tlnrFu3jiFDhhTY4VoI4WO5rjVN3r9zzs01PZebhbblogJlHaMQVZlfJU1glF1v2LAh77zzDitWrCAqKoqxY8cyadIkTMVY/Fnc881mM99++y1Tpkzhs88+47HHHkMpRdOmTZk6dSrjxo3z5scUQpSUD6bnVEAgOjjMWAiecRqq1ym3awsh/I9fFbesyEpSHEsIUTLanof+/VsAVMcrUWfZPd4bnAf+hJRDULcRprgW5XbdspDilkIYKnVxSyGEKJKrqGWgpVwTJgCVvxiczNPlel0hhP+RpEkI4f98ceecS9g/ilw6pcilEFWZJE1CCP+XW37bpxRiDQVzIDidkJ1W/tcXQvgNSZqEEH5P51cDVz4YaVJKues1SemByu/gwYMopZg4cWKx2k+cOBGlFAcPHvRqXMI/SNIkhPB/vpye40y9Jily6b/WrFmDUgqlFO+++26RbZRS9O/fv5wj8x+ffPIJt912G+3btycwMPC8yV5SUhI333wztWrVIjg4mM6dO7No0aIi2+bm5vLMM88QHx+PxWKhcePGPP/889hstiLbz5kzhw4dOhAcHEydOnW48847SU5OLrLtL7/8Qp8+fQgPDyciIoKrrrqKLVu2lPTje4QkTUII/+eenvNN0iQjTRXLxIkTyc7OLpdrPf3002RnZ9OgQYNyuV5ZvPXWWyxcuJDg4GAaN258zrYnT56ke/fufPbZZ4wePZrp06cTFhbG0KFDmT17dqH2w4YNY/LkyfTu3Zs333yTXr16MWHCBO66665Cbd944w1uueUWIiMjmT59Ovfccw8LFy6kV69eZGZmFmj7888/07NnTw4cOMCkSZN47rnn2LNnDz169ODPP/8s2zekNLTwiNTUVA3o1NRUX4ciRKXitNu0Y+MK7di4Qjtteb6PITfbJzGURHZ2tt6+fbvOzvb/WD1l9erVGtCdO3fWgH7xxRcLtQH0Nddcc85+Dhw4oAH97LPPeilS30lISNA2m01rrfWYMWM0oA8cOFBk20ceeUQDetmyZe5jdrtdd+nSRdeoUUOnp6e7j69YsUIDety4cQX6GDdunAb0Tz/95D6WnJysQ0JCdJcuXbTdbncfX7ZsmQb0Cy+8UKCPLl266PDwcH348GH3scOHD+vw8HDdt2/f837m4vxbKMnvbxlpEkL4N9cokzkQFRDokxCUOQCCw40XUnrArw0dOpROnToxdepUTpw4Uaa+FixYQLt27bBardSvX5+JEycW2pO0qDVNrmO7du3iySefpF69elgsFtq3b8/KlSsLXcdutzN16lRatWqF1WqlZs2aDBo0yOMjKfXr1ycgoHg1refPn0/jxo0ZMGCA+5jZbGbs2LGcPHmywOeYP38+AA8++GCBPlyv586d6z62dOlSsrKyGDt2LOZ/lA8ZMGAAjRo1KtB27969bNq0iSFDhhAbG+s+Hhsby5AhQ/j22285evRosT6Pp0jSJITwb76emnMJjQRAZ6b6No4y0lqjs7P98+GBWstKKV566SVSU1N54YUXSt3PsmXLGD16NAMGDOCVV16hefPmPPfcc0VON53NLbfcwrp16xg/fjyTJ08mOTmZ6667rtA6opEjR/L4449Tr149XnnlFe69915Wr15Nt27d+P333wu0PXXqFCkpKcV65ObmluqzHzlyhMTERC666KJC77mObdq0yX1s06ZNxMbGEhcXV6BtXFwcMTExhdoCdOvWrci+d+7cSUZGRrHaaq357bffSvrxysTvtlERQogCcvPXpgT5NmlSoZHolMNQwZMmcnJIv7a7r6MoUviyHyE4uMz99OnTh759+/LWW2/xwAMPlGq90datW9m0aZN7D9L77ruPwYMH88EHH3DPPfcUmVD8W1RUFMuXLzfuwAQuu+wyunbtyttvv82UKVMAWLVqFZ988glDhw5l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17M//vGPbNu2jRkzZjBv3jxCQ0M5cOAATz/9NO+88w55eXlEREQAnuUWxowZg9Fo5Le//S0xMTHs2LGDKVOm8Pe//5177rknyO/m+iorK6OyspLMzEwSEhIwGo0cP36c7du38/bbb1NQUEBcXBygv9hcafXq1Zw/f97vPj3GJj09nSVLlrQqu/KDT49xKS0tZfz48VitVh555BGSk5Opra2lsLCw1YK/eXl5jB8/nn79+rFu3ToAtm7dSnp6Orm5uaSkpATrLbSL+++/nyFDhviUFxYW8vvf/5777vvuZuZ6Gzdut5upU6eSm5vLggULyMrKwmaz8dZbb7Fw4UJOnDjBhg0bgC4+bpToFI4ePaouXrzoU75q1SoFqC1btnjLZs+erQwGg/r888+9ZfX19SoxMVElJycrt9vdEV0OunfeeUcBasOGDd4yPccmPz9fhYSEqJdeekkB6vHHH2+1X2+xAdSCBQu+t57e4qKUUnfffbdKSEhQFRUVV62XmpqqLBaLKisr85aVlZUpi8WiMjIy2rubncaSJUsUoPbs2eMt09u4yc3NVYBavnx5q3Kn06kGDRqkYmJivGVdedxI0tTJFRYWKkAtXbpUKaWU1WpVJpNJTZw40afuunXrFKCOHDnS0d0MiiNHjihAPfXUU0opfcemublZjRgxQk2fPl2dOXPGJ2nSY2xakian06nq6+v91tFjXD7++GMFqM2bNyullGpsbFQNDQ0+9b788ksFqEWLFvnsW7RokdI0TVVWVrZ7f4PNarWq6OholZCQoJqbm71lehs3//jHPxSgXnzxRZ99qampKj4+XinV9ceNzGnq5MrKygDo3bs34DlM7HQ6ueuuu3zqjh49GoCjR492XAc7kMPhoKqqirKyMj744AOWLl0KwLRp0wB9x2bjxo2cPHmSrVu3+t2v19j85S9/wWw2Y7FYiIuLIysri9raWu9+PcZl3759ACQmJnLfffcRERFBZGQkycnJ7Nq1y1uv5X23FRulFPn5+R3T6SDKycmhrq6Ohx9+mJCQEECf4yYtLY1u3brx4osvkpOTw9dff83JkydZuXIl+fn5rFmzBuj640bmNHViLpeL9evXYzQamTt3LgAVFRWA/5sJt5T5uwlxV7Bz506ysrK8zwcOHMiuXbtIT08H9BubM2fO8Oyzz7J69WoGDhxISUmJTx09xiYt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make a random graph with N nodes and average degree of k\n", + "np.random.seed(2)\n", + "\n", + "num_nodes = [100, 1000, 10000]\n", + "average_degree = 50\n", + "lambd = 50\n", + "colors1 = plt.cm.Reds(np.linspace(0.2, 0.6, len(num_nodes)))\n", + "\n", + "for i in range(len(num_nodes)):\n", + " probability = average_degree / num_nodes[i]\n", + " graph_b = nx.gnp_random_graph(num_nodes[i], probability)\n", + " degrees = [d for n, d in graph_b.degree()]\n", + " sns.kdeplot(degrees, fill=False, label=f\"N.bino={num_nodes[i]}\", color=colors1[i])\n", + "\n", + "s = np.random.poisson(lambd, num_nodes[-1])\n", + "sns.kdeplot(s, fill=False, label=f\"N.pois={num_nodes[i]}\", color='b')\n", + "\n", + "plt.xlabel(\"k\")\n", + "plt.ylabel(\"P(k)\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### The evolution of a random network" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Connected Components:\n", + "Component 1: Size 19\n", + "Component 2: Size 1\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Step 1: Generate a random graph (Erdős-Rényi model)\n", + "n = 20 # number of nodes\n", + "p = 0.12 # probability of edge creation\n", + "G = nx.erdos_renyi_graph(n, p)\n", + "\n", + "# Step 2: Find all connected components\n", + "connected_components = list(nx.connected_components(G))\n", + "\n", + "# Step 3: Calculate the size of each connected component\n", + "component_sizes = [len(component) for component in connected_components]\n", + "\n", + "# Display the graph and component sizes\n", + "print(\"Connected Components:\")\n", + "for i, component in enumerate(connected_components):\n", + " print(f\"Component {i + 1}: Size {len(component)}\")\n", + "\n", + "# Optionally, visualize the graph\n", + "plot_graph(G, seed=2, figsize=(5, 3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the size of giant connected component vs average degree" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N=10000, Ln(N)= 9.210340371976182\n", + "average k = 0.100, giant_component_size= 4\n", + "average k = 0.500, giant_component_size= 11\n", + "average k = 0.900, giant_component_size= 164\n", + "average k = 1.000, giant_component_size= 480\n", + "average k = 1.100, giant_component_size= 1682\n", + "average k = 2.001, giant_component_size= 8028\n", + "average k = 2.902, giant_component_size= 9363\n", + "average k = 3.803, giant_component_size= 9755\n", + "average k = 4.705, giant_component_size= 9909\n", + "average k = 5.606, giant_component_size= 9967\n", + "average k = 6.507, giant_component_size= 9989\n", + "average k = 7.408, giant_component_size= 9999\n", + "average k = 8.309, giant_component_size= 9997\n", + "average k = 9.210, giant_component_size= 9998\n" + ] + }, + { + "data": { + "image/png": "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bW2tVWtyNjIhhLB1EY6qsLAQXbt2RUREBHbv3m2cer9v3z7ExsZi6tSpWLFihY2rdB6LFi3CggULMH78eKxevRqurq62Lskp1dTU4Pvvv2+wvaCgAE888QTuuece/OMf/0CfPn3Qs2dPG1ToPIqLi9G1a1eoVCpkZWVBrVYDqGuli4iIQEVFBXJycti1bwVPP/003nrrLbz22mt47rnnjNtLSkrQt29fFBUVobCw0Dj+lMyPgcjC3n77bcyePRvx8fGYOHEiCgsLkZaWBnd3d+zbt8/YrUaW9d577+Gpp55Cly5dsGjRogZhKDAwEImJiTaqjgAgOzsb4eHheOKJJ/D+++/buhynsXLlSvz9739Hr169MH36dMhkMqxYsQInTpzAxx9/zNlNVnL27FlERUXhypUrGDduHG677TZcuXIFK1aswJ9//ok333wTzzzzjK3LdGy2XRfSOaxZs0YMHDhQKBQK4efnJx599FFx+vRpW5flVCZPniwANPk1bNgwW5fo9M6cOcOVqm3km2++EfHx8cLT01OoVCpx++23i40bN9q6LKdz/vx58eSTT4revXsLpVIpvLy8xG233SY+//xzW5fmFNhCRERERE6PI0qJiIjI6TEQERERkdNjICIiIiKnx0BERERETo+BiIiIiJweAxERERE5PQYiIiIicnoMREREROT0GIiIiIjI6TEQERERkdNjICJyMhqNBiqVCjKZDB9//LGty7EL2dnZkMlkxi8XFxf4+PigR48eePjhh/HJJ5+gsrLS1mUS0Q3gvcyInMyyZcvwz3/+E927d0dwcDB++eUXW5ckednZ2QgPD8fw4cMxdepUAEBZWRmys7Pxww8/4MCBA+jZsye++OIL3HLLLTaulojag4GIyMnExMTAy8sLjz76KJ588klkZWWhd+/eNqunrKwMnp6eNnv+1jAEoieeeALvv/9+g/1r1qzBlClTEBgYiN9//x2+vr7WLxJAVVUVXF1d4ebmZpPnJ7Jn7DIjciKHDx/G/v37MWXKFIwdOxZyuRwrV6407tfpdAgJCUG/fv0aPX/FihWQyWTYsGGDcVtVVRVeffVV9OnTBwqFAr6+vhg5ciQOHDhgcu62bduM3XTvvfceIiMjIZfL8e9//xsAsGfPHkyZMgW9evWCSqWCt7c34uPj8dVXXzVay6+//orbb78dSqUS/v7+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Pn/5y18AAG+++abJMQcPHjQZ89MSFxcXjB8/HpmZmfj8888bPab+azbXe0hk79hCROTgtmzZgnPnzmH+/PlNHvPwww/j+eefx4oVK3DbbbcBAO6//3507NgRycnJ0Gq1JoOpDWbNmoUtW7bg+eefx7Zt23DnnXfCx8cH586dw08//QSFQtHoejvXu/nmm9GnTx+88cYbKC8vR+/evXHy5EksX74cffv2RWZmpsnxixcvxp133on4+Hj885//RKdOnfDNN9/gypUrAOoGWBsMGjQIKSkpWLBgAQYMGIAxY8agc+fOyM/Px/79+7Fx40ZUV1e36md56tQprFmzBkDdwO/s7Gxs3rwZBw4cQK9evfDll1+atAT99a9/xdSpU7Fs2TIcPHgQI0eOhL+/P3JycrBz50788ccfxnWB7r33Xtx333349NNPcfnyZdx7773Iy8vD0qVLMXDgQOzfv9/kdTXnlVdewW+//YZx48bhq6++wpAhQ+Dh4YGzZ89i48aNiI6ONt62xVzvIZHds/q8NiKyqkceeUQAEIcPH272uH79+glPT0+TKehPPfWUACC8vLwanRYvRN0U8rffflvExMQIlUolVCqV6NGjhxg3bpz44YcfjMcZpt2vWrWq0etkZ2eLv/71r8Lf318olUoxaNAg8eWXX4oFCxY0mHIuhBDbt28X8fHxQqFQiI4dO4opU6YYp8fXXxrA4LvvvhN333236NChg/Dw8BChoaFixIgRYunSpc3+XIS4Nu3e8CWTyYSXl5fo3r27GD16tFi9erWoqKho8vxPPvlE3HbbbcLb21vI5XLRtWtX8dBDD4nPP//c5Ljy8nLxzDPPiODgYCGXy0X//v3F+vXrxZw5cwQAcfHiReOxhmn3TSkrKxOLFi0Sffv2FQqFQnh5eYmIiAgxffp0sWvXLpNjW/seEjky3rqDiBzGvn37MGjQIKSmpuL555+3dTlm88ADD2Dr1q3QarXG7kUiMi+OISIiuyOEaHB3eSEEXnvtNQBodt0eKWtsvZ8DBw5g8+bNuPPOOxmGiCyIY4iIyO5UVVWha9eumDBhAnr16oXi4mKkp6dj586dGDduHKKiomxdYrssWrQIBw4cwPDhw+Hr64tjx47hww8/hFwux0svvWTr8ogcGrvMiMju6HQ6PPbYY9ixYwfy8/Oh0+nQo0cPTJw4Ec8884zd3u1906ZNeO2113Ds2DEUFxfD19cXt99+OxYsWID+/fvbujwih8ZARERERE6PY4iIiIjI6TEQERERkdNjICIiIiKnx0BERERETo+BiIiIiJweAxERERE5PQYiIiIicnoMREREROT0/h9Ib2NCtc3yMAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "N = int(1e4)\n", + "print(f\"N={N}, Ln(N)= {np.log(N)}\")\n", + "k_avg = [.1, 0.5, 0.9, 1.0] + np.linspace(1.1, np.log(N), 10).tolist()\n", + "giant_component_sizes = []\n", + "for i in range(len(k_avg)):\n", + " p = k_avg[i] / N \n", + " G = nx.erdos_renyi_graph(N, p)\n", + " connected_components = list(nx.connected_components(G))\n", + " component_sizes = [len(component) for component in connected_components]\n", + " giant_component_size = max(component_sizes)\n", + " giant_component_sizes.append(giant_component_size)\n", + " \n", + " print(f\"average k = {k_avg[i]:10.3f}, giant_component_size={giant_component_size:10d}\")\n", + " \n", + "giant_component_sizes = np.array(giant_component_sizes)/N\n", + "plt.plot(k_avg, giant_component_sizes, marker='o', label='Giant Component Size')\n", + "plt.xlabel(r'Average Degree')\n", + "plt.ylabel(r'$N_G / N$');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Degree distribution of real networks" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW', 'Actor'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from netsci.utils import load_sample_graph, list_sample_graphs\n", + "from netsci.analysis import graph_info\n", + "\n", + "graphs = list_sample_graphs()\n", + "graphs.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Successfully loaded Collaboration\n", + "================================\n", + "Scientific collaboration network based on the arXiv preprint archive's \n", + " Condense Matter Physics category covering the period from January 1993 to April 2003. \n", + " Each node represents an author, and two nodes are connected if they co-authored at \n", + " least one paper in the dataset. Ref: Leskovec, J., Kleinberg, J., & Faloutsos, C. (2007). \n", + " Graph evolution: Densification and shrinking diameters. \n", + " ACM Transactions on Knowledge Discovery from Data (TKDD), 1(1), 2.\n", + "Graph information\n", + "Directed : False\n", + "Number of nodes : 23133\n", + "Number of edges : 93439\n", + "Average degree : 8.0784\n", + "Connectivity : disconnected\n" + ] + } + ], + "source": [ + "G_collab = load_sample_graph('Collaboration', verbose=True)\n", + "graph_info(G_collab)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Figure 3.6" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABdAAAAGGCAYAAAB7U6NoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAADEuUlEQVR4nOzde1xT9f8H8Nc2BLl7wSydDhHMLLVUtLCMKCP7ZnZTvGRqJFikktkFSzNvaHlXKrClpaZSWVa/sjSnVliiVmpmgjp0ZqmUIF5QtvP74+Mmg4Fctp1dXs/HY4+Ns7PtzUo+57zP5/N+KyRJkkBERERERERERERERFaUcgdAREREREREREREROSKmEAnIiIiIiIiIiIiIrKBCXQiIiIiIiIiIiIiIhuYQCciIiIiIiIiIiIisoEJdCIiIiIiIiIiIiIiG5hAJyIiIiIiIiIiIiKygQl0IiIiIiIiIiIiIiIbmEAnIiIiIiIiIiIiIrKBCXQiIiIiIiIiIiIiIhuYQCciIiIiciGTJ0+GQqGAXq+3bFu2bBkUCgU2b95cp/fcvHkzFAoFli1bZpcY5RAeHo7Y2Fi5wyAiIvJI9T3WIPJkTKATeRnzCfTMmTPr9PrPPvsMkydPtm9QTjR//ny3Th4QEZHruHDhAhYtWoQ777wTTZs2RYMGDXDNNdcgPj4eS5YsQWlpqdwhuh2O00RE5O7M59zlb0FBQejatSsWLFgAo9Fo98+bPHkyTp8+bdf3JaIrmEAnolr57LPP8Prrr8sdRp3xxJyIiOxBr9eja9euGDNmDHx8fPDSSy8hKysLL774Iho0aIBRo0Zh9OjRcofpdqobp//88098++23zg2IiIiojhISErB8+XJ88MEHmDhxIs6dO4fU1FQ8/fTTdv2czZs34/XXX693An3o0KE4f/48evXqZZ/AiDyIj9wBEBGZlZaWQqVSwceHf5qIiMh1XbhwAQ888AD+/PNPZGdno3///lbPjx8/Hnv37vXqZK8jxnQ/Pz+7vRcREZGj3XzzzXj88cctPz/99NO44YYb8O6772Lq1Klo3rx5pdeUlJQgKCjImWFaqFQqqFQqWT6byNVxBjqRl9Pr9VAoFJg8eTI+++wzdO3aFQ0bNsR1112HF154AWVlZZZ9w8PD8f777wOA1XK08jXS8vLyMHToUFx33XXw9fVFeHg4XnjhBZw9e9bqc4cPHw6FQoGTJ0/iySefRPPmzeHv7w+DwWCp/bp//368+OKLaNmyJfz8/NC5c2d89dVXNn+PNWvW4Pbbb0dwcDACAgLQo0cPfPzxx5V+z4KCAmzZssUqfiIiotrQarX4/fffMW7cuErJc7ObbroJ48aNs9r2448/4r777kOjRo3g7++Pzp07Y9GiRZAkqU5xnDlzBq+++ip69OiBsLAw+Pn5ITIyEi+//DLOnTtX5esWLVqEdu3aoWHDhoiKisKCBQts7lfTeKsb0wHgrbfewr333ouWLVvC19cX1113HR5//HGrGu81GaerqoH+xRdf4I477kBwcDACAwPRvXt3rFq1qtJ+sbGxCA8Ph8FgwIABA9C4cWMEBgYiPj4eBw4cqO6rJiIiqreQkBDcdtttkCQJhw4dsoxrv/zyC+Lj4xEaGoqOHTta9q/JOBwbG2tZId6mTRvL2Fl+Ndfx48fx9NNPo3Xr1vD19UWLFi2QlJSEEydOWMVnqwa6edumTZswa9YsREREwM/PD+3atbPkBoi8Aad5EhEA4KuvvsJbb72FUaNG4amnnsK6deswe/ZsNG7cGBMmTAAgllXPnTsX33//PZYvX2557Q033AAA2LlzJ+Li4tCoUSMkJyejZcuW2L17NxYuXIgff/wRW7ZsQYMGDaw+t3fv3mjRogUmTpyIs2fPWl1tHzZsGPz8/PDCCy/g4sWLmD9/Ph566CEcOHAA4eHhlv1effVVTJ8+Hffddx+mTp0KlUqFTz/9FP3798fixYuRkpKCZs2aYfny5XjuuecQFhaGV155xYHfJhERebKPPvoIAJCcnFzj13z11Vfo168fwsLCkJqaisaNG+OTTz7BmDFjsGfPHmRlZdU6jmPHjkGr1aJ///4YMmQIVCoVtmzZgjfeeAO//PILvvnmm0qvWbRoEf7++28kJycjODgYq1atQmpqKgoLCzFlypR6xVvVmD5nzhzExMSgd+/eaNSoEfbu3Yt3330XmzZtwp49e9C0adM6j9NZWVlITk5GVFQU0tLS4OvrixUrVmDw4ME4fPiw5RjG7OzZs7jzzjtx2223YcaMGTh8+DAWLFiAfv36Ye/evZx5R0REDiNJEvLz8wEAYWFhAIAjR47g7rvvRv/+/fHoo4+ipKQEQM3H4VdeeQVNmjTBp59+innz5lneNyYmxvL+t912Gy5evIjExES0bdsWBw8exFtvvQWdTocdO3YgNDT0qrGnpaXhwoULGDVqFHx9ffHOO+9g+PDhiIyMRM+ePe3+XRG5HImIvIpOp5MASOnp6ZIkSdLhw4clAFJAQIB0+PBhy34mk0m68cYbpWuvvdbq9cOGDZOq+tPRqVMnqV27dlJxcbHV9rVr10oApKVLl1Z6nyeeeKLS+7z22msSAOl///ufZDKZLNu3b98uAZBefvlly7YdO3ZU2mbWr18/KTg42CoejUYj3XnnnTbjJyIiqokmTZpIwcHBNd6/rKxM0mg0UnBwsHT06FGr7ffdd58EQPrxxx8t283jYPlxeenSpRIASafTWbaVlpZKly5dqvR5r776qgRA+vnnny3bzON/UFCQVQylpaVSdHS0pFKpJL1eX6d4qxvTJUmSSkpKKm3buHGjBECaNWuW1fbqxumKz/33339SYGCgFB4eLp0+fdqy/ezZs1KnTp0kHx8fqaCgwLL9zjvvtPmZb7zxhgRAWr9+vc3PJSIiqg3zmDtx4kTp5MmT0okTJ6TffvtNeuqppyQAUnR0tCRJYlwDIL333ntWr7fHcYNZ3759pbCwMKv3kSRJys3NlVQqlfTaa69Zttk61jBvu/nmm6XS0lLLdoPBIPn6+koDBw6sy1dE5HZYwoWIAAAPPfSQ1axuhUKBu+66C3///bflKnh19uzZg927d2PgwIEoLS3FqVOnLLfbb78dgYGBNmvBVlzeXt7YsWOtlm5HR0cjODgYeXl5lm0ffvghAOCJJ56w+sxTp07hwQcfxJkzZ7Bt27aafAVEREQ1UlxcjJCQkBrvv2vXLhQUFGD48OFQq9WW7SqVyjJDeu3atbWOw9fX11JjvKysDP/99x9OnTqFe+65BwDw888/V3rNkCFDrGLw9fXFc889B6PRiC+++KJe8VY1pgcGBgIATCYTioqKcOrUKXTu3BmhoaE2Y6ypDRs24OzZsxg9erTV7LmAgACMHz8eZWVl+Pzzz61eo1QqMWbMGKttcXFxAGB1fEFERFRfU6dORbNmzXDNNdegc+fO0Gq16NOnDz777DPLPk2bNsWwYcOsXmev44bTp0/j//7v//DAAw+gYcOGVufK4eHhiIyMrHG/lmeeeQa+vr6Wn1u2bIl27dpx7CSvwRIuRAQAiIiIqLStadOmAIDCwsKrNjL5448/AABTpkyxWgJe3j///FNpW1RUVK1iatKkCQoLCyt9bocOHap8H1ufS0REVFchISE4c+ZMjfc/dOgQAODGG2+s9Jy51ql5n9p666238M477+D333+HyWSyeu6///6rtL+57Fp55jH04MGD9Yq3qjF906ZNmDJlCn7++WdcuHDhqjHWVF3ibNGiBRo2bGi1rfzxDhERkb0kJiZi4MCBUCgUCAgIQLt27SxjjllERASUSuu5rfY6bjhw4ABMJhOWLVtmVRO94ufXRFX5goKCghq9nsjdMYFORABQbc1PqQbNzcz7pKam4n//+5/NfRo3blxpW0BAQK1jKh+P+fFXX31Vqb66ma0DDyIiorrq2LEjtmzZgoMHD6Jt27ZX3b8m42hdzJkzB+PHj8e9996LMWPGoEWLFvD19cWxY8cwfPjwSgl1ADabZ5vjMz9X13htjenbt2/Hvffei8jISMycORNt2rSBv78/FAoFBg4caDPGmqouzqqeq+/xDhERUU1FRkZaVoVVxdbYaa/xyPw+gwYNwpNPPmlzH39//xq9V03OzYk8GRPoRFQrtk68AaBdu3YAxNLoqx0k2FO7du2wfv16qNVqq47lVakqfiIiopp67LHHsGXLFixZsgQzZ8686v7mJPvvv/9e6bm9e/da7VMbK1asQHh4OL7++mur2Wvr16+v8jX79u2rtM28mss8u8ye8a5atQpGoxFff/012rRpY9l+9uxZm7PPazNOl48zPj7e6jlz7HX5XomIiORU23G4qrEzMjISCoUCpaWlTj1HJ/JErIFORLViLuVS8aT35ptvRseOHZGVlWXpLF5eWVkZ/v33X7vH8/jjjwMAJkyYgLKyskrPnzhxwurnoKCgei0XJyIiSkxMxA033IA5c+ZUWYN0z549mDNnDgCgS5cu0Gg0eP/993Hs2DHLPiaTCenp6QCAhx9+uNZxqFQqKBQKq9lfZWVl1Sb1V65cCYPBYPn54sWLmDdvHlQqFfr27Wv3eM0z1irOUJsxY4bN2ee1Gad79+6NwMBALF68GMXFxZbtFy5cwJw5c+Dj42P5nYiIiNxFbcfhqs7RmzZtivvvvx/r1q3Djz/+WOlzJEnCyZMnHfErEHkczkAnolrp0aMHFi9ejJSUFPTp0wcNGjRAXFwcrrnmGnzwwQeIi4vDzTffjCeffBI33ngjzp07h/z8fKxduxbp6ekYPny4XeOJjo7G66+/jtdeew0333wzBgwYgBYtWuD48ePYuXMnvvrqK1y8eNEq/vfeew+TJ0/G9ddfb1lCTkREVFP+/v748ssv8b///Q+PPvoo7rnnHtx7770ICwtDYWEhtmzZgq+++gojR44EIJLIb731Fvr164fo6GgkJyejcePGWLt2LbZs2YKRI0ciJiam1nE89thjSEtLQ58+ffDII4+guLgYH374YZUlzQCxcqtHjx4YNWoUgoOD8eGHHyI3NxcTJ06ERqOxe7wPP/ww5s2bh/vvvx9JSUnw9fXFhg0bsHv3boSFhVXavzbjdKNGjTBnzhyMGjUK0dHRGDFiBBo0aIAVK1bg119/xfTp09G6desaxUlEROQqajsO9+jRAwCQlpaGQYMGwc/PDz169ECbNm3w9ttv4/bbb8ddd92FoUOHokuXLjCZTDh06BDWrVuHJ554ApMnT5bpNyVyH0ygE1GtDBo0CDt37sTq1auxZs0amEwm6HQ6XHPNNbj55pvxyy+/ID09HZ9//jneeecdBAcHIzw8HMOHD8fdd9/tkJgmTZqErl27YuHChZg/fz7Onj2La665BjfddBMWLFhgte+0adNw6tQpzJ8/H0VFRQDABDoREdVaREQEdu7ciSVLluDjjz9Geno6zpw5g8aNG6NLly5YsmSJZZUUANx///3Q6XSYOnUq5s6di9LSUkRFRWHBggUYPXp0nWJ44YUXIEkStFotxo4di2uvvRYJCQkYMWJElc21R48ejeLiYixatAhHjhxB69atMX/+fIwdO9ZqP3vF27NnT3zyySeYOnUqJk6cCH9/f9xzzz3YsmULevXqVWn/2o7TycnJuO666/DGG29g6tSpkCQJN910E1auXInBgwfXOE4iIiJXUptx+Pbbb8f06dORmZmJxMREGI1GLF26FG3atEGrVq2wc+dOzJo1C+vWrcPKlSvRsGFDtGrVCn379sWAAQNk+g2J3ItCYsV/IiIiIiIiIiIiIqJKWAOdiIiIiIiIiIiIiMgGJtCJiIiIiIiIiIiIiGxgAp2IiIiIiIiIiIiIyAYm0ImIiIiIiIiIiIiIbGACnYiIiIiIiIiIiIjIBibQiYiIiIiIiIiIiIhs8JE7AE9kMpnw119/ITg4GAqFQu5wiIjIzUiShDNnzqBFixZQKnmt25E4ZhMRUV1xvHYujtlERFRX9R2zmUB3gL/++gutWrWSOwwiInJzR48ehVqtljsMj8Yxm4iI6ovjtXNwzCYiovqq65jNBLoDBAcHAxD/UUJCQur8Ph988AHGjBkDSZKgUCiwcOFCPPHEE/YK0+3jISLyVMXFxWjVqpVlPCHHsdeY7Y6OHTuGgwcPom3btmjZsqXc4RARuR2O185lrzGb4x8Rkfep75itkCRJsnNMXq+4uBihoaEoKiqq88BuMBig0WhgMpks21QqFfR6vSyzG1wtHiIiT2aPcYRqxlu/a61Wi6SkJJhMJiiVSmRlZSExMVHusNzPpUvAvn1ASQlw7hxw9qy4r/i4XTtg4ECgQQO5IyYiO/LWMUQu9vi+Of4REXmn+o4hnIHuovLy8qyS1QBgNBqRn58vS8La1eIhIiKiujEYDJbkASBqyiYnJyM+Pp5jek2VlQHLlwNTpgB6fc1e89prwKuvAkOHMpFORFQLGRkZyMjIgNForNf7cPwjIqK6YgLdRUVFRUGpVFaa8R0ZGcl4iIiIqM6cfVHcYDAgLy8PUVFR7p+gMBqBVauA118H8vPFtuBgoHlzICBA3AIDrzwOCAB8fYHPPgMOHwYSE4Hp068k0n14KE5EdDUpKSlISUmxzB6sK04KIyKiumKrcBelVquRlZUFlUoFQCSrMzMzZRvYXS0eIiIiqhvzRfHyHHVRXKvVQqPRIC4uDhqNBlqt1u6f4RQmE5CdDXTsKBLf+flAWBjw5pvA338DeXnAb78B27YBGzcCn38OrF4NvPce8M47wKFDwJw5wDXXiMdPPgm0bw+8/76YzU5ERA7nzPGPiIg8CxPodpSRkYEOHTogOjraLu+XmJgIvV4PnU4HvV4ve202V4uHiIgoOzsbt99+O4KCghAeHi53OG7BWRfFq1oqbzAY7Po5DiVJwKefAjffDCQkAH/8ATRuDMyYIRLh48eLWeZXExAAjBsnXvPmm0CzZsDBg8Dw4cANNwBbtzr6NyEi8nqcFEZERHXFJqIOwGYyRERUHxxHam7Dhg34999/cezYMSxcuBD6mtajvsybv2uDwYD8/HxERkY6JHmg0+kQFxdnc3tsbKzdP8+uJAn4v/8DJk0CfvlFbAsJAZ5/Hhg7FqhHCQEAosFoRoZIpp86BQQFAVu2AF261D92InIabx5D5GCv79vR4x8REbkeNhElIiIir9W7d28AwMcffyxzJO5HrVY7NHHgtv1Tzp8HHn8cWLtW/BwUBKSmihnkjRvb5zMCA4EXXwSeeQZ46CHgu++APn2AnBygbVv7fAYREdnk6PGPiIg8D0u4EBERUZ2lp6ejf//+iIiIgEKhuGoZlVWrVqFr167w9/dHWFgYBg0ahIKCAucES07llkvl//0X6N1bJM99fUWS+/BhYOpU+yXPywsKEp91883AiRPAffeJeyIiIiIichmcgU5ERER1NmHCBDRp0gRdunTB6dOnq9138eLFGD16NHr27Il58+bh1KlTmD9/PrZu3Yrc3Fy0aNHCsm9paSkuXbpU5Xv5+/tbErPkuhITExEfH+8eS+WPHBEJ7D/+ECVaPv8c6NXL8Z8bEgJ8/TUQEyOak95/P7B5s0iuExERERGR7JhAJzp1CvjzT2D/fnH780+xfPt//wMeewxw5ZN9IiKZHTx4EBEREQCAm266CSUlJTb3KywsRFpaGrp06YLNmzfDx0ccgtx3333o3r07Jk2ahHfffdey/7Bhw7BmzZoqP9fV6mgbDAbk5eUhKirKtZPEMnCLpfJ79ogSKseOAS1bAuvXAzfd5LzPv/Za8Zk9ewI7dwKPPgp88YWYBU9ERERERLJiCRfyHiYTsGGDaNiVmAjcfjsQFgY0ayYeP/UUMHu2OGHduBF47jmgVStxMrtggTipJiIiK+bk+dWsW7cOJSUlGDNmjCV5DgDdunVDr169kJ2djYsXL1q2r169GpIkVXlzpeS5VquFRqNBXFwcNBoNtFqt3CF5LIPBAJ1OB4PBYL833bIFuOMOMc536ABs2+bc5LlZu3aicWlAAPDtt+JYpVz9eCIib5WRkYEOHTogOjpa7lCIiMhLMYFO3kGnA7p3B+69V9Qzfe894McfgcJC8Xzr1uK5MWOAjAxg/nxxMq1QiIZeqaliJvrttzOZTkRUB9u3bwcAxMTEVHouJiYGZ86cwf79+2v9vkajERcuXMClS5cgSRIuXLiA0tLSesdbUwaDAUlJSZZGmSaTCcnJyfZN8BIAB12o+OgjMf4XFYkx/vvvxcVzuXTvDnzyCeDjA6xYAbz8snyxEBG5iJSUFOzbtw+5ublyh0JERF6KCXTybL//DjzwABAXJ5ZEBwcDCQnA5MnAqlXAL78AJSVAQQHwzTciOf7MM8DYscDWrcDRo2Lb7beL9/vxR5FMDw8HsrJk/MWIiNzLscsXHm2V8jBvq0vSefny5fD398fgwYNx5MgR+Pv74/rrr69y/9LSUhQXF1vd6iMvL8+SPDczGo3Iz8+v1/uSNYdcqFi0SBwTXLwIPPywmPXdpImdIq6H++4DzBcH3nwT+OADeeMhIiIiIvJyTKCTZ/rrL2DkSKBTJ7Ec2scHePZZ4OBBYPVq4LXXgIEDgZtvBgIDq36fli3FrPTvvwcMBpFM79EDKCsDkpOBKVMASXLar0VE5K7OnTsHAPDz86v0XMOGDa32qY3hw4dXKu+i1+ur3D89PR2hoaGWW6t6zjaOioqCUml9OKVSqRAZGVmv9yVrdr1QIUliZveYMeLxM8+Imej+/naK1g6eeEIcqwDASy8BZ87IGw8RERERkRdjAt2G7Oxs3H777QgKCkJ4eLjc4Xg8u9YzPXMGmDQJiIoC3n1X1A599FExE33RIlHvvK7MyfRt24BXXxXbXntNnHgbjfWPnYjIgwUEBACAzfIq58+ft9rHkdLS0lBUVGS5HT16tF7vp1arkZWVBZVKBUAkzzMzM12/aaabsduFikuXgGHDgFmzxM/TpgGLFwOX//u5lLQ0oG1b4O+/gTfekDsaIiIiIiKvxQS6DY0bN8bo0aMxZcoUuUPxeHarZ3rpEvD220BkJDB1KnDuHHDbbaLkyscfi8Zc9qJQiM9YvFg8fucdYMAA4MIF+30GEdVIeHi4SzWTpKq1bNkSgO0yLdWVd7E3Pz8/hISEWN3qKzExEXq9HjqdDnq9HomJiXaIlMqzy4WKM2dEWbfly0XC/L33gFdeEWO5K/Lzu5I4nz1blJUjcmMcs4mIiFwfx2vbmEC3oXfv3khISEDr1q3lDsWj2aWeqSQBn30GdOwoZoKfOCFmn3/yiUie22hWZzcpKcCaNYCvL7B2LRAfD5w+7bjPIyJyY9HR0QCAnJycSs/l5OQgKCgI7du3d3ZYdqNWqxEbG8uZ5w5UrwsVJ08Cd90l6pwHBACffw6MGOG4YO3l4YdFU/MLF4AJE+SOhoiIiIjIK7lkAj09PR39+/dHREQEFArFVcuorFq1Cl27doW/vz/CwsIwaNAgFBQUOCdYqrN61zM9dQq4915xcvnnn0BYmJgV/vvvwCOPOGdGWf/+wPr1QEiIaDraq5eov05ERFb69euHgIAALFy4EGVlZZbtO3bswNatWzFgwAD4+vo6LZ6MjAx06NDBktgn91CnCxXnzwN9+4pm4mFhgE4H3H+/44K0J4UCmDtXPF6xAsjNlTceIiIiIiIv5CN3ALZMmDABTZo0QZcuXXD6KjN6Fy9ejNGjR6Nnz56YN28eTp06hfnz52Pr1q3Izc1FixYtLPuWlpbi0qVLVb6Xv7+/ZWkwOZ65nmn5JHqN65nu2QM8+CCg1wMNGwLjxokmW3ZYil9rd90FbNkC9Okj4oqJAX74AeAsRCKYTCaUlpbC35Wa85FdLV++3HLR+uTJk7h48SKmTZsGAGjUqBGeffZZAEBYWBhmzJiB1NRUxMbGYujQoTh16hTmzZuH5s2bO71sWkpKClJSUlBcXIzQ0FCnfjY5kckkZpr//DNMoaHInT0bLVu0gFuN0N26AUOHitIz48aJC/auWnaG3BrHbCIiItfH8VoeLjkD/eDBgygsLMSGDRusEuAVFRYWIi0tDV26dMHmzZsxatQovPrqq1i/fj2OHz+OSZMmWe0/bNgwBAcHV3n7/vvvHf2rUTl1rmf6+eciSa3Xi+ZaO3cC06fLkzw3u/lmICdHlI8pKABGjRLlZYgczK5NeOtp2bJlUCgU2LhxI6ZOnYq2bdvCz88Pa9asgSRJePvtt9G1a1cEBAQgODgYd911F3Q6XaX3eeutt3DvvfeiZcuW8PX1xXXXXYfHH38cer3e+b8UXZVWq8XEiRMxceJEnDhxAqdPn7b8PHv2bKt9x44dixUrVuDcuXNITU3F3Llzcc899yAnJ8dSI53IriZPBtasgVGlwj3Fxbh1+PD69VyRy/TpgL+/uEC/dq3c0VAdccwmIiJyfRyvyRaFJLl2lu+mm25CSUmJzf+o7733HhITE7Fs2TIMGzbM6rnY2Fjs2rULp06dqvOS8I8//hjjx4+v9f9Q5tlsRUVFdmlO5ukMBgPy8/MRGRlZffJckoBZs0QNUEkSM78/+gho2tR5wV7Nvn3ALbcAFy8CK1cCgwfLHRF5MK1Wa+kjoFQqkZWVJWvzwmXLlmHEiBHo3LkzysrK8PjjjyMkJAS33HILMjIysGrVKjz22GO44447UFpaipUrV2L37t1Yu3YtHnzwQcv7tG3bFjExMejUqRMaNWqEvXv34t1330VoaCj27NmDpuX+zYeHhyM8PBybN2+W4Td2HI4jzsPv2oOtWCFmbgNIVCjwXrlDXpVKBb1e71416ydNEk3MIyLE8Yafn9wRUS1wzPbMMZtjiHPx+yYiR+N47ZnjNWCHMURycTfeeKOk0WhsPpecnCwBkA4cOFDpubS0NAmA9Ntvv9X6M8vKyqTz589LH374odS6dWvp/Pnz0oULF2r8+qKiIgmAVFRUVOvPpiqcPy9JQ4ZIkkidS9LTT0vSxYtyR2Xb1KkixqZNJenECbmjIQ919OhRSalUSgAsN5VKJR09elS2mJYuXSoBkK6//nrp3Llzlu2ffPKJBEB65513rPa/dOmS1LVrVyk8PFwymUyW7SUlJZXee+PGjRIAadasWVbbNRqNdOedd9r3F3EBHEccb/HixdINN9wgtWvXjt+1J/r+e0ny9ZUkQNIPHGj1t9J80+l0ckdZO2fOSNK114pjjNmz5Y6GaoFjtuCJYzbHa+fi901EjsTxWvDE8VqS6j+GuGQJl5o6duwYANicPWTeVpclF8uXL4e/vz8GDx6MI0eOwN/fH9dff32V+5eWlqK4uNjqRnZ0/DgQGytmdKtUQEYG8NZbQIMGckdm24svAp06AYWFwNixckdDHqreTXgd6Omnn7aqx7Zy5UoEBgbioYcewqlTpyy306dPo2/fvtDr9cjLy7PsHxgYCEDUdisqKsKpU6fQuXNnhIaG4ueff3b670OeKSUlBfv27UMumzJ6nkOHRIPxixeBRx6BatYsKJXWh7w17rniSoKCRCkXQMxEP3VK3nioxjhmE9UPG38TkTNwvKbquHUC/dy5cwAAPxtLWBs2bGi1T20MHz4ckiRZ3aor45Keno7Q0FDLrVWrVrX+TKrCzp1AdDTw889A48bAt98CzzxjedqValNZ+PoCWi2gVAKrVgFffCF3ROSBzE14y3OVhFBUVJTVz3/88QfOnj2La6+9Fs2aNbO6TZ48GQDwzz//WPbftGkTYmNjERgYiEaNGln2LSoqwn///efMX4WI3M3p08D//ieSy127AsuXQ926dd16rriiYcOAzp2BoiJgxgy5o6Ea4phNVD+86E1EzsDxmqrjI3cA9REQEAAANrvPnj9/3mofR0pLS8O4ceMsPxcXFzOJbg/Z2cDw4cD580D79iIRXe4Pl6vVprLSrRvw/PPAm28CTz8N9OoFhIbKHRV5EHMT3uTkZBiNRpdKCFX8uytJEpo0aYI1a9ZU+ZqbbroJALB9+3bce++9iIyMxMyZM9GmTRv4+/tDoVBg4MCBlWYEEBFZXLoE9O8P7N8PqNWi6fjlv0eJiYmIj4+vWc8VV6ZSicT5//4HLF0KTJtm+R3JdXHMJiIicn0cr6k6bp1Ab9myJQAxC7ni1ZjqyrvYm5+fn81Z8FRHJhPw+uvAlCni5/vuA1avtkpAGwwGS/JcvMSE5ORkxMfHu8QfNwDA5MnAp58C+fmirEtmptwRkYdxl4RQu3bt8OeffyI6OhqhV7mQtGrVKhiNRnz99ddo06aNZfvZs2d5ZZyIqiZJwOjRwMaNQGCguOjeooXVLmq1usZ/Jw0GA/Ly8hAVFeV6f1vvuw8IDwf0etFMfdgwuSOiGuCYTURE5Po4XlNV3LqEi7kGWk5OTqXncnJyEBQUhPbt2zstHtZms4OzZ4EBA64kz59/Hvjyy0qzt125NpVFQADw7rvicVYWoNPJGw95JLVajdjYWJcd2AFg6NChkCQJaWlpkCSp0vPll5aZSyxU3G/GjBm8Mk52xTHbw8yfLy5UKxSifNrNN9f5rbRaLTQaDeLi4qDRaKDVau0Wpl0olcDIkeJxVpa8sVCtcMwmIiJyfRyvyRa3noHer18/jBkzBgsXLsSQIUPg4yN+nR07dmDr1q0YMWIEfH19nRZPSkoKUlJSUFxcfNUrQGTDkSNAv37Ar7+KBqGZmcCIETZ3NdemKv+P3VVqU1m5805g1CjgnXfEye7u3VxqTV7nsccew4gRI/D222/j119/Rd++fREWFgaDwYBt27YhPz8fhw4dAgA8/PDDmDdvHu6//34kJSXB19cXGzZswO7duxEWFibzb0KehGO2B/niC3HBHQBmzwb69q3zW7nFCjdAHB+99hqQkwPs3QtcXqJLVF8cs4mIiFwfx2vnc8kZ6MuXL8e0adMwbdo0nDx5EkVFRZafFy9ebNkvLCwMM2bMwK5duxAbG4vMzExMnz4d9913H5o3b44p5lnM5PpyckSz0F9/BZo1E7O1q0ieA1dqU7lFQ7BZs0Qt1oMHgTlz5I6GSBbvvfcePvjgA6hUKqSnp2P06NF4//33ERQUhPT0dMt+PXv2xCeffILAwEBMnDgRkydPhr+/P7Zs2WLpHE5EZPHrr8CgQaKES1IS8Nxz9Xo7t1jhBgDXXQc8+KB4zFnoZGccs4mIiFwfx2vnUki25vrLLDY2Flu2bLH5nEajgV6vt9q2cuVKzJkzB3/88QcCAgLQu3dvpKenW9X2cYaMjAxkZGTAaDTiwIEDKCoqQkhIiFNjcEsffCBmZ1+8CHTuDKxbB2g0NXqpwWBw+dpUAIAPPwSGDAGuuQYoKAAaNpQ7IiJyYeZZ0RxHHI/ftRs7fhzo3h0wGIC77wa+/lqsYKsHg8EAjUZTaYWbXq93veOMb78F4uNFmbu//uIKNyIZcAxxLn7fRERUV/UdQ1wyge7uOLDXwrx5wLhx4vHDD4tkelCQvDE5wqVLQNu2wNGjoi56YqLcERGRC+M44jz8rt3UuXOiTNqOHcD11wPbtgGNG9vlrbVaLZKTk2E0Gi0r3BJdcdw2mYDISODwYWDZMjYTJZIBxxDn4vdNRER1Vd8xxCVLuJAXkCRg2rQryfPnnwc+/tgzk+eAmBE3Zox4PHeu+P2JiIio9kwmYOhQkTxv2hT4v/+zW/IcABITE6HX66HT6aDX66tNnhsMBuh0OhgMBrt9fo2Vbyaamen8zyciItd0/jzwzz9ASQlgNModDRGRR3DrJqKupnwJF6qGJAFpaaI2OABMmQK8+iqgUMgbl6M99RTw+uvAvn1Xll0TEZEsOGa7sVdeAdauFRenP/1UrPCyM7VafdWSLVqt1tJwVKlUIisry/kz1UeMACZNEjPw9+wBOnZ07ucTEZH8JAnYvRv45htx++EHUR7VrGFDUeYrMLDyva1ttd23nuXTiIjcAUu4OACXllXDZALGjgXMzWDnzLkyC90bpKYCCxYAvXuLJDoRkQ0cR5yH37WbWbbsSpPx998HnnhCljBcqlb6Y48Bn3wCPPsssGiRcz+byMtxDHEuft/lnDgBbNggEuYbNgB//y1fLA0aVE6yBwUB99wDjB/vuavMicit1HcM4Qx0ch6jUSw1XrpUzDZ/+20gOdmpIRgMBuTl5SEqKkqeZmBjx4qT2w0bOFOMiIioNnbtunLc8MorsiXPASAvL88qeQ4ARqMR+fn5zj++SEoSCfTly8XqPjYTJSLyPBcvAjk5ImH+7bdiTCwvIACIjRWrnOPjgago4MIF4OxZcTt3rvr72u5z9uyVsqSXLgFFReJW3o8/AllZQHq6KL2mZAVhInJfTKCTc1y6JAbNNWvEwLlsmfjZiVxiqXWbNsAjj4h67/PmAe+959zPJyIickfFxcCAASKB8OCDovybjKKioqBUKivNQI+MjHR+MPfcA0REAIcOAdnZwPDhzo+BiIjsS5KA/PwrCXOdTtQ0L69z5ysJ8549AT8/AJcnjW3ZcmXSWLNmjomvtLTqBLzBAMyYIcam4cPFCvT580WcRERuiJcAyfEuXAAefVQkzxs0ECd3Tk6eGwwGS/IcAEwmE5KTk+Vp+mUuWbNypbxL7YiIiNyBJIlZ1gcPAq1bi5VsMs9iU6vVyMrKgkqlAiCS55mZmfKsbmMzUSIiz1BUJHp7jBol+nu0aweMHg188YVInjdrBgwZAnzwAXD8OPDrr2LlUVycJXmu1Wqh0WgQFxcHjUYDrVbrmFgVClFbvUkToFUroH17oEsX4I47REI/MVH0/po1CwgOFo2/b78dGDQIKChwTExERA7EGuh2VL4h2YEDB1ibDRBXoB96CNi4UQywa9cCffo4PQydToe4uDib22NjY50eD267DfjpJ9E8depU538+Ebk01vh0Hn7XbiAzUyQTfHyA778Hbr1V7ogsDAYD8vPzERkZKU/y3Ozvv0UCo6xMNJJjiTgip+AY4lwe930bjcDOnVdmmW/bJraZNWggZmybZ5l37lztBWSX6s9R3j//iPNerVZcFG/YUNRGf+kl1kcnIqep7xjCGeh2lJKSgn379iE3N1fuUFxDUZEY6DduFM1Evv5aluQ5cGWpdXmyLbUGgOefF/dvvy2WuBERkVNlZGSgQ4cOiI6OljsUqs5vv4n+IYCooepCyXNAzESPjY2VNzEBANdeC/zvf+Lx2rXyxkJERFU7dkyU8Rw4ELjmGqBHD2DSJOCHH0TyPCpKNIX+4gvg339F6ZaXXwZuueWqq6+q688hq+bNgSVLRN32O+8UK9SnTQOuv17Mpq8QMxGRK2ICnRyjsBC4+27ROCQ0VCTR5ZjpfZlLLbUGxKz88HDxPS1fLk8MRERejBe93cCZM6LueWkpcP/9V0qguRmDwQCdTuf4snEPPSTu161z7OcQETmZW1/0Pn9ezDB//nngppsAtVqUN1mzRiTIQ0KAhx8G3nlH1As/cABYtAh44IFaz852uUljFd18s7gg8MknojfYX38Bw4aJi+M5OXJHR0RULZZwcQCPW1pWW3//DfTuDezdC4SFieVot9wid1QAXGipNSCaqDz3nLjy/scfoo4cERE4jjgTv2sXJUmiX8rKlUDLlqLOa1iY3FHVmlMbmJ88KWaim0zAkSOipAsRORTHEOdyi+9bkoDff79SlmXrVjHj2kyhAKKjr5Rl6d5dlGqxE61Wi+TkZBiNRsukMYeNO/Vx4QKwYAEwfbq4YA6IWfmzZol+J0REdlbfMYQJdAdwi4HdUY4cAe65B8jLA667DvjuO+CGG+SOqlYMBgPy8vKudC13lDNnxInuuXPA9u3iQIqICF4+jjgZv2sXpdUCTz0FqFTA5s2i8ZibkaUW7R13iDIAixcDKSmO+QwisuAY4lwu+30XFgIbNoiE+bffijIt5bVseSVhfvfdQNOmDg3HpSaNXc3ffwMTJ1rXR3/hBVEfPTBQ7uiIyIOwBroLceulZfaQny9O3PLyAI1GNPpys+S507qWA6Ib+QMPiMcffeS4zyFyc8OHD4eCKzSIvMfevcDo0eLx1KlumTwHZKpF++CD4v7zzx33GUTV4JhNXuHSJXGuO3GimEHerBkwaBCwdKlInjdsKJLlc+eK2ehHj4oE8YABDk+eAy7Un6Mmrr22cn30qVOBdu1EqVPWRydyCI7XtccEuh15dT3VffuAXr3EDPR27cQBRdu2ckdVKwaDwbLMGgBMJhOSk5MdW7N0wABxn50trrgTERF5s7Nnxdh4/rxIPrz0ktwR1ZkstWj79RP3Op1o5k5ERPZx6JCoU/7ww6KkWK9eohFmbq44j7vpJlHn/NtvRW3z9etFuc4OHViqsyZs1Ud/4gnWRycil8EEOtXfL7+Iq8XHj4sDh61b3bLupiwzxfr0AQICgIICYMcOx30OkRtbsmQJzp8/L3cYROQMKSmiL8h11wEffAAo3fdQVZYG5u3aid4qly6J+rtETsYxmzzGmTPAF18Azz4LREWJyWFPPw189hlQXCxmkg8cKGadGwzAnj3A7NmiF5i/v9zRuyeFAnjkETE5b+ZMsWI7Nxfo2RMYPFhM1iMiu+B4XXvue1ZCrmHbNuCuu4BTp4Bu3USd0ubN5Y6qTmSZKRYQAPTtKx5nZzvuc4jcWIMGDdCwYUO5wyAiR3v/fXFTKoFVq4BrrpE7onpLTEyEXq+HTqeDXq93TiM38yz0desc/1lEFXDMJrdlMgE7dwLp6UBsrEiQP/ggkJEhSpX6+IhypdOmif5V//wjxqrhw0WNc7Kfhg3FCrQDB4DERJFYX7UKaN8eeO01sVqNiOqF43XtMYFOdafTiSvsRUWiPul33zmlppujyDJTDAD69xf3H33EMi7k1pYtWwaFQoGNGzdi8uTJ0Gg08PPzQ8eOHfHhhx9W2v+LL77AHXfcgeDgYAQGBqJ79+5YtWpVpf1s1Wc7evQoEhMTLZ/RtGlTREdHY8mSJZZ9JEnC/Pnz0alTJwQHByMoKAht27bF8OHDK11tr2kssbGxCA8Ph8FgwIABA9C4cWMEBgYiPj4eBw4cqOtXRzLw+r4lruaPP4BnnhGPJ08WK9s8xNVq0RoMBuh0OvuVjDPXQf/qKzETncgGjtkcswliBfUHHwBDhoha3N26ARMmAFu2iL+fERFXZp0XFoqV1q+8AkRHiybX5FjXXgu8+664sNGrlyjvNmWKWG21Zo3c0RE5Bcdr1xmvfeQOgNzUV18Bjz4qmnz07g18+qlHdMlOTExEfHy8c7uW9+kjvruCArFErXt3x38myUuSgHPn5I7CtoCAetdpfOmll3D27Fk8/fTTUCgUWLp0KYYMGYLz589bZl9mZWUhOTkZUVFRSEtLg6+vL1asWIHBgwfj8OHDmDBhQpXvX1ZWht69e+PYsWN4+umncf3116O4uBh79+7F1q1bMXLkSADAtGnTMGnSJPTt2xejRo2CSqVCQUEBvvjiC5w9exb+l5fX1jaWs2fP4s4778Rtt92GGTNm4PDhw1iwYAH69euHvXv3Wi7CkWtLSUlBSkqKpRs7yejcOVH3/Nw54O67RfLCS2i1Wkv/FaVSiaysrPrPUr/1VtHQ7uRJ0ZMmLs4+wXorjtkcs8n1pKQAvr51f73JJJpW7t5tvT0oSPzNjI8H7r0XcORKZKq5W24RK93XrgVeeAE4fFiUz1EorvQUI+J4zfHa0SSym8WLF0s33HCD1K5dOwmAVFRUJHdIjvHxx5LUoIEkAZL04IOSdP683BE51dGjR6VNmzZJR48etd+bJiSI73P8ePu9J7mukhLx39sVbyUldf61li5dKgGQWrduLZ0+fdqy/fTp01Lr1q2l0NBQqaSkRPrvv/+kwMBAKTw83Gq/s2fPSp06dZJ8fHykgoICy/Zhw4ZJ5Yer3377TQIgvfHGG9XGc8stt0gdOnSodp/axnLnnXdKAKRZs2ZZvc8bb7whAZDWr19f7efVVFFRkWePIy6E37ULeOop8feneXNJ+vtvuaNxmqNHj0pKpVICYLmpVCr7HF+MGCG+07Fj6/9e3o5jNsfsanAMcS7L923Pf0ddu0rShAmStHmzJJWWyv0r0tWcPy9JTz8t/tsFBEjS7t1yR0SuguM1x+urqO+YzRIudpSSkoJ9+/YhNzdX7lAc54MPxFXeS5fEVd+PPxY1yryEVquFRqNBXFwcNBoNtFqtfd7YfOWcZVzIAzz99NNWM3pDQ0MxatQoFBUVQafTYcOGDTh79ixGjx5ttV9AQADGjx+PsrIyfP7551W+v/k1mzZtwj///FPlfo0aNYLBYMAPP/xQ5T51iUWpVGLMmDFW2+Iuz/DMy8ur8rOIyIYPPxTLsxUKYOVKt+2jUhcObV5evg46jyuoGhyzyS299pqoVV6f24cfAidOADt2ANOni9Jh9ZnVTs7RsCGwaJFYBX/uHPDQQ8C//8odFZHDcbyWH0u4UM1Ikugq/uKL4ucnnwSysryq9pvBYLAsswYAk8mE5ORkxMfH17/UC8u4eJeAAKCkRO4obAsIqPdb3HDDDZW2dejQAQBw8OBBXLhwAQBw4403VtqvY8eOAIBDhw5V+f4ajQaTJk3CtGnT0KJFC3Tu3Bl33303Hn30Udx6662W/dLT0/HQQw/hjjvuwHXXXYfY2Fjcf//96N+/P/z8/Kw+pzaxtGjRolLDlaaX+z8UFhZWGTcRVXDgAJCcLB5PnCjKt3gRc/Py8kl0uzUvv+cekWTQ64G9e4HLf8+oDjhmA+CYTS5m3DggJETuKEguKpVoKhodDRw6BAwaJErMelFugmzgeA2A47UjcQY6Xd2lS8CoUVeS56mpwJIlXjdAOXSmmL8/0LeveJydXf/3I9emUIgLJq54q2dtNvHrVX4P6fIMSIVCYXlsS3XPlff6668jPz8fCxcuRLt27bB06VLcdtttVlete/Togfz8fKxduxaPPfYY9uzZg6FDh6Jjx46Wq+p1iaW6+ms1jZ/I6124IFZflZSIWX+TJskdkdM5tHl5YKCYnQeIWehUdxyzq3wtx2wikk3TpqIPm78/8O23wKuvyh0RyY3jdZWv5XhtH0ygU/WKi4EHHhCzzRUKYMECYN48QOl9/+uYZ4qVZ7eZYgDQv7+4ZxkXcnP79u2rtO2PP/4AAERERKBt27YAgN9//73SfuZt5n2q06ZNG6SkpGD16tU4duwY4uPjsWjRIhw+fNiyT2BgIB5++GEsXLgQe/bswdKlS5GXl4e33nrL6nPqGwsR1dJzzwG//SaaXX74odddlDdLTEyEXq+HTqeDXq+vfwPR8h58UNxXs1yXiGM2Ebmtzp2B994Tj2fOFOfRRB6K47X8vC8LSjV39Chw++3iim5AAPDZZ0CFmkTexKEzxYArZVyOHAG2b7fPexLJ4O2330ZRUZHl56KiIrzzzjto1KgR7rrrLvTu3RuBgYFYvHgxiouLLftduHABc+bMgY+PD/qaV2TYUFRUhEuXLllt8/PzsywR+/dyHcRTp05Vem3Xrl2t9qlvLERUB9nZwDvviMfLlwMtWsgbj8zUajViY2Ptdzxh1revmPyQmwv89Zd935s8BsdsInJrAwcC48eLx8OHA3v2yBoOkaNwvJYfa6CTbTt3ihOv48eBa68FvvwSuPyPwpslJiYiPj4e+fn5iIyMtO/Jrr+/mC22apW4et6jh/3em8iJwsLC0KNHDzz55JOQJAlLly7FkSNH8O677yIwMBAAMGfOHIwaNQrR0dEYMWIEGjRogBUrVuDXX3/F9OnT0bp16yrfX6fTISkpCY8++ijatWuH4OBg/Prrr8jMzESnTp1w8803AxB14m699VZ0794dLVu2xD///IMlS5bAx8cHQ4YMASCaoNQnFiKqpfx84KmnxOO0NCA+Xt54PFnz5uJY4qefgC++uFJvnqgcjtlE5PbS04FffwU2bhRNRXNzgSZN5I6KyK44XrsAiexm8eLF0g033CC1a9dOAiAVFRXJHVLdrFsnSQEBkgRIUseOklRQIHdEbuPo0aPSpk2bpKNHj9btDdauFd9769aSZDLZNzgiB1u6dKkEQNqwYYM0adIkqVWrVpKvr6904403SitXrqy0/7p166SePXtKAQEBkr+/vxQdHW1zv2HDhknlh6tDhw5JycnJ0g033CAFBwdLAQEB0vXXXy+9/PLLUmFhoWW/9PR06Y477pCaNWsmNWjQQGrZsqX08MMPS9u2batzLHfeeaek0WgqbT98+LAEQHrttddq+G1Vr6ioyL3HETfC79qJLlyQpC5dxDh3++2SdOmS3BG5tHofU0iSJE2ZIr7vAQPsFxh5BI7Z9hmzOYY4F79vqtKpU5IUHi7GvPh4SSorkzsiIrvgeO0659gKSWKxZXsrLi5GaGgoioqKEOJu3cEXLhRNQiUJuPdeMRPa3X4HmWi1WiQlJcFkMkGpVCIrK6v2tUzPnxdXyy9cAPbtA2x0WiZyVcuWLcOIESOg0+kQGxsrdzhuza3HETeRkZGBjIwMGI1GHDhwgN+1M4weDSxeLBp//forYO+SJR7ELscUALB1q2jS2ry5WFVohyZW5Bk4ZtsHx2vn4vdN1frtN+C228Q59csvi5npRG6O47X91HcMYQ10EoxGUd987FiRPE9KEmVbeGBSIwaDwXKiCwAmkwnJyckwGAy1eyN/f1F3HhBL0IiIyCFSUlKwb98+5Obmyh2Kd1i7ViTPAeCDD5g8r4bdjikAoHt3wM8P+OcfIC/PzpESERG5EDYVJSIHYgKdgJISUSts0SLx8xtviOZeDRrIGpY7ycvLs5zomhmNRuTn59f+ze6+W9x/950dIiMiIpLZ4cPAk0+Kxy+8ANx/v7zxuDi7HlM0bAjceqt4vGWLHaIjIiJyYeWbio4YAezdK288ROQxmED3dn/9BfTqJWabN2wortK+8AKX+NZSVFQUlErrf04qlQqRkZG1fzNzAn3zZqCsrP7BERERyeXiRSAhASgqEsuqp0+XOyKXZ9djCkAc5wFMoBORrLKzs3H77bcjKCgI4eHhcodDniw9XZxTnz0rJgr+95/cERGRB2AC3Zv99hvQowfwyy9As2aATgc89pjcUbkltVqNrKwsqFQqAOJENzMzE+q6LFHv0gVo1EgkG3butG+gRA40fPhwSJLE2mxEdMXLLwO5uUDjxsDq1VzdVgN2PaYARA10QCTQ2fqILuOYTc7WuHFjjB49GlOmTJE7FPJ0Pj7AmjVAeDhw8CAwaJAoWUvkhjheuw4m0L3V11+LWtsGA9C+PfDzz1eW+FKdJCYmQq/XQ6fTQa/XWzX7MhgM0Ol0NatfqlIBd90lHrOMCxERuavPPwfmzROPly0DWreWNRx3Ut0xBVDL44rbbhMXLgwGUU6HiEgGvXv3RkJCAlpzLCBnaNoU+Owz0WPsm2+AiRPljoiI3BwT6N7onXeAvn1F7fO77gJycoA2beSOyiOo1WrExsZazRLTarXQaDSIi4uDRqOBVqu9+hvdc4+4ZyNRIiJyRwUFwPDh4vFzzwEPPihrOO7I1jEFUIfjioAAIDpaPGYZFyKvlZ6ejv79+yMiIgIKheKqZVRWrVqFrl27wt/fH2FhYRg0aBAKCgqcEyyRPXTuDJjHyPR04OOP5Y2HiNwaE+jexGQSDTWeflosYRo+HFi/XiyrJocwGAxISkqyNAMzmUxITk6++owxcx30H38Ezp1zcJRERER2dOmSaOL1338icTtzptwReYw6H1eYy7hs3ergCInIVU2YMAGbNm1C27Zt0fgq53+LFy/G4MGD4e/vj3nz5iE1NRUbNmxATEwM/vrrL6t9S0tLUVJSUuXNyNIZJKdBg4DnnxePhw9nU1EiqjMm0L3FuXOivvmcOeLnadOA994DfH3ljcvD5eXlWU5yzYxGI/Lz86t/Ybt2QMuWovnajz86MEIiIiI7e+UV4KefgNBQUYOUxxp2U91xRbVlXcrXQScir3Tw4EEUFhZiw4YNaNGiRZX7FRYWIi0tDV26dMHmzZsxatQovPrqq1i/fj2OHz+OSZMmWe0/bNgwBAcHV3n7/vvvHf2rkQuqVakxR5s5k01FiajemED3Bn//DcTGAp9+Kk5iP/xQnNwqFHJH5vGioqKgVFr/M1OpVIiMjKz+hQrFlTIurINORETu4v/+D3jzTfH4vfdYIs7OqjquyM3Nrb6sS0yM6LFy+DBw9KgTIyYiVxEREVGj/datW4eSkhKMGTMGPj4+lu3dunVDr169kJ2djYsXL1q2r169GpIkVXlj4zvvU6cSpo5Usano4MFsKkpEtcYEuh1lZGSgQ4cOiDbXmXQFv/8umoPm5opGGt99J5YxkVOo1WpkZWVBpVIBECe5mZmZleqZ2mQu48IEOhERuQODARg2TDx+9lngkUfkjccD2TqumDlzJl5++eXqy7oEBwNduojHnIVORNXYvn07ACAmJqbSczExMThz5gz2799f6/c1Go24cOECLl26BEmScOHCBZSWltY7XnItdS415mhNm4oJhf7+oowtm4oSUS0xgW5HKSkp2LdvH3Jzc+UORdi4EejZUzTyiooCtm0Dbr9d7qi8TmJiIvR6PXQ6HfR6PRITEy3PVbu0zZxA37kT+PdfJ0VLRERUB2Vl4gJ9YaFI1M6eLXdEHqvicUXXrl1rVi6OZVyIqAaOHTsGADYn/Ji31SUZunz5cvj7+2Pw4ME4cuQI/P39cf3111f7mtLSUhQXF1vdyLXVuYSpM9x8M5uKElGdMYHuqd57D+jTBygqEknzbdtEEp1koVarERsba3UgetWlbS1aADfcAEgSsHmzcwMmIiKqjUmTgB9+EDOd16wB/PzkjsijlT+uqK5cnNWFeibQiagGzp07BwDws/F3vGHDhlb71Mbw4cMrlXfR6/XVviY9PR2hoaGWW6tWrWr9ueRcdS5h6ixsKkpEdcQEuqcxmYAJE4DERDEbbPBgMRO9aVO5I6Nyary0zTwLfeNGJ0dIRERUQ998I2ZyAcC77wKucpLsJaoqF/fNN99YXahffviw6LGSlwccPy5z1ETkqgICAgDAZnmV8+fPW+3jaGlpaSgqKrLcjrKHg8urVwlTZ6nYVPTsWbkjIiI3wAS6J7lwQSTMzSexEycCK1ZwFpgLqvHSNjYSJSIiV/bXX8DQoeLxqFHAgAHyxuOlKpZ1iY+Pr3ShfsRzz+HijTeKF2zdKmO0ROTKWrZsCcB2mZbqyrs4gp+fH0JCQqxu5PqqK2HqEnx8gNWrgVatRFPRzEy5IyIiN8AEuqc4eVJcRV2zBmjQAFi2DJgyRcw0IpdT46Vtd94JKJXAgQMAZ1wQEdmNSzb+djdGIzBkiDgG6dwZmDdP7oi8WvmyLlVdqP+nfXvxA8u4EFEVzONiTk5OpedycnIQFBSE9ua/JURVsFXC1KWEhYnycwDw5pvA5dUVRERVYQLdE/z5J3DbbUBODtCokVhKPWyY3FFRNWq8tK1RI8Cc3OEsdCIiu3G5xt/uaMoU0aMjKAjIzgYu18Yl+VV1od7/3nvFD0ygE1EV+vXrh4CAACxcuBBlZWWW7Tt27MDWrVsxYMAA+Pr6OjUmXvQmh3jiCaB1a+Dvv0UJOiKiaigkSZLkDsLTFBcXIzQ0FEVFRY5fZrZlC/Dww8B//wFt2gD/93+i8SS5BYPBgPz8fERGRlp1tc/Ly0NUVJTYNmGCKMszYoRoDktEHs+p44iX43ddR999B/TuLRpdr1wpSsiRS9FqtUhOTobRaLRcqE/s1w9o1kzscOLElcdEVCfuNIYsX74cBQUFAIBFixbh4sWLeP5yM8VGjRrh2Weftey7YMECpKamomfPnhg6dChOnTqFefPmoUGDBtixY4elzIuzudP3TW7i7beBZ54BWrYU5VxY/pbIY9V3DGEC3QGcNrAvXy6ahV66BNx6K7BuHXDNNY77PHI4rVZrqVmqVCqRlZWFxGuuAR58EOjQAfj9d7lDJCIn4Ami8/C7roO//wZuvhn45x/gqaeAJUvkjoiqYOtCPTp2BPbuBT79VDRPI6I6c6cxJDY2FluqWH2i0Wig1+uttq1cuRJz5szBH3/8gYCAAPTu3Rvp6elo06aNE6K1zZ2+b3ITFy4AbduKni7vvAMkJ8sdERE5CBPoLsjhA7skAa+/Lm4A8NhjwAcfAP7+9v8schqDwQCNRmNVs1SlUuHIjh1occstop796dMADxaJPB5PEJ2H33UtGY1AfLyYgX7TTcDPPwMBAXJHRbXx1FOAVgu88gowbZrc0RC5NY4hzsXvmxxiwQIgNRXQaIC8PNFTjog8Tn3HENZAr6C0tBQjR45EREQEgoKCEBUVhfnz58sd1hWlpaJWlzl5/tJLonEok+dur6qGXwdOnwbCw8WFE9bqJSIiOc2YIZLnAQGi7jmT5+6nWzdxv2OHvHEQERG5gpEjgebNgYICscqfiMgGJtArKCsrw7XXXotvv/0WZ86cwZo1azB9+nSsWbNG7tCAf/8F7r0XWLECUKmArCxg5kxAyf+MnqCqhl+RkZE417EjAKDo22/lCI2IiEj0XZk8WTx+6y32XHFT/7RqBQAwbt8uLs4TEbk4NhElhwoIAMaPF49nzADKNc8lIjJj5rWCwMBATJ06FZGRkVAoFOjSpQv69OmDH3/8Ud7ADh4EbrsN2LoVCA4GvvpKXCklj6FWq5GVlQWVSgUAloZf33zzDV798ksAwNY33oBWq5UzTCIi8kYnTgCDBgEmEzBsmLiR29FqtQjv2xcXAaj++w9r3nhD7pCIiK4qJSUF+/btQy5X45KjjBoFNG0q8i6rV8sdDRG5IJdMoKenp6N///6IiIiAQqFAeHh4tfuvWrUKXbt2hb+/P8LCwjBo0CBLh/H6Kisrw7Zt29CpUye7vF+d5OSIJqEHDgCtWomf771XvnjIYRITE6HX66HT6aDX6xEfH4+kpCT8dHmGWHcAyUlJMBgM8gZKRETew2QChg4Fjh8Xs84zMuSOiOrAYDAgKSkJFyQJuy9v+2TCBB5TEBERBQUB48aJx9Oni54vRETluGQCfcKECdi0aRPatm2Lxo0bV7vv4sWLMXjwYPj7+2PevHlITU3Fhg0bEBMTg7/++stq39LSUpSUlFR5M9r4I/nss8+iUaNGeOKJJ2r/i5SVVX+7dOnqtzVrgLg44NQpoGtX0azrpptqHwu5DbVajdjYWKjVaktd9F8AXALQHIDaZEJ+fr7MURIRkdeYNQv49lvRbyU7GwgMlDsiqoPyvVbM1c+7XD6mMBgM0Ol0TKYTEZH3evZZoFEjYP9+4OOP5Y6GiFyMSybQDx48iMLCQmzYsAEtWrSocr/CwkKkpaWhS5cu2Lx5M0aNGoVXX30V69evx/HjxzFp0iSr/YcNG4bg4OAqb99//73V/uPGjUNOTg6+/vpr+Pr61v4XadpUdHCu6ubre/XbwIGicWi/fqL26HXX1T4OclvmuugXAPx2edttCgUCAwN5oktERI73ww/AxIni8aJFvIjvxsr3WjEn0KMB7NixAxqNBnFxcdBoNCwVR0RELs1hF31DQoDUVPF42jSxAo+I6DKXTKBHRETUaL9169ahpKQEY8aMgY+Pj2V7t27d0KtXL2RnZ+PixYuW7atXr4YkSVXeYmNjLfumpqbi22+/xXfffYewsDC7/W61plKJpUSffMIZX16ofF30ny5vG3bDDbj11lt5oktERI5VWCjqnhuNwJAhwJNPyh0R1UP5YwpzAr1nw4Z46cUXLTPTTSYTkpOTeYGeiIhcklardexF3zFjRM+5vXuBdevs+95E5NZcMoFeU9u3bwcAxMTEVHouJiYGZ86cwf79+2v9vmPGjMHGjRuxadMmNGvWrO4BHj4sTj6ru/37b/W3oiJgzhyRSCevZK6LfndaGgAgeN8+nugSEZFjmZuFGgxAu3bA228DCoXcUVE9mY8pFmzYAMnPDw0vXECby31WzIxGI0vFEZFLycjIQIcOHRAdHS13KCQjcy8Ph54LN24MjB4tHk+dClQYI4nIe7l1Av3YsWMAxIyaiszbavvHtKCgAIsWLUJ+fj4iIiIQFBSEoKAg9OnTp8rXlJaWori42OoGAGjS5Oq3xo2rv3HWOUH8/3zD8OEAgC4AfMo9xxNdIiKyu7lzgf/7P8DPT9Q9Dw6WOyKyE7VajTvvuQeKm28GAHSvcGFEpVIhMjJShsiIiGxLSUnBvn37kJubK3coJKPyvTzMHHIu/NxzIg/zyy/AV1/Z972JyG25dQL93LlzAAA/P79KzzVs2NBqn5rSaDSQJAkXLlywajD69ddfV/ma9PR0hIaGWm6tWrWq1WcS1UhUFEyhofAH0KncZpVKxZroRERkPz/9BFxe9YQFC4DOneWNhxyjWzcAQFrv3lBdXumoUqmQmZlpc3IKERGRnMr38jBzyEXfsDDgmWfE4ylTOAudiAC4eQI9ICAAgJgBXtH58+et9nGktLQ0FBUVWW5Hjx51+GeSF1IooLz1VgCikSggDhgef/xx1kQnIq9UWlqKkSNHWlaMRUVFYf78+XKH5d7+/RdISADKysR9UpLcEZGjXE6gdywthV6vh06ng16vR2JiosyBERERVVa+lwfg4Iu+zz8P+PsD27cDGzbY//2JyO24dQK9ZcuWAGyXaamuvIu9+fn5ISQkxOpG5BA9egAAZj3yCHQ6HbZt24bly5ezJjoReaWysjJce+21+Pbbb3HmzBmsWbMG06dPx5o1a+QOzT1JEjBiBHDkCBAZCWRlse65J7ucQMfOnVC3aIHY2FjOPCciIpdm7uXh8Iu+zZtfmUTAWuhEBDdPoJubiOTk5FR6LicnB0FBQWjfvr3T4mFzE3K4ywn0wD17EBsbi5KSEpt14D766CMm0YnI4wUGBmLq1KmIjIyEQqFAly5d0KdPH/z4449yh+aeFiwAPv8c8PUF1qwBOCHAs7VvDwQEACUlwIEDckdDRERUI2q12jkXfV94QRwT/fADsGWLYz+LiFyeWyfQ+/Xrh4CAACxcuBBlZWWW7Tt27MDWrVsxYMAA+Pr6Oi0eNjchh+veXdwfOAD895/NOnAAMG7cOJZzISKnSE9PR//+/REREQGFQoHw8PBq91+1ahW6du0Kf39/hIWFYdCgQSgoKLBLLGVlZdi2bRs6dep09Z3JWm4u8OKL4vGcOUCXLvLGQ47n4wPccot4vGOH1VMGg4G9VYjIZXCiGsmiZUvgqafE4ylT5I2FiGSnkCTXW4uyfPlyy8n0okWLcPHiRTz//PMAgEaNGuHZZ5+17LtgwQKkpqaiZ8+eGDp0KE6dOoV58+ahQYMG2LFjh6XMizMVFxcjNDQURUVFLOdC9hcVBeTnA+vXA/Hx0Gq1SE5OhtForLSrSqWCXq/nkmwiN+NO44hCoUCTJk3QpUsX7Ny5EyEhIdDr9Tb3Xbx4MUaPHo2ePXvi8ccfx6lTpzB//nz4+fkhNzcXLVq0sOxbWlqKS5cuVfm5/v7+lhqYZqNGjcLOnTvx448/1vgCujt91w5z+rRIpOr1wCOPAB9/zNIt3iI1Vaw8GDsWuNw/QKvVIikpCSaTCUqlEllZWZWWyBsMBuTl5SEqKorHGOTVOIY4F79vcjpzWbtLl8RM9J495Y6IiOqovmOISybQY2NjsaWKJTIajabSifnKlSsxZ84c/PHHHwgICEDv3r2Rnp6ONm3aOCHaKzIyMpCRkQGj0YgDBw5wYCfHePxxYOVK4PXXgUmTAIgT2Y8++gjjxo2rtLtOp0NsbKyTgySi+nCnE8RDhw4hIiICAHDTTTehpKTEZgK9sLAQ4eHhaNeuHX7++Wf4+PgAEKvGunfvjieffBLvvvuuZf+BAwdWW8u84t+2cePGYePGjdi0aRPCwsJqHL87fdcOIUnAY48Ba9cCbdoAu3YBjRrJHRU5y4oVwNChIiHwww8wGAzQaDRW5eEqXoyvSYKdyFt4/RjiZPy+SRYjRwLvvgvEx4tJbETkljwyge7uOLCTQy1aBIwZA/zvf8CXX1o2V3XSu23bNpSUlHCWGJEbcddxpLoE+nvvvYfExEQsW7YMw4YNs3ouNjYWu3btwqlTp+pUei01NRUbN26ETqdDs2bNavVad/2u7WbxYmD0aKBBA+DHHwEuj/cu+/cDN9wgaqEXFUH3/feIi4urtJv5glVNEuxE3sTrxxAn4/dNsjh0CGjXDjAagZ9/vlJWlYjcSn3HELeugU7klcx1aX/91WqzWq1GVlaWpaSBSqXC448/jltvvRVxcXGsiU5Estq+fTsAICYmptJzMTExOHPmDPbv31/r9x0zZoxl5nltk+deb9cu4HKJPLzxBpPn3qhdOyAoCDh3Dti/32ZvFZVKhcjISABAXl6ezebl+fn5TguZiIjIqSIixCpwAJg6Vd5YiEg2TKATuZuOHcX9sWNAYaHVU4mJidDr9dDpdNi2bRuWL19uOdE1mUxITk5mQzAiksWxY8cAwOYsVfO22v59KigowKJFi5Cfn4+IiAgEBQUhKCgIffr0qfI1paWlKC4utrp5pePHgUcfBS5eBPr1EzWwyfsolUDXruLxjh02L8ZnZmZa/o1eLcFORETkkSZMEGPml18Cv/widzREJAMm0O2I3cHJKUJCRJ1aANizp9LTarUasbGxKCkp4SwxInIZ586dAwD4+flVeq5hw4ZW+9SURqOBJEm4cOECSkpKLLevv/66ytekp6cjNDTUcmvVqlWtPtMjFBUBffqIpqFt2wLvvcemod6sWzdxv2MHAOuL8Xq93qq++dUS7ERERB6pXTsgIUE8njZN3liISBZMoNtRSkoK9u3bh9zcXLlDIU/XqZO43727yl1szRJTKpU4ceIEZ6ETkdMFBAQAEDPAKzp//rzVPo6UlpaGoqIiy+3o0aMO/0yXcuEC8NBDwG+/Ac2bA998AzRpIndUJCdzAn3nTssm88X48qtDdDodDAZDtQl2IiIij/XKK+J+7Vpg7155YyEip2MCncgdde4s7n/7rcpdKs4SUygUkCQJCQkJrIdORE7XsmVLALbLtFRX3sXe/Pz8EBISYnXzGkYjMHQosHkzEBwMfP21mIFO3s18Uf733wFJqvS0VquFRqOx6qdSMcFORORIXOlNLuHGG4HHHhOPp0+XNxYicjom0IncUQ1moANXlmFnZ2dbEugA66ETkfOZT3pzcnIqPZeTk4OgoCC0b9/e2WF5D0kCxowBPv4Y8PUFPvsMuOUWuaMiVxAVBTRoAJw5Axw5YvWUwWBAUlJStf1Uys9OJyJyBK70Jpfx6qvifs0aYP9+eWMhIqdiAt2OeGWcnMacQN+7V8worIZarUZYWBjroRORrPr164eAgAAsXLgQZWVllu07duzA1q1bMWDAAPj6+jotHq8bs6dNA956S9Q6X74ciIuTOyJyFQ0aAOaLVxWWpOfl5VV7/GBrdjoREZHH6twZePBBMTFhxgy5oyEiJ1JIko21mlQvxcXFCA0NRVFRkXctDSfnMRpFM9Fz58SV7+uvr3Z3g8EAjUZjdRKsUqmg1+u5/JrIBbnTOLJ8+XIUFBQAABYtWoSLFy/i+eefBwA0atQIzz77rGXfBQsWIDU1FT179sTQoUNx6tQpzJs3Dw0aNMCOHTssZV6cyZ2+6zpbsgRIShKPFy4ERo+WNx5yPYMHA6tWATNnAi+9ZNlc3fEDAB5bkNfzijHEhfD7JpeQmwt07y4uQJ84ATRqJHdERFQD9R1DOAOdyB2pVEDHjuJxNXXQzSrWQ1epVJg5cyby8vK45JqI6kWr1WLixImYOHEiTpw4gdOnT1t+nj17ttW+Y8eOxYoVK3Du3DmkpqZi7ty5uOeee5CTkyNL8twrfPYZMGqUePzKK0yek2033STuK8xAt3X8kJmZCbVafdXZ6URERB4pOlrUQ790SRxnEZFX8JE7ACKqo06dgJ9/FnXQBwy46u6JiYmIj49Hfn4+cnNz8dJLL8FkMkGpVGLWrFno2rUroqKiOGuMiGpl8+bNtdp/yJAhGDJkiGOCIWvffw8MGgSYTEBiIjB1qtwRkauqIoEOWB8/REZGWo4ToqKioFQqK81Aj4yMdErIREREsklIACZNErXQhw+XOxoicgLOQCdyVzVsJFqeWq1GZGQkXn75ZauGYC+88ALrlxKRV/H4Guh79oganRcuAH37Au+8I+qfE9liTqD/8QdQrkeBmVqtRmxsrNVF9upmp9vCZqNEROQxEhLE/YYNwKlT8sZCRE7BBLodefzJOLmWOiTQAdsNwcxMJhOSk5N5cktEHi8lJQX79u1Dbm6u3KHYX0EBcN99wOnTQEwMsHo14MNFh1SN8HAgIAAoLQUOHqzxyxITE6HX66HT6aDX65GYmGhzPzYbJSIij9KuHXDLLaI32dq1ckdDRE7ABLodefTJOLkecwK9oEAkSWrIvOS6KqxfSkTkxk6dAuLjgb/+Ajp0AL74QiRGiaqjVIp6roDNMi7VsTU7vTyDwYCkpCSrlW+8WE9ERG7PPAt9zRp54yAip2ACnchdNWoEtG4tHu/ZU+OXVVxyXZFSqURgYKAdAiQiIqc6exZ44AHgzz+BVq2Ab74BmjSROypyF9XUQa8PNhslovriSm9ySeYE+ubNwN9/yxoKETkeE+hE7qyOZVzKL7l+4403rJLpJpMJt956K5dXExG5k0uXREPpn38GGjcWyXM2habacFAC3dbKNzYbJaLa4Epvcknh4UCPHqJZ+8cfyx0NETkYE+hE7sycQP/tt1q/1Lzk+oUXXsC2bdusTm65vJqIPJ1HzWaTJOCpp4CvvgL8/YH/+z/ghhvkjorcjQMS6AaDAXl5eZg1a1aNm40SERG5DZZxIfIa7ChF5M46dxb3tZyBXlFJSUmVy6t5gktEniglJQUpKSkoLi5GaGio3OHUz8svAx98AKhUQHY2cNttckdE7sicQM/LAy5cABo2rPVbmBPmUVFR+Oabbyy1z5VKJWbOnIno6GhERkby2IKIiDzDgAHA888DP/wAHD0qSugRkUfiDHQ78qjZbOQezDPQ9+wRS8fqyNbyaqVSiRMnTnAWOhGRK5s3D3jjDfF4yRJRA52oLq67TpT/MRpFHf1a0mq10Gg0iIuLg0ajwciRI60ah6alpTF5TkREnqVlS+D228Xjjz6SNxYicigm0O2ItdnI6SIjxQyxc+eAQ4fq/DYVG4sqFApIkoSEhARoNBrWQycickUffgiMGycep6cDI0bIGw+5N4WizmVcDAaDZbY5IBLmkiRZ7cPGoURE5EoMBgN0Ol39J4yxjAuRV2ACncid+fgAN94oHtehDnp55sai2dnZlgQ6wHroREQu6dtvgeHDxeMxY4CXXpI1HPIQdUyg5+XlVSoFVxEbhxIRkauouGqqXhPGHnsMUCqB7dvrNamNiFwbE+hE7s5OddABMRM9LCzMZj30bdu21fv9iYhchVuXXcvNBR55BLh0Scx6mjdPzB4mqq86JtCrKgVn3sbGoURE5CpsrZqq14Sx5s2Bu+4Sj7Oz7RQlEbkaJtCJ3F3HjuK+lie7VbF1EgwACQkJLOVCRB7Dbcuu5eUB998PnD0L3H038P77YtYTkT2YE+h79tTqZRVLwalUKmRlZaGgoAA6nQ56vR6JiYn2jpaIiKjWbK2aqneZMZZxIfJ4POMicnft24v7OjT8sqXiSbCZJEks5UJEJKfjx4H4eODUKaBLF2DtWsDPT+6oyJOYy8IVFADFxbV6qbkUXPmEuVqtRmxsLGeeExGRy7A1YazeZcYeeUSUV/31V7udlxORa2ECncjdXX+9uM/LA4xGu7xlYmIiPvzww0rbjUYjPvroIybRiYicragI6NMHOHwYaNsW+OorICRE7qjI0zRtClx3nXi8b1+tX86EORERuTpbq6bqXWasaVOgd2/xmLPQiTwSE+hE7q51a6BhQ+DiRUCvt9vbxsTE2CzlMm7cuPo3WiEiopq7cAF46CHRLPqaa4BvvhH1NokcoY510ImIiNyFrVVT9WYu47J6NSBJ9X8/InIpTKDbkVs3JCP3pVIB7dqJx/v32+1tqyrlAohGK0lJSfjyyy+h0+k4I52IyFGMRmDoUGDzZiA4GFi/XsxAJ3IUJtCJyMXwPJscoT6rpgwGQ+Xz4IceAnx9gT/+4BhK5IGYQLcjt21IRu7PXMbFzvXWzFfm586dW+k5k8mEvn37Ii4ujjPSiYgcQZKAMWOAjz8GGjQAPvsMuOUWuaMiTydTAt1mMoKICDzPJtei1Wqh0WgqnweHhopyewDLuBB5ICbQiTyBuZGoHWegm6nVavTv399mORczk8nEBqNE5FbcYjbb9OnAW28BCgWwYgUQFyd3ROQNHJxAL58oNz+ePXu27WQEERGRCzEYDEhKSoLJZAJg4zzYXMZlzRqWcSHyMEygE3kCB81ANzOXc6kuiW40GpGfn++QzycisjeXn822ZAkwcaJ4vGABMGCAvPGQ9zBflP/nH+D0abu+dflZe61bt0br1q0RFxeHF154oepkBBERkYvIy8uzjFdmVufBffsC/v5Afj6wa5cMERKRozCBTuQJHDgD3SwxMRE//fRTlUl0pVKJwMBAh30+EZHX+OwzYNQo8XjCBGD0aFnDIS8TEgJce614nJdnt7etOGtPkiRIVczO40V5IiJyRVFRUZXOh1UqFSIjI8UPQUHAAw+IxyzjQuRRmEAn8gTmGegnTgD//eewj4mOjq62seitt97KZddERPXx/ffAoEGAyQQ8+SQwbZrcEZE3MjcnP3DAbm9pa9ZeVaySEURERC7CvDLbfD6sUqmQmZlp3YiUZVyIPBIT6ESeICgIaNlSPHZQGRczc2NRnU6HL774wuoKPJddExHVw969wIMPAhcuiCXAmZmi/jmRszkggW5r1p4tNpMRRERELqL8+bBer0diYqL1DvffL87PjxwBfvpJniCJyO6YQCfyFE4o42KmVqsRGxuLwMBAmzXgvvzyS0uDMCIiqoGCAiA+XtScjokBVq8GfHzkjoq8lQMS6BVn7SmVSiguXyBSqVR44403qk5GEBERuRDz+bDNi73+/kC/fuIxy7gQeQyemRF5ivbtge++c0oC3cw8m6xiEv3pp58GIE6Os7KyeCJMRFSdU6dE8vyvv4AOHYAvvgACAuSOiryZAxLogJi1Fx8fj/z8fEuJFvNjzjgnIiKPkZAArFwJZGcDc+YANkqgEpF74Qx0Ik9hroPu4BIu5VWcTVYRS7oQEV3F2bOi2dSffwJqNbB+PdCkidxRkbcrn0C3c/3W8rP2qp3BB9F4lCvaiIjI7dx7L9CoEXD8OPDDD3JHQ0R2wAQ6kadwYgmX8hITE/Hhhx9W+bzRaER+fr4TIyIiurqMjAx06NAB0dHR8gVx6RIwYADw889A48bAN98ArVrJFw+RWUQEoFQCJSXAP//IEoJWq4VGo0FcXBw0Gg2blBMRkfvw8wMeflg8ZhkXIo/ABLoducTJOHkv8wz0gwdFUsaJYmJiqmwMplKpLMu0iYhcRUpKCvbt24fc3Fx5ApAkYORI4KuvRK3ML78U5VuIXIGfHxAeLh7buYxLTRgMBiQlJVlKxHFFGxERuZ2EBHH/8cdAWZm8sRBRvTGBbkeyn4yTd1OrRc3cS5eAw4ed/NG2S7moVCo89dRTyMnJ4UkvEVF5aWnA+++Lmphr1ojGoUSuxEF10GsiLy/PZpNyrmgjIiK3ERcHhIUBJ08COp3c0RBRPTGBTuQplMors9CdXMYFEKVc9Ho9dDodtm/fjvHjx8NoNCIzMxMJCQlo3bo1l18TEQHAvHnArFni8ZIlQN++8sZDZIuMCXRzk/LyuKKNiIjcSoMGwKOPiscs40Lk9phAJ/IkMjQSLc/cDOy6667DnDlzrJ6TJInLr4mIPvwQGDdOPJ4xAxgxQt54iKoiYwK94so2lUqFzMzMKpuNEhERuSRzGZe1a4GLF+WNhYjqhQl0Ik8iUyPRivLy8iBJUqXtXH5NRF7t22+B4cPF49GjgZdfljUcomrJmEAHrFe2bdu2DREREbwIT0RE7qVXL+Daa4H//gM2bJA7GiKqBybQiTyJjCVcyouKioJCoai0XaVSITAwEDqdjifBRORdduwAHnlE9KkYMACYPx+w8XeSyGWYE+j5+YDR6LSPNRgMluMEtVqNgwcP4tZbb0VcXBw0Gg3LwRERkftQqYD+/cVjlnEhcmtMoBN5EvMMdJlKuJip1WosWbLEKomuVCrx+OOP8ySYiLxPXh5w//3A2bPA3XcDH3wg+lYQubJWrQA/P3HRp6DAKR+p1Wqh0WgsxwlvvvkmkpKSLA1FTSYTkpKSkJub65R4iMg1ZGRkoEOHDoiOjpY7FKLaM5dx+ewz4MIFWUMhorpTSLbqLFC9FBcXIzQ0FEVFRQgJCZE7HPIm584BgYHi8cmTouu3jAwGA7Zt2wYA8Pf3R79+/SwnwYCYka7X61nTlKgCjiPO4/Dv+vhxoGdP4PBh4JZbgM2bAf43JXfRsSOwdy/w9dfAffc59KMMBgM0Go3VcYJSqbT62UyhUGDWrFno1q0boqKieBxBsuF47Vz8vsktmUxAeDhw9KhIovfrJ3dERF6pvmNIvaY/7d69+6r7LF++vD4fQUS1ERAAtG4tHss8Cx0QM9H79++P4uJiPPjgg5VOglkTncg5OF7LpKgI6NNHJM/bthVJSJ7wkztxYh30vLy8SscJJpMJShurNSRJwosvvsgVbeSROGYTeRil8krSnHXQidxWvRLoffr0wdGjR6t8fvXq1XjyySfr8xFEVFuRkeL+0CF547jMYDAgKSnJZlNRAFi1ahXroRM5GMfryhy+HPzCBeChh4DffgOuuQb45hugeXPHfBaRozgxgR4VFVUpWa5SqTBr1iybSXQzk8mE5ORkHkuQx+CYTeR5TnXqBAC49O23V923fC8QInId9Uqgh4SEID4+Hv/991+l5z7++GMMHToU8fHx9fkIWTzzzDNo1aoVQkJC0LJlS6SmpuLixYtyh0VUMxER4v7gQXnjuMzWjLLysrKyOHuMyME8dbyuj5SUFOzbt88xtZSNRmDoUFGuJShIzDxv29b+n0PkaE5MoKvVamRlZUGlUgEQyfPMzEyMHz8eP/30k83m5GZc0UaehGM2kWfRarVon5wME4AGeXn4cO7cavct3wuE58hErqNeCfT169fj9OnT6Nu3L0pLSy3b161bh8GDB+Ouu+7C2rVr6x2ksz377LPYv38/iouL8euvv+K3337DjBkz5A6LqGbMSRoXmYFua0ZZRZw9RuRYnjpeuyRJAsaOBT7+GGjQQNS67NJF7qiI6saJCXQASExMhF6vh06ng16vR2JiIgAgOjoaS5YssSTXK1KpVIg0r8AjcnMcs4k8h3k1dqEk4dfL2/5v/Hib573mfcs3zuY5MpHrqFcCXaPR4KuvvsKePXswcOBASJKEr776CgkJCejZsyc+//xz+Pr62itWp+nQoQMCLzdiVCqV8PHxQV5ensxREdWQi81ArzijrCqcPUbkOJ46Xruk6dOBjAxAoQCWLwfuvlvuiIjqzpxAP3IEOH/eKR+pVqsRGxtbqTFo+eT6m2++WWmmOhuJkqfgmE3kOcqvxt50eVusJNk877W1cpvnyESuo14JdAC4+eab8cknn+Crr77CAw88gMceewzdunXDl19+iYYNG9bpPdPT09G/f39ERERAoVAgPDy82v1XrVqFrl27wt/fH2FhYRg0aBAKCgrq9NlmM2fORHBwMMLCwrBr1y6MGTOmXu9H5DTmBLqLzEAHKp/02pqRztljRI7liPGaKliyBJg4UTxesABISJA3HqL6CgsDGjUSKytc4MK8Obk+fvx4mzPViTwFx2wiz1B+NbY5gX4XYPO8t6peIDxHJnINCqmqzn61tHLlSjzxxBPo3r07NmzYgKCgoLoHpVCgSZMm6NKlC3bu3ImQkBDo9Xqb+y5evBijR49Gz5498fjjj+PUqVOYP38+/Pz8kJubixYtWlj2LS0txaVLl6r8XH9//0qzZP/44w+sWLECTz/9dI1nthQXFyM0NBRFRUUICQmp0WuI7Oa//4AmTcTjkhLg8moKV2IwGLBgwQLMmzcPRqPRMnuMJ8BEgiPHEXuO157A8l0/8wxC/Pxs71STQ6Xz50UC3WQC0tIAln4jT9GjB7B9O/DJJ8Ajj8gdDZFLcfR5H8dsazzPJnek1WqRnJwMf6MR/wHwAQC9HtBoqtyX58hE9lffMaRWCfS4uLhqn9+xYwfatWtnFYhCocB3331Xq6AOHTqEiMuzaG+66SaUlJTYTKAXFhYiPDwc7dq1w88//wwfHx9LHN27d8eTTz6Jd99917L/wIEDsWbNmio/V6fTITY2ttL27OxsvP3229DpdDWKnwM7ya5xY+D0aWDPHuCmm+SOpkoGgwH5+fmIjIyEWq2GwWBAXl4eoqKiuBSbvFp9xxFnjdeewPJdA7DLiP3kk8C774oSLkSeYOhQYMUKID0dePlluaMhcin2OO/jmF1zPM8md2U+773t+efht2sXsHQpMHx4tfuaz5GJyD7qO4b41GbnQ4cOQVHNCWHTpk1RWFiIwsLCWgdSnjl5fjXr1q1DSUkJxowZY0meA0C3bt3Qq1cvZGdn46233rLUiFu9ejVWr15d63iMRiMOOKl5EpFdtG0L7Nwpllu7cAJdrVZbDgpmz56Nl156CSaTCUqlEllZWbzaTlRHzhqvPUpqKmBrBnpV36Ot7W3aACNGMHlOnsXJjUTrihfhyV1xzCbyfJbz3vvuA3btAnS6KhPo5c+Rich11CqBXlUZFbls374dABATE1PpuZiYGGzZsgX79+9Hp06davyeRUVF+PTTT/HQQw8hNDQUe/fuxdSpU9GnT58qX1NaWmrVIb24uLgWvwWRA0REiAS6C9VBr86bb76JF1980fKzyWRCUlISOnXqhOjoaBkjI3JPrjZeu4XXXwc4m42oMjdIoGu1WiQlJfEiPLkljtlEXuSuu0SZv02bRIlATrogchu1SqBX5fz589DpdDh48CAUCgXatm2L2NhY+Pv72+Ptq3Ts2DEAsHl1zrzNYDDUKoGuUCiwYsUKjBs3DhcvXsQ111yDxx57DJMnT67yNenp6Xj99ddrFzyRI7VtK+5doOHX1RgMBqvkuZnJZEKPHj2wZMkSngQT2Ylc4zURubGoKHGflydvHFUwGAyW5Dkgjh+Sk5MRHx/PGXzk1jhmE3mgmBjA1xcwGID8/CtjLBG5vHon0JcuXYrnn38eRUVFMJdTVygUaNSoEebMmYPhVSxLsYdz584BAPxsLLk2dyc371NTISEh2LhxY61ek5aWhnHjxll+Li4uRqtWrWr1HkR2ZS6D5AYz0BcsWFDlc5Ik8SSYyE7kHK+JyI2ZjylOnADOnnW55uQ5OTmW5LmZ0WhEfn4+jx3IbXHMJvJQAQHAbbcBW7aIWehMoBO5jXol0FetWoXExES0bt0aL774Ijp06ABJkrBv3z688847SExMhL+/PxISEuwVr5WAgAAAooRKxSvx58+ft9rHkfz8/Gwm8Ylk4yYz0A0GA+bOnVvtPjwJJqo/ucdrInJjjRqJ2+nTgF4P3HijvPGUo9VqMXLkyErbVSoVIiMjZYiIqP44ZhN5uLvuEgl0nQ5ITpY7GiKqIYVkvqRdB506dUJZWRl++umnSh1Mi4qK0KNHD/j6+mL37t11DvCmm25CSUmJzdpwo0aNQmZmJg4cOICoClfuJkyYgPT0dPz222+1KuFSHxkZGcjIyLA0HWV3cJKNXi+a2fn6AufOASqV3BHZpNPpEBcXd9X93nzzTYwfP94JERG5hvp2CK/IGeO1u7L3d03kkbp0AX75Bfj8c6BvX7mjASAuwms0mkqzz1UqFTIzMy3l39hclBzJEWMIx+yqccwmj/D990CvXkCzZsA//7AOOpGT1HcMUdbnww8cOIARI0bY/ODQ0FCMGDECeQ6sl2huLpiTk1PpuZycHAQFBaF9+/YO+/yKUlJSsG/fPuTm5jrtM4lsatUK8PEBLl4ELvcKcEVRUVFQKq3/DClsHEC89NJLyM7OhsFgcFZoRB5F7vGaiNycuYzL4cPyxlFOXl5epeQ5cGX2LiBmqGs0GsTFxUGj0UCr1To7TKJa45hN5OF69AD8/YGTJ4Hff5c7GiKqoXol0K+99lpUN4FdqVSiefPm9fmIavXr1w8BAQFYuHAhysrKLNt37NiBrVu3YsCAAfD19XXY5xO5LJUKCA8Xj124DrparUZWVhZUl2fIq1QqPP/885X2M5lMSEhI4MkvUR3JPV67ooyMDHTo0MFyMZ6IqtGmjbh3oQS6rYvwKpUKt912G4Cqm4vyYjy5Oo7ZRB7O1xe44w7xWKeTNxYiqrF6JdCHDx+OZcuWoaSkpNJzxcXFeO+99zBixIhav+/y5csxbdo0TJs2DSdPnkRRUZHl58WLF1v2CwsLw4wZM7Br1y7ExsYiMzMT06dPx3333YfmzZtjypQp9fn1ao0n4+RSzLPFXLwOemJiIvR6PXQ6HfR6PcaOHVvphNiMJ79EdeOo8dqdcdUYUS24YALd1kX4zMxMS5kWWzPUzX1ViFwZx2wiL3DXXeJ+0yZ54yCiGqtXE9E77rgDX375JTp27IhnnnkG7du3h0KhwL59+/D2228jLCwMd9xxB7Zu3Wr1ul69elX7vlqtFlu2bLHaNnHiRACARqPBs88+a9k+duxYhIWFYc6cOUhNTUVAQAB69+6N9PR0tGzZsj6/Xq2lpKQgJSXFUleHSFbmRqIuPAPdTK1WW9UlnTlzJl588UWb+xqNRnz00Ufo378/a5kS1ZCjxmsi8hLmi/IudkyRmJiI+Ph45OfnIzIy0uq4wDxDvXwSXaVS4cSJEzAYDDyGIJfliWN2aWkpnn32WXz33Xc4ceIErrvuOqSkpCA1NVXu0IjkYe4DtnkzYDS6bM8yIrqiXk1Eq6pdXP4ty9czliQJCoUCRqOxrh/pFtjchFzC7NnACy8ACQnA6tVyR1MrNWkuqlAo8Pzzz2Ps2LE8CSaPY+9xhON11ThmE9XAn38C7dsDQUFAcbFLNzwr3zT0m2++QXJyMoxGI5RKJSRJgiRJUCqVyMrKstRKJ6orR4whnjhmnz17FjNnzsSwYcPQtm1b/PLLL4iPj8fixYuRkJBQ4/fhmE0eo6wMaNpUjKk7d4pm3UTkUPUdQ+o1A33p0qX1eTkROZIbzUCvyNassYokScLs2bMxd+5cngQTXQXHayKqF41G3JeUAIWFQFiYvPFUQavVWuqem5Pker0e27ZtQ0JCgiUBaS4JFx8fz4vw5HI8ccwODAzE1KlTLT936dIFffr0wY8//lirBDqRx/DxAXr1Ar78UpRxYQKdyOXVK4E+bNgwe8XhETIyMpCRkeHSV//Ji7hJDXRbzHVNzbPGqsOTYKKr43hNRPXSsCHQogXw11/iwrwLJtBtNQ1NSkrCTz/9hLCwsEpNGc310HnsQK7GUWN2eno6du3ahZ07d+Lw4cPQaDTQ6/VV7r9q1SrMnj0b+/btQ2BgIHr37o2ZM2dCY76gVg9lZWXYtm0bXnrppXq/F5Hbiou7kkAfP17uaIjoKurVRJSssSEZuRRzAv3ff4HTp2UNpS7MzUXnzp171X3ZFIyIiMjBzMcVLtRItDxbTUNNJhN69OiBHTt2VCqLoVKpEBkZ6cwQiWQ1YcIEbNq0CW3btkXjxo2r3Xfx4sUYPHgw/P39MW/ePKSmpmLDhg2IiYnBX3/9ZbVvaWkpSkpKqrzZmgzz7LPPolGjRnjiiSfs+jsSuRVzydLvvwcuXZI3FiK6KibQiTxVcDDQrJl47IZlXAAxE71///5WdR5t4UkwERGRg7VpI+5dNIFuLv9WkSRJSEtLw6xZs6C63KRNpVIhMzOTs8/Jqxw8eBCFhYXYsGEDWrRoUeV+hYWFSEtLQ5cuXbB582aMGjUKr776KtavX4/jx49j0qRJVvsPGzYMwcHBVd6+//57q/3HjRuHnJwcfP311/D19XXI70rkFjp2FHXQS0qAHTvkjoaIroIJdCJP5sZ10M3UajVmzZpV5fNKpRLPPfecEyMiIiLyQi6eQDeXf7OVRDcajejWrRv0ej10Oh30ej17p5DXiTCvIrmKdevWoaSkBGPGjIGPz5WKr926dUOvXr2QnZ2NixcvWravXr3a0qDX1i02Ntayb2pqKr799lt89913CHPBUlBETqVUAuZ/H5s2yRoKEV0dE+h2lJGRgQ4dOiA6OlruUIgE84GyGyfQAeCFF17Am2++aTkpVqlUePPNNzH+cq242bNnQ6PRQKvVyhkmERGR53KDY4rExET89NNPlVaumVeqqdVqxMbGcuY5UTW2b98OAIiJian0XExMDM6cOYP9+/fX+n3HjBmDjRs3YtOmTWhmXiVL5O3MZVyYQCdyeUyg2xFroJPLceNGohWNHz8eBQUFlpljAwcOxNy5cys1C8vOzobBYJA5WiIiIg/j4jPQzaKjo7FkyRKWayGqo2PHjgGAzX8z5m21PdYuKCjAokWLkJ+fj4iICAQFBSEoKAh9+vSp9nWlpaUoLi62uhF5lLvuEvc5OcCFC/LGQkTV8rn6LkTktsLDxf2RI7KGYS9qtdpy4K7T6Ww2C0tISIBSqURWVhaXZxMREdmLOYFeUAAYjcDlBLUrSkxMRHx8PPLz8y0zz4moZs6dOwcA8PPzq/Rcw4YNrfapKY1GA0mSah1Leno6Xn/99Vq/jshttG8PXHst8PffwE8/XSnpUgMGgwF5eXmIioriOEfkBJyBTuTJWrcW9wUF8sbhAFU1CwNEIj05OZkz0YmIiOylRQugQQOgrAxwg/G1fLkWg8EAnU5nOS6o+DMRXREQEABAzP6u6Pz581b7OFpaWhqKioost6NHjzrlc4mcRqGoUxkXrVYLjUaDuLg4ljIlchIm0Ik8mUYj7o8cAeow68OVffPNN9XOZDEajViwYIETIyIiIvJgKtWVlW0uXsalvIpJhuHDhzPpQFSNli1bArBdpqW68i6O4Ofnh5CQEKsbkccxl3HR6Wq0u8FgQFJSklUpU04eI3I8JtDtiE1EyeW0aiXuz54F/vtP3ljsyHzQcLWloHPnzuWBBBERkb24SR10M1tJhvfff59JB6JqmM9lc3JyKj2Xk5ODoKAgtG/f3tlhEXku8wz0n34S5+1XkZeXV6mUqdFoRH5+viOiI6LLmEC3IzYRJZfj7w+Yu9x7UBkXWwcNtphMJh5IEBER2YubJdBrcrzApAORtX79+iEgIAALFy5EWVmZZfuOHTuwdetWDBgwAL6+vjJGSORh2rQRK8fLyoAffrjq7rZKmapUKkRGRjoqQiICE+hEnq98GRcPUV3984p4QYvIsz3zzDNo1aoVQkJC0LJlS6SmpuLixYtyh0XkmSIixP2hQ/LGUUM1OV5g0oG8xfLlyzFt2jRMmzYNJ0+eRFFRkeXnxYsXW/YLCwvDjBkzsGvXLsTGxiIzMxPTp0/Hfffdh+bNm2PKlClOj50rvcmjKRS1KuOiVquRlZUF1eVm3iqVCpmZmWwkSuRgCqku7bCpWsXFxQgNDUVRURHrtJH8Hn0UWLsWWLgQGD1a7mjsRqvVWi3LropSqcRPP/3EA25yKxxHam7fvn3QaDQIDAzEyZMnMWDAANx5552YPHlyjV7P75qoFj76CBgwAIiJAX78Ue5oakSr1SI5ORlGoxEqlQqPP/44VqxYYfk5MzMTiYmJcodJbsqdxpDY2Fhs2bLF5nMajQZ6vd5q28qVKzFnzhz88ccfCAgIQO/evZGeno425pUoMnCn75uoVpYvB554AoiOBrZvr9FLDAYD8vPzERkZyeQ5UQ3UdwzxcUBMRORKzDPQPaiECwAkJiaiU6dOuPXWW6tNoptMJtx6663IysriCTKRB+rQoYPlsVKphI+PD/Ly8mSMiMiDuVkJF0AcL8THx1slGaZNm2b5GQB0Oh2ioqKYgCCPtnnz5lrtP2TIEAwZMsQxwRCRNfMM9J07gaIiIDT0qi9Rq9Uct4iciCVciDxd69bi3oNKuJhFR0dXWr6mUCgq7ccmYUSOk56ejv79+yMiIgIKhQLh4eHV7r9q1Sp07doV/v7+CAsLw6BBg1BQzwt8M2fORHBwMMLCwrBr1y6MGTOmXu9HRFUwJ9CPHwfOn5c3llpQq9WIjY21JBrMP3/zzTfQaDSIi4uDRqOBVquVOVIiIvJKajUQFQWYTMDWrXJHQ0Q2MIFuR6zNRi7JQ2egmyUmJkKv10On00Gv12PWrFk292OTMCLHmDBhAjZt2oS2bduicePG1e67ePFiDB48GP7+/pg3bx5SU1OxYcMGxMTE4K+//rLat7S0FCUlJVXejEajZd+XX34ZZ86cwb59+zBq1Ci0bNnSIb8rkddr0gQwL3mtUO7B3RgMBqtScLzYTkREsoqLE/ebNskbBxHZxAS6HaWkpGDfvn1sWkiuxYNnoJuVn1nWrVs3m/solUo2CSNygIMHD6KwsBAbNmxAixYtqtyvsLAQaWlp6NKlCzZv3oxRo0bh1Vdfxfr163H8+HFMmjTJav9hw4YhODi4ytv3339f6TNuuOEGdO7cGUOHDrX770lEEI3O3LCMiy15eXmVSsDxYjuRa+JENfIKTKATuTQm0Ik8nTmB/vffQGmpvLE4QVRUFJTKyn/aZs2axRpxRA4QERFRo/3WrVuHkpISjBkzBj4+V1qwdOvWDb169UJ2djYuXrxo2b569WpIklTlLTY21ubnGI1GHDhwoF6/ExFVw0MS6LaOF1QqVaWL7QaDATqdjjPTiWTEiWrkFczHtrt3A6dOyRoKEVXGBDqRpwsLA/z9xeOjR+WNxQnUarVVXXSlUok33ngD48ePlzkyIu+2fft2AEBMTEyl52JiYnDmzBns37+/Vu9ZVFSEZcuW4fTp05AkCXv27MHUqVPRp08fu8RMRDaYL5odOiRvHPVU8XhBpVIhMzPT6mK7VqtljXQiInKOa64BbrpJPK5l018icjwm0Ik8nULhFWVcyitfF/2nn35Ct27dOHOMSGbHjh0DAJsrQczbavvvVKFQYMWKFYiIiEBwcDD69euHBx54AAsXLqzyNaWlpSguLra6EVEtmHureMAxRXx8PD788ENkZ2dDr9cjPj7eMts8NzeXNdKJiMi5WMaFyGX5XH0XInJ7Gg3w558e20jUFrVajW+++cZy8qtUKpGVlYX4+Hjk5eUhKiqKJV2InOjcuXMAAD8/v0rPNWzY0GqfmgoJCcHGjRtr9Zr09HS8/vrrtXoNEZXTqpW4d/NVbVqt1uoYYejQoVi+fDlMJhMUCgUkSar0GnONdB4/EBGRQ9x1F7BwIRPoRC6IM9CJvIGXzUAHxEzWijPHRo4cyaXYRDIJCAgAIGaAV3T+/HmrfRwpLS0NRUVFlttRN08CEjmdBxxT2DpGeP/99y0/20qeA7ZrpBOR47GJKHmNO+8UK8j//BP46y+5oyGicphAJ/IGHnCyW1t5eXmWE2EzSZK4FJtIJi1btgRgu0xLdeVd7M3Pzw8hISFWNyKqBfMM9L//Bso1/nUnto4RrkapVFaqkU5EzsEmouQ1GjcGOnYUjy/3DyIi18AEuh3xyji5LHO9Ui8q4RIVFQWFQlHtPual2ETkeOaxMScnp9JzOTk5CAoKQvv27Z0dFhHVVrNmgJ8fIEluOzsuKioKSmXNT4OUSiV++uknJCYmOjAqIiIiAOZ80o4d8sZBRFaYQLcjXhknl+WFM9DVajWef/75avfhUmwi5+nXrx8CAgKwcOFClJWVWbbv2LEDW7duxYABA+Dr6+u0eHjRm6iOFIors9Dd9LhCrVYjKysLKpUKgDgeGDZsmOVnpVJpuQivUqmQlZXFvxVEROQc3bqJeybQiVyKQqqqyB/VWXFxMUJDQ1FUVMSl4eQaDh8GIiLEjLHz58XJrxcwGAzQaDRVLtMeNWoUBgwYwIai5HLcaRxZvnw5Ci6vblm0aBEuXrxouXjVqFEjPPvss5Z9FyxYgNTUVPTs2RNDhw7FqVOnMG/ePDRo0AA7duywlHlxJnf6rolcRlwcoNMBK1YAQ4bIHU2dGQwG5OfnIzIyEmq12upnAFbPEdnCMcS5+H2TV9ixQ8xCb9oUOHmyzufuBoMBeXl5PNcluqy+YwgT6A7AgZ1czsWLQMOGYrn1338DzZvLHZHTaLVajBw5ssqGYICYaZaVlcWl2eQy3GkciY2NxZYtW2w+p9FooNfrrbatXLkSc+bMwR9//IGAgAD07t0b6enpaNOmjROircydvmsilzF8OPD++8CMGUBamtzR2AUTDVQXHEOci983eYXSUiA4GLh0SUyECw+v9VtotVpLs2ye6xIJ9R1DWMKFyBv4+gItWojHbrrcuq7i4+Ovuk/FhqIGgwHZ2dnIzs5mk1Giq9i8eTMkSbJ5q5g8B4AhQ4Zg165dOH/+PAoLC7F69WrZkudEVEfmEi5Hj8obh51otVpoNBrExcVBo9FAq9XKHRIREXkrPz+gUyfxuA5lXAwGgyV5DlQ+1yWiumECnchbmOuge1EjUQDIy8urdva5mdFoxEcffYTZs2ejdevWSEhIQEJCAlq3bs0TaSIPxBroRPXgQb1VaptoMBgM0Ol0TEQQORHHbPI6XbuK+zok0PPy8iqVMDUajcjPz7dHZEReiwl0Im/hQSe7tREVFQWlsmZ/6saNG4cXXnjBKuEuSRKSkpJ4okzkYdj4m6gePGgGem0SDZypTiQPjtnkderRSNTW+a9KpbL09zDjBWGi2mECnchbaDTi3ssS6Gq1GllZWVCpVAAARR2asJhMJmzbto0HGERERIBHXZSvKtFw4sQJqzGfS+KJiMhpyifQa9m2sOL5r0qlQmZmplV/D14QJqo9JtCJvIWXlnABgMTEROj1euh0Ovz888+1TqIrFAokJCTwAIOIiAi4MgP99GngzBlZQ6mviokGpVIJk8mEhIQEqzG/qpnqCxYscHrMRETk4W68UdRCLyoCDh6s9cvLn//q9XqrBqK8IExUN0ygE3kLD5otVhdqtRqxsbGIjo7GG2+8UePXmZPt5rIuPMAgIiKvFxwMNGokHntAGRdzoiE7O9vSBBmwHvOrKgk3d+5cHhMQEZF9+foCnTuLx3Uo4wJcOf8tP/McYI10orpiAp3IW7RsKe6PHZM3DplptVq89NJLlp+rmo3+9ttvIzs7G6tXr67UhNRoNGLbtm0OjZOIHIsNyYjqyYPqoAMi0RAWFmZzzM/Pz4darca4ceMqvc5kMjHpQERE9mcu47Jzp13ftiY10lkfnagyJtDtiCfj5NLMCfQTJ4BLl+SNRSYVl6sBIoGenJxsSaQrlUq8++67eOCBBxAWFoZz587ZfK+BAweylAuRG2NDMqJ68sCVbVdLKowdO7bShXdbjdmIiIjqrR6NRKtztRrprI9OZBsT6HbEk3Fyac2aAQ0aiCYkx4/LHY0sbC1XM5lMGDhwII4cOQKdToeCyzXizQcNI0aMsPleLOVCRERezcNmoANXTyqo1WosWbLEql76c889J1u8RN6CE9XIK5WfgV7hHLa+qqqRzvroRFVjAp3IWyiVQIsW4rGXlnGpbmaZuUYcgEqz1KvCWnFEROS1PHAGOlB947Xyz48fPx4AMHv2bM7QI3IwTlQjr3TDDYC/v2jWnZdn97e3VSOd9dGJqsYEOpE38fI66FXNLANgqfFm66ChKkqlksu2iYjIO3ngDHSzqhqvlTd37lzO0CMiIsfx8QFuuUU8tnMZl6rUpD46kbdiAp3Im3h5Ah2oPLMMgFWNtx07dlQ6aKjKyJEjHRgpETkSl4MT1ZOHzkC3pWIzNc7QIyIip+jaVdw7KYF+tVJmRN6MCXQib8IEOgBUWa7FZDIhLS0Ns2bNqjaJrlAooFAokJmZyWXbRG6Ky8GJ6qn8DHRJkjcWB7LVTI0z9IiIyCkc1Ei0OlcrZUbkrZhAJ/ImTKBbqWoGWVBQEKQKyQClUont27cjOzsbCoXC8jyXbRMRkVdq2RJQKIDSUuDkSbmjcYiqmqkBsJqhp1QqMXPmTM7QIyIi+zIn0HftAoxGp31sTUqZEXkbJtCJvAkT6FZszSADgKeffrpSAt1kMuHs2bMICwvjsm0iIiJfX+Daa8VjD6yDDlRfqiUxMRHp6elQKBQwmUx46aWXuCKNiIjs6/rrgcBA4Nw5YP9+uaMh8mpMoBN5EybQrVSs8VYd89JsLtsmIiK6zFzGxUProFc35hsMBrz88stckUZERI6jUgFduojHTizjQkSVMYFO5E3KJ9A9uF5pbSQmJuLDDz+0+Zz5pFmlUmHmzJnIy8sDAAwdOtRqvxtvvBHHjx93bKBERESuxtxI1ENnoFfXTI2NRImIyClkqINORJX5yB2AKzt//jw6duyIv//+GyUlJXKHQ1R/LVqI+/Pngf/+A5o0kTceFxETEwOlUml1IqxSqbBt2zacPXsWubm5eOmll2AymaBQKCq9fvfu3ejevTuGDRuGZcuWOTFyIiIiGZVvJOqhEhMTER8fj/z8fERGRlrqwZpnp1c8duCKNCL7y8jIQEZGBoxOrAFN5DLMCfSdO+WNg8jLcQZ6NSZNmgSNRiN3GET24+9/JWnOMi4WFWeYmZuBRUdHIzIyEi+//LLlBFmSpEr10c3ef/99vP3221y+TeQGMjIy0KFDB0RHR8sdCpH7Ms9A99ASLma2mqlVNzudiOwrJSUF+/btQ25urtyhEDmfOYH+yy9AWZm8sRB5MSbQq7Bz5058/fXXeOmll+QOhci+WAfdpqqagdlaol2dZ555BhqNho3EiFwcT8aJ7MALZqBXJzExEXq9HjqdDnq9HomJiXKHREREniYyEggJAS5cAPbtkzsaIq/lkgn09PR09O/fHxEREVAoFAgPD692/1WrVqFr167w9/dHWFgYBg0ahIKCgjp/fllZGUaOHIm33noLvr6+dX4fIpfEBLpNVTUDCwoKqlS2xVYZl/JMJhOSkpKQnZ3N2ehEROS5vGQGenXUajUiIyORl5eH3Nxc6HQ6jv1ERGQ/SiXQtat4zDroRLJxyQT6hAkTsGnTJrRt2xaNGzeudt/Fixdj8ODB8Pf3x7x585CamooNGzYgJiYGf/31l9W+paWlKCkpqfJmrqn25ptv4pZbbkGvXr0c9jsSyca8tJgJdCtVNQPLzs622qZQKLBkyRK88cYb1b6fyWRCQkICZ6MTEZHnMs9AP34cuHRJ3lhkotVqodFoEBcXh+7duyMuLo5jPxER2RcbiRLJziUT6AcPHkRhYSE2bNiAFuamhzYUFhYiLS0NXbp0webNmzFq1Ci8+uqrWL9+PY4fP45JkyZZ7T9s2DAEBwdXefv++++Rn5+Pd955B2+++aajf00ieXAGuk3mZmDlKZVKzJ0716rmuVKpRKdOndCtWzeMHTv2qu9rnsnO2WhERORxrrkGaNAAMJlEEt3LGAwGJCUlVboAz7GfiIjsijPQiWTnkgn0iIiIGu23bt06lJSUYMyYMfDx8bFs79atG3r16oXs7GxcvHjRsn316tWWBoC2brGxsfjhhx/wzz//oF27dggLC0O/fv1w9uxZhIWFYevWrXb/XYmcjgl0m2w1Axs3bpzNWek9evRAXFwcFi5cWKP3NhqNyM/Pt3vMREREslIqgeuuE48rrPz0BtX1SeHYT0REdmOegf7bb0C5HBcROY9LJtBravv27QCAmJiYSs/FxMTgzJkz2L9/f63ec8CAAcjPz8evv/6KX3/9Fe+++y4CAgLw66+/okePHnaJm0hWTKBXqWIzsLFjx1aalQ7AMiNdkqRK9dDvvPPOSq9RqVSIjIx0XOBERERyMR9XeEEC3WAwWNU4t7V6zUypVOKPP/5gXXQiIqq/iAigUSORPN+7V+5oiLySWyfQj11OAKrNNZ3LMW+r7cFqQEAA1Gq15dasWTMoFAqo1Wr4+fnZfE1paSmKi4utbkQuiwn0aqnVasTGxlr+BpSflV5VMv3tt9/GvHnzsH37dqxYsQLjxo2z7KtUKpGZmWnz7xQREZHbM5db9PDjivK1zs01ziseJ5RnMpnwzDPPsC46ERHVn0LBOuhEMnPrBPq5c+cAwGZiu2HDhlb71FVsbCxKSkqq3Sc9PR2hoaGWWytzQyUiV2ROoJ88CZSWyhuLGyg/K/2nn36qNONcpVLhgQceQGpqKnbv3g2NRoPZs2dXWtJdcdYaEckrIyMDHTp0QHR0tNyhELk3L5iBXrHWefka5+WPE7744otKxwlmrItORET1wgQ6kazcOoEeEBAAQMwAr+j8+fNW+zhSWloaioqKLLejR486/DOJ6qxpU8B80cmDT3btyTwrfffu3VbbFQqFZXZ5dY3EkpKS0Lp1a85AI3IhKSkp2LdvH3Jzc+UOhci9ecEMdFu1zsvXODcfJwQGBlo1Hq+IddGJiKjO3DCBzklk5EncOoHe8vKMF1v/GKsr72Jvfn5+CAkJsboRuSyFwitOdu3NnCAvf2KsVCoRHx8PoPpGYiaTyfI6zkAjIiKPYj6m8OCL8rZqndvqb1JdTXRAHDecOHECBoMBBoMB2dnZyM7OrtExAZMQRERezpxA37MHuHBB3lhqwFbpMyJ35tYJdPOy65ycnErP5eTkICgoCO3bt3daPFwOTm6DddBr7Wqzz4KCgqpctl0RZ6AREZHH8IISLhVrnatUKpv9Tcz72UqiKxQKSJKEhIQEtG7dGq1atUJCQoLl5+oSC0xCkLfjeTYRgNatgbAwoKxMJNFdWHWlz4jclVsn0Pv164eAgAAsXLgQZWVllu07duzA1q1bMWDAAPj6+jotHi4HJ7fBBHqtVTf7TKvV4tZbb6122bat1xEREbk9L1nVVr7WuV6vR2JiYpX7FRQUWGaXb9++HdnZ2ZYEOoBKxwuSJFWZWGASgojn2UQA3KqR6NUmnxG5Ix+5A7Bl+fLlKCgoAACcPHkSFy9exLRp0wAAjRo1wrPPPgsACAsLw4wZM5CamorY2FgMHToUp06dwrx589C8eXNMmTJFtt+ByKUxgV5r5lllycnJMBqNltlnAGzWPq9KVbPWiIiI3JL5mKK4GCgpAYKC5I3HgdRqdY3Gb7Vajf79+1t+LikpuepxgjmxUPH9q0tC8FiCiMjLdOsGrF/v8gl08+Sz8uMXJ5GRu3PJBLpWq8WWLVustk2cOBEAoNFoLAl0ABg7dizCwsIwZ84cpKamIiDg/9u7/+io6jv/46+ZQQIh/BACiAwE0oRf/tguELoE1ByOLHoqx25bROpi6EbAEgS221Or59sf/ihQ91T8FXcNzB4sKpC22/VL9+y3/VojSMlXAoq1RSRRgxlFgQAJ4UeAzP3+Mb1DftyZzCR35s5kno9zcia59879vGfuzXzu5z2f+/lkau7cuVq3bl1ojPREKSsrU1lZmVpbWxNaLhAzs8FFAj0mJSUlmjdvnmpra5WXlyev16vKysqok+cul0vr168P22sNAICUM3BgMGne3BwcxmXCBKcjSjpWiYSOwiUWSEIAAEKmTQs+JnkCPVznM774RSpzGdGOOYCoNTU1afDgwWpsbGRCUSSnigpp4UJp9mzpzTedjial+f1+5eTkxNQDva6ujosHREQ9kji814ANJk2SPvhAqqyUioqcjsZRfr9fNTU1ys/PlxTsQZ6VlaWKigo9+eSTCgQCoTlTzGaY2+1WeXl52C/YfT5fpyQEX8YnB+qQxOL9Rtrz+6UxYySPJ3jnV2am0xFF5Pf723U+A5zU0zokKXugA4izUaOCj59/7mwcvYDX69XixYv14osvRrV9a2urnn76af3rv/5rnCMDACBBrr02mEDvxROJRsPn84WGdeuYJJeCifLvfe97Wr16tSSpqqpKkjRz5syIiQWrO+AAAGlo9Ghp5Ejpiy+kd9+VZs50OqKIoh36DEgFKT2JaLJhdnCkjGuuCT6SQO8xv9+vLVu2xPScJ598ksm/AAC9R5pMJBpJx8k+DcPoNFloIBDQhg0bJF0ZJ33BggVRj6teVFREIgIA0lkKTSQK9DYk0G3E7OBIGWYCvbk5+INus5rcqyuBQEC//e1vVVlZqerqalVWVsrv98vv94d+BxBffOkN2MicdyiNe6BHez1gTgAKAEC3kEAHHMEQLkA6GjhQGjBAOns22Audiai6LZqJwax85zvfafd321u9uxoLFUDPlZaWqrS0NDQWHoAeoAd61NcDTAAKAOgREuiAI+iBDqQrsxf60aPOxpHizBnGPR6PpOD4pmYyPBZtb/UOBAJatmwZPdEBAKmBHuhRXQ+YE4BaDcMS7i407k4DALQzbVrw8f33uZscSCAS6EC6YiJR25SUlKiurk6VlZU6cuSIPvnkEz355JM92mcgENDTTz9tU4QAAMQRPdAlWV8PVFZWau/evaqsrFRdXZ3l3WU+n085OTmaM2eOcnJy5PP5Ii4HAKSxUaOCX1wbhvTOO05HA6QNhnCxUVlZmcrKytTa2up0KEDXmEjUVm1nGPf7/erXr1+P97lhwwatXr2aCcMAAMnNTKB/9lmwQd+NO7F6i7bXA+bfkXScfDQQCGj58uW68cYbLZfPmzeP6wIASHfTpwe/tN6/X7rpJqejAdICPdBtxCSiSCkM4RIXZm+xFStW9HhfTDQGAEgJ5l1tFy9KJ086G0uKsZp8tLW1Vbt377ZcznUBACA0Djq5JyBhSKAD6YohXGzXsRdZLNxut9zu9h/JTDQGAEgJGRlSdnbw9zQfxiVW5uSjbXk8Hs2ePZvrAgCAtS9/Ofj43nuOhgGkExLoQLpiCBfbWfUi6+iWW26xbBCXl5d3mnxs/fr13KYNAEgNTCTaLR0nHzUnGi0oKLBcznUBAEDXXRd8/OAD6fJlZ2MB0gRjoAPpiiFcbGf2IrNKot9yyy3atWuXdu7cGVr28MMPa+7cucrLyws1iE+ePKkHH3xQgUBADz74oK6++mrLCccAAEgq114rvfsuPdC7oaSkRPPmzVNtbW27a4JwywEAaS4nR8rMlM6dkz78UJo4MSHF+v1+1dTUKD8/v12dFG55PMqKZ5l2xIXeix7oNiorK9OUKVNUUFDgdChA1xjCxXYde5G1tXPnThmG0W7Zz372s3YNYr/frx/84Aeh7cwJw/x+f/yDBwCgJ9pOJIqYeb1eFRUVWSYkBgwYoJqaGq4HAABBbrc0eXLw94MHE1KkOdfXnDlzlJOTI5/PF3F5PMqKdn28OFUukgMJdBsxiShSitkD/dgxqbXV2Vh6kZKSEr3yyitRbdtxMrBwE4lVVVWpsrJS1dXVqqyspAENAEg+DOFiq7aN9BkzZtBYR1qjoxpgYcqU4ONf/hL3ojrO9WV29KqurrZc3pP2ariyzH12tT5enCoXyYMEOpCuhg+XXC4pEJCOH3c6ml6lsLCw0zjnVjpOBmY1kZjL5dLdd99NAxoAkNzMHugM4dJj4SYlp7GOdEVHNcCCOQ56Anqgh+votXv3bsvlbTuJ2VWWuc+u1seLU+UieZBAB9JVnz7SiBHB3xnGxVZWE4JZ6ThJaMfnmcl0GtAAgKRHD3TbRJqUnMY6AEBSQnugW3X08ng8mj17tuXytp3E7CrL3GdX6+PFqXKRPEigA+nMHMaFBLrtSkpKVFdXp8rKyrBDukyfPj3i87Zu3dpp3HQTDWgAQFKhB7ptrBrpJhrrAABJV3qgf/CBdPlyXIuy6iD2wgsvqKCgwHJ5TybXDFeWuc+u1seLU+UiebiMcNkZdFtTU5MGDx6sxsZGDRo0yOlwgPBuv136P/9H+o//kL79baej6bX8fr9ycnLa9SbzeDx69tlnNWzYMI0fP17Nzc3Kz8/X0aNH9eabb2rChAk6d+6cFi1aZNkLzePxqK6ujgq7l6Ieib+ysjKVlZWptbVVhw8f5r0Geurzz4MTlLtc0sWLwTvd0G0+n0/Lly9Xa5t5aszGeklJiYORoS3q68Ti/QbaCASkrCzp/Hnp8GEpPz/uRfr9ftXW1iovL6/TpNdWy+NRVjzLtCMuJK+e1iEk0G1EYxwp59vfljZvltaulR56yOloerW2DWG32x321uyOXC6XXC5Xp+Q7DejejQZi4vBeAzYJBKS+fYMTk9fXSzQqe8xspA8YMEBnz56lsZ6EqEMSi/cb6GDaNOntt6Xf/Eb62tecjgZIaj2tQ+gaYqPS0lKVlpaGDgqQ9BjCJWFKSko0b948VVVV6a677or6eYZhyOVyqaKiQuPGjaMBDQBITm53sAe63x8cB516qse8Xi/1PQAgvClTggn0gwdJoANxRgIdSGejRgUfjx51No404fV6lZ2dHfPzAoGAhg8froKCgjhEBQCATUaPvpJAR1T8fr9qamqUn5/f6XZ4q+XRPL/tMklR7QcAkIISOJEokO6YRBRIZ/RAT7j8boxN13HCML/fr8rKSvn9fjtDAwCgZ5hINCY+n085OTmaM2eOcnJy5PP5Ii6P5vltl40dO1Zjx47tcj8AgBRlTiR68KCzcQBpgAQ6kM7MBDo90BPmd7/7nVwuV9Tbd5zdO9pGNQAACWdeV3zxhbNxpAC/369ly5aF5jgJBAJavny5qqurLZd3/NI83POXLl0aWmYYhszprsLtBwCQwswe6IcOBecgARA3JNCBdGYO4UIP9IQwG7vRzN1sjnteV1cXmiw0XGOZxjAAIClwZ1vUampqOk0o3traqt27d1sur62tjer5ka4xrPYDAEhh48dL/fpJFy5IH3/sdDSO4i5txBsJdCCdmQ3d5ubgD+LKqrEbjmEYGj58eLvxSsM1lmkMAwCSAgn0qOXn58vtbt8U83g8mj17tuXytkO5RXp+pLvcrPYDAEhhHo80aVLw9zQeB527tJEIJNBtVFZWpilTpjDRH1LHwIHSgAHB32nsxp1VYzecWBrLNIYBAElh5MjgI0O4dMnr9aq8vFwej0fSlSHbCgoKLJd3nAA03PM3btwYWuZyuULXDeH2AwBIcWk+Djp3aSNR+jgdQG9SWlqq0tJSNTU1afDgwU6HA0TnmmukDz8MJtBJxMaV2dhdvny5Wltb5fF49A//8A/69a9/3e6Wa4/Ho3Xr1qmmpkZHjx5Vc3Oz8vPzLZ9vV2PY7/erpqYmVA4AADGjB3pMSkpKNG/ePNXW1iovLy9U/4ZbHu3z2y6T1OV+AAApzBwHPU17oEe6S5t6D3YigQ6ku7YJdMRd28buvn379P3vf79d8tzlcunrX/+6fvCDH7S7EHC73SovL4+6UR0Ln88X+ta+bTkAAMSkbQLdMKQYJs1OV16v17IuD7c8mu06LiOBAAC9WJr3QDfv0m7bduYubcQDQ7gA6c6cSPToUWfjSCNer1d5eXmdkudScOzzX/7yl52+RW97K5rX61VRUZFtPc+55Q0AYAtzCJeLF6XTpx0NBQCAtGD2QH//fam11dlYHBBuSDO+PIbdSKAD6Y7brR1RU1PTKXnelXhMGMrEpAAA2/TrJw0ZEvyd6woAAOIvN1fKyJAuXJDq6pyOxhElJSWqq6tTZWWl6urquJsaccEQLkC6I4HuiPz8fLlcrpiS6PG4FY1b3gAAtho5Mtj7/IsvpMmTnY4mKXU170i49ebyrKys0PwokiJuG+1yAECK8nikSZOkd98NDuPypS85HZEjoh36DOgueqAD6W7EiODjsWPOxpFmvF6vNm7cKFeH8WFdLpeKi4tDt6CZ4nUrGre8AQBsxRfzEfl8PuXk5GjOnDnKycmRz+eLan3b5TNmzNCcOXM0duxYjR07NuK20SwHAKQ4cxz0NJ1IFEgElxHrGALoUlNTkwYPHqzGxkYNGjTI6XCAyF59Vfra16QZM6S33nI6mrTj9/tVVVWlhoYGDRs2TDNnzpTX61V1dbV2796t/Px8nT9/XjU1NTp27JhG/PULjwsXLmjGjBk6d+6cJKmwsFCSou6ZZhWHnROTomeoRxKH9xqw2d13S9u3Sxs2SGvWOB1NUvH7/crJyel011ddXZ28Xm/Y9VVVVfq7v/u7TkOudRRu20jLzbLRPdQhicX7DYTx059K/+t/SYsXS7/4hdPRAEmpp3UIQ7gA6Y4e6I7yer1asGBBu2U+ny80sWcsw7x03Nbs3W4Yhtxut8rLy8OOB8ctb0hl58+f1w033KDPP/9czc3NTocDpDd6oIcVad4Rr9cbdv3u3bu7TJ5H2jbScrNsIN5WrFihHTt2qLGxUQMHDtSCBQv0xBNPqG/fvk6HBqQ+eqADcccQLkC6I4GeVPx+fyh5LimmMdI7bmsYRmhZIBDQ8uXL5ff77QsWSBI/+tGPlJOT43QYACQS6BGY84601XbekXDrZ8+e3Wm5lXDbRlrOnCdIlJUrV+rQoUNqamrSgQMH9O6772rt2rVOhwX0DlOmBB/ff1+K4gtXALEjgQ6ku5Ejg4/nzklnzzobCyx7n9nF7GkG9Cb79+/X//zP/+jBBx90OhQA0pUE+hdfOBtHEupq3pFw6wsKCtotN7lcrlBSPNy2XS2n9zkSZcqUKRowYIAkye12q0+fPqqpqXE4KqCXyM2VMjKk8+elujqnowF6JRLoNiorK9OUKVNUUFDgdChA9AYMkPr3D/5OL3THWfU+sws9zWC3devWacGCBcrNzZXL5dK4ceMibr9161ZNmzZN/fv3V3Z2thYtWqQjR450u/zLly9r6dKlev7557kFHEgW5hfz9EC3VFJSorq6OlVWVqqurq7T0Grh1rddvnfvXlVWVuqTTz7RkSNHIm4bzXKkB6frbElav369Bg4cqOzsbL399ttatWpVj/YH4K/69JEmTgz+fvCgs7EAvRSTiMYBk5sg5YwbJx05Iv2//yd95StOR5P2fD6fli9frtbW1pjGQHe73e16r7tcLrlcLgUCgVBPMxrLqSFV6hGXy6WhQ4dq6tSp2r9/vwYNGqS6ML1ennvuOT3wwAOaNWuW/vEf/1EnTpzQU089pYyMDFVXV+vaa68NbdvS0qJLly6FLbd///7yeDxat26damtr5fP59MYbb+iOO+6IeQz0VHmvgZTxzjvS1KnBnuhHjzodDRBXqVSHOF1nt/X+++/rpZde0ne+852Y7oJIpfcbSLhvfUvaulVav17izkygEyYRBdBzI0YEE+j0QE8KJSUlmjdvnmpra0M9xn/729/q8OHDGj58uKRgY2X69Ok6f/68JGnmzJmSpNraWg0YMEBnz54NPdfcD7dpw24ffvihcnNzJUnXX3992OR1Q0ODHnroIU2dOlVvvPGG+vQJXn7cdtttmjFjhn70ox9p06ZNoe2Li4u1ffv2sOVWVlbK6/Xq3//93/XOO+/Y+IoA9Jg5hMuxY1Jrq9QhcQbAGU7W2UVFRe2WTZ48WX/zN3+jxYsXq7KysoevDICkK+Og0wMdiAsS6ACYSDQJeb3edgnv+++/P+rnRbMMsIPZEO/Kq6++qubmZq1atSrUEJek6dOn6+abb1ZFRUW7YVi2bdumbdu2Rdzn5s2b9cUXX2jChAmSpEuXLuns2bPKzs7Wf/7nf+rmm2/u5qsC0CPDh0suV3ASsxMnrgzpAsBRTtbZVlpbW3X48OGYnwcgjOuuCz7+5S/OxpHi/H6/ampqlJ+fTzsa7ZBAB0ACPcmYlXZWVpaam5vbVd4d12VlZenjjz9WQ0ODhg0bpsLCQnm9XlVXV2vHjh0aNWqU5s+f3+n5XBAgkfbu3StJKiws7LSusLBQO3fu1KFDh3TjjTdGvc+77rpLt956a+jvqqoqLVmyRAcOHAjdqQHAAX36BJPox44FJxIlgQ6klHjU2Y2NjfrNb36jr33taxo8eLD+/Oc/67HHHtPtt99uW9xA2jN7oL//fvBL7DjNq9Wb+Xw+LVu2TIFAQG63W+Xl5QyBihAS6ABIoCeRtpW2yay8JXVa15HL5dLMmTO1Z8+e0LIVK1aEbrXlggBO+PTTTyVFvkPC7/fH1BjPzMxUZmZm6O/hw4fL5XJ1+cVQS0uLWlpaQn83NTVFXSaAKI0cGbym+PxzKYb/awDOi0ed7XK59NJLL+m73/2uLl68qBEjRuib3/ymfvKTn0R8HnU2EIMvfUnq21c6dy44POv48U5HlFL8fn+7tnYgENDy5cs1b948Op5BEgl0ABIJ9CTRsdI2BQIBLVu2LPR7JIZhtEuem5YuXRpab+6HCwIkyrlz5yRJGRkZndb169ev3TbdVVRUFNUEouvWrdMjjzzSo7IAdOGaa6T33gsm0AGklHjU2YMGDdJrr70WcyzU2UAM+vSRJk4M1r8HD5JAj1FNTU2ntnZra6tqa2tpL0OSxD0dAK4k0L/4wtk40pxVpW0KBAJdJs8jMQwjlDw3mRcEQLyZPcXb9iIzmRPhtu1NHk8PPfSQGhsbQz/19fUJKRdIK+ZEoiTQgZRDnQ2kMCYS7bb8/Hy5Owx74/F4lJeX51BESDb0QAdAD/QkYVbaVolyszLvbhLd5XJJUrskOhcESJTRo0dLCt5lkZ+f325dpFvF4yEjI8OyVx0AG5FAj0mkuU8iPce848wcq3rPnj3t5kSRFNrvvn37dPToUc2fP18FBQXdjpE5VHo/6mwghTGRaLd5vV6Vl5dr+fLlam1tlcfj0QsvvECdhxAS6ABIoCeJjpW2yay8JXVa15HVGOiStHHjxnbP54IAiVRQUKAXXnhBe/bs6dQY37Nnj7KysjRp0iSHogNgOzOBzp1tXYo090m4eUp8Pp+WLl0a+lLc5XJ1usss3PLHHntMxcXF2rx5c7diZA6V3o86G0hh9EDvkZKSEs2bN0+1tbXKy8ujrYx2XIbV1VaaW7JkiV555RX17ds3tOxXv/qVbrvttqie39TUpMGDB6uxsVGDBg2KV5iAfT77TBo9OjhT96VLzNjtML/fr9raWg0YMEBnz55tV3l3XDdgwADV1dWFepzNnDlTXq9X1dXV+u///m9dc801uuOOOzo9nwuC5JaK9cj111+v5uZm1dXVdVp34sQJ5eTkaNKkSXrrrbfUp0/w+/t9+/ZpxowZ+va3vy2fz5fQeMvKylRWVqbW1lYdPnw4pd5rIOm98op0zz3SnDnSH/7gdDRJy+/3Kycnx/LuMo/Ho7q6uk51td/v19ixYy0T5rHYu3dvVD3RrWIMF1s6SsX6WqLOBnqtQ4ekyZOlAQOkpiba9UAbPa2z6YEexrJly/Tcc885HQaQGNnZwcdAQDp58srfcITX6w3bKLVaZ9UALigosFwead9ArLZs2aIjR45Iko4fP66LFy/q8ccflyQNGTJEK1eulCRlZ2dr7dq1WrNmjYqKirR48WKdOHFCGzZs0MiRI/Xoo48mPPbS0lKVlpaGLqQA2GjkyOAjQ7hEFGnuk3ATl9XU1PQ4eS5Jf/zjH6NKoDOpWu9BnQ2kgS99SbrqKunsWam+XsrJcToioNcggQ5A6ttXuvpq6dSp4DAuJNABRMHn82nnzp3tlv3whz+UJOXk5IQa45K0evVqZWdn6+c//7nWrFmjzMxMzZ07V+vWrQuNtwqgl2AM9KhEmvsk3Dwl+fn5YYdsicWsWbO6HSNzqKQm6mwgDVx1lTRxovTnPwfHQSeBDtgmKe/nWLdunRYsWKDc3Fy5XC6NGzcu4vZbt27VtGnT1L9/f2VnZ2vRokWhb9e76+WXX9bQoUM1efJk/fSnP9Xly5d7tD8g6TEOOoAYvfHGGzIMw/LH6rbwe+65R2+//bbOnz+vhoYGbdu2TePHj0984ADiy0ygnzwpXbzobCxJzJz7xOPxtFseaZ4Sr9erjRs3hiYHl9Tu97bcYW7dLy4ujnoi0Y4xModK6qLOBtIE46ADcZGUPdAffvhhDR06VFOnTtXp06cjbvvcc8/pgQce0KxZs7RhwwadOHFCTz31lHbt2qXq6mpde+21oW1bWlp06dKlsPvq37+/PB6PVq1apSeeeELZ2dl6++23tWjRIl24cEGPPfaYXS8RSD4jRkgffEACHUBaaDueKgCbXX11sBfcpUvB6wqSrWG1nbDMau6TSM+pqqqSJM2cOVOSVFVV1W5OFEmh/e7fv1+ff/65vvrVr0adPLeKkTlUACDJXXdd8PEvf3E2DqCXScpJRD/66CPl5uZKijzBSUNDg8aNG6cJEyZYTnDyT//0T9q0aVNo+7vvvlvbt28PW25lZaWKioo6LX/llVf04x//WDU1NVHFn6qTySDNffOb0q9/LT37rNTmFk44y+/3a8+ePZKkwsJCScHxSM+ePau9e/dq1KhRGjNmjF577TU1Nzdr2rRpmj9/vrxer/x+v2pqapSVlaV9+/bpgw8+0MSJEzV9+nR9/PHHamho0KlTp3Ts2DFNnDgx9Lx4vIaamhrl5+f3eP/h9mVnGcmAeiRxeK+BOBkzRvL7pepqafp0p6MB4oI6JDGYRBSIwa9+JS1YIM2YIb31ltPRAEmjV04iaibPu/Lqq6+qublZq1atCiXPJWn69Om6+eabVVFRoeeff159+/aVJG3btk3btm2LOR63223LZD1AUjMn/KIHetLw+XxaunRpu8+frsY99fl8WrFihYqLi7Vly5awk5NZWbFihTZt2qSSkpIexd0xnmXLlikQCMjtdqu8vLzb+w+3LzvLAADYZOTIYAKdcdAB9BCTiAIxMHugHzwoGYYUZpgvALFJyjHQo7V3715JV3pltlVYWKgzZ87o0KFDMe93+/btamxslGEY+tOf/qRHHnlE3/jGN3ocL5DUGAM9qfj9fi1btqxTsjzaL/NefPHFmJLnpmXLlsnv98f8PCvmazDjCAQCWr58ebf2H25f1dXVtpUBALARE4kCAJB4eXnBYdSam6X6eqejAXqNlE6gf/rpp5IUdoIdSd1Kojz//PMaN26cBg4cqG984xtauHBhxPHPW1pa1NTU1O4HSDkk0JNKTU1NtxLgPRUIBFRbW2vLvqxeQ2tra7f2H25fu3fvtq0MAICNSKADAJB4V10lTZgQ/J1x0AHbJOUQLtE6d+6cJCkjI6PTun79+rXbJhY7d+6Maft169bpkUceibkcIKmQQE8q+fn5crvdCU+iu91u5eXl2bIvq9fg8Xi6tf9w+5o9e7ZtZSC9MIkoEGfm0HAk0AEASKwpU4LJ84MHpdtvdzoaoFdI6R7omZmZkoI9wDs6f/58u23i6aGHHlJjY2Pop57bZJCKzAT6F184GwckBe+iKS8vl9vd/mO6499WXC6XiouL5fF4YirT5XKpvLzctkk4zddgxuHxePTCCy90a//h9lVQUGBbGUgvpaWlOnjwoKqrq50OBeidzOuK48edjQMAgHTTdhx0ALZI6R7oo0ePlhQcpiU/P7/dukjDu9gtIyPDshc8kFLogZ50SkpKNG/ePFVVVUmSZs6cKUmqra1Vc3Oz9u3bp2uuuUZer1evv/66zpw5o2nTpumOO+6Q1+vV448/rtraWg0YMED79+/X4cOHNWHCBE2bNk11dXVqaGjQqVOndPz4cU2YMCH0vHi8htraWuXl5fVo/+H2ZWcZAACbkEAHYBPuGgNiNGVK8JEhXADbuIxoZ6RzyPXXX6/m5mbV1dV1Wufz+XTfffdp8+bNKi4ubreuqKhI+/fvV0NDg/r27ZuQWNtW7IcPH1ZjY6MGDRqUkLKBHjt1Sho6NPj7+fPSX4dBApB4TU1NGjx4MPVIAvBeA3Hyhz9It94a7AX35z87HQ0QF9QhicX7DUTp4MFg/TtwoNTYKLlcTkcEOK6ndUhKD+Fy5513KjMzU88884wuX74cWr5v3z7t2rVLd911V8KS5xK3gyPFDRki9fnrTSn0FgMAAD3BnW0AADgjLy/Ytj9zRvL7nY4G6BWScgiXLVu26MiRI5Kk48eP6+LFi3r88cclSUOGDNHKlSslSdnZ2Vq7dq3WrFmjoqIiLV68WCdOnNCGDRs0cuRIPfroo469BiDluFzBxu5nnwUbu2PGOB0RAMQNt4MDcTZ8ePCxoUFqbZVinJcDAAB0U9++Un6+9P77wR/a9kCPJWUC3efzaefOne2W/fCHP5Qk5eTkhBLokrR69WplZ2fr5z//udasWaPMzEzNnTtX69atC42Rnig0xpHy2ibQAaAXKy0tVWlpaehWPgA2y84OPgYC0smTVxLqAAAg/vLygsnzDz90OhKgV0jKBPobb7wR0/b33HOP7rnnnvgEEwMa40h5ZmP3xAln4wAAAKmtTx9p2LBgD/Rjx0igAwCQSHl5wcfaWmfjAHqJlB4DHYDNSKADAAC7mElz7mwD0ANlZWWaMmWKCgoKnA4FSB1mAp0e6IAtSKADuIIEOgAAsIs5kSiTkwPogdLSUh08eFDV1dVOhwKkji99KfhID3TAFiTQbcQ340h5Zk8xEugAAKCnzAQ6PdABAEgsswf6Rx8F5yMB0CMk0G3EN+NIefRABwAAdmEIFwAAnJGTE5yP5Px56ehRp6MBUh4JdABXkEAHkCa4awxIAIZwAQDAGX36BJPoEsO4ADYggQ7gCjOBTkMXQC/HXWNAAjCECwAAzknCiUT9fr8qKyvl9/sjLrO7nLZ/21WeHa8l2u272s6u/SSS3+9XRUWFKioqIsaTLDH3cbT0XqasrExlZWVqbW11OhSge+iBDgAA7MIQLp34/X7V1NQoPz9fXq/Xcv2ePXskSYWFhZ22qa6u1ptvvqmbbrqp0x00bfctqVM55vqsrCzt27dPH3zwgSZOnKj58+fr6NGjnfZrljVhwgSdO3dOkjR+/Hjt27dPR48e1fz581VQUNAp5o5ldxVXV7F39Z515/3uyT4BIGXk5Um/+13S9ED3+XxatmyZAoGA3G63ysvLJanTspKSElvLWbx4sbZs2aJAICCXyyVJMgyjR+XZ8Vqs9mG1fVfb2bWfRPL5fFq6dKkMw5AkuVwubdy4sVM8yRSzyzCjhW2ampo0ePBgNTY2atCgQU6HA0Tvs8+k0aMlt1u6dCn4iISwasjF2rirrq7Wyy+/rObmZk2bNi3UIN6xY4daWlrU0tKijIwMtbS0aOLEiZo+fbo+/vhj7d+/X3/60580ZMgQ3XDDDcrLy9O5c+f0+uuva9SoURo8eLCOHTsWeo7Z6M7IyFBDQ4OOHTumy5cva/bs2br33ntDjd0dO3Zo165dOn36tG666SbNnTtXzc3N7RrHR44c0fbt29XU1KRJkybp/vvvDzXGrd6PHTt2hMpuaWnRiBEjlJeXp/Hjx6u5uVlnz57V4cOHQwmAjvsxG/kNDQ0aNmyYMjMzQ9uPGjUqYgKgO8ewu6hHEof3GoijnTuloiJp4kTp0CGno3FcNA3gSI3JJUuW6MUXXwxtX1xcrM2bN3fat1VyQLrSqO9KcXGxJLUrK5zCwkJVVVWpbZPS5XKFyo4maREp9rbPj7XhHO79trMxTh2SWLzfQIw2bJC++11pwQKposLRUPx+v3JyctrVQx6PR4FAoF0d4vF4VFdX1+32lFU5kXSnPDteS7h9dNy+q+3s2k8ihTtGbrdbR44cadf+tzPmHtchBmzX2NhoSDIaGxudDgWITUuLYUjBn4YGp6NJG5s2bTLcbrchyXC73camTZssl0VSXFxsSEqKn65icblchsvlCru+sLDQ8v2INY6O+ykuLo5YbrgYo3n/Yz1eXaEeSRzeayCODh4MXlNcfbXTkTiuvr4+VE+YPx6Px6ivrw+73qxT6uvrjb1791rWV3v37g373LblRFv/JfLH4/EYe/fujRi71XPM96w777dVedHu0wp1SGI899xzxuTJk40JEybwfgOx+N//O1gPT53qdCTG66+/HvVnfWVlZULK6W55dryWcPvouH1X29m1n0SK9P61jcfumHtaZ9O9FMAVfftK5jdxDOOSEH6/v12PsEAgoGXLlnVatnz58rBjflVXV0fVSyxRuorFMIx238x3tGfPnk6v/b777os5jo77efHFFyOWGy7Grt5/q2MYaXsASBvmEC6nTgXvbEtjNTU1nXpatba2qvavt9VbrZeCdUptba3efPNNy/3+8Y9/DPvctuVEW/8lUmtrq3bv3h11L0HzObVRDEUQ7v22Ki/afcI5zFsCdJM5BnptreRwPZCfny93hzvcPR5P6M6jtsvyzLhtKieS7pRnx2sJt4+O23e1nV37SaRwx8jtdreLJ5lilphEFEBHjIOeUFYNvEAgEFPjLlyjurdIhnklIr3/XSVFACBtDR16ZTi4NL+u6E4DWLrSmLzpppss9ztr1qwukwVWjfpk4PF4NHv27LgkOsK931blOdkYB4C4Gj9ecrmkpibH62Gv16vy8nJ5PB5Jwc/eF154QRs3buy0rCdDiliVU1xcHPrb7XaH6sTulmfHawm3j47bd7WdXftJJDOWtvWxy+VSeXl5u3iSKWZJYggXG3FrGXqFGTOCt3m9+qrTkaQFq1uM3W53TLcXh7utu7f8eDyepIgh3Pvf1W353cEt4YnDew3E2ciRweuKAwecjsRxmzZtCtVpHo+n03BfbYcDk4LDibXdpuMQacXFxZb7drlcof2Y5bRd39VPcXFx1EPDtR0uzSzbHC7G4/EYxcXFoXLdbne7deZrixR72+dbvWfdeb+7Og6xoA5JLN5voBvGjAnWw1VVTkdiGEaw7VRZWdmurWS1zO5y2v5tV3l2vJZot+9qO7v2k0j19fVGRUWFUVFRETEeu2LuaR3CJKJx0NjYqCFDhqi+vp7JTZB6vvlN6f/+X+nZZ6V773U6mrTwi1/8QqtXrw5NZvX0009LUqdl90Y4Hvfff7+2bt2aqJAjWrRoUcRYzMnFwpkxY4b27dvX6f144IEHYoqj434WLlyobdu2xXwbezTvv9UxjLR9V5qamjRmzBidPn1agwcP7vZ+EF5ZWZnKysp0+fJl1dTUUGcD8TJzpnTwoPSb30hz5jgdjeM+/fRTffTRR8rNzdXo0aMt1+/du1dSsB7ruM3+/fv11ltv6Stf+YqmTZsWdt+SOpVjrs/MzNSBAwdUW1urvLw83Xbbbfr888877dcsKzc3V+fPn5ckjR07VgcOHNCxY8f093//95o2bVqnmDuW3VVcXcXe1XvWnfe7J/tsi/o6sWhnA91wxx3Sm29K5eXSwoVORwM4pqd1Ngn0OPD7/RozZozTYQAAUlx9fb1zt6ilCepsAEBPUV8nBnU2AKCnultnk0CPg0AgoM8++0wDBw60HG+woKDAcgIUq+XmNyTJ9C17uPid2mesz41m+662ibSe42vvPuNxfKPZzo5jnIzHV0qPY5zq/8OGYejMmTO69tprYxobFrGzqrO7c34k6/97V+LxeRDvchL1eWNXfRLNNqlyjRCNRJ1TdpaVbHVYNNt1dz3nlb3lUF8nViAQ0IQJE7R///6I4/p3dRxT9f8gFon8LHYiht78+R/LtpG24zxP/RhS8TyP5TmJPs97Wmf3ifkZ6JLb7Y74bYbH47E8sOGWS9KgQYOS5kMvUpxO7DPW50azfVfbRFrP8bV3n/E4vtFsZ+cxTqbjK6XHMe4N/8PcCp4YVnV2d84PU7L9v3clHp8H8S4nUZ83dtUn0WyTKtcI0UjUOWVnWclWh0WzXU/Xc17ZVw71deK43W717du3y/c82uOYav8HsUjkZ7ETMfTmz/9Yto1mO87z1I0hFc/zWJ7jxHnekzqbr8kdUFpaGtPyZBOPOHuyz1ifG832XW0TaT3H1959xuP4RrMdxzhx++R/GMmmO+dHqkrU67GznER93thVn0SzTW86rxL5WuwqK9nqsGi2S6dzSkrNzyrEhx2fuekgGd6DeMbQmz//Y9k2GY6zk5Lh9XOed/85qXaeM4RLkmtqatLgwYPV2Njo+DdrsB/Ht3fj+PZ+HGOYOBdgN84pxAPnFcD/AdID5znSQSLPc3qgJ7mMjAz9+Mc/VkZGhtOhIA44vr0bx7f34xjDxLkAu3FOIR44rwD+D5AeOM+RDhJ5ntMDHQAAAAAAAAAAC/RABwAAAAAAAADAAgn0XuDy5ctavXq1hg4dqiFDhqikpEQXLlxwOizYqKKiQrNnz1ZWVpbGjRvndDiwUUtLi5YuXarc3FxlZWUpPz9fTz31lNNhwWYrVqzQmDFjNGjQII0ePVpr1qzRxYsXnQ4LDqDOht24RoDduDYBgqizkQ64jkA6sOPahgR6L7B27VpVVlbqvffeU01NjQ4ePKjvf//7TocFG1199dV64IEH9OijjzodCmx2+fJlXXPNNfr973+vM2fOaPv27frpT3+q7du3Ox0abLRy5UodOnRITU1NOnDggN59912tXbvW6bDgAOps2I1rBNiNaxMgiDob6YDrCKQDO65tGAO9Fxg7dqyeeOIJ3X333ZKk3/3ud7rrrrt08uRJeTweh6ODnX71q1/pe9/7nurq6pwOBXF07733asiQIXrmmWecDgVx0NDQoLvvvlsjRozQyy+/7HQ4SDDqbMQL1wiIJ65NkI6os5FOuI5Auon12oYe6Am0bt06LViwQLm5uXK5XF3eHrN161ZNmzZN/fv3V3Z2thYtWqQjR4602+b06dOqr6/Xl7/85dCyqVOnqqmpiQ8+B8TjGCN5JOL4Xr58WVVVVbrxxhttjBzRiucxXr9+vQYOHKjs7Gy9/fbbWrVqVRxeAexCnQ27cY2AeODaBKDORnrgOgLpImmvbQwkjCRj6NChxq233mpcffXVRk5OTthtn332WUOSMWvWLOPf/u3fjMcee8wYNmyYce211xqffvppaLtPPvnEkGQcPXo0tOzixYuGJOOdd96J46uBlXgc47Z++ctfRtwn4ivex9cwDGP58uXG9OnTjZaWlji8AnQlEcf44MGDxsMPP2zU19fH4RXALtTZsBvXCIgHrk0A6mykB64jkC6S9dqGBHoCffjhh6Hfr7vuurAnwYkTJ4ysrCxj6tSpxqVLl0LLq6urDZfLZZSUlISWnTp1ypBkHDp0KLTs2LFjhiSjtrbW/heBiOJxjNuiUnNWvI/vP//zPxs33HCDcfz4cVvjRvTifYxN27dvN4qKimyJGfFBnQ27cY2AeODaBKDORnrgOgLpIlmvbRjCJYFyc3Oj2u7VV19Vc3OzVq1apT59+oSWT58+XTfffLMqKip08eJFSdKQIUM0ZswYHThwILTdO++8o4EDBzKDsgPicYyRPOJ5fNesWaPf//73+sMf/qDs7Gxb40b0EvU/3NraqsOHD/c4XsQPdTbsxjUC4oFrE4A6G+mB6wiki2S9tiGBnoT27t0rSSosLOy0rrCwUGfOnNGhQ4dCy+677z6tXbtWn332mY4fP66f/OQnWrJkCRObJLFYj3Fra6suXLigS5cuyTAMXbhwQS0tLQmLF7GJ9fiuWrVKr732ml5//XUNHz48YXGi+2I5xo2Njdq8ebNOnz4twzD03nvv6bHHHtPtt9+e0JgRH9TZsBvXCIgHrk0A6mykB64jkC4SfW1DAj0Jffrpp5Ikr9fbaZ25zO/3h5Y9/PDDuuWWW3TdddcpLy9PkydP1s9+9rPEBItuifUYb9myRf3799e3vvUtffLJJ+rfv78mTpyYmGARs1iO75EjR/Tss8+qtrZWubm5ysrKUlZWFsnVJBfLMXa5XHrppZeUm5urgQMH6s4779Qdd9wR9WzfSG7U2bAb1wiIB65NAOpspAeuI5AuEn1t06frTZBo586dkyRlZGR0WtevX79220hSnz599Mwzz5CMSSGxHuMlS5ZoyZIlCYkNPRfL8c3JyZFhGIkLDraI5RgPGjRIr732WuKCQ0JRZ8NuXCMgHrg2AaizkR64jkC6SPS1DT3Qk1BmZqYkWd42c/78+XbbIDVxjHs3jm/vxzGGiXMBduOcQjxwXgH8HyA9cJ4jXST6XCeBnoRGjx4tqf1tNaZItyggdXCMezeOb+/HMYaJcwF245xCPHBeAfwfID1wniNdJPpcJ4GehAoKCiRJe/bs6bRuz549ysrK0qRJkxIdFmzEMe7dOL69H8cYJs4F2I1zCvHAeQXwf4D0wHmOdJHoc50EehK68847lZmZqWeeeUaXL18OLd+3b5927dqlu+66S3379nUwQvQUx7h34/j2fhxjmDgXYDfOKcQD5xXA/wHSA+c50kWiz3WXwQwxCbNlyxYdOXJEkvTss8/q4sWL+pd/+RdJ0pAhQ7Ry5crQtk8//bTWrFmjWbNmafHixTpx4oQ2bNigq666Svv27QvdqoDkwjHu3Ti+vR/HGCbOBdiNcwrxwHkF8H+A9MB5jnSRtOe6gYS55ZZbDEmWPzk5OZ22f+mll4y//du/Nfr162cMHTrUWLhwofHRRx8lPnBEjWPcu3F8ez+OMUycC7Ab5xTigfMK4P8A6YHzHOkiWc91eqADAAAAAAAAAGCBMdABAAAAAAAAALBAAh0AAAAAAAAAAAsk0AEAAAAAAAAAsEACHQAAAAAAAAAACyTQAQAAAAAAAACwQAIdAAAAAAAAAAALJNABAAAAAAAAALBAAh0AAAAAAAAAAAsk0AEAAAAAAAAAsEACHQAAAAAAAAAACyTQASTE5s2b5XK59MYbbzgdCgAAiIA6GwCA1ECdDSQGCXQAAAAAAAAAACyQQAcAAAAAAAAAwAIJdAAAAAAAAAAALJBAB+Co9evXy+VyqbS0VIFAwOlwAABAGNTZAACkBupswF4k0AE4IhAIaOXKlXrooYf0+OOPq6ysTG43H0kAACQb6mwAAFIDdTYQH32cDgBA+rlw4YK+9a1vaceOHdq8ebOKi4udDgkAAFigzgYAIDVQZwPxQwIdQEKdPHlSt956q959913t2LFDt912m9MhAQAAC9TZAACkBupsIL5IoANIqCVLlqi5uVm7du3S7NmznQ4HAACEQZ0NAEBqoM4G4ouBkAAk1MKFC+V2u/Xoo4/q/PnzTocDAADCoM4GACA1UGcD8UUCHUBC3XPPPXr55ZdVWVmpr371qzp79qzTIQEAAAvU2QAApAbqbCC+SKADSLiFCxdq+/bt2r17t2677TadOXPG6ZAAAIAF6mwAAFIDdTYQPyTQATji61//un7961+rurpa8+bNU2Njo9MhAQAAC9TZAACkBupsID5IoANwzPz58/Vf//VfeueddzR37lydOnXK6ZAAAIAF6mwAAFIDdTZgP5dhGIbTQQAAAAAAAAAAkGzogQ4AAAAAAAAAgAUS6AAAAAAAAAAAWCCBDgAAAAAAAACABRLoAAAAAAAAAABYIIEOAAAAAAAAAIAFEugAAAAAAAAAAFgggQ4AAAAAAAAAgAUS6AAAAAAAAAAAWCCBDgAAAAAAAACABRLoAAAAAAAAAABYIIEOAAAAAAAAAIAFEugAAAAAAAAAAFgggQ4AAAAAAAAAgIX/DwLVb4dU2DlFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy.stats import poisson\n", + "from collections import Counter\n", + "\n", + "fig, ax = plt.subplots(1,3, figsize=(15,4))\n", + "\n", + "c = 0\n", + "for net in [\"Internet\", \"Collaboration\", \"Protein\"]:\n", + " G = load_sample_graph(net)\n", + " degrees = [G.degree(n) for n in G.nodes()]\n", + " degree_count = Counter(degrees)\n", + " k, pk = zip(*degree_count.items())\n", + " k = np.array(k)\n", + " pk = np.array(pk)/sum(pk)\n", + "\n", + "\n", + " ax[c].loglog(k, pk, 'k.', label='real')\n", + " ax[c].set_xlabel(\"k\")\n", + " ax[c].set_ylabel(\"pk\");\n", + " ymin, ymax = np.min(pk)*0.9, np.max(pk)*1.1\n", + "\n", + " # add poisson distribution to graph\n", + "\n", + " k = np.arange(0, max(degrees)+1)\n", + " pk_poisson = poisson.pmf(k, np.mean(degrees))\n", + " ax[c].loglog(k, pk_poisson, 'r', label='poisson')\n", + " # plt.ylim([1e-5, 1])\n", + " ax[c].legend(frameon=False);\n", + " ax[c].set_ylim([ymin, ymax])\n", + " ax[c].set_title(net)\n", + " c += 1\n", + "\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Clustering coefficient\n", + "\n", + "The local clustering coefficient of a random network is\n", + "\n", + "$$\n", + "C_i = p= \\frac{⟨k⟩}{N}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To analyze the dependence of the average path length $d(p)$ and the clustering coefficient $\\langle C(p) \\rangle$ on the rewiring parameter $p$ for a small-world network, you can use the Watts-Strogatz model. This model begins with a regular lattice and introduces randomness by rewiring each edge with probability $p$. Here's a step-by-step guide on how to perform this analysis:\n", + "\n", + "1. **Generate a regular lattice**: Create a regular ring lattice with $N$ nodes where each node is connected to its $k$ nearest neighbors.\n", + "\n", + "2. **Rewire edges**: For each edge in the lattice, rewire it with probability $p$. This involves replacing the existing edge with a new edge that connects the node to a randomly chosen node in the network.\n", + "\n", + "3. **Compute $d(p)$ and $\\langle C(p) \\rangle$**:\n", + " - $d(p)$ is the average shortest path length between all pairs of nodes in the network.\n", + " - $\\langle C(p) \\rangle$ is the average clustering coefficient of all nodes in the network.\n", + "\n", + "4. **Normalize by $d(0)$ and $\\langle C(0) \\rangle$**:\n", + " - $d(0)$ is the average path length of the regular lattice (when $p=0$).\n", + " - $\\langle C(0) \\rangle$ is the average clustering coefficient of the regular lattice (when $p=0$).\n", + "\n", + "5. **Plot the results**: Plot $d(p)/d(0)$ and $\\langle C(p) \\rangle / \\langle C(0) \\rangle$ as functions of $p$ on a log scale to observe the small-world phenomenon." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x44ds2rfvn27MBqN4qWXXjK3DRgwQFxxxRXm9U8++UQYDAZx7733ilatWpnblyxZIgCIzZs3m9tGjx4tbL82ctuoUaNUrwWAGD16tF2bwWAQW7ZssWq/9dZbRXBwsCgqKjK3de/eXYSEhIicnBxzW3V1tRgyZIjqudVYunSpACBatGghLly4YG6/cOGCaNGihYiJiRHFxcXm9uTkZAFAfPjhh1bnqaysFMnJySIqKsrqb11ZWSkGDhwoAIgff/zR7m8zePBgUV1dbW7fsWOHMBgMol+/flbnV/ZBZsOGDQKAeP31163aAQgA4vPPP7dqnzBhggAgPv74Y7vrz8rKMrfJ/2NLly41tx06dEgAsPp/kT9L7e/8zTffCABi3rx5Vu2ffvqpACD+9a9/2R1jS+/evQUAMXHiRKv2zMxMAUA8+OCDLs9B6jd0fRO/5pVXXkHjxo3RpEkTdOrUCQsWLMCgQYPw5Zdfmve5cOEC/vvf/+L2229HeHg4zpw5Y361bNkSbdu2xTfffGPev0+fPsjLy8PevXsBAN9++y06duyIESNG4NChQzh06JC53WQyoXv37pr6+uSTT+q6th49euDGG2+0auvTpw8qKyvNrt5Tp05h69atuOOOO9C+fXvzfgaDAU8//bSuzwOAhx9+GDExMeb1mJgY/OMf/0BBQQGysrKs9o2Li8Po0aOt2nbu3IkjR45gzJgxSExMNLcbjUY899xzAIDMzEy7z3366aethgw6d+6MW265Bd9++y0KCwvN7Q0aNAAAVFdXo6CgAGfOnMF1112HmJgYbN261e687du3twvwevbZZwEAn3/+udO/hTfo168fWrdujSVLlli1L1myBDExMbjrrrs0n0vut8zgwYPRvn17RpsTjlET/2bcuHFYv349vvrqK7z55puIi4vDqVOnEBERYd7nzz//RHV1NZYtW4bGjRvbvfbt24dTp06Z9+/Tpw8ASYjlZZ8+fdCrVy8EBweb27OyspCWluYyUlimXbt2uq6tdevWdm2ya/fs2bMAYH5oUIq0zFVXXaXr8wDJlWtLhw4dAMBuzL9169Z2ruODBw8CAK655hq788hj2PI+Wj63urrafI2AdC/S09PRoEEDNGzY0HwPCwoKcP78eU3nveKKK9CwYUO76/EFBoMB48ePx65du7Bz504A0pDJxo0bce+991r9nzqjYcOGaNq0qV371VdfjTNnzqCgoMCr/SZ1C45RE7+mbdu26NevHwBpnPOmm25Cz5498fDDD5uDoMTlAKYRI0Zg7NixqudR/mCmpKSgUaNG2LhxI2677TYcOnQIffv2RVRUFLp06YKNGzeiZ8+eOHHiBCZOnKi5ryaTSde1OYtClq9JOAjOche14iPyZ9huU7seb/bH9nO3bduG/v37o23btnjttdfQqlUrREREwGAw4J577kF1dbXdORwVUxFC+KzQii0PPPAApkyZgsWLF2PBggVYunQpqqur8eCDD2o+h7PrcLadBAYUalKnuPHGG3HffffhX//6FyZMmIAbb7wRbdu2hcFgQFlZmVnUnREUFIRevXph06ZNWL9+PYKDg9G7d28AQN++fbF48WL07NkTgMX6ri1kqzsnJ8dum1qbK/bs2YM777zTqk0eAlCz8G1p06YNAOCPP/6w2/b7779b7WP7GbZufjmAr2XLlgCAlStXoqqqCl999RVatWpl3u/ixYuq1rR8Pbbk5eWhoKBA0/V4g4SEBNx5551YsWIF3nzzTSxbtgwpKSm44YYbNJ/j/PnzOHnypJ1VnZOTg/j4eERHR3u726QOQdc3qXO8+OKLMBqNePHFFwFI7uJbb70Va9euxY8//mi3vxAC+fn5Vm19+vTB+fPnMWfOHHTt2hVRUVHm9lOnTmHBggVo2LAhUlJSfH9BTkhISEC3bt3w//7f/8O+ffvM7UIIvPnmm7rP995771m5UQsKCvD++++jYcOGuPnmm10en5KSguTkZHz00UfIzc01t1dXV2PmzJkApLFVW9544w0ra3znzp3YsGED+vTpYxYh2cNga7XPmDFD1ZoGgH379tmN4b7++usO++EukZGRDh8WAOChhx5CQUEB/vGPf+DIkSO6rGmZ1157zWr9888/x759+1hkhdCiJnWPtm3b4p577sEnn3yC77//HmlpaXjvvfdw00034eabb8b999+PlJQUVFdX4+DBg1i7di1GjRplVb9ZtpT37NmDF154wdyempqK8PBw7NmzB4MGDfI4vccbzJo1C3379kXPnj3x6KOPonHjxvjyyy/NwqHHLRofH4/u3btj7NixEEJg6dKlOHr0KBYvXmwO5HKG0WjEggULkJGRga5du+Lvf/87GjVqhMzMTHz33XcYP348UlNT7Y47cuQIBgwYgDvvvBN5eXmYP38+IiIiMGvWLPM+gwcPxuzZs3HrrbfioYceQmhoKNavX4/ffvsN8fHxqv3p2LEj7rvvPowfPx7t2rVDVlYWVq9ejd69e2PEiBGa/y6u6N69OzZs2IA333wTSUlJaNCgAe644w7z9ltuuQWtW7fGxx9/jIiICIwcOVLX+ePj45GZmYkTJ04gPT3dnJ6VkJCAadOmee06SB2lVmLNCXGBnDozc+ZM1e179uwRQUFBIj093dyWn58v/vnPf4p27dqJsLAwERMTI6699loxYcIE8ccff9idIyEhQQAQ3377rVV7nz59BAAxd+5cu2OcpWc5Ag7Ss9TSfdTSiIQQ4rvvvhM9e/YU4eHhIi4uTowZM8acSvTwww87/Gzb865fv15MmTJFJCUlidDQUHHNNdeITz75xG7/5ORk0bt3b4fn+/7770X//v1FdHS0CAsLE9dee6145513rFKwhLD8bU6fPi3uu+8+ERsbKyIiIsTNN98sduzYYXfezz//XKSkpAiTySTi4uLE8OHDxZEjR1T7I/8N169fL7p16ybCw8NFkyZNxGOPPSYKCwtVr9/d9KycnBzRp08fERkZKQCI5ORku77PmDHDaZqeI3r37i2Sk5PFgQMHxJ133imioqJEZGSkuPPOO8X+/ft1nYvUTwxCeDlahRBSI+zYsQNdu3bFzJkz7VJ7bFm2bBkeeOABZGVlIT09vWY6GGC89dZb+L//+z9s3rwZaWlpmo9LT0/H4cOHnVZfI4FN7fv1CCFOEULg0qVLdm3ymGb//v1ro1tEQWVlJd577z106NBBl0gTogWOURPi55SVlSE5ORn33XcfrrzySly4cAFr167Fli1bMHLkyFoPeAtkDh06hC1btmDt2rU4ePCgat10QjyFQk2InxMSEoLbbrsNa9euRV5eHqqqqsy5xk899VRtdy+g+e677/DAAw8gPj4eU6ZM8WoAGyEyHKMmhBBC/BiOURNCCCF+DIWaEEII8WMo1IQQQogfQ6EmhBBC/BgKNSGEEOLHUKgJIYQQP4ZCTQghhPgxFGpCCCHEj6FQE0IIIX7M/wexj9vQDqJ9+QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Parameters\n", + "N = 1000 # Number of nodes\n", + "k = 10 # Each node is connected to k nearest neighbors in ring topology\n", + "p_values = np.logspace(-4, 0, num=100) # Rewiring probabilities\n", + "\n", + "# Initialize lists to store results\n", + "average_path_lengths = []\n", + "clustering_coefficients = []\n", + "\n", + "# Generate the initial regular lattice\n", + "G0 = nx.watts_strogatz_graph(N, k, 0)\n", + "d0 = nx.average_shortest_path_length(G0)\n", + "C0 = nx.average_clustering(G0)\n", + "\n", + "for p in p_values:\n", + " G = nx.watts_strogatz_graph(N, k, p)\n", + " d = nx.average_shortest_path_length(G)\n", + " C = nx.average_clustering(G)\n", + " average_path_lengths.append(d / d0)\n", + " clustering_coefficients.append(C / C0)\n", + "\n", + "# Plotting\n", + "plt.figure(figsize=(5, 4))\n", + "\n", + "# Average path length plot\n", + "plt.plot(p_values, average_path_lengths, marker='o', linestyle='-', color='blue', label=r\"$d(p)/d(0)$\")\n", + "\n", + "# Clustering coefficient plot\n", + "plt.plot(p_values, clustering_coefficients, marker='o', linestyle='-', color='red', label=r\"$\\langle C(p) \\rangle / \\langle C(0) \\rangle$\")\n", + "plt.xscale('log')\n", + "plt.xlabel('Rewiring probability p')\n", + "plt.legend(frameon=False)\n", + "plt.tight_layout()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/chap_04.html b/examples/chap_04.html new file mode 100644 index 0000000..498a1fc --- /dev/null +++ b/examples/chap_04.html @@ -0,0 +1,588 @@ + + + + + + + + Chapter 4 — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Chapter 4

+
+

THE SCALE-FREE PROPERTY

+

Code by : Abolfazl Ziaeemehr - https://github.com/Ziaeemehr

+

Open In Colab

+
+
[1]:
+
+
+
# uncomment and run this line to install the package on colab
+# !pip install "git+https://github.com/Ziaeemehr/netsci.git" -q
+
+
+
+
+
[5]:
+
+
+
import numpy as np
+import matplotlib.pyplot as plt
+from netsci.utils import generate_power_law_dist, generate_power_law_dist_bounded
+
+
+
+
+
[6]:
+
+
+
LABELSIZE = 13
+plt.rc('axes', labelsize=LABELSIZE)
+plt.rc('axes', titlesize=LABELSIZE)
+plt.rc('figure', titlesize=LABELSIZE)
+plt.rc('legend', fontsize=LABELSIZE)
+plt.rc('xtick', labelsize=LABELSIZE)
+plt.rc('ytick', labelsize=LABELSIZE)
+# set legend font size
+plt.rc('legend', fontsize=10)
+
+
+
+

Comparing Poisson and Powe-law Distributions

+
+
[7]:
+
+
+
import numpy as np
+import matplotlib.pyplot as plt
+from scipy.stats import poisson
+
+# Parameters
+mean_poisson = 11
+alpha_power_law = 2.1
+x_values = np.arange(1, 1000)
+
+# Poisson Distribution
+poisson_pmf = poisson.pmf(x_values, mean_poisson)
+
+# Power Law Distribution
+power_law_pdf = x_values ** (-alpha_power_law)
+# Normalize power-law PDF to make it a valid probability distribution
+power_law_pdf /= np.sum(power_law_pdf)
+
+# Plotting
+
+fig, ax = plt.subplots(1,2, figsize=(12,4))
+
+ax[0].plot(x_values, poisson_pmf, label='Poisson Distribution (mean=11)')
+ax[0].plot(x_values, power_law_pdf, label='Power Law Distribution (α=-2.1)')
+ax[0].set_xlim([0,50])
+ax[0].set_ylim([0,0.15])
+ax[0].set_xlabel('x')
+ax[0].set_ylabel(r'$p_k$')
+fig.suptitle('Comparison of Poisson and Power Law Distributions')
+ax[0].legend(frameon=False)
+ax[1].loglog(x_values, poisson_pmf, label="poisson")
+ax[1].loglog(x_values, power_law_pdf, label="powerlaw")
+ax[1].set_ylim([1e-6, 1])
+ax[1].set_xlabel('x')
+ax[1].set_ylabel(r'$p_k$')
+ax[1].legend(frameon=False);
+
+
+
+
+
+
+
+../_images/examples_chap_04_6_0.png +
+
+
+
+

load sample graphs of the book

+
+
[10]:
+
+
+
from netsci.utils import list_sample_graphs, load_sample_graph
+from netsci.analysis import graph_info
+
+nets = list(list_sample_graphs().keys())
+print(nets)
+
+
+
+
+
+
+
+
+['Actor', 'Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW']
+
+
+
+
[11]:
+
+
+
from collections import Counter
+from scipy.stats import poisson
+G_collab = load_sample_graph("Collaboration")
+graph_info(G_collab, quick=True)
+in_degrees = list(dict(G_collab.in_degree()).values())
+out_degrees = list(dict(G_collab.out_degree()).values())
+in_degree_count = Counter(in_degrees)
+out_degree_count = Counter(out_degrees)
+
+k_in, pk_in = zip(*in_degree_count.items())
+k_out, pk_out = zip(*out_degree_count.items())
+
+plt.figure(figsize=(6,4))
+plt.loglog(k_in, pk_in, 'r.', label=r"$k_{in}$")
+plt.loglog(k_out, pk_out, 'b.', label=r"$k_{out}$")
+plt.legend(frameon=1)
+plt.xlabel(r"$k_{in}, k_{out}$")
+plt.ylabel("pk");
+
+
+
+
+
+
+
+
+Graph information
+Directed                                :                 True
+Number of nodes                         :                23133
+Number of edges                         :                93439
+Average degree                          :               8.0784
+Connectivity                            :         disconnected
+
+
+
+
+
+
+../_images/examples_chap_04_9_1.png +
+
+
+
[12]:
+
+
+
# find the exponent by fitting a power law by powerlaw package
+import powerlaw
+
+for x in [k_in, k_out]:
+    fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting
+    print(f" α = {fit.power_law.alpha:6.3f}, σ = ± {fit.power_law.sigma:6.3f}") # the exponent
+
+
+
+
+
+
+
+
+Calculating best minimal value for power law fit
+ α =  3.042, σ = ±  0.327
+Calculating best minimal value for power law fit
+ α =  5.496, σ = ±  0.937
+
+
+
+
+
+
+
+Values less than or equal to 0 in data. Throwing out 0 or negative values
+Values less than or equal to 0 in data. Throwing out 0 or negative values
+
+
+
+
+

Generate the powerlaw distribution (bounded)

+
+
[7]:
+
+
+
generate_power_law_dist?
+
+
+
+
+
+
+
+
+Signature: generate_power_law_dist(N: int, a: float, xmin: float)
+Docstring:
+generate power law random numbers p(k) ~ x^(-a) for a>1
+
+Parameters
+-----------
+N:
+    is the number of random numbers
+a:
+    is the exponent
+xmin:
+    is the minimum value of distribution
+
+Returns
+-----------
+value: np.array
+    powerlaw distribution
+File:      ~/git/workshops/netsci/netsci/utils.py
+Type:      function
+
+
+
+
[8]:
+
+
+
generate_power_law_dist_bounded?
+
+
+
+
+
+
+
+
+Signature:
+generate_power_law_dist_bounded(
+    N: int,
+    a: float,
+    xmin: float,
+    xmax: float,
+    seed: int = -1,
+)
+Docstring:
+Generate a power law distribution of floats p(k) ~ x^(-a) for a>1
+which is bounded by xmin and xmax
+
+parameters :
+    N: int
+        number of samples in powerlaw distribution (pwd).
+    a:
+        exponent of the pwd.
+    xmin:
+        min value in pwd.
+    xmax:
+        max value in pwd.
+File:      ~/git/workshops/netsci/netsci/utils.py
+Type:      function
+
+
+

plotting the powerlaw distributions

+
+
[9]:
+
+
+
def plot_distribution(vrs, N, a, xmin, ax, labelsize=10):
+
+    # plotting the PDF estimated from variates
+    bin_min, bin_max = np.min(vrs), np.max(vrs)
+    bins = 10**(np.linspace(np.log10(bin_min), np.log10(bin_max), 100))
+    counts, edges = np.histogram(vrs, bins, density=True)
+    centers = (edges[1:] + edges[:-1])/2.
+
+    # plotting the expected PDF
+    xs = np.linspace(bin_min, bin_max, N)
+    expected_pdf = [(a-1) * xmin**(a-1) * x**(-a) for x in xs] # according to eq. 4.12 network science barabasi 2016
+    ax.loglog(xs, expected_pdf, color='red', ls='--', label=r"$x^{-\gamma}$,"+ r"${\gamma}$="+f"{-a:.2f}")
+    ax.loglog(centers, counts, 'k.', label='data')
+    ax.legend(fontsize=labelsize)
+    ax.set_xlabel("values")
+    ax.set_ylabel("PDF")
+
+
+
+
+
[10]:
+
+
+
np.random.seed(2)
+
+N = 10000
+a = 3.0
+xmin = 1
+xmax = 100
+
+fig, ax = plt.subplots(1, figsize=(5,3))
+x = generate_power_law_dist_bounded(N, a, xmin, xmax)
+print (np.min(x), np.max(x))
+plot_distribution(x, N, a, xmin, ax)
+
+
+
+
+
+
+
+
+1.000035809608483 74.39513593875918
+
+
+
+
+
+
+../_images/examples_chap_04_16_1.png +
+
+
+
[11]:
+
+
+
# find the exponent by fitting a power law by powerlaw package
+
+import powerlaw
+fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting
+print(f"{fit.power_law.alpha=}") # the exponent
+print(f"{fit.power_law.sigma=}") # standard error
+
+
+
+
+
+
+
+
+Calculating best minimal value for power law fit
+fit.power_law.alpha=2.995340848455978
+fit.power_law.sigma=0.02600579145725683
+
+
+

Generate descereted power law distribution

+
+
[12]:
+
+
+
from netsci.utils import generate_power_law_discrete
+# Example usage
+gamma = 2.5  # Power-law exponent
+k_min = 1    # Minimum value of k
+k_max = 1000 # Maximum value of k
+size = 100000 # Number of samples
+
+samples = generate_power_law_discrete(size, gamma, k_min, k_max, seed=1)
+fig, ax = plt.subplots(1, figsize=(6,4))
+plot_distribution(samples, size, gamma, k_min, ax)
+
+
+
+
+
+
+
+../_images/examples_chap_04_19_0.png +
+
+
+
[ ]:
+
+
+

+
+
+
+
+
[ ]:
+
+
+

+
+
+
+
+
[ ]:
+
+
+

+
+
+
+
+

Powerlaw package

+
    +
  • Alstott, J., Bullmore, E. and Plenz, D., 2014. powerlaw: a Python package for analysis of heavy-tailed distributions. PloS one, 9(1), p.e85777.

    +
      +
    • probability density function (PDF),

    • +
    • cumulative distribution function (CDF)

    • +
    • complementary cumulative distribution (CCDF)

    • +
    +
  • +
+
+
[13]:
+
+
+
import powerlaw
+fig, ax = plt.subplots(1, figsize=(6,4))
+fit = powerlaw.Fit(x) # xmax=50
+print(f"{fit.power_law.alpha=}")
+print(f"{fit.power_law.sigma=}")
+print("-"*70)
+print(fit.distribution_compare("power_law", "exponential"))
+
+powerlaw.plot_pdf(x, linear_bins=0, color='k', marker='o', lw=1, ax=ax);
+
+
+
+
+
+
+
+
+Calculating best minimal value for power law fit
+fit.power_law.alpha=2.995340848455978
+fit.power_law.sigma=0.02600579145725683
+----------------------------------------------------------------------
+(894.9727455051284, 5.263968413468816e-22)
+
+
+
+
+
+
+../_images/examples_chap_04_24_1.png +
+
+
+
[14]:
+
+
+
fig, ax = plt.subplots(1, figsize=(6,4))
+fit.plot_pdf(c='b', lw=2, marker="*", label='pdf', ax=ax)
+fit.power_law.plot_pdf(c='b', ax=ax, ls='--', label='fit pdf')
+fit.plot_ccdf(c='r', ax=ax, ls="-", label='ccdf')
+fit.power_law.plot_ccdf(c='r', ax=ax, ls='--', label='fit ccdf')
+ax.legend(frameon=False);
+
+
+
+
+
+
+
+../_images/examples_chap_04_25_0.png +
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/examples/chap_04.ipynb b/examples/chap_04.ipynb new file mode 100644 index 0000000..b7f5012 --- /dev/null +++ b/examples/chap_04.ipynb @@ -0,0 +1,561 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Chapter 4](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/chap_04.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **THE SCALE-FREE PROPERTY**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# uncomment and run this line to install the package on colab\n", + "# !pip install \"git+https://github.com/Ziaeemehr/netsci.git\" -q" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from netsci.utils import generate_power_law_dist, generate_power_law_dist_bounded" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "LABELSIZE = 13\n", + "plt.rc('axes', labelsize=LABELSIZE)\n", + "plt.rc('axes', titlesize=LABELSIZE)\n", + "plt.rc('figure', titlesize=LABELSIZE)\n", + "plt.rc('legend', fontsize=LABELSIZE)\n", + "plt.rc('xtick', labelsize=LABELSIZE)\n", + "plt.rc('ytick', labelsize=LABELSIZE)\n", + "# set legend font size \n", + "plt.rc('legend', fontsize=10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Comparing Poisson and Powe-law Distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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27aNzp074+rqyujRo3F2dub3339n5MiRnD17Nt3uAe3bt8fHx4fJkydz7do1Zs+eTefOnenWrRsLFy5k0KBBWFlZMXv2bHr06MGlS5coV66c3jb+/PNPZs2axbBhw/Dw8GDLli18/fXXhIaGsmLFCl25oKAg/v33X7p06YK3tzfx8fFs2LCBd999l8jISMaPH58mvj59+mBra8tHH32ESqXC09Mz3fd+6dIl2rRpg4eHh+5C9/79+xw6dIj//vuPpk2bAhAeHk79+vV5+PAh77//PpUrV+bQoUPMnDmTPXv2cOjQIaytrfW2PX78eJ4+fcr777+PhYUFP/30EwMHDqRChQo0adIk0+8kJSWFDh06sG/fPrp27cro0aMJCwtj3rx57Nixg0OHDlGlShWaNWvGypUr+fDDD3F1deXzzz8HoEaNGpluPyNXrlwB0DX5z8lv43ndu3dn3759vPfeewQEBJCQkMDly5cJCgrSxbpq1Sr69+9P06ZNmTRpEjY2NoSHh7Njxw4iIiJ0311Of6fu7u5MmDCByMhIfvjhBzp27EhoaCj29vaZxn7mzBk2bdrEG2+8QdmyZUlKSmL79u18+umnXL9+nZ9//jnNOln9zseMGcOsWbNo1KgRI0aMIDo6mqlTp1KqVKlMY8qKF7/DrP52S5cujZ+fH7t379YlcykpKezfvx8TExN2797Np59+CmhaGB06dIiePXvq9nvz5k0aNWpEUlIS77zzDuXLl+fatWvMnz+fvXv3cvz4cRwdHfVizerfaXYkJSXx/fff0717d7p27YqNjQ1Hjx5l8eLF/Pvvv5w4cULX7adly5YsX76cJ0+eYGNjA8CePXswMTFh//79JCUl6cru2bMHHx+fNMex7LK0tKR///5MnjyZv//+O9Nj9cv+fqpUqcLKlSvp168fTZs25d133wU0Nxmet2nTJubMmcMHH3zA+++/j4ODw0vj7N+/P6ampnzyySfExcXx888/06FDB7Zt20bbtm2z/b4///xzXFxc+OOPP5g5c6bu99m4ceMM18mv425wcDCdOnWievXqfPrppzg5OXHnzh327t3L5cuXqVq1arbfnxCiiFCEEKIQcXFxUezt7bNcPiUlRfHx8VHs7e2V8PBwveXt27dXAOXAgQO65QMGDFAAZcSIEXrb+eijjxRA8fb2VuLi4nTLT58+rQDKJ598olt248YNBVBMTEyUEydO6Jar1WqlS5cuCqD8+++/uuWPHz9OE3dqaqrSvHlzxcHBQUlKStItnzBhggIoLVq0UFJSUtKs5+PjozRv3lz3/Mcff1QA5ejRo5l+Tn369FEAZdOmTXrLp0yZogDKN998o1u2dOlSBVBq1qypJCYm6pbfunVLsbCwUN56661M96UoirJw4UIFUEaPHq23/N9//1UApU2bNpm+r5fx8fFRKlSooDx48EB58OCBcv36dWXJkiWKo6OjYmpqqpw+fTrbvw3tZ3/jxg1FURQlOjpaAZShQ4dmGkvXrl0VBwcHJTk5OcMyOf2dfvDBB3rbWb9+vQIoP/3000s/oydPnihqtTrN8r59+yomJiZKRESEbll2vvOLFy8qKpVKeeWVV/R+u6GhoYqNjY0CKHv37n1pfNr3eP78eeXBgwfK7du3le3btyv+/v4KoMybN09RlOz9dt977z3F3NxciY+PVxRFUQ4cOKAASr9+/RRra2vl6dOniqIoyu7duxVAWbFihW7d119/XXF1ddX7fhRFUY4dO6aYmpoqEyZM0C172d9perTHjffeey/Tcmq1Wnny5Ema5YsWLVIA5ddff9UtW7t2rQIoO3bsUBRFUZKSkhRbW1ulX79+CqAEBwcriqL5LVhaWiqDBg16aZza93bo0KEMy/z+++8KoIwZMybNetn9+1EURQGUAQMGpFmu/czMzc2VixcvZhirdp/PL6tfv77ebzk8PFyxtbVV/Pz8dH8X2u0//91mZdvPL8vstfw67n744YcKoNy/fz9NHEKI4k2a/QshCpXY2Ngs1eponTx5krCwMAYOHEiZMmV0y01NTfnss88A2LhxY5r1Ro4cqfdcW6PSv39/vVqnGjVq4ODgwNWrV9Nso02bNtSuXVv3XKVS6fqZP99VQFsjB5oax6ioKB4+fEjbtm2JjY3l4sWLabY9atQoTE1NM3/zoJsSb9OmTTx9+jTdMmq1mi1btlC9enU6d+6s99qYMWOws7NL9zMaOnSo3sCCpUuXpmLFirqa2cz88ccfqFQqvvjiC73lTZo0oWXLluzevZvY2NiXbiczV69exc3NDTc3N8qVK8egQYN0tek1atTI8W9Dy9raGisrKw4fPpzp9F1OTk48fvyYrVu3pmm+r5XTWD788EO95y1btgTI0ndgbW2ta1KdlJTEw4cPiYyMpF27dqjVao4fP55mnax851u2bEFRFD766CO9Ad98fHzo06fPS+N6UdWqVXFzc6N06dJ06NCB27dvM3nyZIYOHZrt327Lli1JTk5m3759gKa228nJibFjx5KQkKCbRWDPnj268gDR0dH89ddfvPbaa1hZWREZGal7+Pr6UqFChXTHGcnq32l2qFQqXW1wamoq0dHRREZG6mJ9vtuHdtnu3bt1rz1+/JjRo0fj5uamW37gwAESExN15XNLe4zO7G84q38/WfHqq69SqVKlbK3z4Ycf6v2Wy5QpQ58+fbhy5UqBNI3Pz+Ou9ri/YcMGUlJS8ucNCCEKJUn+hRCFioODA3FxcVkur+2/ml4zx+rVq+uVeV7ZsmX1njs7OwOkOzq0s7Nzmr62AFWqVEmzzN/fH9DvrxwfH8/YsWPx9vbG2toaV1dX3NzcdM3GHz16lGY7fn5+aZal56233qJdu3ZMnToVZ2dnWrRowbRp07hx44auzIMHD4iLi0v3M7K2tqZ8+fLpfkbpNQ8uUaJEup/Fi65fv07JkiUpUaJEmteqV6+OWq3OdULg5eXFzp072blzJ8HBwVy+fJnr16/rLrRz+tvQsrCw4Mcff+T8+fOULVsWf39/hg8fnqbf8Oeff07ZsmXp2rUrbm5udO3alV9++UUvMcppLC9+B9rPMyvfQUpKClOmTKFixYpYWVlRokQJ3Nzc6NevH5D+7y4r37n2t53Z7z871q9fz86dO9mzZw+nT5/m/v37fPnll0D2f7stW7bU9ZsGTZIfGBhIjRo1KFmypN7ySpUqUbp0aQAuX76MWq1m2bJluhtKzz8uXbrEvXv30sSQ1b/T7Fq/fj0NGjTA2toaZ2dn3Q0u0P/e3N3dqVq1qt77cnFxoWbNmrRo0UJvufbzyQva33ZmN2qz+veTFTn5nLN6fM4v+XncHT58OHXq1GHYsGG4uLjQoUMHfvzxx3R/o0KI4kWSfyFEoVK9enViY2OzfHGWUU3ry2RUW5fR8vT2k9l0Ts+/1qtXL11f7dWrV7N9+3Z27typq9VVq9Vp1n++tUBmLCws+Pvvvzl27BhffPEFFhYWTJo0iSpVqrB27doMY3/Ze4PsfRbZKZPT7+xFNjY2tG7dmtatW9OsWTP8/Pz0Pve82M+7775LaGgoixYtol69evzxxx+0bduWrl276r638uXLc/78ef7++2/efvttbt++zXvvvUelSpUICQnJVSy5+Q4+/PBDvvzyS2rXrs3SpUvZtm0bO3fu5LvvvgPS/93l1e8/O5o2bUrr1q1p0aIFNWrU0Kv1zO5v19XVlWrVqrF7925dv/5WrVoB0KJFC3bv3k18fDzHjh3TS4S12+nVq5fuhtKLj+fH8dDK6t9pdvz++++6sQh+/PFH/vzzT3bu3Mnff/8NpP3eWrZsycmTJ3n06BF79uyhRYsWmJiY0LJlS44cOUJ8fDx79uyhSpUqeTImAcCpU6cAqFy5cqblsvL3kxU5+ZzT+31qv2fta5n9hnNbo56fx10XFxeOHj1KcHAwo0aN4smTJ3z00UdUrFiRoKCgHMcshCj8ZMA/IUSh0q1bN4KDg1m4cGGa0bnTU758eYB0m3GeO3dOr0xe0yZ26S3T1t5omxP369cvzdzeu3btyrNY6tatS926dfn888+5c+cOderU4dNPP6VXr164u7tjb2+f7mf09OlTrl+//tKL+OwqX74827dvJyoqKk3t//nz5zExMcnzObjTi0G7vxdl57fh4eHBO++8wzvvvINarWbIkCEsWbKE4OBgWrRoAWhuwrRr1043Un1QUBAtWrTgu+++Y/ny5Qb5na5atYpmzZqxbt06veXpdWHJDm2cISEhVKxYUe+19P4mciMnv92WLVsye/ZstmzZwtOnT3XJf6tWrfjggw/YunUrKSkpesl/hQoVUKlUJCYm0rp16zx9D9m1atUqrKys2Lt3r17Sm173INC83zlz5rB9+3YOHz7MzJkzAc37TU5O5q+//uL48eO8//77eRJfYmIiK1aswMzMTPd7z0xW/n7yQ0hISJqBQy9cuAD8//HZxcUF0MxK8KL0auWzc8Mrv4+7JiYmNGvWjGbNmgGa91anTh0mTJhAcHBwjrcrhCjcpOZfCFGovPPOO1SpUoUZM2Zk2B/77NmzzJgxA4DatWvj4+PD8uXLuX37tq6MWq1m2rRpAHTt2jVfYt25cycnT57UPVcUhenTp+vtU1uL82Itz507d1i0aFGuY4iMjEyzzNPTE09PT90FrYmJCZ06deLs2bNs3bpVr+ysWbOIj4/njTfeyHUsz+vatSuKoui+A61Dhw6xZ88eWrduna2xHXIit7+NJ0+e8OTJE71lJiYm1KxZE/j/hCG976BWrVqYmJjoyhjid2pqaprmd/f48WNdcphTnTp1QqVSMWPGDL1pLcPCwli9enWutv2inPx2W7ZsiaIoTJo0CU9PT13z75YtW5KSksLXX3+NSqXSSzxLlChBx44d2bx5MwcOHEgTh6IoPHjwIE/fW0ZMTU1RqVR6NeOKojBlypR0ywcGBmJiYsI333xDYmKi7mZHhQoV8Pb2ZvLkyaSmpuqW58bjx4/p06cPYWFhuikRM5LVvx/QjO6fXjeU3Jg5cyZJSUm657du3WLNmjVUrFhR1xTf3t4eDw8P9uzZo/e3cv36dTZt2pRmm9rxYLISa34ed9M75lSsWBF7e/t0b2QIIYoPqfkXQhQq1tbWbN26lVdffZU333yT1q1b07ZtW1xdXYmKiiI4OJht27YxZMgQQHOhPH/+fDp37ky9evV47733cHZ2ZuPGjQQHBzNkyJBMp2LKjYCAAFq2bMmwYcPw9PRk8+bN7Nq1i379+ukGELS3t6dt27asWrUKa2tr6tWrR1hYGD///DNly5bNUt/tzEyZMoV//vmH1157TTeOwfbt2zl58qRuLmyAadOmsWvXLt58803dlFOHDx9mxYoVBAQEMGrUqFzF8aKBAweycuVKZsyYQWhoKC1bttRN9efg4MCsWbPydH/pye1v4/LlyzRv3pyuXbtStWpVSpQowcWLF1mwYAGlSpXS1RC3bdsWR0dHmjVrhpeXFzExMaxYsQK1Wk3//v3zJJac6NatGz///DM9e/akdevW3Lt3jyVLlqQ7DkN2VKpUidGjRzNz5kyaN29Oz549iYmJYcGCBVSuXFnvhlheyO5vt3nz5piamhISEkLfvn11y8uVK4evry8hISHUrFkzzeewYMECXnnlFVq0aEG/fv2oXbs2arWa69evs3nzZvr375/ufPDZdfLkyQwT+S+++IJu3brx+++/07JlS/r3709ycjKbNm1Kk0hrOTk5UatWLU6cOEGZMmX0WmO0aNGC5cuXY2JiQmBgYLbi3LFjB1evXkWtVhMTE8OZM2fYuHEjDx8+ZODAgfzwww+Zrp/Vvx+ABg0asGvXLv73v//h5eWFra0tr7/+erbifVFKSgpNmzalV69exMXF8dNPP5GQkMCcOXP0avCHDx/OF198QYcOHejSpQsRERH89NNPVKtWjWPHjults0GDBoBmOr5evXphaWlJgwYN0owho5Vfx90hQ4Zw69Yt2rZti4+PD4mJiWzYsIH79+8zbty4HG1TCFFEFMykAkIIkbceP36szJo1S3nllVcUZ2dnxczMTHFzc1PatWunLF68WG8qJEVRlP379ytt27ZVHBwcFEtLS6VatWrKjz/+mGaqM+30Yi/au3evAihLly5N89qL09A9Pz3UmjVrlOrVqysWFhZKmTJllC+//FJv+jNFUZQHDx4o77zzjuLp6amL7ZdfftFN7fT8tGiZTSWVXix79+5VevToofj4+ChWVlaKk5OTUrduXWX+/PlppiALDQ1V+vfvr5QsWVIxNzdXvL29lQ8//FCJjo7WK5deXFrNmzdXfHx80o3tRY8fP1Y+++wzpXz58oq5ublSokQJpUePHulO2ZWTqf4qVaqUpbJZ/W28+NlHRkYqo0ePVgICAhQnJyfFyspKKVeunDJ06FDl5s2buvUWLlyotGnTRvHw8FAsLCyUkiVLKm3btlX+/vvvHMeS0e9UUTKeFu1Fjx8/VsaOHat4e3srlpaWSoUKFZRp06Ypu3btSvNbz+53rlarlenTpytly5ZVLCwsFD8/P+XHH3/MdDsv0r7HO3fuvLRsVn+7WvXr11cAZcmSJXrLBw0alGaKuuc9ePBAGTt2rOLn56dYWloqjo6OSrVq1ZSRI0cq58+f15V72d9perTHjcweWr/88otSpUoVxdLSUvHw8FCGDBmiREVFZfjdf/zxxwqg9O/fX2/5ihUrFECpXbt2luPUvjftw8zMTHFxcVFq166tDB06VDl8+HCm62X370dRNNNHtmzZUrGzs1MA3e8ts6n40tvn88vOnTunDB8+XClZsqRiaWmp1KtXT/nnn3/SbCM5OVkZN26c4uHhoVhaWiq1atVStmzZkuF3/M033yje3t6Kqamp3t9RRuXz47j7+++/K6+//rpSunRpxcLCQnF1dVVeeeUVZc2aNel+TkKI4kOlKHk0spIQQggAQkNDKVu2LBMmTMiTmkAhhBBCCCFyS/r8CyGEEEIIIYQQRZwk/0IIIYQQQgghRBEnyb8QQgghhBBCCFHESZ9/IYQQQgghhBCiiJOafyGEEEIIIYQQooiT5F8IIYQQQgghhCjiJPkXQgghhBBCCCGKOEn+hRBCCCGEEEKIIk6SfyGEEEIIIYQQooiT5F8IIYQQQgghhCjiJPkXQgghhBBCCCGKOEn+hRBCCCGEEEKIIk6SfyGEEEIIIYQQooiT5F8IIYQQQgghhCjiJPkXQgghhBBCCCGKOEn+hRBCCCGEEEKIIk6SfyGEEEIUGykpKYwaNQoXFxecnJx45513ePr0qaHDEkIIIfKdJP9CCCGEKDamTp3K3r17OXv2LFeuXCEkJISPP/7Y0GEJIYQQ+U6lKIpi6CCEEEIIIQqCt7c306dP56233gJgx44d9OjRg4cPH2Jqamrg6IQQQoj8IzX/QgghhDA606ZNo3v37pQrVw6VSoWvr2+m5deuXUudOnWwtrbG1dWVXr16ERYWplcmOjqa8PBwatasqVtWu3ZtYmNjCQ0Nzfs3IYQQQhgRSf6FEEIIYXQ+++wz9uzZQ/ny5XF2ds607Ny5c+nduzfW1tbMnDmT0aNHs3PnTho3bkxERISuXFxcHABOTk66Zdr/a18TQgghiiozQwcghBBCCPGia9euUa5cOQCqVatGfHx8uuWioqIYP348tWvXJigoCDMzzaVN+/btqV+/Pl999RWLFi0CwN7eHoCYmBg8PDwATWuA518TQgghiiqp+RdCCCGE0dEm/i+zefNm4uPjGTlypC7xB6hbty7NmjVj/fr1JCUlAZpafi8vL06dOqUr999//2Fvb//SbgVCCCFEYSfJvxBCCCEKraNHjwLQuHHjNK81btyYuLg4Ll68qFs2ePBgpk6dSkREBA8ePGDixIkMHDhQBvsTQghR5Emz/zykVquJiIjA3t4elUpl6HCEEEIUc4qiEBcXR6lSpTAxKZr3+2/fvg1AmTJl0rymXXbr1i1q1KgBaMYSiIyMpGrVqqjVarp168Z3332X4fYTExNJTEzUPVer1Tx8+JASJUrIuV4IIYRRyOr5XpL/PBQREYGXl5ehwxBCCCH0hIeHp5scFwVPnjwBwNLSMs1rVlZWemUAzMzMmD17NrNnz87S9qdNm8akSZPyIFIhhBAif73sfC/Jfx7SDhYUHh6Og4ND9jewcwIcXwwNh0GL8XkcnRBCiOImNjYWLy+vIj2YnY2NDaCpobe2ttZ7LSEhQa9MTowfP54xY8bonsfExODt7Z3zc70QQgiRx7J6vpfkPw9pm/85ODjk7ILAyQUsVWCeCnJBIYQQIo8U5ebppUuXBjRN+/38/PRey6xLQFZZWlpiaWnJvHnzmDdvHqmpqUAuzvVCCCFEPnnZ+b5odgAsrCxsNf8mPTZsHEIIIUQhUa9ePQAOHjyY5rWDBw9iZ2dH5cqVc72fYcOGERISwrFjx3K9LSGEEMIQJPk3JpbPmmkkxRk2DiGEEKKQ6Ny5MzY2NsyePZuUlBTd8uPHj7Nv3z569OiBhYWFASMUQgghjIM0+zcmUvMvhBBCALBy5UrCwsIAePDgAUlJSUyZMgUAJycnhg8fDoCrqytTp05l9OjRBAYG0q9fPyIjI5k5cyYlS5Zk8uTJeRLPi83+hRBCiMJGpSiKYuggiorY2FgcHR2JiYnJWT/AkM2wvj94N4JBf+d9gEIIIYqVXJ+XDCgwMJDg4OB0X/Px8SE0NFRv2erVq5kxYwYXLlzAxsaGNm3aMG3aNMqWLZuncRXmz1QIIUTRlNVzk9T8GxNdzX+8YeMQQgghDCwoKChb5fv06UOfPn3yJxghhBCiCJA+/8bE4lmf/0RJ/oUQQghjMm/ePPz9/XUDDOaJ/T/AkV/ybntCCCFEJqTm35hIn38hhBDCKA0bNoxhw4bpmlbm2q0TsHuS5v+Rl6D9d2Aql2VCCCHyj9T8GxNJ/oUQQojioXRtaD0JUMGxRbCmOyREGzoqIYQQRZgk/8ZEO9Vf8mNQqw0bixBCCCF08rzZv0oFr4yGnivB3Aau7YHFbeDh9bzZvhBCCPECSf6NibbmHzQ3AIQQQghhFIYNG0ZISAjHjh3L2w1XeV0zw499KYi8DAtbQeiBvN2HEEIUE8uWLcPJycnQYRgtSf6NiZkVqJ59JdL0XxQDQUFBqFQqoqOjDR1KrgUGBjJ69Og83+7EiROpWbOm7vnAgQPp0qVLnu8nvX3lpz179lC5cmXU0sopQ2PHjmXkyJGGDkMUBM8AGLIHStWChIewojP8t9rQUQkhRKHTs2dPLl++bOgwjJYk/8ZEpZIR/0WhMnDgQFQqFSqVCnNzc8qVK8fYsWN5/DhrN68aN27MnTt38mbwrHywbNky3fszNTXF2dmZBg0aMHnyZGJiYvTKbty4ka+//jpL283OjYKxY8eye/fu7Ib+UiqVik2bNhXIvtLz8ccf8/nnn2NiUvROQ0+fPmXgwIFUr14dMzOzdG/W3Llzh969e1OpUiVMTEzS/T18/PHHLF26lBs3buR/0MLwHDxh4Dbw7wzqZNg8FHZOkG6AQgiRDdbW1ri7uxs6DKNllFdda9eupU6dOlhbW+Pq6kqvXr0ICwvL0rrr16/n7bffpkaNGpiZmaFSqQgNDc3SumfOnMHc3ByVSsW6dety8Q5yQTfonyT/onBo3749d+7c4fr160yZMoX58+czduzYLK1rYWGBh4cHKpUqn6PMOQcHB+7cucOtW7c4ePAg7777LitWrKBmzZpEREToyrm4uGBvb59n+1UUhZSUFOzs7ChRokSebTczBbWvgwcPcuXKFbp3757v+zKE1NRUrK2tGTlyJK1bt063TGJiIm5ubnz++ecEBASkW8bd3Z22bdvy008/5We4IovyZaq/F1nYQLdl0Gyc5vmBWbC+n7QGFEIUG4GBgQwfPpzhw4fj5OREiRIl+OKLL1AUBYBHjx7Rv39/nJ2dsbGxoUOHDly5ckW3/ovN/k+fPk2LFi2wt7fHwcGBOnXqcPz4cQDCwsJ4/fXXcXZ2xtbWlqpVq7Jt2zbdusHBwdSvXx9LS0s8PT359NNPSUlJ0Yt15MiRfPzxx7i4uODh4cHEiRPz9wPKJaNL/ufOnUvv3r2xtrZm5syZjB49mp07d9K4cWO9C+2MzJ8/n3Xr1mFjY0OFChWyvF+1Ws2QIUOwsrLKTfi5JyP+CzSJ35OkFIM8tAfXrLK0tMTDwwMvLy969+5Nnz59dDXKiYmJjBw5End3d6ysrHjllVf0+su+2Ow/s4Pwo0eP6NOnD25ublhbW+Pn58fSpUt12zp79iwtW7bE2tqaEiVK8O677xIf//830bTN5b///ns8PT0pUaIEw4YNIzk5OdP3p1Kp8PDwwNPTkypVqvDOO+9w8OBB4uPj+fjjj3XlXqzNnz9/Pn5+flhZWVGyZEm6deumiyM4OJgff/xR16ogNDRU91ns2LGDunXrYmlpyf79+zNsij9p0iTc3d1xcHDgvffeIykpSfear68vs2bN0itfs2ZN3QnJ19cXgK5du6JSqXTPX9yXWq1m8uTJlClTBktLS2rWrMnff/+tez00NBSVSsXGjRtp0aIFNjY2BAQEcOjQoUw/03Xr1tG2bVu9461230uWLMHb2xs7Ozs++OADUlNTmT59Oh4eHri7u/PNN9/obSsmJoZ3331X91m0bNmS06dP616/du0anTt3pmTJktjZ2VGvXj127dqltw1fX1+mTp3KoEGDsLe3x9vbm19+yfnc67a2tixYsIAhQ4bg4eGRbhlfX19+/PFH+vfvn2nLl06dOrF27docxyLyTr71+X+RiQm0/AK6/gKmFnBxKyxpBzG383e/QogirTBdWy5fvhwzMzOOHDnC7NmzmTlzJosWLQI011HHjx9ny5YtHDp0CEVR6NixY4bXc3369KFMmTIcO3aMEydO8Omnn2Jubg5ojuuJiYns27ePs2fP8t1332FnZwfA7du36dixI/Xq1eP06dMsWLCAxYsXM2XKlDSx2tracuTIEaZPn87kyZPZuXNndr+eAmNUE8pGRUUxfvx4ateuTVBQEGZmmvDat29P/fr1+eqrr3RffEZWrFhBqVKlMDMzY/jw4Vy6dClL+547dy7nz5/n448/ZsKECbl+Lzkmyb8AEpJT8f9qh0H2HTK5HTYWOT80WFtb6w7AH3/8Mb///jvLly/Hx8eH6dOn065dO65evYqLi0uadYcNG0ZSUhL79u3D1taWkJAQ3UH4yy+/JCQkhO3bt+Pq6srVq1dJSEgA4MmTJ7Rv356GDRty7Ngx7t+/z+DBgxk+fDjLli3TbX/v3r14enqyd+9erl69Ss+ePalZsyZDhgzJ1nt0d3enT58+LFmyhNTUVExNTfVeP378OCNHjmTlypU0btyYhw8fsn//fgB+/PFHLl++TLVq1Zg8eTIAbm5uuhZKH3/8Md9//z3lypXDycmJ4ODgNPvfvXs3VlZW7N27l9DQUN5++21cXV3TJMYZOXbsGO7u7ixdupT27duniV/rxx9/ZMaMGfz888/UqlWLJUuW0KlTJ86fP4+fn5+u3Oeff87333+Pn58fn3/+Ob169eLq1au6Y/iL9u3bR69evdIsv3btGtu3b+fvv//m2rVrdOvWjRs3blCxYkWCg4M5ePAggwYNolWrVjRs2BBFUXj11VdxcXFh27ZtODo68vPPP9OqVSsuX76Mi4sL8fHxdOzYkSlTpmBlZcXy5ct5/fXXuXTpEt7e3rp9z5gxg6+//prPPvuM3377jQ8++IBmzZpRuXJlAKpWrZppCzQfHx/Onz+fpc8/O+rXr094eDhhYWH4+Pjk+faFEQvoCc6+sK433D0LC1tCrzVQuo6hIxNCFEKF6drSy8uLmTNnolKpqFSpEmfPnmXmzJkEBgayZcsWDhw4QOPGjQFYvXo1Xl5ebNq0Kd0WhTdv3mTcuHG68/nz1y83b97kzTffpHr16gCUK1dO99r8+fPx8vJi7ty5qFQqKleuTEREBJ988glfffWVrttijRo1dLmjn58fc+fOZffu3bRp0yabn1LBMKrkf/PmzcTHxzNy5Ei9i8a6devSrFkz1q9fz/z587GwsMhwG89fzGVVeHg4X3zxBRMmTMDNzS1HsecZ7XR/SXGGjUOIHDh69Chr1qyhVatWPH78mAULFrBs2TI6dOgAwMKFC9m5cyeLFy9m3LhxadbP7CB88+ZNatWqRd26dYH/r70GzYE/ISGBFStWYGuruYE2d+5cXn/9db777jtKliwJgLOzM3PnzsXU1JTKlSvz6quvsnv37mwn/wCVK1cmLi6OqKioNH3Lbt68ia2tLa+99hr29vb4+PhQq1YtABwdHbGwsMDGxibdWuHJkye/9IRhYWHBkiVLsLGxoWrVqkyePJlx48bx9ddfZ6kPvfY45+TklGHNNMD333/PJ598wltvvQXAd999x969e5k1axbz5s3TlRs7diyvvvoqoGmRULVqVa5evao70b4oNDSUUqVKpVmuVqtZsmQJ9vb2+Pv706JFCy5dusS2bdswMTGhUqVKfPfddwQFBdGwYUP27t3L2bNnuX//PpaWlrqYN23axG+//ca7775LQECAXrP6KVOm8Mcff7BlyxaGDx+uW96xY0eGDh0KwCeffMLMmTMJCgrSvYdt27Zl2kpEW4uQ10qXLg1oPjNJ/osh7waagQDX9IQHF2BpR+j6E1TtaujIhBAi3zRs2FCvS2ijRo2YMWMGISEhmJmZ0aBBA91rJUqUoFKlSly4cCHdbY0ZM4bBgwezcuVKWrduTffu3SlfvjwAI0eO5IMPPuCff/6hdevWvPnmm9SoUQOACxcu0KhRI704mjRpQnx8PLdu3dLlnNryWp6enty/fz9vPoh8YFTJ/9GjRwF0d3Ke17hxY4KDg7l48WKaDzm3hg0bhq+vLx9++CGrVq3K8nqJiYkkJibqnsfGxuY+GKn5F4C1uSkhk9sZbN/ZsXXrVuzs7EhJSSE5OZnOnTszZ84crl27RnJyMk2aNNGVNTc3p379+hkeoDM7CH/wwQe8+eabnDx5krZt29KlSxfdseLChQsEBAToEn/QHKDVajWXLl3SJf9Vq1bVq+X29PTk7Nmz2Xq/WtombOmNV9CmTRt8fHwoV64c7du3p3379nTt2hUbG5uXbld7cyMzAQEBettq1KgR8fHxhIeH51mCGBsbS0REhN73B5rP9flm9aB/4vP09ATg/v37GSb/CQkJ6Xax8vX11Rs3oWTJkpiamurd0ChZsqTupHrixAni4+PTjFOQkJDAtWvXAHj8+DGTJk1i69atREREkJKSQkJCAjdv3szwPWi7ejx/8jZU4m1tbQ1oWreIYsrZB975B34bBFd3woaBEHkVmo3VDBQshBBZUJiuLbNLUZQMx4+aOHEivXv35q+//mL79u1MmDCBdevW0bVrVwYPHky7du3466+/+Oeff5g2bRozZsxgxIgR6W4zvWu/F2/+q1Qqo57JyKj6/N++renPVqZMmTSvaZfdunUrT/e5YcMGtm7dyk8//ZRhE9WMTJs2DUdHR93Dy8sr9wFJ8i/QHDhsLMwM8sju4HstWrTg1KlTXLp0iadPn7Jx40bc3d0zTI4zO0APHjyY69ev069fP86ePUvdunWZM2cOAB06dCAsLIzRo0cTERFBq1atdAMLZrbN/DpAX7hwAQcHh3QHyLO3t+fkyZOsXbsWT09PvvrqKwICArI0peHzNzCyS/teTUxM0vSve9nYBi/bplZ6n/Xzn6v2tcw+V1dXVx49epRmeXrfT2bfmVqtxtPTk1OnTuk9Ll26pGtZMm7cOH7//Xe++eYb9u/fz6lTp6hevbreGAkZ7fv591C1alXs7OwyfFStWjXD95sbDx8+BDB8qzRRMAP+ZcTKAXqtg4aa1insnQIb34XkpwUfixCiUCpM15aHDx9O89zPzw9/f39SUlI4cuSI7rWoqCguX75MlSpVMtxexYoV+fDDD/nnn39444039MaM8vLy4v3332fjxo189NFHLFy4EAB/f38OHjyodz118OBB7O3tda3yCiOjSv61NRva5pvP09YS5WXtR3R0NKNGjeKdd95Jt7XBy4wfP56YmBjdIzw8PPdBWWj6N8tUf6KwsLW1pUKFCvj4+OglUBUqVMDCwoJ///1Xtyw5OZnjx49neoDO6CAMmgRo4MCBrFq1ilmzZukGZfP39+fUqVN6UwweOHAAExMTKlasmJdvF9DUaq9Zs4YuXbpk2MzezMyM1q1bM336dM6cOUNoaCh79uwBNM32U1NTc7z/06dP68Y7AM1J0c7OTneT1M3NjTt37uhej42NTTNdnLm5eaYxODg4UKpUKb3vDzQnvsy+v6yoVasWISEhudoGQO3atbl79y5mZmZUqFBB7+Hq6grA/v37GThwIF27dqV69ep4eHhkeQaY523bti3NTYbnH8+PDpyXzp07h7m5eb7dXBBZV2AD/mXE1AzaT4PXZoLKFM6uh+WvQ/wDw8QjhBD5JDw8nDFjxnDp0iXWrl3LnDlzGDVqFH5+fnTu3JkhQ4bw77//cvr0afr27Uvp0qXp3Llzmu0kJCQwfPhwgoKCCAsL48CBAxw7dkx3HTN69Gh27NjBjRs3OHnyJHv27NG9NnToUMLDwxkxYgQXL15k8+bNTJgwgTFjxhTqaYqNqtm/thlrYmKirqmjlvZCNyvNZrPq448/JiUlhe+++y5H61taWqZ7oyJXtMm/TPUnCjlbW1s++OADxo0bh4uLC97e3kyfPp0nT57wzjvvpLvO6NGj6dChAxUrVuTRo0d6B+GvvvqKOnXqULVqVRITE9m6davutT59+jBhwgQGDBjAxIkTefDgASNGjKBfv366Jv85pSgKd+/eRVEUoqOjOXToEFOnTsXR0ZFvv/023XW2bt3K9evXadasGc7Ozmzbtg21Wk2lSpUATfP2I0eOEBoaip2dXbqDH2YmKSmJd955hy+++IKwsDAmTJjA8OHDdSejli1bsmzZMt3MCV9++WWaQf18fX3ZvXs3TZo0wdLSEmdn5zT7GTduHBMmTKB8+fLUrFmTpUuXcurUKVavXp2teF/Url07li9fnqttALRu3ZpGjRrRpUsXvvvuOypVqkRERATbtm2jS5cu1K1blwoVKrBx40Zef/11VCoVX375ZY5ae2S32X9ISAhJSUk8fPiQuLg4Tp06BaA3m4J2WXx8PA8ePODUqVNYWFjg7++vK7N//36aNm2a5pwoirG6g8C5LGwYALeOagYC7P0rlPR/+bpCCFEI9O/fn4SEBOrXr4+pqSkjRozg3XffBWDp0qWMGjWK1157jaSkJJo1a8a2bdvSHXvH1NSUqKgo+vfvz71793B1deWNN95g0qRJgGZq3mHDhnHr1i0cHBxo3749M2fOBDRj7mzbto1x48YREBCAi4uL7tqrMDOq5F/bhOLWrVt6IzFC5l0CcuK///5j0aJFfP3118TGxur660dGRgLw4MEDQkND8fT0zPsEPzPS7F8UId9++y1qtZp+/foRFxdH3bp12bFjR7qJJmR+ELawsGD8+PGEhoZibW1N06ZNWbduHaC5Kbhjxw5GjRpFvXr1sLGx4c033+SHH37I9XuIjY3F09MTlUqFg4MDlSpVYsCAAYwaNQoHB4d013FycmLjxo1MnDiRp0+f4ufnx9q1a3W1t2PHjmXAgAH4+/uTkJCQplb+ZVq1aoWfnx/NmjUjMTGRt956S29e2fHjx3P9+nVee+01HB0d+frrr9PsY8aMGYwZM4aFCxdSunTpdGvDR44cSWxsLB999BH379/H39+fLVu2pDk+Z1ffvn355JNPuHTpku6GSE6oVCq2bdvG559/zqBBg3jw4AEeHh40a9ZMd9Nn5syZDBo0iMaNG+Pq6sonn3ySN+OzvETHjh31ZgfQDvj4fPNB7TLQjF+wZs0afHx89L6LtWvX6i5ShNAp3wIG74Y1PeDhdVjcFrotgYptDR2ZEELkmrm5ObNmzWLBggVpXnN2dmbFihUZrjtw4EAGDhwIaK4dM5suV9u1NCPNmzfXjUmXnqCgoDTLtNNdGyuVkt2JF/PR4sWLGTx4MMuWLWPAgAF6rwUGBnLixAmioqIyHe3/ecOHD2fevHncuHFDb2Rw0HwxXbu+fLTcQ4cO0bBhwyztLzY2FkdHR2JiYjJMCl7qwI+w8ysI6KUZ0VcIIYqgjz/+mJiYGH7++WdDh2K0/vrrL8aNG8eZM2eyPSaNVp6cl4Qeo/pMnzyE9f0hdD+oTKDtN9DwAxkIUAhRaAUGBlKzZk1mzZpl6FAKlayem4yqw0Lnzp2xsbFh9uzZpKSk6JYfP36cffv20aNHD13if+fOHS5evJjjMQAaNGjAH3/8keYxYsQIAD766CP++OOPXNVK5Yiu5l+a/Qshiq7PP/8cHx+fXI19UNQ9fvyYpUuX5jjxF8WAjQv03Qi1+oGihh3jYeuHkJqzAT6FEEIUbUZ1ReHq6srUqVMZPXo0gYGB9OvXj8jISGbOnEnJkiWZPHmyruz48eNZvnw5e/fuJTAwULd837597Nu3D9DcNADNfN9OTk4AjBgxAkdHRzw9PenSpUuaGLSjcdetWzfd1/Odrs+/NPsXQhRdjo6OfPbZZ4YOw6j16NHD0CGI58ybN4958+YZ3w0rMwvoNAfcKsE/X8KJpZquAD2Wg3X6XayEEMJYpdeUXuQdo0r+AUaNGoWrqyszZsxg9OjR2NjY0KZNG6ZNm5alaRX27NmTpn/kjBkzdP/v27cvjo6OeR53npE+/0IIIYTRGTZsGMOGDdM1rTQqKhU0HgEu5eH3wXAjGBa1ht7roUR5Q0cnhBDCSBhVn//CLk/6AV7bCyu7gHtVGHowT+MTQghRvBhV//Qiwug/07tnYc1bEHsLrJyg5yoo29TQUQkhhMhHhbLPv0Cm+hNCCCFEznlUhyF7oHQdeBqtqVA4kfupNYUQQhR+kvwbG2n2L4QQQojcsC8JA/+Cqm+AOgX+HAk7Pge1kY1XIIQQokBJ8m9sLKXmXwghhBC5ZG4N3ZZA8081zw/NhXV9IFGuL4QQoriS5N/YaJv9pzyF1JTMywohhBBCZESlghbj4c3FYGoJl7fDknYQHW7oyIQQQhiAJP/GRtvsHyBZmv4LIYQQIpeqd9N0A7B1h3vnYGFLuHXc0FEJIUShFRgYyOjRow0dRrZJ8m9sTC3A5NkMjNI0T4hib9myZTg5OeX5dkNDQ1GpVJw6dQrQzKurUqmIjo7O933lp6SkJCpUqMCBAwfyfV8F4ezZs5QpU4bHj+VmsMglr3qagQBLVoPH92FpRzj7m6GjEkIIUYAk+Tc2KtVzI/7LxZ4wbgMHDkSlUqFSqTA3N6dcuXKMHTvW6BOVgkxGM6L93FQqFba2tvj5+TFw4EBOnDihV65nz55cvnw5S9vMzo0CLy8v7ty5Q7Vq1bIbeqYGDhxIly5dCmRf6fnll1/w8fGhSZMm+b6v5wUFBdG5c2c8PT2xtbWlZs2arF69+qXrffPNNzRu3BgbG5t0v7vq1atTv359Zs6cmQ9Ri2LHyQsG/Q0V20NqIvz+DgR9CzLrsxBCZElycrKhQ8gVSf6NkUz3JwqR9u3bc+fOHa5fv86UKVOYP38+Y8eONXRYAKSmpqJWqw0dRoaWLl3KnTt3OH/+PPPmzSM+Pp4GDRqwYsUKXRlra2vc3d3zdL9JSUmYmpri4eGBmZlZnm47PQW5rzlz5jB48OB838+LDh48SI0aNfj99985c+YMgwYNon///vz555+ZrpeUlET37t354IMPMizz9ttvs2DBAlJTZaR2Q5o3bx7+/v7Uq1fP0KHkjqU9vLUGGg3XPA+aprkJkJxg2LiEEAJNc/rhw4czfPhwnJycKFGiBF988QXKs5uUjx49on///jg7O2NjY0OHDh24cuUKAIqi4Obmxu+//67bXs2aNfWuow4dOoS5uTnx8Zo8KyYmhnfffRd3d3ccHBxo2bIlp0+f1pWfOHEiNWvWZMmSJZQrVw5LS0tdLM9btWoVdevWxd7eHg8PD3r37s39+/d1r9epU4cZM2bonnfp0gUzMzNiY2MBuHv3LiqVikuXLuXFx5ghSf6NkUz3JxRF8/0b4pHNGiBLS0s8PDzw8vKid+/e9OnTh02bNgGQmJjIyJEjcXd3x8rKildeeYVjx47p1s3ugTApKYmPP/6Y0qVLY2trS4MGDQgKCtKtr6353rp1K/7+/lhaWhIWFpbtj//atWt07tyZkiVLYmdnR7169di1a5fu9Tlz5lC9enXd802bNqFSqZg3b55uWbt27Rg/fnym+3FycsLDwwNfX1/atm3Lb7/9Rp8+fRg+fDiPHj3Se09ap0+fpkWLFtjb2+Pg4ECdOnU4fvw4QUFBvP3228TExOhaFEycOBEAX19fpkyZwsCBA3F0dGTIkCEZtn44cOAAAQEBWFlZ0aBBA86ePat7TXsCfN6sWbPw9fXVvb58+XI2b96siyEoKCjdfQUHB1O/fn0sLS3x9PTk008/JSXl/wc5DQwMZOTIkXz88ce4uLjg4eGhez8ZOXnyJFevXuXVV1/VW3706FEaNGiAlZUVAQEBHD58mB9//JFOnTplur3s+Oyzz/j6669p3Lgx5cuXZ+TIkbRv354//vgj0/UmTZrEhx9+qPd7elG7du2IiooiODg4z+IV2Tds2DBCQkL0jmGFlokptPsGXp+t6Wp47ndY9hrE3TN0ZEKI/FKIri2XL1+OmZkZR44cYfbs2cycOZNFixYBmhaGx48fZ8uWLRw6dAhFUejYsSPJycmoVCqaNWumuzZ89OgRISEhJCcnExISAmha6tWpUwc7OzsUReHVV1/l7t27bNu2jRMnTlC7dm1atWrFw4cPdfFcvXqV9evX8/vvv2fYajQpKYmvv/6a06dPs2nTJm7cuMHAgQN1rwcGBuriUhSF/fv34+zszL///gvA3r178fDwoFKlStn6rLIr/6thRPbJdH8i+QlMLWWYfX8WoT/wZDZZW1vrmkR9/PHH/P777yxfvhwfHx+mT59Ou3btuHr1Ki4uLroD4UcffZTmQNixY8c0B8K3336b0NBQ1q1bR6lSpfjjjz9o3749Z8+exc/PD4AnT54wbdo0Fi1aRIkSJXJUax4fH0/Hjh2ZMmUKVlZWLF++nNdff51Lly7h7e1NYGAgo0aNIjIyEldXV4KDg3X/Dhs2jJSUFA4ePMiHH36Y7X1/+OGHrFixgp07d9KjR480r/fp04datWqxYMECTE1NOXXqFObm5jRu3JhZs2bx1Vdf6W6W2NnZ6db73//+x5dffskXX3yR6f7HjRvHjz/+iIeHB5999hmdOnXi8uXLmJubvzT2sWPHcuHCBWJjY1m6dCkALi4uRERE6JW7ffs2HTt2ZODAgaxYsYKLFy8yZMgQrKys9BL85cuXM2bMGI4cOcKhQ4cYOHAgTZo0oU2bNunuf9++fVSsWBEHBwfdsoiICNq0aUPfvn1ZuXIlc+bMoW/fvnh6ejJo0CBduQ4dOrB///5M35+2liCrYmJiqFKlSrbWSY+FhQUBAQHs37+fli1b5np7QujUGQAuZeHXfnD7uGYgwN6/gkf+d9ERQhSwQnRt6eXlxcyZM1GpVFSqVImzZ88yc+ZMAgMD2bJlCwcOHKBx48YArF69Gi8vLzZt2kT37t0JDAzkl19+ATTXBQEBAXh7exMUFIS/vz9BQUEEBgYCmoT77Nmz3L9/H0tLSwC+//57Nm3axG+//ca7774LaBL7lStX4ubmlmHMz19TlCtXjtmzZ1O/fn3i4+Oxs7MjMDCQxYsXo1arOXv2LKampvTt25egoCA6duxIUFAQzZs3z9bHmhNS82+MpOZfFFJHjx5lzZo1tGrVisePH7NgwQL+97//0aFDB/z9/Vm4cCHW1tYsXrwY0NwF3b9/P2q1mjNnzmBqakq/fv10d0afPxBeu3aNtWvXsmHDBpo2bUr58uUZO3Ysr7zyii7RBE1frPnz59O4cWMqVaqErW32b2QEBATw3nvvUb16dfz8/JgyZQrlypVjy5YtAFSrVo0SJUroamK1NzC0z48dO8bTp0955ZVXsr3vypUrA5pxCdJz8+ZNWrduTeXKlfHz86N79+4EBARgYWGBo6MjKpUKDw8PPDw89JL/li1bMnbsWCpUqECFChUy3P+ECRNo06YN1atXZ/ny5dy7d++ltddadnZ2WFtb61qDeHh4YGFhkabc/Pnz8fLyYu7cuVSuXJkuXbowadIkZsyYoddNo0aNGkyYMAE/Pz/69+9P3bp12b17d4b7Dw0NpVQp/QubtWvXolKp+P7776lYsSLTpk3j5s2bHDp0iNdff11XbtGiRZw6dSrTR3b89ttvHDt2jLfffjtb62WkdOnSGf4mhMiVss00AwGWqACxt2BxW7i03dBRCSGKsYYNG6JSqXTPGzVqxJUrVwgJCcHMzIwGDRroXitRogSVKlXiwoULgOba8vz580RGRhIcHExgYCCBgYEEBwfrKme015YnTpwgPj6eEiVKYGdnp3vcuHGDa9eu6fbh4+OTaeIP8N9//9G5c2d8fHywt7fX3WC4efMmAM2aNSMuLo7//vuP4OBgmjdvTosWLfSuJQsi+Zeaf2Mkff6FuY3mLqmh9p0NW7duxc7OjpSUFJKTk+ncuTNz5szh2rVrJCcn6w28Zm5uTv369XUH6OcPhAcOHNAdCKdMmQJoDoTaaVROnjyJoihUrFhRb/+JiYmUKFFC99zCwoIaNWrk5J3rPH78mEmTJrF161YiIiJISUkhISFBdwB/vllZq1atOH/+PO+//z7ff/89Fy5cICgoiNq1a+sl31ml7Uf2/EnveWPGjGHw4MGsXLmS1q1b0717d8qXL//S7datWzdL+2/UqJHu/y4uLnon1Lxy4cIFGjVqpPcemzRpQnx8PLdu3cLb2xsgzffo6emp13/uRQkJCVhZWektu3LlCjVr1sTa2hrQ3KDw9/fHxcUFV1dXXbnSpUtnOf6qVavqupM0bdqU7dv1E6WgoCAGDhzIwoULqVq1apa3mxlra2uePHmSJ9sSIo0S5WHwLljfH27sg7W9oO3XmnEBMjgWCSEKmUJ0bZldiqLorimer6AJDg5m8uTJeHl58c0333Ds2DESEhJ0lTNqtRpPT0+9LqRaz3e5fFlF0uPHj2nbti1t27Zl1apVuLm5cfPmTdq1a0dSUhIAjo6O1KxZk6CgIA4ePEjLli1p2rQpp06d4sqVK1y+fFl3wyA/SfJvjLTJv0z1V3ypVLlqel+QWrRowYIFCzA3N6dUqVK65uF37twB0iaxzx+gs3MgVKvVmJqacuLECUxNTfW2+XySbW1tnWHinFXjxo1jx44dfP/991SoUAFra2u6deumO4ADumZl+/fvJyAgACcnJ5o1a0ZwcLBek7Ls0ibaZcuWTff1iRMn0rt3b/766y+2b9/OhAkTWLduHV27ds10uzlpAaGl/TxNTEzSDHKTk1Fvn/8NPL/s+X0BaboaqFSqTAdwdHV11RujADRjUrzY+sDV1VXXXFArO83+t23bpnvf2psKWsHBwbz++uv88MMP9O/fP9PtZcfDhw+zdJNHiByzdoa+G2HbWDixDP75Ah5cgld/ALO0LXiEEIVMIbq2PHz4cJrnfn5++Pv7k5KSwpEjR3Tn8aioKC5fvqzrZqetoNm8eTPnzp2jadOm2Nvbk5yczE8//UTt2rWxt7cHoHbt2ty9exczMzPd+EU5cfHiRSIjI/n222/x8vIC4Pjx42nKBQYGsnfvXo4cOcLkyZNxcnLC39+fKVOm4O7uniddBV9Gmv0bI2n2LwoRW1tbKlSogI+Pj16yVqFCBSwsLHQDmYAmUTx+/LjewU17INy3bx+BgYEZHghr1apFamoq9+/f1zVd1z48PDzy9D3t37+fgQMH0rVrV6pXr46Hh0eaJtfaZmW//fabLtFv3rw5u3bt0mtSll2zZs3CwcGB1q1bZ1imYsWKfPjhh/zzzz+88cYbum4PFhYWuR4R/vkT7qNHj7h8+bKuK4Kbmxt3797VuwHwYnP4rMTg7+/PwYMH9bZz8OBB7O3ts1UD/6JatWpx8eJFve2WL1+eq1ev6p7HxMTw77//pvk+s9Ps38fHR/fbez7eoKAgXn31Vb799ltdP8G8cu7cOWrVqpWn2yyO1q9fzyuvvIKdnV2uLvSKLFNzeG0WtJsGKhP4byWsegOePHzpqkIIkVfCw8MZM2YMly5dYu3atcyZM4dRo0bh5+dH586dGTJkCP/++y+nT5+mb9++lC5dms6dO+vWDwwMZM2aNdSoUQMHBwfdDYHVq1frVc60bt2aRo0a0aVLF3bs2EFoaCgHDx7kiy++SDd5z4i3tzcWFhbMmTOH69evs2XLFr7++us05QIDA/n7779RqVT4+/vrlq1evbpAmvyDJP/GSZf8S82/KLxsbW354IMPGDduHH///TchISEMGTKEJ0+e8M477+jKZfVAWLFiRfr06UP//v3ZuHEjN27c4NixY3z33Xds27YtRzFeunQpTYKXlJREhQoV2LhxI6dOneL06dP07t07TY2ztlnZ8yeSwMBANm3apNekLDPR0dHcvXuXsLAwdu7cSbdu3VizZg0LFixId873hIQEhg8fTlBQEGFhYRw4cIBjx47pbpD4+voSHx/P7t27iYyMzFEz8cmTJ7N7927OnTvHwIEDcXV1pUuXLrr39+DBA6ZPn861a9eYN29emibvvr6+nDlzhkuXLhEZGZluy4ChQ4cSHh7OiBEjuHjxIps3b2bChAmMGTMGE5Ocn5ZatGjB48ePOX/+vG5Zr169uHfvnm6cienTp+Pm5sauXbv0Pp/SpUunuan04iMz2sR/5MiRvPnmm9y9e5e7d+/qjRZ89OhRKleuzO3bt3XLbt68yalTp7h58yapqam63+HzgwuGhoZy+/btTG8IiaxxdnZmxIgRTJ482dChGC+VChoNhV7rNC0RQ/fDotYQefXl6wohRB7o378/CQkJ1K9fn2HDhjFixAjdTfWlS5dSp04dXnvtNRo1aoSiKGzbtk2vAqpFixakpqbqJfrNmzcnNTVV79pSpVKxbds2mjVrxqBBg6hYsSJvvfUWoaGhlCxZMsvxurm5sWzZMjZs2IC/vz/ffvst33//fZpyzZo108WibemYXlz5ShF5JiYmRgGUmJiY3G1oz1RFmeCgKH+OzpvAhMgnAwYMUDp37pzh6wkJCcqIESMUV1dXxdLSUmnSpIly9OhRvTLR0dGKqamp0q1bN92yP/74QwGUuXPn6pVNSkpSvvrqK8XX11cxNzdXPDw8lK5duypnzpxRFEVRli5dqjg6Or407hs3bihAuo8bN24oN27cUFq0aKFYW1srXl5eyty5c5XmzZsro0aN0tvOm2++qZiamur+5tVqteLi4qLUrVv3pTE8v08rKyulfPnyyoABA5QTJ07olXv+PSUmJipvvfWW4uXlpVhYWCilSpVShg8friQkJOjKv//++0qJEiUUQJkwYYKiKIri4+OjzJw5M93P4L///lMURVH27t2rAMqff/6pVK1aVbGwsFDq1aunnDp1Sm+9BQsWKF5eXoqtra3Sv39/5ZtvvlF8fHx0r9+/f19p06aNYmdnpwDK3r170+xLURQlKChIqVevnmJhYaF4eHgon3zyiZKcnKx7Pb3Pu3PnzsqAAQMy/Vzfeust5dNPP9Vbtm3bNqVKlSqKi4uLUqlSJeXy5ctK3759FTc3NyU8PDzT7WXVgAED0v09NW/eXFdG+xnfuHHjpevt3btXV2bq1KlKu3btchRXnp2XipgNGzbo/W6zo1h9pnfPKcoP1TTXJNO8FOXaXkNHJIQo4tI7/4uXy+q5SaUo2Zx4UWQoNjYWR0dHYmJi9KaayraDczR97Wr0hDd+ybsAhRCiiDt79iytW7fm6tWruj59hVliYiJ+fn6sXbtWb/DMrMqz81IemTZtGidPnuTEiRPcuHEDHx+fTGcxWLt2Ld9//z0hISHY2trSpk0bvv32W3x8fHIVx2+//cbYsWNzNIOCsX2m+S7+AazrDbeOgsoUXv0e6g56+XripRRFITEl7TgmpiYqzE2lca4ongIDA6lZsyazZs0ydCiFSlbPTTLgnzGSPv9CCJEj1atXZ/r06YSGhlK9enVDh5NrYWFhfP755zlK/I3RZ599houLC7Vr1yY6OjrTsnPnzmXEiBE0adKEmTNnEhkZyaxZs9i3bx/Hjh3Tm9YxMTEx08Enra2t0wwUKrLIzg0G/AlbhsPZDbD1Q4i8Am2ngIl8pjlx7UE8m/67zR//3ebWo4Q0r5uaqGhRyZ3eDbxoXtEdUxOZcUEIkTck+TdGMtWfEELk2IABAwwdQp6pWLFimuktC7Nr165Rrlw5QDNuxvNjGzwvKiqK8ePHU7t2bYKCgjAz01yutG/fnvr16/PVV1+xaNEiXfkBAwbw66+/ZrjfvXv3FsgUSkWWuRW8sRBcK8HeKXB4PkRdgzcXgVUxaP2QByLjE9l6OoI//rvN6VsxmZZNVSvsunCPXRfuUdrJmp71vOhR1wsPR6tM1xOiKEhv2j2RdyT5N0Yy1Z8QQogiSJv4v8zmzZuJj49n5MiRusQfoG7dujRr1oz169czf/583TSO69atY926dfkSs3hGpYLm46BEedj0AVzZAUvaaQYGdM5dN4yiLO5pMlO3XWT98XBS1ZqetqYmKppXdKNLrdI093PDzFS/Zj8iOoF1x8L5/eQtbkcn8MPOy8zdc5XJnavyVn1vQ7wNIUQRIcm/MZJm/0IIIYqxo0ePAujmcX5e48aNCQ4O5uLFi9SoUSNb201NTSU5OZnk5GQUReHp06eoVCosLS3zJO5iodobmmR/bS+4HwILW8Jba8C7gaEjMzqHrkUxdsNpbkdrmvbXKONI11qleT2gFK52Gf/m/Era8+Vr/oxrV4m/z91l5eEwToQ94tONZ7lyP57POlaRrgBCiByR0USMka7ZvyT/Qgghih/tdIhlypRJ85p22a1bt7K93ZUrV2JtbU3v3r25efMm1tbWVKpUKdN1EhMTiY2N1XsUe6XrwJA94FEdnkTC8tfgzHpDR2U0nianMunP8/RaeJjb0QmUcbZm7ZCGbBn+Cm83KZtp4v88K3NTutQqzW/vN2JMG033n8X/3mDw8mPEPc14jAshhMiIJP/GyFKb/McZNg4hhBDCAJ48eQKQbo28lZWVXpnsGDhwIIqi6D1eNuL/tGnTcHR01D28vLyyvd8iybEMvP03VHoVUpNg4xDY8w2o045eX5ycCo+m4+z9LD0QCkCv+t78PboZjcqXyPE2VSoVI1v5Ma93bazMTdh76QFvLjhI+MPs/w0IIYo3Sf6NkTT7F0IIUYzZ2NgAmlr3FyUkJOiVyW/jx48nJiZG9wgPDy+Q/RYKlnbQcxU0GaV5vm86/PY2JBW/pDQlVc0P/1zizQUHuf7gMe72lix9ux7T3qiOnWXe9LJ9tYYn699rREkHSy7fi6fv4iPESgsAIUQ2SPJvjLTJf2oSpCQZNhYhhBCigJUuXRpIv2l/Zl0C8oOlpSUODg6sXLmShg0b0qpVqwLZb6FhYgJtJkPn+WBiDiGbYFlHiLtr6MgKTFKKmlHrTjF7z1VS1QqdAkrxz4fNaFHJPc/3VaOME5uHvUJpJ2vCop4wbsNpFEXJ8/0IIYomSf6NkbbPP8h0f0IIIYqdevXqAXDw4ME0rx08eBA7OzsqV65coDENGzaMkJAQjh07VqD7LTRq9YH+m8HaGSL+0wwEeOe0oaPKd0+TU3l/1Qn+OnsHc1MVP75Vk9m9auFkY5Fv+/RwtGJ+n9qYm6rYcf4ei/+9kW/7EkIULZL8GyNTczB91s9Rmv4LIYQoZjp37oyNjQ2zZ88mJSVFt/z48ePs27ePHj166Kb5E0bEt4lmIEDXihB7G5a0hwtbDR1VvnmcmMKgZcfYc/E+lmYmLOxfl841SxfIvgO8nPjqNX8Apm2/yLHQhwWyXyFE4WaUyf/atWupU6cO1tbWuLq60qtXL8LCwrK07vr163n77bepUaMGZmZmqFSqDAfzCQ4OZtiwYVSvXh17e3vc3Nxo0qQJa9euNXwTKun3L4QQoohZuXIlU6ZMYcqUKTx48ICYmBjd87lz5+rKubq6MnXqVE6ePElgYCA///wz33zzDe3bt6dkyZJMnjy5wGOfN28e/v7+ulYJIgMu5eCdnVCuBSQ/gV/7wr+zwNDXVXks9mky/Zcc5eC1KGwtTFk+qD6B+dDMPzN9G/rQKaAUqWqF4WtOEhmfdowMIYR4nkoxeJarb+7cuYwYMYImTZrQt29fIiMjmTVrFpaWlhw7doxSpUplun5gYCBHjhwhICCA6OhoLl26xI0bN/D19U1TtmHDhty8eZOuXbsSEBDA48eP+fXXXzly5AiDBw9m4cKF2Yo9NjYWR0dHYmJicHBwyNa6acysDjE3YfAeKFMnd9sSQghRLOXpeSkPBAYGEhwcnO5rPj4+aW7Wr169mhkzZnDhwgVsbGxo06YN06ZNo2zZsgUQbfqM7TM1Wqkp8PcncGyR5nnNPvDaLDAr/C02Hj1Oov+So5y9HYODlRnLBtWntrezQWJ5nJhC53kHuHo/nmYV3Vj+dj1UKpVBYhFCGE5Wz01GlfxHRUXh6+tLxYoVOXLkCGZmmtFRjx8/Tv369Rk0aBCLFi3KdBs3b96kVKlSmJmZMXz4cObNm5dh8h8UFMQrr7yi2w+AWq0mMDCQ/fv3c+7cOapWrZrl+PP0gmB+I7gfouk/Vy4wd9sSQghRLEmimvfkM82mI79obgIoavBpAj1Wgm3Op70ztPtxT+m36CiX7sXhYmvBynfqU7WUo0FjunIvjlfn/EtSiprFA+rSqkpJg8YjhCh4WT03GVWz/82bNxMfH8/IkSP1EvK6devSrFkz1q9fT1JS5qPfe3t7662bmcDAwDRlTUxM6NatGwBnz57N5jvIQ9LsXwghhDAa0uw/hxq8C703gIU9hB2ARS3hwSVDR5UjEdEJ9Pz5MJfuxeFub8n69xoaPPEH8Ctpz9tNfAGYuu0CKalqwwYkhDBaRpX8Hz16FIDGjRunea1x48bExcVx8eLFfI9DO42Qu3vmfbcSExOJjY3Ve+QZSf6FEEIIoyGj/eeCX2sYvBOcfOBRKCxqA1d3GzqqbIl5kkzfxUe4EfmY0k7WbHi/ERXc7Q0dls6wFhVwtjHn2oPHrDsWbuhwhBBGKmtV5AUks7l7tctu3bpFjRo18jWGn3/+mXLlytG0adNMy06bNo1JkyblTyDa6f4S4/Jn+4VA0KX7HLwWlWkZSzMT+jX0wd3BqoCiEkIIIUS2uVfRzASwrg+EH4bV3aHDd1B/iKEje6mkFDXvrzrB9QeP8XS0Yv37jSjtZG3osPQ4WJkzunVFJmw5z6xdl+lcsxT2VuaGDksIYWSMKvl/8uQJAJaWlmles7Ky0iuTX/vv2rUr8fHxbN68GXPzzA+a48ePZ8yYMbrnsbGxeHl55U0w2uS/mNb8P3qcxLsrT5CU8vKmazciHzO3d+0CiEoIIURxNW/ePObNm0dqaqqhQym8bF1hwBb4cxScXgvbxkLkFWg3FUyN6pJUR1EUvtx0jkPXNaP6Lx5Qz+gSf63eDbxZdjCUG5GP+Tn4OmPbVTJ0SEIII2NUR1obGxtA05ze2lr/wJqQkKBXJq89ffqUzp07c/z4cZYtW0bz5s1fuo6lpWW6NyryRDFv9r/51G2SUtR4uVjTsZpnumWeJqey/FAYf5+7y/24p7jbS+2/EEKI/DFs2DCGDRumG1RJ5JCZJXRZAK5+sHsyHP0Zoq5C96VgZXyf68/7rvPr8XBMVDCndy38SxnvII/mpiZ82qEy7608wcL91+ndwJtSRnqjQghhGEaV/JcuXRrQNO338/PTey2zLgG59fTpU7p06cLu3bv5+eef6d+/f57vI9t0yX+8YeMwkA0nbgEwqElZ3m6S8ZROZ2/HcPJmNL8eDWdEK78MywkhhBDCSKhU0PQjKFEBNr4H13bD4rbQax24GG4axxf9fe4O327XjDX11Wv+tKxs/KPot/UvSX1fF46GPmTmzsv8r3uAoUMSQhgRoxrwTzuC7sGDB9O8dvDgQezs7KhcuXKe7jMxMZGuXbvyzz//sGDBAoYMMZK+Z5bPBpEphsl/SEQs5yNisTA1oUvN0pmW7dfIB4A1R2/K6LZCCCFEYeLfGQZtB3tPeHARFrWCsEOGjgqA0+HRjP71FAADGvkwMJOKCGOiUqn4pIPmWnnzqQgexCUaOCIhhDExquS/c+fO2NjYMHv2bFJSUnTLjx8/zr59++jRowcWFhYA3Llzh4sXL+ZqDIDExES6dOnCjh07mD9/Pu+9916u30OeKcbN/jec0IxS29rfHWdbi0zLdqjmiYutBXdinrL74v2CCE8IIUQxJFP95ZNStTQDAXoGwJMoWNEJTq01aEi3oxMYvOI4T5PVBFZy48vX/A0aT3bV8XGmppcTSalq1h69aehwhBBGxKia/bu6ujJ16lRGjx5NYGAg/fr1IzIykpkzZ1KyZEkmT56sKzt+/HiWL1/O3r17CQwM1C3ft28f+/btAzQ3DQDmzp2Lk5MTACNGjND11evTpw9///03rVu3xs7OjlWrVunFU6NGjXydWSBTxTT5T0pRs+k/TReP7nVePniilbkpPep68VPwNVYdDqNdVY/8DlEIIUQxJH3+85FDKXh7O/zxHlz4Eza9D5GXoeWXYFKw9VRxT5N5Z9kxHsQlUtnDnjm9amFmalR1ZVnydhNfRq07xarDYbzfvDwWZoXvPQgh8p5RJf8Ao0aNwtXVlRkzZjB69GhsbGxo06YN06ZN040JkJk9e/akmX5vxowZuv/37dtXd9LW3hzYtWsXu3btSrOtCRMmGDD5L55T/e2+cI9HT5Jxt7ekqZ9rltbp08Cbn/ddY/+VSG5EPqasq20+RymEEEKIPGVhC91XwN4psH8G/PsDRF2Brj//f4VIPktJVTNi7X9cvBuHq50liwfWK7TT5XWo5skU+wvcj0tk+7k7dH5JN0ohRPFglLcB+/Tpw8mTJ0lISCAqKop169ZRtqx+X6tly5ahKIperT/AxIkTURQlw4evr6+ubGhoaKZlJ06cmP9vNiPFdKo/7UB/b9Quk+U77V4uNrSo5A7A6sNh+RabEEIIIfKRiQm0+kqT8JtaaFoBLO0AsREFsvspf10g6NIDrMxNWDygrtFO6ZcVFmYm9G2gGRdp2cFQwwYjhDAaRpn8C4pls//7sU8JuqTpt9+9bvZmdejXUHOC23DiFglJMgezEEIIUWgFvAX9t4BNCbhzGha2hIj/8nWXvx67qUuSZ/aoSYCXU77uryD0buCNuamK/25Gcyo82tDhCCGMgCT/xspSW/NffEb73/jfbdQK1PZ2orybXbbWbVbRDS8Xa2ISkvnzTMHUEAghhCg+ZMC/AubTCAbvBrfKEHcHlnSAkC35squLd2P5avN5AD5qU5EO1T3zZT8Fzc3ektdrlAJgudT+CyGQ5N94WRSv5F9RFDYc14zy36Puywf6e5GpiYo+z5q3rZKm/0IIIfLYsGHDCAkJ4dixY4YOpfhwKQvv/AMVWkNKAqzvB/u+B0XJs108Tkxh6OqTJKaoaV7RjWEtKuTZto3BgMa+AGw9E8H92KeGDUYIYXCS/Bur55v95+FJzlj9Fx7NtQePsTI34dUaObvj3qOuFxZmJpy5FcNpad4mhBBCFH5WjtDrV2jwvub5nq/hj/chJffz1yuKwhebznH9wWM8HKz4oUcAJiaqXG/XmAR4OVHL24nkVIVNp24bOhwhhIFJ8m+stMm/OiVPTnDGbsNxzUB/Hat55nhkXRdbC1571lRvpdT+CyGEEEWDqRl0+A46fg8qUzizDpZ3gseRudrsr8fC+eO/25iaqJjTuxYl7CzzKGDj8kZtzThKW05Lt0ghijtJ/o2VxXN93ov4oH8JSalsfXZC6pbNgf5e1LeRpun/n6cjePQ4KdexCSGEEMJI1B8CfX8DS0cIP6wZCPD+hRxt6sKdWCZsedbPv21F6vm65GWkRqVjNQ9MTVScux3L9QfFozupECJ9kvwbKxNTMHs2xUwR7/e/4/xd4hJTKONsTcOyJXK1rVpeTvh7OpCYoua3Z9MGCiGEEKKIKN8SBu8E57IQHQaL28KVXdnaRHxiCsOe9fMPrOTG+83K51OwxqGEnSWvVHAFpPZfiOJOkn9jVkym+1v/bKC/bnXK5LqvnUqlot+z2v9VR8JQq4v+eAlCCCFEseJWCYbsAZ8mkBgLa7rDkZ+zNEaSoih8/sdZrkdq+/nXLHL9/NPTKUAz6v+W0xEoxWAsKSFE+iT5N2bFYLq/8IdPOHgtCoA3a+euyb9W55qlsLc0IyzqCfuv5q4/oBBCCAEy1Z/RsXGBfpugZl9Q1LD9Y/jrI0hNznS1X4+Fs/lUhK6fv4utRcHEa2Btq5bE0syE6w8ecz4i1tDhCCEMRJJ/Y1YMpvv7/aSmaX6TCiXwcrHJk23aWJjxZh3NjYSVh2TgPyGEELknU/0ZITML6DwXWk8CVHB8MazuDgnR6RZ/vp//2LaVinQ//xfZW5nTsrI7oBkXSQhRPEnyb8yKeLN/tVrR9cvvXscrT7fdt6Gm6f+ei/e49ehJnm5bCCGEEEZCpYJXRkPPVWBuA9f3wuI2EHVNr9jz/fxbVHLjvWblDBOvAWmb/v95OkK6RQpRTEnyb8y0Nf+JRbPm//CNKG49SsDe0ox2VT3ydNsV3O1oXL4EagXWHr2Zp9sWQgghhJGp8hoM+hscSkPkZVjUCkL/BTT9/D/bqOnn7+loxYxi0s//RS0qu2NnaUZEzFNO3Hxk6HCEEAYgyb8x09X8F83k/7fjmlr/1wJKYW1hmufb7/es9v/XY+Gkyh1uIYQQomjzDNAMBFiqNiQ8ghVd4L9VrDsWzpbTz/r59yo+/fxfZGVuStuqJQFp+i9EcSXJvzHT9fkves3+454ms+3cHQC6182bgf5e1Nq/JPaWZkTGJ3HhjgxuI4QQQhR59h4w8C/w7wLqZNg8jLitn6FCzbh2lahbjPr5p+e1Gp4A7Aq5J6P+C1EMSfJvzIpwzf8/5+/xNFlNeTdbank55cs+zE1NqOPrDMDh61H5sg8hhBBCGBkLG+i2lJRXxgLwrsmf/O48n3cbuBs4MMNrVM4VSzMTImKecvle0bu+FEJkTpJ/Y2ZZdGv+j4dp+pq19i+JSpV//e4alC0BwNEbD/NtH0IIIYQwMiYmTHnyBqOShpKIObUTDmKytAPE3DJ0ZAZlbWFKo/Kaa6O9l+4bOBohREGT5N+YFeGa/9Ph0QDULOOUr/tpUE7TvO9o6EMZ2VYIIYQoJoIu3WfZwVA2q1/hfJvVYOsG987CwpZw+4ShwzOoFpU0LSD2XpTkX4jiRpJ/Y1ZE+/w/TU7l0r04AALyqcm/VvXSjlibmxL9JJnL9+PydV9CCCGKrnnz5uHv70+9evUMHYp4iaj4RMZuOAPAwMa+1G7SDgbvBnd/iL8HSzvCuY0GjtJwtMn/8bBHxD5NNnA0QoiCJMm/MSuiU/2dj4ghVa3gameJp6NVvu7L3NSEOj6afv/S9F8IIURODRs2jJCQEI4dO2boUEQmFEXhk9/PEBmfSMWSdnzaobLmBWcfGLQD/NpBylP47W0Ing7FcNA77xI2lHOzJVWt8O+VSEOHI4QoQJL8GzNds/+iVfN/OjwGgJpejvna31+rQVlN0/8j1yX5F0IIIYqyNUdvsuvCfSxMTfjxrVpYmT83lbCVA/RaCw2HaZ7v/QY2DoHkp4YJ1oBaStN/IYolSf6Nma7Zf9Gq+T99KxqAGvnc31+rvjb5v/FQprURQgghiqir9+P5emsIAB+3r0QVT4e0hUxMof1UeG0WmJjB2Q2w/HWIL15JcIvKmuQ/6PIDGRNJiGJEkn9jVkQH/DtzS1PzX6OMY4HsL8DLCQszEyLjE7keWbRaUQghhBACklLUjP71P54mq3mlgiuDmpTNfIW6b0Pf38HKEW4d1QwEeO98wQRrBOr6OmNrYcqDuERC7sQaOhwhRAGR5N+YFcGp/mKeJHPjWQIeUEA1/1bmptR6NrCgNP0XQgghip6Zuy5z7nYsTjbmzOgRgIlJFroVlgvUDAToUh5iwmFxW7i8I99jNQaWZqY0qeAKSNN/IYoTSf6NWREc7f/M7WgAvF1scLa1KLD9avv9H70RVWD7FEIIIUT+O3w9ip+CrwHw7RvVKemQjcGEXf1g8C7wbappabn2LTg0r1gMBKht+r/nkiT/QhQXkvwbs+eb/ReRk5C2yX9+T/H3ogblSgDS718IIYqzxMREhgwZQrly5bCzs8PPz49Zs2YZOiyRCzEJyYz59RSKAj3qlqF9Nc/sb8TGBfpuhNr9QVHDjs9g62hILdrT4DWv6AZors3iE1MMHI0QoiBI8m/MtDX/ihqSEwwbSx45FR4NQEAB9ffXquXthJmJijsxT7n1qGh8lkIIIbInJSUFDw8P/vnnH+Li4vj111/55ptv+PXXXw0dmsgBRVH4YtM5ImKe4lvChgmvV835xsws4PXZ0PYbQAUnlsGqNyDhUV6Fa3RKOVnj5WJNqlrheKh0ixSiOJDk35iZ2/z//4tI0/8zz0b6L+iafxsLM90Ag4evS9N/IYQojmxtbfn666+pUKECKpWK2rVr06FDBw4cOGDo0EQObDp1mz9PR2BqomJmz5rYWprlboMqFTQerpkO0MIObuyDRa0h6lreBGyEGpT9/5aRQoiizyiT/7Vr11KnTh2sra1xdXWlV69ehIWFZWnd9evX8/bbb1OjRg3MzMxQqVSEhoZmWD4pKYnJkydTvnx5LC0t8fHx4ZNPPuHJkyd59G5ywcQEzIvOiP93Y55yLzYRExVULZXO9Dv57Pmm/0IIIQxj2rRpdO/enXLlyqFSqfD19c20fG6uCV4mJSWFQ4cOUaNGjTzZnig44Q+f8NUmzej8o1r5UcvbOe82XqkDDNoBjl4QdVUzE8CNfXm3fSOiHRPpiFSMCFEsGF3yP3fuXHr37o21tTUzZ85k9OjR7Ny5k8aNGxMREfHS9efPn8+6deuwsbGhQoUKLy3fu3dvJkyYQJMmTZg3bx6dOnVixowZvP7666jV6rx4S7mjG/G/8Cf/p5/V+lcsaY+NRS7vzudAfd2gf5L8CyGEoXz22Wfs2bOH8uXL4+ycecKWnWuCxMRE4uPjM3ykpqam2f7w4cNxcnKif//+efoeRf5KSVXz4a+niEtMoa6PM0MDy+f9TjyqaWYCKF0XnkbDyq5wYnne78fAGj6rGDlzK4YnSdLvX4iiruAzsExERUUxfvx4ateuTVBQEGZmmvDat29P/fr1+eqrr1i0aFGm21ixYgWlSpXCzMyM4cOHc+nSpQzL7tixg99//50RI0Ywe/Zs3XJfX1/Gjh3LmjVr6Nu3b968uZzSDfpX+Jv965r8F9AUfy+q6+OMiQpuPnzCnZgEPB2tDRKHEEIUZ9euXaNcuXIAVKtWjfj49G9uZ/eaYMCAAZn23d+7dy+BgYG652PGjOHgwYPs2bMHC4uCm31G5N6CoGscD3uEnaUZM3vWxMw0n+qy7EvCwK2weRic+x3+HAmRl6HNZDAxzZ99FjAvFxtKO1lzOzqBE2GPaOrnZuiQhBD5yKhq/jdv3kx8fDwjR47UneQB6tatS7NmzVi/fj1JSUmZbsPb21tv3cysXr0agI8++khv+dChQ7G2tmbVqlXZfAf5wKLoNPs/Ha4Z6b+GV8EO9qdlb2VOtdKafUvtvxBCGIY28X+Z7F4TrFu3DkVRMnw8n/iPHj2af/75h927d+Pq6ppn703kv1Ph0czafQWAyZ2r4uVi85I1csncGt5cDIHjNc8PzYV1vSExLn/3W4D+v+m/XBsJUdQZVfJ/9OhRABo3bpzmtcaNGxMXF8fFixfzdH+lSpXCx8dHb7m1tTU1a9bUxZORxMREYmNj9R55Tjvif2LhTv4VRTF4zT9AfV/NCe6wnOCEEMKo5dc1wciRI9m1axd79uzBze3ltZwFcq4XWfI4MYXR6/4jVa3wWg1PutYqXTA7Vqkg8FPotgTMrODy37C4HUTfLJj957MG5Z4l/zek378QRZ1RJf+3b98GoEyZMmle0y67detWnu4vvX1p9/fo0aNMB/6bNm0ajo6OuoeXl1eexaajTf4LebP/0KgnxD5NwdLMhEoe9gaL4/8H/ZMTnBBCGLP8uCYICwtjzpw5XL16lXLlymFnZ4ednR0dOnTIcJ0COdeLLJn8ZwihUU8o5WjFN12qo1KpCjaAam/CwL/A1h3un9cMBBh+rGBjyAfaEf9PhUeTkJR2bAwhRNFhVMm/NtG2tLRM85qVlZVembzaX3r7yur+xo8fT0xMjO4RHh6eZ7HpFJE+/6fDowHwL+WAeX71zcuCer7OqFRw/cFjHsQlGiwOIYQQmcuPawIfHx8UReHp06d6gwFu3749w3UK5FwvXurvc3f59Xg4KhX80LMmjjbmhgmkTF0YsgdKVoPHD2DZq3D2N8PEkkd8Stjg4WBFcqrCfzcfGTocIUQ+Mqrk38ZG028rMTFtUpaQkKBXJq/2l96+sro/S0tLHBwc9B55zqJojPZ/2gia/AM42VhQqaSm5YH0+xdCCONV0NcEGSmQc73I1L3Yp3y68QwA7zUrrxuh3mCcvGDQ31CxA6Qmwu/vwN6poCiGjSuHVCqVrun/Ybk2EqJIM6rkv3RpTd+t9JrxZdb8Lzf7y6jJ4O3bt3F2di6QC4tMFZGp/rQ1/wEGGuzvedqLhqPS9F8IIYxWQV8TvMy8efPw9/enXr16BbZPAWq1wkfrTxP9JJlqpR0Y06aioUPSsLSHt1ZD4xGa58HfwW+DIDnBsHHlkLbp/+Hrcm0kRFFmVMm/9oR68ODBNK8dPHgQOzs7KleunKf7i4iIICwsTG95QkICp06dMo4TfBFo9p+cquZ8hGaAJEPX/APU145qK3e3hRDCaBX0NcHLDBs2jJCQEI4dK/x9vAuTJQdu8O/VSKzMTZjVsxYWZkZ06WpiCm2nQKc5YGIG5zdqugHE3TN0ZNmmvTY6HR5NcqrawNEIIfKLER1BoXPnztjY2DB79mxSUlJ0y48fP86+ffvo0aOHbi7eO3fucPHixVyNAdC7d28AZsyYobd8wYIFJCQk0Ldv3xxvO88Ugan+Lt+LIzFFjb2VGb4lbA0dju4Ed/FuHNFPMp86UgghhGFk55qgIEjNf8G7cCeW6X9fAuCLV/2p4G5n4IgyULs/9NsE1s5w+4RmIMC7Zw0dVbaUc7XF3sqMxBQ1l+4WnWkMhRD6zF5epOC4uroydepURo8eTWBgIP369SMyMpKZM2dSsmRJJk+erCs7fvx4li9fzt69e/Xm7t23bx/79u0DNBcIAHPnzsXJyQmAESNG4OioaXreoUMHunTpwpw5c4iJiaFZs2acPn2a+fPnExgYSJ8+fQrmjWfG4tnI+IV4qr/T4TGAptbfxKSAR+ZNh6udJRXc7bh6P56jNx7StqqHoUMSQohiY+XKlboWdw8ePCApKYkpU6YA4OTkxPDhw4HsXRMUhGHDhjFs2DBiY2N11xEi/zxNTmX0ulMkpappXcWdPg28DR1S5so2hcG7YU0PiLqqmQrwzUVQuaOhI8sSExMVNb2c2H8lkv/Co6lWWn7jQhRFRpX8A4waNQpXV1dmzJjB6NGjsbGxoU2bNkybNk3X/y8ze/bsYdKkSXrLnq/Z79u3r95Je926dUybNo0VK1awbt06SpYsyZgxY5gwYQImJkbQMKIINPs/82ywvxpljOdEUr+sC1fvx3NEkn8hhChQixcvJjg4WG/Zl19+CWhG49cm/5D7awJReH27/SKX7sXhamfJt2/WKPhp/XKiRHkYvAvWD4AbwbCuN7SZrBkXoBDEr03+T92Mpl9DH0OHI4TIBypFKaRDkxohbW1ATExM3o0GfH4TbBgA3o1hUMZTERmz9rP2cfFuHD/1rUP7asaRaG8+dZtR605RvbQjf454xdDhCCFEvsiX81IxNW/ePObNm0dqaiqXL1+WzzQfBV9+wIAlRwFY+nY9WlRyN3BE2ZSaDNvGwYmlmue1+sGrP4BZwXVTyYndF+7xzvLjVHC3Y9eY5oYORwiRDVk93xtB1bbIlG6qv8LZ/+pJUgpX7mu6LNT0cjJsMM/Rjmp7PiKG2KfJBo5GCCGEsZMB/wpGVHwiYzecBmBAI5/Cl/gDmJrDazOh/begMoH/VsLKrvDEuAcaDnh2nXbtQbxcGwlRREnyb+x0U/0Vzmb/5yNiSVUruNtb4uFoZehwdDwcrfApYYNagRNhjwwdjhBCCFHsKYrCJ7+f5UFcIn7udozvWMXQIeWcSgUNP4Bev2rGbwr7Fxa1ggeXDR1ZhlztLCnjbI2iwJln4zUJIYoWSf6NXSHv8386PBr4/7vJxqSBdsq/68Z9J14IIYQoDtYeDWfXhXtYmJrw41u1sDI3NXRIuVexLbzzDzh6w8PrsKg1XNtr6KgypG2leSpcKkaEKIok+Td2hTz5P3NLO9K/8Qz2p1X/WdP/IzeiDByJEEIIYydT/eWv6w/i+XprCADj2lXCv1QRGk+hpD8M2QNeDSAxBla9CccWGzqqdP1/8h9t0DiEEPlDkn9jp53qLyke1GrDxpIDp3Uj/TsZNI70aGv+z96K4UlSyktKCyGEKM6kz3/+SUpRM2rdKRKSU2lSoQTvvFLW0CHlPTs36L8FqvcAJRX+GgPbPwV1qqEj01PL2wmAU+ExyJjgQhQ9kvwbO23NP0DyE8PFkQPRT5IIi9LEbEzT/Gl5udhQ2smaFLXCybBoQ4cjhBBCFEuzdl3m7O0YHK3NmdG9JiYmxj8tXo6YW8Ebv0DLLzTPjyyANT3haaxh43pO1VKOmJmoiIxP5HZ0gqHDEULkMUn+jZ25tWakWCh0Tf9PP2vy71vCBicb45zepv6z2v+jodLvXwghhChoR65HsSD4GgDfvlHdqAYHzhcqFTQbB92Xg5k1XN0Ji9vCo1BDRwaAlbkplT01rU6l6b8QRY8k/8ZOpXpuur94w8aSTWeMeLA/LW3ftjPPuicIIYQQ6ZE+/3kvJiGZMetPoyjQvU4ZOlT3NHRIBadqF3h7G9h5wIMLsLAV3Dxi6KiA5/r934w2aBxCiLwnyX9hoBv0r3Al/9qaf2Ps76+l7Y5w5pb0bRNCCJEx6fOf977afI7b0Qn4lLBhQqeqhg6n4JWurRkI0KM6PImE5a/BmfWGjoqaXs7A/w/aLIQoOiT5LwwK4Yj/iqLoBvur6WV8/f21qng6YG6q4uHjJG49kr5tQgghREHY9N9tNp+KwNRExayeNbGzNDN0SIbhWBoG7YDKr0FqEmwcAru/Nuggz9VKa2ZaCLkTi1otFSNCFCWS/BcG2uQ/sfDU/N+NfcqDuERMTVT4expv8m9lbkplD81JTu5wCyGEEPkv/OETvtx0DoCRLf2o5e1s4IgMzMIWeqyEVz7UPN//Pfw2EJIMM9BzeTc7LMxMiE9MkYoRIYoYSf4Lg+en+yskTj/r71+xpD3WFqaGDeYl/r/pf7RhAxFCCCGKuFS1wpj1p4hLTKGOjzPDWpQ3dEjGwcQEWk+EzvPBxBxCNsOyjhB7p8BDMTc1oVJJzbXn+QipGBGiKJHkvzAohM3+tf39jbnJv1bAszEJTkvyL4QQIgMy4F/eWBB0lWOhj7CzNGNmj5qYmcqlqJ5afaD/ZrB2gYj/YGFLuHO6wMPw9/z/pv9CiKJDjriFQSFM/rW16MY82J9WjWc3KM7dlr5tQggh0icD/uXewWuR/LDzMgCTOlXFu4SNgSMyUr5NYMhucK0EcRGwpD1c+LNAQ/Av9Sz5j5DkX4iiRJL/wsBSO9VfnGHjyCJFUTh3W3OyqF7a+Gv+K7jZYW1uSnxiCtcjC0/XCiGEEKKwuBvzlJFr/0OtwBu1S/NG7dKGDsm4uZSDwTuhfEtIfgK/9oV/Z0IBzUykS/6l5l+IIkWS/8LAQpv8F46a/wdxicQkJGOiggrudoYO56XMTE10I9ueDpe+bUIIIUReSkpRM3T1CSLjk6ji6cA3XaqjUqkMHZbxs3KE3hug3hDN810TYdNQSEnM911X9tD0+b8T85SHj5PyfX9CiIIhyX9hUMia/V+6p2mh4Otqi5W5cQ/2p1VD+v0LIYQQ+eKbv0I4eTMaeyszfupb2+gHAjYqpmbw6vfQ4X+gMoHTa2BFF3gcla+7tbcyx/dZtwxp+i9E0SHJf2GgrfkvJFP9Xb6nibOiu72BI8k67Yj/p2W6PyGEECLPbPrvNssPhQEwq2dNfErYGjiiQqrBu9BnA1g6wM2DsKgl3L+Yr7v8/6b/cm0kRFEhyX9hoKv5LyTJ/11NzX9Fj8KT/Nf0cgLgQkQsSSlqwwYjhBDC6Mho/9l38W4s4zeeBWBEywq0qlLSwBEVchVawzs7wckHHoXC4jZwdVe+7U434r/U/AtRZEjyXxgUsj7/2mb/FUsaf39/LW8XG5xszElKVXPpbuEYWFEIIUTBkdH+syf2aTLvrzxBQnIqTf1cGd26oqFDKhrcK8OQPeDdCBJjYXUPOLowX3Ylg/4JUfRI8l8YFKKaf0VRuPIs+a9UsvDU/KtUKt3MBNLvXwghhMg5tVrho/WnCY16Qmkna358qxamJjLAX56xdYX+myGgFyipsG0sbBsHqSl5upuqpTTXRdcePOZpcmqeblsIYRiS/BcGloWn5v92dAKPk1IxN1Xh61q4+vUFPBv074wk/0IIIUSO/bTvGjtD7mFhasL8PrVxsbUwdEhFj5kldFkArSZonh/9Bdb0gKd51z/f3d6SErYWpKoVaRUpRBEhyX9hoGv2b/w1/1eeDfZXztUOc9PC9fPSDvp3Rgb9E0IIIXLkwNVIvt9xCYBJnasS8GxMHZEPVCpoOgZ6rgJzG7i2Gxa1gYc38mjzKmn6L0QRU7iys+KqEE31p+3v71eI+vtraS9QLt+L40lS3jadE0IIIYq6iOgERqz9D7UC3euU4a16XoYOqXio8jq8vR3sPSHyEixsCWEH82TTlZ8N3iw1/0IUDZL8FwaFaKq/y4Wwv79WSQcrSjpYolbg3G25wy2EEEJkVWJKKkNXn+Th4ySqlnLg6y7VUKmkn3+BKVVTMxCgZ01IeAjLO8GpNbnerN+z67kr9yX5F6IokOS/MNAm/ykJoDbuAVcu62r+C1/yD1BD+v0LIYQQ2TZl6wVOhUfjaG3Ogj51sDI3NXRIxY9DKU0LgCqdQJ0Mmz6AXRNBnfMpjCs+u567fM/4K6CEEC8nyX9hYPHcwHlG3PQ/Va1w9b7m5FDJo3Am/wFltCP+S79/IYQQIis2nrzFysNhqFQwq2dNvEvYGDqk4svCBrovh6ZjNc//nQnr++X4+rGCu6YC6kFcItFPkvIqSiGEgRhl8r927Vrq1KmDtbU1rq6u9OrVi7CwsCyvf+LECdq3b4+joyP29vYEBgayb9++dMuGhoYyZMgQypcvj7W1NWXKlKFLly4cPJg3faXyhJklmJhp/m/Eg/6FP3zC02Q1lmYmeLsUzhO/tt+/1PwLIYR43rx58/D396devXqGDsWohETE8tkfZwEY2dKPFpXdDRyRwMQEWn0JXX8GUwu4uBWWtIfYiGxvys7SjNJO1oDU/gtRFBhd8j937lx69+6NtbU1M2fOZPTo0ezcuZPGjRsTEfHyg9axY8do2rQpFy9e5Msvv2Tq1KlERUXRqlUrdu3apVf29u3b1K1bl99++40ePXowd+5chgwZwtGjR2nWrBk7d+7Mr7eZPSpVoRj0T9vkv4K7XaGdz7dGaScAwqKeyB1uIYQQOsOGDSMkJIRjx44ZOhSjEZOQzAerT/A0WU3zim6MauVn6JDE8wLeggF/gk0JuHsGfmkBt09mezPaQZyl378QhZ+ZoQN4XlRUFOPHj6d27doEBQVhZqYJr3379tSvX5+vvvqKRYsWZbqNkSNHYmJiwr59+/D29gagf//+VK1alaFDh3Lp0iXdADQrVqwgKiqKTZs20blzZ902OnfuTK1atVi8eDFt2rTJp3ebTRZ2mrlbjbjmvzAP9qflaGOObwkbQqOecOZWDM0quhk6JCGEEMLoqNUKH60/RVjUE0o7WTOrZ01MCumN/yLNu6FmIMA1b8GDC7C0I3T9Cap2yfImKpa0J+jSA910zkKIwsuoav43b95MfHw8I0eO1CX+AHXr1qVZs2asX7+epKSMa2OvX7/O4cOH6d69uy7xB3B0dGTw4MFcuXKFI0eO6JbHxGj6dZcqVUpvO9rnNjZG1HRdW/NvxCP+a5uDFdbB/rRk0D8hhBAicwuCr7Hrwn0szEz4qW8dnG0tDB2SyIizL7zzD1Rooxk8esMA2Pc/UJQsre73rN+/tpJHCFF4GVXyf/ToUQAaN26c5rXGjRsTFxfHxYsXc7z+82UAWrduDWia8gUHB3P79m2OHDlC3759cXZ25sMPP8w03sTERGJjY/Ue+UY74n8haPZfycPOwJHkTg0Z9E8IIYTI0P4rD/j+n0sAfN25KtWfnTeFEbNygF7roMH7mud7psAf70FK4ktXlRH/hSg6jCr5v337NgBlypRJ85p22a1bt/Js/datWzNr1iyuXr1KYGAgZcqUoWHDhty+fZvDhw9TvXr1TOOdNm0ajo6OuoeXl9dL3mEu6Pr8G+eBNzlVzfUHmhsTfu6Fu+ZfBv0TQggh0nc7OoGRa/9DUaBnXS961vN++UrCOJiaQYfv4NUZoDKFM7/C8tch/kGmq2lH/I+MT+TRYxkPSYjCzKiS/ydPngBgaWmZ5jUrKyu9Mnm1vjbh/9///sfmzZv54YcfePToEe3atePGjRuZxjt+/HhiYmJ0j/Dw8EzL54qR1/yHRT0mKVWNrYWpblTYwqpqKQdMVHAvNpG7MU8NHY4QQghhFBJTUhm66gSPniRTvbQjkzpXNXRIIifqDYa+v4GlI4QfgUUt4V5IhsVtLc0o46wd8V+a/gtRmBlV8q/tY5+YmLYJUkJCgl6ZvFh/4cKFvPXWW0yfPp2xY8fSqVMnPvzwQ4KCgrhz5w4fffRRpvFaWlri4OCg98g3ltrk3zhr/rVNwSqUtC/0A/7YWJjpmridltp/IYQoMoYOHYqXlxcODg6ULl2a0aNHZzqWkNA36c8QTt+KwcnGnPl9amNlbmrokEROlW8Jg3eBc1mIvgmL28KVjGe50jX9v2+c16FCiKzJk+T/5MnsTxuSntKlSwPpN+3PrEl/TtefNm0aVapUoVq1anplK1asSK1atdi7d28230E+MvKp/i7d1Y70X7j7+2tp+/1L038hRHGXV+d4YzB8+HAuXrxIbGwsp06d4vTp00ydOtXQYRUKG46Hs+bITVQqmNWzJl4uRjQossgZt4qamQB8mkBSHKzpAYd/SncgQO10f1el5l+IQi1Pkv/evXvrRs5/3rlz57K1nXr16gFw8ODBNK8dPHgQOzs7KleunOP1ny8DmhsCycnJ6W4rOTmZlJSUrAef3yyMu+ZfO/drxUI+0r/W//f7l0H/hBDFW16d442Bv78/traam+kmJiaYmZlx5coVA0dl/M5HxPDFJs33PbpVRQIruRs4IpFnbFyg3yao1RcUNfz9Cfw1BlL1r4+14znJoH9CFG55kvwPHTqUPn366C3buXMnLVu2zNZ2OnfujI2NDbNnz9ZLvI8fP86+ffvo0aMHFhaaqWTu3LnDxYsX9frwly9fnvr167Nhwwa9/vexsbEsXryY8uXL07BhQ91yf39/Ll++zKFDh/TiOHnyJKdPn6Z+/frZij9faZN/I53qT1vzX2SSf910fzEoWZwKRwghiqK8OseDpsVd9+7dKVeuHCqVCl9f30zLr127ljp16mBtbY2rqyu9evUiLCws2/t93rfffou9vT2urq6cPHmSkSNH5mp7RV3Mk2TeX3WCxBQ1LSq5MaJlBUOHJPKamQV0mgttJgMqOL4EVneDhEe6IhWf1fxrK3uEEIVTniT/I0eOxMrKStd0bvHixfTt25d169Zlazuurq5MnTqVkydPEhgYyM8//8w333xD+/btKVmyJJMnT9aVHT9+PFWqVNGbug9g9uzZpKam0rRpU3744Qfmzp1LkyZNuHPnDvPnz0el+v/+6JMmTQKgbdu2jBs3joULF/LJJ58QGBiIiYkJX3/9dU4/krxnxM3+E1NSCY3S3IQpKsl/JQ97LMxMiElIJiwq40EmhRCiqMurczzAZ599xp49eyhfvjzOzs6Zlp07dy69e/fG2tqamTNnMnr0aHbu3Enjxo2JiIjQK5uYmEh8fHyGj9TUVF3ZTz/9lLi4OEJCQnj//fd1XQZFWmq1wuhf/yP8YQJeLtbM7Fmz0I/rIzKgUkGTUfDWGjC3hetBsKgNRF0Dnh/xP0lG/BeiEDPLzcobNmygUaNGlClThiVLllCvXj3Onz/PwYMH2bt3L/7+/tne5qhRo3B1dWXGjBmMHj0aGxsb2rRpw7Rp07J0gm7QoAH79u3j888/Z+LEiaSmplK3bl127dpFYGCgXtlOnTpx+PBhpk6dyoYNG4iIiMDR0ZFWrVrxxRdfUKdOnWzHn2+MeKq/6w8ek6pWcLAyo6RD2pkWCiNzUxP8PR04FR7N6VvR+LraGjokIYQoUPlxjr927RrlypUDoFq1asTHp39Oi4qKYvz48dSuXZugoCDMzDSXK+3bt6d+/fp89dVXLFq0SFd+wIAB/Prrrxnud+/evWmuAapUqUJAQAD9+vUzrjF+jMjcvVfZe+kBlmYmLOhTBycbC0OHJPJb5Y4w6G9Y+xZEXYFFraDnKmx8X6GUoxURMU+5HvmYOrbyWxCiMMpV8v+///2PM2fO4ObmRsOGDalbty5BQUEEBQXh5+eX4+326dMnTRPDFy1btoxly5al+1q9evX4559/srSvevXq8ccff2Q3xIJnxH3+tdO+VPKw12tZUdgFlHHkVHg0Z27F0Lmm1AwJIYqX/DjHaxP/l9m8eTPx8fGMHDlSl/gD1K1bl2bNmrF+/Xrmz5+v6wq4bt26HLVESE1N5fLly9lerzgIvvyAmbs0n82ULtWoVtrRwBGJAuNZQzMQ4NpeEHESVnSB12ZSzq2iJvl/EE8dn8xb7gghjFOumv0fPXqUuLg4Nm7cSIsWLbCwsMDJyYmqVavi5+dHjx498ipOoZvqz/ia/WuTf78i0uRfq8azfv+nw6MNGocQQhiCIc/x2i59jRs3TvNa48aNiYuL4+LFi9naZkxMDMuWLSM6OhpFUTh79ixff/01HTp0yJOYi5KbUU8Yte4/FAV61feme10vQ4ckCpq9B7y9Dap2BXUybBnO+4lLMUHNjUjjuxYVQmRNrmr+AczNzalXr57eKPrx8fEcP36c48eP53bzQsuI+/xfuqtpjVCpiCX/AV6aWo5zETGkpKoxM82TITKEEKLQMNQ5PrPpfbXLbt26RY0aNbK8TZVKxapVqxgzZgxJSUm4u7vTrVs3Jk6cmOl6iYmJJCYm6p7HxsZmeZ+FUVjUY3r9cpjoJ8nUKOPIhNez371DFBHm1vDmEnCtCMHf8cqDtfxsfpmt9ya/fF0hhFHKdvJ/+/Zt1qxZQ2hoKHZ2dtSqVYuOHTvi4OCgK2NnZ0dgYGCa/nUiF4y42b925FftHLBFRTlXO+wszYhPTOHK/XiqeDq8fCUhhCjEjOUcr53Jx9Iy7TgyVlZWemWyysHBgV27dmU7lmnTpukGCC7qbkQ+pvfCw9yJeUp5N1sW9a+LlbmpocMShmRiAi0+gxJ+qDcNpQ0nKBc2HGK2gmPam3NCCOOWreQ/ODiYjh07kpCQoLfc0dGRzz77jHHjxuVpcOI5RjrVX0JSKjcfai7AilrNv4mJimqlHTh8/SFnbkVL8i+EKNKM6RxvY2MDaGrdra2t9V7Txqctk9/Gjx/PmDFjdM9jY2Px8ip6zeCvPYin98LD3ItNxM/djtVDGuBub2XosISxqNGd+yYlMd3Qh/LqGygLW6J6ay2UMaLBsYUQL5Wtdsxjx47F1NSUlStX/l979x0eVZn2cfw76QlphEDoVamCdDAIRgVEVxdURAVBRCwritjWFxQUFdBdRUVAUbCBC4JlraCgFNdI70IApYaeQBrpyXn/OJmRAAkpkzmTye9zXXMlc9rccw5k5j7P89wPR44cIT4+ns8++4y2bdvy9NNPM2jQIM2JXlHctNv/HyfSMAyoUc2PGsGeUen/bJc3CAdgS3yytYGIiFQwd/qMt8/uEx8ff9664oYEVAR/f39CQ0OZO3cu3bt359prr3XJ67rSHydSueNdM/FvERXC/Pu7K/GX89Rs3ZPbciexM78BtrTj8OENsP1zq8MSkVIoVfK/Y8cOHnvsMYYMGULt2rWpW7cut9xyC6tWreLjjz/m888/580336yoWKs2e/KflwV5OdbGcpZdBcX+mntYq7/d5QVF/7bGJ1kah4hIRXOnz3h7jYHY2Njz1sXGxhIcHEzLli1dEovdqFGj2LFjB+vWrXPp61a03cfNxP9kahYta4fwn/u6EemBN/Ol/Ly9bPjWaMTA7OdJrHs15GbCZyNgxSugxj+RSqFUyX9ISEiRXd3uuusu7rrrLt59912nBCbn8DtrPL0bjfvf40j+PWu8v127+mbRv7ijqWTm5FkcjYhIxXGnz/j+/fsTFBTEtGnTyM3NdSxfv349q1atYtCgQY5p/qTs4o6lcMe7q0lIy6Z1nVDm39fdI3vxifM0rVmNMwTybetX4YqHzYUrJsPnIyEn09rgROSiSpX8X3XVVSxevLjI9b169WLfvn3lDkouwMcPvAu+6LhR139Hy39tz2z5rxceSGSwH7n5Br8f8ewKzyJStbniM37u3Lm89NJLvPTSS5w8eZLk5GTH8+nTpzu2i4yMZPLkyWzcuJGYmBhmzZrFpEmT6NevH1FRUbzwguurjc+YMYPWrVsXmvmgMttxJIU7313NqTPZtK0Xxn/u60b1arqhIsVrEmk29vyZmAnXTYKb3gQvH9j+GXx0I6SdsDhCESlOqZL/+++/n19//bXIbn9//vkndevWdUpgcgFuOO5/z3GzF4Kndvu32Wy0t4/7P5RkaSwiIhXJFZ/xc+bMYfz48YwfP54TJ06QlJTkeP7qq68W2vbRRx9l3rx5pKenM2bMGKZOnUrv3r2JjY111ARwJU/q9r/9cDKDZ6/mdHoOlzcIZ97IboQHKfGXi2ta0/wuui+h4Ltop+Fw1xcQEA7x6+C9a+DYdsviE5Hilaraf58+ffD29ubxxx/ns88+495776VTp074+PiwcuVKpk2bxr/+9a+KilX8giHjtNtU/E/NzOFwkll1uXktz0z+wRz3v2znCTYr+RcRD+aKz/gVK1aUavshQ4YwZMiQcr2mFLY1Pom7Zq8hJTOXDg3D+WhEV0IDfK0OSyqJppFm8r/35FkNUU2vgpE/wX8Gwak/4f3r4NY50KKfRVGKSFFKlfxPnDiRLVu2sGnTJmJjY/n111+x2WyO9R07diQ8PJzt27fTsmVLfHxKdXi5GPu4fzcZ87/nhBlHVKg/YUGe+8Xhr4r/SZbGISJSkfQZX7wZM2YwY8YM8vIqb/2XTQdPM+z9taRm5tKpUXU+vKcLIUr8pRSa1jS/ix5OyiAzJ48AX29zReQlMHIZLBwG+3+B+XdA35fgilFw1t8REbFWqT65x48f7/g9JSWFzZs3s3nzZjZt2sSmTZvYunUrd911FzabDV9fX1q0aEG7du2YO3eu0wOvktys2//uY55d6d/OXvH/QGI6p89ka0ykiHgkfcYXb9SoUYwaNYqUlBTCwsKsDqfUNhw4zfD315KalUvXxhG8f08Xgv2r1g0cKb/qQb6EBfqSnJHDvoQztKoT+tfKoAgY+iV89wRs/Ah+fAYSdsPfXgNv3WQScQdl/qsfGhpKr1696NWrl2NZTk4O27dvL/Rl4ZtvvnFKoIL7Jf8ePt7fLizIl6aR1dibcIbN8Ulc3aKW1SGJiFQofcZ7lnX7TzH8/bWcyc6je9MI3h/ehSA/Jf5SejabjaY1q7HpYNL5yT+YSf5Nb0LNFvDDM+ZNgFN7YdDH5s0BEbGUU//y+/r60qFDBzp06MA999zjzEMLgH9Bkp2dam0cBXYXVPpv4eHJP0D7BuHsTTjDlkNK/kWkaqrqn/GVtdv/mr2J3PPhOtKz8+hxSQ1mD+tCoJ+31WFJJdYk0kz+954sYhiqzWZ2949oBp/faw4DmN0bBi80hweIiGVKVe1fLOZ2Lf+ePc3f2S5XxX8RkSqtMlb7/+3PRIZ/YCb+PS+NZM7dSvyl/BrXML+P7k9ML37DFv1gxA8Q1sAsBDj7Wti70gURikhRlPxXJm6U/CelZ3MiNQuAS2sFWxxNxbMn/5sPJWEYhrXBiIiIXMSvfyRwz4drycjJ46rmNXlvWOe/irOJlEOjGkEAHLxY8g9Q+zK472eo3wUyk2DeLbDhwwqNT0SKpuS/MrEn/1nWd/u3j/evXz2QalWgYFCrOiH4eXtxOj2HQ6cyrA5HRESkSKt2n2TEh+vIzMnnmpa1mDW0kxJ/cZqGEQXJ/6kSJP8AwbXg7m/hsoGQnwvfPApLxkF+5RpCI+IJlPxXJn72Mf/Wt/zvOl41Kv3b+ft406quWdRms6b8ExGpcmbMmEHr1q3p0qWL1aEUa/muE4z8eD1Zufn0bhXF23d1VOIvTtWooNv/sZRMMnNKmMD7BsCts+HqZ8znq2fA/DvdokFLpCpR8l+ZuFG3/6oyzd/Z2tc3p3bafDDJ2kBERMTlKsOY/592HueBjzeQnZvPdW2imDmkI/4+SvzFuaoH+RJS0OvzUElb/8EsBHjVP2HgB+ATAHt+gDnXQdLBCopURM6l5L8ycST/RVRXdSFHsb8ozx/vb9e+YTgAW9TyLyIibubH34/x4LwNZOflc0Pb2kwf3BE/H33NE+ez2Ww0LBj3f6Ak4/7PddktMPx7qFYLTvwO710Dh9z3ppqIJ9GnQmXimOrP2uTfMIyzkv+q0/J/ef1wALYfTiYnL9/aYERERAos2X6Mhz7ZSE6ewY3t6vDmHR3w9dZXPKk49qJ/B0rT8n+2+p3g/uUQ1RbOnIQP/wZbFzkxQhG5EH0yVCZu0u0/IS2b0+k5eNngkipQ6d+ucY1qhAb4kJWbz65jGqMmIiLW+27rUUb9ZyO5+Qb929fljdvbK/GXCtcwwvxOejCxHN9Jw+rDiCXQ4gbIy4IvRsLPkyBfDSwiFUWfDpWJmyT/9lb/RjWqVakiQl5etkJT/omISNXhjgX/vt5yhNELNpGXb3BLh3pMHdQeHyX+4gL2iv9lbvm38w+G2+dB9Gjz+ap/wecjIEczK4lUBH1CVCZ+Ba3sWdZ2+7e3el9ahVr97dor+RcRqZLcreDffzcdZkxB4j+wU33+fdvleHvZrA5Lqgh7t/+DZRnzfy4vb+j7Ivx9Onj5wO9fmsMAUo+V/9giUoiS/8rEPuY/MxkMw7Iw7Ml/y9pVZ7y/nX3c/xYl/yIiYpHPN8Tz+MLN5BtwR5cG/OvWdkr8xaXsLf/xpzPIy3fSd9KOQ2HYVxBYHQ5vMAsBHt3qnGOLCKDkv3IJrWf+zE6FjNOWhRFX0O2/Re1Qy2Kwir3b/x8n00jNzLE2GBERqXIWrj/Ek59tId+Awd0aMvnmtngp8RcXqxseiK+3jey8fI6lZDrvwI2vhJE/QY1LIeUwvN8P4r5z3vFFqjgl/5WJXxCE1DV/T/zTkhDy8w32OJL/qtfyXzPEn3rhgRgGbItPtjocERGpQuavPcg/P9uKYcCwKxoxacBlSvzFEt5eNupXt0/35+RaVDWawcil0DQGcs7AgiHw65uW9noV8RRumfzPnz+fTp06ERgYSGRkJHfeeScHDhwo8f4bNmygX79+hIWFERISQkxMDKtWrSpy+z179nD33XdTv359/P39qVOnDjfccAM7d+50xttxrhrNzJ+n9lry8odOp5OenYefjxeNC8Z7VTWOcf/xSZbGISIiVce81QcY+8U2AO7p0ZiJf2+DzabEX6xj7/rvlHH/5wqsDkM+g84jAAOWToCvH4bcbOe/lkgV4nbJ//Tp0xk8eDCBgYG8/vrrjBkzhqVLlxIdHc2RI0cuuv+6devo2bMncXFxjB8/nsmTJ5OYmMi1117LsmXLztv+p59+on379qxevZoHHniAd955h6eeeorw8HBOnDhREW+xfCKamD8tSv7jzir2V1UrCtuTf437FxGpOqys9v/xb/t59r/bARh5ZRMm3Nhaib9Yzl70r9wV/4vi7Qt/mwr9XgGbF2yaB3NvhvRTFfN6IlWAj9UBnC0xMZGxY8fSsWNHVqxYgY+PGV6/fv3o2rUrEyZMYPbs2cUeY/To0Xh5ebFq1SoaNmwIwLBhw2jTpg0PPfQQu3btcnxgnjx5kttvv53u3bvz3XffERAQULFv0Bki7C3/1nT7txf7q4pd/u003Z+ISNUzatQoRo0aRUpKCmFhYS573ff/t48Xvt0BwAO9mvJ/17dU4i9uoUJb/u1sNuj+oNnzddE9cOB/ZiHAwQuhZvOKe10RD+VWTbdfffUVaWlpjB492pH4A3Tu3JlevXqxcOFCsrOL7u6zd+9eVq9ezW233eZI/AHCwsIYOXIke/bsYc2aNY7l77zzDomJibz22msEBASQkZFR7PHdQkRT86dFLf+7jlfdSv92l9ULxdvLxvGULI4lO7HIjYiIyFlm/7LXkfg/FNNMib+4FXvyf+CUk8f8X8ilfeDeHyG8IZzeB7N7w5/LK/51RTyMWyX/a9euBSA6Ovq8ddHR0aSmphIXF1fm/c/eBuD7778nJCSE9PR0unTpQlBQEAEBAXTt2pWffvrpovFmZWWRkpJS6FHh7Mm/RQX//mr5r3qV/u2C/HxoHmXe/FDrv4iIVIR3Vv7JS9+ZtYdGX3MJT13XQom/uJVGNaoBFdzyf7ao1jDyZ2jQDbKSYd6tsG6Oa15bxEO4VfJ/+PBhAOrXr3/eOvuy+Ph4p+0fFxdHXl4effv2pXnz5ixatIi33nqL+Ph4rrvuOpYvL/6O4pQpUwgLC3M8GjRocJF36AT2Mf+ZSS4f85SVm8e+BPPubouoqtvyD9C+gdnlU8m/iIg424zlf/DyYrOx47HezXm8rxJ/cT/1qgcCkJKZ67rpj4NrwrCvod3tYOTBd4/D4qchL9c1ry9SyblV8p+ebt459Pf3P2+dfTy+fRtn7J+amkp6ejo33XQTn3zyCQMHDmTUqFEsX74cm83GuHHjio137NixJCcnOx6HDh26yDt0Ar9qEFLH/N3FXf//OJFGXr5BWKAvUaHnn+Oq5PL64YCK/omIiHNN+2kP//5hFwBP9m3Oo70vtTgikQsL9vehepAvAIeTMlz3wr4BcPMsuGa8+XzNOzD/dsjUFMwiF+NWyX9QkDl2KCsr67x1GRkZhbZxxv6BgeYdyxEjRhTatkWLFkRHR7N27dpibzb4+/sTGhpa6OESEdZM93d2sb+q3gLRvmE4ANsOJ5OXr3lnRUSkfAzDYOrS3UxduhuAf/ZrwcPXKPEX92Zv/Y8/5cLkH8xCgL2ehNs+Ap9A+GMZzLkOTu93bRwilYxbJf/16tUDLty1v7gu/WXd3/57nTp1ztu+Tp065Ofnk5SUVMLoXcii6f7syX9VLvZnd2mtEIL8vEnLyuXPk2lWhyMiIpWYYRi89uNupv20B4BxN7TkoZhLLI5K5OLqh5uNavGnXTTu/1xtBsA930NwbTi505wJ4OBqa2IRqQTcKvm3z50bGxt73rrY2FiCg4Np2bJlmfc/exuA7t27A1ywu/7Bgwfx8fEhIiKiFO/ARWoUtPy7uOhfnKb5c/D2snFZPY37FxGR8jEMg1eW7GL68j8AGH9ja+7v1cziqERKpr695f+0i1v+z1avI9z3M9RuB+mJ8NFNsGWBdfGIuDG3Sv779+9PUFAQ06ZNIzf3r8Id69evZ9WqVQwaNAg/Pz8Ajh49SlxcXKFu+c2aNaNr164sWrSoUEKfkpLCnDlzaNasmSPhBxg2bBgA06dPxzD+6rq9fv16Vq9ezbXXXuuoFeBWLJruTy3/hXVoEA5o3L+IiJSNYRhMWRzHOyvNm/kT/96Ge69sYnFUIiXnFsk/QFg9GLEEWt4Iednw5QPw0wuQn29tXCJuxq2S/8jISCZPnszGjRuJiYlh1qxZTJo0iX79+hEVFcULL7zg2Hbs2LG0atWq0NR9ANOmTSMvL4+ePXsydepUpk+fTo8ePTh69CgzZ84sNFb96quvZtiwYXz//ff07duXGTNmMGHCBHr37k1ISAivvfaay957qTjG/Luu5T85PYdjKeac9s2reKV/u8sLkn+1/IuIeL4ZM2bQunXrQj0Iy8MwDF78difvrjJv5L844DLujm7slGOLuEq96ma3f5cW/CuKXzUYNBeufNx8/strsOhuyLZoSIKIG3Kr5B/g0UcfZd68eaSnpzNmzBimTp1K7969iY2NdYzpL063bt1YtWoVzZs35/nnn+fpp58mIiKCZcuW0bdv3/O2f//993n11Vc5fPgwjz/+ODNmzKBPnz6sWbOGNm3aVMRbLD/7mP+M0y6b7m/XcbPVv154ICEBvi55TXfXviD5jzuWSmZOnrXBiIhIhRo1ahQ7duxg3bp1TjnelvhkPojdB8Dkm9sytHsjpxxXxJX+avl3kwTbywt6PwcD3gYvX9j5NXxwPaQctToyEbdgM87u7y7lkpKSQlhYGMnJyRVf+f/VFpB2zBzjVK9Txb4WMPe3/Yz/6neuaVmL94c7p9WjsjMMg66Tf+Jkahaf/+MKOjVyw/oQIlKlufRzqYpw5jn9bEM8efn53N6loZOiE3GtlMwc2j3/IwDbJ15HsL+PxRGd5UAsLBgCGafMabLvXAB121sdlUiFKOlnk9u1/EsJOYr+uWbcv4r9nc9ms3F5/XAANh1MsjQWERGpfAZ2qq/EXyq10ABfwgLNHqGHrR73f65G0WYjWWQLSD1q9gDY8bXVUYlYSsl/ZeXi6f5U7O/COjQMB8zumyIiIiJVTb1ws+v/4SQ36fp/togmMHIpNLsGctJh4VD4ZSqo47NUUUr+KysXFv0zDMMx5l8t/4XZW/43HzptbSAiIiIiFnCbiv9FCQiDwYug6/3m858mwn//AblZ1sYlYgEl/5WVC6f7O5KcSWpmLj5eNppGBlf461UmbeuHAXDoVAaJafoQERGpDDIyMrjkkksIDtZnmkh51S+o+O+2yT+Atw/c8G+44VWwecOW+fBxfziTYHVkIi6l5L+yso/5d0Hyv+tYCgDNagbj56N/MmcLC/SlWc1qAGyJT7I2GBERKZEJEybQqJGq64s4g9tV/C9O1/tgyCLwD4WDv8F718CJOKujEnEZZXKVVfWCMf/piZCRVKEvpWJ/xevQsDoA6/ar67+IiLvbsGEDixcv5umnn7Y6FBGP4Pbd/s91ybVw71Ko3hiSDsCcPvDHMqujEnEJJf+VlX8wBEeZv1dw6/9uJf/F6tbEnOJvzd5EiyMREXFvU6ZM4bbbbqNp06bYbDYaN25c7Pbz58+nU6dOBAYGEhkZyZ133smBAwfK/Pq5ubncd999zJw5Ez8/vzIfR0T+Uq8g+Xe7av/FqdUSRv4MDaMhKwU+uQ3WvGt1VCIVTsl/ZRbhmq7/jpb/KCX/F9K9aQ0AtsYnk56da3E0IiLua9y4cfz88880a9aM6tWrF7vt9OnTGTx4MIGBgbz++uuMGTOGpUuXEh0dzZEjRwptm5WVRVpaWpGPvLw8AP7973/ToUMHevXqVWHvUaSqsY/5TzyTXbm+B1WrAcP+C5cPBiMfFj8F3z0BeZXoPYiUko/VAUg5RDSFg7EVmvzn5OXz58k0QC3/RalfPZC6YQEcSc5k44Ekrrw00uqQRETc0p9//knTpmbB2ssuu4y0tLQLbpeYmMjYsWPp2LEjK1aswMfH/LrSr18/unbtyoQJE5g9e7Zj+7vvvptPP/20yNddvnw59evX55133mHTpk1OfEciEhboS0iAD6mZuRw+ncGllamxyMcfBsyEmi1g2fOwbrb5vXrgBxAYbnV0Ik6nlv/KrEZBxf/Eipvub1/CGXLyDIL9fRxjuqQwm81Gt4LW/zX71PVfRKQo9sT/Yr766ivS0tIYPXq0I/EH6Ny5M7169WLhwoVkZ2c7li9YsADDMIp8xMTE8L///Y/jx4/TvHlzIiMj6d+/P2fOnCEyMpJVq1Y5/b2KVCV1w8zviEeSMy2OpAxsNrhyDNw+F3yD4M+fzToALiiqLeJqSv4rMxdM92fv8t88KhibzVZhr1PZ2cf9r9a4fxGRclu7di0A0dHR562Ljo4mNTWVuLjSVegeNGgQf/zxB5s3b2bz5s3Mnj2boKAgNm/eTLdu3ZwSt0hVVSc8AICjSZVo3P+5Wt0EI5ZASF1I2A3vXQsHYq2OSsSplPxXZi4Y82+f5q9F7dAKew1PYB/3v+VQMpk5eRZHIyJSuR0+fBiA+vXrn7fOviw+Pr5UxwwKCqJ+/fqOR82aNbHZbNSvXx9/f/8i98vKyiIlJaXQQ0QKq1OZW/7PVudyuO9nqNsBMk7BR3+HTZ9YHZWI0yj5r8wi7NP9JUBmcoW8xK6Clv+WGu9frEY1gogK9Sc7L5+NBzXln4hIeaSnm/OFXygpDwgIKLRNWcXExBRZc+BsU6ZMISwszPFo0KBBuV5XxBPVDfOAln+70Dow/Hto3R/yc+Crh2Dpc5Cfb3VkIuWm5L8y8w+BarXM3yuo9T9O0/yViM1mo1uTgnH/e09ZHI2ISOUWFGRWD8/KyjpvXUZGRqFtKtrYsWNJTk52PA4dOuSS1xWpTOqE21v+PSD5B/ALgoEfQq+nzOe/vgELh0L2GSujEik3Jf+VXY2Crv8VUPQvLSuX+II5WzXN38V1a6px/yIizlCvXj3gwl37ixsSUBH8/f0JDQ1l7ty5dO/enWuvvdYlrytSmdR1jPmv5N3+z+blBdc8Cze/C95+EPctvN8Pkg9bHZlImSn5r+wcRf/2Of3Qu4+brf61QvypXs3P6cf3NPaW/02HkjTuX0SkHLp06QJAbOz5xbZiY2MJDg6mZcuWLo1p1KhR7Nixg3Xr1rn0dUUqg7+q/WdgGIbF0TjZ5bfD3d9CUCQc2wrvXQOHN1gdlUiZKPmv7Cqw4v8udfkvlWY1qxEZ7E92bj5bDiVZHY6ISKXVv39/goKCmDZtGrm5uY7l69evZ9WqVQwaNAg/P92UFnEXtQvG/Gfm5JOUnmNxNBWgYTezEGDNVpB2DD64AX7/0uqoRErN5+KbiFtzJP/O7/avYn+lY7PZ6NY0gu+2HmXNvlN0K5gBQERETHPnzuXAgQMAnDx5kuzsbF566SUAwsPDefjhhwGIjIxk8uTJjBkzhpiYGIYOHUpCQgKvv/46UVFRvPDCCy6PfcaMGcyYMYO8PPXsEjlXgK83Nar5kXgmmyPJGZ7ZY7R6I7j3R/hsBPyxFBYNh4Q/oNeToOmwpZJQ8l/Z1ai46f7iNM1fqXVvYk/+E4FLrQ5HRMStzJkzh5UrVxZaNn78eAAaNWrkSP4BHn30USIjI3nttdcYM2YMQUFB9OnThylTpjhqArjSqFGjGDVqFCkpKYSFhbn89UXcXZ3wABLPZHM0KZM2dT30/0hAKNy5AH58Fta8DctfgoTd8Pe3wDfA6uhELkrJf2VXvWC6vzMnITPF/KPkBIZhqOW/DOyt/RsOnCY7Nx8/H42sERGxW7FiRam2HzJkCEOGDKmYYETEqeqEBbL9cApHPaXif1G8feD6l6Fmc/juSdi2EJIOwO2fQHBNq6MTKZYyk8ouIBSqFfyhcWLr/8nULE6n5+Blg0tqBTvtuJ7u0lrBRFTzIzMnn63xSVaHIyIiTjJjxgxat27tKEYoIoXVLRj3f9iTKv4Xp/MIuOtzCAiDQ2vMQoDHd1gdlUixlPx7ggjnd/2PK2j1bxxZjQBfb6cd19PZbDa6NTGn/Fuz75TF0YiIiLOo2r9I8eqEmxX/Pb7l/2zNroaRP5k1uJIPwpy+sPtHq6MSKZKSf09QAUX/1OW/7OzJ/+q9iRZHIiIiIuIadQpa/o9WlZZ/u8hLzRsAja6E7FSYfzusfhs8bcpD8QhK/j1BDXvyv89ph9x13Ez+m0cp+S+ts8f95+TlWxyNiIg4g7r9ixSvXkHL/5Gq1PJvFxQBQ7+EDkPByIcl/wffPgZ5HjjtoVRqSv49gb3lP1Et/+6gRVQI4UG+pGfnse1wstXhiIiIE6jbv0jx7N3+j6dkkp9fBVu9ffzMqv99XwJssOEDmHcrZJy2OjIRByX/nsDJY/7z8g12F7T8a5q/0vPystG1ccG4/70a9y8iIiKeLyrEHy8b5OQZJKRlWR2ONWw2iH4E7vgP+FaDfSthdm+nNtCJlIeSf08QYZ/u7wRkpZb7cAcSz5CVm0+ArxcNI4LKfbyqyN71f80+jfsXERERz+fj7UWtEHPc/5HkKjbu/1wtb4B7f4DQ+pD4hzkTwL5frI5KxD2T//nz59OpUycCAwOJjIzkzjvv5MCBAyXef8OGDfTr14+wsDBCQkKIiYlh1apVF91v69at+Pr6YrPZWLBgQXnegmsFhEFQpPm7E1r/7V3+m0eF4O1lK/fxqiJ70b/1+0+Tq3H/IiKVnsb8i1xcnfCC5D+pCo77P1fttnDfz1CvE2QmwdwBsPFjq6OSKs7tkv/p06czePBgAgMDef311xkzZgxLly4lOjqaI0eOXHT/devW0bNnT+Li4hg/fjyTJ08mMTGRa6+9lmXLlhW5X35+Pvfddx8BAQHOfDuuU8N5Xf/t0/y1ULG/MmtVJ5SQAB/SsnL5/UiK1eGIiEg5acy/yMXZK/4fq+ot/3YhUTD8O2hzC+TnwtePwA/PQH6e1ZFJFeVWyX9iYiJjx46lY8eOrFixggcffJBnn32WJUuWcPToUSZMmHDRY4wePRovLy9WrVrFk08+ySOPPML//vc/oqKieOihhzCKmHZj+vTp/P777zz11FPOfluu4cSif/aW/xYq9ldm3meP+1fXfxEREakCokLN5P94qpJ/B99AGPg+XPV/5vPfpsOCIZCVZm1cUiW5VfL/1VdfkZaWxujRo/Hx8XEs79y5M7169WLhwoVkZ2cXuf/evXtZvXo1t912Gw0bNnQsDwsLY+TIkezZs4c1a9act9+hQ4d49tlnee655wrtV6k4iv6Vf7q/7UfMCvWt6qjYX3l0t4/7V9E/ERERqQIcyb9a/guz2eDqsXDrHPD2h92L4f1+kHTI6sikinGr5H/t2rUAREdHn7cuOjqa1NRU4uLiyrz/2ducbdSoUTRu3JjHHnusVPFmZWWRkpJS6GEZe9G/U+Vr+T+Rmkn86QxsNmhXP8wJgVVd3ZqaLf9r958irypOeSMiIiJVSu2C5P9YipL/C2o70BwGUK0WHN9mFgKMX291VFKFuFXyf/jwYQDq169/3jr7svj4eKfuv2jRIr799lveeeedQr0NSmLKlCmEhYU5Hg0aNCjV/k7lpDH/mw4mAdC8VgghAb7lDKpqa10nlGB/H1Izc9l5VOP+RUQqMxX8E7k4R8t/ShWd6q8kGnQxCwFGXWbO1PXBDbDtM6ujkirCrZL/9PR0APz9/c9bZy/EZ9/GGfsnJSXx6KOPcu+9916wt8DFjB07luTkZMfj0CELu+5UL2j5TzterjFE9uS/Y6Pw8sdUxfl4e9G5cXUAVu/VuH8RkcpMBf9ELq72WQX/iqqzJUB4AxixBJr3g7ws+PxeWPEy6JxJBXOr5D8oyJxTPivr/LuFGRkZhbZxxv7//Oc/yc3N5ZVXXilTvP7+/oSGhhZ6WCYwHILMMeblaf3fdPA0AB0aVHdCUNKtScG4/30a9y8iIiKezd7tPyMnj9SsXIujcXP+IXDHf+CKh83nK6bA5yMhR9MkSsVxq+S/Xr16wIW79hfXpb8s+2/atInZs2fz6KOPkpKSwv79+9m/fz8JCQkAnDx5kv3791/wRoLbiihf1//cvHy2xpvF/tTy7xzdC8b9r9t/inyN+xcREREPFujnTWiAOYxWRf9KwMsbrpsEN00DLx/Y/hl8eCOkHrc6MvFQbpX828fRxcbGnrcuNjaW4OBgWrZsWeb9z97mwIEDGIbBs88+S5MmTRwP+1R/o0ePpkmTJmzatKl8b8qV7NP9lbHoX9yxVDJy8ggJ8KFpZLATA6u6LqsXRpCfN0npOew6nmp1OCIiIiIVytH1X0X/Sq7T3TD0SwgIh8PrzUKAx7ZbHZV4ILdK/vv3709QUBDTpk0jN/evrkLr169n1apVDBo0CD8/PwCOHj1KXFxcoTH8zZo1o2vXrixatKjQ+PuUlBTmzJlDs2bN6N69OwDdunXjyy+/PO/xyCOPAPDEE0/w5Zdf0qJFC1e8decoZ9E/e5f/9g3C8fKyOSuqKs3X24tOjTTuX0RERKoGe9G/Y2r5L50mvcxCgDUugZR4mNMXdi22OirxMKUrb1/BIiMjmTx5MmPGjCEmJoahQ4eSkJDA66+/TlRUFC+88IJj27Fjx/LRRx+xfPlyYmJiHMunTZtGTEwMPXv2ZPTo0fj5+TFr1iyOHj3K999/j81mJrV16tRhwIAB58WQlJQEQOfOnS+43q05Wv73lWl3R7G/hhrv70zdm9bglz0JrNl7int6NLE6HBEREZEK81fFfyX/pVajGYxcBguHwb5VMP9O6PsSXDEKbGqYk/Jzq5Z/gEcffZR58+aRnp7OmDFjmDp1Kr179yY2NtYxpr843bp1Y9WqVTRv3pznn3+ep59+moiICJYtW0bfvn1d8A4sZE/+E8vW7X+jvdhfw3AnBSRgJv8Av/6ZQHZuvsXRiIhIWWiqP5GSqa3p/sonsDrc9QV0Gg4Y8OMz8M1oyM22OjLxADZD83A4TUpKCmFhYSQnJ1tT+T8jCV5pZP4+7gj4VSvxrqfOZNPxxaUAbJnQl7Ag3woIsGrKyzfoNnkZCWnZfDyiK72a17Q6JBGpIiz/XPJAOqcixZu7+gDj/7udPq2jeG9YZ6vDqbwMA1a/bSb/Rj407gmDPoagCKsjEzdU0s8mt2v5l3Iox3R/mw+Zrf7NalZT4u9k3l42+rSuDcAPvx+zOBoRERGRilNb3f6dw2aDKx6COxeAXzDs/wVm94aEP6yOTCoxJf+extH1v3R/GDYeSAI03r+iXNcmCoAfdxzXlH8iIiLisWqr4J9zNb8O7v0RwhqaM3rNvgb2rrA6KqmklPx7mtrtzJ97V5Zqt02H7OP9lfxXhOhmkYT4+3AyNctxrkVEREQ8TVSYPwAJaVnk5qnWkVNEtYH7foL6XSEzGebdCus/sDoqqYSU/HualjeYP3d9D/kl+4Obl2+w2V7pv1F4xcRVxfn5eHFNq1oALNmurv8iIiLimSKr+ePjZSPfgJNpKvrnNMG14O5voO1tkJ8L346BJWMhP8/qyKQSUfLvaRr3Av8wSDsO8etKtMueE6mcyc6jmp83l9YKqeAAq67r2tjH/R9HdTZFRETEE3l52agVYrb+q+K/k/kGwC3vwdXPms9XzzSnA8xMsTYuqTSU/HsaHz9oXjClYdw3JdrFPt7/8gbheHtpDtGKclXzmvj7eHHwVDo7j6ZaHY6IiIhIhYgK07j/CmOzwVVPwcAPwCcA9vwA718Hpw9YHZlUAkr+PVHLG82fO781pwm5iE0HzTHoKvZXsar5+9DzUnOaP1X9FxEREU8VFaKK/xXusltg+PcQHAUndsDsa+HgGqujEjen5N8TXdIbvP3h9D44sfOim286lARAh4bhFRuX0O8yTfknIlIZzZgxg9atW9OlSxerQxFxe1GhZrf/E6lK/itU/U5w389Quy2cOQkf3QhbF1odlbgxJf+eyD8Yml1t/h73bbGbJqfn8MeJNECV/l2hd6taeHvZiDuWyoHEM1aHIyIiJTRq1Ch27NjBunUlq6cjUpXVKpju74TG/Fe8sPpwzxJo8TfIy4Yv7oOfJ5W48LdULUr+PZWj63/x4/43xycB0LhGEBHV/Co4KAkP8qN70whArf8iIiLimWqG2Fv+lfy7hH8w3D4PejxqPl/1L/jsHshOtzYucTtK/j1Vi+vB5gXHthZbAGTjAY33dzV71X9N+SciIiKeqJaSf9fz8oI+L0D/GeDlCzv+Cx/+DVL1fVP+ouTfU1WLhIbR5u+7vi9yM433d72+rc3kf+PBJE6oEI6IiIh4GHvL/0mN+Xe9DnfBsK8gsDoc2QjvXQNHt1gdlbgJJf+erOXfzJ87LzzuPz/fcFT613h/16kdFkD7BuEA/LjjuLXBiIiIiDhZrYJq/4lnssnN09hzl2vcwywEGNkcUg7D+/2KzAekalHy78nsyf/BWDiTcN7qvQlppGbmEuDrRcvaIS4Ormqzd/3XuH8RERHxNDWq+eHtZcMwICEt2+pwqqaIpnDvUmh6NeSkw6d3wf/eKNE04OK5lPx7suqNoHY7MPJh1+LzVm88mARAu/rh+Hjrn4IrXdcmCoDf/kwkOT3H4mhERKqG4cOH4+fnR3BwsOOxZMkSq8MS8TheXjYig81C0ic17t86geEwZBF0GQkYsOw5+OphyNUNmapKGZ+na3WT+fMCU/7Zu/yr2J/rNa0ZTPOoYHLzDX6KU9d/ERFXuf/++0lLS3M8+vXrZ3VIIh7J3vX/hMb9W8vbF/72Glz/b7MY+OZ5MHcAnEm0OjKxgJJ/T2ef8u/P5ZCVVmjVpoKWfxX7s0Y/df0XERERD6WK/26m2/0weBH4hcCBX2H2NXByl9VRiYsp+fd0tVpB9SaQlwV/LHMsTs3MYdfxVEDJv1X6FiT/K3efJCM7z+JoREQq3pQpU7jtttto2rQpNpuNxo0bF7v9/Pnz6dSpE4GBgURGRnLnnXdy4EDR09eWxCeffEJERAStWrVi0qRJ5Obmlut4InJhtUILkv8UJf9u49LeMHIphDeE0/thdh/482eroxIXUvLv6Ww2aFXQ+n9W1/+t8ckYBtSvHujoliWu1aZuKPXCA8nMyWfl7pNWhyMiUuHGjRvHzz//TLNmzahevfghZ9OnT2fw4MEEBgby+uuvM2bMGJYuXUp0dDRHjhwptG1WVlahrvznPvLyzBuso0ePZteuXSQkJDB37lw+/PBDJk6cWGHvV6Qqq6lu/+6pViu4bzk06A5ZyTBvIKx9z+qoxEWU/FcFLQvG/e/+0VHgY+MBjfe3ms1mo99lZuv/j+r6LyJVwJ9//kliYiJLly6lbt26RW6XmJjI2LFj6dixIytWrODBBx/k2WefZcmSJRw9epQJEyYU2v7uu+8mJCSkyMcvv/wCQMeOHalVqxZeXl507tyZiRMnsmDBggp9zyJVlbr9u7FqkXD313D5nWDkwfdPwvf/hDz1hPJ0Sv6rgvpdIDjKvLu3fxUAmw4lAerybzX7lH/Ldh4nR/PgioiHa9q0aYm2++qrr0hLS2P06NH4+Pg4lnfu3JlevXqxcOFCsrP/qla9YMECDMMo8hETE3PB1/Hy8sLQtFciFaKmkn/35uMPA96Gawtupq6dBf8ZBJnJ1sYlFUrJf1Xg5QUtbjB/j/sOwzBU6d9NdGpUnchgP1Iyc1m9V1VXRUQA1q5dC0B0dPR566Kjo0lNTSUuLq7Ux/30009JTk7GMAy2bt3KxIkTufXWW4vdJysri5SUlEIPEbk4e8v/yRR1+3dbNhv0fAIGfQw+gfDnTzCnr1kPQDySkv+qwl71P+579iekcTo9Bz8fL1rVCbU2rirO28tGn9ZRACzZrq7/IiIAhw8fBqB+/frnrbMvi4+PL/VxZ86cSePGjQkJCeHWW2/l9ttv58UXXyx2nylTphAWFuZ4NGjQoNSvK1IV1Qo1x/yfTMtSDxt317o/jFgMIXXgZBy8dw0c+M3qqKQCKPmvKpr0Av9QSDvGgS0rAWhbLww/H/0TsJq96/+PO46Tn68PRxGR9PR0APz9/c9bFxAQUGib0li5ciWnT58mLS2NPXv28Pzzz+Pn51fsPmPHjiU5OdnxOHToUKlfV6Qqqhls/v/NyTM4nZ5jcTRyUXU7wH0/Q53LIT0RPv47bJ5vdVTiZMr8qgofP7i0LwDeu78DoKPG+7uF6GaRhPj7cDI1i3X7T1kdjoiI5YKCggCzy/25MjIyCm1T0fz9/QkNDS30EJGL8/PxonqQL6CK/5VGaF24ZzG0ugnysuG/D8KyiZCvulSeQsl/VVIw5V/ThOWAQQeN93cLfj5e3NC2DgAf/bbf2mBERNxAvXr1gAt37S9uSEBFmjFjBq1bt6ZLly4ufV2Rysw+nfRJFf2rPPyqwW0fw5WPm8//NxUWDYPsM9bGJU6h5L8quaQ3hrc/9fKPcqntsIr9uZERVzYBzHH/h06VviuriIgnsSfYsbGx562LjY0lODiYli1bujSmUaNGsWPHDtatW+fS1xWpzGqFFlT8T1HyX6l4eUHv52DAO+DtBzu/gQ+uh5QjVkcm5eSWyf/8+fPp1KkTgYGBREZGcuedd3LgwIES779hwwb69etHWFgYISEhxMTEsGrVqvO2W7lyJaNGjaJt27aEhIRQs2ZNevTowfz58z2zMIl/CKeizMrJA4M2UTsswOKAxK5F7RB6XhpJvgEf/Lrf6nBERCzVv39/goKCmDZtGrm5f807vX79elatWsWgQYMuOlbf2dTyL1J6mu6vkmt/Jwz7GoJqwNEtZiHAI5usjkrKwe2S/+nTpzN48GACAwN5/fXXGTNmDEuXLiU6OpojRy5+t2ndunX07NmTuLg4xo8fz+TJk0lMTOTaa69l2bJlhbZ9+umn+fLLL+nVqxevvfYa48aNIy8vj8GDB3P//fdX1Fu01HJbVwBu8fkV8nIvsrW40sie5vzXn647SHKGCuOIiOeZO3cuL730Ei+99BInT54kOTnZ8Xz69OmO7SIjI5k8eTIbN24kJiaGWbNmMWnSJPr160dUVBQvvPCCy2NXy79I6dmL/iWkKfmvtBpdASN/gpotIfUovH897Pja6qikjGyGGzVxJyYm0rhxY5o3b86aNWvw8fEBzDv9Xbt2ZcSIEcyePbvYY1xxxRVs27aNHTt20LBhQwCSk5Np06YNQUFB7Nq1C5vNBsCKFSu48sorHa8DkJ+fT0xMDL/88gvbt2+nTZs2JY4/JSWFsLAwkpOT3bIgUE5ePte89BVf5T9MhC0N+r0C3R+0OiwpYBgG172xit3H0xh3Q0vu79XM6pBEpJJzt8+lmJgYVq5cecF1jRo1Yv/+/YWWffLJJ7z22mvs3LmToKAg+vTpw5QpU2jSpIkLor0wdzunIu7svVV7mfT9Tvq3r8ubd3SwOhwpj8xkWHQP/PmT+fzaCWZdgIK8SqxV0s8mt2r5/+qrr0hLS2P06NGFEvLOnTvTq1cvFi5cSHZ2dpH77927l9WrV3Pbbbc5En+AsLAwRo4cyZ49e1izZo1jeUxMTKHXAfDy8mLgwIEAbNu2zVlvzS3E/pnIoQw/3vYeYi5YPgnSTlgblDjYbDZGXmm2/n/4635y8lRZVUQ8y4oVKzAM44KPcxN/gCFDhrBx40YyMjJITExkwYIFliX+6vYvUnqRIebwHLX8e4CAMBi8ELo+YD7/6QX47z8gV9e2MnGr5H/t2rUAREdHn7cuOjqa1NRU4uLiyrz/2dsUx15JuFatWhcPuhL5bqs5bCKz7WCo0x6yUszpO8Rt/L19XSKD/TiSnMni7cesDkdERAqo279I6UUWdPtXtX8P4e0DN/wLbngVbN6wZT589Hc4k2B1ZFJCbpX8Fzd9j33Zhab9cdb+9mPMmjWLpk2b0rNnz2K3zcrKIiUlpdDDXWXn5rOkIJn82+UNzP+0AJvnQfx6CyOTswX4ejO0e2MAZv+y1zMLT4qIiEiVEOkY8190z12phLreB3d9Bv5hcGi1WQjwxE6ro5IScKvkPz3dnOLM39//vHUBAQGFtqmo/W+++WbS0tJ4//338fX1LTbeKVOmEBYW5ng0aNCg2O2t9OsfCaRk5lIzxJ8ujSOgQRdoX9D9/7snID/P2gDF4a7uDfHz8WJrfDLr9p+2OhwRERGRMrEn/6fTs8nVcEbP0uwaGLkUqjeGpAMwpy/sWXbR3cRabpX8BwUFAWaL+rkyMjIKbePs/TMzM+nfvz/r16/n/fff56qrrrpovGPHjiU5OdnxOHTo0EX3scq3W48CcMNltfH2KijM0ft58A+Fo5th01zLYpPCagT7c2vHeoDZ+i8iItbTmH+R0ouo5oeXDQwDTp1R67/HqdkCRv4MjXqYw4n/cxusmWVecHFLbpX816tnJjwX6ppfXJf+8u6fmZnJgAED+Omnn5g1axbDhg0rUbz+/v6EhoYWerijrNw8ftxR0OW/Xd2/VgTXgpix5u/LJkL6KQuikwu590qzoNXSncfZn3DG4mhERERj/kVKz9vLRkS1gnH/KvrnmarVgKH/hfZ3gZEPi/9p9irO07TV7sitkn/73fTY2Njz1sXGxhIcHEzLli3LvP/Z29hlZWVx88038+OPP/L2229z3333lTl+d/XL7gRSM3OJCvWnc6PqhVd2vQ9qtoKMU2b1f3ELl9QK4eoWNTEM+ODXfVaHIyIiIlImkcH2iv9q+fdYPn7Qfzr0ngjYYP0c+OQ2yEiyOjI5h1sl//379ycoKIhp06aRm5vrWL5+/XpWrVrFoEGD8PMz/4AcPXqUuLi4QmP4mzVrRteuXVm0aFGhLvgpKSnMmTOHZs2a0b17d8fyrKwsBgwYwA8//MDMmTN54IEHXPAuXe+7bQVd/tvWwcvrnLk4vX3Nqp0A69+Ho1tdHJ0UZWRPc9q/hevjSUrXB6aIiIhUPjVDCor+qeK/Z7PZ4MoxcPs88A2CvcthTh84pSGs7sStkv/IyEgmT57Mxo0biYmJYdasWUyaNIl+/foRFRXFCy+84Nh27NixtGrV6ryp+6ZNm0ZeXh49e/Zk6tSpTJ8+nR49enD06FFmzpyJzfZX8jtkyBCWLFnCtddeS3BwMPPmzSv02Lq18ifCmTl5LN1xHIAb29W58EZNekGbW8yuOt8/pXE6biK6WQ1a1g4hIyeP/6w9aHU4IiJVmsb8i5SNY7o/dfuvGlrdCCOWQGg9SNgN710L+3+1Oiop4FbJP8Cjjz7KvHnzSE9PZ8yYMUydOpXevXsTGxvrGNNfnG7durFq1SqaN2/O888/z9NPP01ERATLli2jb9++hbZdv96c4m7ZsmUMHTr0vMcXX3xRIe/RlVbtPklaVi51wgLo0KB60Rv2fcm8S3doNWxd6LoApUg2m83R+v9R7H6yc1UlV0TEKhrzL1I2jm7/avmvOupcDvf9DHU7mkOLP+4Pm+ZZHZUANkMTiTtNSkoKYWFhJCcnu03xv0cXbOKrzUe498omjL+xdfEb//Ia/PQCBEfBw+shwD3eQ1WWlZvHla8s52RqFq/ffjk3dyi64KWIyLnc8XOpstM5FSmdWSv/ZMriOAa0r8sbd3SwOhxxpex0+O8/YMd/zec9HoVrnwcvt2t/rvRK+tmkM+/BMnPyWHaxLv9nu+JhiGgKacdh1b8qODopCX8fb4ZHNwZg9i/70L06ERERqUzs3f5V8K8K8guCgR9Ar3+az399Ez69C7LSrI2rClPy78FW7DrBmew86oUH0r5B+MV38PGH6wuS/tVvw4HfKjQ+KZnBXRsS4OvF70dS+G1votXhiIiIiJRYpL3gn8b8V01eXnDNM3DLe+DtD7u+gw/6QfL5U7NLxVPy78G+3WpW+f9buzqFCh0W69I+0OrvkJ8LnwyEg6srMEIpierV/BjYyezu/+ayPeTnq/VfRMTVVPBPpGz+mupPyX+V1m4QDP8WqtWEY9vgvWvg8Aaro6pylPx7qIzsPH7aeQKAv7UtQZf/s908C5pcBdlpMO9W3QBwAw/0akaArxdr9p3iE1X+FxFxORX8EymbmgXd/k+dySZPDRhVW4OuMPInqNXaHGb8wQ2wvfIXWK9MlPx7qJ/jTpCRk0eDiEDa1Q8r3c5+QXDnAt0AcCMNIoJ4ul9LAKZ8v5ODiekWRyQiIiJycRHV/LDZIN8wbwBIFVe9EYz4AS7tC7mZ8Nk9sPLfmmrcRZT8e6jvth0B4G9t65a8y//ZdAPA7dx9RWO6NYkgPTuPJz/bou7/IiIi4vZ8vL2ICDK7/p/UdH8C5oxidy6A7g+Zz5e/BF/cBzmZ1sZVBSj590BnsnL5Oc7s8l+iKv9F0Q0At+LlZePfAy8nyM+btftO8WHsfqtDEhEREbmovyr+K/mXAl7e0G8K3PgGePnAtkXw0U2QdsLqyDyakn8P9HPcCTJz8mlUI4g2dcs5B7FuALiVhjWCGHdDKwD+9UMce09qqhQRERFxb5EhKvonReh8D9z1OQSEQfxasxDg8d+tjspjKfn3QN8VVPm/sTRV/oujGwBuZUi3hlx5SSSZOfk8uWiLiueIiLiAqv2LlJ1a/qVYTWPMQoARTSH5EMzpC7t/sDoqj6Tk38OkZeWyfJe9yn9d5x34QjcA9q503vGlxGw2G68MbEeIvw8bDyYx+5e9VockIuLxVO1fpOwiqpkt/4kq+CdFibzUvAHQuKeZa8y/A36boUKATqbk38P8tPM4Wbn5NI2sRqs6Ic49+Lk3AD7+O3z7OGSmOPd15KLqhQcy/sbWALy2dDd7jqdaHJGIiIjIhdlb/k+lKfmXYgRFwF1fQMdhYOTDD+Pg2zGQl2N1ZB5Dyb8Hyc83mPvbAQD+5qwu/+ey3wDoMNR8vn4OzOgGcd85/7WkWLd1rs/VLWqSnZvPE4u2kJuXb3VIIiIiIuepoZZ/KSkfP7hpGvSdBNhgw4cw7xbIOG11ZB5Byb8HWbDuEOsPnCbIz5s7ujasuBfyC4L+0+Hub8yxOalHYMFgWDgMUo9X3OtKITabjSm3tCM0wIet8cm8s/JPq0MSEREROY+6/Uup2GwQ/TDcOR98q8G+VTC7NyTqu255Kfn3ECdSMpmyeCcAT/RtQb3wwIp/0Sa94B+xcOVjYPOGHV/BjC6w8WONz3GR2mEBPP/3NgC8+dMedh7VEAwRERFxLzUKuv0nquCflEaL6+HeHyC0PiT+Yc4EsG+V1VFVakr+PcTz3/xOamYu7eqHMTy6sete2DcQej8P96+AOu0hMxm+fsScp1N351zi5g716NM6ipw8gycWbiEjO8/qkEREREQcHN3+NeZfSqt2W7jvZ6jXGTKTYO7NsOEjq6OqtJT8e4ClO47z/bZjeHvZmHJLW7y9KmCs/8XUaWdW6Oz7EvgEwv5fYEZX+HwkxG9wfTxViM1mY/LNbake5MuOoyncNWcNSen6cBURERH3UCPYTP4zcvJIz861OBqpdEKiYPi3cNmtkJ8L34yGH56BfDV4lZaS/0ouNTOH8f/dDsDInk1oUzfMumC8fSD6EXjoN2h2rfmfc9simH2NOU5n22eq1llBaob4M/vuLoQG+LDhwGlun7WaY8mZVoclIiIiQrC/D34+Ztqh1n8pE99AuHUOxIw1n/823aw5lqUZr0pDyX8l9+oPuziWkknDiCDGXNvc6nBMEU1g6BfmUIDL7wRvP4hfB5/fC2+0hVX/hjMJVkfpcTo1qs7CB6+gVog/u46ncuvbsexLOGN1WCIiHmHGjBm0bt2aLl26WB2KSKVjs9kcXf9PqeiflJXNBjH/Z94E8AmA3Uvg/X6QdNDqyCoNJf+V2MaDp/l4tTm13+Sb2xLo521xROeo2wFufgce+928S1etFqQehZ9fgqmt4atRsP9/kKfuX87SsnYon/8jmsY1gjiclMHAt2PZfjjZ6rBERCq9UaNGsWPHDtatW2d1KCKVkr3rf+IZFf2Tcmo7EIZ/Z+YWx7ebhQAP6W9zSSj5r6Syc/MZ+/k2DANu6ViPKy+NtDqkogXXMu/SPbYdbp5lFgbMy4JN8+DDv8Grl8AXD8Dv/1XXHSdoEBHEZ/+Ipk3dUBLPZHPHu6uJ/VM9LURERMQ6EdXMiv8J6vYvzlC/s1kIMOoyOHPSzCm2fWZ1VG5PyX8l9e6qP9l1PJWIan48+7fWVodTMj7+cPkd5nCAET/C5YMhMAIyTsPWBbDobvhXU5h3K6ybDSlHrI640ooM9mfB/d3p3jSCtKxchr+/jiXbj1kdloiIiFRRker2L84W3gBGLIHm15sNi5/fC8unaMrxYij5r4T2nkxj2s9/ADDhxtZEFPwxrTRsNmjYDW5+G57cA/cshisehoimkJcNfyyD756Aqa3g7R7w7eOwZQGc2qv/zKUQEuDLh/d05bo2UWTn5fPQJxtYsFZjokRERMT1HN3+09TtX5zIPwTu+MQsOg6w8mX4bATkZFgbl5vysToAKR3DMBj35Tayc/Pp1bwm/dvXtTqk8vH2gUbR5qPvS5CwG3Z9D3Hfm0UCj283H+vnmNtXqwn1u0KDLtCgm1lXwDfQ2vfgxgJ8vZkxuCPPfLmdT9cf4v++2Mb2I8k8em1zaob4Wx2eiIiIVBH2bv+JavkXZ/PyNvOIyObw7WPw+xeQdADumG9OEygOSv4rmUXr41m99xQBvl5MGnAZNpvN6pCcx2aDmi3Mx5WPQdoJOBBr3gQ4tAaObjHH9Oz6znwAePlARDOo1cp81GwJtVqbvQi89c8bwMfbi5dvbUtEsB9vr/iTeasP8sXGw4y8sgn39WpKSICv1SGKiIiIh/ur5V/Jv1SQjsOgehNYOBQObzALAQ5eALXbWh2Z21B2VIks3naUF7/bAcDjfZrTICLI4ogqWHAtaDPAfADkZJo3AOLXmjcDDq2FtOOQsMt87PjvX/t6+0GNS80bApGXQvXGEN7I/BkcBV5Va8SLzWbj6X4t6XlJJK8siWNLfDLTfv6DeWsOMurqS7ire0P8fdxstggRkQrwzTff8Nxzz7F7925CQkJ4/PHHeeqpp6wOS8Tj2af6U7V/qVBNesLIn+A/gyDxD5hzHQycAy2utzoyt2AzDA2idpaUlBTCwsJITk4mNDTUacc9mZrFhK+2s7igYFunRtX59P7u+HhXrQT2PIYBKYfhxE7zcTIOTuyAk7sgJ73o/bz9IbyheSOgeiPzpkBoXQipDSF1zIef595YMQyDJduP8e8fdrE34QwA9cIDebxPcwZ0qIe3lwf1JhGp4irqc6myWrJkCffeey8ff/wxV111Fenp6Rw8eJDLLrusxMfQORUpm82Hkhgw41fqhgUQO/Zaq8MRT5dxGhbeDftWAjbo84JZF8CTek2fpaSfTUr+ncjZXwgMw+C/mw8z8ZsdJKXn4O1l46GYZjx8zSVqpS1Ofj4kH4QTBTcDTu2F0/vNsT/Jh8HIu/gxAsIKbgQU3BAIrgVBkVAtsuBnjYKfNSvtjYLcvHwWbYjnjWW7OZ5i3oVvERXC6Gsv5eqWNQnyU8cgkcpOiWphXbp0YcSIEfzjH/8o8zF0TkXK5tCpdHr+azl+Pl7serGfZw1dFfeUlwPfPwUbPjCfdxgKf5sKPpWsWHoJlPSzyS2/3c+fP59XX32VHTt2UK1aNfr06cPLL79Mo0aNSrT/hg0beOaZZ/jtt9/Iz8+nU6dOvPDCC/Tq1eu8bbOzs3n55Zf56KOPiI+Pp3bt2txxxx0899xzBAVZl9QdTc5g3BfbWL7rJACt64Tyr4HtuKxemGUxVRpeXgWt+o2hRb/C6/JyIDnevBFw+kDBTYGDkHoMUo+aj5x0yEw2HyfjLv56vkEQVMO8YRAQBv6hf/0eEFrE8rOWWfQHyMfbizu7NmRA+3p8GLuft1f8wa7jqYz6z0b8fLzo3rQG17SoyTUto2hYo3Le4BAR9zJlyhQ2btzIhg0b2LdvH40aNWL//v1Fbl/e7wNnO3PmDBs2bGDQoEG0bNmS06dP061bN958802aNGlSjnclIiVhH/OfnZvPmew8gv3dMg0RT+LtCze+btYT+2EcbJoLp/bB7XMhKMLq6Czhdi3/06dP55FHHqFHjx7cddddJCQk8MYbb+Dv78+6deuoW7f46vbr1q3jqquuolatWjz88MP4+/vz7rvvEhcXx+LFi+ndu3eh7QcOHMjnn3/O0KFD6dWrF1u2bOHtt9/mqquuYunSpXiVYmy4M1oDDMNg/tpDTPl+J6lZufh5e/Fo70u5v1dTfKt6N39XMAzISvnrZkDKUUg9AmcSzEe6/Wei+TPPCePWfAILbgSEmL0IfKuZMxjYf/cLMm8w+AadsyzwrN/PWuYTYNY88AkAH3+zAmoJJKfn8O4vf/L1liMcOlV4epRLagVzTctaXN2iFp0bV9e/RZFKwt1aqW02GxEREXTs2JENGzYQGhpaZPJfmu8DWVlZ5OTkFPm6gYGBHD16lAYNGnDZZZfxzTffUKtWLcaMGcO6devYuHFjiVsh3e2cilQmrcYvISMnj5VPxdCoRjWrw5GqZPeP5hSA2almYfDBC826YB6iUnb7T0xMpHHjxjRv3pw1a9bg42PeEVy/fj1du3ZlxIgRzJ49u9hjXHHFFWzbto0dO3bQsGFDAJKTk2nTpg1BQUHs2rXL8QH/ww8/0K9fPx555BGmTZvmOMZrr73Gk08+ydy5c7nrrrtKHH9ZvxAYhkH86Qy2HU5m3uoDxP6ZCECHhuH8e2A7LqkVUuJjiQsZBmSlmjcE0k+ZPQWyUv7qNZCZUvyyrBTXxOnlW3Aj4KwbAvaf3v6Fn/sEYHj7kpJt41BKDvtP5xCfkkuW4U2u4U0uPnj5+FE9NIjqIdWICK1GZGgwNcOCiQwPwcfHz5xlwdvPfF3vc58XPLx8zZsSXt7mjA22gp9e3h47FkvECu6WqO7du5emTZsCcNlll5GWlnbB5L+03wfuuOMOPv300yJfd/ny5XTo0IHw8HDee+89Ro4cCUBCQgI1a9bkwIEDju8MF+Nu51SkMunx8s8cTsrgi4ei6diwutXhSFVzfAf853ZzeHBAGNz2ETS72uqonKJSdvv/6quvSEtLY/To0Y4PeoDOnTvTq1cvFi5cyMyZM/Hzu3A36b1797J69WqGDx9e6EM8LCyMkSNHMnHiRNasWUP37t0B+OSTTwB44oknCh3noYceYvz48cybN69UyX9J2BP97YeT2Xo4me2Hk9l2OJmk9L9aLAJ8vXjqupYMj26s4mvuzGYr6NYfat5BLK38vIIbA/YbAqnmkIPsM+bPnHTITj9nWcZfv2enQ86Zgp8Z5u85GZCbCUb+Wa+TA9k5UMKZdWxAWMHjMoALdRxILXgcKf3bvngAXoVvBnh5n/Pcx9ym0HPvC9xMuNDNBa8L32yweV3kUZJtyru/M7axmVfQVnAlHc8v8NPmVcw2lGGfCx3Dq4Tbnv3T/j71t88T2RP/iynt94EFCxawYMGCix63UaNGhVr4NeZYxLUig/04nJSh6f7EGlGt4b6f4dMh5sxh826FG/4NXe61OjKXcavkf+3atQBER0efty46OpqVK1cSFxdHu3btyrS/fRt78r927Vrq1q173tjBwMBA2rdv7zieMxxJyuDpz7ey/XAyp9PP75ro622jZe1QLm8Qxn09m6orVFXg5Q2B1c2Hs+XlmjcBcrPMn3lZf/3u+Jl9zvNMyCtYlpdr3jTIyy70u5GXQ3JaOmcyMsjIyCQzK5Ps7CxysrPwMnLxJRdf8vAlFx/y8LOZP33Iw69gmS+5+NqKKbpo5JuP/KK78ErVYWDDOOvmgNlVzXxuYMOw3zS44HYF24LjZoJhf17w07Cdsx1nbXdOYmicc6xC25b0mIX2P3/ZucdybGc7d3nRxzx7eWpWCQqcuqHyfh8oyoMPPsibb75J3759qVmzJs8++yydOnUqcau/iJRP9YLp/k6fUfIvFgmuCcO+hq8fgW0L4bvHIWEPXDepxENlKzO3Sv4PHz4MQP369c9bZ18WHx9f5Id9Sfc/e/vWrVtf8Fj169fnt99+Iz09vcjCf1lZWWRl/TXmOzk5GTC7XZzLKzeXX34/SL5hJvqX1AqmTd1QWtcNo02dUC6JCj6rgn/eBY8hUnq+YPMFnxCn/W/3AkIKHnaGYXAiJYv9CWfYl5jGiZRsTmdkk5yezen0HJIzcjh9JpukjFxy8vIBA2/y8SIfb/Icv/uQf9byfLxtBT8Ltjl7O8dP29nr8/AuOLa5bV6h4/iQh9dZr+1DXkHamI8Xhvmw5RekkQZe5GO2dResK9jOvs6bs7ctWG87+7lRsP3Z+xmFX6/gGH+9vgFFvN5fxzt7v3y8/0qRsdns6fFZy8753X58LrD+QsvM1+Ks456z3laRo8fcZmRahTi33dnZ7dA+Web5c6MRfiVS3u8DRfnnP//J6dOn6dixI/n5+Vx55ZV88cUXxe5Tms96ESleNbLJz0rn8MlEUlJUxFos1PtVCGoIq/4Nq2ZC/E7oP8Ps0VsJ2T+TLvZ571bJf3q6OTe7v7//eesCAgIKbeOM/dPT0y+47bnbF5X8T5kyhYkTJ563vEGDBkXGaLcX+PGiW4mIiJRfYmIiYWGV54t2eb8PFMXLy4tXXnmFV155pcT7lOezXkQu7PE34HGrgxAp5Gu4/2urgyi31NTUYj/v3Sr5tyfZWVlZBAYGFlqXkZFRaJuL7X+uC+0fFBR0wW1L+npjx47l8cf/+tOVlJREo0aNOHjwYKX6kuWuUlJSaNCgAYcOHVJRJSfROXUunU/n0zl1ruTkZBo2bEhEROWa0qi83wec6dzP+vz8fE6dOkWNGjUuWDOgS5curFu3rkTL3f3fe1HvxerjlmX/ku5zse3Kul7X33nH1fV3DV3/0m9TmnXOvv6GYZCamnrRmfHcKvmvV68eYHblu/TSwlMvFNcF8EL7n+tC+9erV++C29q3r169erFfLvz9/S/YKhEWFuaW/4krq9DQUJ1PJ9M5dS6dT+fTOXWu0kxb6w7K+33AmS70WR8eHl7k9t7e3hf8t1vUcnDff+/FxWzlccuyf0n3udh2ZV2v6++84+r6u4auf+m3Kcs6Z17/kjQ+u9W3gS5dugAQGxt73rrY2FiCg4Np2bJlmfc/exv770eOHOHAgQOFts3IyGDz5s2FthURERHXKO/3ASuNGjWqVMvdWUXFXN7jlmX/ku5zse3Kul7X33nH1fV3DV3/0m9T1nWuZDPcqApQQkICjRo1omXLlhec1/eee+5hzpw5ABw9etTRnfHs1vlu3brx+++/s3PnTsd4vJSUFNq0aYO/vz979uxxdNNbvHgxN9xwA4888gjTpk1zHGPq1Kk88cQTfPzxxwwdOrTE8WvuX+fS+XQ+nVPn0vl0Pp1T53Ln83nZZZeRlpbG/v37z1tXmu8DlZk7Xx+peLr+VZuuf9Vm1fV3q27/kZGRTJ48mTFjxhATE8PQoUNJSEjg9ddfJyoqihdeeMGx7dixY/noo49Yvnw5MTExjuXTpk0jJiaGnj17Mnr0aPz8/Jg1axZHjx7l+++/LzQ+7/rrr2fAgAG89dZbJCcn06tXL7Zs2cLMmTOJiYlhyJAhpYrf39+f5557rsgiglI6Op/Op3PqXDqfzqdz6lzudj7nzp3r6G138uRJsrOzeemllwCzK/3DDz8MlO77QGXmbtdHXEvXv2rT9a/arLr+btXyb/fJJ5/w2muvsXPnToKCgujTpw9TpkyhSZMmjm2GDx9+weQfYN26dTzzzDOsXr2avLw8OnfuzMSJE8/bDsxiQlOmTOHjjz/m8OHDREVFcccdd/Dcc89RrVq1Cn6nIiIiVUdMTAwrV6684LpGjRqd1wugJN8HREREpGTcMvkXEREREREREedxq4J/IiIiIiIiIuJ8Sv5FRERE3Fhubi6PPvooERERhIeHc++995KZmWl1WOIiCxcu5MorryQ4OJjGjRtbHY64UFZWFvfddx9NmzYlODiYSy+9lDfeeMPqsMSFHnroIRo0aEBoaCj16tVjzJgxZGdnl/l4Sv5FRERE3NjkyZNZvnw527ZtY8+ePezYsYN//vOfVoclLlK9enUeeeQRjyl0KSWXm5tL7dq1+fHHH0lNTeXTTz9l0qRJfPrpp1aHJi7y8MMPExcXR0pKCps3b2bLli1Mnjy5zMdT8u8E8+fPp1OnTgQGBhIZGcmdd97pqGYsRZsyZQq33XYbTZs2xWazXfRu9vHjxxkxYgRRUVEEBATQrl073nvvPdcE6+Z2797NhAkT6N69OzVr1iQkJIT27dszadIkzpw5c972OpcXt2vXLoYMGUKrVq0ICwujWrVqtGrViieeeIJjx46dt73Oaemlp6c7/v8/+OCD563XOb04m81W5CMpKanQtjqfldfs2bMZN24c9erVo2bNmjz//PN89NFH5OXlWR2auECfPn24/fbbadiwodWhiItVq1aNF198kUsuuQSbzUbHjh25/vrr+fXXX60OTVykdevWjiL0Xl5e+Pj4sGfPnjIfT8l/OU2fPp3BgwcTGBjI66+/zpgxY1i6dCnR0dEcOXLE6vDc2rhx4/j5559p1qwZ1atXL3bbpKQkrrzyShYsWMC9997LW2+9RcOGDbn//vuZOHGiiyJ2X++//z5Tp06lSZMmjB8/nn//+9+0aNGCZ599lujoaDIyMhzb6lyWTHx8PMeOHePmm29mypQpvP766/Tu3ZtZs2bRsWNHjh8/7thW57RsJkyYwMmTJy+4Tue05Hr27MncuXPPe5w9Y43Op2uU9qZ2SRoPkpKSOHToEO3bt3cs69ixIykpKefNjiDWqojrL5WHK65/bm4uv/32G+3atXNi5OIMFXn9X375ZUJCQoiMjGTjxo2MHj267IEaUmYJCQlGcHCw0bFjRyMnJ8exfN26dYbNZjPuvfdeC6Nzf3/++afj9zZt2hiNGjUqctv/+7//MwDj888/L7T8pptuMnx9fY29e/dWVJiVwrp164zTp0+ft/yZZ54xAGP69OmOZTqX5fPpp58agDFp0iTHMp3T0tu4caPh7e1tvPrqqwZgPPDAA4XW65yWDGDcfffdF91O59M1ACMiIsLo3bu3Ub169WI/19566y0DMHr06GG8/fbbxosvvmjUqFHDqFu3rnH48GHHdgcPHjQA4+jRo45l2dnZBmBs2rSpAt+NlFZFXP+zLVq0qNhjirUq+vobhmE88MADRufOnY2srKwKeAdSHq64/jt27DDGjRtnHDp0qOxxlnlPMebMmWMAxocffnjeuquuusoICQnRf84Suljy36BBA6NJkybnLV++fLkBGFOmTKnA6CqvLVu2nJdY6VyWz9q1aw3AePLJJx3LdE5LJzc31+jUqZNxww03GPv27btg8q9zWjL25D8rK8tISUkpcjudT9co6U3t0jQenD592gCMuLg4x7ITJ04YgPHHH384/01ImVXE9T+bkn/3VtHX/7HHHjPatm1rnDx50qlxi3NU9PW3+/TTT42YmJgyx6lu/+Wwdu1aAKKjo89bFx0dTWpqKnFxca4Oy+McO3aMQ4cOccUVV5y37oorrsBmszmuhRR2+PBhAGrVqgXoXJZFZmYmCQkJxMfHs2zZMv7xj38AcMMNNwA6p2XxxhtvsGPHDqZPn37B9TqnpfPZZ58RFBREaGgoNWrUYOTIkYXqUuh8uk7Tpk1LtN1XX31FWloao0ePxsfHx7G8c+fO9OrVi4ULFzqqOYeHh9OgQQM2b97s2G7Tpk2EhISo8rubqYjrL5VHRV7/MWPG8OOPP/LTTz8RGRnp1LjFOVz1/z8vL4/du3eXOU4l/+VgT6zq169/3jr7svj4eJfG5ImKO8/+/v5ERkbqPF9AXl4eL7zwAj4+PgwZMgTQuSyL2bNnU7NmTRo0aECfPn04ceIEH330EVdffTWgc1paBw4c4LnnnmP8+PE0adLkgtvonJZcly5dmDBhAosWLWLevHncfPPNfPDBB3Tt2pWjR48COp/uqLSNByNHjmTy5MkcOXKEkydP8vzzzzN8+HC8vb1dFrM4T2mvf15eHpmZmeTk5GAYBpmZmWRlZbksXnGu0l7/0aNHs2zZMn7++Wdq1qzpsjilYpTm+icnJ/Phhx+SlJSEYRhs27aNF198keuvv77Mr+9z8U2kKOnp6YD55elcAQEBhbaRsivuPIN5rnWezzd69GhWr17NSy+9RIsWLQCdy7IYMGAALVu2JC0tjU2bNvHNN99w+vRpx3qd09L5xz/+QaNGjXjyySeL3EbntOTObbEfMmQIV111FcOGDeO5557j3Xff1fl0QyVtPLAX9Ro3bhwJCQm0adOG/Px8Bg4cyCuvvOK6gMWpSnv9586dyz333OPYJjAwkEaNGqngYyVVmut/4MAB3nrrLfz9/Qu1LPfs2ZPFixe7JmBxqtJcf5vNxrx583j88cfJzs6mVq1aDBw4kOeff77Mr6/kvxyCgoIAyMrKIjAwsNA6e3V1+zZSdmef5wvJyMigdu3argzJ7T377LPMnDmTkSNHMm7cOMdyncvSq1+/vuOP8YABA7j11lvp0qUL6enpjB07Vue0FP7zn/+wePFiVq5cia+vb5Hb6ZyWz9ChQ5kwYQLfffcdoPPpjkrbeODj48O0adOYNm2aawKUClXa6z98+HCGDx/uktik4pXm+jdq1AjDMFwXnFS40lz/0NBQli1b5tTXV7f/cqhXrx5w4a79xd3VkdIp7jxnZmaSmJio83yW559/nkmTJjFs2DBmzZqFzWZzrNO5LL927drRoUMHZs6cCeicllR2djaPPfYYN954Iw0bNmT//v3s37/fcd5SU1PZv38/ycnJOqdO0LhxY8c0ijqf7qe4GzJqPPB8uv5Vm65/1Wb19VfyXw5dunQBIDY29rx1sbGxBAcH07JlS1eH5XFq165N/fr1+e23385bt3r1agzDcFyLqm7ixIlMnDiRu+66iw8++AAvr8L/xXUunSMjI4NTp04BOqcllZ6ezokTJ/j2229p0qSJ49GzZ0/A7BXQpEkT3n77bZ3TcjIMgz/++MPRmq/z6X7UeFC16fpXbbr+VZvV11/Jfzn079+foKAgpk2bRm5urmP5+vXrWbVqFYMGDcLPz8/CCD3H4MGD2bdvH1988UWh5VOnTsXHx4fbb7/dosjcxwsvvMDzzz/PkCFD+PDDD89L/O10Lkvm7GrpZ1u+fDnbt2+ne/fujmU6pxdXrVo1vvzyy/Mes2bNAuC6667jyy+/5NZbbwV0Tkvi+PHjF1z+1ltvER8fz9///nfHMp1P96LGg6pN179q0/Wv2iy//mWeJFAMwzCMN954wwCMHj16GO+8847x0ksvGTVq1DBq165txMfHWx2eW/v444+NF1980XjxxReNWrVqGeHh4Y7nb731VqFtT506ZTRt2tQICgoyxo0bZ7z33nvGjTfeaADG+PHjLXoH7mP69OkGYDRs2ND48MMPjblz5xZ6/Pjjj45tdS5LZsCAAUa3bt2MsWPHGu+8847xxhtvGEOHDjV8fX2NsLAwY9OmTY5tdU7Lbt++fQZgPPDAA4WW65xe3KOPPmq0adPGePrpp42ZM2car732mnHTTTcZgHHppZcWmgta59P1ipvn+eTJk0ZQUFCR8zyPGDHCRVFKRdH1r9p0/as2d77+NsNQFYny+uSTT3jttdfYuXMnQUFB9OnThylTphQ5jZWYYmJiWLly5QXXXaiK7dGjRxk3bhzfffcdKSkpXHLJJTz88MM8+OCDLojWvQ0fPpyPPvqoyPVXXXUVK1ascDzXuby4hQsX8tFHH7F161ZOnjyJzWajUaNG9OnTh6eeeoqGDRsW2l7ntGz2799PkyZNeOCBB3jnnXcKrdM5Ld7XX3/NzJkz2b59OwkJCdhsNpo1a8aAAQN46qmnCAsLK7S9zmfFmzt3LgcOHADMHhjZ2dk88cQTAISHh/Pwww87tn3zzTcZM2YMPXr0YOjQoSQkJPD666/j6+vL+vXrHV1DpfLQ9a/adP2rtspy/ZX8i4iIiDhBaW9qq/HAs+j6V226/lVbZbn+Sv5FREREREREPJwK/omIiIiIiIh4OCX/IiIiIiIiIh5Oyb+IiIiIiIiIh1PyLyIiIiIiIuLhlPyLiIiIiIiIeDgl/yIiIiIiIiIeTsm/iIiIiIiIiIdT8i8iIiIiIiLi4ZT8i4iIiIiIiHg4Jf8iIiIiIiIiHk7Jv4iIiIiIiIiHU/IvIpbLzc2lR48eBAUF8fvvvxda9/HHH2Oz2Xj66actik5EREREpPKzGYZhWB2EiMjBgwdp37499erVY+3atQQGBrJr1y46d+5M69at+d///oevr6/VYYqIiIiIVEpq+RcRt9CwYUPmzJnD9u3beeyxx8jKyuL222/H29ubBQsWKPEXERGpxNTLT8R6avkXEbfyyCOPMH36dHr06MGvv/7Kp59+yqBBg6wOS0RERMpJvfxErKXkX0TcSlZWFu3atWP37t0MHz6cDz74wOqQRERExEm+/PJLbrnlFh544AHefPNNunXrxv79+9m0aRNNmjSxOjwRj+ZjdQAiImfbtm0b+/fvB2DHjh3k5OSoFUBERMRD3HzzzTz88MNMnz6d7du3s2XLFj799FMl/iIuoDH/IuI2UlNTueOOO6hevTovv/wya9eu5ZlnnrE6LBEREXGiV199lebNm/Prr78yfPhwDe8TcRG1/IuI23jggQfYu3cvS5YsoW/fvmzdupVXX32V3r1707dvX6vDExERESdQLz8Ra6jlX0Tcwpw5c5g/fz5PPfWUI9F/5513aNq0KcOGDeP48eMWRygiIiLlpV5+ItZRwT8RsVxcXBydOnWibdu2/PLLL4Xu/q9fv54ePXpw9dVXs3jxYmw2m4WRioiISHkMHjyYBQsWOHr5DRkyhPnz5zuei0jFUfIvIiIiIiIVbs6cOYwcOZJ//vOfvPLKK4DZE6BDhw6kpaWxZcsWoqKiLI5SxHMp+RcRERERkQqlXn4i1lPyLyIiIiIiIuLhVPBPRERERERExMMp+RcRERERERHxcEr+RURERERERDyckn8RERERERERD6fkX0RERERERMTDKfkXERERERER8XBK/kVEREREREQ8nJJ/EREREREREQ+n5F9ERERERETEwyn5FxEREREREfFwSv5FREREREREPJySfxEREREREREPp+RfRERERERExMP9P4ztF5yonvKzAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.stats import poisson\n", + "\n", + "# Parameters\n", + "mean_poisson = 11\n", + "alpha_power_law = 2.1\n", + "x_values = np.arange(1, 1000)\n", + "\n", + "# Poisson Distribution\n", + "poisson_pmf = poisson.pmf(x_values, mean_poisson)\n", + "\n", + "# Power Law Distribution\n", + "power_law_pdf = x_values ** (-alpha_power_law)\n", + "# Normalize power-law PDF to make it a valid probability distribution\n", + "power_law_pdf /= np.sum(power_law_pdf)\n", + "\n", + "# Plotting\n", + "\n", + "fig, ax = plt.subplots(1,2, figsize=(12,4))\n", + "\n", + "ax[0].plot(x_values, poisson_pmf, label='Poisson Distribution (mean=11)')\n", + "ax[0].plot(x_values, power_law_pdf, label='Power Law Distribution (α=-2.1)')\n", + "ax[0].set_xlim([0,50])\n", + "ax[0].set_ylim([0,0.15])\n", + "ax[0].set_xlabel('x')\n", + "ax[0].set_ylabel(r'$p_k$')\n", + "fig.suptitle('Comparison of Poisson and Power Law Distributions')\n", + "ax[0].legend(frameon=False)\n", + "ax[1].loglog(x_values, poisson_pmf, label=\"poisson\")\n", + "ax[1].loglog(x_values, power_law_pdf, label=\"powerlaw\")\n", + "ax[1].set_ylim([1e-6, 1])\n", + "ax[1].set_xlabel('x')\n", + "ax[1].set_ylabel(r'$p_k$')\n", + "ax[1].legend(frameon=False);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### load sample graphs of the book" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Actor', 'Collaboration', 'Internet', 'PowerGrid', 'Protein', 'PhoneCalls', 'Citation', 'Metabolic', 'Email', 'WWW']\n" + ] + } + ], + "source": [ + "from netsci.utils import list_sample_graphs, load_sample_graph\n", + "from netsci.analysis import graph_info\n", + "\n", + "nets = list(list_sample_graphs().keys())\n", + "print(nets)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Graph information\n", + "Directed : True\n", + "Number of nodes : 23133\n", + "Number of edges : 93439\n", + "Average degree : 8.0784\n", + "Connectivity : disconnected\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from collections import Counter\n", + "from scipy.stats import poisson\n", + "G_collab = load_sample_graph(\"Collaboration\")\n", + "graph_info(G_collab, quick=True)\n", + "in_degrees = list(dict(G_collab.in_degree()).values())\n", + "out_degrees = list(dict(G_collab.out_degree()).values())\n", + "in_degree_count = Counter(in_degrees)\n", + "out_degree_count = Counter(out_degrees)\n", + "\n", + "k_in, pk_in = zip(*in_degree_count.items())\n", + "k_out, pk_out = zip(*out_degree_count.items())\n", + "\n", + "plt.figure(figsize=(6,4))\n", + "plt.loglog(k_in, pk_in, 'r.', label=r\"$k_{in}$\")\n", + "plt.loglog(k_out, pk_out, 'b.', label=r\"$k_{out}$\")\n", + "plt.legend(frameon=1)\n", + "plt.xlabel(r\"$k_{in}, k_{out}$\")\n", + "plt.ylabel(\"pk\");" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + " α = 3.042, σ = ± 0.327\n", + "Calculating best minimal value for power law fit\n", + " α = 5.496, σ = ± 0.937\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Values less than or equal to 0 in data. Throwing out 0 or negative values\n", + "Values less than or equal to 0 in data. Throwing out 0 or negative values\n" + ] + } + ], + "source": [ + "# find the exponent by fitting a power law by powerlaw package\n", + "import powerlaw\n", + "\n", + "for x in [k_in, k_out]:\n", + " fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting\n", + " print(f\" α = {fit.power_law.alpha:6.3f}, σ = ± {fit.power_law.sigma:6.3f}\") # the exponent" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Generate the powerlaw distribution (bounded)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[0;31mSignature:\u001b[0m \u001b[0mgenerate_power_law_dist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxmin\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "generate power law random numbers p(k) ~ x^(-a) for a>1\n", + "\n", + "Parameters\n", + "-----------\n", + "N:\n", + " is the number of random numbers\n", + "a:\n", + " is the exponent\n", + "xmin:\n", + " is the minimum value of distribution\n", + "\n", + "Returns\n", + "-----------\n", + "value: np.array\n", + " powerlaw distribution\n", + "\u001b[0;31mFile:\u001b[0m ~/git/workshops/netsci/netsci/utils.py\n", + "\u001b[0;31mType:\u001b[0m function" + ] + } + ], + "source": [ + "generate_power_law_dist?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[0;31mSignature:\u001b[0m\n", + "\u001b[0mgenerate_power_law_dist_bounded\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mN\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mxmin\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mxmax\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m \u001b[0mseed\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n", + "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "Generate a power law distribution of floats p(k) ~ x^(-a) for a>1\n", + "which is bounded by xmin and xmax\n", + "\n", + "parameters :\n", + " N: int\n", + " number of samples in powerlaw distribution (pwd).\n", + " a: \n", + " exponent of the pwd.\n", + " xmin: \n", + " min value in pwd.\n", + " xmax: \n", + " max value in pwd.\n", + "\u001b[0;31mFile:\u001b[0m ~/git/workshops/netsci/netsci/utils.py\n", + "\u001b[0;31mType:\u001b[0m function" + ] + } + ], + "source": [ + "generate_power_law_dist_bounded?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "plotting the powerlaw distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_distribution(vrs, N, a, xmin, ax, labelsize=10):\n", + "\n", + " # plotting the PDF estimated from variates\n", + " bin_min, bin_max = np.min(vrs), np.max(vrs)\n", + " bins = 10**(np.linspace(np.log10(bin_min), np.log10(bin_max), 100))\n", + " counts, edges = np.histogram(vrs, bins, density=True)\n", + " centers = (edges[1:] + edges[:-1])/2.\n", + "\n", + " # plotting the expected PDF\n", + " xs = np.linspace(bin_min, bin_max, N)\n", + " expected_pdf = [(a-1) * xmin**(a-1) * x**(-a) for x in xs] # according to eq. 4.12 network science barabasi 2016\n", + " ax.loglog(xs, expected_pdf, color='red', ls='--', label=r\"$x^{-\\gamma}$,\"+ r\"${\\gamma}$=\"+f\"{-a:.2f}\")\n", + " ax.loglog(centers, counts, 'k.', label='data')\n", + " ax.legend(fontsize=labelsize)\n", + " ax.set_xlabel(\"values\")\n", + " ax.set_ylabel(\"PDF\")\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.000035809608483 74.39513593875918\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(2)\n", + "\n", + "N = 10000\n", + "a = 3.0\n", + "xmin = 1\n", + "xmax = 100\n", + "\n", + "fig, ax = plt.subplots(1, figsize=(5,3))\n", + "x = generate_power_law_dist_bounded(N, a, xmin, xmax)\n", + "print (np.min(x), np.max(x))\n", + "plot_distribution(x, N, a, xmin, ax)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + "fit.power_law.alpha=2.995340848455978\n", + "fit.power_law.sigma=0.02600579145725683\n" + ] + } + ], + "source": [ + "# find the exponent by fitting a power law by powerlaw package\n", + "\n", + "import powerlaw\n", + "fit = powerlaw.Fit(x) # xmax=50 we can constrain the max value for fitting\n", + "print(f\"{fit.power_law.alpha=}\") # the exponent\n", + "print(f\"{fit.power_law.sigma=}\") # standard error" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate descereted power law distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAF9CAYAAAD4A0k5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABL6ElEQVR4nO3deVxVdf7H8de91w0EVMIyvYYiuORSqbSYGTmVY4s2/dLUyXRi1CbNyNTSHJcsyTZzadFkstLSmhknKy1NUafUXFKzkgQV5aaTO4soCJzfHzeuIDvcy114Px+P+/jBOd97zvc258f9+F0+H5NhGAYiIiIiPsLs7g6IiIiIOJOCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn1LL3R3wRXl5eRw5coTAwEBMJpO7uyMiIuI1DMMgPT2dpk2bYjZXbgxGwY0LHDlyhObNm7u7GyIiIl4rJSUFq9VaqfcquHGBwMBAwP4/TFBQkJt7IyIi4j3S0tJo3ry547u0MhTcuED+VFRQUJCCGxERkUqoyrIOLSgWERERn6LgRkRERHyKghsRERHxKVpzIyIiLpebm8uFCxfc3Q3xELVr18Zisbjs+gpuRETEpTIyMrDZbBiG4e6uiIcwmUxYrVYCAgJccn0FNyIi4jK5ubnYbDb8/f1p3LixEpsKhmFw/PhxbDYbERERLhnBUXAjIiIuc+HCBQzDoHHjxvj5+bm7O+IhGjduTHJyMhcuXHBJcKMFxSIi4nIasZGCXP08KLjxQjabjfj4eGw2m7u7IiIi4nEU3HiZuLg4QkND6dmzJ6GhocTFxbm7SyIiIh5FwY0XsdlsDB8+nLy8PMBefXzEiBEawRERESlAwY0XSUxMdAQ2+XJzc0lKSnJTj0REpCQ//vgjrVq14n//+x8AJ06c4NprryU7O9vNPfN9Cm68SEREBGZz4f/JLBYL4eHhbuqRiIiUpEOHDgwYMIB169YBMG3aNJ5++mnq1Knjlv7ExsYSGRlJYGAgl19+Offddx+//PJLme+bOnUqJpOp0KtJkyaF2rz55pu0bNmSevXq0aVLF/773/+66mOUi4IbL2K1WlmwYIFj25zFYmH+/PlYrVY390xEpGbq0qULHTp0KPI6cuQIAO3bt2ffvn0kJSWxY8cOBgwY4La+btiwgZEjR7JlyxbWrFlDTk4Od955J2fPni3zve3bt+fo0aOO1549exznli1bRkxMDM8++yw7d+7klltuoXfv3hw+fNiVH6d0hjhdamqqARipqakuuX5KSooRHx9vpKSkuOT6IiLOcu7cOePnn382zp075+6uVNiHH35o1K1b17DZbI5j0dHRRseOHY0zZ86U6xpbt241Bg4caPTr189Yt25die0iIiKMG2+80cjMzHQcy8vLM2644QZj3Lhxlf8QpTh27JgBGBs2bCi13ZQpU4xrrrmmxPPXX3+98eijjxY61rZtW+OZZ54p8T2lPRfO+A7VyI0XslqtREVFacRGRMSFBgwYQJs2bYiNjQXs00pfffUVq1atokGDBuW6RkREBGvWrCEzM5PbbrutxHbLli1j586dfPvtt45jS5Ys4eDBg0yaNAmAGTNmEBAQUOqrItNBqampAAQHB5fZNjExkaZNm9KyZUsGDBjAgQMHAMjOzmbHjh3ceeedhdrfeeedbNq0qdx9cTZlKBYRkepX2lSIxQL16pWvrdkMBTMfl9S2fv2K9Q97orkXXniBBx54gKZNmzJ79mz++9//0qxZs3Jfo2HDhgC8+OKLpba77rrruOaaa0hISOD2228nMzOTCRMmMH36dIKCggB49NFH6d+/f6nXKW/fDMNgzJgxdO/enQ4dOpTa9oYbbuD999+ndevW/Pbbbzz//PN069aNn376iaysLHJzc7niiisKveeKK65wLKR2BwU3IiJS/UormHjXXfDFFxd/v/xyyMwsvu2tt8L69Rd/b9ECTpwo2q6SRTvvuecerr76aqZNm8bq1atp3759hd5/4cIFgoODywwgAFq3bu1Y4PvSSy8RHBxMdHS043xwcHC5RlmWLFnCiBEjHL+vWrWKW265pVCbUaNG8cMPP/DNN9+Ueb3evXs7fu7YsSM33XQTrVq14r333nOsIbo047BhGG7NSq3gRkREpARfffUVCQkJxY5OlEdCQgJt2rQpV9s2bdqwceNGbDYbL7/8Mp999lmhukszZsxgxowZpV5j1apV9OnThxtuuMFx7NLRnMcff5wVK1awcePGSi1vqF+/Ph07diQxMZGQkBAsFkuRUZpjx45V6r+Xsyi4ERGR6peRUfK5SwspHjtWcttL0mOQnFzpLl3q+++/p1+/fsyfP5+lS5fy97//nU8++aRC1+jYsSMrVqwoV9vWrVvzzjvv8Mwzz3DHHXfQs2fPQufLOy3l5+dHYGBgkXOGYfD444+zfPly1q9fT8uWLcv/QQrIyspi79693HLLLdSpU4cuXbqwZs0a/vSnPznarFmzhr59+1bq+s6g4EZERKpfRdbAuKptKZKTk7n77rt55plnGDx4MFdffTWRkZHs2LGDLl26OOUel2rdujUpKSn885//5McffyxyvrzTUiUZOXIkH374IZ9++imBgYGO0ZYGDRo4KrbPmzeP5cuXs3btWsf7xo4dy7333stVV13FsWPHeP7550lLS2PIkCEAjBkzhsGDB9O1a1duuukmFixYwOHDh3n00Ucr3deq0m4pERGRAk6dOkXv3r3p06cPEydOBOz5bO69916effZZp9xj0aJFRdaktG7dGrCvh3FFcta33nqL1NRUoqKiuPLKKx2vZcuWOdqcOHGC/fv3F3qfzWZj4MCBtGnThvvvv586deqwZcsWQkNDAXjwwQd5/fXXee6557j22mvZuHEjK1eudJx3B5NhVHKVlZQoLS2NBg0akJqa6ljlLiJSE50/f56DBw86steK3dSpU1m/fj3rCyyGPnXqFJdddhm7d++mU6dO7utcNSjtuXDGd6impURERKrZV199xezZswsd2717N3Xq1KFdu3Zu6pXvUHAjIiJSzTZv3lzk2O7du7n66qupXbu2G3rkW7TmRlzGZrMRHx+PzWZzd1dERDxeTEwMO3fudHc3fIKCG3GJuLg4QkND6dmzJ6GhocTFxbm7SyIiUkMouBGns9lsDB8+nLy8PADy8vIYMWKERnBERKRaKLgRp0tMTHQENvlyc3NJSkpyU49ERKQmUXAjThcREYH5kqyhFovFJXkbRERELqXgRpzOarWyYMECR00Ui8XC/PnzK1XDREREpKIU3BQjJyeHJ554guDgYBo2bEh0dDTnz593d7e8SnR0NMnJycTHx5OcnFyosq2IiIgrKbgpxowZM4iPj2fPnj0kJiby888/M378eHd3CzZsgClT4Nw5d/ekXKxWK1FRURqxERGRaqXgphgLFy5k4sSJNGvWjMaNGzN16lTee+89cnNz3depCxfgscfgueegQwdYtcp9fREREfFgXh3cxMbG0q9fP8LCwjCZTLRo0aLU9h999BFdunTBz8+PkJAQBg4cyKFDhwq1OXPmDCkp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1q188803rFmzho0bN/LUU08xefJkPv30U6Kiosr7n0FEqkjBjYh4jEGDBjFu3Djef/99brvtNj7++GN69uyJ1WoFYM+ePfzwww9MnjyZadOmFXrvwoULy3WP4OBgAE6dOuX4GeDAgQNF2rZu3Zovv/wSq9VKx44dy7y22WymR48e9OjRA7CP/HTp0oUpU6awYcOGcvVPRKpO01Ii4jEaN25M7969+c9//sOSJUs4c+ZMoSkpi8UCXBxRyffjjz+Weyt469atAfj6668LHX/11VeLtM0fMZo4cWKxIzvHjh1z/HzixIli7xUYGMipU6fK1TcRcQ6N3IiIRxkyZAgrVqzgySefJCAggPvvv99xrl27drRv356XXnqJzMxM2rRpw759+5g/fz4dOnTg+++/L/P6AwcOZOLEiQwfPpyEhAQuu+wyVq1aVWxwEhkZybRp05gyZQrXXnst/fv3p2nTphw9epQdO3awcuVKsrOzARg2bBg2m40777yT0NBQsrKy+OSTTzh27Bjjxo1z3n8gESmTghsR8Sj33HMPwcHBnDp1iqFDh+Lv7+84Z7FY+OKLLxg7dizvvfceZ8+epUOHDrz33nvs3r27XMFNUFAQK1euZMyYMcyYMcMRQC1evJhGjRoVaT958mS6dOnCnDlzeP311zl79iyXX345HTp0YPbs2Y52gwcPZtGiRbz33nscP36coKAg2rZty4cffsjAgQOd8x9HRMrFZFw6visiIiLixbTmRkRERHyKghsRERHxKQpuRERExKcouBERERGfouBGREREfIqCGxEREfEpCm5ERETEpyi4EREREZ+i4EZERER8ioIbERER8SkKbkRERMSnKLgRERERn6LgRkRERHzK/wPRJZt/vcgAhgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from netsci.utils import generate_power_law_discrete\n", + "# Example usage\n", + "gamma = 2.5 # Power-law exponent\n", + "k_min = 1 # Minimum value of k\n", + "k_max = 1000 # Maximum value of k\n", + "size = 100000 # Number of samples\n", + "\n", + "samples = generate_power_law_discrete(size, gamma, k_min, k_max, seed=1)\n", + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "plot_distribution(samples, size, gamma, k_min, ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Powerlaw package\n", + "\n", + "- Alstott, J., Bullmore, E. and Plenz, D., 2014. powerlaw: a Python package for analysis of heavy-tailed distributions. PloS one, 9(1), p.e85777.\n", + "\n", + " - probability density function (PDF), \n", + " - cumulative distribution function (CDF)\n", + " - complementary cumulative distribution (CCDF)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating best minimal value for power law fit\n", + "xmin progress: 00%\r" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fit.power_law.alpha=2.995340848455978\n", + "fit.power_law.sigma=0.02600579145725683\n", + "----------------------------------------------------------------------\n", + "(894.9727455051284, 5.263968413468816e-22)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import powerlaw\n", + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "fit = powerlaw.Fit(x) # xmax=50\n", + "print(f\"{fit.power_law.alpha=}\")\n", + "print(f\"{fit.power_law.sigma=}\")\n", + "print(\"-\"*70)\n", + "print(fit.distribution_compare(\"power_law\", \"exponential\"))\n", + "\n", + "powerlaw.plot_pdf(x, linear_bins=0, color='k', marker='o', lw=1, ax=ax);" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, figsize=(6,4))\n", + "fit.plot_pdf(c='b', lw=2, marker=\"*\", label='pdf', ax=ax)\n", + "fit.power_law.plot_pdf(c='b', ax=ax, ls='--', label='fit pdf')\n", + "fit.plot_ccdf(c='r', ax=ax, ls=\"-\", label='ccdf')\n", + "fit.power_law.plot_ccdf(c='r', ax=ax, ls='--', label='fit ccdf')\n", + "ax.legend(frameon=False);\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/quick_guide_igraph.html b/examples/quick_guide_igraph.html new file mode 100644 index 0000000..3430c8a --- /dev/null +++ b/examples/quick_guide_igraph.html @@ -0,0 +1,426 @@ + + + + + + + + igraph — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

igraph

+
+

Quick Guide for igraph

+

Code by : Abolfazl Ziaeemehr - https://github.com/Ziaeemehr

+

Open In Colab

+

First, ensure that python-igraph is installed. You can install it using pip:

+
+
[2]:
+
+
+
try:
+    import igraph
+    print(igraph.__version__)
+except ImportError:
+    print("igraph is not installed.")
+
+# If `igraph` is not installed, you can install it using the following command (uncomment the following line):
+# !pip install python-igraph
+
+
+
+
+
+
+
+
+0.11.6
+
+
+
+
+

Creating Graphs

+
    +
  • Empty Graph

  • +
+

To create an empty graph:

+
+
[2]:
+
+
+
import igraph as ig
+g = ig.Graph()
+
+
+
+
+
+

Graph with Nodes and Edges

+

To create a graph with 10 nodes and specific edges, also get summary of the graph with print(g):

+
+
[3]:
+
+
+
g = ig.Graph(n=10, edges=[[0, 1], [0, 5]])
+print(g)
+
+
+
+
+
+
+
+
+IGRAPH U--- 10 2 --
++ edges:
+0--1 0--5
+
+
+

This will display the number of vertices and edges, and list the edges if the graph is small.

+
+
+

Assigning Attributes

+

You can set and retrieve attributes for graphs, vertices, and edges.

+
+
[4]:
+
+
+
import igraph as ig
+
+# Create a graph with 3 nodes
+g = ig.Graph(n=3)
+
+# Assign a 'color' attribute to all nodes
+g.vs["color"] = ["red", "green", "blue"]
+
+# Assign a 'label' attribute to the first node
+g.vs[0]["label"] = "Node 1"
+
+# Assign a 'label' attribute to the second node
+g.vs[1]["label"] = "Node 2"
+
+
+
+
+
[5]:
+
+
+
# Create a graph with edges
+g.add_edges([(0, 1), (1, 2)])
+
+# Assign a 'weight' attribute to all edges
+g.es["weight"] = [1.5, 2.5]
+
+
+
+
+
+

Retrieving Attributes

+
+
[6]:
+
+
+
# Get all attributes for the first node
+node_attributes = g.vs[0].attributes()
+print(node_attributes)
+
+
+
+
+
+
+
+
+{'color': 'red', 'label': 'Node 1'}
+
+
+
+
[7]:
+
+
+
# Get the 'color' attribute for all nodes
+colors = g.vs["color"]
+print(colors)
+
+
+
+
+
+
+
+
+['red', 'green', 'blue']
+
+
+
+
[8]:
+
+
+
# Get all attributes for the first edge
+edge_attributes = g.es[0].attributes()
+print(edge_attributes)
+
+
+
+
+
+
+
+
+{'weight': 1.5}
+
+
+
+
[9]:
+
+
+
# Get the 'weight' attribute for all edges
+weights = g.es["weight"]
+print(weights)
+
+
+
+
+
+
+
+
+[1.5, 2.5]
+
+
+
+
+

Load graph from adjacency list

+
+
[10]:
+
+
+
import os
+from netsci.utils import list_sample_graphs
+from netsci.utils import get_sample_dataset_path
+from netsci.utils import download_sample_dataset
+
+def load_edges(filepath):
+    edges = []
+    with open(filepath, 'r') as file:
+        for line in file:
+            if line.startswith('#'):
+                continue  # Skip comments
+            A, B = map(int, line.split())
+            edges.append((A, B))
+    return edges
+
+def load_graphi(filepath:str, directed:bool=False):
+    edges = load_edges(filepath)
+    G = ig.Graph(edges=edges, directed=directed)
+
+    return G
+
+path = get_sample_dataset_path()
+
+# make sure you have downloaded the sample dataset
+download_sample_dataset()
+
+file_name = os.path.join(path, "collaboration.edgelist.txt")
+print(f"{path=}")
+
+G = load_graphi(file_name, directed=False)
+
+print(f"{'Number of vertices:':<30s} {G.vcount():20d}")
+print(f"{'Number of edges:':<30s} {G.ecount():20d}")
+print(f"{'Is directed:':<30s} {str(G.is_directed()):>20s}")
+print(f"{'Density:':<30s} {G.density():20.6f}")
+print(f"{'Average clustering coefficient:':30s}{G.transitivity_undirected():20.6f}")
+
+
+
+
+
+
+
+
+File /Users/tng/git/workshops/netsci/netsci/datasets/networks.zip already exists.
+path='/Users/tng/git/workshops/netsci/netsci/datasets/'
+Number of vertices:                           23133
+Number of edges:                              93439
+Is directed:                                  False
+Density:                                   0.000349
+Average clustering coefficient:            0.264317
+
+
+
+
+

Visualizing Graphs

+
+
[11]:
+
+
+
# need to install matplotlib and pycairo
+# !pip install pycairo -q
+
+
+
+
+
[12]:
+
+
+
import matplotlib.pyplot as plt
+
+fig, ax = plt.subplots()
+
+# Compute a layout
+layout = g.layout("kk")  # Kamada-Kawai layout
+
+# Define visual style
+visual_style = {}
+visual_style["vertex_size"] = 20
+visual_style["vertex_label"] = range(g.vcount())
+visual_style["layout"] = layout
+visual_style["bbox"] = (300, 300)  # Bounding box size
+visual_style["margin"] = 20
+
+# Plot the graph
+ig.plot(g, **visual_style)
+
+# Plot the graph in the axes
+ig.plot(g, target=ax, **visual_style)
+plt.show()
+
+
+
+
+
+
+
+../_images/examples_quick_guide_igraph_22_0.png +
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/examples/quick_guide_igraph.ipynb b/examples/quick_guide_igraph.ipynb new file mode 100644 index 0000000..3d250aa --- /dev/null +++ b/examples/quick_guide_igraph.ipynb @@ -0,0 +1,375 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [igraph](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/quick_guide_igraph.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### **Quick Guide for igraph**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, ensure that python-igraph is installed. You can install it using pip:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.11.6\n" + ] + } + ], + "source": [ + "try:\n", + " import igraph\n", + " print(igraph.__version__)\n", + "except ImportError:\n", + " print(\"igraph is not installed.\")\n", + " \n", + "# If `igraph` is not installed, you can install it using the following command (uncomment the following line):\n", + "# !pip install python-igraph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Creating Graphs\n", + "- Empty Graph\n", + "\n", + "To create an empty graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import igraph as ig\n", + "g = ig.Graph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Graph with Nodes and Edges\n", + "To create a graph with 10 nodes and specific edges, also get summary of the graph with `print(g)`:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IGRAPH U--- 10 2 --\n", + "+ edges:\n", + "0--1 0--5\n" + ] + } + ], + "source": [ + "g = ig.Graph(n=10, edges=[[0, 1], [0, 5]])\n", + "print(g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will display the number of vertices and edges, and list the edges if the graph is small." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assigning Attributes\n", + "You can set and retrieve attributes for graphs, vertices, and edges." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import igraph as ig\n", + "\n", + "# Create a graph with 3 nodes\n", + "g = ig.Graph(n=3)\n", + "\n", + "# Assign a 'color' attribute to all nodes\n", + "g.vs[\"color\"] = [\"red\", \"green\", \"blue\"]\n", + "\n", + "# Assign a 'label' attribute to the first node\n", + "g.vs[0][\"label\"] = \"Node 1\"\n", + "\n", + "# Assign a 'label' attribute to the second node\n", + "g.vs[1][\"label\"] = \"Node 2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Create a graph with edges\n", + "g.add_edges([(0, 1), (1, 2)])\n", + "\n", + "# Assign a 'weight' attribute to all edges\n", + "g.es[\"weight\"] = [1.5, 2.5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Retrieving Attributes" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'color': 'red', 'label': 'Node 1'}\n" + ] + } + ], + "source": [ + "# Get all attributes for the first node\n", + "node_attributes = g.vs[0].attributes()\n", + "print(node_attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['red', 'green', 'blue']\n" + ] + } + ], + "source": [ + "# Get the 'color' attribute for all nodes\n", + "colors = g.vs[\"color\"]\n", + "print(colors)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'weight': 1.5}\n" + ] + } + ], + "source": [ + "# Get all attributes for the first edge\n", + "edge_attributes = g.es[0].attributes()\n", + "print(edge_attributes)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.5, 2.5]\n" + ] + } + ], + "source": [ + "# Get the 'weight' attribute for all edges\n", + "weights = g.es[\"weight\"]\n", + "print(weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Load graph from adjacency list" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File /Users/tng/git/workshops/netsci/netsci/datasets/networks.zip already exists.\n", + "path='/Users/tng/git/workshops/netsci/netsci/datasets/'\n", + "Number of vertices: 23133\n", + "Number of edges: 93439\n", + "Is directed: False\n", + "Density: 0.000349\n", + "Average clustering coefficient: 0.264317\n" + ] + } + ], + "source": [ + "import os\n", + "from netsci.utils import list_sample_graphs\n", + "from netsci.utils import get_sample_dataset_path\n", + "from netsci.utils import download_sample_dataset\n", + "\n", + "def load_edges(filepath):\n", + " edges = []\n", + " with open(filepath, 'r') as file:\n", + " for line in file:\n", + " if line.startswith('#'):\n", + " continue # Skip comments\n", + " A, B = map(int, line.split())\n", + " edges.append((A, B))\n", + " return edges\n", + "\n", + "def load_graphi(filepath:str, directed:bool=False):\n", + " edges = load_edges(filepath)\n", + " G = ig.Graph(edges=edges, directed=directed)\n", + "\n", + " return G\n", + "\n", + "path = get_sample_dataset_path()\n", + "\n", + "# make sure you have downloaded the sample dataset\n", + "download_sample_dataset()\n", + "\n", + "file_name = os.path.join(path, \"collaboration.edgelist.txt\")\n", + "print(f\"{path=}\")\n", + "\n", + "G = load_graphi(file_name, directed=False)\n", + "\n", + "print(f\"{'Number of vertices:':<30s} {G.vcount():20d}\")\n", + "print(f\"{'Number of edges:':<30s} {G.ecount():20d}\")\n", + "print(f\"{'Is directed:':<30s} {str(G.is_directed()):>20s}\")\n", + "print(f\"{'Density:':<30s} {G.density():20.6f}\")\n", + "print(f\"{'Average clustering coefficient:':30s}{G.transitivity_undirected():20.6f}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Visualizing Graphs" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# need to install matplotlib and pycairo\n", + "# !pip install pycairo -q " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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GZDftW/fPtxuN99//705e/jhh3n00UdxOp0WJhMRkaKgMiC/KTMzk2nTppGXlwdA6dKlSUxMpE2bNhYnExGRoqIyIJdUUFDAvHnzWLFihTmrV68eLpeLG2+80cJkIiJS1FQG5FdOnDhBWloa27dvN2edO3fmqaeeIioqysJkIiJSHFQG5Ge2bNnC+PHjOX36NAAREREMHTqU+++/X8sGRURClMqAAIXLBpctW8aCBQvMZYM33HADLpeLRo0aWZxORESKk8qAcP78eaZOncqnn35qzlq0aEFSUhLly5e3MJmIiJQElQGb27NnD263m4MHD5qzvn370rdvXy0bFBGxCZUBG/vwww+ZOXMmFy5cAKBs2bIkJibSunVri5OJiEhJUhmwofz8fObOncuqVavMWYMGDXC5XFSrVs3CZCIiYgWVAZs5duwYaWlp7Nixw5x16dKF4cOHExkZaWEyERGxisqAjXz++edMmDCBs2fPAoXLBocPH07Xrl0tTiYiIlZSGbABv9/P0qVLWbRoEYZhAFC1alVSU1Np0KCBxelERMRqKgMh7ty5c0yZMoWNGzeas9atW5OYmEjZsmUtTCYiIoFCZSCE7dq1C7fbzZEjRwBwOBz8+c9/5pFHHiEsLMzidCIiEihUBkLUmjVreOGFF8jPzwegXLlyJCUl0bJlS4uTiYhIoFEZCDH5+fnMnj2b1atXm7NGjRrhcrm44YYbLEwmIiKBSmUghBw5cgSPx8O3335rzv7rv/6LwYMHa9mgiIhclspAiPjss8+YNGkS586dA6BUqVKMGDGCzp07W5xMREQCncpAkPP5fLz66qssWbLEXDZYvXp1UlNTqVevnsXpREQkGKgMBLGzZ88yceJENm3aZM7atm3LM888Q5kyZSxMJiIiwURlIEh98803eDwejh07BkBYWBh/+ctf6NmzJw6Hw+J0IiISTFQGgoxhGKxevZrZs2dTUFAAQIUKFRg7dizNmze3NpyIiAQllYEgkpeXx/PPP88HH3xgzpo0aUJKSgqVK1e2MJmIiAQzlYEgcejQIdxuN99995056969O4MGDSIiIsLCZCIiEuxUBoLAhg0bmDx5MufPnwcgKiqKUaNG8cc//tHiZCIiEgpUBgKYz+dj4cKFvP766+asZs2auFwu6tSpY10wEREJKSoDAerUqVNMmDCBLVu2mLN27dox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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "# Compute a layout\n", + "layout = g.layout(\"kk\") # Kamada-Kawai layout\n", + "\n", + "# Define visual style\n", + "visual_style = {}\n", + "visual_style[\"vertex_size\"] = 20\n", + "visual_style[\"vertex_label\"] = range(g.vcount())\n", + "visual_style[\"layout\"] = layout\n", + "visual_style[\"bbox\"] = (300, 300) # Bounding box size\n", + "visual_style[\"margin\"] = 20\n", + "\n", + "# Plot the graph\n", + "ig.plot(g, **visual_style)\n", + "\n", + "# Plot the graph in the axes\n", + "ig.plot(g, target=ax, **visual_style)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/quick_guide_networkx.html b/examples/quick_guide_networkx.html new file mode 100644 index 0000000..22fdeac --- /dev/null +++ b/examples/quick_guide_networkx.html @@ -0,0 +1,267 @@ + + + + + + + + Networkx — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Networkx

+
+

Quick Guide for Networkx

+

Code by : Abolfazl Ziaeemehr - https://github.com/Ziaeemehr

+

Open In Colab

+
+

Creating Graphs

+
+
+
+

Basic Graph Types

+

NetworkX provides several types of graphs: - Graph: An undirected graph. - DiGraph: A directed graph. - MultiGraph: An undirected graph that can have multiple edges between nodes. - MultiDiGraph: A directed graph with multiple edges.

+

You can create an empty graph as follows:

+
+
[8]:
+
+
+
import numpy as np
+import networkx as nx
+
+G = nx.Graph()  # or nx.DiGraph(), nx.MultiGraph(), nx.MultiDiGraph()
+
+
+
+
+
+

Adding Nodes and Edges

+

You can add nodes and edges to a graph using the following methods:

+
+
[13]:
+
+
+
# Add a single node
+G.add_node(1)
+
+# Add multiple nodes
+G.add_nodes_from([2, 3])
+
+# Add an edge between two nodes
+G.add_edge(1, 2)
+
+# Add multiple edges
+G.add_edges_from([(2, 3), (3, 4)])
+
+# get degree distribution
+degrees = dict(G.degree())
+degrees
+
+
+
+
+
[13]:
+
+
+
+
+{1: 1, 2: 2, 3: 2, 4: 1}
+
+
+

Nodes can be any hashable Python object except None.

+
+
+

Node and Edge Attributes

+

You can also add attributes to nodes and edges:

+
+
[4]:
+
+
+
# Add node with attributes
+G.add_node(4, color='red')
+
+# Add edge with attributes
+G.add_edge(1, 3, weight=4.2)
+
+
+
+
+
+

Graph Algorithms

+

NetworkX provides a wide range of graph algorithms, such as shortest path, clustering, and many others. For example, to find the shortest path using Dijkstra’s algorithm:

+
+
[5]:
+
+
+
# Create a weighted graph
+G = nx.Graph()
+edges = [('a', 'b', 0.3), ('b', 'c', 0.9), ('a', 'c', 0.5), ('c', 'd', 1.2)]
+G.add_weighted_edges_from(edges)
+
+# Find shortest path
+path = nx.dijkstra_path(G, 'a', 'd')
+print(path)  # Output: ['a', 'c', 'd']
+
+
+
+
+
+
+
+
+['a', 'c', 'd']
+
+
+
+
+

Visualization

+

NetworkX includes basic functionality for visualizing graphs, although it is primarily designed for graph analysis. You can use Matplotlib to draw graphs:

+
+
[6]:
+
+
+
import matplotlib.pyplot as plt
+
+G = nx.complete_graph(5)
+nx.draw(G, with_labels=True)
+plt.show()
+
+
+
+
+
+
+
+../_images/examples_quick_guide_networkx_13_0.png +
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/examples/quick_guide_networkx.ipynb b/examples/quick_guide_networkx.ipynb new file mode 100644 index 0000000..60bf575 --- /dev/null +++ b/examples/quick_guide_networkx.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Networkx](https://github.com/Ziaeemehr/netsci/blob/main/docs/examples/quick_guide_networkx.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### **Quick Guide for Networkx**\n", + "\n", + "Code by : Abolfazl Ziaeemehr \n", + "- https://github.com/Ziaeemehr\n", + "\n", + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating Graphs\n", + "\n", + "#### Basic Graph Types\n", + "\n", + "NetworkX provides several types of graphs:\n", + "- **Graph**: An undirected graph.\n", + "- **DiGraph**: A directed graph.\n", + "- **MultiGraph**: An undirected graph that can have multiple edges between nodes.\n", + "- **MultiDiGraph**: A directed graph with multiple edges." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can create an empty graph as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import networkx as nx\n", + "\n", + "G = nx.Graph() # or nx.DiGraph(), nx.MultiGraph(), nx.MultiDiGraph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Adding Nodes and Edges\n", + "You can add nodes and edges to a graph using the following methods:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1: 1, 2: 2, 3: 2, 4: 1}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Add a single node\n", + "G.add_node(1)\n", + "\n", + "# Add multiple nodes\n", + "G.add_nodes_from([2, 3])\n", + "\n", + "# Add an edge between two nodes\n", + "G.add_edge(1, 2)\n", + "\n", + "# Add multiple edges\n", + "G.add_edges_from([(2, 3), (3, 4)])\n", + "\n", + "# get degree distribution\n", + "degrees = dict(G.degree())\n", + "degrees" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nodes can be any hashable Python object except None." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Node and Edge Attributes\n", + "You can also add attributes to nodes and edges:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Add node with attributes\n", + "G.add_node(4, color='red')\n", + "\n", + "# Add edge with attributes\n", + "G.add_edge(1, 3, weight=4.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Graph Algorithms\n", + "NetworkX provides a wide range of graph algorithms, such as shortest path, clustering, and many others. For example, to find the shortest path using Dijkstra's algorithm:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'c', 'd']\n" + ] + } + ], + "source": [ + "# Create a weighted graph\n", + "G = nx.Graph()\n", + "edges = [('a', 'b', 0.3), ('b', 'c', 0.9), ('a', 'c', 0.5), ('c', 'd', 1.2)]\n", + "G.add_weighted_edges_from(edges)\n", + "\n", + "# Find shortest path\n", + "path = nx.dijkstra_path(G, 'a', 'd')\n", + "print(path) # Output: ['a', 'c', 'd']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Visualization\n", + "NetworkX includes basic functionality for visualizing graphs, although it is primarily designed for graph analysis. You can use Matplotlib to draw graphs:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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JZGJefXthbGefR75LG8AcFn6ZYvGffAsb4ZJIiIyNZ6hJBLB1lmDYSEx7vUcC4kZts4abNQxiYiIngQDJZEIBthbY8NDz9s2ho3BMgxo4ws/RERETWGgJBJJZIArVk7xNspY70zxQUSAq1HGIiIiaileyiES2Q8phVifmAGNTnjsze+HmUvMYCExw8ZgGcMkERGJioGSqB0oqlBh7aGrOJNTBnOJ2SOD5YPXx3r2wdZZg7nNTUREomOgJGpHlCV3sSe5ECezS1FYrsLD35xmuN+0fLy3E+aOdOVtbiIiajcYKInaqRq1BvnlNajX6NDNQoKBDjZ8Ag4REbVLDJREREREZBDe8iYiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjIIAyURERERGYSBkoiIiIgMwkBJRERERAZhoCQiIiIigzBQEhEREZFBGCiJiIiIyCAMlERERERkEAZKIiIiIjLI/wMVJ4BQPoQRMQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "G = nx.complete_graph(5)\n", + "nx.draw(G, with_labels=True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/genindex.html b/genindex.html new file mode 100644 index 0000000..0747d20 --- /dev/null +++ b/genindex.html @@ -0,0 +1,247 @@ + + + + + + + Index — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..648e92e --- /dev/null +++ b/index.html @@ -0,0 +1,640 @@ + + + + + + + + Python codes for Network Science, Barabási, 2013. — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Python codes for Network Science, Barabási, 2013.

+
    +
  • Barabási, A.L., 2013. Network science. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 371(1987), p.20120375.

  • +
+
+

Installation, How to use

+
    +
  • using on Colab (Recommended)

    +
      +
    • Go to examples

    • +
    • Open a notebook and click on “open on colab”

    • +
    • Uncomment the cell with pip install command to install the netsci package.

    • +
    +
  • +
  • using on local machines

  • +
+
pip3 install -e .
+# or
+pip install "git+https://github.com/Ziaeemehr/netsci.git"
+
+
+
+

Indices and tables

+ +
+
+
+

Table of Chapters

+ + + + + + + + + + + + + + + + + + + + + + + +

View Notebook

Open in Colab

Networkx quick guide

Networkx quick guide [C]

Igraph quick guide

Igraph quick guide [C]

Chapter 2

Chapter 2 [C]

Chapter 3

Chapter 3 [C]

Chapter 4

Chapter 4 [C]

+
+
+

Chapters

+ +
+
+

API and documentation

+
+

netsci.analysis

+
+
+find_sap(G, start, target, path=None)[source]
+

Finds all self-avoiding paths (SAPs) in a given graph from a start node to a target node. +A self-avoiding path is a path that does not revisit any node.

+
+
Parameters:
+
+
graphNetworkX graph

The input graph where SAPs will be found.

+
+
startstr or int

The node where the search for SAPs starts.

+
+
targetstr or int

The node where the search for SAPs ends.

+
+
pathlist, optional

Internal parameter used to keep track of the current path during the search.

+
+
+
+
Yields:
+
+
list

A self-avoiding path from the start node to the target node.

+
+
+
+
+

Examples

+
>>> import networkx as nx
+>>> G = nx.Graph()
+>>> edges = [('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('E', 'F')]
+>>> G.add_edges_from(edges)
+>>> start_node = 'A'
+>>> target_node = 'F'
+>>> all_saps = list(find_sap(G, start_node, target_node))
+>>> for path in all_saps:
+>>>     print("->".join(path))
+
+
+
+ +
+
+is_hamiltonian_path(G, path)[source]
+

Check if a given path is a Hamiltonian path in a graph.

+
+ +
+
+find_hamiltonian_path(G)[source]
+

find the Hamiltonian path in given graph.

+
+
Parameters:
+
+
G: nx.Graph or nx.DiGraph

input graph.

+
+
Returns
+
valuelist of nodes in Hamiltonian path if exists, otherwise None.
+
+
+
+
+ +
+
+check_connectivity(G)[source]
+

Check if the graph is connected.

+
+
Parameters:
+
+
Gnetworkx.Graph, networkx.DiGraph

The input graph.

+
+
+
+
Returns:
+
+
connectivity: (str)

for directed graphs, it returns +- “weakly connected” +- “strongly connected” +- “disconnected”. +for undirected graphs, +- “connected” +- “disconnected”.

+
+
+
+
+
+ +
+
+graph_info(G, quick=True)[source]
+

Generate various graph information.

+
+
Parameters:
+
+
G(networkx.Graph, networkx.DiGraph)

The input graph for which the information is to be generated.

+
+
+
+
+
+ +
+
+longest_shortest_path(G)[source]
+

Calculate the longest shortest path (diameter) in a given graph.

+
+
Parameters:
+
+
G (networkx.Graph or networkx.DiGraph):

The input graph, which can be directed or undirected. +The graph should be connected, otherwise the diameter will not be defined.

+
+
+
+
Returns:
+
+
valueint, float

The longest shortest path (diameter) in the graph. +If the graph is empty, returns 0. +If the graph is not connected, returns float(‘inf’).

+
+
+
+
+
+ +
+
+average_degree(G)[source]
+

Calculate the average degree of a graph.

+
+
Parameters:
+
+
G (networkx.Graph or networkx.DiGraph):

The input graph, which can be directed or undirected.

+
+
+
+
Returns:
+
+
vlaue: float

The average degree of the graph.

+
+
+
+
+
+ +
+
+

netsci.utils

+
+
+get_adjacency_list(G)[source]
+

Generate an adjacency list representation of a given graph.

+
+
Parameters:
+
+
G (networkx.Graph, networkx.DiGraph):

The input graph for which the adjacency list is to be generated.

+
+
+
+
Returns:
+
+
value: dict

A dictionary where each key is a node in the graph and the corresponding value is a list of neighboring nodes.

+
+
+
+
+
+ +
+
+download_sample_dataset()[source]
+
+ +
+
+load_sample_graph(name, verbose=False)[source]
+

Load a graph and return it as a NetworkX graph.

+
+
Parameters:
+
+
name: str

The name of the graph. Get names from netsci.utils.show_sample_graphs().

+
+
verbose: bool, optional

If True, print information about the loaded graph. Default is True.

+
+
+
+
Returns:
+
+
value: networkx.Graph

Loaded graph.

+
+
+
+
+
+ +
+
+list_sample_graphs()[source]
+

make a list of available real world graphs on datasets

+
+ +
+
+generate_power_law_dist(N: int, a: float, xmin: float)[source]
+

generate power law random numbers p(k) ~ x^(-a) for a>1

+
+
Parameters:
+
+
N:

is the number of random numbers

+
+
a:

is the exponent

+
+
xmin:

is the minimum value of distribution

+
+
+
+
Returns:
+
+
value: np.array

powerlaw distribution

+
+
+
+
+
+ +
+
+generate_power_law_dist_bounded(N: int, a: float, xmin: float, xmax: float, seed: int = -1)[source]
+

Generate a power law distribution of floats p(k) ~ x^(-a) for a>1 +which is bounded by xmin and xmax

+
+
parameters :
+
N: int

number of samples in powerlaw distribution (pwd).

+
+
a:

exponent of the pwd.

+
+
xmin:

min value in pwd.

+
+
xmax:

max value in pwd.

+
+
+
+
+
+ +
+
+generate_power_law_discrete(N: int, a: float, xmin: float, xmax: float, seed: int = -1)[source]
+

Generate a power law distribution of p(k) ~ x^(-a) for a>1, +with discrete values.

+
+ +
+
+tune_min_degree(N: int, a: float, xmin: int, xmax: int, max_iteration: int = 100)[source]
+

Find the minimum degree value of a power law graph that results in a connected graph

+
+ +
+
+make_powerlaw_graph(N: int, a: float, avg_degree: int, xmin: int = 1, xmax: int = 10000, seed: int = -1, xtol=0.01, degree_interval=5.0, plot=False, **kwargs)[source]
+

make a powerlaw graph with the given parameters

+
+
Parameters:
+
+
N:

number of nodes

+
+
a: float

exponent of the power law distribution

+
+
avg_degree:

expected average degree

+
+
xmin: int, optional

minimum value in the power law distribution. Default is 1.

+
+
xmax: int, optional

maximum value in the power law distribution. Default is 10000.

+
+
seed: int, optional

Seed for reproducibility. Default is -1.

+
+
xtol: float, optional

tolerance for bisection method. Default is 0.01.

+
+
degree_interval: float, optional

interval for bisection method. Default is 5.0.

+
+
plot: bool, optional

If True, plot the power law distribution. Default is False.

+
+
kwargs: obtional

additional keyword arguments for plot_pdf function.

+
+
+
+
+
+ +
+
+generate_power_law_discrete_its(alpha: float, k_min: int, k_max: int, size: int = 1)[source]
+

Generates the power law discrete distributions using the inverse transform sampling method.

+
+
Parameters:
+
+
alpha

Power law exponent.

+
+
k_min

Minimum degree.

+
+
k_max

Maximum degree.

+
+
size

Number of samples to generate. Defaults to 1.

+
+
+
+
Returns:
+
+
np.array:

Array of generated power law discrete distributions.

+
+
+
+
+

References

+

Devroye, L. (1986). “Non-Uniform Random Variate Generation.” Springer-Verlag, New York.

+

Examples

+
>>> gamma = 2.5  # Power-law exponent
+>>> k_min = 1    # Minimum value of k
+>>> k_max = 1000 # Maximum value of k
+>>> size = 10000 # Number of samples
+>>> samples = power_law_discrete(gamma, k_min, k_max, size)
+
+
+
+ +
+
+get_sample_dataset_path()[source]
+
+ +
+
+

netsci.plot

+
+
+plot_graph(G, **kwargs)[source]
+

Plots a NetworkX graph with customizable options.

+
+
Parameters:
+
+
GNetworkX graph

A NetworkX graph object (e.g., nx.Graph, nx.DiGraph).

+
+
**kwargskeyword arguments

Additional keyword arguments to customize the plot. These can include:

+
+
node_colorstr or list, optional

Color of the nodes (can be a single color or a list of colors).

+
+
node_sizeint or list, optional

Size of the nodes (single value or list of sizes).

+
+
edge_colorstr or list, optional

Color of the edges (can be a single color or a list of colors).

+
+
widthfloat, optional

Width of the edges.

+
+
with_labelsbool, optional

Whether to draw node labels or not.

+
+
font_sizeint, optional

Size of the font for node labels.

+
+
font_colorstr, optional

Color of the font for node labels.

+
+
titlestr, optional

Title of the plot.

+
+
seedint, optional

Seed for the random layout algorithm.

+
+
figsizetuple, optional

Size of the figure.

+
+
ax: axes object

Axes object to draw the plot on. Defaults to None, which will create a new figure.

+
+
pos: object, optional

Graph layout (e.g., nx.spring_layout, nx.circular_layout), nx.kamada_kaway_layout(G). +Defaults to nx.spring_layout(G).

+
+
+
+
+
+
+
+ +
+
+
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..2155f6ba75675187fe9b58e2e9807ca9e7879957 GIT binary patch literal 1718 zcmV;n21)rNAX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkzWps06 zX$m7CR%LQ?X>V>iATTa5E@WkPF)L>=H8)~pHZ%$&AXI2&AaZ4GVQFq;WpW^IW*~HE zX>%ZEX>4U6X>%ZBZ*6dLWpi_7WFU2OX>MmAdTeQ8E(&5r8c-AzhEyDxz?morDh;YidZqf*2S z<%iE(p6pVJt`N%-`Z3+eZ91_s`~$)lnK7J_jHCy_M7YP4ywifLX_U})L8%58c;#Te46lmmU5!kV4J6^jEE$H zN_fEOnr5m3C5>{vr$v;KeUvZ}7gW;!2PI-soQ-t;9m#0PcgiaXLXr_l{v4)JcF5?Z!qpO=K z%MaNS37LFO$&#iBU!x-%?T+r%g`@?#@qtWYYk_Y7aFhGmcpTWI1j`NO#Q}o-VC-M5 zy}3a4!W%)7rP}W|(`yL)Yi(?PA@%DB_!f}Z+iqfSeIS!1%h;BY6zh#uu;tDy?l|=1 zi_@`^qPElJ#7bSIPr%hovNbhTnJqnQLnaeFpm)DnB++x^l>4dyFc zP?ayW!}h#*6A(5(LvXB7C*z2(kTyb}%qo=V@YLj95&eQrf z2<}FQ1b-a`Q5LAS(1{?(T2#q6B6tVbP{=AYx)iVSJ(6%0JwS>>Sl$jmfkIm zAIk^hPmtITA$XNBQpTtJ zQ`TxPulnY562GZecnFh4-=`9wQs9lI*@~E`J6P$xofkZ(g*-rlzJ8tKm;2ebIsWB& zKF5pa-xl-d*FTVwqehM@d5gkdJEjg8>m5tfTbxPFV9h(sP5Im30Ne=?f~_;%Mv1gF zLPc1x$*hK$H4wEBH9`m<^#V(z#wzO~jLLoG{b0STYx@QOB4A%M_DpVY#uF;A>PeU; z>)^CJG(b-^(A)so_Yti^Mun6L85M+~y$EDeI>8IWY+;*>RiWB;{Z@|6TX|UYZ^K|( zZ5sj7YE-L{Rzuht1vU!2;srh_N5318hdziABO^vi9FRkG7%LckKWleAHyEw$)kp*P z*EIZ!|johHS>6a;tJ&hwFi&{A+p4pDf5E!u&7c5;-kA5U z{Q=BpY8bdNZTm+g1tsM623a{s^`}@PEc)hd zu_Mm#C~G9@urtKS%V=mc24Xb?05v>?of)~E%g}&?7zZ+y=P;BIW}z$Fj0n$RR)d5X z4=_C%K?2Dg`HkoYDYyoiU>+`Kh>@3(V=xLL?)WVb3^tsgF2BFsu(aUM_(!=bfzV7?-c`=n?DK z(#~@EsyTG^r@sbF9X%j3^8R3K!1rhj+@C89_#REX20r0AVMc}sgGcF6K+hLE)tt>r zbQh0={zs6d(9({$m4rIpf|4TcwF)bnSxnCjbBd literal 0 HcmV?d00001 diff --git a/py-modindex.html b/py-modindex.html new file mode 100644 index 0000000..8c88906 --- /dev/null +++ b/py-modindex.html @@ -0,0 +1,113 @@ + + + + + + + Python Module Index — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + +
+
+
+
+ + +

Python Module Index

+ +
+ n +
+ + + + + + + + + + + + + + + + +
 
+ n
+ netsci +
    + netsci.analysis +
    + netsci.plot +
    + netsci.utils +
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 0000000..d71ace6 --- /dev/null +++ b/search.html @@ -0,0 +1,100 @@ + + + + + + + Search — netsci 0.1.dev1+g157bd64 documentation + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Search

+ + + + +

+ Searching for multiple words only shows matches that contain + all words. +

+ + +
+ + + +
+ + +
+ + +
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 0000000..99e19cc --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"API and documentation": [[5, "module-netsci"]], "Adding Nodes and Edges": [[4, "Adding-Nodes-and-Edges"]], "Assigning Attributes": [[3, "Assigning-Attributes"]], "Basic Graph Types": [[4, "Basic-Graph-Types"]], "Binimial distribution": [[1, "Binimial-distribution"]], "Chapter 2": [[0, null]], "Chapter 3": [[1, null]], "Chapter 4": [[2, null]], "Chapters": [[5, "chapters"]], "Clustering coefficient": [[1, "Clustering-coefficient"]], "Contents:": [[5, null]], "Creating Graphs": [[3, "Creating-Graphs"], [4, "Creating-Graphs"]], "Degree distribution of real networks": [[1, "Degree-distribution-of-real-networks"]], "Generate the powerlaw distribution (bounded)": [[2, "Generate-the-powerlaw-distribution-(bounded)"]], "Graph Algorithms": [[4, "Graph-Algorithms"]], "Graph Theory": [[0, "Graph-Theory"]], "Graph with Nodes and Edges": [[3, "Graph-with-Nodes-and-Edges"]], "Indices and tables": [[5, "indices-and-tables"]], "Installation, How to use": [[5, "installation-how-to-use"]], "Load graph from adjacency list": [[3, "Load-graph-from-adjacency-list"]], "Networkx": [[4, null]], "Node and Edge Attributes": [[4, "Node-and-Edge-Attributes"]], "Powerlaw package": [[2, "Powerlaw-package"]], "Python codes for Network Science, Barab\u00e1si, 2013.": [[5, null]], "Quick Guide for Networkx": [[4, "Quick-Guide-for-Networkx"]], "Quick Guide for igraph": [[3, "Quick-Guide-for-igraph"]], "Random Networks": [[1, "Random-Networks"]], "Retrieving Attributes": [[3, "Retrieving-Attributes"]], "THE SCALE-FREE PROPERTY": [[2, "THE-SCALE-FREE-PROPERTY"]], "Table 2.1": [[0, "Table-2.1"]], "Table of Chapters": [[5, "table-of-chapters"]], "The evolution of a random network": [[1, "The-evolution-of-a-random-network"]], "Visualization": [[4, "Visualization"]], "Visualizing Graphs": [[3, "Visualizing-Graphs"]], "igraph": [[3, null]], "load sample graphs of the book": [[2, "load-sample-graphs-of-the-book"]], "netsci.analysis": [[5, "module-netsci.analysis"]], "netsci.plot": [[5, "module-netsci.plot"]], "netsci.utils": [[5, "module-netsci.utils"]]}, "docnames": ["examples/chap_02", "examples/chap_03", "examples/chap_04", "examples/quick_guide_igraph", "examples/quick_guide_networkx", "index"], "envversion": {"nbsphinx": 4, "sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["examples/chap_02.ipynb", "examples/chap_03.ipynb", "examples/chap_04.ipynb", "examples/quick_guide_igraph.ipynb", "examples/quick_guide_networkx.ipynb", "index.rst"], "indexentries": {"average_degree() (in module netsci.analysis)": [[5, "netsci.analysis.average_degree", false]], "check_connectivity() (in module netsci.analysis)": [[5, "netsci.analysis.check_connectivity", false]], "download_sample_dataset() (in module netsci.utils)": [[5, "netsci.utils.download_sample_dataset", false]], "find_hamiltonian_path() (in module netsci.analysis)": [[5, "netsci.analysis.find_hamiltonian_path", false]], "find_sap() (in module netsci.analysis)": [[5, "netsci.analysis.find_sap", false]], "generate_power_law_discrete() (in module netsci.utils)": [[5, "netsci.utils.generate_power_law_discrete", false]], "generate_power_law_discrete_its() (in module netsci.utils)": [[5, "netsci.utils.generate_power_law_discrete_its", false]], "generate_power_law_dist() (in module netsci.utils)": [[5, "netsci.utils.generate_power_law_dist", false]], "generate_power_law_dist_bounded() (in module netsci.utils)": [[5, "netsci.utils.generate_power_law_dist_bounded", false]], "get_adjacency_list() (in module netsci.utils)": [[5, "netsci.utils.get_adjacency_list", false]], "get_sample_dataset_path() (in module netsci.utils)": [[5, "netsci.utils.get_sample_dataset_path", false]], "graph_info() (in module netsci.analysis)": [[5, "netsci.analysis.graph_info", false]], "is_hamiltonian_path() (in module netsci.analysis)": [[5, "netsci.analysis.is_hamiltonian_path", false]], "list_sample_graphs() (in module netsci.utils)": [[5, "netsci.utils.list_sample_graphs", false]], "load_sample_graph() (in module netsci.utils)": [[5, "netsci.utils.load_sample_graph", false]], "longest_shortest_path() (in module netsci.analysis)": [[5, "netsci.analysis.longest_shortest_path", false]], "make_powerlaw_graph() (in module netsci.utils)": [[5, "netsci.utils.make_powerlaw_graph", false]], "module": [[5, "module-netsci", false], [5, "module-netsci.analysis", false], [5, "module-netsci.plot", false], [5, "module-netsci.utils", false]], "netsci": [[5, "module-netsci", false]], "netsci.analysis": [[5, "module-netsci.analysis", false]], "netsci.plot": [[5, "module-netsci.plot", false]], "netsci.utils": [[5, "module-netsci.utils", false]], "plot_graph() (in module netsci.plot)": [[5, "netsci.plot.plot_graph", false]], "tune_min_degree() (in module netsci.utils)": [[5, "netsci.utils.tune_min_degree", false]]}, "objects": {"": [[5, 0, 0, "-", "netsci"]], "netsci": [[5, 0, 0, "-", "analysis"], [5, 0, 0, "-", "plot"], [5, 0, 0, "-", "utils"]], "netsci.analysis": [[5, 1, 1, "", "average_degree"], [5, 1, 1, "", "check_connectivity"], [5, 1, 1, "", "find_hamiltonian_path"], [5, 1, 1, "", "find_sap"], [5, 1, 1, "", "graph_info"], [5, 1, 1, "", "is_hamiltonian_path"], [5, 1, 1, "", "longest_shortest_path"]], "netsci.plot": [[5, 1, 1, "", "plot_graph"]], "netsci.utils": [[5, 1, 1, "", "download_sample_dataset"], [5, 1, 1, "", "generate_power_law_discrete"], [5, 1, 1, "", "generate_power_law_discrete_its"], [5, 1, 1, "", "generate_power_law_dist"], [5, 1, 1, "", "generate_power_law_dist_bounded"], [5, 1, 1, "", "get_adjacency_list"], [5, 1, 1, "", "get_sample_dataset_path"], [5, 1, 1, "", "list_sample_graphs"], [5, 1, 1, "", "load_sample_graph"], [5, 1, 1, "", "make_powerlaw_graph"], [5, 1, 1, "", "tune_min_degree"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:function"}, "terms": {"": [0, 1, 4], "0": [0, 1, 2, 3, 4, 5], "00": 0, "000": 1, "000035809608483": 2, "000349": 3, "001": 1, "01": 5, "018500": 0, "02600579145725683": 2, "042": 2, "0784": [1, 2], "078416": 0, "1": [1, 2, 3, 4, 5], "10": [0, 1, 2, 3], "100": [0, 1, 2, 5], "1000": [0, 1, 2, 5], "10000": [1, 2, 5], "100000": 2, "103731": 0, "1039": 0, "10d": 1, "11": [0, 1, 2, 3], "12": [0, 1, 2, 3], "13": [0, 1, 2, 4], "13it": 0, "14": [0, 2], "1497134": 0, "15": [0, 1, 2], "164": 1, "1682": 1, "168431": 0, "17": 0, "18": 0, "19": [0, 1], "192244": 0, "192513": 0, "19463": 0, "1986": 5, "1987": 5, "1993": 1, "1e": [1, 2], "1e4": 1, "2": [1, 2, 3, 4, 5], "20": [0, 1, 3], "2003": 1, "2007": 1, "20120375": 5, "2014": 2, "2016": 2, "2018": 0, "20d": 3, "21": 0, "210": 1, "210340371976182": 1, "22": 2, "23133": [0, 1, 2, 3], "263968413468816e": 2, "264317": 3, "2930": 0, "2f": [0, 2], "3": [0, 2, 3, 4, 5], "30": 3, "300": 3, "309": 1, "325729": 0, "327": 2, "33": 0, "336385": 0, "3364": 0, "36595": 0, "371": 5, "39": [1, 2, 3, 4], "39513593875918": 2, "3f": [1, 2], "4": [0, 1, 3, 4, 5], "408": 1, "449673": 0, "4689479": 0, "480": 1, "4941": 0, "496": 2, "5": [0, 1, 2, 3, 4, 5], "50": [1, 2], "500": 1, "507": 1, "57194": 0, "5802": 0, "6": [0, 1, 2, 3, 4], "6000": 0, "606": 1, "609066": 0, "627339": 0, "6594": 0, "669095": 0, "6f": 3, "7": [0, 1, 2, 3], "70": 2, "700": 0, "705": 1, "72": 0, "74": 2, "8": [0, 1, 2, 3, 4], "8028": 1, "803": 1, "82": 0, "857285": 0, "894": 2, "9": [0, 1, 2, 3, 4], "900": 1, "902": 1, "903865": 0, "91826": 0, "93439": [0, 1, 2, 3], "9363": 1, "937": 2, "9727455051284": 2, "9755": 1, "9909": 1, "995340848455978": 2, "9967": 1, "9989": 1, "9997": 1, "9998": 1, "9999": 1, "A": [0, 1, 3, 4, 5], "For": [1, 4], "If": [0, 1, 3, 5], "No": 0, "THE": 5, "The": 5, "These": 5, "To": [1, 3], "_": 0, "__main__": 0, "__name__": 0, "__version__": 3, "abolfazl": [0, 1, 2, 3, 4], "about": 5, "accord": 2, "acm": 1, "actor": [0, 1, 2], "ad": 5, "add": [0, 1, 4], "add_edg": [1, 3, 4], "add_edges_from": [0, 4, 5], "add_nod": 4, "add_nodes_from": [1, 4], "add_weighted_edges_from": 4, "addedg": 0, "addit": 5, "adj": 0, "adjac": [0, 5], "adjacecci": 0, "adjacency_list": 0, "adjacency_matrix": 0, "adjlist": 0, "algorithm": 5, "all": [0, 1, 3, 5], "all_sap": [0, 5], "alpha": [2, 5], "alpha_power_law": 2, "alreadi": 3, "also": [3, 4], "alstott": 2, "although": 4, "amp": 1, "an": [0, 1, 3, 4, 5], "analysi": [0, 1, 2, 4], "analyz": 1, "ani": [4, 5], "append": [0, 1, 3], "april": 1, "ar": 1, "arang": [1, 2], "archiv": 1, "argument": 5, "arrai": [1, 2, 5], "arxiv": 1, "assign": 5, "astyp": 0, "attribut": 5, "author": 1, "avail": 5, "averag": [0, 1, 2, 3, 5], "average_clust": 1, "average_degre": [0, 1, 5], "average_path_length": 1, "average_shortest_path_length": [0, 1], "avg_degre": [0, 5], "avg_shortest_path_length": 0, "avoid": [0, 5], "ax": [1, 2, 3, 5], "axessubplot": [0, 1], "b": [0, 1, 2, 3, 4, 5], "barabasi": 2, "base": 1, "basic": 5, "bbox": 3, "been": 0, "begin": 1, "best": 2, "between": [0, 1, 4], "bf": 0, "bin": 2, "bin_max": 2, "bin_min": 2, "binimi": 5, "bino": 1, "binomi": 1, "bisect": 5, "blue": [1, 3], "book": 5, "bool": [3, 5], "bound": [3, 5], "box": 3, "breadth": 0, "bullmor": 2, "c": [0, 1, 2, 4, 5], "c0": 1, "c_i": 1, "calcul": [0, 1, 2, 5], "can": [1, 2, 3, 4, 5], "categori": 1, "ccdf": 2, "cdf": 2, "cell": 5, "center": [1, 2], "check": 5, "check_connect": 5, "chosen": 1, "circular_layout": 5, "citat": [0, 1, 2], "click": 5, "cluster": [3, 4, 5], "clustering_coeffici": 1, "cm": 1, "co": 1, "code": [0, 1, 2, 3, 4], "coeffici": [3, 5], "colab": [0, 1, 2, 5], "collabor": [0, 1, 2, 3], "collect": [0, 1, 2], "color": [1, 2, 3, 4, 5], "colors1": 1, "com": [0, 1, 2, 3, 4, 5], "command": [3, 5], "comment": 3, "compar": [1, 2], "comparison": 2, "complementari": 2, "complete_graph": 4, "compon": 1, "component_s": 1, "comput": [1, 3], "condens": 1, "condit": 1, "connect": [0, 1, 2, 5], "connected_compon": 1, "consist": 1, "constrain": 2, "construct": 1, "continu": 3, "correspond": 5, "count": 2, "counter": [1, 2], "cover": 1, "creat": [0, 1, 5], "create_random_network": 1, "creation": 1, "cumul": 2, "current": [0, 5], "currentnod": 0, "custom": 5, "customiz": 5, "d": [0, 1, 2, 4, 5], "d0": 1, "darkr": 0, "data": [0, 1, 2], "data_list": 0, "datafram": 0, "dataset": [1, 3, 5], "def": [0, 1, 2, 3], "default": 5, "defin": [3, 5], "degre": [0, 2, 4, 5], "degree_count": 1, "degree_interv": 5, "densif": 1, "densiti": [2, 3], "depend": 1, "dequ": 0, "dequeu": 0, "desc": 0, "desceret": 2, "design": 4, "devroy": 5, "df": 0, "dgraph": 0, "diamet": [0, 1, 5], "dict": [0, 2, 4, 5], "dict_kei": 1, "dictionari": [0, 5], "digraph": [0, 4, 5], "dijkstra": 4, "dijkstra_path": 4, "direct": [0, 1, 2, 3, 4, 5], "disconnect": [0, 1, 2, 5], "discoveri": 1, "discret": 5, "displai": [0, 1, 3], "distanc": 0, "distribut": [0, 4, 5], "distribution_compar": 2, "docstr": 2, "doe": 5, "download": 3, "download_sample_dataset": [3, 5], "draw": [4, 5], "dure": 5, "e": [0, 2, 3, 5], "e85777": 2, "each": [0, 1, 5], "ecount": 3, "edg": [0, 1, 2, 5], "edge_attribut": 3, "edge_color": [0, 5], "edge_label": 0, "edgelist": 3, "els": 0, "email": [0, 1, 2], "empti": [1, 3, 4, 5], "end": [0, 5], "engin": 5, "enqueu": 0, "ensur": 3, "enumer": 1, "eq": 2, "equal": 2, "erdos_renyi_graph": [0, 1], "erd\u0151": 1, "error": 2, "estim": 2, "evolut": 5, "exactli": 0, "exampl": [0, 1, 2, 4, 5], "exce": 1, "except": [3, 4], "exist": [1, 3, 5], "expect": [2, 5], "expected_pdf": 2, "expon": [2, 5], "exponenti": 2, "f": [0, 1, 2, 3, 5], "faloutso": 1, "fals": [0, 1, 2, 3, 5], "fig": [1, 2, 3], "figsiz": [0, 1, 2, 5], "figur": [1, 2, 5], "file": [2, 3], "file_nam": 3, "filepath": 3, "fill": 1, "find": [0, 1, 2, 4, 5], "find_hamiltonian_path": [0, 5], "find_sap": [0, 5], "first": [0, 3], "fit": 2, "fix": 0, "float": [2, 5], "follow": [1, 3, 4], "font": [2, 5], "font_color": 5, "font_siz": [0, 5], "fontsiz": [1, 2], "format": 0, "found": [0, 5], "frac": 1, "frameon": [1, 2], "free": 5, "from": [0, 1, 2, 5], "function": [0, 1, 2, 4, 5], "g": [0, 1, 3, 4, 5], "g0": 1, "g_collab": [1, 2], "gamma": [2, 5], "gener": [1, 5], "generate_power_law_discret": [2, 5], "generate_power_law_discrete_it": 5, "generate_power_law_dist": [2, 5], "generate_power_law_dist_bound": [2, 5], "get": [0, 3, 4, 5], "get_adjacency_list": 5, "get_edge_attribut": 0, "get_sample_dataset_path": [3, 5], "giant": 1, "giant_component_s": 1, "git": [0, 1, 2, 3, 5], "github": [0, 1, 2, 3, 4, 5], "given": [1, 5], "gnp_random_graph": [0, 1], "go": 5, "grai": 0, "graph": [1, 5], "graph_b": 1, "graph_dir": 0, "graph_info": [0, 1, 2, 5], "graph_w": 0, "green": 3, "gt": [0, 1, 2], "guid": [1, 5], "ha": 0, "hamiltonian": [0, 5], "hashabl": 4, "have": [3, 4], "heavi": 2, "here": 1, "histogram": 2, "how": 1, "http": [0, 1, 2, 3, 4, 5], "i": [0, 1, 2, 3, 4, 5], "ig": 3, "igraph": 5, "implement": 0, "import": [0, 1, 2, 3, 4, 5], "importerror": 3, "in_degre": 2, "in_degree_count": 2, "includ": [4, 5], "index": 5, "inf": 5, "inform": [0, 1, 2, 5], "initi": 1, "input": 5, "instal": [0, 1, 2, 3], "int": [0, 1, 2, 3, 5], "intern": 5, "internet": [0, 1, 2], "interv": 5, "introduc": 1, "invers": 5, "involv": 1, "is_connect": 0, "is_direct": [0, 3], "is_hamiltonian_path": 5, "isol": 1, "item": [0, 1, 2], "iter": [0, 1], "its": 1, "j": [1, 2], "januari": 1, "join": [0, 3, 5], "k": [1, 2, 5], "k_": 2, "k_avg": 1, "k_in": 2, "k_max": [2, 5], "k_min": [2, 5], "k_out": 2, "kamada": 3, "kamada_kaway_layout": 5, "kawai": 3, "kdeplot": 1, "keep": 5, "kei": [0, 1, 2, 5], "keyword": 5, "kk": 3, "kleinberg": 1, "knowledg": 1, "kwarg": 5, "l": [2, 5], "label": [1, 2, 3, 5], "labels": [1, 2], "lambd": 1, "langl": 1, "lattic": 1, "law": [2, 5], "layout": [3, 5], "least": 1, "leav": 1, "legend": [1, 2], "len": [0, 1], "length": [0, 1], "leskovec": 1, "less": 2, "lightblu": 0, "line": [0, 1, 2, 3], "linear_bin": 2, "linestyl": 1, "link": 1, "linspac": [1, 2], "list": [0, 1, 2, 5], "list_sample_graph": [0, 1, 2, 3, 5], "ln": 1, "load": [1, 5], "load_edg": 3, "load_graphi": 3, "load_sample_graph": [0, 1, 2, 5], "local": [1, 5], "log": 1, "log10": 2, "loglog": [1, 2], "logspac": 1, "longest": 5, "longest_shortest_path": 5, "lt": [0, 1], "lw": 2, "machin": 5, "main": 0, "make": [0, 1, 2, 3, 5], "make_powerlaw_graph": 5, "mani": 4, "map": 3, "margin": 3, "mark": 0, "marker": [1, 2], "math": 1, "mathemat": 5, "matplotlib": [0, 1, 2, 3, 4], "matrix": 0, "matter": 1, "max": [1, 2, 5], "max_iter": 5, "maxim": 0, "maximum": [2, 5], "mean": [0, 1, 2], "mean_poisson": 2, "met": 1, "metabol": [0, 1, 2], "method": [4, 5], "min": [1, 2, 5], "minim": 2, "minimum": [2, 5], "model": 1, "modul": 5, "multidigraph": 4, "multigraph": 4, "multipl": 4, "n": [0, 1, 2, 3, 5], "n_g": 1, "name": [0, 5], "nearest": 1, "need": 3, "neg": 2, "neighbor": [0, 1, 5], "net": [0, 1, 2], "netsci": [0, 1, 2, 3], "network": [0, 2, 3], "networkx": [0, 1, 5], "new": [1, 5], "node": [0, 1, 2, 5], "node_attribut": 3, "node_color": [0, 5], "node_s": [0, 5], "non": 5, "none": [4, 5], "normal": [1, 2], "notebook": 5, "np": [0, 1, 2, 4, 5], "num": 1, "num_edg": 0, "num_nod": [0, 1], "number": [0, 1, 2, 3, 5], "number_of_edg": 0, "number_of_nod": 0, "numpi": [0, 1, 2, 4], "nx": [0, 1, 4, 5], "o": [1, 2, 3], "object": [4, 5], "observ": 1, "obtion": 5, "onc": 0, "one": [1, 2], "open": [3, 5], "option": [1, 5], "other": [1, 4], "otherwis": [1, 5], "out": 2, "out_degre": 2, "out_degree_count": 2, "output": 4, "over": 0, "p": [0, 1, 2, 5], "p_k": 2, "p_valu": 1, "packag": [0, 1, 5], "page": 5, "pair": 1, "panda": 0, "paper": 1, "paramet": [1, 2, 5], "path": [0, 1, 3, 4, 5], "pd": 0, "pdf": 2, "perform": [0, 1], "period": 1, "phenomenon": 1, "philosoph": 5, "phonecal": [0, 1, 2], "physic": [1, 5], "pip": [0, 1, 2, 3, 5], "pip3": 5, "pk": [1, 2], "pk_in": 2, "pk_out": 2, "pk_poisson": 1, "plenz": 2, "plo": 2, "plot": [0, 1, 2, 3], "plot_ccdf": 2, "plot_distribut": 2, "plot_graph": [0, 1, 5], "plot_pdf": [2, 5], "plt": [0, 1, 2, 3, 4], "pmf": [1, 2], "po": 5, "poi": 1, "poisson": [1, 2], "poisson_pmf": 2, "popleft": 0, "possibl": 1, "pow": 2, "power": [2, 5], "power_law": 2, "power_law_discret": 5, "power_law_pdf": 2, "powergrid": [0, 1, 2], "powerlaw": 5, "preprint": 1, "primarili": 4, "print": [0, 1, 2, 3, 4, 5], "probabl": [0, 1, 2], "process": 0, "properti": 5, "protein": [0, 1, 2], "provid": 4, "pwd": [2, 5], "py": 2, "pycairo": 3, "pyplot": [0, 1, 2, 3, 4], "python": [2, 3, 4], "q": [0, 1, 2, 3], "queue": 0, "quick": [2, 5], "r": [1, 2, 3], "randint": 0, "random": [0, 2, 5], "random_network": 1, "randomli": 1, "rang": [0, 1, 3, 4], "rangl": 1, "rc": [1, 2], "real": 5, "recommend": 5, "red": [1, 2, 3, 4], "ref": 1, "refer": 5, "regular": 1, "repeat": 1, "replac": 1, "repres": [0, 1], "represent": [0, 5], "reproduc": 5, "result": [1, 5], "retriev": 5, "return": [1, 2, 3, 5], "revisit": 5, "rewir": 1, "ring": 1, "royal": 5, "run": [0, 1, 2], "r\u00e9nyi": 1, "sampl": [0, 3, 5], "sap": 5, "scale": [1, 5], "scienc": 2, "scientif": 1, "scipi": [1, 2], "seaborn": 1, "search": [0, 5], "second": 3, "seed": [0, 1, 2, 5], "select": 1, "self": [0, 5], "set": [2, 3], "set_titl": 1, "set_xlabel": [1, 2], "set_xlim": 2, "set_ylabel": [1, 2], "set_ylim": [1, 2], "sever": 4, "shortest": [0, 1, 4, 5], "shortest_path": 0, "should": 5, "show": [0, 1, 3, 4], "show_sample_graph": 5, "shrink": 1, "sigma": 2, "signatur": 2, "singl": [4, 5], "size": [1, 2, 3, 5], "skip": 3, "small": [1, 3], "sn": 1, "societi": 5, "sourc": [0, 5], "specif": 3, "split": 3, "spring_layout": 5, "springer": 5, "standard": 2, "start": [0, 1, 5], "start_nod": [0, 5], "startnod": 0, "startswith": 3, "stat": [1, 2], "step": 1, "store": 1, "str": [3, 5], "strogatz": 1, "strongli": 5, "style": 3, "subplot": [1, 2, 3], "successfulli": 1, "sum": [1, 2], "summari": 3, "suptitl": 2, "sure": 3, "tail": 2, "target": [0, 3, 5], "target_nod": [0, 5], "than": 2, "thei": 1, "them": 1, "theori": 5, "thi": [0, 1, 2, 3], "through": 1, "throw": 2, "tight_layout": 1, "titl": [0, 1, 5], "titles": [1, 2], "tkdd": 1, "tng": 3, "to_direct": 0, "to_numpy_arrai": 0, "toler": 5, "tolist": 1, "topologi": 1, "tqdm": 0, "track": 5, "transact": [1, 5], "transform": 5, "transitivity_undirect": 3, "travers": 0, "true": [0, 1, 2, 4, 5], "try": 3, "tune_min_degre": 5, "tupl": 5, "two": [0, 1, 4], "txt": 3, "type": [2, 5], "u": [0, 3], "uncom": [0, 1, 2, 3, 5], "undirect": [4, 5], "uniform": 5, "us": [0, 1, 3, 4], "usag": [0, 1, 2], "user": 3, "util": [0, 1, 2, 3], "v": [0, 1, 3], "valid": 2, "valu": [0, 2, 5], "variat": [2, 5], "variou": 5, "vcount": 3, "verbos": [1, 5], "verlag": 5, "vertex": 0, "vertex_label": 3, "vertex_s": 3, "vertic": [0, 3], "view": 5, "visit": 0, "visual": [1, 5], "visual_styl": 3, "vlaue": 5, "vr": 2, "watt": 1, "watts_strogatz_graph": 1, "we": [1, 2], "weakli": 5, "weight": [0, 3, 4], "weighted_adjacency_matrix": 0, "when": 1, "where": [1, 5], "whether": 5, "which": [1, 2, 5], "while": 0, "wide": 4, "width": 5, "with_label": [0, 4, 5], "workshop": [2, 3], "world": [1, 5], "would": 1, "www": [0, 1, 2], "x": [2, 5], "x_valu": 2, "xlabel": [1, 2], "xmax": [2, 5], "xmin": [2, 5], "xscale": 1, "xtick": [1, 2], "xtol": 5, "yield": 5, "ylabel": [1, 2], "ylim": 1, "ymax": 1, "ymin": 1, "york": 5, "you": [1, 3, 4], "ytick": [1, 2], "ziaeemehr": [0, 1, 2, 3, 4, 5], "zip": [1, 2, 3], "\u03b1": 2, "\u03c3": 2}, "titles": ["Chapter 2", "Chapter 3", "Chapter 4", "igraph", "Networkx", "Python codes for Network Science, Barab\u00e1si, 2013."], "titleterms": {"1": 0, "2": 0, "2013": 5, "3": 1, "4": 2, "THE": 2, "The": 1, "ad": 4, "adjac": 3, "algorithm": 4, "analysi": 5, "api": 5, "assign": 3, "attribut": [3, 4], "barab\u00e1si": 5, "basic": 4, "binimi": 1, "book": 2, "bound": 2, "chapter": [0, 1, 2, 5], "cluster": 1, "code": 5, "coeffici": 1, "content": 5, "creat": [3, 4], "degre": 1, "distribut": [1, 2], "document": 5, "edg": [3, 4], "evolut": 1, "free": 2, "from": 3, "gener": 2, "graph": [0, 2, 3, 4], "guid": [3, 4], "how": 5, "igraph": 3, "indic": 5, "instal": 5, "list": 3, "load": [2, 3], "netsci": 5, "network": [1, 5], "networkx": 4, "node": [3, 4], "packag": 2, "plot": 5, "powerlaw": 2, "properti": 2, "python": 5, "quick": [3, 4], "random": 1, "real": 1, "retriev": 3, "sampl": 2, "scale": 2, "scienc": 5, "tabl": [0, 5], "theori": 0, "type": 4, "us": 5, "util": 5, "visual": [3, 4]}}) \ No newline at end of file