yRZQ)_i`d?}ohbw{x!KOVp^i7baH(QU4-igE} z&RCaMSxbRxG$fTP)BxAExq5ECT9<7D#uzUf?OmHl$l^010 zEg1gPg(Con_L49m;N{LU?0Df-_vOKtzF1y9c{NXJO2CSqhZR2q%dlGZzp21W59j+d z;$Kh)R^su!Za{?scF9$bDv@S7(1dV>P5!nIYdFh0UR_y(*|Qbh ok zp^YwA$1M&qw&x(oXj?3U-;|%+EaWBXnVH~4y^ODoSpx1MOx1PRlAG5=X?F_uXEzUy zvXN5u$W49dHUnNv{aog3zqIBhJZWricl=N@{VoCpEWaT1ho=G 7>(htovop_WZH9U5u2{mv8Y 0Fj<$OH;` z1>d^Q1+dNTIQ)5g)jL&HMKa&^VbBuqh`R*lXczcT?DlxJZNSLjb#?f%q?;@aPN+fw zr5oy~i|+u6aqdbS2{uxJ5QU(7DsR@ZGRHIBl)z&S&S=nbn_VJtd4#I5tvWjFp+B$6 z%V9l2%#SW!-ul6-pdnc*l@M2PD(EMY1SR&QJ3MX<4fzI(*M40~`JhT >=j>E~J4048sY?n1!*YneOpg)a|;-Z~-8dY|&6G#@MUp7<`-`YSQn z8?#zh3hAQhPR~U+fVZs^_q8zjfzWP0wo?)FWa=YYr_KY uVDVPM{;$v^J#(3SL;Ml&Ds~H$|Ac{SbS)1?FEGA#+2SU z+J@l~FPtavx}_<*f%EON rSVUU+{a&ncQ{#YBX?m17!eUysgKx- zYu?;C6co+%E~0hd?`QH;=Ll%Nx@fen2hcV2{1(bbqtub&I - zPB^yI`b?*c1DfIFWM;4{UFJJC_71VVe#@$ohMUtt#@!>l;m$!bVpK$)9&F!U`y1wf zT!*_6*pT$=s4a;Bz*_#e-Lv@TERXTa3_D6vCkLB(9*nPV?|}>>lj-7oZX1!G&$Fz) zZnEs%Y=nKk|B{>K-CY`UTATmYiN-sRsf^XG7mGL3U{w)YtmTbcr&c0(VUGy8^yZH& z!;pU?f^VbIy^2(#V0KMC2S_S0SE7@YYeRGz$OfD(fav?x+8tfh>pu J=Fi9 )~%pf7dQso&vO4IZ7U8(s_#se>W4-o_E`2qXI&z z-Qe%p3Z5 a1{ z-|9D(uRc5h2PrMn^P5gKxv4#T|7VxrW
ubyAK*+={$^*5JmllDYrwG(=V{hg zP?o3-di*=Yhi3{#380UG@K~yWieaL@2bBo~gA`bHP-)z~D< $#muHEf0wUV3LPS?B904K^c
mC&oaZygl))l*Vx9tJzuhcZeqDcY)>$=^sMVIFap3?TW(FXt@ofibfCVGJ zw(R~W2X%+<%mku4ReS|k8-H3N0WVMdUZy 6W9x*E;DC)DaZXRokCoM31 zE&{Xq%1~`7N!95-cBnA~hdj@xZdk9PDl*A0abJBofpjaciB4x@fi;})tv$t$EYq?Q zA>pSZ?>=j`d4y_-8swJ)Tj)z_(5fUy?Ma;ov%p012QsuLNkwSsBXckDx+b3UGty`1 z*FKrW!{DCHY6iY?9C=swLjOhHH!mmeRWsVSvdF;- NA0zj(k(24w}6xdQH%TsBjAaIEGc9N5Xch>xYVZT zIduo{cAEgYy!_!vBI#PXOD9&Zk0Xm41EY^XUB4-cJ^%ZC0WDuB(UFtjsjl1z8X8sO zsB=h~AdwNl2Kg*r9pQUmdQ*pK$9|ide!36Y1LXi{>0)i`Ly>og+CJn`D~kT3f3@+r z>HzM$_qd(49j=J%#R-v_J|540_He-k@;u<=ZePOyf}$FW_j|YQJV)GFGW4GR2t=H) zT&Da?&cnGTgTDhpSV#=*Vu5%2ZRJUc$XgacIbU4xgjB}-{W_;}sk=GOpYO;}AgnU- zuZ+J20S3kh^3hoBrdUE%>DxLL>JQZeY(VOAU>l+6+^QnevJ2nV6(KUKuf9&+=f!uF zX04LJ^H)ihY$+C3O0U>>oFD*_gBeT@67|e+68GJ6vg?giVs;j?^*G};sv@Sks)(}* zVD9G+w2{)fGvaA~K5)m!?z%`&_jle|^V7xMMU!E8=B9*8)|d~eN`cPO sP?nVQWB2E-a;Rvv%`_=MzKBEtk>vf0K2 z1sAw+8oT}*`>_}CuWT#4P8O`b7J~<@)8h46F_YuYr(WRp%eTTDZdh1t=}3eALCcm6 z_1xD?9EG(danU{c8($y{>s!CvH*5I3fV|cQ74(n;WN*8d6BK{$madIBH2Dm_ZRYnL z#z0*f+`$B{nz(~{*Mb}d`ZV)EOe-+^i EUk^1`PSKa20Eh)t7^ zk8)fbyt~O8I-a&^loz8XCdU=iu5Y8ofmAB(KSLVH;7@bzNPL!;_MdSZIKtFflSaD0 z(O&_4xDos6zTVEs@ixMnuZJ+n&@hxB1J(;MNe1%@5vsZ+9kURl( %-avOW%|6FdCEy>HI|fjMMUgCOo)6riMoq6qUUvy1G`(dGL0_%ZiF?L(4Q# zBi+ntxA~u~AnuIyQ!aGcgn&nC5@k>3wEjduruDQCBJf#|7mHJR=2>V-4tF;(o~Zvp zJ^54aiRF6=+QhgC((YN$3iz7V6r>5wgbYbczf44PgGr>7P!cgD7lRh;?cTpUUG;|a zNHG>PY{Yuz`%()L=_Mp{5pSIe*$CiQ+IipXJnc7qpTLAQDq|gm&zT#d?)D+sJ$q$7 z)0q;kf{OUT-w;(Jr@-aLN(KY~LWa?>MzC+huyO3+LFb|X_B7EH$c4h4vL~wid@~J; z)E%A_{n5U2!{4f_ 22mwnZV8WXi8wL=D5zpsj1(popd zdV}BO23>hreXalIx5S3uco|n?`v{SgH3AZ@@wD(|s3%8YsjPDongZ+b?algJo+0Sv z5YmK+f6oBrV7MtMNxH!rTj-wMj?9$^2xFL#)rd8wIMj*$27%M$6q_0mmQ{R5P66$) zPrvP#(PHN60t=YvZyFeu`1(4y8}I6y885(z54jv^Fpt&eC>iOD;CFZ|>bHc@O@g}= zXXP$N_MOd%2i?AMfnR>M>!?>q%Uj}H#`Nk$g!%j$KI6#Sv!L! |UZ><8OERB=BH#OLg_|Uy`tM`6ZzfRG|>O z@6=q*(tzIC_9OpO9P|esgV0$M9>(F*&e`@dW&)+Mz13!Q=V1b$XE@=)PQG3RYz-uN^T#g7S$_S+Z@wU&f&MM4%1{>F4wa+f02nr jFb3j4Yoq+``P`^L#jrEody-Ljm0GR0p_}mGn5-v*;!qXquxgZe4O4aSzf&)(7 z2?v({(*m%>SMBP}#7_w1M$nY(+)T=h$7~OYdY8xX2cqK7pSjH(pWN(Ro@bQ4;<^;v zjCs=93(#>8fUCAdIKjP^E%JR!=>R14{>=653l7e$0I-l+i~1y~+6iCHiglzH;ynSq zE;k=zX2Y}di`vP>IojUhmGK+mFiZAlNr1c(@yO6((}EA^z|ptftMM=5mtfzIo>$J^ z*VrU7tvx1&p}0jbwQ;AGu!H_Kt?J82CKy|P2e9Ufq~2Y3LU6WMsVz6Y84bK-THrU9 zdF6Tt2)(I5yLHQ-&OEJVhBbtK7&+S*INWZC>5Lxaw`6b3k%e?qP)@v6H+*kNw4y zAPmkU2);E^SA%|kYj;|n%pN*4$v68Qe$DiUih;{!&cI&iC0r{OgHznH|5pyS$thEA zrxcgxd2ccC6ZY%)CzGs~++R;2jfb!LV!`oAgs%M}SZ$O{%5 AsKi(&v@GGTgA-&{0QQEwu+rcsTVYBiiJpr9Xt0xMMD9J5b1L z-PmQ}OeBMYk}hP@uCRzCV0huPvyI2|Kz=Yc>ELK_Ma0cxBKVN}9qk5+;<)@9lIAtj z5qvFr=vnQ`*{or#*N68viHw%xZbqgNgF!(|Kg}Vi;9>Tr@*SvLW;Jw>T)>WlYc40_ z%?ZMd)BfSUNQp~G)?5{^rY7p2%|p@!wsq7$w)RnBGLZ#aI;SKb1wJA2+)vv$d-M(+ zM|JsT0_b0Ng$X mY4Y?%m+-r7t5=l#c zF?=t~ZYA5b`U)mrprfvfhEk?Bf0Nhu+z$SaXo_+T6aPuWS;?VQ)TKcTPtN@?vN*kS zsLQDRXYtnm$E5(@n8Bl?Q2ROOZ7@R7n{;Qq%{Sf4swyIvb+zKV(&wdk`Yb(ET$Qw3 z5qfa9qT=Oe+?m5dgGfKY-SxdKz?j6wT*dQWHcIUg(K&MG(8s}50F0)(2u`VrGbD`5 z#J4XuZ?M?= 5E &dxZYjM|{T0lI2Jo&uGenLJqQR*@xe&lkb#u0bp zSTN0@cEYn?I(8ak>mDmStXidtSo&HWIwC&VSJr5c&kL9PTZQ-OCiSh3ckuOqhV>f+ zbG24kERd7$SxZcPsnhl_T~g@ByuMe1!NFa@%%}$_SxQ=Q+nL`kI^+`6n_qa#ayAFy z6RiU@$TeRqoF8kTrjE`pJ2F-1{9qDBxWZ$%9_-fs-v4nw-d}`0$B?{zu9MxKvBM |jH(p54|kjv-v2-a4}#UsSx?K_=>>8Fh!&=4|r#aM&d>Pqm~GWNsBel*|P zTW=7tz#nkZtr2mWCX>bv37jZZ#gXsVQyU%PRDwQ(lT5UVom-#5S~mLwpU5ZDd>@qY zNPlSdvMq=~x;QinUedmMwdN%)a$J@|?pn&82q $2j;H_}qRml?-N5T}+`CpN9;gtZnUIi|u159>ZNLA|h^*}hK_Y54lNHK@@~0iwa| zMPgVXgTmBOXg;4F+EzA3kT7lbTZNGcdsO<(Su$GrCq9Nugl|0-dp~D$&A!IT&hlfI z0PoQaUHoM9CVAix9_?AclSqD#@>v0xd8xd}! J|fBGJKMu6;Qk+cB6mEx z3^957QzUmYKF_}qfmzXa_ywgDy ;WCc;`blE0~x$LoIp;>z8_|+-Gs_$CAV{#&%^vLJVP?9!SXGDHer&ZEr_N zz_5`+EIGG+cNnt8IJG*l;W2g~ElSzZ_Pt;gRNTSk^7Gb{1$AIv(LO*%k~0)vehIPp z{gr}8u9LFm#{y;}_SpuTi$xEiJK8oq#!^DG!ZP0e4yua3^)B)74P~TdWt<*C=ZW3b zH-9dV#S3K_-nKh1lj%jn*_=YMb8@D*)rNQ*n9T+!xT(m<0?N-BpwJ8%#< 6 z-|lG)e%Zm!tXQ=wK07fDUK6#G^2G7t?nF(4^3Hi5MGOt7w5hSSD+I0yjZSDwf`Sxs zsHGHxj95z vzgMp#8^FM;99+&2RfFLN$ z{NK(Mlo-)Vh-e5fw#E5BKyrcKpEcJ6;@QnhTM#ZLT2UEMIuzL{JPa8o;O8Dr07c$o zq#eWH;<&&)X=yS}&KLM`zG=;|dHnWC+_X*u9B7qfhEhscFmS%>1=#h`tKTTiIJ?=q zfU5=YkAur3v>D6Gv4$X~IPav@kcFE1Wil|juP=cNE+*pE$KczLqM @a9gb208X zO#SOGww{H0o|YD?%1@`r`0ZOb?u#UaC^+e!(bEw0?&?5=83$Yb#LAyisD7x;e11mM zq`@bN2Y<0Z?pkQY-#QwoKA4A8Q=|h*8Ui8E;JAz)As=fi%;Otx35-jXC<0F>RB`Z~ zh>Lpd)bA3CB!YOxQh@J(n(z9I@imga8Q+klzc*k_-2ZWSQabKL9W{Ub^flA;Lj!y> zXL12rN#pg$AWmPxT?QtE(0+P^Kt>k{V#a2eF8jlAlV9$cAMK#kOihoh^3tnW+)PIK zW7yoVNL_nc+KO}vK2%y{#rcKzxrjG=KWjwaz%yjD{-Un$g11{soD8j2Rgo|h-e55c z^$Y&Og3tZXlE_Hn6){N&
~(a&K06Y*m_DCxbeyhn!Gltv}i#_tI+P9K+N z9m)`D8OEl~@_(3;=oed!wukBYbX4htv5#wut$&i5=D$^M$WlKgR42le 2spa%hsidXMdWC*BuTrK6^DV0$TQ~RI#vvf+@2~$% zckKkERkUPro*u-By#8A3r0OK^&g+P*FP_EBPN)!)B}6z)1!k*in{_KWSYb;IX_WR$ zaC5HpzC^TQi0SPSzV+$i4Z`@h948=H@xn+mDee(M+*&E7>VCwiDCJzVOwGKqY2s7z zNLPT76WAq{4@zmQ89k2+XmTZebkx#MYh#zo6ban!egV4YRcG-0 $B*Y!)9Ic#$^Y*Zmn4VAHzl&X=5TAJ^CAkdPrY|UB>qQj4TbMyUR=3WKQmq}pU zNYh7)JB`-HpN;uv&aq_BB;1biKtcErmbzK2R0kpwfFEfhnDl}oVwsS(cs0jW@z0{~ zbO&dtm_P1gmwb_UkAa#{Q03=~Y?rtjZUb9pgLj~=fzihl5LJUKK+PGWM@ubDu`U{L zSH;m!Oz6xJd~w?3aD&`b*AKyG%rL&0GMeuE;QMO+4MM^pLpzA0GV&+03)Ku0F@)a6 z!Jsuaw#Ls1#cTI-3Uwg#>FG&p;YS4&oL{Yu=C9F ~D zoM9ACw|uImwbuqi&4dM{YpxGk(Uww0dtJ1}< rNE{J*!H7#}~__;L0 zIC~FGH{A>_A*f% zjclRHtE7b;K7@UeLF=lur5gRKLOKY%tI{CuCVSfh*~tXc2Nr&+wTBMbd#`O-ct0JN zP-Vv0&Gi97GqnMZYRz(zHU8GwBMq4VMJ;aPp}s-C4;_W`^b>~Mh(18sM#Ib1_TJ5u zRVpXTmBDwXmg%S?yh!nAWAp_BJJ#@s<7)&8B`Lo}9Bz_wwDgjw6zjAdU#Oa$Qy92; zkWjuOb-?+5tzlqz#&2#?L)DCsMAjF8{f8hSsbeBF8Sue`@FIWooh~!@M-xUiwMOk^ zKI~1!`+%R0O%V7D*q~l5+|cKO-~YM8TCZ94s%_cxk?^OMsDq)>q5KBhYuKVPpUunV h=}Hen59YC3a=%$o#1I{Iz?~i(pr-snsX`GE{6G7VUP%A| literal 0 HcmV?d00001 diff --git a/src/assets/anti-Hadleycell.png b/src/assets/anti-Hadleycell.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3e9e308c68c368fef9e4e12107ac0282d09877 GIT binary patch literal 7467 zcmV+`9n|89P) * fpzwGV@ z*W7vIT`R-%8y*XjuU-_P^Zb {URUyj1>j56odaNE2#`Ne{bWpd|3Z `Ti9T zmdSU2v@pt9Kb#-Vy7<2O%Ma&=voF6tHbDM&8e!HDZ+a#+-m7kZG0M#UekJ_$?pMPN zzu6FOp7VCNb>60M+k(yEmy5QAS&wWFcRjW<%Iqh0N140)<4oqS*ptb^727lU-LenE zy-PR8#z2FK4eG9y(W0P0xQ=Zf?e8@BE&;vntz8e(A~9=d1E2v4T!2f8fS+~Qqv6a; z7e)E2OBP1?%YT|5Wz2>1!kFoE!x_`&)J?`rpBn|}G%^pJ*rPqbD}jD+ q`=x9Dx0r0p4Oh5Nm=6>_`eLH##_}Yy-?#3Ts?qXnOT7CA+l`WD~%PRp- zp$m9~e!-l&$QZ7F;k*bO>rxH)wX@cC2)KtX;K<{vkCrD_@5&khre1!ZAQ<=^HS?VY zPOBrZi7D4LPi0!20 -I-^_Vv%AJiqbtcm({CKWxpw zBLsQ)cQS|eRw=v0Z%5!aJ@d5&ewO+1?$+>1z`eY*abFY~070EJ9))X QpbI!sOVH*6wiJ31@Kx^~4C~(i zBD}Wc%Xk!YwEUh&UkeXC{Z@otYZ}*S4F@{M7hm1>1^ u+MPN z(Q<%S({cf?6sgw&UeNQjJP-JrTU&+aE7tFhrk;CFZcndcEzmm+JdM^#AxJ5>IRY>E zf-T^{=H{M##RD7vX2wHzoO9Jff94w!&(FVh@tJ@3lf^$k&cAliOwK#|^825Oa>WB1 zNu|0 S-rs>uCCAt(ikPaVdIc>!&o0rh)xH)N+Edy@3x2kQx6xcSvi_gph zKK+K@Z XZGUt@9?9eU!S=of{&)$%sH=dgYTHX>iRFg zI`Sv87p ${x&7`3*Dh?8HFqMs#(N0oA+r{&p8CL38_v}8w$JhzeRl1_IghSi z$NzHYf>k9XEp_IJf+Ceb5j07{&6RMoz2IN-Bv#RKg!i}(*Hsk`%?CWDThKl5Eqhw! zy pd^5M`L{F3GmT=`o hwyECtzW%=$D}$7knqDaEVQ1?hoTG6(R56E9&kaY zLx%iZjjkw9@0K5f7NU*U{PMYZnB!P>ow+3XMmj671|ftIA%u|}OQrDVA%qDbgwY{{ zp}dZ(pg{mUgfPIQ3HX2yAq=wDc)wq%RO(|Er+)~c(cWv|Gj^TkQV6HocaBTGo5w@! zn(?}PPyDV@sSnrWv0byTNpA(Posp+kZT (Yp<}-C*6Y-n_;QLX$DM_(lA-M!XPc0FCp|WP?4qrKR*eZoVCXKMGL5=XHPq z$RP3lcsrNRj}IZ7Zs*dNhVxlov-3|k8ExlJ3?WPjAxw3jA7}6L`C%c1lS2rD?YG6F zfsc)>tDsBJc$s;?107A54;S#=`%Cfo-j4mzN?_VK(&bta_@S>3FF$bbt58k8I^6Q^ zo_(MHhMQCh;pQl%aCHb_nqb(? @Ad>hHX6Fgbs62;m0? zKw3V^!HHn)yovVuU}xUZz`myS1MM|ggobuB+Ft2%u3^`eRyP{tes=vvlRjomIt?G6 zEdLI4d^)B*1^&tBt 1*Q zGmoQ8Lx<^z7C0^J2l$s>`|v+8;|iz@_y`AbvT4^igDx3o*E+?tY(NJsP(uo|5_p5! z%LA+g)6VsBQfJ_EzW|O;C-=s* Pd zF~8j3Yq4oE-`ih-oN3xX=Zgm+&KeAKR-m7KzF*>(8=UBQ1egHL9w+d1Zl|E5u|TJ+ zifJcmPk|#SA{+spm!?I33ve`7C(VE2jf0DxdHdjFE8jaH^MLT2pn$ZcC=zT9Y@!AZ zaDfyzvB|W4lxh38kN^1jx%ga;26u`bFEtl&snhncb{ytRbOi5!_Y*{Wub;i%-vMlN z0Q*{_=##wO=o(D42JXEwuqn_yz+DC1=i8WeqVp6u0!w&l=$P+E&orE}92X-p1UPUR zy&@rcL}&>3UCvAMJ-e}ky*YP5&M ;crlI}w(f7ikI>Rmlg^F6q??8h zH#ylLMXfe1k2$ny?I;5}&K}3q%B5nX)i9KIJ9Dn1G*x~!0?gCENySimRe 4DX zBdFAv+6x>L4M-|$XgNGQ@B?4A2H#ZQfK3BI%Qc5D=Dnm@M*-h`;Nbp4r9%S#>7i1I z=P7Vi!<^4 $-Sz;laNp9PO?I+(0QBZ!+IK+&%ZH z*^mU38i=Y@+?YYu093N dq zTmziEya>4JDgY b&aA%Q#Cj%lDr~K-v3waI*egUfdgB>RW*evz^R+4 zGlegh?9;L$;9RT{a03D0eu8clw(k(I>9I@6hB=em&%<_w6d#Rel{;5t>E$YBzEI+U zRr1vhsp-yf3;vv37?prm3hFv))=9AdSqV7oD8RszF#s9xm;%)Ryqbo)pem+L26u$( zu^Q>3@?p|c0SBBj)dK|GRmya3ERDL33i)|;TAbu8LXlr@NP@c*ypPU(5SJIsl{JP6 zfm{*vnrix97z CwF&!j$Bt{`? !R&*Go0ogHKKNNmZitS|WGffD|{> z>P8BEc&$RZ)luN1y27OUl*`Qd$#xuTGT!xh`woyYaoRq_4LDHxHYm|t)zoFqEBW6B z*AR+)x3>(b_N!JeSE27nzqhEjtf yV(sCR8dCxwamA~mt1{A zQ0f @RobIy3F=aZ{?@E_m~U8&r);eYQ-z1~v3eVgP^C7&ULYC3^1D zLs=Q$hzg56sg`#ZdXEBk+NXhrz#O3wqo&d79#wBwlj{hHL7BZjNU4|8^vu6Y<7G}= zTGyDEU@rpQ*X8DUep=AI_WB`DSrNz$Q7#MEYVhHi)hW{cV;;E6oi*@KCDp9ZBCyUR zs&hr-(X(z+b-=jmwl)aY+vY2BPSZ68-D|5i(S04H)c5-+Jkw|gzR^9`_hch$ihx%F z-x+h?BfwwZwEF{YmYM4&i^K(7CViY0VAQdq0*wYf#A=)i=;Fv2b+S0K-sB56N#~1) zQ5O99&xW?KZn2*4EQ7DZ`-bApySD<~VpQreD}Z zKHlKP+}a+;*(5G67x-xY9eg#E%)BSQ+>bgHeBUvXRqOoczH|*E>9p}$?n|@Y_ow3X z^`cIhH08_9#lIH7O@l_+4U98J43uVcjCBJcV!yYmvuhX> 5&{ErH6o9Egq@z@2;u~|cI!)P%hC3DYvgMuM?sTn3fU|O-0UB!>i20sk zugPSORb=i8EitImaAh~MWUSMCO=?hqCXSj(s&9jwHY$*dmcSQl(x|`G_PQUVp8D%P zHAq@hFX|1eR{hKU+%X571po}jNV`#^Y*?`ZHTm)g)U;R{tKm! lrJor&kN=dKS3NX$H8> z<2uz1TAbpvIr?a4o=-C^KG|-t*L2Mx(@fD=ezn&kaGN~nQ@aS$r)bKPlcI=HwFa5! z)ZDv YL GKdr6d zl)@=)(4@+&f*!kGlZsfsBvA9Yx$ke!rYgCk&P@w8X`1F6RHeFo)vnoY1I~aqPA&v) zK3pRq%@ R0Ab6dvv_HhG}+ %Cu3_jXdAG}M|d~UBsBe1?f6g3JzA@L~isX1>?YStydc@yBg$@6N!nL*0u z?WQmvY_tK_#QO1y)ZLU{S%Fc~ZW}rKJ^Re1CUH`sn QV>X0o LYF+jCt72?tf`rZ0P6}nbQ7nKdj1+Xi=W8;4RNg=apEyY)LPG zYx!)J>+*tT!;UzN1s-yNOUp6q+HFUXy3B=uqvfnVpq2V@19YUgwOTYMJgaRRfT0FE zM&CsCUXsW>F8ATqU6a4h%C*j9$5k91)GUbef!yKpoINx13fz+PEA0dK!<>90NrzKq z!=1VcZjng`WL#Kx`Gz>TP@;N@U>5>MLon-FKa>`NANR{b2|8vSKdu$}aRpm;?7PLF zXl$EuUZp}Yz;TldV&{nKaZ|eGt8?l_ldo5?MZs5VJ-w~!rq!ATD;iJWp6nMMa4tbT zY6BA3MLl6@hf0~h??~j`9^rnYYyw(IXcXCW;q*ePxB*f5IDj$h9=KNW)tcQj67~=^ z(;lY^JHHvbG41B+x$;wKOEyl;j%Bdah}_DG!+dm|%uAQ}qRK!&8YUSQ)xTP*RMh)b zbbh7Rxu@FruA{(Na1V%DVvY6cS ?8+08b0>`9)kka7??P6ScGSv!JuCD$spOlrEQPH%Sq(IyE$8S-oHbJ2I`d zGujax_=1MoVgF1(#R9`@5WwyWfbVhO>P!JR0Rs7+R{l$Yv!pYoU0W^5r?ZG3ew~35 zn0kUb(m%u^`Z(52D?D}AkDk=SGH>Y{ds#_Z`>U{S{J-A5VzySq>Ji`w{+j?U!dtN^ z3*fX?w}1;eOFN_KKu6oP2`iu1N{*y&lC3-Uy_(4Td5>A*!k$aA&+OR!*%JuszEUFQ zC~14I^?IAP@7uxZR9Ylh*V5-{kO+;DP9elEH>O~yvx4hmt$6L|q&-;KUxgK>>uKUE zzR3>+x>jDqud{3ynw|$7)6RAc(Wkp@6}7>t-%=voM#66|Q6vg 2|kjYijE~Y`||svIT!G< z&3~?38o^@$2<*swx)rzrI4#t!mHF}6TByAUID2&ny5B@q8>!L=yl6Wp30p)VY!`*F zb(D4o)W&gapu^2UGw_9ij9@0?Hd(e!)mazc7sg*Sw_8Lz9ZIxYvIN-CoL{;0s2!gW zHv8kZv0D-rj5vynrCWdtI>0eaK&RjWSnZ*e2VBtEd=2n^M_p~!#>Q>hw~Ni(w7Hu$ zdt>7_Hh@Fe3yi(N*c^_Apa$UK3p^%Mz_l&)m^$xpm~LK+XwyA5;M0bD-gkT8>9*Tw zy1 {6+MUvLpkv~-nVKX8?x7cf7korJ`KbYT@E*9=dJo(~_rS+rWWejV zHFdT 0_&hNt|a__0CbqjEW=|$v`Dza#WeoVZyy9jumrb~*T zr@$*|c{J|@S}x#Y>b)&>JGHwKaKBlvw*4ah;oeu E#RET?*TYjO1Eja7t%C C2B{YT znxLnk^Gy2js^Mo9`0yg&(s1rGSyPVyN9d{1ioNpf62F-$4MF1lb|ui&U>EuD+@Q_0 z`;2LG!e9Kuy>*r7#|^so QFbyJZ6A^p;Rnnk y2Rh|eM7!yx zlIG<;H`i{x+R4`!aMHpIdAW))z5sJxHy2^_ovCDQCMOS9;e|#^Lna+#E6=XtQa9jv z!v3Q_zwf12<@4j#%QXr$=1QUlfKa+TR^^hL9*+$X=y{bk!KM*oA-kGEw*o&QQ?h#i z)H2g<+iL@w{l&Xdt4{!*(esTD_mlRPq5W*nS jMkB90^nM~q` zM4}^yOeLBi0cu~M@MHhkB7hJ3zyer&f~WnbB>U*bK)eA-_O}Dh6lGRr`E!-!$12O~ zKxrIOo1)xE_ia(&Oi|vogKHV()fDAcy6@3~GewyTK(jshu1y bwX-F_WX-T!u6y-fSIF6JPb+Q`p03HcV=A_oC zJ0=$cI3Tt@rYL_y0mqo!owcR`S$J;}DKTGgj~w8%9XbVnc&`NGaU3(5KG4{by0K{+ z5NqDG;C^8Qr)K>I3Vfa^%7 ?L)PW#qX=w#%UW!euxy} z)VjAJ7cvEo(@d((m_Rr@R7({K?jG^u&C>lF5Kj7`HQm^U(ZX9F^RXmw@c#)pEO;+{ zt>aMj_l$SD!|c?^C7DVfNJvkD!wyP1AY<^B1`P;K$Mwyn3mlfVU6?=@yx14sz!PC! z9E73<_hE}-s51)&mmylOi?O6u?~PAtXsO@;R}tQ?ZFOTcG^h>r<-VTdCcQ@n3WN(B zmbR@u?j)$$e=}!;LIAGDQiQIZl;9?TU|u@{1ZY&?5QCI|Ilx6@{tPiV#BqJ42IqC) zMH#eJ1mF&X;E?WFM-^ Fh)!4Fl$ZBb{uBmTV9l#*Zg(PYE2G)&cQ1 zV$e7%ZT>)^Byb8KKmsQ}ppd{NQwhmb%4-NDQz<`apg>Y^q5uNOg1g+-Ny~wK3?& O qGH1G`HTY6rb zvmqv;iTU|uh-4XHit-Pi_NWPkwdXVqPhjF*8Y`sX T3} f5_NCkMxn7UP=f zxdWWkL<-+Xy+wFtAV3jz1*dGvBRROU8CpjQ?!nQgE*jmmk@U~%wgWQv`;9{mLzVy? z+}U{*(noMB8gZ5*)>a&j^y5{Qe~D1*R?^UXgk|Pn-7RMV_aF^L1-MSCEdLfu;9?>; z%*6UJ?l p(gE&zJrVx^$mz0vz19 ph&Ld~K7oT9nh4?zNV1;=?mx*Mhau$}a%uno002ovPDHLkV1mj-5Geov literal 0 HcmV?d00001 diff --git a/src/assets/cyclone.png b/src/assets/cyclone.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf61e03569b2f03bced6932c22c7a5440b11ac6 GIT binary patch literal 2122 zcmV-Q2(|Z#P) _g}fV*=MBfR G;~i+OYyJ@ejsC#6&!FweH!PsXgND_;tkKa!LCRyn=&4JE!V2OSAn*O=VsZ zv59-)6#ikib)gYm({sCQ^7u-oU}&Z4;QxFRJx{g}<}ZxeFbi;KZ!|=(3Y6&7Rf# zey$Kz+|4(%qF=vx0|$fGcNrfOVVoLpH}Lxfn3>Q-jg|_R=2PiA-cDJ3f^!?zBIyec@OH_;fwsAH$ggx7$B_ljUByJ45&L;-ACH9yO=ugVg2t=+_a_m&83{O8 zTbxIsDYcF3-JVl|zV1 *zchWaBnD}fiD&$IDUWgazS;VzBV{<%a_W}VQKc0Z!p{p zo^a;R9Q5BfieO?M$gT>6u5EmE*ST=u+ZkzHUE^L;K?88X>?XO%;5l#?Otr4g9FS~C zq?7Y#G>-omqjLvZS9{r3*Qj5JwXHH}8oIFMX5|ujENcC_VD9P1W+wUS!Nh{{$WPUf z$CS_@M=fS>on$)x8~Ko3Yc5sV_Ag>1zFnNv{omI4 yMF%dwEXPXR;FURj0mAPC==t!pH&xo_;Q0f#@ zT&S(J=dlP|PEgG8>zRV LI!mrTe1Aa3uw27$@>27>Eh#_m+(SO$j@C@p8*RCJEP=T3YNG K5MEg)No9sU!X!9M)-xk3@DJCb&zN z2hK7$jDYFJnm_KzEr64!)f_?i5v+|#3vPm5OsDdI0vp`tR^vw4;3|Dx*;F>(QM$}| zj!jr(;DRm{$m0dqbq>z=fbj *rk9gH8kY+Ztp7}MX$BH&0rw2@&QW>GvG*0%-X zh2q)>IMxi=L~vcGDZOoQEd$f>R#sMT!A*?7J(4VnwxA4VUZE~e&IP!g4L^6h)l}%~ zVb+2%x`K{aDBG&+Lkz-7i7+bPN}O^ar&b%~4jdxRl#R&;VAc0cSIX1F=g_Lei|5aD z?JD17#@Y?dP3ld?pqWhlZr!~yy~XWpL~sKeaF{==O%3+-J`YDczA7vWjNK_kvWE&B z%3-s~DT>d>mADb z#|n>mc$ZaZxXCzFfxAL($geen6D&N2m|cpgZ7blQu}2PO(TNSX5a2QTl33qThfVu_ zuj)cEkk}=Tz+`IQ5eO7qP7KbtNY4s5hgxT4G9MtgTbmmMx<=nP(7NX#K;dTK4vC>z z K7VZK`B1f1lY#{_R)QRKTz@r-C`0=@JKPSU(+%qCln`eUX> z*_h0sS8&o+`ZQ8-9RUygRP1XTI+=S1SIQ3y+H^9F18?9P_5kieBQ|Z>4+5ODX8h;D z{Nzo+A@#ox2Nf!?chcD0s A@R)ck8^rK-IuczF{S+8w2n0 zKlviE?RO~~IY53KFK?)I-oZ5yAG2&1`C-Al1xE+3c%VXTU|MjK2sEw&;K0F?%sIx( zzafkF21o#l62l*f+=$EA-W?APoC0D8Vt@ZPad4BRl)rmn`oevv;=KWuAPeb(i?OH? zaaG`;D61b*Qpv`HYh~1e;~O*)yf>hg(OTfX0)Q)LYPX4C@&Et;07*qoM6N<$f^zT% A#sB~S literal 0 HcmV?d00001 diff --git a/src/assets/updraft.png b/src/assets/updraft.png new file mode 100644 index 0000000000000000000000000000000000000000..2c10cb0eb14cecb2a1092e96c7bbf87efe74ab5d GIT binary patch literal 1717 zcmV;m21@yfP) Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA21-dpK~!i%?U_r6 z97Pz%tE%5Ky_?NLLk>X=1U+~P1i^@?NE9y$f(H={sKi5pcrqST@D`7`_`r)K7ZJ%N z5S3hV@gNu>it&LVF%UJ2Nz7xO-Bteo)z#z7WU^*!ml+WMq^7&7da8c&eP4Z5y%GQG zzplVtS3}B`Rh4wtl_*kD-qlp$j%JX|T`k&|TUsA6!d!IyE7D3Wn8zx3WNXrR;pHHF z>!q^)#C(+8|GNtFmeCDu%unvQsVk6DZfZ7~&p(x|IeRcl^)D(g*M&6SsnEO|XWgAy z{>?%d?ZdNi^_A%<2Hm#JX}*77I#(VKB6CSfqlK`gK>0%|b1aO_t66?&OWHUPs9-z3 zw;JKJq&UG`8buH8Y%cuvUYwa9RG|9~Y`BytEkK_NLi2u{^&Zah<7=aAKfb@3i*iJS z+pr;RzP_h1uaAbYzBpvHn-zjysH~}9N%PBF;thvk&8^jtt0<+^ZQJv;XWvO0=423< zNmg5`TtjUBh#37KPW7YN+}C-Oy@6p@#pSXYXD>e2T+{nBO3dOdSnXzovB~d$5k_Wr znlIjw=11| af`&yb8Um}*;V-xxoTJsdFc_7X@4`u6q4pnq7=37o| z${ EVL0bPw%|h|MF2&0X2t;(VO#!o*EZ zZV`qw-XJ%|3kM$$^kYx=JL?`O`)bY@b6v_F7DWrC{g((j*M#XtLS&nT-gLV*(Sp%3 z92yG%;#XMdSP-81SO$mS+Vd@8+C3vWGEn*9e)sKdMSoKlUpWl}d>$p8LqYi2$<~#< zMu_v(D3vA=--)6`5ENkRptR7;Ics6Rm5udDw);t`_B_+?Y`m{5RBp^*u&YvvuaF-< z3Zqk>^g7S>b;%tC1{IiJCRrHY!(mFH+odV5!?ah8D6XI%>u*#yZ0;E03`RPw%krGj z`hqYB8)JGyr32?(PKDZ$2)P~;O1jd0eMIP=#~9p6x+wgSOaRx~MfXIzXrJg6-S5k? zI19KxtG*kx)ahg5q_xmlz+`ghA=vOANjwoskt%6pYh1LZv*^ 6 zg^&(Z%D?~+2MSyDlqaB3CNAJIf>v ImRsVs-2H!2%{mR!QlQqIPL$c0@nm}-%XGx8_U&9tCQU6Yr5EvO1?e=eDg#NM#5 z#0^g0vjC*+G nGGOb&~T!Lc;p%v24(!=ia5l%wQBW~FQ7&qv7qedW# zke1R?qZ3xfo%cfVcd-y55;azH#bZC52+KMa2oC*N?NUr15W znBZWT;B+GZtlUEKr4{b=76dKL%xjqZapy5yK2XTq_Q&hDq8UZhho!K^>Ld!oIv$2R;f= 3P) Gc<5Q2t{fDH&)voRSj8>2Ybu!TxXZ(C>!rS1A&ZlR@=z5y+5 z8EvIr^HfiAz24qiC`w8E@J|SZbN;{Q`9J3zC?E)82b)UD4i+#en>99LpAv?BH_b#Y zO8vf;7Lmgm1zTyHtVA-I7TssrbTKbL5X5RC!2xYc5Cjnnuk6IM?h9i^PgUe@yl`8B z_?Ke$+!jxNa+)iP_hR-^G6>sRTMB}@fI2ava~-H`k|o=IvF!(_^$h+$Kb5zR(FxRlt?CbB$K~!K*&5D82L_N1tBjERSbq>_kkJe#&odAI8+*+3*W1=d7pIp z!Vg{_GVp6!m9C!QsZy7Jc{g>9$lZ9M#_VxAe4%oPUZxIh2t;G|7qt#q#+PKGV#? zUUG%e*I?M~j}(Hy0GJjkr{At`*IzE@$^*5nV*;}?xNmxXi337WqC(t~&j?R74imz0 zM<8bqv@n=y8^T{d-Y_98J3qE|O=Pd|EJW|OxRxG*Tw{~&=QUREGfrRlF}}#$a{h{1 zeD0ELs wqjnN{^OtJju)W-V3e+l2%=wVSDoaFiJu1aG1!ONWxDyu2!a;X z+B`4U@Z_H#I)Tl-e{6K^Xf+n+51Zct EvvW|#v-?9Y^-J(iI|i%= zp$lrO=M69dRR=-mQ0D0(36(cYFFf2Wx)bdYTkH_wOtVRaU<3iV{L8yK1?HkJzLS@J zcv`x0_OfO`ZkT)19gObN;ekS{JH!EzX91a}&Jokx$&KDu>N-YKy<+1K#F84hoIz0T z!E|G<{?YPgMfg&mz6#<7)nyv`O!0x=gX*VeD6srgyTIuChAU59xT;>%P5B>ZJ3#1S zmG!WrYNwwO8rL2eR5)z_C=(1AhHAqF2Qh)4cX%SFFx`AZhro2_hR8Ipb@*PpHDak8 zQM;dGic*SYKC-&m$(00SkYl)kPjIF2&Ozf5m;-=;&yc{BbvF1eMCLZ;_-aJsxM`YQ zJk-=}7%i*AqGx}^0yl&P{oLYmQKk+MS>EXD0s*7xQ%PbgKK6s^$l-IcNCi(NRhhj{ z!1sm9*(+TlTU%?NUL{t~e5SQ~_tbYN#w%JBfp2+=*)HMaxWgOz8j1k%flksLy$Mn` z)(yh;7alAcio_ncE;fB|xO%Yjy|P~;ADxs%j@L`81!MTr0Mpp56V!E0Vi#{}zsI!B z{m> 6GWQY%RiE1{N2WINu1j*)gycwqd6A&T~ zRq{Uwk>8yu*sjqcC@|X|g2)Gujs8!$gznVZ$OieSKLDij?}p^IHw*v(002ovPDHLk FV1g6NLSz5{ literal 0 HcmV?d00001 diff --git a/src/components/common/CustomToolbar/index.jsx b/src/components/common/CustomToolbar/index.jsx index 3d4598c..c384d11 100644 --- a/src/components/common/CustomToolbar/index.jsx +++ b/src/components/common/CustomToolbar/index.jsx @@ -1,117 +1,130 @@ -import { useCallback, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; -import { useNavigate } from "react-router-dom"; +import { useLocation, useNavigate } from "react-router-dom"; import { useCesium } from "resium"; -import { Select } from "antd"; +import { Button, Drawer, List, Select } from "antd"; +import { HomeOutlined, MenuUnfoldOutlined } from "@ant-design/icons"; +import { useMouse } from "ahooks"; +import styles from "./index.module.less"; function CustomToolbar() { const { viewer } = useCesium(); const navigate = useNavigate(); const dispatch = useDispatch(); + const location = useLocation(); const { toolbar } = useSelector((state) => state.data); const [value, setValue] = useState("sideview"); - const handleChange = (value) => { - setValue(value); - const pointEntity = viewer.entities.getById("point"); - if (!viewer) return; - if (value === "overhead") { - // 俯视 - viewer.trackedEntity = pointEntity; - const destination = pointEntity.position.getValue( - viewer.clock.currentTime - ); - if (!destination) return; - const newDestination = new Cesium.Cartesian3(); - newDestination.x = destination.x; - newDestination.y = destination.y + 13000000; - newDestination.z = destination.z; - viewer.camera.flyTo({ - destination: newDestination, - }); - } else if (value === "sideview") { - // 侧视 - // viewer.trackedEntity = pointEntity; - viewer.trackedEntity = undefined; - viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(130, -10.5, 20000000), - }); - } else { - // 跟随mftata - viewer.trackedEntity = pointEntity; - const destination = pointEntity.position.getValue( - viewer.clock.currentTimes - ); - if (!destination) return; - const newDestination = Cesium.Cartesian3.clone(destination); - newDestination.y = destination.y + 1000000; - viewer.camera.flyTo({ - destination: newDestination, - orientation: { - heading: Cesium.Math.toRadians(0.0), - pitch: -Cesium.Math.PI_OVER_FOUR, - roll: 0.0, - }, - duration: 0, - }); - } - }; + const [mouseX, setMouseX] = useState(0); + const [drawerOpen, setDrawerOpen] = useState(false); - const navigateHandler = useCallback(() => { - navigate("/home", { replace: true }); - dispatch.data.resetState(); - }, [navigate, dispatch]); - - const showPanelHandler = useCallback( - (value) => { - dispatch.data.updateToolbar({ - showPanel: value, - }); + const mapList = [ + { + label: "首页", + value: "/", + icon: , + onClick: () => { + navigate("/home", { replace: true }); + }, }, - [dispatch] - ); + { + label: "两极协同—拉布拉多海海温偏暖控制夏季高原年代际增温", + value: "/map/1", + icon: , + onClick: () => { + navigate("/map/1", { replace: true }); + }, + }, + { + label: "两极协同—南极涛动有效调节青藏高原降水和加热", + value: "/map/2", + icon: , + onClick: () => { + navigate("/map/2", { replace: true }); + }, + }, + { + label: "两极协同—连接南极和北极的热带大西洋经向模的媒介作用", + value: "/map/3", + icon: , + onClick: () => { + navigate("/map/3", { replace: true }); + }, + }, + { + label: "三极联动影响青藏高原上层温度", + value: "/map/4", + icon: , + onClick: () => { + navigate("/map/4", { replace: true }); + }, + }, + { + label: "三级联动影响东亚夏季风", + value: "/map/5", + icon: , + onClick: () => { + navigate("/map/5", { replace: true }); + }, + }, + ]; + + useEffect(() => { + const handleMouseMove = (event) => { + setMouseX(event.clientX); + }; + + document.addEventListener("mousemove", handleMouseMove); + + return () => { + document.removeEventListener("mousemove", handleMouseMove); + }; + }, []); + + const isAtRightEdge = mouseX >= window.innerWidth - 10; + const iaClose = mouseX + 320 <= window.innerWidth; + + useEffect(() => { + if (isAtRightEdge && !drawerOpen) { + setDrawerOpen(true); + } else if (iaClose && drawerOpen) { + setDrawerOpen(false); + } + }, [isAtRightEdge, iaClose]); + + const onDrawerClose = useCallback(() => { + setDrawerOpen(false); + }, []); return ( - -- 返回首页 -- {/*