From b3c05128fa4cb1425f13cdb395a016b537fb70d9 Mon Sep 17 00:00:00 2001 From: JulioV Date: Mon, 10 May 2021 15:48:14 -0400 Subject: [PATCH] Update docs with contributing guide --- .github/ISSUE_TEMPLATE/bug_report.md | 32 +++---- .github/ISSUE_TEMPLATE/feature_request.md | 20 ----- docs/change-log.md | 2 + docs/contributing.md | 56 ++++++++++++ docs/developers/remote-support.md | 5 +- docs/features/add-new-features.md | 8 +- docs/img/logos/cmu.png | Bin 0 -> 20857 bytes docs/img/logos/dbdp.png | Bin 0 -> 6023 bytes docs/img/logos/helsinki.jpg | Bin 0 -> 4514 bytes docs/img/logos/manchester.png | Bin 0 -> 80689 bytes docs/img/logos/monash.jpg | Bin 0 -> 33408 bytes docs/img/logos/oulu.png | Bin 0 -> 12503 bytes docs/img/logos/penn.png | Bin 0 -> 17623 bytes docs/img/logos/pitt.png | Bin 0 -> 23109 bytes docs/img/logos/uw.jpg | Bin 0 -> 5095 bytes docs/img/logos/virginia.jpg | Bin 0 -> 17135 bytes docs/index.md | 59 ++++++++++-- docs/setup/configuration.md | 104 +++++++++++----------- docs/setup/overview.md | 56 ++++++------ docs/stylesheets/extra.css | 18 ++++ mkdocs.yml | 9 +- 21 files changed, 228 insertions(+), 141 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 docs/contributing.md create mode 100644 docs/img/logos/cmu.png create mode 100644 docs/img/logos/dbdp.png create mode 100644 docs/img/logos/helsinki.jpg create mode 100644 docs/img/logos/manchester.png create mode 100644 docs/img/logos/monash.jpg create mode 100644 docs/img/logos/oulu.png create mode 100644 docs/img/logos/penn.png create mode 100644 docs/img/logos/pitt.png create mode 100644 docs/img/logos/uw.jpg create mode 100644 docs/img/logos/virginia.jpg diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 59e9e709..2a0dd35f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,28 +7,16 @@ assignees: '' --- -**Describe the bug** -A clear and concise description of what the bug is. +This form is only for bug reports. For questions, feature requests, or feedback use our [Github discussions](https://github.com/carissalow/rapids/discussions) -**To Reproduce** -Steps to reproduce the behavior: -1. Enable ... feature provider -2. Setup ... sensor parameters -3. Run RAPIDS -4. etc ... +Please make sure to: -**Expected behavior** -A clear and concise description of what you expected to happen. +* [ ] Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data. +* [ ] Provide a clear and succinct description of the problem (expected behavior vs actual behavior). +* [ ] Attach your `config.yaml`, time segments file, and time zones file if appropriate. +* [ ] Attach test data if possible, and any screenshots or extra resources that will help us debug the problem. +* [ ] Share the commit you are running: `git rev-parse --short HEAD` +* [ ] Share your OS version (e.g. Windows 10) +* [ ] Share the device/sensor your are processing (e.g. phone accelerometer) -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Please complete the following information:** - - OS: [e.g. MacOS] - - RAPIDS current commit, paste the output of `git rev-parse --short HEAD` - - A link to your `config.yaml` - - Type of mobile data you are dealing with (Android/iOS) - - -**Additional context** -Add any other context about the problem here. + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index bbcbbe7d..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/docs/change-log.md b/docs/change-log.md index c452e600..1b3375dc 100644 --- a/docs/change-log.md +++ b/docs/change-log.md @@ -4,6 +4,8 @@ - Sleep summary and intraday features are more consistent. - Add wake and bedtime features for sleep summary data. - Fix bugs with sleep PRICE features. +- Update home page +- Add contributing guide ## v1.1.1 - Fix length of periodic segments on days with DLS - Fix crash when scraping data for an app that does not exist diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100644 index 00000000..8d180163 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,56 @@ +# Contributing + +Thank you for taking the time to contribute! + +All changes, small or big, are welcome, and regardless of who you are, we are always happy to work together to make your contribution as strong as possible. We follow the [Covenant Code of Conduct](../code_of_conduct), so we ask you to uphold it. Be kind to everyone in the community, and please report unacceptable behavior to moshiresearch@gmail.com. + +## Questions, Feature Requests, and Discussions + +Post any questions, feature requests, or discussions in our [GitHub Discussions tab](https://github.com/carissalow/rapids/discussions). + +## Bug Reports + +Report any bugs in our [GithHub issue tracker](https://github.com/carissalow/rapids/issues) keeping in mind to: + +- Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data. +- Provide a clear and succinct description of the problem (expected behavior vs. actual behavior). +- Attach your `config.yaml`, time segments file, and time zones file if appropriate. +- Attach test data if possible and any screenshots or extra resources that will help us debug the problem. +- Share the commit you are running: `git rev-parse --short HEAD` +- Share your OS version (e.g., Windows 10) +- Share the device/sensor you are processing (e.g., phone accelerometer) + +## Documentation Contributions + +If you want to fix a typo or any other minor changes, you can edit the file online by clicking on the pencil icon at the top right of any page and opening a pull request using [Github's website](https://docs.github.com/en/github/managing-files-in-a-repository/editing-files-in-your-repository) + +If your changes are more complex, clone RAPIDS' repository, setup the dev environment for our documentation with this [tutorial](../developers/documentation), and submit any changes on a new *feature branch* following our [git flow](../developers/git-flow). + +## Code Contributions + +!!! hint "Hints for any code changes" + - To submit any new code, use a new *feature branch* following our [git flow](../developers/git-flow). + - If you neeed a new Python or R package in RAPIDS' virtual environments, follow this [tutorial](../developers/virtual-environments/) + - If you need to change the `config.yaml` you will need to update its validation schema with this [tutorial](../developers/validation-schema-config/) + +### New Data Streams + +*New data containers.* If you want to process data from a device RAPIDS supports ([see this table](../datastreams/data-streams-introduction/)) but it's stored in a database engine or file type we don't support yet, [implement a new data stream container and format](../datastreams/add-new-data-streams/). You can copy and paste the `format.yaml` of one of the other streams of the device you are targeting. + +*New sensing apps.* If you want to add support for new smartphone sensing apps like Beiwe, [implement a new data stream container and format](../datastreams/add-new-data-streams/). + +*New wearable devices.* If you want to add support for a new wearable, open a [Github discussion](https://github.com/carissalow/rapids/discussions), so we can add the necessary initial configuration files and code. + +### New Behavioral Features + +If you want to add new [behavioral features](../features/feature-introduction/) for mobile sensors RAPIDS already supports, follow this [tutorial](../features/add-new-features/). A sensor is supported if it has a configuration section in `config.yaml`. + +If you want to add new [behavioral features](../features/feature-introduction/) for mobile sensors RAPIDS does not support yet, open a [Github discussion](https://github.com/carissalow/rapids/discussions), so we can add the necessary initial configuration files and code. + +### New Tests + +If you want to add new tests for existent behavioral features, follow this [tutorial](../developers/testing). + +### New Visualizations + +Open a [Github discussion](https://github.com/carissalow/rapids/discussions), so we can add the necessary initial configuration files and code. \ No newline at end of file diff --git a/docs/developers/remote-support.md b/docs/developers/remote-support.md index b4717cbc..6826c8e1 100644 --- a/docs/developers/remote-support.md +++ b/docs/developers/remote-support.md @@ -3,12 +3,13 @@ We use the Live Share extension of Visual Studio Code to debug bugs when sharing data or database credentials is not possible. 1. Install [Visual Studio Code](https://code.visualstudio.com/) -2. Open you RAPIDS root folder in a new VSCode window -3. Open a new Terminal `Terminal > New terminal` +2. Open your RAPIDS root folder in a new VSCode window +3. Open a new terminal in Visual Studio Code `Terminal > New terminal` 4. Install the [Live Share extension pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack) 5. Press ++ctrl+p++ or ++cmd+p++ and run this command: ```bash >live share: start collaboration session ``` + 6. Follow the instructions and share the session link you receive diff --git a/docs/features/add-new-features.md b/docs/features/add-new-features.md index 67e669ff..53f00574 100644 --- a/docs/features/add-new-features.md +++ b/docs/features/add-new-features.md @@ -90,7 +90,7 @@ In this step, you need to add your provider configuration section under the rele |`[COMPUTE]`| Flag to activate/deactivate your provider |`[FEATURES]`| List of features your provider supports. Your provider code should only return the features on this list |`[MY_PARAMTER]`| An arbitrary parameter that our example provider `VEGA` needs. This can be a boolean, integer, float, string, or an array of any of such types. -|`[SRC_SCRIPT]`| The relative path from RAPIDS' root folder to an script that computes the features for this provider. It can be implemented in R or Python. +|`[SRC_SCRIPT]`| The relative path from RAPIDS' root folder to a script that computes the features for this provider. It can be implemented in R or Python. ### Create a feature provider script @@ -121,8 +121,8 @@ Every feature script (`main.[py|R]`) needs a `[providername]_features` function |---|---| |`sensor_data_files`| Path to the CSV file containing the data of a single participant. This data has been cleaned and preprocessed. Your function will be automatically called for each participant in your study (in the `[PIDS]` array in `config.yaml`) |`time_segment`| The label of the time segment that should be processed. -|`provider`| The parameters you configured for your provider in `config.yaml` will be available in this variable as a dictionary in Python or a list in R. In our example this dictionary contains `{MY_PARAMETER:"a_string"}` -|`filter_data_by_segment`| Python only. A function that you will use to filter your data. In R this function is already available in the environment. +|`provider`| The parameters you configured for your provider in `config.yaml` will be available in this variable as a dictionary in Python or a list in R. In our example, this dictionary contains `{MY_PARAMETER:"a_string"}` +|`filter_data_by_segment`| Python only. A function that you will use to filter your data. In R, this function is already available in the environment. |`*args`| Python only. Not used for now |`**kwargs`| Python only. Not used for now @@ -180,4 +180,4 @@ The next step is to implement the code that computes your behavioral features in ## New Features for Non-Existing Sensors -If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the `"Existing Sensors"` list above), [contact us](../../team) or request it on [Slack](http://awareframework.com:3000/) and we can add the necessary code so you can follow the instructions above. \ No newline at end of file +If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the `"Existing Sensors"` list above), [open a new discussion](https://github.com/carissalow/rapids/discussions) in Github and we can add the necessary code so you can follow the instructions above. \ No newline at end of file diff --git a/docs/img/logos/cmu.png b/docs/img/logos/cmu.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee764010d76873b4c707dc88ba3b16235adf29b GIT binary patch literal 20857 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 U1Lma>kfn%tx%+_#{d8T literal 0 HcmV?d00001 diff --git a/docs/img/logos/dbdp.png b/docs/img/logos/dbdp.png new file mode 100644 index 0000000000000000000000000000000000000000..facf5fca2bbc6f6e0add25e2dbd773d94d84d3b8 GIT binary patch literal 6023 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 I5P3ZOUsn`6;Q#;t literal 0 HcmV?d00001 diff --git a/docs/img/logos/manchester.png b/docs/img/logos/manchester.png new file mode 100644 index 0000000000000000000000000000000000000000..5600585e136d808e96b3bb0db5122652cac2a09c GIT binary patch literal 80689 zcmV)zK#{+RP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00A&uNklBw{W<43KhHTYg{xa#1{Vng1_K}vklq7GpZxdoE}L&IPFM4NvsYv1Z6c5T#+?r_ zmy|59*3o*AkS&vsKnOUWYEOa^oWx|x7c?{VY)YTmdPAAO%u2<6;7ZBJ0f8N0SbQUo zA>|BP5(W^!5yib@u&`vNpuM@=l9gamNg}fB&N+CQP|^S-K!;M;{;@$J#~UesZ}xM+ z4O~}a*P*gXBA>*)Q4oN}=~r<1{1s3tt7bERWl|+&m&_UrAS|?mSaEL@VPOh!uO#MV z?_k9!0F0k_5!e3yM+C{y@)ydg7E4j;X(WMQFzy++mMh;*0gF3j;r_N4g@u;aYfYjx zQUp5gvWa0~3ai#X2mlyqZEzyAI`obT1`~<1=Pn^U`kYFPGO6nDTeGczp{)fBZF^KQ z1p~#6mr>k!IaQwUR=Z{lFx>RyAI6%k1q^K~;Pn$PDAtmEMS|IYz+`LJ0e2pH765SJ z>_riokE~ygMavgr>EHnNZ~s_$34?KX2F*fre3`|WWvhHOt| zr&_jIB`i!~@v?gn_eP!3flEb<2Oho;0C0HZ6H6&0n#m{0Qs18XNo4O#h_En~Kkq6` zzka*wGzH|;8kXIOtgr)CJoKlT!A6J2*RRCWV^8G}7=kd@-gQUt^=Cik z#E=8Fb9JjrK#@h=@2~J=f8f>yQZ08q-x{(Og+~VR7J>c_%k5cw{R=zw5ZN9g6P(G; zBpM@GzuKu(i|>L#g6ZMuKiq;Un-h1EJaO>IdxD1Bof6_{Ny+ha*@BN$-7Q&#oaQf? z7wEcEb`9)hd=|t;9;NNRft=yPBs`v=*1`oIMCzp(=ZLSyf` zB$rH=^YGa<+`_vDo&*@le+9U|E0=|wU>N{K_w-3E#GHa9m6IE?x5?9aM6(T?vku>Z z5wL94Ra~6C!(qRj?j{!Trk+l^zguFhl@TvyEwbRS>Ja` z;&x}`G=|!t6rQY0wtPoA?`_MVsO<16l)qgbSMKf~!VAVA*? z?M}BFA&A0?`W_q0a}TJDuk+OPqMaSS6MHi|wU7;`J_aRq5D5Up%(!)Vdzo9;O#@PI zH2;@d)f>&?jqFixM0}%rPfSMLo6#Zg4>kf!Oh!D{n0h1PiOGoTjp#)7ER~TP*Bi}T z(7IZ?-e?~6XENHCelPzQ(9)|oxAN>+qsc*k1fwDV>>jI7zYf4KGND$jYzBZ@wL-OO zIscg5XMib|++1%of40Vs_++V7%j2ow5rDM@Ox7}YEtzJt4C$D1y%BBleXCW=G_M~Z zwQ6N1L%mk5kg)=xR;`c^^@+)dcaK%bj4Rt<+Ct3K8xg1LMB0+cJkp?$u8TAvwQ6N; zy7!Dt7PdUhh!Po_za;x5#?98h#WL#p7XSeN|LmJxh*eb-$N%dxQADLRPSJ=AVJ3nz zQd5RQ5D`QV623X*KoW(O^Ko^Yi6R`LAa%Und-YPG558zkgbmbNkoq8F5C(eRgsdKB zqNYd+qmPHx!#R7Oz1Ld%6h-)=av$b=>~r?oYwx|*|F;fpU)$hRiVhWjgn)>J0>TC$ zl&~8r+$R<3SV0y=0U0NzFC~Dx6o*KiDb96R6g`y<*a{j{##)X#q3$giFQs^;)Gju7 zpERCS{=$fv!(E1z62>aH)@aktYf>na4AdcW4ynwie8m!*Voi>W5Z%tYC9SE%!Ec(*!R*wXec1(6Im?1-olY*@!3x}yX3!$2Y2F74)ZEi&8%B2bS zCo?W1m7v8wN{L)uX5roIy0CoR?NJ6U8BT?wv>YBj$2$vh&|Qp00mO?JbzmEYe&(3W z(b13bpNs{T%g zHG9@vQR+VcoI82R5V%PZo=TxA$F8&D?%N^*h5O9wC!fvGq9^@@VMg*}zLP{)y6i@y z#H#52z?MD?Z0W^@{1=Y@0|N_q_=$x~M9vTHIdZr_5^hBE`jt#oL)M;$=LF`$-><)^ z13NdoWh(p?O4JM;*meR8&Jkt2a<|WXh2`tI(A~F8L1qR=B@r;=hIrP`9dGBq3!Wpp zbDz(3Budz;v}>!F}g5}pFQIrJW0`fv!c zP!C3lLW<{xTjOt6IyI0NCA#1K2q7i_{ok(08K{lGvBq|8r=$4FZB`laOVhAz{xv2zx5I*~)%bR_8 zu<6&2k-?^a`tJHH7>vC~4&&k%w?uWXDY`GGrFyc{LuBk{Crqhw1sK`}5*i1o)qur% zAjkBc{$FtM+|3?vj|?`Wr#$ZfHv{kNU0=d*6PPwg{5mv9f|@G!Iudk}A-HdcJf3(1rkko?MmK-n&Xl20$J@+lbIl`kNL0ht?F_rmnP zxE@Fg4pym^{W%Mj_`bprRH`RHEq+MKMa9AzzL;G#M#ge#$&OkEKnd5E+dnCDTT~+R z)sFNkp*K`QT#1|3iZ~1Xu==Q;hfj zg54Iw{jZSyUw8;31&@i!4K!VAY?UzFfo<857&H3L9{u}H^Ihdt0t&20&^|S&8LZE) zO->nRye9sR{%Hu#N2hBIcHZWAu;a3!ft_)uYxUWH*=|jFhr4ECe8<<*wfgLIt^SjP z@c>RI`7hX48%*xnK{?Z93CAaQ?eJ@95_S_|YPwdRavdW=BZtP9C&sI{8gQKAkzoKC zfp@SuX#G?!ux^TtR&?GfTgV~!ro8P_a&y|Zzs^MAyAUSEtB(}#Q^Y7)dxe4g3}EJ~ z_S?6=&R6sK*6%L>00960>|I@KTt^lDj&Vq(1QaA_CHfG;k03No9EG&1%Yz*RRN|+W zc(92_PZwi-*`HxA!r<;b8~DiT04 zgQe%s;x%@?pJ5@L6c<}QOpb(V5OE1bl0Y)rB_$o^j%Zsv%NRa*0zCQ+1;!&|TZ-|j z$!%UJi@-r19v(Qtl+-+wJF`OgASDL(BWQ1Svd$3K;y9lH;*+09ofO(Crk7)6`bAH- zQ843ONHsfS5~fYH%r(?(w3lHfkrLJF$)p6uq@rS2VHB}Kp4IUTtd#9FexiMqNI(Sg z7uztKkgXOWF$n71R-_78BP@nV!En++m*%2#kx) zkI!M%`_J1#LCBfX%{fL`C5tsWb8;bboYUdhvhAZ@`^~v#{0Ts3?3kPLXiG0xZ~rmtwpJN13rFg1Gu#~!~Uh3L3z!|mSa zO&uLXu`dzqxMl6z*f+Wd#~$BhOTQ8ZG!qnP&YWDpmd}06n^bd8{RxGqUc~f#q5xyY6Q1`MI=vn+1d-*_ z2ZQPXN1<;*0V(*CxND$8EndeqY^|(eux1?if^8HjC&dcHW=oiI5Q%V% zgL39%X1Ph@ul?g+_}%e8V*K>Z09NZSwSRkI(cX7@eh}+Fzb;xM4*%CQ31S>$Eu%vb zBO=fJ@U_uauDb4BsnFNNs`s78^wB{~&zA6!^;eZVNqRSiMN6;;e1_`O-n!}LAZ&1R zH`(@ap!FR){;qrpXE#)yzSUx4)k$(sKXY=yp5Z<$V=S(5oH_Yd_<=0j#`&rgj3>YU zti6VY8+T2n*fEJ>$0T;vzY>UGks46CTOcc-c8Y|RnzkL(kU3531hen$EA1A(V(w;e zJ%#=z?*8hzMCHT6%^e7qWxcMiFz&hOI zSTP;9OBb(VdVWwS&H0{UIu$ZW2wmdA1(Ak(H-WHXb-Sa|M#@d0d_KGWt($I65yAPN z(djsZoiks2e}2?>J9!xQ+9A zp>G0f*Iz|t|AXGgfBD3oM1RacDUX)KbrQUod@Au0VXcnA-dO#ZB2xbp~z7+u+Y%# za>_X+0r7aVbH7}GNP(ft%_>%jYxAv))%}bj*5wjH<0{NhW?$$?Q4~Y(XG}TBp-Kr{ zsdy7=?gq6OB9&dJ|CN;tem->@E-${<5>bcgq+5;>&?ZE^vjt~JG!+@OeGYpaRO1%$;lil_*O zH3hvx3|)noa_hb%^0Io_&RgNL#5Xxd64}sJ_S|=$bux?n6Df};>x0>H3jGt- zSl+tw9))=73$wNqy+|sd<{(+kz&_&!iKub$t3jw4_tIE0u zMK&n}3?K^X#GC`OA(j0BFMUr+VG)XhXU@Ol3yWU+3jNJQfiPVaj4>pu0%K~nWQSsE zcF;C4Nx>tU^N1r)B*GrhL@)BdR=!CHPw;^a%@%>WweQf-WKE<-u0}~jZln?0QurPJ z)+JF`MR{p7L?A|E(z#W6OhZ~ywk0oSh>w#V$?02$t{zE|8dHp(rRkZr`B}R#>qr9q zC24XbRvt|-J#;N~B9?R|Lnsn^lm%&c`W{RFz%o~8 z`B>su=1wgi`391(d(2P6{s5}><~uqx`criYF53TtCsrMAb~}CPyipEYtes=EMsIbz zv17?Tk2iPxFFAPWHCzAX=U=*!^V@w*(PpbsF7*T#Y%p_)2p1~lAUafGz;| zL8V+eoc3jgh@Lb5r|l>K+yIcuqBgpj(IO%c(Q(P}l5Gbt~Sgp~W$4ncmHCpMp-LZ3JoAfq@e><;@jMW-zw0@fV=dtJ_eIFUC)w`8@W#`&) zXpES#3C4%VYK`95vq?UeJx90gW3@&nGyB|2qWo`3NN3Yrb-Wo-WY({fE{p55YqI*y zFTA-r-k4#=j@`pUL)G!-1%Nx<70meQm2&A+);6p1++fCu-NQqtg1D&@DS5S0F42vy zg0XTQGxqNuE{!<-9Wnhi+|M|-6ae^?GUjstjspmJuBVg{I}Gq(r9AY3;8}^4IJj>U zp#8gtWt%GH(%ic~iqQvc`S5&@cdKE9Gi>?LkN>cDtuc00*ZEtcX`9-GjN5TaNebrC zSOgpFfJh)H9YcVq4b&7=jIo3fm`5{a?l2xRRB>wR7CaBn_27YE8waO~!Iq$Qc(jcG zkAE~&!j7;5trIn1sDy>Uk!c7B+ElAQ&TH?zzIE=H5>=|^SeEYG$2t4C*4pdweL3zD zYE=s>EM~4@=6VNp8*`v5zxbE~(}{`Oa+kZ15P+XhRIgOj1u*9ocy&&9Mh>kGx*;oo z7gGH<8K<2cKXsF-+Csl+iY95v)_4`07er43fAxa_q=`AUaN5g6XY_Y|h~l6V#wvEhWcZ_#oV4-b(^R9-eJj?7f@ zPYhabycNXc;ellMNtjW_)^Y07R~om4*?Bf36($3uyqQAOM>s7Cn?1tob$KcguaIX* z1?eueLuMro$nN#PG{wjO22TgG1e3fkO(ko%gn5M|Pnn7(St!ej-?qo1t_~|C494-m zJ&!`F$&6yQi+8MMOGc?iRfmcfBL2r8YygRVW*PLF7~ejiT^)5K|eU z)D}}P)B>2#ZE}=a!a#U<2NqumM$LHAJ+&=Z9+^0WWvOk(tjjjgX;704oGv4wh&d7g zveZ?EsY@`V(3*Tw1{E#<0kw%$6oY#b3r~}@EgVd>NsY>vEX=u#8`a`4<*EZ&9;ap$ zrJ7zTin?I8aPsz)m>O-&>i3LLE6Oz@n23x+VYL|IRBx!kzNjZDwi!}N`9C1A+)YF#U8VC z-Nt_okRz8h@Pq?>*QD{Y9pUd%d)kwcON-I~$q?lut z20@8^q)7#e72l!Ak5hn!jwfTdk2Boh0B~@%Z~H09aTdm}Wr^ky;Ivhv(Vh;01x8aM zRXjLIB|1D6XJIXh=9%tRzgnkOY)0EuNQ;vH>%Y~G%WnN5IzRJC{ABOHN31%2$%XeS z_Ijw}P36^qaPZ57pHhfLmClpxLo97iJbPyOS;j!7#=DaGU@BUM>hpFF^E3Q=&F*EG zF>@LK1o$3e#8C*HD0*6h9!GiFZ5!F_Mwfg2vL zj`LboJbmf9vv6%v;9L|wL2@*poTTspbr-W1;Tfj=)2!g6ae9YQ;?!~8}JBOb- z<143>eGHMHHUtn_h!#0>HB?f$&CC7{_2+}V-*fyE0-K3ltlA?9+kE!A^Yl-aSR;4t zTtdyx!7IO8zAhFV+vQJ>{J?1I@t1ng(K!v>bH^fFR|RnJ*+Ygl?;p2h3@Z=Z@OW&4 z1RP*L*p`u;?aSL834R40TzeiK%n^bfTw5Rmt#_)DQ>i4T@KI}A2oE=&#@5DD*xGm+ z5BEHYt&OMhjh0;ppM8xUc|&w4>m21ycr8#4IW=q5(39t!fP0rbnon2{J?|92amDv| zMVDgr&g)B@t>6EH-!UG+uq{WAWJo-J_E#4J3Ai3JUNf3O=f1NSKYQipjt@8cZJ`Fe5~HHqTN_VR!w|&+tK(~>VnVJ~!bvOj z&<>xN{@<8>{J&seSyg7ae9;*0ShE{|lo%kzIE`=LhK*~_D@Wpw7M(_q4>lUf>6_|K zgX-9Cp(JffEo>M+qUJD*T8gR5S6rByn^-e(QzX7SPwOy-S%F3rzW4RfD}b7++CpdE zy=y78+l#-CJK;BT+vm|(WU3nX8wGig#HPagWU6&}2{f@E^7j{9aX9+^Ro4!dY;t>^_&r>`IO9VuU@+4@3cI}{ z3(vo9ZY22@4=lj*+g>VD3M~0R_4n$X*8>1v-1TFU|G_B)+EbU24T{B0{fkQ;!adL2 zgyT<`hM&LrJ_Nw|i_bDUclH-f#`8IYt>$*b19v=U7kpmXpp2*N!54b zRex^8e`PcH=}0G>C!)a_NQ?4?f0pu11t|j zU(ORbB;-elbPuHvUu?r`^}A2LxE&{|y}9`Jqh+ z6ffcwj74B9XHuHy$rW?=+{S$gbZHv97vs!}!u<^DT}_C(@{&$$+*hiG@t1mV|I){j zNML*{yyuylu8)MHIjMM%U)jKnp)CPEnO}jfV%b6W4u-zl)R7My-`r z0=araq1dp!2e%Yd$1OsRHvNE)gXQ)K$QG1)Yr|#V9Y_*Mf|DtyvBq>DLUxb9qtRM* z(L=$caK?fHXLV<(k}SlD=Bfigexgx)?vhij4K6_vw1~lLEiLsczY{ovEY{ihOSfZ2 z=d?d6WK6}o)jwec79~2M!hg^-G)I(>)%+c%JUf#9@bLMYjhaG#r zMeA|fz+Rj=e_LdlEWc(fn!*D7KQv*MUo+Mcn7FteSv$c2e@m%h9hbjx+^^xPXay$g6;1S!Q3gRz~I8jqaPPo2n0>NZLTR>IsA;o1In{Ft4`lBdML_xfl>Y1BoG+f(WB zHpO|0Yne38DD(E1r72^2I!)YRXk5(tRt`#88hT#M3`~*_tCrz3?H=`enkklIrlpBd z8N4MTqQwkzJ^Os^=1utOqSwp&&pziD7~jz-gLUI2^0M84MKF&cqoxUnw0=lA3#ia= zqs=%ge$i&F=roB%%+WDTT~Uf-%p<J_E~c#vd;nE&Dt7>^ISU%~(bavS>X3;H(RenmEda?LEm1 zh)J)ohwfz7q~iXSD4WbPc3Hey3JJn0%6LL?N^Hnk1X#tKUmBU_O$rgoLPKGoj4o*j zgQe+Jx&auZq}r%n6(6!zI%uR8m-1clr=3xWwh-_PAs{kZz@kbbRqh0;d}fFx+Q}>{d zS{;n-({Z(PajP_mh^NUVnPr+<@N5~fG9Je$Rn%eugyLSPI8|^cYQW~I#zkL+%2OJl z%35Ez(Z_c*FutRK58i7-_oDSCA2;m#x>XCxNuPhg5t@>e5;;@$Oijm_7qlxULUZgp zRMq_{#Ro?l_ET$FF;$McWmc=I(uuX9wMy@Y(Mn#dU~69DN_QmolTH6m@2;eBJ_@fX zQGS{&l(!E5A;z~i0$U|M*^TdL;IT(mmY;3d-V+cE!Pte~5xo**H4x|ytEE~Dg2ZX4 znGK?pf`gMLrxU0|?}lDEYv@(UIZCmBVO5j}Jd|RO?-hi*Gxbeq%Oj{nFcu!#Kc7b;7I<@aj*lz@8^g1R&^Jvl}n(zYezz?8U8jzJS{X_5upr zHn7h!YLm1^O_IHAMII}ilEf&rV8KDc5QrXQ4li{aM~UN0SarXU0Fe+Eja^h;N}O$x z)wZz%Nz4vQnQz2#0@|1b$2Cb8%|jbj&X9c=^hsIX}P<-m-57065m-yQabIQ-JzVVf$ zN>-WeYutKb>U2S6uo_=Z+*+l?$^r9s9pO(ZSyHBl)Q}2|Lv?uKtgBhwfFOdbEE`f2 zlDWY>C9Iw58-?%lKzcinsoG?x}#mu$deTh`<1 z8(%@!r5h-P#p7FI7Hp+ei@xNvMO+-D2K4Mx&%q(xbH-GOqnq=u@Elb}UEzHWrz~5^ zGrhls*fr|LIT%it6|v%g`U^a;ey-dUz$d2v62E)Whj{(qbdv4P$AZO!Sb)+CfrvZS z4A)Fs(vXzJ+i@UR!K>TFNv^Rwm9aPQuyyR#7AM3Gr>F}wCoEm$pe|)!BwMHpB(h74 z%(CphAH3I&*AGr_5&DbUs6|JnyHNnKm(2u{Z#4YAk3b{um;l zCMB9e^1hS|6T{>Ifr8_?C_?QUp}!XsgAqqUA(|KgoTIZ4#l<2+pxzfm-cc5WOzT(F z!HX2fCb6q3h2+vgf}q9&A=IPFgKc$`qKqyt?O1H;icxi%_(Fv;UxKDS3JD{ohdlvm z8OUu)W9l=h!$h-zK^xvknMb+vQjJst4NdS+qzy*I-Y-Rr9oNR;+U)s4VBuGU`0mx& z-F!-dyC#H(N^rh7$D>lfOw?k9uy(PXCQkl{Pw>i98x$P)E;a1!a)xmV*w`x!h@S~gscUM1OkGn8Wa|1=Es)`y>MJBS1U@>+AS3ac3_0SjhSacn?nfnPOxidr zAESB6`}26eKi)ol9QQlcd$fndcAPHj*e+p&Ta#$g$MI}?&t5@|9sd!oLk^`_Q|RsW zo#A!OuKvD|8two3I<_^|-s(mvJ7q2zb;HT_RWr$ew~_ zb9mi)Rn_?bCRVPfxYtU)w~^*ih;#rbSt0Y?uob}4iq$bYf@Xi0Y?!KANjDKmm?7=v zsCJs(-QU-{y12K)bJwMc^+O}g#>y4F>x+K&_w~xqNb?YK{=)$3q(TU*x8nmUn*WmEzyp*w$^&{!$&Y_XfrGvwxT|*S0fPy8RRE_de=h(Yp&kSMkMSocsG4 z?}THraz*d{R1$}CB0)7@U_UMdU!|0$&O>yF2{xwMz$P2i&3IF$J|z&xs#swcZNoqvnC@=LTQmMmRyG~s5giuHFRIg zCZT*(71L&R1MD_PI)@M6Ws08fq>y`e##_Hj9zND+#ER&E_ ztrt_h@!xt*+mBT(ga%b;#05KfMy?J5vDhoE8W>NuY=!F5;O`lM(HPuMnNbNq=3A8@ z5e0cjcwBcxjwPnD@68KUQvSXDSiTj*{>JGWYkl{%2UM3Q=U|3af~#NPA!iAl^^8)t<>lOFrmPnsp)Th{SSNJ z9%WU1rTJ~F7z0KNgNz9s0gY|bk$_^%(l#rFE@MW6qGm1dwE&eou#j6+6=+(dN?lR8 zb-A~oV#e_SjPIT(m^RZ%7%A*#bWCG}U_v@RfW%kSNTpRIt?4~~+;i?dzu*4$xka2# zcRF?cNTll4x##>I`?vSE_x?UFeS7Rko)5>QV!7;!&ybW?b5j2{uA1MgapskUUj4B*2KkYv!z*wLKgZgUg6~wNB+ItH z1db}bzXyjYxq)r&*NFK#e$9}iI4;f<(?ZUay5fSV`mkk{w7jBukGhOW?upwg#LLWt zJeOshkbtKp`qDDYvE2Ld$%dmYaX`NDs)2zNIc&~hD5F`@x6vCz+8W%>k4WI#IvL*SK zh>;{NU5?4Aq7l=qEK!C?OD(?`JHwP1Czvx|-7!Nh-##Lv2*N=JI^S%Rl(4wL@kG@$ zma_FGWIeb-DpBa|Si^Pq-Vn#@*QgLP_3h!6osy;%F@tDVfbMobx zDIo`=-Lc~SJLbI@7WWotKEpH#b7Hd-a>|6m!gb7*bX{1^I-gC2b5aRW2oqS|6rpUK zwGAm^7|u9frUt}d=?N*(iJ5y+5YI`BRCK)+lqLk??ZtorbL& zJd6b398XO!VL%>(vXEGl^JO$XXF2|0w*ixNk1eB5UtyV)B}YsuHez*&`K%XWLpRA~ zBaEqR*-7EW!%AaNB|_{%*%9oaAm)kG*@WuIpjf8o80Ub&SuEzn!j;fNQR6Ro|IOY~ zjQoK(-gM(cle%~l$Z;8m14=O}P_F}q(Mt(Eht*%U1kaqYoKu8YX=9IyGTwi~7;7RQ zV2v8+LU&ICt1M*O#8WP&qtTvn7M%esQF7dK90Nf@Db4a!;TaaglukV3<%4aOw?=Zd zqV+T^PkKBCN?LQp%t;>5swCvM^{{|z{e-d+-b~aFVP_rKX1qp9Un%#o0}1@3I)2&n%0njKxtqhM6Ji; zb4WiZZq6+Z4pVH*gqcaUL?cX+`9ey)buoU6O&-8CJRV~@XE~K@7AD?^v2zO|6DeTi zf}n{f5b-#rDMoQ@Eg_aA=x%H!IM>_ z^!+V0nlYf+ycA3&>q5jBRHerT<6^fo=PYx|d~PnSrWAaRSL-kgB5|Y*;2LJ#7`SBF z-_>z;y}UFJJ;e7>f{;aW>J>bwkFhSp#ZKZ-i@A$JNnWh3uNYb^-`60D8{%sZ$BPHV zpeym=gc@=W8V|>m^PEImRuxtd0TidE0+@C}#JNT47HU8iWWg+!yI_%)=H`D` z%q)%}vXoucjhDd3631Y28ZRa9!8WBhMgm~Ojq0YInQ`WI5_$Ryv1FAkoZ`uQM5;^H zv5&d?xNecs%m6ap0ee>Kt0=)%Y&uzJTGH}$vGK4VwmNBEF>tm`czfB*teyqqf)2^H z{n?3eI|Ua>jSVH6n$PMhlAkC`+YSKW2K``s^XeT}9PJw3^jF8q`$TAE&| zE_VDL0$~3S?~k_sF#~`0i9>3i-@f@p?E1+oc;n@N#?dE?#gtQy2=4d&H9x}N_G}7% zHm7%*`5c|YN1nr~!gooAu6mtx;lzgTlU`5XbrFs^?(W#N9DET&bfpSByb9U(mOb7{ zIx#W=Ov+qy(}kg&dHh}8nDnJmp$Zhczmag316*sS zzKAECyc=^{yQ+eI4GHrb5&rvOZJwyHw`Nbea3anR#&QKfc}`)Td)}(^FyZ(y8Ab2< zn8$}`{FyjSeqH}%XdX43u61v3bK|K*DY^a@O-3au^DKEn%IpEg9&=djbf33;8UWye ztEOVtPhP=`$w}QvfG7KX(>gwjj~{gi?zy2K7hE-!;@j+`k2zYe@4u`znWH{&FuK-O zH{)Js_AdW*=B`ApmRbm3QX~3I>x>Ej!Oo{& zrgbxLiWRa(?3;7G9T@wpU&g2VzcT8k$E9#|;+zp_WSk|Z^m!m zdY9(q)lI{Pi=uVnioiqATn#q{K1!sytxml`nrskoS)EXaDNN!C*>qxR60U7KH~9TE zziYwG~t+gtT z9C$^^GuPE`)opiS4Tvm_-#T#xHSGCKh;emL^?x6^Wpizv1HioH(-P0c7W;{TF+f9~ z82uWiG-qy!`mGRqEEgoTnEJPGzKa*PzKVNptZ_r3^w`&OdLctF?4ZL&;PT~X;hr1& z@$2UX@bZser>4fF=pq>Q*t7ovQ%*esYx^EcJfP}dZn$MLe)-I=YxhV`d0yoZrwGFd zZJpSQg(u!z`}yU|&qCj}EAYV&?@!DTYe?hYmo*-LzxJp2?VIoB7C#Be<+Fn7)L7;% zO>tTU7;Ar{(lRmW(9GJR@j;vsP?~Pf{=DU^moWNcj{*Sxd+!iQz^8)GCcT-Yo^4M z=v$A{Dyt$D%8jcukSS(TNA)JYsgUe~;PJb+;mJpy%f#YWM2Ij`AFOVkpKX2#kKO%a zIxoQh(`#4jX|>uRk5XeCF4922~0Pzv09SCI&zKn`_paa(d4_R;Mj4mH^E|+T%JFrVS&} zVr4ZhX@+1SevIjA5n$xo(v}u&VG~9I@e2j68Hi&4^@yrFd#nBhxqM z+lckw(retrk0xG;n##)bd(#vArgQIdq*<#2nuZ`F4;_v(JN^m}_iW1XX}n;ede=v8 z*^CXhY{s=4F2l$}hu83tY8K=lOj?^2l?eoA%>4{GHR5N`2=lPTaB3=0S)-P%;pxlC zdhN^QwVwk4)BynKSbCL@J(&D{HGEL1j@Pet9e|EYOX#`19RSes`98FqUj5hu_byH( z?tR%?ey%ebI*an~UM}Q<_j%)`hFoAULYCnj4mxav34j0Pt@kK$8F#wd9vb984vHol zgbIn-c&jp;mic(WUUSOr0T_6F|7A76F*^zA!c7fKsG(fHj{fxFc?HFEec@>zF~Xy$Wz^Hb7nG__S{x zH5_v)U&N|fI^k*;UQT9C*-A(U*Xt|7+bs{M~(Hqdr~IjV{b(5`Yps<<)Deo8Ae-X>D*QgyBeh zxPRclCMrMx*I~}`UdpkMQK=*ges3Z(;oOLd2>_~q<3{Dpxb=2WVL zouKI*-gxde0pNSX`nlFv3hU9aMmA-CN`Ld>)>qLwu@^tv{8Dgw%v*Jyi@ChG_0`}f zr_VZ$)L;rMJ&~HaNFgk1v0JPSnX;_eVH^_qhfDkf8VsN0_PoUNs3aAtlpt!?_7P~E zQ9++4&!4l1XYCj57Wtp$4k{_t;NXYe0Vf z!(Y@br`mzb8j%aGoQm0%Gx2AiI3!84#*d#8dFXK5e)ae8&oA#m zOi{qPbF=MjkKerwFFgB35c=45Y#!r_@pZ&h{PoTGpGjy?y(Sz##-voUKx>>WS-I^B z?0;Yr{4OOWr;3%G@7uNjVy{j%Y~e@aRjd13lU3)7mS(uC0`3Z+tE&fkl3EWV& zXuf{hZMC}}f9jFA=f?ipsmq5=@v9wgu;dm1#fcY8#Obq+!|vDiV9P^4kF#%tb3`bA z=Z)vwNdPboWbx#pV`!xQP4g$N2-3b@0I5kB)-`=iJ+t%pyi8^%_Jzbrph~cCzPIK{ zytMW8+^%BDq06&99_n+(x0FGJ$0~-P^PQ3A$My`w<1ugfG`#Ta8@TD5yXa>Gz(suj5i>ChPrMml zUO63qas0;u;OMD!|740|;=(E+12Q3brue$yqI{NP2VtUue+ll`sZ$a&IxAt{m>!xOt>AI%84x>M|5l~?M%wAeJnEv;{qkfC)`xXU{ zvGE73c;Jqs!abt(P;4-LPJ_9g-0(bBFL)RVVAPQZW5KOoGUHmGqZepNJ}U%FA9U1_ z2cs*~8j)QikFVQ?*Ps0jfiO7cDVHD9+Ye|9Lx(N;&Tqt zrL7;8SF7wb!?AG!ygC7O-q-UvyxgTYf)v$j%%oAZpT4y9wT6|~w!VeY?O9{XLpjZr z&|q>CoDxx-v|;9LG^UqC&Zr3f%h>FhH~Z?-#eePFUDThR8i6KsTj2 zb*B9JIGL2CG_W!oYFa0pb_r333zQ#3vC;7PX2Va#jP3D=@M1nO+%df3m=yztnGGQB zQxQXNtg1C&->)rVoHLS>o`ne(mF$!3J)6QjFawBSz(~tJ4a({j7sRVes2dlvX~dQk zrq$xu%(PP&1}V#JsZOD}&6zV<2OgI<%4IN)3&u8Y8MYKY(I5-P82Pi$>cL5ql*%@U zyXfqgfzEq9wjVuqFP7Z27_Boaq#3Y&_puZ9;A?Gn;lP7_8jR@=|Ib|9x$>BX9_CjU z|FB9Uka^(mu3Lz|yYFy-vhl$@d-iZxdH;f1^BfENSlrn#vz--`X{fL5DZ_YrA+df57ZmclZQ)vbac~!|>=oNwM*5tWh!eL!%CA<8 zjZUzMRHL*nUnojU0pc2sT784&NN?D#${6_p3F&;TzPQSj)qB_yJ0Cj>D~>;vwBy@2 zEByPkNp1ejUR?F%uh2!j@VX5+;;4sk=j~VHiS?suD`)iBcd%sHm3Z~V&*9pI=R$A- z6p8~z{0`lfJ8k;v^5XH7?ehWOE+VM6x9HFhqHMINQ=L8egSLBHO6sgk&Zvn%zo6adSYoKj8cUV43Pj7E>$ zi-lL;iPjmtxOU;W!3^(xdp|6m`{gQ^NU|eVro1E>MzYvE_T68=w{AS%c;wu}6TmU{ zOe0C0`VV#bV$~sdgz1%qk$;O#7w-{PdO(IMhnfvxm~W6*ov1lFBFNRKQ1eM4F_t<2 zEc+fFGO2TF3T0&%VnoCwub3r{PXJF_RRgOb&Pf%XXrNj%*|=ET`hyf~gb5A8!Yi-J zKy#57TMq42PG;Yxn)!&#r*O9K^#A(qFVw;X23}7(d3UW$J^iK+4gXgxp8I8oWGS;< z6*;(0^|N2P{+lJb9@z^oW)_l3Q4)Kr!6`t(0|h7k^<@7L+}nyf3Zdf%jm;T7U4B&r+@L{nvys81 zON1Yox!pIFzIm`f^Jq1gU;(=k^boa3IbMeQ?CT)?V!D)*`JjT6y0B zbX;1(-nWmczrT6r%ppBx-lDrS$AeIpGt=vQgz0Exnz1k-Rmv^NlDIZy zX9LX`D}gJ&+(<-R+*Bp&uK~@X<s96jYt%wKdh=FaZ| z>h)jvhmD^h<083GwnEW!$3g%=$0f_L_wD_H(VBYJOZdXHhilDw!6=d@zuK6l&Xa&1 z!b-cx*<5+`L|zF4N7Q_x?Qq^SN~9S_7U=d+bWmFm`A#D-!p*aX~MyI(T_x9)*0$Y8;#W(p&D9GmAs#m^M{JD?I|A%(|K z*Qj;|1`D8UWF))_$Ks!XKrq|9&b!>&gvMUhynH(=Jac?BF}@=#4xW~ zbDoQ(!eJ_S{7^`tX(cLJ($tPnj3K{JD^G$UuOLSo=BCwg>1}7NI4-j|3z!$iDaB-X z=0uz#xklBfFj*uY#>yL0Uu)Jc>~qFILs27Ea3)TVhgXosPs(u4`jYC=tYJv+o`x+Q zmz1z~&wjb@)^~rQ_OI3%y)@l;z=+?W=k|6y|MRo3{F+ngxTl@EgS5=`@0{7|RP1=g zh63cIbs5Kq3^J4E9aJ3q;3P$wd*=`bX{x7oY~hK=J1X8ONi8Q=mQ&}1RHw+t0);}z zb@*0Os&mU1wHL;DtdzW}FUA@)rvQx=f2otQ=CuMUKps6JB8=W(6(S@x3Agx4XoI0p zMpkbQ5ECoM^PCJpYCPBmO2?_#^^ID~K9ZJntzjMSq38B?JaF&gjE7>6jY%i(u4aau z0<-kzsbS0VqY8z$c|8tHt&#=0y#h2C;2ad+$(K!0iY?k2RB;c{>@_T`{g5c(NO-GM zO^CzXRf$B0EOCt$HcA%&8tB*gr#Tnd;mKQGlVTg3q`{UHlP(2`F9lo$PaHKgak5kr zq`M{4@d}c()*x*w@aUhs#JA+2_Kg%&#h5H*|FZw z>ZYDisY#0-J>{)hdUpQI-h`FRme`M-um^qjEx^`I%{joKx|tTMn;idK2;QNt97CJ~ z0hJVwyRo?tnMCPV|2sSgJQh2*W6=cXq;~7)g@I!h+favrTbydcx;hzC)M9|GxSoeq zs&B;a;G{xnSi|8iaZ`buGs95l!Bav9K+EWC8jgpPYBFq0m|AH~uVv@-#hb{<6_GGy z$$hfJxn$Xu!SuAwtl*g+9fZ~y6*M3EZie+7czR2fz3Z6CcLM_Sf4?;dA!?yW@{gX| z+uc=KyE`%y~UToaPWT&CGEnhH0^r)oa{qBp3z4)~?QTA&1h^YlZ{KB(Vc& zFu0&looLMo>GM(w9y1zT91S^&joIfK#wDATWFc7h2TbzJI+(nQm5C$!bq|uG%NkbN zsVb$fQB$}jK*WF`gyX?Fg!LK*i5Sk*qS>rA`_;#F{h;F&PsWOvnjZWFWLOfnj_etGqg3yDx(Q z8c?e7%$Z=klA?CbhgK(Fic`zd&=-y{5cXQOb&EZIh?uBTYy=<*CHx6RR5M@&l>Na^ zi?x)*b$-uioI*pcyC();QK$Du40{ud;j{W6;+n58<;=2647*{vAH4d8h*^sjw1%lC z&|uLiiL4cQ4DDXJTLKgZgH(5mL%kT-RD#Qd`pe!?B)c3MAFq6b4)DzoL1NJEmWkO)m z6Z2LAsb)_w0V_FE)87-9FNx#wf}R-SRw>5bgpyOPz83wGcYaQSd;`c~pzijz3Ub-` z5dtTABmiOru$Z%^E-vK#Td4c*hssJMpyJP}Q!ixE4t0Hv6#S;)iNXm$G`IUn%{q)$ zk6IAjvXI%NfD)0p?3)bJ$YmEZD4B;5AqC;g?dC3^{hT`Bkr)f@lc-pL)X%tNo?Gp` zB`_OG7j)bYAp~U?H}xht_yF8fp2eQE-wE@yyedL_x*!ro1U>5+5*EkJnv;oxG3**? zp;<3T1I|{-4K_f$J}*tG#Bcz4^+#M_UMZOrV|f=R)oo9ISiv0QWeKTj7Kg+rUWlPeymYX$h!OP2@NDjlc)^s+q?xY$v z);I)-jGy=$iFagbWYgjBkhAHt7**_%a1vaht%=+mK*T!d?_gn_KJe>u*3#Hb9Qyu?w|FB z)I4tlKIBvS4_!mo&^2`V*RY`>7`le8p=-#13|&Ll&^2U0hOVJ&==$Tintq=@DwZk= z0G;gx85+W&D}Sw&TL7u)hN>zSb+pN!#=BP((2bq#ZBzfVzGG8r4C+@Z5}mfaBp9yZ z-)-UtYp{x?a`L&~|2dOMe_!|bLtM*x%CkkV3Xou2ils^mp#6YM?QAb>{C74Uy8&q) z>_M}vr`#nXOA|xWwy2}6(rBLE?|lE;UU_{de^4X#Z#G6vY;udGvWm#Y&i2C8{K5GH zO@k_AP_Hj|zgeX}7O!eiN84%utNB>TA9Q~Fc|)`8+h{JWKR?OgfUK&d&C>@zy&K0J<8$8bD?N zm^~PmRtC8Wnej-xl7Xs6CC$mE+XWzbR;=!9FU-lDf+|u!)$%NOu~eB2=&I^H+U68X z<#AB#NUU8qfQ8VlfY;TidsWKhF+T;Z5R@DI!nFL^5 z)~F|**~ZTH!qj4^(w}U;=H&0n#Zq~o?oG-Z06RP*IT$amSgPz+)zm0-12PuS*@@vE zSk%!rvREol2Bch{H^s7^a)0{YdG362-}HTSSx;H{+K@7UEuHO!b;VK{fD`}(2Bg?i zP75|Ffc!>PCyB`PWL=N!Y;PNgLyc786+k5!%R(}ib2{4#tNHzFbDfSwcV~N{E4wD+ zX8|->d*Nq`J>_Nyb|=590QwLh$@&RBt<>8FWD9_Yl5ab^v%T%u>bk_N>|R~gQ|?da zBwa(rQl(i{cUNB{{XVP$FphY(X>mw)oboV`MuoH0flE%p^y;d9k&Ls8Gu%MQ=9*J1 zRkT>DXrq&VFrGz@p=lPu_|EpiPW!Bw4PZ{Rhy#zLSSmZusH>9DZcedOnGDEN5VUo+ z7qTbk_;kXHrAmL@0MrVcCX;txJ2=<8?jqM0MGbRk>uhh^7|lZk(898wa(Pil{lqSo zD*eg5#^;BJ!i@c#Wj*C)0K1E&vL??wHM{5*bu`8Rs^bR$=uO_O0-&(0r(DQ}G8uz@ zY~Eql=^RSQd+a6)yoJm|Tk?IYQg5$Vsx$+-8v=7kX4g?VKO)jnHCTlKvi6n&=t}N8 z4k9}MR65%WZFc=sv{)+d=xlErUo2I+lH1Se>qlhC2Nt^Qg&ql^2w#qErs4i##z(DoXmCR=Zs=BeUhoSGw3rRNP&cS`2 zF32`jEf-6bayq$*QN*H-bTGA?{O#GrQswM$gDU{p$cpR9B7~}r6p`Iod`eX-*-hUl zj1wN7wG~U{f`}A~rAl{adtsnhs*Fptkyl3s79p;ZdL1;J8Yq@3?>9^>C#USXWL(;c zrAnbXuGLVcSgMqhcg&7iHy}%krOIsMC6p@T0Q3VoE;8Ee5qA3FvqZ*S(Ai!XKZp zMX)he3`nAdV+Rq!XoK)g_r(hsNN%<>A5&=*OAaok7s0xH`CD$7BsM;kVyV0o&;o$A zWj*D!$=_x?Dj7(=r+aYVrR3oo1Mvrz^^~=`p|YNo?6a}0hDh~OSXFl;z;D+vLeS?2MjaOR-cLDT1}hX}d8wwd3%oQUxD%>59>}tua!WE#8_C>PGK<+cDRqu2#zme>i->nFi4)+V86 z8s4-qFS3f^Rm#OuWp@&uY)SEu%zMmEfbMi(u1n@)OSo6a=nOT}{pnrFX|@~C%74uC z=g{@Xat)QT|LGWwamoKbl^BoiA>%Q0z2EEqvG=V3dX?3=&l-n|BtW8oHdvEzQIJ~@ zqz9xmLE~LX#Fj|(kZ?JzGJ%;)CP5E06JmvAGR(vTY6+O+2nekh0$OV$&a?;Rv1FDn(OsZ&-MS8W5_Ga-Ko?WT=3>0*7)4E*)OAh+y_fn1 zK(VlKjIwYMVgR8Mh8NRepNfQel{V30Z7{7?Yb^7}n^*w|+ne&{WT4Hj*jnJv#O9SB z=V)AFV72a@M2dG(Bj*)0G>e6mnGm;~XD!ta#tR{S0K3GjWMSMhF3NmxSzzC~hik-J zRVb^9Wd}}STRwTQnY7_ks)wn=YOl>EFjH(tF#cA8$tr$}k^12R$5Agcb%HiRL9?os zmj>cDR@{iU{II&OO2*0dqnEImmF-o+1Ti%j7Y+W;#@~xJTX`VR#tXJL43bgvLX&=j zN)09zw<3TwSMs$on(3MnBZ%Z@PUHQw_(dpgZ{X6&+=@o(P(rjmH5tNcH<3uE6v36b zeyUX?cRkWn>3#w8Js9;?rf%is0n=$CH6oE#g0I@pOI-&TrQVA5&A2~kB@R>ZMyvm7 zr7fAaV%1{RJ%7}QTx&eVhC!@uYQ95}?`s&fRua0k!OS^-Ki=eWeY?1AI|8*e)`|*d zfv4kuaNG1=vhNZJVwi*|1ENf?Djm^0C%A zYHlNLg4VZ*f@vbnH9+mOk)#cjxYiP>c@<}N>@(Z0vCSmuKve4MMRt87%v6~jG(56x zJd}C_Ld30kk5{&ks&mVCPD|Cn#cV4Qv^KToTFA(={w{verM_1(_f%c04X@tHJS=a{ zs_nPM*tEK_lw0_#btRBhZYvQz`pyZU~-Y|dpANGpL*3>ajND@CnWQAl!gr)xlngDp>KqDKvd)XvA-u*6qxtr z$CjzJ$7ot44lTs%gPD(@W(VLB<6_iU>l;XU54QTr7A9b?WT93U45NCN%T+ma>4PC} zP;{8!Q93y_aMz{AQ?U)CZ2uGu&=npl^4&!OG{*aMOeNf_dshUL6|ilvM8q!*Rp;{C zNuagvH6H;b%S;FaDex^Q?A~jaDtm5(LdiBx2iYWiaK&KPLdf3sDvG-f*$oU147W4Q z8zi_b6=XcsY}Qc=RnYn6zazvG^>0hb{ik=_!Vqd9@LKXWNq6t$6H*Tf3bA7vs7_0; zM+&j9(Ueze!Qnz7Z{&O+qz*^1ePKcJD(Nz^-iElCJyt3&U#a-%t!$!7bS}OZv1ekL z9n^G?iNS86%fuoIsv06gaG{Ma@q9(2k8Xbh~_msxe2)?5v=1ajE-$23JO%39ICGMkyP9q56{2KsagKHbJa~Dxunifs_2y>I_-;_7QtaH4CCRLqb=ExU=Z(Y(f zh_|@`VWEO=ol*5H>bf<@h7EL%OAzY7wVD9I$o#YLM%o%=muy%c_r?{nic+k_KZA`V zm{Dx8z!b;seUFcnS0JQkyHAs*E|skLfDmBr#5RXKHI9kh4 zf$c)-T1ldor2+ygasbvhVdC+uZ>}iBk&eK`sJj_&4i*IoLi@Eck0tK5Wq3=ivX8|MH)Svx@k@akO%ni8rQgi2aNiV*@Jp(cfvdO>V5s&kfkcX*)~O3~@groW?}X*LyXU2_dR3LbN7$i9gP zfi~3g*%sg0QVb_0$`1+sp3p1`NG=Q{Rjjm4s>inA*qLlm^6qnKaILQ2a|G;0V6O!| zwKnvyn;y^9X)PjU$HarWYJxxRVzh9UorcpXjq^C^#}T81B?+T^wZ$TehYU97XAp=Cc>@X4uoeeNHw#YwV=P*PWH+(n zDB?nqXhDb@ND0CfmNT%6on?+}{LjWyO(@R#I7j0V<)$J+UgS+%yuw$1sSBkn2B{{C zCN%6z$6S+ey(M;*7|>Z4mw_S#YU)DL9a%}5))J5utfeyu@B_mAw`jf}A|<>G&O4|} zzo~=lP!lsMS!5}XkrS4=yXqb3I4BVcv_{}G3wwkDsx0KQiC~_UQ-Z09%MLMC4X?^! zvqn%QCW^`WND#6J9q*_R4m6bZ@Uhl}|8-zHiwq=Og>}FJBMC(QyIn)o`)ZNEt@1ln z{BJmTiZCA_gnsUU8zsAsxWK|jtZa%20Y&{TN_Yn*&R1&8d_qh~(GlM-qvE7E>B|hb z#SMH~P$-?AaS%0RHwf`sByg}boEvV!i%=X!D;X?jP?UuS)_nSE9wjqG>0*|kLRSLQ zpmf1Um90VxBRRiD33JJEGlcqs>Hu#K1*Dr!TzqJWaA?%FsEZ4Q?2^p~GkGjwJHC+N zP?~R+AYZPI^T2r-5=4L=v$2?lkWeAw^LbvSE$|8%;hWOu5@&$LaY=-Pi|W$f?EX-a>zXBI z6_&ZxjFK0Zn6@ZQWK{-2m6T=ki}+$XF|`#EAlXXx_lR|;f#WRnMKXummvp60A9pux zwWPpC}8E`1l$a0?{x*3Ra}Twl?p{~;PP}aAa1-hMNKIMf(#N6 zDZ;^&Yt;Tsf4OteLDhTn3?ernoF@EjDXb_NuVLBotmzgBBgA{ksp6dQNkf%yFOp9*be+c94zPQ0fD$3n%50}dO5?saF^UIWDCO2JUU zN9Uc251xHO`N=uQd^zxG(t%%j??vIYi*pEJP8KwKNV-^7+69?;gkA`|gEzPJKI$IAL7*x1sI3@YVnQoy?dNw6S%2pwts(LODVNrLr?OTLZg$6l-S1 zFvm4IuAX~49@wxY@E|~yOohVe-d`HLxJn}7@YKA!yU!5=?~ zt7m_sCOWU+A=(h^0Tg?V-UC1o$G_3rAw@0|8_oU`}?<(aRVdmA3y zu!TaU#Wyee{&^UC;6CN=|90K|_=`WjBYD4XICOt3x;1@ob5Fh+uRQ;25_U+C(Bxx$ zRmW|3@OxX_BHnwSf5x(}b|!;%-#s&pPD#P%C|vApWR9M6L-zSiGx3!x-bM6UBfSyw zPAHzkyoH*us`9BLr%uG@uKZZ}yB*th;<0;wk<@l2>!(OTtKx+B9-1538}Y>E?TH6u z$My10e;rS3-sW(qJx8~q34C@tq%dgb7>9gR-ft0JrAX7U0Rcn z702_~{>YF!{RhuJ0pD8o12W~TBtK}Xl^uWDz8+T19DyipvGX7Cz6tI;-RsUaUJFOh zi-n&p0%K549EXq0dv|UiBR*<_^HP0LuRQ;2-2MH>aKdSa;5*m;9m&2oLX?ZweHw2$ z>%7p&C=||zu|M+_e4)pY+&lrRF1YUXm*K`S{-l<1A zZoGT|XMMim6+QU9EzW%g1TXDsbLKs&whtnx#$2+D@B=w^VM)MT(wl%*W zLP&LrWR2W+_W#0Tn0xZobVuT7h?v4Y{(K)i`vkmW>LE@u%%9cMn;-i7#~X%4Jvm3A zSUhlEU^s;GHpK8J9@y|0uAX~)n0K(#W7jh;x_kof??KAiB~Jd?pz^+ZX1W=ww64el z)2qI`5J%-6h*i7iQi?+KSj6QIG|)8BAayKG}S zHSOPap&G)yrQy~WAxH6ypP#x4&pq{m0T34aLcKU|u#`50mKp+A`kb48Fc!ElUCza) z{_x_z$I-{%K)1}l|H1jV?WVV3Xxkp;l2~!`MF=8A{x6B$2fo{eTfTaDz;uwXy@Hhz zUw_q|82hGuhh3*4q@PMLW_R6iZ-R}Tv-ks;bL&Hn4nY$n!r^nf<+sM2$t29=Gj-_d zH+#;y5ntMHUitIBZ{7#bKlMT|LDl7!RTZav`d9!!|Ji?z-XDIpmdFCKNQ-lJ{GT%c z087uh0Rq9*b8j!*_!HlIDAt&afRKB$3+(0RU%|p@YZI*C@(t(b04iuIj)rSVq9HYW zdyU=$C+2Z50Cb*wHHG{%saf&lq~Zy#n0`H0-g_Zcg-eqg;s9VFmC9P8uT@;9{vD}J z|0fZEPYcFbHK6Ux<;iM()A$#0>5>JRXR@Ljo9`TxT>F#fK8ndxSKy>~=fLEQ<;nfs zw{d0#=+1su8X;+5GSx>q`uNQInK1F602~(hTuS&rypE~Bhb*5)YW+Eoa0@lu87Vm) zg-TdDZzM3>KFie#;za;4UsK#?J@xw8r*u$7_Z_3YSk z-DsFhKySsf*|BXGUUC2???|RbmZ0h}{OplmVcc;C;K|L~gJdJGk?^J7$_oo6j-;Iy zs&X%d6XwP3uGLfQJ?fuv>Cy#&0-fjd;-y`$bKkw?y2J3TulJTfZRve!W=L4-bmdJq zl&AU1l9NcF_%0lG>JFSgXAuOa`PZqH#VQT_EKQU1+V5s<=s7@~1|fIf@n{LeW@+97 zGoV$Xpj85+XL(a7Fb@g&4?^78NS4kH>s51aD}Neuz&`ne(Xf+MmG(96xC8Ty!tL(N z`|P(@g);AB(&~_WY~HCQ>R)x7|Mr{rmp`3#@st$bP)`qv$Yc*}cnp8F_U_~_i@$#! z;gKj0*(AbW(yOh$UEe+^G;+LnNE5_ld;wLd`lC#;Iv!+FFbsjQo3 zjMg-Tp1$uz{nwShe0f(ZcG4PI#NdWGM9oX8HJwQo$kGlr-}#1c zF{lY&P|dIy-Bj3MS z`TMNpAFW96nf7+(4vM__gB!NEfjjcVgY)yGmYXqTKXCRtEAC+9Gk?DDd&xQ9c-a1p z^9UQPST_G#%kIR_@@EEsu?Oyh3s#>&d!^I`UDdGQBlF&!{Oz$H{*3Bk!h|56mQPBa zM4C9mb%k`^%S&`vBm%e7z(uM6Pw7F&x@vWeH57_b``+&|TBvC=aLd;h;BD`G7Ka@E z48C{UTZv&}k`j@uGm;VxI&PYtgSFZ4g2sZl?u>O@_CfOK{a>GatBMt}xy&lQ{07>X zV=XZ9>gu|{@uE2)wJZSei^q4A7q0HgC!BVOW9+G!lmM{TzIy-wzPt9G^6Yot@n|rS zy_ZlNhn#Y7`CUIT1Vh_*C23m*WThdHuMI8!y<+;;oPm4qAHIti9x*SRjFgY!^h*RwB`6ZhN8evsVy$uo}$0m))8 z3V`$WW&bx+n1*4df+W!9{@EFs%isQOx>Wkk`wKeNB~%iV+O%=oG3f-F-gXKOIBb8g zQfftA)uuFYPR-}U-aW5RmY^C$Xq>KQr;H2&ntCukq|9fB!ihz(a=x?!9%!Ury^Y?2 zd=}tJOyYnqFafhqLQ=eOUPPQ+q)q$oIl9%1X64fw7tPxRFI1GWaa?!lcb&ANQ1um` z6^$ydTLCVB9A{m`wGXPcp#0fGzerr_YO3|Di>Fk;Ne;xk<*+wk$F`kGh3rE=`o{$L zVYQ)EFSzhthPLl=be!USpf#{$p;m825k&90E9LY5+A&0p2uzEKZquY#QsE^`t>dk++{Tz7_{_>EX(N zO!@eeAkjv7oN?9?GxiOGvtsENF{kU2@}5@S)Q%NBU&KG$y>G(m1wiYegaW%tFc}HD z$MUe{P20KaoR=>Ec;gjC zEAOVtsH^sZY3_Z(F~0=>cwy(u$zv`3#0?3(wnThMS$hF+Ep^M0t6(fa3y<7x2>aub_MS+9V9R@~+R7Dcoqmx~xUb z1VKRK_wcBKF+qj&>8KuWIqVItcIMR|5@)W27>8l-rF}Xbcn}_m|_{B?;>8>yEB%yJR@qD=1~v0?AisZKUwmu zijoB0N;^%=!?$KZ!I-0Lz0Qd3l9eUhgic?MU_y$u&! z`SB!$YYXvWQz$&$N477YLIn-Q>U+k)c{-~vx;>oKb*}y?GmlNi(bQ9gcxOaM{3l7<<4zgg7rWyT!n30kG%3dtmAxo>Y1=f4lDf zvJ^o`Lcul&x4aGq!&cMH`6pX>zSq0yN=wSU%PQjguG-yr&(VA2^%IRN7xgDs&%K?b ziZ!s(en)-pAD);j+TA&-VU_n(7;U)<=QZy3ryI87yKC<$jUfOm9yqVUbwSgGSOU%O zJrrvQWNTAyTt1TZL`Sdy8^%f~1Gw3}N|?3Lh)u8DgfiK?Z+`V~OnJY38|f#%aowTV zuzo52Waa$CavgpA4On^84Y>ZRm*D^X^#LL4lgdyS_AiVmaV!9Bfmil7;L<6p^2%g| zuWjcB{`1$L)pQp9-t?pLBFH**JI_Y;JfVDkizkq^3UQItST)X=G%q+0jGx&2OBYi= z{YYATHTP>Xuw?r6$zv4tCl74c0$Tyts32rhHYH(AZ#xA*R(Y7N39S|}CKTLiN%g_U z9fT(~|1zxDWmy>;))gt-cbqc5#CygZun+#=viIe?0e4xWMaspRz4s@s0}n5yW<)af zY>tU)#?4CmaSJ1b)JO`0N|c!q>ZNFq>9F_s?DoCTHe)$HG~;o6WZIR9v-#HqS3i zy%x_twG)g<>ah|Q=K2g=@o$S#6xzo=T&KHnxhkN^`g31*>35S@u=`p2?$`rMfauB1+wjEZZTY{y#FIZMe%_8Jf3iLKTWZxmMRq=^$tI|q z{KW_@`NZ{RH+To$F?C`(Ie}p|cGjRFBU6o!^rTopeXQK=47ISjrn+oYR5_#0VTl@= zS0{5uDUYvEy`S&gG#+g;`ti%3PflLrsD1CpikmJX&8+SFPVZ4_{cc6vwktxk8uy)r z@oK_~81ZYA_%{r~%g_HBZO42WKQ^?6FKsvvN4{?&e0RAb)vxe=6PmvGM-~+M6925h}Zl`8Q^D1>ee3yGnA_)#HFe#~1;(>>0jrL*~w{nzKIW zRmQ2}R}&^HOu|}d2EVSJSo0KaTK50BD?f%e9=1Ojyaqeg@>gd#|nI;HQ>%UqN3lStlDv8Mgo3A-D}s>+K^%gJ+!-yqX>t*~u3ihFE{ zJHUH=10nlxy}eDRX_YiqO;L?KaG!*<#d@J6DX@uea4uB!u=Owq8U_?rxFM>OFYwi8 z7|$x|M~YgHp_nF}r~GO1`|fpTXZd{v1>bI|lv4x1c|9L<5P?uYlr>Tm(#)t{Q(N6~ z5HCfjWC;suOsw^m;tT=2DhZN_r!eDi(7)u&Ea_U6Ur z#%L|?>%@ayFekP79&wV*)#&!6=U#Cy^UAwEM;}fgd5oH-{CN8d?gwfxwFQF3-#-s~ z<-{b3Dr;*DQu%C>GH)Xmq`F{0X@tP2+G<*I6h)Kij?R%A3#$r%1tr#z{ppnVJ{9=M zksHR8dF#pnJSyUQvDihawSiyN^RP8A)gX5JBSX}H6m$rN8w$}o5o0u~hOZ^^7=)Ji zO06n7i~X(c_dh-SbiF>zXvpWeG$!&R+j8qIF7=CV7{uDftr`r;Q4oQJeGiIOaRV{|25*X@aI zCmq|iZQHhO+qP}9V_O||IvuBD+qvg?zx%UloT{~C#GKJeu=hZZacT;Ia7%S9Pr1NxqMIA+&?=H=kAPd`lQQ}<({w@Ck@zEM+^F)O zJK2BiVU!%J^O;Ki5!1qAqC?{3p*psbj8Q{<1Rq-MdUd&*@MC*zbi^22`ZnK?{|%nt z;}-3o;RG;p{#V}A^QfZ-!+}Hn;DEH$=Odr+G}GdP$idXy?8Is>h+LSnLH>kc?w7%p zG7sdvS|J7u%JLdU0%;}JiqNcs_H1-um*vi#o9C7{*Hqrh79p+rvJT_W^SpY?KJGD> z^I@+?3k zEu8=ck9a2_3rdM`;5IL7Nr}+!vD?45N8u8A0MtlC zC8@o&*ynlnAWz)l7xe`Fl6c3~N{?8|n`GZ}(oF$ZxmN15jBfZ0W@Z{$i7gt^VMu?X zra?EZL}WQF7+n8rc8aKK9wmizaf!hZ23;1X&RksIKYOTOmMwE(0HgiQHOkzr-0=aS zNsw)98gy9=eK4w9T)T_(=hL5kpJB&U zot5kbl9)2AW4K5+|4q79b}DWmmFV?_fI@+{oXfW0Nsfqx-ZM}eg2WWE8F5tmdq1P7QtpSuweJ3z8~HzIlt533+QCPpWWz=zrW)4 zLCPE0e<&mCS=6dem@X*QWxiJwh(c44jorg6coT`jF`S$G|2%8}M5l&v)FvZ3X{_-#N zddM8V(8=}mx2k7a#K9)8qU7c5TQzsBDGeCsMlzj#*Q8*4Na-L@87>TWfl}mwF1!@P zH>JsGZG58g`6snlS?TqB?)wGF$p6fOFQ)No0DpS%mADVy`oF2c8*r0sC?2^CvQ>19 zmpp9v%_xDS&VO|H1Bya7aC+ACw%9cgD$wswdz!M3uNGhV1P^?r8s^N!Q5 zA+_(~-_ZVkd|5ku;FHibl3*-eBle`NO`9}&4cALo=#8X*CFQ49$w8%H0BS9RUSj6- ziu(bB24c_YvJ2Q%xw-WSJxJHbGUxt%VIj`7_*@($&R~Zgh8#dn;B%_wj)R5cf2?7% zRfKyck70XrT7a#6>qcE}q3Ne4Y)j22Wcw?^99arzU zsN{Zft^0|J01P^P8-!+=W zlDkt*jq-pcDmoveC(nb#-!RZOFQKIop(wYuRvCH${-`UgK< z$4*>V6i6~QZ{-!$7=^%N^;GI}6@di!i*wtSc{hz|6+x-oe(2k@v@|ZZL zCK7*j-0^ah3V%7U;MyEZ$1m8&MX~)7BA1ZGzZQ=|fxJC5{$oOAEqA%xSck0=mm%5O z&CV;Rn{D30FCBgd6*j)+zNW8FwG2%f)_?YyJgYbpF%qa>!V?2Z`3^>9 z=x%!35>^D6MyJ~@mA~$D$^o@4Wu<44b}NzUU0!!*zVFBv%Bb63(z= zf5*UpT7cEZDF)@Q@PDGt#QL+{@;C zn<2O5b-p>PlldIbd3O}+ar?%d-q;0~f8Mq;t6 z`5T>>8rDocI-3M9)zqZ^OJxwJ!Hpk>9tEn582%(|g+V%Ag)5M;0TwH!Px6yhUJXTpV{#-)Q{4#S{^5#FplrSH%33dJFuf0>lkL!%h~PBPkn0_}y-f{tVi zy^xX_6e|pUHlk4#LqT;MhaT`&JzFlbE~iHuY}Z%G3S8#u3@b7-OIqpM+{y07pXvV- zEqnA(^t`m30-l%E@)SBg0HAW(smQLTUS)$1qUrDZA`=QeP_%Nx;v1;PyPv-#?@jI9 zTkqh%nJFBg)Q%_cvh#{9%yul(Oa_;<_e6DQKhW(4R4Umev%9BzrqaYO%rA(A|-+vYd>*k15jMqD==AWZIxbF5xCQC!z}a$Gf~0%g{=EGy4a)i={x=YuZMsqy1}1~v;EIA*T&CQq_lN{z{7bb z$N}r&SgzBpT9!w5<_oY+X6;9mp8V+hfN-zKAS`lB5gN3z@;j8Fq;{J4KME`$kcC83 z1K=F`k+*5X{<0Meg_cENYK5GmnN}UY-xF6 z4k&HYXmj7sECk!~dw#@Go_yzq8lIgPd7TPHV&j&MTg!AFZG(or8~5Tc zd7t2b&$@goIOS{502_IT0^L|mCd$4Sr{}o|_t?JKp@OSks;jHM!8%!9-bX_utrK$Y z`29z8;^nzC+gCR%Ib?F>WR^|Gvth~l3AG)rjvx6S%RG!?2DYYrqrS5KNGAUbxzJBd zd9LaRp$Z0S>psCQ3uBIl&a#&L1p){_*4%kQDb)(g3hfzuWWhIbE7WyM%hj$biWh0eXJuf&i+3^QI ze{jIC@uPFpFrY$Nl4~IKg)BXc+gLZ}x^U0m8%h>~MTh)m?9K2s6dA!=ny@0E^)?YGhKkF8i7JR45CoqGL)*S8!-w zw_5!RUC`3;Bz6=IJMH9Iw`QbNDD(Fw*w>>hQ9up$fYtu_z%#%T1F&1P^M*(FezpS; z+8#Xhi_C!OGHPeHDSckxqR4D}>}vAAR{oAdQXD{ao!3*)WvjB0Dp_uV44?Cu5pB7L zVgG@&fCr*%pxm92)w-Bc ze;$X5_`@*T3KC3>BeIm#Cin026Fpwa4%VP&$cV-LJ-Q1QM;_T1Mn^UVE{`Pam+5r0f{CaXskXo4j;ifbc)&G4(Ekdn`R>T$BHfqd%#2W5H29)Y_MN5i zAXBlI(lWc^_hQRA5A${2Hh5GU2BzLjrmV&58#6f!=t9gA(cFR*(8UhYl#W*4RmXZ{ zForC9F{#!*dPw2R3gySN`IcAS9M@xVZ2A1>!-$2RJ&I&WqOD#U_D`xxL{yj-MOUKb z78#P?3{P2pGK+WMByCfyPF_%~8sW5uJpBS8(RU$E&bY=wkWoW~^e-qH+kX=n8TI2j zaAulq#644J4LiEg2;Wu&apfZZ5w;W};(n7L;%0g?X3phb9l|nRzEgbNt9_1BxdtR^exkBrNUllteDH3klUKTKn;vZP^ z*Yi==hDuWsGtyc(c;U0E!7yg5`aqL(`|1Bmb3Y|*S53+RC)YwKO$=Uo*T#xjm%l7TRzB{B=fg2M zZE{T~)Xz`KW-S8(D?48mPQ$eE(gqzEQ?pd9g-k9EtEOZKJ2+<&qF&aEE#{Hz3pPe$YCyWBzdw6P z;~*tH`~#5tmBHLqeg!61N<~hLwa_Aa(#UMNs#=A!J9A5m(4Fb5(J24R_cNJGckG2h z2cI7y<)sFvR5i%E)i*kp0b5TH(bInN

=~t~JAGx8t7!Z>Y#i|9_z^tJ2^b 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 literal 0 HcmV?d00001 diff --git a/docs/img/logos/monash.jpg b/docs/img/logos/monash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70a68b8b7f233f26d99a129175dcdcb24a72bb83 GIT binary patch literal 33408 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 literal 0 HcmV?d00001 diff --git a/docs/img/logos/oulu.png b/docs/img/logos/oulu.png new file mode 100644 index 0000000000000000000000000000000000000000..fc534f8dbf8acf907002385f7542f1d0d19b088c GIT binary patch literal 12503 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

(#9N1bHz7pZrg;dgBq6-t!EW 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 literal 0 HcmV?d00001 diff --git a/docs/img/logos/uw.jpg b/docs/img/logos/uw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89f00b03d352fd945e8739b803ccfe911c88ca1f GIT binary patch literal 5095 zcmb_ec|4SFw0~#DEcO{?Cxc{-v9D##G6+*4AzO)L-?L{eI|&J6$(Aid*~&=S5=x3> zNtTLXS}1Yfp>Dr>KllFe``r6H@4V0V{hsqV@0s(S^PFdAd}kU!<8=*m0SE*DAm9Xc zW}!R=+S+GL2`0J*M#pvqPzE>0OFmFE090UZbCRG9>I{Hb!}%ZB;UD<-dqEWd<|sp5{(pz>xj@i= z0MOL}0BTJ4tpAPGUk=6wx*!Vx(2~ELM-c!heFgc{znnu305rz{0LPoZ+`&QsV2%cW zdqa+X-u`><0Jy-lAJPkRgr}n}(tks%vzl?s@vn)d%5bQr>%z?fY(8J~42CDv=Z4&I z=?onuE#Y={b|wIA0KPX62sjFbM4{;EXld!_F$|30#Bibap}~ubotur7jhkH*%fo{e zl@b;bmQt3LRo2tdv#|-K8iD+ujdTGR6g6XE5CH&+fxs}3oo;}KN`TaEs_p$z1QG?M zfkR-RloRCtiwykyP#PF~=MBIBg8)!83`}uI1hXL+uYWg~4F{jA&0fFoif-Xh5@&C* zt~*8UXyB@|M}>D^{e`jM56pc&h*5XjS`#Cm#1F$YW_h`C=WAky4HxTdH2_4^P(!}7 zU*+YqhmT%OW<8cMxuzDm-29eb=R%F$kkxwr@ab3QT7#W&mZ|q%{))^hBh+R_W!=#6 zw^q>yzy2}jGgo5VG}G^VCAvzES~K3LuU>Q-f=U!}NSw~wD3D?6Znz6vjX(WSW-nm@8tgixf` zCjjKxbl3# zYl{7H>&n?noo~f+-Iu$^oyu7UwPj=7TYRbI3_uj4{l&SwwC;}mFl{qYeX3yNXmO;k zC)@N+Q%8##UuK&vv1Xd8`0oZEm>*(jYCgbeAn-r=1EYb1)IJ27Wj_|fiqnu|la`f_ z;0F^11?Cb24&8iixEO0M?MHB533Ydec3c&yIu>r0#r<}m$%x}FDy&#e(!bg>Bx%0mnxgb+n=D?Y zV$YM}bl#-M9f1GK*z?W0wI<;q3_bC#BV&mgUkuURn7=Mc8q>r#@X&_dCzQ2Y+E})x zFji z*Sg!vgcNQ#t(DgtnM*uCBV+>-UoicA%*AD>ig;|7NheQ3L$^`ll()J=4@_?VONa&k{ylg`+X5^@~%@Qu_%@qA$=y^-ucILc= z5j~-~U@akg;b8CNFAKa&eX9ML8^FBLaq7b})zM7zm1(?sR414Mychrq1^0+Q2>>P$ z1dYMsr0p~`cfUF)Q-_d^?)LBF^n88p8haEEf5mAf(;57aPPkOm$_)|k#{1Sh)hAEN zTqVB)4GL2YLSRq?xWViV2o%7;(EH3->}jz40yt?w89T3C(@?7EZF<2kfU8F{bnkNX zp3cqTCc1-9qRXb|jbg+{SAI*}n>r;=Nx*$LIgj>SO?-EP?mA*2UcG!2(o}QE$$6=~ z@8s~+#2rA(fl#G4m}hmC%TDg=vmE35qmb_wDozUT2Lw_BC@oEb$K)PaWoWKpgBi9Bco{8_uPLh$IwWXk&`Ix*`khi3sGYQ8XC>fZ|-yHb_=_b#8 zQ)lw}+#%m3s{T6fvgVw%R%(cZN@hacuiK<`>=!`Kwp74P-KB0TWriAG1!{>wk#IQj zPmMvKFaSe?X2J4n66Cxh)6#L$8YhYbw9LGH>L2ZsiHIUP{4O_yI&>QvBak?oemUOA z&HYPH&+30$Sj7^j^;d=D3r1WFZ-k~PjlW$=N}9?RwZflNeN+y4$Iaa?UEezTkHw{j zEpko3<`(;WC;rFzrq&NqTdXmg@yPhD+hM-HR)v?7pIuvjR~jmNhS5d8y3AM7df9ow zWNJOE{L_RJF2f1$6MaR`=(cbYNpb@_eBv3;g}O91yia9vVzto<$7D&d>OLOn3c3w+ zknTXfC)Y2UNCAUe$5k$;rtc9a_>aC=I69Wx_Q|o$-a9q#YBlrcB#-t|1wHQC=29mM z{mb6SsiM3|QZ&7i*iyK1E^0XsHP?T@CR$K>(hid4o%32bk51Wfv9gd+~(FA@$pP=61uh$4&>eC0+Fu z`8@DX<7~z%JXwW0rNgJml1)UP}f_?JZ_)muUCq!I@0iuay4V1<>yntCdYgbJ-TXjHN;%n5tdUft6?`J!Rk z(g*)|A@At2K|*%1xHv)0vt8fT-$^k~jh8p*b=nlJ)lqRjlIceo!~F{E+jG^fIolnK zV~vs_tbVr}4~3kvJbtOXjN)5%Xk_0e*Z=ReW!>&I`>ES%w&Bn|3x@k1DfVp_9gH~$MQ1i3FD@Bg+ zwj`$C0*1EcXk*R>AyxWYs3^xmHsT{)mY_`bW13c;^*&5%Zo0}@rOB2W2Pfo>1AeJE ze9C5!ZDQ`a*uF@%OHdAMxGBO-%IXf$dnhfW^|)f|CS%_{W!;=S>B!q24_i^~(+rbs zK{;)V%oGP@iT*P?K;XdR{@Z%6^GfH|*`-sTZu)I#RA2wNm9KX9(mI=hpiiW%&qJCt z#xv$x+$Blb*=n!%bMF}DOl-LkOP96@q5~X$V%Qr8^pXKq zjo?pO@5@@O>!S3Qis>Wil#qOatGV)$-s8>E_bcnlp0~nz%yfhL`yvXaZi@&g6J!^y zj4RJc(Ia5)u=bF|Pg973v2KUcU-Pz?tp&5&>Jkp9)XfvFg-5t8)St`K^sbgrvkRPo z+@qcHP7#!t@PyaPNF^NC*7XID(_L`qX;zcNDQ2W0M@4{pv>zU26>g|`TQAMSOEM!E zL(}iXs@Y0+O8J^(wb31^q$bTvDV}P#NG+>~!4k6AiX~lSc5j8wSm06v&}<{MwC>#y z$a~HMX`sI97Bf_mv?|xWL9+N{yPipXM)uI zkBfv|to>@Cw_H>3(g4%6-0uJ*qL_kTfketn8}-VP)Q7Qy?abt}V7BcZXu-2E0HA-a zcKpjrc1T`r$j@hJsN?6yo0RK)Yo@0@gLt)eJ*8vqT>*t^u!^#^MaiGqv;6(B`q`(b zJ#5j>Mk3Md;o702--qP(@T&4wnUeJ${#SRf&JJL}<2ki4|L&n+R|YU>erYo-&fadf zwy1p>y~R>=wj!+bN7gZ&PE$7lR;d@AW~amWjdhND(s$Digm46x51!Qd09}J}ud9%z zSZfZD@6~-Al<<^G^9$nAZ&Z?B#9K?ITIrPH8h^r5Ow=fr0U7;ED!t_@JXe|Vmgzfy z&`i06K{yCvLAMTpZhOV%t9RFVStdiCEsY_hebTQ` zHzc?>xGH%EpgH!r73C;y9KXq;qxAlU1o7FmtXMM|gO+v~mV?Q~*BEF-?n_uXr1D?C z#4j^B@^e|v0~TF@Q$KMyeqP|_g#BO)J0kBf*BuejypGDy(}?1t*a-@Ij5~u7dpJj#LL3>pc6@3tnL!wOH&as z-fZ_y>q{CxRWtjj`sMchPorJ=IKoNMl-?1hy?XA zay8lR)k7vyg#ICK3j>h}#A^s7c0O}Gc`ho$+=FHZXfe6nEsq<%hui&Y8RR;H3WQ1 zPEe0k^ow)(D$R6Lk)M+@tedp)`99iG-Mcq&G{XQJ)cp LxnR0;=k$=^OjOlXq~#Q)Ufloys;r`|lQT310602% zxT(vCQ|RjHQy`23&;Swu4{!p2nT5NHl7_VAUzc)H5)|&QN`LuZ<$CV5jn^{GDyvFC z@h|!R6k%GpxOu#Wsrsr7vb1uyc;%2+cJTIa`78hP$~flse;FF~FT1@4_{s!-+4>*M z@*g_?V9~#9>F8wns`EEy7fVOWzuf!EVP2kAuMDI3%AsDiR^G2X^U5?1o{qM!eEZ5c zj#g&w004{nSMFhDVe`ryuZ-%ZsV?!#f&hSsYW;6){%`DI3JCC1$Xa|eJ3k~!xC0RPo%ZsPtWGfxMA=1%}X zu=Fn(%@+Vb4*`ItiGMpEyuahc#>2zqEjzonw>O)ul?B`1g#NSq4;B8Y`QL_rYme=3 zd;iQGg`^e4%+tYx;%`zdoE@A!-6-5$%q*-ZSpVOH_|b8Q1`JfJ5L9a1A`X-u4in(4erP2%*TK zXrY*)xS;rKy7G8U`8_8V8ybnhu&BnjcyWS^-)U+6dYj+7;RlIs`ffIt@A>x&pch`Ums~ z^eprS^da;W3;=@yg9k$i!wSO>BLSlVqYndtaf1njiGWFg$%m@yr190?pV+*>#~I9)hv zIB&R6xD>czxJI}>xLLRzxNCTLcszJ|cs_Vpcs+PKcz^gP_-y!U`0wzO@LTX#2nYy- z2+RmV2r39>2p$Nb2{h-HYKh*OArh!02@ zNVG_AkyMZ@k$jP2kqVK%Ax$9dAUz;sBGV%aA!{PrA%8$lL#{&ZLta6?KtVyFLJ>ew zL$O79kCKK`gEENn3*`^E$0Vpn-g>-bXs&VbYpZs^c3`Z^a=DM3?vLX3<(S~j6jS` zj8=?!j4MoROioM{Oh?Qp%reX&%->iDSaeuYSe95JSOr);SX$u#D0(UWP?Au}QhHM6QI1nSP|;IqQ3X>~Q>{`XQ}a_psFSF> zssGTB(|kX z2-E^P<7Vcz;?Ch-;KAlm;`z+e&GW>|$Lq#h#k`I8#Xl$jCm=2m zB+xE!_m=mq$J@HMr(jmFJ-7_~TaaGRO0ZCHONdIyOejxiLzqI?RQQYVh6tsInMl6K zrYNj{gLOB50LLwKvmFC$WYi+WKwif{H6r0B(IdH zw4zL_?4;bR0;tHTB&w{c(yO|vwyD9Zsj6kF?W%LCzf&L3z}7I)DATys6xWQ^T-IXH z^3>|qM%OmfF4ex#k<>}h+0bRz4bUCYBhs_gYtcv0*VZrAzcP?ANH*9p~ z@-Z4RCNg#~?l3_&F*B(*g)`MLEi-*IQ!&doyE2zE&ocjGAz_hfacC)OnPjRVL915 z^*WO|`#4X!FuR1hY`DI4O?Lg`rr=iW4&`p--r|At`Y<)>$>90P^Ou*fSEkpkx3+h^ z52lZk&!{hxZ@BNCpR`|*KdirnfA>4ecOTyU3J?p(3xoj&fy z_8-QAIf4^{FF)#h{1!qQ@;+qilgy{`&^MuOq4S@?pL4@t!)(LG!$INc;m;A45yO!j zktvanQ5I3d(VWp~(JwKOnDJQN*qk`{IH$O|c#-(83783f30sLuiA_lqNfAkx$tKA| zDcmW!smQ6GsT*mEX)WnA>2c|g88#WSnc|t%StMEESvT31*;6^9IaRr&xskc|Uu?fD zyj7Y-Eh7nK$h6-O37l{l4bd{zJ2Tgq2jT1HY9TMk|BS-xLk zSn;z`va+R$wJNU~uR5{@sPU{hs5Pyft5c}!uII0>YM^b%YQ%1gXo70;ZTiz})4b85 z*D~2E-`f2R{H?K#t*xY;vOTi{wbuMLqaW5kwz^HamwR-3W_s0n z$NLoe2K%M^dj`Y?x(0;?+lSr`wGQ(SH;?d+G>!6%HjeR(HIDO+H%;(OwEPtK`E62g zvU5sg>c_O?bpMRp%*d?r?Btx*+`_!!{KkUi!tX_g#j_=^rHAGBD{w0js~D>(Yb0y= z>x}Ew8@wAGza)Q+Zfa~UZ&_>|Zo6+k?u6{3?WXLJ@0I@M`rW=Sz5nyT;9%#_xAK?;Z*c=^pEbJoin$ym-DC#!i$ni?#u2g)vL8@$Loiih+D$juXp@+1NS=j zdk@}^2#;w`j8EU56`ogK9A92umH~;svy%U<^4H1#mV>{>FW&)7L?9Q60tN~bfX0M^ z!GwD0eSIW(od&@HF#q;og9r-;kAMUP4TJnz&y4{92(Qy2C>Us1I2gFUYS1u$6`&B2 zFtM<4aPg=)#gOqSscLDs)M(9Ie@y;)wIcm%0sHSx0k~H)cqjx!q}OU*%-33I=)XQ; z5TRlI`h0Bw77i2s)gvV*0u>^zm>M;g86FKt-StDlq(*#VUhT^gfcokY8WRQ+5CNVZ zp(&{T@BV*S23R0lt`*i-;pNHWw$Wa-My3@>qoWZWas_xcPXg1q$BZ*tTAFVimzub0-YM{hdsxu+g(aq@o~aJo8_nj`unQ|!hHN{`1xb(JE>svmXj zK_saIaQb1O(su;1yveq14+R{?^=CZJZtp*=`C|`tpg1l7fNoKStt@3QMuKl)48iC? z^f&sEGmLbXX{Nz&X82W$;*g!)@4KYi8B(XyF__ieHGYL|Oaa1|5%;R6!s8cLXvB;+ zG%9FrLH&b$e!BcY$iywTg_NkV6hjKq_NEiX34)G9)7hr14n%!*ndQwX1hJ;;qAevG z3_AmTBD{N6GW0Cw>K6QSY%C!-W6RDs>58Aqww%P)HT-5myC6Y07w}Qd1DT!5?j6Ac z_>w;l?W|IUN)Tm!$dZ{RYA&|&Av`*61$k)|+Aj#;m!*Zt=A?ThY-SWF4Vb;{OcjDPYu5A*w^l%f(-hacF2 zeR3NydLK((0OJ7RuICqE;OYg~%UynmHDD)vWEXh>f>cT#gX!lVg09x@p5KQd{(tw5 z!1I8>T;IU1>HQn`!&m!(=>wvmZ2!Q+=;r=q+i9Gx8-k+ySGVnZkD<+fTGu*ta=f$m z=Ck*F*H0&|HmJ`3f1JLLj2B_>@_*-AH$2U}!_}-(Loc|g-r-T@HbgFD77-uHjon?p zL$!WQ#z_C>1t2QFO7xg>$!Om!FOHu&Guhl?&nSP2>(klRB{4>)6Ch->a9@}hW45gG zIGSX6*MqQ4*jc1Vn^`)v5keEEAVUF#(Dnkr-8!Ik9XFXz5Nr#)duFJOpBg?pYTm)C zO)H;ugGs2m=%W5!i?$U3&k;K#uhuK}$UoY9cXZx5JOYxgNxi5n9-3xKYFI5{bXvor z9W}Za5lW1xoYURj24B#-dxgN1vqp%i%z?CeZr@%Syg9e%w9Um?NJFmlUsnVX%21=U zqISKBUq0fJ`<0U+=&Y!ojN6${){B*MO5Q`AUyMm zkU*~xDAn_Z3v%T%tZwxj1q?%3cGU`uJ^HN@cg*;}H#!+@*33#uwdsg^ty&?hVu@W! zy<72HcSytAK9MadrLA9CP$eSA_&_P4(vuVKtA~P9>_M9VI-^TNaroo3=ga z`z)$zW!UAs?HuS{fHTIT1@F+t=+H6a3*+Nrol0lw&aCJ*9fr3mc6|E7Au-jR!8PJC z={N-P+!pwBgO3LLQ!Jj!B{LH}fkE-cndz;l(m1XndIZP( zDeJF3o0}zor$6fv_dAeEx;lR_Oyn(jgxrZJRcV+Na2rKpl;}2sC)M@FnqC0ztmscu z=*QX!Bi|C!)H0@2+Q>3X;Kc>-<$25#z1o$qyhUadnkw8XI^?Y54%IqXJek|-C3H!s ztO+deOwq2K#>eWs7Qrd2_x@1&h^~L+a6}O}ypk3>??{VMtIY%2YL4%lE?JM3tjM^l z`FC4$M?y2dY~?r&JL8w74m5gCB`cm!SO;XOZ8yU|*ECR@PepPpwfcmY?yDT4;V=`& zGpdjZC0I^oeO#D}wWM7h)*RMv>^{)$NNzQ5SjjNdoHGk?)J66GmG4t_$ylB>3vd3g zaS_RZ9Ty%KKCWL;#1p#N!ZSroNMUd?qwPuYz_5b`TKzqvJ8rE=)V1P zC-?adZj5`zoXe^fU2~_Fa~iY;nQ{6|9rJzNUa2yz@u_Hux6oT%&nX#&5xMq+W2ThH zew?I5bP}sj5Ig+0uu`w(mRFg;ibE*XVv_5Qo!IeqHFJ+&s}5rW??IZ}BTNk|HTv!Q zV`eGZ$WdNpB%{2`8)`iIQkI-?E))_h?r3sn)QZiMKzd4Z>)+z8f*Btb@02e?l{Qwv zYbg`NySd#2Cy`&Lob^V%%XUc(?g&$kkTp_Rx07(nCN6I?v7#w+Dlxk!mwG2M z6sNHw=L+2I&QOiUrF3F?vYL0>w2LCHBhd+ZmR9kGLexL+R#SKuyE=)TK5fJZXG0Z% z5z?B;1kd55;Rz}fp!yCK+I%YR`8e6-@~zXu?;k|M)0%dTIfwXE5@HoiQ%z9SD+A>Q z=jdAs9I#}6xEsjba!Ah#YuZD2vvUcV!4VnbD0c>HO`cm z{+vjpxf_QY(&m_v^B^^t>&Km-icpzao3s}tWcZStWYm#^@PNPFjT1YwA6Iw8sLJOL z6VD6Kbp;=P8aIHtD=~+)D%`&d5Bmn@2;eBh! z(wY^jJWGihwv``@>fwz%6KhmKC~g&BUadkFG2vnsJEj*BReT`e#jZ#EL%vbh+O6_H zai^Y!jPhL2Vnx4V>`~mQ_V)vJZI?E|N|I==u!_*9eRM$whRRd{0Du%;_?~RDe2?F zL{ZZSzlvC!#ixJj+@$ov3y5_%x8F|nPPyvT*)c2_Nq-!voF2BkS~GK>X?_UQ&ex=~ znb%dGxwMlP_HI#`JUzQEotC7>(xOX0`{=wvYur0{c7#phbKAtvF?W9Bc5OitX!fUR zqa-?XODK9!ZA`modn2aLB81@KfbZx@RMBrxt5bb)DW=iSB{io|hf3gh2+C(v!Ggs& zMm$E0)75Lyw&Aqoh}ya8UB7yUZ}Y1Eo1su6w@Qtz;pNd6z^|8BzkJ@(Xt_khNdhc{ zqG~gT2kn#_;LlEy=`YzU6kvBq4NlJeAXiu<0ZG(G zuPCgLVHSyBt8>|2e!%3&1IzC6P6cgG`7X8HTwOGB`0wS%6WNn#%?3!VbM4ccrLFOy z!I`2p?bE7bE&EZC5I-@%6z4s6UrE z+w}2<`A1=R%tGzpd51R|)awjdSj9qp9!-dH^h=uht-{STV{Afk zF|waWb*I}e9cgged@GdiZr|)Y{|;hhLLF-nxv@X}W4(FMNkT)ISGgiL9;w5n)YM+y z>$}^@CW~e78abz+gUWo7@?dwJ5Ij{35MF&LzeXkc8S} z7H=gKm=W8yXu-^clLoa1zPd>7EPE4|)5mRO>w-Nkf~Da$Qwa?t;;p;rIiKw=@f>0I zfNDZkEmV)7I+S31Jb=&tIC_2DXuvImoh^IZyC*<6%7vH+z|2RM!jD=KA}T5~5=btf z25aAeW-|GTPTD{v3!ZpIdljdWUAyUXdr%DutFhk{)EpSTch#udD%Z&;$f|8^W7KNx zI?5Z6HE3UHXGDIbb*!LS+uS7wg%v~uN4^p7T?F%#8#Klwgo)j~^P=(<2V+O?uO4Bv zs}G>RSC}3n9NS1CtFJ{OmX+AX$2dn3 zjPyQ!C^sxqVao58z*??w^5)Zw`j%CZYepz&jMd8O*}8NzO>0HBiIpf-B08j~Yo*^i zEU0(?6W6EzjkUuW137f4&Uq|k{i!RXPHjRr{ zgg`kvWQE-xW2qFq%))tz&67<2YkVby$8}*7;uhNFV@4P0kDJ)dU+n~^Sdv46J9vwg zcnoT2#e|1y?*v!qjvu8(upztDl-kiNAuS(5dlwEH3G-^SB5Vt)?ZE0h7PZ8wafi5J ztL-tT6@7;i0Od<^OC}H%=i7J zO}G9N3uIT{e)++t=GowNPz}VHq*T^KpFb<<*o#yQDfh5qi=ehYK8@ScjWDFx5_sFs zT6rL-JN$eXX+2qW6~jvV)cm||O0A5*U1mqwc*H>?w?9;KhfabiK|*c`+-kEj@uW+~#zal&5N-f?20 zsH86xy-SeGtx3AnDOjHTb-A)c`FdwrHfg%@rtD)SUDl6JCn}>AC56<+ItB{#JWlm} zGM%6Nk^~LxjuLrDz%j!ku8)Q;8|Qn;X=dBgidw%)-&dGFPd=U&MH7!<%lp-@rA=P|{OD z-&v>Cd7UarNcyau(k!Hg+u;`ocrMl6w?)gnOHB2B9QG&5*Ex>iiofmB+y#ON3eXlpuL@>}*fhrR5LFI=$LZ`yUUvu<{|Te2g9 zV==oL+Ov1DMZe#T?|K45MVfWXR?OQgbW*us5>D$yZme?m%-P!%^oE4PPJ=7n$a>^Rd+! zH_Lu#F>g~D9w<6fq4G^!7=L6$ zFH(O(?T7zDig}qm#I&bw5r#TxQyjh@$YkIvhnZ(Lq^NB%>69Um)mn>44Sui}}o6 zAg@E!lDK#Fig^7XAG3x%Zc&%yP%r$dQ74WMt@ZrBKO1;0a%V0Dip`pBRV*))$>pm) zi6s7J2jv$G33*;CUootzpX!btIxTz+wa?FQFY>#xvn9@(r&EBU*LK8ztJ&p|8OuT( zmO)}0DPRwiQEP$iRSh$d6g*#yj^NALTAdj=0Is%LlJ$ z{V6>^<6&7Fd1L)KQX`pq&)LTlJ#0N)wsSEeOAY#w{v~W_0bASQ5@R8GwkIcnsQQ6A zy|WQRpkE2s)-Ht!Ux2KZeMf8joOv1Pd>=e6{*FV~LC@4zBa$=t+v-D~7gBiIR;~!}o-mR~KR{ z%$iQjHnlA#kHhL-qi3J5qO(>9e2Y zoJ@Ca7D4IwG|fN~&(#r*Rt2t~S%ymLukiVr#>2{Spl*;?rUT zC>v8gd9iE{sc5GwKBc!X-ljN7;{77^hikn8a2nnmgleMgpX3B~}uTxauU-5I#w4JlGC0%q_dHlH1Zm%%O7b_dkw?MK(M zv~!YO{(h~iRE`Qp3g7=bsc;m2c96m80_vIsV`RjNl2Xx|DM?#+eACSY%TOLS?M zuh5NT+1ok))~WH>#Qj=1=Eqo+7-J!=9l9DySR4#Sr@;^mhQ$~lalj1Yh{?N!X%jPirf#>)k}S|U z-6xz0wRJL&C;}hM_J=#xijU3h5xI95vl)HfvTI!sq+;_M+M>@=xIBpyc*4ITYL9bg z*-GP&x`v*ic>zXPKtC`;YEyrF5P=+l@hB)1 zHR%VaNNi9GMxtYOb^tpcvI2Tsu9f43_Wi6k=wg0=*DCS=KaymG;BBLhT$kP3wc@F4 zRxnMQ&z$=xBh%ELWdW}1Ks1pJPSlNNLI~>JNWFH)fhO5O4=Q7 zwUAw+^acwAmVCZ1erub{RelD|hSNm3Euzp;!18c%%;!kZVIURd^o2%6Wv7Q1_zVsB zLsEne>z$DEb`|JmH%(%?5~^eDam@x=9^1AbmFr{|^dRM0LhM6V6NM*Fne7`)CKmb(>t1dkMEsf+CWk*v(~a`M$Pty~b33&>~BD$RCN$=Ve{?`5WwD_QhbApm@z2cYW zj+lZ&G_?--h7iZ(yF_qdQ}|#$3)Xqeba+IVQD)}cBE^|?SUqIVAP$tQu}S(s?Mp+e zzoX15H@vs~$vj@jg%NpIfA%wY0LNTdoY$*57SrrVNmeiYx_S#`2zAkb)XcwApz|D$ z!1g;T2WYVO?8@tW(an6n?ajlqqYL@wRS+@%C_CAQ1)=Q$e2uYOhMba1{5yMrPVs_d zBPO&G7ADbgfj-L;{UYw79Qc)8?YzLsfuUi6B=bpG$)Xg-#hCt`=qzHMvxb&^V}}x~ zK8pZNpG6@{Z2pgO#Kwpt{Xd5gqppf5pkUakKZ3F5YpY{gp3NGs%l-k$mBLgu`>3ju6?Y@v%VGfUlVV+=9e&AVxFA#YBarmyAs==bprFT*nA?rm)Y_6w zxcWBFF{?ip6%NbOvU+#SvuMgKJUlQAE4XL!Iby6u4?$ioog$Bi1{qY`V zVa=FKCFvqj?bCss-N-QQ)dgItVQW{k0|>TOZ=;dS23LqNJ{!qg zH_#vp&9ZCT5ORg9R*GDI$NRJ;LTN~-S5$uD=wxER5!)6qaqQt2ZwMb&YEEafrSGoE zcKZ^F92@&D{4=f#yhC1WPE&_dsp0c7Ma;8PP77_tuB$n%u~u1Ssc%jLym33r;$N(< zGmM1xvzAuBv9MtgH#zP)4(ZIFQ*t1h4-Q~Q8+fzG9lFiuH*I120a1O!3x0lcjuL{K zV~F+Z?JiPih|t>A(Uer63aLk3$`B!;w|gkwL8{wqYgp%UsPrUOH*F0re@t?w<~lw- zdmnOxjog;EN9D_Pt7ng!vx$0WQx0q*F%{ysyqf>U(A{v^b*(##((Ly%n2=Q{iXx~#b z3@WLYGJjTxUgRZO$;G!Op)oil{r$Zp4|KR4tj2*>|8$PR5+ja4!c)fyYHwNQ9LqCv z<5%ppiiI3~hgHHJbP(SnmODKyNg_)UE1jx^6%C zZEb+qYn-Ry58yG$U5mZCqQF;TCmlin^zBhGa#7%Fx}7;)wkLyT_e)H zy%*b|uv?sS@B(1Kg$KL=(9Te)S4V3+yRQv6<;jjmPjY{qv(o(w_Q zxkL}o;rU8_&07zsKjS3Ugz2O73q4#J38S6*_;L;tk1oP&9N+Aqr5cgUSM#Du*rnI$ z93iTRDHrx!H;rn>E^|d6_{P%r&z9nmCv4kYZ!K=w-n2^&~U7+UL_&5-Vrd?(G>YLGaRBn5-<4;q=;yR_RERHd*(O&orK36}(Ev9D{Cbegcf&sS zP5+SQb>9E!KQHCB7K|o-GR2MDqxno+OCnXA8Ve1~QUAfi6+}mbHLB^-+4L>Y+ z1p1vR2nvz3$IH-ssD<_#i#S#rI19bv2#Qujx&5-_GO!RMP3OIE85e?H4?@C-d}w1> zJbD3m?L`RZmRW;fss;@L`8w8rv!FJ;>*rtDGQqh|Fq!lfoK|QwE1lM3Xy-H1rj)g1 z2wicQ>TniharaCMe7mKWu860e$`s1T#RV%^5NqMaikAQEa82QwO6^1I71Twk(k4rH za!SKW*+#a*aCSOf8%d4at!}}^Yj^!AJB{-?Kv8C!^dSn1gQEt-U*GbP-)EE1(xf_o z^u30#Z>I>ELDNc3MGx-VknX+z;1Wr|P|lnN602!ML%)}K$RKS(OPGKPiKQZ)D<`7x z1K2ab+Ne#LWd|=|)@O}>&lWsJa67bFcQnxaQ>4u{d~v;IzjJquls=yS&g=qzP^RE8 zr)r|SWxa&j*;mp^ZAU?*fvaG%(@cAG8DD?@U5zf$sAW|};&#SmNIBne#@kZv>8;%v zrPiNP=G$nKzZRW%A~Mk+1}*v3E_;L(-P-I{OZ1(yhke+eenhaP)lj+-=A=uHKX~a@ zB0=o7PY1j(Lr1dIKJ>x?GPHq>`c&>z3n3Y)eZj-#b+^lH$`-hco46734)S z;#{dMn>s+@gm@$MF11}6ywwZw#4Q4Z^(sXcB<6g2AH5EFobvS>yLwV5M{Zb6I(jx+ z?T$zIjuq?~(`(L`8d2lqop%Pw-kZnwBO+)W^7ndfM#!2|ESEkr2)AsNY7YF|y-+We zPBskCEi>oPT4GA3i|JKs{!By~RTL)Q7i?YYAg_Bg!s4!oaHg{LFf=4HB8AP$NNr8r z-IQdh;5f@$HDs)pKZ)@AZ-RKLZ#G^^oz-FD9d7C*F)QqSD}nmNf0i$8>{bd_#4@VH z-(niRcNf@*FzYA5QlpRJ5=Y~v)yMOPrZ!hIw=GH>V)y@iTXete^?QxYX2+SBP1;Ty z1#Upu28EU6Y#l!7Oo~#Be=&Wj7E?PU%owr2Cx4%|zTzY|NqwV!2}jJdjHmd7SiCoR zdG8StnL1vWLQgux?{(+gu{FRPFw&ygcaUrA-;MK$-R>-gGvrqbi8s+!QWtyoWhI zbuA5UUMZ#zV-K9o{d_g5Uj&Br{^H`$U=EG^qrK0slg}QrruE=AX1-H}VCF&vGceow z-tIS?{473_5u-1hLPVbp>y?D}$GtD=;!(zgRSy{U@5>nS#=1T;j-%-^4%sn#9>nVB z#TUd537I`XBeBocv#3RaIQroyBS9b(5QsNLH-naObW#o{!9R1Z-maYZcxa`&eewf1 z9#eq-+MCMT+s)gTIpvq{8)k7C&XM|qS>dR}fdu>S0~}1hhZTofnHLSF}E_}DUj2zk^@MdcQ6D!uLjoMHUjWwo z=dN#M_M~J(xyMHf^>zbU2Dt?ev#>-@B&1R#LDN*}7|(tYUp>20AE&>%Gu{yFp8B{^ zvGqzy9p8Z4QtNFy*4GzbgM?U(fIzl?0W#k;(R^hr;t>7R7WV>tv3gJ;Oc9CCwpqV^ z=A<$djk+Br(@u9N49r^rT#w=gfliWzq+?bCy-#gE>!UUrc@g=x^KyvbARWuJ<<#^#O>jt%9I-JG6+MQZGfKQz884S5YE@stY`WQarxI@^(_k)p^?JQ(J%~ByW5*Tgaju`^aYy=1bqWOH zyewZ|t5*C@Pk5m2C|qGG`32DDd$RShd;ySJbaG>_X!q2gb$t7L$4ef&N*13##_Y|P znD0LuPt5NHjdZ+wczjpovAmWU)R`IdaHow}@f-=iW?RV0TZ%E)e_DqJf9Bbudr428 zw(goUN;MY2C=cH6TAgPf{N~N`VhK9aToCsPS-7W&`wUzoP3soOZ8Pg%0G;I*K0*}*k;GEE z*3A4|Evf)L<6^0|=85Nw*B80IolS$IjSGW~C#&J>%J<7n>&t%5Ph6!T27Z{1kNfG( zuj8lKO1Db7Vzu`jDl_d8rsPt^6rE66Wuk7Ed7)Fe*U;B+T>1wbCJ3Xl$#rJ--aT@J zo?Lc>98#`gl$}^7pG18fK!7he(Fl7&dg4Khh)?^MYg*~Q7uz~Z4U`r z3@Pi4>`3__s`wO4=WOYcGhVr%1U3JD5th%2-g3dADC(!(Xs9M=o8m%P_UX0p9 zW;*dspwHOH9yq%{(`gZ|zLdX_o9 zJo7``MRlx>msG13QC=sU?@`(g?OEqR$W`+xHn&$hr8(1{Osw@n4UP1e2j%l8s_cj7 zeG=t`b#krD0&tpkrBfPVtyIhb+4}-N%#&Nc8kYODUFBqlIf|claM#FkgGFBvUN}W$ZRWW2!|KXR_t#2R{>$jetvl-pV?wH{z|>SXJrqL2Pov5C*0o-v zO+|-Im;y=@UqNjx{isKnk!@E{n9KVb+U=gqJ^HM-8&OpFtX_2RkR#>MW$J+R&W^$G z*Fj%{qEed7Rj5A}6dq4aC3%O0+l`BTnaw3dPvp|BxT++aF6@59C#!su{h)B!ccJ)v z%944v9@iNZl9`Y0PJjO|XbW_GFU3CX~S_bh^1Ia%D^RLBstq zA(?zHS!KulwZY|a7xi7sqixF*k>L~N6XAzz?;z)(Am{m2&2E zxe{GUoJ!?cdv~qblqd0@Tt7LvRLiRGl)HA-X%Bg}#;bQ#51uu653*JJMU-xCI*tdA zRB)oX-Q}_BZ3~f5X&`eA{WQH}m3;M&yvcAl5Ftd^PtTGevfdY+Rpa32Zzdj0o}rVj zf1(e6+DJ%VW=DoglkqSNt`%#^Dh~|Am+IB+Bi8jYW>Td3Xlb&8ud`N;*}1E%s7I&= zgT|dKcm3xcu)EA}ol}ECpOO`U?(Xj_)Q|bys|F@Sj<#KkV2$$2B6j;4Ax6~N2;&}U zk0Q_~EG>8U+@gDzk+NVW);0HR)qNWGr+&q3<}tpB6qNwb)6U6Q6XfoRaNVS7{YLr2 zv)Bs|8Q69F`mXs=HJg5uPpYa%Fq;}@m<820xr+Fxj89s^={)jo#D$t6s@ePgQ(wgy zO!9^`+(Nzam%;VVNB2QN);G@kM`d2t*Iw(d@0F`~y#UAhhFXU)DK5W8QJFujG4^Fw zv@5y|x9WVNvps#6C(I2p#-Ru3Pn5<(7@iDO>p@ zrZO%iLPg6Y^N`4nGEOEzZ%)leIj`g9?K*wjaPr_N(q?~kBaI31GQ+dJgFvQFZ=7cd z#3lN^=1 +

carnegie mellon university
+
digital biomarker development pipeline
+
university of helsinki
+
university of manchester
+
monash university
+
oulu university
+
university of pennsylvania
+
university of pittsburgh
+
university of virginia
+
university of washington
+ diff --git a/docs/setup/configuration.md b/docs/setup/configuration.md index fefa9708..b1a69bbe 100644 --- a/docs/setup/configuration.md +++ b/docs/setup/configuration.md @@ -1,27 +1,27 @@ # Configuration -You need to follow these steps to configure your RAPIDS deployment before you can extract behavioral features +You need to follow these steps to configure your RAPIDS deployment before you can extract behavioral features. 0. Verify RAPIDS can process your [data streams](#supported-data-streams) 3. Create your [participants files](#participant-files) 4. Select what [time segments](#time-segments) you want to extract features on -2. Choose the [timezone of your study](#timezone-of-your-study) +2. Select the [timezone of your study](#timezone-of-your-study) 5. Configure your [data streams](#data-stream-configuration) 6. Select what [sensors and features](#sensor-and-features-to-process) you want to process When you are done with this configuration, go to [executing RAPIDS](../execution). !!! hint - Every time you see `config["KEY"]` or `[KEY]` in these docs we are referring to the corresponding key in the `config.yaml` file. + Every time you see `config["KEY"]` or `[KEY]` in these docs, we are referring to the corresponding key in the `config.yaml` file. --- ## Supported data streams -A data stream refers to sensor data collected using a specific type of **device** with a specific **format** and stored in a specific **container**. For example, the `aware_mysql` data stream handles smartphone data (**device**) collected with the [AWARE Framework](https://awareframework.com/) (**format**) stored in a MySQL database (**container**). +A data stream refers to sensor data collected using a specific **device** with a specific **format** and stored in a specific **container**. For example, the `aware_mysql` data stream handles smartphone data (**device**) collected with the [AWARE Framework](https://awareframework.com/) (**format**) stored in a MySQL database (**container**). -Check the table in [introduction to data streams](../../datastreams/data-streams-introduction) to know what data streams we support. If your data stream is supported, continue to the next configuration section, **you will use its label later in this guide** (e.g. `aware_mysql`). If your steam is not supported but you want to implement it, follow the tutorial to [add support for new data streams](../../datastreams/add-new-data-streams) and get in touch by email or in Slack if you have any questions. +Check the table in [introduction to data streams](../../datastreams/data-streams-introduction) to know what data streams we support. If your data stream is supported, continue to the next configuration section, **you will use its label later in this guide** (e.g. `aware_mysql`). If your steam is not supported, but you want to implement it, follow the tutorial to [add support for new data streams](../../datastreams/add-new-data-streams) and [open a new discussion](https://github.com/carissalow/rapids/discussions) in Github with any questions. --- @@ -36,7 +36,7 @@ Participant files link together multiple devices (smartphones and wearables) to ``` ??? info "Optional: Migrating participants files with the old format" - If you were using the pre-release version of RAPIDS with participant files in plain text (as opposed to yaml), you can run the following command and your old files will be converted into yaml files stored in `data/external/participant_files/` + If you were using the pre-release version of RAPIDS with participant files in plain text (as opposed to yaml), you could run the following command, and your old files will be converted into yaml files stored in `data/external/participant_files/` ```bash python tools/update_format_participant_files.py @@ -46,9 +46,9 @@ Participant files link together multiple devices (smartphones and wearables) to ??? example "Example of the structure of a participant file" - In this example, the participant used an android phone, an ios phone, a fitbit device, and a Empatica device throughout the study between Apr 23rd 2020 and Oct 28th 2020 + In this example, the participant used an android phone, an ios phone, a Fitbit device, and an Empatica device throughout the study between April 23rd, 2020, and October 28th, 2020 - If your participants didn't use a `[PHONE]`, `[FITBIT]` or `[EMPATICA]` device, it is not necessary to include that section in their participant file. In other words, you can analyse data from 1 or more devices per participant. + If your participants didn't use a `[PHONE]`, `[FITBIT]` or `[EMPATICA]` device, it is not necessary to include that section in their participant file. In other words, you can analyze data from 1 or more devices per participant. ```yaml PHONE: @@ -74,10 +74,10 @@ Participant files link together multiple devices (smartphones and wearables) to | Key                      | Description | |-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `[DEVICE_IDS]` | An array of the strings that uniquely identify each smartphone, you can have more than one for when participants changed phones in the middle of the study. | - | `[PLATFORMS]` | An array that specifies the OS of each smartphone in `[DEVICE_IDS]` , use a combination of `android` or `ios` (we support participants that changed platforms in the middle of your study!). You can set `[PLATFORMS]: [infer]` and RAPIDS will infer them automatically (each phone data stream infer this differently, e.g. `aware_mysql` uses the `aware_device` table). | + | `[PLATFORMS]` | An array that specifies the OS of each smartphone in `[DEVICE_IDS]` , use a combination of `android` or `ios` (we support participants that changed platforms in the middle of your study!). You can set `[PLATFORMS]: [infer]`, and RAPIDS will infer them automatically (each phone data stream infer this differently, e.g., `aware_mysql` uses the `aware_device` table). | | `[LABEL]` | A string that is used in reports and visualizations. | - | `[START_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *after* this date time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | - | `[END_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *before* this date time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | + | `[START_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *after* this date-time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | + | `[END_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *before* this date-time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | === "[FITBIT]" @@ -85,8 +85,8 @@ Participant files link together multiple devices (smartphones and wearables) to |------------------|-----------------------------------------------------------------------------------------------------------| | `[DEVICE_IDS]` | An array of the strings that uniquely identify each Fitbit, you can have more than one in case the participant changed devices in the middle of the study. | | `[LABEL]` | A string that is used in reports and visualizations. | - | `[START_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *after* this date time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | - | `[END_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *before* this date time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | + | `[START_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *after* this date-time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | + | `[END_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *before* this date-time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | === "[EMPATICA]" @@ -94,14 +94,14 @@ Participant files link together multiple devices (smartphones and wearables) to |------------------|-----------------------------------------------------------------------------------------------------------| | `[DEVICE_IDS]` | An array of the strings that uniquely identify each Empatica device used by this participant. Since the most common use case involves having multiple zip files from a single device for each person, set this device id to an arbitrary string (we usually use their `pid`) | | `[LABEL]` | A string that is used in reports and visualizations. | - | `[START_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *after* this date time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | - | `[END_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *before* this date time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | + | `[START_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *after* this date-time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | + | `[END_DATE]` | A string with format `YYYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. Only data collected *before* this date-time will be included in the analysis. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | ### Automatic creation of participant files You can use a CSV file with a row per participant to automatically create participant files. ??? "`AWARE_DEVICE_TABLE` was deprecated" - In previous versions of RAPIDS, you could create participant files automatically using the `aware_device` table. We deprecated this option but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions below: + In previous versions of RAPIDS, you could create participant files automatically using the `aware_device` table. We deprecated this option, but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions below: ```sql SELECT device_id, device_id as fitbit_id, CONCAT("p", _id) as empatica_id, CONCAT("p", _id) as pid, if(brand = "iPhone", "ios", "android") as platform, CONCAT("p", _id) as label, DATE_FORMAT(FROM_UNIXTIME((timestamp/1000)- 86400), "%Y-%m-%d") as start_date, CURRENT_DATE as end_date from aware_device order by _id; @@ -126,21 +126,21 @@ CREATE_PARTICIPANT_FILES: IGNORED_DEVICE_IDS: [] ``` -Your CSV file (`[CSV_FILE_PATH]`) should have the following columns (headers) but the values within each column can be empty: +Your CSV file (`[CSV_FILE_PATH]`) should have the following columns (headers), but the values within each column can be empty: | Column | Description | |------------------|-----------------------------------------------------------------------------------------------------------| | device_id | Phone device id. Separate multiple ids with `;` | | fitbit_id | Fitbit device id. Separate multiple ids with `;` | -| empatica_id | Empatica device id. Since the most common use case involves having multiple zip files from a single device for each person, set this device id to an arbitrary string (we usually use their `pid`) | +| empatica_id | Empatica device id. Since the most common use case involves having various zip files from a single device for each person, set this device id to an arbitrary string (we usually use their `pid`) | | pid | Unique identifiers with the format pXXX (your participant files will be named with this string) | | platform | Use `android`, `ios` or `infer` as explained above, separate values with `;` | -| label | A human readable string that is used in reports and visualizations. | +| label | A human-readable string that is used in reports and visualizations. | | start_date | A string with format `YYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | | end_date | A string with format `YYY-MM-DD` or `YYYY-MM-DD HH:MM:SS`. By default, `YYYY-MM-DD` is interpreted as `YYYY-MM-DD 00:00:00`. | !!! example - We added white spaces to this example to make it easy to read but you don't have to. + We added white spaces to this example to make it easy to read, but you don't have to. ```csv device_id ,fitbit_id, empatica_id ,pid ,label ,platform ,start_date ,end_date @@ -158,11 +158,11 @@ snakemake -j1 create_participants_files ## Time Segments -Time segments (or epochs) are the time windows on which you want to extract behavioral features. For example, you might want to process data on every day, every morning, or only during weekends. RAPIDS offers three categories of time segments that are flexible enough to cover most use cases: **frequency** (short time windows every day), **periodic** (arbitrary time windows on any day), and **event** (arbitrary time windows around events of interest). See also our [examples](#segment-examples). +Time segments (or epochs) are the time windows on which you want to extract behavioral features. For example, you might want to process data every day, every morning, or only during weekends. RAPIDS offers three categories of time segments that are flexible enough to cover most use cases: **frequency** (short time windows every day), **periodic** (arbitrary time windows on any day), and **event** (arbitrary time windows around events of interest). See also our [examples](#segment-examples). === "Frequency Segments" - These segments are computed on every day and all have the same duration (for example 30 minutes). Set the following keys in your `config.yaml` + These segments are computed every day, and all have the same duration (for example, 30 minutes). Set the following keys in your `config.yaml` ```yaml TIME_SEGMENTS: &time_segments @@ -171,7 +171,7 @@ Time segments (or epochs) are the time windows on which you want to extract beha INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE ``` - The file pointed by `[TIME_SEGMENTS][FILE]` should have the following format and can only have 1 row. + The file pointed by `[TIME_SEGMENTS][FILE]` should have the following format and only have 1 row. | Column | Description | |--------|----------------------------------------------------------------------| @@ -198,7 +198,7 @@ Time segments (or epochs) are the time windows on which you want to extract beha === "Periodic Segments" - These segments can be computed every day, or on specific days of the week, month, quarter, and year. Their minimum duration is 1 minute but they can be as long as you want. Set the following keys in your `config.yaml`. + These segments can be computed every day or on specific days of the week, month, quarter, and year. Their minimum duration is 1 minute, but they can be as long as you want. Set the following keys in your `config.yaml`. ```yaml TIME_SEGMENTS: &time_segments @@ -207,7 +207,7 @@ Time segments (or epochs) are the time windows on which you want to extract beha INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE # or TRUE ``` - If `[INCLUDE_PAST_PERIODIC_SEGMENTS]` is set to `TRUE`, RAPIDS will consider instances of your segments back enough in the past as to include the first row of data of each participant. For example, if the first row of data from a participant happened on Saturday March 7th 2020 and the requested segment duration is 7 days starting on every Sunday, the first segment to be considered would start on Sunday March 1st if `[INCLUDE_PAST_PERIODIC_SEGMENTS]` is `TRUE` or on Sunday March 8th if `FALSE`. + If `[INCLUDE_PAST_PERIODIC_SEGMENTS]` is set to `TRUE`, RAPIDS will consider instances of your segments back enough in the past to include the first row of data of each participant. For example, if the first row of data from a participant happened on Saturday, March 7th, 2020, and the requested segment duration is 7 days starting on every Sunday, the first segment to be considered would begin on Sunday, March 1st if `[INCLUDE_PAST_PERIODIC_SEGMENTS]` is `TRUE` or on Sunday, March 8th if `FALSE`. The file pointed by `[TIME_SEGMENTS][FILE]` should have the following format and can have multiple rows. @@ -215,9 +215,9 @@ Time segments (or epochs) are the time windows on which you want to extract beha |---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | label | A string that is used as a prefix in the name of your time segments. It has to be **unique** between rows | | start_time | A string with format `HH:MM:SS` representing the starting time of this segment on any day | - | length | A string representing the length of this segment.It can have one or more of the following strings **`XXD XXH XXM XXS`** to represent days, hours, minutes and seconds. For example `7D 23H 59M 59S` | - | repeats_on | One of the follow options `every_day`, `wday`, `qday`, `mday`, and `yday`. The last four represent a week, quarter, month and year day | - | repeats_value | An integer complementing `repeats_on`. If you set `repeats_on` to `every_day` set this to `0`, otherwise `1-7` represent a `wday` starting from Mondays, `1-31` represent a `mday`, `1-91` represent a `qday`, and `1-366` represent a `yday` | + | length | A string representing the length of this segment. It can have one or more of the following strings **`XXD XXH XXM XXS`** to represent days, hours, minutes, and seconds. For example, `7D 23H 59M 59S` | + | repeats_on | One of the following options `every_day`, `wday`, `qday`, `mday`, and `yday`. The last four represent a week, quarter, month, and year day | + | repeats_value | An integer complementing `repeats_on`. If you set `repeats_on` to `every_day`, set this to `0`, otherwise `1-7` represent a `wday` starting from Mondays, `1-31` represent a `mday`, `1-91` represent a `qday`, and `1-366` represent a `yday` | !!! example @@ -230,11 +230,11 @@ Time segments (or epochs) are the time windows on which you want to extract beha night,00:00:00,5H 59M 59S,every_day,0 ``` - This configuration will create five segments instances (`daily`, `morning`, `afternoon`, `evening`, `night`) on any given day (`every_day` set to 0). The `daily` segment will start at midnight and will last `23:59:59`, the other four segments will start at 6am, 12pm, 6pm, and 12am respectively and last for `05:59:59`. + This configuration will create five segment instances (`daily`, `morning`, `afternoon`, `evening`, `night`) on any given day (`every_day` set to 0). The `daily` segment will start at midnight and last `23:59:59`; the other four segments will begin at 6am, 12pm, 6pm, and 12am, respectively, and last for `05:59:59`. === "Event segments" - These segments can be computed before or after an event of interest (defined as any UNIX timestamp). Their minimum duration is 1 minute but they can be as long as you want. The start of each segment can be shifted backwards or forwards from the specified timestamp. Set the following keys in your `config.yaml`. + These segments can be computed before or after an event of interest (defined as any UNIX timestamp). Their minimum duration is 1 minute, but they can be as long as you want. The start of each segment can be shifted backward or forwards from the specified timestamp. Set the following keys in your `config.yaml`. ```yaml TIME_SEGMENTS: &time_segments @@ -247,12 +247,12 @@ Time segments (or epochs) are the time windows on which you want to extract beha | Column | Description | |---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| - | label | A string that is used as a prefix in the name of your time segments. If labels are unique, every segment is independent; if two or more segments have the same label, their data will be grouped when computing auxiliary data for features like the `most frequent contact` for calls (the most frequent contact will be computed across all these segments). There cannot be two *overlaping* event segments with the same label (RAPIDS will throw an error) | + | label | A string that is used as a prefix in the name of your time segments. If labels are unique, every segment is independent; if two or more segments have the same label, their data will be grouped when computing auxiliary data for features like the `most frequent contact` for calls (the most frequent contact will be calculated across all these segments). There cannot be two *overlapping* event segments with the same label (RAPIDS will throw an error) | | event_timestamp | A UNIX timestamp that represents the moment an event of interest happened (clinical relapse, survey, readmission, etc.). The corresponding time segment will be computed around this moment using `length`, `shift`, and `shift_direction` | - | length | A string representing the length of this segment. It can have one or more of the following keys `XXD XXH XXM XXS` to represent a number of days, hours, minutes, and seconds. For example `7D 23H 59M 59S` | - | shift | A string representing the time shift from `event_timestamp`. It can have one or more of the following keys `XXD XXH XXM XXS` to represent a number of days, hours, minutes and seconds. For example `7D 23H 59M 59S`. Use this value to change the start of a segment with respect to its `event_timestamp`. For example, set this variable to `1H` to create a segment that starts 1 hour from an event of interest (`shift_direction` determines if it's before or after). | + | length | A string representing the length of this segment. It can have one or more of the following keys `XXD XXH XXM XXS` to represent days, hours, minutes, and seconds. For example, `7D 23H 59M 59S` | + | shift | A string representing the time shift from `event_timestamp`. It can have one or more of the following keys `XXD XXH XXM XXS` to represent days, hours, minutes, and seconds. For example, `7D 23H 59M 59S`. Use this value to change the start of a segment with respect to its `event_timestamp`. For example, set this variable to `1H` to create a segment that starts 1 hour from an event of interest (`shift_direction` determines if it's before or after). | | shift_direction | An integer representing whether the `shift` is before (`-1`) or after (`1`) an `event_timestamp` | - |device_id| The device id (smartphone or fitbit) to whom this segment belongs to. You have to create a line in this event segment file for each event of a participant that you want to analyse. If you have participants with multiple device ids you can choose any of them| + |device_id| The device id (smartphone or Fitbit) to whom this segment belongs to. You have to create a line in this event segment file for each event of a participant that you want to analyze. If you have participants with multiple device ids, you can choose any of them| !!! example ```csv @@ -267,9 +267,9 @@ Time segments (or epochs) are the time windows on which you want to extract beha mood,1587906020000,7D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 ``` - This example will create eight segments for a single participant (`a748ee1a...`), five independent `stressX` segments with various lengths (1,4,3,7, and 9 hours). Segments `stress1`, `stress3`, and `stress5` are shifted forwards by 5 minutes and `stress2` and `stress4` are shifted backwards by 4 hours (that is, if the `stress4` event happened on March 15th at 1pm EST (`1584291600000`), the time segment will start on that day at 9am and end at 4pm). + This example will create eight segments for a single participant (`a748ee1a...`), five independent `stressX` segments with various lengths (1,4,3,7, and 9 hours). Segments `stress1`, `stress3`, and `stress5` are shifted forwards by 5 minutes, and `stress2` and `stress4` are shifted backward by 4 hours (that is, if the `stress4` event happened on March 15th at 1pm EST (`1584291600000`), the time segment will start on that day at 9am and end at 4pm). - The three `mood` segments are 1 hour, 1 day and 7 days long and have no shift. In addition, these `mood` segments are grouped together, meaning that although RAPIDS will compute features on each one of them, some necessary information to compute a few of such features will be extracted from all three segments, for example the phone contact that called a participant the most or the location clusters visited by a participant. + The three `mood` segments are 1 hour, 1 day, and 7 days long and have no shift. In addition, these `mood` segments are grouped together, meaning that although RAPIDS will compute features on each one of them, some information for such computation will be extracted from all three segments, for example, the phone contact that called a participant the most, or the location clusters visited by a participant. ??? info "Date time labels of event segments" In the final feature file, you will find a row per event segment. The `local_segment` column of each row has a `label`, a start date-time string, and an end date-time string. @@ -280,7 +280,7 @@ Time segments (or epochs) are the time windows on which you want to extract beha All sensor data is always segmented based on timestamps, and the date-time strings are attached for informative purposes. For example, you can plot your features based on these strings. - When you configure RAPIDS to work with a single time zone, such tz code will be used to convert start/end timestamps (the ones you typed in the event segments file) into start/end date-time strings. However, when you configure RAPIDS to work with multiple time zones, RAPIDS will use the most common time zone across all devices of every participant to do the conversion. The most common time zone is the one in which a participant spent the most time. + When you configure RAPIDS to work with a single time zone, such time zone code will be used to convert start/end timestamps (the ones you typed in the event segments file) into start/end date-time strings. However, when you configure RAPIDS to work with multiple time zones, RAPIDS will use the most common time zone across all devices of every participant to do the conversion. The most common time zone is the one in which a participant spent the most time. In practical terms, this means that the date-time strings of event segments that happened in uncommon time zones will have shifted start/end date-time labels. However, the data within each segment was correctly filtered based on timestamps. @@ -344,7 +344,7 @@ Time segments (or epochs) are the time windows on which you want to extract beha ### Single timezone -If your study only happened in a single time zone or you want to ignore short trips of your participants to different time zones, select the appropriate code form this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) and change the following config key. Double-check your timezone code pick, for example, US Eastern Time is `America/New_York` not `EST` +If your study only happened in a single time zone or you want to ignore short trips of your participants to different time zones, select the appropriate code from this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) and change the following config key. Double-check your timezone code pick; for example, US Eastern Time is `America/New_York`, not `EST`. ``` yaml TIMEZONE: @@ -376,7 +376,7 @@ Parameters for `[TIMEZONE]` |--|--| |`[TYPE]`| Either `SINGLE` or `MULTIPLE` as explained above | |`[SINGLE][TZCODE]`| The time zone code from this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) to be used across all devices | -|`[MULTIPLE][TZCODES_FILE]`| A CSV file containing the time zones in which participants' devices sensed data (see the required format below). Multiple devices can be linked to the same person, read more in [Participants Files](#participant-files) | +|`[MULTIPLE][TZCODES_FILE]`| A CSV file containing the time zones in which participants' devices sensed data (see the required format below). Multiple devices can be linked to the same person. Read more in [Participants Files](#participant-files) | |`[MULTIPLE][IF_MISSING_TZCODE]`| When a device is missing from `[TZCODES_FILE]` Set this flag to `STOP` to stop RAPIDS execution and show an error, or to `USE_DEFAULT` to assign the time zone specified in `[DEFAULT_TZCODE]` to any such devices | |`[MULTIPLE][FITBIT][ALLOW_MULTIPLE_TZ_PER_DEVICE]`| You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in "How does RAPIDS handle Fitbit devices?" below. | |`[MULTIPLE][FITBIT][INFER_FROM_SMARTPHONE_TZ]`| You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in "How does RAPIDS handle Fitbit devices?" below. | @@ -416,7 +416,7 @@ Parameters for `[TIMEZONE]` ```bash python tools/create_multi_timezones_file.py ``` - The `TZCODES_FILE` will be saved as `data/external/multiple_timezones.csv` file. + The `TZCODES_FILE` will be saved as `data/external/multiple_timezones.csv`. ??? note "What happens if participant X lives in Los Angeles but participant Y lives in Amsterdam and they both stayed there during my study?" Add a row per participant and set timestamp to `0`: @@ -431,21 +431,21 @@ Parameters for `[TIMEZONE]` If `[IF_MISSING_TZCODE]` is set to `STOP`, RAPIDS will stop its execution and show you an error message. - If `[IF_MISSING_TZCODE]` is set to `USE_DEFAULT`, it will assign the time zone specified in `[DEFAULT_TZCODE]` to any devices with missing time zone information in `[TZCODES_FILE]`. This is helpful if only a few of your participants had multiple timezones and you don't want to specify the same time zone for the rest. + If `[IF_MISSING_TZCODE]` is set to `USE_DEFAULT`, it will assign the time zone specified in `[DEFAULT_TZCODE]` to any devices with missing time zone information in `[TZCODES_FILE]`. This is helpful if only a few of your participants had multiple timezones, and you don't want to specify the same time zone for the rest. ??? note "How does RAPIDS handle Fitbit devices?" - Fitbit devices are not time zone aware and they always log data with a local date-time string. + Fitbit devices are not time zone aware, and they always log data with a local date-time string. - - When none of the Fitbit devices in your study changed time zones (e.g., `p01` was always in New York and `p02` was always in Amsterdam), you can set a single time zone per Fitbit device id along with a timestamp 0 (you can still assign multiple time zones to smartphone device ids) + - When none of the Fitbit devices in your study changed time zones (e.g., `p01` was always in New York and `p02` was always in Amsterdam), you can set a single time zone per Fitbit device id along with a timestamp of 0 (you can still assign multiple time zones to smartphone device ids) ```csv device_id, tzcode, timestamp fitbit123, America/New_York, 0 fitbit999, Europe/Amsterdam, 0 ``` - - On the other hand, when at least one of your Fitbit devices changed time zones **AND** you want RAPIDS to take into account these changes, you need to set `[ALLOW_MULTIPLE_TZ_PER_DEVICE]` to `True`. **You have to manually allow this option because you need to be aware it can produce inaccurate features around the times when time zones changed**. This is because we cannot know exactly when the Fitbit device detected and processed the time zone change. + - On the other hand, when at least one of your Fitbit devices changed time zones **AND** you want RAPIDS to take into account these changes, you need to set `[ALLOW_MULTIPLE_TZ_PER_DEVICE]` to `True`. **You have to manually allow this option because you need to be aware it can produce inaccurate features around the times when time zones changed**. This is because we cannot know precisely when the Fitbit device detected and processed the time zone change. - If you want to `ALLOW_MULTIPLE_TZ_PER_DEVICE` you will need to add any time zone changes per device in the `TZCODES_FILE` as explained above. You could obtain this data by hand but if your participants also used a smartphone during your study, you can use their time zone logs. Recall that in RAPIDS every participant is represented with a participant file `pXX.yaml`, this file links together multiple devices and we will use it to know what smartphone time zone data should be applied to Fitbit devices. Thus set `INFER_FROM_SMARTPHONE_TZ` to `TRUE`, if you have included smartphone time zone data in your `TZCODE_FILE` and you want to make a participant's Fitbit data time zone aware with their respective smartphone data. + If you want to `ALLOW_MULTIPLE_TZ_PER_DEVICE`, you will need to add any time zone changes per device in the `TZCODES_FILE` as explained above. You could obtain this data by hand, but if your participants also used a smartphone during your study, you can use their time zone logs. Recall that in RAPIDS, every participant is represented with a participant file `pXX.yaml`, this file links together multiple devices, and we will use it to know what smartphone time zone data should be applied to Fitbit devices. Thus set `INFER_FROM_SMARTPHONE_TZ` to `TRUE`, if you have included smartphone time zone data in your `TZCODE_FILE` and want to make a participant's Fitbit data time zone aware with their respective smartphone data. --- ## Data Stream Configuration @@ -518,24 +518,24 @@ Modify the following keys in your `config.yaml` depending on the [data stream](. === "fitbitjson_mysql" - This data stream process Fitbit data inside a JSON column as obtained from the Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in [`fitbitjson_mysql`](../../datastreams/fitbitjson-mysql#format). + This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in [`fitbitjson_mysql`](../../datastreams/fitbitjson-mysql#format). | Key | Description | |---------------------|----------------------------------------------------------------------------------------------------------------------------| | `[DATABASE_GROUP]` | A database credentials group. Read the instructions below to set it up | - | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | + | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes that start between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE are regarded as today's sleep episodes. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | --8<---- "docs/snippets/database.md" === "fitbitjson_csv" - This data stream process Fitbit data inside a JSON column as obtained from the Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in [`fitbitjson_csv`](../../datastreams/fitbitjson-csv#format). + This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in [`fitbitjson_csv`](../../datastreams/fitbitjson-csv#format). | Key | Description | |---------------------|----------------------------------------------------------------------------------------------------------------------------| | `[FOLDER]` | Folder where you have to place a CSV file **per** Fitbit sensor. Each file has to contain all the data from every participant you want to process. | - | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | + | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes that start between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE are regarded as today's sleep episodes. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | === "fitbitparsed_mysql" @@ -546,7 +546,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](. | Key | Description | |---------------------|----------------------------------------------------------------------------------------------------------------------------| | `[DATABASE_GROUP]` | A database credentials group. Read the instructions below to set it up | - | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | + | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes that start between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE are regarded as today's sleep episodes. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | --8<---- "docs/snippets/database.md" @@ -557,7 +557,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](. | Key | Description | |---------------------|----------------------------------------------------------------------------------------------------------------------------| | `[FOLDER]` | Folder where you have to place a CSV file **per** Fitbit sensor. Each file has to contain all the data from every participant you want to process. | - | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | + | `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes that start between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE are regarded as today's sleep episodes. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. | === "Empatica" @@ -580,7 +580,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](. | `[FOLDER]` | The relative path to a folder containing one subfolder per participant. The name of a participant folder should match their device_id assigned in their participant file. Each participant folder can have one or more zip files with any name; in other words, the sensor data in those zip files belong to a single participant. The zip files are [automatically](https://support.empatica.com/hc/en-us/articles/201608896-Data-export-and-formatting-from-E4-connect-) generated by Empatica and have a CSV file per sensor (`ACC`, `HR`, `TEMP`, `EDA`, `BVP`, `TAGS`). All CSV files of the same type contained in one or more zip files are uncompressed, parsed, sorted by timestamp, and joined together.| ??? example "Example of an EMPATICA FOLDER" - In the file tree below, we want to process three participants' data: `p01`, `p02`, and `p03`. `p01` has two zip files, `p02` has only one zip file, and `p03` has three zip files. Each zip has a CSV file per sensor that are joined together and processed by RAPIDS. + In the file tree below, we want to process three participants' data: `p01`, `p02`, and `p03`. `p01` has two zip files, `p02` has only one zip file, and `p03` has three zip files. Each zip has a CSV file per sensor that is joined together and processed by RAPIDS. ```bash data/ # this folder exists in the root RAPIDS folder diff --git a/docs/setup/overview.md b/docs/setup/overview.md index fab6ed2e..72e732e4 100644 --- a/docs/setup/overview.md +++ b/docs/setup/overview.md @@ -4,49 +4,47 @@ Let's review some key concepts we use throughout these docs: |Definition                | Description| |--|--| -|Data Stream|Set of sensor data collected using a specific type of **device** with a specific **format** and stored in a specific **container**. For example, smartphone (device) data collected with the [AWARE Framework](https://awareframework.com/) (format) and stored in a MySQL database (container).| |Device| A mobile or wearable device, like smartphones, Fitbit wrist bands, Oura Rings, etc.| |Sensor| A physical or digital module builtin in a device that produces a data stream. For example, a smartphone's accelerometer or screen. -|Format| A file in RAPIDS that describes how sensor data from a device matches RAPIDS data representation.| -|Container|An electronic repository of data, it can be a database, a file, a Web API, etc. RAPIDS connects to containers through container scripts.| +|Data Stream|Set of sensor data collected using a specific **device** with a particular ** format** and stored in a specific **container**. For example, smartphone (device) data collected with the [AWARE Framework](https://awareframework.com/) (format) and stored in a MySQL database (container).| +|Data Stream Format| Sensor data produced by a data stream have columns with specific names and types. RAPIDS can process a data stream using a `format.yaml` file that describes the raw data columns and any necessary transformations.| +|Data Stream Container|Sensor data produced by a data stream can be stored in a database, electronic files, or arbitrary electronic containers. RAPIDS can pull (download) the data from a stream using a container script implemented in R or Python.| |Participant|A person that took part in a monitoring study| -|Behavioral feature| A metric computed from raw sensor data quantifying the behavior of a participant. For example, time spent at home computed from location data. These are also known as digital biomarkers| +|Behavioral feature| A metric computed from raw sensor data quantifying the behavior of a participant. For example, time spent at home calculated from location data. These are also known as digital biomarkers| |Time segment| Time segments (or epochs) are the time windows on which RAPIDS extracts behavioral features. For example, you might want to compute participants' time at home every morning or only during weekends. You define time segments in a CSV file that RAPIDS processes.| -|Time zone| A string code like `America/New_York` that represents a time zone where a device logged data. You can process data collected in single or multiple time zones.| -|Provider| A script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [[PHONE_LOCATIONS][DORYAB]](../../features/phone-locations/#doryab-provider).| -|config.yaml| A YAML file where you can modify parameters to process data streams and behavioral features. This is the heart of RAPIDS and the file that you will modify the most.| +|Time zone| A string like `America/New_York` that represents a time zone where a device logged data. You can process data collected in single or multiple time zones for every participant.| +|Feature Provider| A script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [[PHONE_LOCATIONS][DORYAB]](../../features/phone-locations/#doryab-provider).| +|config.yaml| A YAML file where you can modify parameters to process data streams and behavioral features. This is the heart of RAPIDS and the file that you will change the most.| |credentials.yaml| A YAML file where you can define credential groups (user, password, host, etc.) if your data stream needs to connect to a database or Web API| -|Participant file(s)| A YAML file that links one or more smartphone or wearable devices that a single participant used. RAPIDS needs one file per participant. | +|Participant file(s)| A YAML file that links one or more smartphone or wearable devices used by a single participant. RAPIDS needs one file per participant. | !!! success "What can I do with RAPIDS?" - You can do one or more of these things with RAPIDS: - - 1. [Extract behavioral features](../../features/feature-introduction/) from smartphone, Fitbit, and Empatica's [supported data streams](../../datastreams/data-streams-introduction/) - 1. [Add your own behavioral features](../../features/add-new-features/) (we can include them in RAPIDS if you want to share them with the community) - 1. [Add support for new data streams](../../datastreams/add-new-data-streams/) if yours cannot be processed by RAPIDS yet - 1. Create visualizations for [data quality control](../../visualizations/data-quality-visualizations/) and [feature inspection](../../visualizations/feature-visualizations/) - 1. [Extending RAPIDS to organize your analysis](../../workflow-examples/analysis/) and publish a code repository along with your code + - [Extract behavioral features](../../features/feature-introduction/) from smartphone, Fitbit, and Empatica's [supported data streams](../../datastreams/data-streams-introduction/) + - [Add your own behavioral features](../../features/add-new-features/) (we can include them in RAPIDS if you want to share them with the community) + - [Add support for new data streams](../../datastreams/add-new-data-streams/) if yours cannot be processed by RAPIDS yet + - Create visualizations for [data quality control](../../visualizations/data-quality-visualizations/) and [feature inspection](../../visualizations/feature-visualizations/) + - [Extending RAPIDS to organize your analysis](../../workflow-examples/analysis/) and publish a code repository along with your code !!! hint - - **In order to follow any of the previous tutorials, you will have to [Install](../installation/), [Configure](../configuration/), and learn how to [Execute](../execution/) RAPIDS.** - - We recommend you follow the [Minimal Example](../../workflow-examples/minimal/) tutorial to get familiar with RAPIDS - - [Email us](../../team), leave a comment in these docs, create a [Github issue](https://github.com/carissalow/rapids/issues) or text us in [Slack](http://awareframework.com:3000/) if you have any questions + - In order to follow any of the previous tutorials, you will have to [Install](../installation/), [Configure](../configuration/), and learn how to [Execute](../execution/) RAPIDS. + + - [Open a new discussion](https://github.com/carissalow/rapids/discussions) in Github if you have any questions and [open an issue](https://github.com/carissalow/rapids/issues) to report any bugs. ## Frequently Asked Questions ### General ??? question "What exactly is RAPIDS?" - RAPIDS is a group of configuration files and R and Python scripts that are executed by [Snakemake](https://snakemake.github.io/). You can get a copy of RAPIDS by cloning our Github repository. + RAPIDS is a group of configuration files and R and Python scripts executed by [Snakemake](https://snakemake.github.io/). You can get a copy of RAPIDS by cloning our Github repository. RAPIDS is not a web application or server; all the processing is done in your laptop, server, or computer cluster. ??? question "How does RAPIDS work?" You will most of the time only have to modify configuration files in YAML format (`config.yaml`, `credentials.yaml`, and participant files `pxx.yaml`), and in CSV format (time zones and time segments). - RAPIDS pulls data from different data containers and processes it in steps. The input/output of each step is saved as a CSV file for inspection; you can check the files that are created for each sensor on its documentation page. + RAPIDS pulls data from different data containers and processes it in steps. The input/output of each stage is saved as a CSV file for inspection; you can check the files created for each sensor on its documentation page. All data is stored in `data/`, and all processing Python and R scripts are stored in `src/`. @@ -65,7 +63,7 @@ Let's review some key concepts we use throughout these docs: RAPIDS can connect to these containers if it has a `format.yaml` and a `container.[R|py]` script used to pull the correct data and mutate it to comply with RAPIDS' internal data representation. Once the data stream is in RAPIDS, it goes through some basic transformations (scripts), one that assigns a time segment and a time zone to each data row, and another one that creates "episodes" of data for some sensors that need it (like screen, battery, activity recognition, and sleep intraday data). - After this, RAPIDS executes the requested `PROVIDER` script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data or based on computed features. + After this, RAPIDS executes the requested `PROVIDER` script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data or based on calculated features.
@@ -73,7 +71,7 @@ Let's review some key concepts we use throughout these docs:
??? question "Is my data private?" - Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can have access to your datasets. + Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can access your datasets. ??? question "Do I need to have coding skills to use RAPIDS?" If you want to extract the behavioral features or visualizations that RAPIDS offers out of the box, the answer is no. However, you need to be comfortable running commands in your terminal and familiar with editing YAML files and CSV files. @@ -93,25 +91,25 @@ Let's review some key concepts we use throughout these docs: We believe RAPIDS can benefit your analysis in several ways: - RAPIDS has more than 250 [behavioral features](../../features/add-new-features/) available, many of them tested and used by other researchers. - - RAPIDS can extract features in dynamic [time segments](../../setup/configuration/#time-segments) (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don't have to deal with time zones, day light saving changes, or date arithmetic. + - RAPIDS can extract features in dynamic [time segments](../../setup/configuration/#time-segments) (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don't have to deal with time zones, daylight saving changes, or date arithmetic. - Your analysis is less prone to errors. Every participant sensor dataset is analyzed in the same way and isolated from each other. - - If you have lots of data, out-of-the-box parallel execution will speed up your analysis and if your computer crashes, RAPIDS will start from where it left of. - - You can publish your analysis code along with your papers and be sure it will run exactly as it does in your computer. + - If you have lots of data, out-of-the-box parallel execution will speed up your analysis, and if your computer crashes, RAPIDS will start from where it left off. + - You can publish your analysis code along with your papers and be sure it will run exactly as it does on your computer. - You can still add your own [behavioral features](../../features/add-new-features/) and [data streams](../../datastreams/add-new-data-streams/) if you need to, and the community will be able to reuse your work. ### Data Streams ??? question "Can I process smartphone data collected with Beiwe, PurpleRobot, or app X?" - Yes, but you need to add a new data stream to RAPIDS (a new `format.yaml` and container script in R or Python). Follow this [tutorial](../../datastreams/add-new-data-streams/). [Email us](../../team), create a [Github issue](https://github.com/carissalow/rapids/issues) or text us in [Slack](http://awareframework.com:3000/) if you have any questions. + Yes, but you need to add a new data stream to RAPIDS (a new `format.yaml` and container script in R or Python). Follow this [tutorial](../../datastreams/add-new-data-streams/). [Open a new discussion](https://github.com/carissalow/rapids/discussions) in Github if you have any questions. If you do so, let us know so we can integrate your work into RAPIDS. ??? question "Can I process data from Oura Rings, Actigraphs, or wearable X?" - The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources so we add support for different devices on an as-needed basis, but we would be happy to collaborate with you to add new wearables. [Email us](../../team), create a [Github issue](https://github.com/carissalow/rapids/issues) or text us in [Slack](http://awareframework.com:3000/) if you have any questions. + The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources, so we add support for additional devices on an as-needed basis, but we would be happy to collaborate. [Open a new discussion](https://github.com/carissalow/rapids/discussions) in Github if you have any questions. ??? question "Can I process smartphone or wearable data stored in PostgreSQL, Oracle, SQLite, CSV files, or data container X?" - Yes, but you need to add a new data stream to RAPIDS (a new `format.yaml` and container script in R or Python). Follow this [tutorial](../../datastreams/add-new-data-streams/). If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container; you can reuse their `format.yaml` and only implement a new container script. [Email us](../../team), create a [Github issue](https://github.com/carissalow/rapids/issues) or text us in [Slack](http://awareframework.com:3000/) if you have any questions. + Yes, but you need to add a new data stream to RAPIDS (a new `format.yaml` and container script in R or Python). Follow this [tutorial](../../datastreams/add-new-data-streams/). If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container, you can reuse their `format.yaml` and only implement a new container script. [Open a new discussion](https://github.com/carissalow/rapids/discussions) in Github if you have any questions. If you do so, let us know so we can integrate your work into RAPIDS. @@ -138,4 +136,4 @@ Let's review some key concepts we use throughout these docs: Yes, you don't need to write any code to use RAPIDS out of the box. If you need to add support for new [data streams](../../datastreams/add-new-data-streams/) or [behavioral features](../../features/add-new-features/) you can use scripts in either language. ??? question "I have scripts that clean raw data from X sensor, can I use them with RAPIDS?" - Yes, you can add them as a [`[MUTATION][SCRIPT]`](../../datastreams/add-new-data-streams/#complex-mapping) in the `format.yaml` of the [data stream](../../datastreams/data-streams-introduction/) you are using. You will add a `main` function that will receive a data frame with the raw data for that sensor that in turn will be used to compute behavioral features. + Yes, you can add them as a [`[MUTATION][SCRIPT]`](../../datastreams/add-new-data-streams/#complex-mapping) in the `format.yaml` of the [data stream](../../datastreams/data-streams-introduction/) you are using. You will add a `main` function that will receive a data frame with the raw data for that sensor that, in turn, will be used to compute behavioral features. diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 91707625..5638aeaf 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -31,3 +31,21 @@ div[data-md-component=announce]>div#announce-msg>a{ min-width: 0rem; } +/* Users and contributors grid */ +.users { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + grid-template-rows: auto; + grid-gap: 15px; +} + +.users > div { + display: flex; + justify-content: center; + align-items: center; +} + +.users > div > img { + max-height: 100px; + object-fit: contain; +} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index fd80747d..ea96f145 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -39,7 +39,7 @@ extra: provider: mike social: - icon: fontawesome/brands/twitter - link: 'https://twitter.com/julio_ui' + link: 'https://twitter.com/RAPIDS_Science' extra_javascript: - https://polyfill.io/v3/polyfill.min.js?features=es6 - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js @@ -73,13 +73,14 @@ extra_css: - stylesheets/extra.css nav: - Home: 'index.md' + - Overview: setup/overview.md + - Minimal Example: workflow-examples/minimal.md + - Citation: citation.md + - Contributing: contributing.md - Setup: - - Overview: setup/overview.md - - Minimal Example: workflow-examples/minimal.md - Installation: 'setup/installation.md' - Configuration: setup/configuration.md - Execution: setup/execution.md - - Citation: citation.md - Data Streams: - Introduction: datastreams/data-streams-introduction.md - Phone: