From 763bec9f69c6a63e292bfa3097fdaf66b9a7e9ed Mon Sep 17 00:00:00 2001 From: Prasad Talasila Date: Wed, 18 Oct 2023 22:57:12 +0200 Subject: [PATCH] Updates to admin and example documentation (#190) - Updates the overview and authentication pages of admin section - Adds documentation for Mass Spring Damper example --------- Co-authored-by: nichlaes Co-authored-by: Asti Co-authored-by: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> --- docs/admin/client/auth.md | 96 ++++---- docs/admin/overview.md | 28 +++ docs/admin/trial.md | 49 ++-- docs/assets/into-cps-logo.png | Bin 21059 -> 40799 bytes docs/assets/into-cps-logo.svg | 214 ++++++++++++++++++ docs/user/examples/examples.drawio | 52 +++++ docs/user/examples/index.md | 34 ++- .../examples/mass-spring-damper/README.md | 81 +++++++ .../mass-spring-damper/dt-structure.png | Bin 0 -> 36189 bytes .../mass-spring-damper_multibody_system.png | Bin 0 -> 53074 bytes mkdocs-github.yml | 8 +- mkdocs.yml | 10 +- servers/config/gateway/README.md | 7 +- 13 files changed, 502 insertions(+), 77 deletions(-) create mode 100644 docs/admin/overview.md create mode 100755 docs/assets/into-cps-logo.svg create mode 100755 docs/user/examples/examples.drawio create mode 100644 docs/user/examples/mass-spring-damper/README.md create mode 100755 docs/user/examples/mass-spring-damper/dt-structure.png create mode 100644 docs/user/examples/mass-spring-damper/mass-spring-damper_multibody_system.png diff --git a/docs/admin/client/auth.md b/docs/admin/client/auth.md index ce9f0bb38..41205980a 100644 --- a/docs/admin/client/auth.md +++ b/docs/admin/client/auth.md @@ -1,57 +1,55 @@ -# OAuth Authentication for React Client Website - -The react client website uses OAuth authentication protocol for user -authentication. The PKCE authentication flow of OAuth protocol is used -for the client website. The authentication has to be setup on a gitlab -server. -**An oauth application needs to be created on a gitlab instance under admin user**. -Then all other users can use the same gitlab instance for oauth authentication. -This means commercial gitlab.com can not be used for multi-user authentication -system required by DTaaS. You will need to run an on-premise instance of gitlab. -You can use -[gitlab omnibus docker](https://docs.gitlab.com/ee/install/docker.html) for -this purpose. Please setup OAuth application as -[instance wide authentication type](https://docs.gitlab.com/ee/integration/oauth_provider.html#create-an-instance-wide-application). - -Before setting up oauth application on gitlab, you need to first decide on the -hostname for your website. We recommend using a self-hosted gitlab instance which -will be used in the other parts of the DTaaS application. - -Two more URLs are required for the PKCE authentication flow to work properly. -They are the **callback URL** and **logout URL**. The callback URL tells the oauth -provider the URL of the page that all the signed in users are shown. This URL will -be different from the landing homepage of the DTaaS application. The logout URL is -the URL that will be shown after a user logs out. - -Here is an example for hosting a DTaaS application without any basename. +# Setting Up OAuth -```txt -DTaaS application URL: https://foo.com -Gitlab instance URL: https://foo.gitlab.com -Callback URL: https://foo.com/Library -Logout URL: https://foo.com -``` +To enable user authentication on DTaaS React client website, you will use +the OAuth authentication protocol, specifically the PKCE authentication flow. +Here are the steps to get started: + +**1. Choose Your GitLab Server:** + +- You need to set up OAuth authentication on a GitLab server. + The commercial gitlab.com is not suitable for multi-user authentication + (DTaaS requires this), so you'll need an on-premise GitLab instance. +- You can use + [GitLab Omnibus Docker for this purpose](https://docs.gitlab.com/ee/install/docker.html). +- Configure the OAuth application as + an [instance-wide authentication type](https://docs.gitlab.com/ee/integration/oauth_provider.html#create-an-instance-wide-application). + +**2. Determine Your Website's Hostname:** + +- Before setting up OAuth on GitLab, decide on the hostname for your website. + It's recommended to use a self-hosted GitLab instance, which you will use in + other parts of the DTaaS application. + +**3. Define Callback and Logout URLs:** + +- For the PKCE authentication flow to function correctly, you need two URLs: + a callback URL and a logout URL. +- The callback URL informs the OAuth provider of the page where + signed-in users should be redirected. It's different from the landing + homepage of the DTaaS application. +- The logout URL is where users will be directed after logging out. + +**4. OAuth Application Creation:** + +- During the creation of the OAuth application on GitLab, you need to specify + the scope. Choose openid, profile, read_user, read_repository, and api scopes. -During the creation of oauth application on gitlab, you need to decide on the -scope of this oauth application. -Choose `openid profile read_user read_repository api` scopes. +**5. Application ID:** -After successful creation of oauth application, gitlab generates an application -ID. This application ID is a long string of HEX values. You need to note this -down and use in configuration files. An example oauth Client ID is: -`934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0`. +- After successfully creating the OAuth application, GitLab generates + an application ID. This is a long string of HEX values that you will need for + your configuration files. -You need the following information from the OAuth application registered on Gitlab: +**6. Required Information from OAuth Application:** -| Gitlab Variable Name | Variable name in Client env.js | Default Value | -|:---|:---|:---| -| OAuth Provider | REACT_APP_AUTH_AUTHORITY | https://gitlab.foo.com/ | -| Application ID | REACT_APP_CLIENT_ID | -| Callback URL | REACT_APP_REDIRECT_URI | https://foo.com/Library | -| Scopes | REACT_APP_GITLAB_SCOPES | openid, profile, read_user, read_repository, api | +- You will need the following information from the OAuth application registered on GitLab: -The same **URLs** and **Client ID** are useful for both the regular hosting of -DTaaS application and also as the CI/CD server to be used for the development work. +|GitLab Variable Name|Variable Name in Client env.js|Default Value| +|---|---|---| +|OAuth Provider|REACT_APP_AUTH_AUTHORITY|[https://gitlab.foo.com/](https://gitlab.foo.com/)| +|Application ID|REACT_APP_CLIENT_ID|| +|Callback URL|REACT_APP_REDIRECT_URI|[https://foo.com/Library](https://foo.com/Library)| +|Scopes|REACT_APP_GITLAB_SCOPES|openid, profile, read_user, read_repository, api| ## Development Environment @@ -92,7 +90,7 @@ All of these instances can use the same gitlab instance for authentication. || If you are hosting multiple DTaaS instances on the same server, -do not a DTaaS with a null basename on the same server. +do not install DTaaS with a null basename on the same server. Even though it works well, the setup is confusing to setup and may lead to maintenance issues. diff --git a/docs/admin/overview.md b/docs/admin/overview.md new file mode 100644 index 000000000..cfaf7aa0c --- /dev/null +++ b/docs/admin/overview.md @@ -0,0 +1,28 @@ +# Overview + +## What is the goal + +The goal is to set up the DTaaS infrastructure in order to enable +your users to use the DTaaS. +As an admin you will administrate the users and the servers of the system. + +## What are the requirements + +### OAuth Provider + +You need to have an OAuth Provider running, which the DTaaS can use for +authentication. This is described further in +the [authentication section](./client/auth.md). + +## What to install + +The DTaaS can be installed in different ways. Each version is for different purposes: + +- [Trial installation on single host](./trial.md) +- [Production installation on single host](./host.md) +- On [one](vagrant/single-machine.md) or [two](vagrant/two-machines.md) + Vagrant virtual machines +- Seperater Packages: [client website](client/CLIENT.md) and + [lib microservice](servers/lib/LIB-MS.md) + +Following the installation that fit your usecase. diff --git a/docs/admin/trial.md b/docs/admin/trial.md index aee3eefc9..84ce1f8cd 100644 --- a/docs/admin/trial.md +++ b/docs/admin/trial.md @@ -1,24 +1,20 @@ # Trial Installation -The software can be installed either on -Ubuntu Server 22.04 Operating System or -on vagrant virtual machine(s). - -A single step install script is helpful in performing a -trial run of the software. This script installs DTaaS software -with default credentials and users on a Ubuntu server 22.04 -Operating System. +To try out the software, you can install it on either an Ubuntu Server 22.04 +Operating System or within a Vagrant virtual machine. +Provided is a one-step installation script. This script sets up +the DTaaS software with default credentials and users. You can use it to check a test installation of DTaaS software. ## Pre-requisites -### Domain name +### 1. Domain name You need a domain name to run the application. The install script -assumes **foo.com** to be your domain name. Please change it -to a relevant one. +assumes **foo.com** to be your domain name. You will change this +after running the script. -### Gitlab OAuth application +### 2. Gitlab OAuth application The DTaaS react website requires Gitlab OAuth provider. If you need more help with this step, please see @@ -26,18 +22,18 @@ the [Authentication page](client/auth.md). You need the following information from the OAuth application registered on Gitlab: -| Gitlab Variable Name | Variable name in Client env.js | Default Value | -|:---|:---|:---| -| OAuth Provider | REACT_APP_AUTH_AUTHORITY | https://gitlab.foo.com/ | -| Application ID | REACT_APP_CLIENT_ID | -| Callback URL | REACT_APP_REDIRECT_URI | https://foo.com/Library | -| Scopes | REACT_APP_GITLAB_SCOPES | openid, profile, read_user, read_repository, api | +| Gitlab Variable Name | Variable name in Client env.js | Default Value | +| :------------------- | :----------------------------- | :----------------------------------------------- | +| OAuth Provider | REACT_APP_AUTH_AUTHORITY | https://gitlab.foo.com/ | +| Application ID | REACT_APP_CLIENT_ID | +| Callback URL | REACT_APP_REDIRECT_URI | https://foo.com/Library | +| Scopes | REACT_APP_GITLAB_SCOPES | openid, profile, read_user, read_repository, api | You can also see [Gitlab help page](https://docs.gitlab.com/ee/integration/oauth_provider.html) for getting the Gitlab OAuth application details. -### Install +## Install ```bash wget https://raw.githubusercontent.com/INTO-CPS-Association/DTaaS/feature/distributed-demo/deploy/single-script-install.sh @@ -46,3 +42,18 @@ bash single-script-install.sh !!! warning This test installation has default credentials and is thus highly insecure. + +## Post install + +After the install-script. Please change **foo.com** and Gitlab OAuth details +to your local settings in the following files. + +```txt +~/DTaaS/client/build/env.js +~/DTaaS/servers/config/gateway/dynamic/fileConfig.yml +``` + +## Sanity check + +Now when you visit your domain, you should be able to login through your +OAuth Provider and be able to access the DTaas web UI. diff --git a/docs/assets/into-cps-logo.png b/docs/assets/into-cps-logo.png index dfc81fe0f13936b5bb9bf95a196ee1e33e6aebca..ca04a29f40d3ebf6665bf7b179e41052e21d4abb 100644 GIT binary patch literal 40799 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 JSE|~*`5*P_!vO#Q literal 21059 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 + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INTO-CPS + + + + \ No newline at end of file diff --git a/docs/user/examples/examples.drawio b/docs/user/examples/examples.drawio new file mode 100755 index 000000000..a7c745341 --- /dev/null +++ b/docs/user/examples/examples.drawio @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/user/examples/index.md b/docs/user/examples/index.md index b2b6afad2..64b603316 100644 --- a/docs/user/examples/index.md +++ b/docs/user/examples/index.md @@ -1,4 +1,32 @@ -# DTaaS examples +# DTaaS Examples -The examples are hosted in -[DTaaS examples repository](https://github.com/INTO-CPS-Association/DTaaS-examples) +There are some example digital twins created for the DTaaS software. +These examples are hosted in a dedicated +[DTaaS examples github repository](https://github.com/INTO-CPS-Association/DTaaS-examples). + +Use the examples and follow the steps given in the **Examples** section to experience +features of the DTaaS software platform and understand best practices for managing +digital twins within the platform. + +## Copy Examples + +The first step is to copy all the example code into your +user workspace within the DTaaS. +Use these shell commands to copy all the examples +into `/workspace/examples` directory. + +```bash +#!/bin/bash +cd /root/Desktop/ +wget -P workspace https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip +unzip workspace/main.zip -d workspace +mv workspace/DTaaS-examples-main workspace/examples +rm workspace/main.zip +``` + +## Example List + +The digital twins provided in examples vary in their complexity. It is best +to use the examples in the following order. + +1. [Mass Spring Damper](./mass-spring-damper/README.md) diff --git a/docs/user/examples/mass-spring-damper/README.md b/docs/user/examples/mass-spring-damper/README.md new file mode 100644 index 000000000..b5b2fb4d6 --- /dev/null +++ b/docs/user/examples/mass-spring-damper/README.md @@ -0,0 +1,81 @@ +# Mass Spring Damper + +## Overview + +The mass spring damper study comprises two mass spring dampers +and demonstrates how the sucessive substitution technique can +be used to ensure that a co-simulation is stable. More information +about successive substitution and other co-simulation stabilization +techniques, please see [this paper](https://arxiv.org/pdf/1702.00686v1). + +## Example Diagram + +![Mass Spring Damper System](mass-spring-damper_multibody_system.png) + +## Example Structure + +There are two simulators included in the study, each representing a +mass spring damper system. The first simulator calculates the mass +displacement and speed of $m_1$ for a given force $F_k$ acting on mass $m_1$. +The second simulator calculates force $F_k$ given a displacement and speed of +mass $m_1$. By coupling these simulators, the evolution of the position of +the two masses is computed. + +![Mass Spring Damper Structure](dt-structure.png) + +## Configuration of assets + +This example uses two models and one tool. The specific assets used are: + +| Asset Type | Names of Assets | Visibility | Reuse in Other Examples | +|:---|:---|:---|:---| +| Models | MassSpringDamper1.fmu | Private | Yes | +| | MassSpringDamper2.fmu | Private | Yes | +| Tool | maestro-2.3.0-jar-with-dependencies.jar | Common | Yes | + +This is a co-simulation based digital twin. The `co-sim.json` and `time.json` +are two configuration files used for executing the digital twin. + +## Lifecycle Phases + +| Lifecycle Phase | Completed Tasks | +| -------- | ------- | +| Create | Installs Java Development Kit for Maestro tool | +| Execute | Produces and stores output in data/mass-spring-damper/output directory| +| Clean | Clears run logs and outputs | + +## Run the example + +To run the example, change your present directory. + +```bash +cd workspace/examples/digital_twins/mass-spring-damper +``` + +If required, change the permission of files you need to execute, for example: + +```bash +chmod +x lifecycle/create +``` + +Now, run the following scripts: + +### Create + +```bash +lifecycle/create +``` + +### Execute + +```bash +lifecycle/execute +``` + +## Examine the results + +The results can be found in the +_workspace/examples/data/mass-spring-damper/output directory_. + +You can also view run logs in the +_workspace/examples/digital_twins/mass-spring-damper_. diff --git a/docs/user/examples/mass-spring-damper/dt-structure.png b/docs/user/examples/mass-spring-damper/dt-structure.png new file mode 100755 index 0000000000000000000000000000000000000000..2bee4055f5a1f37a5a186b0afd4737b58a9ddc8d GIT binary patch literal 36189 zcmeFZcTiN@wmzzeN)RQeNK!H)Q6veHMPic`6dF{LB*{4mf(i(NBmoIZ&WIq;L{X8P zp(P_ha!!)pSc3Q5`#Y!J+g0zcSMS!Y>b-Zw9CL(kd}I2lD9I2JP!b$Da)d}u z_NLmABgb)%969<6?*x3qgnoMT$PwBjayKP3oOEXg2+L50TUAS`ymaZ-a`L{+MJDtE zVP>kFtk|nBB;F zd^xt)IKF(SaA;`DZA&nJ{oca1`%vMAZQQQzXnW|N93E?r8?P$(zFJ za{uYCxG#_3O9gP96JCPvHqNic7Y>t4YcD zkADp&PCD}+#=@f=4u+XLr;N#<|M!{T(TYn3i~gtYpFEMmVZ@~|HP7(>xA`OE<4bJ) z$M13ecX9tNm;c?lf7kT?Rm*=r#{YZf{(}Yk|FuDJU-cR&b!=E^5#ut$=7ghS`0GAd z^ci4t(95H*#I~IHQV%62o^ss(EGzx@i>_I3-InXr5^oV*UnpBik_%;4`)JgpNFKPI zdiO~&XVY;1=|Aqw>ntHLHu*%D&wc9eObQXTU(SfJ6OwZ(2J&l496G#AT+^-$rU8t7 zs9A3L9e;AJ$G3YfE1DjEF{3t9*LC0$^HA_ot$<+Smp_vek1iCCp1%9h2*r(RzIE^t zFBO6?PV~KJr)jP{J$dG|;U=ry9?n<$)zb$~v!9eUX9YXRh@1E}r*vK@ir1u_&Sh-| z8>zrqa&x*fouMn^cIfhWgTjZ0-*#AS&mYMn^s<}lz1^Lw z7cb+`njq0$>S&p+Tkc}|wS?esAT7ECv!lxKq63Ua1S|*NrYd%%ph7cqF!la6YA=Ri zA)lL^jvxH?!Fk#o!a)~CTai?W4mB8b-EEIyy%LXM| z)0w;YHvc6C->RBGs$}DqIOca}uQMyXy(}~r#y}0z`uT`O-tXW|4`82}&O3-Kfxqgfl81zSfBVS&e*EG-R)%e?e%=SsrG)1$oA~V_V>~OS(#@1cU}~8QfY?^ z(fx@Mg5MsoM!N~5l6kigqRbYRdALhX25KJujRWW8Y3g8RRCH~|?M%h+D|fOkTUPFV z3S+;^qn+_4e2q4zq24H2?ZEDxm4%(~6g4LEZV}rrTq4~_D`nXGt)767n-DO&w zN{z2CnTTW4^Vm#I*Bq*FAK%+vXvq*VQa5}tlb_C)PI&Os^mDX10drI4l6ewOPvjdl zQ6|2pdeQjy`n5ulpv;5GJrPek{;M&HAy&w~KKp47hg0`mV_%F?&poFRjJd_#Y2O23 znc}{fIc;ypLsx82M`{Afms11h?FUMbujRtwxuDI&?JYE8Aw18{Z9mZ4ZLHjeb`ee0vTM^_9P{~Si4LPu z9#*TLzU1}w;cO@pI~obJa`2baM@NK&d%e^SYyPtwxVcU7kPE4y-dbr;$ zcd^&n;uybqcur5@JtAG)n#mP#teDMjxS5(}^Mg)Y$5=*Kh2Y?*R@1{=tRxpPGdZDP zRVchj7;e=r{`~T#-IA5%uOf-xpXtt4D>S`rJE4{=Ul%9h%A-Q?m_p%6agc}CVPGTy zGNx9-b8&p9jj>DTHS1=V9r~$r7(`pCB)DxZ=i5#wsjr+7+fh*xS<^UqZZ?z0I@aAn z((lmdph0(1ec#6LxV6i%)WI=BjrX8`tbY$%KG^O1&&9tyBeIR8xLe^?!uz=YN09e* zU4jvz@4`pAWd1Ce79V6JL+1U>|6J%L&z-hT(5y=GUE!05E1@M;PLO(jng{gKw!Xi_ zR(iiV#2Mt+Sag)>(3F_NISXROJtI7u*I(hXIQ%(pO}jqeaFG3=5_R# z{qQ{r%s0j5<3%sQN+c@(HQFjL2~uxKN$yGgFPjHjUd$>!{K&X8l(^s{`trGh+3>>= z4k2cwd$d9(-*YGe*(X(P?`sy%`uZfq&Pk>pehVf($R|M^|8t=kR(^MDZRJKN=wG-= zM~Ym!S~8AU<}0zi-*g?x-C1`TK#vIBvdvvSdmTGz0OEQttd+UBwKike5+{=44=;$g zS7;g)n{9t}%Vxa(uHIUoWhMIAnM;rB)78f@VAb5C%8$G4?`|aPe-FyH9=)YEF1o+7 zk_;PfgJ@)Or0x}rR{2IGN{{?!QY+qUUy(Arp5>M3R@&K`?Z_O>?bQzDhR$^LrtQxH zLv9So3X%M~W~-BJvuae)aj(@?aAbt38oPXGt1?dL>IW zRO7{?K?-&*HG2bvKKFU;iXIObe0@Q}ELR(X#@T8VUHVGao~nE)G)-Y`8|yga&LZ{f zR0tds8XU)^Z{#sYx_=pqmEIHPE2Ohh4Ajram6Ti*P#wW^u5rT0-IQf{2{P}m_UWBP z6Zb4DHd9s?hKAgFC>L72u8e+v75TAQD6`6!C5Mgsojo~i4&@g(ScuJBAvV9k zy%s~}l^9EOOOo5Nlo)%iES?m5u0Jm?N2L|nqX&hGTRBuTl~auYh!2P|jx!;6ckEgO zmtNeq@Lf1)hBYrK+S61Man8Li&JlOJQ}G6rl@?!uM9!!;k2%j}ZQ8!}Y3#IKTDIH7 z3)QqpU6(q=_`whQ&o{BQEh3so3;`xHoX4=fmPCg7!QOt+kOy0gfF*ya`t(V4M&~q( zghUPtYK|}zzC>(}h;j292JdYu zR+@!>iOhCs>NSb*g)iud?XHGWaNKa1)v|SW4_aLa+3>zOJ~}jamevYRq%7Vq3-S?+ z_l7!rP@V5SSB5V!f~i*fw1Md>vJ_}=oXlbuS)C}I$271njf#lw{no#xB4zA7`EIF{ z(>-kV<)slJ*X^4U^0#zkBwKrY5o4FxShZ z{mJ}lIcs>O3i;Sir3th0i!ORJYb!0Dd+K)bRvyolr0(Y3_c}$%d)d+Mb7FEBIJ85`M&3W!D zx0N5`aXji!AGWc`5aP2RMXy?;O@%1ogPL&W%2#_|CaRzrmy^i_j|X~BrL}HUXnk*v z6&{Z^%L$PVI3ML%u~4zym{n|WdIV$8IqOMeO@l81o*k3!yO)a3D&nok<-9TAm<$G$ z8Q*Cl)-n2s|=hQ%fN$AdIi)Tc(c2V?`8-sYf3w`gEWWevc8vMw6@XM2B zC9q=G@?#X&gM6>Vh#M|}*LOXI?6qVfjz>L=cRntkfP*0}$mtURu%&Kd65ehOQsTh7cT2? zTf4Rce&ChxBZf*d5^T?q*lSigWG$&=-a@`8M{Fmnt;B295KAM|&a?;T8?Z?c4fqlZ zoSqV5kIE#B!>`eDCv7#+BEw+^LY+S;(}MEW^M$lddi!98A)zNqUg^LNd=9F#hSC_@P0Ak`pu|y zh{4CGmX;=64jcR3?cDA7{T&%0`)NkYvZZHtBjhT_x|}!%-!&ZB9p~~4fs>(4kpGSf zUt)V(hKGp}F&TD}i$9-V;#b$UpJ1x&cvjwV*=2Q-ZvXdpu|^g1O8n1Ul{;#>ZcEa4 z^9}qaPr4YmI_*Ztkb8H1(-n4@z3jO&dTD&|%b8c(Ix~fK&kf2Wl#cd)G=8;NBjc#} zxVIpEl6x6UGBb7E?baEmW8V|%-b3c15Xp(YS-B+i>y3URUwch6s*vf3}?9>8?x`bMovbTaEEzLvF{?nnPv^ z%&sIbul-&J> z#wMJ7Gin|f@FR+n)fq466$`5M2v`ZpywKkY!D`%03*5bJ>Ul3GZP+96TyjW{R$02p4D^`$=pwbXWUi!1AN$<;l=(&y@SOb+>-PU`IjdnloOy^KVzoZgqo;9M(JT>U!AD6l> z-QE2{%k=$N9ZP&zhq9Q6m86OQO4Zih&pxekgQ7xI)y-e&2#zA}R^*MD-J@>*XSKlQI zO9@i%C{trn@4aJMI5PWprf!5D3Yl+-&U#>u$L;rGzo8Z6xGUR)*68UG3~f9YXxFu4 z(yOgr_(Bb-8tG~kToO7HF;~J^NFgq>6QwJ*91;yJTNbv^B7Z#Bk*fSSIH7}?j0x9X z<7Y6PRO9MM?K=iex>micUwZl9a>+5pd{Llu;xnCvHJtXLzbh zNybEamMrj;|IRjr@!JQaU!#e;9A4*@wcqwT%^CY-_2E(8fCXUF67| zI5AhbMLBT&p5u1;bVla#ET`rLd9Yi@9)pQ+FwWht8;HpQYR8q+`KRmAlfi!=xJBw{Yff>UV2Bj zddEW=ww2B9@3y8@2H$#pH=4G6s_26UJ~rpQ+)0|Kl%cFg^fIC5Lmt}})jkP9q8-ms zdbxfy1E?bF(VFLq_}xDKL8tr~(GM+J->LK4n}Np`JC&DN2+T!djuf2GaCxMr6u%^E!`|+p=e`#1tX#4& z=xQ6dRxTOZeSE5NDXyqm7Vp;l#71x1VALaIJBGsXsdu%LR}@LTE1AHX5uCqtYm38r zV6k83O>xd}WhF6o{A;r>4OZH7ev12|1TiW$dZ&@Unwp2Tqs{H)MImPdr~#x!>tfF4ojlFJ0~3L+-_`@ ze<~6^uwdG6s@gyzE#Thap9Z;M66~hu1YHi{o~zHCb!^dEVr6i%WzCzRi&8ohnpbot zNU-At`pStLMfGDS3a`Y1pC~7Kak;SAtn-Sku+2mPQ5z<(ysP*`G%`4k6j*L0+dTIrVgIpKY+B`?gA8ZlLzjp3e zbG4xAjq*v@KhJEnY8l>q4dN>l9w~Ob@u3{EC}U0ol_$WWzcwJq7i$0vPkq_dFTN#W z@+j$+u)WLc6TZf*X%5dcW(ftu35Z8>OH6`wTYryf1ELl`pQH} z_eODQlqtb3`$nvPhWd3o-oPB|_Y4G2*-vL0f+=6lj8`h{Y7(>aPhp;XkCj=iP?~wy z@z8!%V^!#R+tHh=vfs5fur$T1O{fK$Op)>m7rkAsL80g1z&yHty>KkQZu{%aRJF_G ziL*kKJg>h7-o{Si+N6+rBWg7lSKGDC;TUYI@9f-{ny`x+vbB@1WKP{>j4vD<+=$j# z9pYxfeOiDHwk0dPhA*+N%-Fim2KUZWL|W2SqP?!cV0GL-+-o)I@zPl`MLw(EP7FG9WZ z%MD!QG)svcs`keSMASlvJMHoKoKs@7ACWecUca?Ub#HYfFXTHKJJ~THXaCU`!pIsF z{gj!SJx!&hfKd7E)Q0Ia33Te!JKo%t=~aVABvTpmZ0eY-Ew=%+e#81L1f>J%(Dxu3 zTfNb8-7MC`Hu5vCi93m;?domH7zWq8BTx&YMA7C-cqgVN+Kzt8iAa`pz)s!s!VJ0_3`}b<9V^^@ zEeD#m=`PdM?+o5({Uvdu&Lzc}*cB?eG+$ZXaz-9>@#6suk6CwCzey!*vyiFM^MD!7 zDg+Ur7)RX84Pio=r(d_E`L>!wxA=t4X_Du3F={~^#|zAz=y^`@|F)Mi&tUoPP_ zx(m)H3aFP-x>GaaPgWwJYVHq&*|vV6S^$n$<-<)km@$WumP^QNFB;?Tiu4l`AQ#eYRotZi`HqF}#B>`$uEvMVO zi|uVPTetSt`z$92Q$7!67Y$x<-&*y%P9ty|EBEQ!C(EJ76?OjRIPWhRL^~}j(FD2u zuIaVEUb$@~CE04(`Z~zx{%Y^@4=LADG4aMis$u?nMz+IgEkQ%WoKX{f3x(GPn%gR? zm{#Imzf{)JlY+dnA%yq_FP*H8X5Me^o;W2P0d?5EAAOlF&9WWi@q)R0eYPjml?&BrQvLI-ZF2~eZt8lB<2h1e9ipk- zSKFNV)n!+S?ipl@(pVHZEj?Vx4$jd$@BWBq`O^MxnF>Nh7FU{B`RthM0MoUwYq$cg z7Zc(k5oFj9F&;$F$=V`>vjPxUL;20IF9MZoH2MQ@IFJZwtf@x_qe@P3$IC_u|mvDKLc$Z>k;$E*MgbgfoZvw4jl?Jfm`l|t3wF{mY zlAzN$FN*vOdEyN`^lNCBNUhO493j2f1Hg1r4sZHwFI!HrB$)C@VJ5ZIzUi2Z963k8 zC!^PTm2ND3?Ps~FD!B;7G=4L7>1UQRN|g+^UIvTp{5)gx8`9yxw^tc47wob-}*OjBTsuoIrO|x$sO4W%&5+{ktVL z$-L%2xF6HJ7t4DeS}Y-&wtCC2S$TD#&9`Y`XY$j=$BXZDh1;H+(CdlORF~S?W`%};R3=Qh-NRU;tc`0eXD3qm8U23d>y~3B_Ox1jwduso$|UJrh3Ls0 zgR<)7KMAA1&;41z;sz{t!;9wy0&d0&`|ZURbCwM0c^4yRj{lpz5W$w-{#Ina^>><* zI`M%7)mZysxr{R-7>$5lYY_x2WyBQ$RHL9)wtciyU74@+H>Xyf_%k9ZBZnjo00b8x zh8YL2&afF9D4U`fML%92-mpP)e}8Y+<_nQPEdaWq@^~&>SuswN8b52R^F7EE+k68Y zW4S7RS1Sg}@_xHMs6Cj1ic!S5gVlT~AgPl3GxhW!&s3T;Ix^3wDY`@&k2E+5j8Sa= zN~pNM68-raO7B4v&3iRkGbhjA58 z`pCSuvP*-OyHUKWv~;y8^mRALd^agcy+0rb>jzhwgCy^r*`9QPw?}i0@DNozG4`9| z#`>KR%^H&-cHRXS9}M&# zNzI)W%6<>PWQy@4o&*5xj4*lg!5MNA=+PEeMoPL1cJ&F4yqc?Aag;xr0hCbG_E;$2 z7z6mmxVp_|a9hT~1%iPBH_YI>AfwLh$#;pkmz>8)(p3|m<+faO-vz+5u|QvBYh%H3 zPq*MvTR+xyrZrnzAd35eWCd07WI(4(=$$R2TuYm_jyF%;RHoKQW8)`>66r=_a|v-A zCtE+83yvCpO;*y^3?kt{Ihg4yZ3EAsa^Q5WOE2=AYz+`zng z=Z`MFI?zS*-Y(xAH(8y?(Q{+AtZkcL?JL(l)8_cDImZ)OqwUOd6!=W26F+PLq^tVq zk{W=Gw_@4|$*|*#AJb)Tl|I;de9=-pM3%LzvTEj-T8WKes6ktZ*@s&jxN>+k@(#{s zxm0eG0>YupsQTTZwjnDgN0%;>MgaMZD`s$RRa(0il_-OJ6NIXB)l-$2{gR(^8VEn` z7yQWiej_q$GNRj_kWa#<10@iZ-sIsx(QV7CnyH?vk9M7Cjx~CoUCYe$p@NQpG??f{0&H`&BqA)v&SW(gE;sCw`r{QzI6Hj7cm2|hYb>J}|;SFy(d<(Z3;dIJSPp|Rzq|Tgm z!Jg@~bb%tLk;Ad>HmyM^a{n$y#j!lv)BYj)UWRr;10-XqSF@1BoEXg|Kn zP|As!q`x+hE$K_}t4sqelY7qWY*Ylwv#w&fo^AZ)wPxN{$pZ*7yyKHZ3#wcWjCEksv$bBSmPtjg% zV|0FQFJ9z({ehID?wrDE!*b)GwbsMW+y~%j@Y8Fsdzg2?}>0v8Xp0pT>A86 zA>sBWBd%v);%UrTk*Q!=92t}Dtf-!s?-VtlqT?e_^3D^h*Jz&=Z{0PF)rhc~5qu_xAT!mn=U;yrPb#?I2R7@34ashI$){ zmR`GMraIq61QjeDq=9C!5kWCdiP%kBW}$<~%J0G)`(9T272@S=NXcXMI!y9)zb6I> z$pah0a+eF#XSCLt zjuo1|)*UkKG5>u)J4l1sUu|Hh;BDre?AIW7p^d1{eQcU4L%LpNh4ZCW5_SxUiUDKF zo~y^u?-O&DOTB%T?VMYbJ;Z`Fl$)swm6+~K56(x`Dp0|K(R?cO-Slx5>Vg+Pd(>vwq;WeEB#g z&!bI2CsOeh@wG=1qxVGY7K0x@n;!Wb_CV&|K#M?~JW2Vy=E|?8rejEnT`Gx`33u(d zkff}Ple5g1Z}ixZCzy-zx+{>w2>9h{nGH`-#RcVbkoayjn3hR-e(stojXn|>_b?`7 z=H`6v(H8KNjWuk3)0EDE5y~>xA+{79f}+cjhg+*t%v0oCOKA*b_VNYHEe~lVa7e|D zDrV%SZoG_BqRG5?uX207RC&;Of<`|_CJV()06C07xW{%{N5m`P`Ql=Cj;`GsFU%es z4@#f3Bq=BwbZL0WtF&tVNKK~_ueIq#8N+=BEdI#r$?Sn~pM>5?SHGOn#5(Lw5ct|? zRqw5eEPNdiSv*ofW|vRxy9LMcqV`Ab@~-$9Bne#%O6N35LC+MP+)Oo8v-$~;CxH!t$V-t z+8N74_j^-%~UVaKB$7_1l{gk_et*%r>yEB+2aoIrhAJ2h-CU04Db;ju0%DDC$J+&o>WlphhrK zV$$#RKN*M`=ZioRL0+aA4AuY1PD=03mq>IUJQWWXZ+NzxQhG}F(!hhw*9x3+jwJch z9;-!Jrb<^rA0EZ|e)eg~q)iSpuKL&ShVATC6XtGK0DU^hZfTo}l-zT`KM0TCpj+(j zbk`)Gv7u>lgwX9xpo(1vCP>Af&w{tTRp_CL>S~ zd%c}C2{U5{@#2cb8dBb6-^-XmP51f%t4i2F)9_@eqF2T&yq@?hmxCG*9GZ<-=%9$F z0tJ(=_EDY$FJ^d#PJ~tI{-I4U;?B8?vi9WSz`OToMbtn4mb@1sFOW0->x@mT5qRO;TJPh82Eg$sVZdPnCRU+o*XsxlZTT2}izJ;A zo92xW4V>cMAvKfQ!hB6c)SsCCiWFY?Z?9z^NYO;JESoM;Nnqp zn4W?a@}EeSJfP?>{?(wd2gz>^*f9q8o>X1!;2_@Kd-?x@AOqr$iC3wA_J^zUL>g9e zp6>+Akm{-0!3>E>4>e3`IZsXTV0k$C$ca$#-EOu>0pJlmV|g`#fJeR4yBWNRtp?dMV`mNuT)Et4SC6kI|H;%YD6^kVcUY5saVXzD!pQ;FrcLwpiCXaymR;l((O|GTAc4|DoP!jPf zJOtGuk^QspS9Cxv*PC~M?TP(()8q@o!J_Xw#c9f$Mu{89*Fn^S5Wj%;ilJ7M1Pry( zq_|Fltvl>Nxl*gi7bp;Xe0kxj0z{M(k63%*gtT__9nte?_IVUt~y#W_o;6T$g{8SWZ$a`V^v2^H-#J? zRPw*&J1*!tLz#ndvfw9;u!Ag+md3u3>xIE?)5zg1$NaD_< z?A|Qxq99f8cb;2mz@5gUzBYjKVL|!ez#=v;(~>gd?zQdIQ)buwW~!HTRO_wq4!q`t zAmebgdyI?or3>=UPtzDcahTc50n)!(sCiI)^qG>!J59x}2uuUxlp1DvwOa(!v7A}C zuNcpLv;Y+sE%X3>SW#!1s#KiYvfOom`Z%Ul&mQ+${G(-ez^$2+%bx?;Vyuu_*?$_F z8@Rw9KjvKwIM2ajhWE=ciH%OssPRIZ&6JR{%Wsgdc@K{Xa58{;s}|=vf1OqPQxzdVae6KoFE3 zF{!7%f0SqCAo&3Vp&rGXjw5TKTJpw{i_b54)DEbEE+a@eds`syLmEts6%b7ffMfPP zkkj`{uiLVB6j+|VBBqa6Td1by(c5+4ll5m!VwB2@a$h(PL<(*Hpl?9iZWd@caV1=h~6>7R^-pgC5ggj9e96r60XLGpr9=8h8bki7Akh zk7q*W)@@VL@MA}DcL*V{DUzRvV#Mu8Zz|81ep0N&IB-qOu6&v$&Z)Xlsg3J{{j?>x zv?R!R+tbxq($!Ogs6BrFtiW8bj^$!jlBCT!H2P(7w8QFu(Z@GLtgE$_Lb)3@9reLS?S&=S{I*6lrv11?npyG9{rPYRQA@3ycyiBZ$SK{TRrnJMY8{y5d~F~? zTT13}k7B~vH06ONE^VCNnQ>bINsl0ri2xFRJ@{d^Ga{?O6xY+9H`kOvX4X{sO&I)& zN5y6I|2%8NcnZT8{>*L>u@DaALDVos%GRc+Yu^>u@NC8eFju?zR;k8`sQBMlhUq!| z^zB!FEjQ^r6WKWPv@^t(r1lQP2g2GB2dv~-2nicvh}pA>l}6Rj8RI|*;#K!Pgg0-+ zH81UM3^kw~2bdiDt)C;t>O8v^Eh?JVug~lMZhnjE$|6j2eMOO1ZfDe%Ije3MH+`+c z`}&93seceygb%>(I!6Yu!i-bbKRs%z{%W%_(Gm$!%D34IeV;5sLAM(aIH>}!+v$UB z2>qr5{fJO$JeNHA|L}%{xYc>xiat|FD@X%Zr4DcU`5p@`GGEMzq2EiR(nC87mHQqm z9Oh$-*CZDMxGK0iQZ%!)9_Xg1i&OHOPnO!hCtqx~EYjOe(P|I@Yi~Q(o~#fMSL(j) z&_;7K6uc!idP(?pkK;E%lA|)=Dfu1c+8-J)c!&Ldoj~WsDVO?sb9)~2S9d6By^2{oAk*pKp-VU zWz#j6q3@>A)=bQ>%hE9y%dCsac|m?~kUu{coCbH?f3!R47n{kM4KlwU$~{85*W*MvcKh z_)TI&%=5p`+wVz`QpZ5csuM7tQ4d)Mf3nm?D0U$bPIQQ+!J0AJQ~9YVc;A^%lR})S z@g6S2P|CBP0g@mRpn*YT%6b;0(rGhu^3}!7aH)M1nfGW-U?_q!Q1Y2Ff~zTZMj2qN zdGJ3&qfsaOqih)u1~Rfc-ekm9;5plxPeV^G65}I2WIT|ZkS%AWgRD%CQpTtVAx>{r zgcUcxx-vmatOqCc`$XQ;t(Xj{lU|8ZfvDT+SMs0`XEJ~(EJ=yK&lHLjU49-tcA^#` zN9ugkHEY@`9mJ%zb;VDBpR-Xf&zgCVkA)v7!bY z`sW5@-ns!=R2hsIuKl1RIM)$KVIB8SkwIiijG@-(r00{7jhed7$vrAbw=?g6I-G6$ z!B_dTxOvYwfb^NvVT@vRBQva>^ytDpHV;w-k5F@oOazz0t}0P=S7N~?BJDrXRRN;j zVQWZg0tWWmEDrT*E6<&kZyO} zit?XX9Taw)=T%r_zgJLeF8E%LcE;xF(&-VQ?RXCP3;)9i1mFVlX2d_+Dur$7Ks&Ao zdo%WUYqVJ+veU}FWO*$x!Ekr!`z7gAyGa+ft$SiJ5Y;r+&;pvBAK!82I!h0Ux3b7u z*j+KzGh$|9%(n$~eV!acWW>*NFe_hJJZEYw4+++UCr_`^!^mRhHIqX0g=|RPM%;sNp>I+G zoCwxjw$`m(qW;vL@%`hA?}t`DL6qmV5_7pWz&Kb@QstOV?BETLo!`Y&QNIf(Zs6*i zM_`Y&1K8sV(uU^T$BMQdfc~5&n`=TmDxqGE1NM=tQynahJyAO@XROhJacuGw|A)-% zvd;~?l?+v1a;Ps%tG%lpW&oyL+!MIqHhmUFa)7<$*ZBC;1}g#1WoJ5JYJdDM7ht=R z9GEP3-uj6b9I-}kZTmbnc(0d{i!SYEJZA3~Ge1zuqIkko&TpoDNVos0>!C;*2Pa~p z&%LjLy-I=#kx}ZvRsEVbG|vfnma~ZiqHjkkG1Fa$B1lRkn`nw*nRsifbSFxM0=FF+ zbs!+v-=L?P9P+y8IA1RdxxObH zfJ26?P+^JYCjw~t&}}f~S@dIx<7PN!Z#)46^fx~?l|8rA6JkiQ$45pCa7p1;NVC$L z#j8JYaUT*svP$&ws|e8rrq}Wh{a13p^%}l%(+e;d$k>p$q=%w+L7>%F>o{j1H0dFp zO!P3}jD%hMSs1BA*3E|_wmC+Iq%?}a0ERjl>EyGo_Flz+4Cuk)5u9<$MMDtZ>j%z| z`$p_tF{}D8RvxJGO$}9w$)!rpvIAmG**PQ7f)Ii2X1Y-jThV@}wpFByc&WfJ{6E0J zpJcQ-3hpsTNZ(#)ruot9MbIfXKtUQ)+$5mGf%e|p01(YV>bon(1?r}FbU5p; zw=#j0hTYcP`c+SkwnLAGk3j41Y=}G53LdH2a$2J$d6dLySr3N|b+L0I!ND_-tO9s} z%y2Xgub39W4cPwnjpYzR{!b1u1Nq$#52b1SVM0-c&L9-BN&C0ZWBU1Tj_4*`~M<2rbcIBnX&iy)G(jpj2`oPz}S z3iOr`_Bsk)I&A%qI3v^$epD8MdSK~kU32|*+6%b^Sp;VJ{Hd#LWH3WDD#W(v!q2*IX?{CjCEgZB; z6B-BTbbKnYSnV;Nb@yWu0Cy>r(6HSSyGOR}qUv$@!pqcN&`+tCQ@Q72yVSs0su%&m zy`aEIh8GxJoX{nlgWtV{{J>U_uGn?sF+ddNIaLVm2-FfKF=CC2hl^Y$FNU@NLns>j z!X={LUY{e3WP+JQ@Zx?uY{W!x;?pd+h0{o@BT#ZEeW4Aw4w~a6+wEDI4;wm@)bB$l zyIQVpdA~LkaQ4H2@*^56J*OeQm4$tZ+-HD;1)R64F`z*@?EF z)CV)}Cwqj=iDlQytI{X~XqHF6=F|o;d+t^1*m0tpONU*UH~(~Dk}S^4r$q1P^HbBwD|!R<-hMg_?&9Ca9lZ7?F0>DDL9Rx=`edjLus5AOR5d+)dU4!*kgj;ES)-(C!&7du$(cdP0t1`W6F{UTQ!G z{s(&Fzpb}v$DtdM0Wg?m_2+GgGMAS3CDC#+1j;%SvQp}(gUw!sI?D={PZn=)I%(*# z<6JMFi-Sbg z;8HV0Hc%%PZ7%=8rp#4r;$GFUZ`_$2bjqp-cA7qqV%|3HWpYc zO=s2iZ*272&T(=lBh?r7b5Oi8`J%#(OPnY3#3w<-LPGAZR4lx}2GxNNKIOgV42eN8 zk>nicmlxx4Sv+R^?+wJ_RWwIQz2^(~_zq1v41?s0zDg`@~!{k6{Hs0)D}RjI*G zBlu5!14VJgg&IP~`7qqW1KfYUbxjYL6--a_4*bA}KH5&i@X4xy+kI_ScIqf@KM5_} zq>{F}`hiXo=V>P(t%P4>L{?iMWbH-YmwyfiMC%Gc&drwG%(#PK5}tvY3Ceq}~D(1_WaE)q%cgr1$e5E$KH>0szoN01sFdp%DC+ z{*$qU9Ov1Q4m#gXF=#h@}SdJj=GVBQA57k@r}s^SVNO)CcykgHze!6mjr&Y`dc3Uy%1 z#j75B0p2bmfG=qNBd>ofVIcWn9Ct(!%*f<@V0mzrT0xe?<p?msfD=45Y*wHiLTgs6p{0Z2N16FK)3imlHFH7vSi58Q-ZO2 zp5=;fxIh0R&3kjhIUkbd@3cC$O?=D4PtW|L!wa^78EzNh@ddY$id5tN*;rTgpCLzr z)^1@CouV8+|4&Yo(_!%=B^Zsd3xNaq&x{ga6yZTM!jwLhJL6nD#?93KNQQ^luYj*P z1Y$^+?>}0XR+-ZW#DdWln0CpZ=eRfakJbe(uE{`vPYDLHN;+ac|Cw&&8#W}tl^Z91 z0yQTD+Q~j!5SzXNtHsDFF3Bw?s0+k{c{m_;soCkQhl=}yV-Z3)1ppsWbX-8LbcQC* z*?;7!x-vBtpd*V&5-5^Ls0@NoYBF#- zT2IvhZ1@vo=iM1z!|FxCH4NCW1*E+ILVj)SI|K-Y0*DR3`RINJ?1%flV6NGsy(AAk z&k>yEZf#3BU>XE|h5H~_;i4w-<9~+2M^1gh5-FT|1vvHEb0~|yr(V|!*gG=Kf}^L@ ztHgGvl$W7zqfc8)9vKTR#F1T z&;NBh=YCYUm%g=YmrHp9Y=mIA^r(NZS`Dn8c-2FY#d(3#(%`LxkpQ9XblBfKfcQs= zZE6^o-k^9Go2Jq~T9fPgYzRQ4Zp7I#@Mz|8M|gyqL*KL={glXI}R>_;aE z{wuGot#IES19XOu6flvOZUFnI{nY6URItY0p>vKBi;S*YHi%^u5YkMz^+Vt2c9fH<`f1r0@m61-2 zm}Qff>rhG2`X^d^~CL~Urg_H0|FGhtP{I()IVn`%u{WnfD@dB{59+D)pQ$Qo3 zx(@dR#I7eS!${&hAmLEeQ9e++Fpzs{bWHtUwHwDlQf%Z}fs`=UjrnjW(r!dVz8OK> z^*Z9ua#5E7+tFeMRnI^1PVmpf;XMUa(6YgTFey(UZMR_@+TA8+uKckp;H9}K_;evr zQbJ^&QIgL7SLU2Z^KU(vSw+^h7Pv`GTlb+q5-f!9~?zq<*V5d|}Bp!6B}8!vX? zq`tNBM;iQVhGECTLzP8){?Sm=>8bTVC0Aq>gES>wrzC%zDa8rq|K$J9Wpk*&eNjCa z`^>Aq!M7zrQAWvC#Tl_j6mT%=(v~P;x8$p0U|k~`f6o(fp3X3oZNtU(mR?0fzW#UN zExz*Hkpk3>j!iSCAj{zFVcrU_QcnQ>i_N!lnz8@}{LuK?#3`OlBA)OBc8n0OwgKoq zL`P8sK^Lx82iB`892!9JDjP2V&Ky^H4?Mva$%kjX3TV zaNC;>mX#nG(B0c&R}NBYWTg9*Fvxb_3(`aN6hDv8u2-SM3EW0?hFx2zH{I0`&iEU1 z17YL@Y|4X2O!Y4g=XsX_y4dAQ0HZ;37qg9Fi^+X=>go1*q(%&Ztya2bo-7L26rXC5Hb8RIYpR6?U@B;)0 zkv>p5@INmWoMZY6vau68tuzUY&wgy-=es_W^%1$1uh#pX>hXUK!wrY!l)9Pfox`v2 z%KsDrfUb~o5z@{usGvWqP|`qNe=rcO4k*c&F5R%dYADH>2PG|p!-L}3gPT;4Vms9` zrK;QCCysdKA%kcKsOtV5q_7G|8?@l5ui2;FE6gYZjPYI08Q+6@$^I-Q9$88u1=HU< z6p0C;UV}oeLQ{VV_q;VgDe~+{uL@YP!}WV{LzsU`KU3A{?;zP#aM=noa*SE`k$f6@ zFialJNPa%Fb}$S8&yw74=WeARenp#v1Bq8KnevUcust6#rC^}9(kJn~`*Em^V4VOE zpu5l=k=TFu6|uZmZpD^7Ov$+30~*Te;PNbrdKZ;P|C-n$GBL|ORhz#PdshYKPK@<- zMi}eng6F<#4_vy4XC@Ky-zEk=p1Uzyrswa(>~P?&g>0Y)w1;g^CccUQS`V|GeL~g0 zCie3@Ol*EVarN)Sc)Y;1OCVQP%A)SYAg|5tlo8c*f=_bV-0Y7-hLvR6q` zi3*vmR1~F|txS<3V`VDiQoEASBqBpa8kHiMsnBGIj1gs?$&~qguZ4Ec|2&_^`J6ZB zyx6^JE$hDSYxs@d-*8QKX9F2K5Hhye@Sey|BKL0b%Gy?Y47WR`turNUuNtdTRErB@R*-<0fx0tUvs@?S~lav!idGGZxfJSKYP~(3{{j)*Ti0x3z<@XYxSjMINCE=ZSw=F0m z9ehrb_JWCa=4O-RL>3&31;_3>Aw0QYn)+m8zV7Fvx=7ue;@8y?SGBGH_X`dKbamqX z&ReWgP3Qh@k%8K)J3i*2A72a%D;~)GUmH>YZ76B=x#Ab}`IbkvEw->0u(y=TScA&g zWm2-4KcT_MnO>5?37g-kSDV}gx-T6`NVRbG)~VQ(J=^?1=Lr|*mNW0w|I9q3PEa-#c+oGm-Jxy@2G;HwUba3^AnvHYlvzH@6fZEVco~z7TCw^Dcs*N5 zrPmZk9S&dT88QyLyJtxx(*R>~OmWot&rCH>!n(-G%Tw&WsE5j;sSXa&N>dn_^$jSd z*b0;_{2!G^r&&QL7pmp>Oi~L&kO9=`0~|$Dw@?-LR5XC%nqtk3r7?FthA5N_D?0aC zb~{djl7##UL_m2+#{0#uKlg@&024Cya)uS{oA)-AJr|v7L(zKh22g^50mcj=N%w|dYy%@opX`oEj_a@8F=PW+ zFFHq5OUgZ1@}Q?4nk$w5&wP`PIJGH)RP_x=4|?x0ZTeK(A8ehtwLPWZpu4;A(;ZU; zjHWo>^qloot4LPtzyQf)zP0h3>OU5W2fZ9#(OsV)0b(IDxmk`C0jvOkLzTmd$7{DB zshywfkmK^diYIdcCVu(f3BK^H>1e$szFtliIZ9K|Ha&`?>i7ro`XfjpnsQ(5gfAoE zJut0_T^LQ9UQNOIS;(D*&%Rb=wxH}zBoix7F%_d%XE+Md+}*oRq`8e88vfZe)uv9L ztw=*aT3V$a;L-57uQj2b?1*|oy5}!8a+?<@Z~p+<2499B>pU?aIX0G)6!V|zfMLli z3&lr*InPe@9wp%j%gV%k4(%0UL;W3jcaQGogC)A9`mM0vH4L-`p*s=~-yLtQPa^n& zXm~i^|H|zNnxpgMbkE-MUoK3})Va&Y~fgixpN90TzDAB*v^VU~_;`(Id!A(r9~ zZqC)G97VPelN1b!4-c^n_-an+Qd!Dq7FZobAE+jRle3 zAA_V>fkCw;fo8@2Fx(a6m67{M+VdP(C}nnOo_z!_RG|_v?Ia8T zhEepbLW2MUfWVfLux;pt-E$_?>=rM~^qS;xrsdACoMVPslVq6n2}OxbcY_ZBSt--r z-VDCfUDgRROv6t|X_KRB$sGi@e-vm+yaT{l&wJSRfsczK4Y1Zo)}Xn`jkmpPVT`Vk{=Dln zQ2s5~i?1J@kRJ4%nAe8P@gO?Qf(>4s2q|%6I^@3K7k@;qRV-RGGa)>a*be936muVG zF+8zS&VAIy9Hli5Izi5n;~X4l~jEvYT?<2 z>K9+EuU-~b4||_TZ$F_j7_2ZwSFs35Fx{xPLJYK?)s(R;HCiEsPc9Ithw_VOkwQhVOw!{r>QSulRCKCJn=y4Yy0}H*-J&V-a z2p}7VpWrd{Vk%MoKPpb--56Aa_kY`B)~}dn5=gw#%6Xj8J0GSaUcVZR3Z&gFz9ye+ zm&jou+gG+k64?6!Q2KpeUytI;`QxA;&=Rr}j$cB9m@^n&(HWmMvK_}_Ix2&d;00@p zDKcaN+8ihY(Sj3tq#2;0_(`-QeD=U?@1*4RB)(gHX4yCiFYgRU8{SNcHukJrB<=(R z;n28;|8mvS@eGDXi)GR2vKGBX9d4XXWWJhKos5|@B(bnC2O&w>Aj~p)GE%+@BDT)i zNhHyuIkG?A3fGN|c8qOH0guigMO(#1muF6rhzdw#^rq}ACW&~nH6vUMN|Kh=L$m$% z*u+)QYxee;?KsiBI9(`YbGzn?Q9NH?5nz=f?#!(UbXREAx>u z;;RN92uOq++vIVE<~nVB-oFoXU%SZ^Oz;;DLeFEWiu#F1y<|?k^pe8L8O*LF4aB$>uXq(78A;=dorb#L_>fj-&r= z*#9qxDSa&7F)HKuyxywx1DR(wUtrbSIrp@u>f+#84?PYBJY}c6UMMp6yy_p^*ESp9 zUUQ$ue$7>!!h1+vrYvCZPOqSFi)z@t{BL(PUv^?8bMRYjW7Pdaz7mr8M($Q;Rce zMaXX&4^3kjiRMMe@X&Vha8vis!gn;f2YoZ0W+u-3UlSX}Gt!Wig?deuPW$VExy%;w z9BpR+24B5Qf`|NCbQYDOaMHoYhlO#$gPy-1-;o!sU}fE4!65(Bkf3p|8sTN3htFkY z&Dg!|`37F{8%839;%UF;q!;;(ye^$q`tG@fC55^dUl+6DJMyAm)7p6ob8QL$O+<2Y zQ?DBbab6+MQ9p~&xF31H(ETOg+_CeS%lU0ui~`J6GmXN+z5H*i zU~Zx1CFYXDS7UJfZ3auow6x}PQ)S#8#)hiK?xLqzB1E6%NJ>s)RHs)AUtlhC z3zj+ju2qbibnh)hU0MNx!9)8#BMMpw@m<$bZt;YJVo?hN=o;E%hxWiqjeuLz_u=!0 z5K)YqEGNBWeB7NFmtHsQ%N$pYjC&vBR@fD8FZ_68T_L((>pJejB`aD%iYJc`e(g_< zFSU7}y3uxYc%W&9%FhjbH*uW_ud@Ag=NJ=g`J#3H?5fO@yS|@Jd-?gyLgpbk@R8kM zcb-YPb7fRWzzux}3NmK=d9yvSWi`XdCw-od-eoSNs1J*>X4F6FTGF?id)46b~GpbXE+Jmi=+FrQS#;0YUMM^+>EK*?VHdw|LX*VGvmoui< zx5$%>*K)fb;|>0C-;a6NQado7qJKAj= zCk&Xi!axs$Igw=dibIr2*`x7)J|r5W!O~Wb~Z%WK$Rae7D1Gt&fn> ze%f+w%hB7`r-j%&tt7Wim9fa z^5ZNK;!8zmm_kJK@|qpH2j$leW7&}aU`D)a zg15efRHe-Pa!<*@KwDx;T2z6bUdT#VnrE%669-*zXz^f&>@ zLs*pZ6q<39jd&^rri}a~P->Gjiz4jgT`lIBa>|!8``EYAd9uh@i3NW}m6|%C{-R_a zH8*&@#8@9@*?xkBhf9tAqEJgA(lMn)zcTgDX$FFylwiO-xMl1pp_V>B;|r1~3I8Nn zwGgZpiFtYsjcsMNuQ~S!#(l+3JhT_zPUBa9QnKITvE3UU^;#RbV&#L<2Vb4(3GGi7 z9qWQA6zcZlYFGr&7<(^A3wND7r=goH5`P3?J^9O}H!&Ha+yLw8+hfMUTu&@n&%D;L z4y*^I?qgEOok{fL1a?~3Za-N!Bbx-bH2v zee3#L!ey~i@8>;Dj%h>siEy(Xn)ofOF>|Cm^^bB${^Z!Y`r?a~dGG`aYu{ZBDE(B5 zj8#5OVHE5xR7w+Jazh9tbL*o4sf9#b@q1uHS=X zzW zujM-ueBNy+1@`Rk*PgY9W08d;N0u|s+eLQy8wNtCS>ID$_B!1#y?*~ig4w6rf>(V0 zR8jsj&qtIsj{k&}GoQZQuCGe`c?Zuex^6L)K12EGUsgPCH~%CFb+syfHp@a!*5A-P zW7Vs-Vz&TQ?EsHtDA3Q7*`|@vRK=>Hul@Bkue$QE5!)Umt5}uC65WuQCD5^1))}FO zeU96*oMTQud-lOrEZ|buY&xAL%Oa(+n7J{FR$ycDy`)!>jk#wC#hO-Rlv1{b#?R2N zE46iTlu(VN-cMAH%l=!~#hWIsno`dFD2e{`M^1(;uL2r?3%-AxI@qkl)j}>$NNW1- z72b}@!Yv3tyY!B*&6*#v>yBDozGQQ9Pl0Bk%ooc-6X&?3IVL)Wt<^|z_{(jK#F`X3 za+QZ#hm|rdq7&|ZS>)AaZIu@Dyn`?8=VmTpi!cVoGv>n@U#^m~H{z_a`q|P3i=NbX zDE3KzrE22p3SA{n!6ZT9^ZGU^z3dhX%%j4<6>gpKd*5|@1zdHPu{Juh13s2{F5e@yQXPg0Tb`h%@zEi1W`>#iR-PVIj)XGa7| zJlBs!$2TBSYLc2>1L^mniu+<;4Zm&O{mM@zI)U@k?sKlKsk(E$RD^%Wy6p< z@`c6UVXmz7WX}FSt*8Ob@F=?Eiu(scH*a|dTqh7=0Qh2!+6XGEJcif?<^ z7QfqhShp>vF`98e@Z9LP+3tZh3hn0E1~xTKHnf+J_6-MoN{~%$9qdyXd`wDSwFs(n zO(mpMkquv;wtAaWP5+S)d+pJbr~&L{eQ?WV=4|Hf1A%+^JCmKL3v3gN zsI@|LTXGtsnkZ90bl*OFFfymyHa5PdLVw!mU`bkiWuW_DVb~8gv0WwV%0DhEha^k> z#0oOj7omX&NZd>Z1dx<_Gm!(-V3ZFt;Ix{qb{p32>DtNI&(4pTFz|R1$AGT23eZA!B zp~iOXbZO<~#&U<(D;&ht^j%X93?-EhG&eb)n;z30JPPA)$OgSVnN+z4=0k}5^Q_H8 z#M|RfEq52j@;T3<+`0PIm#LwNa&1uVPdKXIOY!6}3pv$%f1t4$O8Ik5pz#rdSj=}! z-thLPi*(5gUUaEceg1u}yc@#Ym>?U9p`-!)Pzm;x_>Q%AP171-o45QYU z7dw`IbsK8iN|QAkARfOAEv5JId@wg!By=)hHJa_LXnG=kmp>ZBA8_ccnvDnt7f)O&MVZPSMMCETsUax$vqJZU?hV2%c29ZWMUdnT0kU`>%UBbb)fy`wJyngT##N=Y zB(7{n0&uQE6;vLs#@bp^dExZqg}v(G3l!!f-uvAS>(@z={mpcK=q^(VGdOMWU(S0@ z7*>f1TCQsoUk%%T3E4kb^S@jYrtKe`Mrr1tn5gTzh)VdjXj|9#a9aYP(`t!Mvi@3! zmSrtPi>PV}h=AMn@{-DE#Tlnklx8b-(#sDATm4uGc9%UhoMYp*jwCn?bkrQbx^cEr ztXLrOkl&B^3Mt9=msFZAI=zU>)pPwDMqQn!t7yHz`u&f_m^ln1i;-R}rbTgKDO{og z%X@#5Gv5zi#ZuW>iBV0;Cy@7l6@Xljpi^e_OQg3bb^P$At+H-zOMLz$evxOKLPfJ& z;vkr@LEjP02#n(yM#Bf&R%ex(JAK;B7wNBKkf5GlTF001O|IeQRh#ZgbeQ?Uf9{V3 zSA-CPb-A@g&vGpiR)<4gBQTtr{o-i$ob11!AY>O?yx(G9)t{|&Nkss~foZz@J6^s? zlX(7dtx|ERedrE_wphXT;uD(3yLC((V3z;S^Z=I8pC13y!03z~iYAQwlDe89m(F+K zf{jZuWrwZ`&2XPIi>j0bcR2EyD*|I`T4^|-5v1bo=5_?vD>fnJt8L9v@BY-jxF>bO zd0n5|S3FAbS?{|}oqG`NT2iwIjr)yVf+ZZ3+ra|~kNvgx-#^GOlG1Z7)BMao?Xc+# z(-KwT;hSo zc%)HX<-N2{>TCX6W^MhmYJLPPSa&$0##bTw)YTJ)2hF>64i21}OTBKB>l4UaV-H9! zR)#56dWe3JV4Q;PT5Pa)A)nWqU6s(g)?TlM5=~`Si+XjGX8OiCY3rK$OBug8-yBah znPI5MySr>2ze4BtC4SBwDe>6?$7_~VqmE201X1XsQ%jb6o82)jTV-;+`#JQU|NH#fu#wgyMMg0{ zUY8$W)WqY8Dhr|4#6C@H;>*4^1QYBFk`i6Mvgr;u7!T`K*d?PIVbneyeQ70Z|H(&j z>zAlI$>F{V3XCQtE=AU8+{hzhc$8P+`|Yz%#*S5_fa6VvvEs3oV-@==4kUHG zrq+KS@<8g2R{ThIJO((}CjLrk-YJw~*4qqjep=S+6~5MCb*O7!nfJ&(N;pq_W<1vn zUaFc2k6M;*8gPz`JdoNcK{t)vfSjgt3G>y z4vk;frzQz~k=`ow5M?u00d^p_Ed*pIw==GU>7+d74{|i=J;e`c@9kO zL7zoIU-T=aincDa%BjXj%C0eg{@z=fOxu+nPK9Jz^3ii4Qx!(CLXFrYqIl{Ar;gsS z&E>F44(#{Kg{vZ2$_ks)_!NNPuwb7MPvjCd8#&%mni$51NGmB_4FYyBvZyW%3RPQC zJNUsT?D%^zf4LePyq@wYs5mC zRuA`Ih#OQF2pnZbBIGw2Ay23Y_qyiY(M6S5AwgTY7Th=ppGKSUQ@eVgAuQ}%8tzk# zBKdlzk&@OErwt(6Om5tx7?S`TCJ{jp-4rCc4eaoRJ7(`AcN=(%(FtatbP>UF; z_q3JKJ4Fh}mW-g+6%Ov@SJQE?XLqtdCxP8w8vueU#MoD5%FXVqUBka}f)39i0>nEG zb5&A@k@&b3rl4~onCzi@5^T)7xI{AI@r&{c3-G{9kxrx_Mj(G*P9L%UqC{eGl8dkI zO1O1-ywkFpOXTt%Hi)ev&mr8myHUUN7j(gqAg4P|;N`yII2*4_SQ`I@4Q)cq0 z#VUOEVfB}5iFV_VI5jp5R>(;GwoJ05d{zc<+9+JW8;NV@p0TC0kYJYUEX!x_mJO74 zA~sUo|KTe+X6%xNIP9O^9sxzN#XUMShq^ai$*5wxi)*>7Mn)3)iL7d5#l0X~aC1gU zA*vW>q*!q>V{Fq{L&N|!emp6?f-KqWDZQeaWD(p&`y6Jt0hOt%{;c!?3Na@>^>jSF+&W*3DX*qE(GN{}&(x B0Hy!{ literal 0 HcmV?d00001 diff --git a/docs/user/examples/mass-spring-damper/mass-spring-damper_multibody_system.png b/docs/user/examples/mass-spring-damper/mass-spring-damper_multibody_system.png new file mode 100644 index 0000000000000000000000000000000000000000..de2c5699b27ba8f39b2739b0d8cad1544e9d2ad8 GIT binary patch literal 53074 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 literal 0 HcmV?d00001 diff --git a/mkdocs-github.yml b/mkdocs-github.yml index 23e20f5d6..481dc9e75 100644 --- a/mkdocs-github.yml +++ b/mkdocs-github.yml @@ -17,6 +17,7 @@ theme: nav: - Home: index.md - Admin: + - Overview: admin/overview.md - Authentication: admin/client/auth.md - Host Install: - Trial: admin/trial.md @@ -39,7 +40,10 @@ nav: - Digital Twins: - Create: user/digital-twins/create.md - Lifecycle: user/digital-twins/lifecycle.md - - Examples: https://github.com/INTO-CPS-Association/DTaaS-examples + - Examples: + - Overview: user/examples/index.md + - Mass Spring Damper: user/examples/mass-spring-damper/README.md + - Codebase: https://github.com/INTO-CPS-Association/DTaaS-examples - FAQ: FAQ.md - Developer: - Overview: developer/index.md @@ -61,6 +65,8 @@ extra_css: extra_javascript: - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML + - https://polyfill.io/v3/polyfill.min.js?features=es6 + - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js markdown_extensions: - attr_list diff --git a/mkdocs.yml b/mkdocs.yml index 072c4cd8f..16ca86aca 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -17,6 +17,7 @@ theme: nav: - Home: index.md - Admin: + - Overview: admin/overview.md - Authentication: admin/client/auth.md - Host Install: - Trial: admin/trial.md @@ -39,7 +40,10 @@ nav: - Digital Twins: - Create: user/digital-twins/create.md - Lifecycle: user/digital-twins/lifecycle.md - - Examples: https://github.com/INTO-CPS-Association/DTaaS-examples + - Examples: + - Overview: user/examples/index.md + - Mass Spring Damper: user/examples/mass-spring-damper/README.md + - Codebase: https://github.com/INTO-CPS-Association/DTaaS-examples - FAQ: FAQ.md - Developer: - Overview: developer/index.md @@ -61,7 +65,9 @@ extra_css: extra_javascript: - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML - + - https://polyfill.io/v3/polyfill.min.js?features=es6 + - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js + markdown_extensions: - attr_list - pymdownx.emoji: diff --git a/servers/config/gateway/README.md b/servers/config/gateway/README.md index 432155277..cc0b141d9 100644 --- a/servers/config/gateway/README.md +++ b/servers/config/gateway/README.md @@ -21,9 +21,10 @@ The default configuration uses two services at the following URLs: ```bash docker run -d \ - --name "traefik-gateway" \ ---network=host -v $PWD/traefik.yml:/etc/traefik/traefik.yml \ --v $PWD/dynamic:/etc/traefik/dynamic \ +--name "traefik-gateway" \ +--network=host -v "$PWD/traefik.yml:/etc/traefik/traefik.yml" \ +-v "$PWD/auth:/etc/traefik/auth" \ +-v "$PWD/dynamic:/etc/traefik/dynamic" \ -v /var/run/docker.sock:/var/run/docker.sock \ traefik:v2.10 ```