From c22024f6aa225756aca7407ac067fd9b483b8571 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Tue, 25 Jun 2024 17:39:20 -0400 Subject: [PATCH] build based on f090446 --- julia-docs/dev/docstrings.html | 246 +++++++------- julia-docs/dev/medyan-tutorial.zip | Bin 676120 -> 676128 bytes julia-docs/dev/reference/fileformats.html | 68 ++-- julia-docs/dev/search.json | 4 +- julia-docs/dev/sitemap.xml | 264 +++++++-------- julia-docs/dev/tutorials/1install.html | 2 +- julia-docs/dev/tutorials/2rdme.html | 36 +- .../figure-html/cell-14-output-2.svg | 320 +++++++++--------- julia-docs/dev/tutorials/3treadmill.html | 66 ++-- 9 files changed, 503 insertions(+), 503 deletions(-) diff --git a/julia-docs/dev/docstrings.html b/julia-docs/dev/docstrings.html index ab7a208..c515ae0 100644 --- a/julia-docs/dev/docstrings.html +++ b/julia-docs/dev/docstrings.html @@ -298,617 +298,617 @@

Docstrings

- + Base.:* - + Base.copy - + Base.delete! - + Base.empty! - + Base.getindex - + Base.haskey - + Base.iterate - + Base.length - + Base.push! - + Base.setindex! - + MEDYAN.AgentNames - + MEDYAN.Boundary - + MEDYAN.CadherinParams - + MEDYAN.CadherinState - + MEDYAN.Context - + MEDYAN.CubicGrid - + MEDYAN.Decimated2MonSiteMinAngleRange - + MEDYAN.Decimated2MonSiteRange - + MEDYAN.FilamentEndSiteGeneral - + MEDYAN.FilamentSiteGeneral - + MEDYAN.Link2MonParams - + MEDYAN.Link2MonSiteCount - + MEDYAN.Link2MonSiteMonomerStateMatch - + MEDYAN.Link2MonSiteMotorCatch - + MEDYAN.Link2MonSiteMotorStall - + MEDYAN.Link2MonSiteOne - + MEDYAN.Link2MonSiteSlipBond - + MEDYAN.Link2MonState - + MEDYAN.MembraneSiteDiffusing - + MEDYAN.MembraneSpeciesParams - + MEDYAN.MonLink2MonSiteOne - + MEDYAN.MonomerName - + MEDYAN.SysDef - + MEDYAN.VertexName - + MEDYAN.VertexState - + MEDYAN.adapt_membranes! - + MEDYAN.add_decimated_2mon_site! - + MEDYAN.add_diffusion_coeff! - + MEDYAN.add_filament_params! - + MEDYAN.add_link_2mon! - + MEDYAN.add_link_2mon_site! - + MEDYAN.add_membranesitereaction! - + MEDYAN.addcadherin! - + MEDYAN.addcadherinsite! - + MEDYAN.adddiffusingcount_rand! - + MEDYAN.addfilament_reaction! - + MEDYAN.addfilamentend_reaction! - + MEDYAN.addfilamentendsite! - + MEDYAN.addfilamentsite! - + MEDYAN.addmembranediffusingcount_rand! - + MEDYAN.addmembranesite! - + MEDYAN.addpossiblecadherinsite! - + MEDYAN.addreaction! - + MEDYAN.addreactioncallback! - + MEDYAN.addunbindinglink_2mon_site! - + MEDYAN.boundary_box - + MEDYAN.boundary_capsule - + MEDYAN.boundary_cylinder - + MEDYAN.boundary_plane - + MEDYAN.centerof - + MEDYAN.chem_adddiffusingcount! - + MEDYAN.chem_addfixedcount! - + MEDYAN.chem_depolymerize! - + MEDYAN.chem_newfilament! - + MEDYAN.chem_newlink_2mon! - + MEDYAN.chem_polymerize! - + MEDYAN.chem_removefilament! - + MEDYAN.chem_removelink_2mon! - + MEDYAN.chem_setlink_2mon_state! - + MEDYAN.chem_setmonomerstate! - + MEDYAN.compute_all_membrane_geometry!_system - + MEDYAN.defer_chem_caching! - + MEDYAN.fil_mon_states - + MEDYAN.fil_node_mon_ids - + MEDYAN.fil_node_positions - + MEDYAN.fil_num_unmin_ends - + MEDYAN.filter_grididat - + MEDYAN.filtype_fil_ids - + MEDYAN.grididat - + MEDYAN.is_chem_cache_valid - + MEDYAN.link_2mon_endnames - + MEDYAN.link_2mon_state - + MEDYAN.load_snapshot! - + MEDYAN.minimize_energy! - + MEDYAN.mon_3states - + MEDYAN.mon_exists - + MEDYAN.mon_minimized - + MEDYAN.mon_plusvector - + MEDYAN.mon_position - + MEDYAN.mon_position_plusvector - + MEDYAN.newfilament_rand! - + MEDYAN.newmembrane! - + MEDYAN.num_filtypes - + MEDYAN.num_vertexwithstate - + MEDYAN.randompoint - + MEDYAN.refresh_chem_cache! - + MEDYAN.resolve_all_filament_mesh_crossing! - + MEDYAN.run_chemistry! - + MEDYAN.set_chemboundary! - + MEDYAN.set_enable_cylinder_volume_exclusion! - + MEDYAN.set_mechboundary! - + MEDYAN.set_time! - + MEDYAN.sever_filament! - + MEDYAN.vertex_state - + NLSolversBase.value!! - + src/auxprocs.jl - + src/boundary.jl - + src/cadherins/possiblecadherinsite.jl - + src/context.jl - + src/decimated_2mon_sites.jl - + src/filamentendsites.jl - + src/filamentsites.jl - + src/grids.jl - + src/link_2mon_sites.jl - + src/membrane/membranesites.jl - + src/membrane/meshadapt.jl - + src/minimize_energy.jl - + src/mon_link_2mon_sites.jl - + src/sever_filament.jl - + src/sys_def.jl - + src/trajectory-io/snapshot.jl - + src/util/math/cuboidslicing.jl - + src/util/stableindex.jl diff --git a/julia-docs/dev/medyan-tutorial.zip b/julia-docs/dev/medyan-tutorial.zip index 25834916b0b4b76c2ec5b4b7f843775f65408283..584cb8e911b9d332340a2f8936b3020392231657 100644 GIT binary patch delta 28476 zcmV(;K-<5VqA8%FDH~8r0|XQR00;;G001EXZ|r!eAX)$b`2qm|9g~rc6Ok@9e|Mo9 z5FrATG~L!F^Rl}PH>&$*GCdqiXc5IJVkZ33$@GqQZW_nf=_@AKUz{^Or@ z_qf^K|Nj5_{b%Av@EiTv@7~AzO{AyAMfJhJ9^Pp z#Y4-Q=b%DxIXTOHGgcbsed9G2f1XXu>a*Yd?!W)L)Q88L&;R`9#h2T=?XH&ByUqO* z{`UX;&+l$GPwZ(|D|>tw1%0t`I>qLN;K3PuX;DFBCwQ_-ixNd_QTyWaXTN)X-V}Nw z>db{{nPuA=(_Uqkq;9Oa8nyI7=^8%!T{l;L!*4`4u=Mz}i}~rBZ{E^~f9N%Q>c2mG zxw)@#_xaszO}qHn%1}#?5ySJril}OlRu-Qc*BGQsUTNL}##P&Ss8))mg9{j{^vo2a znYX^OmYc4sdf`nThAM6ht^Q9n{&*VKm+#`{{`=><`uHUl^Rqwx{i!H{QoOVTcA*&5RNgk|ftyE>3sHv2wc?jq6f4Wd@R54+98~)+C zu%LKhPWdQfz`wi>{i(MF;vf|k zV~9+PLXOz?htS2nNe)4OfCew+3O=a0XiAL6C>G%gk8AT<^DsX&0r ztdf_7D{NQurdbh8w&#VZS$iX$#AT9-nVK_;9Fkr;5t0%{NL?1&G%O6p@`6-Pi@EmG zm@W_vdNH3j4{`Tc&lls(^X94UUtB$VMb@lxNYF!G%UDgwe?{W*LkpRtt>m^?2#xck zG=!hjCNo|F1YC`rVKSB3m@?P38W%_P~5QXTz_`?&e|7z`NLPA9~BIKyzr4XZ_b~2^Jeu!C+)OQS8E^t_Vo|@-Rl(G z@Y>o#-&b1jfBMy?wZkLbD{Bw*hrRnl^Ox5ieG85GW8EDU>i)ND+j~?M`^_B}ev&w` z0uTuR45cOhf$~hGK}(a$1uj&uhdHe59DPA+F&U=>3oaRELNF`{R7e|ua9{4X&bEJTu}bFVB!oh~gD z-kg(%0^ryVkP{bi`_uj1HkL_teY=@t+@IdQeNF#;{p0QQpWXHr@aOU6_V#vjKfUzkPoGb? z^1D|r>A$z{{*muC|M=g#yET#590Xp3Mg{7(e~BvqvsMj|cTG4JN~Gum&$3guJ~>sL z*Q~nYnXVD%%c;T?_MjFZ;gsu4j!VKw^V#+q&e$epfo^D!uPpc`7?+JR?n}u$a164C z6wgoF_i;c!yPCJ}A2xS&(w)=vck%u)ZwnUX4Q3qQuc|TQedWb^9*e-==c4FrqX+QI ze@SHE-4tDDDRp?rW$sFFEaM~0WC=CaoMO=d7AqNz^=YPz`GALh-aJA>ZFifecki!I zmQfqe^w{6F+mfDlznmoY%G9_>Kq^TnOwTA&utzdsD^*n?6>Keld~!l|XkBrKk2EH; zf#lE%mlM#Q6&(HKqEf-|1t(nh ztTG~1D}mpmbrIavtLC(CB`M%B1MXIg>~O0JK>3(D10@ZNZYhDL!ib?@2YFL*PAv6} zJ5T0|_*kv(&ZvyMX&i3`sR$`)0ExY;kj?;fz65|E)4InuPv6|d+f^RLZ4dyZe*m<} zrwW4Ml;X|%0w$VOlSV`GPH5-^Dse9H9&iP4J9w0cfEiIUR~_*hYnw8&$%vcKjplCq zm`MZ-u<3XaY5o7><;%bA;==>JVvnR!xto6Ym!3oie*CYyO*;Mj_*5>56u`OQD@LZU zH%UXFIDpq2G7eW$61<~=;R}AAe;!XRMVvnDkbt;^%wZ9G$1?Pww3_5fm>oO`a{Y(y z?0xaC&4c{6W=Mi`jVVZ5W(BPaoio2a{Ko&G1L|LXegFJ^?ZhY_Vlmn4QUz{gZoEQ5D=&l+e;JD%y(g zkGM2AQ4BmPF{mwEt|X0Wf6M(4{h|6YZg$&&w$cm7J8(7QuNoPcDWH@HIB9}Q=Cgtp0!J0j zEM{hA^LiD3+zd2ozva`+=>5|V%lUo-Mf>8r=_gF&?Jp0LA?w?^e|=w{cE3P!p5{N( zXw%=^!`qii3(arnL@Gvde(APv%uZsjnGEz^;c7k3<1y+q?&=B16Go? zCYmCKupYry;ZEjDm z9G2_!75&MXUx@$ufA09s`5bM2ejo3TFaLeJyZr~g;P0S}i`RA)#9+53yYb`0{q3dG z7$vR|R?R}ZRh5&5cGbjVK@ds;7PBtly!L<)L`4+<^ThEz#)G>A&H>Z#=1~_!e z17~)|Ms8eoH9(?zFg*<-g(oBP$`TglkZW_}sJapTajkcEFE@`*uj0dKTYLWyC$8|- zHUs+t0e^k6e<`e9%hz!iadi&|Zv{*rS;i~+&#T*Y$+m!Mcn{{mt7QOxo+%NtX=aj`vjq!1^B67T z>r3{*Q|Iu<3Up!65j;DkBy-I^BndpA1+I%0qUz8gf6<~WFJ!b!Qs=#WGD2`ec*|I2 zNjXl%mI2b6vU{xNcwXh$JZ}(qwG;{Rdd|s?=*&8=-eEOxDP&~xp=AU)qtF&l8 z{P5zd)jiH!3R_)}4H`OucStF5JEa4h1(?YSO9dFySqV!N4f-0otb|HdLi}WmWr|DL zlCj)Je>qz$HK;ZWJCn5Q$GpM?dzrY#3qt^b@G%6ZaqKFGHc2`V=-@z3II1afP^$C5 z@m_+yvdnptAzK=FtN@P%4Z+8aQX;6?;dH~{B<=deuKrYaD~57X4{yHvbLTHwdOJkM zU(rpe0(xOU=mn6HstJ;X94%5y<7Mtl)lp^;e<{engbiZAww8G>1(T+hD7l6F_SY=3 z)7akRclCW;8uv-fJ)U60Uu%BCXCGp&b13n1Ew8tm`=>uYzfYGX&}El~PSSzGW0EyV zpkv%cKthPrEP2Vo8eppyTE}xihHWIA0Q3YVr+sD70!?B2WD)|OZR3ShH_|L7K25Nn zfA;EBE{_|Cjhrq9T8xb80DzE&&|jLiOO|T5hKAss`cfrwE}LT}c)-4Bv2#9xCZz45y+LIiDhlhJeyV+b(m0Q@bLmlX%of1I1FtPHvFJh1_Wk?q{hQ~6VG#zHyYgPef4tkC z&2AT@6ApL`s({+Z=Bi3swh9gj3}+=K!YSOqsn+?9Q))OB5dBd*@)s2c*d{acf}$4; z=%AUSc{N^A(&>X5I9Nn4s;dMM3Kr6BAp zX?gQRvol7Tn{d(yRV1G|jKwl2f8b;yo1>56bkcN|+I@O?cc4#&m0$IDTEFQB$$M0sRZL1kj>H~IZ*5EeSY47q)b-t&C_O-rElsES8DUG z$#Xo3mu>!$?1pQK5Av_*A|XdzwZ?^*l);&CO&1IX^aTVGte`WF@JdeGe+cSq0@E6o zB3Z~4RgLsMfq$no^U)3-V+_8;i-!86qWI_4FEm(A zB_Dm#-R6VJJovPI-mNiWT)V0aRFtw+R^z>(Fq)L1b6lFj zuWV}}`kpC)L&*@Cbxts&GB{HJ4REFi2dq>>m@6wg*l)Jm9Y8*$>4f*+=W&c&Zi_iD*m$%TS z_qWe?({1R#pBxTIT(hHvNP6s0~ku2krXuDBFOs`C{8tl&BPE|niCLx zBl`)o_I-VPzIz&R&OF3q4LXAj7A%{wqM0JCQ(|IHMx}`V)0zA-R(2{>SiFU|S+<3a zVbDOOe^xUQL(z(yr+Mxl7#z9NV4r6ZhA%M4X%FruWfAWW&~SVE_0JDy@`IQD9RK_( zKE0c}uov8GseBbi4m#JMBA_gs#C57VHx9f2{R{R0?jT(!3vdFld%i&eG>`-djS+;2 z%vT<;yCDfZ_r{CCr27>(>u!^tpXv}9cj+t*e@OJ~8jC*Qb~8Ddev)l0C_{0Qj_?X- z1UYXOe{rsuy2#FhljZJgN?qD)zrq?HtR<6-z)yd9j^*3`{J^>|xH|pz2z7J%nE=4) z7d*JSR{^KUc@;>Im zf0dVW^M%A-kp;NJKg04Zz|ZjRM~6obPklvS_;ilgIy^UjdF9DvWc8(Ck3nGLkUrjI zJPlwrtm#q!LzN&L(_msuDeTt@&8n27Qn_c|RKcu) za8bJPqYKrCNl6 z&ZuPg($MoMCC8xdAg^6$InJYv!k{>|`T2dN)fukZGM#}A{15>@x%;LdkiEt7U{{{} zDn}K0!NIZ?xAo$?FXICts7r9^NE?sKx0kKQpssiRRl2IJNHSWNY698}6h|urmI;gZ4m*y0vq?zpycHC-JPc~Y!_V>VV6Piv1NJ`5 znFjnAy=S}vJW`-XIL}abfbiP1T)7k3ml7)lpaYWh;T@J@W;Dx!e6Gz)mMDv+;^|0M zw&vz=#NPPx9KMdbFQ1=&>-Y@bWYM8o02L5CO}1HAp~k`UGJuvA+^E4cf2oBk2^YFh z?6ieGFs?Ar?`Q?c3U6j+g^@S9HzIv~7avdXX&Di|hNVoUu#skIVfI-yR$Wqni?OJ(@ZQ~s4*5+GdzD_4B!ZT?=&Vgu z6!OuE5Ex%EIp^X5VXRc$e^@kmsUr@p)51Woi-40G3X86q3~B*3H$S<&_c6^t{=%*I z&j`dpafubHI)f1(Ajt`kv^C=$ptWfnYD)##C|(0^K&FEz=)|SzCL@CZc_zRX+kuxt zo{)_i95+{RFTU9R{s{k^>vXq&xc`aH>C8`g$q-$@5q;z(sG2#&e|TmM*6cw9Y{Gad zzzDRA>SO#Z2lvM^1HC{GDX3GZ*Tw+)oXR*usx5pEH=;kLKZ7NI`dwQiUfBXuQN~3m znKJBzg>D83RW1~w&q0Ho#_q@fM2KK;TD+oYa4G4!SwK~r4|y$I%vRan$l;QaYI|BG z$U%qTg5VL1l;S6hf7C_d#AXW2fJ_zOAi(bZrVF7JAONc#N?b#g;LhXMW}SsN!%-27 z5S?C~fAh_&*I$1-c-^K~F8OgGP$~!yxHlA)#x84|&Sq_NG;{&f0Zx>2XM@V#NyQ6L zs+4YjEJf0aL6W7aD;Ax{1<@1p5q^9S(IO=1o89J%P1#(Ee+v5i)z^!#pzm%^5k}uV z)cZGYUY>t_K7}K_{_^{;<%NKtxP9OM_W0QS*2<6nh%tAs{ByfYo6|>rmR5H^n@fA4 zt%cGrS@|lA3%X`kOtEwiRdLS75L;8WV+=_GZIEu0I7F0=XUP;SnKA+*S%Gp_GxM(C z|Nk)T#@oLQfBVoSLQac~_s`2Yk5>E7(>l(q-Pe3{+Doo91>wa?F)2YQ0jaKv4Y;4= z1mmWuK7q|e5GR`>t|uj71X3|77lw<>jRDeCTFk_{?*Yki62Fxy&lG)=u}?u3UYkjY z(x5_e5b=0N)CjbvYbPQh_<;eHWgva=5N#StWl#i;f0I^oV!SkpLYa6kX7(|KgY9dN zYkMd2MbDj=#m5$d1OUPnm&N(wZNP9nrRjMu$ZjG#%K^3qoE^8jI7;=TtW+QX&t$eO z){vkD=4N{_7-?z1uL1IAF#v}bj~sgRj-JlVAFpSw1_2GDg`_|ufYoYSbx>1QMrfQ` z3r_%te^w5Tp^VFt4W%6dOyS-z(CNa2^GSN{l9zKOV13|4G$;s zaA|+A6TE83;1WVB1*EEIo;^-d5n6)(%PO;oz1GEUNGY))K#9y0+>8_=1pvg@aIu2p zb8A7kkz$#iYgtBv*W{MY0tS>TZ6E>Lc_rLcf`?4a-Cy2e2BkHeiOQnCs{FQx-+5)FER zBG-sk5;oNwE$5apEltZFL_r20c<~Czs1)d??lMKyg7mR6m#{g8JQl(8#4N6ze+t?a zrRQN8Lfr&Az=+A`yGmBF^@KX9@C5hV+gOv5Slgx)4x+Wb7>MT1X(d`zzJX+eE#RZPa(rteu}#?7hr1vRg-=_yNFJ|KHsec27S=&GJ~sUMg3|1 z81lSSFBDF11S=05^wNSzQlxVLf0^P~P&Gu@H>-fUgka7o1??&W3l`#08ml7UEbiHY z-|-t|Ke~iQx28*Jd4BJs;}?!6f7l>0*(|Tc+L_`G^DU7#UjecxG)0Fjva0~?(xt|W z1>)&&T2dY~Qb6{|L}xtVOeN=V%Fvxg%n5VRyX#*V}=}C&H5okYPD{ zZnCr~sOSq960%nFW_7N;iZM8lL*#Aqq6KEiY8aH~tYFv3@13VK_IWbgU~T>8ncNpE zUeYtT4lQ~O&CHZiAXSP|TBkxhV=t zbc|>GV<6{&I3SUXrt&Q=7;ff~2dcN3j%R5Y=E;V>*QfhI?~mVrPlrV3>)}V!?-Xj& zCDH6X!fVDYOP(}vT?nK9(+A2DWJ22>LUJ=0jeH1G)k&f#uL|_ zUkGg9P;3s1l}t&0o_t$?oKVM+jB7ghG>@Q@xas{h|8_G3P2<-~!{e0Ot)Ux~(ZxYK zK#-V<;YwAE3J{A0lC=*3DA*RjaK$PV9S~J;%r~DI(PEuc6g4fgd&Drdt9vtm+T})& zYj9yao$t%cg1T-sT|2G9x8$P$)`#-9R9-9wY?};;VoG^`6F9iO&u7ETZB@=N$jM5! zdBuD*z?ZrKM>Xq1U4$X)F>&&kKYDRRx)c3@!`a%VTbp4?@caAi^ZnB&uZhcERvU3~ zsg7R>%G3~}=0;G)ip7bH&4kn^MLKO$!Ikxfg9?R`sRo5--q&0Mg+7TgTNBSm7;((N zUQeT1NTDNtY+l<^D?nCM2q_z7Fro~l!2uK?ZGi?NHdTt8I{XWMP!xxn1x})H1wf$~ zz#xRTs)D%+wFm$deVEvO>`xzncb{m_RT{(AyyTb!04qos*D>~MoUxU0dtjH;9X>sKdD6xOG?e^w0W{@dNAyo|qWpP%Mt*kyA4YRGMRBronI zz|b;(&}!p=NUeo{|5d|d&IynmJVxqL3b?TE^IHfR15hxqdBsQtvmha{zz%pV!B?{= z&nbpbLd@v#d9_q1B}xOg31KK(5s=L5tcplRRe`@MDQ~dPtV`?_XT^h)_Kv9MGzS1vwE#G^)ztAVgD6Aa$AB zq)qK)7ld?8Tv$ec8Pqgr>@{UI86N?}C|qC7PcQF1@_&lE_QmtR{&gKb^(7@fu|mRs zARRwmom~)%LWY?SVIoflm`)aWQJ_P zIS_m2z{x{2-U6<9Rid=MbJQ#FVjwbq+;mML#I-5#Ma7xUC0R(f#MRsl4mRJ>-538s zRf;d&xBC)@OZ9<(xWleq2!}i0u2U%7$=-F0fIHu;ZF~CmZkyuWo4kEESKvL}C4w}s z{<7-Xbusqi1X98A;+(R7j^RXI?&vQnOEQS>DqoN5j7GTShbPw-(aB5S#S#0ZM! zik#WlIoG9%Ceu7babOnG z7nFS}0|*tCxf38FA~ipk^|B{VFW$%7`uWczFFe--o3@!ga&(POzZ|O|_ny%~ZLe33 zFcN&%B{0DjxVI*$+8h)UF0;gcna24Rty5#tb5%{GEihB<(FRoMEelCg$sE&6oR`|L z1MfWze2AG^oxoabT+$(VoD(NKjttedwHRxQ+>m=$O3^5yvd?$+!a2YOhDRdkYtAfL z3YZp71d`7w%)?$qZ+bor?Gp@WYn=TR3D*u$z1lv;P5$eq{7VndS3jFz7`o8G{fB9~IA7YPnp2XSPO>5KNzplu&axo=E*^r_b=^%exiyq?HnC1dt zsBX|woz%g(0UuYI3F9);K9SYWCZ+-8rOCE5F~7(|aOgBB!1P!E%Rg|L>AqjN*{iuX zrpgqYZn7#Vu;)~4+kz8PsSFS#5sS*H&jiO-x{L|sp3f)r z)$cHzr+2@J-Ia(v&@$EMDv}G&O(fOnDd-UkDngI-fEPG*RNO*YT;CL(2j&n7 z?6@0K0J&(CF&8;yH8*fhAhX7zND2QXSL!?#XGohnu*0>%fKZ6!g00$>fZ_P09R7Co z;J(e82wk9Ynfh9b66cZU01BTf7N`(^qbfsG23>*r@kNn;sG-Qli~9%Aw+Xqg2TkIj zH|J|jQ94W&)SEj}2Tn;BL9DP{WY+J>BSOTrEG8tbC|x}>(%f{jsg`>N^I0T3j$8Ir z??@=Udi|T+f&|)#6)cS+D;uRM-a78KF!5~WA;Kn3e6BcB;7 z9GbTT5S222i}mG_9AA9A2O~xti%=Z!;Mo_E2$G$&y5+|FHB?>iL&H zZ10x&!l&xuW98OKc`lkcEYbQ*L!N=?_w=U@I9DofBnDHS|7E5i`We1lT;;CBPIRf?0~Dc#gG{W*)~O<&Dsv zEf#2hnAG|r4IeoL3mmi6PQe2g9_W1Khex_sE{=+U|$pbG|)*4LI(o&OD1Zg3Yx%40ookY2b*j;02dd_b4K+NR+UVO zxE+nV<|u|wlXx^mk^)J=8;!e!NtEt_d4M>7u&~S|6cIEY)j^lsGY}W;j0`a>PKw*- z6fD=6Ms@Ls(3^XibKJ4L09tZuph~!5~FG!D*A|5aju0TTfkT~h>aD`PWWc&qLXhnCb9by9*vsQK zVG(nW+kP0;9pgg=#AFQYpNT5z8Lh3V4UP zDN~heX!TlX=MpcOYfNTQd1%Cn1R@~u`~2Q>66;C>m?pJ#E`y_+1aVJR8-moPK!JLt z$VTmr?b(+HUKK<_sZcT(Q+i=#g!GinQ~`TlqGuT3e|-IRB<<%qj2A6sWNO=gYtG%V zLg&lvPy6Z{<@~u(2VTw_o!9ockV*x1siY;JCw2IuK3^IfmG;vYN&(8eXqoyt=2=Cm zb81*FphVge4)m4CkpUj0HdGnm*E zZ>;J#RqY1N41n3VztUz&-JrUEc<>G)Uxd;9>aF=ip&D?YAmE_gqOyg|9$3EC$mA{~ zj}EXncRo=YBvl+QOl5DFPNGq{XU`g_925qG%Pgo)jJ3SUkh)rt{}jki7;_K$ucZIt zW`$rI=&^aBTR;?x_YP^~_rBgITnbcRoVA~(ohyuOS^ z(BsI}#}0kvAn$#Or?8ZZHWsX5rN&LQ=oXc14#yFv8ju+vFe^buQ&8!y1UJ}A@<4Tr zOnQejG4c$k5S`(WTB*%*c7&ca{+VXCILy| zir(~;cP`jJRWY2|=Eb8QZ7f*=oKy`im?=yE$}U6C32HGQalLsBeckF9smdxG2-1 zu1Q{?EhV|E7Dp$43X0sVLP87)E3q-AN^NQ_-3c@itj`9rpMupHz%7Y1fj=B6ksz`!8xdwngldfoJHp} z1K`RLy3YAf=7vW;i==t^@~^LcL%UH4-sUQc_qqTHOY4<+$5QP3mG&W6EYMXO-o|tbdr;EVi}mlyY&r>QDZE#FXb)#~6VL>FS68mF{^o#Ioc8fBCM2cewxmU*>(10wQDH&+_7 zJ_G201F=9|Z!{G{XrL@U%?CH|A@a!d?WHc@vnd>Z;1pF7ag|#Ytma6a03wyXiHcyY`Q1RF|Z~i2^V8XpS|KPV@%SgY!efRYAAZLRuHBxUzpn$1| zYygm&j|kc|bE)p^7Np6Znk_i0~SXFV$6@aAz0%SfGbSOL|}=~7B9Fb&nfHBwr- zQ)Ia!eIY|EoLc4e-OIW^^Q)GutH!HbiR5E{GCoo`6sNx*ASyW&S}77pWnS*hj)hdZ zzxRO}z!wK0sgw#$Jq0ou>!}Eu!nrOHm)}$WqlI6I4E*C+E_Z#)p{7D85z^mKFr{^d zirh5T01PSO0{SiuPak4_eyg}io*<@+6OHNubK+$Uqy_R`LH(8n)a0F(p)>2%&;)dU z9Npm}sS+Hu8nl+RTEY6WNILMD(uDwH{qped)#jn6A8!9qK>~IcgUTr#pCVat zxqYHwf|995zKf9(;ixB~h_-KSP_)AAvpQ4<11BQ$ENGmB?p9QIWKqS*&wQBkf&FTA z+!AQ8OtpD0p@5YjRVONSb{07ESx^dpf2c#1g#w&GMbz*N?xwB`1k|ub32oHX+NJpc z)nOq%PI1w{eg*-jI#P#X$AyHD;Ko?rg0rsJB7*T!#;K9hxy3}T8rq75Xs3PfjFQb5 z^_Ia3L~Yc9bGpS0PLbTd-Wv}66f(K}3@^B>hHFnTEo$mY3^w4P*}UkqoldfUVW2oa z)c$ws0h%->l$28-9@JSf%pj4T_2lX@P=ECVfcCBAiozs>YCLc$uh|kYWN5B}h;R$LB?hmJ_(IZ))7-clAn90a8FO-)!&btBzq6 zeS+t#W6z;V>`K}FM8(6Xni5uj7|@@p(@wpNwb0H1LlY0^i;)xstVJDHYM?f)jhaAu zKodzYE@!K8VrLzV<;`q*r)kV!NjW80eDU)0lj4WoPgKYYGXj^x<1@`N^>5X-;HCz$ z(BYq?F-LF!3@GQ2eP^MYCB}|b+E>}+rNX8kD)JCz;lT>XKV6*#6c@FB8nTC1Pz32U zARN$1UnT`>2pAZtV<^?MNPrA6a>X2o4d(`E(a#*IIruW`4T0?N42_qt1I}%wN7bwcoBv=5o-JJOxN{%}45u;TZWM7?_b@ zxmqgyY^u!s==mClJsnGb<3YRwXNrP)@bna4P$3F5b*Ph6GkiFfw__m^Al5R4TT?l7 z047in;F`h;HG=U}TiN=>^ZS_cRg35`Ds;_sB??puxV5MJKLVtJy4qT*&lMz4Kc!Ie zUe#1U+5m{fil!)ZeQ*`B7{rV0Ue=3PjfB8e2aUO6({O$c{3mr_FsrCUzHTlC{7WI$ z(a5GTzEZs`eg6xHEV4T=Y=Z@c%+xAd1V&~*AST{_8ei$Nsrup0deeS>zj=SQ@^_ge z=bp9a{&}Zg554J5zmGlX4nIx(OAdnZAph37ChP^}$N49Q`p;c~%E60vs{8Io*Z|_*!HEjXwjg3A4@_%4lbMh`9E8x*Tu*XYcOr-(PcQ+vVMAp zZ~FRw9@u4ivrl1M5$CVZ4zJgD+o#jmUvKYzx!vA>_i)J-d@U#F`+B#{P%!wT-)!&7 zVfo+W9hHxpetZ}4YPaHtSk3KE+r655v$?&mh0X`n*WTO2r`IoMoc{4*wfz+Zf}{9= z=^j6O@Y3Vchu;oymP^OB5Q$q$seaUT4T58T>Tg&JRpd~huhs|Zp4TD2>U?v!wn9)A zplZ}a85ocpgi$7n?45h}c5J3>ZY~|QMdL0mzw+}pLkQBMEPfYly;9}XM8_L%*-@vQ$T?IS z#R<6xAgls40#v>)iBzbJ6gBY45!0uCvXJ|3Nt82RGS7Hu(V}o%h)#rD9rx$YPuus$ z#KRc~{%El}mwe|U`)fj^yQyn#U2mb#u_Ce%%6AkPgS$%B)u^PSjyg#+)2UW!ckOX$ zS&=4FQv_^nkcl|~2HL2E<|1%(C|-Xs-mk~hj1HL<$I&0x+#-E$<;5m_nd1O|NWfX3 zThl0o(o|QP@{Tflq_jl^9%DCCY6VfX1lp<5Gb1!kZ4ioO>UaebO3AE?M3u0Z=_mCy z%)Ye(j>~|x3o{;nGdW)w_Y^!Yv}tis&e4ws`~zsdkobCNAU?++7uuFxff##Kv3^1+ z(S21X_X)I*x1>txL7!gB4Vo>>6JH7Opd zr4nc^QL#T8L(n|r*jpy>K`?1c(G0#(pJhrViH${y1y91MDi+eh4&q`@Wv&-j80s9Y zP?e=I(8s`i^G1+|mzxx+s0OuTuz@Cp<4YZJa&KaBQcaBoQk$wi3(9JLbF2gq7^n&W z?dv!B)Sz*tXmW>L-qYva)8{VM@e$OAl1kRZ>QXMQNUSZ74#K;&kSRKuXVb;S@T8J} zbZ4A$wKQq5Q~(#6boe|)qtrP_5c@ob)8HQ;4?zvR9HOpwt1u>GH5vp#;-)x<^HEyx zmFlhuH6>QmB7^VD*j3##yYU>Sg?uA zRfr(NJ!Ssu2A0l+%+@*2``MkdWJkI+CewZ(dlpA7|G58cy`ip+rcmLf2xyT@0|d!Q zd{ZJ=2vh8shYX}lB3s=rdDwgeYp#Bm% zX^IyQxevMzP3tPDhy&$?DS*HLA;e;osy3a9b#pJ;Xkl3~O06M6j3Q~uIHZQnsR*65 zGXVnw7SiN1P2`+^>8qDfJu^iu5vcn*BX1rEv;g!Lz>q;|3HW`ju0xPQIfe_Gz!d(rRWGs-w*hc-@k#N%l!mT2PZ}O>s|DaGPu9E5u$_ z)V@M+>a{#`C=JN_VB72GGnBws6KFschHHwyP}ShF1BBau<{@lx#;0mC8o;A=35t%I z>1Yuclo8cU%Y}smSPnc;DVY@lW?uVb$Rpn;e_u!=@55z>-0JlpIZ0KTzz)cZ6qJ>~ zbbOzTm0pFA{ zdkT#TEar-TjjYrmS!NOVRT=2k|~k$I(B*4q18<-)Gi1qAm3cWp#KX-PLzsksvMVj{zvg@!5G2OB-9 zwiI3O(1xrL6uZa@_5U-_lgtCJP}ffbHHt&$*TcYnheXL^yQ0n))(>^zeT)3Ccou*GPZ?TbUA+u%NPe)&brFXvJE8jR+|_GppOF=B>bbmGIGYj~g!)E-e$l zhI9}TrH^|2Dk9ejkXOv*3Dt9&t>>FJL-^$vo2PH?;@&oJrq-)mdRA)k3Vl{SC!o&4 zJ>_f{KYL7UKj5bP7i}VaZCrGbAV>glGUnulD&Rj@K^V0w;S7k zul9*X(7RdzO^wxpLN+vY0u4Nav5`T;IZlYa?-KQx-Ro8k>1zV{S#3L~5K@DrQl%A&ZZ0eUron6xfPk zfUW?f)VDVViUxodgr=vqfb$SwXti;Fs!yBuqbxdBRvf#?&YZI!^u>Nc2-5a(L(YV6 zB9#|90QPy*?20k`VzNdF$%PD9Q#2%o6fpxKK;uyHfzq_B+;LugXGbK!FQ@E#X&}}k z_zliUqwGs7!QJr6yoJgMo6(xBH|Xjm0% zacL4!H-L)ViHZdHVZidJ6TGBs#snkMiux4p3wu$#$ z+e1y30+h)e!k|0~!+uGB1|%hk_t<%LNj|3ecIKmjEcdIsMwW5TEtQG)_~TS@4a$mo z%7Y1MuQYUTC@!cD)*G$JU_>?aC}kSdjhY@wmUEO|>g??TKbxT?>g#xadp#-hQ>%o| znkM!|L;I?vp8{HdR;c=obyjJsW97i)m|DgKvtWdg{Cp;rE|5!qS-dYPN-j{lLLD>| zd7$EtNjTn|)QbYDMvg-AtW<|BT!_xSYiY9JuNHjHyoLz=DXRfY1b$9}(^w?PsSPr> zY+7#{EZ`iT$}+WVA>J(&s)WQ~UgvQ`FvC0uUg2dW*o0a8kt z4yFdPj1jCXa+fK8%A7m}UUt`pvN(CPfr(NI)mtF*hY4&d&djMVeVd15``-NVdQ%#P zHn-jMU8OG-K%l0Bu>sl&4y~mM{!Jm_ca8Ic;p$uqR<7f3Ed~XV&?&a<8O;+haAtVH$oZUsD^_C3?LwXMO!q~XW9y$$Oz)73L(x< z7rUgmqGCybK>$(#08J-K6h^6!xqb{{nmgNck99Z3kx}v0GfK+7h6QGZk z3a7P5-&EXMfO;VDNyRdpZ_3?Dw2TXXzTAtEQvlMctpRjqZZx$0VQ+=%A5qO@&cQqK~+iPY%MK)iX%mrsuRI7lX(HW13m3pw{-$lk>? zI|svm8NXgt1^7-`j7kS`)d^}vRVj{1HBdjLg=($nDmoMsYoy*Xg4t-n89BIJoCiFW z@B7D{=UC^lx9kzwd+(jS_a@0+kr9rajItj|A%twQBSINb$yOp6p=Cv)|8u_Q`|DeO zuh;Y9^S-WoT-SZy*Lluy&dDdZSdq}}^-Xh7*jt>8F`C6#d0cN*IPQI`jkAi2K_)Ii zL-vPGfHJLM*LBFfu#1W5b9j>)`J-Q%ruT`CTHLgZZ2Y=7(fBF;{snouP+4@v zWKfDq`g1<7y_oCBC@;Qp3j{YiX=LDuw4Z;~g}1V|mLv1Wfqga};p#BQ%E!L7GOX;3 z8HbdWO^-_)BYSsh8H&<2^Se#wkPK#1=6n}8O7yZgA8Vv3X*3x5uX|~vJ@ZojY_-e4 zAZ|39tH8&^SL6*?8Jnxy86(_tO>dx=y36?}T7Txvy;*bxQlv>Y3uB=VyRX$5cRSj#GBS!LDku@^YlMf#F)Zn2FEBEdj?(?FTjdLAP0wWXCGqoKleA=PrvK8*JV zSjD%p+3ZcWwF4WMAf6QpSF&?#34Fvaiyww-U&Za(>1mX@gQHtR#H-pTH)Qor}Hke?f&0q_Q&=6o^{o?R$I&C-f0f*z>(GJt4@q55-59V zU=ur~K^SM(uM zkyvb@Vths*b!r}WwaF+2Kh&7(3)>e{ZwH~{Xw4**|(YxB)V;|kJ|yB#WtkF$8o>}Xb!9+}TmjubM7 z&9EN2Xwzv$l}E`H+xESGkM5Nz_ARvYilhx8w=fL(sW8+<7gbf|bvYaU_Zok8m8wdw zZJeR0nLxOA8S;_GU&K#_>Vz+U5k5S7#E^aySHWN`faebzk?tO6X#! zam#Mxl z-%?}AE!WHZ%`-b)Z4&c@p~JlDm+d?7dpR(af<)k<&DQP<5UK4G{fMS5oVvbY#@08l7Kgv;W;-c0J#v|dMrB;p zy}}jv>WQC=RNu6MiB9*m-qt?_sK+7sKq|vLFu6)zCS>l>MHcm5#{0UQjruj!Ciw;FMxE2_#3Qd7=DsDy`+VV{ZEOpaylXl% zq2A6d>HKt&z{)G9{o`{lt0Btmfb=_Tay3!-Ng3jo^BC^f5uh_4?FrY+Rhg9$M#d;_ z>bdZga%!fK4zb;|XDs}{S3=#@T|wUKX>83!>Pzp|c^|$>=u5%jRP*lOuui~tspavBC>gnydOxp! zULfdPz38`GiP@V&Hbq?Nr^kXV4mbw7b36JDIgD2K=Q(sMW#~}BRL|+G6+%@PXtQ2i zq@fp5tT=Uz+u@=iR3fAb(WUT;KHl>QzvAG!%=LP*aWT+o5baEyuFS6Fb)ZU!!o6== z@qMKDaxwq6dp>n;s}{f3E10G&9>1OJx=cfz9YPMi8D#3lxtqRZLY*b~f}ENW69XQB zJDT_N#w>!KwGg6dGM;>&#;qt^Eyk&FS;Fx@Gdj<9k-3K}pQ8~Ro&MO3V;8((!^h~p(zhpDn#wj{ay1c7$)Zp)QpRQp0ADq-Xm>3lMA{ko`oJR~{6cdk+o z2H79GUuA8*QaCWikibJ)eZPvn_Q@v`O^c<7l<61+gy(7ox%tvO>nvEB)!n_q<*Y_z3V6G zdi1`>*#_S8-BUSz%cMA&#@G3fUl9Y;-uJa`neH8pne)!0Es+gh0wr8?WmcPvpQi!) z6#SwKJuhr!W@+TDU0QN$vm`wzzvYGDNzw~)c_afjR)=jBH_!EzVVDc4aWBF_q&I^-+ub54t(~1 zane#}-8B>U1nsjL(>FalWacS5Qd58$LA+7vIi}Vfe&ip(coDa#(OfNWNBj1aasK3@ z?fDxg13f|tAm@jzd%KpSZydJFly0(bs2#6ev>1N95>h^Y`?|>|fBcKp)~E;EVvCbu zimuL!EMXbn==k2Hhs<)%iFwN@5Y;&fGhP7i5ZdFXNE)Fna2%3~X$bUs+wB63>D9is zGV6u-2(}n~KlaEZFLm!QmNGVWOudMz4;LD%X?^Q#Tv$ICcV%4ptI5=^A%E1!%+H*! z^1dJaJbSh4E-%ZJO)iMZtQt%Sc9Ms))Y~TEzRFoT zm`7&OR_Q2jwCqwfexjZm5~7UZ(x@VtQipP@LSs17`%Jw{zr-F%UwowA z=sWPb-uTj`v+f4A@lghc$cH>@zCabe8FPblvi@8)RtcLypYe`k+hpFwG zB|UR|#)5I0Q*^guy;jDN1PNZ@`MQIJF%JZ!%xv(A(+7e>XsBZd@DnI> zMN&Q-SR@47KDv3c;Is9s^C3SwxzF?3Ebq<;3;p`mlI~4XK>p51lD2s~XV?wFpX#gh zqsB{|R-^;nobAlZD^GyD+_Ds8rN>hIv;YzGlp|Jltai{(^ttBg7xw088kSm%>-nj_ zE_9xj_tqpHIHo%}O)GU~eD)8zy>nfaFVH%h{d?)P!|wy^9XGjflFAl)_~LPtg|qAF z^nsfAa1Po|lM8%A8$FfmrL+Xm4|*o+7mA|8E4voD(MK-X*JzHyrsfE04Y)T>=F?K# zC2=~W9^7C*JE`)Xwvwp$w)44MeNSGGIbHppE>}4t$vYyxz2Q7Bfz!;(Zcn(Xn?Z}w zqgpHR>}^kG%faQn@pHpZK3+#x&~JycJ$5)V>*VybrGlJQ>~%=n=cc}@k6G;9{N-1J zk_}M2B{6XQ(a~A4Fw50>KsL3;&dpbfd;eC$Ft|Z;iQUxZa_;RLj-wrn1B-;pc5iki zETw+@T+_Ys?I-8Ep3~);Zc0JxG zJ8ub%&uwyOTS%1@#K;AB#7J-|6JO0AW~o=8$5pVQ`GQS|T7+L|b@tQO=8n$;c!Q>n_cKWf=>hy>lko*9=KOpI`AuIPV@?n;W>!;;Qsw%C zW(t?xj14j=pQr$4dDG$N>oT@%_w^%{ZfFQrz3%L(7;(QYJ>FiP*VJKL7D6fDdhA0@ zy+Lh>zVpx$E0WWA}nC$b9ID>^X^m+A6KguWKCc1bd%jM7`6S`Xf*UL=|!5jjwSYcNC7}lENA*tNV(YYD|x4mQZ7r)5LhCCZpjv7eczdH|+#w zuArssHxDTe+qiuztE!FpY%lPYGXaG>lu3vtP2>AUU#@4HSyA>E47yDB1`GV~u#VyO zn>KP7t1EjMC`PIue^mF*y@{kYvfG|*}L^G1(t&Lg?i=Its?x(Y?#kyI-u2MZfE zbLuU6+!??;RkwGT*i!egT;=)dAW5a^#hdDQF}*74qSWbcD>>YUpPTNgEpU`CKZk^W#Hg+O5gmkd`!0` z*uk8jH!fr{;#`iqpeyOaBVC!Cp$@R^8XT0IndSdfX_!>XI8)%(-jtoG*rG;*PnZ03 zPufqeicTRrUVEJS$4AclOiYp_RFg?+cqz|ckn+*QZ!0()+rMbx<@+KQ5*}iyi)Qlm z=fA~}_B6}l<=POZ4f!$egALxW*J6>6GV9aT^tj4naJ1Z+%j!q*rB zh_Gn9e0WW5zlw-{b=hpkLj09iAJ2>4T==^nvb%eKGdam7h(kUA!hg`*%UuB}? zy93I+)xnx65>N0xf;fgKgie>OQrUev%huZ1Q;*2&6%W&#YkwH9<9OfWtBuie{}SEz z2t#ACBKfB8vQZA@qbuT8bH{=7;-8g{#a}Zi1jylXW{+PTNjEm{h!wA>+7~{HzFxXC z|1PPU)tqFN@5^f_uVQQ^ILz=Qv7Ksc(o#l3e_&9%q#S&Yy4gAIB z3eQAB+Q!(_`iNt{khtD6sifjnMX%5#r{F%$5t?_s?a40asUiIn^WmxPu&23}Ar+2Z z*$ex+s=P=%jtgc@Y61*`#38e%XuGbgx9xsxhnhx9J@%LN$XU}4oew!Od`xMxwBz!6 zhh{3g9tJK7WPXT6^wZBy2W-`GbXDJLGjO@+RY#Kc$o-ael303B5J@1B=} zuvDvIJgwbakM3!XJXN7>0OgRDzGTQ)^@Po={KQTGgBe?*%4)807sKA;T#{cU)wd>C z7~4a638T!cO$;pZ%!J|w%PB+bQl#=MH~Ok#D`&pHbn6Z!-wExK9TusfLK~I)-4Q8_ z`^irz{8V?iw^cOcX9~BU1r+~z-GliPawF`1m|iMdt!9p!s+i^0xO7x2`Zas$$zY2Mn4LYvz^>=kiL@%=JK;|K>T{m$m{?xmV{*@bBj9j)(s`qlx+O3w`q76P# zdy)F!YKUI+|P;8%}LN`$6!qgk42KMq;uBSIUj??hUAGRyN%}!VZzKC^m?CD z>vV$B#_G!_Hfnmr`Rg-}E38_Pueaigtz+(*6UvdKlUKIKaxT>ijwI4n%&MUn8<1@| z&b%d0^&<0ZEV2_h=zKTO`(_`#h~FtiDRCb+Rh+tPe)~D?U#}dcl;3jJZCzIdWOxF; z(pL-{Fc5xJyl-oB#~}X@Ena-6;yoI0u_5hov+9D7Tv}Q{cGuPxuJ78FshKakpP5I% zKJSi58J@~CACSpHI*&bhL&b$X!PKI{&sMGeXn+6N4pKcwK90X}(c`?(>@>GbiYv<7Q6orjlC{Xx+J(K= zVvqO0=YEdLx1|QQtrqk|;r?75SG<+q;?EzU&$4HPe>pDdGhBYAxxRQ-;=Att4N6C` zmTep*BGODCTGZSzRPx*dhJ0{byz_Qe37=rhPFS&&v!s&Ja#&+qdbxNV$LEK4La837 zUq0yZ?6IMynk|yB6NJk_zqa+{(=+m>jXj#f3(2$b!M-}K@7KxDN4t-5u8hR9AO5lh zbc5#!n8>)xd%OBw)n^(zZg|ovyIf^McNXD1H=Dg9U8Sen(qJVnclM*#gsrim?{}{r z(7NX;^|LF98V#DFL;Q&bzKm2_A0KJ8Ha1_UkY)3&OLualS7dgNtKeW64|6?J{P`kc z18-KBRK?ptk!ifp0bM(y_r2Hd{O*FmTj< z9ElDtoqHX_8UG-rv^H+d^a1Z){w86vA)(O&FiHAsPTd;(PN0TFKhL?|5juy%wfp#2 z4_8E5<~rl8wrvVSms_vDx=qmXt}H}2k*|mR%>%-AX$`Z1k{_laxpEx0^MjxJ-JrCd zv8}}wdP4o+9K5o80J~TD&9SR?vysArIdN_!^ z&Jn%y_NS*OMeit?|H1?E*paqJ1#jn|1$kbE6B}yyjR8-n!Q}-tItH z*^4%{Ip_WOh0q8ZnO)KnR;o^^0=L!6)b3u1ai~(7uja|^TV40Up=vzn7tY_(7bHu0 z*fdWO^EkrfY2A%i?mL#Y-{_N+S4ASeBZkj%$X~e_h5PkpqEcV$rJskm5`{LJQv2#8 zxVyyd!&VUqxDlVot!=-gnR1yVg;{jC6@?$8qeBr_u9(>`qdD{|@ zq@ZkZ35OYRad4WU*bfBmXa~O)De~wU-u(Sk>engJ?|sSDQ}N$wniQjG7yM$Mh!EPA z`EXP6CI`RY!@ZiM=x8*-zJFnE?jcV@M8n{%Bc*ZTOG!Hk&qtY8PH%78(A+Ddf!r;5 zpN@X*iKGf!EPctNjwb9bEk8_^j$VqomsQ0#S=cPDY&bF6Tiv&IV1xE#SDwJvCiZ{$ z_$#?WkX3ECy16PJmjxbZ+HXtrv^ng?9fK+!&P1=EyP7VOBROYDBrRW_sk*np<#}!* zX(j>XTZy}|fB^Hn9rFk*#9qn`H3rd=&7U)59cnOPy2ImEPsNui{N9kDDt6#cm(7d%H6VI_d_Yyax z6X$B|x^Ph1l>+gg-Q#CCSx&DA41>5x-Z4IQEH>bzPe#wzYMzQeIzFZ88GsOX7xIBL zsewwd+x=Y?9f5c2rwqmB6^f2jqK}tPiljqbggL!izB^s8Q?b-EL2K8A+-}CvcKNO_ z`JzC?F^np>pZ?wkUkdqHdPb$NRDCsg&%1!A17S^hx}-Wqybo~nhLfI;PMoq1kB<9t z#I~EXMXWl^_X&NfS-`LG6z^Hm=wX3gtC~wv@P$&lMp?($Gj0pbdoAUxmu4u?!BdcbxaL{(W-1=v zF1gAtYOMzSYuyG{{SFi7UIjij*UJybCAGVxx3wg_FG(!p5rvYH#D7t7(9pRQkWe~> zs!N|>yeN6={J3k}=Qq{~CW)YjgS9M>LXb1AnA&{jK<;4`pCsRmCwRSzmaFIolIemZ{sgSAl+6d#(cne$GToe{wPVv zpkmikE^Xk6LGi1PeM>pdN$4_iq95LL{pl-|&r?wWZaNp&jo#s2s_YK29b&dVdbZa7 z{e7;1`?uHz%AH@LT7s>@FHMICvT%0iTpHG|xxQR>CU2!Kf4hx#4q%$>D%~%6zblx_ zIKF+qF0Ic7jcAO@^V7c+awrT5lFonXdAw5kpsO*PsF`-_9Q21^A$jh=O*ajyN`Ab>Bz zwx1iQcX+7ZUuqA1_>8hg_(Q5+P&&vZdz|dP6{hSM_+4hCUr}Vxqc137q@(j+R2zBf z@)sb5u6;#GAoVW%kAe^n5lEiR<3>sXe}n$NKV`8j5ZO1B9}o}%k$*!eKwaNZqCmtA zjNr-cyg`!d2a-eLJ17R=VEG>ih3=rFkd-T#Zh0VsJrp^#0h^Ig8~+Rhy(a?CKyte< z+4_tfn(fOOC~X(ThvfYFKR^U6?V_XsMq`Nm0L25r|L`Wpbj1g#m|{tcDS{4iIDk7J z+Jnc&x4>fJeUvi5Ws4Od`zTf5sw-A3!4^b4#CCwX1Z?|bnLq%74C+0AyWI`I66)_L zS%5VZBbXtd?T9>N3u`V$Krp`?JAsQ(=EexO*O*(i93rX$$dF#0c(DL@wYAAoe? z5JXVy57;jw;Sc=c2RwVl#6JlCF-i_7`I9Up!U-5XfwNe73}+EH=?`zEBm@fjatwF- z`cJI*6D1GmB>&-9_!Ff7?EguGuOkScU`{wqGB**Vr2pGXI5=goLO1_t*?SL8r`-vh z^1!?QA3r%ki33UZ{>F5W$SFLbs+vD=^eIXLps)Rd{Az%^T{?wxI@s_xrh*K9!R-w? z|HdFx{tHgl)BqO0Qk;K?T} z2|$1b0O|lMQ~;0$>PLdK&=5ZGcUF4vA$C%b8G>D`0Z-I#!3DhmKrtYKGeZ>$w zQ4Bc;spEmN!1TYO91oO7Fha|CpflnN=9eJkj}OWN;#yc|AxU^5Z}340#0*410D1s| zI#>fKAqYY>1aMc1y1$7sa7!O6dJO>*D4q~bHj4q4ED?h0K&;_!GdF}{fOk?H3XVY@ zKG~S5{nP52EkFUO2*Wlf0+1N`g#t-|e7ip!KG*@&nBz?jb=v>Ggg4m#;rG)XAcyJ{ z;f`iNcn}#UjEx^+A%bW1@Lz!@f)_dvt|b@?T*AZw$_rTWH59;wY%T!A&^`&=MO!F9 z3Iz~@#6T@vIWXR^10~c&3}lu#5U9NB#ekO5%{ z^-+K!fC(H4#(FmdiGl(t;oLOB)5DNCN>B^23$amw-hgI4mUUCXF|n0k1rIf-40Kgt z#5pK~8n*O3_($YbBT1lN)bJD)>#^3zdL$R*Kn{<6jRszrur@3np@AF4v_pY(AUniO z3#X&78!IAdK}kS*2rB}HkVMcsTDZSAuP{U!QlkR}5m%uAI?xB$T*5GZNN^cR2eHw^ zUiUXJgacaIK$1aG7~=aAOGfEIC7_205@m)56gUHK@+rvW4CsWo1@)Z)g8=kptjQ+~ zmkJuaj7tGUFu={l!+v8rXc0p)Be8^^5l%OdgcYe6QJstxTa2I_aFT)*+D!1_U(CRY zJ52C)+{wZSVF+M`BO!uBm_awdvK+(sp=kz?9-3o@6V+UUA$$-k3#b7+ufvL)Ebyud zG+>2a11>E@!U|96O(T}DG{GbsL)u%g3K{!AKz}^DOLm!vQ1spqCDK zv=GPz&qv<_LpUI7F1Tc!mSTlW86FL0S;(O`Tp$Bd_&y%=ss)z~I>QahA#E!DRadw{ zaU@+89whn@Paaz52E~x{5C2gHkmos&56Ry9j}nEvd-15Cc?{AR`?qn_7#;xhd`Q^Vnkq4AOcJ2PF-td4b$k@Gql`=1=iU@~ddBKZ-01?#42QRHZ5k3*b!iQNd zY77y8*l6&{pkqC_=V=c7zi-%{Lk)c3C1B+owkV=$!~0j;$Al2tdZ7@a~)U#Ry@jQxvYJ z4A56m&>ff$#X7Kr5ul)SF*vt1;aKuDoPY!y$N4CD4&>r+F;|Sj+H}R?9n=?%6?kX@ z8fZuyZu%@1OV}jfLl&8U5gbsA1gHa?PsWN*67W2fT!0TJ|u9S(I(60W)x5JC#{0(i^+_LBp48~-Nw5CJDh2k}Y6`5*23ZKH%D zq~TIh{^B=L2UI413rZ+$5)S$9S$I5#8G^sJ6FC$s0|o-?Z?W#)av&KbvPeJyNy);i zm6{QzT^gOpX_8EXIf z$2m_8#Dhvz;WB>#2cl31&%r&Ozrj z;jIGS>-{4X7*X);nvwn!@6gDY%OV Xm>cDC7{d>ly~dy^{_D^1S;hH3cE+>Q delta 28435 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 VV4%hSA0rGwdi"medyan"<

header.json["medyan"] contains static metadata about the simulation that is constant over time.

Example header.json "medyan" value

-
+
using MEDYAN
 import JSON3
 cinit, s = MEDYAN.example_all_sites_context()
@@ -397,7 +397,7 @@ 

Snapshot group

Snapshot Versioning

The snapshot format is versioned by the “version” attribute. The current snapshot version is:

-
+
using MEDYAN
 MEDYAN.SNAPSHOT_VERSION
@@ -419,7 +419,7 @@

“#expe

Example snapshot

-
+
using MEDYAN
 using SmallZarrGroups
 cinit, s = MEDYAN.example_all_sites_context()
@@ -453,7 +453,7 @@ 

Example snapshot

time (s) -
+
attrs(group)["time (s)"]
0.0
@@ -466,7 +466,7 @@

Example snapshot

version -
+
attrs(group)["version"]
"0.8.0"
@@ -479,7 +479,7 @@

Example snapshot

uuid -
+
attrs(group)["uuid"]
"37eee81f-88ae-4d11-b6b3-d38e1ccf0a08"
@@ -507,7 +507,7 @@

Example snapshot

diffusingcounts -
+
collect(group["diffusingcounts"])
2×4 Matrix{Int32}:
@@ -523,7 +523,7 @@ 

Example snapshot

fixedcounts -
+
collect(group["fixedcounts"])
2×4 Matrix{Float64}:
@@ -570,7 +570,7 @@ 

Example snapshot

🔢 capsules -
+
collect(group["chemboundary/capsules"])
8×1 Matrix{Float64}:
@@ -591,7 +591,7 @@ 

Example snapshot

🔢 planes -
+
collect(group["chemboundary/planes"])
4×6 Matrix{Float64}:
@@ -638,7 +638,7 @@ 

Example snapshot

position_scale -
+
attrs(group["filaments"])["position_scale"]
3
@@ -669,7 +669,7 @@

Example snapshot

🔢 endloadforces -
+
collect(group["filaments/1/endloadforces"])
2×2 Matrix{Float64}:
@@ -684,7 +684,7 @@ 

Example snapshot

🔢 fids -
+
collect(group["filaments/1/fids"])
2-element Vector{Int32}:
@@ -698,7 +698,7 @@ 

Example snapshot

🔢 minusend_num_notminimized -
+
collect(group["filaments/1/minusend_num_notminimized"])
2-element Vector{Int32}:
@@ -712,7 +712,7 @@ 

Example snapshot

🔢 plusend_num_notminimized -
+
collect(group["filaments/1/plusend_num_notminimized"])
2-element Vector{Int32}:
@@ -726,7 +726,7 @@ 

Example snapshot

🔢 num_cylinders -
+
collect(group["filaments/1/num_cylinders"])
2-element Vector{Int32}:
@@ -740,7 +740,7 @@ 

Example snapshot

🔢 num_monomers -
+
collect(group["filaments/1/num_monomers"])
2-element Vector{Int32}:
@@ -754,7 +754,7 @@ 

Example snapshot

🔢 node_mids -
+
collect(group["filaments/1/node_mids"])
2-element Vector{Int32}:
@@ -775,7 +775,7 @@ 

Example snapshot

🔢 nodepositions -
+
collect(group["filaments/1/nodepositions"])
4×3 Matrix{Float64}:
@@ -791,7 +791,7 @@ 

Example snapshot

🔢 monomerstates -
+
collect(group["filaments/1/monomerstates"])
18-element Vector{UInt8}:
@@ -868,7 +868,7 @@ 

Example snapshot

num_link_2mons -
+
attrs(group["link_2mons/1"])["num_link_2mons"]
2
@@ -880,7 +880,7 @@

Example snapshot

next_lid -
+
attrs(group["link_2mons/1"])["next_lid"]
3
@@ -896,7 +896,7 @@

Example snapshot

🔢 endnames -
+
collect(group["link_2mons/1/endnames"])
2×6 Matrix{Int64}:
@@ -919,7 +919,7 @@ 

Example snapshot

🔢 lids -
+
collect(group["link_2mons/1/lids"])
2-element Vector{Int64}:
@@ -937,7 +937,7 @@ 

Example snapshot

Default: default link_2mon_state

See MEDYAN.chem_setlink_2mon_state! and MEDYAN.Link2MonState

The state of a link_2mon, organized in a nested struct of vector like form. Any static arrays will be unwrapped into a tuple of vectors, in column major order. The “name” attribute of each subgroup and dataset is the corresponding property name in the StructArray Any property in the default state that isn’t in the snapshot will stay at its default value.

-
+
group["link_2mons/1/state"]
📂
@@ -980,7 +980,7 @@ 

Example snapshot

🔢 capsules -
+
collect(group["mechboundary/capsules"])
8×1 Matrix{Float64}:
@@ -1001,7 +1001,7 @@ 

Example snapshot

🔢 planes -
+
collect(group["mechboundary/planes"])
4×6 Matrix{Float64}:
@@ -1047,7 +1047,7 @@ 

Example snapshot

num_membranes -
+
attrs(group["membranes"])["num_membranes"]
1
@@ -1059,7 +1059,7 @@

Example snapshot

position_scale -
+
attrs(group["membranes"])["position_scale"]
3
@@ -1101,7 +1101,7 @@

Example snapshot

type_id -
+
attrs(group["membranes/1"])["type_id"]
1
@@ -1116,7 +1116,7 @@

Example snapshot

🔢 trilist -
+
collect(group["membranes/1/trilist"])
3×1956 Matrix{Int64}:
@@ -1131,7 +1131,7 @@ 

Example snapshot

🔢 vertlist -
+
collect(group["membranes/1/vertlist"])
3×980 Matrix{Float64}:
@@ -1146,7 +1146,7 @@ 

Example snapshot

🔢 id -
+
collect(group["membranes/1/id"])
980-element Vector{Int64}:
@@ -1184,7 +1184,7 @@ 

Example snapshot

optional 🔢 copynumbers -
+
collect(group["membranes/1/copynumbers"])
3×980 Matrix{Int64}:
diff --git a/julia-docs/dev/search.json b/julia-docs/dev/search.json
index e07174e..8c80ca3 100644
--- a/julia-docs/dev/search.json
+++ b/julia-docs/dev/search.json
@@ -1416,7 +1416,7 @@
     "href": "tutorials/2rdme.html",
     "title": "2. Rock Paper Scissors Stochastic Reaction Diffusion",
     "section": "",
-    "text": "Inspired by:\nhttps://www.youtube.com/watch?v=TORwMc2AaRE&t=0s\n\n\nOpen a julia REPL or jupyter notebook using the medyan-tutorial environment you created in tutorial 1.\nLoad MEDYAN with MEDYANVis for visualization\n\nusing MEDYAN\nusing MEDYANVis\nusing CairoMakie\nusing Random\nusing SmallZarrGroups\nRandom.seed!(1234);\n\n\n\n\nThe first step is declaring the names of agents in the system.\nThis system will contain three diffusing species.\n\nagent_names = MEDYAN.AgentNames(;\n    diffusingspeciesnames=[\n        :R, # Rock\n        :P, # Paper\n        :S, # Scissors\n    ],\n)\n\nMEDYAN.AgentNames([:R, :P, :S], Symbol[], Symbol[], Symbol[], Tuple{Symbol, Vector{Symbol}}[], Symbol[], Symbol[], Symbol[])\n\n\n\n\n\nAfter the agent names are declared, the system can be defined.\nThis is done by constructing a MEDYAN.SysDef object from the agent_names and then mutating it to add parameters, reactions, and callbacks.\n\ns = MEDYAN.SysDef(agent_names)\n\nMEDYAN.SysDef\n Diffusing species:\n  R: 0.0 nm²/s\n  P: 0.0 nm²/s\n  S: 0.0 nm²/s\n\n\nAdd a diffusion coefficient of 1E6 nm²/s to all species. All units are based on nm, s, pN\nadd_diffusion_coeff!\n\nD = 1E6\nadd_diffusion_coeff!(s, :R, D) # nm²/s\nadd_diffusion_coeff!(s, :P, D) # nm²/s\nadd_diffusion_coeff!(s, :S, D) # nm²/s\n\nMEDYAN.SysDef\n Diffusing species:\n  R: 1.0e6 nm²/s\n  P: 1.0e6 nm²/s\n  S: 1.0e6 nm²/s\n\n\nAdd reactions, paper “beats” rock, scissors “beats” paper, rock “beats” scissors. In this simulation “beats” means convert to self type.\nIn this case because the reaction is between two diffusing species, it has units of nm³/s. You can think of this as the volume where if exactly one of each reactant existed the rate would be 1 per second.\naddreaction!\n\nrate = 50.0*(500.0^3) # nm³/s\naddreaction!(s,\n    \"diffusing.P + diffusing.R --> 2diffusing.P\",\n    rate,\n    1,\n)\naddreaction!(s,\n    \"diffusing.S + diffusing.P --> 2diffusing.S\",\n    rate,\n    1,\n)\naddreaction!(s,\n    \"diffusing.R + diffusing.S --> 2diffusing.R\",\n    rate,\n    1,\n)\n\nMEDYAN.SysDef\n Diffusing species:\n  R: 1.0e6 nm²/s\n  P: 1.0e6 nm²/s\n  S: 1.0e6 nm²/s\n Compartment reactions without callbacks:\n  \"diffusing.P + diffusing.R --> 2diffusing.P\" 6.25e9 nm³/s\n  \"diffusing.S + diffusing.P --> 2diffusing.S\" 6.25e9 nm³/s\n  \"diffusing.R + diffusing.S --> 2diffusing.R\" 6.25e9 nm³/s\n\n\n\n\n\nAll simulations run in a grid.\nThis is a box that contains the simulation.\nThe grid is composed of chemistry voxels, small cubes that can have different counts of the various diffusing species.\nCreate a 50 by 50 by 1 grid of 500 nm side length voxels.\n\nL = 50\ngrid = CubicGrid((L,L,1),500.0)\n\nCubicGrid([50, 50, 1], 500.0)\n\n\n\n\n\nThe Context is the object the handles the state of a running simulation.\nCreate a Context using s and grid\n\nc = MEDYAN.Context(s, grid)\n\nMEDYAN.Context at time 0.0s in CubicGrid([50, 50, 1], 500.0)\n\n\n\n\n\nThe context starts empty.\nDistribute 2000 of each species randomly to the chem voxels by mutating the context.\nadddiffusingcount_rand!\n\nadddiffusingcount_rand!(c, s.diffusing.R, 2000)\nadddiffusingcount_rand!(c, s.diffusing.P, 2000)\nadddiffusingcount_rand!(c, s.diffusing.S, 2000)\n\n\n\n\nRun chemistry for 1.0s and visualize the results.\n\nvis = Visualizer()\nsetvisible!(vis[\"/Grid\"], false)\nsetvisible!(vis[\"/Axes\"], false)\nsetvisible!(vis[\"/Background\"], false)\n\nIf you open the visualizer in a browser with open(vis) and run the following you should get an animated version of below.\n\nfor i in 1:100\n    run_chemistry!(c, 0.01)\n    MEDYANVis.drawdiffusing!(vis[\"diffusing\"], c.grid, c.chemistryengine, s; size = 0.8)\n    sleep(0.02)\nend\n\n\n\n    \n    \n    \n    \n\n\n\n\n\nNext we will see how to plot quantities from the simulation.\nIf you want to analyze a trajectory in detail, or load a system state, one method is to use snapshots. For details see snapshot group reference\nMEDYAN.load_snapshot! can be used to reload snapshots, this is very useful for restarting simulations, or changing the simulation state in a different programming language, but not needed in this tutorial.\nSmallZarrGroups.jl can be used to save/load snapshot groups to/from disk, in zip files, or in directories.\nRun chemistry for another 1.0s and store a snapshot every 0.01s in a vector.\n\nusing SmallZarrGroups\nsnapshots = ZGroup[]\nfor i in 1:100\n    run_chemistry!(c, 0.01)\n    push!(snapshots, MEDYAN.snapshot(c))\nend\n\nNow that the simulation is done the results can be analyzed. For longer simulations, these snapshots should be saved to disk with for example:\nSmallZarrGroups.save_dir(\"snapshot$i.zarr.zip\",MEDYAN.snapshot(c))\nto avoid needed to rerun the simulation and to avoid using too much RAM.\n\ntotal_rocks = Int[]\ntotal_papers = Int[]\ntotal_scissors = Int[]\ntimes = Float64[]\nfor group in snapshots\n    totals = sum(collect(group[\"diffusingcounts\"]);dims=2)\n    push!(times, attrs(group)[\"time (s)\"])\n    push!(total_rocks, totals[s.diffusing.R])\n    push!(total_papers, totals[s.diffusing.P])\n    push!(total_scissors, totals[s.diffusing.S])\nend\n\n\nfigure, axis, lineplot = lines(times, total_rocks; label=\"rock\")\nlines!(times, total_papers; label=\"paper\")\nlines!(times, total_scissors; label=\"scissors\")\nlines!(\n    times,\n    total_scissors.+total_papers.+total_rocks;\n    label=\"combined\")\naxislegend()\ncurrent_figure()\n\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie ~/.julia/packages/Makie/We6MY/src/scenes.jl:227\n\n\n\n\n\n\n\n\n\nIf you are using VSCode or Jupyter the figure will be displayed.\nIf you are using the REPL, save the figure as a PDF to view it.\nsave(\"tutorial2-plot.pdf\", current_figure())",
+    "text": "Inspired by:\nhttps://www.youtube.com/watch?v=TORwMc2AaRE&t=0s\n\n\nOpen a julia REPL or jupyter notebook using the medyan-tutorial environment you created in tutorial 1.\nLoad MEDYAN with MEDYANVis for visualization\n\nusing MEDYAN\nusing MEDYANVis\nusing CairoMakie\nusing Random\nusing SmallZarrGroups\nRandom.seed!(1234);\n\n\n\n\nThe first step is declaring the names of agents in the system.\nThis system will contain three diffusing species.\n\nagent_names = MEDYAN.AgentNames(;\n    diffusingspeciesnames=[\n        :R, # Rock\n        :P, # Paper\n        :S, # Scissors\n    ],\n)\n\nMEDYAN.AgentNames([:R, :P, :S], Symbol[], Symbol[], Symbol[], Tuple{Symbol, Vector{Symbol}}[], Symbol[], Symbol[], Symbol[])\n\n\n\n\n\nAfter the agent names are declared, the system can be defined.\nThis is done by constructing a MEDYAN.SysDef object from the agent_names and then mutating it to add parameters, reactions, and callbacks.\n\ns = MEDYAN.SysDef(agent_names)\n\nMEDYAN.SysDef\n Diffusing species:\n  R: 0.0 nm²/s\n  P: 0.0 nm²/s\n  S: 0.0 nm²/s\n\n\nAdd a diffusion coefficient of 1E6 nm²/s to all species. All units are based on nm, s, pN\nadd_diffusion_coeff!\n\nD = 1E6\nadd_diffusion_coeff!(s, :R, D) # nm²/s\nadd_diffusion_coeff!(s, :P, D) # nm²/s\nadd_diffusion_coeff!(s, :S, D) # nm²/s\n\nMEDYAN.SysDef\n Diffusing species:\n  R: 1.0e6 nm²/s\n  P: 1.0e6 nm²/s\n  S: 1.0e6 nm²/s\n\n\nAdd reactions, paper “beats” rock, scissors “beats” paper, rock “beats” scissors. In this simulation “beats” means convert to self type.\nIn this case because the reaction is between two diffusing species, it has units of nm³/s. You can think of this as the volume where if exactly one of each reactant existed the rate would be 1 per second.\naddreaction!\n\nrate = 50.0*(500.0^3) # nm³/s\naddreaction!(s,\n    \"diffusing.P + diffusing.R --> 2diffusing.P\",\n    rate,\n    1,\n)\naddreaction!(s,\n    \"diffusing.S + diffusing.P --> 2diffusing.S\",\n    rate,\n    1,\n)\naddreaction!(s,\n    \"diffusing.R + diffusing.S --> 2diffusing.R\",\n    rate,\n    1,\n)\n\nMEDYAN.SysDef\n Diffusing species:\n  R: 1.0e6 nm²/s\n  P: 1.0e6 nm²/s\n  S: 1.0e6 nm²/s\n Compartment reactions without callbacks:\n  \"diffusing.P + diffusing.R --> 2diffusing.P\" 6.25e9 nm³/s\n  \"diffusing.S + diffusing.P --> 2diffusing.S\" 6.25e9 nm³/s\n  \"diffusing.R + diffusing.S --> 2diffusing.R\" 6.25e9 nm³/s\n\n\n\n\n\nAll simulations run in a grid.\nThis is a box that contains the simulation.\nThe grid is composed of chemistry voxels, small cubes that can have different counts of the various diffusing species.\nCreate a 50 by 50 by 1 grid of 500 nm side length voxels.\n\nL = 50\ngrid = CubicGrid((L,L,1),500.0)\n\nCubicGrid([50, 50, 1], 500.0)\n\n\n\n\n\nThe Context is the object the handles the state of a running simulation.\nCreate a Context using s and grid\n\nc = MEDYAN.Context(s, grid)\n\nMEDYAN.Context at time 0.0s in CubicGrid([50, 50, 1], 500.0)\n\n\n\n\n\nThe context starts empty.\nDistribute 2000 of each species randomly to the chem voxels by mutating the context.\nadddiffusingcount_rand!\n\nadddiffusingcount_rand!(c, s.diffusing.R, 2000)\nadddiffusingcount_rand!(c, s.diffusing.P, 2000)\nadddiffusingcount_rand!(c, s.diffusing.S, 2000)\n\n\n\n\nRun chemistry for 1.0s and visualize the results.\n\nvis = Visualizer()\nsetvisible!(vis[\"/Grid\"], false)\nsetvisible!(vis[\"/Axes\"], false)\nsetvisible!(vis[\"/Background\"], false)\n\nIf you open the visualizer in a browser with open(vis) and run the following you should get an animated version of below.\n\nfor i in 1:100\n    run_chemistry!(c, 0.01)\n    MEDYANVis.drawdiffusing!(vis[\"diffusing\"], c.grid, c.chemistryengine, s; size = 0.8)\n    sleep(0.02)\nend\n\n\n\n    \n    \n    \n    \n\n\n\n\n\nNext we will see how to plot quantities from the simulation.\nIf you want to analyze a trajectory in detail, or load a system state, one method is to use snapshots. For details see snapshot group reference\nMEDYAN.load_snapshot! can be used to reload snapshots, this is very useful for restarting simulations, or changing the simulation state in a different programming language, but not needed in this tutorial.\nSmallZarrGroups.jl can be used to save/load snapshot groups to/from disk, in zip files, or in directories.\nRun chemistry for another 1.0s and store a snapshot every 0.01s in a vector.\n\nusing SmallZarrGroups\nsnapshots = ZGroup[]\nfor i in 1:100\n    run_chemistry!(c, 0.01)\n    push!(snapshots, MEDYAN.snapshot(c))\nend\n\nNow that the simulation is done the results can be analyzed. For longer simulations, these snapshots should be saved to disk with for example:\nSmallZarrGroups.save_dir(\"snapshot$i.zarr.zip\",MEDYAN.snapshot(c))\nto avoid needed to rerun the simulation and to avoid using too much RAM.\n\ntotal_rocks = Int[]\ntotal_papers = Int[]\ntotal_scissors = Int[]\ntimes = Float64[]\nfor group in snapshots\n    totals = sum(collect(group[\"diffusingcounts\"]);dims=2)\n    push!(times, attrs(group)[\"time (s)\"])\n    push!(total_rocks, totals[s.diffusing.R])\n    push!(total_papers, totals[s.diffusing.P])\n    push!(total_scissors, totals[s.diffusing.S])\nend\n\n\nfigure, axis, lineplot = lines(times, total_rocks; label=\"rock\")\nlines!(times, total_papers; label=\"paper\")\nlines!(times, total_scissors; label=\"scissors\")\nlines!(\n    times,\n    total_scissors.+total_papers.+total_rocks;\n    label=\"combined\")\naxislegend()\ncurrent_figure()\n\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie ~/.julia/packages/Makie/qMluh/src/scenes.jl:227\n\n\n\n\n\n\n\n\n\nIf you are using VSCode or Jupyter the figure will be displayed.\nIf you are using the REPL, save the figure as a PDF to view it.\nsave(\"tutorial2-plot.pdf\", current_figure())",
     "crumbs": [
       "Tutorials",
       "2. Rock Paper Scissors Stochastic Reaction Diffusion"
@@ -1504,7 +1504,7 @@
     "href": "tutorials/2rdme.html#snapshots-and-plotting",
     "title": "2. Rock Paper Scissors Stochastic Reaction Diffusion",
     "section": "",
-    "text": "Next we will see how to plot quantities from the simulation.\nIf you want to analyze a trajectory in detail, or load a system state, one method is to use snapshots. For details see snapshot group reference\nMEDYAN.load_snapshot! can be used to reload snapshots, this is very useful for restarting simulations, or changing the simulation state in a different programming language, but not needed in this tutorial.\nSmallZarrGroups.jl can be used to save/load snapshot groups to/from disk, in zip files, or in directories.\nRun chemistry for another 1.0s and store a snapshot every 0.01s in a vector.\n\nusing SmallZarrGroups\nsnapshots = ZGroup[]\nfor i in 1:100\n    run_chemistry!(c, 0.01)\n    push!(snapshots, MEDYAN.snapshot(c))\nend\n\nNow that the simulation is done the results can be analyzed. For longer simulations, these snapshots should be saved to disk with for example:\nSmallZarrGroups.save_dir(\"snapshot$i.zarr.zip\",MEDYAN.snapshot(c))\nto avoid needed to rerun the simulation and to avoid using too much RAM.\n\ntotal_rocks = Int[]\ntotal_papers = Int[]\ntotal_scissors = Int[]\ntimes = Float64[]\nfor group in snapshots\n    totals = sum(collect(group[\"diffusingcounts\"]);dims=2)\n    push!(times, attrs(group)[\"time (s)\"])\n    push!(total_rocks, totals[s.diffusing.R])\n    push!(total_papers, totals[s.diffusing.P])\n    push!(total_scissors, totals[s.diffusing.S])\nend\n\n\nfigure, axis, lineplot = lines(times, total_rocks; label=\"rock\")\nlines!(times, total_papers; label=\"paper\")\nlines!(times, total_scissors; label=\"scissors\")\nlines!(\n    times,\n    total_scissors.+total_papers.+total_rocks;\n    label=\"combined\")\naxislegend()\ncurrent_figure()\n\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie ~/.julia/packages/Makie/We6MY/src/scenes.jl:227\n\n\n\n\n\n\n\n\n\nIf you are using VSCode or Jupyter the figure will be displayed.\nIf you are using the REPL, save the figure as a PDF to view it.\nsave(\"tutorial2-plot.pdf\", current_figure())",
+    "text": "Next we will see how to plot quantities from the simulation.\nIf you want to analyze a trajectory in detail, or load a system state, one method is to use snapshots. For details see snapshot group reference\nMEDYAN.load_snapshot! can be used to reload snapshots, this is very useful for restarting simulations, or changing the simulation state in a different programming language, but not needed in this tutorial.\nSmallZarrGroups.jl can be used to save/load snapshot groups to/from disk, in zip files, or in directories.\nRun chemistry for another 1.0s and store a snapshot every 0.01s in a vector.\n\nusing SmallZarrGroups\nsnapshots = ZGroup[]\nfor i in 1:100\n    run_chemistry!(c, 0.01)\n    push!(snapshots, MEDYAN.snapshot(c))\nend\n\nNow that the simulation is done the results can be analyzed. For longer simulations, these snapshots should be saved to disk with for example:\nSmallZarrGroups.save_dir(\"snapshot$i.zarr.zip\",MEDYAN.snapshot(c))\nto avoid needed to rerun the simulation and to avoid using too much RAM.\n\ntotal_rocks = Int[]\ntotal_papers = Int[]\ntotal_scissors = Int[]\ntimes = Float64[]\nfor group in snapshots\n    totals = sum(collect(group[\"diffusingcounts\"]);dims=2)\n    push!(times, attrs(group)[\"time (s)\"])\n    push!(total_rocks, totals[s.diffusing.R])\n    push!(total_papers, totals[s.diffusing.P])\n    push!(total_scissors, totals[s.diffusing.S])\nend\n\n\nfigure, axis, lineplot = lines(times, total_rocks; label=\"rock\")\nlines!(times, total_papers; label=\"paper\")\nlines!(times, total_scissors; label=\"scissors\")\nlines!(\n    times,\n    total_scissors.+total_papers.+total_rocks;\n    label=\"combined\")\naxislegend()\ncurrent_figure()\n\n┌ Warning: Found `resolution` in the theme when creating a `Scene`. The `resolution` keyword for `Scene`s and `Figure`s has been deprecated. Use `Figure(; size = ...` or `Scene(; size = ...)` instead, which better reflects that this is a unitless size and not a pixel resolution. The key could also come from `set_theme!` calls or related theming functions.\n└ @ Makie ~/.julia/packages/Makie/qMluh/src/scenes.jl:227\n\n\n\n\n\n\n\n\n\nIf you are using VSCode or Jupyter the figure will be displayed.\nIf you are using the REPL, save the figure as a PDF to view it.\nsave(\"tutorial2-plot.pdf\", current_figure())",
     "crumbs": [
       "Tutorials",
       "2. Rock Paper Scissors Stochastic Reaction Diffusion"
diff --git a/julia-docs/dev/sitemap.xml b/julia-docs/dev/sitemap.xml
index 758d3c7..99a6034 100644
--- a/julia-docs/dev/sitemap.xml
+++ b/julia-docs/dev/sitemap.xml
@@ -2,530 +2,530 @@
 
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_chemboundary--0aa6e4e95c60f9f7.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_adddiffusingcount--2264be341b81a600.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_removelink_2mon--e25a3fd69f791cd0.html
-    2024-06-13T00:35:09.076Z
+    2024-06-25T21:34:18.507Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_cylinder-33a45da15f9672d3.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.vertexstate-450b7005d2acebe8.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_link_2mon_site--b9548c4a2d23aac9.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monstate-9845e7e08620ea8a.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_plusvector-b7271c7721602813.html
-    2024-06-13T00:35:09.100Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.load_snapshot--e534be293ce74465.html
-    2024-06-13T00:35:09.148Z
+    2024-06-25T21:34:18.555Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_mechboundary--b5e26b6b690256aa.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.519Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_plane-2caa9b52b3b3f0cc.html
-    2024-06-13T00:35:09.148Z
+    2024-06-25T21:34:18.555Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_depolymerize--a5f262191e484dd4.html
-    2024-06-13T00:35:09.100Z
+    2024-06-25T21:34:18.535Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_minimized-5b17adaf7d8a4f62.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.defer_chem_caching--9538a1c449f3da93.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_box-060d4c56df40146a.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_diffusion_coeff--a77d1ef833cfdedd.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_setmonomerstate--ed756af0de4db0ca.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitemonomerstatematch-c495443de74016ce.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.membranesitediffusing-66734014eb12ddb1.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_removefilament--f36888837f14bad7.html
-    2024-06-13T00:35:09.076Z
+    2024-06-25T21:34:18.511Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.grididat-8671e01413346deb.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_node_mon_ids-b1d3d66a81296343.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.agentnames-948e6a24b4fb0cb5.html
-    2024-06-13T00:35:09.120Z
+    2024-06-25T21:34:18.555Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_polymerize--7a5e88ac36e4ccbf.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_setlink_2mon_state--82213403237b28e5.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.empty--418304748816268d.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.decimated2monsiteminanglerange-fc006e574376cfff.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.adapt_membranes--1d26092defd0f4fa.html
-    2024-06-13T00:35:09.100Z
+    2024-06-25T21:34:18.535Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_mon_states-3db9714621903b78.html
-    2024-06-13T00:35:09.084Z
+    2024-06-25T21:34:18.515Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary-f1e7be79002a27f8.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.newfilament_rand--432ec27232aad41e.html
-    2024-06-13T00:35:09.080Z
+    2024-06-25T21:34:18.511Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.length-7ea31a421de7d258.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/mon_link_2mon_sites.html
-    2024-06-13T00:35:07.656Z
+    2024-06-25T21:34:17.011Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/decimated_2mon_sites.html
-    2024-06-13T00:35:07.656Z
+    2024-06-25T21:34:17.011Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/link_2mon_sites.html
-    2024-06-13T00:35:07.660Z
+    2024-06-25T21:34:17.015Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/util/math/cuboidslicing.html
-    2024-06-13T00:35:07.656Z
+    2024-06-25T21:34:17.011Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/trajectory-io/snapshot.html
-    2024-06-13T00:35:09.072Z
+    2024-06-25T21:34:18.503Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/sys_def.html
-    2024-06-13T00:35:07.652Z
+    2024-06-25T21:34:16.995Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/sever_filament.html
-    2024-06-13T00:35:07.656Z
+    2024-06-25T21:34:17.011Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/filamentsites.html
-    2024-06-13T00:35:07.660Z
+    2024-06-25T21:34:17.015Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/membrane/membranesites.html
-    2024-06-13T00:35:07.660Z
+    2024-06-25T21:34:17.015Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_3states-6c16efb303a60058.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.cadherinparams-b70febdaf4c8fba5.html
-    2024-06-13T00:35:09.164Z
+    2024-06-25T21:34:18.579Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_membranesitereaction--59d1fe245302e071.html
-    2024-06-13T00:35:09.100Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_num_unmin_ends-813ffc641f9ac9da.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.compute_all_membrane_geometry-_system-05b4d2a32e31560c.html
-    2024-06-13T00:35:09.160Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.haskey-e7d3f961991e2663.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.cubicgrid-fe4b7cc2dceb0431.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilamentendsite--95612d72d1fda05f.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.iterate-5228367cd62c0bf2.html
-    2024-06-13T00:35:09.076Z
+    2024-06-25T21:34:18.507Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.refresh_chem_cache--f90ebca1f896ad2c.html
-    2024-06-13T00:35:09.164Z
+    2024-06-25T21:34:18.579Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_link_2mon--b801c872b8ff168a.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.519Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.randompoint-83e939bdee528294.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.vertexname-2d87a6a86cabc4f5.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addmembranediffusingcount_rand--7b719dca63a36b1b.html
-    2024-06-13T00:35:09.100Z
+    2024-06-25T21:34:18.535Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filamentsitegeneral-0d87ce44fed17b2c.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitecount-ab4fcc1eb50c2313.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilamentend_reaction--83ec3db37b4e2130.html
-    2024-06-13T00:35:09.168Z
+    2024-06-25T21:34:18.583Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitemotorcatch-0185d4c95b91e30b.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_newfilament--7a45f2860949bee3.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.membranespeciesparams-548fecb643fc2599.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addpossiblecadherinsite--ae8586daa0b5454a.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/reference/sitesinfo.html
-    2023-10-13T14:24:55.339Z
+    2023-10-16T15:46:54.279Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/reference/index.html
-    2023-10-13T14:24:55.339Z
+    2023-10-16T15:46:54.279Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/index.html
-    2023-10-13T14:24:55.339Z
+    2023-10-16T15:46:54.279Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/tutorials/3treadmill.html
-    2024-01-30T01:58:12.660Z
+    2024-01-30T01:58:12.640Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/tutorials/1install.html
-    2023-10-19T20:15:13.966Z
+    2023-10-19T20:15:13.958Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/explanations.html
-    2023-10-13T14:24:55.339Z
+    2023-10-16T15:46:54.279Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/tutorials/2rdme.html
-    2024-01-30T01:58:12.660Z
+    2024-01-30T01:58:12.640Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings.html
-    2023-10-13T14:24:55.339Z
+    2023-10-16T15:46:54.279Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/reference/fileformats.html
-    2023-11-16T15:43:48.563Z
+    2023-11-16T15:43:49.355Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_time--a6dd8f73f68a3759.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.567Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.copy-4ca5eb8401ab10b2.html
-    2024-06-13T00:35:09.076Z
+    2024-06-25T21:34:18.507Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.setindex--725f722fff4cfa6d.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilamentsite--eb6bfd871a21b6f4.html
-    2024-06-13T00:35:09.148Z
+    2024-06-25T21:34:18.555Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.---a21e771ed8ea7d6f.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addfilament_reaction--63195cbff2ab4237.html
-    2024-06-13T00:35:09.160Z
+    2024-06-25T21:34:18.579Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.centerof-e902b9bb7b2a6caf.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addreactioncallback--9c9d46adeded2d88.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.sever_filament--a0475617dc0fbf93.html
-    2024-06-13T00:35:09.084Z
+    2024-06-25T21:34:18.515Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.num_filtypes-b9943bbf7a9c7781.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsiteslipbond-2cec57cbea12864e.html
-    2024-06-13T00:35:09.084Z
+    2024-06-25T21:34:18.515Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_position-83983d8916347411.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monparams-d960d08f0808df0c.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsiteone-9886bc1476194731.html
-    2024-06-13T00:35:09.080Z
+    2024-06-25T21:34:18.515Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.run_chemistry--dda22fac5c555b9e.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.adddiffusingcount_rand--9d3ddfabbceeef92.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_decimated_2mon_site--ad56e7ee56067940.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.519Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.set_enable_cylinder_volume_exclusion--38c20ab68ab8bf1a.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addunbindinglink_2mon_site--76d17dbe625169cd.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_exists-898c415a5eddc619.html
-    2024-06-13T00:35:09.084Z
+    2024-06-25T21:34:18.519Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/context.html
-    2024-06-13T00:35:09.064Z
+    2024-06-25T21:34:18.495Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/membrane/meshadapt.html
-    2024-06-13T00:35:07.652Z
+    2024-06-25T21:34:16.999Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/auxprocs.html
-    2024-06-13T00:35:09.068Z
+    2024-06-25T21:34:18.499Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/filamentendsites.html
-    2024-06-13T00:35:09.072Z
+    2024-06-25T21:34:18.503Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/grids.html
-    2024-06-13T00:35:07.652Z
+    2024-06-25T21:34:16.999Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/util/stableindex.html
-    2024-06-13T00:35:09.068Z
+    2024-06-25T21:34:18.499Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/cadherins/possiblecadherinsite.html
-    2024-06-13T00:35:07.664Z
+    2024-06-25T21:34:17.019Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/boundary.html
-    2024-06-13T00:35:07.656Z
+    2024-06-25T21:34:16.999Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/src/minimize_energy.html
-    2024-06-13T00:35:09.072Z
+    2024-06-25T21:34:18.503Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link_2mon_state-6d59dcd98ed7e303.html
-    2024-06-13T00:35:09.076Z
+    2024-06-25T21:34:18.507Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link2monsitemotorstall-deb10f7964d5bef9.html
-    2024-06-13T00:35:09.160Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.add_filament_params--74c7d0081157ca31.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.567Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filter_grididat-58a94154d21e32b0.html
-    2024-06-13T00:35:09.120Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.push--8715d52e2302aaeb.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addmembranesite--892875b2c079002d.html
-    2024-06-13T00:35:09.080Z
+    2024-06-25T21:34:18.511Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.decimated2monsiterange-8afd8f3188bbcd4a.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.539Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addcadherin--3c757785fa097c75.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addreaction--da9bd35e7d1df7c3.html
-    2024-06-13T00:35:09.104Z
+    2024-06-25T21:34:18.535Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.link_2mon_endnames-5d0bca4b8e2e3509.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.context-736368ed32b08894.html
-    2024-06-13T00:35:09.108Z
+    2024-06-25T21:34:18.543Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filtype_fil_ids-d333c38b9f9b3584.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.cadherinstate-0cd5353e58a90ec2.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.delete--56ef520341df3c06.html
-    2024-06-13T00:35:09.084Z
+    2024-06-25T21:34:18.515Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.boundary_capsule-1700142f310bd9db.html
-    2024-06-13T00:35:09.148Z
+    2024-06-25T21:34:18.555Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.filamentendsitegeneral-7a32ac96fb4364ea.html
-    2024-06-13T00:35:09.156Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/base.getindex-f593dde852851bc8.html
-    2024-06-13T00:35:09.088Z
+    2024-06-25T21:34:18.523Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.vertex_state-aa3350c08b68b63a.html
-    2024-06-13T00:35:09.100Z
+    2024-06-25T21:34:18.535Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.resolve_all_filament_mesh_crossing--a8be83a7d2ad65c7.html
-    2024-06-13T00:35:09.164Z
+    2024-06-25T21:34:18.583Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.mon_position_plusvector-927d0affbbdfef6f.html
-    2024-06-13T00:35:09.076Z
+    2024-06-25T21:34:18.511Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/nlsolversbase.value---d4fdd3b317023c0e.html
-    2024-06-13T00:35:09.116Z
+    2024-06-25T21:34:18.551Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.is_chem_cache_valid-8336a8adc58a252f.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.sysdef-c0c4da7a2b3d4fef.html
-    2024-06-13T00:35:09.164Z
+    2024-06-25T21:34:18.579Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.monlink2monsiteone-77707f45e082c27e.html
-    2024-06-13T00:35:09.160Z
+    2024-06-25T21:34:18.579Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.addcadherinsite--9e21ac42968d0196.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.monomername-bb517706cb60c4f5.html
-    2024-06-13T00:35:09.092Z
+    2024-06-25T21:34:18.527Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.num_vertexwithstate-3cf6fcd964588d37.html
-    2024-06-13T00:35:09.112Z
+    2024-06-25T21:34:18.547Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_newlink_2mon--e4f84fe5cfa9a727.html
-    2024-06-13T00:35:09.084Z
+    2024-06-25T21:34:18.519Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.minimize_energy--84c4aeab5457d3ee.html
-    2024-06-13T00:35:09.160Z
+    2024-06-25T21:34:18.575Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.fil_node_positions-618a66637eb50781.html
-    2024-06-13T00:35:09.096Z
+    2024-06-25T21:34:18.531Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.chem_addfixedcount--0286edfebf8ea5e6.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.571Z
   
   
     https://medyan-dev.github.io/julia-docs/dev/docstrings/medyan.newmembrane--a714b4a1c87062be.html
-    2024-06-13T00:35:09.152Z
+    2024-06-25T21:34:18.567Z
   
 
diff --git a/julia-docs/dev/tutorials/1install.html b/julia-docs/dev/tutorials/1install.html
index 0762aae..cde7e79 100644
--- a/julia-docs/dev/tutorials/1install.html
+++ b/julia-docs/dev/tutorials/1install.html
@@ -247,7 +247,7 @@ 

1. Installing MEDYAN.jl

Install julia

MEDYAN.jl is a julia package so first install the julia programming language.

This tutorial was generated using:

-
+
Julia Version 1.10.4
 Commit 48d4fd48430 (2024-06-04 10:41 UTC)
diff --git a/julia-docs/dev/tutorials/2rdme.html b/julia-docs/dev/tutorials/2rdme.html
index 7a0d99f..e7eb0c2 100644
--- a/julia-docs/dev/tutorials/2rdme.html
+++ b/julia-docs/dev/tutorials/2rdme.html
@@ -276,7 +276,7 @@ 

2. Rock Paper Scissors Stochastic Reaction Diffusion

Setup

Open a julia REPL or jupyter notebook using the medyan-tutorial environment you created in tutorial 1.

Load MEDYAN with MEDYANVis for visualization

-
+
using MEDYAN
 using MEDYANVis
 using CairoMakie
@@ -289,7 +289,7 @@ 

Setup

Declaring agent names

The first step is declaring the names of agents in the system.

This system will contain three diffusing species.

-
+
agent_names = MEDYAN.AgentNames(;
     diffusingspeciesnames=[
         :R, # Rock
@@ -306,7 +306,7 @@ 

Declaring agent name

Defining System

After the agent names are declared, the system can be defined.

This is done by constructing a MEDYAN.SysDef object from the agent_names and then mutating it to add parameters, reactions, and callbacks.

-
+
s = MEDYAN.SysDef(agent_names)
MEDYAN.SysDef
@@ -318,7 +318,7 @@ 

Defining System

Add a diffusion coefficient of 1E6 nm²/s to all species. All units are based on nm, s, pN

add_diffusion_coeff!

-
+
D = 1E6
 add_diffusion_coeff!(s, :R, D) # nm²/s
 add_diffusion_coeff!(s, :P, D) # nm²/s
@@ -334,7 +334,7 @@ 

Defining System

Add reactions, paper “beats” rock, scissors “beats” paper, rock “beats” scissors. In this simulation “beats” means convert to self type.

In this case because the reaction is between two diffusing species, it has units of nm³/s. You can think of this as the volume where if exactly one of each reactant existed the rate would be 1 per second.

addreaction!

-
+
rate = 50.0*(500.0^3) # nm³/s
 addreaction!(s,
     "diffusing.P + diffusing.R --> 2diffusing.P",
@@ -370,7 +370,7 @@ 

Creating a grid

This is a box that contains the simulation.

The grid is composed of chemistry voxels, small cubes that can have different counts of the various diffusing species.

Create a 50 by 50 by 1 grid of 500 nm side length voxels.

-
+
L = 50
 grid = CubicGrid((L,L,1),500.0)
@@ -382,7 +382,7 @@

Creating a grid

Creating a Context

The Context is the object the handles the state of a running simulation.

Create a Context using s and grid

-
+
c = MEDYAN.Context(s, grid)
MEDYAN.Context at time 0.0s in CubicGrid([50, 50, 1], 500.0)
@@ -394,7 +394,7 @@

Add agents to th

The context starts empty.

Distribute 2000 of each species randomly to the chem voxels by mutating the context.

adddiffusingcount_rand!

-
+
adddiffusingcount_rand!(c, s.diffusing.R, 2000)
 adddiffusingcount_rand!(c, s.diffusing.P, 2000)
 adddiffusingcount_rand!(c, s.diffusing.S, 2000)
@@ -403,24 +403,24 @@

Add agents to th

Run chemistry

Run chemistry for 1.0s and visualize the results.

-
+
vis = Visualizer()
 setvisible!(vis["/Grid"], false)
 setvisible!(vis["/Axes"], false)
 setvisible!(vis["/Background"], false)

If you open the visualizer in a browser with open(vis) and run the following you should get an animated version of below.

-
+
for i in 1:100
     run_chemistry!(c, 0.01)
     MEDYANVis.drawdiffusing!(vis["diffusing"], c.grid, c.chemistryengine, s; size = 0.8)
     sleep(0.02)
 end
-
+
-