From ff2cd22d9a1528e64026a8f2b25bf84b561eb7b7 Mon Sep 17 00:00:00 2001 From: cnlohr Date: Wed, 29 Jul 2015 01:54:49 -0400 Subject: [PATCH] Update ESP8266 version --- embedded8266/0x00000.bin | Bin 33680 -> 0 bytes embedded8266/0x40000.bin | Bin 169609 -> 0 bytes embedded8266/LICENSE | 5 +- embedded8266/Makefile | 34 +- embedded8266/README.md | 2 + embedded8266/ccconfig.h | 13 + embedded8266/common/commonservices.c | 350 +++++++++++++++++ embedded8266/common/commonservices.h | 18 + embedded8266/common/esp8266_rom.h | 92 +++++ embedded8266/common/flash_rewriter.c | 292 ++++++++++++++ embedded8266/common/flash_rewriter.h | 20 + embedded8266/common/http.c | 560 +++++++++++++++++++++++++++ embedded8266/common/http.h | 91 +++++ embedded8266/common/http_custom.c | 97 +++++ embedded8266/common/mfs.c | 64 +++ embedded8266/common/mfs.h | 51 +++ embedded8266/common/mystuff.c | 169 ++++++++ embedded8266/common/mystuff.h | 43 ++ embedded8266/driver/adc.c | 3 + embedded8266/driver/uart.c | 1 + embedded8266/image.elf | Bin 285221 -> 456657 bytes embedded8266/include/stdint.h | 2 + embedded8266/include/string.h | 2 +- embedded8266/user/colorchord.c | 150 ------- embedded8266/user/colorchord.h | 17 - embedded8266/user/hpatimer.c | 19 + embedded8266/user/hpatimer.h | 11 + embedded8266/user/mystuff.c | 18 - embedded8266/user/mystuff.h | 8 - embedded8266/user/user_main.c | 45 ++- embedded8266/user/ws2812_i2s.c | 9 + embedded8266/user/ws2812_i2s.h | 7 +- embedded8266/web/Makefile | 19 + embedded8266/web/execute_reflash.c | 266 +++++++++++++ embedded8266/web/md5.c | 296 ++++++++++++++ embedded8266/web/md5.h | 45 +++ embedded8266/web/mfsmaker.c | 139 +++++++ embedded8266/web/page/index.html | 8 + embedded8266/web/page/test.txt | 1 + embedded8266/web/page/websocket.js | 69 ++++ embedded8266/web/page/wstest.html | 10 + embedded8266/web/pushtodev.c | 202 ++++++++++ 42 files changed, 3035 insertions(+), 213 deletions(-) delete mode 100644 embedded8266/0x00000.bin delete mode 100644 embedded8266/0x40000.bin create mode 100644 embedded8266/ccconfig.h create mode 100644 embedded8266/common/commonservices.c create mode 100644 embedded8266/common/commonservices.h create mode 100644 embedded8266/common/esp8266_rom.h create mode 100644 embedded8266/common/flash_rewriter.c create mode 100644 embedded8266/common/flash_rewriter.h create mode 100644 embedded8266/common/http.c create mode 100644 embedded8266/common/http.h create mode 100644 embedded8266/common/http_custom.c create mode 100644 embedded8266/common/mfs.c create mode 100644 embedded8266/common/mfs.h create mode 100644 embedded8266/common/mystuff.c create mode 100644 embedded8266/common/mystuff.h delete mode 100644 embedded8266/user/colorchord.c delete mode 100644 embedded8266/user/colorchord.h delete mode 100644 embedded8266/user/mystuff.c delete mode 100644 embedded8266/user/mystuff.h create mode 100644 embedded8266/web/Makefile create mode 100644 embedded8266/web/execute_reflash.c create mode 100644 embedded8266/web/md5.c create mode 100644 embedded8266/web/md5.h create mode 100644 embedded8266/web/mfsmaker.c create mode 100644 embedded8266/web/page/index.html create mode 100644 embedded8266/web/page/test.txt create mode 100644 embedded8266/web/page/websocket.js create mode 100644 embedded8266/web/page/wstest.html create mode 100644 embedded8266/web/pushtodev.c diff --git a/embedded8266/0x00000.bin b/embedded8266/0x00000.bin deleted file mode 100644 index 78cc1cd655342b81e9c9d58fad554416c0249d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33680 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 ChJBX+ diff --git a/embedded8266/0x40000.bin b/embedded8266/0x40000.bin deleted file mode 100644 index 27ace10cfeea6a0bc59b5fc24da4c09a9e45fcdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169609 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≫vu)*whd6^IvGT@(z6^hOqAYvblf4t-}NJ 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 Y6R9SN-2ZG*5Wy!>X|O9}eQLQ3$6zqwn?x;Y>a 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⋘ZvjG-@w-f_`tycz8+fsIPK7miJ#CYd>|uN)?ot7&Kp@UJy1?>n->MVs*o?~ zp&os|V>)>4*82%R(l{szE5u)eDm0>2yD*o=&k9qFd;-1#>~u$vcA!9|jJtjZFNl(e z{6=@xP7qs0VwzVNlSyj5MP=LIw|-Ie6`iqV=Hkvm@yOwG^4ap&}QE z@+8NIMxP|9O>D62L@#MDH_U_KPyh>x1Ic4aCcv18o}UQ;Qcxq?{;B(x0ym5hCU92rKI722TSa3oE0(1`O zlGHH#(fX?h#^(MY8#G3BnrNutux1lrhxaP%&_itSCBY-vG%*c7TPm4 zSbse5CFT@IQ4iLlYeOl69_DtLQqs7B_5Z?a29`cy2T(=M%Zxe`g!!x$=jy<#`G2`% zp!Z{(x25W=KjQZ++G{_G=z#f^G^ykn+dl3*JD=dN{e_aG$618=Fp=w(!pPb*7sx`$ z0-%1HP6re`oubV&xhD20f2K(&a4T$0i9>}sSr{1eJy$QI^5_oCvRfwhAv&>GFFn6+ZIm_Nosz>n!h`7MbW z$2mDUXeW$$;dNb(KTDN1B_j?E5yWfe6ZS0ciLL@12#lcE{hFV?j^WONBZIPErz%sM ze|u^X&AoSGB7NGs{LJQkh!b&~tKUT)N0-tnwV4l(8n+1)cy1gzmb`0(M7uScb}Orr z?<+oX9YC2_t7C=T#@su~WGRe;p}<6b_(MPSG2-Uey9=F`oo|ytwAeV9qOVE? z!zKKeYQAT!BU)(h@b#>9$E7>UuEREifsKZG2l5togE~+a?-|=(alWf6${VdWe56Gx zc=+_jrxC3Snw-Bf-ueSEuQWt^9~$6JS8K_|>x?;O6z1O+^Eo3j~N$>6i!F=pm zma5t6RTkK1bmYvNw)Nr;$3D6=5mGU74(4{rT^N(j?V)=vE4)2o#^&pz&3kQUT#DVq zb;$ZG)@R8ID!NN&%-hiWneE39e0y+MCW5j|OK`<`b(BR8Zrd{E@}}oNdgT#r4mD zG=kQ>{ku;4{A}(LV&y?CYsd?(~46=+C zLXqmWUvyi&G}3IA{Wi{dT2e-?R4>B&P~&Gy=sOoq%vSaeswq$_MHM7Ki@GFB zypz{?62-uTPVpghbG($L4|kPpqcvcJzzFI^EwWtiEF&dc&F;QA%0k-x+KR?~WD?jd zs_ggA?Cd&lv-46P@30}`BhSz52truLjC&0RZP4Ro#OH~Q@8vcgK^5ByD6+uNopxQX zjA)907;Yl43$4Z-mno%#uSd?B^LOmEp0noXJIchz!J|J5DcHCK5|*SRXj+0)>z5n+ zdtgL20P2vL!n^|y&uikmBRtQ)s(W?nyfK&PPS6ZnspyatfljA#*0)FNkDBS`{UHXT zkhXZQ?%lx>YM>3^9+x;+1BUir>8xbKHVlr`Yw^7NDlMdNY-N_Szj6fgMiJ_qo1|FBant#pNHH6?q%$Qb{g`9Idsuh}Ie{a*v~*rVS+~k>qV@ z?65G^$5xmSTEZSkazQxFm6XER@;r!yI|=5lfFcLCsJwjA)f7^wvI=wQ0g3}Df=?ck zucl{*vB{MlY_jL-ZEUihE^hN{AN67r-;)0en?&exLf)$dK?Oq2@i1V0)X>D4h)ulVtyu>XH8QEg;dacO{+Sk6V%*qONcE`s?X2SMm#kC)qU!Y@VPwA%iJXUJk zV@c^2pZy4d3q47C{+n@I2f+sNz4Oq(Dq?qDMaj%}X}2-gpz?hi&O^+=IKwpAUj2@x zwb5ix0aq*=(lzAfW~`6WWgNK<_zDe8kTi2%Ks49ptu4>NPRQL>mSb^zl9wYQVrIY*wRoooYGCDK+2RJ)002cVxoy7SB4B)N~phNB8cKJ zt=43h*iV$+VLxlS>E5fa0u>vPt^{vT>57_mn-QCDNGwDy3Vj!}f!2*RTC~ZRBDkOA zQrHb%Vi5*Q{vq`{p_2V0fg3UWijf-`1{2AbaxbGD9r$asQOJs0u2UnNd_Y3}PBEwL zz3Wh#sU^Qa=2Gss`0eY`CLvB zqJ+V3=^=w%ZAesOhu-`%-T{4ZH%%(d&t&77_UU?zEaL|hX>tz`oWk@01v9Fqq|Ci)Hw6%yPY>Uk_?2KXO46q+3 z_FaeaYsxOT<0lN9YIrH8$}dBpV9>;{#|azwAOrNkM22jpqm)%6wNk3?J$j?Pkj_R) z>`5JWslZtW{952-<3Hn1M2#Y?iW<$u#(#cQAl;1ZFDow{*vA=B78b`QJAI5XF$!$KIf|A3uT$#MoB;)@;TdT)#6t(L1@;(zqB9HJYG|2L zrQ<|u-b5awkIZ?u2UaQnAZ@wtT(@>Pzc%{5<)c6T4ubJ-vr%&<7t-?01VkePIt%=|5rUYazw zg)qf5IEi3Ih#rAbQy1&rxj|E5fBYI=D(<-4(JHhBml-+?Z2AD06mJ!b z(3KHm9iFbMt*6&1%5__OM!b3ZfpoQF|1Sfp4E?Uvf=TwvQLn@{@FZ##hp;6r(NNAg zTbF^_HqdtjW^TGR{jN7b?rBXVOzLMvXEA5ZQ%i>=m5)?W4@ndstONQ@w0jFJbWO^9J7)wJR~KL88%95 zhw1YNZ0=BK^JZegi!Z)o!Nt_)NEBVO=GQNW4WOx|PWphYsUv7F&r%-cWZMwWkYsLM z2qhMgv1cT@ya$Tged$qTS}UGA-VBxLDUYqkK2Qk3UzM>x`C;$L7Q9O~hrE^)&T!(C z?N6KR>gv)%Cnbn3z5veRKG3wRLh!u0Z(%<;F&<0&Avz7{cWJ_DcU;>nU7yxxj6$|C zbF9%iitkgm8mUVTAP2~-mxS85L+I`EFZXMTJJ`UNzqu;@;-~LyNgi`)$a9^a1`M%3 z@O@hTF7rd`{&ojl<@@%IbrxBBj-z*!(RF8|G5U|fPLh1E{=nB>mf3aW(Ur>(N4lHM zCi~C%EhB|SRYo7+un`p6#!KYw^{6zkb%cPx=)=%~h5zA0Z!|gm2kuzN@Ov!`Rda_hhNdXKk9i}Nagc`f_8H|8v+L4~St~o# zd~*9Szdb|P{$fe0eS6lqjbR5XJmtmx5kA8<2J=!xp_*H289LOiPClD7Mq?PTUJx3Jrx`CE})o)J~K!gm$ zc+9n?tcZH)O!!Rt4Oaz>r`Uyn!3;}Ac0A!d&+eJ-*c&n?4BKGekbdCXjcsw&$KI7% zGuzS!v*`jmXYjdr9Gn;k7afS)C`#BUxD71eXI+n^;Gcwv*Nh* zZF2@o?5;LHS-GVv5a+iDLgR^OQXk5oFTB@?7g}qxh$Te;`7!2#IAT3&4?I4?g2+$f zGWON|gbB8NxRF<3vGWP`T_N->LLX9th~Q@->ha1(4qkq!m~+dv9tRe~s;gTYvPdSk zg3YPUjYp-9n={yNiKHS3brMM32q3bk>YpPnwiUaA{4lfA5t($I|aae z=!0HN;`kayaA}tEpGqT#T)W~e{*Yfv-?5v11&^?g&)pQvggiy1+CoRjWAATupW#$wuKs{5?d|J`c<2{ zI^qL3b9I%UMTt9gb;Rvs=IRo^8YNQd>Y}h))6CUaG8aLrM_SK(RMBB7>vKhj{PQLY zdbr(_z#}pFHsa>0`6SO+C)Q72n!FU?Ir2C(Xr8g5DrI%89|`;f+*Zw4%^UHzBxN-e zwDbZ6IruB3tcKo|UZ8+A|6_~qjC#$v_xR|Bd#fEIIe-!7Gz|A~M#B_ewoKq8#V`#U zsb`+;-VI9Ur~kN9vx&wLfZ)z$*&GmME^NcQav>q)}8tBYpNorBDyJZ?5qHfWlz zDub-q=Jq$QO8pxj zMD4>Pvlp_V>up~4HC zo$$P&t`kQ^h>ltAPoasdVGegS+GqX7_}53fcO zhBhrY0Uj-0uBNxY*CKxMS9jySlimmadd|1_TrghF9l-czhoJApDXXvqbOnPUfUC)Y zvzP3C4H|SP4K}MH4Ytz;HhkC9-Z6Sh3f{vm@*p@wg2M)!>KLJEfzd4Tz*;r<-!U9z znp3ive+3xOlW-B9G^uhfEPEh1$JuRlCh`53Bfse6in%%||GC=yg|+$5wk!EB5gMWD zy|1wn%TyITF4@z<`X}t)P6z~$8#qopx&^#31cKx008Y;)w>@?}){XqHD(9F*mK?7l zmp8AxCe64fu2a`wv}WR`;FqnV`oJ{=*@YjW*c->2nrWQUIL5NmfD@H0rSy33=0-k2 zQbMc2$cF(Px`xI+WMKCZ#$Ir$~M!yd}+zx4Ejwtupx{nfPn4w+lswcveG^-a$!bhEOz zUtz>W2s{AzI`@a}c@q3=dvq~kxpv8(#Mt_}EM~UNaIjCVmGMk6=jjYD#*>xrqDwVU z_jBd_XN%Q!^ZQS$BMr1rE81SH&06-B?iK5*yG*KF8{>I!(l)_xUo2TlpCe=}&fnB% z@QhjB?9?@h92`Xdgg6meJpvJ*3Z*x#jK>XoU}yjKhIOqWtpWxs`Eli3{*$O%2Fo}QD~QM zg@m^{dcL^i`K8gbpC=D0Jv+JvP}|CNO?|nnWz!gws;uucLsL=gmf*3Et%7rk@Qlqm zPeAAn91XKouwx}T^u5h%A!U2zcdNv=mahNZ(xt>o3jxY9+rT$WDh;dy876iTU3vO6 zVwf9OvNL4p8|Rrc)YJfnuf@bhyGP6l2+QOwQkFDrQFam;NegmK82+A$8KG@2Yu z`Y7LyW;}}|3M9Xa^j9ism5Q@y#T-=3Asj8}p~h4uqAY-W>kNpQu@=K}P^DD*MqS-Y}=chVG zaa=#zn8EXtK8{|Myegf)t7*FC%T=oid?zCfXp3Vnu=~lEOmy+d!2$knw*ScaF0@kS zs^$u`o%3|z6IyBH!TB8hIB#&Hk*U)P937EHmbhXs)b1%*>N+`iCx5?E_bFd{OU#+jz8$t_| z&|#8;f%zHg;krk5V?Il5)EU;ADJ&NR5Ts1cxd&@)yB}&~`jE+79yMbSlVD{=ud#2G zt)nt+$K=dR9mw0DMoo@FQI6e4l%#01@vxG|_N5#s(LbD%l?vi3F{(<@QmD8BF?84<^4Jk-ILqN?6FbNJC66@MurMw{bATTT#$$pn%(HQW*=)fsG6vr zPYSt5HNnHsElrGr#E-m0f!Xj6G;}|_25@r6b_IW>kXl$k3bjsSQ}F|^lV$q-lz^UX zgFc<25J1Z7fG&ftGf?ipmICl@!|yExZtw~O`F%@VjNv6!p=u(F$Z2-9hG#rU{W2#B zf<=(PgW3?fTqciG@IjK`Q;?ezH@%G@DegNNhO@AWoUYWlf$vZqcV)h9TJe0>nKeh3 z@2#Ok?Rm{s59c@{gEnY=KX@3f9}{`pLTbbvk=y?$*hO_&akUHXXmKpbgpj;QeR>TP zQgM4~jx6`hQfn&}yQ46b5PVeqTOJ3CD|l3evQj&fe2EfIEL3lBWTt}e$WmlFvCsJ^ zWPlQCH!WM@m-5t>Jgy{9YtM_a=V{z!d{tg_RbEV0o_>Dy{3W2`V!@5$o$xm~N~o~N zK9a+~!E0dh$6NTP!Z$wnq#|fG4fzL6O%MSC5h)w-l*hQ=Xb-|t-;O)wEtuW#Rk)d= zG;vLac`=Nu?MMh1&nG%wRyj8G7z+)L1}j!{+`i^9{v{VkyN}Gr<=Q4@Y2wn9s!4HG zlX&-oTK9udB@f2fAB>kC>_a!I3pT`4k{!d4d7Ld0=58$^g{(a{&Yp{HtosRc;$74) zoyOMV=;2AoFJHNC%35Zc0TDI$#h6pNRIgGjCSDH9p-j}!I`yP726&;HBBR!2*!pl6 zQ9@opxu)z^S`k(_;i0mm5Ke!K>wBvg4PZ@B-jpEnfWSvN;~a^%$bTR;&}su%0U*%& zIUygX>1~ENIlEsC28|h|_NDZ;&=X_bflt!sYi@y>Q!G_%XXO$#q@|3fZ!F-Dau|-gj$833 za8ZoM5X;&jTPA2A_{Xc^MTc#LELy(TZjk}+V64y*f@gpWHL{iK;BvLs({DXu8Y+R} zdt(|Re4*s`lW)F9#a!53yBcLlV<~=Y&4vUVjCRfVlA&HxY1Y;vDPSE{J8TqRYfPvz zB>iRHu#b9msx)3kI`lT3VZ77qB4BYYxzse+A4DrZ$vf&G6idiT7BT|djhh$q)}ZN* zySBB~`b!iN5;5l3FL6lad`j7y(qI3lfe_gQG)3^Tu8h5KU6|sB5tgR0&XYWvG zIRnB5k+rmkQ1AWu)|p}-W-juX;H8`ADSMw+EZyzRO14S?-^H89SF{-1oA!mB~&uri_nrjuXF-&0pX+yiP>=5`3$uXIs8P^6a1` z6h-`?s3d=*bSZi79$U##_d3REr91%iiS{|XqwlTaxyxt=hfbcq0Ds+gduP|x_vi(BiFZ4w&75qseS7|By zZ;(6!`rN`VN(x&^JngBbKLcC<=fZ}#)*8epF;r<8cVX+YXBJiEF+@YF7?U3~rWZ9A zeyNG0E;FQ+wnb&({sA;r!RAA9@~cgcFyuHbhj8839|vr6;TH%7LatCQ6DFNux`$0vD!$Y~C$fiWst20ehG1NMu2zGvayV$+okt68lAL zPDGx#i{clI3C5$%rNYs2;6$j|#kL^@vv<`|8A1{I!^A)yjJ{D?I->tM@GfMgu}1rJPc54(FvcwpYWLAEk4gpQ0cqu{ z%INN6(o&5Uy_hJQ69LI&GP?(oH;xE`?y$2zVtg>H5WUawzT8|mie`VK8Q*YdBe~HH z*|hJldmZfm;A&h#J805VC#g!ZuzVlim-0*d$P8MpX_uvaMHr(zdM9NhVwlJWzZsxu zO1*C=at026Hw1j?5s=^*Bv3Dcrss!3?2R#6196PiJU1j#Q!4rf$YrdaKZVTmj%b?^ z0?hI{10FlNx##5yjFU4wM&alz)ZXmCjL;7zfAhYghJ7=_AVg&3pusey+jAS?33?SVqIKC~Kq2{NL|m74IIzlQ%>{IeBbFb%B{-bJ^A zb@;>U9=>Lu%EuZIQ{*rsrb3sC(Xuo#h>oL-mIj8BP@g2;vG*9P`<{1$AJKQ&;6X<0 z8?q(iUGtEI|Mjl=x9>`RoJ6naa@NiVEHQR-XWYR?qxG;B`fYsbf1} zHKiyx4?2~fyQ2xvc%0hckHy!>Tgr#V$YdS8FduzQ+bSl|>^22s?FHjNMl0}mq$J0B zxxQJv93qXhA|hIS5jhT?iZv`^uqZ9*d}em4>y>}Pud*tgEt_EH$6^V&jou1RfHYHX zY(a>>V15Fu-xm9F$!`1FEHdFOybbILwibQL#BV6h!A+pWjP!2>rNj0g zb=|1hTYRQ6+IC)*sSd33TfdCAB&v7J=ys0MXK!al2iBzw=Hp5jQpGSM9-oyWjPQ9L zBFCA(FnD${<)>V%0%Ywu_9XSNyN~vAPw^4g>B{RhH1`nID)V>{wh`TAx5SY%yQyGkVADnnt;TCs(54AX$AJ)hc-%k9pp(##6SRV=e-&U#IVrA@aB-#JKwDec$&|d}F4|Xq{~=`cqZl zreWOa+Q5y{Bd1C?o^ots4E9rwMgmPYL!-5Wm6WWErJ&tX@I&rN*|6}Z-5p#5KhALG z$Kd<2ra?A5_9L}_A{8OP|5mGigW53u1h+-b{i|%)2wj$MJ5#qrHVjb*H_5qm^g>Jv zkypK_y{&cAcD3P=cEl2FS%^OVfG%xsmKdURaYHi|Pm|ytjEeLJ8tZd+M^f-DS@X0k z~E~h<-9Mt`uy?s#6r{%%X$}zuBeB&EtX{s?xFY?`H zzT5u#Kgobip3;VW*CCbSsoWuahY#0w5ygn16t_6*=ZVrJK8#4tk6}p$cEK zuS=Sd4SsA9{*I69EW*CE+WRn0{6)X0F7}KK76oVNXLro+QiyR+O4M$r8kn|m%3)_B zC>dNb)750wGpKY&jS|!tbJ(dDk9C=kciCV6jEssve_-Vc%pcXIrLoLHb?LPja7?}y zQrj#WvSNN{mmAV~1WzK%HmNtAT@f`qDtI^I5E-^anU{9i`7e0Elk`90re92~p(KeH zYQB7-{W*W%AmBJ;rD;HzMZg=~hmRkt(DARI54$h^Vx{BoOFE%E&(NFX{A(!b zNY}E0_iP7qA&?OtJR+MKi&wqSe!stSv>wu#%rQ2&!Ht(tG3^C3guiUYy^J&Im_}UM zMF--IyGi>xK!LRo<&0H6kt>*{32gX1LJ4oHr(w-ln=lbCe4JzXs8 zGMAwbez5)$2Av@g^>PNNbLH!zFh$S zG4kW9_lB^Q^))SU%)QDS8r;~3Z+ zrlAiJ_{A^7(Eou#zoYRMRAQ}V1ZRN3tF}Qf&#(nqY{6KInkjo}>-(JK=u?NC&h;@S zSjcAD6E~k-o7~@Hh=M^@L3W**@&4Vm;WRI>1=+a-Z)bBIa<2^~o5Pr^SDRWJ_-we# zrnPzo96#J~2)bd3pI|=H9bCt@HdEp(8-nu|MWq7qQHch#L9@y*juA}mIn4EhJ`D3g z22L6tsZVt<`d8)x-0qJ5xfM;?l4qrvX_m3eZPRBNKI5e1ayY}kR0UwO%rNBQ{lhW^ zHa)?1L3Uk`Vdz&9m{~F>flW`08mq0^PpWpOSItRGJ~C_@t+o7=y!n(I^)c5JXlx4C z`cy0Jry>JsP9lJvUcN`aH6yD2DMt|%90s$HIX1FJZF#q_NV0ZCLw1+kMl83PAls-Ku?M}+wmFUIQx6G^2po?63Bi!I_CvR7cZ9NqHA=KF9Lk7LD zAY5F2%e)*F=aJKqipr{gqYH2O(y3i8gIzL7VYu{Zg#4T8Oig6MQwoWBhTip(n2b5@ zmT6}?m64_Gq&!rm|1WxfJQ z3*+`{7aU%2n$PD)ptr?0Zi12zZgK2c#t2?USHb9sXnTbnw@elf!=paTCkI74SRpnTM z(+NVJ@G~6v`%IVl2#vAvK5beY-epEYH8t6!+^J;qL3+1Axf|4NK0xo*D|cTb-LVb9 zX~vMN^gI$PsI5T?SlJ zmDnG8l7%+I^XfQ_P_&|CQg&S&vqj_@L~T6aveDyD?AV)8yc#glz`HA^aMr^J>_i7`)^U;J5PUJ~%XNnO;F^gB(x`IAPn ztr4YfsS(dP5~NwZ{6kt)t?mtdKVMzEU3P7zrCDlcPr`w0m~QwU2*C#han+w>YmRh@ zpFZ=f7RGqQ@xZCF8gW8n)=PMW|DOenYkXr~q9l3KCLz*8e&Sm%Wi5Z@uDnV{Nm8)t zuIiT-99pafPEosa>|KYdr+|SPy!U+^SEK3cFkU0KD=fovc_B?q(+PP8 z*xIq!3|Zikv%!LrVaoU5D+{~pu>$3%4?8XAe#KKB#xSF$f^2YO#-s`DD0n0&w%9umeCcQdbr?+c#LI5)a}W|d~bu$Pel1|oli;z}U(DGOk` zU{7F+Rq$4@Pn9T+P)3G?ZorkwIzb9dB)_i!ptqq4Kfih-D{y#*o|@lGBri9h20E^z zgcHN`sva2uxFlTv>W(NjBLn^GV06-3MvdGR{BmBv7L~!RQHaOR7|WSO=8FdTI}HH z8Q}Y+#|`0OryU7(T5iPVXan|K=CJc5j#gtuyU}@E?1a+<Dm4^4zm{J?IbB zTOfRB4*7l##A#o-IO6=~U^e7%d5N;eUg#n60%9F|L%WKZ7}P*YpY+z%lQ zMEH#O&J7F$Xeo)E5X@i=wXDQqSKsAjvB1nxYt_@)Tose7idx&p?q4`LAsQNh$cRh+ zPU;x}=R1t0A8U}xm^a}sl`jYIcRzk;JnX|m{&VJBGjza36map#87fPLe0B!Cg@l<` zK`Cd+8EJ-U?$2~&HG?3dmCfg6GLPO;ckOgHLSI`{BgZ8dd6HAb-Dk)IrLo`{^ZhrK z)*evq@4Lx;$h2q~{1g9mhKy1Qx1WKK88YD#KOwoago>B9Fg64q=9_ayQVH{;^h07B zB+TStdfBtGAj_B7k#U`fG>pBS6OpgO3Kg3h`Abc9fm&*!8~?(h$8(OZ>d~xq=!!5- z@I%&+gE49kj|VpK`?A)0*y&Wx&wt;fU%f_^v>qwZcSEjkgXW58!Z3P$$qYiDWKDt( zHr>smDPa85qIp$i69!E?IeQrPwDjIRbZ1Y7P0uVY+V=Z{k48bGkniZ}0XX*Xw=vOh zT7+%p;r2quhjM*_<7>!@i~laWhOEkS@G2-F@*QL|1bShZyLGi4TAS zU9?^nhaR-7W5Db|-DUR5X_F$K>dG-%75i1bZoy%`Kc8P*E%U>boz~tF+GA0v?0*XX23edD)|aLKMqk!> z!}h46FH66zFEic%)DeBzg&PpmOSHf?_(sWp>B~y4vVKM!aKrsy`m#@ZLv$(nva>fx zA;ofNsSj<*@f1SzLtmB=)|dHPar*qXzAWY_DpGx!G79hnHjkFczuQcc7*==K%}E$W z90D`czJD`e-JF+U7~M-oYYz5NfBY5j!@I>sq=RSd2wir5Y3XRLXpCS_A^4tnW~n4i z&QgJibL8Jx{^wU~uG~U#wYK;!xgpJ4J~V606Ygc6z!UT4Yn>i{<~{_&I^{b1j5%T68>{ zXJA|QU z)74SV=-{Xu+5)~7cw74asC*qcs6h|MzIq@v^WOm8GLjnsuj;*fT%~QbuQN_3O-KRx zu6vG}E4@)UZz)Ev$+J=icZ& zd-5*JvOf$ftY4`jj|MX3^r0Va$Y;;(cm-CYX)w`nq~0KxSE0o=A)-#z3=gYQfBh1r zzg4GZK%I)hhE(5zvpq?as5efe%kFESOnZvu>X&N;YN!wguVyD{fE#SvT8`Ip~(DL>1&2p+$K*D zhNln9WLt(%xJ3o-THmV_9}K295K^PBws%+AQ@z6{>^~G>k5kp%xJ}b-`5|r2?)JQ0N16T%Xza}KnEp=ELP5tC62Fnj z&PX?cThNU=n0KCaeSM%xSs7G0mXizrgZ=2&5&S~3+@}aUY$vYU!+nMHYd9TNB80N6 zhi7n^ICYZrkb0Rfh3rkyWPRk5!BV-=LKosW6vvRYkzxiN(TCvqdFn*LwG;Uu8GkxylJ_!VDF%yb*C})|1 zU5T1Ph4(6VE-8Q6-9qJ1vv)^WKe6QyS$UvxpN!LE*he3@nhy;d`(Dj2-L~gm&dN(8 z6zAv7YKV5Nu6|VOgc`w7dAhqQYNV&%tlcx_iC>%|RyxF73LLv@hKI!MvIV;3KhZ7` zW5@!fU}B<)IKD=dyHMD02J$ofgJjS|f^Z6_b}fyU%m=&4+yhyY7?lnK2gRusz4)p- z+EIrn1Su`2WjCxdJ*6uz`QDOS_Q>W>&St4LykAXfzFAT+&kunf#Cp9lz2c=yc%kg2 zyu=>CUgq4~BeJ*>1^^T;KCuOfSgvEv)OiXXmw-uJ#4%AeU@ZcD)nQuZlHW(B#kQea zo3o(fa65I5Q1q|b1(za&XHk!A9R+gqmh57ciGd1U^{5(}kUTPbX#P~vOjmPFWA~bg z2deWLnwW4dpZR&3OEL!Gb$~)5cs}(5SW45j*yi-9iXOhtfS>h#~@a7mCi2`?wFs4%zJ<( zkyZ3F`8G1xiw|g#V}6*Q%{_)Frvt8L#K4}fSte^J_tc&_cWVk;_l+$6OD3<;k~*qx zh|nq*dPNhMU+T*uzDwbBv-ZB^Q3{8+UbZ~}%Q)CEs}Z111nJjTsa;|h5yD1lP7Rym-JYv(TQg`|7AC7c!IRh@ zxgX5;;zbD7tXU;i`r>cfW|UYN;6Y%wiO8S`g=`SimSjeoocViO{n~l$xr}w@$;H-F zofAut5Z3QSJjd3)bt=Y^+&^=azjKt{veS~8dD#w8%r3vZfYGu_K=2GiWG0vYh#`o; z$M1x1IylVJ;DNArD6HTGZC&zJ>%fWX@tJnuAz^N;ng#E7UD*%eQA#5vfiA<;7_3H=K&&UwM8RTPHFNfvbkJ_@=-W!*HF^KZgI$N6Ug_!y0@SQ44;;&KWPU zEE5YoFGJp>#pIbPR#<50ykXKAnr=XhuK7tO|D;b~Hh4s~CCTMPQjf1yXP0ZhDZc7~ zywp1mz7b3;m6^6SRr#N)nesd~VO4pMG|(684k2o_?`OFVc}8BK1$hJ!yz|r#=b!Ef4NWt)e`Y&FX2gS~VX^=0#XtvAb z8TzzIWHxVV3^&rrqhVdJi@dYNYOk|u>%y->V9_r{r4IVPNHZ5c;d|86MUu;=lYmUwC zK+Gwu=a-js;GyT_@8;{7Wm9UJLTk2uP{rG3he|DKqM?tL zdqQtD^06P+Z;N>)f76!Hn?BWl^6|Dm?~Q#crnXh^H;vx(w*Ku^OXrhY^n<2GQ-Y8> zlSp3>%kp#c*>Vfg}2xac5XD}t+ z;YGSd=|&v9uatus_7zk~G1pUg?m&DbiIgN2{ZpF*GEU__rNtSkT!PhtO901J3=e zx3<9eOE%-iLBM4Dj?iJdi{$k2l20h4FBxX-&< zKBWim^A#F?_9|EIDfyaH!#}*<)q#x*H*>PMx))9O;)Y#y7JJe{m z4AJmv@gLoM-wwM-kIlbTV{FLfimZxLGc+dMeG>QmDavM?w)HyDQ{ENZf<<`pjUjYV zL0qGK%6U!gKxtgZ4*wMm4Jqf_FZ+t&_h4{qkJ!r+zAR+pwE2DOb*GkfP)m1T22kv+Ff>7c|IxMx=T7i&$ zCc8I>So6$|r%vboL^01^ITy&Kw^FlGsU%Vl8i+$1hhgCA8T<=b_!@?H3#)13Sv2|4tNC~z zF0EH&&&W2djb)y#?=*>7W*9DAuSd;uwRmo_DS212CN~T;=|@Z;7wMDM4!p0t3{P5K z%Ei89_qb?k9qN~s8P_=?eIjw~k@?Xj8n(p7x($rGm?0hXUA~_%Yz3t3jd#+vH>f3$ zsOhG9rKH~BVRWTN>l4keA2GcaJ{FP9ttqCkxqD~3ibW<$vz7@6hetXkHQK@;wXSzzb zB*PUI$)cmP<6DR`HI~Mh;J+>c+ZF%NWyg#=lE{7vq4^l58N}iVdPCE2omMo2?erGG zrIMM_Ga4kIC~^qSQh_(Zo63{$sC(m*SsNazdiSl}Zx+`!J+#|&-}2V3hUg?inwkux z-(0hsN^&2DAY0@3=;DrG7azN&AZf=oe2Z*RKKrlmXM?}}tYV8tg$}&~#)E!ajC0lQ zhY8L8W|vxWMYApyjbL-MnE(2?>U4tn-LBJvS(QeLXS@vQyrhG$9IDo|nsvIk;M2dF z-{=~_LYl`;(rDv$cXG@~&QPK|+!=MP6HZQaqSHNpAIaS>`yL4)@Ko^0kfB)($+Y?9 zF7X|V6|wiwz!;`iDZGfxa_*mbHJ%@b!Z2I$qteDPe@H650{iU`;Yj(;NUkDOUu9ZO zJ-mVq-B;6dGWd6XpDp@6V9J+Ij7xilz}t#ps^T!>znfQ8$Z&6U8QQqgjYzFRcG5>^ z@NY@Sj-WlncTmEl`rhoq!2CAInsyM_35%#TzOSCZJ+vZO$P7qd^|$Qo!l5_*_m-Xg zxtXE*66(>!Jsz^hlahG#teM-Q9)A}*du>w#8qygCrz?B7_hWJJ*F+&~~&!v{tLzFVfYvYr86QZT)p!5sTGLow}~G zt+q=2gI)iiRi~};e&73&P;}dGzh6F(-2Z>hz4zR6&pr2?j@~ukmlS?19Uj$J{WM&u77DVeU>EZRYne%CeR4|7DE4=!iI!1 z_ys+&6u9cj{rxh7`laRbBdC4wdz zi-T17i$PCzjAs(8I7YiQveHz!`*B(6@dV4%LFLwiojetv-Xjn6beDdpYNG6~?JciV z!5(ku$$B+aw6)~f4Y{MBLSg!-H@Chxeig(0S_Pfwc$z#Oi>ic(h2jM7(J-YiM9J?0 z0*Ezd$1IW=UfZj?TUA^lJGDS9nFCgC)vVp{riyz@wOh4mD=4)QxU6O$39jWHzhmDQ zqGj@6X(ElRMY3sL(D*HeK`auOMC8eAL({FXZAG^ddj8>be}Pov)G*47?Etf0Ed zgV?Plr+o5Y>#2~_k~O&RWH>?QpyFeZI*vX1@(2nxs;^1wmsSQAd6c@Y#8^r>^{R1% z{+dXZF-6v?al~6)*4S+i*EbO{v$fG3uWdk=eQl-@Ykj_5#?x*M2Qw5p-LB9x0Mjc+ z@%krI!BM;J^I7Fyok6uGO-aeSu>(kWhbpcxN~1~Gn+gSiOflws&VN(Xn8i2`KtAc$ zzow}7>M3f$0*d-97yc}Ys!xW0G(}y-8RPL^P}IBgC~EaoNM`^Gn8x9a`ACXtR^t-- zNs2myip+Nbzo%j+979pN5w4BLaqPTk(gt=;4%FjCP9u8{*tFyHc!`wZ7w+*3qx`~X zzmU`^P5$1V>T95EckFeb%{Kg}^?h*dr5kBz<=RCq! z9^tA-80-?}cL@u+1aFtn*d?@e2~Tzj8@hz2yM%*X!l5qV{Vw6JX5nG8u-GiDG7CR7 z3y+zF7PIiKS?CQoasrMSCA&l$80cp9A$F5rnBy1b`h^<5u*@$M_yvn!sPGF;zp&LW z{K7B%$}c?c7hdrTulj{ue&Kh1;rD*wZNG5BFP!uXXZ*rhzwm`$_|h+2_6t}1!VSN0 zvs1|K6ttZ}X{WHfQ+TRV*w`r??i4=Yg^9e7#tT2@g-3azl^6Ee9Z6P43XFdR9IBE{ zqHUvSckoun#ExeXqAS@d+MY$oJyu7q=5f&k4xM8Z??^U1C2F1$x2+L79piXMhS`y> z*&y!pi>3~7+Y<=PHaqgV9ErT+hdW!vdY|ZVa9xh9`ZaJ&ZT^YqcZ_Xbjc-F(k0P_J zEV@UIM`rtCDN~imF2ZOVV%M`{SVeo~YM8VsZ(8puc-T|0%2P0(FYxjObNGT9zMz0F zs2Exq6xH?@DE={z_!B?gRbK9`Tn{M>ikhu5PJ9e+@>dVu+dfNWd>6mj2xD_uSkWBl zxF#CRqlual9DxrpJU_LA1otq(pD}YN zW)98FVVF5lL(~_N@5F=BmF)JCGvc;0VrR{GzBg#BUT>cxH>R!TYsQ^>E}IRuO?}-* zvu=uN=cph`X8sg3#;#VJ7jLT(XQpKNv@{u83?(wjrPI=7aY_ZWnRChgYf^W|MJv7} zYw>gNQqaF{{HxG63cn`24Gq08wHC;h%6?v8HBvBy*!~aPEV6r{ZXI{@?0P6%*WeKM zTiDrw0&#XVSSLhRx&UTb7}u1eZ1A256s5OGZ9TbGb`;o9Fr0$x4X~;KbA+ur1KhA` z7eNqGSUGq*#rS9MX#N@q^VEl?=`>N_ccJ8f-m`z;kgRY2RmkYF#<_APS~g2f6?a5C zb1uchDrHCX*V0W_#j#)$^vHg6{L-OuP{{ZG;{bc9M^XQ-$lifGiYSWTKkgFJh)19J zG)pAs=*(@DfiujML3yMh*u+tsHjbGGS(PQos!iybySzx9OPd#~aJDI{L>N>A;yx>3 zDV*f(SAU5%?wT$90t|d>T1jHqIK?#)7Lp~MpQV6D75e2SeH%ll9AdLgVq#J*`Vwi8f+06|^w-24A>M6I;!4D$ zkS#5oZMMoNur=Kabk;&iJ_EJk&g@fh1jA$Vqv>5=BcnCgR75M)MqN4RIeVW}^px{s81pHv;WX*_bI{Mexh z8*eg15!%IOkqI_Yaek;!{_{AxkwE_y>#70jP9r;k61P#JZUBsqZf_xkU&2?OL(j3a z3FNW6=^;F>Ga6(v>$@r)(XbFh1|{`qRvO{_L-xcP+DZXfx|#GvNxKpgOmiTmLLR|0 z5KzIcuHvpuQL4hi^q9M9TcqmrFSYld>G0#$JVDb4KIqWR$P&cBgHbf#_r$rKV1 z>~w7DsQIHmIDl|ZYRj-1 zM3g9sKOk}U4aJdu@D37}4W0<(Su#h$jrjxm)N)hoy>C$e!BVjR_)e3FZ?KO=o_ zg8WW|okEpN+g^Y0D;rtAxE!lWVkT8Dp-9PT0S-?B@41MRFH>1fKT;`;oit3F(twZf z*29=2-fNry+Td>S-dwmj@X(C+Q^xtwD>i3!$yL$5y?`BKB6ehs94PtFcA@@ybByWY z`=VC1Ho^RE@t>42>YuNDoDPx6d+z+BGJ$m-=d8t4(yOx54-o)uifeD*6*zDM-|(%C z>n0MfWDp*Y!&g(B+r7)ULZY?ePPtULkw$1W;YWT-5cqLz=`X%hCd}Ad@&VdnghcIM z#Ln*QuI`N8^h;`UkCA?#Btx~ayM0~7bZ7U(m)xfhibwMT>}-^@sl0o$3hZz=H3J!dX?01s<-dyd;M-v#1=;qVYSc9ACNRMrLCfYq$- zsoHof@Ylojt_&Du7Zb=mY4gjXzb;t+8)<6S{TD*|>N;&N6R*8)oAosc4)a~UP(9{4 zUoL5tq0XPtjbFZQH5=ath7!s37`}V%@(~s#M;*8I)cN}B_m>Pk@`Busp?LXQ_`o70 zu1@ubP9mMz;lnrYXqLYH(qxpTgy)55&G}6Tweu0pa`r7XS4b9qOSm=mE&4asA%x+# z=qOSv8^zeS;E2drMuA@h`#7?ekwfT@qN4tb?fyD^?*^f|rVeB=*jrZ(kTUF#Te`&- zf$IHO#B)eoSnj+m*6$-Npldt2%3E2ob_0_>35`pj@{{I+B)@%9GlqpYDw|8NJBN5n zW{VG9iH)Wp%TJlspKJ^0@yZspRS>zj?}(EpPHNTl=Bjm`s3>a`ZI7aSI8H3!>`{zw z1x>k#+NAoQHX_6}x8wH)gjBKat8EFheF?_jw!jJ21jke>) zNW>cWbyP_2oqZin6RyM&+9>_*%`FU(5_0j%w)t9UM`;<7zeN@^-$6-p)NJo)y)Lf$ zwmExU{me#y$~LwmDN%tWUFjXgZxIl7xjMR{q5@GgE(Cp>)$Ijb0HAmahS}9X!tj#v zTy6i1xNf$3?~@klx`7A#GQO1OjvVy6}{7tuseO@liBh`-H&3qlN;S;?=-< z5$HS-h?1KDFR2Mqoj;dqcuJ~)%s4)MoiBvqUF#%xnRbaKXWH>x2|!Bgz+Ool&QR@q z+BzJDNG@k6apI+WDaECGm7^}*i+z(kd12)8F1gG{sYkqpJ3+{6CX&OEj8#G7HoIiI zOTlK5fJauE0&?0TkGh(A2bE;Rab|mZQnP8PZ*>qNQPIi~Y+fM^eRd?qFDEd3c5Oh; z_!bfn*7u1IZ7wej9$A3UM;g(dVEaUWrO#*_wZnHARvLF~rk^O_d=pQtr8DSf*FI68 z^T{}#_N}F#;AfK~BVS3DDWul|{Awx$VEgJO)74b<_VoCjs|MeU-SOMti+>LWxtIQ) z9}UsaqUNkLdc2e1IKs{ndq%b`vNFGPD` zFT()DlvMxsO>6~hdPf6CeF}OSh1z~1N}La?D})Da8H1+fxF#;SySLmPtU7nlgGAN} zABI?RG_ShmYbDV0Ok5o%NhF+No3X596Is>fwC3{AqH#9s_duAH7YJG+UB|xuv2EQm ztWxvr+dxhAGoRY_BghJvVg~`-B3TS=Es*aN2TSg1FM5}h6NNtWf?5nAk$m&t0zl`+DZC1m0RvYJC=P(bqfof7_Wl9u|N(%N#aWA~9_ z(pn?!Zq@&lK$GE*hA=#1KdL#to4)JyZcuOM5o1%dThpJ1?nAh(uID4PuC#~b!@{p- z0V&_ZZwcun^I(5SCrSB;)=&f#AOL%aG1OKBFfF)4r-x`mikc{juo(32%~jv#MzMDQ z0h#8$ozxk-GaiDGPnI0}xcMx>3Z9JT+e5lZtDd((zZkka@o0Hyp;R1QH4Opwj8@!& z5l2-kzB{Wnnl6xp<|@+6&Z?(6C@&m=Dyh85zTyz6xs*WHKH0~GfGv5=lbgdxZ7G3n z=j3KE(1>GcbH_X6b%-aU6T~2KRCQYSjRajlCArKo1~XW92@7!>Kyx2uC4o~e?~^c{V+#7nl3F&B^7)IB!Uo>%*i zPFR9#qKh4yU8>m`$&hD(L`VR9+yZ&h`(s$4upBDmU8=iIe;eqF-_v(kgbf|qxETXU zJOAs{SM5i>3if?M_Z@z$uY4r^0}>9EC6=c18Ocd~>i)$_b6*a3VNYMmyqKf0Us-(L z8nmw^Hzx0jwRb(3{dVI17gD%m?gPWtC4d#~PXjiru2k2bL>T}kBJIun{)S>xsG&8=1< zO=UTIQGfrHj5hOg{YD-Ku9hcn_GnbcH0nN0;w8;U<;BE3#c=~iw}>c&zLykWO=vP? zE7Q|nY?&o;1}?J=98c;|xjm?G-?QHG`L`L1^XV4TS${%PW^#H4V<`|V-~p82afkn+>cId|_;MrI(_u zRFh#2YL#2eB44A_tPtsB(i)8y`W}>0_wFKoTg+zMfV$G%^1&NPor-1%wI((x*^%QR zf!*@KMNRa#xoy)m^r{M^Z9XloRVp=;a^tWftG`jUZG)kqn9U>fBd$Q6i{l75R^3#@ zQ1}p`u!&;C;qBWG8E#PR;3|vq;QI=0qo-t%VZFH%Sbf z^y|cdsb8bT#nb7>*E8{ty0|EI^n(n`yL4b4JenEjGRi!`sFiV<`I&cSzREsFq<$y< zaJm-xr$3pIsQ>ADzDGsRB~xw=W6jnge$i;8nAJCcpBvCu2aYk1k#2-67!YlTWapM}Ma>nQ@6)P@wsn^D7bO*aVaO)h znPzu`09oN+BRrq^wO|bnOJnHZ5IM6zYiFY z0vtmDZSBZk7WTFU=!c0DFKTPFL)e?oIj>fO@9oDyd;tGw6r?q z@nWw^%xCsVrcFaDNVgY?-dTfTWGp+erT7G%t0d25l&YA-O!j~|`50|*A^-QC`*ghw zJc_ui;?;r)}Io0 zz$S{i{Q8c({^b4?b3An^C>o1LmA1%|SMD}V*Jo<1@iauv*gp?kR+U$%s!taek9yE{ zaJ1|G%oz23IhjXs$%{N~Gay#A`=&O5XbtS&c5Nq78)%efXW=zGE&hbD(T2k+gDvjm zoXnDzy#D6E#xJ@uj^-=DmizcI0AeeXaWq$h7jS#;qW?w$N(0|&)^6;b)}OiOU>~@o znR`qR6VMiIFxyRw_E?vt9K5&cbovL}_xTQxd~JOhNA-_vM7h0EG5pmcy?O47lfM4p zqSNVroz9>?@suanhV9-HT)SdpEae;J%3a})Pr>u8WaXwk?Q7cuDY4VaV>`#*AAG6% z+&HH7Ju$H8euGBNAJRd&G(FdjdXm=3)9;_v_2+A)u>(YhS0_2bFJ_c#{^1c|mGC_` z_=jT`2ARS)#avtLl+x$EEZSop6<7Lxj5ZE~&3Y|GX9{wdy16DnK=~4Xy`>YuDqMb?K~V?D!-7tB6=F5=tSlbc=1_!?R+4fuB@K=;_0s7 zkvGO=Gr=9y=iQ}Goy+(#Icl1pX?;d2z4usOlKJeSWFRd$1~p_FohAw)i%vsbu)g425a1vZ|la%6PI9{Jd_2&gQdpyCFMmIn7lC;+ShY+x-IY9o=jg1rcB}H^wQP}k5#4*XKOZk0lDbZq==Mc>l!=Sd zl&a{nhN?Yw1>V>%^nm?H!G4JvbfIxYcj>f`{%*7;#u~IKyjE*Soo?;Dlwt4v`a-K6 zPXpuZNGhGpXFh!=;*&fy&nwK`@z#;Cc5MpM8q%lBzr0Ym5CG`iBeH(QLXkS(oo=6&8PzE{-oW1b0}pXEHP|^O@@2`2I}O zL4St2S3I9-O5$(ksxwTOZtvNU8?Gq+7|r)|%fCEBBxv9q0N?iBIuc3a8mq`eTSFeh z3r9jP041-f=E|xw^|e3GR_2-*c1Bey(|yxN9@}u$sm4O^8db11eh)`YT|J#I{2Q(S zs8LEI^+oC{jDewTH^uEEMO=zX5FB5QjUYzi25oym&`am(4I`@Zy(iEA; zHvZc08QWM_**%6o-o+mx%=@FO0l_b<%;8g|J4Ugp84Pb5qp(u0ufR>RPmW%3j#-$Z z)TMGTOVsjVe~;$QW15sc&4f!Djt{mon&d2X+<-l}qcZ2A^V^wy>6FBvrHU z&qLL`NvbLB`_8W!JFvEUd)4ol2~@|tO8W$Q(@M_-=7sCO>dfXkYf{oxTS|S`^P!>E ztQlw3+|m1yh{vgTX*%gQjN&8ld?y2KIp{}Mb}TxQ{v%@FhCd`jJp_aNQmVy&n38AqD`1&2*v;j1mv&uj zg$8p8z)6DxSedWyU|RP;#g`eX{l1~5bkBT_fv8H--Ctw1XDepD&M5v{tf$*O(R+E@ z=-3sdmFm(8wc>XWj!#zlZDVj3Iy;~lOTE1Q$mZ_Af&Ld>V)nf%b_Gv*G-LgT_`XBQ zRR4O&JDr=vw9ckbaU2T+VrVi-GwhvYuqD~!>B-w)c!5y_MO?-tsYbX|OlumI{r=2$ zrjVzswox;pSEy_=GS;X{-#`=xO5ydwG()_ckB~(5$H^8m1ib)IJXE0jv(SKlC=ZRbI=M(7U zGu8wu`MDhnx{If-p4P>*7K!}4$rfqdDHtxf=uB=A_2e|{WfhCU+eo?sDAdpyZ%U?c|j4~ACJmkY2 z-HxF*9N$5+fVulPFH75#w>~K`T65%SR?agUtOaR?o|{R}#Xu{yB8}3Yy<%8Ty^?DB z>QLw-Il6@hSOgKg6 zY_PyN;;7lOkEQU@b3X|u|0_w}d^tcLIOA8&Wk*H#t7^VQ(m?i>@MFcAEoNid5NWB= zyE4qMPY8R2hMwirNQBWr}h?D(z)3S)JxOP_o||W0EZVWTPoLtZL2W z(WY0=OxN3GN_J9tu`Fry2={W%Q=rsR5TIm&v`dxSeB&vz!ES3NOXqU(sb@c{TCmB`qbb}w~YP;X%Zbc!;bGV zrt#ew^lB2I*&;?HB{xd`8_t${Mbq9#ZHZT)POcELJ~?b6E|m>6IYZ(_kQRpGU%Zb| znEvtMEKSR_Z=3Wd-pF7NcIIldtm)~sz2pCp$@V_+aRw`Y;$tYzM#UxPNNu^lqu1?( zqw}@Fj!MEB_Gdm1DIDUce!fL@<6xqE{Ee1h-{?)d)`fHR$6wROoy2Tokm7N)=E>3e zEpoKpEmAMy-5Gds;JSeiO!RhLFS&Tgc|fzj>`R6~c;5n$H#zK`YX)T6xK=AwYEbAe zubWQ8Am|0##wZzk=LK8$mq8|nOKQjK8$$3ET*^*?RjS?>v0TW!ohT=+OEoF5C1&Y3 z56V8u2MbaH1mkR)MK2&7)o4jC8UFbr zVHVl*a^^-7PxZ=fX#OnniB#`vH}r2@)~x*Q7@qK?kRbqc^_?G@p;22dpN8WWMAZ1Z zma=he9{Ni{z#OYv%HLH3AKFiRHPUbpo;L=hHwBt4$n{O{iop|q&`cER7*b}<)e?IE z4Kb&YTT$Y0ZfQxvCHolB2OY*|Ak=dxATjF3|Q z|I<4?9fidBHHN)|fzj0D1zDNrQZEhUs&)5t zV;f?b?IW?7P-YWlRpTtF%1YymmpR>)*#eBU!q_$MGpo5=FII{>6&e~YhtK_CI}=0) zvR09_N`^f-e!6K^$%D4)`ix{lvfOf2{OA~;EI&eB+0Q~<)QFSO_L06g^^xOV>LiB% zR(0xBHyD1UU);#3Ut}vP$u;dmdr%G$7v(m2eIB*%ZS~ryBQJV=bv_9YE;hZZ= z_*GZSd0nUnxCSN{z|-}!G!LpT)PHC@P;xT*5W~i66`3@vsO~_IlIF^oWO?-4bX;6U zGBt2HKLO9JJ<0OV`#?9L{ijIBPMx|u;;ZP&F}^`H`qS?n_=>yMfxrQ(8)_e~cR*rB zX(GBUuQg}ree=|(BuL^k+yMb#<7evu=pq_z%HxfTyt$gJ9AAODzaE$z&tDd)bE9y? zC@#JX@%D!bbj4SY=b(=*ch^d1ygYyURRvjb5h* zQ!GM9@)G*-CFYMi#^&a!2VHQwqBEm)BJMpVQw`Idaz4arQc$L_SD z0M1*z%!z4@`QWvYUgdHB4uleH(IZUhY|b>RfXpL;yu+Vmwx$T)M=`g~U6SNK#s44c zCrjX8RZo>#<`vv;5gow+)LUSAd(-m>LRjEASJ z!R>UE*}PtxqiSez68J9X9JZPo&Texo4XwHFK_QhlB0M};$SbP7RT!LX&QWE7gdCAnX%%JCU&P}P71QyJx%&yZbR7Zt#IU_iNj|vMFEvLn=tz;IIO!yXC6n&xa}*_7SiA0ZsIrJ z7b+9Ql0TCBmL%S$NUcBMJVWkKYLd`8U*O38Arx7J`?x~WtT~}^BxRFNMFVLZA(-%w zqSL0Jo+%YS;G|f+zPuLbrBFpem$slmSUezHoObOtrGmOvA|8ytZ2+N%<=rUQZ3Cip}c`C&XS; ziCH9-Cnc`{73vrsASFikoFOPi>LS0={3h8kt@8+oBC}WOsg`tncyg-3F}yd}uWIVt zWnO1P1YfVHz-qyyj&%EWznqdmc1F(NS1u=igEz&2fq_$}PMsbhir1)X*R1nq7Z~ws zfTo!!8B_z34~_=m&*`D+>GeV+@PGM@x-G5{Fb$yhhiqFM`Y8@NZtmEfA=7V?Cqv z&|mg4Tf@>@0xDMw_d>Mzmfk=%z)}d3&{Dt^E|@29^A^lCTddry2RQSrnKR*2=>{3XxHHTrJQzXRiYx^uv5kpED(r0<^&-FW1oMcGr2x$;wq@Yp4R+bcc5hOeR80 zVPLa8}&1-*}u-rQz&S>fza`+w1qPbUTL^a7%tb zQjdlk!vDk_@kfAM;dBE2HRL<3q9HVfkvQ`E|Al`9PLVPQPT)W=N@)C1=_i{|1ra>s zsUs==eZ0M)f&1U`S2=C&|1Dm^iJ|ESEaSPodDM>F3Byn%asdrtR&s72Qf|iZI0A$3UCuu*SH!BIB1%JcKA}JQ#k{c{296QTM+rtU#T&@S^ z1DbWUWN4)n jWc`AaS!VM(sz`anPfGSI3ymp$5&eDtZSL&QQT2ZSA6ni% diff --git a/embedded8266/LICENSE b/embedded8266/LICENSE index 5e01f6c..ca83dc1 100644 --- a/embedded8266/LICENSE +++ b/embedded8266/LICENSE @@ -1,7 +1,8 @@ *Note if you use the ESP8266 port, you are bound to this license as well as the regular ColorChord license.* (Yes, I'm aware one is a BSD-based license -and the other is a MIT-based license and will consider resolving this if -people want) +and the other is a MIT-based license, but this is not really a problem for +the ESP8266 as long as you follow the ColorChord license and only use it on +the ESP8266) ESPRSSIF MIT License diff --git a/embedded8266/Makefile b/embedded8266/Makefile index f551217..d574ae0 100644 --- a/embedded8266/Makefile +++ b/embedded8266/Makefile @@ -6,14 +6,19 @@ TARGET_OUT:=image.elf SRCS:=driver/uart.c \ - user/mystuff.c \ + common/mystuff.c \ + common/flash_rewriter.c \ + common/http.c \ + common/http_custom.c \ + common/mfs.c \ user/ws2812_i2s.c \ user/hpatimer.c \ driver/adc.c \ ../embeddedcommon/DFT32.c \ ../embeddedcommon/embeddednf.c \ ../embeddedcommon/embeddedout.c \ - user/user_main.c + user/user_main.c \ + common/commonservices.c GCC_FOLDER:=~/esp8266/esp-open-sdk/xtensa-lx106-elf ESPTOOL_PY:=~/esp8266/esptool/esptool.py @@ -28,28 +33,32 @@ FOLDERPREFIX:=$(GCC_FOLDER)/bin PREFIX:=$(FOLDERPREFIX)/xtensa-lx106-elf- CC:=$(PREFIX)gcc -CFLAGS:=-mlongcalls -I$(SDK)/include -Imyclib -Iinclude -Iuser -Os -I$(SDK)/include/ -I../embeddedcommon -Dmemcpy=ets_memcpy -Dmemset=ets_memset \ - -DDFREQ=16000 -DCCEMBEDDED -DNUM_LIN_LEDS=24 +CFLAGS:=-mlongcalls -I$(SDK)/include -Imyclib -Iinclude -Iuser -Os -I$(SDK)/include/ -I../embeddedcommon -I. -Icommon -DICACHE_FLASH + #-DFREQ==12500 seems to work well. LDFLAGS_CORE:=\ -nostdlib \ - -Wl,--relax -Wl,--gc-sections \ -L$(XTLIB) \ -L$(XTGCCLIB) \ + $(SDK)/lib/libmain.a \ $(SDK)/lib/liblwip.a \ $(SDK)/lib/libssl.a \ $(SDK)/lib/libupgrade.a \ $(SDK)/lib/libnet80211.a \ - $(SDK)/lib/liblwip.a \ $(SDK)/lib/libwpa.a \ $(SDK)/lib/libnet80211.a \ $(SDK)/lib/libphy.a \ - $(SDK)/lib/libmain.a \ + $(SDK)/lib/liblwip.a \ $(SDK)/lib/libpp.a \ + $(SDK)/lib/libmain.a \ $(XTGCCLIB) \ - -T $(SDK)/ld/eagle.app.v6.ld + -T $(SDK)/ld/eagle.app.v6.ld \ + -Wl,-Map,output.map \ + +# -flto -Wl,--relax -Wl,--gc-sections + LINKFLAGS:= \ $(LDFLAGS_CORE) \ @@ -59,7 +68,7 @@ LINKFLAGS:= \ # $(PREFIX)ld $^ $(LDFLAGS) -o $@ $(TARGET_OUT) : $(SRCS) - $(PREFIX)gcc $(CFLAGS) $^ -flto $(LINKFLAGS) -o $@ + $(PREFIX)gcc $(CFLAGS) $^ $(LINKFLAGS) -o $@ @@ -71,10 +80,17 @@ $(FW_FILE_2): $(TARGET_OUT) @echo "FW $@" $(FW_TOOL) -eo $(TARGET_OUT) -es .irom0.text $@ -ec + +IP?=192.168.4.1 + burn : $(FW_FILE_1) $(FW_FILE_2) ($(ESPTOOL_PY) --port $(PORT) write_flash 0x00000 0x00000.bin 0x40000 0x40000.bin)||(true) + +netburn : image.elf $(FW_FILE_1) $(FW_FILE_2) + web/execute_reflash $(IP) 0x00000.bin 0x40000.bin + clean : rm -rf user/*.o driver/*.o $(TARGET_OUT) $(FW_FILE_1) $(FW_FILE_2) diff --git a/embedded8266/README.md b/embedded8266/README.md index e245930..dafa186 100644 --- a/embedded8266/README.md +++ b/embedded8266/README.md @@ -1,5 +1,7 @@ #ESP8266 ColorChord +## WARNING THIS IS UNDER CONSTRUCTION + (based off of ESP8266 I2S WS2812 Driver) This project is based off of the I2S interface for the mp3 player found here: diff --git a/embedded8266/ccconfig.h b/embedded8266/ccconfig.h new file mode 100644 index 0000000..cf0c2de --- /dev/null +++ b/embedded8266/ccconfig.h @@ -0,0 +1,13 @@ +#ifndef _CCCONFIG_H +#define _CCCONFIG_H + +#define CCEMBEDDED +#define NUM_LIN_LEDS 24 +#define USE_NUM_LIN_LEDS 24 +#define DFREQ 16000 + +#define memcpy ets_memcpy +#define memset ets_memset + +#endif + diff --git a/embedded8266/common/commonservices.c b/embedded8266/common/commonservices.c new file mode 100644 index 0000000..14ac1bf --- /dev/null +++ b/embedded8266/common/commonservices.c @@ -0,0 +1,350 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include "commonservices.h" +#include "mem.h" +#include "c_types.h" +#include "user_interface.h" +#include "ets_sys.h" +#include "osapi.h" +#include "espconn.h" +#include "mystuff.h" +#include "ip_addr.h" +#include "http.h" +#include "spi_flash.h" +#include "esp8266_rom.h" +#include "flash_rewriter.h" + +static struct espconn *pUdpServer; +static struct espconn *pHTTPServer; +struct espconn *pespconn; + +static int need_to_switch_back_to_soft_ap = 0; //0 = no, 1 = will need to. 2 = do it now. +#define MAX_STATIONS 20 +struct totalscan_t +{ + char name[32]; + char mac[18]; //string + int8_t rssi; + uint8_t channel; + uint8_t encryption; +} totalscan[MAX_STATIONS]; +int scanplace = 0; +static void ICACHE_FLASH_ATTR scandone(void *arg, STATUS status) +{ + scaninfo *c = arg; + struct bss_info *inf; + + if( need_to_switch_back_to_soft_ap == 1 ) + need_to_switch_back_to_soft_ap = 2; + + printf("!%p\n",c->pbss); + + if (!c->pbss) { + scanplace = -1; + return; + } +// printf("!%s\n",inf->ssid); + STAILQ_FOREACH(inf, c->pbss, next) { + printf( "%s\n", inf->ssid ); + ets_memcpy( totalscan[scanplace].name, inf->ssid, 32 ); + ets_sprintf( totalscan[scanplace].mac, MACSTR, MAC2STR( inf->bssid ) ); + //ets_memcpy( totalscan[scanplace].mac, "not implemented", 16 ); + totalscan[scanplace].rssi = inf->rssi; + totalscan[scanplace].channel = inf->channel; + totalscan[scanplace].encryption = inf->authmode; + inf = (struct bss_info *) &inf->next; + scanplace++; + if( scanplace == MAX_STATIONS ) break; + } +} + + + +void ICACHE_FLASH_ATTR issue_command(void *arg, char *pusrdata, unsigned short len) +{ + pespconn = (struct espconn *)arg; + //We accept commands on this. + + switch( pusrdata[0] ) + { + case 'f': case 'F': //Flashing commands (F_) + { + flashchip->chip_size = 0x01000000; +// ets_printf( "PC%p\n", &pusrdata[2] ); + const char * colon = (const char *) ets_strstr( (char*)&pusrdata[2], ":" ); + int nr = my_atoi( &pusrdata[2] ); + + switch (pusrdata[1]) + { + case 'e': case 'E': //(FE#\n) <- # = sector. + { + char __attribute__ ((aligned (16))) buffer[50]; + char * buffend; + buffend = buffer; + + EnterCritical(); + spi_flash_erase_sector( nr ); //SPI_FLASH_SEC_SIZE 4096 + ExitCritical(); + + buffend += ets_sprintf(buffend, "FE%d\r\n", nr ); + espconn_sent( pespconn, buffer, ets_strlen( buffer ) ); + break; + } + + case 'b': case 'B': //(FE#\n) <- # = sector. + { + char __attribute__ ((aligned (16))) buffer[50]; + char * buffend; + buffend = buffer; + //spi_flash_erase_sector( nr ); //SPI_FLASH_SEC_SIZE 4096 + + EnterCritical(); + SPIEraseBlock( nr ); + ExitCritical(); + + buffend += ets_sprintf(buffend, "FB%d\r\n", nr ); + espconn_sent( pespconn, buffer, ets_strlen( buffer ) ); + break; + } + + case 'm': case 'M': //Execute the flash re-writer + { + char ret[128]; + int n = ets_sprintf( ret, "FM" ); + espconn_sent( pespconn, ret, n ); + int r = (*GlobalRewriteFlash)( &pusrdata[2], len-2 ); + n = ets_sprintf( ret, "!FM%d", r ); + espconn_sent( pespconn, ret, n ); + } + case 'w': case 'W': //Flash Write (FW#\n) <- # = byte pos. + if( colon ) + { + char __attribute__ ((aligned (32))) buffer[1300]; + char * buffend; + buffend = buffer; + buffer[0] = 0; + colon++; + const char * colon2 = (const char *) ets_strstr( (char*)colon, ":" ); + if( colon2 ) + { + colon2++; + int datlen = (int)len - (colon2 - pusrdata); + ets_memcpy( buffer, colon2, datlen ); + + EnterCritical(); + spi_flash_write( nr, (uint32*)buffer, (datlen/4)*4 ); + ExitCritical(); + + //SPIWrite( nr, (uint32_t*)buffer, (datlen/4)*4 ); + + buffend = buffer; + buffend += ets_sprintf(buffend, "FW%d\r\n", nr ); + if( ets_strlen( buffer ) ) + espconn_sent( pespconn, buffer, ets_strlen( buffer ) ); + } + } + break; + case 'r': case 'R': //Flash Read (FR#\n) <- # = sector. + if( colon ) + { + char __attribute__ ((aligned (16))) buffer[1300]; + char * buffend; + buffend = buffer; + buffer[0] = 0; + colon++; + int datlen = my_atoi( colon ); + if( datlen <= 1280 ) + { + buffend += ets_sprintf(buffend, "FR%08d:%04d:", nr, datlen ); + int frontlen = buffend - buffer; + spi_flash_read( nr, (uint32*)buffend, (datlen/4)*4 ); + espconn_sent( pespconn, buffer, frontlen + datlen ); + buffer[0] = 0; + if( ets_strlen( buffer ) ) + espconn_sent( pespconn, buffer, ets_strlen( buffer ) ); + } + } + break; + } + + flashchip->chip_size = 0x00080000; + break; + } + case 'w': case 'W': // (W1:SSID:PASSWORD) (To connect) or (W2) to be own base station. ...or WI, to get info... or WS to scan. + { + char * colon = (char *) ets_strstr( (char*)&pusrdata[2], ":" ); + char * colon2 = (colon)?((char *)ets_strstr( (char*)(colon+1), ":" )):0; + char * extra = colon2; + char __attribute__ ((aligned (16))) buffer[1300]; + char * buffend; + buffend = buffer; + buffer[0] = 0; + + if( extra ) + { + for( ; *extra; extra++ ) + { + if( *extra < 32 ) + { + *extra = 0; + break; + } + } + } + + switch (pusrdata[1]) + { + case '1': //Station mode + if( colon && colon2 ) + { + int c1l = 0; + int c2l = 0; + struct station_config stationConf; + *colon = 0; colon++; + *colon2 = 0; colon2++; + c1l = ets_strlen( colon ); + c2l = ets_strlen( colon2 ); + if( c1l > 32 ) c1l = 32; + if( c2l > 32 ) c2l = 32; + os_bzero( &stationConf, sizeof( stationConf ) ); + + printf( "Switching to: \"%s\"/\"%s\".\n", colon, colon2 ); + + os_memcpy(&stationConf.ssid, colon, c1l); + os_memcpy(&stationConf.password, colon2, c2l); + + wifi_set_opmode( 1 ); + wifi_station_set_config(&stationConf); + wifi_station_connect(); + espconn_sent( pespconn, "W1\r\n", 4 ); + + printf( "Switching.\n" ); + } + break; + case '2': + { + wifi_set_opmode_current( 1 ); + wifi_set_opmode( 2 ); + espconn_sent( pespconn, "W2\r\n", 4 ); + } + break; + case 'I': + { + struct station_config sc; + int mode = wifi_get_opmode(); + char buffer[200]; + char * buffend = &buffer[0]; + + buffend += ets_sprintf( buffend, "WI%d", mode ); + + wifi_station_get_config( &sc ); + + buffend += ets_sprintf( buffend, ":%s:%s", sc.ssid, sc.password ); + + espconn_sent( pespconn, buffer, buffend - buffer ); + } + break; + case 'S': case 's': + { + char buffer[1024]; + char * buffend = &buffer[0]; + int i, r; + + scanplace = 0; + + if( wifi_get_opmode() == SOFTAP_MODE ) + { + wifi_set_opmode_current( STATION_MODE ); + need_to_switch_back_to_soft_ap = 1; + r = wifi_station_scan(0, scandone ); + } + else + { + r = wifi_station_scan(0, scandone ); + } + + buffend += ets_sprintf( buffend, "WS%d\n", r ); + uart0_sendStr(buffer); + + espconn_sent( pespconn, buffer, buffend - buffer ); + + } + break; + case 'R': case 'r': + { + char buffer[1024]; + char * buffend = &buffer[0]; + int i, r; + + buffend += ets_sprintf( buffend, "WR%d\n", scanplace ); + + for( i = 0; i < scanplace; i++ ) + { + buffend += ets_sprintf( buffend, "#%s\t%s\t%d\t%d\t%s\n", + totalscan[i].name, totalscan[i].mac, totalscan[i].rssi, totalscan[i].channel, enctypes[totalscan[i].encryption] ); + } + + espconn_sent( pespconn, buffer, buffend - buffer ); + + } + break; + } + break; + } + default: + break; + } +} + +void ICACHE_FLASH_ATTR CSInit() +{ + pUdpServer = (struct espconn *)os_zalloc(sizeof(struct espconn)); + ets_memset( pUdpServer, 0, sizeof( struct espconn ) ); + pUdpServer->type = ESPCONN_UDP; + pUdpServer->proto.udp = (esp_udp *)os_zalloc(sizeof(esp_udp)); + pUdpServer->proto.udp->local_port = 7878; + espconn_regist_recvcb(pUdpServer, issue_command); + espconn_create( pUdpServer ); + + pHTTPServer = (struct espconn *)os_zalloc(sizeof(struct espconn)); + ets_memset( pHTTPServer, 0, sizeof( struct espconn ) ); + espconn_create( pHTTPServer ); + pHTTPServer->type = ESPCONN_TCP; + pHTTPServer->state = ESPCONN_NONE; + pHTTPServer->proto.tcp = (esp_tcp *)os_zalloc(sizeof(esp_tcp)); + pHTTPServer->proto.tcp->local_port = 80; + espconn_regist_connectcb(pHTTPServer, httpserver_connectcb); + espconn_accept(pHTTPServer); + espconn_regist_time(pHTTPServer, 15, 0); //timeout + +} + +void CSTick( int slowtick ) +{ + static uint8_t tick_flag = 0; + + if( slowtick ) + { + tick_flag = 1; + return; + } + + if( need_to_switch_back_to_soft_ap == 2 ) + { + need_to_switch_back_to_soft_ap = 0; + wifi_set_opmode_current( SOFTAP_MODE ); + } + + HTTPTick(0); + + //TRICKY! If we use the timer to initiate this, connecting to people's networks + //won't work! I don't know why, so I do it here. this does mean sometimes it'll + //pause, though. + if( tick_flag ) + { + tick_flag = 0; + HTTPTick(1); + } +} + diff --git a/embedded8266/common/commonservices.h b/embedded8266/common/commonservices.h new file mode 100644 index 0000000..2d6afbd --- /dev/null +++ b/embedded8266/common/commonservices.h @@ -0,0 +1,18 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#ifndef _COMMON_H +#define _COMMON_H + +#include "c_types.h" + +//Includes UDP Control + HTTP Interfaces +void ICACHE_FLASH_ATTR CSInit(); +void ICACHE_FLASH_ATTR CSTick( int slowtick ); + +//You must provide: +void EnterCritical(); +void ExitCritical(); + +#endif + diff --git a/embedded8266/common/esp8266_rom.h b/embedded8266/common/esp8266_rom.h new file mode 100644 index 0000000..96d839b --- /dev/null +++ b/embedded8266/common/esp8266_rom.h @@ -0,0 +1,92 @@ +#ifndef _ESP8266_ROM_FUNCTS +#define _ESP8266_ROM_FUNCTS + +//This is my best guess at some of the ROM functions for the ESP8266. +//I have no idea if this stuff is correct! + +#include +#include + +void Cache_Read_Disable(); //Can't seem to operate... +void Cache_Read_Enable(); + +//PROVIDE ( Cache_Read_Disable = 0x400047f0 ); +//PROVIDE ( Cache_Read_Enable = 0x40004678 ); + +typedef struct { + uint32_t i[2]; + uint32_t buf[4]; + unsigned char in[64]; + unsigned char digest[16]; +} MD5_CTX; + +void MD5Init ( MD5_CTX *mdContext); +void MD5Update( MD5_CTX *mdContext, const unsigned char *inBuf, unsigned int inLen); +void MD5Final ( unsigned char hash[], MD5_CTX *mdContext); + + +//SHA Stuff from: https://github.com/pvvx/esp8266web/blob/master/app/include/bios/cha1.h +#define SHA1_HASH_LEN 20 +typedef struct { + uint32 state[5]; + uint32 count[2]; + uint8 buffer[64]; + uint8 extra[40]; +} SHA1_CTX; + +void SHA1Init(SHA1_CTX* context); +void SHA1Update(SHA1_CTX* context, + const uint8 *data, + size_t len); +void SHA1Final(uint8 digest[SHA1_HASH_LEN], SHA1_CTX* context); +void SHA1Transform(uint32 state[5], const uint8 buffer[64]); + + + +//SPI_FLASH_SEC_SIZE 4096 + +void SPIEraseSector(uint16 sec); //Doesn't work? +void SPIEraseArea(uint32 start,uint32 len); //Doesn't work? +void SPIEraseBlock(uint16 blk); +void SPIWrite(uint32 des_addr, uint32_t *src_addr, uint32_t size); +void SPIRead(uint32 src_addr, uint32_t *des_addr, uint16_t size); +void SPILock( uint16_t sec ); //??? I don't use this? +void SPIUnlock( ); //??? I don't use this? -> Seems to crash. + +extern SpiFlashChip * flashchip; //don't forget: flashchip->chip_size = 0x01000000; + + +/* + flashchip->chip_size = 0x01000000; + + { + uint32_t __attribute__ ((aligned (16))) t[1024]; + t[0] = 0xAABBCCDD; + t[1] = 0xEEFF0011; + for( i = 0; i < 10000; i++ ) uart0_sendStr("A\n"); + SPIEraseSector( 1000000/4096 ); + for( i = 0; i < 10000; i++ ) uart0_sendStr("B\n"); + SPIWrite( 1000000, t, 8 ); + } + + for( i = 0; i < 10000; i++ ) uart0_sendStr("C\n"); + + while(1) + { + char ct[32]; + uint32_t __attribute__ ((aligned (16))) ret = 0x12345678; +// SPIRead( 1000000, &ret, 4 ); + ret = *(uint32_t*)(0x40200000+1000004); + ets_sprintf( ct, "%08x\n", ret ); + printf( ct ); + } +*/ + + +void software_reset(); + + + +#endif + + diff --git a/embedded8266/common/flash_rewriter.c b/embedded8266/common/flash_rewriter.c new file mode 100644 index 0000000..0af9225 --- /dev/null +++ b/embedded8266/common/flash_rewriter.c @@ -0,0 +1,292 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include "flash_rewriter.h" +#include +#include +#include + +#define SRCSIZE 4096 + + +static const char * key = ""; +static int keylen = 0; + +void SafeMD5Update( MD5_CTX * md5ctx, uint8_t*from, uint32_t size1 ) +{ + char __attribute__ ((aligned (32))) buffer[32]; + + + while( size1 > 32 ) + { + ets_memcpy( buffer, from, 32 ); + MD5Update( md5ctx, buffer, 32 ); + size1-=32; + from+=32; + } + ets_memcpy( buffer, from, 32 ); + MD5Update( md5ctx, buffer, size1 ); +} + + +static int MyRewriteFlash( char * command, int commandlen ) +{ + MD5_CTX md5ctx; + char __attribute__ ((aligned (32))) buffer[512]; + char * colons[8]; + int i, ipl = 0; + int p; + //[from_address]:[to_address]:[size]:[MD5(key+data)]:[from_address]:[to_address]:[size]:[MD5(key+data)] + command[commandlen] = 0; + + flashchip->chip_size = 0x01000000; + + ets_wdt_disable(); + + colons[ipl++] = &command[0]; + for( i = 0; i < commandlen; i++ ) + { + if( command[i] == 0 ) break; + if( command[i] == ':' ) + { + if( ipl >= 8 ) break; + command[i] = 0; + colons[ipl++] = &command[i+1]; + } + } + if( ipl != 8 ) + { + return 1; + } + uint32_t from1 = my_atoi( colons[0] ); + uint32_t to1 = my_atoi( colons[1] ); + int32_t size1 = my_atoi( colons[2] ); + char * md51 = colons[3]; + char md5h1raw[48]; + char md5h1[48]; + uint32_t from2 = my_atoi( colons[4] ); + uint32_t to2 = my_atoi( colons[5] ); + int32_t size2 = my_atoi( colons[6] ); + char * md52 = colons[7]; + char md5h2raw[48]; + char md5h2[48]; + + if( from1 == 0 || from2 == 0 || size1 == 0 ) + { + return 2; + } + + if( ( from1 & 0xfff ) || ( from2 & 0xfff ) || ( to1 & 0xfff ) || ( to2 & 0xfff ) ) + { + return 3; + } + + + /////////////////////////////// + char st[400]; +/* + ets_sprintf( st, "!!%08x", (((uint32_t*)(0x40200000 + from1))) ); + uart0_sendStr( st ); + + for( i = 0; i < 200; i++ ) + { + ets_sprintf( st, "%08x", (uint32_t)(((uint32_t*)(0x40200000 + from1))[i]) ); + uart0_sendStr( st ); + } + uart0_sendStr( "+\n" ); + +/* + + + uint32_t __attribute__ ((aligned (32))) readr = 0xAAAAAAAA; + SPIRead( from1, &readr, 4 ); + ets_sprintf( st, ":%08x\n", readr ); + uart0_sendStr( st ); + readr = 0x12345678; + + SPIRead( from1+4, &readr, 4 ); + ets_sprintf( st, ":%08x\n", readr ); + uart0_sendStr( st ); + uart0_sendStr( "\n" ); + + ets_sprintf( st, "TT: %08x ADDY: %08x\n", from1, &readr ); + uart0_sendStr( st ); + + + + + readr = 0xAAAAAAAA; + spi_flash_read( from1, &readr, 4 ); + ets_sprintf( st, "+%08x\n", readr ); + uart0_sendStr( st ); + + readr = 0xbbbbbbbb; + spi_flash_read( from1+4, &readr, 4 ); + ets_sprintf( st, "+%08x\n", readr ); + uart0_sendStr( st ); + +*/ + +/* + MD5Init( &md5ctx ); + MD5Update( &md5ctx, (uint8_t*)0x40200000 + from1, 4 ); + MD5Final( md5h1raw, &md5ctx ); + for( i = 0; i < 16; i++ ) + { + ets_sprintf( md5h1+i*2, "%02x", md5h1raw[i] ); + } + uart0_sendStr( "Hash 1:" ); + uart0_sendStr( md5h1 ); + uart0_sendStr( "!\n" ); +*/ + + ////////////////////////////// + + ets_sprintf( st, "Computing Hash 1: %08x size %d\n", from1, size1 ); + uart0_sendStr( st ); + + MD5Init( &md5ctx ); + if( keylen ) + MD5Update( &md5ctx, key, keylen ); +// MD5Update( &md5ctx, (uint8_t*)0x40200000 + from1, size1 ); + SafeMD5Update( &md5ctx, (uint8_t*)0x40200000 + from1, size1 ); + MD5Final( md5h1raw, &md5ctx ); + for( i = 0; i < 16; i++ ) + { + ets_sprintf( md5h1+i*2, "%02x", md5h1raw[i] ); + } + + uart0_sendStr( "Hash 1:" ); + uart0_sendStr( md5h1 ); + uart0_sendStr( "\n" ); + + for( i = 0; i < 32; i++ ) + { + if( md5h1[i] != md51[i] ) + { + //printf( "%s != %s", md5h1, md51 ); + uart0_sendStr( "File 1 MD5 mismatch\nActual:" ); + uart0_sendStr( md5h1 ); + uart0_sendStr( "\nExpected:" ); + uart0_sendStr( md51 ); + uart0_sendStr( "\n" ); + return 4; + } + } + + ets_sprintf( st, "Computing Hash 2: %08x size %d\n", from2, size2 ); + uart0_sendStr( st ); + + MD5Init( &md5ctx ); + if( keylen ) + MD5Update( &md5ctx, key, keylen ); + SafeMD5Update( &md5ctx, (uint8_t*)0x40200000 + from2, size2 ); + MD5Final( md5h2raw, &md5ctx ); + for( i = 0; i < 16; i++ ) + { + ets_sprintf( md5h2+i*2, "%02x", md5h2raw[i] ); + } + + uart0_sendStr( "Hash 2:" ); + uart0_sendStr( md5h2 ); + uart0_sendStr( "\n" ); + +/* for( i = 0; i <= size2/4; i++ ) + { + uint32_t j = ((uint32_t*)(0x40200000 + from2))[i]; + ets_sprintf( st, "%02x%02x%02x%02x\n", (uint8_t)(j>>0), (uint8_t)(j>>8), (uint8_t)(j>>16), (uint8_t)(j>>24) ); + uart0_sendStr( st ); + }*/ + + for( i = 0; i < 32; i++ ) + { + if( md5h2[i] != md52[i] ) + { + uart0_sendStr( "File 2 MD5 mismatch\nActual:" ); + uart0_sendStr( md5h2 ); + uart0_sendStr( "\nExpected:" ); + uart0_sendStr( md52 ); + uart0_sendStr( "\n" ); + return 5; + } + } + + //Need to round sizes up. + size1 = ((size1-1)&(~0xfff))+1; + size2 = ((size2-1)&(~0xfff))+1; + + ets_sprintf( st, "Copy 1: %08x to %08x, size %d\n", from1, to1, size1 ); + uart0_sendStr( st ); + ets_sprintf( st, "Copy 2: %08x to %08x, size %d\n", from2, to2, size2 ); + uart0_sendStr( st ); + + //Everything checked out... Need to move the flashes. + + ets_delay_us( 1000 ); + + //Disable all interrupts. + ets_intr_lock(); + + ipl = (size1/SRCSIZE)+1; + p = to1/SRCSIZE; + for( i = 0; i < ipl; i++ ) + { + SPIEraseSector( p++ ); + SPIWrite( to1, (uint32_t*)(0x40200000 + from1), SRCSIZE ); + to1 += SRCSIZE; + from1 += SRCSIZE; + } + + uart_tx_one_char( 'B' ); + + ipl = (size2/SRCSIZE)+1; + p = to2/SRCSIZE; + for( i = 0; i < ipl; i++ ) + { + SPIEraseSector( p++ ); + SPIWrite( to2, (uint32_t*)(0x40200000 + from2), SRCSIZE ); + to2 += SRCSIZE; + from2 += SRCSIZE; + + } + + uart_tx_one_char( 'R' ); + + + void(*rebootme)() = (void(*)())0x40000080; + rebootme(); + + +// system_upgrade_reboot(); +// software_reset(); //Doesn't seem to boot back in. + + + //Destinations are erased. Copy over the other part. +// for( i = 0; i < ; i++ ) + + /*Things I know: + flashchip->chip_size = 0x01000000; + SPIEraseSector( 1000000/4096 ); + SPIWrite( 1000000, &t, 4 ); << Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#ifndef _FLASH_REWRITER_H +#define _FLASH_REWRITER_H + +//Unusual, but guarentees that the code resides in IRAM. +/* +Usage: + [from_address]:[to_address]:[size]:[MD5(key+data)]:[from_address]:[to_address]:[size]:[MD5(key+data)][extra byte required] + + NOTE: YOU MUST USE 4096-byte-aligned boundaries. + + Note: this will modify the text in "command" +*/ + + +extern int (*GlobalRewriteFlash)( char * command, int commandlen ); + +#endif diff --git a/embedded8266/common/http.c b/embedded8266/common/http.c new file mode 100644 index 0000000..2283b31 --- /dev/null +++ b/embedded8266/common/http.c @@ -0,0 +1,560 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include "http.h" +#include "mystuff.h" +#include "esp8266_rom.h" + +#define HTDEBUG( x... ) printf( x ) + +struct HTTPConnection HTTPConnections[HTTP_CONNECTIONS]; +struct HTTPConnection * curhttp; +uint8 * curdata; +uint16 curlen; + +ICACHE_FLASH_ATTR void InternalStartHTTP( ); +ICACHE_FLASH_ATTR void HTTPHandleInternalCallback( ); + +ICACHE_FLASH_ATTR void HTTPClose( ) +{ + curhttp->state = HTTP_STATE_NONE; + espconn_disconnect( curhttp->socket ); +} + + +void ICACHE_FLASH_ATTR HTTPGotData( ) +{ + uint8 c; + curhttp->timeout = 0; + + while( curlen-- ) + { + c = POP; + // sendhex2( h->state ); sendchr( ' ' ); + + switch( curhttp->state ) + { + case HTTP_STATE_WAIT_METHOD: + if( c == ' ' ) + { + curhttp->state = HTTP_STATE_WAIT_PATH; + curhttp->state_deets = 0; + } + break; + case HTTP_STATE_WAIT_PATH: + curhttp->pathbuffer[curhttp->state_deets++] = c; + if( curhttp->state_deets == MAX_PATHLEN ) + { + curhttp->state_deets--; + } + + if( c == ' ' ) + { + //Tricky: If we're a websocket, we need the whole header. + curhttp->pathbuffer[curhttp->state_deets-1] = 0; + curhttp->state_deets = 0; + + if( strncmp( (const char*)curhttp->pathbuffer, "/d/ws", 5 ) == 0 ) + { + curhttp->state = HTTP_STATE_DATA_WEBSOCKET; + curhttp->state_deets = 0; + } + else + { + curhttp->state = HTTP_STATE_WAIT_PROTO; + } + } + break; + case HTTP_STATE_WAIT_PROTO: + if( c == '\n' ) + { + curhttp->state = HTTP_STATE_WAIT_FLAG; + } + break; + case HTTP_STATE_WAIT_FLAG: + if( c == '\n' ) + { + curhttp->state = HTTP_STATE_DATA_XFER; + InternalStartHTTP( ); + } + else if( c != '\r' ) + { + curhttp->state = HTTP_STATE_WAIT_INFLAG; + } + break; + case HTTP_STATE_WAIT_INFLAG: + if( c == '\n' ) + { + curhttp->state = HTTP_STATE_WAIT_FLAG; + curhttp->state_deets = 0; + } + break; + case HTTP_STATE_DATA_XFER: + //Ignore any further data? + curlen = 0; + break; + case HTTP_STATE_DATA_WEBSOCKET: + WebSocketGotData( c ); + break; + case HTTP_WAIT_CLOSE: + //printf( "__HTTPCLose1\n" ); + HTTPClose( ); + break; + default: + break; + }; + } + +} + + +static void DoHTTP( uint8_t timed ) +{ + switch( curhttp->state ) + { + case HTTP_STATE_NONE: //do nothing if no state. + break; + case HTTP_STATE_DATA_XFER: + if( TCPCanSend( curhttp->socket, 1024 ) ) //TCPDoneSend + { + if( curhttp->is_dynamic ) + { + HTTPCustomCallback( ); + } + else + { + HTTPHandleInternalCallback( ); + } + } + break; + case HTTP_WAIT_CLOSE: + if( TCPDoneSend( curhttp->socket ) ) + { + //printf( "HTTPCLose2\n"); + HTTPClose( ); + } + break; + case HTTP_STATE_DATA_WEBSOCKET: + if( TCPCanSend( curhttp->socket, 1024 ) ) //TCPDoneSend + { + WebSocketTickInternal(); + } + break; + default: + if( timed ) + { + if( curhttp->timeout++ > HTTP_SERVER_TIMEOUT ) + { + //printf( "HTTPClose3\n" ); + HTTPClose( ); + } + } + } +} + +void HTTPTick( uint8_t timed ) +{ + uint8_t i; + for( i = 0; i < HTTP_CONNECTIONS; i++ ) + { + curhttp = &HTTPConnections[i]; + DoHTTP( timed ); + } +} + +void ICACHE_FLASH_ATTR HTTPHandleInternalCallback( ) +{ + uint16_t i, bytestoread; + + if( curhttp->isdone ) + { + HTTPClose( ); + return; + } + if( curhttp->is404 ) + { + START_PACK + PushString("HTTP/1.1 404 Not Found\r\nConnection: close\r\n\r\nFile not found."); + EndTCPWrite( curhttp->socket ); + curhttp->isdone = 1; + return; + } + if( curhttp->isfirst ) + { + char stto[10]; + uint8_t slen = os_strlen( curhttp->pathbuffer ); + const char * k; + + START_PACK; + //TODO: Content Length? MIME-Type? + PushString("HTTP/1.1 200 Ok\r\nConnection: close"); + + if( curhttp->bytesleft < 0xfffffffe ) + { + PushString("\r\nContent-Length: "); + Uint32To10Str( stto, curhttp->bytesleft ); + PushBlob( stto, os_strlen( stto ) ); + } + PushString( "\r\nContent-Type: " ); + //Content-Type? + while( slen && ( curhttp->pathbuffer[--slen] != '.' ) ); + k = &curhttp->pathbuffer[slen+1]; + if( strcmp( k, "mp3" ) == 0 ) + { + PushString( "audio/mpeg3" ); + } + else if( curhttp->bytesleft == 0xfffffffe ) + { + PushString( "text/plain" ); + } + else + { + PushString( "text/html" ); + } + + PushString( "\r\n\r\n" ); + EndTCPWrite( curhttp->socket ); + curhttp->isfirst = 0; + + return; + } + + START_PACK + + for( i = 0; i < 4 && curhttp->bytesleft; i++ ) + { + int bpt = curhttp->bytesleft; + if( bpt > MFS_SECTOR ) bpt = MFS_SECTOR; + curhttp->bytesleft = MFSReadSector( generic_ptr, &curhttp->data.filedescriptor ); + generic_ptr += bpt; + } + + EndTCPWrite( curhttp->socket ); + + if( !curhttp->bytesleft ) + curhttp->isdone = 1; +} + +void InternalStartHTTP( ) +{ + int32_t clusterno; + int8_t i; + const char * path = &curhttp->pathbuffer[0]; + + if( curhttp->pathbuffer[0] == '/' ) + path++; + + if( path[0] == 'd' && path[1] == '/' ) + { + curhttp->is_dynamic = 1; + curhttp->isfirst = 1; + curhttp->isdone = 0; + curhttp->is404 = 0; + HTTPCustomStart(); + return; + } + + if( !path[0] ) + { + path = "index.html"; + } + + i = MFSOpenFile( path, &curhttp->data.filedescriptor ); + curhttp->bytessofar = 0; + + if( i < 0 ) + { + HTDEBUG( "404(%s)\n", path ); + curhttp->is404 = 1; + curhttp->isfirst = 1; + curhttp->isdone = 0; + curhttp->is_dynamic = 0; + } + else + { + curhttp->isfirst = 1; + curhttp->isdone = 0; + curhttp->is404 = 0; + curhttp->is_dynamic = 0; + curhttp->bytesleft = curhttp->data.filedescriptor.filelen; + } + +} + + + + + + + + +LOCAL void ICACHE_FLASH_ATTR +http_disconnetcb(void *arg) { + struct espconn *pespconn = (struct espconn *) arg; + curhttp = (struct HTTPConnection * )pespconn->reverse; + curhttp->state = 0; +} + +LOCAL void ICACHE_FLASH_ATTR +http_recvcb(void *arg, char *pusrdata, unsigned short length) +{ + struct espconn *pespconn = (struct espconn *) arg; + + ets_intr_lock(); + curhttp = (struct HTTPConnection * )pespconn->reverse; + curdata = (uint8*)pusrdata; + curlen = length; + HTTPGotData(); + ets_intr_unlock(); +} + +void ICACHE_FLASH_ATTR +httpserver_connectcb(void *arg) +{ + int i; + struct espconn *pespconn = (struct espconn *)arg; + + for( i = 0; i < HTTP_CONNECTIONS; i++ ) + { + if( HTTPConnections[i].state == 0 ) + { + pespconn->reverse = &HTTPConnections[i]; + HTTPConnections[i].socket = pespconn; + HTTPConnections[i].state = HTTP_STATE_WAIT_METHOD; + break; + } + } + if( i == HTTP_CONNECTIONS ) + { + espconn_disconnect( pespconn ); + return; + } + +// espconn_set_opt(pespconn, ESPCONN_NODELAY); +// espconn_set_opt(pespconn, ESPCONN_COPY); + + espconn_regist_recvcb( pespconn, http_recvcb ); + espconn_regist_disconcb( pespconn, http_disconnetcb ); + +} + + +int ICACHE_FLASH_ATTR URLDecode( char * decodeinto, int maxlen, const char * buf ) +{ + int i = 0; + + for( ; buf && *buf; buf++ ) + { + char c = *buf; + if( c == '+' ) + { + decodeinto[i++] = ' '; + } + else if( c == '?' || c == '&' ) + { + break; + } + else if( c == '%' ) + { + if( *(buf+1) && *(buf+2) ) + { + decodeinto[i++] = hex2byte( buf+1 ); + buf += 2; + } + } + else + { + decodeinto[i++] = c; + } + if( i >= maxlen -1 ) break; + + } + decodeinto[i] = 0; + return i; +} + + + +void ICACHE_FLASH_ATTR WebSocketGotData( uint8_t c ) +{ + switch( curhttp->state_deets ) + { + case 0: + { + int i = 0; + char inkey[120]; + unsigned char hash[SHA1_HASH_LEN]; + SHA1_CTX c; + int inkeylen = 0; + + curhttp->is_dynamic = 1; + while( curlen > 20 ) + { + curdata++; curlen--; + if( strncmp( curdata, "Sec-WebSocket-Key: ", 19 ) == 0 ) + { + break; + } + } + + if( curlen <= 21 ) + { + HTDEBUG( "No websocket key found.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + return; + } + + curdata+= 19; + curlen -= 19; + + +#define WS_KEY_LEN 36 +#define WS_KEY "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" + + while( curlen > 1 ) + { + uint8_t lc = *(curdata++); + inkey[i] = lc; + curlen--; + if( lc == '\r' ) + { + inkey[i] = 0; + break; + } + i++; + if( i >= sizeof( inkey ) - WS_KEY_LEN - 5 ) + { + HTDEBUG( "Websocket key too big.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + return; + } + } + if( curlen <= 1 ) + { + HTDEBUG( "Invalid websocket key found.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + return; + } + + if( i + WS_KEY_LEN + 1 >= sizeof( inkey ) ) + { + HTDEBUG( "WSKEY Too Big.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + return; + } + + ets_memcpy( &inkey[i], WS_KEY, WS_KEY_LEN + 1 ); + i += WS_KEY_LEN; + SHA1_Init( &c ); + SHA1_Update( &c, inkey, i ); + SHA1_Final( hash, &c ); + + if( SHA1_HASH_LEN * 2 > MAX_PATHLEN ) + { + HTDEBUG( "Pathlen too short.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + return; + } + + my_base64_encode( hash, SHA1_HASH_LEN, curhttp->pathbuffer ); + + //Respond... + curhttp->state_deets = 1; + break; + } + case 1: + if( c == '\n' ) curhttp->state_deets = 2; + break; + case 2: + if( c == '\r' ) curhttp->state_deets = 3; + else curhttp->state_deets = 1; + break; + case 3: + if( c == '\n' ) curhttp->state_deets = 4; + else curhttp->state_deets = 1; + break; + case 5: //Established connection. + { + if( curlen < 5 ) //Can't interpret packet. + break; + + uint8_t fin = c & 1; + uint8_t opcode = c << 4; + uint32_t payloadlen = *(curdata++); + curlen--; + if( !(payloadlen & 0x80) ) + { + HTDEBUG( "Unmasked packet.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + break; + } + + if( payloadlen == 127 ) + { + //Very long payload. + //Not supported. + HTDEBUG( "Unsupported payload packet.\n" ); + curhttp->state = HTTP_WAIT_CLOSE; + break; + } + else if( payloadlen == 126 ) + { + payloadlen = (curdata[0] << 8) | curdata[1]; + curdata += 2; + curlen -= 2; + } + else + { + payloadlen &= 0x7f; + } + WebSocketData( curdata, payloadlen ); + curlen -= payloadlen; + curdata += payloadlen; + + break; + } + default: + break; + } +} + +void ICACHE_FLASH_ATTR WebSocketTickInternal() +{ + switch( curhttp->state_deets ) + { + case 4: //Has key full HTTP header, etc. wants response. + START_PACK; + PushString( "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: " ); + PushString( curhttp->pathbuffer ); + PushString( "\r\n\r\n" ); + EndTCPWrite( curhttp->socket ); + curhttp->state_deets = 5; + curhttp->bytessofar = 0; + curhttp->bytesleft = 0; + NewWebSocket(); + break; + case 5: + WebSocketTick(); + break; + } +} + +void ICACHE_FLASH_ATTR WebSocketSend( uint8_t * data, int size ) +{ + START_PACK; + PushByte( 0x81 ); + if( size > 126 ) + { + PushByte( 0x00 | 126 ); + PushByte( size>>8 ); + PushByte( size&0xff ); + } + else + { + PushByte( 0x00 | size ); + } + PushBlob( data, size ); + EndTCPWrite( curhttp->socket ); +} + + diff --git a/embedded8266/common/http.h b/embedded8266/common/http.h new file mode 100644 index 0000000..4504344 --- /dev/null +++ b/embedded8266/common/http.h @@ -0,0 +1,91 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#ifndef _HTTP_H +#define _HTTP_H + +#include "mem.h" +#include "c_types.h" +#include "user_interface.h" +#include "ets_sys.h" +#include "driver/uart.h" +#include "osapi.h" +#include "espconn.h" +#include "mfs.h" +#include "mystuff.h" + +#define HTTP_SERVER_TIMEOUT 500 +#define HTTP_CONNECTIONS 8 +#define MAX_PATHLEN 80 + +//You must provide: +void ICACHE_FLASH_ATTR HTTPCustomStart( ); +void ICACHE_FLASH_ATTR HTTPCustomCallback( ); //called when we can send more data + +void ICACHE_FLASH_ATTR WebSocketData( uint8_t * data, int len ); +void ICACHE_FLASH_ATTR WebSocketTick( ); +void ICACHE_FLASH_ATTR WebSocketNew(); + +extern struct HTTPConnection * curhttp; +extern uint8 * curdata; +extern uint16 curlen; + +#define POP (*curdata++) + +#define HTTP_STATE_NONE 0 +#define HTTP_STATE_WAIT_METHOD 1 +#define HTTP_STATE_WAIT_PATH 2 +#define HTTP_STATE_WAIT_PROTO 3 + +#define HTTP_STATE_WAIT_FLAG 4 +#define HTTP_STATE_WAIT_INFLAG 5 +#define HTTP_STATE_DATA_XFER 7 +#define HTTP_STATE_DATA_WEBSOCKET 8 + +#define HTTP_WAIT_CLOSE 15 + + +struct HTTPConnection +{ + uint8_t state:4; + uint8_t state_deets; + uint8_t pathbuffer[MAX_PATHLEN]; //Also used for temporary and handshake information when using websockets. + uint8_t is_dynamic:1; + uint16_t timeout; + + union data_t + { + struct MFSFileInfo filedescriptor; + struct UserData { uint16_t a, b, c; } user; + } data; + + void * rcb; + + uint32_t bytesleft; + uint32_t bytessofar; + + uint8_t is404:1; + uint8_t isdone:1; + uint8_t isfirst:1; + uint8_t need_resend:1; + + struct espconn * socket; +} HTTPConnections[HTTP_CONNECTIONS]; + + + +void ICACHE_FLASH_ATTR httpserver_connectcb(void *arg); + +void HTTPTick( uint8_t timedtick ); +//you can call this a LOT if you want fast transfers, but be sure only to call it with a 1 at the update tick rate. + +int ICACHE_FLASH_ATTR URLDecode( char * decodeinto, int maxlen, const char * buf ); + +void ICACHE_FLASH_ATTR WebSocketGotData( uint8_t c ); +void ICACHE_FLASH_ATTR WebSocketTickInternal(); + +void ICACHE_FLASH_ATTR WebSocketSend( uint8_t * data, int size ); + + +#endif + diff --git a/embedded8266/common/http_custom.c b/embedded8266/common/http_custom.c new file mode 100644 index 0000000..9399fcb --- /dev/null +++ b/embedded8266/common/http_custom.c @@ -0,0 +1,97 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include "http.h" +#include "mystuff.h" +#include "commonservices.h" + +static ICACHE_FLASH_ATTR void huge() +{ + uint8_t i = 0; + + START_PACK; + do + { + PushByte( 0 ); + PushByte( i ); + } while( ++i ); //Tricky: this will roll-over to 0, and thus only execute 256 times. + + EndTCPWrite( curhttp->socket ); +} + + +static ICACHE_FLASH_ATTR void echo() +{ + char mydat[128]; + int len = URLDecode( mydat, 128, curhttp->pathbuffer+8 ); + + START_PACK; + PushBlob( mydat, len ); + EndTCPWrite( curhttp->socket ); + + curhttp->state = HTTP_WAIT_CLOSE; +} + +static ICACHE_FLASH_ATTR void issue() +{ + char mydat[512]; + int len = URLDecode( mydat, 512, curhttp->pathbuffer+9 ); + + issue_command(curhttp->socket, mydat, len ); + + curhttp->state = HTTP_WAIT_CLOSE; +} + + +void ICACHE_FLASH_ATTR HTTPCustomStart( ) +{ + if( strncmp( (const char*)curhttp->pathbuffer, "/d/huge", 7 ) == 0 ) + { + curhttp->rcb = (void(*)())&huge; + curhttp->bytesleft = 0xffffffff; + } + else + if( strncmp( (const char*)curhttp->pathbuffer, "/d/echo?", 8 ) == 0 ) + { + curhttp->rcb = (void(*)())&echo; + curhttp->bytesleft = 0xfffffffe; + } + else + if( strncmp( (const char*)curhttp->pathbuffer, "/d/issue?", 9 ) == 0 ) + { + curhttp->rcb = (void(*)())&issue; + curhttp->bytesleft = 0xfffffffe; + } + else + { + curhttp->rcb = 0; + curhttp->bytesleft = 0; + } + curhttp->isfirst = 1; + HTTPHandleInternalCallback(); +} + + +void ICACHE_FLASH_ATTR HTTPCustomCallback( ) +{ + if( curhttp->rcb ) + ((void(*)())curhttp->rcb)(); + else + curhttp->isdone = 1; +} + +void ICACHE_FLASH_ATTR WebSocketTick() +{ +} + +void ICACHE_FLASH_ATTR WebSocketData( uint8_t * data, int len ) +{ + char stout[128]; + int stl = ets_sprintf( stout, "output.innerHTML = %d; doSend('x' );\n", curhttp->bytessofar++ ); + WebSocketSend( stout, stl ); +} + +void ICACHE_FLASH_ATTR NewWebSocket() +{ +} + diff --git a/embedded8266/common/mfs.c b/embedded8266/common/mfs.c new file mode 100644 index 0000000..6b9f6d2 --- /dev/null +++ b/embedded8266/common/mfs.c @@ -0,0 +1,64 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include "mystuff.h" +#include "mfs.h" +#include "spi_flash.h" +#include "ets_sys.h" + +extern SpiFlashChip * flashchip; + +//Returns 0 on succses. +//Returns size of file if non-empty +//If positive, populates mfi. +//Returns -1 if can't find file or reached end of file list. +int8_t MFSOpenFile( const char * fname, struct MFSFileInfo * mfi ) +{ + EnterCritical(); + flashchip->chip_size = 0x01000000; + uint32 ptr = MFS_START; + struct MFSFileEntry e; + while(1) + { + spi_flash_read( ptr, (uint32*)&e, sizeof( e ) ); + ptr += sizeof(e); + if( e.name[0] == 0xff || ets_strlen( e.name ) == 0 ) break; + + if( ets_strcmp( e.name, fname ) == 0 ) + { + mfi->offset = e.start; + mfi->filelen = e.len; + flashchip->chip_size = 0x00080000; + ExitCritical(); + return 0; + } + } + flashchip->chip_size = 0x00080000; + ExitCritical(); + return -1; +} + +int32_t MFSReadSector( uint8_t* data, struct MFSFileInfo * mfi ) +{ + //returns # of bytes left tin file. + if( !mfi->filelen ) + { + return 0; + } + + int toread = mfi->filelen; + if( toread > MFS_SECTOR ) toread = MFS_SECTOR; + + EnterCritical(); + flashchip->chip_size = 0x01000000; + spi_flash_read( MFS_START+mfi->offset, (uint32*)data, MFS_SECTOR ); + flashchip->chip_size = 0x00080000; + ExitCritical(); + + mfi->offset += toread; + mfi->filelen -= toread; + return mfi->filelen; +} + + + diff --git a/embedded8266/common/mfs.h b/embedded8266/common/mfs.h new file mode 100644 index 0000000..8f9d526 --- /dev/null +++ b/embedded8266/common/mfs.h @@ -0,0 +1,51 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +//Not to be confused with MFS for the AVR. + +#ifndef _MFS_H +#define _MFS_H + +#include "mem.h" +#include "c_types.h" +#include "mystuff.h" + +//SPI_FLASH_SEC_SIZE 4096 +#define MFS_STARTFLASHSECTOR 0x100 +#define MFS_START (MFS_STARTFLASHSECTOR*SPI_FLASH_SEC_SIZE) +#define MFS_SECTOR 256 + + +#define MFS_FILENAMELEN 32-8 + +//Format: +// [FILE NAME (24)] [Start (4)] [Len (4)] +// NOTE: Filename must be null-terminated within the 24. +struct MFSFileEntry +{ + char name[MFS_FILENAMELEN]; + uint32 start; //From beginning of mfs thing. + uint32 len; +}; + + +struct MFSFileInfo +{ + uint32 offset; + uint32 filelen; +}; + + + +//Returns 0 on succses. +//Returns size of file if non-empty +//If positive, populates mfi. +//Returns -1 if can't find file or reached end of file list. +ICACHE_FLASH_ATTR int8_t MFSOpenFile( const char * fname, struct MFSFileInfo * mfi ); +ICACHE_FLASH_ATTR int32_t MFSReadSector( uint8_t* data, struct MFSFileInfo * mfi ); //returns # of bytes left in file. + + + +#endif + + diff --git a/embedded8266/common/mystuff.c b/embedded8266/common/mystuff.c new file mode 100644 index 0000000..145f464 --- /dev/null +++ b/embedded8266/common/mystuff.c @@ -0,0 +1,169 @@ +//Unless what else is individually marked, all code in this file is +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include "mystuff.h" + +const char * enctypes[6] = { "open", "wep", "wpa", "wpa2", "wpa_wpa2", "max" }; + +char generic_print_buffer[384]; +char generic_buffer[1500]; +char * generic_ptr; + +int32 my_atoi( const char * in ) +{ + int positive = 1; //1 if negative. + int hit = 0; + int val = 0; + while( *in && hit < 11 ) + { + if( *in == '-' ) + { + if( positive == -1 ) return val*positive; + positive = -1; + } else if( *in >= '0' && *in <= '9' ) + { + val *= 10; + val += *in - '0'; + hit++; + } else if (!hit && ( *in == ' ' || *in == '\t' ) ) + { + //okay + } else + { + //bad. + return val*positive; + } + in++; + } + return val*positive; +} + +void Uint32To10Str( char * out, uint32 dat ) +{ + int tens = 1000000000; + int val; + int place = 0; + + while( tens > 1 ) + { + if( dat/tens ) break; + tens/=10; + } + + while( tens ) + { + val = dat/tens; + dat -= val*tens; + tens /= 10; + out[place++] = val + '0'; + } + + out[place] = 0; +} + +void ICACHE_FLASH_ATTR EndTCPWrite( struct espconn * conn ) +{ + if(generic_ptr!=generic_buffer) + espconn_sent(conn,generic_buffer,generic_ptr-generic_buffer); +} + + +void PushString( const char * buffer ) +{ + char c; + while( c = *(buffer++) ) + PushByte( c ); +} + +void PushBlob( const uint8 * buffer, int len ) +{ + int i; + for( i = 0; i < len; i++ ) + PushByte( buffer[i] ); +} + + +int8_t TCPCanSend( struct espconn * conn, int size ) +{ + struct espconn_packet infoarg; + sint8 r = espconn_get_packet_info(conn, &infoarg); + + if( infoarg.snd_buf_size >= size && infoarg.snd_queuelen > 0 ) + return 1; + else + return 0; +} + +int8_t ICACHE_FLASH_ATTR TCPDoneSend( struct espconn * conn ) +{ + return conn->state == ESPCONN_CONNECT; +} + +const char * ICACHE_FLASH_ATTR my_strchr( const char * st, char c ) +{ + while( *st && *st != c ) st++; + if( !*st ) return 0; + return st; +} + +int ICACHE_FLASH_ATTR ColonsToInts( const char * str, int32_t * vals, int max_quantity ) +{ + int i; + for( i = 0; i < max_quantity; i++ ) + { + const char * colon = my_strchr( str, ':' ); + vals[i] = my_atoi( str ); + if( !colon ) break; + str = colon+1; + } + return i+1; +} + + + + + + + +//from http://stackoverflow.com/questions/342409/how-do-i-base64-encode-decode-in-c +static const char encoding_table[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', + 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', + 'w', 'x', 'y', 'z', '0', '1', '2', '3', + '4', '5', '6', '7', '8', '9', '+', '/'}; + +static const int mod_table[] = {0, 2, 1}; + +void ICACHE_FLASH_ATTR my_base64_encode(const unsigned char *data, size_t input_length, uint8_t * encoded_data ) +{ + + int i, j; + int output_length = 4 * ((input_length + 2) / 3); + + if( !encoded_data ) return; + if( !data ) { encoded_data[0] = '='; encoded_data[1] = 0; return; } + + for (i = 0, j = 0; i < input_length; ) { + + uint32_t octet_a = i < input_length ? (unsigned char)data[i++] : 0; + uint32_t octet_b = i < input_length ? (unsigned char)data[i++] : 0; + uint32_t octet_c = i < input_length ? (unsigned char)data[i++] : 0; + + uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; + + encoded_data[j++] = encoding_table[(triple >> 3 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 2 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 1 * 6) & 0x3F]; + encoded_data[j++] = encoding_table[(triple >> 0 * 6) & 0x3F]; + } + + for (i = 0; i < mod_table[input_length % 3]; i++) + encoded_data[output_length - 1 - i] = '='; + + encoded_data[j] = 0; +} + diff --git a/embedded8266/common/mystuff.h b/embedded8266/common/mystuff.h new file mode 100644 index 0000000..6ebc87b --- /dev/null +++ b/embedded8266/common/mystuff.h @@ -0,0 +1,43 @@ +//Unless what else is individually marked, all code in this file is +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#ifndef _MYSTUFF_H +#define _MYSTUFF_H + +#include +#include +#include +#include +#include + +extern char generic_print_buffer[384]; + +extern const char * enctypes[6];// = { "open", "wep", "wpa", "wpa2", "wpa_wpa2", "max" }; + +#define printf( ... ) ets_sprintf( generic_print_buffer, __VA_ARGS__ ); uart0_sendStr( generic_print_buffer ); + +int32 my_atoi( const char * in ); +void Uint32To10Str( char * out, uint32 dat ); + +//For holding TX packet buffers +extern char generic_buffer[1500]; +extern char * generic_ptr; +int8_t ICACHE_FLASH_ATTR TCPCanSend( struct espconn * conn, int size ); +int8_t ICACHE_FLASH_ATTR TCPDoneSend( struct espconn * conn ); +void ICACHE_FLASH_ATTR EndTCPWrite( struct espconn * conn ); + +#define PushByte( c ) { *(generic_ptr++) = c; } + +void PushString( const char * buffer ); +void PushBlob( const uint8 * buffer, int len ); +#define START_PACK {generic_ptr=generic_buffer;} +#define PACK_LENGTH (generic_ptr-&generic_buffer[0]} + +int ICACHE_FLASH_ATTR ColonsToInts( const char * str, int32_t * vals, int max_quantity ); + +//As much as it pains me, we shouldn't be using the esp8266's base64_encode() function +//as it does stuff with dynamic memory. +void ICACHE_FLASH_ATTR my_base64_encode(const unsigned char *data, size_t input_length, uint8_t * encoded_data ); + +#endif diff --git a/embedded8266/driver/adc.c b/embedded8266/driver/adc.c index 5a93c77..e03b8e2 100644 --- a/embedded8266/driver/adc.c +++ b/embedded8266/driver/adc.c @@ -1,4 +1,7 @@ //I did not write this file, but I don't know where it came from. +//It was also heavily modified by me, Charles Lohr. I personally +//renounce any copyright over this file, so all of my modifications +//are hereby placed into the public domain. #include "ets_sys.h" #include "osapi.h" diff --git a/embedded8266/driver/uart.c b/embedded8266/driver/uart.c index e6c043a..96c1422 100644 --- a/embedded8266/driver/uart.c +++ b/embedded8266/driver/uart.c @@ -8,6 +8,7 @@ * * Modification history: * 2014/3/12, v1.0 create this file. + * [various] Not released, Modified by Charles Lohr to change the RX behavior *******************************************************************************/ #include #include diff --git a/embedded8266/image.elf b/embedded8266/image.elf index 66c23c4c9b9707145a13d5a30b5928dfc6d5eda5..7b0599d182d5364515ef63e63eb7b3e53e383be4 100755 GIT binary patch literal 456657 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

~ZzH$;tA%fgF^v{z2kLtXj6P?x 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 });oW~@O*yqo9c;|@uQu2s>|Gzxx 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

#^~<8K(MRWmSGy4l4sL!3)-3VB^Q)ux&t| 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 vOUO&?JJ4n^wNH4!a%$*8s$4m~JV&_^O zGiT16*`qh2wtb{+VEbR%u0RO>M<5o_NRPsi24RHIanVLaZp@FUTEQShf(n2nfrO%9 zgjUu2GD(0aYTxxg)2Bl^LK+hZ_Z~-x1R5X@%I7~t(qkY!#5xkVW0Ujvd9&6eGfxJKXn}OPc_Aie$wb#X(j#R`(m^44enywZj(-8>sx5b*& zKgNpl6eCk*DBsr6bOj_v9yfgezCL41!)0cH3^RRd( z^P2Xz%of)lnax{oW)^(Xl_|rYI6E*VoPRcx|x6+&X2 zW|^3*$rn#+a}0!~7G=o5RvHs0%k0H)$5(zTR-kMjA?<^|e}`M&6}N^B$GgR&VPmW6 zp7!t+A$5H7ZUI5wo9-t0DsetX;f56q!z@ArorG zC`PF<ZWlgF?`0`4>490Y>);J!EI7 zf9TKd^3#z*$*+n(*Bh(e1yqw_km)KFXL14Q-|B}~D{4l5ewIav3dSR&vwFhb6s|LaJhyQXQ`*lJsj>`c+3ENy;DwQaI2 z{&S$E%4N~AF)n+WT+M42mlQbHx>%H>GMQFR7N5-t%^z zcOurvvKE%Ik8ZY)I%Xev&OV~Up5n-&vUy54@8f>;%K z%`kuEQ(+|DAE=MBf96Y0zTKXpEuPYVC{r@Kk)MvDu0N+b@p_}M$H!15&i2Gr;$ zO)<0a7NbZHsCBlh0%5!#5mjuW?(DjT#(wB*Z9{E8)X-?It~EciVbbejHk({E&H}aa z3me;mk#D9?o7jGmy%jgpw;=Y?5nDNrnn4u-KDI?1>fj1nc*z3NE39OPoVNLcA78 zOCKhrwQx!C+f)Vrsjh>0Vw>a>Gr0j(yz}npJ+$##S90=-5~o~~;#;d?=q6|J9;a)g z!S_mRBZYXU9KTspE#Zcjg?x5J)aHhYbuE2RgXn5#xQ!CDfcTHKsDUj8G~hjcyP6&9 z>Un>FBC;o$KmpRK2|Rz&NNz4DOIJ*4hLx!j{y`%jjz%AmIfs1 zjTTg0ii;Nsi#eu$qa~Re;A=0{F6ND4$YtXmnwC7moIKKHEI?de-{KNphuF3TmN&C) zuI54%B}YH|>0nCrvdl0wj4wME**#th7rWR{LV<)SP$DLLd-ht&w0vD&K+yJ;Wkc4n zS#05Np<*c?AE6qF+F#S|;bNXiXtZ;UVTg}H;#PiO6}tz9O+ z+a99V+Vze0xF&nNV>h9`aMTL}ux7b%)(eDZQ(VRKYV!+fA1chBYc808N;tNF8`8+d z!I0E)`X(-Z;m7zjRrxXR{rJWLwDG9-e!`?QU=m=J_>_P>9QR7qP63+jURZ+DjUArTw#x4 zf*b9zO&{WxPFQG!Prck{UPd`b@fFqVl+(SHKKonV#ZOhJ(SgY1#(l|?R#ya|t1}zJ zQNvqiXVqp`Qy7Brc6ONCx4Rmrp{4>PWvI{PAedqm1t=(GE`~}@H6Qk8dZ{rGK@PTh1!S7gKXmkHrg7hr?^Z{( z)lNVz*9ubV6hmc)RH2G}OA;r*D%D=At=O0IjMTnDyJlO{0JP@GfRQS2qWo!^!rwiG<9!Cj#_8Uz z)4if9et1=A!MYDfnGAkBYDjMYmf7Q!y^7IaP#sQKz+LpSD)@!DNWY*GQoQZ$x8qZS1f!Q7;$pem z*@4KM?2R9x77PT^qC`bKZ$grnl&MzMSj*Uy)pux&nkP8^b2^EI$RYsj$A?;ipi>DLASv z>P&R4%XNF~_4t8Qwo?|q_tdm{%ojYcV3s&@o+&7xfmQO$Mwp%;{G31CY?{#koL|rv zO-`x!)>kkSEo?l=?e{PWV+krh<+1Pc@R6t)WD|QkKAKXU^wv)1c)hxsao zL#tAv#+ytLlPn<9a$_cJiW&N6boTrSoBEDTNluO!!y9`fxJcs7Dsd4vX<0Q|YPJ@C>>fy!K%3#t%)law?t8BC%X=FCu-Gq5CAmF{Wh zwsPOq>A)?c8}9(@3c!rc_P=1Rw zAOX?7z8)qxJwyoe{B$$f(4eOPU3VPq)~n1Kk4@tldWN1$n?pUeP>PaM*!OpDo7^d;+jpKW+Wv#+_kdV|Kbo-JOlN$TTV z&)UE4X7!o`<)aY>Ix%~eax!0fu9Kn6A9pXM*qPNO3lQI|oX~iS`?%ZuiJxE;6Zt^A z*!GAuuSJIJ>}FOz=mYn@`1Wgwp}YM<lc8eNK$&(!3Z` z%wsX89S|qGTx}pe#WCpUE%`8|x9Gx^abe?(Nvy)wE{iQ=sub4aNX!{q-k&~FdCTkObLxd273YySv)W@o;oRu?IV+`8cEGLBZ0NyIdS9z#E~+j7Z-Ot!d}w9Ka)+xIBW?o}MQu5h^&jylA3$f-y3Lg$1m4PMJQ97xV6SeX>`m0$2Z7J9la~>yDL-9wZGn#>l8?%W$CYx zs7Wo$i#Q->b`8{+w$Io;BmHYI>j6o?Mgf>AQS@YFD!USEx&+3n5%By73|NaU#hUmx zT`V!qTs>yLX27sixKGMSD%(|`xG%L|&~?(fE%@Hi-(>N(R5q%=yrV40srxBxkISd) z)|MadYIb>bTeLNvE^%;LzgQ^D8&ET^&=WIIDV;|dk1B(BHmTP5?fT~Z-st`KFxYI< zSjr6stF$3iU_GI@vxpfPmrs=zYd*=^Y>N$#;20XLLylIH|ueO77LOlP}6@32*uEpp zb~R-W=oyoJw6~NBXDHe%<6A`FQA_H21RJc7IC?)l0%T-da#S4K&wz>giZ6CTPckrL ziQb=p8Oo7F1kP$NUhM@q2%N{YUi>(D$4g0{nX&d?M5B;hHGoia$#Q6dPuh^|SDE-F z8*r=KS_28{^00l$eu;RbA<|2ljO7Fy%g>1j62s-9O3j%Tt}CQ-A~|#G1U=)Qe(<7mp*a!ZThbka_Cpnohu~ zajB{1yclCl3_j(j!_x7)Ps&?QiVqv}B1`-_qA{B6;fzZcl0Gb5gk9n{Mm<&I5ic7H zwU_-}evfpSOX zF+Aygeq&tE>hp<_;k+`F;{FP@$}LJzsC2NK#An2#DdD1NL<;rEeR1H3LdtnxTsdM$ zpItxrGB<%tsgDwyM*K{*9}yon@l^!`C)*vUA=R3u%~?0mny?N}A;9u>dC^R@HmLN` znb|<0^L}iM3K+jn*1@0xD(wJc!fig8wd~5za$1zcQZi(ne~4ZN0TBa-PGk;fal5Q; zNWiBNcV8CngMhk*?-4~#C5w^fk<=gE;uP}`-huyIYh_u1;15Gkqgin#M&0DB-hD`X z!8|d@Eemehvb8VX-z}aue<$pfUmnz?!}<9!)ibdD{QYxV`s~`Q`Ak6DwYzqGq+6@o z_r5HZV3>Qsb+G@b_KH7S22;cDh_YoZ9eRhWlEs?wE-KzDj?el%$UufsZPR1nqL^aU zS8@J0oKwJd8X22Ap+Dw-`vSF;63wBK^Vj906`xdVxu1N(e|?sw;rP^jC=Y_yxIY=r zF_V$A1Zm@RTJD%nI0hL;celL^H%sY*gHf~6;mRsP18ER>g@cjGYya^XDFHXwI4~p;!eF6Fl4!fC=vvxwu)}J8>BPR6I8^e#qxu z;d8I$O$+|?UeDOXu@P|^Ew|Sz>;?Ei})RTY7Vs=J!|c z?8wy??&`z6TyC%g3)p>J+Wc(V9GI1+&y_4wd%fDlsk(mxi9X`&Bb(MUU~#QfI3WlS-=biW80Cl zE8yhBtrPR};;}TS zO|}4)BeYzrM`#5&#s|8@6M44q-5y~##0TMBz4@?H96ROdvj88CH}t~kr5LaF z6xQMrLtsf9u0X-Xi>5#ENuVK^?vU|vv15uosMI5rLZJe@pi6vYs!>BJKq(pT>@9^~?*{jTfPq@>oo?aXZp$`= z-@Yr(D&YG&YJA+Q-NLH?3&*eYW@qLLFNiM|#0)yyQ-6<&<@klvy}nym51Hfe(|5%m z3u2=kt9{&)-NKUqOUG+^D}Xu0C~S|4k<&&N*t?Uz-G$nm6ryORiXVcyT zy`W@z0_A>Ld~SLw<#ve&rq7~_!Rg{HF?PmSR`TIr$hgz*d+7zf7By_RkVasm_cQ%B zW5*_+SUqFt5QgLcF|x=nMrgx=Z|ihMu~ASL~W`L`Bwt+4bW0 zg^|>{&b=24y^7GU{R`gnzSi7U27lQp-g;;X_YQ%jRu*kBDjwI=a8L9!+iR6kmNffqJ@AY}ZSTyQ|y@i z3YC9Ze16UVSjgX-vk8AMWp zPTo59miXd=vp7jySy~iz3C)R1wFg_b9FsiaACG1z9N8W*adBLLeyp5nPrV|}TpUZC>=6IC zIBm$_D}Wmnx2I=APnGV$EgeAbzxLQ{hWOLsL4#zuTRscEKcKoDw4Jiws|hq;F8`If z38lHi?c#vP1{YcH%kNYwnK1V~nK2B3Y{WQsJ2+YK{L?y9KT_$w_72_wFTyo(<6|7|6!$(BGl^c0>~IhtH!EsJ zLFud$gOz$iVUx%H!ygA!0eX&28sWD4Mtdk#41$t3kKF4T{B+fT_Vzn1#Cr>Iojy4H zCxUV0O_5s?J-~Gn&xS2EV86q>Sz?>`W+V?~_`pv~h~H-aDa^qSZcWNgwkkK4Z*+s1)P;1+EFS?)Go? zJ%Dg2LAW%#LFNwlgad%XaICrsbOyfWzV!*;0_1g!A3(nL319mx{oit7Z+lNB=#IU( zy(5lL1lNnYrCik}P9WMmIw?eDSr*LF zEx)9?BXdnYp$QsVj?ebi%Dv_jUIR!zKK%f)*(YoU$mjS(FQnCW(tfGDt43}1EBjo7 zPuK_(m}9+au~3H1Of$A=z3p7sgr0aAfmdLiw}D*&@bZ{1r&U(s_J!7RJdVe!>D zN!$?Z80~9$ttSZ*+>?CSuaFpW)iCYi;AQEQ=Y}|E8Asi^AyzM2F#D$)KnI@R#j+m} z<<{Ky58*$4(2!j{hFyN%E=Z_Uvt=V}-;u9;>#zR>o z9&@>@l$f1L=3lnGCz}7E3;gN^q(78pyCN3?uNLb zEGzis8~@t=c4Cr1cO0F2L;R_17?pNY>{C88!kYQebW2Z>P4ku~M=MiL&TyG=!_6Us3TG4=6UoK z6RvM|C&{XZU=dEIV@VB#Um|@7zRPcDkrR>ddpxL7uX&5k3B-$C;!+hzN` za{JpClPi)JT0UAh{uKN4%4BJ!ZdIo)u{| z>P~tM3Nk6}`8{QSTsZz>Z`sS8y43p(>s?zXUldV3M`!%0{v+(-7I!{Dp^G{Hn4){$}rq$_`AKFNlZ!xtNN(AdapYG;r{R{N>3D$A7ob z`rqWIw&lOLO_$IPSdwP?U)Wnw6@a1UHPsVvi`ZP9NqzLYsHj;(S)F24O*GZ;yZBm- zGt~MtTF-&^PKZH0%LZ$3Zf!=WqZSp}))E-KTAd z5o}Oz*1Bhjhn}*A(hs4RwL1wc@I9?#x;WS|j|TQgx_Ow3ucICq+OsBUwf9PiKcZ;?XLbAJKr#9LoX|# zaPjH&bE@oLoL@LTF*$2n@$^mkS*{EF6JHvkC|=HLtR{A5O;lFg{sa_Z%Fo}J&lZ=( z?hS4?jn~2vR((umM{s+7wzl$4vURUP8Qe}R884-P`v!pHh$kJG*5=Zh8Mqys92c(K z@lsT2T&KpAWlrX?{f+aBv+_p(=Z!_?SI?JKXzM5Bmuic%SOAiWbkpUs+op;GT`1Co zvbHA2VAFVW$(vPWr7l+~?k&5w&xT=?*fm|RB-U}MO@R$zxBVulEWIH$=~@2S6fl@b zK}tM0tj9$E7yP^|r7Q8fRKxqy1tmTcN{6zg{1V=YK~HzD=cHpaHjJ?%thR>{iv{o0 zfR`k1S306lkvaZjogRs63>a`*QIR4aml`Y1~BZ zK{IjuWWdm|gJLWhI3XHDgmhblQ>q*%WIZmbDB;7}=z|sUrRoYNs<32%0hT_9s(B3V zV$GbAID`_!& zg4>1P{R#8HT1Mbo3Q{TCSm}BIjtxCQQYc@PbF^ZIFS8f|^x~ip$Q@RY z0o`KRG9;Bs(3b9HfS2Brvijf&F_Zn)T&m?JEX=|=IXVkZAP|)TwuizmBtG6Jeb@&N z!cOV?K6oa6Rf-G3OYn=57=$0g&q;C+9#QoJDU*F)Hokd@XXEi960IX1ZGZsmktipk z>}W@ADi!x_wBtfAv(#b0-Q6DylYb$efgKLHu*3%xzfV+z2Ixfow+OwJpfP>B~w*f88Whz64yK2KP;Rr?o1wu7rVqw*I%#RX!< z0G9WCLvXUPNjASJtqj3ZC?kK zeR_$+AN1)9V#tL)g#u7&)!^aLw>)v0usG9@(lT8twvGgO1jmFh2U4+PgcPpDOCsET z>0qi(fx!10j-B!thIT|qq84+MV~+HR7UxcNPeNc+cK>Y$yCl?qTn;Rn7DjmM44nHI z6pX@g2=pU&y0X3z=E7as{hcyfP3)_rbKgM{D^erDEpJ&>pMX3 z4w2)+g5kIqcga#i7>e zN-B7^F7VSXOIq#%q6M*(G0S0sK)sp+H|bB@oghr0e}KJ99Rn@@?4x?qxtxM(OVKL4$wzj7-GnMrCD~N`U=MF`i4%WzUgA z%8U@lETzsD#GSbh^ZEl{^RkHOW?V=zB!uWH`hYXtv~FoZe>^(5hMXy6Ft8~~`z)zx zp!U6>&C&E5K4`H`b{CMA(`2`eJP*puQ}i^ctv}AH%J1tRqh>okMkJ>q5ce<>PnrP# zmRjpXV5h4TjI7_CvIT<-!8^zd0nP#^mrFt~jV!|`;fxR1hHg^;=HS&z|69QxV|B+o zToJhFI9~N#W{xe1$OtJPLHv>o!AvYO`0a{#xgt0B(H*k}(OCq!)3Vj71WP4cFhH(a z>4O1SM_ErxEd%h#X<&8buE>_8h>6n+?HfRD?oOuEqli}H0BRH*?L#mIp9rA4X&dSt+Y zNAv^f2Ba&Yh419lY5IYw3i<`4tAK8$axm(_AWmRlGpQ{+s2P4j`t3Z#%0s5;S2E8l zc^t_O>|RR4YMw}OpUV0IJ!SO*7`R~xZ5$MEhT5{%5aQNTMO=6Uj}hR$4ghD@x)x8q(0L(d0J$Da|VYUTdYNoM!&s^XZv!34NOjqaLP;AZV86wV-z0afls{5SojCyQJBzcA}d{}<-?|KxML@_+Nu zTmCQ1>h!~`y^2$B!~dVcR>%J>?0DzzuzowGY(0*ntRd1eJzhkO?3PaIaVABNllmv% zl*l8XN)_|H`+x@vu)`xgoB#%kc9{=T!R896tSj&d+vQVXIYSC(dl*#LPINch+tRiK z98Y!Lm%dNHg$iqVoD`pklPULAX%;;3Qt6pQJhzYIysT@!Z4Ab4=~g0+*I5T5wYGeM ztVV_H-t7G_kzWLzP)Zt#2hn4RAC)w9C`8bazAjZI;VB`y&{QoGkvw8uPzsK?Fa0+O&oh8oTW#~tmS|WJEl$uvVL_xRyYiGB z=YU-c^m2+>rv?qcy+L}+fY%JAN5KeqZ6e1& zNuB9Zt+V*V9;$8(I?)(i*^v0B}%AJT_R-)j`}Ca7&+-IY=VydmUepeqd2DexZW z>^`YQz#}8RmD@@f%6cLCKv;AuQ<(1CcSV*$jX0L6cJ%s6V2e*O8F31ARF+m6@!$b^ zGSj#Nvi`w>XFx3;=z9K6=>sDkM!Ba;KO6A`mOdW~S}p@#psFjx+z8LhkPWVUvao(z z$4k}}JZH3fmaL<~gM(FC)cB#N2JEp;d?c7HKp+|iOPc6a8hz-NnG?%lM;6IvAon&n z?5{cPl}@GLeAo*mj=)iqt>bVDoI!4u`H%o(hzgw6;TA(Y>O-_foc%g!^wjXnnZ)8} zU5g8OB^44Frx_W?mX#J$*@IAY_-M^Ea7qfLUy&L{;K(X^4S1)yM`PF;fmMaEJ`%vF z9v%K@=A(lj4OP{V`d~Lc3TLk)uS|H|5t%_P`(=OL0wq`l{NR@FWDr5n*Y>HbHDAuY z?$1Cs;+88U18`xWd40_W463I#kh8+F(j(Ks84v;Y#Ery;{82D-n%(kk1Y8lA zXoFiCa37A2m6nXe1(bWR01-f&nemBCG3ghDjr+AmnZlNxq`mm0ucfM+$#n#+X4 zIfR_>{vye%fp`dP<2kMqtgY;?pErI;C zh6ev2c}Ig>Jt_51#cQiRmp5x`&8XIfD{M-pU#%JAtGA&9ll8vPx)D6%-fvU0)OfN) z8yIRlArdv7^8YIEul}55Sv06NzAMKKqf|WNUX+Em;iwJS-joY$$YR53T76iL6Jmm$ ztCu0Noyf7F#vHrUHx2h?4v~5`z9@rBM2$2m4NsW5PA;#KYqt`-R%>B{^sIkF6e9dn zrpHDL3t^>94Y!VohLm+AB?Aw&n2J^y7`RRYcO@*)mACNQq*lF+QJc%9wlq8{Hcw{L zt8)e$LQN@fr|`D*KS&P?q~i!8YyP?@*(*ie&A$=h%s>7d{zrTS2tnU-D~i{l4qKwPYV(GG>@4jARn zAhbi=>5zUNiwF00Y(=`Jv7plKPx$px*g-qgk$Xo9OUDN4XP;zF$78a-Cwm{Dl-=y| z6>LRJOU+k480!)sBjpC!ohc3L1?dfDoYVnUdp&yRM#9^F37skdyg;7vZso&nn63qENz zc-m3BZ%I-HUK4SN%n&Bz=3{cI9n_Cf(z2A4iMb$3g$kWsZn{s%lWgPg;1LCW>_P>r z&wVw@5GqXcS;-UoO*I7DXDiCquNazC{e-sq2^P2)FTEwbH4Z0ICAXv_<8XT4p}jQ> z^3mr>4ZP2BE=uAu@u;dG-??1WXv0P_0_c=BDk%fwv9|!5FOrz7qwQYfKFuY=x$)@i zCG)xQ*#ArUe-&6D*;0XxlG9z?v*iM0e3DGSN{_ny z7AsA7c+gSrq2x5|D3fcxk;a*@t_pld3o8)M zfmaIsnauqx;{rlI1Jf$F*PveW8v?=bp%+#b&_Y3P(t$4eyW%ecO$G%?-1k1vpxs0R ze~_|1<-vvzzv1OkL}3#Wy1|SGpAND9+Eae0-=+-3p<4VB$y6HF2X_7bO!O~*YlM42 z@|kdK)mx;6JWAN^Squ?7VQ1L3xUpZ_SVbchGKTLsJz57ew(P(c%o;tnF34Rec!jEP+c&;L9 zDMg=`_0iVLvYv5(o9Sg4u36$Bl7qV_rw+tw@(R24*@&e?YL3d`QX~X#3FFSn&l=rT zHNGu8_X{|+5;pzYwF>ZghhsOh&TGu;D;(=|Y*!G1{|L7XNXC}i#3^2wA%mN*`%?w? z1+XEupL>=e z$g%`A&qF*j@`)1Iz`L`hYvb``t;6c0n2`a+0J26P+voSBiCK6Iwf&yt$O0AX>Tc;@ zSvWe}cv}w}8%q*4^5`6|m>^Pa>2emHO|7{nO|W8pFg-y9^*ll9ag3HKtvCkkd$jZ> zqz!U-6#h2)&MXczFq6}*rk=dSe(Fw^E?dEV)ZEpXj@xqM(pQ$|{=!G7@i$#kUN+9B z-tUs$$ObE2QfX(EX$pa~2kcshX{4v9Jg zxA|4@<)2*o^C$pMz4hs1IdIHDebO$ioQQW*8`>rPBwR}Uqg`s4gsUk~fkP(aF#{d< zM_Okhu0P8|9*vQA``W2v6x%lyM^!xIbM)0u% zTa3E_Jfw7cR8+KbOFkGKz9iQ*;EoOu%J|_`$GdW22iQ)PjtRcPW^^JNEDp4kl!v)K zt9{off7~j~%)>>L=ccqf5BKf&bLR#O*XZyW!lbY_-Q)M^{!hE~a~>?oZ|#<-DL8eu z^(DFRnBw5pih;`LQBQo5vQKj_b*r9ncY6!>DAqHL&i01&8o2)|^)rxrhRgzCnOrhZ z=?IJ2Q35DzmWf>@7)~1;FUzgvCu=TkBxhFO-%SjRFHOM-q4e{ztw=WC?5c+XZc+Mv z3Vxs3b60wDDt?lB^rqA`6)&Ks+?3|#<4jCTZ{*{-D(eukN0*eKF2Q;*&W2N?0&fCQ z7J@Yst8YSwPJPc0Qyp8@M_2HJL)vJ=0~zr2&mKY8pHSvsHq0^Y?O@@vlOi|TrHeM4 zqN3*#ByZIY|wN3ao{)s?!H`u@$VjQ~J07kBy|2 ze?RAmEWU}~ZWqSgkOHRRm^k++Vz(`{fNiM-E{u*6#`sog&Hujp?h}oXnjGc&g%c^W z*e=g^2cxr(sB^6p)BdMjP+~a^4@(NI=fqXXgYo& zGO2ySZ;B#%)@i6)Rg(LjqXAW}GtYZz1|A7i7&QYX{fJJfVg@b)VxOOZa{!uDi1Pxi z=W)x^fQ4JCEyU&^`T)*eDFZ{&y!3q`9zNCG2XpV-&{HhqDlFES-@1`%OjFj)CMHqX zN*4qt<Ay4ac=MbawNCg(N}t9h$_?qORIAeusvNg)OMe-w8l9-g*{5lVa&!9n zfDP#f1Kd}^n+!}nd!mPaE?A}QMc5MVT0s_!v-ip`+u@=!I5!+MN!>;GVJh^7R5S}$ zVXJg<7JeA-kVZU&hfwYxq*)IEZ-0OLQ`N&b4g)hAW)pa`R4^OAK)FAc&d%xJR77nopE z1e-T_*2vwG;t^aIz=)Te`k6DPwAwVxq$KW*Q6_Rab}8pIk4N`R<258 z3rM#WI{!LKt_!Ixa1_eMX(n)EI`}XJPV1276yqWNCtP#EGXJD(;ZXTCxnh36q8X2l zm^g!8Ds3)?m1Ex(>25L5@x3e3bUQWz9iO)2iK$kP2hJ~>VFfJUalsN)60Iq*qqfKK z6J%}UXKSpbh+h)PsDt+GSrWBpNyLU78Nub1S0r@_AWhGg3?;Cab4U|Qa9Wgg3QTcWAftO0b?&8MuDgSWDZkTE9m>+k=IT@O+BE~77$mrW$raUa7zzRXH*k8 zVsY-kBI(Al+=z`A<;K}*Oz^SUV=C`36YQoxz?5AZ=c%2ogO>_Pu@LKZCuRI2+!=`C zmqY-e`6UB{!(Q&FWL}8>8EI9*7kl_6ET1%}@|JP-K*xV&K4~y5{kRYeU$07vML18T zgxjm;r=`M081C$ClvXXmra{fo0(r zFT-TVASSRT@TL^882`w*zw_$O-2~FVFM}lxv~19L3xHYdD3Ak>0PBZR&|`Q4^;pNJ z(;vf2F?IH$^z9P-&k?SRP;FfxF$6Oa^t0ZCjk>0Q)UAy2rf zbtApk%X57lyQGy%@vJ=Sn_deOQ{b#7o95gY-CS~DNH@V3Vs!PR3@XQJ8H9VS+>pjL z+SR;M!9=*Lyk1II5x8pWPfx54qc}AbIC7-=$dTK$6txVeQcqr#W-PIppX(n47u(Bigj3KBOC;hYV>?z^0nJ5^bFdyX9Ku;FAboshp*WUQlT81}bYT37q3D3CvbGLQ$RHB>;E>_Cj!N@|lZzl&Uyg(l*WPxR|4?Kh8VX z3YXzSCQRR1$iY0=G8DnRZ72hq0P9j8$>Jd#=IDcZ%<6t3uMY=t@mIbkitCnp^3m#^ ze2;;@2aHDXAMl|`xM)qTV3WJo$RiPv;9A@al%Mi#IO`H%SI^jImZY0k2?)<35-1RWPZp!ckG9t_E^^SO6Y*6`1_X za|gqUU^kqjooF;~mzJ->HvE$0UWGH33?Y*MoOi*HCda~DDk%dB;+d!JsHztG=lI@XxT#Zfr z949=wW;mB|pYddCfshE63(pE$gfwgoHjJ|V8yJa6u|^T!gHxXWpgb&m60>nbZkxZn7TuRY+O>E{(DLrX z)QLf$yu&)bYb~rkv#(17{)zun^)8{-1J#Xt?hjxZ;(@}4Vf+k{;D@RDV~ipx3)lVz zF%ZDHU{O}%)(1v>A|87#@TzMAv2~tDICK$&XCcgCq4gp?n><@CI%a$HnEBS)Ld+(d zwc^i10I}{@U8wt8WNeE8qAO2w)*4ED|JVMJnmvA7gWV?wVxx*u*XrgeH*UEi{`XgN z)!+RkT47;@T`j0f@clocE49|10X5hCIV`~N!Hp5_Zj`_kQlSPWU1VY$0A`E>b=EK8 znLdQca(o6aMO*BTU&&83=jW^}PSL<8WU8$gZqZl!KLG<##}_2`Jjneqyrfpump^tT zxoBnecw9E`|B>}2a8XtL`}Z8?4g=nSVH-e4oVg$l0?G_(SYk61qnJ>F=8{^1O700Q zT3G@%W=W+|ofa#wP0JFOa#uh{(QpAZmvGI@ec#yT{+}~w@B9A#d_I@CXSwH|d)Dvz z99^N;fDeFG)01_Bl8wmj=4JMINlJ6C!i^N-T*H5o-K+6q*yiLv(pYh|kpA-kvixkK zDlUjraJmI3Q;TmSZJToij7Xq2T^y1Q-m*j5fFQ9#NC`sB&~4bkyExkst3fhnSPu~E zw(DGoI<{r1)@(@0uy0l}dOCmOWSyFncE8Xe>AO~I`RyZFg7LOo4;aH+${un~oUfGH|FLv(c50a_nQx@n?LT|a zwgo^ta#wS4AnNA&SSeljPahv=OLOV|f2LE_#Zt$4OOP}0VRuaBkK`()Z=e4-$gO%9 z`vhXe;Yw-O3&yA8TX_Fi{?k7bykcGS52-Qzm$FR25ce94AIG}%}+MtxSUNAo4+>IR$y6HOn477;*`F>a5Jm2)Y z#ZjemCq!VxedF#e)Z`q=KVQUkgkYj&DQ3nQkpgGyFNKs|C>?XLb01gFhf`_>pHjgX z1bj+45zVKRm?CI?_9K{B0tWQfOK5To=;fh&K#QeS7elP>WrM^M#qYs|6v(}8BuzD~3^HRr< z_L9Q*$uxQA1?7??UmE1u} z>HAk~)S{H`yK++8*+ODYm#)5=@AqR1cEja?mZhbM*FGd~mu|i`QtjN-Otj}$M_msg zv<4o_~z1G zx4sb5F{!1}iMQX9dYnc-NWlXwuE!%wZ{1!d8i5oWQ(Atf`)v6H@1j~A6as0B$_gd_ zC8Jb}Mv2706vB7MQ}Bh(gkjhj3e-Qr$qR zYcGR+vGXXU31H74SNSCl?|*XrYpY%ZO5uUFV4CBtcs`8^GulGz=7OL}6<>(N}g z?{2b>Gsv5x^s#$>QvSb*3C*R0?)CH${dnTzu@fIAxMG_BivtDi3q#zgwCfz~Gz+6j zFWj?*Tv1Sy2|+1YGwt&%eY*A;xzMk)&;1Phf;BK9K(l4ws(>6=O2ad4)G`OVI1bf> zrH>-l6S?{_+06?XnyZCKcwiqX4MrSekC*PcZw&Y1Xy^+h&GW;x=c9Z-?kh}qW#NIp z7d56o>C2ndYEnDO)W_+koj#*S^9RZ#^*Cas;w9geElVXH9=Jl+<*$eBzR9hK%M|nT znh#StbxC?$zs<*-W2sU^7E!vWv1hXD$#A2?XzebVRx0GcDLiOeu7J*QeapqY1-!kX z*P70MCCA*$iZEqWX;Whi?SG=w*fcTCyyM1KiX~S{0Fu!D()>m?!Dz&0A~AY{ht>mob=R7!LY^qBM>Nk<*TyjTh- zvAQ!n7Z%q{z0pBgeEGPP7+7OS)w*ZHij|z?{gSA?pd}6bZfHwuO=((7$M#}sxZc_h z8_+hA?QKPv5Q#e@itd~(eWPWzxm#PD6t$66nlRrAs|8J7c_-)Iiu!pULr!v-CFY%JQ@CQ8|M(r`IdivL+a-;)|{2 zI{7IL*eU8PX~Onb&<;z-_FYBhU~D$`8cK7N{6S@ZB4bL&L@iW;BfToYPn*n9z|yI) z^cez|Xc$%bdNL(*6#SZ=as3T$6gy#g6Fwe_LHm&$;G^W%wC#TabWOkgDw9Csk^e7mq!66G9!=-urB+4~bFRHiDgwSo=XI@;cEvj`7+DO@{iKJkG*Q#OdSy z;XWH}B3+5h=9!2gEWZI+I9Z!chMU~CFx}ktrnT!$M1}R*(!?rdGSJ7B(8L0wN#yJe zN0HlXAJ`X*?^=E@*TPN)rLW-u(6Rh}r8iSnN)GOS;rEjhy!Suxd&z3;r~-#5Hh~MU zro!#932r#Fn;HhO-XdHvP2iDYnre!;TJ=8wD;Vl&;nrG1Z#(&n7c|f$rCDoZdz;9| zN7?3R^0bfG*vbN9NH6N{$@<3-6EU-iF{D$RTidjF(X2Dr+rX}KtCIkMiy+QtJrF`b zMTM8U3huL&G30ks5?T<8E3DUP4uO3yXEfWea?Czph{oP$<()}4f2?G2WXe-)BwZnyjm>NYD{JlHsNRjZdMDZc+dQ=N66 zO&;}eqta7mlZe^ZPlKB^Q%BjUBr7d?reN<~nX%m5p<^@EGfg6XND%LCUlp$u z!(uB+YIfX364EONhtn!E(6?kwc>nPIvDZvmb}E-CP9f*nMzV9FMZ4xy7(h@wI? z#9!BWx;ayd8d@JPTV67cwDKm5%ha#Zaj@Hj^h~*2*Lw}Q$D@a5%HunkGpXE34{(Sh ziZm`!Ac;IhikcfQm<}nVftM#mnGPsi_Ck*EU}AvAem>vJt0HAD=oB7Xv_mn~Dg_!t zuBJn_roBTG+109vDAsg*myq9ihEGSgyvu8J)LWy`%NI%Qm*gg(I^^JCW}1fq@6S{C z{udC7Z$6=zGxgScvfPP`@UDQ8Igm6A(k}Mu;9!;KZ%eQOv zj=hTMJB2Le@9kHwNC9(iDJ0#S8gOB>6rcuVURqla%x@-$asi`f-8^Vp&NQ$C^GGJ$ z+rZ>^$#Xc|L8Fp_;5qg)uoi!bVP7mJk7!{TELo)x`!&V+s>n_*Ca?N9-3lB2B^l?B z0ffScU_ZgOd`Ti>?kP5h&h~_{OQ_lOT!U3dT^p6!`ojV3Od}ht3El12756RH{3S^= z&a4Dl!%3K8UIPY}Q4o~b9wiB=e6Zxi9~D@iuSn!z=QTxh`83R54P&fPZ%H+eXv{#0 zvj?6oEYQ7EOy^pJ+?_4?7Zuwe<8(one?bAAF#Q?h7;%o@gVgoapPksNARi1sfXjlmJrFOT+Sq1~lhFq*~LH25oHM+a=Yu5W4QbvOt*`ME# z#F!~)K}VS$gcC%)F#LcY52#kjhiLwfy_UCdI}CVWd`NR;y?h?<9lUa;4QRNz3D zit?dS_zs)&9qftS!&&KfWC%T>unXUj0kq#S*5i9J)5o3OfvxzS7<#+=2yk~il65}k zfk4OfjY9T&XI1bHPI`YZ4_&J$vvF-jzuNHYJy3)VsvwEvOZHX;Nj9HRrcb|JIHPiU zuQ|PgL=DjwtE#6)fujxJE`1?!L{cRNxKHZY(Fzi8bY=;|iI&#ZOTle2(gz=58Lvq5 zi;f>mkiCgi-&qtXRHZax5F7Lt;QAFhR)b_ zlzqOM$mZVvm9f`@jHv;5Dwzl79^=zrc^n2Hr&bfa>ia*7bgXGLF?91&iv0Pf4)?3z zGD!aQBm68lEd1KdkpFD_djxF=!=GSlSvQM~Y_^Se;}wDAsW8usO7#I%y(F zl?bn=0ahV5JfpDEW}*0ctO03wU|6~-Oz zLyCbeO(buAY4;!$SbnKK-k0zOH zF@p^KNhSk$2)5=3$<;dItY@yZWIF9~gxy<9@@0u9TlaQymTSpeq19j}l^&sEfb*yMTK73srTeF@#ZTYqi#mEN8!jH+E z@%I`tlwqqJwTaW1mAmQ&l#f_AvFNpYzpA6B>pnTmdTbzx?cHC)WVK#QDrc z#XX}aV)MnBlCtit{<4Er!*9H*XDMdgycWuU6a_x z;lsC?3=ehXwvT&L^Cf^-q%eanz1%P_XBvBM3wc_exgQ;CCX-Pqhe>A{t~g@!?&T2t z3YG&NYmNpQk$qc8mx%G+d^ssuG9{17{2RQLcd~%3*rMHsSlm`@SWoX~gSL|BF7A3r z2Y97M@=7_se^A9Si+!?9y6n!^^TMDBN70{eCC`z5tZ^%OJUWcOArXAdx{kDL-qH?q zbh{<3KQs@zOz7m|?ZS>uBT!oBdW;bSvg5B9dC85yMSG&B3;ZPuvK9HXeKzhhrpEIRlu7r zJ0Wqgd%}2YZ0O>_j@U3#x{sw)ldgJKxhGY^D)KAJu*^ARjUHK&?0S{WtR@*(*N1F3~#fb#Axyz-lZ1+~K09n`v;nRl)vCgIV1M5)%Jpb5=U{d;8xB1~qD??DTj7gF6@ zbd<_DQz1czSn_t#wI@&7ktJkjXfM@bt+nK}T63stfC2-pq9moDyD5&m(?3k=ASFTQ zvI^p)h2rs6wrD#U(Ba%cF%u&Q1ck}%RBo;~zK7m~V1~MSg|WNaNgO@Amzmte61RIV zUSjQ*m@?KH9kzR$qg(fM)%|>%t#b(%KnIA^J*fe4@4M!B*c)yVH}I^7{K}u0S5#~c zxis&+TJ>^;vjq5PjC`8ox2yc<%Bmj^9;ej_D!66 z>u+|=O`=qhhwa5IXa_OGzu83IXhK&kRSQ4rDt_eK)H3zLnLKKq8n%1*eOEnw`kJDb zo7nIjB&wHtco>&mK&)#J^YMWTz#C&w4GE=7H?zDN zGS=^rd*IVUoHN2$eGM6{b6+FS-b&)D5&eRNti1==k-Vbn;40WrS679<(PTw)!pQa*&_}NAZCX&&YBCy$|N#u556NMhzveZ zvRaCElvN}O?tg^2P>`4T2u5SBNk|YS)fi`~^PKR|Kz&UW#Cdfww*C117QZ+G1t*hb zm(4^a+A#27dmU#OQ9t5L@0$+C7Z!lJs^-h24*ZP7fxs=d5JC1FW1s#`Iy(O0dn)wA zo#U+HQb*_b?9K^pc%(o}Vk13*t7b21fL|$6$FBVj z>-w9@6(9H$e9E~dcn5H)A^C|1+)?3GyA*wakJ}J_`3%l)O9@B54|r1jl(;h)OQmnP zb%h2lY4VhKIwb+AU-HyhH|O>eoQ81Mv*AN!!TC}64dHH6KDF(EPwj+BEJo>k+h#Iz^P`35ofF@OIGNXj2cN6 zd*^y5!L$t?SNxtzYryM{8fi9lusJf;$W-mh@rR4bCT`#1T*O*xN!NJyOra*QMhc$- zieG#h)4RsbN%s5s4~h1raG|0o{*C=CYYz#_nW@M^rf+Wed}ACTeR+MMMTgBU%&xP& zwSOp5t`eVVK7+WnaZ$6T%Or>UB*0OrGa}SBvJLf&{ zko3+kZi;j-XOO})dx@!o*!AB+Heuw1V%6jW##Cho>A4pxlW>f^xR-S7Fr)sRF+<7S zqo|~~08%x`Zlk<4^*hFX*h`|QA%gAP3-^RmJPW*P{d_0Zx!)yoxuY101fxWBZQt7- z+n3dr>3*A-0u*wP=QnLvNIk##kD<&d3?r-w*b%vHRuC8c?J}KKJXQVc>$?TjWRNC4 z+o#+zb>gHmmA?Stft%Sh_X}4s5nm*x3MIF!DLWt&pt(`d_h&zqN!Igs0P}iU(9BJF z!-DKR>LocHUh$5YgRb((9o#^MZ?5Q6S6QU~OO@O$IEBENv94=9dQ_81g>|tynwOMh zCYM(YY=HjcTV7&HM(t|2YBvL)cQ*Nr$8alNZxK-ck?o{Q39q%;VVOd8kbThgjP64S00&ziP+wG~VLor{8H zBe$S?VhQhFOOJIP`H63|*S#a*0g$P9*J>iGJb7XI(SlK~7zBK=+)%lC2)Xw=3M4;y z*q8fBWc0V5Hl*ffv#rigt>fU*v91URZU5Av5B%)AvZ@w)*rELx6E~Dk>ad=QA259# ziKVXjtZyALidA(vuX)&598c&!@J`i~JLmP~g@3WH>R{)!xQ^XHmf6m=;H=x$5L7TL z9Ue1O%$(oZcT5-Q8($xsvgI99GH-{qEp2>iDn2fiIPF7V_4<45?$91H>RY z;iPhd#T_6WQkQXK4~?k=Dw(-P!799&7h<3}RR5R9bXKvNR8Z@|frWhCmThQ3tHa;} zsciV!y{4<`edT?=|w}kiqDLnT@=6fF`Z~-)dxuQppJC~T_A6q@Q*=L zm}i{$k8`1qX@9F^em85!HD!^(2XE>>F}VsT^a)0C@ery~o#O+74_2$vF!AcX0l)qkLDH3fl1OeSt#2lJP%!>s=y(ve;~%<>KqTtK z;|)wz*lA`8S&6Opqp~{(-S4CqH91{db7O<`uloMfJ+2OJ-$U!w`JGz}d^3Gt7zbA} zN=@wwho&2?v}?QMq0!Oli{pDZRD=K@9{R&zmFXEzN*x+z`(=b%g4vBDM9)tBLE8Jd zPAOS#<#g75=5v_D*_~zN3LToO(JWs0#D0fB7RAl&|C!bl+ZYdzX#OzpAITZd65-8~ ziz%nUS69A8zVyb+q7-1c+QOzDh5)VfGJEeZ={?)E3J%HI^u>v!tv(rEQIa@evF1ju zn$XHJzpD0m+5Lo}eMR$WEaF!v6m;YYUw))HvQ{I-!1*|(O3u{OPm4+naBe4w0eru9 z*7BRdxTzz zU@TKsCcW)!@7d8?xZ4G~6l+<96zYs*PaPxOv%22OjXhP{OOnM)3V-IBS72DHl5^UT z%lzKmFC;HGI^TG!pv$R-AIvK)Hk?L9nt76WC3ni=)WLlo1lW$`+{yMHgX(bjE<{)! zyFbvBpd!!kfGK+)Q;w0?ly;uFIb7Y3^+2p5jzmE}7kB$D5IA;IYR=)_cl;6z#(5qr8t8|q4xTt6Gw1Ej^$-^99Kdh9vmJ|(B z=4ter)BnDux72oJ~9vpA9H1Uj0SdG{5@WG5Nnw+89S)h z(z+wR?Y(?s7Moku)1dW&wO>=~+{wK2ryu5Dhjw<9QD-B|YJl8loQJ*LK+?ik^Jgn% zn(0S;&vZ-;#NuKkeJ`=&4dh9veZpDSD7MulLP7JS}vk)VpuCsbDp`_R_Lm2g$>`Qm#I+Lf1(&`bHo}SU%Dx;tHqSI7g)S8 z&Tkd99~TX}--j0%fjMIu$>((cZZ_!@d4jZOznp?=M8h6-;1njhyMPY0HiD5f8Li+YS@+XKA8F%z zPom^Vgz=gqG(ZZoC0Ai2XB}eCohI?I!55J{wD{(!=PL~#4U3`ub}FW2d%*2PN!ev( zZ7$~SS!~5=(ouJS4lTYqIuPt-fMaijb31D|P5O2dUsd{juUvng!vbM^BSqXw&?j6H zeiHw6fNQu(g#{VOxO%XZGo(jG+zm&}{zqPh5rNnPX27WdnSp?q<*-$KRN}KOsd$Gg zuchvVJ+dKC^QIAQMoyEx(+!v#f`0>nY5i94dlRZtWGi6n&HxJFpn`mYF;VOHW{NhQ zRF6F<4HhQ=-UlRlC=kJ7LRsS(vLFNBgUI39U8WkFL~9LmLFguQBftqe zeU^0U=suu}lT5p6ohDxmkvRoSvdaWXohi64hp>)+6BFH7%WQv>gwEo-!7w8e1b&3q zx42H7i?LZ+IkV^m|D(HnOdVR-!oNvG(!OT&a5}N2EvQT@a~vd&?QahVa!eUacJTxt zjTi)g7Xh9IHaixQaF8ASo4DvpwQS5e5*j%Vg`-q%QB}7Y#wj(KnpBX$0~*=;=SXZ+ z3ST*(RjpcqrGPYWkvpU-iQd)m+5uK~4rFTVF4l66^rf2*us;8gSbuA+AE{0lOoE^c z|A!d5rbX&(m?PYfzKuiX?l0bRhR7gZMe>reYd@@To@!>R{vpZjgKLo!h6u7e*tw(` zQZjP&KC-#Wo0;+t35%*km8Bgx&J0X31`0AG5At&d=A$*tdY(k<-3z_cJ!hi#X9zY7 z5udE_&FqEqAdbD1Xa3jMqzFm9a743)Eb?QZl@}~fEtoJTw|_XNbcIU1AnAOJZ985j z;O%$|6j0S5Y*C*Kn1Rc}$H#s0g5#~iM|mNg`6*+AdFyZvpZf!lJa6c#0`q9@-#eBE z4Zb4R6gK7pAR3($J>mrLBu@U1XBS(;M{6?!x3z(6bAFJ@t%I%bpdMpa zy*futjZirNsK-va^WjAkqI`pOQz4&36#zFSh^v);zCz_FzURT2TT2lk7p`|A0k^k6};0t#FTh#1;Jf~Xc94#y^NWn=8fq5Z*oK|yx$t4Q24q$8g zL~ygwmtX|7z|G#e1ogRlqk@B9N@k@H4Hh)i=3lTX-Mm;EUupRfZ+HQQIf?ikBOSHp zBXKw1UChM1s-)Ny{5!@#sQWNCBeQti7+sF&)?A2Y-o2IvF88FngU25&g~u&Y_WcpGYbtGh#R zY%tw%LK(ORB|qjZxwNh1r~bF(fjl_(ppw^-nQ&eZXm%Ul22NwS7Ib{s0DTgHU+L;Y zK~a;kYjzO#?pl1^cTq?3_B|9}O^E7J8kF@t!2Z(3+;SU+{{V4Eu%Mr!DkxJGWSl2E z8Ks(4}u+0KLIb55c!SDsgvboE;@Ss?kms8uMcLkAonC|NTl=Ud9+C2h8d zIFRSTR7jLQxk@5~+=WU%9Clp+jb11!xO4~WdX*S5+_RMQ{Gr=5Qm%M7Tqax*UHW?XTn zutisiRsX1>SNRtmR*E%(ekMQG2>Tr9_+wW|m#8!~u-_!UDCSn_q<1tq(j;l*`k-Yd z2n!r)*6A875*}Bxf!9d;9;s@ab%fpxbFFTjdsNY)(wM?r+=4x-MY&+1g3xH!FHn1( z^E+U&-*B_fu91|0SI?ngmOC(Bd<3FlC$E8lZEa;C*U9+6Gp#UPF(%e^1;eN-N@4F@ zhjHLRw(2^0k*s6#4Iqt$onu38KqeZ1H|8ixwpwVHm#Y@?zhv*qejvlxwd~gd=gT= zO<&_KBM+wC6znotE$sC>WXO<@cs}`Cfp+v+WC*%*s%C3jQiSQt^ut(e1s*^u#(T^+F^!L@~j(0rChm@%jCNxl}@i_ zIPWAPdP2MULQkUQ1&iT{ertjbI{bzL1TE+4OTYQ&ve8yQElo#AH zE8uc==Tk%7v}#CAb%Lt87IG0%&!vKJO6qzCQ}6G#z{9C`h6ih^G%LMY)iXX&{dbAK zdg|26nE}LE%>wR0WA18cVM+Ihev+#mM{tOy+r`?Rk4(UcM($VcW49~1F9kMsY)ouS zO$>An2(OE;k)`wdp&ykel0v?2SP@JvyE%5EoH((hfV{!uZcasL5<)ZDLX*5SmY10^ zgu^eb;vW2UbJ@vzB(lpOEN5P^r&nUSo;MUWLldoWlo59b29ka4ZKCXCo$f={daT8o zzFt)S%QH0Gi?P`jdpQT3CQzN@>z9KQ?at$vWl2o8OTM|G+Sh>fG-k}2Hvu}}-VzKJ zG%kybSTr+8nMq)6ns=~wS8=SE8&Z&ji!jOFr{bT`&A48VzWUn=nXp4Ivv3#`?U69n)1-G{0 zF-&VvusNUZ%$C3|k9nrdF@B=^Dm>N5rEP3aBZ(ACc9Q(->{26%)BODx|HyIInW2d! z#f?Ghm*EPos-QW#>YSjs8+&}@1K2mOlPg?erny0lM$2PY*(*&XZgvRo9_;V{@gO>W zzsR61|M;H%HT9CNg1$YKt3t7&jKeZwC(rONk_}q&{yo{=UL!#3h6raBj`Yryat&I^ z_d(Z;R-q+n*~h$iPM9F0w;N~0xI2FK_O0G3tFjZCd`UNF0gqWT=ZvP3K5 zQ0Haj-5|1-k88ObEU&SZ3j9O)>m}8aZc&RmY8O4Lb>44AG9XZqZmnjv7ScXb{Fcbw z5&=n<>n$b5svI&&w7Z1hR$bSc_7amUb%L&hh!76 zuqOY)rH@0Y9DnAL{WL%Q$n1wRV<26_ZJZxD!K2ps3I8z*T6yf!$2qjKzu3N6vr-Dq zIqm*<0qsV5e!P{+0oj+N_VA-OXlH&^H0aXD*XZQ_?kk~f_$l|xAL!x*K>%{S7^l}# zR1bl7VKa)0&rCb#;)qq*qtfV(i<_qZlnh(%apdc*tens}!z_Gy!I9{KLM6W}Kjo*g zA6CsV)hVe0>FP~7)6aVZ^#sz{HU>q?WwWt(0bkZjAqvhl3XE9df=U*d?kgmUKcNY- zbh^Oap!9LN$Fp`5rK3n6=Qlx`ppxPV!4vc|$)qV0eQQi!8ZgwW*}k6bAiS2nF(Lt` zCH0_Ooeq_Iyi9IxVMA2ZM$c?vpQvCf@W&RsLax2w}qWn(Z^^d z%w|M7kp8@dO%~}3bkP=eP^77&=kVMqL2xKA)z~*ey~xA=`cn#RG%vUf5ot}a_x>QZ718L<_)~W1ujP+xK!-?QkeADR5If-(!s~|X(Q{qj70f8cehX1gg+Nn-)G~O0s9C> zt9zD_PXSz+_aiV&1MaeKegqVZaChy=A4vhx#wbN)cV+~4d?z?=q0F9JPKJr?l>B$@ zuno&eJzMZIu?38}JtE8DEX>`}G%-m0o1OR>h%#;#`U`m`#C1l=3-()=C3Rggun7B& z+2mrgejziZklRx7h=`6(7HTXuro zTtTwg8VxX@r)+0S{ODuS$&F~Y`4%ay=-KV;f**~c2R5=mf7<2IuXiBDTHUBGg}D$} z%tO-c{=u^l_>2c)v!9j@4GVrUc9F{P{R@ktjV5~>EOAI>ZR7aDmfa zsnQjit|dQgWSjhHL?^LPtH0S)DOa{DeitrDJO^Z!^^K_k$n^O}cFUj2h6(&FFzpE< zdw2$pv|NI{Aw7t^w~<-efn;;V`?IWebcT2v%bmpbw4?D6&V0{x;pKJ$bzD&U3bCQV zu|onAMR7XQNz^dg)h%d8oFJP*<(!bbgznhLQmPDZ6DMy4xe9s#>22$_2x4ywo7=)V zlFGyVz~1xx4pRu}%_H`YHewHgE5p=4#1&NO29WeRw;Yt!y=u_aGP&D?5(jZ@<|UVv zk;&d~I8Nnh6PD*f&Q63aY@I|OHGI%Sr^Z4sg=4y5V#_V&Ikmxm*M+bEEtUkak`2<* z1R61)y@g->r48QN>YV_Wu8M;HO4T@WZUd{-(jn0w^NN8fT7~o2ip`nsQlGd{*wD1j zJIWu`7(%4eX7)$`bq;!?Eh7wRQ*ct#aEy;tyx0^nFd<_*S;6l?=r1K4*qu=R72w># zHgE|FT&kpoU^yX_G;i|eBaNF_Z2&ceKi^g=Y`rAtKvT$k83lj5fvEx^mag2$o(QDV z!?yB=eMb zdJr|zAq{L%5baCT8d!Z0or)P|3#KyNyq=8zaX?4_t_hr|6GoDAyi(>WvZs>2 zcgje;^&|#b6?tzxvxd;#^o{jwY6yLviqULu2u%nXwjTM=+ea3{w;Pge^8N;<4W*NG zDLlby(#utP@Y+4svv)%2Ho9{?%Ltu1Fu_JbQ75uWSnEC}8Yx7=4Lu zTgNi=G>NWV$KKM@E?s|Khq6kxrUuHjc35vMO5eMUZdS zv3+{l$?zP1cPoyeM0Z@_z0)s4NGakuK3d28!_iiA*D-rI4UI11MPZ~GRMzA0!rw$@ z@rYE6(NL5cS59WGV>82POt705^Uk!G?8L`vaegkT+Q5DZrx7WxlN8%PPR7HYbwCjJUiO+4$%*s7N$#DK4`!XQkMuN=ZpE zIPGC*byFg@J64e=jv;wyeIpJ{KBowp(9SkTnGIV#Xo%_@5e|OTn){g71$H^nt^cGw zY79+EY13lW=y4ecF_!N~nTLRX5;`~15VAm|4 zk~66^K_xeU0xu!)YuPUb%Bc7y>)(+kQuBQFYDen8z+K;wjt<_tNtQ(%myV}X1I@u0 zzswv(9pU0H6gq06=So*BejpGr@P7M^6-Chyy7D*nNfez=Yu2*pPIOuD5)OyX;9b?TEc`0?-#}*czseqf<;z|Aq?dj#t8- zr5B&)z-i(RBCh$N?&puPpwVv8}RlxGt0^R~obXC0A(VFby(>Pjb@F8+%0%;ltx4_0$&NL9%WGpu=W#F$om2Y}aV zP^v!CS<-tA(y>}|y0v8$?kAftw@zRZ4&Pq`IDU&z7^@3h^c=^m6jK5FqpOJZ4IipXox4P43`FKCpo#M!E);@{GYFznuOU&f&@gg~g<0w2QB^BZ5;k?%^kRYC+!iuhYt0C4Sjh^kv`2(< zm+(g}fpLUNm|*yfjKE1&ex_7_;%%{FZUrmsiDk#Rj{SgNoeQUJFI@cb z&a2_Pk;GqFLr>JQ=K&Vbi~fQ}*xU;Z{Vi+lMdJ~QdxU1w85QhJ9D>o+S>bIHT}lyl zhix`u=ivm^&NUQ=KU()bpDCT$qr>w4SOuGsf>PdQ%TwqJoq~9_e?KaKhcdM@;g$>~ zdCv7enYA|>qT5O~55IWj@!r%-3Yhv)bQmxtAElYye_6p_oRGNu4Bwcs44>tNq%2G? zAHH&`R<4~MXLqlF20c}aG_juTd6Y&yb%^JYYm**kb1vt2?*uvS)gh&X14Fcflej(` zr=W~H;azH5QX!_`FH6-T3{c%Eb`T+NlX)vx@5eBZX0Kq+KSsyW@hjN&$6#tWlIOMV zv3WO4GHeBFd5jv>ry!$j*vaHRbSHhQj$P_QS5gRWzDlLh_@e4m+NEQ|FL=;2Ur7-B ziXU*&Nj09wd*QO}V(Pxwok#`i)0alfuHso!f`FEbiM_@9+&_xjPq0r>5>?iiL5`R# z@i^Fl6ia%M_#d2kVGR@%wsnFH3|n;$#Te6{5s8a$ZzSq06{@T5EBXaKa_!bQLT2;m zy!v)#>~aYz=MODAdEk+{_44}4DMtI3YZ81NF>_%hj?C`)?NX(xfl30G zJ$}k-l^~8N`BzKgHQvj4g0*{`J{R)_Pd2Y?oEG<-yf^j?-(FG!$SdCODo72mV0rA5 zvrT_)C*ET)@KM|Oh5)(WMXo$N{2*Z7IuL;24Rnb`XVmOLH9r2n@s| zcxLy5XF9Y!vy%t^RRC~VCD%>Itv{lrOATNx4 z#I(obepVSyj7cv$L~U-_R(Om#oZ1~Xl>(k)#tWUmhA&_~cG@LugU4zdj#KDLwWgmH z;^J>6zp}^e)L|WRujrOC<71UvR;a!H&c{BIti8T)LX+gr!n7-|a6tKrUn?uR!sJ{k zMkiR(@3E0~+KJWMv8_6p?4aFg?%U*MUay;|P+6o872`X>?!qU<(X_u}2FpWM( z=+Wiunv=GtJ@&D7{b=g!7%msRS*8DD6%M`O3-~y)c{!pmD`B5PHt>6BwlVd*X}@{X zaNH`=R`dHr>5R$9k2NDfyrlZ7KCKWm8vgjuJ7~#|5Ath4Fg&06_s7azw47!1hd|~mTh^bZs5afP9Atm@ zr(4xyAc!%PupiT@lOFS9H`3`+`oewoVmy6<3}q(=fN_1~4%;1%*_(F%lLV}*_m;24 z4&IZ}#Fgyh44P^!4tg^%J!^OlPK=atwHM~u-zD*RZiChmzEaj+Xp`n%4(2@H5Wbh) z2wKThnY8n-20&@39q}41uQht8r{VGk7R~?YoMuP1R8cpXbFi2$_ zsgaW+n5k>cod-)5B=eO>sm>u#c>?zPLu#1^A zPA4}1m#G9P^rmaz7FLkM3Er}b7P~5EC+Md>il^>v6D~H z$SxtAA2Hv+sg06~#6Ad|YSRQn^WegFD@@alvQAG^{cIO+UFf?*Ac`#Ccxs(Y9T7|Y zlQtUH%bPw=In6D@yWh%JE2MF&;^(fi$B;Ww*ILDZxR zt{SAhUgUeA*zB|XQ@JWZ+D3Zt(P8-o2de1u2XHTN+!`E(NB+ci45Ahv5y+QKgXknf@=r*IV5Vw*x482CX+h-9GDIY5 z4L;6SSYa0Jnew+cA`l9Nx5*iPZ$1s`oH$?NK4%1x4c-h=YT&8>U+L|N%}J}C@+F6t zu`5~FaHq4NY#QQQm<2EL*VeN~)HGW=gVza@rmU8{{3H8BO&_0qmsbO;{%!s%Y5T#} zM;hn-aMJucq8^NVX)NO6Onw#!E+_MK#cV3Xg5 zIBX6C{3*sUQ`baxX#&{LBfqn!CQ_@~ zhy|x*H=8?=ntV^G`w_w2hy5~TpRpjhwde3yLEgkTC0dbKSkoRhzi; zprdmWNCJK{zR42Tz{)34Q>TBFqS<>9mz$V2J&!9_a;K(c{iWD()+)>vjCZ|BD&YP>|7Gx?btaul* z&=+Y^`1IXCqQa<`FbYm_WG?PkP^V)fL8ihyV%CeaD`{mvyol+1jh%XtUNk({R7I52 z<2Rwq`fh2JTAg3e&djO&olPEgZaR&XJ2d@&ZK-eiueS8R#k%Fwh4%K#am1t!aOybgg8iW;WMN# zjo8vHgN9p3IM2BWLn;^sBZ;rj2%=^EUZGq4Pke)f%0Z!Z$5`O2bTqlkroKv(#WAR5 z68r8|`XeQ)S=J0J#H#IV(hT|pefb-2tGntAR9W9MtA6YzpmhZcA#cJeu?W-pWZnO7KlUNjRLBPWfJ>n zCcWgZw8DwSTBXA=%J05LbIECT`88_Nx=NKdCA$|}!s5r;zYeY5_cd!@c%6zQY{C?s z?Y70+IbC6Q-=N(?>%1uodlwDQ zNzeDD)GDm^EOeBOO`b&!WEz_{i}q>%{JpxSUFc<+FnmB(_^FsgA7Z$ULP-oeF^l$B zJ=tvO$Ku|kHs4F}+US#S3`&w~>7J;4JHA?B{Mz_a*7#wYyV*o+1sV0Y<+%^4C|$4RLcow7HIKP>gAn z5IVEJ--0X>q`ZiYgsNAvq}ennY|dSo+AL*FZHp`51|F5g0QSmkI(U+dm0=ayU>z<& z5RAEHhk>zvs*h3~*64Q51FV z0OO!w%&3W`IWsbZi3Ox&ZyTVE%WLl|WT~Ywpo3ae%A{8dYjEFkK~qahK*yypK`ocm za2HqHL1FIyd+wn1{yu*`pUd2H?%B_C&Uv2aJWEB5wjx1W2x7E>eIirtcR%fIO7c-@ zYpGgj!R#g%ZIw_CuS#CYkhhb7=17beCK5IQwa`+BNx-Ip6WO(6@3&C(u*!1rw;8l6 zZ=J}18hB-xYM$6MgQn4t-^HObXGI+ z>9e>>e#Su~I&%$@MD3KzeNGlO?KZNo%+>z4WpLx3?Vzt}JD@E`0by@p?sA)@ zoFy_(f-q^m^oaYXY2|tGq=UZ1^o6BTu(tZz#LAJI z94XQ%E#zD+i@8qKFD#+jH#scKeczlR`S&V2?i0nw)w!v&q_ngbTKr

dB^{Z@3Hj+eF{Kzt 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 S&%zvH$+2LTO`&ET_x}L;&fh%% diff --git a/embedded8266/include/stdint.h b/embedded8266/include/stdint.h index a48f79f..c185b36 100644 --- a/embedded8266/include/stdint.h +++ b/embedded8266/include/stdint.h @@ -1 +1,3 @@ +//This exists to make sure anything including stdint.h includes this instead. + #include "c_types.h" diff --git a/embedded8266/include/string.h b/embedded8266/include/string.h index bb97dcd..411d27f 100644 --- a/embedded8266/include/string.h +++ b/embedded8266/include/string.h @@ -1 +1 @@ -//Nothing here. +//Nothing here. Just a file to make things that include happy. diff --git a/embedded8266/user/colorchord.c b/embedded8266/user/colorchord.c deleted file mode 100644 index 9fd5152..0000000 --- a/embedded8266/user/colorchord.c +++ /dev/null @@ -1,150 +0,0 @@ -#include "colorchord.h" - -static uint8_t donefirstrun; -static int8_t sintable[512]; //Actually [sin][cos] pairs. - -//LDD instruction on AVR can read with constant offset. We can set Y to be the place in the buffer, and read with offset. -static uint16_t datspace[bins*4]; //(advances,places,isses,icses) - -// -void HandleProgressiveInt( int8_t sample1, int8_t sample2 ) -{ - int i; - uint16_t startpl = 0; - int16_t ts, tc; - int16_t tmp1; - int8_t s1, c1; - uint16_t ipl, localipl, adv; - - - //startpl maps to 'Y' - // - - - //Estimated 68 minimum instructions... So for two pairs each... just under 5ksps, theoretical. - //Running overall at ~2kHz. - for( i = 0; i < bins; i++ ) //Loop, fixed size = 3 + 2 cycles 5 - { - //12 cycles MIN - adv = datspace[startpl++]; //Read, indirect from RAM (and increment) 2+2 cycles 4 - ipl = datspace[startpl++]; //Read, indirect from RAM (and increment) 2+2 cycles 4 - - //13 cycles MIN - ipl += adv; //Advance, 16bit += 16bit, 1 + 1 cycles 2 - localipl = (ipl>>8)<<1; //Select upper 8 bits 1 cycles 1 - - // need to load Z with 'sintable' and add localipl 2 - s1 = sintable[localipl++]; //Read s1 component out of table. 2+2 cycles 2 - c1 = sintable[localipl++]; //Read c1 component out of table. 2 cycles 2 - - ts = (s1 * sample1); // 8 x 8 multiply signed + copy R1 out. zero MSB ts 2 - tc = (c1 * sample1); // 8 x 8 multiply signed + copy R1 out. zero MSB tc 2 - - - //15 cycles MIN - ipl += adv; //Advance, 16bit += 16bit, 1 + 1 cycles 2 - localipl = (ipl>>8)<<1; //Select upper 8 bits 1 cycles 1 - - // need to load Z with 'sintable' and add localipl 2 - s1 = sintable[localipl++]; //Read s1 component out of table. 2 cycles 2 - c1 = sintable[localipl++]; //Read c1 component out of table. 2 cycles 2 - - ts += (s1 * sample2); // 8 x 8 multiply signed + add R1 out. 3 - tc += (c1 * sample2); // 8 x 8 multiply signed + add R1 out. 3 - - - //Add TS and TC to the datspace stuff. (24 instructions) - tmp1 = datspace[startpl]; //Read out, sin component. 4 - tmp1 -= tmp1>>6; //Subtract from the MSB (with carry) 2 - tmp1 += ts>>6; //Add MSBs with carry 2 - - datspace[startpl++] = tmp1; //Store values back 4 - - tmp1 = datspace[startpl]; //Read out, sin component. 4 - tmp1 -= tmp1>>6; //Subtract from the MSB (with carry) 2 - tmp1 += tc>>6; //Add MSBs with carry 2 - - datspace[startpl++] = tmp1; //Store values back 4 - - datspace[startpl-3] = ipl; //Store values back 4 - } -} - -void SetupConstants() -{ - int i; - static int last_place; - - if( !donefirstrun ) - { - donefirstrun = 1; - for( i = 0; i < 256; i++ ) - { - sintable[i*2+0] = i;//(int8_t)((sin( i / 256.0 * 6.283 ) * 127.0)); - sintable[i*2+1] = i+1;//(int8_t)((cos( i / 256.0 * 6.283 ) * 127.0)); - } - } - - - for( i = 0; i < bins; i++ ) - { - float freq = i;//frequencies[i]; - datspace[i*4] = 65536.0/freq; - } - -} - -/* -void DoDFTProgressiveInteger( float * outbins, float * frequencies, int bins, const float * databuffer, int place_in_data_buffer, int size_of_data_buffer, float q, float speedup ) -{ - int i; - static int last_place; - - if( !donefirstrun ) - { - donefirstrun = 1; - for( i = 0; i < 256; i++ ) - { - sintable[i*2+0] = (int8_t)((sinf( i / 256.0 * 6.283 ) * 127.0)); - sintable[i*2+1] = (int8_t)((cosf( i / 256.0 * 6.283 ) * 127.0)); - } - } - - if( gbins != bins ) - { - gbins = bins; - if( datspace ) free( datspace ); - datspace = malloc( bins * 2 * 4 ); - } - - - for( i = 0; i < bins; i++ ) - { - float freq = frequencies[i]; - datspace[i*4] = 65536.0/freq; - } - - - for( i = last_place; i != ( place_in_data_buffer&0xffffe ); i = (i+2)%size_of_data_buffer ) - { - int8_t ifr1 = (int8_t)( ((databuffer[i+0]) ) * 127 ); - int8_t ifr2 = (int8_t)( ((databuffer[i+1]) ) * 127 ); -// printf( "%d %d\n", i, place_in_data_buffer&0xffffe ); - HandleProgressiveInt( ifr1, ifr2 ); - } - - last_place = place_in_data_buffer&0xfffe; - - //Extract bins. - for( i = 0; i < bins; i++ ) - { - int16_t isps = datspace[i*4+2]; - int16_t ispc = datspace[i*4+3]; - int16_t mux = ( (isps/256) * (isps/256)) + ((ispc/256) * (ispc/256)); -// printf( "%d (%d %d)\n", mux, isps, ispc ); - outbins[i] = sqrt( mux )/100.0; - } -// printf( "\n"); -} - -*/ diff --git a/embedded8266/user/colorchord.h b/embedded8266/user/colorchord.h deleted file mode 100644 index 714deb8..0000000 --- a/embedded8266/user/colorchord.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _COLORCHORD_H -#define _COLORCHORD_H - -#include "mem.h" -#include "c_types.h" -#include "user_interface.h" -#include "ets_sys.h" -#include "osapi.h" - -#define bins 120 - -void HandleProgressiveInt( int8_t sample1, int8_t sample2 ); -void SetupConstants(); - -#endif - - diff --git a/embedded8266/user/hpatimer.c b/embedded8266/user/hpatimer.c index 619a080..a2b0edc 100644 --- a/embedded8266/user/hpatimer.c +++ b/embedded8266/user/hpatimer.c @@ -1,3 +1,5 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. #include "hpatimer.h" #include @@ -56,3 +58,20 @@ void ICACHE_FLASH_ATTR StartHPATimer() hs_adc_start(); } +void ICACHE_FLASH_ATTR PauseHPATimer() +{ + TM1_EDGE_INT_DISABLE(); + ETS_FRC1_INTR_DISABLE(); + system_timer_reinit(); +} + +void ICACHE_FLASH_ATTR ContinueHPATimer() +{ + TM1_EDGE_INT_ENABLE(); + ETS_FRC1_INTR_ENABLE(); + system_timer_reinit(); + hs_adc_start(); +} + + + diff --git a/embedded8266/user/hpatimer.h b/embedded8266/user/hpatimer.h index 46503d9..306c501 100644 --- a/embedded8266/user/hpatimer.h +++ b/embedded8266/user/hpatimer.h @@ -1,7 +1,15 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +//This is a tool to make the ESP8266 run its ADC and pipe the samples into +//the sounddata fifo. + #ifndef _HPATIMER_H #define _HPATIMER_H #include +#include "ccconfig.h" //For DFREQ + //Using a system timer on the ESP to poll the ADC in at a regular interval... //BUFFSIZE must be a power-of-two @@ -11,6 +19,9 @@ extern volatile uint16_t soundhead; void StartHPATimer(); +void ICACHE_FLASH_ATTR ContinueHPATimer(); +void ICACHE_FLASH_ATTR PauseHPATimer(); + #endif diff --git a/embedded8266/user/mystuff.c b/embedded8266/user/mystuff.c deleted file mode 100644 index a4c024c..0000000 --- a/embedded8266/user/mystuff.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "mystuff.h" - -char generic_print_buffer[384]; - - -void user_rf_pre_init(void) -{ - //nothing. -} - - -char * strcat( char * dest, char * src ) -{ - return strcat(dest, src ); -} - - - diff --git a/embedded8266/user/mystuff.h b/embedded8266/user/mystuff.h deleted file mode 100644 index 76a3a6b..0000000 --- a/embedded8266/user/mystuff.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MYSTUFF_H -#define _MYSTUFF_H - -extern char generic_print_buffer[384]; - -#define printf( ... ) ets_sprintf( generic_print_buffer, __VA_ARGS__ ); uart0_sendStr( generic_print_buffer ); - -#endif diff --git a/embedded8266/user/user_main.c b/embedded8266/user/user_main.c index 6277755..bc74b53 100644 --- a/embedded8266/user/user_main.c +++ b/embedded8266/user/user_main.c @@ -1,3 +1,6 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + #include "mem.h" #include "c_types.h" #include "user_interface.h" @@ -11,7 +14,10 @@ #include #include #include +#include "ets_sys.h" +#include "gpio.h" +//#define PROFILE #define PORT 7777 #define SERVER_TIMEOUT 1500 @@ -30,6 +36,9 @@ extern volatile uint8_t sounddata[HPABUFFSIZE]; extern volatile uint16_t soundhead; uint16_t soundtail; +void user_rf_pre_init() +{ +} //Call this once we've stacked together one full colorchord frame. static void NewFrame() @@ -54,8 +63,12 @@ static void procTask(os_event_t *events) { system_os_post(procTaskPrio, 0, 0 ); -// printf( "%d\n", sounddata[soundtail] ); + CSTick( 0 ); + //For profiling so we can see how much CPU is spent in this loop. +#ifdef PROFILE + WRITE_PERI_REG( PERIPHS_GPIO_BASEADDR + GPIO_ID_PIN(0), 1 ); +#endif while( soundtail != soundhead ) { int16_t samp = sounddata[soundtail]; @@ -70,6 +83,9 @@ static void procTask(os_event_t *events) wf = 0; } } +#ifdef PROFILE + WRITE_PERI_REG( PERIPHS_GPIO_BASEADDR + GPIO_ID_PIN(0), 0 ); +#endif if( events->sig == 0 && events->par == 0 ) { @@ -109,6 +125,7 @@ static void procTask(os_event_t *events) //Timer event. static void myTimer(void *arg) { + CSTick( 1 ); // uart0_sendStr("."); // printf( "%d/%d\n",soundtail,soundhead ); // printf( "%d/%d\n",soundtail,soundhead ); @@ -118,15 +135,14 @@ static void myTimer(void *arg) //Called when new packet comes in. -static void ICACHE_FLASH_ATTR -udpserver_recv(void *arg, char *pusrdata, unsigned short len) +static void udpserver_recv(void *arg, char *pusrdata, unsigned short len) { struct espconn *pespconn = (struct espconn *)arg; // uint8_t buffer[MAX_FRAME]; // uint8_t ledout[] = { 0x00, 0xff, 0xaa, 0x00, 0xff, 0xaa, }; uart0_sendStr("X"); -// ws2812_push( pusrdata, len ); + ws2812_push( pusrdata, len ); } void ICACHE_FLASH_ATTR charrx( uint8_t c ) @@ -135,13 +151,16 @@ void ICACHE_FLASH_ATTR charrx( uint8_t c ) } -void user_init(void) +void ICACHE_FLASH_ATTR user_init(void) { uart_init(BIT_RATE_115200, BIT_RATE_115200); int wifiMode = wifi_get_opmode(); uart0_sendStr("\r\nCustom Server\r\n"); +#ifdef PROFILE + GPIO_OUTPUT_SET(GPIO_ID_PIN(0), 0); +#endif wifi_set_opmode( 2 ); //We broadcast our ESSID, wait for peopel to join. @@ -170,6 +189,8 @@ void user_init(void) while(1) { uart0_sendStr( "\r\nFAULT\r\n" ); } } + CSInit(); + //Add a process system_os_task(procTask, procTaskPrio, procTaskQueue, procTaskQueueLen); @@ -178,7 +199,7 @@ void user_init(void) os_timer_setfn(&some_timer, (os_timer_func_t *)myTimer, NULL); os_timer_arm(&some_timer, 100, 1); - Init(); //Init colorchord + InitColorChord(); //Init colorchord StartHPATimer(); //Init the high speed ADC timer. @@ -187,4 +208,16 @@ void user_init(void) system_os_post(procTaskPrio, 0, 0 ); } +void EnterCritical() +{ + PauseHPATimer(); + //ets_intr_lock(); +} + +void ExitCritical() +{ + //ets_intr_unlock(); + ContinueHPATimer(); +} + diff --git a/embedded8266/user/ws2812_i2s.c b/embedded8266/user/ws2812_i2s.c index d4c0edf..88f8eb7 100644 --- a/embedded8266/user/ws2812_i2s.c +++ b/embedded8266/user/ws2812_i2s.c @@ -1,5 +1,6 @@ /****************************************************************************** * Copyright 2013-2015 Espressif Systems + * 2015 <>< Charles Lohr * * FileName: i2s_freertos.c * @@ -27,6 +28,10 @@ Notes: The way it works right now is to keep the DMA running forever and just update the data in the buffer so it continues sending the frame. +Extra copyright info: + Actually not much of this file is Copyright Espressif, comparativly little + mostly just the stuff to make the I2S bus go. + *******************************************************************************/ @@ -392,6 +397,10 @@ void ICACHE_FLASH_ATTR ws2812_init() } +//All functions below this line are Public Domain 2015 Charles Lohr. +//this code may be used by anyone in any way without restriction or limitation. + + //Tricky, send out WS2812 bits with coded pulses, one nibble, then the other. static const uint16_t bitpatterns[16] = { 0b1000100010001000, 0b1000100010001110, 0b1000100011101000, 0b1000100011101110, diff --git a/embedded8266/user/ws2812_i2s.h b/embedded8266/user/ws2812_i2s.h index e20785f..fff35cc 100644 --- a/embedded8266/user/ws2812_i2s.h +++ b/embedded8266/user/ws2812_i2s.h @@ -1,5 +1,8 @@ -#ifndef _I2S_TEST -#define _I2S_TEST +//Copyright 2015 <>< Charles Lohr, See LICENSE file. +//WS2812 sender that abuses the I2S interface on the WS2812. + +#ifndef _WS2812I2S_TEST +#define _WS2812I2S_TEST //Stuff that should be for the header: diff --git a/embedded8266/web/Makefile b/embedded8266/web/Makefile new file mode 100644 index 0000000..bfeddb3 --- /dev/null +++ b/embedded8266/web/Makefile @@ -0,0 +1,19 @@ +all : execute_reflash page.dat push + +mfsmaker : mfsmaker.c + gcc -o $@ $^ + +page.dat : mfsmaker page + ./mfsmaker page page.dat + +pushtodev : pushtodev.c + gcc -o $@ $^ + +execute_reflash : execute_reflash.c md5.c + gcc -o $@ $^ + +push : pushtodev page.dat + ./pushtodev 192.168.4.1 1048576 page.dat + +clean : + rm -rf mfsmaker page.dat pushtodev execute_reflash diff --git a/embedded8266/web/execute_reflash.c b/embedded8266/web/execute_reflash.c new file mode 100644 index 0000000..652ccc6 --- /dev/null +++ b/embedded8266/web/execute_reflash.c @@ -0,0 +1,266 @@ +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include +#include +#include +#include +#include +#include +#include +#include +#include "md5.h" + +#define BLOCK_SIZE 65536 +#define SECTOR_SIZE 4096 +#define PADDING 1024 +int sockfd; + struct sockaddr_in servaddr,cliaddr; + +int PushMatch( const char * match ) +{ + struct timeval tva, tvb; + gettimeofday( &tva, 0 ); + gettimeofday( &tvb, 0 ); + while( tvb.tv_sec - tva.tv_sec < 3 ) + { + struct pollfd ufds; + ufds.fd = sockfd; + ufds.events = POLLIN; + int rv = poll(&ufds, 1, 100); + if( rv > 0 ) + { + char recvline[10000]; + int n=recvfrom(sockfd,recvline,10000,0,NULL,NULL); +// printf( "%s === %s\n", recvline, match ); + if( strncmp( recvline, match, strlen( match ) ) == 0 ) + { + printf( "Ok - " ); fflush( stdout ); + return 0; + } + } + gettimeofday( &tvb, 0 ); + } + return 1; +} + +uint32_t Push( uint32_t offset, const char * file ) +{ + char sendline[1000]; + char recvline[1000]; + + if( offset <= 0 ) + { + fprintf( stderr, "Error: Cannot write to address 0 or before.\n" ); + exit(-2); + } + + FILE * f = fopen( file, "rb" ); + if( !f || feof( f ) ) + { + fprintf( stderr, "Error: cannot open file.\n" ); + exit(-3); + } + + + + int devo = 0; + int lastblock = -1; + + while( !feof( f ) ) + { + int tries; + int thissuccess; + char buffer[PADDING]; + char bufferout[2000]; + + int reads = fread( buffer, 1, PADDING, f ); + int sendplace = offset + devo; + int sendsize = PADDING;//reads; + int block = sendplace / BLOCK_SIZE; + + memset( buffer + reads, 0, sendsize-reads ); + + if( block != lastblock ) + { + char se[64]; + int sel = sprintf( se, "FB%d\r\n", block ); + + thissuccess = 0; + for( tries = 0; tries < 10; tries++ ) + { + char match[75]; + printf( "Erase: %d\n", block ); + sendto( sockfd, se, sel, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + sprintf( match, "FB%d", block ); + + if( PushMatch(match) == 0 ) { thissuccess = 1; break; } + printf( "Retry.\n" ); + } + if( !thissuccess ) + { + fprintf( stderr, "Error: Timeout in communications.\n" ); + exit( -6 ); + } + + lastblock = block; + } + + + int r = sprintf( bufferout, "FW%d:%d:", sendplace, sendsize ); + memcpy( bufferout + r, buffer, sendsize ); + + printf( "bufferout: %d %d\n", sendplace, sendsize ); + + thissuccess = 0; + for( tries = 0; tries < 10; tries++ ) + { + char match[75]; + sendto( sockfd, bufferout, sendsize + r, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + sprintf( match, "FW%d", sendplace ); + + if( PushMatch(match) == 0 ) { thissuccess = 1; break; } + printf( "Retry.\n" ); + } + if( !thissuccess ) + { + fprintf( stderr, "Error: Timeout in communications.\n" ); + exit( -6 ); + } + devo += sendsize; + } + + return devo; +} + +void ComputeMD5WithKey( char * md5retText, const char * filename, const char * key ) +{ + uint8_t retmd5[16]; + MD5_CTX ctx; + FILE * f = fopen( filename, "rb" ); + if( !f ) + { + fprintf( stderr, "Error opening %s\n", filename ); + exit( -9 ); + } + + fseek( f, 0, SEEK_END ); + int l = ftell( f ); +printf("MD5 Size: %d\n", l ); + int padl = ((l-1) / PADDING)*PADDING+PADDING; +printf("MD5 Pad: %d\n", padl ); + fseek( f, 0, SEEK_SET ); + uint8_t data[padl]; + fread( data, l, 1, f ); + fclose( f ); + + memset( data+l, 0, padl-l ); + MD5_Init( &ctx ); + if( !strlen(key) ) + MD5_Update( &ctx, key, strlen( key ) ); + MD5_Update( &ctx, data, padl ); + MD5_Final( retmd5, &ctx ); + + for( l = 0; l < 16; l++ ) + { + sprintf( md5retText + l*2, "%02x", retmd5[l] ); + } + + return; +} + +uint32_t roundup( uint32_t r ) +{ + return ((r-1)&(~0xFFF))+0x1000; +} + + +int main(int argc, char**argv) +{ + int n; + + char sendline[1000]; + char recvline[1000]; + + char md5_f1[48]; + char md5_f2[48]; + + if (argc < 4 ) + { + printf("usage: pushtodev [IP address] [file_lower] [file_upper] [key (optional)]\n"); + exit(-1); + } + + const char * file1 = argv[2]; + const char * file2 = argv[3]; + + + + sockfd=socket(AF_INET,SOCK_DGRAM,0); + + bzero(&servaddr,sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr=inet_addr(argv[1]); + servaddr.sin_port=htons(7878); + + uint32_t fs1 = Push( 0x080000, file1 ); + uint32_t fs2 = Push( 0x0c0000, file2 ); + + if( !fs1 || !fs2 ) + { + fprintf( stderr, "Error: File size not acceptable.\n" ); + return 0; + } + + const char * dat = ""; + if( argc == 5 ) + { + dat = argv[4]; + } + + ComputeMD5WithKey( md5_f1, file1, dat ); + ComputeMD5WithKey( md5_f2, file2, dat ); + + printf( "%s %s\n", md5_f1, md5_f2 ); + + //FM[from_address]:[to_address]:[size]:[MD5(key+data)]:[from_address]:[to_address]:[size]:[MD5(key+data)] + + char cmd[1024]; + + sprintf( cmd, "FM%d:%d:%d:%s:%d:%d:%d:%s\n", + 0x080000, + 0x000000, + fs1, //roundup( fs1 ), + md5_f1, + 0x0C0000, + 0x040000, + fs2, //roundup( fs2 ), + md5_f2 ); + + printf( "Issuing: %s\n", cmd ); + sendto( sockfd, cmd, strlen(cmd), MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + usleep(10000); + sendto( sockfd, cmd, strlen(cmd), MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + + struct pollfd ufds; + ufds.fd = sockfd; + ufds.events = POLLIN; + int rv = poll(&ufds, 1, 100); + if( rv > 0 ) + { + char recvline[10000]; + int n=recvfrom(sockfd,recvline,10000,0,NULL,NULL); + + printf( "Response: %s\n",recvline ); + return 0; + } + else + { + printf( "Timeout. Good? Maybe?\n" ); + return 0; + } + + return 0; +} + + diff --git a/embedded8266/web/md5.c b/embedded8266/web/md5.c new file mode 100644 index 0000000..52d96ac --- /dev/null +++ b/embedded8266/web/md5.c @@ -0,0 +1,296 @@ +/* + * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. + * MD5 Message-Digest Algorithm (RFC 1321). + * + * Homepage: + * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 + * + * Author: + * Alexander Peslyak, better known as Solar Designer + * + * This software was written by Alexander Peslyak in 2001. No copyright is + * claimed, and the software is hereby placed in the public domain. + * In case this attempt to disclaim copyright and place the software in the + * public domain is deemed null and void, then the software is + * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the + * general public under the following terms: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * There's ABSOLUTELY NO WARRANTY, express or implied. + * + * (This is a heavily cut-down "BSD license".) + * + * This differs from Colin Plumb's older public domain implementation in that + * no exactly 32-bit integer data type is required (any 32-bit or wider + * unsigned integer data type will do), there's no compile-time endianness + * configuration, and the function prototypes match OpenSSL's. No code from + * Colin Plumb's implementation has been reused; this comment merely compares + * the properties of the two independent implementations. + * + * The primary goals of this implementation are portability and ease of use. + * It is meant to be fast, but not as fast as possible. Some known + * optimizations are not included to reduce source code size and avoid + * compile-time configuration. + */ + +#ifndef HAVE_OPENSSL + +#include + +#include "md5.h" + +/* + * The basic MD5 functions. + * + * F and G are optimized compared to their RFC 1321 definitions for + * architectures that lack an AND-NOT instruction, just like in Colin Plumb's + * implementation. + */ +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) +#define H(x, y, z) (((x) ^ (y)) ^ (z)) +#define H2(x, y, z) ((x) ^ ((y) ^ (z))) +#define I(x, y, z) ((y) ^ ((x) | ~(z))) + +/* + * The MD5 transformation for all four rounds. + */ +#define STEP(f, a, b, c, d, x, t, s) \ + (a) += f((b), (c), (d)) + (x) + (t); \ + (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \ + (a) += (b); + +/* + * SET reads 4 input bytes in little-endian byte order and stores them + * in a properly aligned word in host byte order. + * + * The check for little-endian architectures that tolerate unaligned + * memory accesses is just an optimization. Nothing will break if it + * doesn't work. + */ +#if defined(__i386__) || defined(__x86_64__) || defined(__vax__) +#define SET(n) \ + (*(MD5_u32plus *)&ptr[(n) * 4]) +#define GET(n) \ + SET(n) +#else +#define SET(n) \ + (ctx->block[(n)] = \ + (MD5_u32plus)ptr[(n) * 4] | \ + ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \ + ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \ + ((MD5_u32plus)ptr[(n) * 4 + 3] << 24)) +#define GET(n) \ + (ctx->block[(n)]) +#endif + +/* + * This processes one or more 64-byte data blocks, but does NOT update + * the bit counters. There are no alignment requirements. + */ +static const void *body(MD5_CTX *ctx, const void *data, unsigned long size) +{ + const unsigned char *ptr; + MD5_u32plus a, b, c, d; + MD5_u32plus saved_a, saved_b, saved_c, saved_d; + + ptr = (const unsigned char *)data; + + a = ctx->a; + b = ctx->b; + c = ctx->c; + d = ctx->d; + + do { + saved_a = a; + saved_b = b; + saved_c = c; + saved_d = d; + +/* Round 1 */ + STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7) + STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12) + STEP(F, c, d, a, b, SET(2), 0x242070db, 17) + STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22) + STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7) + STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12) + STEP(F, c, d, a, b, SET(6), 0xa8304613, 17) + STEP(F, b, c, d, a, SET(7), 0xfd469501, 22) + STEP(F, a, b, c, d, SET(8), 0x698098d8, 7) + STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12) + STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17) + STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22) + STEP(F, a, b, c, d, SET(12), 0x6b901122, 7) + STEP(F, d, a, b, c, SET(13), 0xfd987193, 12) + STEP(F, c, d, a, b, SET(14), 0xa679438e, 17) + STEP(F, b, c, d, a, SET(15), 0x49b40821, 22) + +/* Round 2 */ + STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5) + STEP(G, d, a, b, c, GET(6), 0xc040b340, 9) + STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14) + STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20) + STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5) + STEP(G, d, a, b, c, GET(10), 0x02441453, 9) + STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14) + STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20) + STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5) + STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9) + STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14) + STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20) + STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5) + STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9) + STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14) + STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20) + +/* Round 3 */ + STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4) + STEP(H2, d, a, b, c, GET(8), 0x8771f681, 11) + STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16) + STEP(H2, b, c, d, a, GET(14), 0xfde5380c, 23) + STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4) + STEP(H2, d, a, b, c, GET(4), 0x4bdecfa9, 11) + STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16) + STEP(H2, b, c, d, a, GET(10), 0xbebfbc70, 23) + STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4) + STEP(H2, d, a, b, c, GET(0), 0xeaa127fa, 11) + STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16) + STEP(H2, b, c, d, a, GET(6), 0x04881d05, 23) + STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4) + STEP(H2, d, a, b, c, GET(12), 0xe6db99e5, 11) + STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16) + STEP(H2, b, c, d, a, GET(2), 0xc4ac5665, 23) + +/* Round 4 */ + STEP(I, a, b, c, d, GET(0), 0xf4292244, 6) + STEP(I, d, a, b, c, GET(7), 0x432aff97, 10) + STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15) + STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21) + STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6) + STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10) + STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15) + STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21) + STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6) + STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10) + STEP(I, c, d, a, b, GET(6), 0xa3014314, 15) + STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21) + STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6) + STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10) + STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15) + STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21) + + a += saved_a; + b += saved_b; + c += saved_c; + d += saved_d; + + ptr += 64; + } while (size -= 64); + + ctx->a = a; + ctx->b = b; + ctx->c = c; + ctx->d = d; + + return ptr; +} + +void MD5_Init(MD5_CTX *ctx) +{ + ctx->a = 0x67452301; + ctx->b = 0xefcdab89; + ctx->c = 0x98badcfe; + ctx->d = 0x10325476; + + ctx->lo = 0; + ctx->hi = 0; +} + +void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size) +{ + MD5_u32plus saved_lo; + unsigned long used, available; + + saved_lo = ctx->lo; + if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) + ctx->hi++; + ctx->hi += size >> 29; + + used = saved_lo & 0x3f; + + if (used) { + available = 64 - used; + + if (size < available) { + memcpy(&ctx->buffer[used], data, size); + return; + } + + memcpy(&ctx->buffer[used], data, available); + data = (const unsigned char *)data + available; + size -= available; + body(ctx, ctx->buffer, 64); + } + + if (size >= 64) { + data = body(ctx, data, size & ~(unsigned long)0x3f); + size &= 0x3f; + } + + memcpy(ctx->buffer, data, size); +} + +void MD5_Final(unsigned char *result, MD5_CTX *ctx) +{ + unsigned long used, available; + + used = ctx->lo & 0x3f; + + ctx->buffer[used++] = 0x80; + + available = 64 - used; + + if (available < 8) { + memset(&ctx->buffer[used], 0, available); + body(ctx, ctx->buffer, 64); + used = 0; + available = 64; + } + + memset(&ctx->buffer[used], 0, available - 8); + + ctx->lo <<= 3; + ctx->buffer[56] = ctx->lo; + ctx->buffer[57] = ctx->lo >> 8; + ctx->buffer[58] = ctx->lo >> 16; + ctx->buffer[59] = ctx->lo >> 24; + ctx->buffer[60] = ctx->hi; + ctx->buffer[61] = ctx->hi >> 8; + ctx->buffer[62] = ctx->hi >> 16; + ctx->buffer[63] = ctx->hi >> 24; + + body(ctx, ctx->buffer, 64); + + result[0] = ctx->a; + result[1] = ctx->a >> 8; + result[2] = ctx->a >> 16; + result[3] = ctx->a >> 24; + result[4] = ctx->b; + result[5] = ctx->b >> 8; + result[6] = ctx->b >> 16; + result[7] = ctx->b >> 24; + result[8] = ctx->c; + result[9] = ctx->c >> 8; + result[10] = ctx->c >> 16; + result[11] = ctx->c >> 24; + result[12] = ctx->d; + result[13] = ctx->d >> 8; + result[14] = ctx->d >> 16; + result[15] = ctx->d >> 24; + + memset(ctx, 0, sizeof(*ctx)); +} + +#endif diff --git a/embedded8266/web/md5.h b/embedded8266/web/md5.h new file mode 100644 index 0000000..2da44bf --- /dev/null +++ b/embedded8266/web/md5.h @@ -0,0 +1,45 @@ +/* + * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. + * MD5 Message-Digest Algorithm (RFC 1321). + * + * Homepage: + * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 + * + * Author: + * Alexander Peslyak, better known as Solar Designer + * + * This software was written by Alexander Peslyak in 2001. No copyright is + * claimed, and the software is hereby placed in the public domain. + * In case this attempt to disclaim copyright and place the software in the + * public domain is deemed null and void, then the software is + * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the + * general public under the following terms: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * There's ABSOLUTELY NO WARRANTY, express or implied. + * + * See md5.c for more information. + */ + +#ifdef HAVE_OPENSSL +#include +#elif !defined(_MD5_H) +#define _MD5_H + +/* Any 32-bit or wider unsigned integer data type will do */ +typedef unsigned int MD5_u32plus; + +typedef struct { + MD5_u32plus lo, hi; + MD5_u32plus a, b, c, d; + unsigned char buffer[64]; + MD5_u32plus block[16]; +} MD5_CTX; + +extern void MD5_Init(MD5_CTX *ctx); +extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size); +extern void MD5_Final(unsigned char *result, MD5_CTX *ctx); + +#endif diff --git a/embedded8266/web/mfsmaker.c b/embedded8266/web/mfsmaker.c new file mode 100644 index 0000000..ad67c7c --- /dev/null +++ b/embedded8266/web/mfsmaker.c @@ -0,0 +1,139 @@ + +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include +#include +#include +#include +#include + +#define SPI_FLASH_SEC_SIZE 4096 +#define MFS_STARTFLASHSECTOR 0x100 +#define MFS_START (MFS_STARTFLASHSECTOR*SPI_FLASH_SEC_SIZE) +#define MFS_SECTOR 256 +#define MFS_FILENAMELEN 32-8 +#define ENTRIES 8192 + +#define ENDIAN(x) x//htonl + +struct MFSFileEntry +{ + char name[MFS_FILENAMELEN]; + uint32_t start; //From beginning of mfs thing. + uint32_t len; +} mfsfat[ENTRIES]; + +unsigned char mfsdata[131072*8]; + +unsigned long fatpointer = 0; +unsigned long datapointer = 0; + +int main( int argc, char ** argv ) +{ + int i; + DIR *d; + struct dirent *dir; + + if( argc != 3 ) + { + fprintf( stderr, "Error: [tool] [directory to pack] [output packed .dat file]\n" ); + return -1; + } + + d = opendir( argv[1] ); + + if (!d) + { + fprintf( stderr, "Error: cannot open folder for packing.\n" ); + return -2; + } + + while ((dir = readdir(d)) != NULL) + { + if( dir->d_type & DT_REG ) + { + char thisfile[1024]; + struct stat buf; + int dlen = strlen( dir->d_name ); + int sprret = snprintf( thisfile, 1023, "%s/%s", argv[1], dir->d_name ); + + if( sprret > 1023 || sprret < 1 ) + { + fprintf( stderr, "Error processing \"%s\" (snprintf)\n", dir->d_name ); + continue; + } + + int statret = stat( thisfile, &buf ); + + if( statret ) + { + fprintf( stderr, "Error processing \"%s\" (stat)\n", dir->d_name ); + continue; + } + + if( dlen >= MFS_FILENAMELEN ) + { + fprintf( stderr, "Warning: Fle \"%s\" too long.\n", dir->d_name ); + continue; + } + if( fatpointer > ENTRIES ) + { + fprintf( stderr, "Warning: Not enough entries to fit \"%s\".\n", dir->d_name ); + continue; + } + + if( buf.st_size + datapointer > sizeof( mfsdata ) ) + { + fprintf( stderr, "Error: no space left.\n" ); + return -1; + } + + memcpy( mfsfat[fatpointer].name, dir->d_name, dlen ); + mfsfat[fatpointer].start = datapointer; + mfsfat[fatpointer].len = ENDIAN( buf.st_size ); + fatpointer++; + + if( buf.st_size ) + { + FILE * f = fopen( thisfile, "rb" ); + if( !f ) + { + fprintf( stderr, "Error: cannot open \"%s\" for reading.\n", dir->d_name ); + return -9; + } + fread( &mfsdata[datapointer], 1, buf.st_size, f ); + fclose( f ); + int rs = buf.st_size; + rs = (rs+1+MFS_SECTOR)&(~(MFS_SECTOR-1)); + datapointer += rs; + printf( "%s: %d (%d)\n", thisfile, rs, datapointer ); + } + } + } + + closedir(d); + + int rs = (fatpointer+1)*sizeof(struct MFSFileEntry); + rs = (rs+1+MFS_SECTOR)&(~(MFS_SECTOR-1)); + for( i = 0; i < fatpointer; i++ ) + { + mfsfat[i].start = ENDIAN(mfsfat[i].start + rs ); + } + + printf( "%d %d\n", rs, datapointer ); + + FILE * f = fopen( argv[2], "w" ); + + if( !f || ferror( f ) ) + { + fprintf( stderr, "Error: cannot open \"%s\" for writing.\n", argv[2] ); + } + fwrite( mfsfat, rs, 1, f ); + fwrite( mfsdata, datapointer, 1, f ); + fclose( f ); + + return 0; +} + + diff --git a/embedded8266/web/page/index.html b/embedded8266/web/page/index.html new file mode 100644 index 0000000..c8d934f --- /dev/null +++ b/embedded8266/web/page/index.html @@ -0,0 +1,8 @@ + + +Hello! This is a test page.
+ + + + + diff --git a/embedded8266/web/page/test.txt b/embedded8266/web/page/test.txt new file mode 100644 index 0000000..9daeafb --- /dev/null +++ b/embedded8266/web/page/test.txt @@ -0,0 +1 @@ +test diff --git a/embedded8266/web/page/websocket.js b/embedded8266/web/page/websocket.js new file mode 100644 index 0000000..a73f78d --- /dev/null +++ b/embedded8266/web/page/websocket.js @@ -0,0 +1,69 @@ +var wsUri = "ws://" + location.host + "/d/ws"; + +var output; + +function init() +{ + output = document.getElementById("output"); + console.log( wsUri ); + testWebSocket(); +} + +function testWebSocket() +{ + websocket = new WebSocket(wsUri); + websocket.onopen = function(evt) { onOpen(evt) }; + websocket.onclose = function(evt) { onClose(evt) }; + websocket.onmessage = function(evt) { onMessage(evt) }; + websocket.onerror = function(evt) { onError(evt) }; +} + +function repeatsend() +{ + doSend('Hello!' ); + setTimeout( repeatsend, 1000 ); +} + +function onOpen(evt) +{ + writeToScreen("CONNECTED"); + doSend('Hello.' ); + //repeatsend(); + // doSend('{"args": ["entity", 1000], "kwargs": {}, "op": "ClientUpdater__requestUpdates", "seq": 1, "context": ["ClientUpdater", 0]}'); +} + +function onClose(evt) +{ + writeToScreen("DISCONNECTED"); +} + +function onMessage(evt) +{ + eval( evt.data ); + // obj = JSON.parse(evt.data); + // console.log( obj ); + // writeToScreen('RESPONSE: ' + evt.data+''); + // websocket.close(); +} + +function onError(evt) +{ + writeToScreen('ERROR: ' + evt.data); +} + +function doSend(message) +{ + writeToScreen("SENT: " + message); + websocket.send(message); +} + +function writeToScreen(message) +{ + var pre = document.createElement("p"); + pre.style.wordWrap = "break-word"; + pre.innerHTML = message; + output.appendChild(pre); +} + +window.addEventListener("load", init, false); + diff --git a/embedded8266/web/page/wstest.html b/embedded8266/web/page/wstest.html new file mode 100644 index 0000000..e14fa89 --- /dev/null +++ b/embedded8266/web/page/wstest.html @@ -0,0 +1,10 @@ + + +WebSocket Test + + + +

WebSocket Test

+
+ + diff --git a/embedded8266/web/pushtodev.c b/embedded8266/web/pushtodev.c new file mode 100644 index 0000000..615db44 --- /dev/null +++ b/embedded8266/web/pushtodev.c @@ -0,0 +1,202 @@ +//Unless what else is individually marked, all code in this file is +//Copyright 2015 <>< Charles Lohr Under the MIT/x11 License, NewBSD License or +// ColorChord License. You Choose. + +#include +#include +#include +#include +#include +#include +#include +#include + +#define sector_SIZE 4096 +int sockfd; +char recvline[10000]; + + +int PushMatch( const char * match ) +{ + struct timeval tva, tvb; + gettimeofday( &tva, 0 ); + gettimeofday( &tvb, 0 ); + while( tvb.tv_sec - tva.tv_sec < 3 ) //3 second timeout. + { + struct pollfd ufds; + ufds.fd = sockfd; + ufds.events = POLLIN; + int rv = poll(&ufds, 1, 500); + if( rv > 0 ) + { +// tbuf = recvline; + int n=recvfrom(sockfd,recvline,10000,0,NULL,NULL); +// printf( "!!%d ->%s\n", n,recvline ); +// printf( "%s === %s\n", recvline, match ); + if( strncmp( recvline, match, strlen( match ) ) == 0 ) + { +// printf( "Ok\n" ); fflush( stdout ); + return 0; + } + } + gettimeofday( &tvb, 0 ); + } + return 1; +} + + +int main(int argc, char**argv) +{ + int n; + struct sockaddr_in servaddr,cliaddr; + char sendline[1000]; +// char recvline[1000]; + + if (argc != 4) + { + printf("usage: pushtodev [IP address] [address offset] [file]\n"); + exit(-1); + } + + int offset = atoi( argv[2] ); + const char * file = argv[3]; + + if( offset <= 0 ) + { + fprintf( stderr, "Error: Cannot write to address 0 or before.\n" ); + exit(-2); + } + + FILE * f = fopen( file, "rb" ); + if( !f || feof( f ) ) + { + fprintf( stderr, "Error: cannot open file.\n" ); + exit(-3); + } + + + + sockfd=socket(AF_INET,SOCK_DGRAM,0); + + bzero(&servaddr,sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr=inet_addr(argv[1]); + servaddr.sin_port=htons(7878); + + int devo = 0; + int lastsector = -1; + int resend_times = 0; + int r; + while( !feof( f ) ) + { + int tries; + int thissuccess; + char buffer[1024]; + char bufferout[1600]; + int reads = fread( buffer, 1, 1024, f ); + int sendplace = offset + devo; + int sendsize = reads; + int sector = sendplace / sector_SIZE; + + if( sector != lastsector ) + { + char se[64]; + int sel = sprintf( se, "FE%d\r\n", sector ); + + thissuccess = 0; + for( tries = 0; tries < 10; tries++ ) + { + char match[75]; + printf( "Erase: %d\n", sector ); + sendto( sockfd, se, sel, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + sprintf( match, "FE%d", sector ); + + if( PushMatch(match) == 0 ) { thissuccess = 1; break; } + printf( "Retry.\n" ); + } + if( !thissuccess ) + { + fprintf( stderr, "Error: Timeout in communications.\n" ); + exit( -6 ); + } + + lastsector = sector; + } + + resend_times = 0; +resend: + r = sprintf( bufferout, "FW%d:%d:", sendplace, sendsize ); + printf( "bufferout: %d %d %s\n", sendplace, sendsize, bufferout ); + memcpy( bufferout + r, buffer, sendsize ); + + + thissuccess = 0; + for( tries = 0; tries < 10; tries++ ) + { + char match[75]; + sendto( sockfd, bufferout, reads + r, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + + sprintf( match, "FW%d", sendplace ); + + if( PushMatch(match) == 0 ) { thissuccess = 1; break; } + printf( "Retry.\n" ); + } + if( !thissuccess ) + { + fprintf( stderr, "Error: Timeout in communications.\n" ); + exit( -6 ); + } + +/* + printf( "Verifying..." ); + fflush( stdout ); + + int r = sprintf( bufferout, "FR%d:%d", sendplace, sendsize ); + bufferout[r] = 0; + + thissuccess = 0; + for( tries = 0; tries < 10; tries++ ) + { + char match[1600]; + sendto( sockfd, bufferout, r, MSG_NOSIGNAL, (struct sockaddr *)&servaddr,sizeof(servaddr)); + devo += reads; + sprintf( match, "FR%08d", sendplace ); + + if( PushMatch(match) == 0 ) { + + //Check data... +//printf( "RR:%s\n", recvline ); + char * colon1 = strchr( recvline, ':' ); + char * colon2 = (colon1)?strchr( colon1+1, ':' ):0; +//printf( "::%p %p \"%s\"\n", colon1, colon2,recvline ); + if( colon2 ) + { + if( memcmp( colon2+1, buffer, sendsize ) == 0 ) + thissuccess = 1; + } + + if( !thissuccess ) + { + if( resend_times > 2 ) + { + break; + } + resend_times++; + goto resend; + } + break; + } + printf( "Retry.\n" ); + } + if( !thissuccess ) + { + fprintf( stderr, "Error: Fault verifying.\n" ); + exit( -6 ); + } +*/ + devo += reads; + + } + + return 0; +}