From 9bf32879443b8885d6d33f07f47d1d906305e585 Mon Sep 17 00:00:00 2001 From: Martin Bauer Date: Fri, 5 Jun 2020 21:41:16 +0200 Subject: [PATCH] Restructured full repo --- .gitignore | 8 +- CMakeLists.txt | 77 -- README.md | 16 + commands.readme | 7 - dimensions.txt | 6 - example-data/01_real_test.st | Bin 0 -> 30877 bytes example-data/02_vildosola.st | Bin 0 -> 13925 bytes example-data/03_rebecca.st | Bin 0 -> 25493 bytes example-data/04.st | Bin 0 -> 33077 bytes example-data/05.st | Bin 0 -> 33081 bytes example-data/06.st | Bin 0 -> 29689 bytes example-data/07.st | Bin 0 -> 17273 bytes example-data/1589394292.st | Bin 0 -> 17611 bytes {lib => firmware/lib}/basic/Dtypes.h | 0 .../lib}/basic/FilesystemAbstraction.h | 0 {lib => firmware/lib}/basic/MockDtypes.h | 0 {lib => firmware/lib}/basic/MockSerial.h | 0 {lib => firmware/lib}/scale/MockScale.h | 0 {lib => firmware/lib}/scale/Scale.h | 0 .../lib}/session/MeasurementSession.h | 0 {lib => firmware/lib}/session/MockStorage.h | 0 {lib => firmware/lib}/session/SessionChunk.h | 0 {lib => firmware/lib}/session/SpiffsStorage.h | 0 .../lib}/session/StreamingMsgPackEncoder.h | 0 {lib => firmware/lib}/userdb/UserDB.cpp | 0 {lib => firmware/lib}/userdb/UserDB.h | 0 {lib => firmware/lib}/webdav/AsyncWebDav.h | 0 platformio.ini => firmware/platformio.ini | 0 {src => firmware/src}/ConfigHardware.h | 0 {src => firmware/src}/ConfigWifi.h | 0 {src => firmware/src}/DeviceInfoLog.h | 0 {src => firmware/src}/firmware_main.cpp | 0 .../test}/test_common/sessiontest.cpp | 0 hardware/OtherBoards.md | 2 + hardware/box.svg | 254 +++++ hardware/data_format.ods | Bin 0 -> 13589 bytes hardware/hardware.svg | 235 +++++ hardware/hardware.txt | 26 + python-mock/PeakDetectionAnalysis.ipynb | 990 ++++++++++++++++++ python-mock/log.py | 30 + python-mock/measurement_session.py | 95 ++ python-mock/mock.py | 16 + python-mock/peak_detection.py | 195 ++++ python-mock/plot.py | 50 + readme | 6 - todo.txt | 7 - 46 files changed, 1913 insertions(+), 107 deletions(-) delete mode 100644 CMakeLists.txt create mode 100644 README.md delete mode 100644 commands.readme delete mode 100644 dimensions.txt create mode 100644 example-data/01_real_test.st create mode 100644 example-data/02_vildosola.st create mode 100644 example-data/03_rebecca.st create mode 100644 example-data/04.st create mode 100644 example-data/05.st create mode 100644 example-data/06.st create mode 100644 example-data/07.st create mode 100644 example-data/1589394292.st rename {lib => firmware/lib}/basic/Dtypes.h (100%) rename {lib => firmware/lib}/basic/FilesystemAbstraction.h (100%) rename {lib => firmware/lib}/basic/MockDtypes.h (100%) rename {lib => firmware/lib}/basic/MockSerial.h (100%) rename {lib => firmware/lib}/scale/MockScale.h (100%) rename {lib => firmware/lib}/scale/Scale.h (100%) rename {lib => firmware/lib}/session/MeasurementSession.h (100%) rename {lib => firmware/lib}/session/MockStorage.h (100%) rename {lib => firmware/lib}/session/SessionChunk.h (100%) rename {lib => firmware/lib}/session/SpiffsStorage.h (100%) rename {lib => firmware/lib}/session/StreamingMsgPackEncoder.h (100%) rename {lib => firmware/lib}/userdb/UserDB.cpp (100%) rename {lib => firmware/lib}/userdb/UserDB.h (100%) rename {lib => firmware/lib}/webdav/AsyncWebDav.h (100%) rename platformio.ini => firmware/platformio.ini (100%) rename {src => firmware/src}/ConfigHardware.h (100%) rename {src => firmware/src}/ConfigWifi.h (100%) rename {src => firmware/src}/DeviceInfoLog.h (100%) rename {src => firmware/src}/firmware_main.cpp (100%) rename {test => firmware/test}/test_common/sessiontest.cpp (100%) create mode 100644 hardware/OtherBoards.md create mode 100644 hardware/box.svg create mode 100644 hardware/data_format.ods create mode 100644 hardware/hardware.svg create mode 100644 hardware/hardware.txt create mode 100644 python-mock/PeakDetectionAnalysis.ipynb create mode 100644 python-mock/log.py create mode 100644 python-mock/measurement_session.py create mode 100644 python-mock/mock.py create mode 100644 python-mock/peak_detection.py create mode 100644 python-mock/plot.py delete mode 100644 readme delete mode 100644 todo.txt diff --git a/.gitignore b/.gitignore index 640dded..ae342d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -.pio -CMakeListsPrivate.txt -/cmake-build* -/venv +.ipynb_checkpoints +__pycache__ + + diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index e5b6297..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,77 +0,0 @@ -# !!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT AND USE -# https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags -# -# If you need to override existing CMake configuration or add extra, -# please create `CMakeListsUser.txt` in the root of project. -# The `CMakeListsUser.txt` will not be overwritten by PlatformIO. - -cmake_minimum_required(VERSION 3.2) -project(firmware) - -include(CMakeListsPrivate.txt) - -if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeListsUser.txt) -include(CMakeListsUser.txt) -endif() - -add_custom_target( - PLATFORMIO_BUILD ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_BUILD_VERBOSE ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --verbose - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPLOAD ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target upload - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_CLEAN ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target clean - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_MONITOR ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion device monitor - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_TEST ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion test - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_PROGRAM ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target program - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPLOADFS ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target uploadfs - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPDATE_ALL ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion update - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_REBUILD_PROJECT_INDEX ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion init --ide clion - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_executable(${PROJECT_NAME} ${SRC_LIST}) diff --git a/README.md b/README.md new file mode 100644 index 0000000..d784583 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +Swimtracker Firmware & Hardware +=============================== + + +Firmware +-------- + +Run tests: +``` +pio test -v -e native +``` + +Compile and upload: +``` +pio run -e d1 -t upload +``` diff --git a/commands.readme b/commands.readme deleted file mode 100644 index 4e387d3..0000000 --- a/commands.readme +++ /dev/null @@ -1,7 +0,0 @@ -Test locally - platformio test -v -e native - - -Device: - platformio device monitor - platformio run -t upload diff --git a/dimensions.txt b/dimensions.txt deleted file mode 100644 index b9b95cb..0000000 --- a/dimensions.txt +++ /dev/null @@ -1,6 +0,0 @@ -92 x 28 x 30 -35x20 - - - 95x 50 x 30 (absolute min) -100 x 55 x 35 \ No newline at end of file diff --git a/example-data/01_real_test.st b/example-data/01_real_test.st new file mode 100644 index 0000000000000000000000000000000000000000..45c532fc58b402aa2c9e10fb86284129ee57863d GIT binary patch literal 30877 zcmXV%Wpo=!)3zl$;Mj>QY0%*zNy8uyL%i8AGsA|N88#bcW@ct)W@ct)X3ppLIp17= zrq8MFuCAK-(cN_qx)$uzq*JFB?b=rE+@NFUDlOVHIbFBt*PGXpJN;j~WZT9~x}WxC zKG#wjb?Ml#N!$OKoT_o;T5{)1+f1W2?K>Uw`5gS5-{vVuz_7sZ zz=*)ez^K6Jz?i_;z_`GKz{J3mz|_Euz|6p`!0f=Bz}&$6z=FWSz~aD?z|z37!1BP# zz^cINz}mpN!1}<(z^1_Fz}CRF!1ln7z|O#~!0y1Fz}~?Az=6QQz@fmAz|p|5z=^=g z!0Eu5z}djL!1=(1z~#WT!1ch5z|Fv|!0o`}z>~nsOrohmYKhdcspV2Dq*hF=lv+8p zN@~^AYN`LEHcV}l+BmgIYSYwqnJi9Sp1LA+W$N104XK+_H>Yk%-I}^5b${y7)YGYF zGVuld!GvIzV76e6U?`Jf!4kpp!OEG;3(gNN2rdjR3N8*V2`&vT3oZ|?2(ApS3a$>W z39b#U3$71t2yP5+3T_T=32qH;3vLhY2<{B-3hoZ>3GNN<3+@jd3LXv~2_6j|3my-i z2%Zd{3Z4$037!p}3!V>N2wn_c3SJIg30@6e3tkW22;L0d4&Djg4?YM!3_c1z4n7G! z4L%D#555S#4897!4!#K{g_1%&L%l-1L;r^Qg#HWl4fPB44-E(n3=Ikm4h;zn4Gjwo z4~+S4y_5T4Xq2U4{Zo-3T+N;32hB+3vCbW2<;5*3hfT< z3GEH-3+)db2ptR^3LOp|2^|d`3mp%g2%QX_3Y`v}37rj{3!M*L2we3KtIl9WD|s8ZH(t9xf3s87>tr9WE0t7cL*J z5Uv=m6s{bu60RDq7Oozy5w01o6|Nnw6RsPs7p@;}5N;T56mA@D5^fr97H%GH5pEf7 z6>c4F6K)%B7j7T!5bhZ66z&}E67CxA7VaMI5$+l8749AWH{2&YAUq^IG(0RkJUlWy zIy@#kHaspoK0F~jF+3?eIXopiH9RdmJv<{kGdwFiJ3J>mH#{#qKfEx!EE66O01=P? z8Bl;YkPfJT2IznRn1BV?fCIRI2NVJ_fWLskz~4X-peRrbC=QeWN&=;T(m)xYEKm+8 z4^#ju0+oQuKoy`WP#vfN)B zwm>_eJQ#{=mY!*^ac6>{ec0%KwuCs7#IQ!1BL@5fRVr` zU^FlW7z>O8#sd?8iNGXaGB5?03QPm012ce`z${=kFb9|m%md~F3xI{dB49DF1Xv0z z1C|3TfR(^1U^TD?SPQHJHUgV~&A=95E3ggN4(tGS0=t0Sz#d>Pun*V|8~_dihk(Pt z5#T6r3^)#)08Rp@fYZPk;2dxsxBy%PE&-Q;E5KFY8gL!B0o(*`0k?rWz+K=Ta36R8 zJOmyAkAWw^Q{Wl!9C!h|0^S1efcL-$;3Mz}_zZjjz5?HX@4ye>C-4jS4g3LopdU;C z6TvKCRxlfw9ZUj~!4xnjm-v&36wzvjDzW*3TmJZ8lVYUpba{p3wmH7Faskdtg3Z9@U<*%Q z07rtOz|r6sa4a|u91l(aCxVl}$>0=lDmV?C4$c7QfOEll;CyfaxDZ?nE&-Q<%fRK} z3UDR33S14Y0oQ`-!1dq;a3i=0+zf63w}RWi?cfe@C%6mT4ekN=g8RVz-~sR;cnCZU z9s!Sn$H3#@3GgI%3Oo&-0ndWx!1Le*@FI8(ybj&~Z-TeL+u$AWE_e^T4?X}Nf{(z* z;1lpE_zZjwz5ri>ufW&f8}Kdo4tx)O1iymc!0+G>@F(~S{0;sAeUKkYfD)lBP*x}# zlpRWfazM#Y3X~Jd1qGl~C3cr9&#DK{{kWCS*Z2I?OQ`a=VtfzTjmFf3v)0J3$O@Funa43 z98QN-Sc7%gfKAwfZP{ zHMlxl1Fi|zf@{Nd;JR=8g2u(h1XLU<9p6kY}|hgZNW;Z^Wzcn!Q3UI(v-H^3X=P4H%T z3%nKH2JeOU!TaF@@Im-6d;~rUAA^s>C*YItDfl#e20ja)gU`bk;EV7j_%eJ2z6xK1 z@4$EAd+>eu0sIht1V4tKz)#_4@N@VD{1SczzlPtyZ{c_Fd-wzV5&i^!hQGjH;cxJ7 z_z&zu{73?lh-5*sBH57aND`6*Nk&qToJcMtfTSWpB!q+!009vQfe{4BjTA&M1V;#j zL?|SJM3ERmBMibK9Ks_4A|etZBMK5n(h(KW5C?G)4=IFXAb%l+k-w25NKvF1QXDCP zltfA)rI9j7S)?3N9;tv-L@FVbk*Y{Fq&iXqsfpA=Y9n=!x=1~wKJpLJ0BMLcLK-7Y zkfum8q&d<8X^FH#S|e?cwn#gq1JV)cgmgx_AYGB}NDrhZ(hKR0{EPHK{zLjA{gD31 z0AwIC2pNnFL53p3km1NkWE3(Q8H0>P#v$X83CKib5;7T?f=orGA=8l=$V_AwG8>tL z%thuQ^N|I}LSzxL7+Hd>L{=fIku}I#WIeJ0*@$dHHX~b*t;jZHJF)}WiR?mlBYTj& z$UbC0asWAq97B#HCy)o5(HXHgX5K zi`+vVB2SPP$V=oE@)~)AyhYw2?~xD4N8}Uo1^J46L%t(Fke|pexA zlt4+8LL+DtjiEHkpe)LvJSw0fDxor}pm8)ERZ$bQP#bkn7xmCWXa@QhS{VHsErJ$B zi=oBQ5@<=Z6j~ZBgO)|hq2Q~OY5H2 zBdu3j@3eo@`lS7r);FzRTK}{GX#>*+r43FSk~TDLSlaNk5osgSMx~8T8)~PvS3-UY*=cV<}ipEP$nAK`exYF#v-w7(*}=%Z=s73Su#g!B~vL zcud43OvV%}J(E^gYpe~{7HfyK$2wpgu})ZLtP9o^>xOm5dSE@VURZDJU#t)IAJ!M^ zhxNw>U<0v1*kEi3HWV9%4aY`cBe7A~XlyJt4jYe6z$Rjou*ujIY$`Sln~u%K=3?`( z`Pc$%A+`uxj4i>IV#~1Q*a~bVwhCK~t-;n}>#+6M25cj?3EPZq!M0-Cu;d)=dxSm4o?uV0XV?quCH4w?jlIF%V(+l`*az$*_6hrf{ltD@zp+1<5BK8< zcp{z!&x&Wmv*Ss44m=r8!E@rd@Bp5Q2k{Ud#sM6}Q9KRLjpxDh;`#9Wcmcd1j^Q{? z;3Q7r5j={=a2jWD7Uyst7jO}ma2b!|25#aOZsQK_;vQZI&%pn}3*&#|Mew3{F}yfl z0xyY|!b{_2@UnP0ygXh3uZUO1Yv48UT6k@|4qg|phu6pd!5iQW@kV%Kyb0bEZ-zI= zTi`A6R(NZ?4c-=Shj+%i;9c=Eh404q;Cu0X_0KJ#4q8O@hkXM{2G28zk%PxZ{fG`JNRAv9)2HxfIq|^;g9hr_*48D z{v3aSzrOW1A?gwhh=xQXqA}5gXi79ES`aOXRzz!}4bhfp zN3+CxIx?`ZV`8gyTm=>KJkEfM7$;55$}l)#7E*2@tOESd?mgS--#c@PvRHx zoA^WcNI#iCCX!jmtYkJaJDEi0Ad|@yGAEgf43Md0kPMMw5+FemB2hAp%uVJY^OE_< z{A2;LAc>O%Ns<&9A){oBq)CQkNsi=6ffPxJl*u@$lNHHIWM#4nS(U6tRwrwaHOX3J zZL$tom#jzDC;uTEkPXR3WMi@k*_3QXHYZz_&DcdyqZJUSx0bU$PI`m+VLOCkK!N$wA~`atJw;97YZ&N01}QQRHZH3^|q@M~){a zkQ2#CQO-d6m3I-XL$1x5(S%9r7-DkGxMlARm&C$j9Up z@+tX@d``X~Uy`rL*W?@WE%}aoPktajlAp-WOgg*I#HdeE>u^l8`YiaLG`41QGKZYsJ>J`sy{V=8cYqLhEl_*5!6U(6g8R}Lye`z zQxm9()D&teHI151&7fvcv#B}MTxuS*gjz~1qn1-EsFlP1I&; z3$>NnMs25dQoE?#)Lv>IwVygb9i$FXhp8jfQR*0VoH{|Bq)t(%sWa4h>JoL8x<*~6 zZcsO=Thv|Z9(A93Ks}@$QIDx7)Klsi^_+S^y`dkz7wT6gL?jmBBVt5~$dPy? zJ)%b3Na0A4NYO~KNXba)NZCk*NX1B{NR>#nNR3F%NUcciNS#RCNc~8INW(~@NaIM; zNV7=uNXtm8Nb5+ONV`b;NQX$LOlC%AMP^6lMCL~3MHWOBMixaDN0vmEMV3caL{>%C zM%G6*L^eh?MK(vaMz%$^M|MPZMs`K^MD|AZMfOJyL=Hv{MGi-fL{3CbMovXeN6tmg zM=nGzMlMGlXCg=A(e$Vhb)sdX<)Y=I6`~cRm7+DGHKVnnb)pTUjiQaCO`^@B&7&=% zEu)>IJ)(o6gQG*E!=odjBcr3DqoZS@W257u!RzU8>5?|o1NwLYXDY2=sX|d_C8L_#sd9nGi1+j&( zMX|-PC9$QkWwGV46|t4ERk78vHL#-ZLo3UH5 z+p#;byRmz*`>_YHhp|Vo$FV1|r?F?T=dl;Dm$6r|*ReOTx3LegkFig&&#^DDud#2j z@39}TpRr%D-?2Y2AMK|T=tMdTot4f;XQz|s9CR|BLg%DIbeINckcMcOMrf2yqjS@F z=)813IzL^2E=XfEP7^dqQ*?xm(lMH*MOva|TA|}~I<3+gt>i>^)Aq3hE1 z==$_ObOX8}-H2{XH=&!-&FJQI3%VuUif&D}q1)2!==O96x+C3*?o4-~yVBk0?sN~j zC*6zwm+nLVNB5=s(f#QG^gwzLJ(wOs52c6E!|4(9NO}}KnjS-srN`0Z=?U~idJ;XE zo(evpA^g?mlxHe16`4v* zWu^*Km8r&5XKFAtnOaP3rVdk=smIi3{$Uz0jhMzv6Q(KCjA_oaU|KS*nAS`irY+Ns zY0q?EIx?M@&P*4kE7OhX&h%h2naE6HCNoo*smwHHIx~}*#mr{rFmsuC%zS16vyfTDEM}H6%b4ZN3T7p< zidoI9Vb(J1nDxvCW+StS+01NZwlUk89n4N<7qgq$!|Y}DG5eVV%t7W5bC@~89A%C% z$C(q%N#+!DnmNOqWzI3@nXAk-<~nnOxyjsOZZmh7yUac2KJ$Qi$UI^mGf$YO%roXW z^MZNFykcH6ZSW4<##n4ioq<~Q?)@v(k3flXwyuvyt`Y<4z@&A}$K zDQr$Qm4#S@O=I)1`Pl+&K^9|imS9PiVk2ynjj=S#uq?~5JS(swE3q=GuyHn>RauSI zS%WoMi?vyYby<%s#AdL6v4z>c*&=LFwisKSEy0##OR=TdvTPN$DqD@M&emXSvbEUS zY#p{PTaT^J{=+t48?ueq#%vR|Dcg)~&bDA%vaQ(GY#X)%+mY?Wc4oVY}r*?w$)b^tq&9mEc1hp|}NdJC&Wr zPG@JZGuc_}Y<3Pimz~GXXBV&w*+uMPb{V^zUBRwoSFx+vHSAh;9lM_0z;0wWv76Z~ z>{fOgyMx`y?qYYdd)U3~K6XEQkUhd4Wsk8Z*puuj_B4BjJ@D^-dxyQtK42fRkJ!iT6ZR?ljD60&U|+JY*w^eE_AUF4eb0ViKeC_L z&+HfWEBlT8&i-J3v3@RrOXRX}S-EUnb}os_!6kDkTuv?*7vNI4AQ$4o9KeAb#K9cG zpL zarL=>xCUH9t`XOmYr-|-nsY6EHgFrcP26T~3%8Zq#%r;v;;NkMRu8@*L0e0x$9sFY^i?=hJzW*La;bc$2qyn|FARFUgnT%kt&; z@_YrpB43HG%va&7^40k2d=0)PUyHBJ*Wv5(_4xXHOTHD~ns39m<=gS?`3`(XzBAv2 z@5*=MyYoHxo_sI9H~%l+hyRc7$M@$4@B{fl{9t|vKa?NF59delBl%JMXnqVomLJED z=O^$J`APg_ehNR8pT-i1* zMt&2&ncu>1<+t(M`JMbB{xE-pKgu8DkMk$^ll&?EG=GLa%b(-V^B4Gw{3ZS}e}%uw zU*oUyH~5?UJ^nubfPch4=AZCS`Dgrd{ssS%f5pG%-|%nwcl>+)1OJi##DC_$@L&0F z{CEBb|C9gC|KWXtUq}!Vg)Bl=A-j+y3B*=my#D#Q06*NH?48as^p}0^&C@GW@N(*I# zvO+nbyih@?C{z+E3sr=wLN%efP(!FG)Dmh7b%lCDec>OWfzVKBBs3P92u+1%LUW;o z&{Ak6v=-V3ZH0D1d!d8SQRpOe7P<&sg>FK3p_kBG_*dv7{3rAk`U(Ao0m49GkT6&n zA`BIV3B!dE!boA1Fj^QRj1|TSg!#e(VWF@{SS&0NmI}*+ z<-!VKrLam^EvymN3hRXR!UkcZuvyqA>=zCQ2ZckzVd02yR5&Ia7fuK#g;T<5;f!!r zI47JJE(jNeOTrc5x^P3dDclln3wMOO!ad=>@IZJdJQ5xYPlTt!GvT@LLU<{>5?%{$ zgtx*w;l1!d_$Yi6z6(EupTaNUkKhyiVuF|`W)ZWB*~IK(l9)qG7E{EWVlFWtriwu^ zB!VI;rir=5JYrrkpO{}PAQluc5f=%O6e%$xM#Y#&i;T#MoXCrUD2kFOi|L{*I-)Cj zVj(d@{7Wn>{w)>}i;Bg>;$jK0q*zKUEtV0>isi)eVnwlvSXHbhRu^lCHN{$D9kH%h zPpmKgBQ_8lijBm^ViU2c*i39Lwh&v2t;E)18?lqvS?nTq6}ySu#U5f$v6t9e{8#KF z{wMYo`-%O<0pdV$kT_TzA`TUYiNnPa;z)6VF{2x36fw5kx(g3$}Q!Q z@=E!n{89m_poB?;6qOi>l{kr)1WA-6NtP5TE~%0x>5?Itk|o)aBe{|%Wk{u^GE!No zoK#+_AXStqNtLB4QdOy%R9&he)s$*UwWT^zU8$b*kJMahA+?lRNv)+eQd_B=)L!Z! zb(A_uouw{PSE-xSUFsqAlzK_MrGKS9(tlE4X^=En8X^sqhDpPv5z5Oz%Iwzf% zE=U)pOVVZOigZ=FCS8|qO82D)(nINy^jLZ#J(ZqG&!rdAOX-#LT6!bBmEKA3r4Q0a z>67$X`XYUmzDYl&U(#>skK~j6a)O*y&L(GtjKXWT~=jH)@4JsWk+^pPc9^9$bZR&<-g@3 za#6XMTwE?8my}D%rR6emS-G5CUalZllq<=VkXy>F!{rh3NO_bzS{@^hmB-6djViD*2TBN&%&yf+@H{D5OFu5hbd`6k1^vK@k;6krhRWE9r`= zXo{{Fim6zNtvHIScuFB9L-|W7to*GMQHm8<>$^ilp( z`YQdD{>lJlpfX4qtPD|xD#Mf!%6MghGEteLOjV{S)0G*@Ol6ibTbZNGRpu%4l?BQ| zWs$O2S)wdemMP1X70PO5tFlemuIx~DD!Y{3${uB}vQOEs98eA_hm^z05#^|IOgXNc zP);hRl+(%?<*af}Ij>w$E-IIl%gPnys&Y-auG~;=Dz}u|${ppda!d~ts~F`gx!HJ&}563-dW6%WKy7xI1)$WY4P0gJn_8oeDVD80`Y=zERM&CI2otn(Kr|9<3e1FOYwL-J+8*JxE?p+ zX55O~aVPG^y?CK`M*OdM;rQS2BJrZ}V)5ef67iDpQt{I9GV!wUa`E!hT)!n(Za(ez{K$J0-wpG-fMemeb3`q}hz z>F3igq+d+Glzt`sTKe_$8|gRGZ>8T(zmtA9{a*V0^atq=(;uZjPJfdAH2qon^Yj<# zFVkP8zfOOX{xvGP+0`U9hnlRWs5#YK zYCug@gK9_(tB{&6ll*D{70U!y2{rQ|S&gVsHKx*P=9X0DR9+P`kyKgD485AJs;Z%S zY9Td4Ev){n7Ez0;#nj?z3ALnJN-eFHQOm03)beTtwW3-{t*lm2tE$!1>S`^uq1sq& zqBd2Vsm;|EYD=}1+FEU+wpH7y?bQxyN41mMS?!{BRlBL()gEe3^*^<*+E4AT4p0ZG zgVe$55Ot_JOdYO{P)Dkx)Y0k~b*ws09j{JMC#sXw$?6n!sya=brOsC8sB_hM>U?#9 zx=>xDE>@SQOVwrSa&?8eQeCC4R@bO&)phE6b%VN5-K1_&x2fCJ9qLYXm%3ZsqwZDr zsr%If>Ou98dRRT89#xO2$JG<+N%fR^T0NtlRnMvC)eGuH^^$s7y`o-Kuc_D78|qE< zmU>&gquy2TsrS_f>O=LB`dEFUK2@Ko&(#;|OZAodT79p6Q@^V})Sv1v^|$&*^=W=B zK}*!KXj!#vT6QgmmaL^{Ikj9`sut8jT37=#P=hpBLo`%N({gKhw7gnAEx%SkE2v=_ zt`QokQCdWcYB7!07>(CtP0`|7x~6KHrfY^~YL;eej^=8fR!Gax{?ZC-e``gwqFOPn zxK=_drB%=>YL&FgS{1FTR!ys})zE5bwY550U9Fy0U;9UEpf%JQX^pieT2rl=)#OzC`fCHUf!ZK#ur^eipiR^! zX_K`n+Ei_tHeH*c&D3UVbF{hIJZ-+VKwGFS(iUq=w58fgZI!lKTcfSj)@kdt4cbO+ zleSsgqHWc-Y1_3O+D>hkwp-hy?bY^a`?UkwLG6fkQah!c*3M|>wF}xs?UHs`yP{py zu4&h`8`@3nmUdgaqutf+Y4^1U+7s=m_Dp-Oz0h82ue8_N8||(3PJ6F?&^~IPw9ncX z?W^`p`>y@aermt8-`XF|rzh$GJyj3tAw8@EI;cZBtRp(Ar|G%%JbGR|pPpYYpcm9J z9oGq+)MGlWGdintIUs^mrd~_0t=G}(>h<*cdLzBD-b8PzH`ANzE%cUp zE4_{0R&S@b*E{GP^-g+cy^G#e@1}Rxd+0s&-ueiAq&`X?t&h>i>f`kB`UHKVK1rXf zPtm99)AZ^341K0POP{UJ(dX*(^!fS%eWAWcU#u_Dm+H&(<@ySJrM^mEt*_D7>g)9N z`UZWYzDeJ#Z_&5v+w|@FPW_;MSU;j4)sN}N^%MF@{gi%MKck=3&*|s&3;IRdo>DToe`fdG=epkPz-`5}L5A{d-6aA_FOnaG+bCibHHsO^_qoL8rXlyhwni|cF=0*#nrP0c0 zZL~4k8tshsMhBy#(aGp+^fY=Iy^Vj3|BSvyKcl}fz!+!@G6ow%jG@LbW4JNG7-@_$ zMjK;{vBo%Kf-%pSZ!9nt8jFm@#u8(xvCLR*tTa{`tBp0rT4SBD-q>JlG&URijRVF( z|6UIs7lyTZPW1Kb48Rv})#zo_banrbE+&1nQca3|-edB@g(0F7# zHl7$yjc3MlRJ~O{rz$|EDCT@}@Wk$@X88c~>sshXN;m_^NEW^uEGS<)|k~@JDHu$E@oG=o7vs$YxXny zn*+>&<{)#hIm8@l4l{?FBg~QJXmgA?)*NS!Hz$}A%}M5DbBa0DoNq2L7n+OA#pV)o zskzKtZmuv_nybv!<{ERYxz1c~ZZJ2Ro6ODT7IUk)%iL}5G54DL%>Cv8^PqXiJZv5@ zkDABKU_n+stAJI|!Yte(EYhN^h!wSB7Hu&WYjGBD36^L{mTW0j z+)^#WGA+xpEyr>#&njePSbtfCt-q}zR#B^%Rop6Jm9$D(rL8hnS*x5?-l||#v?^KE ztr}KMtCm&As%zD=>RbO<4XlP%Bdf91#A<3avzl8itd>?QtF_g}YHPK#+FKp0?p6=0 zr`5~qZT)BUwfb58tpV0RYmhbA8e$E#hFQa{5!Og+lr`EKV~w*WT9d5F))Z^1HO-oC z&9G)#v#i#TL&x@Fz5?ppV(`_=>Nq4mgm zY(2G}SQ|+J~vcq;BJFlJ3&Tkj63)+~C+k{QplpV37cFd-2#%68K=54_iZON8x#g5yi zZP~W%*q&X;&anTo3)_F&MeL$>F}t{3!Y*l-vP;`#?6P(_yS!b&u4q@XE8A7=I(A*V zo?YMm$8KOZv>Vxt?Iw0pyP4hGZeh2yTiLDcHg-F^z1_j?Xm_$Z+gOnnFSHlgi|r-$QhS-b++Ja?v{%`y?KSpVd!4=B-e7OEH`_bxo%Sw!x4p;S zYwxr7+Xw7}_96SQeZ)R$AG43!C+w5Wuv3*X0ljvk|vO3wE z>`s!C!%22hoSaTBC*Y(yK_}#d9l!w{$Uz*^p`3^lbz%!XamqU7obpZur=nBIsq9p7syfx2 z>P`)(rc=jh<}`O&I4zx4PHU%))7EL{w0Al>ot(~27pJS!&FSv+aC$m@oI%cDXNWV* z8Sad5MmnRM(asoWtTWCT?@VweI+L8q&J<^=GtHUq%y4Epvz)okQfHa7+*#qQbXGa5 zoi)x{XPvX&+2Cw+HaVM}EzVYFo3q{7;p}vFIlG-b&R*w$bKE)YoN>-N=bZD-1?Qr3 z$+_%Yb*?$rog2M;mYq_=E zI&NLJo?GAj$8F#?bQ`&i-6n2Rx0&1AZQ-_bTe+>>Hf~$Dz1zd>>GpDayZ^d<-2dFZ zZa=rbJHQ?24sr*(L)@Y6Fn72+!X4?3a!0#k+_CO>cZxgJo#sw=XSg%nS?+9ijyu<# z=gxN*xC`Ay?qYX|yVPCgE_YYBE8SJ@YIlvh&fVkgb@#dZ-2?7H_mF$oJ>nj7kGm(_ zlkO?^w0p)q>z;GZyBFNc?oIcWd)vL^-gWP}_uU8XL-&#U*nQ$Yb)UJ<-52gl_m%tF zedE4$-?{JI5AG*7(aYjx^|E={y(BM(m+Yl@IlWw7z)SUlUdRi3fCqYz2YZN@<`wV? zdYFfMghzT2FY3iS+G9M{<2>FIJkgUp*;Bl@m+q;a=INg4Wq5yig}uMMB3@Cim{;5@ z;g$4Cd8NHFURkf4SKh1ORrD%(mAxunRj-;?-K*i%^cr{#y+&SRuZh>pYwor1T6(R# z)?OR0t=G_h^Tkmb~HhP=9&E6JotGCVD?(Oh)dHcNm-U08RcgQ>J9r2EO$Gqd-3GbwL z$~*0y@y>eZyz|}#@1l3fyX;-@u6ozJ>)uW8mG{B>=za1&dtbb-Ue-d{3+2w_eW4G9 zJ{I~^=u4rmg}xQ~QRru(Uxj`b`cuf4;m=6O$dZvYBU?sNMvjb>jGP&%8NrNDMmPh= z05hNrI0MN*Gtx40XXMGqn~^W0Kt{m~ECbIVG9nqV3_63!U^BQ3K10ZmGUSYF*}67p z-KEL@*9-rjs`&ArfRFY4?Gt>-zSn$rkXS*xFKh* zq``@Q`zQL^`6^`gZsptU3;GxOrzJd2JfF3FQc}v2TsKqGL%qXP5XiYH`8-8aJ5(O1W(`11O)`=rcRMKb+wnHh-YJLmmcqV)nPuLM{1N{p-=|DJ+xedTS@EaJp8~!tzEgib|7qtd>ihEN{-5uELcUO@ ze|dbmuS({qi+l-+6!e#FANuWIvUoN6L(xO0EgH zPUM=GE0ilK=d9$cIm%?8oz=}!Eio~XP5hC#JFA#9C3!&3$GH{K=5PcwSgSE9+;5wCp(sKG&3urFD;XLz8wBW3D2`^PAZjaTj(SdOB?awY#rdYqk2!jc>1(n2@D zU1G#&;ojE54??OxREGw9eOrh=(5v)Z%EbR`sA~-tdiKN9@ODFF2 z&++Zeyx_DFE+uZsIwpJh9Q%@IrVPsUI9Lz5nmePwd#o8=7`vChaGqsw&rr{t*^;_t zDUfj0SJ&tIx@UgrzcaJ_C`+kq)wBPbv?sYuI16$icjbJu@_opYoJK=`f>N#rIeKJQ zvR%rGXWNu*UiO+fW~OY)bvRQIUp5d*{SfL2JwzAh{gmG-&?m2qjsac=4ka7eTW6V+ z(AwY1SK8Ocx7ru*KlfKp%$4;@woXZBbEKqf$$26*8}R>Hx(X<%v8J2%UOZ_@Tau2n z&M>$y?lQn)i@Uo!gAVTQZi~CSv*-egEwgn|wy&`!MHzrBxKcst;Fg*4l zJk_3O-Uwp-RN$evg}aO6KS`BJi<5-&!gsMW9A$0pc;L+K@%rO|-2SZI?e22Ur`!j2 zHy0Kvi+_tPq^fdRsgpQIye3~)cB;p%N70iB>k`;#E%T%QPgij<16z;mKxweXKfSCf z+|3JWBy!*rxFeC7J^UC)KJP9)b7(+R44*bu1+FOnI3|ffJ|jDvwh6&aP(c($?*T76 zVx2z4gt+tkAPKvAdRuE7tOn5^AgZm7wzf;_S6pdQJAM{ZlWau$s76#W)rm@vw&PWF zJ@z2?l;0~}cQ}-Pye9(h^it+EGtnrfo$@6suN_;&OI#|`i`+yPsissJK%dF@0o{We zE<6)2Nb}^T&LYZG-$t#3+1Ea9FSiyOXSB}#^NQhYA)aBkk@0{y1*kY!Z&5S>A0Pwi zwe)>@I$K8QAU|@a`DE=0$bsX61@vO7%O|=|OXs*dbV)KFJ4r>Fu*12Ld?_KjSXB18 zCwS+m*Mb#HuX$FV9cbWf>Hg+8B`p^ga)X)9Ra*byb0~Eje+%nal}^Bq!Kbo-4Nj&QG#F-5^u&Ydv0QDbt2-S0 z-HL^r;r*dER^Q-A|9e+oaU)X~Z=#A&>A{zuQ1{VhER(xtLYL6F@6nYB%HyvdQ3x7KXdV|42;R4V%-Zq-iUZFkk^meGi zE~YAZhU%apC>d8Lo9Gp6V<9M~I;uH3$mzfa+sV8;!QaUUg*!*TSYExZ_mv}A=*^_z zN@y@uj9NtXLeuaNV$dt-rcmbCDeZKR42-tq*bV5;z81M=UJhJyFP9c_7wErnHSoRs z5aCKf1et^e{+$XN(KGS#cDwG+fg>;7J z8NrO?qQX$|jTCauS9bgR>RO~+G(-5TA*dZab)2WfRh*L{qz{@77MBxtwLUtA!?eU~ zVQR57-&`)JJn`oU&WGmmI!0BE_8(PByP7zrOKSuN^B8wWyQv;jO{y0lzzaNxdCQFw zDv3A6ds2R9c_ptepVr%47aAAt70P6N(rX6>c#@r;g>TFWdJQYPimbGTYLz`dq~Yve_&->IBx)$N4lRav-T(>XHXCE_Gh?|zQi{%m z3&jT~@bOcjq52q)M`pMMWIkFBww8mMPmM=W;$yb4sa$Igb8Wc?LIdYeF9{mq_3>(n zr{g&zH;wQ939#n9xT5$AU{@|ciKSExWZ=j6G+ECK6%IQ>UaXh32S*~&Y>}6CALDIc zhEh^K!BwTdqAgTWxVy^K73wnjj0O5Uy`M>Ahw=Tz8;;tZH-UMzH>r!iz6p~fTxm&WE!bJveDzXQt}_3MSAP-ns|i-ckGINNUJH&;Ih*J{Nh(c zt3eH?w!ksvN9Z-~N{?Z~;sn>wz!Gb6>~dni#7eP}b|-C*XSJh+@P!#gZllW(=L-PO z+K60aFujjy#(KGxd=a_5GEp6G9f|COvo-l6N3Fej4gUpqec9p%(Lc~?U^bZ{b~Zz8 zp~>d}NzY{9)1;;9@79CxHV~EiMB9fGt=XE_TgGAVx#$CE4p?3mK;+tJ9z@NB^i5_4 ze?l7QZmwRi-bD__?#9|hkJ#<>Jl@INpQHwA2h6KHb(C6&I^fUvI!Gxh)0@xhi2FJi zZ6n*_?Gk+Pq2U+7Y`$uax!e{q1Puot%7a|^2+m1bkyOIa8CY9<;w<2QVoZzljwi?O zMD|&uw6~t2jx@eAW05832=LteR3FMf*HL%;A5Kr+lkUt+u9|qx(O6q;-m!ax2HSg$ zL+TgLCr2k?2g8u+5c~200@tACP$8JmvjQj5x!E>ie)ltfouF~E3y4PhDIf5Zk<4Bg-msFb%syl5iYpvf+;9Dlf;B=bBab7w!<3m2_}z7o-%cly zEKGGiQGVzS`jI*z@Z6I_G2QRnbv)&Ky;U~Y!`K~ct;PM1+*9P~e2kfizkz=ig*ZJI zWuO~!7a^MbE)Eb|Iez!>TEHF_`;w@n8yy$JS%NK`MTOs(6ilIJu!|$%7|JK~FK$cb zkS*jf=}o_7$_Nb{?L4!zKW#W$m7pcuj4rc#=v%#C9kx(_X^l_AbvvmKxFB7RdBhxJ zBAh1eSMF=!P|MgK36J7|Xo_`3y{G&x59F?s!Kghv|70loolHTDEsxZUAo4Wyr9)#-S3lQhqG6K_>UPYem}stR?FdW%YvmLMM?b~0O!`@|QNC%UTzbn8ZBee8U+WO#*HReR^%>Y66q;Qpjd zyb5rm4fy1Dv;;rLxu5`hk-aN^b+z{w4=%SRg>r{ygce&JgBb!fl#cQh&QFg9`_BuR z#7mT&qo$zK}6Jd?ThLbcnBs1g(B*Wu>{4!aj#J_yc(RAAo3&ArpFq z_7j_*>QwxR!Ms*2d!?1dSmjA`OcuT~^~iFxo~jOaM8OgHS!5$~oGU2I7bfvKH-}B) zY5BA}o%-4;8XJ_bKfX6&S}oNnN-lXNSCN+SalqRwz+{(G7pT?L6lw@6PUqz_IVFF@ z=oUH zY8A0c8duc?Ue+~H+{o@Ary&~WtZ6E_nkKRy+fZ@)B-_?Yy zt32egnZO%IQUuL`DOq{YW?-*5P+K$^=4EAoPcy-?8`B?YAM=3D!@OZcZZ$t%Y$SCP z9gwjM=Iis*`AKg{Xj}+wrFueESr45;3ND80!+fnfXdPf^!$`L>uztR}7!O(~FY?u%VB}GIcxDJJJA~Xtk0B=fT*YK+JvAEm;wUnT zuFo2x=;HmE%x2N1iK*$9B$D`p5NG`3pXCqfx!*F&rU_G#_lH(96&t*7h}NYmQnN34M4l&^c>b9)^is2 z)d>F^52t$DnJK1S`R{5wq5Ljd0iDEdo z-#M{rG`)%ZQRi@e8SaQyz#im)rIjL6G;_11D8!6=LzfE?E29|aGtbIB z4C)!!Ol^FF9?6e)-1oYI>+CrZF*Y(YoYTh%Y_v*Ksw98N?j5FI*F^MExMfh;aU_u-Jd z+1)u%&iowa<6NvyxTrNw-|NffdMjLEqQF7^hV1TdDDiDUeQCkkzvqp@~7H6-q8{~oR?7mN0k}XA_#a!_d z(Z1nE)+(*5hmr@d8}Q#?)kzTXwxHLfHY@OF;Rxj?p|l)#XZPne#7LC{N4nXGP2*|$ zH_vu?6KBzv(OTeqIl$}6Aem@jZBw{r+ykz=xZ1hXdq`gtnjPC1FBe-I8W%k5`{+C` zoMUW~3fX=+u%6O@IdjlN;BW^?e|i!-Rb1i z_7HuG|FzQ4kx}T*>g-rP362%4a$RwCb1ipVmD8M;Jz2CK_LEqK#6Iz2p`Cg>u+DSA zsYqvpUGg^f8t)o^I$vi+QYc?~y?=ObV%4OVv8QHZb%eK~>#*=dcrT8Y7da=m_B)du zmz*U$?E+piPeg#T$zLM1tOr^~|8S+gBPu3K9OC|5ZJkL@&b2me^YIW zHZbr3CVv(8-w8ZdOTZ+MVd@1RR#F|;#K-(pt~C3S{+n#X6s`nARr-@vq$N2`*3xI0 z4eSS|4&8)Qr~hPfvh(R5csE!}1u_k{1oSHkQJ%u%=?J%jr^RbxYsrS^a`O4vpX${i zuBY%xl;!)f%P~jx%d4as(jBpactCj1SLZYEmH0LMH$G8#!O!4b{0Ocr*OJ=@qg+by zG5#=@%2nVJxz5~b?h1_IE6q3M^YVANkz6gVFjs@y1V=fB@QeB0d?B8NzqXLS#k+;9 z!X17NUzPXsPq@8YU#=*Z9^T!R+su97N^*yp3&h6lQ8iqe+=k5iJ-JRqx)|M%?niH? zZDt44f_=zx+*(#2vL0&s9lwSXZ>Ud*}+2_g9?0>`VOeN9n^&`z=t+c=cot3_UFJmcTw*l@BIiG zb|C~A4d@}W08OW(R;V=SOa!##itzu8=ri>XTsIIjkfNZ3q^J4=MyJDWa-4AVUQ&Sk z19w*p_r{CxSlk(p#NB{Xyn~sb%V9R?S7_vKiYMWNO_=!e|plPRrth!Bgu%-1!Ue>36ExkAXj01CQDTl>{%!iZI#*PnU&K zfe)1du2>OpWg=RLQy~)UrQ>v4JRd%NDKMaqfYd{&6~KP(QG4Li`T$lW14|kYzu5=K(E(mRd5{7*Wo3v2T`3mkns$IZ`3z*i zCa?*wXp2UIit-Y8VlzPK$M`&CDA!SS*zFm>GV(wk zz6h!eCGiY;BHzim-9Orzoj_-5nWbK4M}{NuHufELn6g!haT?tXzkv42jN}GAi7W1? z>g?p)<@(KAM7w3Jif&H$n(#S#&044?DkG#)Torm09taxr7+9^<5cenGGbF?eU=MI> z1mvvat7%A)%kjbqwWIf})7oV34(9@~4aYNO2@9-gDMT;|R=*K62`-|?vXzC|@(Z`3 z_O+Hq-zI!be3#HYwkz~KxYgg>JyB}P`RGe%Ib>6*R8J(3Rdg}-Cf8DA-I_Knd^#~h z1|?(V46oB&ijA^|Yt=mqADSoZ$??SKcwsapH0A2D6yH3VvJ- zUqyS-4`4FwNGGN#e^NXtDe`#P=^UVRfN0z%wlUrIq&5k$&}8kICy#TXDDgfv3;BQq z;EvVc9#!0kJfqvPZhoxvQaPdxwt1Mt!bFN#`?STr1xm6@aZDB;aLJ&TJDY6oKCn4ak?2j6A5!xENcNX-(HA6>(qmfm#Fk)p1aXl1L_|2A3)da_N#X zOivmUYhZ0vQ$4R7mBemb17;4?A>M(_%?6K{hQ0JIW-7Np?B+z?f7Ro`N5-3AT+gaH z{J(jpD6?E;9gRg7myIp~wTlU$PcEbWMEyt_lbO#Yj+7g?B7vhiGGFMQ1J!+sXNr5U ztEw~LXeyaPKlTLK4j$12KC2-p3}2`IYDHiXTkR@IrtOsX%+De-k4UhPL{@nOi ze7V6)btI}~L+*HugfX$-L)G-N9+%?;|B_MYFMwGQ+zJ%xg>){q41Z5db!2lbc12w) zok6$Hn@2rmevRcwFK5V;*fg|L{n!1TeFQjN2&%)~A&%vM-1$!`1vSUZ@!$9$VL0CL zz&q1e5+&)DC&iMgCT5H+w{z$jyj2_x_*V2zG!QVgC!pzd^c>$N)97K$3a+d4-1W_O zRo`#D57i9M3{AC425*7Vno-KluEP%@x5*2Uc9khbRC>2LRW9iGVOb+@0$;rItMoNv`XMCU39{OSZkk&8| z_kMDAWp(01t%3VCgXnM)(B6yuSfaCXC8Uq8S-ybQBzVSXW?nG%>jeXMlnjm?yvcOI zY4HB#)C*J}GQk4kT460;hd(MlbTU3$uVntP=2`2F!`e&V3HMOB3jdt$jvqkW$p?sC z74^p~y_(sZ!&s1MolLk=hAkOWe_9ByB!hMvFcnWEm%)ItCd#07i zSgC$={tyRoYv^$}3tB)OfV%l!v=cuhljzp;bVlH=^83X*juzgv+FA3nof^7fuQf~P zUwwwVq_l(e5`wA$>llq{lUMNm*YsTS8Rw+;az6Q>GE5_aKN5{Z_+7G>QaJYU{W&Hu=t(;wOLoLjO4Rj4OavEw|3rQt1 z1Mk57=!|@te9-eo{bpPSUFmKxq(1ftuAWjVAUaDo!oA_I=K;%a1FH8AIJC7El_v|> zKGHMgsCv_AY3(#Uu=AM$RlVih4IIP8+1zP56@LdVQ5-B_3Fw%IP;+FF?A&I#n&+MB zvkru(!tAb0ksS6>J>pAnUf>VY8SuYQ+0P9YaF*JSD{>FjzM(Sle2JM8hD1u3bpk8h zkEGxDj!YBs1igY@i?YBrrc$p^XGRdGxLp3zTF2l>{kpowf5e^U*e$N-LQEEN6d2Y_ z;7o1MC487}#olBOvQ@a*d=crbGuc~0%WHnK##vL08`@O=JwtfTKn!P>ntJuVA}xqtPk-uGceqRP^*`p~i)#+UH zgMCW>;VtIODDX@oXt3qriZaw|>H+S_7M2ySp^vt*!Nk9bq3g!MKz1c27vsAyjmQJU zgCg;r8Ua<{wcvgA*bVGkMq-LG0e+O6$#Y0M8?G8IXWiB|c;`9Wi#fP|L9c&|7>MD` zfG<%ngTEqRT!^~}%!HAi$VJ@+eIGT^9vG<~-4af3P1p8&v$`ILAudc4Tnjv;9&qB@ zRC|a*UFjCwYPqlXqCN%& z!9(`Tuoy`UO*LKz)+s46$IqsV;CoS5ETm)6&6Q zyIY~&M*hHEw<*W?1SUXM0qg$hfm5NPjqpO?3z=a*XL2><9^OpGq{!=dIN@Nln!Qw8 z?J3|m%MWC_qVZtAIluz;gYwk^-@|iBH%1d`I|h3)YR}C3p|jy@q2|^heXBo3sqAPg zTxCAu2xqsAVtMsojO)Y6IhYI^YrlJq?d8GE-6tLq8pjFp{E+h-SU7-h_3alwF(jgLc zV$%4xj(Wc4!D)8RaMe&_^NRYfM{?d1&ayM7ROK8KdJL>`~w*xK0J)oADksiRr`2JEYcVB;z;Bjk2=y~Y2UEN%z zeeynZmJ%zog`fi02R^9)yi(wq#*+=~b*Z>#fL7MB!;>RhLJ{*rAW=Ce{a|ZBuJE(d zDHCLo^Qc*aw}IY*^8p{IN}U4Ek(tz?|A4kSj@!j`79Tj5 z`g$Al!zZI(!+WfCdPV;w_egmuUz<6OO~?mJLiSo3dMv(x7WI<8D5Sa0`hCVbyLDs~ z%#z$1YHXbKzjieccQUK7iu!@?_6EIk5-5Ba7&u*-lC4R^T(dWZ^vea3mS@_cC8SmF*k7uG!$w& zKNYoCFyw;fy{E?)7h9w zY-V|^dupJUc_mE8u0_X$o0uh3+9Nv7^V66xX#us&pM8X7K!aZZ_qB*PxOdVpZ*8ba zwvCQ~iHX@GkIdETTe%=#hdu*U+@C#r)j;81i7jR`v`?R4H?vLn3{plH?T;DZ@YCp> z@Er4N;HLY4_=MREtf>m{zsg{PnURA8xckyHcYR-OHKgy=E9r;TE566>Ir2!pIO8N+ zAdmkS_Nx+93OC`c=YRf(dw&pO#9;bL-4U136DR6Qd1RJyaiZw8MyOM z`T)ZV-+(W@3S={%gkD9SKs|m~;Iw6?hqDAz7TtShOs*9)jGTbS4x@;>m z0t<|dc9qb2Yj7}IAghv9KF$rN+d$o+C!lFou;202IMkEwB~);2@ZHl!7|YF1dQ`pQ zE#|H$x93%6F7~5lpoesTzKnnHPFSrNm&VRxdvFKE=B}E)o!Uh6jXfw-#jaHI$iG++@^O>v-mE$k+ZF|h5yEkA@9%tP^2!C2ull<3eP9eGs|y93ue=Ym`exkTV{fy{8wXSn z6P!bY4a_S*^i@Az_J`< z12D3Mp!PL_BOJL&A^H;>m~Fx=WL_}6#T%f`%-4%rXYCgDMsuFt)lVt?|JI&T0*q~ZjuAg zvpHyh%OO*`4A=ICJ1z?={!>%`U&m-}>Mi9U&pFyvJy6VS8-5hM46{;mM&4P+bk*O& zt;@CeN=y>j1KL$8Xo)3&jd`G7XE1Ys3ksD5x4=Qy*MIIhYJ00|M2{VcTITgYT_u}* zi5pMX#xB$Yb|DA&(sHUlDvXEVFZc>wQE1{yPz!~2CbUc+&QLB%iI)e>tAWy2y2j3c z+HO_2yXt^B)1Wsv2f_3i<|tpmQP`Kk92d=&*gD<3#7(hIp+>=}zQ3G1gtg2mtfN+d zQ<=e|cEcEwkI;d$hHyOX?CkGuo{bO~XxS~{uV`s|u$Ir$Q@+gAfvo5v_)$@)Zj=OD z51@Ud4Zqa+(7(dm8W|ZckuWi?MK3^S#}^NFrV0Johv4Iv;EH1Kx=szi6jPT=&j+}f z%v0vR5OWs~Bmpkq#1nCMG|8^3>%J3CQ7p=~gAS?w@H7)4iY+FG8H@X!6S$XLOj_zn z^0zYd$iaB`ggLQ-;aSFRe^wV3dePU>I>3@VfQ$VhXN{9eOjT|&9IS38o`Jk*g8n?@ zPDo5@p42F@YxJ@?K9I{@N*v7$#~&f@+6NWus}L_2F#EVpLMw5T=#)Z^YRYD#dZcy2 zh{SF2!{N?GivPUpwMcP^&|Q}X`&#@L^X&kKxet?hTwTXl@1NR2h)?&!wIaj96YRIa z@!~mV5`GRUVFke5H=rujARXzgbShntrkP3HGI5e?tbY{D!5$Y4$NbUf_7%N}cZ*z} z8%vr&R4Wd#yb`q*cY)ru+{|@4!u}AtIQMv0=x6MBv~FxwbVhiWiPbXhg+g1p1*-SU z>PvyXIsr7S9ia94P#NOpR+)dm7~q)+6JlrV3tB#Jz&T0S#_RxpuL&`s4#e~$&@-7z zazd=l!#3rANNqgJf(4=%6MacH6Z6E*S$oyiN{qV!dCy9)&D`K2J;AHDVC(u}U?pBl^eZYN~Rvh71b1%4x;uFUQPZ2#FsuP15 zw6UJyY=+0b#`%z+Oz#Da?`J<#HDG=rGy?6Q317yM&O2T^WH_x}W@G(|?;n>-Y6Bdx z5AfD5;FW+SXg1l%))uylm89;{I7x71a_{n<(&}3S!pV`mp(K-N#k}c-T+E+Poofi6 zkO3^RH(XbTriHAo^}gxaqhN|rI=EMT3Fu|%!V+<*yb8J-hspuxaQAHJTkWr3 z3hvNFwTN?(Fo+p~@4&lrgJMt&CDL9#m%P)}!!yV?48Ccjm7nq*pE+= z!*nm^Fms4~&1Z20e5t{tQ0YkVP>)~^A9AMgIhnrrHdx$GmRgnC2G>-_^6S^?^rl9t56{Kzf2zcLx3D2xNjc@ZZdS@vQ5)cS_)`nknFe>Ro@S z1V0!$fG?m2VDTN{og1mFcq2)GI8l_X3HW{kPDE@PE^DA!QQzQO>-vrThC`@1;Ox&T)gI~#(wMU1 zAlJX%GlA*a8vT@ZA~481*Oe^!pm(ktDhn%L4LT5d;Hz{F;hf{4a@E&4kX0QPDD5kx zlyltYqfBFb3U(+PJm)9qAKifNqk?!CZVcV0y@lsa(RWA9A53pt4m$Kp{;>*iyn-Bm zEOF!45XnkHOe_m{v>Ezec2l>p$js*_IYxRu22%C;!TQ0`niyE=ISX~uj-Y~d0w3!Q z*Q7$PjE-O6e4rW~BD)zPWO5Af3{cMm9~f!DY1%~Pkz=$tp8G~Wz+FI}Di2SaLN!M( zNP6MDt4E-&QOGV4YHa^!G|?*h?zkpNljzRS3o#g;BNr&Ye^bMu?{7b9iC@qQ_`Z$_ z-i>-=yHA)77qKR5GrU)vUB%Pv2Vm~U!FGznt2gN2FR3c1ChiCdo9y_<`%!OdcM0#b z?*t16Iw`y5*?gRtfjto8k|9`$Jx9qcx-@f%KFJ*6+DkE|w|dmf9;zSWY}3f5cJWLEzuCo5(7QMgRw)-e z$yBI_J%I{EXSy1n!#USCD0mPQgi(<);l6C)BduDC;QmHiik}+Pb?kViJ!53uK;cTcccvoRS_t8`szO8U2($Fc$iVl-o>~d+i z(j%yt&x|s`UTPnoTdD4NBs^kM=oz>a_Ijfq1SYF;)bI>6;jn4}V?GQXeDPTB9sL7}V9uDV>MzP;T3F`U9v|w;VaIn5B(BIS6 zv6W|;j`+hb{yu?fhfMqus##M>esTu%)z|be?xfU0u~f@gWmYzi1tqPYuMlXf^ZB#P zEb4f^XrlG%Ik)vktQ6+3Xo|2OR+9{^@m9 zfm`3hrh9p*p&RCIy}7>$n1V1Y89wlj0VQF4gE`Mv0cQuuF)`f z?TfxMs0ZJxmwlJq)8(H4a-iCf<7Hw#@%tPe?-X@1&h+Z=_FhgXGqptLiypoAt^XVfKVB%5UyA@?gF?SZ_Uu zw-q5PEDvh(9_ml<+BgakgDv7-;x8DqtVBE2DrXeeviR1xnu5+!h5iHldp0!;kgp*+ zhi2f~~nE}dz^a5@^$aV=p%`{KTCP}0J9BjzX!1R?63;YDGy)BQNmL z7Q^6jj3M-N2K`-(Z=wB>W|7XJ=|)#jpz}#z+56BX_#eD88ScF@*w{eOWzx`NQh}W< zbaE_J+WW&=`Ct{}YcPjC!GF?yP^!#{^n1wD8~sx6N`i$IMi)pwUU25|8tMZ5U2vE_ zJ!2zqsLd}N`vVa9DAg97#{bcNt`B(6 zPQPr-wym&jw+xo{k8rgYn?j!Q4$cTJfqtx?J5&}>S%9-0Dk=_j|54;mHck57b62Zm zFNidcwhy;Av#YJ-yx?;WyMx8$1B)932(_PjNZm$1$Vs-ZL@ONv>w>D4Y;Ux# z2CD?7xV_RIb_zNTUfKw04v#b+!+3*&_gx=X;zyZ!lxoABG{j_yx!H0 z<hWu_Sx`jdytV9Sg$Mx9rPab7*MDkta~cVQsRT8hFR^oUrFp_{yXp!b=yZ4o>})o$eFH=P8FXrAPzM>) z>}YsZsEu`AAMC&44#@v<{pjD|3_*uqJhBv}*BNqxM7nJ0Li7d@8RJXpY7Vs1C;>CgO& z70f5oH-Y=qfjH3|D!nFjs%=KU<1KVAzL!Jse%97lIl_&?qwTUrN%exKp!0)JnN1;M zL1V56*58QwMpeQi0V(dlY1PWOH6BB@u@n&-oM0^lc3%pRC-bj-ycgKUQFwv?`UJnvh*HrL@QT9lJ-+>*Yq>vgl9xX!!unl- z>@WnUdm93pRswylJot}Fef@FvM;uP!%moXs2cEhNuwX9m3xXoh6TJ+6(-dOW{{ceT B==J~r literal 0 HcmV?d00001 diff --git a/example-data/02_vildosola.st b/example-data/02_vildosola.st new file mode 100644 index 0000000000000000000000000000000000000000..177c5038e7a2dad511ab9254a42db169ecd452ca GIT binary patch literal 13925 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�uqIgQ;# zb|?KkwXd%t-+(TJKFTP_Oam}(8}#qOOlj#>sD|-@+a-~38|in!6DmtxfNpX{^P8FXsDJPsnD4j`b7V9+gesD4=nvT4@IjD!{Az9(H&|R9_&Ku6{NDY= zI|=hQOG0;GPO>TG;%oow^p^u(FTs3lHcV&S!aK+=%%|cxCYnW$7e_0Xwa!+3dzoG{obE5;*U*n~Pm~WBlJba5<)> zI3+kITFblv2kI}I?`k_hf1GATY7?po+^jcvilykM!l2M#Q%XEZtDW{7a{I7yTb#o@ zgRW>w?}i|%yTWYfePMm*hB4FgCCeo;ovhdv<%s0t=0lbJ7ks-?C63fN!XrQA`UGCn zez5iUJbi^K_j!iNCD1k@bF8 z2s7=VSMk;Va(X1}*LG@-@UwDSC%iJrO$oo-P~QW&aEa?gYvf5(3;heTa(9T*XaQcv zWXO%e$E-HV&(aRKK0PgTPhz>w)HRrcX$!k`9IEF)R0pjD##c!F&L@=>dQZ1!e2u%@ z_+E|ro^cE4Hvl7FLN^G6Mxk!FA-Rk^NIoamk!9%S{O^8V8}4KzJEu*K|7}bNtrHJ{ z^STf!lnX1`k2nFx{!bCh2m^&kg?%Xf8S13Rov~hXn1$!Uulsg^QmBdhmLO6~qAuD- zF5;&6apZk{gL%w+uFsFw39a=_7Gmrh)L@*3Qa#hue9=PSiv4jO{h3f9*iL)Ho))i> zq+#b<$L1;3q=!s>(tu7&Iyh{Z;9eYq8dHTD$o7&rrF3+G@w?r{9pL_yw7jA=oELuq&6L>1k=X)?k{XeaE`Iix$kv%TIgd# zy`(YBZ2UF6O$<2bEp&=rDSoQF0du&#*Bo?v40=`X`j_+9sqdhEr{)yvz$B)hTqGS2 zb=1$>2i!AGB{MIA0~dIk*6|9cZ6@UNJ(NSY5N9a$V*{)W)|FT|6q3rbZ&L-hD_Re+ zJB-)~PSQx2^$L% z;Okh&#vMC0Z`-C~r}`Z_RchY4@tNAidOy1kbo{@6@ivVbcRQ2n-@6Vr?A)P4<2L^v zIbHSUb)eI~?7vX!b{&tWN|mq8`P8XWr}~}oPsUV9>65@DEQv~@lb9qWDN9m3$xX_U z6eQ(KDv(qtsc=$}q@qd1{^5Wq-~hRRqChdAI8Xv836ug#17(1+Kslg1Pywh2R01jk zRe-8MHK00B1E>kq0%`+wfVx0Epgzz5XaqC{ngC6KW`1+)g*0BwPGKzpDA z&=KeabOyQrU4d>ucc2H*6X*r>2KoSffqp=LU;r=>7z7Lkh5$o>VZd-;1TYd91&jv9 z0Aqo1z<6K+FcFvpOa`U^Q-Nu~Okfr;8<+#k1?B6_Yz4Lf+kqXxPGA?X8`uNv1@-~^fdjxn;1F;aI0766 zjseGk6TnH}6mS|i1DplU0q21Wz-8bHa22=)TnBCdH-THgZQu@Y7q|!92Oaycn-V(UIMRx*T5U#E$|L_4}1VV0-u1-z!%^v@D2D5`~ZFezkuJsAK)*L3QP^A z1Ji>Uz>HuLm>3z!wm24)B2pba{p3wodr<^Xeo2`~Utz+7N%@INpQm>0|k<_8Oa1;IjK zVXz2T6f6c72TOn@!BSvpunbrhEC-ecD}WWjN?;YRDp(Dy4%Pr`g0;ZfU>&e7SP!fZ zHUJxfjljlW6R;`R3~Uaz09%5sz}8?Jur1gQY!7w-JA$3S&R`d?E7%?E0rmuYfxW># zU|+Bw*dH7K4g?2*gTW!-P;eMH92^0T1V@3R!7<=ia2z-uoB&P)CxMf}Dd1Fa8aN%C z0nP+xfwRFm;9PJXI3HX9E(8~Wi@_z}Qg9i#99#je1XqEp!8PDoa2>cF+yHI_H-VeM zE#Ovg8@L_Z0qz8MfxE#y;9hVaxF0+K9t018hruJ@QScae96SM@1W$pd!871l@Emv^ zyZ~MVFM*fAE8tb|8h9PN0p0{}fw#ds;9c+@cprQKJ_H|ukHIJ4Q}7x19DD)31Yd!# z!8hPr@E!Ob{0M#mKZ9SuZ{TC@Yi= z$_~XL8*(5Q@*p3|0p)}ePynSsxuD$8e^4GMFH`_32o-_~Lq(vXP%)@DR01jqm4Zq` zWuUT9IjB5T0jda9f+|B*psG+cs5(>wstMJH8bA%9Mo?p@3Dgv71~rFTKrNwGP;00S z)D~(7wTC)D9idK8XQ&I*73v1{fOJJTo210|N!O#$BC^QTj4vm0D zLZhJ3&=_beG!7aMO@t;vlc6clRA?GB9hw2ngl0jrp*hf8XdW~lS^zDC7D0=lCD2l6 z8MGW)0j-2qL93y4(0XVCv=Q0_ZHBf$TcK^xc4!B*6WRsshW0>vp?%PP=m2yOIs_et zjzCADW6*Kv1auNQ1wDWsL(iaB&>QG0^d0&E{e*r&fBs1Yr-ezFgLA;S;N0+ka2_}> zoDa?q7k~@Gh2X+)5x6K^3@#3rfJ?%q;L>mzxGY=_t^ikrE5ViFDsWY}8eAQ&0oR0U z!L{K!a9y|_Tpw-#H-a0(P2i?*Gq^e20&WSng4@7t;dXF)xC7h~?gV#+yTD!HZg6+F z2iz0x1^0&gzzYk_iD25P=XFK@b$d5F8;85}^r zNQjImh>9d58locxVj>n2L$V-Qk!(nIB#zjKgSd!?_(%>UCz3z{Bn8QZCvkm^Vcq$W}e zsg2Y@>LT@!`bYz$A<_tGj5I--BF&KINDHJT(i&-pv`0E19g$8*XQT_#73qd_M|vPV zkzPn|qz}>;>4)@31|S2GLC9ca2r?8Ih73nWAS01c$Y^8?G8P$!j7KIQ6Ol>CWMm35 z6`6)iM`j>1ky*%WWDYVHnTO0r79b0eMaW`g39=MfhAc-`AS;no$ZBK_vKCo~tVcE= z8<9=OW@HPp71@UDM)n|kk$uR1s$e6S;-lM(!YYk$cE}-O^2pOGoTsKBs3EW zpdbpNFp8ikilYQdq7+J_Av7}@Mj4bvIh02QR74|a6qQgJRZtbxP#rZ;6SdG7ngz{@ zW<#^1anwc~)I~kiM{}S#(F7WxDQGS>6n3;n1#i#ELc`78M6f75(8~YE-gXP8Y zVfnEFSV621Rv0US6~&5S#jz4tX{-!Z7AuEUz$#*uuqs$ptQuAwtAW+TYGJjpI#^w- z9#$V~fHlM#VU4jSSW~PS)*NerwZvLst+BRPJFGp{0qcl$!a8GJu&!7)tUJ~N>xuQk zdSiXCzF0r3KQ<5>j19qtV#BcE*a&PCHX0j)jm5@c@Ic>yN^A<9%7HM$Ji6>DfSF|j=jKMVz02**cfEES#_PlKn$)8Xmy40uL73D1NBIEX_yj3YRT zV>pfzcxF6|GdPQLIFAdsh)3`!F5xn+;3}SsYq*XZxQSbM49|jR#k1kr@i=bd4({R} z?&CS|oOl8c@Dw~3o*VxU&x7a1^WpjN0(e2Z5MCHBf)~Y$;l=S1cxk*0UKTHhm&YsM z74b@VWxNVr6|aU@$7|p<@mhFoybfL$uZP#i8{iG`MtEbq1>O>Gg}27r;BE1Ccze79 z-VyJFcgDNmUGZ*scf1GQ6Yquh#{1xX@qT!Jd;mTWAA}FbN8lszQTS+l3_cbghmXf6 z;1lsl_+)$vJ{6yaPseBAGx1sYYcksLTJ^ViY0Dp)-!XM*L@Td4Q z{5k#te~G`s-{5cYcldk!1O5^Jgn!1r;otEe_)q*7{u}>;|HV@gsfjd1S|S~hp2$EX z5t#^p011eI34}lijKB$kAPI_~i4c*Q2ons!5*)!30wEF+B1%YvOejP$p%FS^5GG*} zF(M0*orn`Q;Set25k8TF$VnuKfJh;75xI%~h&)7IA|H{TC_oe@iV#JKVnlJGBvFbe zO_U+Z66J{ULOW1A?gzKi26hWq9M_UXiPLAni0*3 z7DP*;715e#L$oE@5$%Z%L`R|%(V6H%bR)VGJ&2w}FQPZmhv-N2Ck7IOh{41VVkj|; z7*32JMiQfl(Zm>HEHRE4PfQ>t5|fC@#1vvGF^!l`%phhGvxvFGJYqhvfLKT@A{G-% zh^53bVmYybSV^oRRugN8wZuANJ+Xn?QUQ`-ua@LE;c` zm^eZlC5{oti4(+0;uLY3I76Hz&JpK{3&cg@5^1u#Bbsc z@s~(NrY6&nX~}eCdNKoTiIF%-kR(ZwG#Mf@lVOq}S&}1pQXpkg zAyqP&)JUB)NR!M$W+k(c*~vI*lMd;U9_f=g$ed(?49FBR7nz&PL*^y(k@?92WI?hJ zS(q$B7A1?3#mN$6NwO4Knk++>CCicJ$qHmevJzRDtU^{LtCKaznq)1qHd%+POV%Un zlMTqmWD~L}*^F#Xwjf)Qt;p778?r6gj%-hMAUl$s$j)RJvMbq*>`wL|dy>7#-ee!L zFWHamPYxgll7q;>85lS{~@?xOkVnZAlP}1ZBfpbB$e-jd@;CX1{7a^yQd4QDv{X7O1C^0VqB2n+1yL}CP$-2_I7Lt- zMNu>rqB2uqilJDFqj*Z7L@G*2luRjb_P%hLA9h>QLU*qR9mVY)t>4=b)-5`ovAKV zSE?J;o$5jLqIy$(sJ>J`sy{V=8b}SI22(?*q0}&HI5mPANsXq)P-Cfa)OczFHIbS` zO{S($Q>kgxbZQ1QlbS`%rshy{sd?0VY5}#7T0||TmQYKnWz=$N1+|h|MXjdRP;04m z)OuL7K9Izk<#j#0;{6VyrS6m^<9 zN1dlGP#397)Me@lb(OkK-Jot#x2W6H9qKN1kGfAipdM0>sK?Y3>M8Y%dQQEdUQ(~9 z*VNm8-ccX^`9yuDzEEGOZ`60{2lbQ6NP{#)!!$ypG)ChzL6bB^({zZ=OowTf=4hT4 zXpxT4QCgy9TA@`snbv5XHfWQ!=op=a&Pr#av(s_frXAX)J=&*p&^hS@9ndLsE;={; zADxHJOXs8W(*@{)bRoJhU4$-57o&^QCFqiLDY`UWhAvB&qs!A3=!$eDx-wmbu0~g< zYtS|6T6Ar?4qcb7N7ttt&<*KEbYr>+-IQ)dH>X?BE$LQt8@essj&4tPqC3-F=&p2k zx(D5p?nU>e`_O&qesq6&06mZ%L=UEi&_n5A^l*9vJ(3*)>j zMtT#ynchNgrMJ=B=^gY=dKbN$-b3%D_tE?51N1@q5Pg_FLLa4%(Z}f%^hx>@eVRT) zpQX>y=jjXdMfwtbnZ80_rLWP~=^OM-`WAhgzDM7uAJC8J$Mh5WDgBIoNx!0B({Jdv z^gH@J{ek{Sf1*FrU+Ay&H~KsMgZ@eXqJPtW=)ZKTQ0h>cP`Xh1P=-*(P*NyU2nc~8 zCu2LAyhF`DO5RBB~&$3EmS>JD^xpFCsa37FH}F&Ak;9_DAYLAB-Aw2Jk%o8 zGSn*6I@BiAHqor=jPe7onG-SE1LT zH=%c-um40dM>F>d_YL<84-O9r4-Jn9j|`6vj|qDV?+ot>?+)(??+xz@?++gc z9}FJ~9}XW09}OQ19}k}hpA4T0pAMf1pADZ2pATOOUkP6eUk~31-wfXh-wxji-wodj z-w!_sKMX$#KMp?$KMg+%KM%hMzYM<$zYf0%zYV_&zYl*1e++*Le-3{Me+_>Ne-Hl% z{|x^M{|^5N{|%>NQZs3ov`jiCJ(GdS$RshD7=Qs8h=Cb|K^cs}8G<1hilLbhlbH!K z48t-U!!rUSGBTquDwE7;jLsO0$yiK`$--o1vN742IAb#o<1!xOGdY-?Oo9oRyi7hO zKU07y$P{7``hA=~!Va#x51T&Hu#f)agFk_i<%oJuSGmV+f%wT3RvzXb;9A+*vkD1Rb zU=}iqn8nNzW+}6bS|k~>yO`a~ z9%e7IkJ-;0U=A{en8VBw<|uQFInJD7&M@bg^UMY2B6Eqk%v@ovGS`^v%njxybBnpn z++prA_n7<41Lh&~hEWL9H!)?iK6Vq=i4er$hs06UN!#13YMutV8l>~MAjJCYs6j%LTOW7%=+cyoyE>(=dg3xdF*_40lSc0#4cf%vdh@z>)7?|26iL6iQUX@VYjl|*zN2Nb|<@w-OcV{_p`V3|`-%O=erJEMKiOaGZ}t!Smrcc`=F)I!xpZ85E(4d5OX4zdAO~?Uhj1u| zaX3eCBu8;H7veH=VUFQgj^lVv;6yIMMLCI+Ifc_XgEKjci*Z@FtXwuOI~V6{&f#3n z<9sd$my=6y0hhw%;&OBUae27BTt2PJajpbck}JiP=E`toxpG{2 zt^!w)tHf32s&G}gYFu@$23M1-#ntBOaCNzQTz#$q*N|((HRhUdO}S=VbFKx~l554a z=Gt&=xprK8t^?PR>%?{Dx^UgN?pzP9C)bPX&Gq5>a{aje+yHJMH;5a|4dI4z!?@wx z2yP@diW|+1;l^^~xbfTsZX!2{o6Jq&rgGD`>D&x%CO3=0kjDKFl*b%X2)>3%tlj_$V*&GOzF| zpUi8#&KtbN$M`IKRz4e_osaW2@9-|~@jjn}&&j9odHDQ%0lpw#m@mQ?<%{vf`4W6d zz7$`YFTuz75}&Z^yUiJMf+O&U_cXE8mUp&iCMZ^1b-pd>_6q-;eLl58wy#gZRPx z5Pm2>j33UA;79VK_|g0rek?zZAJ0$VC-Rf{$@~<4DnE^%&d=m$@w53k{9Jw>Kc8Q~ zFXR{Ti}@w|Qhph~ieJsI;n(u(_znCjaC?*sa zN(d!|QbK8=j8Il6CzKZ|2o;4&LS>=E_~2ZV#dA>puaL^vuO6OIcfgpa96k|JQkh`FNBxEE8(^9MtCc{6W$9Sgpa}};j{2X_$qu8z6(EupTaNUx9~^! zE2I)ri)qBPVmdLsm_f`aCW)CuKmqGBRmJLJ4Y8(JORO!{5$lTe z#QI_bv7y*VY%Dern~KfF7Gg`WmDpNrBeoUWiS5M>Vn?x)*hTCrb`!gcJ;a`3FR{1S zN9-&16Z?w;#DU^aahNz<93hSrM~h>`vEn#!yf{IeC{7Y5i&Mm@;xuu(I76H%&Jt&f zbHusgJaN9bP+TM~7MF-i#bx4hafP^ATqCX(*NN-J4dO;|lek&jB5oD8iQB~;;!bgw zxLe#K?iKfm`^5v|LGh4ySUe&g6_1I>#S`L5@sxO4JR_bJ&xz;73*trbl6YCXB3>1* ziMPdj;(hUf_)vT#J{F&dPsL~AbMb}vQhX)87T<_(#dqR+@q_qL{3L!Bzlh((AL38( zm-t)!E2fI1j--jCjiigDk7S5sj3h-eMSutxfg*4OiJ%cIf=7r58KEL{BoxUU2}hU+ z8{r~+M2LuyNF*AOB638DsFCD|7SSU{#Ee*xSR`vCTO=N_BTmGN6Utca|Ptd6XS ztc|RTY>aG8}*Y>RAtZ zT#8(dT!~zbT#HiEfQiR2lvG+OBbAlPN#&&qQbnnfR8^`W)s$*UwWT^zU8$Z_UuqyVlp0Bm zr6y8SshQMVY9Y0hT1l;?Hd0%uoz!0HD0P>5NIj)qQg5k`)K}^!^_K=n1EoRIU}=an zR2n7?mqthh8YfMVW=gZ9+0q8^B7x-UJD9!ig-$I=t&sq{>GF1?Um zO0T6i(p%}B^j`WPeUv^)pQSI-SLvJdUHT#YlzvISr9aYNDV3aBP9vw4)5+=O401*} zNycSDCS^*d<&d0N4$F+p%ACy0f-K4rIVwxCEGu%dtjW4;$fj(`F*%EzRn8`7m*cW6 zJF+W#vM=Y5bIJ)hkW=Jba&GxQIggxI&L`)Wi^xUgVsdf0gj`ZCC6|`V$Ytena(TIe zTv4thSC*^DRpn}Ob-9LIQ?4b~mg~rM<@$0HxvAVtZZ5ZwTgt8E)^Z!Ut=vv-FL#hT z%AMrSau>O)+)eH-_mF$az2rXfV0nlSMimCN+G4NQbZ}L6jO>TC6tm%DW$YhMk%Y5Q_3q9l!{6v zrLs~*sj5^{sw*{=no2FDwo*r__fLJLfznWEq%>BVD9x1SN(-f>(n@Kqv{BkB?Uas6 zccq8YQ|YDjR{AJ?m3~TpWq>kJ8KewWhA2aoVajl2gfdbYrHod_C}Wjz%6MghGEteV zOjl+oGnHA&Y-O%8PnoYQP!=kSl*P&tWvQ}ES+1;5Rw}EM)yf)Wt+Gy8uWV4ZDchAD z%1&jMvRm1s>{a$D`;`OALFJHgSUI8`RgNjgl@rQI<&<(-Iis9aE+|)(Ysz)yhH_K6 zrQBBTD0h{6%6;X5@=$rCJXW44PnBoNbLEBdQhBAkR^BM@l=sR9<)iXh`J#MPzA4|8 zAIeYVm-1Wrqx@A;sj1a8YFag&nqJMIW>k~ZOe&y)Dx{(+rs680k}9RrYDmqjhE+yo zRZitqK^4`A8dW7#RuxrMlT}UCRYNsZOUZq>jslJ*+&8a5TKuu9|skznv z)I4flHJ_SaEua=u3#o04Yj6P zORcTeQR}Mp)cR@zwV~QbZKgI?Tc|D7R%#oyt=dj)uXa#7s-4u%Y8SPu+D+}Q_E3AO zz0}@nAGNRAPaUETRfnm=)e-7Qb(A_<9ixs_$EoAhiRvVEvN}bbs!mgMV7( zI#->i&Q}+x3)MyHVs(kSR9&VnS68Sj)m7?hb&a}KU8k;BH>excP3mTKi@H_arfyev zs5{j?>LK;8dPF^{9#fC2C)AVbDfP5^Mm?vVS1+g+)l2GS^@@5`y{_I-@2dCI`|1Pr zq54RDtUghns?XHt>I?Oy`bvGRzER(*@6`9|2lb=+N&T+=P=Bhw)ZgkK^{<*LIdyWH zYp51LJPDMEti&C z`%lZG<<;_O`LzOCL9LKhSSz9x)rx7wwGvuMt&~<;E2EXu%4-$0idrSDvQ|Z_s#Vjf zYc;f*S}m=%R!6I=)zj*04YY<@BdxL4L~E)w)0%57w3b>ct+m!x>#p_CdTPD2-dZ26 zuhviNuMN-!YJ;@F+7NB1HcT6?jnGDFqqNc5L~W8bS(~Cw)uw6FwHew>ZI(7$o1@Lu z=4tb_1=>Pwk+xV{qAk^yY0I@0+6HZ-wn^KpZPB)B+qCW44sEBlOWUpO(e`TlwEfxv z?Vxr@JFFeij%vrWtzFPAYL~Rj+7<1pc1^pk-Oz4ox3t^Z9qq1mPrI)@ z&>m`!w8z>L?Wy)md#=6E-fHi(_u2>TqxMPrtbNhGYTvZ)+7Iog_DlP%{n7qvsr1x( z8a=I^PEW6A&@<|pbX3Q5Tqkr=r*v8m>6!Jg&giVp>AWuJq8`zsx}?jxqN{qcuIajN z>e=+{dR(`4M|X8k_w^ilPCcOqdWxP~|4+}O=hgG+`Sk*NLA{V(OfRFC)ywJS^$L1L zy^>y8ucBAgtLfGC8hTB=mR?)0qu15z>GkyndPBXj-dt~?x71tdt@So~TfLp$UhklH z)H~^&^)7l>y_?=$@1gh9d+ELPK6+ohpWa^|pbyf==wtP9`gnbUK2e{fPu8dCQ}t>3 zbbW?CQ=g^J*5~MR^?CYyeSyA6U#+jv*Xrx^_4)>VqrOSstZ&h`>f7|~`VM`kzDwV& z@6q?_`}BkQA^os^L_ew@(~s*X^;7z3{fvHAKc}D9FX$KbOZsK~ihfnUreD`@=r{FS z`V0M~{z`wXztP|7@AUWj2mPb|N&l>W(ZA~7^zZr){ips*Pi3Sw(imxtbVddvqmg7} zG5`ZKAOkiK12r%MHwc3?D1$aaMrMOCG($HG!!#@-W@It48rh8OM%=Is$8ZhL@QoZs zP9tFiMs6d&QP3!46gG+&MU7%caifG$(kNw=Hp&=fjdDhLqk>VkU>#u8(xvCLR*tT0v@tBlpg8e^@o&RB13 zFg6;SjLpUtW2>>v*lz4Fb{e~k-NqhcuW`UQXdE&Q8%K!MJE#GA6zVb<24+LEk=fX6Vm39Kna$0XW^1#J+16}lwl_PN z9nDT=XS0jh)$C?=H+z^p&0c12vya)=>}U2j2bcrRLFQm{s5#6WZjLZVnxo9o<`{FV zInEq!PB15$lg!EH6mzOM&75w|FlU;x%-QA~bFMkhoNq2PmzyihmF6mQwYkPzYpyfb zn;XoH<|cEqxy9USZZo%=JItNtE_1iJ$J}e~GxwVZ%p>Me^O$+uJYk+RPnoC9Gv-wXE7!9jmTY&#G@Vu$o%UtQJ;ltBuvxYG<{#I#?a8PF82D zi`CWYW_7oESUs&?R&T41)z|80^|uCC1Fb>UU~7mq)EZ`uv_@H@tufYEYn(OSnqW<| zCRvlMDb`eLnl;^;Va>E=S+lJ<)?918wZK|vEwUC{ORS~VGHbcD!dhvqvQ}GbthLrU zYrVC>+GuUEHe1`Q?bZ%!r?t!4ZSAr4TKla1)&c9Fb;vqw9kGsD$E@Sl3G1YF$~tYG zvCdlOtn=0d>!NkZx@=vsu36Wu8`e$ho^{`PU_G=RS&ywJ)>G@5_1t=4y|i9gudO%M zTkDzno6`f2^Lep`R6zgDVP>R6gs+E}_+`dEfo##mA;Qw)fK zF(?MdkQf@nVt9;*QL%80iLo&*#>a%17>mTBF)1d;l$aVzj%hJHX2i^x6^q5P#InY+ z#j?lZF+1kO+?W^hV>x0uV~JQ0ONr%*<&OOq%M;5R%NNTZD-bIfD-ks~oEms~W2os~)Qns~M{ms~xKos~f8qs~>9+YZz-3YaDA5 zYZ_}7YZGf5YZq%D>k#W0>lEu8>k{i4>mKV7>ly16>mBP8>l^DA>mM5s8yFiD8xorm zoAb}{EGM#@%yKHr=`3fmoXv7B%Y}cw{nH`dG2SWOIo>7SHQp`WJ>DbUGu|uSJKiVW zH{LJaKRzHnFg_?gBt9%YJU${mGCnFkIzA>oHa;#sK0YBnF+M3iIX)#mH9jpqJw78o zGd?RmJ3c2qH$E>uKfW-&B)&AhEWSLxBEB-dD!w|tCcZYlF1|j#A-*xbDZV+rCB8Mj zExtXzBfc}fE519vCw?q`Jbog6GJYz4I({a8HhwOCK7Jv7F@7n2IesO6HGVCAJ$@s8 zGkz<6JAOC*DE>J9B>pu1EdD(HBK|V|D*ihDCjK`5F8)6LA^tJ`DgHVBCH^)3E&e_J zBmOI%#!hRev(wud?2LAjoyi7l(1vW-Mr_o^Y}_Vn(xz=w_VUKWEZxJ*hTGPc5%CeUD7UP zm$u8;W$kiydAovL(XM1ywyW4x?P_*)yN2DsZfG~M8{19nrgk&Cx!uBUX}7Xl+imQ& zc00Sh-NEi?cd|R%UF@!QH@myt!|rbnum{?M?7{XBd#F9k9&V4YN7|$8(e@a7tUb;i zZ%?o%+LP?b_7r=nJ=~7wn7nCHt~{#lC7^v#;AX?3?y&`+@z? zeq=wkpV&|BXZCaZh5gcgWxuxH*l+E3_Ivw-{n7qpf40BaU+r)9cl(F^)Ba_rcG5U$ zopermCxesGNpdndfCD;^13QR=I+%kyghM)%LpvcSvlDh0hj%1Lb`(c-k{!*_9m6pl z%ZWKzoUBeZC%Y4OY{zk2$8&rqhm+GuI4Mp(C%;p`Dd-e(3OhxdqE0cVxKqL@>6CIx zJ7t`*PC2K%Q^Bd|RB|diRh+6$4X3tK$EoYobLu+{oQ6&#r?Jz-Y3ej{nma9=mQE|D zwbRCF>$G#)I~|;kPG_f&)7RoUtZ-I3tDM!&8fUGu&ROqla5g%doXyT| zXOFYj+2`zc4mby$L(XC6h;!6A<{WoUI47M`&S~e2bJjWMoOdob7o984HRrl>!@23) za&9|!oV(6F=f3m6dFVWH9y?E*r_M9yx%0w#>AZ4YJ8zu#&JX9O^UL||{Biy|sod0V z8aJ(*&Q0%Ta5K6|ZYCFSK^Jmi7jto!a7mYPX*c9%cEc{?vM%THuHcGp#ErU=E4zxT zy2-BQ>aO9MuI0vE+jU&m_1qk8PB-BOZi<`B&F%i@=5_PA`P~9;LAQ`w*e&7~b&I)` z+{$hhx2jvst?t%vYr3`E+HM`Uu3OKo?>2B7x{ch%ZVR`i+sbY2wsG6K?cDZm2e+f! z$?fcRal5+R-0p4tcdfh5UGHviH@chL&F&U=tGmtJ?(T4Ry1U%n?jCoq zyU*S49&iu3hup*N5%;Kj%suX&a8J6Y+|%wE_pE!)J?~y{FS?i9%kCBTs(a17?%r^3 zxewfj?j!fH`^0_fK69VDFWi^zEBCeg#(nF)bKkok+>h=j_p|%O{px;mf4INg-|ipx zubbLS?WOV3dg=ek;AQkO{R4QQ2mgb3sE7YUc%(;pv={dNEl#|M7xg4h_7pGqAI6P+Idu6<`UOBJ4SHY|3Rr0EPHN2W$Ew8p$*Q@8%_ZoN&y+&SRuZh>pYvHx@ zT6wL#HeOq=o!8#$;C1vmdtJS5UU#pD*VF6e_4WFB{k;L+KyQ#Y*c;*v^@e%Fy%F9> zZ`j#(Cqt3EpIHx;Mj{>CN(HdvmKIE%Fw7OT4AtGHY9mytUpsZ@stC+u`l>c6qzKJ>Fh#pSRyT;2rc1d566t-cj$EcicPSo%Bw5r@b@Y zS?`>8(YxYZ^{#n0yqn%F@3wcxyX)Qa?t2fshu$OavG>G#>OJ$GdoR3~-Yf65_s;w5 zeeu3}-@NbM5AUb<%lqy9@&0Q___St{(pWRKd+z9&+ixT z3;Kop!hR9Is9(ab>{s!t`qljEeht5-U(2uU*YWH6_5AvN1HYl)$Zza7@tgY1{N{cO zzpdZSZ|`^TJNljc&VCoatKZG(BG&`wRSq{vv;|zr3> zU-qx~SN&`Lb^nHc)4%24_V4(2{d@j>|AGI=f8oFMU-_^7H~w4yo&Vnd;D7W#`9J($ z{=ZY^9Lo~R6Dtxc6RQ%d6KfJ{6YCP|6B`m66Pps76I&8n6WbEo6FU++6T1?-6MGVS z6Z;bT69*Cp6NeIq6Gsw96UP$A6DJZU6Q>fV6K4`<6Xz1=6BiN}6PFT~6IT*f6W0>g z6E_k!6Soq#6L%7K6ZaDL6Auy(6OR&)6HgLP6VDRQ6E6}k6R#4l6K@i46Ymo56CV;E z6Q2^F6JHWv6W5gf}BAj2!fO#SCBjSFUS+*4e|x~g91Uppm0zmC>j(CiU%cvl0m7UbWkQJ z8elX4;lmwgGNE)ph?g)XcjaNS_CbF zRzd5aP0%)I7qkyL1RaA;LFb@L&^725bPsw2J%e6B@1Rf6H|Q7i4+aDSgF(UIU`Q}D z7#0i|jnXH<%a94;BWC zg2lm-U}>-{SP`rYRt2krHNo0oU9djb5Nr%K1)GB{!Pa0~uszrj>q)ADek}f5EN`{n-DM=}rQh*dN1xkTakQ6ipOTkl!6f%WMp;JOB znNz|kObVOArSK_2ikK2fiKa*?a*C3orX;6mDSC>LVy0LrSyHm6*eOm*&VQ<;R86Ut zQvH9ueFc{kNfT|QluLJ4TebTbZUZ##?#{5dyE_c-?(XjH?(Pl?EY9NY@M6FBe#6^7 zbM~A)+ftb!H*VaFjMt5)#p}iYiZ_Tij5m%qjW>%okGG6>h? zoP5v}bnf)qqkR(oiQNz9^lvhpgG( z*qW4S8QvrX?km;_FP9LM?OnGJwQwt5m*T@aJp6$pTSQR0!ws_cxmB zhZUbNmL}laOmn6m93;(&SCIVdLT)zSP53S36J63|wT(5|L&9fbQxl3tO9pluZ!ACL zCVZHh@B?^P5H-WQNLh9sUqgy14U}a0zF0t7tj^aj8gl}5qMu^*qkV!QkJnz@R8(ru z6~b%KEi@MwBP&Ti+K9c+X5#*4+i^L?GiqkrOn0$BFysjC_I`9O)qARUg|h59oF6S< zE;6f;M!wNB{+O7kd{R{{r1X=@%F|76>}w(=f$^1Mw*!i6rv=M}xW}XwsZ7Ukc4@M9 zNIwi`H3nJyT3(rv`p6kfz3mx1g#x{yAKu-6!nMO%Q$56ACb!X4)Ek@VUtCe~z1&!J ztIfr_LV0nQ^1^)2zRC68GsU~gQ^IxIzT1+jeiRO~KS)`E$WwfQq;OY+ZBjA0uQW(} zBihte7MHVyr#GmST6)SEV{K{Xh|*Muvp=vG55;kI1$&7r47*cGn8i;K8))sVic9hx z1SQTS4>A6>_B09dOYU#Nw*&SbP{I^@seawv%?A2qS`MhO>l|l)RWfb?gGJck$KU+VXwc2@yqgC z=J*yQ3#!Q!V%jnHm~N;nZcI3OiyR{5xwleP%SmIhze{*cq}vkup$bIH_C@{xli6Ddbt zk*YMEo}mZXpL`W1qOUN_f$ow0(L>=J{^mwCy}vSq|3z+~Jxo1j9n%s0gp%hpUPorq zmFyv|o-kATs-|0?1ruUD64Igt0z-}KmJ-TO{s^6kOQYfNB%7Jp=revyF<9{pPd=ZJV29acHyOTUpA>5OoFYA%Mn->ITZaTJlntC$gEdT()ojE z4O0`=rXU_o(|J~&powrc^OkyC{K^*;yQqDvs{5ILQAh|Bb{n<}Y8PQTO~F@~D$GXa zUo@2TWb+7bq`UGy>4}geY!+PdZS#Cyz1c$CPi`kaTWBXfkQ%AkEUAvn-h|K==xLu0lyE<@u2CBaL#d7r zGliK%SeXXQ6y{&1JQ+_Ta@;2UcR0-NS&|cvb43A@!Sq<3(X3i^e%RG*H@_HxE}Ny{s&b?`%z(X zmQG^7vr{>pFUyaGsW~@=L@BOxGd;A{a~1a8^KbJtb0fznOJ9|dZ2Tj-pLp4O91^+; zAA|){r;+mLJ95sCv!>yy$B0~b${npw>yDXOC4iYaefDE(`9mP$^C9;~< zXKid>b}!deyr;Ido%IY46^-tR3<@6cjB!k{q^N7evou6XU_b7SB~qEpC3R_0b~$U| zu5i!z1!7C3mu0AtIXE-ABDOBlEYQL=NYA1SuZe z`DCtgN$Y7{6+W4iF+!Pa`p3$7XIipDSnm;|OIGn=Uk`}GU|fvA|1D=qw# zOX(ZjA46FZCM2|uy!4H7j}Y{PeaX6oZ7@arq_<;-dw?+q3?l< zo>TVhrbgm>dJ8pTQXxK2lm}DdqOUnYY9P0l-t%`@BCb@wS_iwU1SW+x1bN>IXLCzV zS?8AGT#Oqc)&(XHK27G)I#ePyjES3DFHJPhbiDPH4*U#!_3>_M?_%;xzu6Sh6U}1E zK}0a2u2`XG+1q?KaiN%3@NnPgH@1^l%vRaG-Jd7;!r#?1-%;3-LAk)Upd#K1evu3j z^(NC7Jw$5|LA#lus1ywd?Nr0s&`9wP_dWLRb8m4Jw6v19a%W&v$9gV7+@=Oh8P)IN zRQ@P`RMJd?ZIxYHK(YP8Rnzg%QcV3JbYmakN~jw|tEtRz^am4qgIvZXa3>=3%j61{ z>dqYAXa079&YnijhPp$oAUvR*$yy?^pSi9=NAad;i0`@Cv@#h;Rg8)dNJ*+c$Te3Qn3k-z^n0Wa*M8I|6=#jN!&@Xg4WA6&vh7d?lJdfr(yeI z`Xdh!=CJJ{SG7Y1o=S$oH#O(aaNXF^;5&_luS%M=gsZ4;vA>ru-95t5-m+A_&CMrU z(SJF;A}Pp@6mlq=w3bSuv{x*u+%%VUl=p5Awh3Pge)Ar7meK?2c;P6`fUm-i&jhP1 zgeD^!n#NRRN}}R4Di$`Kw%ss3xHr10IrG|%nY*YJq@Uacau|JL_AwH&;QSyjk=dQ> z2fCG>;B@)BX{3Fr`;)JeznOQH@zt7Yx+w9yNI$|pm1Ht8oj}}>8^o4tNGH0NZez;{ z$CNob?{fHC1)m36`YyRP+4EVf>LT$n*Os=y0W_1j#B_qDMTk^{Lurd?PIe)`Meb#O zZhz`7>%Zfl=iO$sv$Zp?P`lL+=QZwNzm%x<)ORI`Epf^kxi16JYf4n8X_#E0z+fi2~?^4eRBd`6HrJAXX zI$nM$f*h4=NK275I2#^}E;GAe1qZ?t-oi21#2-49;rVn$N$&Nmu z7IdUAO+92yaJTl?4RrI)fDBbi>n|S^`v_%u6Za4G(5GY>5l9w102M^D&|v%w&|6q2 zqcqh^8XdjFKiJ#NIBeZ->Z#lmAMhJFjWgIfWCTRcp-fxA`@JEPu0><AAL9D58CjMa#1|3AO4%f@aD%Ny3z9;(GsLEr>@m5x^||MAxIbhk#b4L)QOhE> zW$TgZ_%d3EPN43%2uUMtac;m!O#xedL*MCeF}JC-qlb53;Jsh+%(w3`e^Ba4P5BC3 z1GX_8MH0yXya^SBUv?CJS3%sCeJ-`JxSg*&75zuNXPx&gca$b#Dz9>5*-EUR%?pRV z3h-_D*X%K3!k?H{Oc|ypQ--^*oUzsL_70W^KJi%XowOceey#=WMZ)9}?t(v~8IUD% zA`f~5zbij{kCX1_Z>sBUeLa`qnCD*aJ;y5ZF?p|0m_Nv^=0<=YIA{|x3lBqE;aQ48 z?rn?W8TgBLkBpRP}g=$ z9?23sk;%%GhLuV~2haqhp^;2xu$w!0w0KIN;+3Lx5|76!1>YFUEhpqXe17&Cagq7h zpp>5^7LroMZTuMSHhF-@h8wruW?kUcKi51Yp*>meI;m zMO8qSR!J;vTJ6Z3MOI<(sQ~cx2-J#5Iv}-fz}U$~^8BwxOm>E~X-LnVFBwxF+rZwaI0Oy+PcMW)ZuY z<~e$LHv}34T6((J2buay=efbOESZKy@Sq(~i8tcbbGz9*^d08FD_F?YHMx>MJ*tG=gR=jdP3sF4rt&#u8&8-V2WDwB-c^yrq6R_4EBzU37_(vcchxj z$Pf4#Y+l-jNMsCth_a&f5Owkcq8!N_z&H3+Y6a^pSA9o+lX#7bOGUoC>S9 zhG~xslE}|gOW9VtGX>Iv$9!Fl>-sM3lKets#pgn8VFOp6_J$q32)2}gNoVSzMADpV zC#RX8*#;QjY)PgaqMdWn`s6&>$QBa!sV6OGtk?8&rn7Plz6a4z0r;lxs0}ZgliUr% z;}UEMBSMCplxKfkZ1}x9(acbp9HFTy4X6X%lMh3FFM04V2&_VQ9sZuJZab&TeVJoPPhP;)?D!*6E4gEZJ1C_i0-E_Yw$UE!uG-x^=FxQ7WHnb1*U%q;II02yXbsI&3+@IvYBp0Hs);FR5;sK6XM5o87#JIT?;B#& z*Y7L4gn}H;&Z9@E$eyLQ$wlzb=IA-t@lqJ>V+Bq!%6F4no5t%Yj#tJzd(hHH`7A7h zyq3oHV@tyG$0);=<^Ey!k`s`t#-mEODH+X{5PxXB9VPwqV_TBPMtXZXTOTUWVrOTA z-ScD^9)}i#R|Wy&&B9;V9pW@~h~=X##W}-y+kOr>fM=>xovBKuo#xFj=V`WSqRPuP z*fSWTs!;Fq=m1fK<4R`BCEF}V5BnKQCpDL}Rmd()Q3O+K^H5VM4_b5Eg1r+Wd~r8tYEbn85_KEL!O+$v;=l=9rJ}rMcOgSm%vnth2|!mf3IeQS?iq4KyQ*+rLg6~&lR z*R;}h-jg1F98(hX2(kW@)Ch5+<;Snn()X3U-kfcgIg~MjGI}f?ukq+|kl3->vNfne-ztO*rm*~Y;|1qED0PBxkHbAgIzKE z6U!V^6ZNB1SQyV%AgiFBD8Xa_j-WG>hWBs{WW_8w(rnW$tIdP-&5lyu?cwpsuQT7z zx+$|ic|xeV>ziepVwZ-Cm6Yk`Cbl_nJeD}@)>qnH=^{U#-9XCVxk$i0NL{uO-%7kB zl~FvVe)=7IPG@V|V)H-BE^!Ngo-4prX5WzscpG|-j^PUAE_UI=80u+SjQ!3}R-fA| z`qapps5#utJKJ8>G)ZdC*JC*;7t#ky zKj;=z7uNp@12zH{^-8QLPg2gww*)J9nD&B*dDgVY_z`}YlAifwM&N#ZyR0qbHtbVC zXD&dp|9Rsa#si2Xt7)5~hVS2CzR+`jMfZ2>Aa$TnjJ1)LXcRLNl?J}7DEEn5%J&iK zh*@FU^DFtSrGpU&e2flDJQI5rxa&M)dL~5a2tX`3nLW&F5DjFa7wCAl0B7eau|H`S zZjF4>ddyoqb}40ih60J50&N@)Z3f?qlto=2(mh1uh{5g$N%1CN8&?npr=rWK3ENuA zZZ6|2?%Nn_7VPCc;Mi+!DCgia(;zN~KBHme6gya$3v#y{(r2L$Uj|s1Rrog1c#l%S z+Rt-5v?5&GCporh9fUii4r&EVMLDRL@1gvpHT_Ii(KX~R>_aWVCTwUCT_ugvXS(YK zCx>f?7W#Ojvn8XP$eqAnfOTBKj6kc%V7|JXUG1Z+l*S8VxlOb>Ezeh18`(B_i$u%` zf#_8KCa25%OZb;0p*#>tuQ3js3dnLW%W;^^27X{E`hL+>gJJ;FZV2%n4XjBh|UYY?p|J}?z@miDy?9`&s@_FE=OS7}?63Q=VZ z+CWMHW7}MKEj;DhLS`9&D$_#Z9Mdt!aNpI?l5jA1&ArarL7B=O!Z(4LXv#DMW;;$B z)57d!;HmP^O}G`Rik_3FLN%?J?XvOI{lzufvDVT<`Oe>@zky#!q5HUHf-c>WC#w$a zm~u?a&PntUH%lgZKG$R4z(7TRXZIQ#*3R*z$Rk*1D?Cka<{Q*bznLoNG*0Cf>u246 zg=WFIqW!^D?%dYG$}tWT2I6UMU}r`^PTNd|(|YVzIDj^U1@4c2;(p1KEt!mxz9xZh zzGQa}d%Ee2SeUI0F}pI?& zYKgqee&!j}yrt+JnnWYy2~trTw2_XL(k$nUPkt$!8u|d1dD2uyTuB}HBJ?EkFe{l1 zI1%`%lhjQuq&|K@6X5f|yH|%k!g;Mef%e8E^D)4fI$p-)13dhPvEUncKTZQA=peJm zGZ3vUW}C?)^<3_5AxG>?WSak->7}@kJ%y9Nj^mJl`a$gO#Pmm7=xT|z6f&y#lR|Q^ zp68LRmUc$C4_%su=seVJogmu%%S=X%fot1A7O};-!u%bfnY_fj#aT0uBib%{CD_ib zTgNDi_?om5&JIYb9`r=!p%pj_X-iI%jD&?A7v&0ykF{csr@r>lE{W?BYJ`8dr|8|d z@x%`7_eDTGhnZ<;3RISt$X=S8eM1}2LD22XPgBI&mJIHcaJ$4}NzPfK{lS{ByP-j3% zbD6#9JAOx0*t<@+B=EbL0ja+w-^FyxDPy)T68P;+Hq5$LX~>tLV^9Fqgud$w@|s=5 z4;Ky#)q$~FO7G&^s3V;$<; z0DCeJ9mf|`lk-3@Q_`1|+(~Jn?}pFvue5}FN@_#3+8(*l31&3-SrW65sgG;09&wkp z!`9Vx)pN`}(pk*vHr!b(6HmLCMk~*RUTjhLjO%zEn@5i6b6m>< zMZ+zF72RgtCsn640WoF;Oef)TY)%j|wibqRkH|Q%(VEOhrj3-WcXt09Tp5`a+U3z~ zLzM~KL#zQ_J;3Zo$ABA~AoLby@{>3(n?^pMLWm)T(AU(_FoJdARA7t1Bj+*GHQ@(j zqQ961WE8!$vO6rve&*Ra3Il= zAzO0GNHiW2s?mpZE?bn_%T?hN_B5y{-jYwkXtTprD$FKtOIQeo3cTqioDW#5+PET0hp6I#Xw(JJGX_RrE9_`lu;NL` zLk7^sY=8O$*Fd9Tk19b7eZ(|H8&Gky7qIz%Y)B!n`Ban->e#J-lX8;lP)Wof+WyBW zL~two15s2G>NEL&e_?pff4ov{__qUIc_E$;hv;1q%||DJ+pdmoFax3X$pT0P!^_J| zU@GE+oTd$PT=9vK?yt0LTjSEV;v)MV84DyIl>pE3|<54SA#jn%thbuE}9=?+x7Vpd>LWCEbGUN zRel`a9iA9m>v9E!h>jSlLH{hH0qmHN~*v3a-tZgjASC^)nRL425HGB|G z%0@$ycfb9V$s`ZtN6|cxdCSAo*#GAxqw#jKmVGUJQ396N_F|qIfkL5ofoVSK?q{E4 z{w1&GuabPIAk>1{ne9v;EU=k)i}+321H4BoS@ z5w8U+u7OpIfzHY&Gz_nxPlTZQ-JD==W%yx6RtK2(^|x!EQQ5)kEtId^GrSvi&I0-O zEK>sqVeH9ox|wKzlHK?x?Pi{DdKD5Z>mRmzGupPmr#B=0P&wd;$}(@5AarfE5@4d)!~8_Kys43Ort_04 zr!m&PTmNb5rIv#}#eQL$@QvTVb!C@Rkrp5~a0{}Y*5@|xb%gU`vNG3{+4`?znUTRb zV=u1n)K_0%sY%~p+AX>QbNg%qpN+r z9jdvwtPAVe>!b@Vk9vYF=7ab+8TvscX@#kh{fujdXM?+>QP|!?FK1q(Wm2oj)kMG0 z9XP%7LVxZRA=rU#GQSu%?#$MfyXxoNokMLR@BB55U6yuAH{lW>mu}=CcHqotAfVwI zklUBzy?~YO2(#pw=H8Bm(5u@XS{k_JDeSzcmoQCI(xsikP3{W43Z3-7z_S(D_xZpL z6owU;!#?9nNIosIe&2q{DCgPj+aBm2Y#W&6xob;OJ8>^iM%eQvOan9oAH>ygN1Tc7 zmWo);8ubIiqkj@VCBgaH;9h4lP2u{Mo$Nu zrncjslY!vPEtxEU`-YPCbO@V~zb(j8E4Y{Dp!`!SZyW4pLwYPv!o^4ve=TR+47rE% zl8TUp0?c!<^KE~V7(i|dvx%MMNBcgjhm&W*q?Z& z1nY!X1y6dgy{_gH|6;%3(a`7W0!(2YsDT>+IzG&P5V|P`HQCfa4Jjc_v6eI(fqJo8 zNiCvtd}Hhz)Ec~noC1$C0cuYNM1s*O7_m7OL;cM6P-g4DLAZV{7!Epo*NjBl64NF* zUHHLz=pgKcOr8whofl&49<&oX$px~VQ>13>mdC7*4Hr%yq7C6@3prp!*UZAPK!ndMP z{)aR{)2xk++}`srrD}rbl96ujAa~%_;{{+bwIQb@pw58#od}~ccoch2ENiN0o9i56 zxSeBc4J=u;E^;MtEpOvG)91JmR2VU)4k(n8@Nsg2_TneYS1rX2#eXt5GN}6Nxxd-F zTRMV@09K9m!hc{tGlLc(8M@P$d?fu@;2D*LrZYO@(2R74)t2AVPP-$w;j6M0$s#l! ztiB;!A@Ul<$Ue3(sO^ra+<(r!+96xlnc65r#82FG_?}nr zzW=NzCsPhBAcweo(h)6Yo#>cttZ^l~>$^reAK0ws17cxnMoEkro_r?s?6x2qK8fqn zV_X|?r0UZ~_qf;=sO15cSeP*HfJK5&qVSJCH9PUKhKV@Fw~o zz`Aw=zMjUGf-Xv4&}bC}zN!pK=10he)>eD2rfP*O*Bvjs@518~GbR^K>>n=Tsj8>Z zmZ%1-nFm(+FjE3sXfrmQ>&@pD^Qm?83dSD)%t-T?FPbqp-`&?%&a^|WA$H^Ev1dsF zehj=;GBXaik7IZr=}CvNtdK=6XqsTF?kehy_};PM{>BtbMaRXwq_D1jG*kzP(7li4LOWdD~WJe2qlr~oy&*dc) zaHt0Qw{c7qySaC=Ri6NQg@=J;n4fblki`u?uVm(XlOo`;nE^NOXcbOj9|udbdC#oBSyRt9Q**?lr z0#^1F7h($nJGFx=B9@o#iX(*GTqZUbok|*!Ds(14Te+r>cOCZM3oZ*h^JvZomZnM> zsHYRqe|DS3$e>F;Kw@kI7PE7Kg{UU9Qvc|0T+f5?m^n5e6!#`L-T^PVhC?(zjsb7{ zlDUBp=uKMCTvV~#5s1uJ_Q7l&+7ftkjb z(ONVD*w-MvPdBn>`Q=JB-R>$C48l~EwD4VDd84OZNzEhPVsk+UU<|PAgU}hU{k-6r z?--62gWop9+SfSaZs{&(bhhWxmuo)x3GZg#;|hRi^D~1O7A;2~@g7=`>&1T;l9eBp z1x9Iq&2W#%$)N1n1l`caRKVw;hDd>@KLIR6lq}?2%1g^8N8_&0XKu}nk$+e|xPn13{3tNYebkyu^$KU`Bm6hi zIuh^*>!DH@L?^Hx*)y!hf^H9&$F1=~Qj#C3_OlK33=P?$zVJWZA&zI}j><7111Pud z<2UGE=$}<#+JO3IB}336R2P``YqW*f*p%05+{S= zpgPn^YhZsc8h~ctU(kggA^$QRu+R4P50{F54(<0=akMuFlp^9c&clu&nQ#zrZ4Ox7 z;^38cnd&$jS5k>ssXI$xTJVDJxB>SHnC>d?r8&SLSlB$kXcYs^(j3TP1)%avB!~Hb z)LpjIo&mv(p~Jp(=PmP3`H|q~TXKg$6EYCKV?A&V1t7MRg9=i_rPz>E*0#$y;V$Va zY~NybsrMvZ`U|w?&6Kff2GavL^fS_QTsbLT$DXG(2~dewKb&m;0K;UM5vY%pKZg^f%k2%b=hu0DWHu zw9Y(j$9lnMKI7`JVnrCx5tETZHdB4aA1@n9_H}Zq`bl*b=(KKeOV|N)C^>~|;4wH4 zsRVp+0_^Q5^bD;df4F7}Z)@)z7HtWWCQ_rCcZd}$eYl)t8hQ&@O@dzeSo9vW(!1F% z@=j|}Z>h+Y1TEou(C!*$c_e#;5$rAC?izw(EDdp}JZKVDAO~6w_`C>2?FWc(9hF~t zMOSH<0xG*~R)<=bW$6VnhBoGsgkIuO>8<=2?#Bzs$Hc$*m-IbZ&${Io)|jt&lu7!O za5#9%`BeJ=8uZBjx@i@lcKrkKdH`vGJE3RHV(`aycn14au55ecyOb~@L$8$n(N`Xi zb&tHAyGS4>po%CPLcoP?2MuzE|5c@>&=Yz|s-hQlj|lt|%;sNU)YHEzUxY&JZaCXf zg|?^nXaRN)?M*U5)pQZ6|EgeFN5~WLyk&yBRVZUL9xmctX*-}QB4{_DFIt3z$tzGp zX2t}MLR$fSWd;`5&Dqt8whHb>zEp30XT;J@c0g_1krXD2$#qhmY{6y76l!Nj0cSc2 zJ!M2t6@SA|>389+`Kr56BsFPyV#n}OcQ(C*{DPYSzb8g|kRRj;DMsIt*Z3yrMkm8> zyTe>36QpnYCHLWAu}JCAHFv7DkUCOa1+_gR)DzoEFxFEj1FBsD-QQHG0&6m1JW45V z*=-wVFJ#?gx~CMAsXEBa*>kyMm~uPa)xkPO9z(AKHj*HRsPM`T>(>B!q;XJ%G=t~U z;q~j!uRpm#@6-|J;_}Po%~NfajqIKt-XESJt_AjF%S>gA(24Cu8ejuW0-T+Vj3Ybg z0dAzwSZbkyl{yFd7DZ+zK1~{wxH01Nr#p$IxqOow2)&rj@Js#R8z11ewu8#}AWQjS z;#TdneVaF5>``oSbV#T_MD`b^t-dKo%YV zao`|2gJrghcvRbN&+pqC{tA=7iiFer4PC`-38tD*i@e7&Y6LhSJM*3SgD=pA#d5!Z|txlzp9`rqsaF#-p=zuhdabayJg%jSPym59ah< zbeJvATsW%r)c*{5kpn zbf7t*o0=0UqRMbmsu4PZu946DKgwc#vC+?W0;YAg_0NFwE}3mPAP+whN^v~Rir)ZQ zjX*xF4K?U*R4oU^qD>(o-Hm=wV!pMtDkQ}piVF`aNP68aomzq-6(G7a#9}Z zn+(9dyNaBfNfaFQ!)GmHDKF_N7UPTU*|}7HE&j5n)kYUl2O^#Sz9Gk zrn68f$p4F&H+UNNQ_5+cY@Y*)^#{Ju{vN)#d!N={I7`Zdt|BY&m`zbmatAaC)w%V2 zZuy1zq$8WRSV)e(j#$Hg1%7+_8SiXY%(;})d>(oL^#Om^0g*Mw4F6o+YTw{Z32%y4H9pprR-27^!4gzjfD8iQ7nfqWKanLgBY)?W?goEG*(9N*1uWi6jX zop?9;fbY?aaJ)RDK!j`DI`#r|W*6{Y5tZc}16U ze+!*ux9Oa92yhcWeO3Gud^bJkjjXo4+61vC^d;9qw6#MeJP@rWPR_;m;7-EIb{3vV zU({#1&DiSc30EGC@D1`TahB8PE2H>%Pfn<(^gcx26=C z=P!^AXe@ZV6QbjBCL{D*MpB=Uri_8wLkw798tJUi2tRf2v|-a-@jV+L1yMtY5`OqA z1Ce_iGY1`_TZJ0RcJl!HK-VYFKi&i0b)NFBF6N*-gDXxlgHQh7KE{7~j75mUGl`wQ zA>}k}vZcG`d1e1KZ((;1$3ycQzp zNeU6d78k2)*KIcM*pM3S5a|)@;>lv$q3HZlG6B3MH&oWypaOWvcu^^wCQUQlvDfnc z9n2bj6WrvxZkVl2)GNYeR-&)50=3mHK#T=}7qbH^-<-V-Cx7QDtt~g~huvTN>A@y} z1KzBz?lzlAkRG$$z~(}*;;ms-z5th9k-IF}%|-1OT#vmaVeg8H*4j?EA2&^zD0LO{375GG>{|99-$g%UOz~%f zX}*jcVEX4 z{W9FT%2;OEpBdQYFcKXLtz9hnlqC59oM?9F>CUI_4sb^W_8xT)a}rxsv#t%+-kT@c z-rG$OI~SU&Xust~!e`dT9pT3SyJogojnA$Z?o4n$0q?!%-e>f3u5-I@^jO8+goRQ*Fbj#&jHs0XKfp2UaQ{KhFa3~wU+hfy{67uZRMVDfm_ZUZlDKr-52_?jt(phDL>73=OwT)wzbCWZdbE5OTvD;nW)76+~U8d!c zu0t>UD$0c7Tu|Dgwly!+=h-X{-u?`3rK@9YZ|ej1N8Qs~YT0F7)c7M@P~ar5*2J3G zxy>kTe0L<-CYtidNkRkuU*VxxS1zn{k=KZ)KuuqlZ38Fx^03c^JL)~XlB0?9GF&Lv z%#mPwq`$DfwP$kv?YL!aVwx=%5UcZjS&p5=%@ccQS8YyDJ^uyY2ls5pVbHZ)<14VM zXnFP(cb}gDNDY&d=skFU1E@G#0MqXO9|IbLXgLLXz~w;2IhAP-71KRnk#_(Ztq;7! zf0g+R<~(rGr_fS7oRp?lX+d@+TMy2WOZ)`3HLXfY<928dc-wz{jy%v`U?5vPL3`k& k#{*EWOoTJ^sYE1cxD+7D{NQ`Tp>}D5?xPZT1G1ZR07W>~7Z4pqA~?$WJV>-No0*DrlWz2@%vzkTTr&6@W*ohxTu z^EB<=rAzY;{~vOyTg_|kZaJ|zLG3$rJ(eq%-RWFHu7q6oa^z0{62OG?1SkPcKoZb| zKte`BfrNqy!2~iPln_pcBxEKON}v+x1SWw^;1aSElms}cX>>S*R@?r7m?>1gF>?P%j@>uBd_@95y@=;-9=?C9d?>geX^?&#_0<>>9` z=@!0>KNu2?ik@1=@{i0?HJ=2>lo)4@0j42=$Pb~?3m*C%kj5k zs$-gCx?_f8rel_4j$^K4o@2gafn%X#kz=uAiDRi_nPa(Qg=3{-m1B)#vtz4cpW~3@ zbdI<)?(FC6?;PM9=p5u6;vDK6<{a)E;T-84;~eW8=N#{x;GF23$8Im2;DGv-4l)Hs=oKUgtjNe&+$_ zLFW|J|P3JA=ZRZ{5 zUFSXLedhz`L+2ysW9Jj+Gv{;X3+GGcE9YzH8|Pc+JLh}n2j@rUC+BD97w1>!H|KZf z59d$kFXwOPA7?ICf-AQxk1NrYIHODpAHP5xcwZygDwaT^5wZXN;^{;EI zYnyAkYp?5o>!9n9>#*yn>xAp1>y+!X>x}EH>zwPn>w@c|>yqoT>x%2D>zeDj>xS#5 z>z3=b>yGQL>z?br>w)W`>yhiR>xt{B>zV7h>xJv3>y_)Z>y7KJ>z(V1>#OUV>$~fx zE4Mq*o$U6wy>7od#hvQT=g#j=cSCO2jkpWA3%Y}D%uTv8-G$wZn{!9qyjyUKZpoeH z&UPzq)or`u?jr6|?$Yk+?%M7K?uPD0?#AvW?q=>5?zZms?vCzG?#}Km?r!cLIp(_; zxEHz?yH~hZx!1VYxi`8ux&Lu*asTVy>fYww?%v`4&%M*V%e~vZ$Gz9R&%NJ$z#(ma(&VAl}!F|zv$$i;<&3)Z{!+pzr+kMA<*L}}@ z-~GV-(EZ5$*!{%))cwr;-2KA+(*4T)+Wp4;*8R@?-u=P-(f!H&)&0%=-TlM;)BVf+ z+x^F#%ah>A?aAXw@+5m49;e6U@p!x*pU3Y>@#OWSdh&Sy59EP8hzIoqJQ<#Xo}dTw z;2y#g@`ODRPo}4kr?7|e&>q$k^JIH;Pf<^CPYF+HPZ>{HPkB!TPc=^sPc2V9PXkXA zPcu&|PkT=XPe)H@PghSr&p^)*&nV9r&os|$&jQb4&qmLGo}HfEo;{wuo_(JEo&%nP zoQLFo->}ao^zh_o(rCfo=cv~o-3ZKo@<_)o?D*Vo;#lV zo(G~ z=Jlp}^Lf*}`MrP_^1@!ki+T%q3wncI%u9Mh-b`;HZ(%RxWxTAH^YUK7D|#ib?2UP| zyo$G^x0JWEw~V)}x16`Uw}Q8#x01KAw~Du_x0<)Qw}!W-x0bh_w}ZE%x0AQCw~M!{ zx0|=Sw}-cVgcd2)oce!_k zca?Xwca3+gcb#{=cY}AM_aE;*?|$zA??LY&?_uu|?@{kD?{V)5?@8||?`iKD?^*9T z?|JV9??vw=?`7{5?=|m7?|1JH?@#Y9?;me2Uv6I>U!pI`m+W)+oW67)>_dF0FW}4Y z74Q}Gk-m^G?2Gs^eT965eYDT?Sw7nr_Z9IK^%e6K_m%LK^p*0J_LcFK^;Pgy^i}dz z_Eqs!^;Pp#_to&#_0{v$_cib}^fmG|_BHV}^)>S~_qFh~^tJM}@wM}{_jT}f^mX=i z@pbie^L6+2@b&cd^7Zlc_4V`h_YLq3^bPV2_6_k3^^Ne2@{RV5@s0OQ@J;kh@=f+l z@%`od+c(uW%{SdQ!#C46%QxFM$2ZqE&o|$}Zv&3Dsx%Xi0j&v)PV z!1u`a*!RTu)c4Hy-1oxw()Y^u+V{ry*7wf$-uJ=xHHYF?{hD9*8-CMo`E7sPU&LS3 zU(8?JU&3F~U&>$FU&de7U(R3NU%_9|U&&wDU&UY5U(H|LU&CM1U&~+HU&mk9U(a9P z-@xC{-^kzC-^Ab4-^}0K-@@P0-^$0V|5E=l|8oBd|4RQV|7!ml z|62b#|9bxh|3?2N|3CiC{w@B0{agLp{M-FI{5$>E{WttK{kQzL{dfF#{rCL${SW*P z{g3>Q{ZIT){m=a`{4f2l{IC6Q{O@zFT~CTP#h2nwNlD3{0;GT`=_ybOl7goYDP&40 zC7hC(QaFW5p;MR?Hib)xrtm33ikKp<`(VQYoc!N|ltVDb-S{r_@NPnNlmIc1oR; zx+(Qi>ZdeFX_(R|rEyA=l%^@oQktia*16sV`Dr?~uP!{=xZ&<{y@SOpaVY0+1WX10(`TKr-L}oPY~(10KK&_y9kU0^|i! zfqXz3kRJd55J(3g00s~M1p+_@Pyi?h1OW`d0RkX_5D*3;KqgQKC=5^l4KM%;a6lB` z0Ra#J36OypkOgD|3ZMcSpaTYA0v2Ecai9oL6etE12TA}Xfl@$epbStJCNIIs;vRu0S`SJJ18@3G@Pb1ATzLK!0EWFc2673A);t0k8;I3@ibb0?UBqzzSd`unJfWtO3>n>wxvZ z24Eww3HS%t3~U2-06T$Qz;0j<1122Z2MtVc-aG6gUPP2TlMdfm6U~;0$mP zxCC4Vt^ikoYru8j25=L&1>6Si0C$0VzS}FcT~U76vJh1{shAIWP+H zpa6=X1j=9x%mTAP1yn%|)IkF@K?}6OB4AOl7+4Z41(pWOfMvmQV0o|tSP`rQRtBqp zRl#atb+86l6RZW+2J3)z!Fpgruo>7KYyq|eTY;^?Heg$@9oQc10CogBft|rFU{|mk z*d6Qv_5^!@y}>?UUvL087#x~o7&sgp0gePmfuq5(;5cwRI02jpP68)`Q^3E#zrm^C zG;lgN16%+u1Q&se!6o2Qa2dE9Tmh~GSAna+HQ+jMJ-7kf2yO!Z0XKtNz+K>Oa1Xc_ z+z0Ll4}b^3L*QZX2zV4c1|A1bfG5FI;A!v-cosYdo(C_0mva09e}jL(TCUnO;1hFm!5NY((9+U%5gdULHfh=N9m8#pQJxc zf0q6{{YCoA^w;Tc(%+`POMjpKA^l_er}QuBU(>&(e^39B{xkho`tS5V>A9c;C^wV` zN`#W2WXJ(IAs6I^JdhXiL4GI&$_u4J`5*v7p#YQt6@UstK?s9zh=52a1cjjplnE7r z3PTh`Lkz@192A9QC(PpB8v8|nk~h5AALp#ji9Xb?0Q8UhW4hC#!j5zt6z6f_PR4^4n3 zLX)7$&=lw|=x=B$G!2>#&46Y?v!L0~9B3{y51J1xfEGfFpvBMNQ4=m+!@`UU-l{y@3l1UNUG2Tp>WunTs>9@q=}U_YD!=Y><@d~h0^9|m9$ zPKO~Fh7lNr18@dh04@jzVH{>*4vxY+EWjcx!7?0!v*2u4fmK+8b=ZJS*n(}iC|m+A z373LP!)4&Ia5=a{HMlxl1Fi|zf@{Nd;JR=Z^jFSs|{2kr~^hX=z$;Gys^csM)) z9tn?vN5f;_vG6!}JUjuO2v341!&BhD;J@Li@HBWjJOiEy&xPl~^Wg>XLU<9p7+wM| zg_pt0;T7;ocon=FUIVX%*TL)I4e&;I6Z{Xn8Quc_3-5$?!Mou-@LqTyydORQAA}FV zhv6geQTP~q96kY`gipbz;WO}A_#Av5z5ri`Z@@R`QX8p*)J5tc^^pchL!=SX7-@nuMVcYakrqfxq!rQ{X^V75x*%PVZb)~e z2htPih4e=HAbpX3NPlDiG7uSr3`T|^Ly=*~aAX8B5*dYzM#dmxk#Wd)WCAh?nT$+9 z{zCpnrXtgj>BvlE7BU-|gUm(dA@h+1$U?iJktfJgxAlt4)|goe=wnu!)d3!@ZDqYTQT92!M= zR6r$EMq_9envE)`ifX8i8mNg{sEx+aB4|;x7+M@HftEx|p{3C>Xj!xzS{|){Rz|C% zHPD)9ZL|(r7p;fZM;o9G(MD)vvoEfeRcZMg!m*LMy$;g|LnvpLfEhB#hkddANWxyFo2AUDbD3B4# zVFm4AJXj=HG*~QHJXj)FGFU2DI#?!HHdroLK3E}GF<2>BIanoFHCQcJJyyqiCpb4aFSszc zJGdvfH@GjjKX@Q`FnB0Id~;_ zHFzy}J$NH{Gk7a_J9sB}H+V02KlmW{F!(6=IQS&^H25s|JoqB`GWaU^I`}5|Hux#{ zIrt^`HTW&~J@_N|Gx#g`JNPG<3roQAV2M}~mW(+tC+5Q3mehkFYF$jY(1Vga^ zmVp((3SvPF!*GniNGybfu?Uul6~YQ*6h>nVCSW2aVKNrOvaoDS!BkAcbj-j^%))Fe zjupX*V#ToHSP85oRthVNRlq7@m9WZK6|5>&4XcjTz-nT(u-aH1tS(j$tB*Cn8e)yG z##j@qDb@^YjsgXY!EgW z8-fkRhGV0!(byPlEH(}sk4?ZPVw14R*c9w9>~Cx;HVvDO&A?`2v#{CN9BeK&51WrI zz!qUEu$9;___u$|a0Y&W(CJB^*e z&SK}V^VkLKB6bP8j9tO5V%M>c(V`+$AKK4G7+FW6V?8}=Rhf&IjOVZX6IST5XwJ8>88#yz+f_u+m#1<#A8;`#72 zJUCKDhPjnzU5}k<7 zL>HnD(U<5)^d|-o1BpSzU}6X{lo&<~Cq@t>iBZI8Vhk~s7)OjJCJ+;eNyKDg3h@^) zm6%1$Cgu=xiFw3)Vga#`SVSx)mJmycWyEq~1+kJ?MXV;)5NnBb#Cl=_v60wBY$o;- z2Z)2jA>uG`gg8nZBaRa%h?B%A;xuuFI7^%(&J!1ii^L`3GI5i*McgLt5O;}t#C_rc z@sM~#JSLtHPl;#5bK(W@l6XbDCf*QliFd?%;sf!K_(c35eiFZk-^3px7nwljCi9Sq zWD=Q7I!Gt!BHg5i^pZZ(Po|K0$y72QnMUR(L9!qjBry^v36dm3WSESQnPefdFiDX# z$&f6`kx`N-1yUqsQYQ`4BrVb=<75%CC|QgwPL?1`lBLMfWErw7S&l4ERv;^qmB`9u z6|yQ>ovcSTA{&!U$fjg7vN_p;Y)Q5vTa#_bwq!f9J=uZmNOmGSlU>NJWOs4^IglJg z4km|^!^q*}2y!GjiX2UjA;*&A$noR^aw0j2oJ>w3|04e;r;^ji8RT4Y9yy;}KrSQ~ zlS{~@9k+;b^y+XZ1eL{Uh{X+di1408sLqa1%qe7!YV?tv?Q$l}*riNyOW`<^m z=7i>jmWS4a)`m8QHiiBPZ4PY>Z3}G=?Fj7+?F;P>9Sj}I@jH|pc7&Z_SJ)l)guP*3 z*dI;_=M4j4Fq|HS!#R(ja7MU57z^WJB20!u;cz%JOoy2;8|K48SPV;HEv$!)uo>?ZMajoYq)#3 zN4R&mPq=S*KzLwyPERjSnc-RCIpMkC zdEo`&Md9V)RpB+^b>a2l4dIR9o#6xFgW*HrbK&#h3*k%Q%i$~GtKn`j*Wq{JkKwQ3@8O@}Jdwmma!$F>8}UU_BB_ylk^GVL z2o!-MNCb@pA{miTBpiuEG9!f|g(FmijxZ4}5{>W?F(O6eNGzg8w1^dnM~X$tM#@L( zMH)w1M><40M|wtjM@B@(N2WxkMHWPsN7h8vM%G0(M)pSbMGi&|MUF&HM$SYoMs7rI zNA5))MP5bTMBYa}MI4##Of)l)nUPr_Gc&VrrjRLSN||P6(ah4B)iRr9w#@92*(cDhDoXK`K#7z@$yAKWqOvK4QYnqnDT6X8i?XTWR0*miRf;N2m7&T~ z<*4#h1*#%diKQeQn22^9J3DuNpMm48eP%WueRBNgY z)s|{UwWm5z9jQ)KXQ~U;mFh-yr+QF5sa{kcYA7{~8cvO%MpC1w(bO1fEH#cAPfegE zQj@63)D-G3>ThZ)HI151&7u}i3#moaVrmJslv+kDr&drasa4c!Y7MoPT1Ty?Hc%U> zP1HZsW@-zymD)}1q4rYysQuId>L7K9I!qm*j#9^{KXN%dO^LUUQw^9H`H6|9rd32Kz*iu zQopF*)E_Droj~WN^W?NWB+<#VgLcv`+D&_CFYTlKbPAo9PR&V^BQ#0}=nT35U62ma z7>&~eP0}GcOh@QUx)5EMrf8aGXqM*aC@s@5I*ZPx62>sadIPG1<|I%COZS;0}2mK$tlio$|ruWc$>3#Hm`Y?TjK1v^> zkJBgUlk{o&41Jb9N1vxJ&==`T^kw=AeU-jOU#D--H|bmSZTb%VfPP3nq94;w=x6kE z`UU-xenr2g-_URAcl3Mu1O1WyM1Q8g&|m3q^mqCP{VS*CB{!3YNo10kWX8cb85iSb zJdBs|F@7d5lgi{{(wO`Vz<^9T12G6wkO?vvgEIs}G9f0+M3_vb5L1|;7@A=imf@Hv z!!rUSG7=**F-B!HMrRDhWGu#J;!F{yC{v6n&XizEGNqW(Oc|yuQ;sRmRA4GHm6&Qw zb*2VWlc~kjX6i6?nR-lprUBECX~Z;UnlMe7W=wOY1=Esg#k6MHFm0K3Onasy(}n5E zbYr?RJ(!+MFQzxshw01oWBM}#n1Re7W-v2^8OjV}hBG6Wk<2J&G&6=7$4q0UGc%Z( z%q(U$Gl!YW%wy&=3z&t>B4#nOgjvcgW0o^3m{rVbW(~8JS;wqrHZU8RP0T;cW@ZcX zFSC`|#%yPHF#j<-nO)3oW)HKM*~jc>4loCqW6W{p1ap!(#hhl&FlU)_%z5SlbCJ2k zTw$&<*O=?f4dy0ui@D9*VeT^bm?z9r<{9&xdBMD7UNNtkH_Th+9rK>~z{LmS!22WjQv=@~ps$ti;M}jLl-RS%uYDoi$jKwOE^tvqjjV zY%#VtTY@dgmSRh@W!SQ8Ikr4ofvw0^Vk@&%*s5$bwmMsbt;N=6>#%j%dTf2R0o#ym z#5QJ|uua)!Y;(2++mda?wr1O~ZP|8gd$t4Hk?q8GX1lQ6*j{XJwh!Bv?Z@_K2e1R# zLF{052s@M=#tvskup`+~>}YljJC+^Cj%O#Z6WK}ZWcF`%4m+2f$1Y$OvWwWo>=Je< zyNq4Vu3%TPtJu}-8g?zaj$O}gU^lXx*v;%Vc00R+{g2(r?qYYdd)U3~K6XEQfIY|_ zVh^)N*rV(*_BeZjJ;|P8PqSy(v+OzcJbRJ7%id$}vk%yZ>?8Iu`-FYUK4YJ=FW8st zEA}<}hJDMvW8bqM*iY9Lfc_46XoIkPC7chjRo+av?6vMYv3^5LcL^IGSTPmgBf6 zCvh?tjw{bq)Z|QCU=Xw&E4Vda`(9V+ym|*_lSGUJ>i~m&$#E@OYSZAj(g92 z;68GnxX;`d?ko3=`_BE~esaIK-`pQAS2Q7-JDMk&7)^>MM;%dT)EiBS=8dLC^F`C5 z`J+G-jHXASC>%wiXfzPbh!%(zj0U4v6ps>7G8&48qmgK#s1%i>*-<5`MzyFOHKJzJ zirUe5v`DmQv{^C(Yeui(fQE@(S^}P(Z$gv(WTL4(dE$<(Us9v(bds4(Y4Xt(LK?<(S6bV(F4(g z(L>S0(Ie5L(PPo$(G$^=(NodW(KFGr(R0!B(F@Uw(M!?G(JRqw(d*G0(VNj*(c95G z(Yw)m(fiQ{(TCAT(Z|sz(WlX8(HGGV(T~wj(a+H@(XY|((I3&D(O=Qu(Ld2#d;*`F z&%-D3NqjQz;GMjS_wwmH#KSzoqkMqR;0y2t`5=$+I8X2-AL7G&gwNy)@r8Mcm-!f< z#b@&huksqN^9FD77H{)$z6f8GFUA+=OYkN6QhaH?EMJZ<&sX3p@|F0?d=Bg{|~=~|Cis&Z{xS~JNW^r#=qoW@vr$e z{9FDV|DONAf8;;$pZPERSN;$jK0q*zKUEtV0>isi)eVg<3HSV^oZHWV9) zjm0KnQ?Z%YTx=n>6kCa{#WrGFv7Ojn>>zd&JBeMyo?qnMjR`S6UU1a#EIf0afUckoF&c{=ZJH~dE$I=fw)jyBrX=0 zh)cy~;&O3?xKdmtt`^sbYsGcqdU1oeN!%g+C+-w?iMz!;;$Cr|xL-UV9uyCWhs7h} zQSq2~Ts$G36i3Q|R>l2lo$B2|^DN!6tq zQcbCrR9mVe)s^Z=^`!<L7KLI!T?SE>c&io77$E zA@!7cNxh{$QeUZ`)L$AXjgm%7W2CXtIBC2zL7FH{k|s-2q`#!UrK!?1X}UB+nkmha zW=nIVxzapozO+nQF0GJON~@&R(i&;4v`$(tZICufo21Rs7U^GUtF%qpF71&1lXgnG zq`lG+>8Nx}Ixd}%PD-bw)6yB~taMH~FI|u>N|&U|(iQ2dbWOT0-H>idx1~GMUFn{5 zUwR-tlpaZsr66!FgdLg}(UP-T|H_}__o%CM%AbpfRNuQ-J(pTxH^he4iC&;gA(xa($))8oa#^{YTwbmqSClKsmE|gO zRk@m6U9KV5lxxYgZe- z@bHmp{m#i{UXMM#e(1a4Zrl6e}E~Vswm&u`w=5WORPtZ6R}gV)3GzLv$1or z^RWxDi?K_w%dso5tFddb>#-ZLo3UH5JF&a5d$Iem2eF5-N3qATC$XooXR+t87qOSI zSFty-x3PDz_puMLkFig&&#^DDZ?W&OAF-dYU$Nh@Ke2?YgshxGSXR5N4p|+uI%Rdv z>XOwpt6Nt0tR7iCvwCIq&gzrZH>+P(|EvL7gR%x^4apjoH9Tu%)~Kw}S!1%sWlhUk znzcM@Mb?I_f3mh@ZOw5#>si*@9CEgqT|CFO?1R~dvJYn;$v&EWEc+H8V-etef{+Q!a_UG)cIeusV$rvB1)!GNGYsP3au~-t8hwG;T1s<6-kkmn3AoS zilx{}Tq&XyRf;Jkl#)s*rLanbN8x~7x+>k29!ejjuhLKHuMAKIDua~4 z$`EC!GE5n+j8H}@qmF@IJXc;QFO^ry8|AC=L;0!vQhqCclw4|pnp;g&lhkC@p*mHU>Q+6f zS4~y(scC9{6;MGnU4>LwMO0J`s2OSjwV)bQF%?${l~hA&SdFNeY9Wq?VQHrRi~*l)S2omb+$T3ovY4M=c^0Uh3X=8 zvARTEsxDKPt1Hx%>MC`Ox>?<#{;O_Nx2rqU|J0r8E_JuMN8PLLQ}?R})Pw3F^{{$G zJ*pm4kE>pntEHkquy2TsrS_f>O=LB`dEFUK2@Ko&(#;|OZAodT79FwRo|;$ z)UWC{^}G5*{i*&^f2)7gTv~#bTg#&*YDrqM=Fps)OLJ=;&8zt|zm}rq)l#*58ma}f z46T4xPz!39hHHdIY9TGGMYK$t5v{0J zOe?OH&`N5hw9;A`t*ll~E3Z}1Dr%Lq%32kzs#Z;_q1DssYYnu9S|hEo)#B9rx@$ePVcH07q&7+$t&P#fYU8x=+5~N) zHc6YTP0{|+{??{y)3oW@3~i=1OPiz3)#hpQwFTNjZIQNETcR!1mTAki71~N|m9|=2 zqpj7}Y3sEO+D2`Y_K&t%+oJueZPj*Y$F&pMN$r$&T05hi)y`?>wF}xs?UHs`yP{py zu4&h`8`@3nmiAbCqCM4~Y0tG6+Dq+~_F8+Rz17}n@3jxwN9~jLS^J`W)xK%pwIA9~ z?U(jDXH+j)cj!*trF(R*?$iBxik??b)${3TdVU?yK|NiEbXZ4pR1fGGdI3GC7t$%6 z))}4EIX$ZLx}b}?q|16t&(gDXMOSrA*L6cTbxV)yW%P1-dA)*OQLm&|)~o1M^=f)` zy@p;>ucg=4>*#g$dU}1mf!aFzFdK7(^A`dEFOK3<=oPt+&rll3Y3 zU;5wrRDGI0U7w-P)Mx3l^||^oeYw6uU!||s*XV2Yb^3aJgT7JUr2nID*0<>Y>Ra_~ z`gVPX{-3^6->o0i59x>XBl=POn0{P8p`X-G>8JHG`dR&)enG#eU(zq@SM;m;HT}AN zL%*rt((mdI^oRN*{jvT;f2u#zpX)F5m-;LHwf;tbtH0CV>mT%w`X~Lf{zd<)f78F~ zKlGpaFFlvxGyF!1k=IBy@)>DHegiN-Bi(=u*gy=_2pAbg0i&Q1GQvj0$TSKWg$>G} z4aQ&%&WIYkAsC_|8L|;GvW#p)F;qh{bi*)A!!jxvm5nM!Rim0w-Kb&IG-?^OjXFkM zqn=UUXkaun8X1j^CPq`Eh0)SzWwbWh7;TOAMhBy#(aGp+bTPUb-Hh%=52L5i%jj+N zG5Q+)jQ+*|W1un07;TI(#v0>{@x}yWqA|&sY)mo!GX6HE8q8^Tq|^qH)Q%Y+Ny}8rO{L#tq}9am%=E+%fJN_l*0-1LL9b z$ari#F`gNpjIYKw1F2&A3^_ENT`r zi<>3Pl4dEhv{}Y1YnC(1n-$E8W+k(-S;eesRx_)cHO!i3Ewi>+$E<7CGwYiT%!Xzo zv$5I4Y-%<$o0~1nmS!unwb{mOXZA9CoBhoJ=0J0hIoKRx4mF3F!_5)qNOP1q+8kq! zHOHCb%?aj2bCNm5oNmrAXPUFjIp$n*o;lxKU@kNlnTyRO=2CN+x!hb~t~6JftIaj$ zT63Mb-rQhrG&h->%`N7?=2ml?x!v4h{%7tqcbU7*J?36>pSj;WU>-CNnTO3I=27#Q zdE7iGjEtT&0FSe^NxAfyl37wAD9o#N9JSmiTTugWVvgNRxmdkQm z9?NH?Td;*#s1>j>tO8a+D`;UBZV?t~g{-g@u`;bfR$+^>Xp6I=7HD@>VsghE>z5W!1LoSaq#>R(-31 z)zE5WHMW{qO|52DbE}2b(rRV3w%SS}efx?4T0o>nibx7Ek$YxT4G zTLY|t)*x%JHN+Zf4YP(@Bdn3uXlsTw)0$pyF!waeOV?XmV+`>g%e0qdZ3$U1Btv5s2DtmD=R>$G*j zx@cXpE?ZZutJXE^x^=_4Y2C7JTX(Fx);;UK^}u>)J+dBKPpqfbGwZqa!g^`FvR+$n zthd%X>%H~C`e=Q!K3iX`uhuu~yY<8RY5lT(TYs!vc7mPT&SNLqNw(8YvD57QHeiEx zx((T|jo7Fiururec0oI6V>WIRHfe|K!Zu~oHe<6kXA8DyOSWvs>?}LmR&3SQY~40& z)3$8ej@w1-qIPk+nqA$lVb`>4*|qIDc3r!kUEgkCH?$ksjqN6OQ@fen+-_mFv^&@x z?M`+VyQ|&J?r!(6d)mG1-gY0muiek?Zx65s+Jo%D_7HohJd+fdTK6}4?z&>anvJcxw?4$N^`=))%zHQ&J@7nk52lhkzk^R_yVn4N?+0X44 z_DlPf{nP$s|F-|wx#9`&-0?i|#CTFXIsU(4YggPI_r$$%U)�iRX)_#q-C3I2ccl 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 literal 0 HcmV?d00001 diff --git a/example-data/06.st b/example-data/06.st new file mode 100644 index 0000000000000000000000000000000000000000..f97ce45f72b4987e3c358e4d9546fde96a2ecb22 GIT binary patch literal 29689 zcmXWiW02%txCZdX#2stGo}ee0*-duVwr$(CZQHhO{nxf_+xG75d+YYE`a@T})t#hr zPLk8_GxP@4xoPLlE!(%N+@)csE>&8#ZF;tDiQ(uCwDbRdF4?Y0(;jC7@z)Kkao0|r znzsADk~4Lh-$1*>YvV<2J9It~2;@9}As7e-qM@Xa5i&zo$PUFq$ss4?hEhW5Lte-a zWeBB(GKMmRGKaE+vWBvSvWIena)xq+a)j=+1?mCyfd)WBpb^j*XaY0^ngPv$7C|i0+WErz!YFAFb$Xv%m8Krvw=ClTwoqBA6Nh^1Qr2{fhE9FU>UF+SOKgA zRspMlHNaY69k3qQ0Bi&{0h@s>z*b-zuoKt~>;d)y`+)tx0pK8T2sjKJ0geL4faAak z;3RMgI1QWu&I0Fv^S}k*5^xo`23!Yj05^eKz-{0Ta2L1-+y@>24}nL(W8ew!6nF+a z2VMX#fmgt5;0^E@_yT+dz5(BXAHYxG7w{YS1N;U40Rb=whQKhG00JNgLLdwxAPQn2 z4iX>S;1^zb}$E+6U+tX2J?V7KYyq|eTY;^?Heg$@9oQc1 z0CogBft|rFU{|mk*d6Qv_5yo@eZan8Kd?VI5F7*!28Vz{!C~NVa0ECK90iUB$ADwO zao~7x0yq(z1WpF0fK$O~;B;^XI1`)$&IRXz^T7q+LU0kd7+eA_1($)#!4=?2a22>3 zTm!BJ*MaN74d6y_6Sx`N0&WGjf!o0y;7;&Aa2L26+ym|f_ksJt1K>gM5O^3o0v-jA zfycoU;7RZlcm_NRo&(Q=7r=|)CGawM1-uGg1FwTOz?0r-FjN#O1{H@&KqaA4 zP-&pb%Z)WouMvJSEw7*9qIw~gnB`}p*~Pws2|iH8UPK120??N zA<$507&IIj0gZ%4L1Uot&;)2AGzppvO@XFD)1c|l3}_}a3z`khf#yQ`pqbP_rRorcapXQ6Y@1?VDl3Azkjfv!T=pzF{L=q7Xvx((fd?n3vV`_KdE zA@m4(3_XFKLeHS*&O_;WltvxINqp?hW^W`@;R;{_p^JAUp^j3=e^a!o%R<@CbM$JPIBSkAcU+ z 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 literal 0 HcmV?d00001 diff --git a/example-data/1589394292.st b/example-data/1589394292.st new file mode 100644 index 0000000000000000000000000000000000000000..c0142a33e9a40cdb5939b772b6f9a7dbc9cf2c25 GIT binary patch literal 17611 zcmeI3xlThd5JfM9urGnIZ+YxtUs{T!prM9>3JFAtNNnN-L?4NgiVxufC}=65Md_dh zet~dZAovB)v1Iw#o*64I9?$qFDOXZ)A&!eD$6KYnv(k3)sPMFVw_d6=$DzM@d{DT2 zl1rujV(;+05I;y8H;?7FYVNsC3bnL;w;LovIraG1V3ZF+q5pFInY+4;@?kvX8rmDr zqtE+e|45DYk>CCkeN=Nh6H)%ve)HRZ!ub7rH5b}_`%l8pNeiIQ`(yw7#2@^J^Mmt~ z_(A+6e;|MQxqp#Al0S2Q;Qqw@k^3|J0Db~Lf}g<;;ivFp_%Zw#ejHdyDDZRmIs6=c z4nK#Vhj{S)`yKc({1|==KZYN}kKxDgWB4)r7=8>th9AR^;m7dfzzRZvAH$E~$N!%n zXEdr24Qoh)8c@Ib)T>x!S3JhtGuIm=`%J8hjw>yFz-WLta=z7O^l{=s?0xl8;Yo|Bi5Uy&#N#k~Cs DE8<{Q literal 0 HcmV?d00001 diff --git a/lib/basic/Dtypes.h b/firmware/lib/basic/Dtypes.h similarity index 100% rename from lib/basic/Dtypes.h rename to firmware/lib/basic/Dtypes.h diff --git a/lib/basic/FilesystemAbstraction.h b/firmware/lib/basic/FilesystemAbstraction.h similarity index 100% rename from lib/basic/FilesystemAbstraction.h rename to firmware/lib/basic/FilesystemAbstraction.h diff --git a/lib/basic/MockDtypes.h b/firmware/lib/basic/MockDtypes.h similarity index 100% rename from lib/basic/MockDtypes.h rename to firmware/lib/basic/MockDtypes.h diff --git a/lib/basic/MockSerial.h b/firmware/lib/basic/MockSerial.h similarity index 100% rename from lib/basic/MockSerial.h rename to firmware/lib/basic/MockSerial.h diff --git a/lib/scale/MockScale.h b/firmware/lib/scale/MockScale.h similarity index 100% rename from lib/scale/MockScale.h rename to firmware/lib/scale/MockScale.h diff --git a/lib/scale/Scale.h b/firmware/lib/scale/Scale.h similarity index 100% rename from lib/scale/Scale.h rename to firmware/lib/scale/Scale.h diff --git a/lib/session/MeasurementSession.h b/firmware/lib/session/MeasurementSession.h similarity index 100% rename from lib/session/MeasurementSession.h rename to firmware/lib/session/MeasurementSession.h diff --git a/lib/session/MockStorage.h b/firmware/lib/session/MockStorage.h similarity index 100% rename from lib/session/MockStorage.h rename to firmware/lib/session/MockStorage.h diff --git a/lib/session/SessionChunk.h b/firmware/lib/session/SessionChunk.h similarity index 100% rename from lib/session/SessionChunk.h rename to firmware/lib/session/SessionChunk.h diff --git a/lib/session/SpiffsStorage.h b/firmware/lib/session/SpiffsStorage.h similarity index 100% rename from lib/session/SpiffsStorage.h rename to firmware/lib/session/SpiffsStorage.h diff --git a/lib/session/StreamingMsgPackEncoder.h b/firmware/lib/session/StreamingMsgPackEncoder.h similarity index 100% rename from lib/session/StreamingMsgPackEncoder.h rename to firmware/lib/session/StreamingMsgPackEncoder.h diff --git a/lib/userdb/UserDB.cpp b/firmware/lib/userdb/UserDB.cpp similarity index 100% rename from lib/userdb/UserDB.cpp rename to firmware/lib/userdb/UserDB.cpp diff --git a/lib/userdb/UserDB.h b/firmware/lib/userdb/UserDB.h similarity index 100% rename from lib/userdb/UserDB.h rename to firmware/lib/userdb/UserDB.h diff --git a/lib/webdav/AsyncWebDav.h b/firmware/lib/webdav/AsyncWebDav.h similarity index 100% rename from lib/webdav/AsyncWebDav.h rename to firmware/lib/webdav/AsyncWebDav.h diff --git a/platformio.ini b/firmware/platformio.ini similarity index 100% rename from platformio.ini rename to firmware/platformio.ini diff --git a/src/ConfigHardware.h b/firmware/src/ConfigHardware.h similarity index 100% rename from src/ConfigHardware.h rename to firmware/src/ConfigHardware.h diff --git a/src/ConfigWifi.h b/firmware/src/ConfigWifi.h similarity index 100% rename from src/ConfigWifi.h rename to firmware/src/ConfigWifi.h diff --git a/src/DeviceInfoLog.h b/firmware/src/DeviceInfoLog.h similarity index 100% rename from src/DeviceInfoLog.h rename to firmware/src/DeviceInfoLog.h diff --git a/src/firmware_main.cpp b/firmware/src/firmware_main.cpp similarity index 100% rename from src/firmware_main.cpp rename to firmware/src/firmware_main.cpp diff --git a/test/test_common/sessiontest.cpp b/firmware/test/test_common/sessiontest.cpp similarity index 100% rename from test/test_common/sessiontest.cpp rename to firmware/test/test_common/sessiontest.cpp diff --git a/hardware/OtherBoards.md b/hardware/OtherBoards.md new file mode 100644 index 0000000..e0d66a5 --- /dev/null +++ b/hardware/OtherBoards.md @@ -0,0 +1,2 @@ + +https://github.com/adafruit/Adafruit-HUZZAH32-ESP32-Feather-PCB.git diff --git a/hardware/box.svg b/hardware/box.svg new file mode 100644 index 0000000..5be82d4 --- /dev/null +++ b/hardware/box.svg @@ -0,0 +1,254 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hardware/data_format.ods b/hardware/data_format.ods new file mode 100644 index 0000000000000000000000000000000000000000..0cf5d8db10f823f64c93143a8bb8ec451a9d8b01 GIT binary patch literal 13589 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 Lbdu?Rzx)3H;h$3T literal 0 HcmV?d00001 diff --git a/hardware/hardware.svg b/hardware/hardware.svg new file mode 100644 index 0000000..2f737f8 --- /dev/null +++ b/hardware/hardware.svg @@ -0,0 +1,235 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + D2 D2 G 3V + + GNDDTSCKVCC E+E-A-A+B-B+ + + diff --git a/hardware/hardware.txt b/hardware/hardware.txt new file mode 100644 index 0000000..8d31ef8 --- /dev/null +++ b/hardware/hardware.txt @@ -0,0 +1,26 @@ +Load Cell 50kg +https://de.aliexpress.com/item/32961462970.html?spm=a2g0o.productlist.0.0.46d91cca2fXbja&algo_pvid=b14c8be3-c372-4971-a7e6-b6ba13e03236&algo_expid=b14c8be3-c372-4971-a7e6-b6ba13e03236-1&btsid=0f841574-ad82-47f9-bbbd-fa1c46b4bba4&ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_52 +$24 + + +Wemos ESP32 with 18650 battery holder, Groesse: 9.1 cm x 3.0 cm, usb at the side +https://de.aliexpress.com/item/32860090110.html?spm=a2g0o.productlist.0.0.67c732eeceGb5S&algo_pvid=4f5823a3-2d47-4afb-95a5-7ba85055f121&algo_expid=4f5823a3-2d47-4afb-95a5-7ba85055f121-4&btsid=ea1860aa-ff90-4cd7-bb92-ade7cfa85eac&ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_52 +$ 5 + + +Akku +https://de.aliexpress.com/item/32908447004.html?spm=a2g0o.productlist.0.0.5f78199bMJJy0k&algo_pvid=b0eb97b9-df11-41ea-bb67-e96c1df7d292&algo_expid=b0eb97b9-df11-41ea-bb67-e96c1df7d292-0&btsid=b910d832-bcde-4807-8a97-edbbcca846df&ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_52 +$ 3 + +Connector +https://de.aliexpress.com/item/32899642702.html?spm=a2g0x.search0302.3.54.34441675lAu97T&ws_ab_test=searchweb0_0,searchweb201602_0_453_454_10618_536_317_537_319_10059_10696_10084_10083_10547_10304_10821_10843_10887_10307_321_10548_322_10065_10068_10103_10884_10820_10302,searchweb201603_0,ppcSwitch_0&algo_pvid=d5cf53ae-9cc8-45b9-ab1c-c77f38b7c706&algo_expid=d5cf53ae-9cc8-45b9-ab1c-c77f38b7c706-6 +$1.5 + +HX711 +https://de.aliexpress.com/item/32878181081.html?spm=a2g0o.productlist.0.0.19202f024UQZQP&algo_pvid=b4f3e85e-9190-4b8d-9b9e-0100fa84037e&algo_expid=b4f3e85e-9190-4b8d-9b9e-0100fa84037e-1&btsid=ae27657b-596a-43fa-8cc8-bc9cba1d5bcf&ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_52 +$1 + + +Case +https://www.banggood.com/ABS-Plastic-Electronic-Enclosure-Project-Box-Black-103x64x40mm-p-951179.html?rmmds=buy&cur_warehouse=CN +$4-10 diff --git a/python-mock/PeakDetectionAnalysis.ipynb b/python-mock/PeakDetectionAnalysis.ipynb new file mode 100644 index 0000000..0cfcc12 --- /dev/null +++ b/python-mock/PeakDetectionAnalysis.ipynb @@ -0,0 +1,990 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib notebook\n", + "from measurement_session import *\n", + "from peak_detection import *\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Peak Detection Algorithm Comparison" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'sessionStartTime': 1589401905,\n", + " 'startIndex': 0,\n", + " 'values': array([15, 15, 15, ..., 18, 17, 16], dtype=int16)}" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session_file = '/home/martin/Downloads/1589401905 (1).st'\n", + "session = load_session_from_file(session_file)\n", + "#session = prune_overflown_session(session)\n", + "#session = prune(session, 10, 50)\n", + "session" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "#values[8000:8005]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('