From 7eefecf178229efc58bcb7afaf418091bb48ace2 Mon Sep 17 00:00:00 2001 From: djfrancesco Date: Tue, 12 Dec 2023 11:51:34 +0100 Subject: [PATCH 1/3] structure of a new documentation page --- docs/source/modeling_with_aequilibrae/transit_assignment.rst | 1 + .../transit_assignment/hyperpath_routing.rst | 4 ++++ .../transit_assignment/transit_graph.rst | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst diff --git a/docs/source/modeling_with_aequilibrae/transit_assignment.rst b/docs/source/modeling_with_aequilibrae/transit_assignment.rst index e7979c598..196e9205b 100644 --- a/docs/source/modeling_with_aequilibrae/transit_assignment.rst +++ b/docs/source/modeling_with_aequilibrae/transit_assignment.rst @@ -7,4 +7,5 @@ Transit assignment .. toctree:: :maxdepth: 1 + transit_assignment/hyperpath_routing.rst transit_assignment/transit_graph.rst \ No newline at end of file diff --git a/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst b/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst new file mode 100644 index 000000000..25e49e09b --- /dev/null +++ b/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst @@ -0,0 +1,4 @@ +Hyperpath routing in the context of transit assignment +====================================================== + +aaaaaaakuhbdsvfluhwsdf \ No newline at end of file diff --git a/docs/source/modeling_with_aequilibrae/transit_assignment/transit_graph.rst b/docs/source/modeling_with_aequilibrae/transit_assignment/transit_graph.rst index 81fd84b11..9fc7f9901 100644 --- a/docs/source/modeling_with_aequilibrae/transit_assignment/transit_graph.rst +++ b/docs/source/modeling_with_aequilibrae/transit_assignment/transit_graph.rst @@ -1,4 +1,4 @@ -The transit assignment graph +The Transit assignment graph ============================ This page is a description of a graph structure for a *transit network*, From 9e393bc0c95f83549800a62f7f037a92793f8792 Mon Sep 17 00:00:00 2001 From: djfrancesco Date: Tue, 12 Dec 2023 13:17:25 +0100 Subject: [PATCH 2/3] completed the hyperpath documentation page --- .../images/hyperpath_bell_edge_base_delay.png | Bin 0 -> 27767 bytes .../hyperpath_bell_edge_travel_time.png | Bin 0 -> 28212 bytes .../images/hyperpath_bell_n_10_alpha_0d0.png | Bin 0 -> 21531 bytes .../images/hyperpath_bell_n_10_alpha_0d5.png | Bin 0 -> 21925 bytes .../hyperpath_bell_n_10_alpha_100d0.png | Bin 0 -> 22125 bytes .../images/hyperpath_bell_n_10_alpha_1d0.png | Bin 0 -> 22364 bytes .../hyperpath_bell_n_10_shartest_path.png | Bin 0 -> 20689 bytes .../images/hyperpath_bell_s_network.png | Bin 0 -> 46269 bytes .../transit_assignment/hyperpath_routing.rst | 510 +++++++++++++++++- 9 files changed, 509 insertions(+), 1 deletion(-) create mode 100644 docs/source/images/hyperpath_bell_edge_base_delay.png create mode 100644 docs/source/images/hyperpath_bell_edge_travel_time.png create mode 100644 docs/source/images/hyperpath_bell_n_10_alpha_0d0.png create mode 100644 docs/source/images/hyperpath_bell_n_10_alpha_0d5.png create mode 100644 docs/source/images/hyperpath_bell_n_10_alpha_100d0.png create mode 100644 docs/source/images/hyperpath_bell_n_10_alpha_1d0.png create mode 100644 docs/source/images/hyperpath_bell_n_10_shartest_path.png create mode 100644 docs/source/images/hyperpath_bell_s_network.png diff --git a/docs/source/images/hyperpath_bell_edge_base_delay.png b/docs/source/images/hyperpath_bell_edge_base_delay.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6b353e52778412eb02bb3bfe7d539e2ba6037e GIT binary patch literal 27767 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

*!bw)Q6>Bq`s}Wv6{VC8cp7N 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 G_J0F&Pbm@r literal 0 HcmV?d00001 diff --git a/docs/source/images/hyperpath_bell_n_10_alpha_100d0.png b/docs/source/images/hyperpath_bell_n_10_alpha_100d0.png new file mode 100644 index 0000000000000000000000000000000000000000..798391162fbeb43a4007f51ad14eb9913c56df83 GIT binary patch literal 22125 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 literal 0 HcmV?d00001 diff --git a/docs/source/images/hyperpath_bell_n_10_alpha_1d0.png b/docs/source/images/hyperpath_bell_n_10_alpha_1d0.png new file mode 100644 index 0000000000000000000000000000000000000000..8c38f8681c4fd7fe0d55074ed4bba2a619b2049f GIT binary patch literal 22364 zcmeIaXINBc+b&ErqOrybf?xwd0THQ!fQbqY2uSasA_CH30HvB3B}fY>ph%G-ok4ns zs2~a|(mMz!y@+%MhJD^X&wls!9eY3Tcf3FM`+Pr=9GMx`tXb>6ud`g|wR|oq%Wv7p zwvma6X$$4TIW;DxHJ13tdjm6G>8{?!f&ZMMp4XwO+g_)-TyZdEQo2I5v$CaHSzJBf zZ0g`>VQV9NTeXoH=sywKnYIU#D?N$Y^H64?p~JOYzXp z8w3wNE-^bIoISbUK7n%KfZ&rcW9PEy+^ow-1gFQ^gxzH6`NpqJbVIpuhO9^54&y&e zL;Fp)Ffsjo`JpKO=ZTwB)**g(Wp5ML|V&B}ah! z=ZCq!bQHT}M7d3zTDRth@wROF%F0UVGGhaS2%Wu;tR}llU6+OvIrggBeajR&VRD5N zpGw!wmc#E3Zp>Az|7j{~h}opqsh@f3l?%CU`U6eXA$++mlSb(}nZIt?vc=~YzxsN$ z@vdTRK5bgg!P!c|-;xDi!0!)7J_Q?{vQ1Xe%B{?HQWqH+s{jzq=NK>l(vXD?7Im=Y-j6BoB z2R#?gczLg;;f3JiZhaiIcZ1a1bw|oNveVKoy3J3NUK8iNUB_MKd!$TlFU4lB>Z{h- zZ#9C7!F!Gyv<}XjeTX$7Z_UMsw!^EI$}^VhJ=m~^bT z(~L?bg|@8ttTMtyEqBa^Jbb8wJFIo~?44Y*TF%s*oW^7P{5flWyRE6G=i0U?`)F{| zVcJ?kx2W71FOnnTs>?)AzIYcGQx+<(;I5~jps=*ez`5*rOsDUyVe33S#)#PbnNd?% zPq%o!anq)q85u9$W&Cz=^^B4D)V#5U#V~hZChly7$Q(CgAJuE6E%)Ns3TvsC7fw{m z-ab>)z~FSesfNqcpaXtbbBbmv`57}h%@PM0omJ7%FYcEgUvjgV8*6i{{BoS;mnHTi zSy(LQ%Y0>7CH23HFsAvm(k_(TE?!M9(_+J38qWOt_|c=o_Qms0xEQ6_i=19=@54o# zi=0Nup$)R026#Ccw^j92Ohu0xsTB);<{zy+&l{CNS2)5r!tu^zTjS-Z+I#ozRjjOp zgqLZhbR`~+lJYcm52r7=-MPh}iS*oi@XYNVR(5K9e0*)WweFoK@@H=e1jgU|?ay-Y z{)X9%@t{#K*MlDB?JbDFLR?!8fPdO^WL@EUfnGP##_HG1=dd4ge2CRrt_+fSq!l@?XK zzDXBn!u7bfTO&v%s;P*+!Q zEo6EkR;)v`@WpDEGiF-v2(=Do=j7z{R882{$jVrAb8|~4WYA4!7?Cezyt?)eVm8&6ZJxQHN;5V!~ZYc z(5AQzbNL5ZSD$EGK5nI-nq+Ver#{*yN7lpRzCP1ry1QYit5aX$xQy4mC8xsqDZ85X zknT~B5bMpHrtg`jy3R};vMXd^eCb}E5-6LnZC~gav%ONM{bER_zP^WjNMTdcLa2># zAp2^UW~vrC*ZlgJFi-RLHGm z7q`HDuZh;4RbThC{dx75M=oPRX9#AEzenI5YyJBP%JznOnKbLQEz zXFitIolY%=KAYCexg=;CuisNudv4V8wZ$@<#0tl935vM%%1ncY(MQMGk*2d{f4phW zwdAG%6jqG9ZlL=5bfQ!MgzAI26>}WERP!0NSJpiNXS1+GPx_|$E#pKq3#Zl{|>GX2`mA5rD4;n?sUkQC2?B>GJu-`Q-ERv%fXLSo#5@xLPA9k>8X3ljU*Fz-|P`x;QOwBp;+jq{eNg>0ibScG(37bj} zg}w<;KRX@0YJl3yId^&=Ep^e8?TzEj+yq&pUHuv5XAb;Tut)pKl^D)jpMxq&cm)K; zRX_KYvqaxZMPXx{N`EELFT1)}%RTF*>pRg``=v&(JPjLk%cyg&6zsjWR<;H(00)S?+!bZT97 zH_i8;&s8|G^yuXak6w-{pBO89>aaX5s7*6SPDwc?p!58U?81v}ekFF(sC6@)jb?|{eUqfptlhKDSbFUvAV?@l&GyF2vD;aeA9eJ3WdVmqjF(KMoR9-;WU!Z#3 znei0f?9^IF4;{WNXAE5LOKA-?<<8rxRP5^Ho}b&8o5~|ouc4zO5r1pXs)p~nO?$W) zj7w4F1-)a(hayeCREM|@JT}u%Q;P+_fr#)-ZC5;Ebod0LeRy>A#(;lq;)0`W=PmQ~ zJUuGfj!XTOmOu}m-M32K?P6i!`*{PGg0j1|m3xI7SEvt4m|nh(Vc()B4tcMnm!p=| zOV()EjODn&P0B!4*2!C^qpo-uzW;rHw9Crw`Gwi0rQ)sZ%=bVOYEMtU+bydoP-c3q zYMo%e*I}86?jDmZv#_q{B`{-_+zx}ztif5(p+~&`j^1m)0zDFQkN65h9x8|1W zgJpf2e_SJ7{Rc;FG>2|qLvu@}XAL?XyU!pmOeG#dB*t%=bk^u zXgN7ES#eL+E{?1SU2+~N>+R5AZv8YN>wPe5-hJJ?uW?*Te0&AD1cBMbU>`fpju{SH zeJuMBG3?Q-zHFNkon6ppCQb1$W*KuZi>j=>G!o@l8zt?dK2jXb+0&w{4candAF5$* zKgDgva9U;eFg*6Oyo%HBg-mo;W$kU>+HAf^?q+)0%ZbFsdCvf5`m&Q(M9usB7uS7c z*O%@eRcHxhdvluYgQM&Y8dcSxX2g}VD0+K)*QJ3gsKhm0J<;C*@h+ZLl_^X*(O~DFZ8pH~JhlB}}wjx^LW8GQTD{ zW0Q(=^xQ(Nv+>Q>+OAz0vMz;|f6dOft`&`V`EliCTv+i(^W{^28sE;NuagkeW@cVm zp7o6QE$tF>_%k;jK7RfZuCrbM^l9^)hq++e=Q98Fs+3)fp-(rrOv|+1GMCq7AER45 zy?3&lS!!jihpmgCW*D7atw;NHIa^Hy!!v=t%v#NCiW?gpcCszoOr>w<(Y{*w<;;vZ zp4%0ISAh!mIa%ILcpmKUu6-3E=IL4<-B-&KZE$&8b^FgKU+GnAWXlc|*H`ZJF8Up$ za>)Mf*BXzU>N9&ThRzNO6fL~80h)v@E1%5>r1}`IE6+&vn`c~zTj<$0VzRBmZsXbc zke6R*%H19!CMcZJ11~}b=FdczPXr48wY&Oq7V4nnl;k*LVai}dT2?z;KJHoC?EG%8 z<20&3!HaiirK-bCw=h;jetxApx0$*mV0n3Re4<5YbaawxOq;8kFzx%|dBiB;o~uCC zg1n+r&*h;NgDTl8CP~o)CtFX4x!KOlO74Ag!D-o~q{x=*1t(`s7XJ?>jZj7?|Ifg> zJOlaOzJCu=uVHHXtlv!J@xygYCr(PdU^3BK=KmN}c3Ti~@fY1!k9NzRt!4u4}}dh~nNJt1y!ac#v={yM+C!d#TqrHs`PyF*M&#{==!v**uG z*dP2b5xr$2)9qvl_FY7X`lbBI%b6Rvtyd8Cttot*DTm|7sX+CLsT8>j{VkfLgq$BZcAiX*C*gC9KWunp^W&mJuhVytq&Q69 zFf{A?gO{}z3T0}-xlBzdvW(1`l}Y2f)DPt2C#pGQJq=T?`QWD4TyuQql!oU0r4QEG09uL{N;xfPk&4v4HsK*i&Izf`-trj+p zTdPmdyy1W$2tbb?Vr$V`}xh zGI#9eC%W{qu2Eu>U~G&eJh4%8b1Nn%cY&+V?&WW(4;y=S9O4~5Na^6-t>}8LzG1}d zno_XL^xomWe|WM}((GbLE`G+!QcHPrr7sINrLC=P>9u%S%A5m$Ji5F% zoyD*C`0?YVYVESvw-0!vIILUo%cg5(Gs45!&c~^mUb{BLpij1-0z?LgS%sQn(d4G2 zrD@dAMl$D$DC9`i12TE|%>;cbSn)h0D$<52F z9-X~`>+AaMEswnE-Ys{3Et-1GPN+2{T*5xKY^f>Zn3R-$ow>$fZFEb9*NWx&{+1)c zt>>J^+av00=ff_fgykr!Ma7o~X(ZG<%(bKi$t+fghJCZE(%AeF2F;H1O2Ogb;WKj` zwo;GY$W#UH*9PhC>neWs?0iSQt&2p6^oNL3agKu@xc5k;r>D~%=OrW@iIj9wh>VO3 zj-Q)zE}i}$wKXwIo@+;4?`$!p{g}p@6$K`KfQj^A%EyiM+qnqj2UaD;e5wVts) zi;Zr9T%77GCzsQ7PUTf0@A}r%jA6T)%lY~Pb(afF!|ASDicH&GRlH4g19#IGz-jK9v7{B81HcNxe#56rAi8r(9AO*{&Xl1U0bGPXvE zLaBRrRQ>bx;*R``;t5G_^|ryHQJT7f!hNo{gVPq(50CnE#C4V2n*KcRVtD%C(W4Y> zNt%SgxnP<3!rG%?!)n@(-@biY*O;u%p)7h6i@|yR=v;7 zJI-?TOoCogCuE{O$M)w{H40e<@7l~fi<{23!)FNpX^E%gMYvu4qq$jYyfyPImZV;R zUChRf8zTa)J-Ngi&mrZUl$=aCfBrm8@{!aIpQMr!11Be^aAC6m=sNNt9sUH|x|F;; zE#d3$KK{OLliZigUpzAT6|n?TXtZYhRBDHHzW>PDCO0X&Pq(-3mq}Y*b{Ejg;Z-f_ z`t&B~uq0m1%FfQcIn{Sgh(ig>uEFdrKQAviSYvlLjhsVz`upFgXVtka zyNNOH*%Ns4Z&v#nf&8H^mmVicxoCJ-MapMVXrT%UMGTIiE3LfI;g2}AyD>s=_(^c&_>EWmfGV{FT0xku)XJ*le{=#0w)x0XfuhjP9b^G zjGWPv`#3lZjX71ck18sK*c2-*)dd#GH5q(o4)1a<|DtV?%|G0Dba-Z%mL+B)*YamO z>o3IEzCL|3ez>8y?Dc^U%H3F=~%xGP`Ns&RB95=$|yrS`}+IfT5;!N z?^++LQBanb-rIV{6%|S9hCYjk*tgPTyb{8vK!BVeTYJ0S`9s^$LKuF_6HTqW-;>3k zZdk0<)YP=`?yuGF-Zh#8N)LpG^aIeGzJB_}iAv=?eE6&}<6D?hms86rpp$L+N?y0u zsz+{qJ|9Y+OP5pFeP7?m08?MM%p?Bd-Iw(Bp8y_b+G;(uNI?YF5jvu6bn842L_tZZ zNlCmb-n1r^94%2Lx_Lk2>-yZBoHvv6miWo83%%a*hF93dZ6ZpHGGgn@`^q{y4Wt)8 zKdAojK?^X0f;+Q3T|3Wf_27t-!=Z`iz{wHu@0t2sDiHPp#f zJZj%kWZNS{Ens=B(#xFAl>&ebTFqN2l1+QtN$KSW8V?&MMC z-L;Vttf!}!b8GrK%5z*{p|1C~{aW(!-tn|`^_Cf>19r#U&c&$$?2<}L4TBq-n-ji$ zbHGOvQ6H_Xt-k~0cz0=W)qO`1xAEMT#`gAO$(ADhUwdEOu(5FlD&$$U#fFCNp{Vih zs`uH+L!Ib6<*mNO=*Eo{kfzT5vS*56$9~?xi|T*$=+W?#ruVTf+xpF}Lm&kUS!bJ6 zZG|(>yT=z)ZUl^`z1*w3Aye+%BR1X9p`n6n7bMCK?H&I$=C4CR7Xs;h>n`VP@_u!{ z@~ZU2sC0Uqro_Io&!WSjU3)y`C;9lYDyy*NWDJccV0~Wg+Y6QR=sy@Gc5E2v=#Hu?@UkMktje3ZGo3e}!Nyy`K|wJcw&flgABwx#nTwsr>ldc_ zL!zRNCtH3lD=I3gs`YE$(sg$eOA2<8Pz~n1?S){)S~LfFCOoNhz8jbEVxq|wJ+2+Y)3ahO z69(j}gOPnq%_vKOqUG!{E^{wrtn{pU#9wU(TTsKnzAd`rdKO+2fBwY3kYLw~JL~0V znXS#t2LF;NW7JoCq~{XE9=Hv*!drE9BS{&b%}AU$4{NoUAJx>L7@g!D;A$~RD64+ zjE7#R=_wAgbBhsMPXu4hd}MU9cO4<$p{7T9c;tJQ2gJY3)Bl(3k+kpo1D`s1^5l%a zt@~N<-~TCl>g4yM_#A`mfru-3?aw|)<<~C(IY!qpUs6g6hnfBQYMUjIiB(yZ=+MnH z>)R%0XRD*46-}1WMcn4Bh*AOvTxy7B#M?=veg1r{>(*f8vE#>`v7c|;xRC>g{O+#@ zxp{ajdtcsNddX7u3EyH+a#K~XY$3M2qeBzDSa#bI)tXQNN6F@=i|#T&<<#WlqxQzv zuP2l-W;6JNh1CH7K))s+@uHDEo~&RZhpm$7c!+ zh=?V8Q(wPz-z6m_e@RKnUBF*lQ!wOL!#a6MG#a@9_-^2`hOu#mfPNlPZ*X%z%J27x z$1TAbgM^QSXd98Tq^GY>&JrB^?yD=J;^LMK2}-yk=Yh$;s7k-h71FBx3T~k5ksMK}p>I+Qp7BFnyftCEi_XC|kJ5)K7o^ zkZ9unNJuoR8G_$jB)q^{S1T|*xGpU>S2N~PQk92I+c+?+-K31-@SgT@Zf;KT-gH-% zTUmDYbTGYB?RtD!BDajBWc#e=7QN7CkcZC_6Qv%$ktq%12)c02wsbZW6rV#ugbF4g zZDVF?I$IDK931QC=f^qk-yD>ikdVMxQ*ACX52< zk`T&u{dx){YVhZIx}mT&cz_ztKi2OE4^Q!RZ9N1X)YR2?W>7L(M#BxCdX|@0S=RSY z`L*vpZ;ZR%)Y%!K^V_xS*NbA4DD{v}ZdRT6V&JRqpFJB^G+qkE zp*WPqZsKk=1Ra*&k-u%9#M7U49^pzrBkeqv)7X@hhxIvsW~d{dQu*MAK$laF0}=!- z(uABJ8o?|iXaR*(3oRHf>s1B<={WFiuXT5cF0Kl2sbNrN{?x70oMapHRrJ1@8b;(m><{l(GtT6=kIy;ij1>y-NxE#chtc8H08>+#kPxsdV2v9(@FY9|f-+2v z-!42r3S_MeJ*{kYWm1a6Lffp7tR-dT;Di=V65@=O^}G3fuf& zA}RhqLqq@KcRZ>^4(UWV$LX7wz#Al~Lw}(dLV%kI^d>Y5sLY+0G5p~I*z zC>VQWqE)bNn{n^ZG)*UN8jGM2RkHc7oV+|qjvo&H0USSj32#k$tX@)Lk7YgP@JS^xCx!^S;^x zKJ!J;OBXUIgbVeY4;9L@yr=it-1MS5Xp1(eFK}vb)>YJ|Q-YKa92Fp0{M!Cc@k!#+Gwf7K2KBwoSJl5}5qjz9P(1{7cag$}zT zH8%EF;2a=J<@D4as7OS;NW0CMR|Rl@VS+~1X_qf)eiGzvmPxRj8g100)cdJaCiukJT_(p416cb7qFi5<{9vD+%OF-t)I*LXP=;`pyed7#)vS@tuJYu#VRP+zGV8PTAKd769RhLRls zRpTdh?;$f_R~f|Krvpk3;(F_mEEP0lqxze2-Uo)p+;eZ&+WR<*UK-z2=Q>`LwEjRa}0) z1cAece2>NIM)QnXB0 zug2VlAJ`>Mn(OErxOOEgV%(7?PJ=3c8bg&jzwt z+D2SV3}&#DQ23sWcMVjpa}7gyZTxW!^iptedzhjI2nMtGVwV!spZU5~)s;R! z*&;Pra=0c-#J2l1yu3HV7xGRyk3BMS8yAKBfbPIBxxtpsHI0pp=0MQ<=MII7S%;U+ zJQL*B;)*kb+1#9AoPm4@K%Lx{e@Zy)Zmi`5FkWmz#KEWrNzL}|4`7MjD;%M5x^(l@orUr zo%DQX9N<+M3n`;?E<9kr>~TssQLYo6$uLg5)wdenx>X39UNEpKPHLjyEXs+aWc{Ce z9Zk2KXd-KBrDb)=I5NOqbF8yaJ-^4ZxIyS%8rdHipHJkyk2s}{9p?0&qH9w3Nb&`` zcA1~i%BaVFJbEK;AL%o(EG-YpW{7v+d?jl3Ex;6o_)K(BwC<4D)Fw7~$|!wWK>Y?# zf?03brG9U&(%UM9bIECsJRI8G4(Lgt?3#^RlJcYyi{xSmLyTmm&D zzqNL-VYbCM1BQhbg+c*Yq%97e$Y@E$k8Fw1xhIP*;@_GMP?IA|quB7TpMM@0C>lvy z>{e4#6G0J9G+_$+(k)~IoMw6YZ`E=9R~qlRkZv;;)XU!I4MMd0<{~MVct2D9QV;F% zEp%dR?#Pb`C4=P zR`1#w7}mM7XR9~7kZzN8k6@%_xPRe;9{^C)EB7o_j+AWbpT~|9aT;k1 z3XrnG0$b{u^bBj2C;|Z#HT!^F(-sF#N>B=%g^L1y(EMJ!XADjm)!BK(rJNo~(2Igb z=0}#Yuj}yn!+U&(zl0e#!`I`YfEU+gnbz!67Io;XQ)3<)s*78KdL#e_n+%;Vi@^_( zSk#ro1w?a>Cm|j7X+}At2!_yhG&P_txf90WtF#x`$C1}I-p#=UfZj@ti#rR%K=6d{ zV4&;0E$pPR31EbW=GSha2;9$YG3w|q^WN{NLkI^9#{)lqyt7TFwV#eIDg3wU4GB3a zy1I`?Mn)Pzf8gv`w`Em|#86-Lc(O_v8lQ$M5y3?j~NvE zF&ILEZH80mHjcEJMLY2Zd7Km$&b{_Fm~)=EQ1j)hrDuJ{cH&c~I-lYv^C(By@dlMH zdwKO*rRAu-6#Br0g^R%!ocHEZ_9IRtpe9nx`#RLiw=Z; z{!{ajP#;`NM9qjN7%uIWNA`ffT(0MeD=~d=#o@`TA>NGFaaqM|yVFdn0w^ProRa}k z6Lu0!Z-8$CwB+QsqWbr{aFZ=omS$a-r>Y`Ru}Ws@6209e%`q%Rj|3d2gCleL_t^PtLaV?WwIR+g_zq~!)Hu}4#x0Wexqv@8vHD~J; z1u^z9F$o`OlDdnDH3W_-Eqn{R*bvzP4MI$pHKuilVRw~_8~~{eOk|L|3t@63u!bGz0d3!%PMQcNb!ck}uZ80Ec^vA0!BqBppp_*E7=yAgo z6iA||V8cOLw7>~Pzb41L?hvLw$m^k|7DTdvKyneYyr@4wiU7gu#-Er``CaF`T$&mi z<56=x&?CY%u)~id=@Ag9v*;@zR?t!xCr|8hqKV(Xe-F>`!S64g;#zA!`zk#VBQ2+1 zI~_7Y18Y@X{Qm(U&P4=x))M;I$ zRKUSrav%OvJyDq>1o;VM*EQ7D@L+OxPXm~YaQ>>VvEr=%TDX=M01oxxzJa>WP8u+jbAvl;oR#XDGr6WK%hVTiA0{ejk*mAlu8pV2*(GxC@#Pj{egF#p zAbPpNM<;J+g>422km_m&(vcFB!r?;DXvM+EeW6gijM5Vm6D^?tAPQ>{IB>OEM&za? zt)KZS0zp`NsR%p4xhAp{Icb~n6=z7$t4LZDfi{GII6++CMk(RS=c7CZVFf_m2n!K| zvHsf^BG5OL_hh(DmZEO!;!M=g$o)POCCX32T=BH+A7@8f_*gd|aZW^AwYir%r(5i7 zeRZCw(52bYojvsK`Le{t=|L$Ln@9Ld98v1ZY>O0!Wrbhi&du?(gDcQX{_Nr( z{?Q_62FIEC{6Iw#CJJ;;Ijp$Z+zgNRc-Ob`Dgf*oeI<_ZM;K4EyBav#uYGw{{XspG zllB{ae?nyLu8nWA_~9`~)5o%xCS1y;Mh4?db)m4J(}sog`uCs|AcI1S6pOAM4Bz># z2<=7qfJL8w-jvU-uTDQ2UF-7JMl}DcYbniO;eugtXlKFKprV9y`joQGRozfa-|+Z~ zoD~S!dg8i6FrJEd!^s&~m777K(Doi3^L>)|UO@W?)-*6~CJEb#&O$O75E&qJZSUT_ zu2YpPV1|b%OK(*?``Z0~V)_u9_Jdso2xN}y?2SZ|&5F2gc(@%N`#fB_LyYf7^F2YsV_Pc#6sVGtCQ=ogOdxDiJ zxrV6#NcB3KUs0CcRy#xH5MnO9L7*=+J-w-Fzt4q$TWTQ1o)lgAl10w2Osx z!e8ScS#beIS{-p?Ir)4^K|%LmD-U}a7{bb2ez_*B7_Ot}+(oZ056WBb?E+&!$^scy zP{r>9pPxTp2!;feS@^UTeT25&hpz^w7iY$8y`(aO0|5&FQN~wqS&4{uoIQ-Wd{NKk zn-oL7V1U+ee)&o|SMt-R2ZU7Q{=8wR zqlb~_URGD`u}b`ZWcA?jh9ID7I&8Z-XA7-3VVBj5{(Q?S-D_1aGcybg5L>J)IGTSQugIXgoY*%K}kE>u6=T;=hhuN)arAp58{z9TcOVv_uX~>=L;V`D38NZ z0mt5&z*aOE?In{L`{=}#UjtQHVaI_tNbP>Fh0F{}k57kDhB%Q{fK1Nm_x)2dyk|7^@(VA!OIqi`)6_tdE;U=sQUi@I{C9RR=cywXUxEmUO#I%NAGyW->n z=U78*t*tfD_Ty`|hyOca|GO@XJXl1^x{h(kt-<-@F?t6%MWP6N*PUVe(kII^0s;am zJcxu{neUmroDu^)x8&`$;9W6}{*vPHhPwLtll7Uj`;fA;oSn`!doyA#4Fy{`)_l?8 zn$_v8!g`bVs{-Kns(%W(n^!R+bEN8{nY$zZ!Gj0#vm0z(h#`b4urnVb34@Rko34F7 zAu#@}UKC|z=gQZw&iE&1k#0YSB=rJu#Z7hD#KGvglv+EmcAe1w8~zw`7MmWosG{wO zG#5;7XlQ_yn1ET=mI#BN!@|Q;5SPHTm$ttQ#jxt$byHJ9&|o&hLM47WI&4GKoGXAh zutqg4t>z@zE3x@Vfq>tk!nEwlEr1n-{{fBA-j~{J$iGJ&oeH>U4?{w}AnXN86z>u~ zn1-!al~}>T)!V z_l8=_#IN}i_oo)!fx2+_7*WWIMnUm|a>M1?js7?R^&6I{9=Jd?Wy5SATs@};OI8?s)-gc&R(nAHV zk!!!dcm(bOlhqkrM<3&r5pCCzx5p4ppI{{ckbs~E%ofy}4y|cg`I9e8ub`x^77l{bruTgOC z8DuXN`~oFo-C3Y2ARrJf<52|Nb_{)V?DZUAGigGbn}0;h!l}n&{wOzhCHC$H?^i@= zL3$)2swZGvW`Ko73<(joCXAtxxC{4S zW~=<>7vNzLq(Er>3CkaMgP4eb3M5~I?WJ&`Nq(Ex5@Kc~^S~_PcG7OnfmvdD@)y|I z*pN2}D&X*!(^OaQhkk@NjXofkjeh7eVCMRrZK*UGt!l^yi8i3=vS&G5Is2uVVZe8h z7y}xcPwpvvhH&!rIdIpsFxrsr7-Qw|>F?hN#FOr$g#EA4i|@<`#;#qzl?ydb)EeN* zDQs$eks~|w!Gi{qniH_l2TpEB2NU8%dIBjYl0QT_+~sr5wX>!4)5T~R!@$$u-dw=) zLO<#>r%E7QZu)rF1mvJ#q2STC(!LR83C}X%WxAF#OLGQVI#11U{xS{a_~wlrj)gMi z+Nq4B;QJg9pLrdvC3hKZKh~`erJ6Uc)zHw0*EaUhgm-}GEyU3hd42@~s@}@-?7`rc zLl{5~<|0|Eq9Q#sD8tb6B`H6ft`WOm-3-v?-tV=XX;aY4j0h62Y>1#?AANPyYekUQ zevj;iVCv;uez69*PJCbV@x%tIm~ z(pG1p84oP0hdk!H5_2tE$jk|dA`Erb+{w)DvgI#=qm?YiXo-5GI+HT&zhAZ+Tc`jV z%L&S!L?(|OrI1V*DmZv;=FO?A@K*@f!5%~c3Js7O3aKtNkO3gVFejNfB$U5_sI~UV1i9uuOcC@`|42RJ zc_N=38H9sVULYMT#_n~yVccLG!yx}xzZ%$AhCx0UTX!)0!Cz5D#pQj{MO)BwnuJ`s zAmTL0W7?rb(~C#~Mw=2%Bwliu%(1GImLs^a7AX;t0c)84)|A(Ml@t^eMFSNy#wOt9vXHFP|BBy|I6dkHwg!0}y{Q{WJQ17GK-e04(G^yTChRiM9TGo`W8|{3{2$`C zoEmUadbz>I4GjfkpUuC(M=(_Ptt5B4{rf-6OWHHJ(R^n5cbDjBY{oQGXM!j zC;UP%_M9Na=OszYN$hrPg@9#@_b`;O-Gbv$w30v#$V}R+xAz3mZ0o_BBp61ihY>{r zhNR3uCzjK@CW)>_QVlj=N=(czXd*u+1>(vpW{y)1=dj1%_)7wF%clHoN!XDD6^R5z zf01<7$#&IB(?NQ&u3UHkp)drl3xOA0!{G3Gg$~bf?)Vk%>$h<>LJl|8)g7exEQSUJ z^+G~Q;a3u@L~xQ)4`uA;(a+vvr@6N@qHgsA`yaTe+}%%ufde_gIxgp<%|`3Aeyb8(5H#sEW>lhz*{4_?mMn=45HkhT>5 zYr-c_lG#TL_;F(8l95#0iFjIFH`4H@aQ)C=8WFO_x}z%T7UNkKJBmL*ev|I-_r72? z=afk!4vjCsq8735JBOox4+6ohAp;!1IIvc(t@OR)djyTrKq(<^3I9T^|4wfa1**#8 zuNnUN@GxQ#F<3MQAcPQ<8YbP(hM;?6XxUyOk0^khS%=9=#B0#4=rVb;Kt9i?T3y($ zT#<9vR2O7T3wIFb;X3xs=?+OnvTi05mozEne*7T}{DyeS1Cc8)e?(fFOjt;|&81dsya}Abkja zhNBy1dz&73{o$drGezet#+L1VLkmgD2~Ju8tpx3Z}d5nM<68w4q8mX<9oJkb{> z%LTh!Q)l{o)of^Ie}gDgWD!)z@2uA>lM%QPrm4+i-FB$UJzK-jV|E&!*nC^6 zMo)sj>sBK5>(j=zQ(t?s(`d0;YKKHc3`*Sr|7$;g=z5x}<;0OFc23JFS8u=jB`>|q zUy)uAW6o|tGAkkgpQ4?d56R6odzNeY?2`E#ua_peH@rp#r0LE2?ItE7gg!X**nBjL z9zSOFO2nvM#d}2?e|4|QXMFiFbz~Uh;f{ z9J}6^s;hc_0L)^SNfMYR!?BpYF{Dr?+8EORuTjtoGSO~YEJWsD=KLY1DPa%QOwMDt zP7IdbN5~@L*AUO>@ZtXIauJ0HkW49;39_9?m;_IOOFZn)I$uJMr#<*7JbYd3L=0+#{E+%_3_Ivh4UF_3}W-%~c2HsGe<42br%{9bph zu3_BuQt-&=GxMBU+i^`ye@asB2Cs=`l>b^k=gBZgiBHb+E|DaYk7RoJrHHU_cGX5N z3|uImXU{_gOM*gZPCT4|`C!+{(s>eSgr5b=8W(|Lc=%7`0ZE_`kV%HdFK`7HcwjyW z5ud@BPc~6?>>e+zB)Q6i3>1h)h7)BXJGX zIHDlQ^oy1jX+GkPleuu1aP?Rx`!0%Pb!s*r&u-F=kqyh4*psvxBs$uVQFnmN|48-4 zc{RT$t;9ADYCM+d8PxdgsNOZpW@Sz!f@i>gOd=FBR=L6u%z_qu)CGqM1 z4G@|8_xb(9d6!@OUNOOqRtBE9@IsXDHBgmIdj}I-MD$n=9cVIe5A(TC;yCPZL|ks5 zhe?v8cpMkLa3agjwIFb#=PbANTh~40K9gRdX6oXPg!l8(c zN??PAni5Z$lmfJnL`YxcaN7t*dJt^V1e+jQ2M#D{JVE`D7ICVwYfwBQPUNu`i;If{ ztSsf+xyg5K+K|u*uJxd{ja(LdvL!1dPzVPbeev&+gg@B!K1DBm9vB&mlr*<=9 zM9-p^&n?YJJe~+m8s-1!v^0(6fLeKrnwx6Zm~W(??6g;r z=2nVm9n8<898+!C(6Jdq;*9(4x|CHr(Qk&P!0y#A<;yHcaQVjK!5^CnZ1JcG#&C3e z^vcB>7JJ(#kzxPVlyPG+zsz)|N@-S%=(wBx{xr5ZW~R$&j%K>PmGQ+B!Oj!=I@cFg zbx|MWxaEu7oAZXrCtPSNp2Wq??c@>sVmx0lI%==*0nc&~+bBGcVHci0dih6}P|@U6 ztJ1~mEpM6C6X)D0+bD)#Y`%S_^>;Z>hJO1dcbo?Uc%}u8;^ww5p3bBiQv^#JXIB>< z$I3)M4B-|qJm#@VM;=Kz;YZ|iDq49hyUxeeSNa<6pNk6Pu|FXLb=um>M=aX7KivY! rFu2_h|5Abd|8L+r{hyw?!;l?N*uU2P2-7$|z(hH(e2(_(<=_7Yj1R7y literal 0 HcmV?d00001 diff --git a/docs/source/images/hyperpath_bell_n_10_shartest_path.png b/docs/source/images/hyperpath_bell_n_10_shartest_path.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7331e8dede6ec5ecca4431b5740fc827c9cd68 GIT binary patch literal 20689 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 literal 0 HcmV?d00001 diff --git a/docs/source/images/hyperpath_bell_s_network.png b/docs/source/images/hyperpath_bell_s_network.png new file mode 100644 index 0000000000000000000000000000000000000000..13cdddae1984caf7139ca1c32c5149083188a49b GIT binary patch literal 46269 zcmd?Rc{JB;`!@PjNvTjmDTzk2%1~rTWh#^@L&nUrNFp?lBqT#cQO3;kJY{NqLZb) z-64Jv{zJSwEu5VloWukKZ2#*E{Pq{k1sbNyr*V+A4)WSg6bii&`Jd{!RH7w?lFO}d z;+VSY1boDuZGi^VT~l!+I}aK@jGr~8-p+4NG`Pv4fG*IR^Wh=$z>c5z&DGgHU#((iuDRdiK@#pWI|T(lBy{XmiMktq z>OoaQLqozce{k#_fB)mo&O#z~pU5q3TC~fv?P6|hY@C>!JSHtoiHVJ!?DJ(e9(WmW z_{z_?4XTXV?E9?0FkHQQHPhtHrqdBZYo#l>6!yd=CdPU#FWp(_YBlMsbX2s|la!QP zLr*W~>RPBhP#IlxetBsTmm9RSIR9YQ{NTke@+aivF4WxKD1Yiy^_!4=9NyAr&M@F~ z2QGej?R8kVQR-$r>yc1=vT}d>WXD`_6yrYS7q4Eu8e%N-k~x2V`_TI*{Gd1rHs8}kBIe` zGpcH8@fqx&wszi#SIa%2?zT(z?u*AqoD{E4FmBzt_UY5D{NKk{Uc+GN?AsZNSa2zae;`>AjvJuV-aSevhqAQ<| zbJwnoTeeuZu-5G6=cn5x7Z}>Z)tYas8+m@$=8YS#=i7EE7KA=mji;3j+|H%6QW3Mr zpmXx!l74eZ&kh$QWd$qIZqFL$?rvPTX@P=YVBkwUchiy0%v-l|wV3-QEme(s3zZ$I zQJ2H4AdiaqN^!DnSH9|E!g4{}`0Syw*bmMd-4wJ+dT8t`&fbqM+7o}}$0?n!uY-3r z;zDX_YpG^?8!mr&9o+Q$?azoj>gI-|=b{`(r$4GucDBfxoLd#lh9SLA*@?+Q zYiMaVUB7;vbLUR!+1c4O6ig)*UhV9-*A*8Uq9j&a%e9l1zBcvsh||!+H2XPy9UUFN za2C_|kB_L%&>W&!wJLPz)z10fa(B0IEV5y`HvN3@;>E$X9XodL%i=wcUL5Z3mIE?w zH7{S@3E8KjIDPbW=-O*!_Kmt{Wo4Ny_hM4SNBazaRhw;~Ut*J4Gdz#?vy0bB{Z6<< zD<$XSwVK}j${)ynTKBCng*?ycv!iJ4P=1@zE=)~X-)CDT%{Ig4 zz@Dkg3Gwj?UJW-JB8Pi_Pfi|~FJiJA!szl!ex+Y}rzHM8hV@s!R;+$VjJ{Ou;=6Ur z6?;5>oZ{ZUUw%$ZQ1Hy0hugj3ud{|Zy0g6kBLha49>i($q%Xxpm~*VA<6v4?KKmH+aDO{q_#(*FNK2nje#zf6A+<$hoobM(~OcGH%|yd$Gu2arwm9%GK*B6BQ%grkyL|Dyyy z7pD9kFW*SX zrL?md!eLWI0&CgX*@weL9UUEU!>_JUt>hJvO3<}fh1vYQHe*!d+A~MgQ%#$!otHjFH?7K zINq0}c_m`gm-ktTwiwSHiR|&yopn!8yPn|p?&kP& zUOU>Knd1*~jRc=?-u3tAY1^lZnVGkao}R|A=#7vPol>HAOG07ui`p{XQ2F}y)Zpp^ zW1p20#c5S6LW}KcU%iqm-d4gO)5*2eOip4gD$MCVGaBsTo#1yG2?i4{?&V8o?$+E` zfzoPT?sI)l(&O1|6qL=WSFcuNA78ckQ&dbUWB$*N)&dBo@j5$9iW5>NsBR4x`QN^M zuiGw;H|Xb%!iQ1*F?2^y|31g_UDD=+74r9XMNDh6hNunFp4_i;n}s}7EE9sZub@p& zncEkZIOF?dhwx&VkIFc+oif%-Fvj)uYx!Z$nJT4gmTqe5{LRy*gGEDiALFQ3t&+Fr z-9M6>QaT;}QR$&lSIX-&C@xu4?L* zcXkvVpM6;^iFMIanIkQy6Q$RwR3Hn+Caa7ImNo8|kmye35S8fl=@mX@axV2M4?~QX z_pqcj0x(%x*}lVjqxL&rICJW^bdK}N)~e-Rpc0dj$nXbWC9Mv|*W5lVG_S5BY)y@}_?_%$E*(6whBmQ$;WXnO_Qk+SZdZNSX~`-&qQrI!YvekRmpn5uUTPkxc>$K$PwAv?(tWE2R6)SeQUFbw^ zyZz#Y^a10V+Xt7o#h<;u&4}gF%1;U*dleddhABa>qb$7{Vpgp@Oi-gLCF6e*T>ig8 zrvJbF@ev-jYk;!PwcI4`MbKIZNw*|l3khlRv$^#b>nAlo5r6T(V1>8~<(JKEK~l8o)=oPEj|l9>M4A6pNkh$;m;GVnddR-(8Rgk_dzlP# z%xJtB96nM#XILQ{dv^T)?Qyp zbHdClp~>-%sSvAANlA%xWzrQY>8bHvgU8~R-`jMTmL7E+Z9kCZwd@&u|9*^gXOne% z=CjoNC<*sF)xPwRY371kYLe6vYofiDxHd5|GRf<>sYos6rsltYBJPi(I$6ZBJ z7on%7Gtb&bKSNYkR76B`w5vene5vc%>v8eFhZCdUTBV%Jhyqk$KcTD~*ikHM_lbcV zRgbuyOwPILoU*HpVMguF%E_|Nau9^7g0H?@vzs70Zhmf9?dZu011Eb>aB}Q|#)`dJOM{gxqBJTG+_N#YLeA2nc*kIY+O| zU6Iujyi0CkAV`XH@p{&eW)-P`BB!r0PG8@@ZfJNFB(-$ABiUQ*()Sm7gX3n! z9`hpQe}=Y!vb+fwwP|NCGBR4TVFNYArnj681A5%fj{j44_t_E`TUS@t{TqvF00$@Q zMSDMIR4m=+%g`$kkquz=!MMt#v~Y5B)B4h}$tWw+efsq2Opck7dir_oXCL>3Jb4l@ zUOrE^PxA@#f81^Y@P{)AdU3J$bT$g@r{uMRS8jil)Z?OK-kS zyYXV};E6m?a^pFdez(oQi>=plp6}?_*Ivmzae{g5Bopulf4Y%*~AXQ?Fxw(bmRNVBh<4ZhFLVdC9{JG5TK(Ogrf^ii%-m9E>lg1)r! zX{OuswOLo+qA)oht5z)k8+s)!Z^BQ?$qh&?{|S=uOWn11?`pTQ9Y`A4248@#Q}s$T zD@_J*4U$J^+AnAo*s)!_crlK=@$&wjQ=3m~dh%$dzDUU^zXK%yM!946zI_+^s(fho z@>Jk5*EA=pyt>@$;foPDRo9HiFjmmZ&GL?RHT{me!q%;yBkjwNVNvHU^pv^J{wNtA zoy#3|YLM`iTAE$Cj)gyz&Wh?YI1A*9q*Q(PUp0&>pD|UmvQ5@P_t?ePHtb9;2>~SD zu=r<^MhY|j^dSfS-jdREvDvdvRa>CFAo%v}HKm$~bRSAY4f{6RZ>M-svM38nUXN-o z-(=QIVRo1kIumLbL6S4Kg9{~WNd3C zNz0!U7q{D=rCaQxZQxE};gT%Dw*7!JM-E4=b+?_Jql z=k@gZhK3U6IuU?^Fje~jII{=!_4Qo`0z?t3rCxM&Y~3beBMsT*=dWLV{rxL0U%uSZ z79JVtZ{YcddY?*EsA-yd(k6Yk;XSE3d9-2N8ddfci?*&{aDaJP5MtH_21~V_$ z?%TJ|dANx>MKew2=IRX&b5oY1J!RWEIyydB2tCKiDVN$-Q_h|}d;9KPZ{@_0a7!W9 zT*%274qrk%a5ohtFL7Zke%$jfB$}_X&rM-P0j1@b7?wE;}y%2X73-b zt)Cu|eicZac$}T#`ilD~&I#`%yNu#>O-3aaB`OQw=gCK!SIn$9(=j zb5l@I&}jcVynhGWtz|T(7qj0VQ9y|Z53{qbKARpW=a|)-y4Jck zZ#Ifw{;?TBFFVq|sN~Yf-juXsH&+`EH^p;`ik{1l($8RV|NVn$o2cDpM4+?#ZHG($ z3`J&lTD7Kfl`qX%2Zx32(QPmkyuCR8+dp8N=$#9%0y}Dbz7M<#deAZiMMCn=7e+7~ ze%%HOA@ZRg`O@>}`%4PXEY=BBgtiRz^>OS~erz$RB#tv|Bxk}I^Ja%=^Rx@>o}`K( z+-=;ni4(!kEdK{4Q*DA$WDO=FUwM&?EqIw}o@JiS0oMsb$Kj?uIhO_o22Mixo5iZ< z#W&Wni8%`e;5M~I$F|Li60gP|EUN;GN$ ze(@Etq|Z+5)W0$q_Rl||lKuIxckI}Vde^&0huAygBwj~Z>6W@q9*@kW=}@!9RA*uh z7<#6pV>F|#tF9jEaOskVMTq7@iIy3J#EVcDt@YN_Z8$^+xIGEwE5$=>(VrNNXF{&=Gk|%a%X>k{~eF{(ngETX*zkE zFbPjTKHMlf{Pq=|3KBuM1$QHqhi8ozH7~BOw7vIE48yHyvy$7J0cmkFzVAHV)4e(= zbr%Q6vl9h;5rRfHF!y6{5y@SDSO#atx;Xjx(%PrVDG^XkVwsE@TkZE|xIEs&^ybZ* z+Vld)0olGUUv?*Jrg1}sFu!S1+dMMO$pZKq zMl|N{6=SP}tv%*v!ep~lB>%)UIi^}oeQQ*;&9iRHkKACR@Ge@)AbBiUZbue*wXifl zo~H&ui5oBj3*4Q0i&J2e^k)y zO4ZK6=fYSt4_cU6S(5>6*KXJl*3w$x<%QGN<8za|OW!}fF``@2Oh3<+l6E#$mdHJMK$I zmvtR!H%;4iX=w?6drVXrQL5V7+Bg!deG;t_d?Oh_Z*Fn4bwmWn8DLCJ~FeY za7|;34};6kVTpJRqlmn&0(*bOFz!cX_t=bzU4SRfrs)X#=XK0GlX<#VDMBl?z9-R| z49t&D9mcjev%5p`kbH9H!JXIg531?mNEO{ zy(cQY)9`$fHF(O;rf93(?yL5B{a#aSS}LJR$T~d1D)69Qj*x~^=x{`QQbg?OHeRKc z?WV;upYyDImaWH|^QzSHXsmO759^#&6PA0J&Lphig;QD&jt4qphY_DEmTL;QNvnB3SmUj*tX?_Y}YA!VEobJ<=5K-?XuA6hVo(U@^f% z1_2=~P|H&`mZ2?ut>d?Q48HX19KQyFg(k~f{S?Zu0`rQBGBwhsqSI4y*`6XzhH>sf zqE$;WHRW4ZK}K%ssR#THE-tqc6Zh@7@@1pX{jlhy{IAho`Z}!`WB^E=)@Svgqe?8|cO05hnvusX40HmhO&dn)S_~J@6d3CQmiYfq?Q)~!J zN#ThAxt%YUI4EI{X=d@^>Gj-CQ>=MkI}smf&CShmmZyj=095(4QP%EXg5^FB53j`s z7{`-3cAfj$ooqJ+td7x_;FY*c7ir(K%BodeEZCN-o3B&x;>GOSfq~2fQZ`Qf`SrCH z$RafG9RJp>Tl?FyE&zZlCiC&~o<3jf{Kii5&C~tb+S>g91pNRzsO7Pw@Gm0rKF{ta9)ma1cu?k!5 zzxTSBR>kZzsT;J~*hdIko8`Z&u3kxgw!$(s1tiw2?)>@l$eg=tjfy%u?nc5iL~tjn#6})3dxOICTi119Fk{uc7)$5QUwT;31KZf)wcsdZ-}8xIL>=0|`Jzpt_B}N>sMmc)@yDcjulI`!K@zu^ z`E;aX8~5MKpVG|G4?qID(2}g-x-j|bfK9ugzfvT_3Xo_S;QG&_qp8wOO#psuSmk)u z*Y`zV{rOBux6Ez&L$>KD!2LHbx$4ZSZ*3@a`by_A+I~GT+LINZa%WqnoQ++rlW*e( zWYBfkw8N&SbSt?S=tO=yB-}oCm`B%wpYquWKzq3x&Zip#{eX5iU)fk!!7fS39hjdd zp%Fo)KV#CYnWVZW*QR3=rm)&h%i%?=gF@FyPK2L;f*!YZDn}<*f!dj8SvtA6$l}63 zJU_duq@5n|W_zOYlPaHeEE7HM<9%7Lc2xJ*`tym{vIeZ?)5#^HVaAfDSAKOX;WmDL zl@R9f+gQ#>5sp<6qV|DUh})66ujjsPT;uL4l6E4a?ZRY#t^DcJ-mBe+SXVdaW1U%trKf%Q%PtP>dU7bw40Q6YsV6E0v72%2(OT)Z0b=ZW~`TmJt3 zH{SRY6#$uy28cH#{K%0b&&(U5W*2@nG$IkL;h2C}HGqPKgQMg1kPyaV=iwEiqN3Cx zEaRvGK0M;I7lM^(9caxhu-z><>S_uRv<_dL6@2{U3E<#|_){z`qPB>sRiRvJ4qxB1 zb^IjLt~1y2TXP~k9;wIK`d`ME;hi{YTgppuiXBW_2g7nqjySyZNy`G+Oca@neTyLrS~`<=a=^ zq=IgOJ3GuOYM1(b<@qxGAb{jmUJH}HHdi2=9=JN|aCNFt&cVs)xRn*R=WHL%m%%{} zDJcW7HR?{bz{Vhpc^$`Y1_jX*sR_|_J*YSI)2f)0{tn|k5^Fe!Jav~I5F=1rW|cujTUGqg-5TF+)`awf}fbx18H@$ZUQ2 z;*74gEoxY^cywXw%&24Kf?g7V2Q(j6gsn|K!590W>ST@VT7uwfR2R;tRp`K>s;U|{ zNR$qUMkWpMWy9@RyXe>@@8ZmTSPo4Waj{^-57}JX8NIx`knRl^=cWrU4&KQ<3gv(Z zfu~R3y)pcjAR~EY<(G&zj{P-jEsJDhk3qDa{HUhF_3*t5_eaYQj~{Q>{+ixsp)OUq zKd{l_gpAAz;D-8_i$8w+ppDOt0-%B#(O^SkA&@A;K7=Xzx~}e!xW==V&gG23M~BR} ze~)-p^*&mPo?_Mz$x!vf;6Vc0;>|n=37{9;8{b%w(WRJWoJ!NQ{++jH@7@*HMn~73 zaR`?gGv9e9Br1xI!+X?_?OLsAV5*E#E9QOH#X-g4Zy#!FsUJOhlx-Qx8Xp%&rgKJz zXTSKqv}G;iPWzM;N;Lq_ROTF<%ReHM8-yn4mzo$X@c;=3^0 z+;+5ZV?=4_chq#`m>UUhi5o-`{nk?^o^R8!f}Wn9gkmDovIaCIeL#VH@Wz8{m4+`M z!8?Bc$kma53;;weQ5n+HItbQ*N|7RcxHPD`AFT3_p5fzB6TC9%&2Si*gRGb?5y+Og zcHP8aHSz0LHI}r=wD^%D9Vcxe)>h-V_34)(VQj@b@I~!yyO{GDBA}-KzUbm2Qlfq= z0EG!}FyGe+MHCV(d3E#Gcb8m#1uRKs{3#{Wqt{`OHN3_;fz&oKG5LJ?V$$&wa{K^h zVkOG-4r86dHl4X^#h%bnJ`WE1JUi|S#&yo`b^bo?hsYUzn0vRGcrl8=3ov$yig#uq=GWkUYaxYiRy;3e+nF2OqKS1mIo)R9j|A7@Mg#$(oIt~j zJ?t|25F<&uhrb9Jq|WNsE*?7uUaBHlGCHW!lZcqVx*{jc*|<(sj;qeFfG)z z9%2n3_`Dx^Wiz=Q+?LvY$2V+;9bTm7qw0xqHqHNmVfZ^7D5UJhGhmX}6+^JugejHX zDdzlbClakuKHptGzm3p|8LV4VHx}4+tM1P_$bCM?EC?825<<*ODv$)dZPRGSHv7`a z4}0sQAWZ#urW7F&2}SI9q>y{QS$zcgq76X5Ol;%kj<}8-n1Y}iJRom#OG@gyy17Z_ zD#X&Zr($v4CXWwhjgm)_d-m<~N0egjiW~g$WetK$-{9aLNL99>=~oXPIz(zq{MiZ!x8%zFj}Lx5Lx%`V`8&_EMmJn8Tj5gnepqF?td~QqIaWD{z3TWL>Xag zut3ogd8dibm5Q&j?||<0^iw|%G{mzu%geLrXoC3SOV2KnlIAkjNq0cc9}^aWUUp|` zY3X+3;&2QI{xZn}>N!&5%qK41HL9dUsX=`#G*HtH)HBzju__g?DxZt3p1b(+xSeJf z9HCF0c~iCsS=`gMJ!JOoj97TR`a?55VPOr_m^wz^v|8o4Na+#X_tHqKa7z8g1fsnl zRCfN=UPd}{5^FoR8$lgWuMbYJrdMv+Zu$4c6sormni}7ZRVGCYHx^&AE{RT;IIM9< z0#y%l(YAD^K|sgsQ*@{4?d`{D59y@{*8exT#mq8!Xn(WtDM&1j(zPR!kGyqGn@~@i zu-y9JB$xmCu)aw>Ek>!0`*e<3@zdN1x*F%jh%$rOPoM$*a@!L!PW`0g%mY@6)V768 z5LVt(U>^+`#OCvh>t=a)M`_Lt*<4YMH)k#5UinK8`PE^52@WTqg1kwVLvppcTA%+U zs%_7qrpzPC@|H6z1tI(rab{_DfZo50p*a@lg8ZUld8w;Ezjw-_r?dzs;>EO$NQSrT zQ?9`8>1hqI7^U{*ubrXS8Z98X(@>rQs1kpnH04@iVxpc`RP^wLc!(c+`3`x=7XsWS zOVtz{PUs}_m(Lwc7~1G6ipwHLc|s=$^HX;&zVVHPz;ix*%S|*6yasX{zyx7Wmmel$5XaQ^Bg3P_8(5{9uBuzeHO?i&ebs zGs`ae1^Z~jhCHSouixJqkLxT|trMW^cTMa3wNw(v{qB_#tWyJ+udGcY?jFflVDi}*-IK|$0NV~f>yUBtF?|F+ES2+brfLIsOG z>Ca5L_W85nU3RG*C>guX4JR@wYq}qI6q`tv);J^XbJ|C9RnVm9gh_LyWx`0gF_Gb~O>gw9&wK&b9 z{6x%$Mc=hDot_iG%@>67^G$lm7a&+`DTR&$tI6jev6ax+JFX2n%uW~qY4xM3NKh+f z^VL@C)2G*iQ5d(e>p`^T`sOTV(~(V$(+g8RgUN!fu131|MbzhdoHPm4vdWWpVPlWO+0dZ_FegDM3rf7W)vu!y5HfuQEIY=k#Nb;y)= zG0HsmUb_jg2H42ht0pS5eN0l5yMCf|`jb<`Bfb=!JZ@4TgBbH5{-!t(SLx5UJhX9H z{LRPyfLz9z0@RV~2)kncOYvJoAc>M2dRp_<`5(z>C{{kN=%$!>23 zl9-VEi0gsiRAhzi$s!;)#0&sh$4h`N00g9vkmrUl=AL{acIgC^h#Jh%5DY^ye>X8o~Ja~BYN;WJP z2XzG?ma1py>j_zWkY2z2@EQ0|5E8_bM8L&2va)ictnjY2dDxl2Um=_JGhiOaiASaB zlmPPkkt2Quy`H+~i!RpoBR;k=VURXMug!OSo4xgbvA6m*%0}3M-$zMUJ9gtX{IP)U z;ESD5O<+DauBi(Ri6APzzlfiH?ZDD;_`>Xk-91TJ%;Pw-8P72F~|b_kgu3%=(ZCd%ytPk_5bd;xePZzjDDG0 z3<3$~(WB@8iXeT`d~OFIXD|!s-vz!r7TZYd6dC1n+!)=^z?m~J7}Vf)*I~T*0L&{( z#>@Q?+ey%ZBBfhE_q8F~S2M*2+6jrg(7T~#*dvq8LTI@6;K4q=UsF>xy7py0!_A2U zxIk*k0+f`)&fge7!BNehoEyoguCG^0YTuI$o__kFAQkG=O$X1NJGY94=EB_6FbL5~ z3ei8?i=6fev2K7+D`@zF0xZkTRC0nau}8<3hWJt#RK*0RTOyEHvzKW zVpxH+@~tg{9h!gG9X(DK{_`)u7Xn~W==g~t>5C1Ltb%uE1EtV;coQkI->jrS>yY%A zdy0szc!EC*^B3%3O>OrU$LMXd6M~_humckO&(mzHBSl+3O%%x}n6j^5zkUI2 z{$6AxkH6k*_z%gIS+0}D zxLAWZePd%zqT*0DhxOiJ;t@1?&2aTsy=ZnP1g44Z%e_QVfseos_KnY&S;x_Y@(-KK zP^7&HjmC@_JRMs3He1OtK9#wj)A2+_?&|X5@9f@V?#(IZ1V{l@E6bSL?o%PhU#APM zMcc_v1tH4e=NAR=S%ubA;P-x1gI`K}QD%44+8N&?p^>>hrX<};nhE9B4Xih5 z6uL*Rtfau`;iIbU%di4V_n3=Ie#i7atLR(dH7HF#Z5yc%Px-T^A`YyI>P0FSqs)ui z+LM0rnmHh~luXy|Gx3UHHsA-!QAgKO;A08qYqQFO3G58#{g#KUxilG;E{=|87emVr z!xwjrVFeLMY~w2p?U1b;!;o$r$##%;XjeX&10p; zn|*|@3+zwT!xlQ8*Yct$zd<=~*B{s!065kjGJo%lIvM$9Tb$*qXEU7;6~QtH$a$-5 zWDSMGs)ZI}*$vceM}?CbEl?p#n(OptfQCi;SC!$ip;$D1jR~7Jn%wt>guD7j8`j@LYYA5;^g8|$WOCr zP6%+;zM(^;D5$#7i9`9k@a!kv?2Crx{u%#}!dHB+0t|knnC4gbHgo#qMMc7maNEo% z*Owi>^gZ++u9uT2b(*pm&dtu=hVFR+-5+(WWmkSB5bG8xG1bCp!KZ%}iBSA<_&=Rb$F@>CB~q_ z)2z!Mu>-(?1Eq!Ctr-UPEG&H)=Zl*Dho-UTuadHW$ZZT8qcLQB%BqlRPtFKFBo@?{jgbLF zEp@rIlu z8)Xbp`)G=0WMmwhbK#+%8_j8m%gD*j&P0`#x>>6YeM@l}zkdD7f@nluqm*Q7zn$xR zN*M&sC!->4J_fNfb^wFfUH9KbNpu-WZu|^lLUg97ugK;RWg$KKdKI2*i2C=IN{y;l z4+m&7-Dv8L;X{{6+vtjqfFki1w8@iwXEg$ELQ__%G4P&Q-X#n+1QY}&s2IJyz4#l$ zR0ZUt8JUrh0XGW<${T;B5*X_HFnw@vaIKV-R8HF<^h2Vc5YNfC50$C;@cG5ZYS;2) zlp1SxApsNTOss6c!IXM^{~m32TlVyN5c30YX{6k+4!55JYI8mKlJzh&z=#BELb` zuSE;D>F=hRkp%?>Q`3m0u$7Qv=Ajg#=QXt<{!!u6czBFbvU+5A!QdWL9#04R9vhV459bcc!0$B6Zl zXg{L8R~dEEn1K>1(OD5U2!*Vc6t3I!-IXex2bmlHJj7qd5 zZ30g;BDyiIuJH2s4!Rvj_j`Db!RyAr!s7ci%3T?^a4toY54CpoLYFaCm<#-n?kE)E zoyYu(h1B!Gis!{Ah2h4iG^QQD#5;?AR9#qt4Vj3}=g&V@*9As{uRswGChtgR*|Il7 z6IUXzH#b}D_tU>~f6mNkirs0sG}fu%rq@|5XBj3-Og6gsDSpKbHJyW>G0Ozmg3j@g zyteu^mr!^~UVHw}_UQj-wc!6@ga7~PKNimfG%5xC)XKABf;l@Z@PY;=`XT+RlP3xA z10^GA4G)btJ|0TAivWKTJwwcGYCnkRO-T40ME!^8(N{%HjaIQme|aX?sXjA zO~D@()CD0-lJFFR$Yl)XuK0>89E1-^b;UKx&V|LrTGT}UcGCO?ny9L)J4JL5Of1L) zV6@Y5omOq>d_xV<0zen_tgFD@YGJO$H7lW9o62wXOH&z0z_Ey4M2pbOrm%kxfrJoJRgbf5+)=x z<~9$49`dYOP9Ou=KF+oQzXLFUk@glH8#ky0Z+cgnt|*CFq*(M%*#l56zLRnr4a|-+ zquTx>t7&Nb;RvGz^xMe7Vm<)%1@5KSRz&ZI8zQszQgu}o$(F>%hzeA$V^fnj>WKf| zr&QkxM3#;X1MWOOUzCjv7S8QVyC@{1{#ZnF&2>^#M~RYh4UvTt?OxzOwEK7>7*;?_ zLFZUFk0nTkG#CQb>&}01-)Jm4_pv*8P!6$V=Ki0 z<$9>`)fPfkXeApj`@I7peY2w8L14h@dmP6>BjZisc-SIrwHY4t+YpH<6hg63K&Uhn zd;u#8_}VMT8OiFSn~peqrl3h?9f&%glao_*rcw38xYzPFfPb1Zg7G@&NBjBn=jSh9 zyou|E)W5i0{1#B7C0g~phzM>zr;8V>P#*R}%IrssqoJU6Wq=TMv;slCxpCtL3H9;D z4_>1fNm{{o@8117{P##3J;2;?v@BD0qE1gFXu?VL z#?jg!IrnWBVWkw(XoYIWCctIr7C@}7!|@M7Z=W|tVH)r=rlTek{G3eV|?A zp7I`A4hKv`NU?UrG-B(9!XV1O9Icl0FO+e+jMg7QE~BY zaE*jWJeWy9>Ls%*->&-(rlMlqub)3NVO;rC=y;suHu#PnOM0-Ph)hHB7u!N{Vd3Y& z2L_sp$Gr2@pIf)y4+$|1p&;iI@6W^M3#j)xLeeGVR3r|@DzFjKsf46W2p^=OdlL2( zbtw&=KsX*?+$S9sk)>4B+c?}|NCO-Ve(=D2Mk1|sN%RN^)=Emwh+Kf|F0|Q%-Zl|N zSfd!ud_o7I>y;~9@QI+ug^rTFa@SKsUCW4zT`A}tpinawR>AM2Ar&w19wUPNPGDxW z(M@U_Vf*3M;p?a=c8yQi?$Z|H(}Dlt+6@C$((!^M* za}Z!}<>m@OG*oQfm!^p@``!A`mi6-T@-HxT-?@0AELjVy7$i#?;BQMBV^;T+G7)su zAQblDHqFE<;6OFR%0`{35 zUZu4_c#}{hBG|N^E1`zdKQIuC_jP{^5BouLUrjkv;pq{Vkf7M5iV6$qKqDo!w1M!q zfZsTzed|+PP+v}iT}z4xP`(MjM?12R!DS@dH_%@W+quLJi#ouMSqnD+sK~ zbJiOm1CWBin{e!kV2tOLJ>msw#jtTB)e~hJ$a(06Px9n01_kuKb?a^TrEedoU^h7s z<+XHW_%eVP2PfwW1RsQJvdswR=Y+DXHJQd0k*|L7N!E5Ozq-59z2jU;-%fMtt z^k~E=IgF19jVyfUFJT2FM!3R~5^U#V02a@P@*&a=iOLi07lOE;dK09H5c8JR1{s_r z9rmjeRK)vk`3Glr9D27Eh9VM9VL?#k%syx{=dzkR1f~S+K?B{<+uQs0NLvOE+Z!w5 zE}*RWmp&8+L+fx)S;-V#BHD`XV0#5(C_s}npm!+T4rZ_!tJe|+}Za+ z?o$xx6!P*c8fB2bhye#xeXR=5GWAGo`#=<8_{Y@5!Zip~&c0kPpq2Tezhr2vk@T~~ zT&_Ro%#^N;_L}~puThNHK7sQu%-VAiHv%!a-#AhT=@P4OUzBVA+Kt<`S;smLg5~c* z_?_P*Y>A}Df<}vtpezN)vVWGK&kT;bXHbgNvqlJkVMZT`F;?30RY4y3iWu<}H=%=$ z+ohWn*1=%>F!G%{wf_t|i;)v@+OwZ&2Q=`;)z2dA5hDybN|3vYNTb#r+a?eh4g$mA zP_y3_&%=)E0}I>-g$ExJPgjJHB`2Vs9j>$h3P%>iO5?~}^o#x#mGG*g{ut?Jtp(1( zPY{MrVlyDuA4Okzd&=JiqovArVRllLr58O9q&oMz*Gr(K6{TnL0s$wk^LtxH#y_fU zG3tc#R-YF0-rrtmCB#Z44Sp;3PDpwU2jHI%q7`K)QeyY^g)oS142UpIBR_$;Aj2eM zR8Qrh5_k%*wgrbz%4heSJw{&O#7X(^O!Bb3N*G;E(~c(vfs*cOG>bd@{-HJ-aMVATBN4+{vGYv->blSFf6CWd2z+%dr-H960 zorSoS?u^)~Dqn)@doyLU{^_xs@2mjPB8l45U*l&6D)(i=2wsqIn0e+cb~RU5S06{C z1vmOL;G(kVF3ux{vsMme18D5c&|T>q&(42%cAT$uXbpS(LDRRJ{qyRhr3{8G21$pP zf1c8#gD3HVdB+aBtbEX0(&7{o6T{ounq#hlhNdnw8v1CapnD2c3>T*{owKlb`}q3$ zYTF_NGybJEIew6a{$XYLm$>qun~jJ#BmdvsFaI*Qw4%70v#(={Y8aHlWl^(_j!o=g z%Mj4K5}0yH0?a8y`l@A%86E+X=7utYlGHn^6u|JQX;huaH|CMj;>1p~^s#vMAd-={ zP)SSbux^9^GYM6n{EVam|BRE(17*K^hynxUvg)q_)0RQZGovJHsn_R@2`msXmbhFF z9a4)(el*kJ!wv;R{a*qM$O{!E%I!OsIH ztEDSN%#h66OD+o#R7+GJ@RWP-YQhOBA}Vn^6LD(Ff1sDL4ghN1P@ zYNRtS1>bq^T#^1y*#)K@?rS&Z2aZHwGAm}BdZJ7;09rb_a4XPgHSl_LEh^+e4LpM= zDGX6QDIZce5vr*zKY01*MHi(@&Aj<&RL10kRmje8r=9qzrwCx zq`r9K#41EZ@}%IMM$`&I+8Z zL~9jFK<3b}IUzwNIzKiBRlz14+>|wx7_@_vVh*ZW5ozww7fJpA?mGzs>k7+L84z_; zZPACq0FqN>DEKf9XnG$!qQu;a9z7zcU?C{x{h6Ql$AYCT)3^UCxgaXi@1dj67>7$KrA7#_P^^k8|dhmp@3q)k2_c++xGF5 zAth@h*F$_JMpLvKXq^{D4{!L}T6|Kv;9YEnLriUC}M1w)fl_@ng7FK?_9^kb5K zMiJ%YR9azeMj0XmTzGl+7=#lb5xvt+#NRbMf(J>Qhu=OXg>=O6p_u|>TuZ}#^%}6M zbVeJ`#sYQPHkYM^E7-$^9boogWNvrq6-E?Ns}U`OU?bZF=dE91{7+Qy6%Aft`#X3l zEIM>&=us0{E!KwzI;uRER zfQUx927CU6)>Lh9F^&Y~C)|;_rY0s&!H%$V(r-b}1y{%k8cDDBv=%v;&(6+LC?Hx{ zXg5NrC!G%23c4V+aFg5x>|@8>=J<1+M~4StZ4}aK0QHXu<`;+=ULjIHLk=8m0!zSf zv^@(ZCspo?ewb#lP%N9G0X`bh-nD*()GAA)l>r+C`GiP3{@dvTN5TPXepCSiuz0{WjX_;h8FzVOr>3tPw{A^> z>E%!hHn{-w-#H(J{+#slMJuq77I2a1&$(aD!p=_i%jgudOL}DGJ|XlRrc>p|hp9l3 zP}7!gT?Ke#4Bt?GppF$9g#cL0@`{R!iS|BA{5DW^lv}SRBqm-!75JZDf?vUm<|w2) zvcXA@>%ayaX$`DvO}`;GWjYV5>dNs6gTmvU&`0zp92SJDV3cdtt*eIiM>f;(5I|yt z>t1l)>tn+6PKqI7#w>K3ER^=nmtWP^iNd}eNJhy^p#=;paK5IcluQ`1$nCe6dx&Eb z*7!wl{ft-09qL~9c6&?1D?vJG_@_al#8DO}k`orksjh9170|>?kCuYMO~JPBwTCJB z&hs<29qaT`TB@-18~@&|CyOqPFvD{mL~30kwoMj7E(W^Tn-4Ykpa=SHZ)_5^(K=T` z>NrN|TSGjH&<^Iwv%enMboPwl!&i45phP{(ZVsEM@3yBjyYhaAvI*LGKfhF~O6w2h-EjiBS!EH}~|&D=CF}WFV-*c@m+N6RwFz3079G9DD?Hy%#-m zl&AOOWqwt+Q2r&aXFNHS$5qu@Vboad(AOzq4Ze7>V zAcuZ7lm|^hgrQhs0--_UDR3EScb-{^fI;f+s=-h!pRA_725kjx+AAo8?LR{uigffQ zazmWPtgA-hic1&naRcJuB&{`MZ=wt6T7_B)kVrPcOfNf|LTX+_*yLNcetiv)+6M$0 z%MO?@i0*=lB-xRP)EqGCwrmCJ@Dv0Qa+aTp-4`CB6H(u_k9zphWo++7N@MULKtw-? zra|PkXISjeLv}z9+pXLB&pnmk8BCrkE^+_O4+H_Ch+Qw~ODA7$gIKP~dC@OTuY}pY zY&zWL5z*D5^%CQymGq&52T4yP6euWW8&HXc1b1sw@F~*6LX5mNbE-sDhmeHzpYALX zsho%iybbu0wAP~!hXw3L4YD;EFTG;tV78;EgBU}en1y?K0z0o!_FH@-J2u05f;KM_ z&LI?>#V?T1o}$!~EsOdFNd>Z46r`8`so{!Z@byo~GLXTD7ZqkQqQN605QaY5c?>HV zTj8z%Pk!c{7R9gvtKbz9I)y@DIV{*Q@@6O7zXhyUmqpFq)zwvgJaia@=>KT%&BL+Y z+y386gQQ7?CJh=?q?rb3Rw)`$nUauM6Ae~U(ZH(KqLI~HM3RJ*G>B%a(HxaVNl|GY z_UlyZe(q;K&)&yA_J6-r9#&w0M56N|sq;H^0<@e`84rfOnRI?Xg^ z+dTL$A5fLu>G$2bbvrcrb!qZgE~cqo53E%ARaZ(N8ry9qVSBzN~%{?wWo6f(!m3xNzqljWAhx$^`{VR_EP^sGY}Z{->82kUW* zFCeN6pp@M(ViMEAcDU*%VseXXx6i_-W`eV@zlbUcob@md^6^9DYw&f7y4iga!wtHP zw0s?XJ-rEti^n!>Hza>{ea8&RUniG!s;#YCP?k#%$hlPaGkwsw1 zbrYV;t}0Q>7JP#|BJtz$7#y?;G6+OSv4pLCn1rLC&-85vKw{WfHw z(+7uH8o1pa9a}*gFO7!K)v;dU>EH*Y+REdSm(yACLwDad#}!R)xW%D32Tf><8)wqHD@+0(Y0 z-OIQ;WtG&u-T%70O!dAl-XjMzS*l$VcX4rF@t!bMa1_>sE@{4N%Nljs_<*l2I7m(E z^uX)UC6Ymm>Uzs}qJbQbFOD?oe=yC&#+vk%mlLnd+w=&tycy5kouO3ErE`TZy_28NBmo!#f~5wd6yv}^-vhl9KB?s5CTdUC_258h>t zLFxYse)7vb6!FVF^dB$zrDvgJh%mmwo)r=A?CdNSo>P7m?(<_^KEK8^FWMEF2AAX= zJzpqyK<;o9grq@(2K^3alM$zFn1JP>pTEB5nY!6Dzw+$hCST1AG}UG~oo80dsM<`;AV_W$qNl?&dxL0#RJ zf^aFR+osO==xFUf=ai|#!?fr~@2!XP$}381M}<1Z9)TOaok-g>Vb-P0%={tY$=lsg ze{bHZai-IWPIoc$5S^y1NKCtLG}7zb4|nRMaPK;{AHTehn)g1VsQDf9h>A~3_5Mn) zG|Wu$I`*s(4{^`swagy2IT*QX6yOP<@Tpb_Zo3a5^BGiQFNd+jKcQp}>Qx`*@lHaM^=bQ^v!stZ0fpC(-1=5s?Erxqa zOs)^MOt&8a-hi*>4MFZ|pr}_=^CXDp%?c@d@Y?8|>>i`)dI z`voL8;4K*-4@&AUEA!%Ju1486hvNLIa*wra!K6<$;w)c+18uzLL8nj@{cAv49A4aw zk+;wuwWb3h_##zCd!6(fhhEIYuo?T|5SLbEwGa|S^4TP35p+gL{Wq8AlyIx)mB#|2 z2)%!Or%?+;z9L=O*v?p0vE68KPb3DRB6|_#3cL|v^mVrNnl*++ZQj?9^A*F{1i6jG zXcY53d|BK`5w4hw9z8I#OmzbM;d8ZUy&i;7E?jpNKtZ zo3d_J(?7mZ^*_0CiK)h!(-KSrN@Dr(O~~qcO?2tiRcG1L7w%o86&b6j=qA9zx1WJ2 z|2`{1e*OP@(8T|Y7yF56ODeZ{n7Iz_pHa+Nu0mDz5QK32*kh*8*|^Vs-zp$3HAS7DQCc-daFJZKULCt+S5?_ zqtJ5hZ%gax(RT_4x|JQ7actz(auAfEKfW$xh{){u#UO%i#lLV5?!$3QF_mXZH2>78 zVKrit1M;<85uz+6O|kpYe^L@Emm=^+RNs}(pASyuliabxx zwunmS7RHAm-`?GE2~PoBb-?Z-t`CfvO@Jy#-<#Uqwuqu4n3_Wb>Z4geJa7BKmWY%E zC}9-q+8=-Zxwqz-D9N-a%GR(MNtFriK;I@>Co+*{11_Y(7dM+f;UM(*P4@2~ONgx_r0^OL1BIlRit0+TbgBNQy>c0#hjH!X?oa@~zLZ zcdi8o%vF@2FLPX)6q$P5R`Gvs6({pU=u;9mOl4dP1#Fx{Y$-4vvS@nFx>R0?uVE@{ z;ei=5e!MDf1ATv`S-7vOqbCNdUA}&OH0@F_J<<6S!3ZO-n&8Y3TY zuEv>~j_~%5f9cN+GL}Ci0i#evR}5phaY)uo^1U~;>BtVaFQgrfz9YK~ot*^VVBj8Z zZ5{D09n+dvSW-6HxN{)oc}8`(nZzQcLf?qhv;fRV{@J@;3)rm?t&haY zvKk!2;2?0)XQ--n^30s}il^kJkRK6eI^WOlA~ac_*%@^tvj?Z?wngU-FSRbkAvzITjBH0tdO z2y80x*6lFAO*QxOR0_5%Y8a6a_47D~IMyzY(o#G^4s7x+jZ)Pz;ytkE37QK@ksWX! z`xUAP%d>ZSjpqmu{JfD4JHmW8QkXxsZ+AVBH{r>%XEkeBQ2plorkjTf))Wd!Q<~nN+*_57e&1!NR^j$FC1M=;SKY=OQm+Zykvn=$)~Dtp0!jc`pwYGr9=nh7RBM z0XVZqKGlWgtTu|6lzMIYa`vf&RcR;JgolS0{Fu`uxm81DQix#KUc3l_>^O(EWbhN0 zjzI~Lg#tB2m;=YkIx&32&L#npYXXd$5;9WPHk>|I^Z|jZ^5#Cgvl{3EKp}R; ztB}}63PgFT3K^<{O69;4hBNgHcow8aUW!5F?b@P$2wb)N9yd7Ww`}oUz?W;+$c~OL zIA}@}vX)>OzGzd3crPD`hNf5VQmVTT5JO|616={(47CDRjd_NqY(UZ8L+jOQ0fk+n zLUg_ctF(@MhEk|1-bP9B75P&Z#t>|6SfMn;Y=_5pd}hyM*xNA7O-_kJvqwv*%nI7o zcz{F~QST|v(Y*sKXo43zp)0H6{pPR>COX6T%N4>+TxagHRdWtv#~B~3Tzv0dZ`Ye0 za(rx2M2(dxEQ!wlCb}pq+zS;p2NIfV0toveVH-6GawKF687avhehwDN?v^6Dz;ZrR zL>G#>d5^x43PgXvcRBBIG<^*pQcv88Z3hQYZeEL8A*wy{$1*Z9Ci7}}1!(9*_lC08 z((Ty(dA*B>N(H9|OS;`xFb1tb&A=G6QF2094);O*b=&O$y5q(uB*c_R=e-X(TdHsQ z)}-rHoY)1=V^?5tuD8eGR2rs-vPF(`G?iS5;+2$)Zz6Oe&40+8E6UUwqq}PBDpug} z!&U=siSX6%#^IK2(*GP`iQqwka|VxD4_+i3NP6w4UlfSueM_=ZSrIyR?RtsKu=tdVqgN>7mj!Hw18)9F}q%7ue9B31DB$&b^p zM((%E(G+gOiUTAdyQos<+xZ`^2%j|c&-BCdu5Rv*E~KFJR8(Qe=j9fW!~k6_u^h-I zFrQ|qW8RG`SB^y%%4v!*)J1`wwz!6!jeeaXs*5xDa}Es4_(&DcH-Ob z^SOVf6pTW!6k2HpWHc4qkBOn14m*>kcy)kGj+>`07*B#d*V-A$KMM7{Z5D5zUi0Q6 zZjd*}sf5{C2bkvbO&xO;ZE=j*GZN>RW0vYafQnaP|30Ka;cXhJ{#C1FS-E}{lAQuT zla>vY=_h8bV`&+ZWZHb6!_B_#ce_ccSt8-^xHpcD9eot*b1Fm$6@ zLQt1hG{ji$h$M0@eV+VhUP4_O#` z3Kf)reA>gnFz$#Vl8guWzmF3lkSK&d+>6dEPvZx74)@fbp(h*7Ef2Y5<0_+OxjM0S z{omF@HkrSu6e*Jnel}mFIYYylyf)w;kI%eBD7&V%Fcf-nxDGyh7Qi%1LOqSz} z{+a2uG3jmo*%fEwQdoF&d9q}pwAE6QnOE{&nVF-Rz0f1g^WqeYpClspib>%Q7iK@H zSCiht9emYrxFQqy(mF=~=tZa4I`pKopjH6Obw# z+ytV4i*Qp6K@^1aBrm?A_nl-}Fx=U@bl)e%q)RkPoLtVVvitcXODfMb39LyYJQgSE z4}A|)nt35;*@3u&BB$Va(L3n-C=5lao6eZCoixErl>Y5~k&EO`^KbKALki*y2`(WH zW#NIc!qr5aMEuM~i89-63ni*8Ufh&+SDL$kNF?k8s>Uw-*U0@=oBW+f`Sy{*|DD$|01v@tpJObpXHJ!L?!p;JCcwlBQH7h!8^gqsefyc+$rh~=wh%G zkWWd$#VBFt9Sh>lzx%X1`1MoISU8)9uy!Gj6O~bv_%svJ7F#Nc_PH8YoEt?Is@|`E zmSxoC{)w?{ZnyKI+B`;5Zf@;D@X6oaVod6Aw75h){s>-f9*y)Udi&OoKU+5D5<5fq zR_?S`fy?v!KD}`+yW@f6L?KQcrToQSQna&OD_!>JSFG}pCC6p=%SY>UGcTEQMF?kx zVfnm_6kw}W3b7yLWR0Q0g$Yn;+*o;X!u&?6su}FKz2`j`E@~0T9i-+V zkg^V-_CV;9CJAmq@h}Q!D}t6+Xn!uS)Jr(4qzDc_U;KC*4J<{;9H3}HOQ`lr$(az{ z42rQ1#g+lE0{N-)J29OtZeB)WIXaq>FR5W>9x$KecLYKYzJ0hq9ZigAK&3Ns zana#A?`$wvz7ul3gB791?l8FGQ70V#5mAWYy9frqIGgpGHfU|^u;9z?HG-3e(^|3# zi8@4MXs|?2u%t0CGTgmEFX+PasFxR?f&Uok1SF@EMk;* zr|y<5l760+G$w_XRF+m01{Os%j;phKl5UG(U`eoP%miftp zLvpe%UKD@vC0MX68y$Vc{EY*2J`KH`2zXXOK3KuJx6OLNA}uinFN@P!j6~Zr!!jUX zsDyqpqo5JkGniJFAVF3V;EKqP!5CE8EMef-+9s9A%!6(v3v{@?=c3rYBr5`O5%2elc` z+E1E8u6p@3sa<2ojZ+bW9_7It*rdjHlF$ye7bnPsUg<%QyGWWdW=Etz9kv36L&&U# zmL!CGc(Bn=Cu3br$WJ;5&yROmo`Huz90lcv4qBzAkc6?1gQOXmg45UAQ-GhoIAZE3U}nWI)5B0e2>9)>JPj4&A6vE@w0PW1(r{tKl@uiPWv~#C zK|4}KEId$lOUS1{w{t|E24@;;5mQS+8FMB2F)9%9S~#w`CQ5Ex{HmDf6#JsMB%_a1E1=fLVIx1C216j3CK^a!~9(eg0)< zVE9z8FZLYF`HwF*Mfo6Ffy7z&C}(U_=bg`;KOxJtzvO&~W@TpWT!i=Z`s#EjGm>2Y z^qjkW*RJ@_O#V>;&8bI&-p?rGDAoq#rZ-W3O8ka!;Af)ml+8mTVslAfL%R;mv3Lzq zI-&0)Vm)8RwK{%!^8|y%A7=>PncE^dcv_9cVH21~!2&R2PiDgQI$c?d&80(He^Op$ zrpeTA>ODJks$Er8#kUOC|4>D5K=#aaOmq_LSF@>0gu;Y=tqSl z>UsDPS~!n$mGin~Xc&ReBKkr5=+bBeMl0dmQtsJuyQw}Dm|K@3t; zQ^&0^Y`wuRt*TE9*DbWDf^E-@&Bsb-)h@XjAK7m_&!5K)|j45I@-bwD5KEm<-?f4@%3q zP@dd-1Terb-kz&W@{l-y!Be-%oEyo$nK`G7U{xXlB-@9*q2ASCH712e#qm;&9u}2<5=(vzBX6 zOCxjm>D(iWRIWf?A>JOq44D*$sz)M_Bkev{@t;SS4M(!+D5;wbXEabSy0=kiTM(W- zC+rX@hZ%J**PY}*I$bj&6^w@@6`NL3<}gv@AIS5DE0atoOe!Fd ze(Zm5d_9pG;NlX+LZk^faMAQy6t35rF)NyYt7=3@Y35~Lz1j>&Ra$=_iYSifR4>Wa zK$Zuwf2Z`+;GGlEg=>IDWaBRFkppPjg%+qIiWqvRirJ zYAm>gMD3Dn@p2zB%XKt9At+-%kqm1JC9!?z@>9hx-!THNgXqQ4lz#09sKE&jrROco z{(BA!<33Oy0WBnZ3g$u&p^|6w_`lF*cLbj5L^o#T6z=kdRVkG16y2Nyrj~`ERT7FG znvjqnZ%L}3Y_?TAOQaaKX9EzZ6nd0WzUw8L_LJG8fJYh>_L3ZH%83I5jUw`D#-HX9 z>+v3=BvnVxk;0=ViPmm8^tV)+-^ubQQ=KStTF}A?SVD@3Bcz8T9Ik*RRAU_bvGfM_ z*3{40i_n9TA$;)1nx6hrEZf$BLhi*qQjl-hz|5mDgWoLZj2KjM6%=YB2a@`{dKr{~ zwnAdoin5ianu2*vNnhrx1OdAwUw$F#4uu+CUmNQmqawl(B+efW3f;B(5|cH%<*@ zTw);wj|e>=ktGYy%7(5-!bTVqgox>yd-=`1t4Db{fZUZJiy%Z}XtBTWx{@+NK^`bwDsr}76$QWD88S#q5SgQ7+{|LcDZnr58~I|_PH4_%Ba zF{29}US$TcscT+*Te01`&7?E#!!C0A-R%j|oD)hnmvuri_DFy-a+@inj09Jr(LS2~ zK7z-)veko9XClMsxjf?{BehnMp}_p6R$%EJTZkH{Z>V+VTREnIX{{9X2JUH@xl z_hl0}n0GM!-nvr>O8Ge&E>;FWn z{#TJoc4IiiMrXgiX;3rk$k7)pP_#QWFt_^QYh){eNP;0Xk^@h5C6Xk`)Zag2C!LLG zc+P(RJOLd|*PwG0hZ}1wbWhqJTm0Hya{oai5Q9)+%lKVxd-(}zh>)~3mKl>|8EK6A zP?>_qgtAx6bb~GKyhp!ODxxK>sNQb3I|DxmP9EK@tQ9o**%u zlDo%tB<3@&9<3-hQu0Pn4^%-WNWmzvERlu{NWI^>ZQEMvMMofjo9;QY&ZyO@smGBj zN+76-p(GV9`B1!=Ig7PG<|*@&RiL7H>xwR#PB=Qx3n|HSrkiC&WjplVgR2m*=e(qL{8w;7Culeffcypd zm^DDa!O|Bm#8{&cOT{g^q?*w^G*fOd}dHH?nUCW z?r_Tu32W1LZ6PePg^Wow9D*htatRICuKyeb>AC;W&nU<^Mh>&VOUxz>S(7~vOm@x7GMUr z+&mmaZvLHu&I$Cl&Q_O0BGpd8O3z;bk*6y&8lc&z=~C*M0Hsg)cHjkPzvfwn=~Pal zIZvJ*Eo@r|E53Kn;paMj7C4EhU5JBfX%&pL%z7vl)KC zP}059&8?H*6gbV>A7JYL{yU|p5Yd)crQy>Z*;o<_75UX~Ibw9y0yH^*R{$l@Xb4(? z-0vb6r5e5z839sbm0`AP+V;CM7En8(%U6?8I2=6ZdTSth^3(lKylC=0WC02y;X%n+ z$>b1AH1o2GIXrITQVU{p|T51}L^0 z^1Fh!%ID(F9~;2MZ@lc?aFSC|4LIGO_GQXEQ#p|$;I(*cK^hQ0g@k)Gb=3xDcx^aY!myWqiGV>L3(f$BFKn< z`Xwfevo*xn_!h?P&^C4kGtUMX5B>gePQk>#$q5n)pG9>F(^3?St1psv>H^6=_;9&7 z`g=^wabd+|u+l2euFueeKoW=#1c{g;@W=NLXC(oayHKDSn)3^U#S^T&fUtNXAF$v} zvnGj2a=B+CC6)Y|z*UQv!lX1I(3K+nd112Nf0vOAhApBBS*%}E)-K**b^^XGKwxNQdajF8X(k|R=1 zLt)DBC`1!-v{`$YsjbNs4vAW`7jXycZa(FNZ9sy@9}vTo_=F2ooI#bjHa^5wi*^i| zcNdWaw7i6gs+pHANn)x*Z&AG-lz|wTe0`CTW%=Tc))T@W zLP6rNsD!)9L=hc6l#FJ~@|`wy>S%P4xa1NE)LKf~(SiSrBcS&tisi4YytvjITJ{+k z+bB=~Y`Mv@eEaq5Cy$MrH0cB{-htyHE(P2^gf+y*b^wxY0#w&?K-)z3h?HChtD=54 zhIFEX4Zh{t-(~=OrYOfGTbWESlBx}7dVz^+f*l{9A+6FnCOASLrhHtUJP0f`E(O!i zIu_j;^Qt!~s9ewyfV>Hzg>f;o-Xm22K3A+Ge!E-S{h4C)xy3Q;7@3qIeFD+i9{Zi1 zuyfyEPn{4#-O{4qzz)frawPT$(`-J_LENmf_LTjMCXToQN|wdIyB^+q?z*z&cI?n$ zxMaad-_O*AQsR{~K*R-67(|9Ot-wxb#-88}C)x320GDv@lFrImsHbmp$zCXa3>8o?gjTY>QFK$ zap!;$=%Rh)rmdrp1b)b*EyQ#neMIm|ugdd9U{fm)%h|EW)$76tn>f;6Bljmy2z9EW z5Zf+dP|;*CsI7ZNJ&Zs{DEvS3w+|G`=cox%^~h!Vq`q;1f&1Nr&}nGqwXi(fu@XJYyrqcIZiDEL-W!4`tnuD#|SD!@iqj!YQ0vH@9=iH3qD7fSC1 zG+_?9{_=Jh>35ST4#P=>Vn)+}LP4G6Q7#qnc3Ie<=LL_LrV%^S2;N_05i;HzYm>;x ziugDj^kjlGB!QW@rmOCe{oTUkXRg&D%xz4RvNaC40%-ncBnQ+NsDy!lm^q?61%p61 zKhDaA66@tt>szIg1!5H$9X|k|r3h#Pn4lOA&iBAw;AkF&mLN2?5i~2{#{0oV|J?m&FBY>^B zdvg<!+*#~3j;AzXQ;0^5sXRXwVHCJV z95}^0>mFaX4_k5O*N?X!6S#gwq!;_5+@mgWV;(_bq36yxWFk(cm8~ zUTJ)H4Phx(>XusHg(VP`#B3T+#pA_Cy>V+OI`rw&6oA_0X)oOaB>)T`>YiM~&8o0Ac4 zuBTj#D?MIaNY06SA33bhbAP)-abbtuY?Q6tbKP~^9d&iLAJ*&^vc5(9f}OMfe)geW z_HV6PnK{1sYtZRkn=TD$_vvAeO&|Q9^?qjXdZEikWyx13vH+ylvmC56lSOm`ZRB2B zs=ikFgHieqhX=-s;%eiM6`Xk};?*XI%DAsp-ryTU-ZrGQufj{6lfns=`EI4aA{S~m z8PZ{n?~%8chJA0!F}NhL!ZwH&MCLvJhVh5|Gv*~4#zeS6wPwKxdM&HsVz+( ztkyLf2R%_kN-4&2TH!ZLhuP z+rN+Zy@B_Ze<2iirKM{dBflQ)mON0R;yVr47pv+;nJ!_QYMPpBkR0!gi!*x_ z_LmFpSBV#vS`vwbR89Q$DWN$T6uoM#TZhoq9M;XJcxhK#xgle=K*ZmGQsj1zg1UPe}F#31hAbgaWyb?-=sk|pJqf9 zcwXc!d!tr6IpL%}dIJj!g=>Bci&ufCYrn{BDbGc8j#+io#sxOl2m794bT3=geNWfJ zM~{wWEf;M(*ko#E`{UJ1_4M>))~G}O)@|1qhF=MSFp<1Gn$gAUOX6aaNqxr(`8BFeGH>R!EbO7#Ky<|-)aR+aBeNH5F6x-O zd}>%{c6cSE8-6Vr_5i0R??MjC^JYG3dnd)REjknzXYsYMovrQfd??9&@hhi6TY?H!BK-Eo#;Ssy zq@=ejUo`mc-Mf2IQmod5_{=gfsVmu-NQ%;Y0i9$_64Xr46{idm+$K+*T1x??dFbfT z6ULjyTiV%e;Cw%1{qpNI7=OR;(L;%og`yF_#l*yfC-Z+lCA%0io#xU<NUOMgb?CC&WHZLlJ>5E?~sr`$NJYhr& z=W|O;$7l3GBYEZ@yLNeh7&~+F(5eI`aviW6*oPd7y`f$Fcd3#%vo}TnsTG z^f?Gf7KNWzxn`&YK}dS1Y)rtB*IoJz#i^yUykYyHT3o(cViJuGo9|SvuB;3kv;WvP z8E%LyBAQkNg<>jHAZDJX&*cIw~F-8s^ z-S6Qw%;kLFC8X^(ZP%``X_(Aa0PJg3U0qGi!$le)^%dvt9iQ7olyWTU`Qn8Wag~hq z;(iELtJR*UO>nh(tT)1gz~NHI_qF;8DqpQNT-@|S9zXj2dIm+z!A|rOO3?pNEd8jX-PnH z2e=|wX7gIHVcWA^$Ucm_vSTlDmkvZ);SgAZ%4Gcb@p4qh$-|<%BL6^MPc_&E{>}M0>%SAkhn@o90jKRM_%(K@WOC zeVNbU?(Y7$=d%{3VV#j6DLN=rh=h`)1+MLbIz`q!G-YvP9*mx@o}TlelqWQVp6Liz z#cPZPFVD%yG;B1?CSgEL$(!kGQMf>cwpJ?-7nFe;XKj(Dy81eb({&I?Mz&9m_9HYd zt%NH;fEg`se{LcfNj;xEqvm0bYg!5Cxg#jCerHqn#0pSeJQ`gyWmxX0gZd{(@kuLT z_3FwP-qM5<%$AThm@;{C2YGbClksUKh+evji0nmqd8DTeRRd}&`Ir|n7j)9q+~%6%K}sB zt{Yj*ESCYh;2@H$g+XlLH7`9~U6~7ITY64AsK(+7aMT^pg|=0|QAKYuqGa zydGI|2Sbn1?oUTIb0m>tj+0cvL^&EFRtg|VJh!ZFa?wwa%k&cEr zg!1(kjE#hk&Kk0v%;69|RPo*y*3XclHA7}D(vOY=@ys6QAprpDnwlj%8h!e-t%QD2 ztoCnnyR}ik*N?s0>D@h)9h}TvT+r+{v^i2o14eg41gGf0{J0*}!Isw6x($_AD>_Kz z6+b)o-4Vp?r|2M<1V48%4MVxAt{6>>EU&lYKZ*`4u68=E_v6`7NT@FTWF!**AlE7_nzFF;?*-Qi@bqdFF8t<>F0<)3r{H_ zv|+TJ-OhVm2FWyBuXGT|m=|?Zs><46IjN}`O((uZmz2M=bl$=B?|WSVNH6!|m@nA& zxIcRq0X_N4Y?9r#@DAo~ZZU)m9j{KI@{@9oaMgzu6<&+Wg007ebw;b;na(G;Y#Yu&G2yB18Utep=gv+%SY(Y<$=5hzz! zZHUD7?d01y!&*B3E49pv^FpaG5u`$ZseMdaEi6qdi zO+Wd0(Ge~$s(^tnvvZ<7biz%+myBxuEl-VzFCJn!?arc#r!f)LxSgA9+bzF2K9m?9 z+kjJkZ!NMv&*Pmwl|}52v9^hfPu`L6)HOD0tNa{c9VLG+*TcDBoie_T2QLqJ zez0o#&D1xGj#OD>7ltQ~oxVHXU{~zS4<^ZGd95eqw4SvodQF-2LcX$DUPNSUa&nn< zWa{dbYPAS>R=Qbf;%^1ZuV{VdbW)Z6U|Vz4;)*XmM;kY2Q2XY*Yca4w*CuaSNJ*v$ zEN3<@m_ zRpo~dm$<*Y$^kgEz$wMM{wX9a{BgUAVz$TiT+2llqv_;(F8_SI54Yq$h(TCwVO!4{_yRx%sM?=Hhlv!4m zmNBs>7$#=p!+jh3LcdR+Te*TpS>)INO&mGF-#r|4qUhEb@7SDkx4zxl{M(JBtqwl% zru%OVJguGD`p~DPwYBbFw$sH1FGHoMURlwQQM{$T1)iBsy=c2r)l?= z|8ssUd(!j4#D%@|v%V?%D}Eb4K}nnOoUao3((AO`+k_|gn;Uo~d}ZalA&IU{{S^6) z9o)yOs6h#N^zi_O*R|&wgL5qU7Y<{pqNB)R1DA4pI}8LnpjGR{6DAj(>uOgmMIZiHEcsFTEPYd@{M&k&OU_qqa&3r8{DX+ zOHaxMN~i?n$wn%kQkgxGqqG1AE;)=MqY!V2(0~G`&@Tf&jFsP#UHX?>_Kr@$pU|(U zwQ9AVI@tk>7=Z)Z?{(=O#+PU@tH0UBh+}HQn<&03T)y3Y{rUSBoA2>PBUDyW{M1r_ zmy=qY?=s3}`Ep~Bjn!Ru|JDq1Jh+5oZi%FpQw5zWxak7KL}`!IpfNbWg3X1FlzO!p zjJihw=sFsJx}YWI38rDWkz z1R`ML_X+Q;tgWTwQ&LbquX_Icxyz_XwOWE6!=c*k8!-2_%Je1Gr|n!8Uic8Dp*i^L ze67H~io-W6tJ~He_T$U2?60S+SFDJOG;TA%>ANm>$_??x)6|3&FJnvF+GFM_A~Ejf z=1Qa8t$TN-)vlZvy&96lOymBUefv5}y4XGQ-RCOM(9uXq#M|AxyiUX-2n6Du%>SV` zrhZ*{_P~KUXmTa!toRfTDTXjtG6lAl0$su6$&(dFQXZyv`cVH8MKCbK79&}w%dDx(u96Vg9$0ghjSp;MF}qsDmFx!s)#wHTi}|> zFI0Ux0$t&Q+K9Pg-Q z0PV~nk43G1N2vj5D7_n(e<_;_lOo&n&Z+n-{z&dYqvHh)wd*qh_7abF@{C=(h}$LAlpPadrpibNtzw>z7CEoDM441}=L z51Or5{P&*t1ivS$H_r~6_h~_Rd*|9M6?@bJXYKc0q1dfxS@s}ri=t)i4%f1NXlAkpac=}x?xY@`wxNi<1<7b9@dFkU6n9ro&wA~v>OW^!%1!0+B7d^tK>eWM)z2wN zvM1$c-e_`A0(T}xd%SsN+Gvg=!Lw`AV;&lhffe?=lXUU!y~x&5l-e>erst1)pFV#4 z_0MIFJNFcyo~5d7du9OQ6GfwGnHTTgBwZB*XQlo9cSc`*UQN%wYcTWp48{JY^C}yc z{n-2P-P{uM@+L~_loRfqKiY5ci=bXVKCGDX?Af!I<82;uNr63kz3CneipQNl8} z@Y1j!pC$n;Ym8J8r~`*wsKTdWNJ+AetSnvXUV5y)65HPSjNp zB2&KlE@h(-Vce7@cicYF{E7Jy{U8&t1$Tk;b})>5$lw?{C7`Bj7S$CefBV$eDsIL~ zs+zQFw68KU8uF&DLSp7=nhqU4%X7}@9Lxx&*Gi@e! zw#55_Q-S<6*D+&iP+uI4^D#t=*NkNYz?I5xEM%j`w~MAKD+Lkl)ak;jW%g8`+;*LC z$sot=rl&WGE6yvTn0tT7hkFZq&Of0Q!L~WMa6NxlXva+sPDC&&tZ`Yf-cSNv&TxqOq?N5U&xn>>$fzSQ>E@tGTp%63G!gBiWp?z{)eYj9l_; zD6fhCX_}mzY@U*i>tCLMmCX0!XI|N?=*>lf>evd{vrVexCo#yA^o(%b+CVPjAn*RW=yD?n?NRS7TJPGf9~u zY}v=~z{y0~j`}zzr0id-oxMfh?vw?w>@K4s^ccS0lvKshW5*6?bK5otMQAWa2*iD! zye^i#Sq1bShjy;#xP_KXjA=nqjLf&qUekZNFMheE>gt{8H6t3i#lN7}s2StSmB_=* zMzXLd?TKr+E~J+C=f?+fMk)@k`2O0|b)dnE$=iCKD@h-I)P7>GV+Z3V{TX)Y-Px_K zOD^nr-eOp}lGin`O4__!HNUqg}guH@$oB zUf`wn(??IP-Fjq1>(#Aq-i(a+F|Hue!_g;xefmiqgAY%8yoiib3hb=ZX^aBo?d6zP zR#T>&dw5~E&B=LxQnsp3*g4x;ucPXdOoZ0G+uv(slcPsDb z7R5cU4m>fSx4U}fuphNkFE4LJ!*Qs>wax4!eM0MY>*@V*!N$PAHBFjJf!p1ps6h?S s*>iMyUQH_!qxhfGiu^CpTzy+nRrI8H3#Zin3jSwmGI4bLNQYJb7w^bzMgRZ+ literal 0 HcmV?d00001 diff --git a/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst b/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst index 25e49e09b..4e6c66bd4 100644 --- a/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst +++ b/docs/source/modeling_with_aequilibrae/transit_assignment/hyperpath_routing.rst @@ -1,4 +1,512 @@ Hyperpath routing in the context of transit assignment ====================================================== -aaaaaaakuhbdsvfluhwsdf \ No newline at end of file +How do transit passengers choose their routes in a complex network of +lines and services? How can we estimate the distribution of passenger +flows and the performance of transit systems? These are some of the +questions that transit assignment models aim to answer. Transit +assignment models are mathematical tools that predict how passengers +behave and travel in a transit network, given some assumptions and +inputs. + +One of the basic concepts in transit assignment models is hyperpath +routing. Hyperpath routing is a way of representing the set of optimal +routes that a passenger can take from an origin to a destination, based +on some criterion such as travel time or generalized cost. A hyperpath +is a collection of links that form a subgraph of the transit network. +Each link in the hyperpath also has a probability of being used by the +passenger, which reflects the attractiveness and uncertainty of the +route choice. The shortest hyperpath is optimal regarding the +combination of paths weighted by the probability of being used. + +Hyperpath routing can be applied to different types of transit +assignment models, but in this following page we will focus on +frequency-based models. Frequency-based models assume that passengers do +not have reliable information about the service schedules and arrival +times, and they choose their routes based on the expected travel time or +cost. This type of model is suitable for transit systems with rather +frequent services. + +To illustrate how hyperpath routing works in frequency-based models, we +will use the classic algorithm by Spiess & Florian [1] implemented in AequilibraE. + +We will use a simple grid network as an Python example to demonstrate how a +hyperpath depends on link frequency for a given origin-destination pair. +Note that it can be extended to other contexts such as risk-averse +vehicle navigation [2]. + +Let’s start by importing some Python packages. + +Imports +------- + +.. code:: python + + import matplotlib.pyplot as plt + import networkx as nx + import numpy as np + import pandas as pd + from aequilibrae.paths.public_transport import HyperpathGenerating + from numba import jit + + RS = 124 # random seed + FS = (6, 6) # figure size + +Bell’s network +-------------- + +We start by defining the directed graph :math:`\mathcal{G} = \left( V, E \right)`, where :math:`V` and +:math:`E` are the graph vertices and edges. The hyperpath generating +algorithm requires 2 attributes for each edge :math:`a \in V`: + +- edge travel time :math:`u_a \geq 0` + +- edge frequency :math:`f_a \geq 0` + +The edge frequency is inversely related to the exposure to delay. For +example, in a transit network, a boarding edge has a frequency that is +the inverse of the headway (or half the headway, depending on the model +assumptions). A walking edge has no exposure to delay, so its frequency +is assumed to be infinite. + +Bell’s network is a synthetic network: it is a :math:`n`-by-:math:`n` +grid bi-directional network [2, 3]. The edge travel time is taken as +random number following a uniform distribution: + +.. math:: u_a \sim \mathbf{U}[0,1) + +To demonstrate how the hyperpath depends on the exposure to delay, we +will use a positive constant :math:`\alpha` and a *base delay* +:math:`d_a` for each edge that follows a uniform distribution: + +.. math:: d_a \sim \mathbf{U}[0,1) + +The constant :math:`\alpha \geq 0` allows us to adjust the edge +frequency as follows: + +.. math:: + + f_a = \left\{ + \begin{array}{ll} + 1 / \left( \alpha \; d_a \right) & \text{if $\alpha \; d_a \neq 0$} \\ + \infty & \text{otherwise} \\ + \end{array} + \right. + +A smaller :math:`\alpha` value implies higher edge frequencies, and vice +versa. Next, we will create the network as a pandas dataframe. + +Vertices +~~~~~~~~ + +.. code:: python + + def create_vertices(n): + x = np.linspace(0, 1, n) + y = np.linspace(0, 1, n) + xv, yv = np.meshgrid(x, y, indexing="xy") + vertices = pd.DataFrame() + vertices["x"] = xv.ravel() + vertices["y"] = yv.ravel() + return vertices + +.. code:: python + + n = 10 + vertices = create_vertices(n) + vertices.head(3) + + + ++------+----------+-------+ +| | x | y | ++======+==========+=======+ +| 0 | 0.000000 | 0.0 | ++------+----------+-------+ +| 1 | 0.111111 | 0.0 | ++------+----------+-------+ +| 2 | 0.222222 | 0.0 | ++------+----------+-------+ + + +.. code:: python + + @jit + def create_edges_numba(n): + m = 2 * n * (n - 1) + tail = np.zeros(m, dtype=np.uint32) + head = np.zeros(m, dtype=np.uint32) + k = 0 + for i in range(n - 1): + for j in range(n): + tail[k] = i + j * n + head[k] = i + 1 + j * n + k += 1 + tail[k] = j + i * n + head[k] = j + (i + 1) * n + k += 1 + return tail, head + + + def create_edges(n, seed=124): + tail, head = create_edges_numba(n) + edges = pd.DataFrame() + edges["tail"] = tail + edges["head"] = head + m = len(edges) + rng = np.random.default_rng(seed=seed) + edges["trav_time"] = rng.uniform(0.0, 1.0, m) + edges["delay_base"] = rng.uniform(0.0, 1.0, m) + return edges + +.. code:: python + + edges = create_edges(n, seed=RS) + edges.head(3) + + + + ++------+----------+-------+------------+------------+ +| | tail | head | trav_time | delay_base | ++======+==========+=======+============+============+ +| 0 | 0 | 1 | 0.785253 | 0.287917 | ++------+----------+-------+------------+------------+ +| 1 | 0 | 10 | 0.785859 | 0.970429 | ++------+----------+-------+------------+------------+ +| 2 | 10 | 11 | 0.969136 | 0.854512 | ++------+----------+-------+------------+------------+ + + +Plot the network +~~~~~~~~~~~~~~~~ + +We use the `NetworkX `__ package to plot the +network. The bottom left vertex is the origin (‘o’) and the top right +vertex is the destination (‘d’) for the hyperpath computation. + +.. code:: python + + # NetworkX + n_vertices = n * n + pos = vertices[["x", "y"]].values + G = nx.from_pandas_edgelist( + edges, + source="tail", + target="head", + edge_attr=["trav_time", "delay_base"], + create_using=nx.DiGraph, + ) + widths = 2 + figure = plt.figure(figsize=FS) + node_colors = n_vertices * ["gray"] + node_colors[0] = "r" + node_colors[-1] = "r" + ns = 100 / n + node_size = n_vertices * [ns] + node_size[0] = 20 * ns + node_size[-1] = 20 * ns + labeldict = {} + labeldict[0] = "o" + labeldict[n * n - 1] = "d" + nx.draw( + G, + pos=pos, + width=widths, + node_size=node_size, + node_color=node_colors, + arrowstyle="->", + labels=labeldict, + with_labels=True, + ) + ax = plt.gca() + _ = ax.set_title(f"Bell's network with $n$={n}", color="k") + + + +.. image:: ../../images/hyperpath_bell_s_network.png + :width: 600 + :align: center + :alt: Bell's network + + +We can also visualize the edge travel time: + +.. code:: python + + widths = 1e2 * np.array([G[u][v]["trav_time"] for u, v in G.edges()]) / n + _ = plt.figure(figsize=FS) + node_colors = n_vertices * ["gray"] + node_colors[0] = "r" + node_colors[-1] = "r" + ns = 100 / n + node_size = n_vertices * [ns] + node_size[0] = 20 * ns + node_size[-1] = 20 * ns + labeldict = {} + labeldict[0] = "o" + labeldict[n * n - 1] = "d" + nx.draw( + G, + pos=pos, + width=widths, + node_size=node_size, + node_color=node_colors, + arrowstyle="-", + labels=labeldict, + with_labels=True, + ) + ax = plt.gca() + _ = ax.set_title( + "Bell's network - edge travel time : $\\textit{trav_time}$", color="k" + ) + + + +.. image:: ../../images/hyperpath_bell_edge_travel_time.png + :width: 600 + :align: center + :alt: Bell's network - edge travel time + + + +And the base delay: + +.. code:: python + + widths = 1e2 * np.array([G[u][v]["delay_base"] for u, v in G.edges()]) / n + _ = plt.figure(figsize=FS) + node_colors = n_vertices * ["gray"] + node_colors[0] = "r" + node_colors[-1] = "r" + ns = 100 / n + node_size = n_vertices * [ns] + node_size[0] = 20 * ns + node_size[-1] = 20 * ns + labeldict = {} + labeldict[0] = "o" + labeldict[n * n - 1] = "d" + nx.draw( + G, + pos=pos, + width=widths, + node_size=node_size, + node_color=node_colors, + arrowstyle="-", + labels=labeldict, + with_labels=True, + ) + ax = plt.gca() + _ = ax.set_title("Bell's network - edge base delay : $\\textit{delay_base}$", color="k") + + + +.. image:: ../../images/hyperpath_bell_edge_base_delay.png + :width: 600 + :align: center + :alt: Bell's network - edge base delay + + +Hyperpath computation +--------------------- + +We now introduce a function ``plot_shortest_hyperpath`` that: + +- creates the network, + +- computes the edge frequency given an input value for :math:`\alpha`, + +- compute the shortest hyperpath, + +- plot the network and hyperpath with NetworkX. + + +.. code:: python + + def plot_shortest_hyperpath(n=10, alpha=10.0, figsize=FS, seed=RS): + + # network creation + vertices = create_vertices(n) + n_vertices = n * n + edges = create_edges(n, seed=seed) + delay_base = edges.delay_base.values + indices = np.where(delay_base == 0.0) + delay_base[indices] = 1.0 + freq_base = 1.0 / delay_base + freq_base[indices] = np.inf + edges["freq_base"] = freq_base + if alpha == 0.0: + edges["freq"] = np.inf + else: + edges["freq"] = edges.freq_base / alpha + + # Spiess & Florian + sf = HyperpathGenerating( + edges, tail="tail", head="head", trav_time="trav_time", freq="freq" + ) + sf.run(origin=0, destination=n * n - 1, volume=1.0) + + # NetworkX + pos = vertices[["x", "y"]].values + G = nx.from_pandas_edgelist( + sf._edges, + source="tail", + target="head", + edge_attr="volume", + create_using=nx.DiGraph, + ) + widths = 1e2 * np.array([G[u][v]["volume"] for u, v in G.edges()]) / n + figure = plt.figure(figsize=figsize) + node_colors = n_vertices * ["gray"] + node_colors[0] = "r" + node_colors[-1] = "r" + ns = 100 / n + node_size = n_vertices * [ns] + node_size[0] = 20 * ns + node_size[-1] = 20 * ns + labeldict = {} + labeldict[0] = "o" + labeldict[n * n - 1] = "d" + nx.draw( + G, + pos=pos, + width=widths, + node_size=node_size, + node_color=node_colors, + arrowstyle="-", + labels=labeldict, + with_labels=True, + ) + ax = plt.gca() + _ = ax.set_title( + f"Shortest hyperpath - Bell's network $\\alpha$={alpha}", color="k" + ) + +We start with :math:`\alpha=0`. This implies that there is no delay over +all the network. + +.. code:: python + + plot_shortest_hyperpath(n=10, alpha=0.0) + + + +.. image:: ../../images/hyperpath_bell_n_10_alpha_0d0.png + :width: 600 + :align: center + :alt: Shortest hyperpath - Bell's network alpha=0.0 + + + +The hyperpath that we obtain is the same as the shortest path that +Dijkstra’s algorithm would have computed. We call NetworkX’s +``dijkstra_path`` method in order to compute the shortest path: + + +.. code:: python + + G = nx.from_pandas_edgelist( + sf._edges, + source="tail", + target="head", + edge_attr="trav_time", + create_using=nx.DiGraph, + ) + + # Dijkstra + nodes = nx.dijkstra_path(G, 0, n*n-1, weight='trav_time') + edges = list(nx.utils.pairwise(nodes)) + + # plot + figure = plt.figure(figsize=FS) + node_colors = n_vertices * ["gray"] + node_colors[0] = "r" + node_colors[-1] = "r" + ns = 100 / n + node_size = n_vertices * [ns] + node_size[0] = 20 * ns + node_size[-1] = 20 * ns + labeldict = {} + labeldict[0] = "o" + labeldict[n * n - 1] = "d" + widths = 1e2 * np.array([1 if (u,v) in edges else 0 for u, v in G.edges()]) / n + pos = vertices[["x", "y"]].values + nx.draw( + G, + pos=pos, + width=widths, + node_size=node_size, + node_color=node_colors, + arrowstyle="-", + labels=labeldict, + with_labels=True, + ) + ax = plt.gca() + _ = ax.set_title( + f"Shortest path - Bell's network", color="k" + ) + + +.. image:: ../../images/hyperpath_bell_n_10_shartest_path.png + :width: 600 + :align: center + :alt: Shortest path - Bell's network + + +Let’s introduce some delay by increasing the value of :math:`\alpha`: + +.. code:: python + + plot_shortest_hyperpath(n=10, alpha=0.5) + + +.. image:: ../../images/hyperpath_bell_n_10_alpha_0d5.png + :width: 600 + :align: center + :alt: Shortest hyperpath - Bell's network alpha=0.5 + + +The shortest path is no longer unique and multiple routes are suggested. +The link usage probability is reflected by the line width. The majority +of the flow still follows the shortest path, but some of it is +distributed among different alternative paths. This becomes more +apparent as we further increase :math:`\alpha`: + + +.. code:: python + + plot_shortest_hyperpath(n=10, alpha=1.0) + + +.. image:: ../../images/hyperpath_bell_n_10_alpha_1d0.png + :width: 600 + :align: center + :alt: Shortest hyperpath - Bell's network alpha=1.0 + + +.. code:: python + + plot_shortest_hyperpath(n=10, alpha=100.0) + + +.. image:: ../../images/hyperpath_bell_n_10_alpha_100d0.png + :width: 600 + :align: center + :alt: Shortest hyperpath - Bell's network alpha=100.0 + + +References +---------- + +[1] Spiess, Heinz & Florian, Michael, *Optimal strategies: A new +assignment model for transit networks*, Transportation Research Part B: +Methodological, Volume 23, Issue 2, 1989, Pages 83-102. + +[2] Ma, Jiangshan & Fukuda, Daisuke & Schmöcker, Jan-Dirk. *Faster +hyperpath generating algorithms for vehicle navigation*, +Transportmetrica, Volume 149, 2012, Pages 1-24. + +[3] Bell, Michael G.H., *Hyperstar: A multi-path Astar algorithm for +risk averse vehicle navigation*, Transportation Research Part B: +Methodological, Volume 43, Issue 1, 2009, Pages 97-107, ISSN 0191-2615, +https://doi.org/10.1016/j.trb.2008.05.010. From 8715d29a2a5c196057b1acfadad00f5271a375fc Mon Sep 17 00:00:00 2001 From: djfrancesco Date: Tue, 12 Dec 2023 13:53:30 +0100 Subject: [PATCH 3/3] more documentation (HyperpathGenerating) --- aequilibrae/paths/__init__.py | 1 + aequilibrae/paths/public_transport.pyx | 33 ++++++++++++++++++++++++++ docs/source/api.rst | 1 + 3 files changed, 35 insertions(+) diff --git a/aequilibrae/paths/__init__.py b/aequilibrae/paths/__init__.py index 654c319a6..d31974a4f 100644 --- a/aequilibrae/paths/__init__.py +++ b/aequilibrae/paths/__init__.py @@ -8,6 +8,7 @@ from aequilibrae.paths.traffic_assignment import TrafficAssignment from aequilibrae.paths.vdf import VDF from aequilibrae.paths.graph import Graph +from aequilibrae.paths.public_transport import HyperpathGenerating from aequilibrae import global_logger diff --git a/aequilibrae/paths/public_transport.pyx b/aequilibrae/paths/public_transport.pyx index e6038e2c1..8cfc29ae4 100644 --- a/aequilibrae/paths/public_transport.pyx +++ b/aequilibrae/paths/public_transport.pyx @@ -19,6 +19,23 @@ include 'hyperpath.pyx' class HyperpathGenerating: + """A class for hyperpath generation. + + :Arguments: + **edges** (:obj:`pandas.DataFrame`): The edges of the graph. + + **tail** (:obj:`str`): The column name for the tail of the edge (optional, default is "tail"). + + **head** (:obj:`str`): The column name for the head of the edge (optional, default is "head"). + + **trav_time** (:obj:`str`): The column name for the travel time of the edge (optional, default is "trav_time"). + + **freq** (:obj:`str`): The column name for the frequency of the edge (optional, default is "freq"). + + **check_edges** (:obj:`bool`): If True, check the validity of the edges (optional, default is False). + """ + + def __init__(self, edges, tail="tail", head="head", trav_time="trav_time", freq="freq", check_edges=False): # load the edges if check_edges: @@ -154,6 +171,22 @@ class HyperpathGenerating: check_demand=False, threads=0 ): + """Assigns demand to the edges of the graph. + + :Arguments: + **demand** (:obj:`pandas.DataFrame`): The demand information. + + **origin_column** (:obj:`str`): The column name for the origin vertices (optional, default is "orig_vert_idx"). + + **destination_column** (:obj:`str`): The column name for the destination vertices (optional, default is "dest_vert_idx"). + + **demand_column** (:obj:`str`): The column name for the demand values (optional, default is "demand"). + + **check_demand** (:obj:`bool`): If True, check the validity of the demand data (optional, default is False). + + **threads** (:obj:`int`):The number of threads to use for computation (optional, default is 0, using all available threads). + """ + # check the input demand paramater if check_demand: self._check_demand(demand, origin_column, destination_column, demand_column) diff --git a/docs/source/api.rst b/docs/source/api.rst index 687395582..393e98cda 100644 --- a/docs/source/api.rst +++ b/docs/source/api.rst @@ -106,6 +106,7 @@ Paths VDF TrafficClass TrafficAssignment + HyperpathGenerating Transit -------