From 3ffbeca71f4edeadbb6e04a2666eeaade27f7f62 Mon Sep 17 00:00:00 2001 From: Asti Date: Tue, 26 Sep 2023 16:07:58 +0530 Subject: [PATCH 01/35] Developer Documentation added --- docs/developer/index.md | 76 +++++++++++++++++++++++ docs/developer/servers/lib/lib-class.mmd | 46 ++++++++++++++ docs/developer/system/architecture.md | 45 ++++++++++++++ docs/developer/system/architecture.png | Bin 0 -> 147311 bytes docs/developer/system/c4.png | Bin 0 -> 229767 bytes docs/developer/testing/intro.md | 42 +++++++++++++ docs/developer/workflow.png | Bin 0 -> 63987 bytes 7 files changed, 209 insertions(+) create mode 100644 docs/developer/index.md create mode 100644 docs/developer/servers/lib/lib-class.mmd create mode 100644 docs/developer/system/architecture.md create mode 100644 docs/developer/system/architecture.png create mode 100644 docs/developer/system/c4.png create mode 100644 docs/developer/testing/intro.md create mode 100644 docs/developer/workflow.png diff --git a/docs/developer/index.md b/docs/developer/index.md new file mode 100644 index 000000000..213603da8 --- /dev/null +++ b/docs/developer/index.md @@ -0,0 +1,76 @@ +# A Developer's Guide + +This guide is to help developers get familiar with the project. + +## Software Overview + +* [Slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-overview.pdf) +* [Video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-overview.mkv) +* [Research paper draft](https://arxiv.org/abs/2305.07244) + +## Operating Softwares + +Ideally, developers should work on Ubuntu/Linux. Other operating systems are not supported inherently and may require additional steps. + +## Code Editing +Any popular code editors can be used to work on the project. VS Code, Sublime Text are a few examples. + +## Development Workflow + +To manage collaboration by multiple developers on the software, a simple [Fork, Branch, PR](https://gun.io/news/2017/01/how-to-github-fork-branch-and-pull-request/) development workflow is in place. Each developer should follow these steps: + +1. Have an updated fork of the main repository on their account. This should also be added to codeclimate. +1. Clone your personal fork onto your computer. + ``` + git clone https://github.com//DTaaS.git + ``` +1. Work on your issue/feature on your personal computer. + +1. Once changes are made, they should be tested on personal systems or the [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server) . + +1. Any updates/additions to the software should first be committed to your personal fork. + + 1. To check status of your changes: + ``` + git status + ``` + 2. Add the changes to the commit: + ``` + git add --all * + ``` + 3. Finally, commit these to the repository on your PC. + ``` + git commit -m + ``` +1. Push any commits onto your fork of the repository + ``` + git push + ``` + +1. Any issues taht arise codeclimate should also be resolved. +1. Once changes are verified, a PR should be made to the appropriate branch of the main repository. +1. Any issues raised in the PR review should be resolved. +1. Finally, the PR will be merged. + +Remember that every commit should be meaningful and satisfies the requirements. + +Additionally, please go through the two workflows specified in the diagram below: + +![Alt text](workflow.png) + +## Code Quality + +Quality checks are performed by CodeClimate to ensure the best possible quality of code to add to our project. + +While any new issues introduced in your code would be shown in the PR page itself, to address any specific issue, you can visit the Issues or Code section of the CodeClimate page. + +It is highly recommended that any code you add does not introduce new quality issues. If they are introduced, they should be fixed immediately using the appropriate suggestions from CodeClimate, or in worst case, adding a ignore flag (To be used with caution). + +## Testing +For information about testing and workflow related to that, please see the [testing folder](docs\developer\testing). + +## License + +This software is owned by [The INTO-CPS Association](https://into-cps.org/) and is available under [the INTO-CPS License](LICENSE.md). + +The DTaaS software platform uses [Træfik](https://github.com/traefik/traefik), [ML Workspace](https://github.com/ml-tooling/ml-workspace), [Grafana](https://github.com/grafana/grafana), [InfluxDB](https://github.com/influxdata/influxdb) and [RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) open-source components. These software components have their own licenses. \ No newline at end of file diff --git a/docs/developer/servers/lib/lib-class.mmd b/docs/developer/servers/lib/lib-class.mmd new file mode 100644 index 000000000..93eed3779 --- /dev/null +++ b/docs/developer/servers/lib/lib-class.mmd @@ -0,0 +1,46 @@ +classDiagram + class FilesResolver { + -filesService: IFilesService + +listDirectory(path: string): Promise + +readFile(path: string): Promise + } + + class FilesServiceFactory { + -configService: ConfigService + -gitlabFilesService: GitlabFilesService + -localFilesService: LocalFilesService + +create(): IFilesService + } + + class GitlabFilesService { + -configService: ConfigService + -parseArguments(path: string): Promise + -sendRequest(query: string): Promise + -executeQuery(path: string, getQuery: QueryFunction): Promise + +listDirectory(path: string): Promise + +readFile(path: string): Promise + } + + class LocalFilesService { + -configService: ConfigService + -getFileStats(fullPath: string, file: string): Promise + +listDirectory(path: string): Promise + +readFile(path: string): Promise + } + + class ConfigService { + +get(propertyPath: string): any + } + + class IFilesService{ + listDirectory(path: string): Promise + readFile(path: string): Promise + } + + IFilesService <|-- FilesResolver: uses + IFilesService <|.. GitlabFilesService: implements + IFilesService <|.. LocalFilesService: implements + IFilesService <|-- FilesServiceFactory: creates + ConfigService <|-- FilesServiceFactory: uses + ConfigService <|-- GitlabFilesService: uses + ConfigService <|-- LocalFilesService: uses \ No newline at end of file diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md new file mode 100644 index 000000000..98b524ea2 --- /dev/null +++ b/docs/developer/system/architecture.md @@ -0,0 +1,45 @@ +# System Architecture +![Alt text](architecture.png) +## User Requirements + +The DTaaS software platform users expect a single platform +to support the complete DT lifecycle. To be more precise, the platform users expect the following features: + +1. Author – create different assets of the DT on the +platform itself. This step requires use of some software +frameworks and tools whose sole purpose is to author +DT assets. +1. Consolidate – consolidate the list of available DT assets +and authoring tools so that user can navigate the library +of reusable assets. This functionality requires support +for discovery of available assets. +3. Configure – support selection and configuration of +DTs. This functionality also requires support for validation of a given configuration. +4. Execute – provision computing infrastructure on demand to support execution of a DT. +5. Explore – interact with a DT and explore the results +stored both inside and outside the platform. Exploration +may lead to analytical insights. +6. Save – save the state of a DT that’s already in the +execution phase. This functionality is required for ondemand saving and re-spawning of DTs. +7. What-if analysis – explore alternative scenarios to (i) +plan for an optimal next step, (ii) recalibrate new DT +assets, (iii) automated creation of new DTs or their +assets; these newly created DT assets may be used to +perform scientifically valid experiments. +8. Share – share a DT with other users of their organisation. + +## System Components + +The figure shows the system architecture of the the DTaaS software platform. The main domains of this architecture are: + +1. [Website](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/client#readme) - The users interact with the software platform using a website. This is the Client side (frontend) for Digital Twin as a Service (DTaaS) software. The software provides a React single page web application for the Digital Twin support platform. + +2. [Gateway](https://github.com/astitva1905/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. + +3. [Library Microservice](https://github.com/astitva1905/DTaaS/tree/feature/distributed-demo/servers/lib#readme) - The microservices are complementary and composable; they fulfil core requirements of the system. The service mesh enables discovery of microservices, load balancing and authentication functionalities. There are microservices for catering to author, store, explore, configure, execute and scenario analysis requirements. + +The detailed C4 architecture is shown below, which includes all the atomic components of the system: + +![Detailed C4 architecture](c4.png) + + diff --git a/docs/developer/system/architecture.png b/docs/developer/system/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1ad2d463978c834ea55ed91964fb79812853e3 GIT binary patch literal 147311 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%0AW9GxH&@h9u=SLZ5rnYAQQJC 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 E06W^nApigX literal 0 HcmV?d00001 diff --git a/docs/developer/system/c4.png b/docs/developer/system/c4.png new file mode 100644 index 0000000000000000000000000000000000000000..13b1099ccc2c012ba9c5604a2a8ac34731faa606 GIT binary patch literal 229767 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ξE1J@kw&(?;Tt4*X^a6!#e@vLgq+1 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�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 Ar2qf` literal 0 HcmV?d00001 diff --git a/docs/developer/testing/intro.md b/docs/developer/testing/intro.md new file mode 100644 index 000000000..48fc767e5 --- /dev/null +++ b/docs/developer/testing/intro.md @@ -0,0 +1,42 @@ +# Testing + +## What is Software Testing? +Software testing is a procedure to investigate the quality of a software product in different scenarios. It can also be stated as the process of verifying and validating that a software program or application works as expected and meets the business and technical requirements that guided design and development. + +### Why Software Testing? +Software testing is required to point out the defects and errors that were made during different development phases. Software testing also ensures that the product under test works as expected in all different cases – stronger the test suite, stronger is our confidence in the product that we have built. One important benefit of software testing is that it facilitates the developers to make incremental changes to source code and make sure that the current changes are not breaking the functionality of the previously existing code. + +### What is TDD? +TDD stands for “Test Driven Development”. It is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. The goal of TDD can be viewed as specification and not validation. In other words, it’s one way to think through your requirements or design before your write your functional code. + +### What is BDD? +BDD stands for “Behaviour Driven Development”. It is a software development process that emerged from TDD. It includes the practice of writing tests first, but focuses on tests which describe behavior, rather than tests which test a unit of implementation. This provides software development and management teams with shared tools and a shared process to collaborate on software development. BDD is largely facilitated through the use of a simple domain-specific language (DSL) using natural language constructs (e.g., English-like sentences) that can express the behavior and the expected outcomes. Mocha and Cucumber are built around the concepts of BDD. + +# Testing workflow + +We follow a testing workflow in accordance with [The Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html#TheTestPyramid), starting with isolated tests and moving towards complete integration for any new feature changes. The different types of tests (in the order that they should be performed) are explained below: + +TODO -> DOnt link. +## [Unit Tests](https://martinfowler.com/articles/practical-test-pyramid.html#UnitTests) + +Unit testing is a level of software testing where individual units/ components of a software are tested. The objective of Unit Testing is to isolate a section of code and verify its correctness. + +Ideally, each test case is independent from the others. Substitutes such as method stubs, mock objects, and spies can be used to assist testing a module in isolation. + +### Benefits of Unit Testing +* Unit testing increases confidence in changing/ maintaining code. If good unit tests are written and if they are run every time any code is changed, we will be able to promptly catch any defects introduced due to the change. +* If codes are already made less interdependent to make unit testing possible, the unintended impact of changes to any code is less. +* The cost, in terms of time, effort and money, of fixing a defect detected during unit testing is lesser in comparison to that of defects detected at higher levels. + +## [Integration tests](https://martinfowler.com/articles/practical-test-pyramid.html#IntegrationTests) + +Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. In DTaaS, we use an [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server) for software development as well as such tests. + +## Feature Tests + +A Software feature can be defined as the changes made in the system to add new functionality or modify the existing functionality. Each feature is said to have a characteristics that is designed to be useful, intuitive and effective. It is important to test a new feature when it has been added. We also need to make sure that it does not break the functionality of already existing features. Hence feature tests prove to be useful. + +## [End-to-End tests](https://martinfowler.com/articles/practical-test-pyramid.html#End-to-endTests) + +Testing any code changes through the end user interface of your software is essential to verify if your code has the desired effect for the user. [End-to-End tests in DTaaS](https://github.com/INTO-CPS-Association/DTaaS/blob/feature/distributed-demo/client/test/README.md) a functional setup. For more information [visit here](https://github.com/INTO-CPS-Association/DTaaS/blob/feature/distributed-demo/client/test/README.md). + diff --git a/docs/developer/workflow.png b/docs/developer/workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..c24f5b805f1218dcde7ac199b22f0014ae2dead1 GIT binary patch literal 63987 zcmeFZcT`hbyDuC86;z6#vZYs%u1GP2CPkWnQl(qyRS3PSh#*QYB3+tvDFOi!R6u$c zLhle-5_(90a942e_q^wf`+aAO``z*VamQU_IQ9x_t~sCi%%}XGvUbEnZB^^8Ugsv8K|zRBB-pFWfk~AVS7*O9tczseevk&S>QL- z3pHaX2t?CN`gf+y^@|k%{6Lw92JH4ZPL80*H;h889<>?*A_sgI& zr*{;0$v94LLO`k@iqku~S;~;p8xR@Ge>Yjom%Wr})i?>AYnac_M_^A(f{e`39A)j0 zCJHM(Q566QSo^AvF#=CIZ+moe7kii2*z$;!2W)B7p^B2P7u$|HKF74Lau1#)6Wtxl zO?eHv^p}H_EU04prIhkIRJE*@Kc%?iJD2YI2LL3shycVYd^XJSp;nI<`@rg3G6~b| zHJ7nfy^NNtF(ppzm9xI7b!rm>`(kogRjQ9Sy~YBbRI&OdberqCbo#}!o|QXhOAKr% z@xUV@@p2Y*9zVJ*>jTtlSjTTmm0(+q4D|6D_s-3eHdbKv^yZ3JQBXH1u9jot^9%Fq&oSATP zo0(*?EICeXn9BhD4IonO0!acQGQz0&;|jiV(^5N>nZcf^BAsNb4MsMMp96#_TdKgX)BOzEpZ%_I+F9_x1r`zFAAJZAw33{ftB-23cC z$P3dZ@4!%vtKS0J+^gPqWdC?n6r=C8SP?YiH|A?qz-nHF-jp0t7)S5-Pw+a{mv~)? zHRKN5!ZEsIWBhr$){TF9{j6X8keWO9G0a9)s35}KDgbSg{~V5;89BaDy9evp_@39` zHZ_2yNvVAHZtSI?G{T%v3Zun6Us>97wUFxT8|x_!z;4eWf*lA&t8v+$VP7XMrOI|& zFhHfY1BcGde)uJEq2YtY1uv1C%sAI-+fW=XsfkxF^}$?k)8SM@U|0x~0OAPWHP_oS zCTAOJ{kkCvBi4{>!2DQvat9enWcIKqNA3U{rzbxZ*n+OF8cY1vs%!|ww8&)9&JE8h zbi2~)oG4n4YVPR3HeAOz+!4L(MDiuJRX|RJ?QyqlU&_IJQP%n$vrujj$GesWYhCk_OS#ENsH9! zK9l7<{R&OQ1NyF0yLrHpQw__6#;zfnqA`XBE$~IHmrM7S={?AHzvXZGn#x z5%#Y6rmpqFQ8L$D&7A~%CIjBQqOojfU3I_h{VgV_$?;10)2L(@ONXB~Yk$>BC20jp zcI4eoUhEtdbaz_0jo-x6YCT!p|1nAXzyNRn3W}V7_2;3ILczd_>>SSf8)Y#ASPL%O8^*$TxBG`miIM`HsO^+qY-$8aKR6u`?4@l_f2Pls0nmvCN zvXj%>HDgXpa!@HAbCebDw!=9?sse=b#oGl^%S%{Qda2Cv%hDWdWwxz5_!vGt2&W^y z53;GIx|QT@%9dT3uRSL1?mnsxgIVQQkwHtXMgP2^!}+Pd|y8 zSmzxlvy7YCP3QXphLlJ3GJkACD41xyC+fbt`v_X%L4@;7-)YF@)mg@?<@FUCf3vZ% zD6Y1sU+2XyFS%Mh$9`}(+G^+q1DZ$m5^!}fJO^v!)qXe!@Qe8n@cv#`Lk8Aq&LStY z;9YZeA}8kSlcASdmjztJ!(ZS|242|zJfgZxfK|h4KLiYHT!ewKJvS)(Go;5Mc7E%t z`F&BT=d>13A8`Ksqpz*m5}c1~-n4`MJ4dQb^cV>5{k_ttVB$VdMJ~W6g?{I|3{r^83Jh`S2##d+U5PTUhbC_W z8#AP~)>vP4%eksBJppU*|0OiW6qFKUNb7rEyV$EdZfw0-Dg{wG>%2Xp3 zOZAWzENjIwUeKOt-sn*vh_!Yl_B$|Rmj@&?e<$29NIjSw5GrdO#%U#^Rwa*J#<6XM zYXeBb;uaPY;oKkbO5~MiQyE8N+u7GoC>cMkZkJD7G;avT;xfnm1Iq0k(u2H3@{s(sh&^-C3FH>#0_-IpD3nnLrm7)?M zM&mh-Wk{ro(%TDXn?+%Rvl{G&e$_vDYsi?XrIVa#+1*={>j;Qd-2LQtFs19>YKv1> z%*fLLtADB1=|N_y;e}OQ5%0fpJTyBf=Y1-+FEg zpEs0}{aF3>GD)pTppNG{qR6LuTlKKn=VZIACr+vA?Re~4@4mlEuMAw^DrFg5vT`wa zr@!S`AROGg^=-Ibej>~9$z{`OF1y+HFXuk7@#T&Z5WZ69kui3?_xrA$FwxW>(j)?K zL>~lGQl6s5Y!)`>bJj_o^B%fT@|&{|-Oj)jbkr2R6zokDRpgD4qUJ`ONLj9ZDB-(0 zQ`k=P1O(#vK|+*qmn;KAJWwK~#4X|y+#$B;vR{qe!&&otxlOt2m7LxWvyOu&HQ$i6 zzL&UT1^8aCD}PlhstS5eUOTG&9x6SZ{bcXiaNfgx#kt-Ys8ci*odl(aROrZsN{u%H zV*?V#gVwQBeL68J=GRh|d&eIi`gzn=@coj#{4|9VU`_xRi8=h!nr}T&W#!2Mte9l) z(%$|c;pu=kXCrHb;xdhnomAPFuHa1r7sOej-jxU4nx0FLqRtj~3g<^>-^m?_d2!~A zVcz?r=eesN;`^ViALd_`p8ilO@nQg>gvp;J95?1{vMwKyEOoEN1lVc6ep9O`&>#lv zv6^x&v>tvqfQ#;olS)=York14&v55Z=cp3p2Frt`0Q$^0PU+)yPY(Z@itLuSgN}WB z?ryz!dn$3e+S$poO`Cavb_NpC88vlmh+Vr zpWinOHxrij=-Mi`AZS>W;)}$Kez*7ft&~01OVX*xIk=3RkwWh+PTziTD7~s}hp`SM zWDKma=M6u_@S2SmsLq^s0bJopJ!kr$dAGR!1~MyiZ2x%iYrI&)lvAOxCk$2lVG~!JF}1c)^s0s_J9z$ z-t0Gcx4OQ?Na3pKIeEFqBpdiMV%b}Q)<`|qKmmKQkJyl|?*iOj9T9Q0%lLu7Tf-Xe z=&hZ$x27WnU9hwmwLWhg^&qI96=dJP2q#Zz@<{pY!YYp$bGuOj#3*V)BzUT>5%&A~ zgSyL!oo@tH$5T~my^zAw+zUciw^d&AVV&Df#)#34J3A0LZ@)p_2UGbT7i(p-?4eJ+ zTQ!`9&;zWAih}CR7pMUs)*RJ$LY$16w=fHy2|#Zy_e}jZZN5iM#l0YCSMR>`&R4Ff z^iZo_dsV=IU=-Uh1Bd*CdZab^Scq6WgE0d1$ehv>6~+_`v)Bs@xX14kmw^iN- z_k$UZ(uaNl8w-^$b`+};8wZ15y9m!LF5H-_$ub)MesrH84WOGzN)k?s)5GMuUnYRS z)xJ=DO;>S+O$(95e83-GU~;YB(VH^m+V>vFxRd9flypT{SFI?ia4{;#`(uWv3zJOa z%*wG^>czIJ$5OJMhk9O%TQe_DtR^Sj@+*1eTJ~_lMV%r5Hk@ia1i@D6MX*`wsSZ+w z<1JBTcxZE`uBU>5`i=vW`iM*lUdrxa?v4w=wLjwl#(4>#Zl2-P`gSDVHpFBy_Sicr$gjGPsQv}X1`u#+LU{laT3ytZ3F4~+6+WqXbvfyR%Khfg zNQ|$R7wx3*Oyki9s_WHa9kKG7LB1tFpKoifTUxD}YA*GD_8xbn4-2DZ0+l2z^|{}|9u8@62U=8Y-6f3$ zwY&r}W0h?ouDzx_oPuVJnXjXA{N%=~RP%JOcqZoRf*28D=uh6-by;>`G=-F$D4E(5 zeGsQZ1n1Es!T|;~DIxEt<;~Dhbf$oY?-wdlHZw(f}X(0Nj9q<7D!39tR2pB1v9UP-_6$F;IOTUmc zx^`x9c`|e7Zbje;FjCEL_f9s{ZJ~-QMEMnnav=V%pb&fZjCKK+M!}G0j*PdY;I05b zIm#xGl&=@1gerz^1l%|qq8tLSFLH-mLadk8nD3)o(7~^(KS?{X8^*u6m{IQM7Hsih ztx6Eo!cE4ZtfP32t=IC==c4)nUldCzF(UE;Yf%s|I%^k-8mr1E2aLu!PHoCXvvNl4 z0<+s}Nc%M03j`u^gA{jp^$)V;Z>5Lu0ZSRmidt(xu1A&`y#!<{WOgoK`TYj8sCSi} zHr)VsPn6Z{Uhs zRv4%DkfY@&m{HAxG9;!BEFY52o&}6oFmorP#@RkhheqWP%+@AN8y^1L6mBLC!Sv= zLq7ID$IdFYNwXV=WbgbK+#D?=x(S3d76*K$AI8xsG?F|oz?if&g`fDfVhz>uAzw=* zKU_}wo|P@*eV9JMQ7T0HV&eFx? z{yo42^WR+>=<~6N$Hg)u8OhH>*V~NEZw@I&4 zNKRE~iV_@ShPp=~Y5nVI72XdM9-GzkxDy*u_|=h(+p8Vq9AEzIOhI>%!T|IA0*LD# z=pXC8a^|1AKkET{^53TJNellU=4j_9#=mi8X9GSe;s{@m?lAy{YxfO6hxc6WJbi_# z7cfw!VcYG7xiXBYxH4Wx`PPZ{$#A<9s%3wi2L`(J;`Ypj_cA8-*iLZ{oiK%h!Y#*< z2f0vN$k#Nw0vj#J-1bs3SDvQj#r#I+i5p_U2v)PboxXjJPrGgo!}Zr}NHPU-p*%xJ zw?RDM4(J~&PUZ^%44{l?<18f2`0IBly!jB3vw&?<2|5~}A&mw}0cM}_98-%KjGibK z)QGBw`>W8fY_b5gg_ekn1;sbYBPB2|L^S&e3rh&fGjnn^ihAt+ix-ZI`+{zN}?UGR5Hb9hLTS}Ili*grm zDKglh08fk4jn_*&JIF~3lJ9k9_iMj1lA(aHemdQlnHu(piKmdBSB8`s2DTRpY|p0t zcaeoGr0z`pk!JC$-*DW!TunaR{P!rL#1Vdxq0e(*Yj+4)L^8wwykTOmSE#$#;D^^d zJi2QDF)>~=?_ij+>3419+-_ye;5bDmFPbSsLP8gd!Bu+d3@InXs`CT0>uzZ_U6>23 zwjBmmT{Yr2FHm2_@903>68CWfa`KM`IBr(j^dmA%Pl)>(q~%U=e;iq9{(w!7Myg{#@>Z5?wV z`t@W1Jfb_PuADf&K5#gHG|<-r`(PN>mYb+xRg09rYgkB+7@xEx$`!01`=@u^=~F(5 zPWD4gYrD?Cs?sUwX~{S^`1?U$9F1lmQ1EX34Xq6hrbgy_-dK$Ncb3F6}SLdY@v7K7SN{eGb_2&jDi8Z7QYDno7)Qt<|F+mlaBY%u?Ki(%yj!%$9TSdsjXE zv^`ePHhnaf61h*~C7M7d#;U3ZWbF^9&(~Lh)Y_{?9^`)rfoew-2?mq$6O%Z z`XGs%VEj-JUhDFKh|=-Qsnsb->l+}r<`nRfj3ozRl@@&bv_Sr^G>%r`BKB|$y8tG# zoV98)nqiE$D7_{Pb$J+%fqs(w7H=`x=R2pUGwK1yk_2f!nK;nv4{nM|zu<~v-{vxP zS+XEo5_&zjz9+*9(QIgRE$`}XoM5WMP6V>|^5z?;PiMNNd!048TArGFmpRXFMZ)bf zN_xpcdie;FAm^Pvl;;TXQZ^%7h6{BE%KL47YoQ6}2D1Oa6%xK1?bS;kR7x0G!?xSq z)h|xsyX$5*0rLLJz`#UYS>~C>Wk>G}YF0FfYn?nUJd-f~^~a9E@llm*T_<>?&C9EK zc*3d=1CDwhB%gNZwL%Y3i9n^q&Tx?&xwshZ4l$H9yZgJS{`rjJGHuG@|eqaL~CNcZb#TT#m z3fS{AifdtPINbeaVOyLzN5&rq1A3QGK>H@1q9V(PneWJ#Csg>T)6EY4uWPT8xYdjY5@bCpCz5kWD!-D zx{b-M8Hwi(u(~7~N(LT(L)AT1>Qh-w)7#Vk9EuW*Y5%(>%{92jOl_WExMe5Nw|Dp0 zjYWI!!Gk*g4LfYw!K4Y?!Jx0nI8`f}4GkUv+ghM@rES^N$o}{}j!}EH9EcaJ_NF(G zj}4L-ul>d7-TFR^E0WPaYU<432Y0XO!9y0QUMNel_-LVF4^3HTeA~`(eYp?KyL4NpOD@RVMbYCmh#~tfUc2)sNVdmHK2mx66yK>&)^`01G+YO-Pgy5S$(82 zu5nvM9bio=z12z{Q0VyZ><+~OA3Pl?eAAV+VlXj)dc!n-SEl(%iFdr_dU-sUd zD<^aHnJsxAZP&?HRW=jroM9c(IJ%pFNGW$_EkITp&08#A84JAPTbyC#>g^i3W8jfgxC)CW;(J(XzYO#Tq$3;<-4oT5EdI=r{-0r% zI2BYQ-aq5ef5U9D&)8KDfg8#fQEWU!|;` zEC8Mhow%6U$XXLxXcO@+4x%T?K&*4c_8;zDovg#=c&!!q4%4X8CU<8@7y`RM zS{?{jL;mWD<%|@Ubm27)VH$XyBq$+LH4p{G?y}XTivg19=eg}0m2i7_n!U-D*WDh zRL~ND9!d5|UOqTkmJudM#_X>glw(XbV20i$%CNGBR}NI*0_{Ab!}$D|ofk_aSw}e| zYsw_sv=y#gw?s{w&r34YtON$Zt@2ZL@(nb#-+Vath^et8&|f$7D}T|Bc-laWI_$(; z$Iy@CXVa?RQJ@@&hF2t+`AaaRAx3ul#V?by)wqLu(2Y$wBYV5K-O{aZ2_31xs^7B{ zA)SSPxhHw7>XxmwcBaDG-{YZ`V58Ma!9X@l5X9u^g1(r&l2hp~x0RjY9rz&|APhml zX>D%31CbC4(g2XHP7qldjNuW( zTu5v8k$OFH_wP6)#~Yz4#0>A8`SnxY@dN_K_*r*@V(WFstav^>8Ys(k zlv(NTv2kyQQQgXwK>>C+Ewx-d@m8nM>R=l(&+O5_l7V)fmVUq<*I*|zwZ-mdS>J^6 z^ybgfI!*H0mh99o(sm{pz2E5Q{~K%QTB^O@SM9bR&g%~<=i#bpo4t+(%cTvGj);x? zmml`$AB{uXG9UiZDh^2d)nh4~@ifW6fJXTFCmz*SDz8cEk5h~VDV0N)OhkLH?P7$t zcC32Yt}WVqS;G2amK-r*J%m8yM18Fvu63sE6jG{yC^&wJI}K!jnH2BBq2d8{Znb5}JGU1$_UzDVyA!fE4@9h|qOPzKstFwwz z&#bL-((D_uP+r@bz)%;zb2qxUy2nIgPss2m$dJ*Nb}e6Ad%Q=djAQ@u2PuFkU+9BQ{{s4N8o;!&&L}%zr{R@B$9`j#){z@yRjM@XazX_< znMsk1qT_dB`V|!wdCcoQ;)G2lJ5r^}uZWmE)<_cK_XW~Gwj@agObSSpX|p?3N{2{1 zbcLEV`nd7ye~F=D6u0XCdQa&*4-M0=)%D!Dv@nl}8t3>A%u=6_t5Fb4%-V2q>T}Wz zB%>JOhM5GX$OYDSf0ED?Ff6&5C}0rxto7ZPW9)CI@oM!XA!9DhWRb)}OoPta??UcE zy@DDf2^UdH0$N}-_w$XI@3s|eDaka~u+$`f@cherg0F4*GK5cvhvniO`}wc;u|md` zY74(UpoPe$S|S*hRt9ngKdW5yBPUIFj}!nYG7&GaO8*x38JWICDKfsU&a6^vKNLns za^jTq9cUxaJ!QdQ%HUVY2n>O+ehB;-r0@cO60hFx9}QSrhRXlYvJ4JnUpXXAsW1zm z^;hAT{XFW-RXlkfmOM~?<&Z>`!V}Vy78n%OZHTR(V4Us8y+(-c9+TeUcmW`+dy32_ z)9ziuPJ2-=c8{~L7XyQVM<7ZwU^jIA=1n#|pLoAH3|HRyE`D}kVg3Yl* z(;nM#80@3(Kkd6r)bv^s@V~?Xf)mz?2g@zxsi>$b?o`-MzlipojNwZm-3@j*Emv^iYt+iP&6l6cn{cm9~Xk1`L})cv(K z>?dkU-?KtSq5$ranR<|MSfc#iUX~X+;TDqNPvp}l+R1CX+ivSGH1r*RQK!9rYk@(p zbzZIy67UEU!(DlJGmSfw1p?Ke$&|jvc_l*o$-JD=$%kHO#D-V1jZT83Ws{>Sn^NWm zN2#Mk4L5CYA2c|c71OrwDGwI2iZymtRfnZ&930>MLBgeU@<3AT)+njW3Sm@F1!A;fGW5Sx} z0wQ`muUI4J9WLcLb@rqORq{D$Ch^37gG5?;(c1`}B|)c0(gjHHk*v-kL4WPgtPYr< zX(rIZ>L@Vn$$h}dn0SmO8xkiia%DfVNV5HtiofC!E`d*04%7t7AX3e9dKR>zOq z%Q$W=>&Vn|LjLD_#8J|T$^Zxyo(x>s^UK)2`rT)yEoaH`6JB0YNaE?c!8XsI+B?<)x#BYClyl%APlR2X0`( z>hWY#h(D<+WG0%Sn*>lJPpyNR4?%im9gw7uP$YVeu}6$2@BaZP+4AdUMA3#C930FC zvYSlh%tcJ!X9gE*o%d@0Tw2^y!9b_-3kma1uImXE_RF*sO|f5Yv>%Ssdzy1E;hd=B zOvV*Xr*~^I)VAVQx|m>Od?H);rfWT0aHh^Jp!qy`WaIuvSzs@p%wqBC{!--Lyd!_S6!x$`L`l#)LGSh=06_B0h9gyuRVQx;YfGX8 z%)RpZassdg&CAt4e-&B{hV^3*(u9D$fT>SY=JpF%U&65)TN_wa6hr59jBs8q7A4AQ ze+8@`Kt%Y*4Ec!H2$~JVIiM`HYhO1XD%UG^3rBw|7?%9fekry}NF&)@rX)t#zXrPtAA^6$ko>vy+2`Hl2Fd=vHT8LnEw!>hONzh;En z>98%aUMu|4JA{oMLaLIppk#2Z=5q{J|7IU)2?|*>>w=K%HsWrg_@h->bn{o%rrqMG z;k{3y4faoR;64falUsZVZbJg>1#UY=k+vVL4HA{QKHlhf;~3Xqe+L*m~L(Am$A>K8$ILY`q&_$!9=Yb`9jT~5)Ul){!g3u=`TX z&(@0*DVvIsVPO}8#hp@at#RY+i8?kZAA=;G8&T%ozr@6EPVl&my7bqWWf(0Brxv^G zHJ38)WVst5?kixatM&XFL9`foyQC}_O1#9KZGB@5y6sh9vE4UsEf$QHf%c;0gKqSV z_=}i*zjK1ai+S%ieqD0bmmpyTwVME}qi-o=ZP*yt0}m@s5j+!rswnlO1v!szpT)Zk z{(kYYlbm*j-Ag-V+d9uGC2m;;mo^CMe1y($(1ja%Ler#zE%=Qp(!~7`v6J3=h)F1< z7A?N;O%U1sE>G~mm&H*1s{%&1&P2$W?eFwt(iXocGC#S;AmTh$*ZQ7B1_$C# zo`x>ula#B7QrM-69A+sWFH?ITe@DnWFpyRL+Tx#*ENWtqV*q*GMon|kJ>i@Z+R_C} z750uXNn3d4mS$)5+nB*8YA6f)iJuhWoq^2hL!F-k{c&&Cl@^6?4g+Ox@I^0sLonn# z-Wg^#B9$miPzKX2`)|>QEZDXv>Uc)l`2BCsuzP?M|I3xXLLveWt&RzMl>mwwtFnz| zkqdaNoi5GGC~8q{%aNU@7OOZ|pd)HrWs?|y-&VJ?`;u_;(N7j`E)u}v9RaB|(_=$; z#A4G^W6s22%$BDbKao_I!ye+lU(%fpF}fyf!qXPbF7;F~Tk#E#>vSV20$`8~4GkTw zitQIMueVZ!ajQmsjBx=_eWlyNuj0&sA+@E>#5}*fwKz_tbN-T#$D!qQx?}g7Y>J3qPkr$f{0c6nkw7g(E*8ZNK#?3orI_q)-^AwK$5MM;FNn&K9!(*GLC8AnZ5zY^ z2;Ya+%wyfp^5yTD9ik*MPd#;{mm~lcrj0%o9_u4L`muITva)ry=3CL<)ZV?j!q4@A zNkXi=I82`DLQkgrj0JNeNi9GA5*3$B6t8dWWF=dr7o1AbOmyTvs5{?MUhwN&qR_2+~Ry%Do&0kv8qZ(PT~ zG^9S&Xv)E}2TU;VU%h)AG#`IXM)sUn@`OwIlbT2*DrYXig^}G99tf;U=iQqQ;Zu4` zBXRtEyw=s#@0jDoDm?;e89c>8%Ou{u>wV$A_{(!-X3w0-K8)UDumkYOirY_iH1ke7 zcl4++MdbB6Htj%Am*=@Yk{|r=R`wsGN+-S>Z4LxD#a`%f-TVhBSw}g1K+H(u?ac>i zcOMPrYiS-ZEQ(WfrbB82j<(voZruGlRZTV>$E#_D9{*-j{9<;ijXhb`f4{xacW2`P zDMBJmK~W6^g&m6>@k;}$?1?ckbdbm=MomG1JBWUp*&iW)yb)c0zD}k{Yb0YbFx~id z1s-v6eV3+VuM|n=Pw7-nfT01dkPuJek#CBGW76*;gRWi>a^>*Z{>GU5#^`MbLmhCk zr0a~Pf8$D-4$OUt6hYNr4FF=PSDzVyei71Bjwiw<)oKC;MOLZ`$^>FRPCe@su-NP7 zCs#4P%279YR#5&LK|173^z4t<%eqDS{19?w{VxwWVFCEcjnRtcUQ#Ru8iiIMbylUN*q!q;i2I>p^ zr-_ab(CZF1YN)A&r$?|hm1gp!(w4_RgLSEAbZ5s&8l3Z| zo(I0kDX^ZYaNeFFUX2sgj;l9!x z1gq`V)4gkJ{4>+%^Hqg6?vp~_G^CRB7_~e491+#X@0Ndr3Uu)FFqV3I=EtyZVLN%8 z%=IR1zJzygu<>v{ul8T$g6K;}KOommrl(wo6Jfvok1iK_K|PIY z>{4VI!dd?rSrx&qm2h-+yNek<9V2e9J7FAKPrcshm~PUs!uk9Qg<=V*#~Zjf*qrgM z#ocN9#fAHBZ{?%Tugl*gSEY^-GOij;3D<1(*mzMCVRIrj5#ZT-eJ6uY*}V@Y7`f|* znm5A=-Glb6R!HIY{M=^B*&uyZcM15zOV7Ngse zMW5)|{$})+9Wu&%e}$0dknM6@uQB&I+eW)d(i#8i=&rp(ox;+~w^&+8!2^7yZsh}Y zXokPGJ!t8RmySfCMR7g2H&wnoq4=>jlkAKdroqn=152Oq`m{Bk=xEhCc=d+9yJFFW zM8S_Cs+rN}lz|Ty@XLK~4ekz?on%oZ*Emf+`xPGCQD$ZxeTE`yxhJ(NhEr+drdK++ zQCAy{SL$V(xS1@HR$Ub?$ggV?Bc2keNobVdb*?c*J8d}p8w!c50dj5XGl)Q59-fxo z$&a{`m7CG}b|R$j3h&&`85Ua%<#W+g1dStvH@NM|IHA-DY+k)CNx%cAI755 z9M^_%wo|;ChhhV>RCsIer;YUlwn~}*^xE&f4ynI?$YkAf%`@vwsM3EVBlNeQLSBbv z%>)Os?(PATDGYwrgjHKcH`qo^yytHUm5A^nWAmP2`{suiASFc`&x_Q1!pjxbu)e{m z>w~#kjEB7@1Nvn9MDfXkL0mBx1VrG;2NZ2@Ka@ z-q^wN`imb$@b%O5m7`uerFmL zH9zsX>$u^^L#74K>{R&U3rb*i1~D$>7)*Q)+}lH{yncA?6LhzDf6$F^+`>og<9BI8 zq;|^UhZAFYpK3Gzl!#o7-yw%fKLr!zi;5`s1M969xEqq|d}gY$a`q^xND zE^%4Z?5Qegofr>*oodyeqyiskV^c+qqC}}0N=&7V&ru%>b-v(p9{(-2d@Qw;a-ViA zg}F9pL2{=Kc#G1)UXSGUwSm11;v;Q&eJig3LfXqkO~{JfEjaZ%10@vvawJBg$+ zltMs9W?uLPq-HoOCT5>)!fS8urjzRCdB73#*ss^fx)ZvM!5#-6WrlaPuHy#0ZG0c& z9dx?h889~|g@C($c&MkO;>2#-Zdf=hPu@=sOe`9GXn53cuSmXMXfkjWJyrWO0_bs7 zn5~zvygF9x`o;|5-qFjEedN98Stns>0C^=(A`F~byAju~=*w$9E^ZUB*iMDVw9PEd zj?7r$k3{p72VU7&th#?~z?3|B1$?N$GU1I$6gKtN%)5}Mbud)Z^`s+H%BU{SCO$aL znJmM>pfkk{W~$NNn6i*J!7Tdeuz%gd_@f1Ca(Q^4{HG!>uy2Z_SH_xZ11#279m}MT z!L1>Y2Q?mDLLKoHAy@i*i_>48(#6lT=n-uDp2|~v(oF`Z&)Sh8Tm>}TbM{RizqOhQ zb6l#|Oe&52nT^k#)$;xMGwXizlxsPh(0sfWkT}ux>1zigb-di6L%nfSe%D|^m5df@ z>L~-TJXsr@mq}y48n#$FY}t`SUcA_ikKbo%$penAtLC+%_5P=bI5}%S-!HpE`%DLd z{}tIx)j0d)2VsP*W>H)jA404XJng&uFR0KyY=UwmdYnB`9b1KY^tW*?)tj<)1d!EdcfcrW>f6#N(&< zfq=>D##cb7&xr7!S7_MZNaj2qe_On}wX6fm^)OB{Tn@O6h%N-$YNdMd&-nsudx!fA zl-5x{-`q!#aiGsHMv7eBp$VJ6KyqXXi}PY2#aXIdP&n@s(5qMe*GD(x8B>?c>$^3N ztDdC`nKcTOBuAfMbla=4I?E# z`eJVOLo0WyzGnzF8IRuqo-2X!qq7ozpwq;FJ|LzPXKkf!nJ?!hDwteeq!j+x*X_s~ zGsyc?>3+~t0%%oCoYjBm0=x4;iDrj~@5jM@)#Ngj;g~-yUBDMlAz9hk(IOMuW%~me za+$%S6T7=4Ly+5L-V>@ae$no4bz?XXFEQ#$8v<;?jVpshMJ6&psrn~HR9E0~%$g*l zs-T!dB~CXR=fGfh@Rnq!K(W9dKEFP_1%9aw{tZ0-mpV2nswMm-y96zFCrDW) zpjZtcTe9(G@`lBsH$zta-F=IliGp6&q_|W%FS&0WsY4VM2a)$IX-Q-2fNBaw_4%%8 zeqjgkgzP3DswAe{+PZNMT8W4N&aZ--hv#oM0}5FO`mq%*s%I$H%j~{N=rPi-KfY_? z#WvG3e@k?))f=BPr>5XYL za?r<_6Aw|(!Sz_n{}guoaj~ES&atb~3tXVmnOZG2pA!S$G7Z+%M>uQs6fWic%)3Hb za%=Wp=Th+mHGWcEAM(^35n$|vndArJq1(w2Or4So0&nAw{@}kiY?No&6hu!?|IGGT zUrMv!((erU#f^#&?yF>+56yeC0_@%@r|n+e>4v$+$jGGnvf0hT?~q|kPqaj zn)nc_IJPrxd|Nhz?K-~xN@tQ0!fr%$ut3|fJi_!m4GZN(pGHwq>GUF_$j2Q;B_->r zde1m%Plr2E)T|J%gnjgcCJjANMKA8VOJg@`;rX=Gzgtp9lbt7b);nsRnH^{ zFCo7LcZD_uz27UHL-nNcVVh16)%HX8fl!~XcG5l4sy*hO`%x~Z+KmGn z8T0GT`Kr6&>sU-qUc%22xj>3>`Dc3Hr8DQEe!Fc?RgOKS&gf#i$>|@>9;aezlv-iB z)GwyXqZ+h&($!XZwC4O=4=6ckeYx|jg)&9jv#7-6n+5<6t;;`{072mcyDJkwg;CId zf1`q%!<`^EfV&7NOaR2+>O&g1(QG@}=W!hG0&+DpuDnIbeQxm@I51`^BImWYP@E8Y zb!YdWHWw&fETJ=hsW;zF&s|u|zCj^inU$;0?;g2(?E9*(bVlz@Zh{`F_aog(_Zz6! z{xAEzP#{%wG#Pwy>@_0a{Fb&>wW9dN+)ta7>n~*gg8~>%ry~O^39y3{2M#QG7wjL| zpW=Wx9%@eqT4!De4K{vQwkdXqd%4RIC&SMjbTYoNoyf1{w|ej$TKROw%XhU(?uL-A z$!&4(Au;t-v2RCvzbNpVFqh@KHTDdslsmSa(elKbfIQb$#riKL8a>#1Xm-=MGS_Lc zZs4Ev0>F<=^kfBf9H-;uQ>!w!F^nW9eK8W3!`b_FjDZ(Aeo5@xFdct-Z8()%M)CGn zEA`Yz(hvM*HpmPcJPfX%1bC-ZZL#wYpl|yUnrm~HXP37(4qTSa;O4)?S2y6lKB%(! zDo+O;I(MXjtI{LX{3%w!ZoE1fGI1j2(pBQr;qMXhe^-EkhP#G9dr>By#w(omWkeSr z^)fTWh~CvlBzmBWyHxn+&Gay^&eM)hy;W7i^QDftKUQdTaU%_j^GllBzZRdm6ON4S z0}jb6KTjBKceB!V$WI`FG{Bg(MZwngwmEe-dVX*qM>P*fnQre6>2v`FgAFHTK-J>Y zz|iqWll|v@YbFT+;=&aeymCk?7%4mJ&oGiQOQaT%5Fo7+s;tE<-3K(G zi8~VAT3NvEgt}bK#QQf8zm2AYa$zOYRmK^_uf^hJyCIhxMt_NWmp$IJfqCF7J%}!K z0k^RJuz;mXfB=;Ku?&7OzS0pX0ui)v0a9*pTq*}PZdk-&S?+_B!KnEt5i|_=Wd-EK zyw26#|F2{?4r5Mo=OKNa=C3UhL}sF62sz{Gb5iRm95)T#CD;@q+h>|$<9siuN2^*S zCGabDqrKRsM1kfqeo@0-n{=CRs$%XRvErfn0#zvXj{jlt@~#Y#WWnrx^V>t`t;h2|R?Loyk!? zb69;Tu=4e!`Fzb?OUzY+;b@ohCoK#*qt|0!oxM1oQ#Y|MD+ctRB!y8kcLMpLjY}NM z|GCvd?bcgu)_puAMI%CGs(aR?{NhNXbwOa8H84@l0spVfD*yA%2+RY#O zJz(WViJHeS@w&vX7B6d-;!Hk1QENg3%?#=0_?-3EaqG$~VwWl)TLHROk}q7HM}g}N z3UyU3Fp3B<@M%}yp|l~$owkAiya2v80ls_s*uR0d+GKDBjQ2&Y*&OQB;XU zzhC|z|J$}cxh*EHxvuj(j{W%U`?-7D$*>$)$__mS$kYXd0LS6r@OQerN8UM&w1XR1 zyYMQikqEslR0suq1Fk6w!#o!WC#$SXQ|jCf%%kPleC^$yUnk>TqIcW}Kg1>UuKLZd z3l(ZBFTq(|`P4#=g;8+A4~qmknLri8-Pv672aDaQ2>iKg>1Gv<986MfToly$hnSTW z^g8q&T=ETP18=p78gBU!{wAldnKq_Md+D0hPwitCRT8GAkKYKap3}Glyi&1}ZusXU zFMCttI`?TYIfPPlUSxo#QS?h_=;>7R1;mDnNoefJdDIL!gqoqm;lbe z!Ix~H7D6VH1Ja{u7my-iMk2Sv(nH0cxw~zDJ3_bD)J`V`Irety<=}YTJGKp%H3_G< zyLLVJBnyz2W!A{ONGJOpfQ;ga;n9f(8`roq-MO9J-@}I1)`(O9C_zJb*U2h1-E?Vz z(2Hy_c}b0Yv+{@Cg0uqGYfh%6&z_E4zU?6WNtn-T+lpu5 z`tI4JH+3M&=txrVk{0Atb+0H}Y%sM}AFXC;`vmI3lj+9T_v^9(#XJ{d#TdFZ7SED+ zCEic-ST?e8$b_%PP@mCkPr1mZo*1Z-O;|+CFR(^*1YnUI>r%_?Cv47k@$Y};j1(Md zP6ie8CXbxP-T*VHA&445n<;k(%T( z$kmRTY6wWCd-DC&nKGXhBWdJu4WRb=rcS+k*~of`Sz5_L$23|UVsI;Y=&Z)HL(K9D zxc!5&b%Imy>mToAhKI<6FQyf6j+Wb1Wo?Mhjn6p(mT2H2Ct%NEWVirF7j?O)h z6%_f=ae~h!PngEYw#bDkj{jEFSTWc^m5cI$hg zVWClfwY&9pBA=v7`cZUjQNLL}$cko@wrhEP+6NAG7VR6aDej)?VL_~pI)TO;JcjhlQ1zq(Jj0qgkIkmO>`TNzpv zt@%c?V_0NAM%$^s16te@H!bbj-@|g?C&t;%srGv=5vO^>TZ5ae#0KTlCDy=b*iv*6 zJz1w>UvYyYb95Hj;az;_1k~G_c`MCAr1&va_PiDN)(T(M+sS)N3XfpL9a>8e=pY_3+HA-Yxkr`$09o?kGFeVPO@-`hvP&=c6;9Yls(@p_-ZB3 zcyOQ$%$Jh*4|^Q%BR0S1(eUDIt*%U3?u-whuU{xnhV;A1pLJJ0C3qz1zzc9BzB`hf}V9%cQd7%HHJ6DUKY( zOYtl3wZm6UJBNcq!;{b#8`jS<)vMBG+y_8+Ulr-c6M}skIu{io!njbs?WhH9v=v8t za-&|W8HuQhKpl{}K-s_5K`e7=@fXVrPnY9{p%1kRt_tyviXFIFTpRy#2#FkYf+>^V zyb}|QPC2PWa#lQ+7emJ>XePX-xj}e?JDuIp>%FQY5Lhu&F3deJ|3p)n%@T9XQ27~` zAn<~Jz%T6LJ9~24TI4_o55ZURv-uW73@AHd!S>e*?LuE~*}bR3fekWR;Hgoq!*eg( z@#J&D-}UsI?yo~-p2MnsyJ@N(jg>NnFz8CWiVBg(xOCKwsRbMc5}&va4Dg!fYDNpg zCFrj?iDVRy@3rE@9CZE+e6kF!FTA63SS@MZve9vAduwt1)3eMrApfsU`iI+WrKMm+L>ZP6G5-v_ddOw zmZ%4E5pRO56^(_Ieh&JtM^RFYw(jL**kG-7461ICbA{gG$}5 z$r_e4*%-(dRhaR+VOKbjH0?=P|E4RJ7xr03ej{aq)yxbN2vhQ99(7olJ=K7OUVsd2 zyBDN6ba!p$b4Vg=9b2hPs}eIfKg|8r{`n5i&8^DZKGOla=>0TDUZ`aSEBCvKOmA(_ zzYBur1S~TTccB`G>>NLM#P9I_=*zKiN5cA77v{T0X9}N(2kNu0RH{BLP{VLb(RU_z?$e{7J)DJ2Tq-EW0CGH;FwnNTr zcIE;m9uDIe?GLqf%NbO>hdt=($-a+&cHqG=jYLhT?_s{NRR?XG;WQ@$uVDb78xgZ%Glac;$Dth33YxsGO;AnQ9c;`j07)E( zz&FSr(8<6z>zVKQX!D$iY4LQX+c>yuAO3dYhUdCOgVtJx{s?>$ZKobKnxF~Fi_Eti zdeSO6!QZlbLNl@ti=1xA-~%}BuPJEh-f(H9_5Y*vzZwB6v)xMOq&?NJ3`{T5PG)G_ z`Laj>@;T>JzpZAX?<1R&IHuwvCDvFfJJ>zljN)_lzBGIa7e7 zV-i1>_MCgm@&^9r8@WF@Sd{)?`fY`ToXX=8ESYjGPa2lWQdI)S8)h6d5;MPMcRcLt z{>Db3pr|Q;!7fftpniHtDB8x7E$)W%wUNXcaHH6K zz#r#yU_V2ml`jSOUBCI*3GEeeX{G8(lD12kC+n2Ju+9msXwg5V)v||-i#YUDP>`+VgJMHH}y>$8hVsj~(_Y*Pg~GtJcl{-5ocl9sj8Q{;Z~9+A)F>*MSW?1bk+Cm(22B4TJE zo54#wXw71bt^8DUQ{S6f_koV4?X$`UE&xV>GNOU7kh~ym*ONBcP1cwyk1(6^TTDGy zM|t*gd=N*<|JxjdS}*7DIa-9kqIM4nhbw5@Zt(RF1^W?FYiGoPnkED8GX-zi{Ryu! z|J`S`+ubs2A4x#iOyLbIh#Giq1GqS#{K^T4tCN&*cPIYC{+v4+&$~8_PemZJKf_sk+@rL?pw6xbk z>$p2sh=YS8x6BM{6(Rgn#1d1%@-q!ELG5XB0juZUPJq(3>xerND`Dl(<#c<_4@XfPnttUowL?= z2<81Nd9++=bphO_+nW0I=BEj6qb>tp0vMzJaV_Foj-u-gBiRcacV zI5626y+kLCNCy_1k#Ojm1r|KW$c8k6D_wpusqZYo$1ic(?I|)Xx80g+E3^4Y?KJW= zvw`PkabN)8rtAQG$8+uwNCZzGoynFfn>v1yec{vQJMls*>qb|3h4wk2n|g?Y_>af4 z<^yU1JneG=Hu3ft5zL3_{SIV8XlQkmYv@5Cz){o#g)M3x^MB3ytmP(uvST3g9>J{@ zA4|g|i|RZDJRbB2EQRPP_8&6Ehkcso!D^8pY~3h`I^GPG-5Yu8yKtDo?g(_Eh0|Kz zLL>G1zq%6zq5YXWqB6e4y>9rmf}Sz*!LKfY?!`3OXFVU&>fReh?lV==!V~w#9uPj8 zvW$slUiZX5AgFF51l4Y9E(k|f&*H@8=4 zyRscxLjHH^j;BK>4}*wxbVq4D&Iat{I&o7&!F63D0d4V|WrT(n+BV?R6v{U8OvwC z|3Sg!Z+6rn_(0aP_^cO0Psgy9eft5yARCxKqve!W8+#&BrTKV!QtxmWXjdG3M!QJY zXf+0IvN&1I-nnrIgwKiBZl24_h{LC#G~C(=b=P?Firen5)`_-V|6#-UTvQagW3M@2 z&6KrEe$9?`C5B-t9u)DSgZd&UVmLF5sod3uob07uf)SS3_1JIz1Jal0aHs09<^1}G zy?*EI-MTVR1PAcA{UB^F>I^unRf~BqJ&;-HtMPbh+89`SMZ{{N`^6Fu^BDS$Jdiaf zS9PmUB&5t~3$Nn?k3<-%(J!6i9=Nsm!0%NQ(v^10$*RGC5w(#kYqFq=BdB|U9k9tN z;AzE{J=j%qKQC(}##5Hv;fPeN4Zy{<)AMJMQn(^MIx@|2k8NC+53Hd=`tPmYC<*<0npTz_ zOCr_z`*Q&8(PoRzy+Xk{d<9ZG82L3Kb~$#K5Ed zDGm(X8d39>PL_qGqi0q@JNMLLP1L@7?m4Pbd+M(*-?6wQLI-;^9C*?ncGxY@NFd9+sD0iQrEQbN^W!#*$UY+8{)J^!uYBZEFd= zM$3C0R!nk@zT^W(6aDal`V;l->q6umk@r$&H+u2PbJVh=z-{d|JK&LsYpw; z{SLX{IooWFI^o`39*hCIa}ts-+-0<^ zEkiL_+eZhW(Q7XE&B(LO8&}rPcx)1WvH`QGC{4kxG#OARMP+)=D6g{taK`40AuLEe zVO_12*yq6w3aOPcANJs1?0)V=uo9lwBCSsv8@j2-l1)JsPFLgsF z>nKvW*mr<_NqsC}`=+ebR+;dPjVXTYMvpZKX(6rVyKGIRWmHz~!RgAc=TwQz@L4+B z#Ae)Cn&n(kbiBfiO=2;MmG99Y9rJ*ye7`Wi0?9r|Ic(O17k=22CjY^yii%9ZW~Pv; zB1C%3Sv^?+J$8~VH;|=0braGiWG>TBE!B1v3`=$7u#65k#4i@gyC|hq22_2rRQRyS z&yFhE54f|`0(8L`(i@c5Q9M%!M)7n=?fRg5HB48g7=hAI+9 zWjUTEdD}NrOx{(5(+?6+254kSZ-+=BNp!JfqPB0f;>P&rvHp`dW2-ygdt}z@IRU`@ zwfv!T-)EK2xbn~AJuBP16x6yPCZ^>1p*-Y1ep}jFfUMYwDPW_>f`qJlc7+{U>AO+g z(=-We@gxp(;HcghO6I;*?U6@*z>4L9Y+lPZkaCfLXnE>>G}>ayNpW1p;`+JTcg<9UBIa?msMTnI=zBsbL>L94B!RX3?c?S7_j9gOHM zlLwW#I<(J_lc_s4CMl3cpQPmf>7$_%4}4efY`2r(#pBrb?bo=Dsb?bW zJu?`Kl;w8Zst%2hI+IM2_#Q!25Gx3)|w4bYfYB&pN>ujk7QX3WfD~?bLx=zVWCO2Fh=e( z)K|Wi6Z0)<%j7g)n1%fYc=u=>934oQPw>P=JNU7lny#Kk3M5OqigtB~*-=l^iUHAq zLlumj`WD>5u6P}1eFh6~2(zKUrqzkT$KGcNu9G%5cD;eO>QCie>r?TZ%GU^6KjGTa zhvu-4(Z*Otc6h>!xAOI~D;)eB>6fTmaGDQ>8j5z0dyjZ()}5VjMZyTakG;5QgQoOUt097ixWtg&xDDxvp3Erov+< zg@&XKCL}s`4}iDz(d`sjeDB3{lGTQPiEWLIUr)>(Hlxa(2{#(WB>0~6``1|9 zsN-sy|GT8(>7GAAWn5C7a|FEPUGeyr->6V@x+av?G;xpz|BZD>U-Ti2OY4*|Tz2ANq4F2`yRPyobXAzTC#)sU*iVy&wDW~IR?eM?sKn_3k*6e%Oe8Ldt&DCGH zUc1N2s3T2442>N>R1tW#j>6`67fjyA3_02Nytl;UfMLu@)7o;5x7I#z4joJk3PdhR z{(;;%`Z<~!0Lb7{3*SIwMtZZz`9FeO`yKH@F)geCojYaJ_K(QEgF69|S{@WlHH_}e z)^eln0A+PcUQ%k2&n4b8B3+8xLM2?dowK1AZaa<#s>yU<>hG^>V*h* zzatF;k1O;KU2!E1vYg}na=nhdgLQECa;-$XQbElNu|ykMlnRH%!nEkpgP=$!jOTI3)9Iy<2?n4ar zTKj10Wrm?eu=wg#^JR6_0-WfMOtN&GB1Yx7T7>pC;`CtJ)3Z7Fx5IY(eW&f6D%~`& zw&P|uc3Z0LWdbeDN_v|80xjL9fTp;x0{o_}XlGJ9oDF4ZHt2E%zumRF6pueS+K=d^ zFs=3;e$R&T-KBnn*>S~B)bbqP1Ct}*NKvA`%5PhBet11X_{MpvcSos~Gi+ep*Tjg?F*U+a~osVFV73rMWu;yVgu2INCEO9G~ba zZlsi)9V%e61csIz;ZubgJN*n-J zDc-Un)(uy3751{MkRfP=lT4GM;!4G@I*~*>>pOk;Mu*O^>7}BhGp~Tp2fUp(_-Y|A zjCY$3_>KSMfshDaN`Y{=14(ozinyc&_?bZ2sB>GIuEWBq%#vXp;Os!&L<;+uo0QvvUl3 zu3T~pJ#GJJtn88CmPTWVn2Escu1ihn!06aIRBS#E9#xKGayoMGSASY@v(d$_LO}O` zrc)>D#Aj+`^$($#mT1N*@3YUd&IMim2C3j+V}7FMF$)Hk9nIB`syWHr+_5KBa+e_w zlN=Dr)Kfw>Kd%q}1uz$*~=X*+mDERMLL z*cXNV%Y*UwR2g_Yv<7yQ5w*YuX>xTGfLmPPDO$MxGJ;is>hUg~wEA!&vD_mOdMmQX zSn$Qb1S?@N4OnUqz*UDRnli_}n;UE;o9tbj8*VCFgFfG=I7vJ8-e9-CWXX%|E~&0=E0%lSU(3np z#3&S~*p-vK_inkd$RYY!fkZ>5?s7cYF9%Xne6Nw&goBs8(w)`=UiOi<7xdF!W|{1_ zgmcpX!3zlAW2Ur|{RqO=yr}<_)#I#cF+%nf9^~m zx<8S*!#CLvqDW8)@923offa96kn9KRsSJt-m952lxA0tg@fMm3!nSJQ@5nAkyWy;I zwQo30Vk)79sQdk+f=3!WdTE0H=~qqJJ*43aA9q~)l=y*qEUcFxA~HUNt{(PZGFeRZ zvI^Kxl=fYUY`FH0oczHl#|Ja48d0)t*j>AAhPYThU~vWS!j-+^ifeqaX;bB`7G3`2 zCpA#$-huO5OctYFa6>t7s*&w<-OrH)*VTDQ1kSalfAwnV80!JHGqv2S`c{< zO3M~Mkf+xHxV*I+>W)C>{D*^E1F;`|Ie-+@FSFGE>Q;mt5Rka+!LACL>}Ig5?l=S_ z2wRQ}o~Pmgdi0YH+MX0?PN)9tJ1r0Us58F1j<>^s`Ta)JwFdvT50jYDsMgSifR0c2 z$u;%tXKQ2qiyuU|y!KXoDXGH9ZoNFNa*LXf%Fbc=*@(g*Ij&O2R&Xk4e-m?`k|i9i zW4k?t8U+$^k`vO5P9c+0sICGll=_< zvAyKG`|on*(!}PwtE7bKBl`j@+^sW+Bd&ln*(c-?!n@0donoGj>sDSTdBKz_=Yo)p z{u67X4qc^L`-|xv%Es<_DMu!^pN1q(SNeIGWIXz8A&uML9oGNCg`J%`7aznO8K7kt z4@BnjtPw-$iVHKeO(`;P-9{2I05?*awK`F2usnJcH}wmm3vLR408MOMevH3ji}im}NSF^7i+LRywlGr9w}Jyd zY6;Y+SdgqaLm1hfniKh zt!LuXP$QrNt%`ZcBBx|c!EqLyFoYSa^VCGAP_oSMqw9WN-6v~*6b*E;b1fU#tQVVL z;FOF@30eQo{1#iyVt?#WZTn7XC*l$*t!j~Wpr#IZKb1gGxzCm?u_1t&OqhC;M zyMTVUHeL;qnZDsx3en|_QxF9PnD)Q%FmuebSC5?UwR7Ox&fV7fE*@zr@18~|nC&+v zF>R3_{SOFL!?f&m}gynUD`+@FWk8n`Z;3(efI)l343 z{n^!G=Tr|nu<@+U?@EQ~l{R|+g}%TcQ)F+MTyPg(%+(&&8XS>1v5Uc)YL6X#` z$p+xTcz2h@HY&{JYMD{&FldlR8N)24oafA|{3Jh03Z-!!-(*TdtP*Gy)nN!xw z6;92EWL?LH&fA79_ttd;e8t)O<>kkET1>~TUY#WG?5d?LKGpw>{l^9HCAV6OCBR`> z>s@7EEBFk+b(l1)f7Q7zt~li(9(-H7&E{IHvN1qNsw>6o9C47d)aGF+7mF zzWsN;!CFzMTWf|)fX`Cz_inQ9KXIq$Hdq6^))}kt>8Q`EPo(lSV=h)mjmeaV(6 z!yDhhZM6x3&SfuF7@if3`EHkQHMw`k+uK$A;)&-M;ZDx499|1^M@GN97m=!!4 z!CO2uT&U?8Ai{`y8uEVmE0J{)5gO^hw@QPkKK}a?Z_?c4Mb@t)u$=IDL)Pp5KGx zQ=BACfSFw8^jkj=z@;<|^7p^NzzuOAq5~4q_Lort`~~gIlRpca2T5t-T%J3`W3Pep z>V&aTE%fjQWp^3B$$QxN2oBGGyq1?bAWaq;_MPxv9KSK`jT`0_*@-Q}iH;_IlJQ>t z6o_4gk0N%0#L;~ZJRNLS))n@_KGy-Zxz6}MLF2#^-D%CkB<}dw0h9=~phQBR9KIPJ z)S3i9tbHv*oj=EeY@KAI?ld{)@c-QcsB{wieGm&b4A!z{dX$YLF4cV@d(R0`CwRu4 zzdp@u5kj@Bq% zDXLa^-oO8*5jJx50$EV2rMuQXC`~RCK@u8;f``J@3~I`Rg40%!iOx%>FMk2!58kT+M&dFL$fkA>nNW@x*!MR; z`K0ibgY3N>$7P*6qtwB z!iOquE88C*v5jc+bdv5U)p)ITYWO)EQtp5Vj~^{KmSU^bYGIrkEx%Iux=N^O3w zUZ9KmUsU~7B3Pv0tJfR&k?f_^R8&zw7H8VqG@oVO z$7s$xgz?FXBLJot@V)+43IhE2tm$_$ojFiGoT~T>STO*~&!}cpN|u zN(azXs8Dnp71ZhpQuicXM%a5~w?BdspxAm1%*UCo5x-nyxkpE&xP2wz zkJ-xA-q@9rI&gn){IxuDwHDI+Z&2{uPH^@9K8 z&v3Fo1C!$ai8EsVg!{$KxVL1_8C6^T$j*-d=rST}A-3VsA=bmkt`VS`r4ziEdXHyUwJOGe z*ZYI$@k4B}IhP)?SEYRysR;%3I?&UCCg?cNPyx&<%Q(S8#xSD?8XAluCWSx$>O&S- zfTkpV+6}6}L2p@9sI;DEx7;r6`wIs3lV?L4c!aR4A_-`Vs&cAOp~;t@oJPxX=DJhI z!<&E={d5EB6$N=O%^~9CazJdwKimj-dKK8s>l{8j!Vll~Wqub(XxUwgE>%;lkf>|t zp#Zy=G1|)hMn`X^@>-EvmTH(Sa8vx>rs7Yop+c15&q|QV*k$+civ!>tyf`E%L2V2B z1Eah*Cz$qDWsNX^hLJ6BgWMc*TIvrFufgd6UP(`jiGc5H zkX8jzlNjJCNe}A~=uWk81(A>soDVrd8g8ygS(hfze6sZF|!VavK zP$lBG`IBKyFz8b+e}>f5i)LnLpH$-hn?H(V-lst@pj$+A+EWMJF-}skNoiA2C9A}< z*wv|2?`8l}1}VUSDOJTufWRFC`0dfYFc}~W{VuT_UyR3N${E0iE>(k5)ZucI z57zn5ao0uv-n*@LpE$9h7d?4K(67uEV%~h`(gEYq4oD4GwVV5s@N_UbQ-D^nwgi!M zz#=*QCj>0|n&qjz8Eb=VUmX9IX^d60ydh&im;;r`+9h;b$jP|fgW#e5vR||IRtfLr z_BG&%rS_RO3RiJr9ToA)bMb*cS3kC3>!jM6v&Pyv%yC9HjTIC7p4H5?FA>g%9^LW( z?f3ASo24CIs_f`I#eY4Fy*S@>@Ys}R)!fM^C^)?^7Xq3on0v;6#eaZ#<=>7TxOx)r z1dUVzGH$?vW)Pu{5j2|7VC8#b+Pf2si< zVXFG^`jaMBcd)ibLun1fV?vi`X%wegnf8TJ`|awNMFqT-rE#T-&s4|Aby*@nTw%I@yla1s5}WrJL21^Uo;f0FbNjT*iOlHFy^Yo&?~- z_$83c1Pm4*9j|A1HJ=NnV-wHl%TRUV){9fr>5|;U#CCR>_Rq_!iF8NbPMwDTjgVW(N$4ms%8JJ(h#{<9K$iv?i?JcI=^S$y)j2j=5 z#M+=3s5nWxX8~8L{|Y#s0>v`m6Zo6h51R8aeeYA@$i&CtEcf=@x>tMWq2m`55IB{i z<1e%eq{s2TPI~O~_?6j4mvyl?KvxH4Jh-cd1g`|bS}N3lt^v~dJVI`ti}HBIIR9w# zE(41IjR&58!Rb^!*h+_2N}H*oQ*tb;7erVy?^N{X*!YjP$S>LYUO7$1-g~v}28{dx z&`4JQ=W5iy)wrHLOiy_x_ej(5V&T-gk9E>sgEy-~giiXA^19dORuAS=3d1t33--Pw zdY#qM{gU04F*<*qjP3&Pr2GUbjVR$g5PuYG073m?(f#@kc-Sscp1Hk-18UOI=k4xp zt9H{vi7$%IGG1ZbwLPw;vmWKgS^{sG!DXgN1Is<-Zu=z5Vn?~=obYw`h7fSvhwwj^ zdAja5S`0c*vEIfgf-V$m8YaVtKi+7j-2x?UvSvo>1i&HtGZasI_1)$(k#L`~0Mt7m zV1AEPxe7dO2?wmD!tF1xg4E+0n{cp{j>zo1ATXu#-BAvk>oixL7ht@wc|>vkc+ zhqg%7wQQrdacn$D{pkfAvrj?`Jbwb!*GZUs6>2Q`JizI&^t zi8AmKL6H3v&IWU9dJP%(fMmlBJ`j(~IS?G{z?lhZgSOY6Aj|6x$0T6BY(bnbi1%ZJ zCS#DhPt>;caZd;q@DSg>z#8MKrW<+DliS(#$n^nFFsQzS}R90E*k{#?wN5( zBulx+1E8yQ8bxv)dkwCYT7PcX(IEdza8}KX<4?U%jrET2F>3Pz4E}G{Rx=D0A^4|g z>LmTR-~Y9(R(e}!i&RsFGx)Snv=3d1f>`S`%2DG1Y8Fs7ce%R3i`9#6>UA=MvEEg3kv|2@9j_}_B%&lTh>lbS7Sr`7Ti~Q z+%K;Sfap6+XC<62!?mnVpQ#J_E@DQ$vmb954Vad;1nIm~9TUcdugOpx#&1SLjP=;m zeg(_qC&)(hl~)FQ?gL0P3c1Mg?69T6eL8J}_uEyFdu@d}@$r%cnCieZ6%f6fe4Gxp zr;0@8R=CCH^V=)A)j|aKl9oU=F!s29StJqT8Gc;)B%fLSY5>XOG9{=o?&BMH$JzjS z?&c^)>w0kP5K7CXh56`9scw<7!3%t^knuD*HJgq(?ZsazKBJ;f7nmeJ(%qs4c8cts z;!=PEI1%hniPcWEphxTteBSFill2tTnf>^24pEQI3y`xj^(qi3YsDKI_6BLWT)B;Z zxd7_)%$DdKKziPT^vVa2{lV(sz;!g>I5Krp4{}ohJgRoycWBKB4oGTrYe3- zyz?{!%HF=`o2}o+z#l~Sk`e})PiR!(k>&vs@z7}vbJv1xU(AO0T||Mb01<#h2~3L| zSyIBLi~xIW01jZVX+-|c&g(R3PynMwyY3I?-(`xvjRdMG*R`=4KjroHd1wamUrGgT zgM5beas%jklO{7jWVSglqw1VH0P%0*H)p8 zQ~EGVbu@A0lKE8yP+vudPt(TycO4*c)3uRBkc}wulbQBeubJ7YEm4)?DT) zZZ4roMoF+=Ycj}I!IK_9=v?WHZxK8hUYnv%26bk~&T$Rs3bFwSv;eJG0Ya~$+|EPj z#=tf&6tZ;l6HZ^@g!C3DM&mcYnDMcri5QZ2CBJvk$zXF^x#N2oA(d~-d;aXxE5t9L zAZ>$k1|Yt7R+IL?!pkbZw@bhLz6vOL6pQvKFlh%x7y2u|03um3BH?=6SGJ21-hIPU zrKBI163d+uS>AP;Vbyh0Va{qdnfBbJtataoR^%2Aw$Y~RV1%fTcr2zdzN}l@u)eMT zdHiW~kso({KMA!p`1i(M(c6lfUyK{BiDrTl3xJ)8AdP`A_oljwZQ=6MgDgOrJgwSC zt~cy=Uep8CdJG7%NVX>WNM(Rn$q}(j7od#ED*xgAQ!}*8Ag5hw{k$t>I9PNZcaGL* zo9Qugg+zdCD{4HP?ffs+xSw{Gy>s6!}NvTu->=sdtjiA`+1;w%kf!&4jXsOhpvq3*7N9<^+7L{WwbB~G@rz;bR9 zfN>N`iZ)>V)rS)Cfw?}F{5}Y8=pxZ-101Xy90&WocS=6Y9i^b3qt4fZ`fXWOUC6C6 zRlvK}h|s&{ZppbQoL22{=svT6g3vCo8h$BMPOF{ez*+5cx5e@_xWMX-m&06mA*$`F zqW`-d!}lJSC~>r0EkLIi0gp|2){ji}@MLZ7`2GT+PXt-Br7RZ=zpijDV0su%1g{# z>z2!g1p&&0<8_=bk3B?9&HKx7iy+6$f%{niI7yyJo`0t|wlbfWj*JFL4H|&yT6KAW z;d-lZYanVptfTN?y{p{}YUI=0{4O`hqd?Z8usWq1p6xVUW#Tn#7u)=B-j0~2bayCM9Prqk5%U>pVeDW`JvF9e9F`_`KjerPUhRXrbV14?dvo5 z4M?fZjd&T4*80YFQ>EOOtz8Xik-*!KRH__sPUTvaIH|zer1w#l$(goz`4})s+J1qL z!7s>5ygsbZ&;y4d7uKT3IIYebXJ&gBZ8x&6Bu3P|32^gw%OUScUR-;=FY7sArG|g5 z7EyTN8RMSZ^CiDAgSN~T-E^){`OxKH>m33!IoU=6v2?YsZ*8p=cIdTIOEozU&_%oL z@0Pwps6x1VeBCr+H1MJ~#QXr&@3Zz1JT3KIK%%IfsNA))7p}9Pzb1GaJ8|jUnLNMk z1r6};T*f69kjZ!Wn zfICjbGI0QTGnUgB^+%0IW$OxZO>kx{Vpj`IvDkYn!F1fx?O(XepGwLulE5 zpQ`}c>esiN*w`&kJ!&xV6C290VWh0YENZmHN;V{Jb94Domj}N_-j+u0Wv7NEg=n3Z zBnf~>cbzFzS;Hg#M`o0=LuL?Adry~-r^jg2xrct5f)5i`1$&MowNn+Izw&=2Zn#uGuZxl1k(MWE=y_rNPxj;ubb9|z6?bO# zG}qEv_jJ@YSnZe;!l~hC_a;Uu_`%Lzvq&;Ee}kiXE=OU_z&(xiK`txMq05 zXmNMCs6P4GX|g|Ppn-E}qb3s`b7r&$IjXQ7`-PVrUM?gs~4T zZC&!|`MCb9>GNw<_AAU6S!ErCLETv<2EthDM&>&b>_DEdFHa2sXwCF<&qW=%l?e72 z`;EMoeVA{VTfltR?|v>xW_r={&dEv~u~J3z~zY(GvY!j%Y}=`Yr3=}Z(n z&E_mLjom828SWsn_UseKUK0$oxg(RO6856s6}U&GWy!r)Jtl?`p3@r;Llhml4~XYe zLloQ_cH>#NQzmYdCo3pB)yz`JVg$96&+}6BE6id~*MV2)&w0v-y!$e0Dl|mHP4`9i zu(MB8ve)G9-JX_*V7UF{subfd#|K#_J`)}2dOuh^dNHRO?!SB2P@dS|i>phZ4B1uo zJmjlQPd`FdhU#mRJkNt5x)@TT5Gcwf!)-!^u_zD?6AjYg^)tL!py3Gpq3tsR<$EZp ziS>oP@r!Fwtg!IPtRKM&w{90(W34n}Z$0@>Vh`Z*E;ij%YG|+ z@}vzMmDGU=bc;vS9&H@l8}?(pxV||5aaVrGmn7*@YhqhZDrRKIl|0rpa9TXdA&(wd zY(?}f7WaVJ7pg&KTWmByHc-OV#*6s(3{F~N(~w-{jlwObF_0ik=%ld#J&a%H(HU^v zo?OyCahQcgOBXvNltQf;m=w0xIMgN4<*SDuLu1?J_I5MC}K(y$ZFVrdQLG&#=0CB9ck;;VhPe`Ly_aMw1& zzm&k;xzUE=x@a~yr>%o@BDMmfE`R_hqso_1>K!s@%nJ^Bo)z{lDNjyB&l?`frg&xf zTj{2A=7c3R1ardmxZu6n9lyn|_`i5$?nUa}*K%JM4;=DJEnaGosMBrtK8L=RbZ z#!AK`FUM6`_pYjtH4ba8I1fSw>HyAv1z%gq${RM z$S=@ypIl!T#TF_v_Yl7_sTfAds@uclQ0QG;fHNl$DdTgFD1NJDV{QuVDwje$h(S)^ft>Y=t3N{abZ; z_aC9YTQ@!pmh}m6O`LXmfs|k@ZUhtJ&gDMB1A#p-$RU+tK86<~xHk*&H8*Gy9MBB!Ma`4<{e++b1xx3;E3se9f^sG=wvG z4UFG?5)r^q4#|Aunp5Dax;vm-{Mp>5BF=+4q|r)tfR&qO`ln~s@{iXFw>)aVyzwetlYFBF+`uxs;}DdqmdHdj-RJb*hJQwZBvzVhJ?srR!o}5pC#Ja_%lt0 zSS6&T-VNZN=r4m3Ddw%m+|`{_+G4Mw)JZK?F}(a!4)Ia*ou3RTEm#8#~#IVt@ zPBt1QNpaLnqPSBu)vJoLy>j~#oB%KW7-K&Gy3`FF5*!%~=p&@OIlUU<8fW?P^5S>% zDWrb;KGJOYg1gY0=^|e4I;mK{^d3d&y-N)!f&$WeiC(Q5CNI(_V+$ z{wZ`}n;)Tk>gJu^va;g2NR#mwBRziNV*hV#duIaFc;`6C3#wHOku z5c@*#PLrv<+jT--?>69AgCW%q0Oz*kZXwT1EAKG4vs|ZDpI%MjWW2fM@Mvy;-Y&B_ z`BDi-p~x>E#BBe>5cHo0*mmDj+WQniF$=bq8u{c|$@MkUmN>}u75t}!4MIvt^YL4J zwO8!5uGE=?v%;y4OPwtZVk*NqHECJmy+E{CoHII2<^NniyXZ}q|pRLHT zSoN9$#FSHH!9C380;14#VuMMa$;3&=G9*vwHlOph@Gzd~;t~N0nq}3_3=d|4Grd4H zbf%$?;agK4n?$Vc1kl+jp0PX)SVAmzy-$qbnrB1E)R3 zSdHrJa{;A&Te|2^=_Vj#GClo%MyA7MqPp*KITFn#s-`P)b4oT4$d*u_-2oP?_W;0= zV}CFgeUs=PiP?~)HU2CXnobObJ}gl_?~`r#

C>fVGvd4 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 literal 0 HcmV?d00001 From 6ecfdac5fb441c2ef52e921e47095bb5b6158c52 Mon Sep 17 00:00:00 2001 From: Asti Date: Tue, 26 Sep 2023 17:42:57 +0530 Subject: [PATCH 02/35] Restructuring and Mermaid files --- docs/developer/index.md | 5 + docs/developer/servers/lib/lib-sequence.mmd | 99 ++++++++++++ docs/developer/system/architecture.md | 14 +- docs/developer/system/c4l1.png | Bin 0 -> 93316 bytes docs/developer/system/{c4.png => c4l3.png} | Bin docs/developer/system/client.md | 11 ++ docs/developer/system/lib-ms.md | 162 ++++++++++++++++++++ docs/developer/testing/intro.md | 1 - mkdocs.yml | 4 + 9 files changed, 289 insertions(+), 7 deletions(-) create mode 100644 docs/developer/servers/lib/lib-sequence.mmd create mode 100644 docs/developer/system/c4l1.png rename docs/developer/system/{c4.png => c4l3.png} (100%) create mode 100644 docs/developer/system/client.md create mode 100644 docs/developer/system/lib-ms.md diff --git a/docs/developer/index.md b/docs/developer/index.md index 213603da8..4d1a2d583 100644 --- a/docs/developer/index.md +++ b/docs/developer/index.md @@ -67,8 +67,13 @@ While any new issues introduced in your code would be shown in the PR page itsel It is highly recommended that any code you add does not introduce new quality issues. If they are introduced, they should be fixed immediately using the appropriate suggestions from CodeClimate, or in worst case, adding a ignore flag (To be used with caution). ## Testing + For information about testing and workflow related to that, please see the [testing folder](docs\developer\testing). +## Live Demo Server + +A demo server is up and running at [https://sandbox.cps.digit.au.dk/](https://sandbox.cps.digit.au.dk/). Developers will need credentials to log in. + ## License This software is owned by [The INTO-CPS Association](https://into-cps.org/) and is available under [the INTO-CPS License](LICENSE.md). diff --git a/docs/developer/servers/lib/lib-sequence.mmd b/docs/developer/servers/lib/lib-sequence.mmd new file mode 100644 index 000000000..49461e576 --- /dev/null +++ b/docs/developer/servers/lib/lib-sequence.mmd @@ -0,0 +1,99 @@ +sequenceDiagram + actor Client + actor Traefik + + box Aqua RAMS + participant FR as FilesResolver + participant FSF as FilesServiceFactory + participant CS as ConfigService + participant IFS as IFilesService + participant LFS as LocalFilesService + participant GFS as GitlabFilesService + end + + participant FS as Local File System DB + participant GAPI as GitLab API DB + + Client -> Traefik : HTTP request + Traefik -> FR : GraphQL query + activate FR + + FR -> FSF : create() + activate FSF + + FSF -> CS : getConfiguration("MODE") + activate CS + + CS --> FSF : return configuration value + deactivate CS + + alt MODE = Local + FSF -> FR : return filesService (LFS) + deactivate FSF + + FR -> IFS : listDirectory(path) or readFile(path) + activate IFS + + IFS -> LFS : listDirectory(path) or readFile(path) + activate LFS + + LFS -> CS : getConfiguration("LOCAL_PATH") + activate CS + + CS --> LFS : return local path + deactivate CS + + LFS -> FS : Access filesystem + alt Filesystem error + FS --> LFS : Filesystem error + LFS -> LFS : Throw new InternalServerErrorException + LFS --> IFS : Error + else Successful file operation + FS --> LFS : Return filesystem data + LFS -> IFS : return Promise + end + deactivate LFS + else MODE = GitLab + FSF -> FR : return filesService (GFS) + %%deactivate FSF + + FR -> IFS : listDirectory(path) or readFile(path) + activate IFS + + IFS -> GFS : listDirectory(path) or readFile(path) + activate GFS + + GFS -> GFS : parseArguments(path) + GFS -> GFS : executeQuery() + + GFS -> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") + activate CS + + CS --> GFS : return GitLab API URL and Token + deactivate CS + + GFS -> GAPI : sendRequest() + alt GitLab API error + GAPI --> GFS : API error + GFS -> GFS : Throw new Error("Invalid query") + GFS --> IFS : Error + else Successful GitLab API operation + GAPI --> GFS : Return API response + GFS -> IFS : return Promise + end + deactivate GFS + end + + alt Error thrown + IFS -> FR : return Error + deactivate IFS + FR -> Traefik : return Error + Traefik -> Client : HTTP error response + else Successful operation + IFS -> FR : return Promise + deactivate IFS + FR -> Traefik : return Promise + Traefik -> Client : HTTP response + end + + deactivate FR diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index 98b524ea2..0dd9113a6 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -1,5 +1,5 @@ # System Architecture -![Alt text](architecture.png) +![System architecture](architecture.png) ## User Requirements The DTaaS software platform users expect a single platform @@ -32,14 +32,16 @@ perform scientifically valid experiments. The figure shows the system architecture of the the DTaaS software platform. The main domains of this architecture are: -1. [Website](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/client#readme) - The users interact with the software platform using a website. This is the Client side (frontend) for Digital Twin as a Service (DTaaS) software. The software provides a React single page web application for the Digital Twin support platform. +1. [The Website](docs\developer\system\client.md) -2. [Gateway](https://github.com/astitva1905/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. +2. [The Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. -3. [Library Microservice](https://github.com/astitva1905/DTaaS/tree/feature/distributed-demo/servers/lib#readme) - The microservices are complementary and composable; they fulfil core requirements of the system. The service mesh enables discovery of microservices, load balancing and authentication functionalities. There are microservices for catering to author, store, explore, configure, execute and scenario analysis requirements. +3. [The Library Microservice](docs\developer\system\lib-ms.md) -The detailed C4 architecture is shown below, which includes all the atomic components of the system: +## C4 architecture Level 1 +![Alt text](c4l1.png) -![Detailed C4 architecture](c4.png) +## C4 architecture Level 3 +![Detailed C4 architecture](c4l3.png) diff --git a/docs/developer/system/c4l1.png b/docs/developer/system/c4l1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb981411d5719397546a167fc1209e36f5f6c33a GIT binary patch literal 93316 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 R*dxPMy{f5PsB}B<{{d#JAD#dJ literal 0 HcmV?d00001 diff --git a/docs/developer/system/c4.png b/docs/developer/system/c4l3.png similarity index 100% rename from docs/developer/system/c4.png rename to docs/developer/system/c4l3.png diff --git a/docs/developer/system/client.md b/docs/developer/system/client.md new file mode 100644 index 000000000..6acc6758f --- /dev/null +++ b/docs/developer/system/client.md @@ -0,0 +1,11 @@ +# Website + +The [Website](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/client#readme) is how the end-users interact with the software platform. + +This is the Client side (frontend) for Digital Twin as a Service (DTaaS) software. The software provides a React single page web application for the Digital Twin support platform. + +## Client Architecture + +```mermaid + +``` \ No newline at end of file diff --git a/docs/developer/system/lib-ms.md b/docs/developer/system/lib-ms.md new file mode 100644 index 000000000..2a14ee7bf --- /dev/null +++ b/docs/developer/system/lib-ms.md @@ -0,0 +1,162 @@ +# Library Microservice + +[The Library Microservices](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/lib#readme) - fulfil the core requirements of the system. The microservices are complementary and composable. + +The service mesh enables discovery of microservices, load balancing and authentication functionalities. There are microservices for catering to author, store, explore, configure, execute and scenario analysis requirements. + +## Lib-MS Architecture + +### Class Architecture +```mermaid +classDiagram + class FilesResolver { + -filesService: IFilesService + +listDirectory(path: string): Promise + +readFile(path: string): Promise + } + + class FilesServiceFactory { + -configService: ConfigService + -gitlabFilesService: GitlabFilesService + -localFilesService: LocalFilesService + +create(): IFilesService + } + + class GitlabFilesService { + -configService: ConfigService + -parseArguments(path: string): Promise + -sendRequest(query: string): Promise + -executeQuery(path: string, getQuery: QueryFunction): Promise + +listDirectory(path: string): Promise + +readFile(path: string): Promise + } + + class LocalFilesService { + -configService: ConfigService + -getFileStats(fullPath: string, file: string): Promise + +listDirectory(path: string): Promise + +readFile(path: string): Promise + } + + class ConfigService { + +get(propertyPath: string): any + } + + class IFilesService{ + listDirectory(path: string): Promise + readFile(path: string): Promise + } + + IFilesService <|-- FilesResolver: uses + IFilesService <|.. GitlabFilesService: implements + IFilesService <|.. LocalFilesService: implements + IFilesService <|-- FilesServiceFactory: creates + ConfigService <|-- FilesServiceFactory: uses + ConfigService <|-- GitlabFilesService: uses + ConfigService <|-- LocalFilesService: uses +``` + +### Sequence Architecture + +```mermaid +sequenceDiagram + actor Client + actor Traefik + + box Aqua RAMS + participant FR as FilesResolver + participant FSF as FilesServiceFactory + participant CS as ConfigService + participant IFS as IFilesService + participant LFS as LocalFilesService + participant GFS as GitlabFilesService + end + + participant FS as Local File System DB + participant GAPI as GitLab API DB + + Client -> Traefik : HTTP request + Traefik -> FR : GraphQL query + activate FR + + FR -> FSF : create() + activate FSF + + FSF -> CS : getConfiguration("MODE") + activate CS + + CS --> FSF : return configuration value + deactivate CS + + alt MODE = Local + FSF -> FR : return filesService (LFS) + deactivate FSF + + FR -> IFS : listDirectory(path) or readFile(path) + activate IFS + + IFS -> LFS : listDirectory(path) or readFile(path) + activate LFS + + LFS -> CS : getConfiguration("LOCAL_PATH") + activate CS + + CS --> LFS : return local path + deactivate CS + + LFS -> FS : Access filesystem + alt Filesystem error + FS --> LFS : Filesystem error + LFS -> LFS : Throw new InternalServerErrorException + LFS --> IFS : Error + else Successful file operation + FS --> LFS : Return filesystem data + LFS -> IFS : return Promise + end + deactivate LFS + else MODE = GitLab + FSF -> FR : return filesService (GFS) + %%deactivate FSF + + FR -> IFS : listDirectory(path) or readFile(path) + activate IFS + + IFS -> GFS : listDirectory(path) or readFile(path) + activate GFS + + GFS -> GFS : parseArguments(path) + GFS -> GFS : executeQuery() + + GFS -> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") + activate CS + + CS --> GFS : return GitLab API URL and Token + deactivate CS + + GFS -> GAPI : sendRequest() + alt GitLab API error + GAPI --> GFS : API error + GFS -> GFS : Throw new Error("Invalid query") + GFS --> IFS : Error + else Successful GitLab API operation + GAPI --> GFS : Return API response + GFS -> IFS : return Promise + end + deactivate GFS + end + + alt Error thrown + IFS -> FR : return Error + deactivate IFS + FR -> Traefik : return Error + Traefik -> Client : HTTP error response + else Successful operation + IFS -> FR : return Promise + deactivate IFS + FR -> Traefik : return Promise + Traefik -> Client : HTTP response + end + + deactivate FR + +``` \ No newline at end of file diff --git a/docs/developer/testing/intro.md b/docs/developer/testing/intro.md index 48fc767e5..3a5130c9d 100644 --- a/docs/developer/testing/intro.md +++ b/docs/developer/testing/intro.md @@ -16,7 +16,6 @@ BDD stands for “Behaviour Driven Development”. It is a software development We follow a testing workflow in accordance with [The Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html#TheTestPyramid), starting with isolated tests and moving towards complete integration for any new feature changes. The different types of tests (in the order that they should be performed) are explained below: -TODO -> DOnt link. ## [Unit Tests](https://martinfowler.com/articles/practical-test-pyramid.html#UnitTests) Unit testing is a level of software testing where individual units/ components of a software are tested. The objective of Unit Testing is to isolate a section of code and verify its correctness. diff --git a/mkdocs.yml b/mkdocs.yml index 615674e7b..b95384f57 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,6 +27,10 @@ nav: - Separate Packages: - website: admin/client/CLIENT.md - library microservice: admin/servers/lib/LIB-MS.md + - Developer: + - Testing: + - Introduction: developer/testing/intro.md + - Index: developer/index.md - User: - Features: user/features.md - Website: user/website/index.md From f47ce999320516fc91ff51195d7c5265e0bc8d82 Mon Sep 17 00:00:00 2001 From: Asti Date: Tue, 26 Sep 2023 17:46:04 +0530 Subject: [PATCH 03/35] MKDocs updated for new files --- mkdocs.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index b95384f57..e3ae76cdf 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,6 +28,10 @@ nav: - website: admin/client/CLIENT.md - library microservice: admin/servers/lib/LIB-MS.md - Developer: + - System: + - Architecture: developer/system/architecture.md + - Library Microservice: developer/system/lib-ms.md + - Client: docs/developer/system/client.md - Testing: - Introduction: developer/testing/intro.md - Index: developer/index.md From da1968a2d86cd01c61a99b1186bb8da79596cd3b Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Tue, 26 Sep 2023 17:49:32 +0530 Subject: [PATCH 04/35] Update mkdocs.yml Line 34, typing error for Client Path --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index e3ae76cdf..440fe1553 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -31,7 +31,7 @@ nav: - System: - Architecture: developer/system/architecture.md - Library Microservice: developer/system/lib-ms.md - - Client: docs/developer/system/client.md + - Client: developer/system/client.md - Testing: - Introduction: developer/testing/intro.md - Index: developer/index.md From 01c5d7b7437e56b699ebd8e5ed1d2dcb0764d4f2 Mon Sep 17 00:00:00 2001 From: prasadtalasila Date: Tue, 26 Sep 2023 17:22:55 +0200 Subject: [PATCH 05/35] Suggests improvements to the PR --- deploy/README.md | 2 +- docs/developer/index.md | 38 +++++++---------- docs/developer/system/architecture.md | 56 +++++++++++++++++++------- docs/developer/system/lib-ms.md | 6 +-- docs/index.md | 18 ++++----- docs/{developer => user}/workflow.png | Bin mkdocs-github.yml | 13 +++++- mkdocs.yml | 21 +++++----- 8 files changed, 90 insertions(+), 64 deletions(-) rename docs/{developer => user}/workflow.png (100%) diff --git a/deploy/README.md b/deploy/README.md index 9ab28fc28..143843c4b 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -114,4 +114,4 @@ You can run this script multiple times until the installation is successful. ## Access the application -Now you should be able to access the DTaaS application at: _https://foo.com_ +Now you should be able to access the DTaaS application at: _https://foo.com_ diff --git a/docs/developer/index.md b/docs/developer/index.md index 4d1a2d583..0b4e2b2f5 100644 --- a/docs/developer/index.md +++ b/docs/developer/index.md @@ -1,19 +1,18 @@ # A Developer's Guide -This guide is to help developers get familiar with the project. - -## Software Overview - -* [Slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-overview.pdf) -* [Video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-overview.mkv) -* [Research paper draft](https://arxiv.org/abs/2305.07244) +This guide is to help developers get familiar with the project. Please see +developer-specific +[Slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-overview.pdf), +[Video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-overview.mkv), +and [Research paper](https://arxiv.org/abs/2305.07244). ## Operating Softwares Ideally, developers should work on Ubuntu/Linux. Other operating systems are not supported inherently and may require additional steps. ## Code Editing -Any popular code editors can be used to work on the project. VS Code, Sublime Text are a few examples. + +Any popular code editors can be used to work on the project. VS Code, Sublime Text are a few examples. ## Development Workflow @@ -26,8 +25,6 @@ To manage collaboration by multiple developers on the software, a simple [Fork, ``` 1. Work on your issue/feature on your personal computer. -1. Once changes are made, they should be tested on personal systems or the [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server) . - 1. Any updates/additions to the software should first be committed to your personal fork. 1. To check status of your changes: @@ -47,17 +44,16 @@ To manage collaboration by multiple developers on the software, a simple [Fork, git push ``` -1. Any issues taht arise codeclimate should also be resolved. +1. Any issues that arise codeclimate should also be resolved. + +1. Once changes are made, they should be tested on personal systems or the [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server) . + 1. Once changes are verified, a PR should be made to the appropriate branch of the main repository. -1. Any issues raised in the PR review should be resolved. +1. Any issues raised in the PR review should be resolved. 1. Finally, the PR will be merged. Remember that every commit should be meaningful and satisfies the requirements. -Additionally, please go through the two workflows specified in the diagram below: - -![Alt text](workflow.png) - ## Code Quality Quality checks are performed by CodeClimate to ensure the best possible quality of code to add to our project. @@ -68,14 +64,8 @@ It is highly recommended that any code you add does not introduce new quality is ## Testing -For information about testing and workflow related to that, please see the [testing folder](docs\developer\testing). +For information about testing and workflow related to that, please see the [testing page](testing/intro.md). ## Live Demo Server -A demo server is up and running at [https://sandbox.cps.digit.au.dk/](https://sandbox.cps.digit.au.dk/). Developers will need credentials to log in. - -## License - -This software is owned by [The INTO-CPS Association](https://into-cps.org/) and is available under [the INTO-CPS License](LICENSE.md). - -The DTaaS software platform uses [Træfik](https://github.com/traefik/traefik), [ML Workspace](https://github.com/ml-tooling/ml-workspace), [Grafana](https://github.com/grafana/grafana), [InfluxDB](https://github.com/influxdata/influxdb) and [RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) open-source components. These software components have their own licenses. \ No newline at end of file +A demo server is up and running at [https://sandbox.cps.digit.au.dk/](https://sandbox.cps.digit.au.dk/). Developers will need credentials to log in. diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index 0dd9113a6..ca5f1a332 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -1,11 +1,11 @@ -# System Architecture -![System architecture](architecture.png) -## User Requirements +# System Overview + +## User Requirements The DTaaS software platform users expect a single platform to support the complete DT lifecycle. To be more precise, the platform users expect the following features: -1. Author – create different assets of the DT on the +1. **Author** – create different assets of the DT on the platform itself. This step requires use of some software frameworks and tools whose sole purpose is to author DT assets. @@ -13,35 +13,61 @@ DT assets. and authoring tools so that user can navigate the library of reusable assets. This functionality requires support for discovery of available assets. -3. Configure – support selection and configuration of +1. Configure – support selection and configuration of DTs. This functionality also requires support for validation of a given configuration. -4. Execute – provision computing infrastructure on demand to support execution of a DT. -5. Explore – interact with a DT and explore the results +1. Execute – provision computing infrastructure on demand to support execution of a DT. +1. Explore – interact with a DT and explore the results stored both inside and outside the platform. Exploration may lead to analytical insights. -6. Save – save the state of a DT that’s already in the +1. Save – save the state of a DT that’s already in the execution phase. This functionality is required for ondemand saving and re-spawning of DTs. -7. What-if analysis – explore alternative scenarios to (i) +1. What-if analysis – explore alternative scenarios to (i) plan for an optimal next step, (ii) recalibrate new DT assets, (iii) automated creation of new DTs or their assets; these newly created DT assets may be used to perform scientifically valid experiments. -8. Share – share a DT with other users of their organisation. +1. Share – share a DT with other users of their organisation. + +## System Architecture -## System Components +![System architecture](architecture.png) + +## System Components The figure shows the system architecture of the the DTaaS software platform. The main domains of this architecture are: -1. [The Website](docs\developer\system\client.md) +1. [The Website](./client.md) 2. [The Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. -3. [The Library Microservice](docs\developer\system\lib-ms.md) +3. [The Library Microservice (Reusable Assets)](./lib-ms.md) + +## C4 Architectural Diagrams + +The C4 architectural diagrams of the DTaaS software are presented here. + +### Level 1 + +This Level 1 diagram only shows the users and the roles they play in the DTaaS software. -## C4 architecture Level 1 ![Alt text](c4l1.png) -## C4 architecture Level 3 +### Level 2 + +This Level 2 diagram shows the software containers of the DTaaS software. + ![Detailed C4 architecture](c4l3.png) +A mapping of containers to system components is also available in the table. +| System Component | Container(s) | +|:---|:---| +| Gateway | Service Router | +| Unified Interface | React Webapplication | +| Reusable Assets | Library Microservice | +| Data | MQTT, InfluxDB, and RabbitMQ (not shown in the C4 Level 2 diagram) | +| Visualization | InfluxDB (not shown in the C4 Level 2 diagram) | +| DT Lifecycle | DT Lifecycle Manager and DT Configuration Validator | +| Security | Gitlab | +| Accounting | None | +| Execution Manager | Execution Manager | diff --git a/docs/developer/system/lib-ms.md b/docs/developer/system/lib-ms.md index 2a14ee7bf..90ddf8c23 100644 --- a/docs/developer/system/lib-ms.md +++ b/docs/developer/system/lib-ms.md @@ -63,7 +63,7 @@ sequenceDiagram actor Client actor Traefik - box Aqua RAMS + box Aqua Library Microservice participant FR as FilesResolver participant FSF as FilesServiceFactory participant CS as ConfigService @@ -75,7 +75,7 @@ sequenceDiagram participant FS as Local File System DB participant GAPI as GitLab API DB - Client -> Traefik : HTTP request + Client ->> Traefik : HTTP request Traefik -> FR : GraphQL query activate FR @@ -159,4 +159,4 @@ sequenceDiagram deactivate FR -``` \ No newline at end of file +``` diff --git a/docs/index.md b/docs/index.md index 81cfa941f..46d418824 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,18 +1,14 @@ +# What is DTaaS + The Digital Twin as a Service (DTaaS) software is useful to create and run digital twins. The digital twins that are running can be used as service by other users. -These users need not be members of the DTaaS software platform itself. - -There is an overview of the software available for: - -* General users : [overview slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-short-intro.pdf) - and [overview video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-short-intro.mp4), - [feature walkthrough](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/dtaas-v0.2.0-demo.mp4) -* Developers : [slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-overview.pdf) - and [video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-overview.mkv). +These users of digital twins need not be members of the DTaaS software platform itself. -There is also a [research paper draft](https://arxiv.org/abs/2305.07244) -if you are interested in reading the scientific roadmap for this software. +There is an overview of the software available in the form of +[slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-short-intro.pdf), +[video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-short-intro.mp4), +and [feature walkthrough](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/dtaas-v0.2.0-demo.mp4). ## License diff --git a/docs/developer/workflow.png b/docs/user/workflow.png similarity index 100% rename from docs/developer/workflow.png rename to docs/user/workflow.png diff --git a/mkdocs-github.yml b/mkdocs-github.yml index 0224f1b3b..e8bb330a1 100644 --- a/mkdocs-github.yml +++ b/mkdocs-github.yml @@ -38,6 +38,13 @@ nav: - Lifecycle: user/digital-twins/lifecycle.md - Examples: https://github.com/INTO-CPS-Association/DTaaS-examples - FAQ: FAQ.md + - Developer: + - Overview: developer/index.md + - System: + - Architecture: developer/system/architecture.md + - Library Microservice: developer/system/lib-ms.md + - Client: developer/system/client.md + - Testing: developer/testing/intro.md - Bugs: bugs.md - Thanks: thanks.md - License: LICENSE.md @@ -63,7 +70,11 @@ markdown_extensions: pygments_lang_class: true - pymdownx.inlinehilite - pymdownx.snippets - - pymdownx.superfences + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format - pymdownx.details - admonition - pymdownx.tabbed: diff --git a/mkdocs.yml b/mkdocs.yml index 440fe1553..a7afa003d 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,14 +27,6 @@ nav: - Separate Packages: - website: admin/client/CLIENT.md - library microservice: admin/servers/lib/LIB-MS.md - - Developer: - - System: - - Architecture: developer/system/architecture.md - - Library Microservice: developer/system/lib-ms.md - - Client: developer/system/client.md - - Testing: - - Introduction: developer/testing/intro.md - - Index: developer/index.md - User: - Features: user/features.md - Website: user/website/index.md @@ -46,6 +38,13 @@ nav: - Lifecycle: user/digital-twins/lifecycle.md - Examples: https://github.com/INTO-CPS-Association/DTaaS-examples - FAQ: FAQ.md + - Developer: + - Overview: developer/index.md + - System: + - Architecture: developer/system/architecture.md + - Library Microservice: developer/system/lib-ms.md + - Client: developer/system/client.md + - Testing: developer/testing/intro.md - Bugs: bugs.md - Thanks: thanks.md - License: LICENSE.md @@ -71,7 +70,11 @@ markdown_extensions: pygments_lang_class: true - pymdownx.inlinehilite - pymdownx.snippets - - pymdownx.superfences + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format - pymdownx.details - admonition - pymdownx.tabbed: From 0aa9f0f052efcf24e9eb9e845317256531854500 Mon Sep 17 00:00:00 2001 From: Asti Date: Wed, 27 Sep 2023 06:47:47 +0530 Subject: [PATCH 06/35] PR Review changes, Mermaid Config in MkDocs --- docs/developer/index.md | 4 -- docs/developer/servers/lib/lib-sequence.mmd | 72 ++++++++++---------- docs/developer/system/architecture.md | 18 ++--- docs/developer/system/client.md | 4 +- docs/developer/system/package-diagram.png | Bin 0 -> 66667 bytes docs/{developer => user}/workflow.png | Bin mkdocs.yml | 5 ++ 7 files changed, 51 insertions(+), 52 deletions(-) create mode 100644 docs/developer/system/package-diagram.png rename docs/{developer => user}/workflow.png (100%) diff --git a/docs/developer/index.md b/docs/developer/index.md index 4d1a2d583..3d88ff734 100644 --- a/docs/developer/index.md +++ b/docs/developer/index.md @@ -54,10 +54,6 @@ To manage collaboration by multiple developers on the software, a simple [Fork, Remember that every commit should be meaningful and satisfies the requirements. -Additionally, please go through the two workflows specified in the diagram below: - -![Alt text](workflow.png) - ## Code Quality Quality checks are performed by CodeClimate to ensure the best possible quality of code to add to our project. diff --git a/docs/developer/servers/lib/lib-sequence.mmd b/docs/developer/servers/lib/lib-sequence.mmd index 49461e576..68d95b654 100644 --- a/docs/developer/servers/lib/lib-sequence.mmd +++ b/docs/developer/servers/lib/lib-sequence.mmd @@ -2,7 +2,7 @@ sequenceDiagram actor Client actor Traefik - box Aqua RAMS + box LightGreen RAMS participant FR as FilesResolver participant FSF as FilesServiceFactory participant CS as ConfigService @@ -14,86 +14,86 @@ sequenceDiagram participant FS as Local File System DB participant GAPI as GitLab API DB - Client -> Traefik : HTTP request - Traefik -> FR : GraphQL query + Client ->> Traefik : HTTP request + Traefik ->> FR : GraphQL query activate FR - FR -> FSF : create() + FR ->> FSF : create() activate FSF - FSF -> CS : getConfiguration("MODE") + FSF ->> CS : getConfiguration("MODE") activate CS - CS --> FSF : return configuration value + CS -->> FSF : return configuration value deactivate CS alt MODE = Local - FSF -> FR : return filesService (LFS) + FSF ->> FR : return filesService (LFS) deactivate FSF - FR -> IFS : listDirectory(path) or readFile(path) + FR ->> IFS : listDirectory(path) or readFile(path) activate IFS - IFS -> LFS : listDirectory(path) or readFile(path) + IFS ->> LFS : listDirectory(path) or readFile(path) activate LFS - LFS -> CS : getConfiguration("LOCAL_PATH") + LFS ->> CS : getConfiguration("LOCAL_PATH") activate CS - CS --> LFS : return local path + CS -->> LFS : return local path deactivate CS - LFS -> FS : Access filesystem + LFS ->> FS : Access filesystem alt Filesystem error - FS --> LFS : Filesystem error - LFS -> LFS : Throw new InternalServerErrorException - LFS --> IFS : Error + FS -->> LFS : Filesystem error + LFS ->> LFS : Throw new InternalServerErrorException + LFS -->> IFS : Error else Successful file operation - FS --> LFS : Return filesystem data - LFS -> IFS : return Promise + FS -->> LFS : Return filesystem data + LFS ->> IFS : return Promise end deactivate LFS else MODE = GitLab - FSF -> FR : return filesService (GFS) + FSF ->> FR : return filesService (GFS) %%deactivate FSF - FR -> IFS : listDirectory(path) or readFile(path) + FR ->> IFS : listDirectory(path) or readFile(path) activate IFS - IFS -> GFS : listDirectory(path) or readFile(path) + IFS ->> GFS : listDirectory(path) or readFile(path) activate GFS - GFS -> GFS : parseArguments(path) - GFS -> GFS : executeQuery() + GFS ->> GFS : parseArguments(path) + GFS ->> GFS : executeQuery() - GFS -> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") + GFS ->> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") activate CS - CS --> GFS : return GitLab API URL and Token + CS -->> GFS : return GitLab API URL and Token deactivate CS - GFS -> GAPI : sendRequest() + GFS ->> GAPI : sendRequest() alt GitLab API error - GAPI --> GFS : API error - GFS -> GFS : Throw new Error("Invalid query") - GFS --> IFS : Error + GAPI -->> GFS : API error + GFS ->> GFS : Throw new Error("Invalid query") + GFS -->> IFS : Error else Successful GitLab API operation - GAPI --> GFS : Return API response - GFS -> IFS : return Promise + GAPI -->> GFS : Return API response + GFS ->> IFS : return Promise end deactivate GFS end alt Error thrown - IFS -> FR : return Error + IFS ->> FR : return Error deactivate IFS - FR -> Traefik : return Error - Traefik -> Client : HTTP error response + FR ->> Traefik : return Error + Traefik ->> Client : HTTP error response else Successful operation - IFS -> FR : return Promise + IFS ->> FR : return Promise deactivate IFS - FR -> Traefik : return Promise - Traefik -> Client : HTTP response + FR ->> Traefik : return Promise + Traefik ->> Client : HTTP response end deactivate FR diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index 0dd9113a6..c8c11373d 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -5,28 +5,28 @@ The DTaaS software platform users expect a single platform to support the complete DT lifecycle. To be more precise, the platform users expect the following features: -1. Author – create different assets of the DT on the +1. **Author** – create different assets of the DT on the platform itself. This step requires use of some software frameworks and tools whose sole purpose is to author DT assets. -1. Consolidate – consolidate the list of available DT assets +1. **Consolidate** – consolidate the list of available DT assets and authoring tools so that user can navigate the library of reusable assets. This functionality requires support for discovery of available assets. -3. Configure – support selection and configuration of +3. **Configure** – support selection and configuration of DTs. This functionality also requires support for validation of a given configuration. -4. Execute – provision computing infrastructure on demand to support execution of a DT. -5. Explore – interact with a DT and explore the results +4. **Execute** – provision computing infrastructure on demand to support execution of a DT. +5. **Explore** – interact with a DT and explore the results stored both inside and outside the platform. Exploration may lead to analytical insights. -6. Save – save the state of a DT that’s already in the +6. **Save** – save the state of a DT that’s already in the execution phase. This functionality is required for ondemand saving and re-spawning of DTs. -7. What-if analysis – explore alternative scenarios to (i) +7. **What-if analysis** – explore alternative scenarios to (i) plan for an optimal next step, (ii) recalibrate new DT assets, (iii) automated creation of new DTs or their assets; these newly created DT assets may be used to perform scientifically valid experiments. -8. Share – share a DT with other users of their organisation. +8. **Share** – share a DT with other users of their organisation. ## System Components @@ -41,7 +41,7 @@ The figure shows the system architecture of the the DTaaS software platform. The ## C4 architecture Level 1 ![Alt text](c4l1.png) -## C4 architecture Level 3 +## C4 architecture Level 2 ![Detailed C4 architecture](c4l3.png) diff --git a/docs/developer/system/client.md b/docs/developer/system/client.md index 6acc6758f..019e9149d 100644 --- a/docs/developer/system/client.md +++ b/docs/developer/system/client.md @@ -6,6 +6,4 @@ This is the Client side (frontend) for Digital Twin as a Service (DTaaS) softwar ## Client Architecture -```mermaid - -``` \ No newline at end of file +![Client architecture](package-diagram.png) \ No newline at end of file diff --git a/docs/developer/system/package-diagram.png b/docs/developer/system/package-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2a0996d3a52fa70659c9cabb57b25cd492964b GIT binary patch literal 66667 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 literal 0 HcmV?d00001 diff --git a/docs/developer/workflow.png b/docs/user/workflow.png similarity index 100% rename from docs/developer/workflow.png rename to docs/user/workflow.png diff --git a/mkdocs.yml b/mkdocs.yml index 440fe1553..1ecb34da3 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -78,6 +78,11 @@ markdown_extensions: alternate_style: true - mdx_math: enable_dollar_delimiter: True + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format plugins: - open-in-new-tab From 35451e03d34c0225157eeb8f48fdba22c1189dd9 Mon Sep 17 00:00:00 2001 From: Asti Date: Wed, 27 Sep 2023 06:50:32 +0530 Subject: [PATCH 07/35] Mermaid Config in MkDocs-Github --- mkdocs-github.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mkdocs-github.yml b/mkdocs-github.yml index 0224f1b3b..f05e3cc28 100644 --- a/mkdocs-github.yml +++ b/mkdocs-github.yml @@ -27,6 +27,14 @@ nav: - Separate Packages: - website: admin/client/CLIENT.md - library microservice: admin/servers/lib/LIB-MS.md + - Developer: + - System: + - Architecture: developer/system/architecture.md + - Library Microservice: developer/system/lib-ms.md + - Client: developer/system/client.md + - Testing: + - Introduction: developer/testing/intro.md + - Index: developer/index.md - User: - Features: user/features.md - Website: user/website/index.md @@ -70,6 +78,11 @@ markdown_extensions: alternate_style: true - mdx_math: enable_dollar_delimiter: True + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format plugins: - open-in-new-tab From c007cbec3ea3ff8610ddd7763667fffb7d9b728d Mon Sep 17 00:00:00 2001 From: Asti Date: Wed, 27 Sep 2023 06:52:52 +0530 Subject: [PATCH 08/35] LibMS Sequence UML update --- docs/developer/system/lib-ms.md | 72 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/developer/system/lib-ms.md b/docs/developer/system/lib-ms.md index 2a14ee7bf..ab066cd9d 100644 --- a/docs/developer/system/lib-ms.md +++ b/docs/developer/system/lib-ms.md @@ -63,7 +63,7 @@ sequenceDiagram actor Client actor Traefik - box Aqua RAMS + box LightGreen RAMS participant FR as FilesResolver participant FSF as FilesServiceFactory participant CS as ConfigService @@ -75,86 +75,86 @@ sequenceDiagram participant FS as Local File System DB participant GAPI as GitLab API DB - Client -> Traefik : HTTP request - Traefik -> FR : GraphQL query + Client ->> Traefik : HTTP request + Traefik ->> FR : GraphQL query activate FR - FR -> FSF : create() + FR ->> FSF : create() activate FSF - FSF -> CS : getConfiguration("MODE") + FSF ->> CS : getConfiguration("MODE") activate CS - CS --> FSF : return configuration value + CS -->> FSF : return configuration value deactivate CS alt MODE = Local - FSF -> FR : return filesService (LFS) + FSF ->> FR : return filesService (LFS) deactivate FSF - FR -> IFS : listDirectory(path) or readFile(path) + FR ->> IFS : listDirectory(path) or readFile(path) activate IFS - IFS -> LFS : listDirectory(path) or readFile(path) + IFS ->> LFS : listDirectory(path) or readFile(path) activate LFS - LFS -> CS : getConfiguration("LOCAL_PATH") + LFS ->> CS : getConfiguration("LOCAL_PATH") activate CS - CS --> LFS : return local path + CS -->> LFS : return local path deactivate CS - LFS -> FS : Access filesystem + LFS ->> FS : Access filesystem alt Filesystem error - FS --> LFS : Filesystem error - LFS -> LFS : Throw new InternalServerErrorException - LFS --> IFS : Error + FS -->> LFS : Filesystem error + LFS ->> LFS : Throw new InternalServerErrorException + LFS -->> IFS : Error else Successful file operation - FS --> LFS : Return filesystem data - LFS -> IFS : return Promise + FS -->> LFS : Return filesystem data + LFS ->> IFS : return Promise end deactivate LFS else MODE = GitLab - FSF -> FR : return filesService (GFS) + FSF ->> FR : return filesService (GFS) %%deactivate FSF - FR -> IFS : listDirectory(path) or readFile(path) + FR ->> IFS : listDirectory(path) or readFile(path) activate IFS - IFS -> GFS : listDirectory(path) or readFile(path) + IFS ->> GFS : listDirectory(path) or readFile(path) activate GFS - GFS -> GFS : parseArguments(path) - GFS -> GFS : executeQuery() + GFS ->> GFS : parseArguments(path) + GFS ->> GFS : executeQuery() - GFS -> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") + GFS ->> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") activate CS - CS --> GFS : return GitLab API URL and Token + CS -->> GFS : return GitLab API URL and Token deactivate CS - GFS -> GAPI : sendRequest() + GFS ->> GAPI : sendRequest() alt GitLab API error - GAPI --> GFS : API error - GFS -> GFS : Throw new Error("Invalid query") - GFS --> IFS : Error + GAPI -->> GFS : API error + GFS ->> GFS : Throw new Error("Invalid query") + GFS -->> IFS : Error else Successful GitLab API operation - GAPI --> GFS : Return API response - GFS -> IFS : return Promise + GAPI -->> GFS : Return API response + GFS ->> IFS : return Promise end deactivate GFS end alt Error thrown - IFS -> FR : return Error + IFS ->> FR : return Error deactivate IFS - FR -> Traefik : return Error - Traefik -> Client : HTTP error response + FR ->> Traefik : return Error + Traefik ->> Client : HTTP error response else Successful operation - IFS -> FR : return Promise + IFS ->> FR : return Promise deactivate IFS - FR -> Traefik : return Promise - Traefik -> Client : HTTP response + FR ->> Traefik : return Promise + Traefik ->> Client : HTTP response end deactivate FR From ee2c0eec8b6a7e4f99abd82e120a8e678ce621ac Mon Sep 17 00:00:00 2001 From: Asti Date: Wed, 27 Sep 2023 18:14:41 +0530 Subject: [PATCH 09/35] Microservices documentation --- docs/developer/system/architecture.md | 35 ++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index ac1751ed7..797514e0a 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -38,9 +38,34 @@ The figure shows the system architecture of the the DTaaS software platform. The 1. [The Website](./client.md) -2. [The Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. - -3. [The Library Microservice (Reusable Assets)](./lib-ms.md) +1. [The Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. + +1. [The Library Microservice (Reusable Assets)](./lib-ms.md) + +### Microservices + +1. **The security microservice** implements +role-based access control (RBAC) in the platform. +1. **The accounting microservice** is responsible for keeping track of the +platform, DT asset and infrastructure usage. Any licensing, +usage restrictions need to be enforced by the accounting +microservice. Accounting is a pre-requisite to commercialisation of the platform. +Due to significant use of external +infrastructure and resources via the platform, the accounting +microservice needs to interface with accounting systems of +the external services. +1. **The data microservice** is a frontend to all the databases +integrated into the platform. A time-series database and a +graph database are essential. These two databases store timeseries +data from PT, events on PT/DT, commands sent by +DT to PT. The PTs uses these databases even when their +respective DTs are not in the execute phase. +1. **The visualisation microservice** is again a frontend to +visualisation software that are natively supported inside the platform. +Any visualisation software running either on external +systems or on client browsers do not need to interact with +this microservice. They can directly use the data provided by +the data microservice. ## C4 Architectural Diagrams @@ -71,3 +96,7 @@ A mapping of containers to system components is also available in the table. | Security | Gitlab | | Accounting | None | | Execution Manager | Execution Manager | + +## Disclaimer +Only the web client and library microservice components are functional at present. +Everything else is a work-in-progress. \ No newline at end of file From aad4679d5437edfe118bf0db423c4997972a91fc Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:34:14 +0530 Subject: [PATCH 10/35] Update .mdlrc --- .mdlrc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.mdlrc b/.mdlrc index 5fbe502bd..27fbe2c8f 100644 --- a/.mdlrc +++ b/.mdlrc @@ -1,5 +1,4 @@ git_recurse true all -rule 'MD013', :ignore_code_blocks => true -rule 'MD013', :tables => false -rule 'MD046', :indented \ No newline at end of file +rule 'MD013', +rule 'MD046', :indented From 5809a6be2a3edc4655397d89c9455ec78a7f841b Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:42:15 +0530 Subject: [PATCH 11/35] Undo update .mdlrc --- .mdlrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.mdlrc b/.mdlrc index 27fbe2c8f..237d6c60c 100644 --- a/.mdlrc +++ b/.mdlrc @@ -1,4 +1,5 @@ git_recurse true all -rule 'MD013', +rule 'MD013', :ignore_code_blocks => true +rule 'MD013', :tables => false rule 'MD046', :indented From 214e4385a66d6997c8dae9c43b9daccb838b8f6f Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:30:38 +0530 Subject: [PATCH 12/35] Update .codeclimate.yml --- .codeclimate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index de8c1ce5f..144f6c2fe 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -20,7 +20,7 @@ plugins: fixme: enabled: true markdownlint: - enabled: true + enabled: true shellcheck: enabled: true From 980c87df9bceef514f45fd8c400f84364fd85d36 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:50:40 +0530 Subject: [PATCH 13/35] Rename .mdlrc to .mdl_style.rb --- .mdlrc => .mdl_style.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .mdlrc => .mdl_style.rb (100%) diff --git a/.mdlrc b/.mdl_style.rb similarity index 100% rename from .mdlrc rename to .mdl_style.rb From b36b647e69bb7dffb2a6b38d5bfc7d3716185d95 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Thu, 28 Sep 2023 19:51:34 +0530 Subject: [PATCH 14/35] Create .mdlrc --- .mdlrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .mdlrc diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 000000000..1f82ca2ce --- /dev/null +++ b/.mdlrc @@ -0,0 +1 @@ +style '.mdl_style.rb' From ba31a95ddbb7670771f4840b0ecfb22ed1d7a619 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Thu, 28 Sep 2023 22:17:09 +0530 Subject: [PATCH 15/35] Update .mdl_style.rb --- .mdl_style.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index 237d6c60c..ba34fb48e 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,5 +1,4 @@ -git_recurse true all rule 'MD013', :ignore_code_blocks => true rule 'MD013', :tables => false -rule 'MD046', :indented +rule 'MD046', :indented => true From 50c30c7e55b1a316973962c98334db383d777aa8 Mon Sep 17 00:00:00 2001 From: Asti Date: Fri, 29 Sep 2023 00:28:10 +0530 Subject: [PATCH 16/35] Doc update1 --- LICENSE.md | 99 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 38 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index be60b871f..a9810b7cd 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,7 @@ --- Start of Definition of INTO-CPS Association Public License --- /* + * This file is part of the INTO-CPS Association. * * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), @@ -12,14 +13,14 @@ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR + * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. * - * The INTO-CPS tool suite software and the INTO-CPS Association + * The INTO-CPS tool suite software and the INTO-CPS Association * Public License (ICAPL) are obtained from the INTO-CPS Association, either * from the above address, from the URLs: http://www.into-cps.org or * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. + * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. * * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS @@ -29,46 +30,52 @@ * * See the full ICAPL conditions for more details. * + */ --- End of INTO-CPS Association Public License Header --- -The ICAPL is a public license for the INTO-CPS tool suite with three modes/alternatives +The ICAPL is a public license for the INTO-CPS tool +suite with three modes/alternatives (GPL, ICA-Internal-EPL, ICA-External-EPL) for use and redistribution, in source and/or binary/object-code form: -* GPL. Any party (member or non-member of the INTO-CPS Association) may use and +* GPL. Any party (member or non-member of the INTO-CPS Association) may use and redistribute INTO-CPS tool suite under GPL version 3. -* Silver Level members of the INTO-CPS Association may also use and redistribute +* Silver Level members of the INTO-CPS Association may also use and redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. -* Gold Level members of the INTO-CPS Association may also use and redistribute +* Gold Level members of the INTO-CPS Association may also use and redistribute The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. -* ICA-Internal-EPL = These INTO-CPA Association Public license conditions together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition +* ICA-Internal-EPL = These INTO-CPA Association Public + license conditions together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association is only allowed within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee corresponding to + or for a member of the INTO-CPS Association + paying a membership fee corresponding to the size of the organization including all its affiliates, use and redistribution is allowed within/between its affiliates. * ICA-External-EPL = These INTO-CPA Association Public license conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association, or by a Licensed Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization (i.e., its own + to parties external to the INTO-CPS Association + member’s own organization (i.e., its own legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is also + redistribution to other members the INTO-CPS Association to which source is also allowed to be distributed. [This has the consequence that an external party who wishes to use -the INTO-CPS Association in source form together with its own proprietary software in all +the INTO-CPS Association in source form together with +its own proprietary software in all cases must be a member of the INTO-CPS Association]. In all cases of usage and redistribution by recipients, the following @@ -90,7 +97,8 @@ c) A recipient must clearly indicate its chosen usage mode of ICAPL, in accompanying documentation and in a text file ICA-USAGE-MODE.txt, provided with the distribution. -d) Contributor(s) making a Contribution to the INTO-CPS Association thereby also makes a +d) Contributor(s) making a Contribution to the + INTO-CPS Association thereby also makes a Transfer of Contribution Copyright. In return, upon the effective date of the transfer, ICA grants the Contributor(s) a Contribution License of the Contribution. ICA has the right to accept or refuse Contributions. @@ -108,24 +116,28 @@ ICA-Internal-EPL and ICA-External-EPL. INTO-CPS Association Public License version 1.0, i.e., the license defined here (the text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of Definition of INTO-CPS Association Public License ---", or later versions thereof. +"--- End of Definition of INTO-CPS Association +Public License ---", or later versions thereof. "ICAPL Header" means: INTO-CPS Association Public License Header version 1.2, i.e., the -text between "--- Start of Definition of INTO-CPS Association Public License ---" and +text between "--- Start of Definition +of INTO-CPS Association Public License ---" and "--- End of INTO-CPS Association Public License Header ---, or later versions thereof. "Contribution" means: -a) in the case of the initial Contributor, the initial code and documentation +a) in the case of the initial Contributor, + the initial code and documentation distributed under ICAPL, and b) in the case of each subsequent Contributor: i) changes to the INTO-CPS tool suite, and ii) additions to the INTO-CPS tool suite; -where such changes and/or additions to the INTO-CPS tool suite originate from and are +where such changes and/or additions +to the INTO-CPS tool suite originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or anyone acting on such Contributor's behalf. @@ -148,13 +160,20 @@ Additional Condition for external distribution according to ICA-External-EPL. Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for inclusion in the INTO-CPS tool suite. The transfer takes place upon the effective date -when the Contribution is made available on the INTO-CPS Association web site under ICAPL, by +when the Contribution is made available on the +INTO-CPS Association web site under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. -The transfer is free of charge. If the Contributors or the INTO-CPS Association so wish, -an optional Copyright transfer agreement can be signed between the INTO-CPS Association and the Contributors. - -"Contribution License" means a license from the INTO-CPS Association to the Contributors of the Contribution, effective on the date of the Transfer of Contribution Copyright, -where the INTO-CPS Association grants the Contributors a non-exclusive, world-wide, transferable, free of charge, perpetual license, including sublicensing rights, to use, +The transfer is free of charge. If the +Contributors or the INTO-CPS Association so wish, +an optional Copyright transfer agreement can be signed +between the INTO-CPS Association and the Contributors. + +"Contribution License" means a license from the INTO-CPS +Association to the Contributors of the Contribution, effective +on the date of the Transfer of Contribution Copyright, +where the INTO-CPS Association grants the Contributors a +non-exclusive, world-wide, transferable, free of charge, +perpetual license, including sublicensing rights, to use, have used, modify, have modified, reproduce and or have reproduced the contributed material, for business and other purposes, including but not limited to evaluation, development, testing, integration and merging with @@ -172,12 +191,12 @@ the INTO-CPS tool chain. including all Contributors. "Licensed Third Party Distributor" means a reseller/distributor having signed -a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS -Association Bylaws, with a Gold Level organizational member which is not an -Affiliate of the reseller/distributor, for distributing a product containing -part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall -only be allowed further redistribution to other resellers if the Gold Level -member is granting such a right to it in the redistribution/resale agreement +a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS +Association Bylaws, with a Gold Level organizational member which is not an +Affiliate of the reseller/distributor, for distributing a product containing +part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall +only be allowed further redistribution to other resellers if the Gold Level +member is granting such a right to it in the redistribution/resale agreement between the Gold Level member and the Licensed Third Party Distributor. "Affiliate" shall mean any legal entity, directly or indirectly, through one @@ -211,12 +230,12 @@ SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL -SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL +SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. A Contributor licensing the INTO-CPS tool suite under ICA-Internal-EPL or -ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite +ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of @@ -233,9 +252,11 @@ and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; - iii) states that any provisions which differ from ICAPL are offered by that + iii) states that any provisions which differ + from ICAPL are offered by that Contributor alone and not by any other party; and - iv) states from where the source code for the INTO-CPS tool suite is available, and + iv) states from where the source code + for the INTO-CPS tool suite is available, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. @@ -258,9 +279,11 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS distribution. +http://www.eclipse.org/legal/epl-v10.html. +It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. +http://www.gnu.org/copyleft/gpl.html. +It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- From bdcfdf0ea0c5bd77747cd19d85c24de918a7c2a3 Mon Sep 17 00:00:00 2001 From: Asti Date: Fri, 29 Sep 2023 01:58:46 +0530 Subject: [PATCH 17/35] Doc update2 --- client/LICENSE.md | 178 +++++++++++++--------- client/README.md | 53 +++++-- client/test/README.md | 80 +++++++--- deploy/vagrant/make_boxes/dtaas/README.md | 10 +- deploy/vagrant/single-machine/README.md | 10 +- deploy/vagrant/two-machine/README.md | 46 ++++-- docs/FAQ.md | 4 +- docs/LICENSE.md | 118 ++++++++------ docs/PUBLISH.md | 4 +- docs/admin/client/CLIENT.md | 28 ++-- docs/admin/client/auth.md | 54 +++++-- docs/admin/servers/lib/LIB-MS.md | 17 ++- docs/admin/trial.md | 1 - docs/developer/index.md | 55 ++++--- docs/developer/system/architecture.md | 81 +++++----- 15 files changed, 486 insertions(+), 253 deletions(-) diff --git a/client/LICENSE.md b/client/LICENSE.md index be60b871f..2f3c17cde 100644 --- a/client/LICENSE.md +++ b/client/LICENSE.md @@ -12,14 +12,14 @@ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR + * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or + * The INTO-CPS tool suite software and the INTO-CPS Association + * Public License (ICAPL) are obtained from the INTO-CPS Association, either + * from the above address, from the URLs: http://www.into-cps.org or * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. + * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. * * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS @@ -33,42 +33,56 @@ --- End of INTO-CPS Association Public License Header --- -The ICAPL is a public license for the INTO-CPS tool suite with three modes/alternatives +The ICAPL is a public license for the INTO-CPS tool suite with three +modes/alternatives (GPL, ICA-Internal-EPL, ICA-External-EPL) for use and redistribution, in source and/or binary/object-code form: -* GPL. Any party (member or non-member of the INTO-CPS Association) may use and +* GPL. Any party (member or non-member of the INTO-CPS Association) may + use and redistribute INTO-CPS tool suite under GPL version 3. -* Silver Level members of the INTO-CPS Association may also use and redistribute - the INTO-CPS tool suite under ICA-Internal-EPL conditions. +* Silver Level members of the INTO-CPS Association may also use and + redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. -* Gold Level members of the INTO-CPS Association may also use and redistribute - The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. +* Gold Level members of the INTO-CPS Association may also use and + redistribute + The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL + conditions. Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. -* ICA-Internal-EPL = These INTO-CPA Association Public license conditions together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee corresponding to - the size of the organization including all its affiliates, use and redistribution - is allowed within/between its affiliates. - -* ICA-External-EPL = These INTO-CPA Association Public license conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association, or by a Licensed +* ICA-Internal-EPL = These INTO-CPA Association Public license conditions + together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional + Condition + that use and redistribution by a member of the INTO-CPS Association + is only allowed + within the INTO-CPS Association member's own organization (i.e., + its own legal entity), + or for a member of the INTO-CPS Association paying a membership fee + corresponding to + the size of the organization including all its affiliates, use and + redistribution is allowed within/between its affiliates. + +* ICA-External-EPL = These INTO-CPA Association Public license + conditions together with + Externally restricted EPL, i.e., EPL version 1.0 with the Additional + Condition + that use and redistribution by a member of the INTO-CPS Association, + or by a Licensed Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization (i.e., its own - legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is also - allowed to be distributed. + to parties external to the INTO-CPS Association member’s own organization + (i.e., its own legal entity) is only allowed in binary/object-code + form, except the case of + redistribution to other members the INTO-CPS Association to which + source is also allowed to be distributed. [This has the consequence that an external party who wishes to use -the INTO-CPS Association in source form together with its own proprietary software in all +the INTO-CPS Association in source form together with its own +proprietary software in all cases must be a member of the INTO-CPS Association]. In all cases of usage and redistribution by recipients, the following @@ -80,17 +94,18 @@ a) Redistributions of source code must retain the above copyright notice, and easily located place in the redistribution. b) Redistributions in binary/object-code form must reproduce the above - copyright notice, all definitions, and conditions. It is sufficient if the - ICAPL Header and the location in the redistribution of the full ICAPL - are present in the documentation and/or other materials provided with the - redistribution, if the full ICAPL is available in a prominent and easily - located place in the redistribution. + copyright notice, all definitions, and conditions. It is sufficient + if the ICAPL Header and the location in the redistribution of the full + ICAPL are present in the documentation and/or other materials provided + with the redistribution, if the full ICAPL is available in a prominent + and easily located place in the redistribution. c) A recipient must clearly indicate its chosen usage mode of ICAPL, in accompanying documentation and in a text file ICA-USAGE-MODE.txt, provided with the distribution. -d) Contributor(s) making a Contribution to the INTO-CPS Association thereby also makes a +d) Contributor(s) making a Contribution to the INTO-CPS Association + thereby also makes a Transfer of Contribution Copyright. In return, upon the effective date of the transfer, ICA grants the Contributor(s) a Contribution License of the Contribution. ICA has the right to accept or refuse Contributions. @@ -108,13 +123,16 @@ ICA-Internal-EPL and ICA-External-EPL. INTO-CPS Association Public License version 1.0, i.e., the license defined here (the text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of Definition of INTO-CPS Association Public License ---", or later versions thereof. +"--- End of Definition of INTO-CPS Association Public License ---", or +later versions thereof. "ICAPL Header" means: INTO-CPS Association Public License Header version 1.2, i.e., the -text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of INTO-CPS Association Public License Header ---, or later versions thereof. +text between "--- Start of Definition of INTO-CPS Association Public License +---" and +"--- End of INTO-CPS Association Public License Header ---, or later versions +thereof. "Contribution" means: @@ -125,21 +143,24 @@ b) in the case of each subsequent Contributor: i) changes to the INTO-CPS tool suite, and ii) additions to the INTO-CPS tool suite; -where such changes and/or additions to the INTO-CPS tool suite originate from and are +where such changes and/or additions to the INTO-CPS tool suite originate from +and are distributed by that particular Contributor. A Contribution 'originates' from -a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or -anyone acting on such Contributor's behalf. +a Contributor if it was added to the INTO-CPS tool suite by such Contributor +itself or anyone acting on such Contributor's behalf. For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions, the following conditions also hold: Contributions do not include additions to the distributed Program which: (i) -are separate modules of software distributed in conjunction with the INTO-CPS tool suite -under their own license agreement, (ii) are separate modules which are not -derivative works of the INTO-CPS tool suite, and (iii) are separate modules of software -distributed in conjunction with the INTO-CPS tool suite under their own license agreement -where these separate modules are merged with (weaved together with) modules of -The INTO-CPS tool suite to form new modules that are distributed as object code or source +are separate modules of software distributed in conjunction with the +INTO-CPS tool suite under their own license agreement, (ii) are separate +modules which are not derivative works of the INTO-CPS tool suite, and (iii) +are separate modules of software distributed in conjunction with the +INTO-CPS tool suite under their own license agreement +where these separate modules are merged with (weaved together with) +modules of The INTO-CPS tool suite to form new modules that are +distributed as object code or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or Additional Condition for external distribution according to ICA-External-EPL. @@ -147,14 +168,22 @@ Additional Condition for external distribution according to ICA-External-EPL. "Transfer of Contribution Copyright" means that the Contributors of a Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for -inclusion in the INTO-CPS tool suite. The transfer takes place upon the effective date -when the Contribution is made available on the INTO-CPS Association web site under ICAPL, by +inclusion in the INTO-CPS tool suite. The transfer takes place upon the +effective date +when the Contribution is made available on the INTO-CPS Association web site +under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. -The transfer is free of charge. If the Contributors or the INTO-CPS Association so wish, -an optional Copyright transfer agreement can be signed between the INTO-CPS Association and the Contributors. - -"Contribution License" means a license from the INTO-CPS Association to the Contributors of the Contribution, effective on the date of the Transfer of Contribution Copyright, -where the INTO-CPS Association grants the Contributors a non-exclusive, world-wide, transferable, free of charge, perpetual license, including sublicensing rights, to use, +The transfer is free of charge. If the Contributors or the INTO-CPS +Association so wish, +an optional Copyright transfer agreement can be signed between the INTO-CPS +Association and the Contributors. + +"Contribution License" means a license from the INTO-CPS Association to the +Contributors of the Contribution, effective on the date of the Transfer of +Contribution Copyright, +where the INTO-CPS Association grants the Contributors a non-exclusive, +world-wide, transferable, free of charge, perpetual license, including +sublicensing rights, to use, have used, modify, have modified, reproduce and or have reproduced the contributed material, for business and other purposes, including but not limited to evaluation, development, testing, integration and merging with @@ -166,18 +195,19 @@ the INTO-CPS tool chain. "The Program" means the Contributions distributed in accordance with ICAPL. -"The INTO-CPS tool chain" means the Contributions distributed in accordance with ICAPL. +"The INTO-CPS tool chain" means the Contributions distributed in accordance +with ICAPL. "Recipient" means anyone who receives the INTO-CPS tool chain under ICAPL, including all Contributors. "Licensed Third Party Distributor" means a reseller/distributor having signed -a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS -Association Bylaws, with a Gold Level organizational member which is not an -Affiliate of the reseller/distributor, for distributing a product containing -part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall -only be allowed further redistribution to other resellers if the Gold Level -member is granting such a right to it in the redistribution/resale agreement +a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS +Association Bylaws, with a Gold Level organizational member which is not an +Affiliate of the reseller/distributor, for distributing a product containing +part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall +only be allowed further redistribution to other resellers if the Gold Level +member is granting such a right to it in the redistribution/resale agreement between the Gold Level member and the Licensed Third Party Distributor. "Affiliate" shall mean any legal entity, directly or indirectly, through one @@ -192,14 +222,17 @@ voting securities, by contract or otherwise. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THE BY RECIPIENT SELECTED SUBSIDIARY -LICENSE CONDITIONS OF ICAPL, THE INTO-CPS ASSOCIATION IS PROVIDED ON AN "AS IS" +LICENSE CONDITIONS OF ICAPL, THE INTO-CPS ASSOCIATION IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the INTO-CPS tool suite and assumes all risks +appropriateness of using and distributing the INTO-CPS tool suite and +assumes all risks associated with its exercise of rights under ICAPL , including but not -limited to the risks and costs of program errors, compliance with applicable +limited to the risks and costs of program errors, compliance +with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. @@ -211,17 +244,19 @@ SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL -SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL +SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. A Contributor licensing the INTO-CPS tool suite under ICA-Internal-EPL or -ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite +ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of -redistribution of the INTO-CPS tool suite together with proprietary code it is a dual -license where the INTO-CPS tool suite parts are distributed under ICAPL compatible +redistribution of the INTO-CPS tool suite together with proprietary code +it is a dual +license where the INTO-CPS tool suite parts are distributed under +ICAPL compatible conditions and the proprietary code is distributed under proprietary license conditions; and @@ -235,7 +270,8 @@ damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from ICAPL are offered by that Contributor alone and not by any other party; and - iv) states from where the source code for the INTO-CPS tool suite is available, and + iv) states from where the source code for the INTO-CPS tool suite is + available, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. @@ -258,9 +294,11 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS distribution. +http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the +INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. +http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS +distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/client/README.md b/client/README.md index 5333073e5..fa3c829d1 100644 --- a/client/README.md +++ b/client/README.md @@ -1,10 +1,13 @@ # Introduction -Client (frontend) for Digital Twin as a Service (DTaaS) software. This software shall be used for providing a React single page web application for the Digital Twin support platform. +Client (frontend) for Digital Twin as a Service (DTaaS) software. +This software shall be used for providing a React single page web +application for the Digital Twin support platform. ## Setup the Environment and Build -The following steps are required to setup the environment and build the application. +The following steps are required to setup the environment and build +the application. ### Prerequisites @@ -24,7 +27,9 @@ yarn start #start the application yarn clean #clean the directory of temporary files ``` -It is also possible to run different types of tests using the yarn test command by passing different flags: +It is also possible to run different types of tests using the yarn +test command by passing different flags: + ```bash yarn test -a #run all tests yarn test -u #run unit tests @@ -35,30 +40,45 @@ yarn test -e #run end-to-end tests ## Authentication -The react client website uses OAuth authentication. The [authentication page](../docs/admin/client/auth.md) provides details on setting up oauth authentication for the client application. +The react client website uses OAuth authentication. +The [authentication page](../docs/admin/client/auth.md) +provides details on setting up oauth authentication for +the client application. ## Custom configuration -It is required to have a `env.js` in the root directory of `build` during runtime. This file is used to configure the endpoints of the application. See the [build instructions](../docs/admin/client/CLIENT.md) for an example. +It is required to have a `env.js` in the root directory of +`build` during runtime. This file is used to configure the +endpoints of the application. +See the [build instructions](../docs/admin/client/CLIENT.md) +for an example. ### Multiple configurations -If you want to switch between multiple environments, you can use the `yarn configapp` command to copy a configuration file from `client/config/` to the `build` directory. +If you want to switch between multiple environments, +you can use the `yarn configapp` command to copy a configuration +file from `client/config/` to the `build` directory. 1. Save the file as `client/config/.js`. -2. Run the config command to copy the file to the `public` directory and the `build` directory, if a build is present. +1. Run the config command to copy the file to the `public` directory +and the `build` directory, if a build is present. ```bash yarn configapp ``` -> Which ever env.js file is present in the `public` directory during `yarn build`, will be used in the build. +> Which ever env.js file is present in the `public` directory during +`yarn build`, will be used in the build. -It is therefore reccommend to keep the configurations in the `client/config/` directory and use the `yarn configapp` command to switch between them. +It is therefore reccommend to keep the configurations in the +`client/config/` directory and use the `yarn configapp` command to +switch between them. ## Example configuration for developers -The first step is to collect the URL of gitlab acting as oauth provider. Also collect the client application id. With that information, a configuration file can be made. +The first step is to collect the URL of gitlab acting as oauth provider. +Also collect the client application id. With that information, +a configuration file can be made. A suitable configuration file for developers is: @@ -84,8 +104,9 @@ window.env = { Here the gitlab URL is `https://gitlab.foo.com/` and the client ID is `934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0`. -If a basename is needed for the client application, then the configuration file needs to be updated with the basename. For example, with a basename of `au`, -the `build/env.js` file is given below. +If a basename is needed for the client application, then the configuration +file needs to be updated with the basename. For example, with a basename of +`au`, the `build/env.js` file is given below. ```js window.env = { @@ -107,11 +128,15 @@ window.env = { REACT_APP_GITLAB_SCOPES: 'openid profile read_user read_repository api', ``` -Do remember that the oauth application on gitlab needs to have the redirect (callback) URL is correctly registered. +Do remember that the oauth application on gitlab needs to have the redirect +(callback) URL is correctly registered. ## Caveat -The client website relies on the background services to provide most of the functionality. These services would not be running on the developer computer. The complete application setup exists either on the integration server or as an installation instance. During development, there will be +The client website relies on the background services to provide most of the +functionality. These services would not be running on the developer computer. +The complete application setup exists either on the integration server or as an +installation instance. During development, there will be ```txt Unexpected Application Error! diff --git a/client/test/README.md b/client/test/README.md index 560fb80f9..84e8199f2 100644 --- a/client/test/README.md +++ b/client/test/README.md @@ -1,8 +1,12 @@ # End-to-End (E2E) Tests -The E2E tests require a functional gitlab oauth setup, traefik gateway and a live react client website. The E2E tests do not launch the react client website. So it is important to launch the website using `yarn start`. Keep this server running while performing the E2E tests with `yarn test -e` command. +The E2E tests require a functional gitlab oauth setup, traefik gateway and a +live react client website. The E2E tests do not launch the react client website. +So it is important to launch the website using `yarn start`. Keep this server +running while performing the E2E tests with `yarn test -e` command. -The E2E tests use playwright test runner. You also need to have the software installed. If it is not installed, you can install with the following command. +The E2E tests use playwright test runner. You also need to have the software +installed. If it is not installed, you can install with the following command. ```bash sudo npx playwright install-deps @@ -10,24 +14,34 @@ sudo npx playwright install-deps ## OAuth Setup -You can follow the instructions in [authentication page](../../docs/admin/client/auth.md) to setup oauth for the react client website. Remember to add the `http://localhost:4000` as callback URL in the oauth application. The gitlab will still be running on a remote machine. It is not possible to run both the gitlab and react client website on localhost. +You can follow the instructions in +[authentication page](../../docs/admin/client/auth.md) to setup oauth for the +react client website. Remember to add the `http://localhost:4000` as callback URL +in the oauth application. The gitlab will still be running on a remote machine. +It is not possible to run both the gitlab and react client website on localhost. ## config/test.js file -Before running the E2E tests, you need to update the `config/test.js` file. If you have a live DTaaS client website running, you can copy the `build/env.js` into `config/test.js`. +Before running the E2E tests, you need to update the `config/test.js` file. +If you have a live DTaaS client website running, you can copy the `build/env.js` +into `config/test.js`. -Open `config/test.js` in a text editor and make sure the configuration matches the details of your testing environment. For instance, you need to adjust: +Open `config/test.js` in a text editor and make sure the configuration matches +the details of your testing environment. For instance, you need to adjust: * `REACT_APP_URL` * `REACT_APP_AUTH_AUTHORITY` * `REACT_APP_REDIRECT_URI` * `REACT_APP_LOGOUT_REDIRECT_URI` -to reflect your test setup. More information on about the environment settings is available in [authentication](../../docs/admin/client/auth.md) and [client deployment](../../docs/admin/client/CLIENT.md) pages. +to reflect your test setup. More information on about the environment settings is +available in [authentication](../../docs/admin/client/auth.md) and +[client deployment](../../docs/admin/client/CLIENT.md) pages. -Here's an example of relevant values for variables. This example is suitable for testing on developer computer. +Here's an example of relevant values for variables. This example is suitable for +testing on developer computer. -``` +```js REACT_APP_URL="http://localhost:4000" REACT_APP_AUTH_AUTHORITY="http://gitlab.foo.com" REACT_APP_REDIRECT_URI="http://localhost:4000/Library" @@ -36,7 +50,9 @@ REACT_APP_LOGOUT_REDIRECT_URI="http://localhost:4000" ## env file -You need to create a `test/.env` file where you will store the GitLab user credentials. These credentials will be used by playwright to simulate real user interactions during the E2E tests. +You need to create a `test/.env` file where you will store the GitLab user +credentials. These credentials will be used by playwright to simulate real +user interactions during the E2E tests. A template for `test/.env` is given here: @@ -46,11 +62,14 @@ REACT_APP_TEST_PASSWORD=your_password REACT_APP_URL='https://foo.com' ``` -Replace _your_username_ and _your_password_ with the actual username and password of your GitLab account or the testing account that you intend to use. Finally replace _foo.com_ with the URL of your application, as you did in `env.js`. +Replace _your_username_ and _your_password_ with the actual username and password +of your GitLab account or the testing account that you intend to use. Finally +replace _foo.com_ with the URL of your application, as you did in `env.js`. -Here's an example for test setup on the developer machine and on the integration server: +Here's an example for test setup on the developer machine and on the +integration server: -``` +```env REACT_APP_TEST_USERNAME=TestUsername REACT_APP_TEST_PASSWORD=TestPassword123 REACT_APP_URL='http://localhost:4000' @@ -63,12 +82,16 @@ There are two possible testing setups you can create. 1. Host website on the developer computer and test from developer computer 1. Host website on the integration server and test from the integration server -If you use `localhost` in the `REACT_APP_URL` the above the two mentioned setups are essentially the same. -In order to run the tests on the integration server, you need to disable the HTTP authentication (if setup in the first place) on the Traefik server and let the website be accessible without any authenticaiton. +If you use `localhost` in the `REACT_APP_URL` the above the two mentioned setups +are essentially the same. +In order to run the tests on the integration server, you need to disable the +HTTP authentication (if setup in the first place) on the Traefik server and +let the website be accessible without any authenticaiton. ### The configuration files for the test on localhost -The `config/test.js` file is given below. The `build/env.js` also holds the same content. +The `config/test.js` file is given below. The `build/env.js` also holds the +same content. ```js window.env = { @@ -91,7 +114,7 @@ window.env = { }; ``` -**test/.env** +## test/.env ```ini REACT_APP_TEST_USERNAME=TestUsername @@ -99,13 +122,18 @@ REACT_APP_TEST_PASSWORD=TestPassword123 REACT_APP_URL='http://localhost:4000' ``` -Please note that the username and password are the user credentials on `gitlab.foo.com`. +Please note that the username and password are the user +credentials on `gitlab.foo.com`. ## Testing on the integration server -In this test setup, the DTaaS application is running at `https://foo.com` and the gitlab instance is running at `https://gitlab.foo.com`. The E2E test shall be run from the developer computer. The codebase commit should be the same on both the developer computer and integration server. +In this test setup, the DTaaS application is running at `https://foo.com` and +the gitlab instance is running at `https://gitlab.foo.com`. The E2E test shall +be run from the developer computer. The codebase commit should be the same on +both the developer computer and integration server. -The `config/test.js` file on the developer computer is given below. The `build/env.js` of the integration server also holds the same content. +The `config/test.js` file on the developer computer is given below. The +`build/env.js` of the integration server also holds the same content. ```js window.env = { @@ -128,7 +156,7 @@ window.env = { }; ``` -**test/.env** +## test/.env ```ini REACT_APP_TEST_USERNAME=TestUsername @@ -138,13 +166,19 @@ REACT_APP_URL='https://foo.com' Please note that the username and password are the user credentials on `gitlab.foo.com`. -**NOTE:** The tests from developer computer to the integration server only work with null basename. The test fails if a basename (say `au`) is specified. This might be due to a complex interaction of developer computer, traefik gateway and the client website hosted behind traefik. +**NOTE:** The tests from developer computer to the integration server only +work with null basename. The test fails if a basename (say `au`) is specified. +This might be due to a complex interaction of developer computer, traefik +gateway and the client website hosted behind traefik. ## Running the Tests + Once you've properly set up your .env file, you can now run the end-to-end tests. -``` +```bash yarn test -e ``` -This command launches the test runner and executes all end-to-end tests. Make sure you have an active internet connection while running these tests, as they simulate real user interactions with your GitLab account. +This command launches the test runner and executes all end-to-end tests. +Make sure you have an active internet connection while running these tests, +as they simulate real user interactions with your GitLab account. diff --git a/deploy/vagrant/make_boxes/dtaas/README.md b/deploy/vagrant/make_boxes/dtaas/README.md index c9826405d..99cad45e4 100644 --- a/deploy/vagrant/make_boxes/dtaas/README.md +++ b/deploy/vagrant/make_boxes/dtaas/README.md @@ -1,4 +1,7 @@ +# DTaaS Boxes + This is a box that has the following items: + * docker * nodejs and yarn * jupyter @@ -28,13 +31,13 @@ vagrant ssh # install the oh-my-zsh sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -# install plugins: history, autosuggestions, +# install plugins: history, autosuggestions, git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions # inside ~/.zshrc, modify the following line plugins=(git zsh-autosuggestions history cp tmux) -# remove the vagrant default public key - first line of +# remove the vagrant default public key - first line of # /home/vagrant/.ssh/authorized_keys # exit vagrant guest machine and then @@ -42,7 +45,7 @@ plugins=(git zsh-autosuggestions history cp tmux) cp vagrant .vagrant/machines/default/virtualbox/private_key # check -vagrant ssh #should work +vagrant ssh #should work vagrant halt @@ -57,5 +60,6 @@ vagrant box add --name dtaas ./dtaas.vagrant ``` ## TODO + 1. Write a script for automating the above steps 1. Generate the ssh keys from ssl/certificates.bash diff --git a/deploy/vagrant/single-machine/README.md b/deploy/vagrant/single-machine/README.md index 5f85d53d9..d9258cde1 100644 --- a/deploy/vagrant/single-machine/README.md +++ b/deploy/vagrant/single-machine/README.md @@ -4,7 +4,8 @@ This directory contains code for running DTaaS application inside one vagrant VM. The setup requires a machine which can spare 16GB RAM, 8 vCPUs and 50GB Hard Disk space to the vagrant box. -A dummy **foo.com** URL has been used for illustration. Please change this to your unique website URL. +A dummy **foo.com** URL has been used for illustration. +Please change this to your unique website URL. Please follow these steps to make this work in your local environment. @@ -12,13 +13,16 @@ Please follow these steps to make this work in your local environment. You would have created an SSH key pair - _vagrant_ and _vagrant.pub_ for the vagrant box. The _vagrant_ is the private SSH key and is needed for the next steps. - Copy _vagrant_ SSH private key into the current directory (`deploy/vagrant/single-machine`). + Copy _vagrant_ SSH private key into the current + directory (`deploy/vagrant/single-machine`). This shall be useful for logging into the vagrant machine created for single-machine deployment. 1. Update the **Vagrantfile**. Fields to update are: 1. Hostname (`node.vm.hostname = "foo.com"`) - 1. MAC address (`:mac => "xxxxxxxx"`). This change is required if you have a DHCP server assigning domain names based on MAC address. Otherwise, you can leave this field unchanged. + 1. MAC address (`:mac => "xxxxxxxx"`). This change is required + if you have a DHCP server assigning domain names based on MAC + address. Otherwise, you can leave this field unchanged. 1. Other adjustments are optional. 1. Execute the following commands from terminal diff --git a/deploy/vagrant/two-machine/README.md b/deploy/vagrant/two-machine/README.md index 10bef807f..ab8bb0cb8 100644 --- a/deploy/vagrant/two-machine/README.md +++ b/deploy/vagrant/two-machine/README.md @@ -1,6 +1,8 @@ # DTaaS on Two Vagrant Machines -This directory contains code for running DTaaS application in two vagrant virtual machines (VMs). In this setup, all the user workspaces shall be run on server1 while all the platform services will be run on server2. +This directory contains code for running DTaaS application in two vagrant +virtual machines (VMs). In this setup, all the user workspaces shall be +run on server1 while all the platform services will be run on server2. The setup requires two server VMs with the following hardware configuration: @@ -8,31 +10,52 @@ The setup requires two server VMs with the following hardware configuration: **server2**: 6GB RAM, 3 x64 vCPUs and 50GB Hard Disk space -Under the default configuration, two user workspaces are provisioned on server1. The _workspaces.sh_ contains installation commands for provisioning user workspaces. If you desire to have more users, you need to modify this shell script. +Under the default configuration, two user workspaces are provisioned on +server1. The _workspaces.sh_ contains installation commands for provisioning +user workspaces. If you desire to have more users, you need to modify this +shell script. -The default installation setup also installs InfluxDB, Grafana and RabbitMQ services on server2. If you would like to install more services, you can create shell scripts to install the same on server2. If you have these scripts ready, you can place them in this directory and invoke them from _services.sh_ script. +The default installation setup also installs InfluxDB, Grafana and RabbitMQ +services on server2. If you would like to install more services, you can create +shell scripts to install the same on server2. If you have these scripts ready, +you can place them in this directory and invoke them from _services.sh_ script. ## Create Base Vagrant Box -If you haven't already done it, create [**dtaas** Vagrant box](../make_boxes/dtaas/README.md). Copy _vagrant_ SSH private key here. This shall be useful for logging into the vagrant machines created for two-machine deployment. You would have created an SSH key pair - _vagrant_ and _vagrant.pub_. The _vagrant_ is the private SSH key and is needed for the next steps. +If you haven't already done it, +create [**dtaas** Vagrant box](../make_boxes/dtaas/README.md). +Copy _vagrant_ SSH private key here. This shall be useful for logging into the +vagrant machines created for two-machine deployment. You would have created an +SSH key pair - _vagrant_ and _vagrant.pub_. The _vagrant_ is the private SSH +key and is needed for the next steps. -Copy _vagrant_ SSH private key into the current directory (`deploy/vagrant/two-machine`). +Copy _vagrant_ SSH private key into the current +directory (`deploy/vagrant/two-machine`). ## Configure Server Settings -**NOTE**: A dummy **foo.com** and **services.foo.com** URLs has been used for illustration. +**NOTE**: A dummy **foo.com** and **services.foo.com** URLs has been used for +illustration. Please change these to your unique website URLs. -The first step is to define the network identity of the two VMs. For that, you need _server name_, _hostname_ and _MAC address_. The hostname is the network URL at which the server can be accessed on the WWW. Please follow these steps to make this work in your local environment. +The first step is to define the network identity of the two VMs. For that, you +need _server name_, _hostname_ and _MAC address_. The hostname is the network +URL at which the server can be accessed on the WWW. Please follow these steps +to make this work in your local environment. -Update the **boxes.json**. There are entries one for each server. The fields to update are: +Update the **boxes.json**. There are entries one for each server. +The fields to update are: 1. `name` - name of server1 (`"name" = "dtaas"`) 1. `hostname` - hostname of server1 (`"name" = "foo.com"`) - 1. MAC address (`:mac => "xxxxxxxx"`). This change is required if you have a DHCP server assigning domain names based on MAC address. Otherwise, you can leave this field unchanged. + 1. MAC address (`:mac => "xxxxxxxx"`). This change is required if you have a + DHCP server assigning domain names based on MAC address. + Otherwise, you can leave this field unchanged. 1. `name` - name of server2 (`"name" = "services"`) 1. `hostname` - hostname of server2 (`"name" = "services.foo.com"`) - 1. MAC address (`:mac => "xxxxxxxx"`). This change is required if you have a DHCP server assigning domain names based on MAC address. Otherwise, you can leave this field unchanged. + 1. MAC address (`:mac => "xxxxxxxx"`). This change is required if you have a + DHCP server assigning domain names based on MAC address. Otherwise, you + can leave this field unchanged. 1. Other adjustments are optional. ## Launch platform default services @@ -58,7 +81,8 @@ wget https://raw.githubusercontent.com/INTO-CPS-Association/DTaaS/feature/distri sudo bash route.sh ``` -After the server is up and running, you can see the following services active within server2. +After the server is up and running, you can see the following services active +within server2. | service | external url | |:---|:---| diff --git a/docs/FAQ.md b/docs/FAQ.md index a5c689b7f..048d72e9b 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -25,7 +25,9 @@ | Data Security | Yes | | Data Privacy | Yes | | Redundancy | None | - | Availability | It is a matter of human resources. If you have human resources to maintain DTaaS round the clock, upwards 95% is easily possible. | + | Availability | It is a matter of human resources. If you have human + resources to maintain DTaaS round the clock, + upwards 95% is easily possible. | ??? Question "Do you provide licensed software like Matlab?" The licensed software are not available on the software platform. diff --git a/docs/LICENSE.md b/docs/LICENSE.md index be60b871f..6b066257c 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -33,15 +33,16 @@ --- End of INTO-CPS Association Public License Header --- -The ICAPL is a public license for the INTO-CPS tool suite with three modes/alternatives +The ICAPL is a public license for the INTO-CPS tool suite with three +modes/alternatives (GPL, ICA-Internal-EPL, ICA-External-EPL) for use and redistribution, in source and/or binary/object-code form: -* GPL. Any party (member or non-member of the INTO-CPS Association) may use and - redistribute INTO-CPS tool suite under GPL version 3. +* GPL. Any party (member or non-member of the INTO-CPS Association) may use + and redistribute INTO-CPS tool suite under GPL version 3. -* Silver Level members of the INTO-CPS Association may also use and redistribute - the INTO-CPS tool suite under ICA-Internal-EPL conditions. +* Silver Level members of the INTO-CPS Association may also use and + redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. * Gold Level members of the INTO-CPS Association may also use and redistribute The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. @@ -50,26 +51,34 @@ Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. -* ICA-Internal-EPL = These INTO-CPA Association Public license conditions together with +* ICA-Internal-EPL = These INTO-CPA Association Public license conditions + together with Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee corresponding to - the size of the organization including all its affiliates, use and redistribution + that use and redistribution by a member of the INTO-CPS Association is only + allowed within the INTO-CPS Association member's own organization + (i.e., its own legal entity), + or for a member of the INTO-CPS Association paying a membership fee + corresponding to + the size of the organization including all its affiliates, + use and redistribution is allowed within/between its affiliates. -* ICA-External-EPL = These INTO-CPA Association Public license conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association, or by a Licensed +* ICA-External-EPL = These INTO-CPA Association Public license conditions + together with + Externally restricted EPL, i.e., EPL version 1.0 with the Additional + Condition + that use and redistribution by a member of the INTO-CPS Association, or + by a Licensed Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization (i.e., its own + to parties external to the INTO-CPS Association member’s own organization + (i.e., its own legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is also - allowed to be distributed. + redistribution to other members the INTO-CPS Association to which source is + also allowed to be distributed. [This has the consequence that an external party who wishes to use -the INTO-CPS Association in source form together with its own proprietary software in all -cases must be a member of the INTO-CPS Association]. +the INTO-CPS Association in source form together with its own proprietary +software in all cases must be a member of the INTO-CPS Association]. In all cases of usage and redistribution by recipients, the following conditions also apply: @@ -90,7 +99,8 @@ c) A recipient must clearly indicate its chosen usage mode of ICAPL, in accompanying documentation and in a text file ICA-USAGE-MODE.txt, provided with the distribution. -d) Contributor(s) making a Contribution to the INTO-CPS Association thereby also makes a +d) Contributor(s) making a Contribution to the INTO-CPS Association thereby + also makes a Transfer of Contribution Copyright. In return, upon the effective date of the transfer, ICA grants the Contributor(s) a Contribution License of the Contribution. ICA has the right to accept or refuse Contributions. @@ -108,13 +118,16 @@ ICA-Internal-EPL and ICA-External-EPL. INTO-CPS Association Public License version 1.0, i.e., the license defined here (the text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of Definition of INTO-CPS Association Public License ---", or later versions thereof. +"--- End of Definition of INTO-CPS Association Public License ---", or later +versions thereof. "ICAPL Header" means: INTO-CPS Association Public License Header version 1.2, i.e., the -text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of INTO-CPS Association Public License Header ---, or later versions thereof. +text between "--- Start of Definition of INTO-CPS Association Public License +---" and +"--- End of INTO-CPS Association Public License Header ---, or later versions +thereof. "Contribution" means: @@ -125,36 +138,48 @@ b) in the case of each subsequent Contributor: i) changes to the INTO-CPS tool suite, and ii) additions to the INTO-CPS tool suite; -where such changes and/or additions to the INTO-CPS tool suite originate from and are +where such changes and/or additions to the INTO-CPS tool suite originate from +and are distributed by that particular Contributor. A Contribution 'originates' from -a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or +a Contributor if it was added to the INTO-CPS tool suite by such Contributor +itself or anyone acting on such Contributor's behalf. For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions, the following conditions also hold: Contributions do not include additions to the distributed Program which: (i) -are separate modules of software distributed in conjunction with the INTO-CPS tool suite +are separate modules of software distributed in conjunction with the INTO-CPS +tool suite under their own license agreement, (ii) are separate modules which are not -derivative works of the INTO-CPS tool suite, and (iii) are separate modules of software -distributed in conjunction with the INTO-CPS tool suite under their own license agreement +derivative works of the INTO-CPS tool suite, and (iii) are separate modules of +software distributed in conjunction with the INTO-CPS tool suite under their +own license agreement where these separate modules are merged with (weaved together with) modules of -The INTO-CPS tool suite to form new modules that are distributed as object code or source -code under their own license agreement, as allowed under the Additional +The INTO-CPS tool suite to form new modules that are distributed as object code +or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or Additional Condition for external distribution according to ICA-External-EPL. "Transfer of Contribution Copyright" means that the Contributors of a Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for -inclusion in the INTO-CPS tool suite. The transfer takes place upon the effective date -when the Contribution is made available on the INTO-CPS Association web site under ICAPL, by +inclusion in the INTO-CPS tool suite. The transfer takes place upon the +effective date +when the Contribution is made available on the INTO-CPS Association web +site under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. -The transfer is free of charge. If the Contributors or the INTO-CPS Association so wish, -an optional Copyright transfer agreement can be signed between the INTO-CPS Association and the Contributors. - -"Contribution License" means a license from the INTO-CPS Association to the Contributors of the Contribution, effective on the date of the Transfer of Contribution Copyright, -where the INTO-CPS Association grants the Contributors a non-exclusive, world-wide, transferable, free of charge, perpetual license, including sublicensing rights, to use, +The transfer is free of charge. If the Contributors or the +INTO-CPS Association so wish, +an optional Copyright transfer agreement can be signed between the INTO-CPS +Association and the Contributors. + +"Contribution License" means a license from the INTO-CPS Association to the +Contributors of the Contribution, effective on the date of the Transfer of +Contribution Copyright, +where the INTO-CPS Association grants the Contributors a non-exclusive, +world-wide, transferable, free of charge, perpetual license, including +sublicensing rights, to use, have used, modify, have modified, reproduce and or have reproduced the contributed material, for business and other purposes, including but not limited to evaluation, development, testing, integration and merging with @@ -166,7 +191,8 @@ the INTO-CPS tool chain. "The Program" means the Contributions distributed in accordance with ICAPL. -"The INTO-CPS tool chain" means the Contributions distributed in accordance with ICAPL. +"The INTO-CPS tool chain" means the Contributions distributed in accordance +with ICAPL. "Recipient" means anyone who receives the INTO-CPS tool chain under ICAPL, including all Contributors. @@ -192,12 +218,14 @@ voting securities, by contract or otherwise. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THE BY RECIPIENT SELECTED SUBSIDIARY -LICENSE CONDITIONS OF ICAPL, THE INTO-CPS ASSOCIATION IS PROVIDED ON AN "AS IS" +LICENSE CONDITIONS OF ICAPL, THE INTO-CPS ASSOCIATION IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the INTO-CPS tool suite and assumes all risks +appropriateness of using and distributing the INTO-CPS tool suite and assumes +all risks associated with its exercise of rights under ICAPL , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability @@ -220,7 +248,8 @@ ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of -redistribution of the INTO-CPS tool suite together with proprietary code it is a dual +redistribution of the INTO-CPS tool suite together with proprietary code it +is a dual license where the INTO-CPS tool suite parts are distributed under ICAPL compatible conditions and the proprietary code is distributed under proprietary license conditions; and @@ -235,7 +264,8 @@ damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from ICAPL are offered by that Contributor alone and not by any other party; and - iv) states from where the source code for the INTO-CPS tool suite is available, and + iv) states from where the source code for the INTO-CPS tool suite is + available, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. @@ -258,9 +288,11 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS distribution. +http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS +distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. +http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS +distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/docs/PUBLISH.md b/docs/PUBLISH.md index bd36dc85d..50de1ffa0 100644 --- a/docs/PUBLISH.md +++ b/docs/PUBLISH.md @@ -1,4 +1,3 @@ - # Project Documentation This file contains instructions for creation, compilation and publication of @@ -8,7 +7,8 @@ The documentation system is based on [Material for Mkdocs](https://squidfunk.github.io/mkdocs-material/). The documentation is generated based on the configuration files: -* **mkdocs.yml**: used for generating online documentation which is hosted on the web +* **mkdocs.yml**: used for generating online +documentation which is hosted on the web * **mkdocs-github.yml**: used for generating documentation in github actions Install Mkdocs using the following command. diff --git a/docs/admin/client/CLIENT.md b/docs/admin/client/CLIENT.md index 79afce31b..7f98fd5de 100644 --- a/docs/admin/client/CLIENT.md +++ b/docs/admin/client/CLIENT.md @@ -2,15 +2,18 @@ To host DTaaS client website on your server, follow these steps: -- Download the **DTaaS-client.zip** from the [releases page](https://github.com/INTO-CPS-Association/DTaaS/releases). +- Download the **DTaaS-client.zip** from the + [releases page](https://github.com/INTO-CPS-Association/DTaaS/releases). - Inside the `DTaaS-client` directory, there is `site` directory. The `site` directory contains all the optimized static files that are ready for deployment. - Setup the oauth application on gitlab instance. See the instructions in [authentication page](auth.md) for completing this task. -- Locate the file `site/env.js` and replace the example values to match your infrastructure. - The constructed links will be "`REACT_APP_URL`/`REACT_APP_URL_BASENAME`/`{username}`/`{Endpoint}`". +- Locate the file `site/env.js` and replace the example values to + match your infrastructure. + The constructed links will be + "`REACT_APP_URL`/`REACT_APP_URL_BASENAME`/`{username}`/`{Endpoint}`". See the definitions below: ```js @@ -75,11 +78,16 @@ To host DTaaS client website on your server, follow these steps: }; ``` -- Copy the entire contents of the build folder to the root directory of your server where you want to deploy the app. You can use FTP, SFTP, or any other file transfer protocol to transfer the files. +- Copy the entire contents of the build folder to the root directory of your + server where you want to deploy the app. You can use FTP, SFTP, or any + other file transfer protocol to transfer the files. -- Make sure your server is configured to serve static files. This can vary depending on the server technology you are using, but typically you will need to configure your server to serve files from a specific directory. +- Make sure your server is configured to serve static files. This can vary + depending on the server technology you are using, but typically you will + need to configure your server to serve files from a specific directory. -- Once the files are on your server, you should be able to access your app by visiting your server's IP address or domain name in a web browser. +- Once the files are on your server, you should be able to access your app + by visiting your server's IP address or domain name in a web browser. :fontawesome-solid-circle-info: @@ -101,7 +109,8 @@ https:foo.com//tools/vscode/ ``` The `username` is the user workspace created using ML Workspace docker container. -Please follow the instructions in [README](https://github.com/ml-tooling/ml-workspace/blob/main/README.md). +Please follow the instructions in +[README](https://github.com/ml-tooling/ml-workspace/blob/main/README.md). You can create as many user workspaces as you want. If you have two users - alice and bob - on your system, then the following the commands in will instantiate the required user workspaces. @@ -121,8 +130,6 @@ docker run -d \ --restart always \ mltooling/ml-workspace:0.13.2 - - docker run -d \ -p 8091:8080 \ --name "ml-workspace-bob" \ @@ -137,4 +144,5 @@ docker run -d \ Given that multiple services are running at different routes, a reverse proxy is needed to map the background services to external routes. -You can use Apache, NGINX, Traefik or any other software to work as reverse proxy. \ No newline at end of file +You can use Apache, NGINX, Traefik or any other software to work +as reverse proxy. \ No newline at end of file diff --git a/docs/admin/client/auth.md b/docs/admin/client/auth.md index 16d2546d8..49a746377 100644 --- a/docs/admin/client/auth.md +++ b/docs/admin/client/auth.md @@ -1,11 +1,25 @@ - # Setting up OAuth Authentication for the 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. The simplest way to make this work is to 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. +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. The simplest way to make this work is to 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. @@ -16,7 +30,8 @@ Callback URL: https://foo.com/Library Logout URL: https://foo.com ``` -If you choose to host your DTaaS application with a basename (say bar), then the URLs change to: +If you choose to host your DTaaS application with a basename (say bar), then the +URLs change to: ```txt DTaaS application URL: https://foo.com/bar @@ -25,11 +40,16 @@ Callback URL: https://foo.com/bar/Library Logout URL: https://foo.com/bar ``` -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. +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. -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 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`. -The mapping between the oauth URLs and the environment variables in `env.js` is shown below. +The mapping between the oauth URLs and the environment variables in `env.js` +is shown below. | URL | Variable name in env.js | |:---|:---| @@ -39,11 +59,17 @@ The mapping between the oauth URLs and the environment variables in `env.js` is | Logout URL | REACT_APP_LOGOUT_REDIRECT_URI | || -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. +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. ## Development Environment -There needs to be a valid callback and logout URLs for development and testing purposes. You can use the same oauth application id for both development, testing and deployment scenarios. Only the callback and logout URLs change. It is possible to register multiple callback URLs in one oauth application. In order to use oauth for development and testing on developer computer (localhost), you need to add the following to oauth callback URL. +There needs to be a valid callback and logout URLs for development and testing +purposes. You can use the same oauth application id for both development, testing +and deployment scenarios. Only the callback and logout URLs change. It is possible +to register multiple callback URLs in one oauth application. In order to use oauth +for development and testing on developer computer (localhost), you need to add the +following to oauth callback URL. ```txt DTaaS application URL: http://localhost:4000 @@ -55,7 +81,9 @@ The port 4000 is the default port for running the client website. ## Multiple DTaaS applications -The DTaaS is a regular web application. It is possible to host multiple DTaaS applications on the same server. The only requirement is to have a distinct URLs. You can have three DTaaS applications running at the following URLs. +The DTaaS is a regular web application. It is possible to host multiple DTaaS +applications on the same server. The only requirement is to have a distinct URLs. +You can have three DTaaS applications running at the following URLs. ```txt https://foo.com/au diff --git a/docs/admin/servers/lib/LIB-MS.md b/docs/admin/servers/lib/LIB-MS.md index fd44c44b3..2a7f68376 100644 --- a/docs/admin/servers/lib/LIB-MS.md +++ b/docs/admin/servers/lib/LIB-MS.md @@ -7,7 +7,9 @@ It has three features: * transfer a file to user. * Source files can either come from local file system or from a gitlab instance. -The library microservice is designed to manage and serve files, functions, and models to users, allowing them to access and interact with various resources. +The library microservice is designed to manage and serve files, +functions, and models to users, allowing them to access and interact +with various resources. This document provides instructions for running a stand alone library microservice. @@ -17,7 +19,9 @@ The users expect the following file system structure for their reusable assets. ![File System Layout](file-system-layout.png) -There is a skeleton file structure in [DTaaS codebase](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/files). You can copy and create file system for your users. +There is a skeleton file structure in +[DTaaS codebase](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/files). +You can copy and create file system for your users. ## Gitlab setup (optional) @@ -38,7 +42,8 @@ to get a sample file system structure for the lib microservice. To set up the lib microservice, follow these steps: -Download the **lib-microservice.zip** from the [releases page](https://github.com/INTO-CPS-Association/DTaaS/releases). +Download the **lib-microservice.zip** from the +[releases page](https://github.com/INTO-CPS-Association/DTaaS/releases). ## Configuration setup @@ -77,8 +82,10 @@ Replace the default values the appropriate values for your setup. **NOTE**: -1. When \__MODE=local_, only _LOCAL_PATH_ is used. Other environment variables are unused. -1. When _MODE=gitlab_, _GITLAB_URL, TOKEN_, and _GITLAB_GROUP_ are used; _LOCAL_PATH_ is unused. +1. When \__MODE=local_, only _LOCAL_PATH_ is used. + Other environment variables are unused. +1. When _MODE=gitlab_, _GITLAB_URL, TOKEN_, + and _GITLAB_GROUP_ are used; _LOCAL_PATH_ is unused. ### Start Microservice diff --git a/docs/admin/trial.md b/docs/admin/trial.md index 8e975ecea..4215432f0 100644 --- a/docs/admin/trial.md +++ b/docs/admin/trial.md @@ -1,4 +1,3 @@ - # Trial Installation A single step install script is helpful in performing a diff --git a/docs/developer/index.md b/docs/developer/index.md index 0b4e2b2f5..64e600bba 100644 --- a/docs/developer/index.md +++ b/docs/developer/index.md @@ -8,64 +8,85 @@ and [Research paper](https://arxiv.org/abs/2305.07244). ## Operating Softwares -Ideally, developers should work on Ubuntu/Linux. Other operating systems are not supported inherently and may require additional steps. +Ideally, developers should work on Ubuntu/Linux. Other operating systems +are not supported inherently and may require additional steps. ## Code Editing -Any popular code editors can be used to work on the project. VS Code, Sublime Text are a few examples. +Any popular code editors can be used to work on the project. VS Code, +Sublime Text are a few examples. ## Development Workflow -To manage collaboration by multiple developers on the software, a simple [Fork, Branch, PR](https://gun.io/news/2017/01/how-to-github-fork-branch-and-pull-request/) development workflow is in place. Each developer should follow these steps: +To manage collaboration by multiple developers on the software, a simple +[Fork, Branch, PR](https://gun.io/news/2017/01/how-to-github-fork-branch-and-pull-request/) +development workflow is in place. Each developer should follow these steps: -1. Have an updated fork of the main repository on their account. This should also be added to codeclimate. +1. Have an updated fork of the main repository on their account. +This should also be added to codeclimate. 1. Clone your personal fork onto your computer. ``` git clone https://github.com//DTaaS.git ``` 1. Work on your issue/feature on your personal computer. - -1. Any updates/additions to the software should first be committed to your personal fork. - +1. Any updates/additions to the software should first be committed to your personal + fork. 1. To check status of your changes: + ``` git status ``` + 2. Add the changes to the commit: + ``` git add --all * ``` + 3. Finally, commit these to the repository on your PC. + ``` git commit -m ``` + 1. Push any commits onto your fork of the repository + ``` git push ``` 1. Any issues that arise codeclimate should also be resolved. - -1. Once changes are made, they should be tested on personal systems or the [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server) . - -1. Once changes are verified, a PR should be made to the appropriate branch of the main repository. +1. Once changes are made, they should be tested on personal systems or the + [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server) . +1. Once changes are verified, a PR should be made to the + appropriate branch of the main repository. 1. Any issues raised in the PR review should be resolved. 1. Finally, the PR will be merged. -Remember that every commit should be meaningful and satisfies the requirements. +Remember that every commit should be meaningful and +satisfies the requirements. ## Code Quality -Quality checks are performed by CodeClimate to ensure the best possible quality of code to add to our project. +Quality checks are performed by CodeClimate to ensure the best +possible quality of code to add to our project. -While any new issues introduced in your code would be shown in the PR page itself, to address any specific issue, you can visit the Issues or Code section of the CodeClimate page. +While any new issues introduced in your code would be shown in the +PR page itself, to address any specific issue, you can visit the +Issues or Code section of the CodeClimate page. -It is highly recommended that any code you add does not introduce new quality issues. If they are introduced, they should be fixed immediately using the appropriate suggestions from CodeClimate, or in worst case, adding a ignore flag (To be used with caution). +It is highly recommended that any code you add does not introduce new +quality issues. If they are introduced, they should be fixed immediately +using the appropriate suggestions from CodeClimate, or in worst case, +adding a ignore flag (To be used with caution). ## Testing -For information about testing and workflow related to that, please see the [testing page](testing/intro.md). +For information about testing and workflow related to that, please see the +[testing page](testing/intro.md). ## Live Demo Server -A demo server is up and running at [https://sandbox.cps.digit.au.dk/](https://sandbox.cps.digit.au.dk/). Developers will need credentials to log in. +A demo server is up and running at +[https://sandbox.cps.digit.au.dk/](https://sandbox.cps.digit.au.dk/). +Developers will need credentials to log in. diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index 797514e0a..4c22a2331 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -3,29 +3,33 @@ ## User Requirements The DTaaS software platform users expect a single platform -to support the complete DT lifecycle. To be more precise, the platform users expect the following features: +to support the complete DT lifecycle. To be more precise, +the platform users expect the following features: 1. **Author** – create different assets of the DT on the -platform itself. This step requires use of some software -frameworks and tools whose sole purpose is to author -DT assets. + platform itself. This step requires use of some software + frameworks and tools whose sole purpose is to author + DT assets. 1. **Consolidate** – consolidate the list of available DT assets -and authoring tools so that user can navigate the library -of reusable assets. This functionality requires support -for discovery of available assets. + and authoring tools so that user can navigate the library + of reusable assets. This functionality requires support + for discovery of available assets. 1. **Configure** – support selection and configuration of -DTs. This functionality also requires support for validation of a given configuration. -1. **Execute** – provision computing infrastructure on demand to support execution of a DT. + DTs. This functionality also requires support for + validation of a given configuration. +1. **Execute** – provision computing infrastructure on demand to + support execution of a DT. 1. **Explore** – interact with a DT and explore the results -stored both inside and outside the platform. Exploration -may lead to analytical insights. + stored both inside and outside the platform. Exploration + may lead to analytical insights. 1. **Save** – save the state of a DT that’s already in the -execution phase. This functionality is required for ondemand saving and re-spawning of DTs. + execution phase. This functionality is required for ondemand + saving and re-spawning of DTs. 1. **What-if analysis** – explore alternative scenarios to (i) -plan for an optimal next step, (ii) recalibrate new DT -assets, (iii) automated creation of new DTs or their -assets; these newly created DT assets may be used to -perform scientifically valid experiments. + plan for an optimal next step, (ii) recalibrate new DT + assets, (iii) automated creation of new DTs or their + assets; these newly created DT assets may be used to + perform scientifically valid experiments. 1. **Share** – share a DT with other users of their organisation. ## System Architecture @@ -34,38 +38,40 @@ perform scientifically valid experiments. ## System Components -The figure shows the system architecture of the the DTaaS software platform. The main domains of this architecture are: +The figure shows the system architecture of the the DTaaS software platform. +The main domains of this architecture are: 1. [The Website](./client.md) - -1. [The Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - This is the single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. +1. [The Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) - + This is the single point of entry for direct access to the platform services. + The gateway is responsible for controlling user access to the microservice components. 1. [The Library Microservice (Reusable Assets)](./lib-ms.md) ### Microservices 1. **The security microservice** implements -role-based access control (RBAC) in the platform. + role-based access control (RBAC) in the platform. 1. **The accounting microservice** is responsible for keeping track of the -platform, DT asset and infrastructure usage. Any licensing, -usage restrictions need to be enforced by the accounting -microservice. Accounting is a pre-requisite to commercialisation of the platform. -Due to significant use of external -infrastructure and resources via the platform, the accounting -microservice needs to interface with accounting systems of -the external services. + platform, DT asset and infrastructure usage. Any licensing, + usage restrictions need to be enforced by the accounting + microservice. Accounting is a pre-requisite to commercialisation of the platform. + Due to significant use of external + infrastructure and resources via the platform, the accounting + microservice needs to interface with accounting systems of + the external services. 1. **The data microservice** is a frontend to all the databases -integrated into the platform. A time-series database and a -graph database are essential. These two databases store timeseries -data from PT, events on PT/DT, commands sent by -DT to PT. The PTs uses these databases even when their -respective DTs are not in the execute phase. + integrated into the platform. A time-series database and a + graph database are essential. These two databases store timeseries + data from PT, events on PT/DT, commands sent by + DT to PT. The PTs uses these databases even when their + respective DTs are not in the execute phase. 1. **The visualisation microservice** is again a frontend to -visualisation software that are natively supported inside the platform. -Any visualisation software running either on external -systems or on client browsers do not need to interact with -this microservice. They can directly use the data provided by -the data microservice. + visualisation software that are natively supported inside the platform. + Any visualisation software running either on external + systems or on client browsers do not need to interact with + this microservice. They can directly use the data provided by + the data microservice. ## C4 Architectural Diagrams @@ -98,5 +104,6 @@ A mapping of containers to system components is also available in the table. | Execution Manager | Execution Manager | ## Disclaimer + Only the web client and library microservice components are functional at present. Everything else is a work-in-progress. \ No newline at end of file From c2cfbc03ff6b6f436bc409ad83af40a4a8ea9310 Mon Sep 17 00:00:00 2001 From: Asti Date: Fri, 29 Sep 2023 03:15:39 +0530 Subject: [PATCH 18/35] DocIssues3 --- docs/developer/system/client.md | 8 +- docs/developer/system/lib-ms.md | 13 +- docs/index.md | 11 +- docs/thanks.md | 8 +- docs/user/digital-twins/create.md | 101 ++++++++++++---- docs/user/digital-twins/lifecycle.md | 26 ++-- docs/user/examples/incubator/README.md | 31 ++--- docs/user/examples/index.md | 2 + docs/user/features.md | 33 ++++-- docs/user/servers/lib/LIB-MS.md | 36 +++--- docs/user/servers/lib/assets.md | 85 ++++++++++--- docs/user/website/index.md | 158 ++++++++++++++++++------- files/README.md | 6 +- servers/config/gateway/README.md | 4 +- servers/execution/runner/LICENSE.md | 142 ++++++++++++++-------- servers/execution/runner/README.md | 26 ++-- 16 files changed, 490 insertions(+), 200 deletions(-) diff --git a/docs/developer/system/client.md b/docs/developer/system/client.md index 019e9149d..f715a3b1d 100644 --- a/docs/developer/system/client.md +++ b/docs/developer/system/client.md @@ -1,8 +1,12 @@ # Website -The [Website](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/client#readme) is how the end-users interact with the software platform. +The +[Website](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/client#readme) +is how the end-users interact with the software platform. -This is the Client side (frontend) for Digital Twin as a Service (DTaaS) software. The software provides a React single page web application for the Digital Twin support platform. +This is the Client side (frontend) for Digital Twin +as a Service (DTaaS) software. The software provides +a React single page web application for the Digital Twin support platform. ## Client Architecture diff --git a/docs/developer/system/lib-ms.md b/docs/developer/system/lib-ms.md index 53175fa7a..0ec61c343 100644 --- a/docs/developer/system/lib-ms.md +++ b/docs/developer/system/lib-ms.md @@ -1,12 +1,17 @@ # Library Microservice -[The Library Microservices](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/lib#readme) - fulfil the core requirements of the system. The microservices are complementary and composable. +[The Library Microservices](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/lib#readme) +fulfil the core requirements of the system. The microservices are complementary and composable. -The service mesh enables discovery of microservices, load balancing and authentication functionalities. There are microservices for catering to author, store, explore, configure, execute and scenario analysis requirements. +The service mesh enables discovery of microservices, +load balancing and authentication functionalities. +There are microservices for catering to author, store, explore, +configure, execute and scenario analysis requirements. ## Lib-MS Architecture ### Class Architecture + ```mermaid classDiagram class FilesResolver { @@ -62,11 +67,11 @@ classDiagram sequenceDiagram actor Client actor Traefik - + box LightGreen Library Microservice participant FR as FilesResolver participant FSF as FilesServiceFactory - participant CS as ConfigService + participant CS as ConfigService participant IFS as IFilesService participant LFS as LocalFilesService participant GFS as GitlabFilesService diff --git a/docs/index.md b/docs/index.md index 46d418824..82ebec37d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,6 +12,13 @@ and [feature walkthrough](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/vid ## License -This software is owned by [The INTO-CPS Association](https://into-cps.org/) and is available under [the INTO-CPS License](LICENSE.md). +This software is owned by +[The INTO-CPS Association](https://into-cps.org/) +and is available under [the INTO-CPS License](LICENSE.md). -The DTaaS software platform uses [Træfik](https://github.com/traefik/traefik), [ML Workspace](https://github.com/ml-tooling/ml-workspace), [Grafana](https://github.com/grafana/grafana), [InfluxDB](https://github.com/influxdata/influxdb) and [RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) open-source components. These software components have their own licenses. +The DTaaS software platform uses [Træfik](https://github.com/traefik/traefik), +[ML Workspace](https://github.com/ml-tooling/ml-workspace), +[Grafana](https://github.com/grafana/grafana), +[InfluxDB](https://github.com/influxdata/influxdb) and +[RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) open-source components. +These software components have their own licenses. diff --git a/docs/thanks.md b/docs/thanks.md index b1705f214..6374a4cd3 100644 --- a/docs/thanks.md +++ b/docs/thanks.md @@ -1,5 +1,4 @@ - -## Contributors +# Contributors [code contributors](https://github.com/INTO-CPS-Association/DTaaS/graphs/contributors) @@ -11,7 +10,10 @@ Henrik Ejersbo, Tanusree Roy, Farshid Naseri ## Documentation -1. Talasila, P., Gomes, C., Mikkelsen, P. H., Arboleda, S. G., Kamburjan, E., & Larsen, P. G. (2023). [Digital Twin as a Service (DTaaS): A Platform for Digital Twin Developers and Users](https://arxiv.org/abs/2305.07244). arXiv preprint arXiv:2305.07244. +1. Talasila, P., Gomes, C., Mikkelsen, P. H., Arboleda, S. G., Kamburjan, + E., & Larsen, P. G. (2023). + [Digital Twin as a Service (DTaaS): A Platform for Digital Twin Developers and Users](https://arxiv.org/abs/2305.07244). + arXiv preprint arXiv:2305.07244. 1. Astitva Sehgal 1. Tanusree Roy 1. Farshid Naseri \ No newline at end of file diff --git a/docs/user/digital-twins/create.md b/docs/user/digital-twins/create.md index 9da34cd18..04ce44fe6 100644 --- a/docs/user/digital-twins/create.md +++ b/docs/user/digital-twins/create.md @@ -1,31 +1,55 @@ - # Create a Digital Twin -The first step in digital twin creation is to use the available assets in your workspace. If you have assets / files in your computer that need to be available in the DTaaS workspace, then please follow the instructions provided in [library assets](../servers/lib/assets.md). +The first step in digital twin creation is to use the available +assets in your workspace. If you have assets / files +in your computer that need to be available in the DTaaS workspace, +then please follow the instructions provided in +[library assets](../servers/lib/assets.md). There are dependencies among the library assets. These dependencies are shown below. ![Relation between reusable assets](asset-relationship.png) -A digital twin can only be created by linking the assets in a meaningful way. This relationship can be expressed using a mathematical equation: +A digital twin can only be created by linking the assets +in a meaningful way. This relationship can be expressed using a mathematical equation: $$ D_t: \{ D{^*},M^{*},(FT)^{+} \}C_{dt} $$ -where D denotes data, M denotes models, F denotes functions, T denotes tools, $C_{dt}$ denotes DT configuration and $D_t$ is a symbolic notation for a digital twin itself. The $\{ D{^*},M^{*},(FT)^{+} \}C_{dt}$ expression denotes composition of DT from D,M,T and F assets. The $*$ indicates zero or one more instances of an asset and $+$ indicates one or more instances of an asset. - -The DT configuration specifies the relevant assets to use, the potential parameters to be set for these assets. If a DT needs to use RabbitMQ, InfluxDB like services supported by the platform, the DT configuration needs to have access credentials for these services. - -This kind of generic DT definition is based on the DT examples seen in the wild. You are at liberty to deviate from this definition of DT. The only requirement is the ability to run the DT from either commandline or desktop. +where D denotes data, M denotes models, F denotes functions, +T denotes tools, $C_{dt}$ denotes DT configuration and $D_t$ +is a symbolic notation for a digital twin itself. The +$\{ D{^*},M^{*},(FT)^{+} \}C_{dt}$ expression denotes +composition of DT from D,M,T and F assets. The $*$ +indicates zero or one more instances of an asset and +$+$ indicates one or more instances of an asset. + +The DT configuration specifies the relevant assets to use, +the potential parameters to be set for these assets. +If a DT needs to use RabbitMQ, InfluxDB like services +supported by the platform, the DT configuration needs +to have access credentials for these services. + +This kind of generic DT definition is based on the DT +examples seen in the wild. You are at liberty to deviate +from this definition of DT. The only requirement is the +ability to run the DT from either commandline or desktop. !!! tip - - If you are stepping into the world of Digital Twins, you might not have distinct digital twin assets. You are likely to have one directory of everything in which you run your digital twin. In such a case we recommend that you upload this monolithic digital twin into **digital twin/your_digital_twin_name** directory. + If you are stepping into the world of Digital Twins, + you might not have distinct digital twin assets. + You are likely to have one directory of everything + in which you run your digital twin. + In such a case we recommend that you upload this monolithic + digital twin into **digital twin/your_digital_twin_name** directory. ## Example -The [Examples](https://github.com/INTO-CPS-Association/DTaaS-examples) repository contains a co-simulation setup for mass spring damper. The complete details on this example are available on [github](https://github.com/INTO-CPS-Association/example-mass_spring_damper). +The [Examples](https://github.com/INTO-CPS-Association/DTaaS-examples) +repository contains a co-simulation setup for mass spring damper. +The complete details on this example are available on +[github](https://github.com/INTO-CPS-Association/example-mass_spring_damper). This example illustrates the potential of using co-simulation for digital twins. @@ -68,35 +92,64 @@ workspace/ The `workspace/data/mass-spring-damper/` contains `input` and `output` data for the mass-spring-damper digital twin. -The two FMU models needed for this digital twin are in `models/` directory. +The two FMU models needed for this digital twin are in `models/` directory. -The co-simulation digital twin needs Maestro co-simulation orchestrator. Since this is a reusable asset for all the co-simulation based DTs, the tool has been placed in `common/tools/` directory. +The co-simulation digital twin needs Maestro co-simulation orchestrator. +Since this is a reusable asset for all the co-simulation based DTs, the +tool has been placed in `common/tools/` directory. -The actual digital twin configuration is specified in `digital twins/mass-spring-damper` directory. The co-simulation configuration is specified in two json files, namely `cosim.json` and `time.json`. A small explanation of digital twin for its users can be placed in `digital twins/mass-spring-damper/README.md`. +The actual digital twin configuration is specified in +`digital twins/mass-spring-damper` directory. The co-simulation +configuration is specified in two json files, namely `cosim.json` +and `time.json`. A small explanation of digital twin for its users +can be placed in `digital twins/mass-spring-damper/README.md`. -The launch program for this digital twin is in `digital twins/mass-spring-damper/lifecycle/execute`. This launch program runs the co-simulation digital twin. The co-simulation runs till completion and then ends. The programs in `digital twins/mass-spring-damper/lifecycle` are responsible for lifecycle management of this digital twin. The [lifecycle page](lifecycle.md) provides more explanation on these programs. +The launch program for this digital twin +is in `digital twins/mass-spring-damper/lifecycle/execute`. +This launch program runs the co-simulation digital twin. +The co-simulation runs till completion and then ends. +The programs in `digital twins/mass-spring-damper/lifecycle` +are responsible for lifecycle management of this digital twin. +The [lifecycle page](lifecycle.md) provides more explanation on these programs. !!! Abstract "Execution of a Digital Twin" - A frequent question arises on the run time characteristics of a digital twin. The natural intuition is to say that a digital twin must operate as long as its physical twin is in operation. + A frequent question arises on the run time characteristics of a digital twin. + The natural intuition is to say that a digital twin must operate as long as + its physical twin is in operation. **If a digital twin runs for a finite time and then ends, can it be called a digital twin?** - **The answer is a resounding YES**. The Industry 4.0 usecases seen among SMEs have digital twins that run for a finite time. These digital twins are often run at the discretion of the user. + **The answer is a resounding YES**. + The Industry 4.0 usecases seen among SMEs have digital twins + that run for a finite time. + These digital twins are often run at the discretion of the user. **You can run this digital twin by ** -1. Go to Workbench tools page of the DTaaS website and open VNC Desktop. This opens a new tab in your browser -2. A page with VNC Desktop and a connect button comes up. Click on Connect. You are now connected to the Linux Desktop of your workspace. -3. Open a Terminal (black rectangular icon in the top left region of your tab) and type the following commands. -4. Download the [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) +1. Go to Workbench tools page of the DTaaS website + and open VNC Desktop. This opens a new tab in your browser +1. A page with VNC Desktop and a connect button comes up. + Click on Connect. + You are now connected to the Linux Desktop of your workspace. +1. Open a Terminal (black rectangular icon in the top left region of your tab) + and type the following commands. +1. Download the [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) + ``` $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip $unzip main.zip ``` -5. Open a file browser and copy the files from this uncompressed folder into your workspace folder (`/workspace`). Make sure that the file placement matches the one given above. -6. Go to the digital twin directory and run + +1. Open a file browser and copy the files from this uncompressed + folder into your workspace folder (`/workspace`). + Make sure that the file placement matches the one given above. +1. Go to the digital twin directory and run + ``` $cd /workspace/digital twins/mass-spring-damper $lifecycle/execute ``` - The last command executes the mass-spring-damper digital twin and stores the co-simulation output in `data/mass-spring-damper/output`. \ No newline at end of file + + The last command executes the mass-spring-damper + digital twin and stores the co-simulation output + in `data/mass-spring-damper/output`. \ No newline at end of file diff --git a/docs/user/digital-twins/lifecycle.md b/docs/user/digital-twins/lifecycle.md index d7238356f..535ecc63c 100644 --- a/docs/user/digital-twins/lifecycle.md +++ b/docs/user/digital-twins/lifecycle.md @@ -1,7 +1,9 @@ +# Digital Twin Lifecycle ![Digital Twin Lifecycle](lifecycle.png) -A DT lifecycle consists of **explore, create, execute, save, analyse, evolve** and **terminate** phases. +A DT lifecycle consists of **explore, create, execute, save, analyse, evolve** +and **terminate** phases. | Phase | Main Activities | |:----|:----| @@ -15,7 +17,8 @@ A DT lifecycle consists of **explore, create, execute, save, analyse, evolve** a A complete digital twin will support all the phases but it is not mandatory. -Even though not mandatory, having a coding structure makes it easy to manage DT lifecycle phases. It is recommended to have the following structure +Even though not mandatory, having a coding structure makes it easy +to manage DT lifecycle phases. It is recommended to have the following structure ```text workspace/ @@ -30,11 +33,14 @@ workspace/ terminate ``` -A dedicated program exists for each phase of DT lifecycle. Each program can be as simple as a script that launches other programs or sends messages to a live digital twin. +A dedicated program exists for each phase of DT lifecycle. +Each program can be as simple as a script that launches other +programs or sends messages to a live digital twin. ## Examples -Here are the programs / scripts to manage three phases in the lifecycle of **mass-spring-damper DT**. +Here are the programs / scripts to manage three phases +in the lifecycle of **mass-spring-damper DT**. ```bash title="lifecycle/execute" #!/bin/bash @@ -46,16 +52,22 @@ java -jar /workspace/common/tools/maestro-2.3.0-jar-with-dependencies.jar \ output-dir>debug.log 2>&1 ``` -The execute phases uses the DT configuration, FMU models and Maestro tool to execute the digital twin. The script also stores the output of cosimulation in `/workspace/data/mass-spring-damper/output`. +The execute phases uses the DT configuration, FMU models and Maestro +tool to execute the digital twin. The script also stores the output of +cosimulation in `/workspace/data/mass-spring-damper/output`. -It is possible for a DT not to support a specific lifecycle phase. This intention can be specified with an empty script and a helpful message if deemed necessary. +It is possible for a DT not to support a specific lifecycle phase. +This intention can be specified with an empty script and a helpful +message if deemed necessary. ```bash title="lifecycle/analyze" #!/bin/bash printf "operation is not supported on this digital twin" ``` -The lifecycle programs can call other programs in the code base. In the case of `lifecycle/terminate` program, it is calling another script to do the necessary job. +The lifecycle programs can call other programs in the code base. +In the case of `lifecycle/terminate` program, it is calling another +script to do the necessary job. ```bash title="lifecycle/terminate" #!/bin/bash diff --git a/docs/user/examples/incubator/README.md b/docs/user/examples/incubator/README.md index 16e50d86b..61361b3dd 100644 --- a/docs/user/examples/incubator/README.md +++ b/docs/user/examples/incubator/README.md @@ -1,23 +1,25 @@ +# Incubator Demo + Installation of required python packages for the Incubator demo ```bash pip install pyhocon pip install influxdb_client -pip install scipy -pip install pandas -pip install pika -pip install oomodelling -pip install control -pip install filterpy -pip install sympy -pip install docker +pip install scipy +pip install pandas +pip install pika +pip install oomodelling +pip install control +pip install filterpy +pip install sympy +pip install docker ``` start rabbitmq server and create a rabbitmq account with, ```txt -name: incubator -password:incubator +name: incubator +password:incubator with access to the virtual host "/" ``` @@ -31,20 +33,21 @@ docker exec rabbitmq-server rabbitmqctl add_user incubator incubator docker exec rabbitmq-server rabbitmqctl set_permissions -p "/" incubator ".*" ".*" ".*" ``` -Access InfluxDB running on another machine. Remember that InfluxDB works only on a distinct sub-domain name like `influx.foo.com`, but not on `foo.com/influx`. +Access InfluxDB running on another machine. +Remember that InfluxDB works only on a distinct sub-domain +name like `influx.foo.com`, but not on `foo.com/influx`. ```bash ssh -i /vagrant/vagrant -fNT -L 40000:localhost:80 vagrant@influx.server2.com ``` - -Update the rabbitmq-server and influxdb configuration in +Update the rabbitmq-server and influxdb configuration in ```bash /home/vagrant/dt/1/incubator/example_digital-twin_incubator/software/startup.conf ``` -select (comment / uncomment) functions in +select (comment / uncomment) functions in ```bash /home/vagrant/dt/1/incubator/example_digital-twin_incubator/software/startup/start_all_services.py diff --git a/docs/user/examples/index.md b/docs/user/examples/index.md index 84f719a6b..799d65a43 100644 --- a/docs/user/examples/index.md +++ b/docs/user/examples/index.md @@ -1 +1,3 @@ +# DTaaS examples + The examples are hosted in [DTaaS examples repository](https://github.com/INTO-CPS-Association/DTaaS-examples) \ No newline at end of file diff --git a/docs/user/features.md b/docs/user/features.md index 096f0152a..f17f81265 100644 --- a/docs/user/features.md +++ b/docs/user/features.md @@ -1,10 +1,19 @@ -Each installation of DTaaS platform comes with the features highlighted in the following picture. +# Features + +Each installation of DTaaS platform comes with +the features highlighted in the following picture. ![Features](current-status.png) -All the users have dedicated workspaces. These workspaces are dockerized versions of Linux Desktops. The user desktops are isolated so the installations and customizations done in one user workspace do not effect the other user workspaces. +All the users have dedicated workspaces. +These workspaces are dockerized versions of Linux Desktops. +The user desktops are isolated so the installations and +customizations done in one user workspace do not effect the +other user workspaces. -Each user workspace comes with some development tools pre-installed. These tools are directly accessible from web browser. The following tools are available at present: +Each user workspace comes with some development tools pre-installed. +These tools are directly accessible from web browser. +The following tools are available at present: | Tool | Advantage | |:---|:---| @@ -13,10 +22,12 @@ Each user workspace comes with some development tools pre-installed. These tools | VS Code in the browser | A popular IDE for software development. Users can develop their digital twin-related assets here. | | ungit | An interactive git client. Users can work with git repositories from web browser | +In addition, users have access to xfce-based remote desktop via VNC client. +The VNC client is available right in the web browser. +The xfce supported desktop software can also be run in their workspace. -In addition, users have access to xfce-based remote desktop via VNC client. The VNC client is available right in the web browser. The xfce supported desktop software can also be run in their workspace. - -The DTaaS software platform has some pre-installed services available. The currently available services are: +The DTaaS software platform has some pre-installed services available. +The currently available services are: | Service | Advantage | |:---|:---| @@ -24,6 +35,12 @@ The DTaaS software platform has some pre-installed services available. The curre | RabbitMQ | communication broker for communication between physical and digital twins | | Grafana | Users can create visualization dashboards for their digital twins. | -In addition, the workspaces are connected to the Internet so all the Digital Twins run within their workspace can interact with both the internal and external services. +In addition, the workspaces are connected to the Internet so +all the Digital Twins run within their workspace can interact +with both the internal and external services. -The users can publish and reuse the digital twin assets available on the platform. In addition, users can run their digital twins and make these live digital twins available as services to their clients. The clients need not be users of the DTaaS software installation. +The users can publish and reuse the digital twin assets +available on the platform. In addition, users can run their +digital twins and make these live digital twins available as +services to their clients. The clients need not be users of +the DTaaS software installation. diff --git a/docs/user/servers/lib/LIB-MS.md b/docs/user/servers/lib/LIB-MS.md index 4ca90eb70..ab08944e3 100644 --- a/docs/user/servers/lib/LIB-MS.md +++ b/docs/user/servers/lib/LIB-MS.md @@ -1,17 +1,26 @@ # Library Microservice -:fontawesome-solid-circle-info: **The library microservice provides an API interface to reusable assets library. This is only for expert users who need to integrate the DTaaS with their own IT systems. Regular users can safely skip this page.** +:fontawesome-solid-circle-info: **The library microservice provides** +**an API interface to reusable assets library.** +**This is only for expert users who need to integrate the DTaaS** +**with their own IT systems. Regular users can safely skip this page.** - -The lib microservice is responsible for handling and serving the contents of library assets of the DTaaS platform. It provides API endpoints for clients to query, and fetch these assets. +The lib microservice is responsible for handling and serving +the contents of library assets of the DTaaS platform. +It provides API endpoints for clients to query, and fetch these assets. This document provides instructions for using the library microservice. -Please see [assets](assets.md) for a suggested storage conventions of your library assets. +Please see [assets](assets.md) for a suggested storage +conventions of your library assets. -Once the assets are stored in the library, you can access the server's endpoint by typing in the following URL: `http://foo.com/lib`. +Once the assets are stored in the library, +you can access the server's endpoint by typing +in the following URL: `http://foo.com/lib`. -The URL opens a graphql playground. You can check the query schema and try sample queries here. You can also send graphql queries as HTTP POST requests and get responses. +The URL opens a graphql playground. +You can check the query schema and try sample queries here. +You can also send graphql queries as HTTP POST requests and get responses. ## API Queries @@ -20,7 +29,8 @@ The library microservice services two API calls: * Provide a list of contents for a directory * Fetch a file from the available files -The API calls are accepted over GraphQL and HTTP API end points. The format of the accepted queries are: +The API calls are accepted over GraphQL and HTTP API end points. +The format of the accepted queries are: ### Provide list of contents for a directory @@ -28,10 +38,9 @@ To retrieve a list of files in a directory, use the following GraphQL query. Replace `path` with the desired directory path. -send requests to: https://foo.com/lib +send requests to: https://foo.com/lib === "GraphQL Query" - ``` graphql-query query { listDirectory(path: "user1") { @@ -60,7 +69,6 @@ send requests to: https://foo.com/lib ``` === "GraphQL Response" - ``` graphql-response { "data": { @@ -131,7 +139,6 @@ send requests to: https://foo.com/lib ``` === "HTTP Response" - ``` http-response HTTP/1.1 200 OK Access-Control-Allow-Origin: * @@ -171,7 +178,6 @@ with content of `hello world`. ``` === "GraphQL Response" - ```graphql-response { "data": { @@ -193,7 +199,6 @@ with content of `hello world`. ``` === "HTTP Request" - ```http-request POST /lib HTTP/1.1 Host: foo.com @@ -206,7 +211,6 @@ with content of `hello world`. ``` === "HTTP Response" - ```http-response HTTP/1.1 200 OK Access-Control-Allow-Origin: * @@ -220,4 +224,6 @@ with content of `hello world`. ``` -The _path_ refers to the file path to look at: For example, _user1_ looks at files of **user1**; _user1/functions_ looks at contents of _functions/_ directory. +The _path_ refers to the file path to look at: +For example, _user1_ looks at files of +**user1**; _user1/functions_ looks at contents of _functions/_ directory. diff --git a/docs/user/servers/lib/assets.md b/docs/user/servers/lib/assets.md index db25364af..461db45f2 100644 --- a/docs/user/servers/lib/assets.md +++ b/docs/user/servers/lib/assets.md @@ -1,6 +1,8 @@ # Reusable Assets -The reusability of digital twin assets makes it easy for users to work with the digital twins. The reusability of assets is a fundamental feature of the platform. +The reusability of digital twin assets makes it easy for +users to work with the digital twins. The reusability of +assets is a fundamental feature of the platform. ## Kinds of Reusable Assets @@ -11,31 +13,66 @@ The DTaaS software categorizes all the reusable library assets into five categor ### Functions -The functions responsible for pre- and post-processing of: data inputs, data outputs, control outputs. The data science libraries and functions can be used to create useful function assets for the platform. -In some cases, Digital Twin models require calibration prior to their use; functions written by domain experts along with right data inputs can make model calibration an achievable goal. Another use of functions is to process the sensor and actuator data of both Physical Twins and Digital Twins. +The functions responsible for pre- and post-processing of: +data inputs, data outputs, control outputs. The data science +libraries and functions can be used to create useful function +assets for the platform. +In some cases, Digital Twin models require calibration prior +to their use; functions written by domain experts along with +right data inputs can make model calibration an achievable goal. +Another use of functions is to process the sensor and actuator +data of both Physical Twins and Digital Twins. ### Data -The data sources and sinks available to a digital twins. Typical examples of data sources are sensor measurements from Physical Twins, and test data provided by manufacturers for calibration of models. Typical examples of data sinks are visualization software, external users and data storage services. There exist special outputs such as events, and commands which are akin to control outputs from a Digital Twin. These control outputs usually go to Physical Twins, but they can also go to another Digital Twin. +The data sources and sinks available to a digital twins. +Typical examples of data sources are sensor measurements from +Physical Twins, and test data provided by manufacturers for +calibration of models. Typical examples of data sinks are visualization +software, external users and data storage services. There exist special +outputs such as events, and commands which are akin to control outputs +from a Digital Twin. These control outputs usually go to Physical Twins, +but they can also go to another Digital Twin. ### Models -The model assets are used to describe different aspects of Physical Twins and their environment, at different levels of abstraction. Therefore, it is possible to have multiple models for the same Physical Twin. For example, a flexible robot used in a car production plant may have structural model(s) which will be useful in tracking the wear and tear of parts. The same robot can have a behavioural model(s) describing the safety guarantees provided by the robot manufacturer. The same robot can also have a functional model(s) describing the part manufacturing capabilities of the robot. +The model assets are used to describe different aspects of Physical Twins +and their environment, at different levels of abstraction. Therefore, it +is possible to have multiple models for the same Physical Twin. +For example, a flexible robot used in a car production plant may have +structural model(s) which will be useful in tracking the wear and tear +of parts. The same robot can have a behavioural model(s) describing the +safety guarantees provided by the robot manufacturer. The same robot +can also have a functional model(s) describing the part manufacturing +capabilities of the robot. ### Tools -The software tool assets are software used to create, evaluate and analyze models. These tools are executed on top of a computing platforms, i.e., an operating system, or virtual machines like Java virtual machine, or inside docker containers. The tools tend to be platform specific, making them less reusable than models. -A tool can be packaged to run on a local or distributed virtual machine environments thus allowing selection of most suitable execution environment for a Digital Twin. -Most models require tools to evaluate them in the context of data inputs. -There exist cases where executable packages are run as binaries in a computing environment. Each of these packages are a pre-packaged combination of models and tools put together to create a ready to use Digital Twins. +The software tool assets are software used to create, evaluate and +analyze models. These tools are executed on top of a computing +platforms, i.e., an operating system, or virtual machines like +Java virtual machine, or inside docker containers. +The tools tend to be platform specific, making them less reusable than models. +A tool can be packaged to run on a local or distributed virtual +machine environments thus allowing selection of most suitable +execution environment for a Digital Twin. +Most models require tools to evaluate them in the context of data inputs. +There exist cases where executable packages are run as binaries +in a computing environment. Each of these packages are a pre-packaged +combination of models and tools put together to create a ready +to use Digital Twins. ### Digital Twins -These are ready to use digital twins created by one or more users. These digital twins can be reconfigured later for specific use cases. +These are ready to use digital twins created by one or more users. +These digital twins can be reconfigured later for specific use cases. ## File System Structure -Each user has their assets put into five different directories named above. In addition, there will also be common library assets that all users have access to. A simplified example of the structure is as follows: +Each user has their assets put into five different +directories named above. In addition, there will also be +common library assets that all users have access to. +A simplified example of the structure is as follows: ```text workspace/ @@ -89,10 +126,16 @@ workspace/ ``` !!! tip + The DTaaS is agnostic to the format of your assets. + The only requirement is that they are files which can + be uploaded on the Library page. Any directories can be + compressed as one file and uploaded. You can decompress + the file into a directory from a Terminal or xfce Desktop + available on the Workbench page. - The DTaaS is agnostic to the format of your assets. The only requirement is that they are files which can be uploaded on the Library page. Any directories can be compressed as one file and uploaded. You can decompress the file into a directory from a Terminal or xfce Desktop available on the Workbench page. - -A recommended file system structure for storing assets is also available in [DTaaS examples](https://github.com/INTO-CPS-Association/DTaaS-examples). +A recommended file system structure for storing assets is also +available in +[DTaaS examples](https://github.com/INTO-CPS-Association/DTaaS-examples). ## Create Assets @@ -100,7 +143,11 @@ The DTaaS software allows users to create new library assets on the platform. ![Create Library Assets](author.png) -Users can install asset authoring tools in their own workspace. These authoring tools can then be used to create and publish new assets. User workspaces are private and are not shared with other users. Thus any licensed software tools installed in their workspace is only available to them. +Users can install asset authoring tools in their own workspace. +These authoring tools can then be used to create and publish new assets. +User workspaces are private and are not shared with other users. +Thus any licensed software tools installed in their workspace is +only available to them. ## Upload Assets @@ -108,4 +155,10 @@ Users can upload assets into their workspace using Library page of the website. ![Library Page](../../website/library.png) -You can go into a directory and click on the **upload** button to upload a file or a directory into your workspace. This asset is then available in all the workbench tools you can use. You can also create new assets on the page by clicking on **new** drop down menu. This is a simple web interface which allows you to create text-based files. You need to upload other files using **upload** button. +You can go into a directory and click on the **upload** +button to upload a file or a directory into your workspace. +This asset is then available in all the workbench tools you can use. +You can also create new assets on the page by +clicking on **new** drop down menu. This is a simple web interface +which allows you to create text-based files. +You need to upload other files using **upload** button. diff --git a/docs/user/website/index.md b/docs/user/website/index.md index 910b3d603..1975edcde 100644 --- a/docs/user/website/index.md +++ b/docs/user/website/index.md @@ -1,97 +1,174 @@ +# Website Preview + This page contains a screenshot driven preview of the website. ### Login to enter the DTaaS software platform ![Login](login.png) -The screen presents with HTTP authentication form. You can enter the user credentials. You will be using HTTPS secure communication so the username and password are secure. +The screen presents with HTTP authentication form. +You can enter the user credentials. +You will be using HTTPS secure communication so the +username and password are secure. + ### Enter username again ![Username](username.png) -You are now logged into the server. You can enter the same username again to log into your workspace. +You are now logged into the server. +You can enter the same username again to log into your workspace. ### Overview of menu items -The menu is hidden by default. Only the icons of menu items are visible. You can click on the :octicons-three-bars-16: icon in the top-left corner of the page to see the menu. +The menu is hidden by default. +Only the icons of menu items are visible. +You can click on the :octicons-three-bars-16: +icon in the top-left corner of the page to see the menu. ![Menu](menu.png) There are three menu items: -**Library**: for management of reusable library assets. You can upload, download, create and modify new files on this page. +**Library**: for management of reusable library assets. +You can upload, download, create and modify new files on this page. -**Digital Twins**: for management of digital twins. You are presented with Jupyter Lab page from which you can run the digital twins. - -**Workbench**: Not all digital twins can be managed within Jupyter Lab. You have more tools at your disposal on this page. +**Digital Twins**: for management of digital twins. +You are presented with Jupyter Lab page from which you can +run the digital twins. +**Workbench**: Not all digital twins can be managed +within Jupyter Lab. You have more tools at your disposal +on this page. ### Library tabs and their help text ![Menu](library.png) -You can see the file manager and five tabs above the library manager. Each tab provides help text to guide users in the use of different directories in their workspace. +You can see the file manager and five tabs above the library manager. +Each tab provides help text to guide users in the use of different +directories in their workspace. ??? Functions tip - The functions responsible for pre- and post-processing of: data inputs, data outputs, control outputs. The data science libraries and functions can be used to create useful function assets for the platform. - - In some cases, Digital Twin models require calibration prior to their use; functions written by domain experts along with right data inputs can make model calibration an achievable goal. Another use of functions is to process the sensor and actuator data of both Physical Twins and Digital Twins. + The functions responsible for pre- and post-processing of: + data inputs, data outputs, control outputs. + The data science libraries and functions can + be used to create useful function + assets for the platform. + In some cases, Digital Twin models require calibration + prior to their use; functions written by domain experts + along with right data inputs can make model calibration + an achievable goal. Another use of functions is to process + the sensor and actuator data of both Physical Twins and Digital Twins. ``` ??? Data tip - The data sources and sinks available to a digital twins. Typical examples of data sources are sensor measurements from Physical Twins, and test data provided by manufacturers for calibration of models. Typical examples of data sinks are visualization software, external users and data storage services. There exist special outputs such as events, and commands which are akin to control outputs from a Digital Twin. These control outputs usually go to Physical Twins, but they can also go to another Digital Twin. + The data sources and sinks available to a digital twins. + Typical examples of data sources are sensor measurements + from Physical Twins, and test data provided by + manufacturers for calibration of models. Typical + examples of data sinks are visualization software, + external users and data storage services. There exist + special outputs such as events, and commands which are + akin to control outputs from a Digital Twin. These control + outputs usually go to Physical Twins, but they can also go + to another Digital Twin. ??? Models tip - The model assets are used to describe different aspects of Physical Twins and their environment, at different levels of abstraction. Therefore, it is possible to have multiple models for the same Physical Twin. For example, a flexible robot used in a car production plant may have structural model(s) which will be useful in tracking the wear and tear of parts. The same robot can have a behavioural model(s) describing the safety guarantees provided by the robot manufacturer. The same robot can also have a functional model(s) describing the part manufacturing capabilities of the robot. + The model assets are used to describe different aspects of + Physical Twins and their environment, + at different levels of abstraction. + Therefore, it is possible to have multiple models + for the same Physical Twin. + For example, a flexible robot used in a car production + plant may have + structural model(s) which will be useful in tracking + the wear and tear of parts. + The same robot can have a behavioural model(s) describing + the safety guarantees provided by the robot manufacturer. + The same robot can also have a functional model(s) + describing the part manufacturing capabilities of the robot. ??? Tools tip - The software tool assets are software used to create, evaluate and analyze models. These tools are executed on top of a computing platforms, i.e., an operating system, or virtual machines like Java virtual machine, or inside docker containers. The tools tend to be platform specific, making them less reusable than models. - - A tool can be packaged to run on a local or distributed virtual machine environments thus allowing selection of most suitable execution environment for a Digital Twin. - - Most models require tools to evaluate them in the context of data inputs. - There exist cases where executable packages are run as binaries in a computing environment. Each of these packages are a pre-packaged combination of models and tools put together to create a ready to use Digital Twins. + The software tool assets are software used to create, evaluate and analyze models. + These tools are executed on top of a computing platforms, i.e., + an operating system, or virtual machines like Java virtual machine, + or inside docker containers. The tools tend to be platform specific, + making them less reusable than models. + A tool can be packaged to run on a local or + distributed virtual machine environments thus + allowing selection of most suitable execution + environment for a Digital Twin. + Most models require tools to evaluate them in the context of data inputs. + There exist cases where executable packages are run as binaries + in a computing environment. Each of these packages are a pre-packaged + combination of models and tools put together to create a ready to use + Digital Twins. ??? Digital Twins tip - These are ready to use digital twins created by one or more users. These digital twins can be reconfigured later for specific use cases. - -In addition to the five directories, there is also **common** directory in which five sub-directories exist. These sub-directories are: data, functions, models, tools and digital twins. + These are ready to use digital twins created by one or more users. + These digital twins can be reconfigured later for specific use cases. +In addition to the five directories, +there is also **common** directory in which five sub-directories +exist. These sub-directories are: data, functions, models, tools +and digital twins. ??? Common Assets tip The common directory again has four sub-directories: - * data * functions * models * tools * digital twins - The assets common to all users are placed in **common**. +The items used by more than one user are placed in **common**. +The items in the **common** directory are available to all users. +Further explanation of directory structure and placement of reusable +assets within the the directory structure is in the +[assets page](../servers/lib/assets.md#file-system-structure) -The items used by more than one user are placed in **common**. The items in the **common** directory are available to all users. Further explanation of directory structure and placement of reusable assets within the the directory structure is in the [assets page](../servers/lib/assets.md#file-system-structure) - -:fontawesome-solid-circle-info: The file manager is based on Jupyter Notebook and all the tasks you can perform in the Jupyter Notebook can be undertaken here. +:fontawesome-solid-circle-info: The file manager is based on Jupyter +Notebook and all the tasks you can perform in the Jupyter Notebook +can be undertaken here. ### Digital Twins page ![Menu](digital_twins.png) -The digital twins page has three tabs and the central pane opens Jupyter Lab. There are three tabs with helpful instructions on the suggested tasks you can undertake in the **Create - Execute - Analyze** life cycle phases of digital twin. You can see more explanation on the [life cycle phases of digital twin](../digital-twins/lifecycle.md). +The digital twins page has three tabs and the central pane opens +Jupyter Lab. There are three tabs with helpful instructions on the +suggested tasks you can undertake in the **Create - Execute - Analyze** +life cycle phases of digital twin. You can see more explanation on the +[life cycle phases of digital twin](../digital-twins/lifecycle.md). ??? Create tip - - Create digital twins from tools provided within user workspaces. Each digital twin will have one directory. It is suggested that user provide one bash shell script to run their digital twin. Users can create the required scripts and other files from tools provided in Workbench page. + Create digital twins from tools provided within user workspaces. + Each digital twin will have one directory. It is suggested that + user provide one bash shell script to run their digital twin. + Users can create the required scripts and other files from + tools provided in Workbench page. ??? Execute tip - - Digital twins are executed from within user workspaces. The given bash script gets executed from digital twin directory. Terminal-based digital twins can be executed from VSCode and graphical digital twins can be executed from VNC GUI. The results of execution can be placed in the data directory. + Digital twins are executed from within user workspaces. + The given bash script gets executed from digital twin directory. + Terminal-based digital twins can be executed from VSCode and + graphical digital twins can be executed from VNC GUI. + The results of execution can be placed in the data directory. ??? Analyze tip - - The analysis of digital twins requires running of digital twin script from user workspace. The execution results placed within data directory are processed by analysis scripts and results are placed back in the data directory. These scripts can either be executed from VSCode and graphical results or can be executed from VNC GUI. - -:fontawesome-solid-circle-info: The reusable assets (files) seen in the file manager are available in the Jupyter Lab. In addition, there is a git plugin installed in the Jupyter Lab using which you can link your files with the external git repositories. + The analysis of digital twins requires running + of digital twin script from user workspace. + The execution results placed within data directory + are processed by analysis scripts and results are placed + back in the data directory. These scripts can either be + executed from VSCode and graphical results or can be + executed from VNC GUI. + +:fontawesome-solid-circle-info: The reusable assets (files) +seen in the file manager are available in the Jupyter Lab. +In addition, there is a git plugin installed in the Jupyter +Lab using which you can link your files with the external git +repositories. ### Workbench @@ -99,14 +176,15 @@ The **workbench** page provides links to four integrated tools. ![Workbench](workbench.png) -The hyperlinks open in new browser tab. The screenshots of pages opened in new browser are: +The hyperlinks open in new browser tab. +The screenshots of pages opened in new browser are: ![Workbench Tools](workbench_tools.png) !!! Bug - - The Terminal hyperlink does not always work reliably. If you want terminal. Please use the tools dropdown in the Jupyter Notebook. - + The Terminal hyperlink does not always work reliably. + If you want terminal. Please use the tools dropdown + in the Jupyter Notebook. ### Finally logout diff --git a/files/README.md b/files/README.md index 26cb32e33..bc431d92a 100644 --- a/files/README.md +++ b/files/README.md @@ -1 +1,5 @@ -This directory contains directory structure template for user files of the platform. These files are served by `servers/lib` microservice. +# Directory Structure Template + +This directory contains directory structure template for +user files of the platform. +These files are served by `servers/lib` microservice. diff --git a/servers/config/gateway/README.md b/servers/config/gateway/README.md index 8d26efa1b..dfb3159a7 100644 --- a/servers/config/gateway/README.md +++ b/servers/config/gateway/README.md @@ -49,7 +49,9 @@ You can update the configuration in this file to reflect your local setup. See [Traefik help docs](https://doc.traefik.io/traefik/providers/file/) for more information. -The routes / URLs need to be updated for your local setup. The current version of software only works for non-localhost setting, i.e. URL other than the localhost. Here is an example, +The routes / URLs need to be updated for your local setup. +The current version of software only works for non-localhost +setting, i.e. URL other than the localhost. Here is an example, | Route / URL | Background Service | Service URL | | :------------ | :----------------- | :------------- | diff --git a/servers/execution/runner/LICENSE.md b/servers/execution/runner/LICENSE.md index be60b871f..e78aa3b16 100644 --- a/servers/execution/runner/LICENSE.md +++ b/servers/execution/runner/LICENSE.md @@ -1,6 +1,7 @@ --- Start of Definition of INTO-CPS Association Public License --- /* + * This file is part of the INTO-CPS Association. * * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), @@ -12,14 +13,16 @@ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR + * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or + * The INTO-CPS tool suite software and the INTO-CPS Association + * Public License (ICAPL) are obtained from the INTO-CPS Association, either + * from the above address, from the URLs: + * http://www.into-cps.org or * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. + * GNU version 3 is obtained from: + * http://www.gnu.org/copyleft/gpl.html. * * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS @@ -29,6 +32,7 @@ * * See the full ICAPL conditions for more details. * + */ --- End of INTO-CPS Association Public License Header --- @@ -37,38 +41,47 @@ The ICAPL is a public license for the INTO-CPS tool suite with three modes/alter (GPL, ICA-Internal-EPL, ICA-External-EPL) for use and redistribution, in source and/or binary/object-code form: -* GPL. Any party (member or non-member of the INTO-CPS Association) may use and +* GPL. Any party (member or non-member of the INTO-CPS Association) may use and redistribute INTO-CPS tool suite under GPL version 3. -* Silver Level members of the INTO-CPS Association may also use and redistribute +* Silver Level members of the INTO-CPS Association + may also use and redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. -* Gold Level members of the INTO-CPS Association may also use and redistribute +* Gold Level members of the INTO-CPS Association may also use and redistribute The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. -* ICA-Internal-EPL = These INTO-CPA Association Public license conditions together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition +* ICA-Internal-EPL = These INTO-CPA Association Public + license conditions together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee corresponding to + within the INTO-CPS Association member's own organization + (i.e., its own legal entity), + or for a member of the INTO-CPS Association paying a + membership fee corresponding to the size of the organization including all its affiliates, use and redistribution is allowed within/between its affiliates. -* ICA-External-EPL = These INTO-CPA Association Public license conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition +* ICA-External-EPL = These INTO-CPA Association Public license + conditions together with + Externally restricted EPL, i.e., EPL version 1.0 with the + Additional Condition that use and redistribution by a member of the INTO-CPS Association, or by a Licensed Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization (i.e., its own + to parties external to the INTO-CPS Association member’s + own organization (i.e., its own legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is also + redistribution to other members the + INTO-CPS Association to which source is also allowed to be distributed. [This has the consequence that an external party who wishes to use -the INTO-CPS Association in source form together with its own proprietary software in all +the INTO-CPS Association in source form together +with its own proprietary software in all cases must be a member of the INTO-CPS Association]. In all cases of usage and redistribution by recipients, the following @@ -90,8 +103,10 @@ c) A recipient must clearly indicate its chosen usage mode of ICAPL, in accompanying documentation and in a text file ICA-USAGE-MODE.txt, provided with the distribution. -d) Contributor(s) making a Contribution to the INTO-CPS Association thereby also makes a - Transfer of Contribution Copyright. In return, upon the effective date of +d) Contributor(s) making a Contribution to the + INTO-CPS Association thereby also makes a + Transfer of Contribution Copyright. In return, + upon the effective date of the transfer, ICA grants the Contributor(s) a Contribution License of the Contribution. ICA has the right to accept or refuse Contributions. @@ -108,13 +123,16 @@ ICA-Internal-EPL and ICA-External-EPL. INTO-CPS Association Public License version 1.0, i.e., the license defined here (the text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of Definition of INTO-CPS Association Public License ---", or later versions thereof. +"--- End of Definition of INTO-CPS Association Public License ---", +or later versions thereof. "ICAPL Header" means: INTO-CPS Association Public License Header version 1.2, i.e., the -text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of INTO-CPS Association Public License Header ---, or later versions thereof. +text between "--- Start of Definition of +INTO-CPS Association Public License ---" and +"--- End of INTO-CPS Association Public License Header ---, +or later versions thereof. "Contribution" means: @@ -125,20 +143,24 @@ b) in the case of each subsequent Contributor: i) changes to the INTO-CPS tool suite, and ii) additions to the INTO-CPS tool suite; -where such changes and/or additions to the INTO-CPS tool suite originate from and are +where such changes and/or additions to the +INTO-CPS tool suite originate from and are distributed by that particular Contributor. A Contribution 'originates' from -a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or +a Contributor if it was added to the INTO-CPS tool +suite by such Contributor itself or anyone acting on such Contributor's behalf. For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions, the following conditions also hold: Contributions do not include additions to the distributed Program which: (i) -are separate modules of software distributed in conjunction with the INTO-CPS tool suite +are separate modules of software distributed in +conjunction with the INTO-CPS tool suite under their own license agreement, (ii) are separate modules which are not derivative works of the INTO-CPS tool suite, and (iii) are separate modules of software distributed in conjunction with the INTO-CPS tool suite under their own license agreement -where these separate modules are merged with (weaved together with) modules of +where these separate modules are merged with +(weaved together with) modules of The INTO-CPS tool suite to form new modules that are distributed as object code or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or @@ -147,14 +169,22 @@ Additional Condition for external distribution according to ICA-External-EPL. "Transfer of Contribution Copyright" means that the Contributors of a Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for -inclusion in the INTO-CPS tool suite. The transfer takes place upon the effective date -when the Contribution is made available on the INTO-CPS Association web site under ICAPL, by +inclusion in the INTO-CPS tool suite. +The transfer takes place upon the effective date +when the Contribution is made available on the INTO-CPS +Association web site under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. -The transfer is free of charge. If the Contributors or the INTO-CPS Association so wish, -an optional Copyright transfer agreement can be signed between the INTO-CPS Association and the Contributors. - -"Contribution License" means a license from the INTO-CPS Association to the Contributors of the Contribution, effective on the date of the Transfer of Contribution Copyright, -where the INTO-CPS Association grants the Contributors a non-exclusive, world-wide, transferable, free of charge, perpetual license, including sublicensing rights, to use, +The transfer is free of charge. If the Contributors or +the INTO-CPS Association so wish, +an optional Copyright transfer agreement can be signed +between the INTO-CPS Association and the Contributors. + +"Contribution License" means a license from the +INTO-CPS Association to the Contributors of the Contribution, +effective on the date of the Transfer of Contribution Copyright, +where the INTO-CPS Association grants the Contributors +a non-exclusive, world-wide, transferable, free of charge, +perpetual license, including sublicensing rights, to use, have used, modify, have modified, reproduce and or have reproduced the contributed material, for business and other purposes, including but not limited to evaluation, development, testing, integration and merging with @@ -166,17 +196,18 @@ the INTO-CPS tool chain. "The Program" means the Contributions distributed in accordance with ICAPL. -"The INTO-CPS tool chain" means the Contributions distributed in accordance with ICAPL. +"The INTO-CPS tool chain" means the Contributions distributed +in accordance with ICAPL. "Recipient" means anyone who receives the INTO-CPS tool chain under ICAPL, including all Contributors. "Licensed Third Party Distributor" means a reseller/distributor having signed -a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS -Association Bylaws, with a Gold Level organizational member which is not an -Affiliate of the reseller/distributor, for distributing a product containing -part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall -only be allowed further redistribution to other resellers if the Gold Level +a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS +Association Bylaws, with a Gold Level organizational member which is not an +Affiliate of the reseller/distributor, for distributing a product containing +part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall +only be allowed further redistribution to other resellers if the Gold Level member is granting such a right to it in the redistribution/resale agreement between the Gold Level member and the Licensed Third Party Distributor. @@ -197,7 +228,8 @@ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the INTO-CPS tool suite and assumes all risks +appropriateness of using and distributing the +INTO-CPS tool suite and assumes all risks associated with its exercise of rights under ICAPL , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability @@ -211,18 +243,22 @@ SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL -SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL +SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. A Contributor licensing the INTO-CPS tool suite under ICA-Internal-EPL or -ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite +ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: -a) it complies with the terms and conditions of ICAPL; or for the case of -redistribution of the INTO-CPS tool suite together with proprietary code it is a dual -license where the INTO-CPS tool suite parts are distributed under ICAPL compatible -conditions and the proprietary code is distributed under proprietary license +a) it complies with the terms and conditions of ICAPL; +or for the case of +redistribution of the INTO-CPS tool suite together +with proprietary code it is a dual +license where the INTO-CPS tool suite parts are distributed +under ICAPL compatible +conditions and the proprietary code is distributed under +proprietary license conditions; and b) its license agreement: @@ -235,8 +271,10 @@ damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from ICAPL are offered by that Contributor alone and not by any other party; and - iv) states from where the source code for the INTO-CPS tool suite is available, and -informs licensees how to obtain it in a reasonable manner on or through a + iv) states from where the source code for the +INTO-CPS tool suite is available, and +informs licensees how to obtain it in a +reasonable manner on or through a medium customarily used for software exchange. When the INTO-CPS tool suite is made available in source code form: @@ -258,9 +296,11 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS distribution. +http://www.eclipse.org/legal/epl-v10.html. +It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. +http://www.gnu.org/copyleft/gpl.html. +It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/servers/execution/runner/README.md b/servers/execution/runner/README.md index 723b2119f..b907b06d5 100644 --- a/servers/execution/runner/README.md +++ b/servers/execution/runner/README.md @@ -1,15 +1,18 @@ # :runner: Digital Twin Runner -A utility service to manage the [lifecycle of one digital twin](../../../docs/user/digital-twins/lifecycle.md). -The lifecycle of a digital twin is made of multiple phases. This digital twin runner utility -helps with the managing the execution of lifecycle phases. This utility can be +A utility service to manage the +[lifecycle of one digital twin](../../../docs/user/digital-twins/lifecycle.md). +The lifecycle of a digital twin is made of multiple phases. +This digital twin runner utility +helps with the managing the execution of lifecycle phases. +This utility can be launched in two scenarios: 1. User launches this from commandline and let the utility -manage the lifecycle of one digital twin. -2. Execution infrastructure of Digital Twin as a Service (DTaaS) -launches this utility and instructs it to manage the lifecycle of -one digital twin. + manage the lifecycle of one digital twin. +1. Execution infrastructure of Digital Twin as a Service (DTaaS) + launches this utility and instructs it to manage the lifecycle of + one digital twin. The digital twin runner utility runs as a service and will provide REST API interface to execute lifecycle scripts of a digital twin. @@ -35,7 +38,7 @@ yarn clean # deletes directories "build", "coverage", and "dist" This package need to be published to an npm registry. There after, the package can be installed as a system command. Since publishing to npmjs.org is irrevocable and public, developers are encouraged to setup their own private -npm registry for local development. We recommend using +npm registry for local development. We recommend using [verdaccio](https://verdaccio.org) for this task. The following commands help you create a working private npm registry for development. @@ -46,7 +49,7 @@ npm set registry http://localhost:4873/ yarn config set registry "http://localhost:4873" ``` -You can open `http://localhost:4873` in your browser, login with +You can open `http://localhost:4873` in your browser, login with the user credentials to see the packages published. ### Publish to private registry @@ -69,7 +72,7 @@ for more information. If there is a need to unpublish a package, ex: `@dtaas/runner@0.0.2`, do: ```bash -npm unpublish --registry http://localhost:4873/ @dtaas/runner@0.0.2 +npm unpublish --registry http://localhost:4873/ @dtaas/runner@0.0.2 ``` To install / uninstall this utility for all users, do: @@ -77,7 +80,7 @@ To install / uninstall this utility for all users, do: ```bash sudo npm install --registry http://localhost:4873 -g @dtaas/runner sudo npm list -g # should list @dtaas/runner in the packages -sudo npm remove --global @dtaas/runner +sudo npm remove --global @dtaas/runner ``` ## :rocket: Access the service @@ -103,7 +106,6 @@ for these two sources are: | localhost:3000/lifecycle/phase | _true_ | Always returns _true_ | ||| - ## :balance_scale: License This software is owned by From fa8716448152cd3a796adc0a2d197dd910b52930 Mon Sep 17 00:00:00 2001 From: Asti Date: Fri, 29 Sep 2023 04:56:46 +0530 Subject: [PATCH 19/35] Doc update4 --- servers/lib/LICENSE.md | 126 +++++++++++++------- servers/lib/README.md | 8 +- servers/lib/test/README.md | 6 +- servers/lib/test/data/user2/tools/README.md | 1 + ssl/README.md | 21 ++-- 5 files changed, 102 insertions(+), 60 deletions(-) diff --git a/servers/lib/LICENSE.md b/servers/lib/LICENSE.md index be60b871f..9fc794079 100644 --- a/servers/lib/LICENSE.md +++ b/servers/lib/LICENSE.md @@ -1,6 +1,7 @@ --- Start of Definition of INTO-CPS Association Public License --- /* + * This file is part of the INTO-CPS Association. * * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), @@ -12,14 +13,16 @@ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR + * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or + * The INTO-CPS tool suite software and the INTO-CPS Association + * Public License (ICAPL) are obtained from the INTO-CPS Association, either + * from the above address, from the URLs: + * http://www.into-cps.org or * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. + * GNU version 3 is obtained from: + * http://www.gnu.org/copyleft/gpl.html. * * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS @@ -29,6 +32,7 @@ * * See the full ICAPL conditions for more details. * + */ --- End of INTO-CPS Association Public License Header --- @@ -37,38 +41,47 @@ The ICAPL is a public license for the INTO-CPS tool suite with three modes/alter (GPL, ICA-Internal-EPL, ICA-External-EPL) for use and redistribution, in source and/or binary/object-code form: -* GPL. Any party (member or non-member of the INTO-CPS Association) may use and +* GPL. Any party (member or non-member of the INTO-CPS Association) may use and redistribute INTO-CPS tool suite under GPL version 3. -* Silver Level members of the INTO-CPS Association may also use and redistribute +* Silver Level members of the INTO-CPS Association may also + use and redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. -* Gold Level members of the INTO-CPS Association may also use and redistribute +* Gold Level members of the INTO-CPS Association may also use and redistribute The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. -* ICA-Internal-EPL = These INTO-CPA Association Public license conditions together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition +* ICA-Internal-EPL = These INTO-CPA Association + Public license conditions together with + Internally restricted EPL, i.e., EPL + version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association is only allowed within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee corresponding to + or for a member of the INTO-CPS Association + paying a membership fee corresponding to the size of the organization including all its affiliates, use and redistribution is allowed within/between its affiliates. -* ICA-External-EPL = These INTO-CPA Association Public license conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition +* ICA-External-EPL = These INTO-CPA Association + Public license conditions together with + Externally restricted EPL, i.e., EPL + version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association, or by a Licensed Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization (i.e., its own + to parties external to the INTO-CPS + Association member’s own organization (i.e., its own legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is also + redistribution to other members the + INTO-CPS Association to which source is also allowed to be distributed. [This has the consequence that an external party who wishes to use -the INTO-CPS Association in source form together with its own proprietary software in all +the INTO-CPS Association in source form +together with its own proprietary software in all cases must be a member of the INTO-CPS Association]. In all cases of usage and redistribution by recipients, the following @@ -90,7 +103,8 @@ c) A recipient must clearly indicate its chosen usage mode of ICAPL, in accompanying documentation and in a text file ICA-USAGE-MODE.txt, provided with the distribution. -d) Contributor(s) making a Contribution to the INTO-CPS Association thereby also makes a +d) Contributor(s) making a Contribution + to the INTO-CPS Association thereby also makes a Transfer of Contribution Copyright. In return, upon the effective date of the transfer, ICA grants the Contributor(s) a Contribution License of the Contribution. ICA has the right to accept or refuse Contributions. @@ -108,12 +122,14 @@ ICA-Internal-EPL and ICA-External-EPL. INTO-CPS Association Public License version 1.0, i.e., the license defined here (the text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of Definition of INTO-CPS Association Public License ---", or later versions thereof. +"--- End of Definition of INTO-CPS +Association Public License ---", or later versions thereof. "ICAPL Header" means: INTO-CPS Association Public License Header version 1.2, i.e., the -text between "--- Start of Definition of INTO-CPS Association Public License ---" and +text between "--- Start of Definition of +INTO-CPS Association Public License ---" and "--- End of INTO-CPS Association Public License Header ---, or later versions thereof. "Contribution" means: @@ -125,21 +141,25 @@ b) in the case of each subsequent Contributor: i) changes to the INTO-CPS tool suite, and ii) additions to the INTO-CPS tool suite; -where such changes and/or additions to the INTO-CPS tool suite originate from and are +where such changes and/or additions to the +INTO-CPS tool suite originate from and are distributed by that particular Contributor. A Contribution 'originates' from -a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or +a Contributor if it was added to the INTO-CPS tool suite +by such Contributor itself or anyone acting on such Contributor's behalf. For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions, the following conditions also hold: Contributions do not include additions to the distributed Program which: (i) -are separate modules of software distributed in conjunction with the INTO-CPS tool suite +are separate modules of software distributed in +conjunction with the INTO-CPS tool suite under their own license agreement, (ii) are separate modules which are not derivative works of the INTO-CPS tool suite, and (iii) are separate modules of software distributed in conjunction with the INTO-CPS tool suite under their own license agreement where these separate modules are merged with (weaved together with) modules of -The INTO-CPS tool suite to form new modules that are distributed as object code or source +The INTO-CPS tool suite to form new modules that +are distributed as object code or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or Additional Condition for external distribution according to ICA-External-EPL. @@ -147,14 +167,22 @@ Additional Condition for external distribution according to ICA-External-EPL. "Transfer of Contribution Copyright" means that the Contributors of a Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for -inclusion in the INTO-CPS tool suite. The transfer takes place upon the effective date -when the Contribution is made available on the INTO-CPS Association web site under ICAPL, by +inclusion in the INTO-CPS tool suite. +The transfer takes place upon the effective date +when the Contribution is made available on the INTO-CPS +Association web site under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. -The transfer is free of charge. If the Contributors or the INTO-CPS Association so wish, -an optional Copyright transfer agreement can be signed between the INTO-CPS Association and the Contributors. - -"Contribution License" means a license from the INTO-CPS Association to the Contributors of the Contribution, effective on the date of the Transfer of Contribution Copyright, -where the INTO-CPS Association grants the Contributors a non-exclusive, world-wide, transferable, free of charge, perpetual license, including sublicensing rights, to use, +The transfer is free of charge. If the Contributors or +the INTO-CPS Association so wish, +an optional Copyright transfer agreement can be signed +between the INTO-CPS Association and the Contributors. + +"Contribution License" means a license from the INTO-CPS +Association to the Contributors of the Contribution, +effective on the date of the Transfer of Contribution Copyright, +where the INTO-CPS Association grants the Contributors +a non-exclusive, world-wide, transferable, free of charge, +perpetual license, including sublicensing rights, to use, have used, modify, have modified, reproduce and or have reproduced the contributed material, for business and other purposes, including but not limited to evaluation, development, testing, integration and merging with @@ -166,18 +194,19 @@ the INTO-CPS tool chain. "The Program" means the Contributions distributed in accordance with ICAPL. -"The INTO-CPS tool chain" means the Contributions distributed in accordance with ICAPL. +"The INTO-CPS tool chain" means the Contributions +distributed in accordance with ICAPL. "Recipient" means anyone who receives the INTO-CPS tool chain under ICAPL, including all Contributors. "Licensed Third Party Distributor" means a reseller/distributor having signed -a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS -Association Bylaws, with a Gold Level organizational member which is not an -Affiliate of the reseller/distributor, for distributing a product containing -part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall -only be allowed further redistribution to other resellers if the Gold Level -member is granting such a right to it in the redistribution/resale agreement +a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS +Association Bylaws, with a Gold Level organizational member which is not an +Affiliate of the reseller/distributor, for distributing a product containing +part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall +only be allowed further redistribution to other resellers if the Gold Level +member is granting such a right to it in the redistribution/resale agreement between the Gold Level member and the Licensed Third Party Distributor. "Affiliate" shall mean any legal entity, directly or indirectly, through one @@ -197,7 +226,8 @@ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the INTO-CPS tool suite and assumes all risks +appropriateness of using and distributing the +INTO-CPS tool suite and assumes all risks associated with its exercise of rights under ICAPL , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability @@ -211,16 +241,17 @@ SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL -SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL +SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. A Contributor licensing the INTO-CPS tool suite under ICA-Internal-EPL or -ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite +ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of -redistribution of the INTO-CPS tool suite together with proprietary code it is a dual +redistribution of the INTO-CPS tool suite together +with proprietary code it is a dual license where the INTO-CPS tool suite parts are distributed under ICAPL compatible conditions and the proprietary code is distributed under proprietary license conditions; and @@ -235,8 +266,10 @@ damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from ICAPL are offered by that Contributor alone and not by any other party; and - iv) states from where the source code for the INTO-CPS tool suite is available, and -informs licensees how to obtain it in a reasonable manner on or through a + iv) states from where the source code for the INTO-CPS +tool suite is available, and +informs licensees how to obtain it in a +reasonable manner on or through a medium customarily used for software exchange. When the INTO-CPS tool suite is made available in source code form: @@ -258,9 +291,10 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS distribution. +http://www.eclipse.org/legal/epl-v10.html. +It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. +http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/servers/lib/README.md b/servers/lib/README.md index e9ba81fdd..82a635837 100644 --- a/servers/lib/README.md +++ b/servers/lib/README.md @@ -27,10 +27,11 @@ to get a sample file system structure for the lib microservice. The microservices uses `.env` environment files to receive configuration. -In order to create this environment, you need to create a `.env` file, wherein you create the following environment variables, +In order to create this environment, you need to create a `.env` file, +wherein you create the following environment variables, and insert with the correct-information relevant for your setup: -``` +```env PORT='4001' MODE='local' or 'gitlab' LOCAL_PATH ='/Users//DTaaS/files' @@ -46,7 +47,8 @@ The `TOKEN` should be set to your GitLab Group access API token. For more information on how to create and use your access token, [gitlab page](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html). -Once you've generated a token, copy it and replace the value of `TOKEN` with your token for the gitlab group, can be found. +Once you've generated a token, copy it and replace +the value of `TOKEN` with your token for the gitlab group, can be found. ## User Commands diff --git a/servers/lib/test/README.md b/servers/lib/test/README.md index 06f3dacec..2f08acb61 100644 --- a/servers/lib/test/README.md +++ b/servers/lib/test/README.md @@ -2,9 +2,11 @@ Inorder to test the lib-MS, a specific file structure must be configured. -Since the tests are tested across two different modes, 'local' or 'gitlab', a homogenous file structure is required. +Since the tests are tested across two different modes, +'local' or 'gitlab', a homogenous file structure is required. -This file structure must be within 'files' aswell as within your working gitlab repository, as depicted below... +This file structure must be within 'files' aswell as within +your working gitlab repository, as depicted below... local file system: diff --git a/servers/lib/test/data/user2/tools/README.md b/servers/lib/test/data/user2/tools/README.md index 19a2e4aa3..2d3904f91 100644 --- a/servers/lib/test/data/user2/tools/README.md +++ b/servers/lib/test/data/user2/tools/README.md @@ -1 +1,2 @@ +# Tools content123 diff --git a/ssl/README.md b/ssl/README.md index 6c8f8e4f6..74819d2c9 100644 --- a/ssl/README.md +++ b/ssl/README.md @@ -1,6 +1,8 @@ # Generate SSL Certificates for DTaaS application -Set the required passwords for private certificates in the **password** file. The first line will be used for the input password and the next line for the output password. +Set the required passwords for private certificates +in the **password** file. The first line will be used +for the input password and the next line for the output password. ## Using the shell script @@ -22,7 +24,7 @@ to **servers/gateway/certs** directory. 1) Take private/client.key.p12 certificate for the next steps 1) open firefox browser in regular, non-private mode. 1) open preferences (about:preferences) -1) search for "certificates" --> Certificate Manager --> +1) search for "certificates" --> Certificate Manager --> 1) Authorities --> import ca.cert.pem and checkmark Trust this CA to identify websites Trust this CA to identify email users @@ -30,15 +32,16 @@ to **servers/gateway/certs** directory. 1) Your Certificates --> Import --> Add PKCS12 format client certificate (client.key.p12) The password for this certificate is "dtaas" - It's important to add the certificates inthe same order. Otherwise, certificate errors are shown. + It's important to add the certificates inthe same order. + Otherwise, certificate errors are shown. -1) Setting default client SSL certificate for mTLS - a) Open an empty tab and type `about:config` - b) Accept the risk and continue +1) Setting default client SSL certificate for mTLS + a) Open an empty tab and type `about:config` + b) Accept the risk and continue c) In the search bar, type: `security.default_personal_cert = Select Automatically` ### References -1. https://kb.mit.edu/confluence/display/istcontrib/Default+Certificate+Selection+in+Firefox -1. https://unix.stackexchange.com/questions/644176/how-to-permanently-add-self-signed-certificate-in-firefox -1. https://www.jscape.com/blog/firefox-client-certificate +1. https://kb.mit.edu/confluence/display/istcontrib/Default+Certificate+Selection+in+Firefox +1. https://unix.stackexchange.com/questions/644176/how-to-permanently-add-self-signed-certificate-in-firefox +1. https://www.jscape.com/blog/firefox-client-certificate From a5b2109cb1050d8f7d347d1872150337fad27bd2 Mon Sep 17 00:00:00 2001 From: Asti Date: Fri, 29 Sep 2023 05:23:17 +0530 Subject: [PATCH 20/35] Doc update5 --- LICENSE.md | 115 +++++++++++--------- client/LICENSE.md | 8 +- client/README.md | 3 +- deploy/vagrant/make_boxes/dtaas/README.md | 12 +- docs/LICENSE.md | 42 +++---- docs/admin/client/CLIENT.md | 3 +- servers/execution/runner/LICENSE.md | 105 +++++++++--------- servers/lib/LICENSE.md | 105 +++++++++--------- servers/lib/test/data/user2/tools/README.md | 1 + 9 files changed, 208 insertions(+), 186 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index a9810b7cd..cba606526 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,34 +2,35 @@ /* - * This file is part of the INTO-CPS Association. - * - * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), - * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, - * Finlandsgade 22, 8200 Aarhus N, Denmark. - * - * All rights reserved. - * - * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR - * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. - * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR - * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or - * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. - * - * This program is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH - * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF - * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - * - * See the full ICAPL conditions for more details. - * +* This file is part of the INTO-CPS Association. +* +* Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), +* c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, +* Finlandsgade 22, 8200 Aarhus N, Denmark. +* +* All rights reserved. +* +* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR +* THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. +* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES +* RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR +* THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. +* +* The INTO-CPS tool suite software and the INTO-CPS Association +* Public License (ICAPL) are obtained from the INTO-CPS Association, either +* from the above address, from the URLs: http://www.into-cps.org or +* in the INTO-CPS tool suite distribution. +* GNU version 3 is obtained from: +* http://www.gnu.org/copyleft/gpl.html. +* +* This program is distributed WITHOUT ANY WARRANTY; without +* even the implied warranty of MERCHANTABILITY or FITNESS +* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH +* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF +* THE INTO-CPS ASSOCIATION PUBLIC LICENSE. +* +* See the full ICAPL conditions for more details. +* */ @@ -54,24 +55,25 @@ Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. * ICA-Internal-EPL = These INTO-CPA Association Public - license conditions together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association - paying a membership fee corresponding to - the size of the organization including all its affiliates, use and redistribution - is allowed within/between its affiliates. - -* ICA-External-EPL = These INTO-CPA Association Public license conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association, or by a Licensed - Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association - member’s own organization (i.e., its own - legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is also - allowed to be distributed. + license conditions together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association is only allowed + within the INTO-CPS Association member's own organization (i.e., its own legal entity), + or for a member of the INTO-CPS Association + paying a membership fee corresponding to + the size of the organization including all its affiliates, use and redistribution + is allowed within/between its affiliates. + +* ICA-External-EPL = These INTO-CPA Association Public + license conditions together with + Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association, or by a Licensed + Third Party Distributor having a redistribution agreement with that member, + to parties external to the INTO-CPS Association + member’s own organization (i.e., its own + legal entity) is only allowed in binary/object-code form, except the case of + redistribution to other members the INTO-CPS Association to which source is also + allowed to be distributed. [This has the consequence that an external party who wishes to use the INTO-CPS Association in source form together with @@ -138,7 +140,8 @@ b) in the case of each subsequent Contributor: where such changes and/or additions to the INTO-CPS tool suite originate from and are -distributed by that particular Contributor. A Contribution 'originates' from +distributed by that particular Contributor. +A Contribution 'originates' from a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or anyone acting on such Contributor's behalf. @@ -146,12 +149,14 @@ For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions, the following conditions also hold: Contributions do not include additions to the distributed Program which: (i) -are separate modules of software distributed in conjunction with the INTO-CPS tool suite +are separate modules of software distributed +in conjunction with the INTO-CPS tool suite under their own license agreement, (ii) are separate modules which are not derivative works of the INTO-CPS tool suite, and (iii) are separate modules of software distributed in conjunction with the INTO-CPS tool suite under their own license agreement where these separate modules are merged with (weaved together with) modules of -The INTO-CPS tool suite to form new modules that are distributed as object code or source +The INTO-CPS tool suite to form new modules +that are distributed as object code or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or Additional Condition for external distribution according to ICA-External-EPL. @@ -159,7 +164,8 @@ Additional Condition for external distribution according to ICA-External-EPL. "Transfer of Contribution Copyright" means that the Contributors of a Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for -inclusion in the INTO-CPS tool suite. The transfer takes place upon the effective date +inclusion in the INTO-CPS tool suite. +The transfer takes place upon the effective date when the Contribution is made available on the INTO-CPS Association web site under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. @@ -185,7 +191,8 @@ the INTO-CPS tool chain. "The Program" means the Contributions distributed in accordance with ICAPL. -"The INTO-CPS tool chain" means the Contributions distributed in accordance with ICAPL. +"The INTO-CPS tool chain" means the Contributions +distributed in accordance with ICAPL. "Recipient" means anyone who receives the INTO-CPS tool chain under ICAPL, including all Contributors. @@ -216,7 +223,8 @@ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the INTO-CPS tool suite and assumes all risks +appropriateness of using and distributing the +INTO-CPS tool suite and assumes all risks associated with its exercise of rights under ICAPL , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability @@ -239,7 +247,8 @@ ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of -redistribution of the INTO-CPS tool suite together with proprietary code it is a dual +redistribution of the INTO-CPS tool suite +together with proprietary code it is a dual license where the INTO-CPS tool suite parts are distributed under ICAPL compatible conditions and the proprietary code is distributed under proprietary license conditions; and diff --git a/client/LICENSE.md b/client/LICENSE.md index 2f3c17cde..51c122160 100644 --- a/client/LICENSE.md +++ b/client/LICENSE.md @@ -1,6 +1,7 @@ --- Start of Definition of INTO-CPS Association Public License --- /* + * This file is part of the INTO-CPS Association. * * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), @@ -29,6 +30,7 @@ * * See the full ICAPL conditions for more details. * + */ --- End of INTO-CPS Association Public License Header --- @@ -294,11 +296,13 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the +http://www.eclipse.org/legal/epl-v10.html. +It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS +http://www.gnu.org/copyleft/gpl.html. +It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/client/README.md b/client/README.md index fa3c829d1..6bbc32cf3 100644 --- a/client/README.md +++ b/client/README.md @@ -36,6 +36,7 @@ yarn test -u #run unit tests yarn test -i #run integration tests yarn test -e #run end-to-end tests ``` + --- ## Authentication @@ -61,7 +62,7 @@ file from `client/config/` to the `build` directory. 1. Save the file as `client/config/.js`. 1. Run the config command to copy the file to the `public` directory -and the `build` directory, if a build is present. + and the `build` directory, if a build is present. ```bash yarn configapp diff --git a/deploy/vagrant/make_boxes/dtaas/README.md b/deploy/vagrant/make_boxes/dtaas/README.md index 99cad45e4..713ad986f 100644 --- a/deploy/vagrant/make_boxes/dtaas/README.md +++ b/deploy/vagrant/make_boxes/dtaas/README.md @@ -7,12 +7,12 @@ This is a box that has the following items: * jupyter * microk8s * containers - * mltooling/ml-workspace:0.13.2 - * traefik2.5 - * influxdb2.4 - * grafana - * telegraf - * gitlab + * mltooling/ml-workspace:0.13.2 + * traefik2.5 + * influxdb2.4 + * grafana + * telegraf + * gitlab Publish a base virtualbox package to be used by vagrant to publish all other virtualbox packages diff --git a/docs/LICENSE.md b/docs/LICENSE.md index 6b066257c..50362333f 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -1,6 +1,7 @@ --- Start of Definition of INTO-CPS Association Public License --- /* + * This file is part of the INTO-CPS Association. * * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), @@ -12,14 +13,14 @@ * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR + * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or + * The INTO-CPS tool suite software and the INTO-CPS Association + * Public License (ICAPL) are obtained from the INTO-CPS Association, either + * from the above address, from the URLs: http://www.into-cps.org or * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. + * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. * * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS @@ -29,6 +30,7 @@ * * See the full ICAPL conditions for more details. * + */ --- End of INTO-CPS Association Public License Header --- @@ -44,7 +46,7 @@ in source and/or binary/object-code form: * Silver Level members of the INTO-CPS Association may also use and redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. -* Gold Level members of the INTO-CPS Association may also use and redistribute +* Gold Level members of the INTO-CPS Association may also use and redistribute The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. Definitions of the INTO-CPS Association Public license modes: @@ -58,7 +60,7 @@ Definitions of the INTO-CPS Association Public license modes: allowed within the INTO-CPS Association member's own organization (i.e., its own legal entity), or for a member of the INTO-CPS Association paying a membership fee - corresponding to + corresponding to the size of the organization including all its affiliates, use and redistribution is allowed within/between its affiliates. @@ -66,7 +68,7 @@ Definitions of the INTO-CPS Association Public license modes: * ICA-External-EPL = These INTO-CPA Association Public license conditions together with Externally restricted EPL, i.e., EPL version 1.0 with the Additional - Condition + Condition that use and redistribution by a member of the INTO-CPS Association, or by a Licensed Third Party Distributor having a redistribution agreement with that member, @@ -198,12 +200,12 @@ with ICAPL. including all Contributors. "Licensed Third Party Distributor" means a reseller/distributor having signed -a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS -Association Bylaws, with a Gold Level organizational member which is not an -Affiliate of the reseller/distributor, for distributing a product containing -part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall -only be allowed further redistribution to other resellers if the Gold Level -member is granting such a right to it in the redistribution/resale agreement +a redistribution/resale agreement in accordance with ICAPL and the INTO-CPS +Association Bylaws, with a Gold Level organizational member which is not an +Affiliate of the reseller/distributor, for distributing a product containing +part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall +only be allowed further redistribution to other resellers if the Gold Level +member is granting such a right to it in the redistribution/resale agreement between the Gold Level member and the Licensed Third Party Distributor. "Affiliate" shall mean any legal entity, directly or indirectly, through one @@ -239,12 +241,12 @@ SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL -SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE INTO-CPS TOOL +SUITE OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. A Contributor licensing the INTO-CPS tool suite under ICA-Internal-EPL or -ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite +ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of @@ -288,11 +290,13 @@ This Agreement is governed by the laws of Denmark. The place of jurisdiction for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: -http://www.eclipse.org/legal/epl-v10.html. It is also reproduced in the INTO-CPS +http://www.eclipse.org/legal/epl-v10.html. +It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS +http://www.gnu.org/copyleft/gpl.html. +It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/docs/admin/client/CLIENT.md b/docs/admin/client/CLIENT.md index 7f98fd5de..8041b50ac 100644 --- a/docs/admin/client/CLIENT.md +++ b/docs/admin/client/CLIENT.md @@ -57,7 +57,8 @@ To host DTaaS client website on your server, follow these steps: REACT_APP_GITLAB_SCOPES: 'openid profile read_user read_repository api', }; - // Example values with "bar" as basename URL. Trailing and ending slashes are optional. + // Example values with "bar" as basename URL. + //Trailing and ending slashes are optional. window.env = { REACT_APP_ENVIRONMENT: "dev", REACT_APP_URL: 'https://foo.com/', diff --git a/servers/execution/runner/LICENSE.md b/servers/execution/runner/LICENSE.md index e78aa3b16..b98cba7be 100644 --- a/servers/execution/runner/LICENSE.md +++ b/servers/execution/runner/LICENSE.md @@ -2,36 +2,36 @@ /* - * This file is part of the INTO-CPS Association. - * - * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), - * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, - * Finlandsgade 22, 8200 Aarhus N, Denmark. - * - * All rights reserved. - * - * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR - * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. - * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR - * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: - * http://www.into-cps.org or - * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: - * http://www.gnu.org/copyleft/gpl.html. - * - * This program is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH - * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF - * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - * - * See the full ICAPL conditions for more details. - * +* This file is part of the INTO-CPS Association. +* +* Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), +* c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, +* Finlandsgade 22, 8200 Aarhus N, Denmark. +* +* All rights reserved. +* +* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR +* THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. +* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES +* RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR +* THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. +* +* The INTO-CPS tool suite software and the INTO-CPS Association +* Public License (ICAPL) are obtained from the INTO-CPS Association, either +* from the above address, from the URLs: +* http://www.into-cps.org or +* in the INTO-CPS tool suite distribution. +* GNU version 3 is obtained from: +* http://www.gnu.org/copyleft/gpl.html. +* +* This program is distributed WITHOUT ANY WARRANTY; without +* even the implied warranty of MERCHANTABILITY or FITNESS +* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH +* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF +* THE INTO-CPS ASSOCIATION PUBLIC LICENSE. +* +* See the full ICAPL conditions for more details. +* */ @@ -56,28 +56,28 @@ Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. * ICA-Internal-EPL = These INTO-CPA Association Public - license conditions together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization - (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a - membership fee corresponding to - the size of the organization including all its affiliates, use and redistribution - is allowed within/between its affiliates. + license conditions together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association is only allowed + within the INTO-CPS Association member's own organization + (i.e., its own legal entity), + or for a member of the INTO-CPS Association paying a + membership fee corresponding to + the size of the organization including all its affiliates, use and redistribution + is allowed within/between its affiliates. * ICA-External-EPL = These INTO-CPA Association Public license - conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the - Additional Condition - that use and redistribution by a member of the INTO-CPS Association, or by a Licensed - Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s - own organization (i.e., its own - legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the - INTO-CPS Association to which source is also - allowed to be distributed. + conditions together with + Externally restricted EPL, i.e., EPL version 1.0 with the + Additional Condition + that use and redistribution by a member of the INTO-CPS Association, or by a Licensed + Third Party Distributor having a redistribution agreement with that member, + to parties external to the INTO-CPS Association member’s + own organization (i.e., its own + legal entity) is only allowed in binary/object-code form, except the case of + redistribution to other members the + INTO-CPS Association to which source is also + allowed to be distributed. [This has the consequence that an external party who wishes to use the INTO-CPS Association in source form together @@ -161,7 +161,8 @@ derivative works of the INTO-CPS tool suite, and (iii) are separate modules of s distributed in conjunction with the INTO-CPS tool suite under their own license agreement where these separate modules are merged with (weaved together with) modules of -The INTO-CPS tool suite to form new modules that are distributed as object code or source +The INTO-CPS tool suite to form new modules that +are distributed as object code or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or Additional Condition for external distribution according to ICA-External-EPL. @@ -208,7 +209,7 @@ Association Bylaws, with a Gold Level organizational member which is not an Affiliate of the reseller/distributor, for distributing a product containing part(s) of the INTO-CPS tool suite. The Licensed Third Party Distributor shall only be allowed further redistribution to other resellers if the Gold Level -member is granting such a right to it in the redistribution/resale agreement +member is granting such a right to it in the redistribution/resale agreement between the Gold Level member and the Licensed Third Party Distributor. "Affiliate" shall mean any legal entity, directly or indirectly, through one diff --git a/servers/lib/LICENSE.md b/servers/lib/LICENSE.md index 9fc794079..ab735291c 100644 --- a/servers/lib/LICENSE.md +++ b/servers/lib/LICENSE.md @@ -2,37 +2,37 @@ /* - * This file is part of the INTO-CPS Association. - * - * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), - * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, - * Finlandsgade 22, 8200 Aarhus N, Denmark. - * - * All rights reserved. - * - * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR - * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. - * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR - * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: - * http://www.into-cps.org or - * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: - * http://www.gnu.org/copyleft/gpl.html. - * - * This program is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH - * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF - * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - * - * See the full ICAPL conditions for more details. - * - +* This file is part of the INTO-CPS Association. +* +* Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), +* c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, +* Finlandsgade 22, 8200 Aarhus N, Denmark. +* +* All rights reserved. +* +* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR +* THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. +* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES +* RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR +* THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. +* +* The INTO-CPS tool suite software and the INTO-CPS Association +* Public License (ICAPL) are obtained from the INTO-CPS Association, either +* from the above address, from the URLs: +* http://www.into-cps.org or +* in the INTO-CPS tool suite distribution. +* GNU version 3 is obtained from: +* http://www.gnu.org/copyleft/gpl.html. +* +* This program is distributed WITHOUT ANY WARRANTY; without +* even the implied warranty of MERCHANTABILITY or FITNESS +* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH +* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF +* THE INTO-CPS ASSOCIATION PUBLIC LICENSE. +* +* See the full ICAPL conditions for more details. +* + */ --- End of INTO-CPS Association Public License Header --- @@ -56,28 +56,28 @@ Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. * ICA-Internal-EPL = These INTO-CPA Association - Public license conditions together with - Internally restricted EPL, i.e., EPL - version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), - or for a member of the INTO-CPS Association - paying a membership fee corresponding to - the size of the organization including all its affiliates, use and redistribution - is allowed within/between its affiliates. + Public license conditions together with + Internally restricted EPL, i.e., EPL + version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association is only allowed + within the INTO-CPS Association member's own organization (i.e., its own legal entity), + or for a member of the INTO-CPS Association + paying a membership fee corresponding to + the size of the organization including all its affiliates, use and redistribution + is allowed within/between its affiliates. * ICA-External-EPL = These INTO-CPA Association - Public license conditions together with - Externally restricted EPL, i.e., EPL - version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association, or by a Licensed - Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS - Association member’s own organization (i.e., its own - legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the - INTO-CPS Association to which source is also - allowed to be distributed. + Public license conditions together with + Externally restricted EPL, i.e., EPL + version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association, or by a Licensed + Third Party Distributor having a redistribution agreement with that member, + to parties external to the INTO-CPS + Association member’s own organization (i.e., its own + legal entity) is only allowed in binary/object-code form, except the case of + redistribution to other members the + INTO-CPS Association to which source is also + allowed to be distributed. [This has the consequence that an external party who wishes to use the INTO-CPS Association in source form @@ -295,6 +295,7 @@ The EPL 1.0 license definition has been obtained from: It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from -http://www.gnu.org/copyleft/gpl.html. It is also reproduced in the INTO-CPS distribution. +http://www.gnu.org/copyleft/gpl.html. +It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/servers/lib/test/data/user2/tools/README.md b/servers/lib/test/data/user2/tools/README.md index 2d3904f91..a2a768c66 100644 --- a/servers/lib/test/data/user2/tools/README.md +++ b/servers/lib/test/data/user2/tools/README.md @@ -1,2 +1,3 @@ # Tools + content123 From 02f311c5fb656295344d6eb7627f986aa8d619fc Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Fri, 29 Sep 2023 05:42:16 +0530 Subject: [PATCH 21/35] Update .mdl_style.rb --- .mdl_style.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index ba34fb48e..f74da5df3 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,4 +1,4 @@ all rule 'MD013', :ignore_code_blocks => true rule 'MD013', :tables => false -rule 'MD046', :indented => true +rule 'MD046', :style => :indented From c00bd0913a9a73fdbfe7c0b2b3c9946858ea2583 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Fri, 29 Sep 2023 05:44:04 +0530 Subject: [PATCH 22/35] Update .mdl_style.rb --- .mdl_style.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index f74da5df3..7ef5087e8 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,4 +1,3 @@ all rule 'MD013', :ignore_code_blocks => true -rule 'MD013', :tables => false rule 'MD046', :style => :indented From 74fa3158eb65f78c7694f222a2a6436d8ed63b99 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Fri, 29 Sep 2023 05:47:48 +0530 Subject: [PATCH 23/35] Update .mdl_style.rb --- .mdl_style.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index 7ef5087e8..9f7e7404e 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,3 +1,3 @@ all -rule 'MD013', :ignore_code_blocks => true +rule 'MD013', :ignore_code_blocks => true :tables => false rule 'MD046', :style => :indented From abd7493858c4b7fa92a079913d0b5a1501fa3267 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Fri, 29 Sep 2023 05:51:53 +0530 Subject: [PATCH 24/35] Update .mdl_style.rb --- .mdl_style.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index 9f7e7404e..238f26bd2 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,3 +1,3 @@ all -rule 'MD013', :ignore_code_blocks => true :tables => false +rule 'MD013', :ignore_code_blocks => true, :tables => false rule 'MD046', :style => :indented From 317fbeee589bb0e786951a9f443b66ab3cdd77c8 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Fri, 29 Sep 2023 06:01:58 +0530 Subject: [PATCH 25/35] Update .mdl_style.rb --- .mdl_style.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index 238f26bd2..cfff35c97 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,3 +1,3 @@ all rule 'MD013', :ignore_code_blocks => true, :tables => false -rule 'MD046', :style => :indented +rule 'MD046', :style => :fenced From 58f2bfc8207aa5e66474ee47598cdc1d6e606bd4 Mon Sep 17 00:00:00 2001 From: Asti Date: Fri, 29 Sep 2023 06:51:50 +0530 Subject: [PATCH 26/35] Doc update6 --- LICENSE.md | 21 +++-- client/LICENSE.md | 43 +++++---- client/test/README.md | 3 +- deploy/README.md | 2 +- deploy/vagrant/two-machine/README.md | 2 +- docs/FAQ.md | 21 +---- docs/LICENSE.md | 97 ++++++++++--------- docs/PUBLISH.md | 2 +- docs/admin/client/CLIENT.md | 125 ++++++++++++------------- docs/admin/client/auth.md | 5 +- docs/admin/servers/lib/LIB-MS.md | 13 +-- docs/user/digital-twins/create.md | 29 +++--- docs/user/examples/incubator/README.md | 6 +- docs/user/servers/lib/LIB-MS.md | 116 +++++++++++------------ docs/user/servers/lib/assets.md | 1 - docs/user/website/index.md | 17 ++-- servers/execution/runner/LICENSE.md | 13 ++- servers/lib/LICENSE.md | 16 ++-- servers/lib/README.md | 4 - ssl/README.md | 3 - 20 files changed, 255 insertions(+), 284 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index cba606526..c0ad1333c 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,36 +1,37 @@ +# License + --- Start of Definition of INTO-CPS Association Public License --- /* * This file is part of the INTO-CPS Association. -* + * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, * Finlandsgade 22, 8200 Aarhus N, Denmark. -* + * All rights reserved. -* + * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. -* + * The INTO-CPS tool suite software and the INTO-CPS Association * Public License (ICAPL) are obtained from the INTO-CPS Association, either * from the above address, from the URLs: http://www.into-cps.org or * in the INTO-CPS tool suite distribution. * GNU version 3 is obtained from: * http://www.gnu.org/copyleft/gpl.html. -* + * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. -* + * See the full ICAPL conditions for more details. -* */ @@ -58,7 +59,8 @@ Definitions of the INTO-CPS Association Public license modes: license conditions together with Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), + within the INTO-CPS Association member's own + organization (i.e., its own legal entity), or for a member of the INTO-CPS Association paying a membership fee corresponding to the size of the organization including all its affiliates, use and redistribution @@ -142,7 +144,8 @@ where such changes and/or additions to the INTO-CPS tool suite originate from and are distributed by that particular Contributor. A Contribution 'originates' from -a Contributor if it was added to the INTO-CPS tool suite by such Contributor itself or +a Contributor if it was added to the INTO-CPS +tool suite by such Contributor itself or anyone acting on such Contributor's behalf. For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or diff --git a/client/LICENSE.md b/client/LICENSE.md index 51c122160..c9f0bf1f0 100644 --- a/client/LICENSE.md +++ b/client/LICENSE.md @@ -1,35 +1,38 @@ +# License + --- Start of Definition of INTO-CPS Association Public License --- /* * This file is part of the INTO-CPS Association. - * + * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, * Finlandsgade 22, 8200 Aarhus N, Denmark. - * + * All rights reserved. - * + * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - * + * The INTO-CPS tool suite software and the INTO-CPS Association * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or + * from the above address, from the URLs: + * http://www.into-cps.org or * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. - * + * GNU version 3 is obtained from: + * http://www.gnu.org/copyleft/gpl.html. + * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - * + * See the full ICAPL conditions for more details. - * */ @@ -70,17 +73,17 @@ Definitions of the INTO-CPS Association Public license modes: redistribution is allowed within/between its affiliates. * ICA-External-EPL = These INTO-CPA Association Public license - conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional - Condition - that use and redistribution by a member of the INTO-CPS Association, - or by a Licensed - Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization - (i.e., its own legal entity) is only allowed in binary/object-code - form, except the case of - redistribution to other members the INTO-CPS Association to which - source is also allowed to be distributed. + conditions together with + Externally restricted EPL, i.e., EPL version 1.0 with the Additional + Condition + that use and redistribution by a member of the INTO-CPS Association, + or by a Licensed + Third Party Distributor having a redistribution agreement with that member, + to parties external to the INTO-CPS Association member’s own organization + (i.e., its own legal entity) is only allowed in binary/object-code + form, except the case of + redistribution to other members the INTO-CPS Association to which + source is also allowed to be distributed. [This has the consequence that an external party who wishes to use the INTO-CPS Association in source form together with its own diff --git a/client/test/README.md b/client/test/README.md index 84e8199f2..543ac7aee 100644 --- a/client/test/README.md +++ b/client/test/README.md @@ -66,7 +66,7 @@ Replace _your_username_ and _your_password_ with the actual username and passwor of your GitLab account or the testing account that you intend to use. Finally replace _foo.com_ with the URL of your application, as you did in `env.js`. -Here's an example for test setup on the developer machine and on the +Here's an example for test setup on the developer machine and on the integration server: ```env @@ -178,6 +178,7 @@ Once you've properly set up your .env file, you can now run the end-to-end tests ```bash yarn test -e ``` + This command launches the test runner and executes all end-to-end tests. Make sure you have an active internet connection while running these tests, as they simulate real user interactions with your GitLab account. diff --git a/deploy/README.md b/deploy/README.md index 143843c4b..2af369e2d 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -114,4 +114,4 @@ You can run this script multiple times until the installation is successful. ## Access the application -Now you should be able to access the DTaaS application at: _https://foo.com_ +Now you should be able to access the DTaaS application at: _https://foo.com_ diff --git a/deploy/vagrant/two-machine/README.md b/deploy/vagrant/two-machine/README.md index ab8bb0cb8..2bfb4cb32 100644 --- a/deploy/vagrant/two-machine/README.md +++ b/deploy/vagrant/two-machine/README.md @@ -60,7 +60,7 @@ The fields to update are: ## Launch platform default services -RabbitMQ, Grafana and InfluxDB services are provisioned on this server. +RabbitMQ, Grafana and InfluxDB services are provisioned on this server. InfluxDB webUI will be available at: _services.foo.com_. The RabbitMQ service and its management interface shall be available at 5672 and 15672 TCP ports respectively. diff --git a/docs/FAQ.md b/docs/FAQ.md index 048d72e9b..a673eff92 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -1,3 +1,4 @@ +# FAQs ## Abreviations @@ -41,7 +42,6 @@ ??? Question "Can DTaaS create new DT models?" DTaaS is not a model creation tool. You can put model creation tool inside DTaaS and create new models. - The DTaaS itself does not create digital twin models. But you can run Linux desktop / terminal tools inside the DTaaS. So you can create models inside DTaaS and run them using tools that can run in Linux. @@ -63,21 +63,18 @@ ??? Question "Can DTaaS support only the information models (or behavioral models) or some other kind of models?" The DTaaS as such is agnostic to the kind of models you use. DTaaS can run all kinds of models. This includes behavioral and data models. - As long as you have models and the matching solvers that can run in Linux OS, you are good to go in DTaaS. - In some cases, models and solvers (tools) are bundled together to form monolithic DTs. The DTaaS does not limit you from running such DTs as well. - DTaaS does not provide dedicated solvers. But if you can install a solver in your workspace, then you don't need the platform to provide one. ??? Question "Does it support XML-based representation and ontology representation?" - Currently No. **We are looking for users needing this capability. If you have concrete requirements and an example, we can discuss a way of realizing it in DTaaS**. - + Currently No. **We are looking for users needing this capability.** + **If you have concrete requirements and an example, we can discuss a way of realizing it in DTaaS**. ## Communication Between Physical Twin and Digital Twin @@ -88,7 +85,6 @@ from physical twin. The DTaaS provides InfluxDB, RabbitMQ and Mosquitto services for this purpose. These three are probably most widely used services for digital twin communication. - Having said that, DTaaS allows you to utilize other communication technologies and services hosted elsewhere on the Internet. @@ -96,16 +92,13 @@ DTaaS can not understand the static or dynamic nature of data. It can facilitate storing names, units and any other text description of interesting quantities (weight of batter, voltage output etc). - It can also store the data being sent by the physical twin. The distinction between static and dynamic data needs to be made by the user. - Only metadata of the data can reveal such more information about the nature of data. A tool can probably help in very specific cases, but you need metadata. If there is a human being making this distinction, then the need for metadata goes down but does not completely go away. - In some of the DT platforms supported by manufacturers, there is a tight integration between data and model. In this case, the tool itself is taking care of the metadata. The DTaaS is a generic platform which can @@ -119,7 +112,6 @@ should happen is decided by the person designing the digital entity. The DTaaS can provide communication services that can help you do this communication with relative ease. - You can use InfluxDB, RabbitMQ and Mosquitto services hosted on DTaaS for two communication between digital and physical entities. @@ -128,11 +120,9 @@ ??? Question "Does DTaaS support data collection from different sources like hardware, software and network? Is there any user interface or any tracking instruments used for data collection?" The DTaaS provids InfluxDB, RabbitMQ, MQTT services. Both the physical twin and digital twin can utilize these protocols for communication. - The IoT (time-series) data can be collected using InfluxDB and MQTT broker services. There is a user interface for InfluxDB which can be used to analyze the data collected. - Users can also manually upload their data files into DTaaS. ??? Question "Which transmission protocol does DTaaS allow?" @@ -165,10 +155,8 @@ ??? Question "All the DT platforms seem to provide different features. Is there a comparison chart?" Here is a qualitative comparison of different DT integration platforms: - Legend: high performance (**H**), mid performance (**M**) and low performance (**L**) - | DT Platforms | License | DT Development Process | Connectivity | Security | Processing power, performance and Scalability | Data Storage | Visualization | Modeling and Simulation | |:---|:---|:---|:---|:---|:---|:---|:---|:---| | Microsoft Azure DT | Commercial Cloud | H | H | H | M | H | H | H | @@ -178,9 +166,7 @@ | PTC Thingworx | Commercial | H | H | H | H | H | M | M | | GE Predix | Commercial | M | H | H | M | L | M | L | | AU's DTaaS | Open source | H | H | L | L | M | M | M | - Adopted by Tanusree Roy from Table 4 and 5 of the following paper. - Ref: Naseri, F., Gil, S., Barbu, C., Cetkin, E., Yarimca, G., Jensen, A. C., ... & Gomes, C. (2023). Digital twin of electric vehicle battery systems: Comprehensive review of the use cases, requirements, and platforms. @@ -194,5 +180,4 @@ Azure DT service. You have to do the leg work of integrating with other Azure services or third-party services to get the kind of capabilities that GE Predix natively provides in one interface. - The takeaway is that we pick horses for the courses. diff --git a/docs/LICENSE.md b/docs/LICENSE.md index 50362333f..663f04b45 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -2,35 +2,34 @@ /* - * This file is part of the INTO-CPS Association. - * - * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), - * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, - * Finlandsgade 22, 8200 Aarhus N, Denmark. - * - * All rights reserved. - * - * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR - * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. - * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR - * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - * - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: http://www.into-cps.org or - * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. - * - * This program is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH - * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF - * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - * - * See the full ICAPL conditions for more details. - * +* This file is part of the INTO-CPS Association. +* Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), +* c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, +* Finlandsgade 22, 8200 Aarhus N, Denmark. + +* All rights reserved. + +* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR +* THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. +* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES +* RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR +* THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. + +* The INTO-CPS tool suite software and the INTO-CPS Association +* Public License (ICAPL) are obtained from the INTO-CPS Association, either +* from the above address, from the URLs: http://www.into-cps.org or +* in the INTO-CPS tool suite distribution. +* GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. + +* This program is distributed WITHOUT ANY WARRANTY; without +* even the implied warranty of MERCHANTABILITY or FITNESS +* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH +* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF +* THE INTO-CPS ASSOCIATION PUBLIC LICENSE. + +* See the full ICAPL conditions for more details. + */ --- End of INTO-CPS Association Public License Header --- @@ -54,29 +53,29 @@ Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. * ICA-Internal-EPL = These INTO-CPA Association Public license conditions - together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition - that use and redistribution by a member of the INTO-CPS Association is only - allowed within the INTO-CPS Association member's own organization - (i.e., its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee - corresponding to - the size of the organization including all its affiliates, - use and redistribution - is allowed within/between its affiliates. + together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association is only + allowed within the INTO-CPS Association member's own organization + (i.e., its own legal entity), + or for a member of the INTO-CPS Association paying a membership fee + corresponding to + the size of the organization including all its affiliates, + use and redistribution + is allowed within/between its affiliates. * ICA-External-EPL = These INTO-CPA Association Public license conditions - together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional - Condition - that use and redistribution by a member of the INTO-CPS Association, or - by a Licensed - Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization - (i.e., its own - legal entity) is only allowed in binary/object-code form, except the case of - redistribution to other members the INTO-CPS Association to which source is - also allowed to be distributed. + together with + Externally restricted EPL, i.e., EPL version 1.0 with the Additional + Condition + that use and redistribution by a member of the INTO-CPS Association, or + by a Licensed + Third Party Distributor having a redistribution agreement with that member, + to parties external to the INTO-CPS Association member’s own organization + (i.e., its own + legal entity) is only allowed in binary/object-code form, except the case of + redistribution to other members the INTO-CPS Association to which source is + also allowed to be distributed. [This has the consequence that an external party who wishes to use the INTO-CPS Association in source form together with its own proprietary diff --git a/docs/PUBLISH.md b/docs/PUBLISH.md index 50de1ffa0..d77ae3664 100644 --- a/docs/PUBLISH.md +++ b/docs/PUBLISH.md @@ -8,7 +8,7 @@ The documentation system is based on The documentation is generated based on the configuration files: * **mkdocs.yml**: used for generating online -documentation which is hosted on the web + documentation which is hosted on the web * **mkdocs-github.yml**: used for generating documentation in github actions Install Mkdocs using the following command. diff --git a/docs/admin/client/CLIENT.md b/docs/admin/client/CLIENT.md index 8041b50ac..98fe026ee 100644 --- a/docs/admin/client/CLIENT.md +++ b/docs/admin/client/CLIENT.md @@ -16,68 +16,68 @@ To host DTaaS client website on your server, follow these steps: "`REACT_APP_URL`/`REACT_APP_URL_BASENAME`/`{username}`/`{Endpoint}`". See the definitions below: - ```js - window.env = { - REACT_APP_ENVIRONMENT: "prod | dev", - REACT_APP_URL: "URL for the gateway", - REACT_APP_URL_BASENAME: "Base URL for the client website"(optional), - REACT_APP_URL_DTLINK: "Endpoint for the Digital Twin", - REACT_APP_URL_LIBLINK: "Endpoint for the Library Assets", - REACT_APP_WORKBENCHLINK_TERMINAL: "Endpoint for the terminal link", - REACT_APP_WORKBENCHLINK_VNCDESKTOP: "Endpoint for the VNC Desktop link", - REACT_APP_WORKBENCHLINK_VSCODE: "Endpoint for the VS Code link", - REACT_APP_WORKBENCHLINK_JUPYTERLAB: "Endpoint for the Jupyter Lab link", - REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: - "Endpoint for the Jupyter Notebook link", - - REACT_APP_CLIENT_ID: 'AppID genereated by the gitlab OAuth provider', - REACT_APP_AUTH_AUTHORITY: 'URL of the private gitlab instance', - REACT_APP_REDIRECT_URI: 'URL of the homepage for the logged in users of the website', - REACT_APP_LOGOUT_REDIRECT_URI: 'URL of the homepage for the anonymous users of the website', - REACT_APP_GITLAB_SCOPES: 'OAuth scopes. These should match with the scopes set in gitlab OAuth provider', - }; - - // Example values with no base URL. Trailing and ending slashes are optional. - window.env = { - REACT_APP_ENVIRONMENT: 'prod', - REACT_APP_URL: 'https://foo.com/', - REACT_APP_URL_BASENAME: '', - REACT_APP_URL_DTLINK: '/lab', - REACT_APP_URL_LIBLINK: '', - REACT_APP_WORKBENCHLINK_TERMINAL: '/terminals/main', - REACT_APP_WORKBENCHLINK_VNCDESKTOP: '/tools/vnc/?password=vncpassword', - REACT_APP_WORKBENCHLINK_VSCODE: '/tools/vscode/', - REACT_APP_WORKBENCHLINK_JUPYTERLAB: '/lab', - REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: '', - - REACT_APP_CLIENT_ID: '934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0', - REACT_APP_AUTH_AUTHORITY: 'https://gitlab.foo.com/', - REACT_APP_REDIRECT_URI: 'https://foo.com/Library', - REACT_APP_LOGOUT_REDIRECT_URI: 'https://foo.com/', - REACT_APP_GITLAB_SCOPES: 'openid profile read_user read_repository api', - }; - - // Example values with "bar" as basename URL. - //Trailing and ending slashes are optional. - window.env = { - REACT_APP_ENVIRONMENT: "dev", - REACT_APP_URL: 'https://foo.com/', - REACT_APP_URL_BASENAME: 'bar', - REACT_APP_URL_DTLINK: '/lab', - REACT_APP_URL_LIBLINK: '', - REACT_APP_WORKBENCHLINK_TERMINAL: '/terminals/main', - REACT_APP_WORKBENCHLINK_VNCDESKTOP: '/tools/vnc/?password=vncpassword', - REACT_APP_WORKBENCHLINK_VSCODE: '/tools/vscode/', - REACT_APP_WORKBENCHLINK_JUPYTERLAB: '/lab', - REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: '', - - REACT_APP_CLIENT_ID: '934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0', - REACT_APP_AUTH_AUTHORITY: 'https://gitlab.foo.com/', - REACT_APP_REDIRECT_URI: 'https://foo.com/bar/Library', - REACT_APP_LOGOUT_REDIRECT_URI: 'https://foo.com/bar', - REACT_APP_GITLAB_SCOPES: 'openid profile read_user read_repository api', - }; - ``` + ```js + window.env = { + REACT_APP_ENVIRONMENT: "prod | dev", + REACT_APP_URL: "URL for the gateway", + REACT_APP_URL_BASENAME: "Base URL for the client website"(optional), + REACT_APP_URL_DTLINK: "Endpoint for the Digital Twin", + REACT_APP_URL_LIBLINK: "Endpoint for the Library Assets", + REACT_APP_WORKBENCHLINK_TERMINAL: "Endpoint for the terminal link", + REACT_APP_WORKBENCHLINK_VNCDESKTOP: "Endpoint for the VNC Desktop link", + REACT_APP_WORKBENCHLINK_VSCODE: "Endpoint for the VS Code link", + REACT_APP_WORKBENCHLINK_JUPYTERLAB: "Endpoint for the Jupyter Lab link", + REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: + "Endpoint for the Jupyter Notebook link", + + REACT_APP_CLIENT_ID: 'AppID genereated by the gitlab OAuth provider', + REACT_APP_AUTH_AUTHORITY: 'URL of the private gitlab instance', + REACT_APP_REDIRECT_URI: 'URL of the homepage for the logged in users of the website', + REACT_APP_LOGOUT_REDIRECT_URI: 'URL of the homepage for the anonymous users of the website', + REACT_APP_GITLAB_SCOPES: 'OAuth scopes. These should match with the scopes set in gitlab OAuth provider', + }; + + // Example values with no base URL. Trailing and ending slashes are optional. + window.env = { + REACT_APP_ENVIRONMENT: 'prod', + REACT_APP_URL: 'https://foo.com/', + REACT_APP_URL_BASENAME: '', + REACT_APP_URL_DTLINK: '/lab', + REACT_APP_URL_LIBLINK: '', + REACT_APP_WORKBENCHLINK_TERMINAL: '/terminals/main', + REACT_APP_WORKBENCHLINK_VNCDESKTOP: '/tools/vnc/?password=vncpassword', + REACT_APP_WORKBENCHLINK_VSCODE: '/tools/vscode/', + REACT_APP_WORKBENCHLINK_JUPYTERLAB: '/lab', + REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: '', + + REACT_APP_CLIENT_ID: '934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0', + REACT_APP_AUTH_AUTHORITY: 'https://gitlab.foo.com/', + REACT_APP_REDIRECT_URI: 'https://foo.com/Library', + REACT_APP_LOGOUT_REDIRECT_URI: 'https://foo.com/', + REACT_APP_GITLAB_SCOPES: 'openid profile read_user read_repository api', + }; + + // Example values with "bar" as basename URL. + //Trailing and ending slashes are optional. + window.env = { + REACT_APP_ENVIRONMENT: "dev", + REACT_APP_URL: 'https://foo.com/', + REACT_APP_URL_BASENAME: 'bar', + REACT_APP_URL_DTLINK: '/lab', + REACT_APP_URL_LIBLINK: '', + REACT_APP_WORKBENCHLINK_TERMINAL: '/terminals/main', + REACT_APP_WORKBENCHLINK_VNCDESKTOP: '/tools/vnc/?password=vncpassword', + REACT_APP_WORKBENCHLINK_VSCODE: '/tools/vscode/', + REACT_APP_WORKBENCHLINK_JUPYTERLAB: '/lab', + REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: '', + + REACT_APP_CLIENT_ID: '934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0', + REACT_APP_AUTH_AUTHORITY: 'https://gitlab.foo.com/', + REACT_APP_REDIRECT_URI: 'https://foo.com/bar/Library', + REACT_APP_LOGOUT_REDIRECT_URI: 'https://foo.com/bar', + REACT_APP_GITLAB_SCOPES: 'openid profile read_user read_repository api', + }; + ``` - Copy the entire contents of the build folder to the root directory of your server where you want to deploy the app. You can use FTP, SFTP, or any @@ -90,7 +90,6 @@ To host DTaaS client website on your server, follow these steps: - Once the files are on your server, you should be able to access your app by visiting your server's IP address or domain name in a web browser. - :fontawesome-solid-circle-info: The website depends on **Traefik gateway** and **ML Workspace** components to be available. Otherwise, you only get a skeleton non-functional website. diff --git a/docs/admin/client/auth.md b/docs/admin/client/auth.md index 49a746377..82b947f87 100644 --- a/docs/admin/client/auth.md +++ b/docs/admin/client/auth.md @@ -100,4 +100,7 @@ All of these instances can use the same gitlab instance for authentication. | https://foo.com/bar | https://foo.gitlab.com | https://foo.com/au/Library | https://foo.com/au | autogenerated by gitlab | || -If you are hosting multiple DTaaS instances on the same server, do not a 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. \ No newline at end of file +If you are hosting multiple DTaaS instances on the same server, +do not a 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. \ No newline at end of file diff --git a/docs/admin/servers/lib/LIB-MS.md b/docs/admin/servers/lib/LIB-MS.md index 2a7f68376..f501cf5c4 100644 --- a/docs/admin/servers/lib/LIB-MS.md +++ b/docs/admin/servers/lib/LIB-MS.md @@ -116,7 +116,7 @@ The lib microservice supports two GraphQL queries. ### Directory Listing -#### Query +#### Query: List of Files To retrieve a list of files in a directory, use the following GraphQL query. Replace `path` with the desired directory path. @@ -148,7 +148,7 @@ query { } ``` -#### Response +#### Response: List of Files This query returns the list of files and subdirectories in the specified directory. The response will include the name and type of each item. @@ -211,7 +211,7 @@ The response will include the name and type of each item. ### Fetching a File -#### Query +#### Query: Get File Contents This query receives directory path and send the file contents to user in response. @@ -234,7 +234,7 @@ query { } ``` -#### Response +#### Response: Get File Contents This query returns the name, raw binary blob, and raw text blob of the specified file. The `rawBlob` field contains the file contents @@ -261,7 +261,6 @@ as plain text. } ``` - ## HTTP API Calls The lib microservice also supports making API calls using HTTP POST requests. @@ -289,7 +288,6 @@ POST /lib HTTP/1.1 Host: localhost:4001 Content-Type: application/json Content-Length: 388 - { "query":"query {\n listDirectory(path: \"user1\") {\n repository {\n tree {\n blobs {\n edges {\n node {\n name\n type\n }\n }\n }\n trees {\n edges {\n node {\n name\n type\n }\n }\n }\n }\n }\n }\n}" } @@ -305,7 +303,6 @@ Content-Length: 306 Content-Type: application/json; charset=utf-8 Date: Tue, 26 Sep 2023 20:26:49 GMT X-Powered-By: Express - {"data":{"listDirectory":{"repository":{"tree":{"blobs":{"edges":[]},"trees":{"edges":[{"node":{"name":"data","type":"tree"}},{"node":{"name":"digital twins","type":"tree"}},{"node":{"name":"functions","type":"tree"}},{"node":{"name":"models","type":"tree"}},{"node":{"name":"tools","type":"tree"}}]}}}}}} ``` @@ -321,7 +318,6 @@ POST /lib HTTP/1.1 Host: localhost:4001 Content-Type: application/json Content-Length: 217 - { "query":"query {\n readFile(path: \"user2/data/welcome.txt\") {\n repository {\n blobs {\n nodes {\n name\n rawBlob\n rawTextBlob\n }\n }\n }\n }\n}" } @@ -335,6 +331,5 @@ Content-Length: 134 Content-Type: application/json; charset=utf-8 Date: Wed, 27 Sep 2023 09:17:18 GMT X-Powered-By: Express - {"data":{"readFile":{"repository":{"blobs":{"nodes":[{"name":"welcome.txt","rawBlob":"hello world","rawTextBlob":"hello world"}]}}}}} ``` diff --git a/docs/user/digital-twins/create.md b/docs/user/digital-twins/create.md index 04ce44fe6..deeb72a53 100644 --- a/docs/user/digital-twins/create.md +++ b/docs/user/digital-twins/create.md @@ -19,7 +19,7 @@ $$ where D denotes data, M denotes models, F denotes functions, T denotes tools, $C_{dt}$ denotes DT configuration and $D_t$ -is a symbolic notation for a digital twin itself. The +is a symbolic notation for a digital twin itself. The $\{ D{^*},M^{*},(FT)^{+} \}C_{dt}$ expression denotes composition of DT from D,M,T and F assets. The $*$ indicates zero or one more instances of an asset and @@ -90,7 +90,8 @@ workspace/ maestro-2.3.0-jar-with-dependencies.jar ``` -The `workspace/data/mass-spring-damper/` contains `input` and `output` data for the mass-spring-damper digital twin. +The `workspace/data/mass-spring-damper/` contains +`input` and `output` data for the mass-spring-damper digital twin. The two FMU models needed for this digital twin are in `models/` directory. @@ -113,12 +114,10 @@ are responsible for lifecycle management of this digital twin. The [lifecycle page](lifecycle.md) provides more explanation on these programs. !!! Abstract "Execution of a Digital Twin" - A frequent question arises on the run time characteristics of a digital twin. The natural intuition is to say that a digital twin must operate as long as its physical twin is in operation. **If a digital twin runs for a finite time and then ends, can it be called a digital twin?** - **The answer is a resounding YES**. The Industry 4.0 usecases seen among SMEs have digital twins that run for a finite time. @@ -135,21 +134,21 @@ The [lifecycle page](lifecycle.md) provides more explanation on these programs. and type the following commands. 1. Download the [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) - ``` - $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip - $unzip main.zip - ``` + ``` + $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip + $unzip main.zip + ``` 1. Open a file browser and copy the files from this uncompressed folder into your workspace folder (`/workspace`). Make sure that the file placement matches the one given above. 1. Go to the digital twin directory and run - ``` - $cd /workspace/digital twins/mass-spring-damper - $lifecycle/execute - ``` + ``` + $cd /workspace/digital twins/mass-spring-damper + $lifecycle/execute + ``` - The last command executes the mass-spring-damper - digital twin and stores the co-simulation output - in `data/mass-spring-damper/output`. \ No newline at end of file + The last command executes the mass-spring-damper + digital twin and stores the co-simulation output + in `data/mass-spring-damper/output`. \ No newline at end of file diff --git a/docs/user/examples/incubator/README.md b/docs/user/examples/incubator/README.md index 61361b3dd..f4d96e337 100644 --- a/docs/user/examples/incubator/README.md +++ b/docs/user/examples/incubator/README.md @@ -24,11 +24,7 @@ with access to the virtual host "/" ``` ```bash -docker run -d \ - --name rabbitmq-server \ - -p 15672:15672 -p 5672:5672 \ - rabbitmq:3-management - +docker run -d --name rabbitmq-server -p 15672:15672 -p 5672:5672 rabbitmq:3-management docker exec rabbitmq-server rabbitmqctl add_user incubator incubator docker exec rabbitmq-server rabbitmqctl set_permissions -p "/" incubator ".*" ".*" ".*" ``` diff --git a/docs/user/servers/lib/LIB-MS.md b/docs/user/servers/lib/LIB-MS.md index ab08944e3..d5f9ae241 100644 --- a/docs/user/servers/lib/LIB-MS.md +++ b/docs/user/servers/lib/LIB-MS.md @@ -139,18 +139,16 @@ send requests to: https://foo.com/lib ``` === "HTTP Response" - ``` http-response - HTTP/1.1 200 OK - Access-Control-Allow-Origin: * - Connection: close - Content-Length: 306 - Content-Type: application/json; charset=utf-8 - Date: Tue, 26 Sep 2023 20:26:49 GMT - X-Powered-By: Express - - {"data":{"listDirectory":{"repository":{"tree":{"blobs":{"edges":[]},"trees":{"edges":[{"node":{"name":"data","type":"tree"}},{"node":{"name":"digital twins","type":"tree"}},{"node":{"name":"functions","type":"tree"}},{"node":{"name":"models","type":"tree"}},{"node":{"name":"tools","type":"tree"}}]}}}}}} - - ``` +``` http-response +HTTP/1.1 200 OK +Access-Control-Allow-Origin: * +Connection: close +Content-Length: 306 +Content-Type: application/json; charset=utf-8 +Date: Tue, 26 Sep 2023 20:26:49 GMT +X-Powered-By: Express +{"data":{"listDirectory":{"repository":{"tree":{"blobs":{"edges":[]},"trees":{"edges":[{"node":{"name":"data","type":"tree"}},{"node":{"name":"digital twins","type":"tree"}},{"node":{"name":"functions","type":"tree"}},{"node":{"name":"models","type":"tree"}},{"node":{"name":"tools","type":"tree"}}]}}}}}} +``` ### Fetch a file from the available files @@ -161,68 +159,68 @@ with content of `hello world`. === "GraphQL Request" - ```graphql-request - query { - readFile(path: "user2/data/sample.txt") { - repository { - blobs { - nodes { - name - rawBlob - rawTextBlob - } - } +```graphql-request +query { + readFile(path: "user2/data/sample.txt") { + repository { + blobs { + nodes { + name + rawBlob + rawTextBlob } } } - ``` + } +} +``` === "GraphQL Response" - ```graphql-response - { - "data": { - "readFile": { - "repository": { - "blobs": { - "nodes": [ - { - "name": "sample.txt", - "rawBlob": "hello world", - "rawTextBlob": "hello world" - } - ] + +```graphql-response +{ + "data": { + "readFile": { + "repository": { + "blobs": { + "nodes": [ + { + "name": "sample.txt", + "rawBlob": "hello world", + "rawTextBlob": "hello world" } - } + ] } } } - ``` + } +} +``` === "HTTP Request" - ```http-request - POST /lib HTTP/1.1 - Host: foo.com - Content-Type: application/json - Content-Length: 217 - { - "query":"query {\n readFile(path: \"user2/data/welcome.txt\") {\n repository {\n blobs {\n nodes {\n name\n rawBlob\n rawTextBlob\n }\n }\n }\n }\n}" - } - ``` +```http-request +POST /lib HTTP/1.1 +Host: foo.com +Content-Type: application/json +Content-Length: 217 +{ + "query":"query {\n readFile(path: \"user2/data/welcome.txt\") {\n repository {\n blobs {\n nodes {\n name\n rawBlob\n rawTextBlob\n }\n }\n }\n }\n}" +} +``` === "HTTP Response" - ```http-response - HTTP/1.1 200 OK - Access-Control-Allow-Origin: * - Connection: close - Content-Length: 134 - Content-Type: application/json; charset=utf-8 - Date: Wed, 27 Sep 2023 09:17:18 GMT - X-Powered-By: Express - {"data":{"readFile":{"repository":{"blobs":{"nodes":[{"name":"welcome.txt","rawBlob":"hello world","rawTextBlob":"hello world"}]}}}}} - - ``` +```http-response +HTTP/1.1 200 OK +Access-Control-Allow-Origin: * +Connection: close +Content-Length: 134 +Content-Type: application/json; charset=utf-8 +Date: Wed, 27 Sep 2023 09:17:18 GMT +X-Powered-By: Express +{"data":{"readFile":{"repository":{"blobs":{"nodes":[{"name":"welcome.txt","rawBlob":"hello world","rawTextBlob":"hello world"}]}}}}} +``` The _path_ refers to the file path to look at: For example, _user1_ looks at files of diff --git a/docs/user/servers/lib/assets.md b/docs/user/servers/lib/assets.md index 461db45f2..6354f84a6 100644 --- a/docs/user/servers/lib/assets.md +++ b/docs/user/servers/lib/assets.md @@ -10,7 +10,6 @@ The DTaaS software categorizes all the reusable library assets into five categor ![Categories of Library Assets](library-assets.png) - ### Functions The functions responsible for pre- and post-processing of: diff --git a/docs/user/website/index.md b/docs/user/website/index.md index 1975edcde..8389dbb9b 100644 --- a/docs/user/website/index.md +++ b/docs/user/website/index.md @@ -2,7 +2,7 @@ This page contains a screenshot driven preview of the website. -### Login to enter the DTaaS software platform +## Login to enter the DTaaS software platform ![Login](login.png) @@ -11,14 +11,14 @@ You can enter the user credentials. You will be using HTTPS secure communication so the username and password are secure. -### Enter username again +## Enter username again ![Username](username.png) You are now logged into the server. You can enter the same username again to log into your workspace. -### Overview of menu items +## Overview of menu items The menu is hidden by default. Only the icons of menu items are visible. @@ -40,7 +40,7 @@ run the digital twins. within Jupyter Lab. You have more tools at your disposal on this page. -### Library tabs and their help text +## Library tabs and their help text ![Menu](library.png) @@ -48,7 +48,7 @@ You can see the file manager and five tabs above the library manager. Each tab provides help text to guide users in the use of different directories in their workspace. -??? Functions tip +??? Functions tip The functions responsible for pre- and post-processing of: data inputs, data outputs, control outputs. The data science libraries and functions can @@ -59,7 +59,6 @@ directories in their workspace. along with right data inputs can make model calibration an achievable goal. Another use of functions is to process the sensor and actuator data of both Physical Twins and Digital Twins. - ``` ??? Data tip The data sources and sinks available to a digital twins. @@ -131,7 +130,7 @@ assets within the the directory structure is in the Notebook and all the tasks you can perform in the Jupyter Notebook can be undertaken here. -### Digital Twins page +## Digital Twins page ![Menu](digital_twins.png) @@ -170,7 +169,7 @@ In addition, there is a git plugin installed in the Jupyter Lab using which you can link your files with the external git repositories. -### Workbench +## Workbench The **workbench** page provides links to four integrated tools. @@ -186,7 +185,7 @@ The screenshots of pages opened in new browser are: If you want terminal. Please use the tools dropdown in the Jupyter Notebook. -### Finally logout +## Finally logout ![Logout](logout.png) diff --git a/servers/execution/runner/LICENSE.md b/servers/execution/runner/LICENSE.md index b98cba7be..b5ddfe6f4 100644 --- a/servers/execution/runner/LICENSE.md +++ b/servers/execution/runner/LICENSE.md @@ -3,19 +3,19 @@ /* * This file is part of the INTO-CPS Association. -* + * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, * Finlandsgade 22, 8200 Aarhus N, Denmark. -* + * All rights reserved. -* + * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. -* + * The INTO-CPS tool suite software and the INTO-CPS Association * Public License (ICAPL) are obtained from the INTO-CPS Association, either * from the above address, from the URLs: @@ -23,15 +23,14 @@ * in the INTO-CPS tool suite distribution. * GNU version 3 is obtained from: * http://www.gnu.org/copyleft/gpl.html. -* + * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. -* + * See the full ICAPL conditions for more details. -* */ diff --git a/servers/lib/LICENSE.md b/servers/lib/LICENSE.md index ab735291c..59bb3bcea 100644 --- a/servers/lib/LICENSE.md +++ b/servers/lib/LICENSE.md @@ -3,19 +3,19 @@ /* * This file is part of the INTO-CPS Association. -* + * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, * Finlandsgade 22, 8200 Aarhus N, Denmark. -* + * All rights reserved. -* + * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. -* + * The INTO-CPS tool suite software and the INTO-CPS Association * Public License (ICAPL) are obtained from the INTO-CPS Association, either * from the above address, from the URLs: @@ -23,15 +23,14 @@ * in the INTO-CPS tool suite distribution. * GNU version 3 is obtained from: * http://www.gnu.org/copyleft/gpl.html. -* + * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. -* + * See the full ICAPL conditions for more details. -* */ @@ -60,7 +59,8 @@ Definitions of the INTO-CPS Association Public license modes: Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition that use and redistribution by a member of the INTO-CPS Association is only allowed - within the INTO-CPS Association member's own organization (i.e., its own legal entity), + within the INTO-CPS Association member's own + organization (i.e., its own legal entity), or for a member of the INTO-CPS Association paying a membership fee corresponding to the size of the organization including all its affiliates, use and redistribution diff --git a/servers/lib/README.md b/servers/lib/README.md index 82a635837..d5d8a942c 100644 --- a/servers/lib/README.md +++ b/servers/lib/README.md @@ -247,7 +247,6 @@ POST /lib HTTP/1.1 Host: localhost:4001 Content-Type: application/json Content-Length: 388 - { "query":"query {\n listDirectory(path: \"user1\") {\n repository {\n tree {\n blobs {\n edges {\n node {\n name\n type\n }\n }\n }\n trees {\n edges {\n node {\n name\n type\n }\n }\n }\n }\n }\n }\n}" } @@ -263,7 +262,6 @@ Content-Length: 306 Content-Type: application/json; charset=utf-8 Date: Tue, 26 Sep 2023 20:26:49 GMT X-Powered-By: Express - {"data":{"listDirectory":{"repository":{"tree":{"blobs":{"edges":[]},"trees":{"edges":[{"node":{"name":"data","type":"tree"}},{"node":{"name":"digital twins","type":"tree"}},{"node":{"name":"functions","type":"tree"}},{"node":{"name":"models","type":"tree"}},{"node":{"name":"tools","type":"tree"}}]}}}}}} ``` @@ -279,7 +277,6 @@ POST /lib HTTP/1.1 Host: localhost:4001 Content-Type: application/json Content-Length: 217 - { "query":"query {\n readFile(path: \"user2/data/welcome.txt\") {\n repository {\n blobs {\n nodes {\n name\n rawBlob\n rawTextBlob\n }\n }\n }\n }\n}" } @@ -293,6 +290,5 @@ Content-Length: 134 Content-Type: application/json; charset=utf-8 Date: Wed, 27 Sep 2023 09:17:18 GMT X-Powered-By: Express - {"data":{"readFile":{"repository":{"blobs":{"nodes":[{"name":"welcome.txt","rawBlob":"hello world","rawTextBlob":"hello world"}]}}}}} ``` diff --git a/ssl/README.md b/ssl/README.md index 74819d2c9..08c49c257 100644 --- a/ssl/README.md +++ b/ssl/README.md @@ -28,13 +28,10 @@ to **servers/gateway/certs** directory. 1) Authorities --> import ca.cert.pem and checkmark Trust this CA to identify websites Trust this CA to identify email users - 1) Your Certificates --> Import --> Add PKCS12 format client certificate (client.key.p12) The password for this certificate is "dtaas" - It's important to add the certificates inthe same order. Otherwise, certificate errors are shown. - 1) Setting default client SSL certificate for mTLS a) Open an empty tab and type `about:config` b) Accept the risk and continue From 57e1764ad62ae3d24d203e641e1f798af367a9e8 Mon Sep 17 00:00:00 2001 From: Asti Date: Sat, 30 Sep 2023 12:40:54 +0530 Subject: [PATCH 27/35] Merge 2 --- mkdocs-github.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/mkdocs-github.yml b/mkdocs-github.yml index c0db98d57..23e20f5d6 100644 --- a/mkdocs-github.yml +++ b/mkdocs-github.yml @@ -28,18 +28,7 @@ nav: - Separate Packages: - website: admin/client/CLIENT.md - library microservice: admin/servers/lib/LIB-MS.md -<<<<<<< HEAD - - Developer: - - System: - - Architecture: developer/system/architecture.md - - Library Microservice: developer/system/lib-ms.md - - Client: developer/system/client.md - - Testing: - - Introduction: developer/testing/intro.md - - Index: developer/index.md -======= - Services: admin/services.md ->>>>>>> feature/distributed-demo - User: - Motivation: user/motivation.md - Features: user/features.md @@ -56,15 +45,10 @@ nav: - Overview: developer/index.md - System: - Architecture: developer/system/architecture.md -<<<<<<< HEAD - - Library Microservice: developer/system/lib-ms.md - - Client: developer/system/client.md -======= - Current Status: developer/system/current-status.md - Components: - Client: developer/client/client.md - Library Microservice: developer/servers/lib/lib-ms.md ->>>>>>> feature/distributed-demo - Testing: developer/testing/intro.md - Bugs: bugs.md - Thanks: thanks.md From 69c25e92e75770a9531a30359682af0e721ee851 Mon Sep 17 00:00:00 2001 From: Asti Date: Sun, 1 Oct 2023 13:16:02 +0530 Subject: [PATCH 28/35] "Merge Conflicts Resolution" --- client/README.md | 5 -- docs/developer/system/architecture.md | 4 - docs/user/digital-twins/create.md | 106 -------------------------- docs/user/digital-twins/lifecycle.md | 40 ---------- files/README.md | 8 -- 5 files changed, 163 deletions(-) diff --git a/client/README.md b/client/README.md index 4648f0e8e..979324575 100644 --- a/client/README.md +++ b/client/README.md @@ -43,14 +43,9 @@ yarn test -e #run end-to-end tests ## Authentication The react client website uses OAuth authentication. -<<<<<<< HEAD The [authentication page](../docs/admin/client/auth.md) provides details on setting up oauth authentication for the client application. -======= -The [authentication page](../docs/admin/client/auth.md) provides details -on setting up oauth authentication for the client application. ->>>>>>> feature/distributed-demo ## Custom configuration diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index ca4627c8b..a6b38176b 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -1,8 +1,4 @@ -<<<<<<< HEAD -# System Overview -======= # :european_castle: System Overview ->>>>>>> feature/distributed-demo ## User Requirements diff --git a/docs/user/digital-twins/create.md b/docs/user/digital-twins/create.md index 743c28867..e20a882ee 100644 --- a/docs/user/digital-twins/create.md +++ b/docs/user/digital-twins/create.md @@ -1,64 +1,24 @@ # Create a Digital Twin -<<<<<<< HEAD The first step in digital twin creation is to use the available assets in your workspace. If you have assets / files in your computer that need to be available in the DTaaS workspace, then please follow the instructions provided in [library assets](../servers/lib/assets.md). -======= -The first step in digital twin creation is to use the available assets -in your workspace. If you have assets / files in your computer that need -to be available in the DTaaS workspace, then please follow the instructions -provided in [library assets](../servers/lib/assets.md). ->>>>>>> feature/distributed-demo There are dependencies among the library assets. These dependencies are shown below. ![Relation between reusable assets](asset-relationship.png) -<<<<<<< HEAD -A digital twin can only be created by linking the assets -in a meaningful way. This relationship can be expressed using a mathematical equation: -======= A digital twin can only be created by linking the assets in a meaningful way. This relationship can be expressed using a mathematical equation: ->>>>>>> feature/distributed-demo $$ D_t: \{ D{^*},M^{*},(FT)^{+} \}C_{dt} $$ -<<<<<<< HEAD -where D denotes data, M denotes models, F denotes functions, -T denotes tools, $C_{dt}$ denotes DT configuration and $D_t$ -is a symbolic notation for a digital twin itself. The -$\{ D{^*},M^{*},(FT)^{+} \}C_{dt}$ expression denotes -composition of DT from D,M,T and F assets. The $*$ -indicates zero or one more instances of an asset and -$+$ indicates one or more instances of an asset. - -The DT configuration specifies the relevant assets to use, -the potential parameters to be set for these assets. -If a DT needs to use RabbitMQ, InfluxDB like services -supported by the platform, the DT configuration needs -to have access credentials for these services. - -This kind of generic DT definition is based on the DT -examples seen in the wild. You are at liberty to deviate -from this definition of DT. The only requirement is the -ability to run the DT from either commandline or desktop. - -!!! tip - If you are stepping into the world of Digital Twins, - you might not have distinct digital twin assets. - You are likely to have one directory of everything - in which you run your digital twin. - In such a case we recommend that you upload this monolithic - digital twin into **digital twin/your_digital_twin_name** directory. -======= where D denotes data, M denotes models, F denotes functions, T denotes tools, $C_{dt}$ denotes DT configuration and $D_t$ is a symbolic notation for a digital twin itself. The $\{ D{^*},M^{*},(FT)^{+} \}C_{dt}$ expression @@ -83,7 +43,6 @@ or desktop. of everything in which you run your digital twin. In such a case we recommend that you upload this monolithic digital twin into **digital twin/your_digital_twin_name** directory. ->>>>>>> feature/distributed-demo ## Example @@ -132,40 +91,6 @@ workspace/ maestro-2.3.0-jar-with-dependencies.jar ``` -<<<<<<< HEAD -The `workspace/data/mass-spring-damper/` contains -`input` and `output` data for the mass-spring-damper digital twin. - -The two FMU models needed for this digital twin are in `models/` directory. - -The co-simulation digital twin needs Maestro co-simulation orchestrator. -Since this is a reusable asset for all the co-simulation based DTs, the -tool has been placed in `common/tools/` directory. - -The actual digital twin configuration is specified in -`digital twins/mass-spring-damper` directory. The co-simulation -configuration is specified in two json files, namely `cosim.json` -and `time.json`. A small explanation of digital twin for its users -can be placed in `digital twins/mass-spring-damper/README.md`. - -The launch program for this digital twin -is in `digital twins/mass-spring-damper/lifecycle/execute`. -This launch program runs the co-simulation digital twin. -The co-simulation runs till completion and then ends. -The programs in `digital twins/mass-spring-damper/lifecycle` -are responsible for lifecycle management of this digital twin. -The [lifecycle page](lifecycle.md) provides more explanation on these programs. - -!!! Abstract "Execution of a Digital Twin" - A frequent question arises on the run time characteristics of a digital twin. - The natural intuition is to say that a digital twin must operate as long as - its physical twin is in operation. - **If a digital twin runs for a finite time and then ends, can it be called a digital twin?** - **The answer is a resounding YES**. - The Industry 4.0 usecases seen among SMEs have digital twins - that run for a finite time. - These digital twins are often run at the discretion of the user. -======= The `workspace/data/mass-spring-damper/` contains `input` and `output` data for the mass-spring-damper digital twin. @@ -198,41 +123,11 @@ The [lifecycle page](lifecycle.md) provides more explanation on these programs. **If a digital twin runs for a finite time and then ends, can it be called a digital twin?** ->>>>>>> feature/distributed-demo **The answer is a resounding YES**. The Industry 4.0 usecases seen among SMEs have digital twins that run for a finite time. These digital twins are often run at the discretion of the user. -<<<<<<< HEAD -1. Go to Workbench tools page of the DTaaS website - and open VNC Desktop. This opens a new tab in your browser -1. A page with VNC Desktop and a connect button comes up. - Click on Connect. - You are now connected to the Linux Desktop of your workspace. -1. Open a Terminal (black rectangular icon in the top left region of your tab) - and type the following commands. -1. Download the [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) - - ``` - $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip - $unzip main.zip - ``` - -1. Open a file browser and copy the files from this uncompressed - folder into your workspace folder (`/workspace`). - Make sure that the file placement matches the one given above. -1. Go to the digital twin directory and run - - ``` - $cd /workspace/digital twins/mass-spring-damper - $lifecycle/execute - ``` - - The last command executes the mass-spring-damper - digital twin and stores the co-simulation output - in `data/mass-spring-damper/output`. -======= **You can run this digital twin by**, 1. Go to Workbench tools page of the DTaaS website and open VNC Desktop. @@ -261,4 +156,3 @@ matches the one given above. The last command executes the mass-spring-damper digital twin and stores the co-simulation output in `data/mass-spring-damper/output`. ->>>>>>> feature/distributed-demo diff --git a/docs/user/digital-twins/lifecycle.md b/docs/user/digital-twins/lifecycle.md index b536a04f1..45c05b17c 100644 --- a/docs/user/digital-twins/lifecycle.md +++ b/docs/user/digital-twins/lifecycle.md @@ -1,16 +1,8 @@ -<<<<<<< HEAD -# Digital Twin Lifecycle -======= # :recycle: Digital Twin Lifecycle ->>>>>>> feature/distributed-demo The physical products in the real world have product lifecycle. A simplified four-stage product life is illustrated here. -<<<<<<< HEAD -A DT lifecycle consists of **explore, create, execute, save, analyse, evolve** -and **terminate** phases. -======= A digital twin tracking the physical products (twins) need to track and evolve in conjunction with the corresponding physical twin. @@ -28,7 +20,6 @@ undertaken in each phase are outlined in this section. A DT lifecycle consists of **explore, create, execute, save, analyse, evolve** and **terminate** phases. ->>>>>>> feature/distributed-demo | Phase | Main Activities | |:----|:----| @@ -45,10 +36,6 @@ support all the phases. It is also possible for digital twin engineers to add more phases to digital they are developing. Thus it is important for the DTaaS software platform needs to accommodate needs of different DTs. -<<<<<<< HEAD -Even though not mandatory, having a coding structure makes it easy -to manage DT lifecycle phases. It is recommended to have the following structure -======= A potential linear representation of the tasks undertaken in a digital twin lifecycle are shown here. @@ -66,7 +53,6 @@ of the DTaaS software platform. Even though not mandatory, having a matching coding structure makes it easy to for users to create and manage their DTs within the DTaaS. It is recommended to have the following structure: ->>>>>>> feature/distributed-demo ```text workspace/ @@ -81,16 +67,6 @@ workspace/ terminate ``` -<<<<<<< HEAD -A dedicated program exists for each phase of DT lifecycle. -Each program can be as simple as a script that launches other -programs or sends messages to a live digital twin. - -## Examples - -Here are the programs / scripts to manage three phases -in the lifecycle of **mass-spring-damper DT**. -======= A dedicated program exists for each phase of DT lifecycle. Each program can be as simple as a script that launches other programs or sends messages to a live digital twin. @@ -99,7 +75,6 @@ to a live digital twin. Here are the programs / scripts to manage three phases in the lifecycle of **mass-spring-damper DT**. ->>>>>>> feature/distributed-demo ```bash title="lifecycle/execute" #!/bin/bash @@ -111,15 +86,6 @@ java -jar /workspace/common/tools/maestro-2.3.0-jar-with-dependencies.jar \ output-dir>debug.log 2>&1 ``` -<<<<<<< HEAD -The execute phases uses the DT configuration, FMU models and Maestro -tool to execute the digital twin. The script also stores the output of -cosimulation in `/workspace/data/mass-spring-damper/output`. - -It is possible for a DT not to support a specific lifecycle phase. -This intention can be specified with an empty script and a helpful -message if deemed necessary. -======= The execute phases uses the DT configuration, FMU models and Maestro tool to execute the digital twin. The script also stores the output of cosimulation in `/workspace/data/mass-spring-damper/output`. @@ -127,21 +93,15 @@ cosimulation in `/workspace/data/mass-spring-damper/output`. It is possible for a DT not to support a specific lifecycle phase. This intention can be specified with an empty script and a helpful message if deemed necessary. ->>>>>>> feature/distributed-demo ```bash title="lifecycle/analyze" #!/bin/bash printf "operation is not supported on this digital twin" ``` -<<<<<<< HEAD The lifecycle programs can call other programs in the code base. In the case of `lifecycle/terminate` program, it is calling another script to do the necessary job. -======= -The lifecycle programs can call other programs in the code base. In the case of -`lifecycle/terminate` program, it is calling another script to do the necessary job. ->>>>>>> feature/distributed-demo ```bash title="lifecycle/terminate" #!/bin/bash diff --git a/files/README.md b/files/README.md index c675f9f04..c88ee780e 100644 --- a/files/README.md +++ b/files/README.md @@ -1,13 +1,5 @@ -<<<<<<< HEAD -# Directory Structure Template - -This directory contains directory structure template for -user files of the platform. -These files are served by `servers/lib` microservice. -======= # User files This directory contains directory structure template for storing the user files of the platform. These files are mapped to `/workspace` directory in user workspaces. ->>>>>>> feature/distributed-demo From 5af0838d79cde27ab0da0316578124537670a0fe Mon Sep 17 00:00:00 2001 From: Asti Date: Sun, 1 Oct 2023 14:41:32 +0530 Subject: [PATCH 29/35] Sync --- docs/developer/system/architecture.png | Bin 147311 -> 0 bytes docs/developer/system/c4l1.png | Bin 93316 -> 0 bytes docs/developer/system/c4l3.png | Bin 229767 -> 0 bytes docs/developer/system/client.md | 13 -- docs/developer/system/lib-ms.md | 167 ---------------------- docs/developer/system/package-diagram.png | Bin 66667 -> 0 bytes 6 files changed, 180 deletions(-) delete mode 100644 docs/developer/system/architecture.png delete mode 100644 docs/developer/system/c4l1.png delete mode 100644 docs/developer/system/c4l3.png delete mode 100644 docs/developer/system/client.md delete mode 100644 docs/developer/system/lib-ms.md delete mode 100644 docs/developer/system/package-diagram.png diff --git a/docs/developer/system/architecture.png b/docs/developer/system/architecture.png deleted file mode 100644 index ae1ad2d463978c834ea55ed91964fb79812853e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147311 zcmZ5|byU<__qPE^2uOD$Avu76q|!)AcQYW3bW4e}h|(b`0@9t*AVZ6Ei`39V*L%k6 z{oQB1YvCWm8fVUTpL6!!pV)+}D$8PHl4IVwbqiZwPD<_8EtJMvx9+5%qk-T2WYPz} zxOLk_O;+Mo$spwhc!6T|OzGLJTjjA>m!_!THHMR%uFI`kI337;w|g85ENPe(N&oS5hu(wikfZ=0ivsD7&dJiWo^qO`Fwv7u4*sz5F55#h8179q>pehu_TLY=D7`zz z|GWcT2@S9Df8P+o6#Ulkf8QVx|E!bqe?9>vtB=+!@xSjt4;r?3P_FRzD?((3T!uvN zMRrxpnAOhU(a^-kG02)NcZPR!c;NZclup=2X=RGe1!Qjo_sawHm7By{0sj?ZzRQ^n0`?I*s zwzT;T_}ZY0L1al^@(_Tp9aCB#v2l2-$0kaC$h0$^=om` zg*|@Gj6Xc}@)V&?PuGeAug&`2KkR_)u&yz)Gn8aC+7izB0H#g2R>DM|)ml`#zYG{PC1>ZBj zzC7!GTs;I96$65+?KtsqQZsJGvDMHjK5ll_ptGxM13YO+FcGUc;orT?k{_$F*H805 z-|+Tn3qtMv{(W>t^UVCKaVs@*rfeND?N!= zhPeufoa=Lqwayr)tBJ<0`I>5K`0efO2xmjLan02p^;AM)VtPJ44I2G2<0gu0>PuBqqClCcswX_ zs93C1-d-0N5VizyQOhBjhUe8Jr@#2YyjI4feG^)V0v{_Wj?@;b| zd3~{~cbWXeg{h*la_Lq5yOfj&k9n`p25*a$vU74EHa}RJMeV2gnwflk<8>>c8;>&& z4_5n+j_aIP5Z)@YzJ~*z=Nq4^-*ri3bw!fcIy?2mP@Q{61j5%YH~m$d-;I zmQzugc$gr5U*F7$ zR0$lVlK;7ZOt}5Kij#TekNmICteV9RdKs!oiSY2UD$}i>whHL*_s*npH%4G(p=+tC zehTGHfT*3Cz0B;(K&kWVB5X`@?mB3jsbgjG=JFbc*-gf>vgJt+xSJEUO&r?(L7JYh^(83WJ<62ijq%IU*j^#z)*zyV(x62JK|L%72N z8_|xuLs`l&&T7iYpjOF~d5tCfeQ{Sp=Y_fP0{p$lY@Aoo%{uD?5_2y?VmP)}TlkR_x|t z(+y*5SCdwU3!Sg$KwQ^VuhQmy50$n*OOJeS+Mee&W{6)bej-5^`!I$bV|$^s6@qE_ zU9PoMmfEY66c6QD0fiJC|NpLH2RzTQ^-9YTmy8FcudmO$k!PJv`u9*~=>${2%~frA zwN+3kO=Vgv6afO5G>=?T`O7h;ri-0M(kHKSsTufF2PO**VQMm%hKIig#$sJ2O~aP< zI&ddehQuz4jc_Rioob`LUImgF@il+GnE(gZ^$CNpU`pw>z=Chi1W4y@q5oxdKGt=t zqkgW|b^M0f1%Ha*d$>P?u<8#7g^wB@DGP7&HD7~FY#4H#}J~WmqJY$Vibt(l&5LjS=1vOdoeW8rL?T zYjE>UqlayL&Mc`dTJENBl!_$gK=6xJuk&_6#)2a>*k`cvwM&hUiuky$kxwu^w!(GH zli#HFO&Ras2Z7YNQqs7?<8V79B!pD|Ce#p<#&hvDs5Q?QGMV<-t$wXk^3qkNoKlgK zk%b!vTvgAq-+a#WAKhyB#%{@&BNIKkRaVA*pMqb}vC_Ak|Ng1cX= zVHZv!tgh&v>(0Zz87ZJD$N8t$m))~Av4aXLCUHOWm;j-)wqe&PdwQYgwm$p}%aV!j z)#ogcQgeBF-h2?|kT>BL|1^muv#4rVDqkrzzp^6<&lz6cvsuoZ;VFTo2vVu=!NCE-Zw;25<7a;i zHBqcw^Yep8Mct=#?!-Gi=;tao@4=a4%B;=X>)uaGqr6YfCr6RdfIvaQHme|)Er`KHs9nW)E_Bw^g~?_ zr3ljC@AIO!(LM9MBmJbN{UsAe_HL`lA_Y8UHdO|UEFI%@4zxNlGU`P;RZgBCzGk>dcO`(6jHW{5_}wP2oKflR49GS)uA z=AW)sqT}Cw_81FO^Df%`;TggpQ1ukcW*i!o63Hum4G~5(xNjGdRD5=T!cOT4D~>x` z#Q6L1eGuz`Ai<+Vl5qW;7hzB3%Svtz*ZtlLuYkc6k$u#8#RqQW?g!EGDgK+_^iZ%= z*vam9!;-wuRuh-p8>?@PH+i|F6G^wGg0Av~v10-rzPe{NiH@FL$~+Tap;ZF$#@Odr zqXkeJ&LP2xSe$iFjcd7LMg1>51=E!gTNAi5wT=^c@!)@#JKKM<8w<%M=Bk9p8BU&( z@)hwbuz<*hq?jsOgLV8M`rEOnawM@@wpU1`)TwjR=Pyd}TJd-ztec@dQf4vtu$1#@ zh)+P~v|8tkI$Rs-0asPi0WDzlqxR-e#$;ko{uH0QqN0?PRLJ}_XuOV6P*P{r1$m?Q zZgy|3RZ2I;rAr~t9vsI;QwZ4Hv?y>jYgp;jyd0Ccv9Gosk+@ht+MdzI8gy*he{(!Z zKu(he^E{dJsMa<+*_o?mUU^3+Ib5j8W`8=QXaJo70sO&~z@r@fPbA@}Z|;lWSu%a- z12-GdhXpd3ske6nwUsi+`t3@r_)5Fh2BKC^x_N>eVZ5w@r+1 zMEtGE8WiWoppEtuqR5d9!)b`5Z!Sf*+D^`T*2yAI$nx!tOt)r~}ScNkDIf zD-_=kUzEed!aC~Hd-;+TA0OW}{|+k8vj;Y4H{C{Ft3-3Nfzgbx`>@Rli$46O>+`L1 zVSuqXM z@VR|Yoi49V78>312~o0abYv8rZI3p`8wl%4kPwJdG-0&%JXq`vJFXS;>~v5x)?`SC z%rV%#$NzoUCzVXG27LzXswupk#@!ZzECoRp6S9<{HD1nb3O-6Jbu6g+c;2vd0+(@2 zyt0sd$)$g*gG5^t>p4q#2P-dSk)*YC!EvMTJAXa9v^M49{|? z--viS!uE-G>Gm7yb)dy#S25YRiJaZ2r4{L9~>)zMztwf)1*R z^_2BtW$7{k|m`NynI^4cCyU0yEibf z=X=ku!zqfbiPD}XufsBjIUz%bzQJPn;`fSvu(xKNZ}HHvuy`Hjsus6g4+jLyf5Va+ zG~UrODLgy7l!rp|`QK&=dvIoWZ?cM9pRUxM%=;XHfX>>UhS@ zYVaP7uPRo&X4?!;a9lQ3KR+906{vrrou7>U)OXQ#WgUbwvcrjr%g0s;I`swprV}{m zDL5eG)pEWtCx%_48|GT}C+P8+@)Js<9CQ+>@S)Q!6;}?ngDjq3%leMn2Q-jILi$^v z_>?9LOY2O_JBJP(0;*+vH8uJpNZ+KbU^QYGhPmcFF?z6Hwq^D+{7v9j4N`kg+ZM8s z&Dd~L)2ByX>})WCBo zv~Dp7%LxYQA!PvZd;GV5FpVwy6}tKe@iJ>~{0CmSf^|fhoipGR8a@=2nCLR{ekOl@ zOb{vxz4kp_3hS2J{#KlSeRaXW#@0{za&k{J>!mow{U5}zciB!*=nxeP=zpEIt0!!n z-2&>*H;bxS#ryS8pILjqoqYHQOFRg9Ybc>^4j7~9cfLs4>1|nS*&$7H-}>74@DqTA z-DG}DmYYZ8wf&lP85$3u0I-Ee2DHSF{(b^BIux_4S-9VVhll3@1w~|rsLv+B#|T|b zM3$*-K*D;NNSNgtup2CB*yI+ocZ4opTQVUEvg)}TKbI>I3CCW69bTWUuiVkFl-Q*@ z-`gvHxdVHjUih7K<4jWBWGBpi9&|sYN|}z0+x+&Vc53M>#SzVOiG~v}U9XxEf#}GM ziH;outs+gD$|?62p&m+h_x*C+gRY4(x2>P&?jjJ(H)OoKEf<{p_R}b>3#IyVl_GDh zx#6y|Fuw|yDY`Jq?3uMv-AWm&{yC=(Z12`K#Z-Q5(5__epvxXQw%ow1O-@AI2h5p8 zLCDUul;RO! zCnB$@*E|BGYrdQ;Qyhs-=?HGact;u%#5)kBIf)bjhaj4I|3(w#n$g8Qc{yqTI+jhK zg5#AfH}d;px0Q>eX}$SXKISE>GO8pEQ3MS`6plsyr1VG>HFK`xLW>^XQWU>wP0wOm z@DaZ>G4%F3kR)HKpMUQx0c6*fx#iY%gsKQnvqqs$+Q%2^7YC1p0ZrtFMjV<4IIj)0 zbmx`sjhPDd34o)EYKwee`P}0GwQ+EJiBO9=NQ^9o5GaGT`6Hm`=$Z}jB5Yzs4&Ki5 zpCrG3pN*Yyf!GKJoGJq|v#hZSR~~@NhK`kXh|`tWo1w$}Ugk^xd%455p2!XSP>zcSjhwqL?wh^G{2NXmNcIBBq(+=sLGBp_kB(op8dHCs1}!MLvaXGdETTje06fZ^WU{ymUtyFiR-4RVpE7nDev zc`!lyM37A_eyum^v6z@rxmOf|#QYdtnhw)|&|l6iCb=|`RS^$51?h;eG@-PT`95Wp z`E_?Fp5eS%)zi$K*w`2|qKWFH3-)L}7G*b{%*raw`3-SnQnj|K>gzFO;jbcxK@yVy z6~!eb6?7HfzKga9;PNAJJl?L7lqQ+>HY{lzD7Cbd6e)unuEHe?CYNqG+LOGeIECaGi=yh>$O zXX3RQ{PED;;ut=)`p_HZAhi6J0dX8dC0vzc8DYq7oQ+O+zkh$;dyB(wE`dXT(Y?`4 zn*)1{|k$IIXpNBZz)Q!5)D1H{$wG*I8hOsQcyK!G1R*xu3M#tK6c`+nI&{8xOvOuxl+ z`TJhU61Zf-KAAI7MVAh!@j|0ft;mz;lUUuy5s&e4#8?uP(**Grd=H}`YA4*OTg@lp zQd$^`RUzh+5UU*fT7UE}cLUjyPH377=Q}wgMqs1A7VIR0%*0U70V_no&}bfEI9OLg z>NB#F_X9ip<;{sm`@zqjUnaZ4vHi7QElU8(qphSD5T~FQ^A6QDgzeG6Cj{KO{CKlWB)o+N8z(Hp8T3oD7RhqSxb2GkL^wD}BW|?93>Ac@Up>U7Yy!_O z$lU1%8}>0=cLbUSLrc!z1l&N~?If2o1FlDObKB>awlro8g;Ads82?kvLeNn9l}Mc` z*`uK=A<2?3N+hFDISOj3iS|iSFa|dEY(AQqLoa_X>Zrp zt?gs{Kv7-a3J&FoH(BvF+ZpTh9SWb=0&mtptp1aSOzOWTUujRMuAgrYP4&8lnV*Iy zntWS#Rx6XvlbZ$^*16E&G0{e3HZp4I_cLD^pSmCB*w)P zuv<&vc#xjLpj9s>ED}z>nooetq$ww$uS`E)6;!hEHa?Fjw-_RfO&TFIxT7;?UV`B( zKDiO~hn#H%d+%GX+RJqJaVWI`lO3f=JApRzB}%1uY3VRRx5h4cr{+0beo0oHi1}|j z3!ippcxdg0T}d!@#PfJ&6@Jcfadu-XuNqaq<&_n;gi2a;rMvro=<5))JG>0AQ3Yj?lg0AdBYsg1ac zyh&oa1LHYA{FXrxhn9O_NhO?CzDuDb2!0Iyf`y3*ZR>Mipj1q+M7JopVKk#H8bB_9ts;IiWZbBazoC^78U}>-2Wc zDz`(jNh;mZEB&ksDF9iHiUZ{@XESj_#hIUAZ)5;O@VSG8wq_Gjj#!CU#%Yuqz1L3| zZ9S|!VjU1u*>GZcubZu;PGX_Nex}BAJu7SvP~z)bEQ^NT8+p^7$T->F@vE4G#O=A6 zlSo0;lErjk?K6o_q*LV83)mh#8qLH=NEwyNY$t|PPS_l}(DM1O*Y?0=2pqI)Ej$7~ z$z>Ydr+kIby=N(tC~sgunZRjSn5yyMdizjxabZ7@URYRPV2)M<$6tI0yHSY3j#}-G z?N4$GJKZpZk}Wx`ePzjc|I{me}YSq|K+xkwRFJ zRQNAnE5CSS1_PB}pVRe00+kwk5iZ&@^)=QIEjiq>q87#}QOXHre1Q27I+ZJLnQR!M z%K)G3ReYGCQK|8+N4}H=6T&q9WUz2@#?P@~gNefo4=R@qIA!nDIYz+Qn>PC`_?>+8 zU?>`dOfX_a=Dk5|m}!ync3VfN&<*f~{@&`E_{wy_=sPd6qgkZ&GA?rJ32ZjI?3*H2 z%V(yG!*k4Nl872Y+p~HT!J&$-7dbK;LsKKNG+$Ll&uU>qFAUob*5ntiZ&_JTr1^GT zbz5JlE`UV_^bpQ%)b_O6Dl_g0zm8^2GX1`L+h6<#6TGUAUCdkf;38V$tjx5-HJ_|f z_vFKrtf}2ajlK6ps8wc9#1G#zU&D?Kmb0rZ+-&Vsomp?$PwEy$Kfk&iI~%sKOG7a# ztI`*WE``lV%$3v1_|gcJ?`5;=0G;b!J`7g3f+520yBKk-y4X+hf&oJd5tFA(B~o zI6&CQ>Yc3Wx$MTSVs%V}dVID0UhY}+RBqaX`u%Q-qmv+v{;>t0T~SdZU6=RY>wZTR zm9di4Ew-KeTs=A{_f`?^yz8he$lcR9W(Gx5hi41E@E>v{kqXm}5R znm^uwtlJ}v9*)}-9r#k`v2Giq(xu5n?W4W=4)xMLo*4I-5f(W#Mt&EV1IfJiN}CVq z-c1tq7!vk2eNiC~n$)DyaqtGb#TLFb|A$GEq?eud8KJHz86g*uZw<$T7dk-a&^nkx zfRbhUuc9GwH^?%XeW>_;!d}vyB&WSL9>at+97@4q(l6pV7tA8G_cG z>ev#FD|Y%caR`Xen+c~d#!m~R3U(pEvA_(l0-8LV2V@V~yBb$Ye9Ak>Vz736`vB9R zuf^5f^wKz+o2#GnwnRJqux&3Xg7OukM90Za*M}O*uf)~u9=dmSWVVvJ89=uC@u_wi zxCyMH;8f>wi)UEa(y) zQh%3`YdGwA^J=0FoDP{3^E{3p&41U7t??aWhD=MCR!+Jb7ZY(7 zbvaZs%o4}Q$ueeBzIa=u-4cWGC1WU>mJ(fuAHa*sN4(cKd{7K?xuR=Qm!FTjt;dV? zdG1v*1y~yd9iLzhjy_j(2sYc)q9BXvUSk<2(6#kiIE@d*umy`Of}S5=&ucU>h&SAcS#-6)_M|L>7( zLM1%1h)Z7?)_bS#4oU>1wW>#NN?Q*CG zOBKSH+W4ZkCv^6`*~9hHzuhy0=<{-5qhpcUo{i$LVusnok1y)cafM_84rx0-`|%s5 z^BU>L_FehyN|S1JsHu_s9jh*66VwLWMeJgXEoyX8TQx5l8!9j)l zPz(d33%QT*_(S-k)74TJr%o@Q-S)cW%#Bm4O-8@Q6*fqP$HxTg+mX6P3@QyMhR5$k zJMWjnAG& zloImu9rc3w=Pt}$L)qKjaJnlcao4n=21YfdiSqjCE6ZUJP?|CcUh~AiNkJN z<&Bn|96P=wLEM9s*U+VbDxF_tLN-kyQ|*Xro#}P9!?rbTtO=sTPtK(ak!FsN2odQU z-PD;b>gobF`}Va|%D5=4xUa+P#bob0;*TUCiVu!anv;{pyLQsB!@p3xj_<=lvWebKU`x>a~UP&z<-Pih#eJQ;3M%tP?)btd!HD3t$qZzNbTcf z*DLh|9^xW5Lp9ysI+7%fNakgyerEdWqit4iJa;F^PdQ8#K?&|Si zGNo|SaBq1`B?$=~iL;bDD&~Qf$EP7U+4TJ9jvIi99i@WRo{kWS+5qWyG#`a6_xd-K(}En38F&F{q7wS&EGa4Za7x zP~FSMbC=BF@8UeTHrL)bvc!e!PWH+xbd}OX_3RnhS2+i$F9E9X#~gpr!HUpkK@K-y zFLQHq!6EC<=qx$UhP*WdYQvMkCu@{f*WetL{XIuG5=r&dEVg*WmR#+F@6)@jS9LhF z(wzy}?W!Xkw2fp~;A9E9YKZ0cJBql)3S&oV>Y2RW!7umO9?=Fl$Eo$^_k+9{hCsNA zT)->4w3e*&FqI$L*&Toz`@64 zEte4&XKG;6G#nqPpgH_0L!)*kvl%0!joX%um9?)9VQj}wad3DTtso&8n4IYB?A-kj zTsnN@r5k23VJ-xuq!}QxyWi5HYc3tv?|V!yc)Ish>YXMv_!aVN;WBlS2i*?8yVvS) z)4|4I)K)E8+Ew<;R4rxl>Egxk!y2p@J1<7g4exMbT4Qm9+w9DZk-_AuM3gdFbj%3V z(S;5fd#piXD-N$a>|2qqlWd~Lj>{B%f{pz}uS z@HhXCH`v_|v$D#(k8IN2n8BV(B8&582!%u4vs$wfJ75opaxU6z)8)-Sahx~sTd{j4 zNNPIKS<3GpDtujk_ojB|rmV%J*;(lpCd1u$wB?8$?ZtZ2p{30XZF9Lpy7%?ta%KA4 z(`?&i#9>QKgKJAA*B(nBC5_uUf~mW28g6jS^`oV0Cml3XCL6CDiedWUj{JVX%*3LB z`p|_S0j;J$vKcEA**=^VEeT1p_2H}rbz@0J0Z}4hfl>&krjo=f+qnV9x%X2#5XUzV z@=x4c6s?NBx2J53>9UrrXR0%umB#IKD@n85KPjd1cgwA;AxUcC75viil8(dLy`ze6$>rL6u1V#$F60gqqR3{Pd7cJ=F)tiZ#3xnI$)bC$PqQ zV>K$lph+pY&Aw@TQnyprG_&gIKY3VJ*rQ20YgdMDpoG%W%8JKII%}i-a9S-_~VOBws9)K*2z;;>a!EPS^hQtrpiq!*z6Pa#8%9s*p8*AiJXS6 zOq!BGWLAV}h4E7#C$q7=u`v{1T^(+boSshUbNh{^o}S$peM>Bz2Uv*8W5gaEJ9fBs zhCqLU{aKy29eINQk=W_tU8F^&JMViImxkm8B_&)jnFkeVm*oUUdKj74Lc9atG%8-? zml6qMjT8ly83eb9_8`efq*t~v+#I;8LR&c5*cP8?=;*u!#5578@G?L=#Q8?!1BU>8 z%}?|UsFw&oxVtd0&%6PaijCyDd(@t{kfyH*=dArL;K~W=>;yIdsl~dLn2rXwt*B-c zlZJC(7YNn*sz=Ajh%%7!xI>;fJ>;Q60%`4okh}L9Sz2m;i_VJQ_+Qo^s>~e?F?Qnx zo6k^2_TYL^)*|Xr!}!Ee=xV+z%!lO57WHZgHmxoRt!#bCQdtU@%oxtFgJCM*sPH>f z3nQ-21-6WRE3OF)ub=NDIv&%QIh-4S<}*qk<6a8Tze?K9#1Cruzh|`s^J{aBS+7H^ zvTh0pstdZAiUILXVaK$uts=!lq0e8Vxu(EP&xrG4^O@uF*G@sSVf;B!N?;h4Q{q z$V91eY)A--y=p)&UD&#FgspE(kZNj~`octNOZO%0th<+!#e#C|oOHXjYcL{6l`M2e zqIkf#NWpM|sJP>Jd3!JMEZUYWjOpwu{@k`yz>Vv{QTe>neIadRpu;2v&7v(Ys>!FbXk} z2d7|<&Qb5uIEfokUelLsd8HFSf9Y#HwPxkh=YCmtBpYSSXJqA9KDLt5^w@`}FXSq$ zH4eyv!k5=?4)u5&**Nd(KuXV}%~|a7s&*p+b9y%1ltMTw{5K5JU;Jzh2r$oe?vNLc z&>qKYKsS#Uzqzawp)e{CN2)DU@t8rwPDsog;=KwKgK^8yUm$Y8U8VXviX)UA>XgjQ z8^w{4oG0BDF}!zOHKr`7qeBXMptJ);Zr)0^BqX4|*Y`Q?RYZ#)_k@uT2R*~x?m?s} z+=!rZ`@%BOFu$LR)fKW5*)v>Wso+PIwfGR-?RMz&lMNTwmtqb`5vi%TC>scxoUIKz`o1w>?r2+otUFBkT_~eU=;r|PV&=S&)!n{tD7(qp(tJV8$Af!dFE%5}U zAFU5Ssp>ro&a@*&qN|$TjA`$CSlS|-1Rz*;Gc`&yG|?8U4OA{LNcZC)Re>^#{rbG2 zmk_$4=6-?j)d)fchg~0GZ)OC)3~H9UlMYowd0U#!N<~ zBuFXI`Q?x*DFd*|jy=3ZMB>e=!6>LuOwZRXkY%lfmq0PBy%Hx&J<Z9=)G zM-+tsPM`DAWP`7AwGi(PTV=j)NQl$oWKPfeLEoF_-rna95G8I@R8*n(NV0WyNrO74 zEN7*Gtbp|p41%gXc^a;1L5*AixCv zEOWdZ$;DrS{lNfJ!v5Q!2Rp90w#et9FFnPZ3+o?7NX0!xVr={fi;2%LNH*^!e6R35 zhQ(NII%MMB_kEfuti|{Bq$q%|EwjoQeVqDx*5I0YO<#PU0#y`Bme zSHeOj5PlnSBl6De-bvtv7%opT=5d<3lk}6N%HF}sR~k(xwoN6vQIu8QB(GAwUs|=V zBpGyvk$1>C)CripH{cuz88~D-QmxAH2Dz+X$yOPVo$}q`J3-XBh)c5?k`=rbF}THm z;M-#yW51)1&bC=X+&-BB3ZOTb*d7pQJX_sgLG0G$a@j#^RQ781 zd3u)SR6A#6Nc%W)B*BU?*}3aedb^gtzgS7jxs4wMJ~_FK-R+y}i&Fle&+DB}Gm%cI zQ((2Ka^_MXCsS2JFS1`z9sG`uc7lg@TYb*Nm>Zgh(SFS%V9rUcd-|6Dn*Sy7PsIzC z^ocVODWN+puY!hEt*NH;5`{A~9oPbkDYhjenW4Z) zi6@p>I_mIKV%%=F?uEWy8G+z}WJ^Glth&1Tk&he}7Jv`9NcaE>7O+iBTenn%J|i`K zD(3QAvH1!J+qV0gU^rzwaYMHKTac4XbUGP^f&kJ$vwhVy!_yzZjh??GB3k8n(7Ate zwHt8WFuj}`uRLmtRsm=1>oGHV`93-Mr5%RE0PB9j;&F1B@EPED;JbM-^iyV1owIXpzKY`v$i0_@p+L2<(SMn`Uxf7)soZ5R+*Zstsf|xBrS^MA!iJKM_j_ZE!kTP2}@b_fCkfC~^TlpQCo2 zP|FNL+N}n}dxB8kg|lm3u|6<6MCQ-#LsW=MfxqvT%YkYv4*gE$f4byT_3i)c*hhD) z`gU3_9GXSJc+(t49Cvl5W%#e(sg6H+$L=q)WH|GG&^6*q{`{#6>5?)0oLp-^qqPtd z$Ydq(StZkGUbnoaZY{$H(N3FSglq_gdn^+)FM&nNn*;r^rQfyp_CPhaZDN>$qTGE4 zxF5sdwlAlIU86@kK}h%04-A-LHG&!xGwP>8t%qmp52#qg1^Qf}W(Ns<4Y2*yRW5V? zZeP!<_YWIe*$o>ASy@@T^BTf}NV?MPDYVVEvs)qi)jbfOK}tKeZ(4J+u=@v z67Q_J+9o?>;lJai9xO>wQ2aIk7Qt@0t7idUKm)#h|9tb+0Fkz-I;T@xup#mk?Gtm|2 z&A>%@`0(MhfQteYWBQ0H9BbDfRW{QF`+e%eJ6*au=UZV(`}2M}XFZG-ju(zSGMEN4 zT7zxHu|4L4pI4Up6{KtDubf9MJyz7aj(oE@V`3hs7=+o zSgpKQr5YU_b(MaNZWuJ|`VRKTIV$+=GWCdysU*EXWm8E{rmAyXv{dF*oo6xnJ(|!A z37Ar5x2tAemt2LJe=Bf)8=>&y zgn71SmPSl!i*zyT-tL4uDt2@@0rMtL_svD?4X?~53H7~gN)`#N#9-0NNUB;xP7-Q> z$ACdDq&r6Hj|bZ6HE5eot+!=8t;U5LF%0>#S{=Xnfo}93$4HEIl)Wf1F19!N38M90 zj$YL0Y7|oo4-Jyr+F~>A@jKk@*cJ8<>)C~r5It%y&H$zraEfs-AGwgQ%d~J&nh!QX z1+pT6gimQTcZ$+&_=*CJiXSb#(N(&!#{L0C;r!u)PhY2ZMm~$bq4c63)T*WM8hr>> z5puEqs+TmE{Wm48GYoLe&y zwM$<=I=+;2h?nzW%l>u*co?1dS~N=`W@{3{UL?taWn; z&oxl+Qo#8LC!^!$O4o)m9i!ms!A~l;fRa6KSpYnGf5-yNzmD4<5I_lZ#7Ab#Dy@UD zR9&m`x5E$7KdzJsapz7w08A9Ih|uYaC_9K+Y;qZ5|AJ#-CBy4vaVy%GVIkeofFTNu z__1jfe@l668x=PlI;9C5?@Xf+uf-Ttie0iI%cLrXX<|bAf0~Tu$^*?%B5n%+bZb>$ zM%1=-H%|kd6NDZf?$~mMrXsQ*;w%qrAwmC4>qt45Tl?Aaf9h(#35*99sE-zhc0<2lrtH zLi@+LQmMvucO*@Bap!9H`uPpkSdEfo3|kL)z{B&v@Vm~wGbIAH%dt?I{ z=)4|yqWkKWBiN#BZDJW>1n&T|Cq%E>rY;lWPGWJaE7dvQ@9PK{f=3Hug-N0pj+4dw z%{O9xTQYkQPPa;1s2(&@;@m@8mf3-07YNW<)H5{5Dbh)4=p2OXPxC-TSc@{vo~2H%F;K<%q%Ve|1Z2M zL85Qa1Sp~+8w^5J^$UQrt^InL>(Kn!?>mZf{6t^6zI3m1PS)>F{_M$Cup=@5wTK)( zt=q1dsS?!GA1*3-#6k@w!)}3DhzH2d2uwGjgK5_f&i30Kut%J2s_0p?VAd~ly`No$ zjh(#{6o)TdyIlG;c5UAR??QlU&UN!gAE|v3cVndU2msy=Q5pjcqD`eA+oJeeYG{1- z0*MJW@JI*<%nkG#U0;;{0yOz&>1yDjCSLHr;JCgzF-|wFD@EFJy~UB}1w4X;`X9p5 z2G#wFOvsf5_0~*C!KAvFug}kUJa> z>0=v|QF7F#KqOKnDgLe>YOEeGz7^pbv5~6~cER*R=~!O!H!vBD-NBCjv4tOjs|{RE z#EptNP&tUjx7WA3<>u7%^a{I5Bd927ynf*U2~-m6Az)Z|Wo!pKaK(%J*I70ncaC;_ z7d)OccVk5|=h1P~fmAf0C3Z~Lm4zH3O}vR)LEokH#h5d?cOoZ#HlNHFF`JzE1H9&n z7wiqjD^Sty6E?6wU$`Q<9yjkBq{p<>iuIX&Zkje~Ftz*0{>2qIU{&m11U$W++4gvBhT8a~isGbllbnu2n4X%`LxI z;DpH7(75|GfuRj|f`;DZuE^@LZ|tA$wt>@DS_uYP6)S-)4;Qq%5THa+!_uCN)j@Xw z^OsHp#DcJwxICC#(bDVmX($$~R+gpxE$#S&+D2Y^O(7q!@svf6G}7g@NJKy+^i1x* z`G^8gCz9L(HY@9>9kT9xUz%h(CW%B^K0jo(57Eo=IRQe%7%d^0TDsZ?k_dG)Wrt?}br-RIzcpgUj^1KWl1D!>>-3Pya;Sg-A_P_E*4ls2025d~0 z=VaW(R>U`xAy^~Luy)144OBgz%4Dt_OJ>LLvj-TQX8yZ3r5 zPl4o03{3n?kxr!t1>H$M>Y7P&YR4c2{QGfX4sGAo>6D4~^9V~(pW`3xma){LQ9f8f z!yo=2dcD9FO5pmE^7U=vFSYz;T8;KzR={Dlz)I#xeD^J%**a&TNo9HYk$EF%EmP&? z>n-3eGfXtFu(aIJH9dcAX<@NWo6v?iwhGFIl%M!{pkk(&p<}9n$DCV(Yw(`X;9_}a z(912rQ?gL|Azt{wnC{>4VnmnJoj1a956*4|@*DH8fO*YO^m)Y7Wz&mcH z@DxA=r9VVn`3dlW?t8E!HJSY1NSQQ=$1;Lgv~X-cPJ$wUVq;q)wP~*%3u)1eVY9ho zPB8BXJm-3hDsFF&Vi715W1*-RRwURgjy z+NAc0X9><6OqW2YdKwWE!(Vb+?B>#i$__8#?w>JSm+rVP$02zS_+C>zwjl%qQCu94 zAd>9B3FYIg>T4z>6q+jYLwfZ_`}i^@O&~lTdIvq=BpG$^_v4GZ0UduP^|0KlIX*qM)Vb~nCGY~15_3hjIt3%3H-wpj zbiKu2n%k~;b0P?$FGjx}0HBW);B)%TDPGko0DQpz2mi9EDw=&WNOru_c*wmK{`K3F zei=NLCr`+vrKP>2s8Z3b{E&X2^g`tTT+XyO2KH8yP0?M2eRcr>62N%345mHe4 znEhl$z{=+=!v+3|1eUs8Z3`fZIo_6s1T7PV@_WB^4w&VFbd?kouxvvl$|IBY^FQCc zVzqwWUkVfRJ70IuNZY>x3oP zOPm{|YS6lRG50)HzOoD|__gCDX%gQs$Q|6mTVPy^jcb2-mpEYPNngi87ZTkq$SBY5 z)ey=ki(k2J-&B{o_;DXon^1(z z1tODk+It$cd)L^!rRGvUi?&>Ux#$|id>BQvHQh;+p2`DV*?j^2(?B`oyJ1h#+U)HpTO>@ybAWRw9* zGCSuP_Bg&Tu*yiZsx&XA`%z)IG$pk+rz^M|MtBMA6=|d3uQ}*;f6G*z%@#m4edh?x zfv88_*4>?Nb}RH(icz<2%1z8SZ{NgdVEi6JW*}QFgvnehOy*uRM+$tcS&~cMTGQ-E zKKobWVf4r?J9cM>HJ1_2!gR&44ag+yqBB1#UPQhwKnX8Hiw-!bHm0Pl5`IHJU^zQGY7;d zG(xTEB&(rB`ljPtNhJ+T=5wD$AvRpVaM}9P$m;#z{KTVs#K0w{`mOXC#g-etz>SyW zGUu|dP(giyCn9C)@ky`NG68p)&ULaRjKEC$AcM7 zzu-LCqjyUpe;p+BMY@wBag6Y?4J5}9+>P8rxCu;937OW#BMj3gzwQf4`EoVJZZKh0hgKnTlA8plypO;! zm|U!fk-t~N5JT?@L$nMRq0_l$m=LBjD=3%a(8*o^sk3B*(jwzJBrgi%6?tp6Q@}qD zrX5+pO5?Nghsrd6bVYV%Z~ZP=&FD9oUNX}NK8_{U{m03)Fo)OD2XyY0+TVrY`KcUp z?nFNY?z--sHz{z9RQrO=pUa*A(ccO8EKOBw>K^>C#jol1#$IYz<6OZ1-WNDC4_=G) z%9U>>5sbds?Vm+uKD(JZr-)t4{P=KOT64uc3~R9^2eEauzMa`3h*#`L<+e#hb@hEX zt#@39hjlvfml)xE(0|Ib8IWaeI-q1Sbjb0=?Pc){niYFEOeHRu;LRqRXDMpms0xZX zee2vC)U!F)R=)-0?J&^r$%cZ~bnM6(mz3xcKbRJc#g6^cX2d!S+KBI~VW-4nHlRhL zcdyHu-m^lb{t)JDH>)9hR;%fW+qF6QIkKz`AUU4w))yO{O*^uM#DvXGTTvMm|CSu8 zqcv}Shw8)f4Sz~G6s@QM$vJf80y(ZTdSFiZ{hx^Y6wFb{nL>jsv*;14sXF3gNRXwu z)?Y4vWyHGa5-3E$s72mshC5W>9C;~pj(eU(J;g)xm95~cIedTVX* z4Enom2-+j~^6d!Swh;b-;!i_K%Ec`9KFCeAceqc#Go9v1Zgk4OIb@eam7k++Co$q9 z1c5qYWY+EM=gn04ZBIA z5*;UfR_^kThaDQq9n|Be&xJnwkkuftyvGx-TOlk|gdnZMP z6?LKc)&NoGK^k%@Co_(G35CNG2>syptjX-W$mE*7a3dnXd+`aQ33`*f$F$0#g4qYo zIqcLh@(mbcwN(80~?@s{;L+mQ_TA;SL~aa<2U zkW8YKreAEsIRCv`FOOH7 zxTO;3+ddt?F;$wbsj1#$`|7W&cXbXiT)NB~8Q@*5=gu#Jvf2QcNfSe+nym(6DIjgT z@brJtD^z$<(T|b{&A8Q6Mr?onB2|K@^NPp*AssU_=)$Pj47$!pklr6kGcbEDEn9yS zf&MtmVvE%E+;LKNxSVhFXKv8`pXa|p7F(VUQ^}wpKNnU8wUPc_yz|sgKMODZ41X}_2{np} z6a3uCAS6WYFDgn9;IAMH%Hhk&rI^?+>6Veu2R|mn&CGj(dmzsqd_uSNMA-3LN-!jf zEL^AhiamDhn2FmKc+{=*0>)Wiw9qR#<0x@!S}fo?`q;G>CX;=VPqw@uaI;(NV*feB z|Huibzr3N+t|$5<-cU7*+b#W;e24|9sj{y)1i-{a$nalzR$^=h#qSE;Q?5^^kV5c9 zRP+%4eKi>(;-A`2PlC5A%4;cX_&EDr#~`M;LPkW({<)MgEKK2(qdrDpu|Dkl4$}`d zqX*=>*$-IZT4rv1T5<{?y@O$G*;y@?$OFq$dyq6CkF@`NSCs>Ta%$$xFDOXjX$Itx zAYHnd%E>4Nj=L|A&@#ZtEXi|nbF1;}7z`R38~=1*fLz!xh#U2Uhf#K9;8k_CYnV26 zEuE0!##R%zG}>q+8#8u~%t*hn2~;oFCsqU8KH6iUPv!jc_=+FC9j)guq4pAxjD2j- z5n=_ugop@Q9n^y$s7r{jjsCFPw2U>PHEr=`oS&NwRHj<+TTnKM(rKuBixQFA(dH$`;)F$ z)h5!2%<`_Fh3bo(rSJE%1G*WZlVX{?2jG-km8}F0E?y95a~3}cfHAdw0;94f#!1tf zL%GNkMDHm{+C%0D@BqMZK<-YZyn=>Om1<*$$a!fZ)3LhtR+Yk)A^k72!1L$d|F?oT007B7xt<%p;o&ctbc4v7fp1O6k;FO0OKu zf%7UW(E(Gb3)1jDHGv};O2OK(D zNJ5z}qKKXDYQ=e4_TCk{JC*WkGk2Z7rs-XP*b9|-bkE6R4Ww!h3_x4%Ml{kwhc<{& z;Qi7r6bn);JaBxj&|O_`l86x1tUk_I&VlCY4S}AV*+zqfJsHMp30L3g0NUj9QcrO+ z=LC1@NJaAZ0tD)}Erk8Q-;1#`fa=MK@&p4vPC(eq&F0<8&whw>ks(CHM!{xIG^-Ya zz}0=~YK37n6imZY<5$e{u{aW~X7!lV* z6?ttQjPo)dyZS$tIi8h_m+{JSoxt>99jSuqUD^hagOH}7PhvWt&6t5;Ny`Iqaq;7psLu?O8uVJW&=QS|L0{U0~--5Y8hnqn0(3C}q*G zi-b1ESbKx#(h8qp$VUJER}wV4tw3NQ|5&V`JkD&`Qm( zsp?j!r%k&Z%^*PLBB%gLu&wr*SFyi$7qN79^qM-eaSf|eC@UQw35AQ94j=2%(c81* z??2^*FU_uHxc@Yc77OIbw4EnKj~04=0%%nL(SKtF%o^voPJLyJCJ?Ihpn1#vSS|B< z3Cauzk#|P@WETlVJd@u{glX#pF~sZmFx4Vd4!{_QRWq}O_`Je{tar`O2pTfB=dFDz z`m?HvbWxw-3bR+u!&Xw4UEaeRmYJ=6r2GmCysU5j>l+iS7tqlIQd1{zWb701%xpAs zHPb%5gR(hmru1T@&nguf3BO}FWszCrg8}YqBNgwrOx!@gz@)AJpqVC&1e|To8m>=M z)k(2xsiu)19}q2lSuAoDjqdnunG>GY{_td6B8k$Kr$qIx>v21ko}IU*AoM*Y;XldK zBJ%S-)E?1O%92?h0l}w`u={LqAXn} z%&GHftopmx`Q)a;4ntQ5tWSK!TIC(zGE($SKaR||8WO<91Ppgl@>R=RE|0Do+V*Md zw3%a?#B@oX%1@a@Y}q(%WG}ev5t!)@#SivL>^h&!NP4@S3@KSKR(ku6X9`A1cN76! z40y#6sKg>WBG+G7#jGHswjV%aWpg+c0ae9TC7-?MEkjSk+PC%}Biv}ur@MBHy_DhF zD3TjXSosGg&vR)PjTaslZf(^I6!NP@;PZM1&IUH1kmKZ8_c2toyb0;{101sHh6KRb zQo#7{E00p+755r%`~|hIG&kHIPxS2=H5^<4ayfx{4RKB#)M>G4z`sm;+~ocl>~*}D z^#F*+e8xt3^X5FYu3qbeH+L61&F;zD2Pi-tu2yQSeUYc6m2fwyqz^jZ($n zJ1F+^=_1CV$dfwyBz)(PuR~0**`>*`7OcT+nu-9}@lS8I@$8XwbH8uUV*`N$zJCJW~RZJI? z_36h?elOnn4Brm8?Gxp_hNVXBNFf==MoaUg);I}|iRl+7d&+VcJrfZT+p6qFzs&nc=_GaT$uZt~5W?!+cJqN1 z*Z%1s$vXii^&7xfK{Z^|c7-BV5ZTw5F&-rP#Gjl!&^uV4|JG3zmbUJWNPctJtL-sk ze+SohKR}eFeI2btl|2m7P1LIZEeB7rpaqg$&3?QuL?q68n4E zr~8N>Inp+#ud@uz2IY*XKLUerL*;PL0s3kuKE_dmeiegehPTaPs-^aHLn9c_UYrFY zykIn=V!P10dXxEluTtd@IVtv)YN2tr>9tx=sAO2Kbn~*)p51;IxPUsrC@m;l6_Sxn z|0*t@5&XqQtaA1+L@OLO8&>w&Zx>DON~{PAUg3UxlFQ>jNEs8AY$W3?VB!gz~q-py@iz;`p1 zOl*zMZpWn=FUe8pUgsj{rW{v56^155_bPwzwSyT1Prvq?C!B` z-u2}=7hpb% z-Cz-^DPVgoTVqbc0J+*)^W%XbH?qovzE7ybX-Ty^+a!3h6|~&Vg>! zZg9?&iPEkmZp}m8uE$uFw+%I@u6FKodo3sc-?H>Viv^Z8a}w^L2CTjygE_X@S4?imw_ zvV4(MxI(=72jQo_`|srEyy_?aK0E8a@wNA3GA*pYCw=r0{RWDytM_ak!^SJ^8$Kga zX{u{3kwTm!`tH^jM!ZF_;8fgng5$bVE71zd13B(gn6NS`&KN*_wpZ}r;c)+ zTzYht(paxN)7UKRm8xPj4aqMptFw90o8NkfHonNMl1UQG?b|v=DuvQ==k|PZ)?afS zEYAJsLD!f3qfMIH7Wtw+!u7Q&a@UlXDK}S7SpNMt&6N{G5`j*WaNTshjbjjMCs&Dv zJhBHJVXv`UR396CFaXkqg;1F_u!a=gTrMHukksUi1q%W8_-@tL&!X!0g(dJCrtzjp7lodCr^Hknmu9cpmI_5w$ggRf4!dkyu%U8M0#nZy@eL56$`XZo`3o)(`p+9 zdl|z`J4g5*9Clbxj4N#vVt~%3P#X?l>}xy zUFSH5l2`NEUzs4CoA#S$w|~34yAj4zR*A@{WP(x;+719_Rny|2em}|FAWTr8btF zB&)b;3$L=)%`Qm6R4AR7FS&$kOFO3NuJxq|o&V6$%4Ds*|7CQs3lPF~P79KF*m2&&M+SFV(|5`9$<5o& zTf-vci~~axuAZMG5X6M2RMPL8U(+h{C7l<$HR~T)UwP&?KP+2rv6B306xw6vNT{_& z$#oulAtAB=E5n$ukM$2@lglE|6;N<66;6Doo~QKglfT!nTM~^~CjIeh%;xuIJFUf; zlu{;WOd_}fH19_Ku+ui)rP(ENpRsu9;o~{#T`A?ois?=GzMwFAofkJV>b4yFn0_WX zOM1XtX9I~iLQpB@gmq^Jr3fK2H?S^j7{Zbvi@*ml=M{^a_dsXyUU*labVg9ByU4^G z;{9Fd>c8k*LW?~d;S__2i4Hd7Rt|12&68B+A#CqBU4XMe4%kKVw0AVyeMm^z9-Ab- zX8s}oO%IGakYukNft6>gNr})B>_6P1pylwq@&0S|1G8D)huC7hT2V(^E zz_MT;k1X6unIHE@9n6t7EW~-|UmXvPnG#jKkR2CPt}|DBGjaQ5L@xO3i6{TSL(++- zE)pRB&4kx-_avQT_4U&ACvE}da*@v~LUKyyS?2Ve+^i(c=fNqlKKEIi?{_||P{WaE z1XxO(d33$rlhRSbUoM^xu)eI)+_mod&^bD^ue8%=Upf$!TvXjPLY%JUe-hNA}>vahu=+hG?o=c@wFpH^*phI1!C(gu|VyM!8+_!nab#8$Xo~vr}u`2T6 z=QmR!R2XI-jcG+mn9Hli{NA@vPa-VQkUt*rw}=m7&D#eC-Q<9^EzYOal&%n$Fi#F3+@d zkG+)SyGvT$>v-iE8=t8+%b*dRm{(-Xt4OveB$EN1J{vgdfJ-o=O#qa?pvfyfd-vXD z$<8w}xndKbh*_QH^x#p7TK*nn29}3UB)8Q;mkTP+ZmS5)g;ORgxQ&b^N1)An6-xKN z9|Vc$*Y)dVNgyoD%4$Jwd)!=-XYu*l8`v5*k%MA>d?-i%Y3y*`xWRQ_Q$P-e>0>bU zR&);!h3^T{M!k9f)&>V_NlATvaLE`2-U^{H|49KD%C`fW!0fMtKf!9ggN$$1#mmsg z1{*h;24_0Xo7Z>c3d?u0)!mD18kiqLu!EUttb%NR8+sW^#_h)AdqJ>vua^A#hvqC?M6UwZzGEe{^W| zhJ+WJ&)fTf)om6*J^ua~aX$Y>&-brv2HP#!Zv`mh;7Hv242P`}Wtc~k|wj?UL^m<36ROeMC7A1SP!{e4|% z#avT=D$FZ+=TuW|>-ml|<2BtRrNZm%d;~nu;{G_~iu*iO5r!+-gNPtaq^c@=D#z7E zx(nzbxA*Tm&(FLMv$fO}dh|zxHBuOJMOQoK6E4Yo9~xyHh8bmdj>mbw{m4px+&UeR zVKTL!O-k-bj(1>)NnvBC8AyKWbx(9)%7TIs5JD@rA{>VIx4(eEKPTV~9A9%ZjxaLA zG9xQ}|KVn0kKm6`(~Qr^o^4F<$z>x9v!;p8+M(G-MGImznWWESV{syVG--}(%p+Fh zZJM3rt)7ju*I*b|!ysfCIl;8d3Qy6|RprBH`7~isn!E zALrr;XseI8MSu3a$$|<}>SNWG!5>#Z|1qcqTB|@%r%r@!pn2N|qbiTn+p~QG@(#Sv zU5 z9dB9s&94Z~U;8@&-CG|ElI89nQd4w8IQgNwQ_;G)1lV-S zx)+kx3?CU`{*%LLVt@N4eJ;+ADtiJg|rviY3V_~ z+*At4R*wfg1qtJo5Zx`Z)B65vG$i=h)9X(T4S^7G+VckVevJEYhKx(^IEb8B$x^wE z+3Zps7?_nelr2AxrsdlK0;B`>rrGksWThjT2=Xc7X0DezVS9houN$NS%LAY>nva5q zkdNqPn3|2=D1FE@hLve2o+!VE21G8kGSik2Vp=O2F;L)03%+DhHl#^OdiBv@BAbG?>7spvm~GR0Aj z%|@pHK+I)@3&Xl3de2LazPo&(mVR)f+#xp#1>e)@QapVCt)a4=^>ggo+DGInk58iS z?w#2_eA61@@X1i}xWU~)M+si^-2m1yx5tv(z#pW?yS}29*Uk7XIPS?xN|B7aGGS;LL zW$`ha?s!h-?%yblHY2DPs!RqT#U=x>DnP-HOt9!+!Rr3sEC2D%NHzwk#yal9lHtL- z8CdLQI#1PflZuf7V3G#J>u)q1K>Z{VuM?PR5Cep*4e;`c&W-GPru~Y<&bfiDDK*Em zTN@8F)EsKac^O>FZO4_pbd$?Ovg<4__vWI{+A)$l_6b_sd+ICqQST}D4D`p7CTZl} z?CIGKfo{qoHJ>X->0$dmOG6BwyxJ?)F``e)Xkq-gg8euIt_KgKl7fW|Vopp`jNLfF z9@X9r`BKOt!B1!bIi7IsHIaCq+dIXw(qnDk1)(Up{#! z*+DBo7?QB8!G)Qt>CS!xEu{bf;uti*a0yPJe_27QjR6dF8i)g zuABATaXgrcs0w*DvFC@omeJp5Nyq)+=JVQSjxc6!DMrHGel$_o?Wpk!CZ@BMrIG&X zQc~GkndHP0_}i6LSlbqqi$VVO_7HSAC%JzR^WXvI5#nE`x3m<(F4+rQ|MPKYd*gNc zbPN33+mX^8JA>=nr2v%A{Msl+h)_BIQD2*nw-AhXHF%5V)bM&~!;SJ0ylwD%IEEv3 zW8a31dlzZ*BHbM1<_L;%VWzLvvIO4?cL%>ooF^LKb!&XHYe+-$`jdhDz|RbYb)d}W z;^hDcFEBp`z?D=1cUa~oVK9ArgbWZ+A>igjZ#EbdT_DCiJU;VIb$%12f z_PXNWEoB=79qci9jz*1WbN2HS+A9}rV5(<0E_rzJV;B3*ZkyCl>oiopPtGZ%@kY$y z8%<~g9@NV-QKedTOd&zRMSb489ENw6^Ie13Agy&D=u?l~aQA-4EGg@_H4H-JCV{xJ z316ktm{<_x#9%(fgRN1lAMCb%QL2Otu{Q^!l7xQbH6#c3afB=z@l?__8755Z-OG!mF z>!wceg_=h_i*St4n}+K{pyTU^dusx0bkJbL-ByDm?GrGCDh!wP1jk^i1VJA842P-YD;T&s3EV&^ zKh3w&>o}kW2dmLkX}c9KJX`Moze(F>>}2tN=dE1E2;hJ!$EfZA4}bT@C#bmi87X6YSHQ=Byb$i_g)t#^}$cl_KI7x z3%NOs{p6HPsE{xrdb8)z`(0RBBe#AYP}u`h)JIS`axQvhSP*prDU$#eproW4x%x>E zHpkXL?0hW4uT(dYI#n32mod@Pyn_bVBvv=RQsjb>U&i{JyxQsZe-2 zDQDsply3^zzaS5Z)wu9ot0aT7uJ?B?dn|WX%kmd{aCRGu^I3h<6@o$HS?%5ieI~m z0{V%Mz{N&@=dxEM_I1umkx+W;*ITu$X_A4#!O3~wn}7Sf*E7>st}eI#mVaCDf?XrO z@$qEl%U3I1PYGLfEoWlE&K5V`^A)ETr)99q>G5&60$)gA!Y1Bu9$%Yj63-`_LQa!|Bn65vl+Ukdo@K#QbDBd^YRq58+rAbVKvnv@?>mn zh{nS=QN8cxw6L{1nLw?Q(O!%`Md$jniKaGomB<9&MX7{r|Jb8&AipqcrMGlo$kJv1 z_tE6$cQ`Nn2IQrcY<9Y)VWRB#5EdnLjvSCc3z>0x%YB~i z4Ic0MS%D2!=D~(9T42k5BvX(G?ZY4V=ah$WTSL5{JU=MdLad0{hMT41iydWo3%>*E z+I9diHv$poWI@_k3R5B2e^=neSh6TEdbl~opJ)eOCq(-p`hqQh>@A!Wfy?bl{RClCV6j)46GfW@1A_Ly(WW_!BRn3G}6fS z=ghKmKyD6<@djI@C>a=t#G~FT#i-&bpBSovG6kwj)g_0n4iqU%w-L8o%`|hkd(Smy zr|)d2ug;EqUOf7Kwf+SqXX5$io^mLpUM9j(j=bSOEX$Ft+yNS5jlGK1uv&f&bRrV} z33UEa6WrfYq1|r2Aff679sT|%7Uk#97?$PO~BHcwt6lhcjn7C{|veKC8XFI4m1-Cxu0c2Av9xAT}*O;qQMlDl(>@)o0efB z)*>9#)O}R22%%Ou(S_C2J=8%4-9w`qjfOO1?{BT$TYcjBGLHD?L(s4J0*m&E@$e!V zlFb3}hk}_KwyJ6}G!j0f3{?-{R>KY170&C=~fXjUi!Q-27`K zVO16EW(Y(8gkUb=RcYz9>hg1SmbvX4wUhZ=2*C`c_r=&1!o$&d#xEbE(>QaxR#o2w z7+jH%Xp$<+SwJ87%eGX+(!*snla$w4)lVAm!RLhp;?>9>zgxv$eGmc(^5C(IH||sL*JVsGR-2!+S}Rek7Y8Du0Cv4Q=J za7R&a8+!Dyn*X-D{FP7KQ+MU=`g}S+|p` zP-hZ~ZxRHEg?W%p|xChgr(8d;V7q$5-A zEcX45V^@qX|KVX@HgF*$LJFizR$mQKQ1C*9mr)xg(bkfyAZ2DJZ-H25YyLcT4CT9j ztZXHlz#ulKs{vW~b7R$bn4bo8q^d8^M8Ow3w8`PC&Be{~rtrxsoMjaU!zMN7e+J$I zn4rTo*ZiZI#T*3s@-6uQ-$;6aDDCl|`(BFK#r<)`c3zB77m((HfM5y(Sx5wldV$p% z7QWnxC5T)hDNPLOutU=b(m4NU-(8BHDj(3#Y^kX3;3gV=hDoe%n0FTMa9dRg_xQm2^nJT=ziL?^k5^HRC#|>e&6AZNl;Zpb*_<55Ekoo&O zoX9i@tY@v2GXm`I5K*sNZ4}oxO-zoiFFoSY(juacc{Z{dYuFBJVlM9)Shjliv%0M+ zTB9#xKKNppGkM_l{*4Q24q3Z&J>S~EIhD=DnzL64}BmeonWbOGP z@1=XicW?91Eb|i}ab7L7xmT;WWdShwtks`$f8VIGZxdX0&tBU~-)?05*mz$akszA> z@h(_-)(a-AG5xcWs<&r?ky_CDMNtZZb9YV-^Ez&u;P&=I7;hZo0$BYdZs|APdHrAJ z%XKEfVj-LRaV$r~0&s1_Lr_V6R}NKAB4h$>ba7_~i?km=J|L)EI`m`BX4 zv8AO%)o_*h+)RNe1ZODLyc&KHL;8!v5+V4?ET` z`iRYNNm0eWy>wyAp<98q_L@kW1=$IiZ+;fha3IWG?a>WK1=cS_D`DsM#D!6c^C4Oj z(ETp%&4Nnev-PclGNGZMQ?CDutF_4hGc@z}BEIozi%GfOPu|QQBW*N#B32b0Yi@Vj&kC6ruU?-@lBav>@gJmvQf zq<|e*H(UgtgONK&G<|2yv&4yo2qCtKHC?;5Yi@wmi~`VA0^8HQGtjZk z#&8@CSD*tbD#sYFj$5YnWG>8HsZN3S5YS@~xxr&Eavnk~G0yC2v~qWEyn4-=tK(#& zK(x+^8-l29O~K9Jmf`>{%3Na{x4u1cfN4n%mkgah122Kd8_{TrWhd zKP@y-*wZkE(A09Yfb=JCw|-SZ*Onq#`2ev-DX9jroW`ob5!8P0D%P83225@ZgZe^> z>v3DvWi=#g*K5q6JN^2i;iCl}yM;)mG$n_*L$mH;q0%eVzlFW04ke;CCB4U&mYqYx zqOF-=zxm(2kHpS=g5i=>xKG&PK53Qa$d$$yPe7HPof9d*AR_pbHg{vmx z)y+ht1}ngv05W{?{5aC-Rv`0a^f5{Gd+_h{3_8ibh6OGGe24U%a|sr7t~-=YpM~b^ z7GKrZ;x8wfb=uJTag`#cNF!ln8V67j4ruF!4(wrElyvlJDFx#`ZN)YUua1drE5kX~ z)DgwdRi4)I)z4_Yno5ygzyhH&?4Ty+Gq4Y8p~a*GH}D-;K>Bzz-HZozdryMBL;tO3 z1)d$3B+)LJOyC*G7**D(DtY_x_&4T*J=nZS(O^AUEH|*^c98829K*-aG-77GKwuJf z)8pI>qm`Fw%(`8Bd9|N`cOblg-cxR|$|63Ph`c>@MjdrjCdv}7zv4DkxcW3?iAXlQ zqAttF_T8JSkcFPUNCmxwE^^knw7j~R&R^|q;Hf0_@-qH#P|1*&F~NPltRI(M7q7pj zPS^A1Wx^pNQ%pTFa}1eWJ(_K;>pzv1%`Z`ocq)&&Nf4lBt^;@Q0NtH6pwyygfymA8c%bJ1T9bGdB5TN*<znp@ig%E$tnQrL!mnz3k#CfJWH_PN_6s$ zX(+0su;z$VU;#~cS_Agn3jUoi`v$}Bypf~8*DkYT72>Oo2+rD`VxHGdg)eO?8cT04?)jScy=Kn1n}&^N0Y5k zUKroLHkGLUOeO6bfawj|`W?tD`MRSsUbP$BCBLNPWkdO8sPtX7!@tYrn~J#BI&3XG zV|}BN_XCpS{n6_y@W;9S`4{Zg50fEL1NiLVa9MOq z^+>tZI*DkmGt?yYbJ2D5unlPS$nU05GqdUjjjAv zzON??%Oz~(F&k5S4U8Hxr)lgTAI?{sdCnUC$`SiMBJ?p?>Yaq2F2DB9Y!6Ma)){LBE2qwI5$^yNB!YJ2`IFVt1rgi}k|1d!~!{ z*z${Mh|$(qLyc-|o%C{U?uhSN$6{1WMnb@~NiFBIh%a^n$0T|f@raG?$rZOq@i(wT>iG}+aQ7+54-Njq^1Ey@D_S7ACsVG{CjEvFRfu=R_yjo9H z?z2uK;snEVryfV5RUMd$$X1Hbr5K`>@rAW~%vvcZmg<%^v;JV}{e`@^04Agtv6*i! zW7&<8mVvAw)3Yi3HHp1P%TcX*MdNy|VI})@Q%SAoD81)lDN`0+5X?V`)!zhTQ%ZMU zw%50bXj$R&Ub^*7YkBpWxPxIMd!x$sr>Aa4)-T@jHk>uhbfoGBdH{q%B?he9g>b34 z3#tlbUzhuvXA57Z_tvw{~?@sZl8$mo>Te;hRixex2tV82;2y#DsD5?9MWb(H5wQMxPBKC_6w&5mBGQ}{QP7vy}$4s79`>|iI1)o zeK{DloZ$kQ2q%*cT{f!ME4JEJh)*PBgO+y#=eNZi6ot}%J*FwR__ewjVSBg}8x z*4j)ZvgSYes75pld|C5{(=fBF~8%-qG4pr=Ibe?#1>h@u)c78pOfd=VP zyy#U<30@plOdyw1uT1}QKxq>Hv148`RdpN(*Ovzd>WqY_-}1TWQ&T9?4RAD8pV1fn z=r6b%rkEs%Hv^1x)PM7KMN>PAy;Qwj1LIcw-Oiu_y|O3rn`MU?bL z1v@wS$t3apnH7PNJ#32L+c)AB9`a^Zs=Zwdy23~O9Ffv5pgYlV38K$cd>k5QQKH=* zp=JnP)eRgN(4i!#(K3HtNB6j$mUQ13N3G{s4_G(-oKYVN{6@{da=bFiU7Fn(U%Jt+;D7biSV`J z2UD%ztF1*Aw$P1aMJU)~t&ibjenJ0Q^ZFfb8-d;oVyuro7wuQd}UG&$#g-UM%uXniN5~$)T=1zAuL6x{AcQR#)#Hb&n6!J;4N4~r% z886r(qGkN$!z+wrz*5(Zk$`4bhXW((VSgtK#;0MG6YvY4y9}HHI}Oo-mcEHHseOe< zM4T~e=m{cSZ9bY`sUYPicO=+KY`lRDWVYQmHKXwEM|EGdb#GzD#@Q=r4|s#~*|XDa z&=kpU6(hHonVYKd=xCU&LE39$@Qlioo{C5y^d*Cw6Xm}rJexitmgMVJiO8g`PJ;a#-D;9C^@}XiSPSOS`@1b)t{$OB`Mh$4= z;NNJ4-jRG(d6n0djL((14*TzPkHTP?JcIB&TJp1q1A90YH$_)UD0>K2?<7C^u9W}y znaFQif}A5gNex`g78?cATk;jcFa<5TM5gsnvn(IvbKi^CQqr?eQc|&c3fXG`hNp0! zDnh;e{MbaxSzRbcF$XFu6?%I6vPB&+zi`?G8`sK7EwpcxFiXgS#nre@o;iG+rd7uf zDaxjP%~E@b#PyK_rgAAe-w;n4+D$ISO8X6QRonufgJ^{SHf z)jWJv<-LsS2EI05@FiyN@v(F$A7jj8?W>jvH+hS_ax>3=qHlJ(^o>A}mi}OJR)gJ< z-nF%5HfX}eN`ZHaI?!4tAP(jjtzqH%X$muAw5O#^;w!;-VL$f}G73KBclOOd{VN@b zvC%x#AiLop4x)#rH!l-S%q^d0Wjt~hp+pEuw6R}wnjD%!Yh%Y-nG?pwd8O+HEmf+8 zK}HzyT=sBq!VuAm6vBnAC#MBpKU!=UsDTsV9{U|T2p;Ey!o?7Sy`i)z>=&BeVj9w_ z%_DLqR~^@s4EdZ00v+rlcj_y?UAAfFF8{oT)Aw@&@BVD395&Lq;1+Ax;G~aXiqyf2 zI~yZD-gs$9bt{-Mz)A_vW=bpUsl{x#b)R3GPY$bF`*Hn*&Jo3cmmKgb8~A?!LqWX0 zq3&x_#~rIhEm%0&7pgr{Da0{bj>l%R_)$_=1h3jpub$o1>rdg&r^^r-8!}TXAb15X zb4@`jCo2n?X=ysE%cGXUf;<(k73k;Aj4r#Kj~DP`?cBK|F1zeP^zRsJJllPPLKg)u z_MGUn%aT$Mghq_*VJY$#gaZyuWs6lzq0Y4sS$pRu^}_ex|BS4he8eXuA~(Mf(F2_b zE9i=ds6<2`mWP%lXQF+#5l9+lMV}V`L;HbU5ZNpYEggpmzK~)Sy!qgY*{;sCL*Ncm0b1k^c2!aZ^7{$9p{dX{i!b|w}ro`*BfI9mrup<$tjijGzRO|0(B6%!q!#zNF}b{(9V z0dIBY0yr~SP*8}S+qYxmrj6RW=;xn*!TtZn^)^khvy=wTLelfw&|L?GC@wjf`oF^z{*Ko9nTPEWhJj_+1{v^l6V)XO2Yf z{I&XW?))`-EHkVL8(#gsynK;e9tTdi1vd2^Srsg;G_$&ROccg~pIbxg64}_`2{k^jUXTrUn{Ke>XQQ1f2PcdY}l%q&rHkQG_QdDu~qhOHUJ*s{}u@Q@J1tANj6=0Tq>t+6w!1ap?BtM3du zwq+C`QI{*)5ET)M#JG5bhD5^c3qgU?h9Z{*rEZ|8L>)QP*LjTmrw)=?Qao0x8t<6A z=dw@=ZqwJO_{!o$kvBs<=VCabDAKFv=2QD{sbEyaOBQD+%6w&D2*s4KGOG&~yGv)~ zL&aw$>a|q=M`5PA7_ROUnhaN&11`S}ZuL64wScAWSEd%)MX1H4zSqmg{_wm)LxTOqWRhORdF+;;dq>~iMQrG`a`Ymnc54xCAwkl*GX6vu9X z+g1!;sU2md;Xq*|tl3Gh=OiOEy)7KMNh(;5Mp>}~J`W8|16_TbUKM(BI>w(v)f+ZEaIQ@kx(DfL>6@#ik5M_6$Ff}4lw~$XvY=*>yM8vBlP6eHj zQBep93DxBT>JIujGw4d&u@kG7FTi%Jx|NY>2dSajvf@Z<%q-&dGj zw*1cbj7z}KN%!qFV=OpBEoI!U=OFAq%;sXo3BR)&Q$|-qf)h;q_2$AXDCR_|pMDh& z00mwPww7A4Jl}?mC068mtSU-iM?edr95LwHtUKbP65tKX!H%efXyNONM0ZaW#{fl^ zbc7=TR)08hO7dX?I~F?OwdcTQr92jbowk?%l$X^4tvRD9#N>0=B~27bj<)lJl4r{uL~XhjxghdQEAJt64J zv%z0vgVh}di#Js5T;0g-MpVo_;$NZcdguCLP7$I3TbtmBnU#|N5n2cs0U1up^lq4)fu1t zQ-H@NXX3@5Gm&piR)I%|p1JdSN?}t$pG5_EetW434zp3(d<9BdErc_E1BzPyi{j?X z;YwPIqSg!H3C~iIW(*t~dLd+McZ96#5Bs)GKwdQb#VX<`4OM|mSzz(I;k4z$Z7W1^ zXcme?GEr*JMWHPX#WwXgWd%?-fxRRWp@oSEDUDV44};%n(Lq<4-vWD?+Mf!_++`{_ zg9~1`bp{w06>jYcxENq@c2@;Y%+?4|(NAbtnD&PF_n&$A>-U-1vT-vq($bNf!Y)i! zE%>!*+Yvo_4?tW}3PK{{R4^Eh#8#crp~oR;+o>mF5?bgP*!m>hs4QZdz90w<3uZvE zgCb!ULuO0`V|F$q^!1_$HE_bsx^$3GsQUYudv_}#tS%JEm^DVh%!FQG6xH?wAIlWx zm<1Lr*a`a&o7oV02sJd*Y?dhYyW|G+zVi0+<&g8Q!r<%fD_`FJeJ;u}Q&F6d4D0HD z;4R5B?p=Lee)mJHRlm9WN=%qVm(>}+@M^K>-+BJzbD?O$@gfh9S`4f&uwaMFiUOYv z7F!59wrUNu+792!5r|GMfD?rXDT_mlyA$%UUGL9tajKZXry`3SxV@!nhc<-SV-Oi0 z0dJWdi#F$B<&F|;FR)`{Hn29sf(@A#xUEsJJ0h@neHQYIU0N8@b8-5J0sTQ*oLtVpu$O^#>gZ6ssVWla0Ex52R;>9scY5i?bVZ-9#=s0 zGN02fVas?wDm)!t4vaB-&8p)tX8QZQ?7+y!Q2X{c;dK_lQ(B-Nw^%(VzBYUp_aBN~ zq$x~B3xXhGmmmoHKtiMqCF<)V!()ZL{}8mec{F@S`4Dl=N)$Dlk8OwEgS>9vz!#AT zdr@Sv` zg)=lCv8}>X1ZCHPmmQ(7`5my9Ibcx%DT68%PO4y41!O8zW3Z{iu)u$TNLU4%3^*CQ zu_bm!dK&U_^RZ~*d=&^rp=GCjaKyG$#~6Y57VVLc+y;@ciEuc=RB%S`3JXFU^z}M$ z9jGe8*-B;zkYuSU5`+dx_xsN^wt(e#zH4j+U}l$zDME35*wiP=1uqI>G?riU_-EA? zy;47(jz5OogblClGLhd~_eGP{<3BUDP-|tBLI9R7a#D;Z;0@JZ(H9bi{NxVhOHrpj zT1axW>8=-Nrvb>1h=na}D|RGzL{VAIPCZx#`C48K&Y$oVX3m{wjMj{#XnWwdT>VcS zT3{mxUJ8r{pznKu(~s>%erzi#L!Qruu)HCNYw1H&NHj|987Q)E)3E}44!Eqjh;k$% z+#ZjVh#qJY-4Ai0UDR)WGek!>M?zw26#HW^Z%ZjQX8Dj);)Bx@5PKYU8``yqL$T9~ z?U{uEQAouMK6Mazg{9h@o~4eAKkO8ADyl<@kZKA&;dXW6=d-GqDH8syQ24S#U@J~g zOCl_#(K@@UEHV#e5$b~%k+1Ghh%&1Oey1J&B6a)XPV-Yr2V00b9-9v? z6?YXEdEhSf!tM0I?efCo@xV(jt}>QjQd|riJ6GJ|Wxep9u{N$z??)NfIDi>)6#Uc* zq3RET8C+~WME^DI_vQ8K3D+=(q&y0O@Lxpi5`=od%@XEwMTe2L z7I3X-3wOp5aIU%vmc@4=YR;30T6`63MJ?2lSRT+YfMH5J=RRGbnQ+IX!!tM6xAj;!&t01!wPHO>5Y}snb zMQK?fN>G4OUm-jy`0_h#@a5W3xKjmPaOzn{`a$TU;hM*#0z8Y~q89a)s1_YI>f7k3 zQ{PTSbSk2ZKy!c_2R_*7_J)`9Tl0aWkNBDB2>rg#_8Lcn1YvC(nu&m zQS_qGJcTcs+6ONbxR}L7WBG+wysRIKP&6Cz#l6)Mu7b0=c)w29pRBiq+JVhP$idu5 zvPWHn+rFQPo#}zkX-%-JpY{-Iz~{=Me$!dV$ihYnD0$la&j7)I zX6qEE))(ZXFt;sAJkhYYTf^%MgM~)vj&SuGp9GgL9`=wHaD=v3zp>pB7u^SbTQj5; z`jMyZ?@{4IUXc@d#VQW*sp!Ipi|B9VbbHk?THt2cpSsNJikxn&-japI>vm$%+8tP< z{yyDmCjm=^-7&jK?v0pmmIRi;7Vd>D$^%PSG5n#~YRLs6a>LRo1>GQ=5e3#cKYh*T-E^TCHmwNK*KmF3G z=ceN-u8H0bYzA+0&CD)7U)oM^n6Xqyhz;%Aw?R@;k`}vICRwK9vjn!;tOXi-<%J*! zyCY(kAk-6P8JU@B)0hYk2?UMQfTE(+6Y++?SLA@-69!LdBJx!Lm=)qcLCz=?gjwN< zD1bL%2V6b>fNSs%@VD3mPuvc8itO;GwuXOW2l&%kz`wJ(Udr-f;meJJuOw6pTAs2% z$)VF;2zN+6O5=8-I6f7w&^)-+_5NbDp8^$_6^5w*Ed*sH>R3wc@Tnk-DfBLn3eX(% zzn~GV3oc7Byk!C5ONEtcTm@K0bj#oh>iDf8VX%kC!y26eOMC}dW81(QnT)7}R)|S# zj_|1HfT6t##CRVqj1jf3a&HQXT@=2kFsa*wM@GWV8OeIW{H#d_MnP!UgamnH1&du2 zwJ1Wd+hIj`-4XL%(VY{`EHA>2iWI)s#W8rHz{P!=9$=)+1xMoOHSbls6fyYNLgJ&0 zEul8x_cc8hnbnn;Xbc{NtlzXn{cbv7Q@^#DLr=%MpG`8ZsTpDHh^W?_Z{osjt*8X4 zD|)N~j1L%R*e!NM#(J>Tw*fnfijd)Qs%v8qW^Ij}(imiyh9k4Yio6n_$i+CoisrHL zhzXB`laA*K#s+yMF8HYZsQvPxQ!@&%etQl|TpoDnW$N+j$K;hoP7jLI?HO#9I{onZ zDvuwkJBijjM#VPjS=#+}_2B}1h3Yjaj)cvn{&q{FU~z}4ot458TCA25EpEZ8;v|n% z#aRv&lX0=Z@8%2W*I8XwyLzq;b-Y&fd{n68ar#hHP>SMWXTaXV>rscVuCP*KRPcEl z@s>I97=X{Yd`rIuT8LEtqi9B4&8-6xufvI)uywFS`e99SAtcG8J1Y8ZrSOI2 z!tY9e(-sO}Su|`J0}+|g6AqgSSXT8=0gxA7H@zQhutXG~i~&_x5&TJMC{uw}S#&OZ z7IyYgflr8vAWKx#&mfQ`jB4QlSc)Rxx2izWtpYHM3Kqjy2B3mMyHf{P?DCV5m4nTj zHsHi#$El#vre`YY;l15*gQRGdF>N7QojIyT`w%LJUR{h2+O&c0+}sd&@3Swl zX!*+BmMtY7ElSuqsic;OyiE0>iiTDF4q9EMuoYyh-|0N{(`!daX%Rx4MTpEvLs4NT*Ig~A3lstD{*@6!^<6fY<#GK3qe&RS2330HBDO+V(U&6&t4aB2b0?e(Fc$cYlC z8xE$U`K?HdjY6l^&C#-1JVG3Hy*~;-f&B#@CoU=kiP0)n*$dlpJxI-V!|5tQcJ5B~ zo;cN86$Pt9#VSy7l!ft(+Aa>$T^P%pHk9cAOvN*5&901ocbWS8cEMY0RiDccb^B-) z>jXL|vec60g}m%l&(rIp#}+63{D=q(LsC+_J`R0*9WSZdso5p3}AQ5e*-jV^iIUrdpi0<(0h7KFx+h+TqEPw+?7 z{842fTaQ*wHKx#2hJ{;I;GwoH{!r{#osKe(4em@EVxrn2)Y%gD;zanvb70SH1B)kA zi%;I-IFzVB$P?{HY(yd=;#D9Nods)rHrxqYwW+<|rGiBjTlqJ)(&AScGqwsMP-aoL zEewZ0#HoWKEh@b#-eG$$)lT^Hyq#Ou8(81}Q{ zqsI-O3ha1X3O-yQp8_)f7YVQ68vV4aJ`A&LA?GlN&)?$~j)?%0OS{Ic%QQ$08zu)S2 z-Rc4y#VU>|rUVARtpwIGJ3_*}h_kguUJ1JavO6HfDDE(@f5Hqdm)E7=J z7hAL4a5+nmnVG8MmQqAITEbz8R0pbJ7O#qHR2&Acdea;wIu@hpJjE`*Q{6-bNIo^p zu8qE8ASyOg#b#0JI4E!h;w8pD+R{NS6!ttWKA$ob8%822FiK;U8=Wr|!nUeXJ% z3+$(~v{)S<`(j#uIzY9*VI#+&U)L73B6e-r5?E7YZYY0u zf*|ZW@@Fgv^@y3##jKmg1ZN<1%%=Vk3mov5gy=xYr%hLll0Kgu{)lXN<5S^_-3edv zdX&Xx!sGWMz0iWRf>=0RU12F0iq2&xpncge_;x1fOfUL8c+|eUp+)e~mq2W=m+3X09ib8zk-UHIwh9^xtd1C3TbYT>PhRKH4zTd6eB0acjqq8A9 zJaRwX?>}$1g<_X!a=$-tA1r-jh8UsuSFmZlP;<;uD*7wh8j$Zc&FG0MG9YAn)n%)T z>c=j;5zz=O+LcYn+xXS*psgSazL+FE#{C4}W>1VBIt1?Q9eUfReq7fLJPzv*Jp-wI z$LMAA;1e*tS)aXjYiu5EQ?W~#I`QGc-|;f--^Fc?nKB92rEU+l=j0>blZ)c8Ehus9 zR1a>2!yShxXM4D;`3UnR!QqL8g(ZQ06|b*>Tz2pMxk%VR%q8E5h+Qr=&iQ7hHI`(RP;88J5ba?en=R(w>QgE|V zXk$a3GN(H90yXGFnU%&{D$21?+)}ZRTg7iqhk66mzNsl${3@XNKhAhMnmgf0a>3rr1z%_mJki_W zj^7A>NTCX(T(A}of!d7kqvGNT`mj4RS=z&n2csElF_P57j*170__GK zin12Hv8E&vD|0N^n(IT6OWj8WZ9cXV_p8vh%m};~+?kP;vGD)qn!#{jTx}b{9nE05 zX!BIQf$BC4y7Y`BUllcOvpe8W0X@AWLPEl|*cBBWgNV=r`?bq%UR-#XoT(H9pE-`0SiA7o}S>jY|~3Iv88RzQFHn5--Vd7&Yt=bol*!xIHdxFDZmqXY=f$ z*@lHUqhKX2KkqDKq;jG{19FHKVAKYMCoWp_QkN+}an0ZJ5|9N{h% zzj$L{^@Zwk#Rz9B6-R`q_`rcuYYtpc$K?&|*H`A!k7vTnEQM^Otn zayr0P*aFtlI9NR4DliP(p-cr)^z=egYz*muO)pyXV(_SfQm*xt z>NRl$gf6Q+L|qPi&9b9VbWE(et-g3b2rh-8DLsvj1wp7k($dm!-g)QYt+(DXMs`85 zi=7rtX#UP_i4C2K$4QfWW{wH_j?2(X8sbTJL5p^9Ma2fz(Xnu~?gn?8uH_5K=+sYN zZ{Efimxz*HBjAfkto$}nyHbt|i&@sV5;OmqkC)&55GTF#f7o>NHAr*2RIHJOnDkA0 zX}x4RhEAV=C)!%@#uJYi_pX{ydqCu|svmMnLjjR1AkOG*UZ=-Ze517!i_R|hd+fSo z(ZUHb6$5xJF1SK6krgo?UZ`X8In@3_)O|xxqFr@}kKlw~8LZTaoL2Z%DCUPVP_h`7 zuY!c4K2IX;D)@3a z0_Lhd&Vs67Hq;9+IJGkaw%5k(-l)u}2*NmKw4Z64wC}d7}hTZ*#^_JtqcL z<=cUUxACZ8d&8PFfq<)whV@>!)mceiE`7Yb>hY}Vy;H}d-av|5R*MZRXJl5F4L+Rz zzbi0mP#3g}r-^OdL!T~Y2=H_D|LmOyU>w!;_0RUzs&~0ta_-5-qS z&70Yo+12jMo%3!PY2^161fi37=%I&j{q@(Qs;UZO#*D!iUwmP%X-aePh~b8@B3LZU z^W}=E+}K|1?Kmw7T@xR?&Rh}>7Im9Jbu}<_Xy;ai`~JfAzz_?7*mUK@$}5v)}#S?}zTBq&3Ci%8PhL;v?t*~lGl?|nHeW^M7DtGTjpsr4Dvu5>j^*V+u z@^8fVZcO~Na`JlNvMVmf(T5Mv5eJ8YWixRQx+hma6@>1D;c_4dLZ?En8wwKi?6UGJ z#WQZF4Q})55pY((K70pU1!YJYUkzLSR)mtbBI>M%vo;;}nhZE9b78Mdg}ovhwhCoI z)F&Vsaw>yH874XhgyD{E^ZMb;EQc$r60Y9muqT8NQlCl1P8-&*t5P3~2iuE+sH{}| z{-`pHqS|m`;#Vf7k2nH|IMv*4i~@!OYCZFQ1(ZR>&ort`qbNsIIgrR>DkD@GPsVT} zC(ewyxfHWbZL9v(1{P17Mkxg?hca#5UbsAoIzN|FwH;0moN8j_D5siS9%VSH^Gr)O zlCyR+{9aK|6$GKhf{!`F8_sl}-FV8dTuY&Z_jBNh?5+7Aj{q%(ysvfCfld9jLz9tlVPksUg@dga6J z@?v{!wHCTEwyx1a7sD0LId$Fv30)+CMvJ=rYVk-B-rIEn z`e~KJU6%!K)j;**%SCB<2s^hqQ4%ObK&|Bfm@Q)D?+l;@&S(m1f;GxsaOluMPE1Ho z=+UL~e5$!Ia0akCcO)9ncFTdH-hyeT>>ui3ZigL?s8iWwZUjmr2>T=21dF=WHN;y5 zn@hbPWkW^l+&UL)q|TviHMM_-A9b}wC@)!ytt*$KWb-=I?XE^*QWp9RnS>EX%){WZ zvynGoG?LS@;YmnA)Rm5ka5~C@nWzpYAw&;3e!|x2^6j&&KMSjabG|RNrLwX388QE< z+pTOVcY>bWOc9~eM0j<22!@CrDl8Udg%3+^Q$grHh}b0vaR5EJ^7D;3Z?+uOjd#Jz zt85Dzi=I#leA@;ivMn7o%RQ)Gt_+Zh{%}<10717N?bK)+M*Zii2RyYv#xB^>%7DZw zH7TRe?bilRs5}wDk|YGSr6Ew_)k*K!9}I?cVtZCygj*S6YKqvy#$@BjU<4tx>u{Z# zST!g}AuO!(dvH|Mu17r$D~c^0!l)Ltk;g@zpZZ64>khNuoHS~MF`{VKb34ZsIoIXK zU3${X%9yk>XO|}d9&e&H?)ct4%2=aF)=>-^)R?D>o`dR{TN`wOAhbVzzaKZ=cq7J* z8;6fR`UpoIbre>vT#4WP?sxF)Cr)Nxf)|CZ50Co=f)$3q#boer4*y=8ie6hEe_QW! z)lVO4I1Z1`V-pd&I);w60~kVh;~l?8VUdwU)NgMZ`|kZ}DI6u+%%zs$`qcmZ1+MMi zm_2*qUHJ}@-+l~^%2KmuPyFE!YSi(p{p4?4rbRA`Wvf=}b8RhYK0Bz{@NOKNm|lxr z>{H9?_N_w#=_Qrqalz+u>ep27N=Er^bssIO!`7X(*u1?O#U){E+g^{#x*9~oPB@}I z1fw;uM_mXbpzVlogadEN7Eud^z(tR7dNf5$o5K*lICrXJ(u?Up(Rs&s;;n$&d7U;m z++n!0LvUvJVM{Jk_EaToA!UG8Cm~vwpuO>Jc4fP{s!&_M5!=801mAr87B(;c4AsSj zNJ;SGh*@Xh=yPtz$Rkfh-heUiC1=9v;$WX!y%&ehIp$E?t z$I)|UY4>=;Rh~v?W4I!PG1br>SoHd83}H03VIM;lH`C8unO`)RgTbH<->j=QT)$nVp-b%xMIBaWf6@%p_IgzmsQ z@4SO6uDAm0)%7AXGZTOO;~#PH#TU2wq12+es6-Krf>UhO#^&@od9tp)m^pp4uEf|H zD3a}bc_~U3eTl*smo^Ao&2gnBV$csyX;N)bgs!${#R@~{>ZmYARx(`vD>g9kp5&e^W=*4(KMd7Yp*tyFnh`{qa z=ahMvFnVOe`j*&T8^L{Vm%wd?`&mCl%d1O|Ln%{&`MTH_427||xC}eWcEja}BGKhQ zR!R~QJ#K7L$KM^=j@;BF3`ie@UBOzUBst)-r>mW*d%w*OH_KSH=tqEgvsGIuq;VD`y+aJ~S5&U=QZtN=Ejpd(x zfN#HAiN529AR~PQg3cmkf7uao?Lf)5g{UkoM%B)8xZDx=)aRd)n1rnKbmZw|^GWaw zI0@d=Y}BbQYSdo=C;YIxlMr_RgUeJB(_eYLU&)n`;+SBt`(+x6?T0LH;YWox;Wk(`*Ah@m6K;P^R5U~ECU`Wx>5 zGuRs(45Y2ZK|=BD5`^x9h+TpZXVAcBu%<{EtjhS< z5m<$i>K&-7DFvnyS6AoW3zIW0*yzuEJLyQV4gE&PQKKzej7Zat1)Urz% zRY7`O8KbwHDt4D5;1A;Hqi1SS%F5NHb3-r$G8$H&yE491zZSr_e{&m-#;OH95BmMs zvVoorhVjPgPz+0|sjkxEm@et93^96f+0^!yVaIt=QWAcAik%I;vXi|~8J5Lu31 zir^&(?E@3gGcVVZPa0y-dFP#n`|i6>3tk6HbHU3ZWz0Y=GI2epP^Fn&Ifi}Z`?A>E z{)v%n{yZ&iZGHS5v$qiuy4nXTXBRzldH?S$?tbtQ+)&j=-QU!`Iyn)x4lqO__4SC> z$GRZfaQe;<@#wF9rgL>2EEUXG_11xYrUa9WyoD$s* zWUBX{;BsierLwLH8%j4JRO3;9pA>8^uSJ5}h0GKmydG}jRQqxuh#I(U32I+qcpW}1 za&eHXys`$B>i3$KyO}-6&2W6 zSb`NR7h%npOOZXi7kutaR8($8`M1j63e>BtlqCpdy09zK6O3Kz@UOb7&m$dhUaIfzm5Bl zgf80K6ubEK9zWjf6a=AL;J963wgo|m130>vk)ezSW%$t8t*Qdb%2=rf@cGP*;((3C zK@?Vnv;kIAqzsZGb*@{Kky7eFdUiiJt8-urIuUi&!d{yUxGR;JqYNZR5b#z4E@fSK zl~I+t8<7ehBGqnXR8IK${*0*=r>0esr5HZ+5j{A)vJs)*Kr@loFk4^ z6%`FeXD}4h0vPw{cA3VOdJWBFienVg_&V-8DLEO3PnnKh86G2dNC#tmujt)XQ)7Im z==mQ{-zh=ps_=So|NZylw9`(*XP~imHSLYx!Z$D%xyK%c{L4>(CpQgMUvERGqEYms2N=bweZf%0x-CZ78cFD%js6!N zjl=)_Q}qANF>s|NX-~0|MXQ=@Cqh^I!FxX+z`b7e_fIuDJAu;ja=fsm5DzdE2)0y~PMi zx=%HH9v9LR6Of|*5H9UeWYg;sTpna3q#?=YLc|e4X@#-}{B~vG)We&=eXGw)?Jq*_ zbQ>!Lvd@K(I)|c?N^IR(hKkBM)YR6iHBtDy%6_mp)iIdU$~cF8&w0Maa-!FXUg>;2 z*X$dbKHJIy*s;kyFk={-_xk&^H|evh7G! z_KR1CUYpez5k%Bqs22SQIn?!yMw7y@o5FB`o^8s$vpEp4E1OQ88$WM~eH;+vXUM9P z3>RhF$ebt4qT0^HsxoAGdhz=t2*Sa`1oYFUO~W20*v6x+Iw z0+^a}8*4kg4dC;7keil)Bu^%M32t~;P$%GoGop+(?aky++Z!HROgtY@HclXvplk&G zZdJefk0}p~ZJlsADJUK|v^k73-aj1l%1map>LfT5M%kdD&|Zg-tsWr+jL$*YN&MScpB6(4?GBgD&jt0FMBQ2H zZS5)a^R@JX=cEh#=$xmVt4Y~O-oy-K^cs$w{E5iyHxjx1hT`xeCgaqTj>S2r&cVEC zgE4MUDpC>;Jx>>*4a7lZrVe2wg&+vs3lX~nA&#NJ%WyLa6uc30q?ZB(^La3JRA&lb zebQap`-~S6hc5to&Te@6*2B|_B3BW@o(kCg$*`B_!dX-RdqpN}L1mnTlyMhS<|C^x zdh4{XWlySxJ*7&`YvD*%)_vH9U}*yC3lkBna3fTwwpV@Oa8wzE%D8ewbhskJ7abmD zJh>vuh-65iAO3n}RMtfh@`n)$GI2da5YG%l7J%}x<&F>SxSArlM z7>AO8{$QZsbz3^>L|99IZ#yPRdz@we4bP!ID9(P&rVM+ zQ|PjTf{e0XqIQI%%9cSQd`Y?J-*+eq`VT{|ynJ|k*{BV;P_68ix`47JTK;(V3dOnR zw#we1C)Mb_2{>+S3Z_pSf-zH0M!(^6kd`wT$=(QZ6Kj!`ycv0k8<6Gw7GC=fgra^u zY0rF{;n`(33;gf{VUa)l}g_usi|bdb+TiuTyi1S}tD*c25ZI zBxP(VgM?mPA!Q$j{K^FLvmHTwZ2&dZwFm`S0V$$hPcJiNm~rG&8C1q;sDIUDoRfjk zG)5{7IOlfie{*{hR8Jj-XO}SjCp6l3W&3dS3%uI;ZXN7drb{&>V{zpN8k*F;SL6nRlEh& z^?v*<K}h7s*~GqEq7pjsT+mWDJZQ^L2W1z^$`z35qc%L;r1$9$m>TSTCJuU1S53_ zN5cp)Il9eI8NxY~{%Ce2e}mh3a$K4v%9uoKSyn z^%}c6z9YiVPQ4TLw`b0Mw>J~vgaN2`_C~W~h9)T>@_kdK$@jV8Lo7@QNu z5d|(x9_+^Wd@uTDvchBQ-(zdxZ;Q4MBPb*(y&!Z?)U(~bE}?=T#3OXMrod&xt_rQW-*)6{5JSaEH#(Wmuk3loanmO|3H68@5r$SC(f`8UM<%HTJEHUG^V2Z6@ZN zbRJGREZz9<;sh%ZGLzM}^K-f&ba~n%0eyS0AmJ3VbzsnQthIug(7wdp=f{jO1hCG6 z)f#X3&2Q27&gd&F4sk!+?#BFN>HdF`fh=A_n>OI?7 zHIV~d6qt-$Q(hPIs@YLmvjgFP`h!JWNJ{eP_hAf*Mfm2GEx;;+=?H}qbVwry3a!U4 zyPDIE(wUq)Uu<9)MFf0k;Q_F0-Ii2Q5^`eizio@j^9 z!+jq3dulCKQhGw$M+)``Lia>Gy9A+&QCQe$09yh@@7^6RbPErTOT8KKG! z3RSuhtaKqz;X<&+fl!SyIJJ$;5nvjB$~aQ*mm!QUpW*qXY-xm*;l?QvilDwefQpJL z1SmYwpi)MYsZr_4Ft-%C5$ow?tTYz+uQl=bVRdZFh*jqlwLH2a<`mZ6Us_0`(8YD? zoH_UT65C~D@=zH(xM_&2AP9TH2h+d*{qGn)e7F|6n1KH6x8KGSPdpKKLKivMoLxfv zz)(hdoRH4GHZy0|pMH50Hm_cVlZNHt+|hk7Yd{8E!FmMh>rq`>hwF!>8)1p+-fPV3 z5w5O9xUyR3mYo-XBt@RbCs# zj!GNWmASE{G6|)DR0NTXh|P_tjbVwF4Pkg^@%8l73UW{{=+gPR{DBZc%KqSX;RtO3 z>uAc3QQOt41J#G3s8M!Gl`>6gn0Hj!E&;WUX&SgcZqI*--?#$NlxDq9+wRRvs{=v+JiHXNJ2(ZCJO6@p|Cn1waN~wSAW;q>M;D_ zKGrH^q>%!EdCMo07TxW_?+AGTxq;$KX-}KDV#<^;%zHOT~!C~e8 zQq#8Wn^9j^Yi?`oQ@8ng?dfIqsrD&noQugbj>p`wDf+XEC-|MRLK#^UL8=i6LL*E- zfBEH?>%3eneSgCZH{e&l`c=E+zgZZ*YZMhY5y?2Kx$1XP6}?pkIy;@6UU4)*R(wpr9RtOi;usp zR(Et8>VwclV`_sg1fulZVnst^Th6u2r2etm+A~Q@IL7^-_jgt_c6nT=sNSvYpelsI zK|~$Om{IHL+2mFmcwBC{ojO&nkgd)mDQTJM!5l(vqUbSPlBdR95+TN+QHN3iF z&&3!gQ~R_3*Q!(hcwH?PeM3+AfHJkJ;g5KAzOitW zsTw0D*|FLh!rw-ZjUb-rri04T*SW0&SsA(IL@~CX139Vud<<`}jv&^S zrkKpUxPl;bUqtK@gf2kr&6!>}%(oN|g2a7qm!jHFaVUb%K6?)prDZ6u*nxqw`yw?m z0TEjrLMc07t4lyM;55P)i}Db4)*u>Gud7$)PkJ#zB|b!y^~W&AP_;7bd^HGjeK-WW zyB@Vg$_VsCal%ov@zK}2lvSh*v3h!UMf7&8z-S0xVP!^9>Xai4k1O?ovZ@r@daebk*f2&;RzIy$HIIg|b>l{`a*#TNB7#ku*272*s_`4Ug{r1kTKh4 zza`kvMlkFG-rJdjD+-rO*(M1d?U}`G0alNu2bfy62jH@M;b4+czTVKt^g6v>^*Yr7 znJ>$&Ll+%tGQt6^;}XuD%DzeV0-1?X49K>lPiEVRT+N{eT2Vy^3s?E^wX(e^aA}*y zJZCLxsgq*pp;P_cZEnL0i=U%L&8#!CK0Ez7HF+ID49*N=!axr)lleMhe;oR_KbioAX19cB7;^h^R7pKK^;U2-SuWtXAt2YT+-B zA|WM$W2Vf&=bKAlcSjJcrNJ21IlCw(QG5yq!^(Dz>V0!Wl}01IyOI;VdX)0W$%kn} zRp;npF0GIyMya_aeraRY600~@`!@SGZ``0qX|>v=E}iSwe}#ab)v3528pG!PD5mkX zJce54=I32}IgU7L7G{hv<5J>~RjZ83U-95ICHwUqNYZTkdZ3u=b(iq|vf7zT*#}IKSW~sK?DTN{KQC~ky(TLk{?xet_`VGOz z5QW&!*Sj4NWG2~=oeT`fv?C|Y)nOh`^?@+H*b>0vZ`J2k=TM)4asE6eyYYfudqX54P;l!OlMLHq~AdqSrvlhX! zL`15URphNfu#zK%wFn25Vd)RUkywX7WduoSQA`~_9n061BWhQMW}ULU)SRJx zWnHn&kw$yejwGK~8KprT5|EUbhyAkF(~3?ha{`4(TDKyJ0ASp-V*R2I=lbx=V)c zkQiFJ|Kt1J{?}YEbLKqz*?XmRMjvI2*Hr0`lW$B`YGTN#?s z%j|lw8i^vo=h7Z9BkzZ1$+j=QDJU&`yY6T$)Up7`HWajPHod=ODW-o6xwSVZvispv z+orOb<1of!5y3y;pB{{UdI2+{z_87YHVvS*z=c5lvmVaEXTv-Z{UYTAdH9%)j|=Rv zgb zP67RqWYr_=3By4weUv-le$qRyD83{BGN6Z*0OM2MUAkHEqVqG1} z@p_Tx9f;H$NIX)=*!e|hG0EK<@6Abs7TDau?!P*8bSp2e3Ja$P3X@da$DDy6=z|wYN3vykDjon zJ{I2RTct_FvOJnPO)T&$yrMRZH{e_=)5TYKt=71@JvyS2T+y2mY|7^}?!fejKH;+6 z$Hkr@ycXo*pXbbC5VF7A*1AgC6kvhPyRxnaKd3-8>7(n=%P-b0xOd28WE0Qcrf-vi z7Dk+_4HMNaFU`Lm+d1}o{ZbbvV~s%HN=uZ6s>EDv4pSp!An;B|--Yq!Mo*>Nufb#P z#>JSumxHHZoRK54TDvSy@nQ{THHPo4lTH!gg`hI{a^ldL z#wV4bVdSWE&g`C`mF=)qq`FaV z%SP06jD9W!_+uCulepf;_kG!v-SNdi)=z*!!XV{-ih&m4!I|D zd#hicTf<1ZYUGo!_H5ZTH(b+tlCsJorIJJ3S`~yuhZJL-YNB_TrPH19w6MT$l-^4? zEb#(?YJA02RrAApI#ouoLT_2bW z1(tSn3rFK+<8D8+aXFQvGRD+W_mUQ9exu%T-jZ8-wIQ~?pTEDOm1wZ|2KGn6eR1QH zn+in{%*#1XAbE58k5(XW_-bx{We2Y8H^vzCj{FpHXygY3cC^!NIk{R*N*)T6;y?S( z6dByFQ+PRJ+P{Bo+@yJIhu$%^_7Ht1?k;%79wWu>f4410G(AWvus0bb3U-^u+cu#P zTbQpB_|1jh0_lS%fl%*cH^F(jQf?9#ubEx4QDa0;P@Md>iCT^4!e@wfKI zPxPf_iknrXvdt>Q`uvD1Yjl?|36k(}A*`XE-kxu3bh8(MEu zg(WRKY>>+&ySY1BF8eH2`(Lg;+nbv-SXbNDD0Y}K6#e|V>)uKt)?EI9jnphz-WN!S z{c}zeX_34|7BDY3O@-I3xIe-9`YBdmEy87c;NWAl(tFi}!#M+|*u#&}Qj?*Whh&en zqRw}}R1AWSuY-G_6QKTGjb*j*uYQkPZRM2{AM?>z}5L!g|`eZ^k&qZk0 zcfw3m98C-3k!hNZbeS`}Vj{g1aR- zdfOLwIc_@d%7Sts)d&qH_#Qg6X|1>l%pv1{TDn|O5FP=9s-G0<>tw&YMOKy9~`6uQ57mmt5PDa;6668=DY`dXMg{gk2s5DJR5w;>1f{$HkXS z&LbD~qBlk7db4}aime{1-?&+1(0i|*l?-pY?gtBwVU7s(vvW35z^z=>`oA4^iM^C0+= zQUqtwT;t0KTILQpy$|dO^4+5be=~D2V(BrWwG6A$g&I~Wv!EUY%e*RPUXR(T@}eS( zq2ijUz@1@aXiNAej)iLl%8|zP`gGW9Lo&uZYm$zOAkaFeSzu=7Bg6Df7J4oukVKxl z>MUPs5)Cb@tQHrDau=2eS5cTGBe$Ix%|Fqs`lM;2o{%6S?J++$XL6B*4*tCGy{q0- zQE_Uhs#}OKwt>+91)L#NfvL)R68VJjo2g)*8EN(PhxZ)rjJIDpEl}Nm%JtasQSM^y z9vbS_quz*KG7PWC7T~lSEsJj-)SX+&I6okt|M)o7?rFSNo$2 zV?i0W#(OELmfFXjFHI!WgPwj5=Zs8`*LL5J7a-(i^R#%Snga!JCGQUQ=UEW%o*vBm zzDg4DT}c&Ok-SbGjT6rQ)?k~=UW|m2ora<4vKr8Qj!{tat?@`Jf~j^*G<&?JYEX9e@~R{bhdp_!Tx>z z@AE{A5t))^coQ5o;_35%j5UU!z51=;`|R&j4CwAT#)W039a!0FbcIjKo6%jkWke7v zBoOIz1yG@LhTd-p`Ar8S&p%Q3Hlwzbny8}mRG`^fsSwk=TgI++>VtW$|I#rQ4WBgj zMkq4^1%Go$|DIqiZ~NPNO#FdlOz>Voi9`TfvoN-|Z@QPuY(eeva2fGng!`uXN05S0 zrzP!Cs1vneBT7PP1JeAl8owhFb{Of~L!dMKQsgKm`W#ywnz|gq!9A5&&w_%_Q9F%CY;9~-Z0gCLuu@jQ~5a#u_;jjI6En&U!dZ`jY~CIMb2pl=GrDU zbht`66E8-1p(2JlZ|s6HA>pWyjMEx%^;FjmAmwG$|AxG`y@bTziPtC?NhJp9onbs$ z(YXg>%6*N0?ks9FOmiOin&9Z!{heU8A#9;NyS-Z(3 zY((YgxWeN;K%94PktRgPqMvEpJ&>8+UU*3dMR%bCnCyc*R;&2GF@da`l$DXB7-TB* zj;}jNt*`m3;AYSauDT}Pk9529#qH?o+pZVc^RSAD;#k+WF@q7blLP8S&nQ-pM?Pdi zr`ne!oH(@M=-oMzaMM+)lorKSzxJ+RQ;4t+o>xLL$J9C3ERe@^?3i0q!F-ZJTCs+n z-0J(WV5HE;2zcg=%Jm#Z9q%T71-4rhhH9@`eVl$al~U#DX!;(He)`!#$X`cQns#F8 zuTWoZoI3fQ%oMov-inFHQz%xOp!$kytD*kJ$H|f2YA*S$l*EbdP{OQe9!tz$#5@nV zI(Cd>GnH(#9#G_hK7zI`#;N9&29kAbt6m=f`O^e#Sarw%>`PlS6h)E6P5_H(F| z?<-8(IOVBp)IINx5_Gt_UIwsUH-cDwgcbqLl+G=3&y+6j^hbKd9$weP?b=OEzBOTh z*M%yn3>PXzUH(46R6O?La{5|h!EsADi_k1#R4?Z#XnRinx{Ae4F$vJ+WoWB0K_iCWzm9A{JxLXt#!~iXIUIuuQ2Rl6dGMp zxszYWDNmWcoX59;Tg5z1{V4~8)J3Q8nTpX>wJe7svcOj6eE#l-GiJq*;Vo%(iQq~S z_#+Sff~`hu2zK0?#$u3ism>Fn`b(%3HRK9Uj)~~E4==Zd=$SA~*|hu}IB;os6sw7q zgM;mh&@oJ`<{Rz9!PTEI0eZ~gmi#HN9m9eh^l4wtKK3hc5vg8F2iH|IDyPFqs^CMx zaP#ALQ$br9l>5&Qm!2SEMdu0!zW{7Va~Sgeq{NFKng8W9j5?r0<^2ob>bd<*k^SIr zmpt|J;`v$|)AM6pGj<1(n6_?9LXXZx-<4m^o=3n+ae^|=%wUgggwLX0>-gOoGYdE3 z{6-L*yU6t3@}XzVlt{FZfp&u|L)o6)y77HvYT_Y(=G+(4#F{)^tM1oz({MP>zu^(% zhA?R*Xd|Y5)W=BBGPvi0Nt+_ zLnNbsz*nP|3L_0r8V^g+kgG5A_fe@Ad739t241Y0P_s(jE`+|H%w=NnRFRWp)r zJbyX8cVv`=%xL1s5`t6nHK$qXP@A{OUp=z_#{IG`d(}>jck=Bwvr^mNX<>T}`Oq6ozj zD=#@1%AeodMw-h}e{i_DRIGx*U*JMrk38|30&`IEZ48CywdeB}a-pPpJ7%XRXpTwpY^%uD|rzKnTSsf6f+z?K#{k)-e}Z;}^381bs5 zH+4tl&>~}Y#36f^R#W7Uv8+DFn^m{To|_2?gQgFP%hPs;<3$v93TiL&B98Ka+`E-# z8#0}L)+7>pev`d^{t)(POmNBU`@H$!A##0%2Sj{!Cpo zY)Q$0K59Eu_M);pGF2*a_Ony?CrvWfa?p;AxTG$a+UsS3Lme?c-@^Xt=$q3XGL_I#9h&>xRF4xu5T% z1KOMtXff(uVKPBZWit`RuDg=rA>MTKoy2^Fol>oGLiGIkE{zWBGKv@A9NECM3aacV z9*89i>g@PC))32?Jl8}j&7wiqRKb*?bH_yJpv71Au)w=nBS z+T*1Q%n=X!v-rtCCthbgfRM3t{sE`G)yZirTY?gmfR!^@KWsk6 z>5gOM^9NrkQ~1*!6W-F>QGzX}a0I}@n-mA0x)Vqf#M+8Dp<;(3^mrd!eDv#F4Y~h{ z8_6VVyxw$HFiX{+T8L0FqDE|QDq{E=^D!3;>6MfT!G;f!WCMpvy>1|rg%bSE(+uXp z&DvRGaz&R?rbF;dmyWg(-udblzUkKABF&c)GKy7<0XlLmaU1%GW~OD#7oN51vWH@G_$?L?)-?hTmioCzFww4=Ya}5;k!6Y_= zF(d4@C0uQ*&$fuqaVdR(Z)s)FKdHRD?#XYZm|^%-5Wdl;#vga*M}xBqTB-0wVqegf zRlGsjfG$R2!NF52Y*dZB^b5z=7;CIzOr2iJN@-9iW#g-_-?C!Vm{1Kup43Q{-Y@LR zx>`m}6!pX3C}Eve_af;*{lkWSUO1dfh+j|yFZ_vsn(L|%ZKHfkNZW@F9@#`J%w8bf zjjGp}bCr4qL|Mx`VWn?g7Em{wvKH)++g!V|0?aJ1in%?^m<{cj^Xhs4fm{-Tfh!j^ z$%}9=2!&Q%TRzgL2D#y`&g9cT)={KcBN00-~LEWE(+zyJ+3b0`E6cXw!9xamH6K~fuwEzxJyd)4w;C5 z?C5B#y{i@Hw5l$54r{ZM+(s8Jvdw0-_l@wWCkt!;X#vD;wm4#p9 z&8|OBX_>wO?{1eC7f)poq3M0z&zs_lEG`e%5&f0}DFbZVcoZEDVP2pGKcSRY&&=uL5Bx2s#sD8Hs~^C%xtPRA;(l%m56 zW|=-iiGu_mGlTVjtX4Mhm{E^5^`nvT@mVt;uZ_~O${q=T1rzII&-FJ|;1p~3w!v;w zz-oQ_zjhTn|5F*7^bd=kHq;&uY#?9w zTbMJnl0pjF8+=}n3;ZWb&5gfwz9xVE{B~n=FY$m;HdZ(wKiq*QZWuim^Qb@jmbzRn z;C=qt>@mU7earq=chi9b>kMjCsrm`1dl)|S4u&#chw>*NYJET z#&wEM{4H^%wW$2zV6{mJ;^7wg{o`fS5AP`{Ax{A^!LMcBNM2>CUxe{L5C>N>%u+h0 z@Q`KR5yT!hi_ObQQ@h2lk_P&;q!wr0Br^S$kAc3?ZLZX=vidWy^E%8og5@3YT~P+g zJoV?UIQ&*YU50u45TKYpUpIAaB1+r_IT{1vyW3IY=e%V=2hR@#%Mv?yaf&*R;L$cM zEIW0f6Epx}dXqr@pT{lL1rmklf+@HIpsws(4lA0rR=w6|TizmKkVQnZw;~CwIKvsT zC$Cv9)!W>j^u0XlmCIBjYh%s zmMbrr96<=-J^*~Ch5fGc|5H5^ynP0gxWr4JZgs|fi3;V*j z#Gfu_ES)q{b~*rpV+kXb#|mT3_f!lB8)h}`Buj^`C-h+54XXwOOFV93wkmJ#m)A{5 zr8tUnd3PAG$>|vtv1ph7iXrAvlbwIER67F$F|qD#9etHjSN(#2hiKDxu4{9w7Pk7M z6SA|blG$pavk{C1oYpJdAPK;GLtvHR66SdGx%?6IZA%hs>tFaa0IEh{%g5;o zMYiy_(mIth_2yj}-Aa411)o#;Q=3H~?ZJ$Fp=i3Hs zp6BiR7X5A~t8Gn{Lkb-85D0{zzw%!a;-uJ3#x<3BfHaD}sQj*Yxu!7%ii;sb(t_;% z@W8yr5s8p19Wx7y%l$#oq5qY8`FC1KNDvtw9z3=9e^e9NA;VIpn63BXq7iH`uj)zn z)4uxXKuG9BeBLft)9-)dz(b|2iqp)r8yq#qP_%WZ`zY;2w$(82f!#vidXsHu z&5W%TtfB?0a)Ey4M&->B*tU49h;k`cW8#p7q;HUCh<9rJSWpybr}N>YH$LE!)-Ceh zV&<%0Hk!b6cPzDa{LHp2o5HltYI4pY4E4823=N?v(WbJ%YQgfQ{?nesOC-QgnQrw( z3QGpq^|RMDWq`)}E5CiiArDqK<>}1!J!u(S!4ZZeWYs}(qol(z9I)DmEL&W*r%YvPL7_&2DPLP(qdR`sLjNJZVRh{k+<6k4n0-JPof9%o_i?cELbf<_R*L z_>6*Ah8U!xFv+2c80qA+mC|DuA=3K{43Q)BmiqF$&Kl}q87nO5nNsHiJjRKX@4?+Z zM%b;_aEZS!T2fn>S~Zy}Ot50%Yuv7+3#ahEjGxF=hGHs(@@S)fcJALfY@}uYRd=y@0Er@$ETekSCir)voFoY zlTDp9SfP|9h+_@}lFQ-72czA&<(cdm%iT^+_ly8-EtEpII&MOZs+QO-?_ z-oDpZ4UzNK2d0!j;kVgt>|y?UW-;wYt}(5DZPB`JHPFOfq|k&fSToH_U(OlxPNxTR z<}ZndK2_}nFzpnelg51ymQ>IlJSz!zsJbWRru?Le)w)04ZwMM&{IO6bpb?H1q$7rH zMd{i6eB_EDkv9&kzaasXJkQQ19mGc4zHp>Lx3(VOK zi8i+@U$`~ARW)Phz9%aQa8|OVlRvMxdX0W?L1dkSGTiO0Y51_!5TmN z(|X96p3LYQJFXZyef~=5J`D9PT>e#DXmLjd(jxSI-H$Q7K1LBF{|=9z>iKv|%rpJc z=R@SayGRr;?A4&lca*2dd7E+ZRpNygP3^E=jn6^YH7*4*=CYk2ZU(RM7G3Jw{W)WC zk&vo>t4hIyvsA9f(fyI8SdoB^Z=@lCYlR~vQSG21h~To^Y$zK+tdX_zBJ*_LPUqsC z!PAp@D05er$Na#q&@cUm)}#or$=!Y10*0gt3sd^>ChJZkPL%g*a68%2a1cPM&iG$9 zCnXYpx=W1^z5Kkre(sper@x^Wil#)XJbOP_M!l*;~z z!yM;(2+tJ-90~F<{+Kdh^|M78mg~>0varqBug8J1{mOe+_iGwHjC--)A>kj+Qx{Xz z-@KJ&bh1pkPRk?2?=O|K%J>;tPQ3@p>91Jhv9d7@oqb^nm@X@=kR`~qV69>gV`(fJ zlD+*hj_4rnu2}4|+*2BYCS5N>0k(Pio7@F;Fr#;8RN|i8Im-yRpUJj8kItQ^m5X^V zDH+s)Uv0n0T_-zvAgq+aDXHUA|JR}>jW&0RK+!%WFVw^6;o_b|)VrEOln$*XreB!d zlm@){Yj}ivm;Qk=8p!hf-;{yJg7`|_@tyc3{ND?|W)m=t3fU)AOxy9#R}X{a6@z`{ zu7+IWp*)zXzlxu6e7!iGH-5KsvQ#JXC%|EmO)!5)-Y;t1tWXz%sYcC*|umyf+T^+$2$Z0_rw}i zUC;MMjH4k@MuwOYkJXNK_ggD1ZXUqm@u{PN@FXnkX)Jw*t!X9C4PB%CW$mW3XkPvE z)^kc#^j+N$9H!_O#w>5Cy}?$Xz4WN{WeD24im!e{a|fjV)_fku@$Xdn+~sp&xk?$$ zM^x>5IZX5T*7r z$p)%3kOnTVs21m;$3}vjOvT*q#KaKxr|I#D+9-dL8p&8}hMP!%i&&8T<+IS!^VtFf z)a{Kg(B53Z%q(uGD%PhJPMt)l_=^}Ba;mfl|9<;1s;*;be|?0EP}aBR|22mq4!73L zT_JDk3hCjAd{?%~_J_+Vh0yP_6CC|QK4cg&3wvQvksSvkgVpJJR~JT&Wq<#4zP#Oe z)F)&;u>>RC_OQ&r=eymq*stAcOh8}r4}Njp3?+mGfZc1hsLPo6_i9JkXMB){FD518 zfvjBVCgdCGD%LE_(3%DKE4;E4`LV4Gw~6T=6b7XO3NJCP^)&a}y%e%8V-UhK9NU zPgbRy%Yn`voAfuBvU0c3Yd)?Y#;J^3=w?_^M4wZo+eLBs{6N>(c{M-*BoSdVxLO6@ zU?&?DN@HIXl7&JgLuB`1J?`J9`oryvnuzZhq;!^DF2)4}w5UJJ$}z+jB`1B7P1s8Q z)P2@|F)`DF6Uxfqtg04>6lT_SyA_QNTtE%7C^AKvo@oR#DH&N?i^k7?36C8t{xxFT zKp#K*1FOTR>KdyKQnY)vV3p}X0GOg(_Lau?hDgl;rcgnYFSmoj<=>>pai{9?Xgh{j za}@;zS%acITd9!F!~f$zr6<|J-U(U4t~;1v=LfA|_Nk56xX-3~Lygm zB1K_~xzGvVLRhIO$4K34&WFIVhB zfKC{9v%bkt>}(`sokl-%Iv;@}*CEGc0Fi$5*oY#fm1`QQk^KQz%A>!O{Js8~Ou>zK zkKtk?MEYvsZ-3W!i(GaMe#W?#eH;6QYHVU+Vqp%#L;)}Po~tW>;NbaQsi*vD?I@I> zF{ND8yieg*c?1KJ!+*dT<-cL~JQl#vrn=kf@95jx|5#`tmYvHk5(0Z^yJ=zv*-%Qj zZ*Mn_g6mw|v-3R`-t-d6oZ(=E?a~llbX4bj|6Xz03B{}WRq2%VhUWDGIr}B0+iUyl z>rs~`x7E?&GA-3DPt4~lefq`|H1}or%LFwAoplzY8bkl~Sb8@H6~@|u7}+^UWOW-| zcFxqbu2GASkcN;BmN4$W8L;!;=pY$n8&8xTDlf-^CDP&4UcWyJ`YZQNBjmCr{P!!Dx3`k<9u;EW2T%R{?;}TA(2t%)s|Ezc z&XR7{w$+F0NV>jm)N%?M-0WV6sTooo9%RFHIfzg zWu$(!-d7%};8nCe@xiNS&wf$*iy2`rQ8_dC@-HmnW2`6zW7scba!j!XGn&GU8`4p- zgQle#HRx6ZEn|R$%nr;@>dJ!2=tdOAGM6eQvl`~ZGS^Q?g33u}5ibvZG2gtT$oNw0 z-`{}*wHN4UjgzvSAaYZFsJ&QDR@eDi9@s{j8locoaqY94@;tq+UStnFWv=avT;1TW z^wiMy{6ZS_ELRA|?!{#6-R-$6h!8T-6V;fblUx7+4x#jahcG2Sx}|k(^}KS?yxM!u zjLkhXj~YOTm4-6D*gNq%68Xa2(;tfvBg%WtmsnXUZfwLR<>~k$tK%&QM*TT|B^?e- z0c}#I3ADH4vgQ7g=ZWfCNkjB~h<}#X22aMTfO#k)Eu|`6(@ob?ORU3H;~2U&laL@W zsXO}-#v+jGJPQXSqHYLhx{q%|^7I{Kg8t|?&T~Hu|FRlga1=R20d8z5JnS|!Y!iP$ zvoNmI2&_%nx#*N3uS_XrhiFi1@1qe3_hT`GJr#xFB=^0olPmNs>Sf&tAh$9jaL7_3 zy?%xq_Tbk7f#3@Ysrmhw>80p0CkSJ5$+4)hA>|~xPTzha|kwE8? zS|GTnIZ-nt5MB#S03W8ceC79}=^+wM+?Ehk8E`i3hH_pwmRN_>uBWNik#5W}%c=BG zRlr6?0eId@PWqVfot;2YbOzXxpI4u^JthCQSVnT7S)Z)NhlS6xCTk4OFH>iSB~ zQHos!7Kl^0qcZJZ5hS21Hx)xXBiO2l$r`1J*GUBP=IkLvAVASyLB!p3rNq-uxrpQ? zG=(%WYHQU)Sf4Xfzb>RPxt^a+B2t!25C?MFyDUffs<%DZN&osylT2RHvON_z77CaH z;18$vZYmyx*RMqG^Id-4QEkU*35nxz1<8iEb4cZY(=imwt5)n!d`@Mc4TY`VKfx87 zd~%W%wCA_A&@Q|n8l<@&#TO;>PoU7Wx%;aKiB`L%pcuId{WW>22UuOe?tHS9ECPQW%ervm01=U0>V-fyEl z*|~ku?isH8OW;)c7sdvntaaEsHNpjd=a>2X=?@8dg9kV$xY(Xx_f7Gu;K}NPwaqo$ zRPglDx{|^gek`n@WN)Awl}^@Uq8S%V4GBqWvL&eR3q#<3ES&d0A>Da}eAptcP08RR zBko}AJ-H+yJr1#^gVY{V9#+4P9j{27+r#KWLO$?~r>$hZN25Q?nx#n<;3Dh@%QUMz z5Jc(nd3`n8FYKhVHlzr>!w{J7<9PnN%A{Wl|H&W?B?=ifIPZI}hyD7MRcZD7-gbUmnaLE;l;x`1-!B53)g> zVX#EX2b!YDfA{4;b=sE1+%p{gRqSl5D~_wP>r0}G%r*8Bxi~=-2x1yNAKwyCg?xYs ztn%_gd^8KKU31hn@~~I^pv>A42?ZI)A@ociZSE?O%h3xFa+sCtPU9Dkk2R88yjq;vmT$$Ka2=>JEK6OG$PmyJUz^_SbDT?S9qj>3+{{pXGNV-AFU>)axLGJVBf-n5g86_rJci;F2jZVW~NcNQI;W#&(FtZjP0-6s2QTN<6Il4U^J zSOTK_35H?)?dapc58BGUuh7B)Empj?=ga;*hUmXTT*rh=ZbKdYG)r#L|n9&VvmX-@a;yO9{otHyzxPE#`1wCMpEL zw|3fiNbhnT?ncD|!NAKyHAR5to-p%zp-C2SyV?4* zo9?u=V2;iK?T;q33yLF6(bFSd4e zrcKLN>vb&QA+DU?%m_m*mpYU#sF9=|X|h04=~LLVw!&LPh`n2x(dX%Zx@>6NV?R>< z1Z*wn-SrH)FTb(BbH^r-+(OSDcJa9&#E4y(oJOI>ZzTvyBWGH_C-_wwJ&pB^C%hqY zN|sE8^6%S8&3Q?W!#MZ`!uiUoZ0>myEkb`sGJ}Ma#+O4?-%WSMvWuT4cnD?cZ|%18 z{p^Yx-!88OppqJScLFlNcEgYfQBr@)@so2YLZ6E=6JY&Ue2GZvlX)yYAg}c7@#UiI zYcv13v)blmezMZSrh;dgCY`XGYL)fRdpNh~`**xmr$0}55pvTJK&F}Z-(kk93@Hse zdu0?*;B7CZJD*gP=uWuAV=h6uAv@vo{Y;4u&b2oC2e?644$S@rTHqPMop#?tr{QLXIeD`yW|X_BU7 znV6%efC(ucsQAubA^E1Fm$TB|kIRFk%xtYk>=`2ahL6^l@$Nl$Ph7kn`>#J4#Rym% z@??Lv_#D0Aai+GvwJ(YYYFpm-Q>7+}HJP7REp54{l?%~78s4{xNovABfhg_ZjeTOH zpoO&lbyCx7mZ?I8;?a9cveQ7d>Hw(XNKey;Nh70LF=hHD%n5IDckQ2 z{$VGd@9QECY=6s1$!;5~U!#;+IVGqk2bW!)%_Z^?SQ2Ns%dJ-StF|lgzT9XnA{S#k z9_edZNqb57mI_XVZj)jT~k6^ zuY+d@WBVuH7>K~8b$2WS>SR%C;B=nsZ5Vx}`NI0$fa~S7yd78ERLEGcX)@jd5x)Wl zPtOH4UM7=Kf-!*Z2x}!~88odsdawL$8`pQL>2fnOeMJ%NOqI4pjnJ|1g*uE|f5+D!()PEUcS*_9^N8l%?HR&F#%CVj0vb_q69%EfzO%X=(>^e z{^}>j`;QZXY@X^$%*&T3Qdd8V*$m7bvE|J4J2zj?MedWC!`!GuyC(8nx8=%x@82EW zU*cXBajpEY_Y|oeQ2q7QZBlw^>O}Lk8OQ~`%clY(`Kd^5GSy3QpZIKZxz+0|w_OC; z2+xWsub#JI=bfx-zV5da!w-^}jHrhmfF!0roH8I{-pE(k*H*pRrecAwT71Pvfz!hq?{r(QV*4>y|Xp1zU1o7#Q~5iBse^eb*lV^ZEN^ z#F6u5{I34i5xH$sr2(Q9?sJ06zr;SYU=qCcl!Yv3=jx((W=f=gkB}x;_`8!oF6=;& zEi@q|4b%8zpt*&}*XakO=9OWXx1SpRySZC3L`(8jg>xpM*Ls}Bb89A!Y|*=WGr+U5 z?yLy?V=;?Uvv-ww>L(x0%b%ShBc22&RJ1!~a561VIZK^5=fm|qL8y;NYU$I)sns}1 zZ{eRW?D^8N`#6xw&&0UYEb=^+;lIvny+?|6W&?&(djMwiqUov>w#6BVZ>#D z_O<$=`i4)x;w_Nbhuwd73Z&dLsUXO<_Y~kpR1%o4$K-Fr1@N+xq}EP3sp6^?q(DAJ zz{B=e9Au|+rCig+XADu&0~2Y^BjXJP@>}(KcjQk0`*%rWSYtY{mVU*_GWA$qGGHalsfu?b&CYJ!XvDxAk7^ zowsIUfd@a6&wwKcYn+`YNkf$ahN`&_3&X(UDB2_V#~&{SPk?3F(U0#qu4g>mC%tdo75&vi!PfRs4kYzsptZaS#k6Wy40~rUuk*!U8DDg zM23g4bIVwyt13r&;-RvU#@9&P4=P-Vbxj;=J8KFPJ8)6Ll?T)PEgV0q2zrG{iw42m z5i|>urZIok{bHT6!EfkUbf$ht-7Ky;?kEePgiMMfM*0gI!`rL=t%LSA5l^z8lI0#0 zBJk<9i$ne__vjyifv9_okQ?05-cb@i*vO5UHi;jg7P}GVTA%BFpBs)3Ct$yjBTI}i zpzl+P5msK#O6IlV(mGynd9&gc-8aP;`Si_k zG^^cyVcN}f5+Y0Y#sPQq&wy^GRv^Wh2)+w{Y1sTevP=IjZ3D3hQUcD`dOua+HU%i^!Xf5Ysq%NcCpmr0GN3DOCZ*7Hdkp-B8OOt=o~H z#kqT6;+{w%iQBEN78Fi3z;UHbII1Wa!Tq^fH_7Rk46`l^MXbGC5^v4Pd;OsF#w_X` zV}^5&5#v$-B3xpoX+8kH5_7%f*uX+#~BNw7w2}xd{YQ`NE(jt=T@)DdsUW8>fLU zzN>?iJ8BZ!jbUAwVApA*2HQ7NNk8Ez_5ec?kjxQ`!TEF47DidYS(xQ&eL3U@FJ4+* z*GCq_I#txT9bK0@Z3~iJmg@G3a%RDr%1K21hCgaX%lh6iRsy2YgY#mQ6!S6LKU-#; zXKvFuSt}ms_#Ev7-wbFG)msUsDPeMqe%T*BzovbneaBzpN|QM2 zhLxsHfe3fwGpA>D@G&Oi*6)`U0(hB=8zN<_tQ&ws_aUQC1pB8mFInm$HKD3)nfR&^HEmesw7vU{Z8?3~*@ zx%gsir>|p~7*6&wrc!`aa3T#*HVl+~uyYo1YueN{6?o(&Ob>CM4--(+?8J67Cb&nF z=si02^Q`p6_xQ0)tQfI^P1v1mN(T|w^7dcr@QkgjCaQG8(k z>v9$@FJ5MUt+U!67yB`?it$0!nx6O-MHg ziXbVCboU0?ba!`mNo<<4`2Ej0_kOt7;oytI;c~re%{AwIVp5zwh3*!}C<{l|Yuw(> zNjZI4oI8e48R(9Vg>wvJ2}3>5V{zs@q&_3@Z?&OZr+RY`L)ZyxKKpBbu-4+}l+;>_ z^^Z1*N0UHE1WnhYao>QMB)PI$cejV&ZD%B#H1zTEhgQeE=K6W7t|O4()d7FSDxe^f zWyG9G1m}mGZaqs67xqF`*Tr71x?Ww}y_=WXGHGw8=v-u$n0yQ$<_y|79+X7#FJ93X z@sYDKzC&r!Y_e!_^L}>2`l+q-TBXS*re2GD*}r?5PLNGgLne)GyqWhRc9n&3VmNTb)Like@^{6Ru$P)i@^-TmL$Fq`i%<{1KyG#S; z^VZtV4_oynI=ha0th3|`l3OnK(KtDRO-ntZv?nLRX=15=UH@Pdcra6YRlgAMpqxK*FYh@)}yd@aT>5Gw8UE}90tqhX*20>4)QYm(F?KX0OHE6tQ>p|cE z(9b5LdVWE2kvJcqhar}a7=ML1CNEhZ1(->9ys7Y7`e-}%)#cs`zoFTZRe0sdeaLFY z8B_Gc`oi&~&%jruP|!-^gKuc6PT%&p0jrM1M+55tjwr-0Hd^W>uMozRIL{=6!GgcX zV#epU4!a?CDuX`|_Dtx9W$I~N*}`Qo5( z!&zg(p9wWXJfpdb+e&x5OUsRHrpd=&Qy+Y&h+~-V=1)Fmdd07|A@E06njZ`XAJNg$ zcG!hamYqcgDi*Njhocs-nx8Js>0PhpJ;^=KBTwBOx~%sW&h^qKZDL#au$9Q$6&iXg zwH__&Zn$#WjlTSX5UUVMcG!EGvyEE#X}N#@5xQY=Kq_)G(oaoco0nD@7B7$sHwbLl zyrTssM7$e~P5(9Yi_75EJWaQtd$>KJQ-;ue9)%=c#dtpNLm1-qml1m5>%9ty$oEzs zP<__V>&#fDfg-kP+Hz-H8XIhiuBNAlSucxXK=BukQTv16Ih!n%R0t9Wk;L=u9C6kN#s1dqHVU zSfC?0zM-gvSj<(a`;s}GNv)%%_WJ0@2bZpl)#t))4KH@X=(OrYJXOXCU%KC(l9nhb zEG`ICm}6QdGDW=GE=ghIlsLw2t!2hkq5s_(&x6{2O#%BtO5OpbjAuLiRs9vA5Juh@ ztV5JkRt6Q3(6B+)*KyB`B8KG<;Iot8>h-rYk;6`LPc=++Qmj9pn!CpB_s%y-0^x->q<(+0+_2xpUh0*!A&1 znefrmkNn%2@2^-YWMOl*vKvzl4>&_rTIvbi^=<})b}oFmJNRFr9(EK4F-Sf(JPTH8I9v=MCAFXNT7`*@yVndgachC~b~fg-r#eGK4Z5 z%8cl~{=Davx?n)q!n!Q^H1YszUo0#sz$ACwff*HyVFd+kCB|vF$w0|?f#xo*Ty?H; zS`^@5{?cv3=^JbhI3-@?>Rj!?(}dd+baoDW1*Cs^@|k`~W>)`%@13R*k7`J`I|PQO zavf|vY_*3ja!@T4K}4t4Px`r#(^TkOg_emZ9bJ0I%_WMV7%EfhaOvMOqoUku*(0{2 z^h$H1N94~3)R#Xr*lQ?;4E zjEol%6nsjXXC@L?Nw)QW(%+ai9!YPLT+Ajm|C0Y3a*B7+(na(4OZ@OZ_rPa(k=78M z;V#?3wK~FK{$c)2sTg^gAINHz=Z1M~w`#$!b2cJnWe&SH$kQ3Bi@ovF-$s`6>um`w zLux%0(>_V;1ozXQR!Ix>Q=i!vdOP1n2@s2#(;T$iEEhpM)d>kE=bwDQNWM7u;i}X% z{un&-9bA~cr!!;M#~GSJ8c~Gx#Do*fK`Iw3u!K}GN3jFyq0I2*{F~X4q~4x!Mqs2v z3=ZL`T=lqhE5J&y#TgSc)|fU|gUa~+n%N~9X@>X|4zEweY-llm8x9G}&OVZ5;T}Pc zBMkUCB#^+Nu;R#5t?SQrQ+&a*yJph-T!LIhjzfr1-@%(Rga*XJ84> zpUQ->X0fXQfoIrv&yj^MJstr;HM|+8f48x9j^EsUveAb~L&o8-!9}aFX;_5$-R*YT zrNR3Krg4&b?8f-f)^LOqB11b5w+z5hpQeidhUu2W$EUB3e0uM2;>^izk^?B` zgzwDh`5D+1aRaZfFWzW|>nmwy1iY^HOW8FL*I&nGb6twXo#J!GAwArkVMkBMc>e0^oBaz|nyJ_-?ktzvuP>l@w zT9U-SkBeM(F_*(7;^~VH6IDt-vGcN+1*|=+4fah6MPgF&r&_}QT3s| z)Jl_mrz<(81h1c)Dv#Po*-qjI8t78BW#1Ri6bwnnir{xJa|fnQ64q{|D7FNo8uW*E zq8?)fz7NV$+sZH!aLhv02N9PBn2DZ}UZ`6{6|0-=7^^Rr3LJee6B8GI?`uH(RD6nQ z7?qa|Ml@^>vkV@BPLUnaoBv`7gsIk_Nq!_QdA3KLwLuj=-y5cCs9|1=>{;ir<+kS_ zs2o2eC^~}+*EOUtzUahsa{1E};l^4xYBJfxZ{)aX#0nrj7l(B5laJW4!H1J&b<-RHgJzklgAB+0+gn7+0w#KWOrrfG#mJ@YXI}5m`?8iVbx_!({?01 zf}ZwWYK{(4=V(vUT-3jDb@TiRX1#asnE6)~z~Ha1uY7hpxC(CnreN$I?Rdj6aEKt* zSOd0}5Cg$>e+v#}JV23SW=@VEGj(@WRhcf!@FyNhAg65_hlOM^G;ADkGMNCNx=sU`iN zJ(dh6H;z#7yX)tRq&Af3Z22bbeO_4I#p~pBdEG{~?>>;M-d0_ z;mLnmmyX`A9J>cn8;E)4=rDaNnSrLaN&3MjrU~YC)^_4vASp}C#w1(2<7gX4^leKY zz6cTw+Zu1u@~FG;(2XM|EAO%lziB`P{f%d_74lovH(vdVW#!J9G~0)y|C{ zXfp>SGik8(E=%Qv``t4uwLS*%ElTDl>p9eqNiTN`Jq<83ztf-Fpaimog=&~7zy}i~ z;@ut5{D!7OEaHdQv_ID7i31$Fkr|LiP*K90Eh`52q#I*PtV+fRiA`I34|xE<98Unt zjg~U;=}nTKW2qN9#U=gCS4Z~73FBxtXamvtIXgaX^MnTxt0t&36m4e z&)z=3Uw!IdH&tIPHpL6l*LMwqcJV`U!{t28+Lu*zPu)j8a2`!%E}eR)>NcTCQxLxj zZ^bg)U|x%=otk?eV%A>$T67Ax?I7`IfBC5t=>NE^hziK(R=3>4jJS zRGgpwMqRgG<7sgKCSJWsh|G(rs{}FlG(Db(yD`<%>ts`8_ee2 z`B_|8!elrc>l%`OG(K`2MO4d-`{rXzTHHrXFkz|S0rz5?Qm?^KE`-AMp5&}6wk}Tx zC&~MPld1e$L*(&aR5m9l*J)!eK|aECwIE!jVHE#~@18^JklO}c>2y*eF)uX2t;pTA zN-k*7y!u?(ui)VyFZD5Lr-ZPsukCFgpIvUsL~(2sW}toweCsOheo&~^jWF@BYe$C? z-X>z`{UimM_E6k6;7lIRM2fZ&weGgnc1k~+6gi9CfW_V*&w&Bvd7ukv++p42E579p zN%pIgQ($>Ld8+VaylU!n$KAKplKkQG=nqpy^=n?G+5en^6HZRlCnf}DA0gDe(i1J@>g%>JAE|PC`!XnLENDx z?hHP<7z0C4t@Lt%0AbtK`q~NEiF-ey9idvlKB>?#=pmnK`SY)tBG|0?#~`m}A6#7& zjcOMn+2utpHdMGkhFn6nA7YH8*=VdT9##QUz-QD4LVP^myx!rJ%slS<6D4ATm`?fmqLwt$$V?Gt<5OWVNn}+b%RKOC~1D3Ek~s zsaOw7?GKA3s`c5w-M~Lep^G5OUr7am`6I5eR0`uNG;6%MF-7Jev~ zOaoITL(<6yQuG#Tb76VWoPIzS{_cSNaW^%ZB4Ir*VN}9mcwJG#?rv#o1f^!7MwhT= z;d$5DX@=#2fOJ`YcBlZ{b?-G}weC#N2UcMmYX8m^P7mu;q`|<=Hm6kqN7zGdc1qs{ zo|4#rasQE&-ov))L>tI2brQQ2ca}!%iZK|NtxEym^{3es#E)Vi^f@>ZN_U(aiK&w9 zK{iuOTU=TjenKztkdzaiX~rsZ)C9@ZQtN7p_{!0vPKn4J`cRHs^>a?5?@J3qUA-Du z{Ah&rBNJh{dzMQJ75JQGX{~yeWIk`bY65CoR)04Bxz4CFG80#3hXBu3chxRSG`u1Z z-OmAyKq7w4hvGhXvIbT>i=Bk@5PiJ}u6G^|Vs(adYj_^(4Q|Lq%uhGc5h$YYRf(CQ z&D-VJxQ$rI*M2z=QgYziX9*%jx#bt~KWx?0vg^%fDMe3(_HylOb>qAA`1w~v#J%EZ zv>Mq%;5{MJql6HjDqe9|i2gAEH^DKIu%I)J0EVXvdKfiq-0@$zP6i1dauruvts0C{ z;Y56hhRM}RoFNZhy=UDoW`5%UCKa>?PLyZSe`Jhk^uv9syem<;ZR%&~HO zFYIeo0>h?`Mp?Eeo%Fo7v|eb`wnJpn=oi#f=3ct_9gEST>naG%KSEO~G7L1W8_XAWQ%=OXC5Ns?a0v>+)= z&&lHasD?Z9q-HkKG+GF|lgdYUK=?#q?(BMT)$snV#z6DK2Y-}T+WSI5 zSuB;cuK1BnQm$~W48Xa2B#g<;U&M=2wfa>)i{z#X(jYy<9@`JZhN2TcFiX$Eh2)R^ub*LQ-ff`;Ons#jVIu;%?F65lKU&q+zv`-EN}6=SPX>i>yda2? z*(e%5Y(Q2zbkU+0xUC#LbvQx6{(SU;&c($A0xfRX?x5&jxIMHptUOPCI6UbU|NXZb ztM{vdj-=z~1ABw^MYO>f5D8seY~G0=w^~p0f@?giz_RT~9939kaMUpPJFy zDwpf0LTP9%f;HTX3oVt*0OqT<^<1qg(@Vo9&${W+H-y#R7tWEzg|+Tpa>^hVCl8E^ z^b0EW>4>Dt-8A$%Ba%q}X6wd_LEQNDyHa8>5V)y?s}T_qxdV8)QiV84#b>=IEjQ=`{k{YF8_g?`xB-#dX6{!DXp-E2)@8A=a+8@BL zK

nCKe!&O_bjU)|YS9HeQcsxTz7w1=8%?9rRtD?H&W|+$xYr3q*-teNNHL|NZ;X zgKFvSdhtF{mnXXiXRfRiJ6_Zv5`gFCCE`^&HSY6GBKARR{6M;_9IPakxXu$z?UR*F z@dxKc3@Xs1yEM?b@9w)D1&iGc>piJHWNu5WGW>#*zgrB`*u+oDY$8aiv2O2BOyV@{ zz#N;LT+J1$Yw<+3zl|=DR97c*baX7WU#5W2^a;pN``kFN8KgLmypwzXe#DD|UF-Me z+IoCsPpVkuJ=A(ViIPC(xE0)zM7k+MfX;LHi<$)p zg`<F~e3U1L^`|s*cYaFo)Xucni%bnzoKf zvA19bD6DVSa`Bh!b5nj623JfaH++1xs{#!zuRi0C2YZRj%4{CiSY&UWZl*$uiK`d9 z5c)u`*b)w(9P~ctVhd2kHN6M&%V^+vIX9Q|*vV0KF9R{L@X&RUbgYjeb325d@h{uO zK}_V#Edq=*erRq9G#}nTop~w7+&WDr`p5)xiE~Y(Q>@O(;V)bD*@Cb#WwRc)7Zo($ zdjYTlD>O9dxz9nJ4D%`wgZo!mO>WtDfClKiMc`}duDit1|8t3C+KM&)Z6wMbC&eqb zPT$LEo?KoGcGj4B9Xm#B3laE;_%JwrN6BCuXe;KZh6St7F3PH|GgjnUwH&p_*N_$? z)+&8-X=jsc*wG$r*q4o}rX_07O);;LrY>eo#^MtZtmyg`Ote+MOUmYav&@s!513tv z*rmDgX*_=D_@OoH;#ceZo3ea2H3Nh4EqGts%z^kg(;Bp($A-1=T8zZWaX<3di^_cs zPOm2<cIA}+Yr|ib8iRSXb$BVR^n~cy|pQhuK#Hx9!YJ9bBk!y9lIV;47RMHZTBr zPQ@pxJXoQ9)p$W&AG`UBs0k1i-Ucj(cb*E!)PSHY=%?~kz)N9}-2x$}Li12K^&Yl1 z&z{fPtU|kHFD7-IR_mRRR`9%3B3aXne&L1IbuTn@A z(<^6U+?+YlNGp}oLcGfM^($&jJ&fDub*3^VwH1H=DQ!o*E#VF`(D&u5ZlYZVtqJE> z%a24FfHS%2?|Nbi0|?ID`&Ls$41Fg?w?vRjNLsSP8pbv$BY&I7_To(KcP|7KEw=_+ z4aPm##0rjmL+clkn9BGjeaIFr#pk?&*ko7kh-kSU7$z!F*xDRB%w!6& zyHLN>rZcJ#czalEw9o$3(lx$~3wi7=Z+UaH_E>V2Kl5^z%1jqQ8@2 zt0!pCAT@)a+0870`M$)0i3jgEv300}M)boxqjBVoP>N$uHwcpvTt@}7c9RC~*uhAM z+cUeZ#k9H=L7E`7yG1Iu9bP9ZEXpAofoW}bS+7q1ziyj$KDh+b-^Fe(IRvALS(ptR zkEKb4%rWmSAE=fL@djZJR{6Z?&*Kb-5_}GU?~<%|#o>)SyIJ)+*sTpJ*jt2spiA6cI5yU9<&00Fp zfrk=h=+{(6nf9x|X9;sD0wp>tO(#EhOaI>2Y;|@Gk_R`ZG(Wl5a;ExO==0b|eShkx zBkC)BJUe=g53hmQR*{U`Fj#|qzVwk;>UD^yShc1tlw{C=D9vOt-pp{NX&eFIup$CG z>9jV{jaU#BQSc&-R%Q8+@HX(#>3mk=WPC{cX~UBYbR$$EhIs4`ROR-l3>V7J#sise zHl)qsYM1`4rysUa^zjt=!zX~KDZ910@Jo9bQC_hv>l-6+V^DBoTfK3q{5C$Cj+hwj zy>b84oocH$=*a>6s|AJrm@4@H6v-x& zqNP$}GvRt6Ys^ z6e*H6-mb_4Oe$MlQQLz6_JO-YMN9!pcU-_CQ9n%!PG)H1v}J%7X6~GJnQAawY(`I{U@j?g z<30Du(_QO?A9v$LC5iHXw~@fuV$d&8qQmEudI6!F-qSC5VxUP_AHva3`8rJIXtQ~) zKtv7va;8pyaCHM5RUFZaB_uXyGYgAV;7HX8+%)_EQG+^(&rSv~Ne#Tt)NeNUnpolD%SaCchcj+}MEco|&w5#awLC zMZ1Opg$B5b$6wuD_faJZx3hG7yBYX2Ed7W?{q4m9X_NGB?w^3#eG{>nV$5>I=8pc-0tu+-kfXJ8wywJbe0zx-)#LN zclv|J7$7z^^!L``X7QCvZB~2s2Vwmt$E=5k8+9J(cy9(MBtN-G2XXTTUzRKYwcB~J z$yo>BD(E?-hf`(`Gzb(<)fQMfNxp!lHoGkBd)=|TM>P2`X4eF;J01^(_k*6C#3nA5 zZmRx{%=Q-fGQWZh4U6-1N)$VtGhWiXF_ z`>nSo@T`%?zCjDn?<)EhcP1b5FOWh4y=;}=?xtwIlOs>Cfof+&?Nih1K1)OIWDFD;kXU66j(P*8_g?P+j2Q zHRwEcGE_aXL@UnR)UR>B@)RJ0 z)UhnfXHJ=odVm6b78m;?IZFUcZJkdzKhX&;M-sGFdC<_i6G=>1cvqL@a#_PJ)MHgm zuH7g)_Nq+bVXdGH#49U^QyB~6V=k{+i;2q{;F(UcWhbN5wvS!73%5D^CGvNej=jTc zlg-X8o#kg|lSiNR{;wZ*eSTaFU;;1dv3RBGUU~a*(HkxOS*fjZM`su5^zf-YTY7qg zI-4ZxANETy_Xc({v-6jFIpDPRYItwL!zE^;#Ez}-A3r~Ia8XvCHtxSqj!Fe|two=f zcY=>Q5@q|cbDU)uWFWS%s&mdY`omvFskCu8jXpNtPx8?|ZlOmQTKnK=yz|rX2|UL% z#lMUCN*k_gRm~f~C0cd&a$Yv!hqulG_dIA3Y*{C;!hHG9_JI4lLWE46NS|kDgLMD}%#Km0XF)0vAn#+M`PY@qV7BN%?Tomx*MxY@P*X(y83+oaY0qD z=lFk1;%{g4kovlkXy0uEmmro5EaQlN_C$wAfyIg?9RciWTY?*1wzST8xlG8|@ybwF zRqInt8(s}mHi@$B7>w_rTY}@w-5Y*Ap!8mxSix^!IOLOqv{SB>1t= zKR#G3WyKl$hne$Oj2XFnBu<~H-e0V=z)g9THN=|iZZtWG{<~<`BdhJ~LG*7B<8}t3 zics_0n>uZGPz));krs6-Eb!emct7zki!In`JFo2CFJ|o8gWA$Et>TPx=2Z=elQo-` zLv-Dzzh99yR!khPU@b!(oL=OT#9ZL9N_Wp5SeG`ATG5wXqrs5z+wsg~K8bHJb6bYN z5zf>cR#%5t_bc02%DX!cKu(Hp|H8#@Y91#HSKf4p4?%i(aXn$Z+SLcr9Rqhy4;eag zyuo7jCxO*T(ei&Q#g+EW&SyUm^z;1hOR5}A)UZ_~?Yq0@^ZN7%KczV=Rhz9W{S&fl zm63G`hd~slmqnsH)MES`amvZg1A}3coqgpJxF^hFNWeitr}~_EXIyJy^|D|-eK4}F znYmAOtKql~7A#v$^ea`trHPl#ooIsCq`R0ws{*PhS$_5XDlI^lan8^C-R)^PI2^L3 z742dAMamQN1_8H^*_#xS`PVkLu`Q{wd8#71>QwLjpeX>h>sHGI{Z-S>$z)IF}rJznRfRdN`8za80R*4`-=x?DN#*E;W*1Bc_Y2N@>}FnUQSf?1aAPn zzOoC{`gAI~pNjEjkQl3?r6q9x3p-mor*dWC3koRj<i~g3z|qV+F4V3^Y_DDVj*Fll9|7%mQo}NbX`&Hk_^6=GtrJFy(NZ#*3vi2m9)YURFMsSY2 zGts0c?8xC0lhAiCrHxtm!1TgK#mDInbQHIzt5H7=WClzM_V;`1FKZEnQmi-PVGrCV zu$Zl$Q+_LR$+G28m)DJ@H?|eyAw>Ub(m!RV)&ynsHCmnj(uqKo5V>M4)PHj-y}DgNv`?JT_vyGajXV23k2y5CNK60_Y z3$&6JA1z`39FU}Gs~Zt7^Q(!0h;||&z3UhMh~AEeyBDTe#Ez>Mg(mv{d|5C?TSRG3 z5O}W<6Z(QAl{73-U0OH+J$fGv1`I_wWlUg0TV}57eGLxn5zR(-0lR$${?+JalxYG6 zjdcOM45XMVhd$R7=KaaOqA)0}z)L*jOC*Ook4@w4k?ai(l)*$EtG=H@AIgMaGLj^w zrxg3HS@zxNg^(k%J-wNPdrniS$BsBOX6$DQjV~kL?I4ZMMpXZ|AK)Vdr*2M2v1M?dN&}=RZW}4KsqUO>K4hqqe&@BgA#lBP? zf=R=BQ#R|kpFb^+t$jCC5GI#ZtnT4el(d@&cBqA-03l+r99kiat#jYxu zQm=MJ;%%xXZJ7}qi#w39QGGcQyq-B3v)ac7VW&3yIUNSPxm&IOC!0ovH*GtZ#K&3f zsu*ppbR_JAgCw9&V|R-g1Qz{!_vSw}#O)lATkDPOEBJ7#xZR{<5 z14%#>Jt6wC-^pO>Ll-_iSK*hR*xk0W`;xEEk`Rgh)8JO$&)i`wCAE}`-q(=}8*gj( zt96eDgK1>4=$yFG976k-ZDVU#Mxy*QOLLTb+}NJ*RM|u3H`E3@4vyf<3SX~`>BzC4 zk3B=!|CdAq&C2L%TX9BD^-Dtojfzq0$GYz|lZr0<(?c3e-dFP>tXaCqqurVzlpsAQ zY2`{f83tu_z{Rp*v`ElH)3c_e{>rlPdg1y4I9G(ov%?5M5r}(Gw`l-l$36mbZsJ!_|_)5j-g-%;wN1XoP3CzX-x>YZ!Dj ziTm5XDiUGvKZ_Kfq5!8d?95V-(6uu}zahUSv1np=hW@fFbPXp^>#%s^IxC)x$(x;R zoeFRV)X9*SRe<9M_2fxkpTf<7o7=W4>mqFL&CLo)&C&x5%TiL`v&VBWyLcDYijx#l z*oXNkE7$m@)}eN{c=3xJrz0G#b2S}>W^8|dwx)I0VYPm@c)WM*{|7oGP7pAy_wJ9= zG%!AYWXGzPcg-&X6bt4YN2@f3xz`;L)HdgP_cuyn``ovQH@--TA&vk>yh^S;$f2;~ zh6YwY*VqdS*g0!tduiC5%_$q-A7t>MgVyR4*F|bIA!+dfcYU{d%T>8!{hj7L`QqhU zo0!!9d)~HGO*C~iNIniSbjec{&Qjo%!cDEduhmF*F+8Ndg)?_ewtP70pYm3k+W64S z2v?AUh`oU&L%oP;hk`rI{K+xto~w|z$8Hfnunho>SkvNKp@R#tIs4nQ2Lnr0ef`Lp z86D5Fahf8Mkw?y6j6l4s8zwem(TY6E(#%GtBTC;KUe;`Ne3(78F=#V`an(T5u4Pmduiu7n0 zLvYMh6Opm-k(hL@$dqw&a!?>`D7AkZ-OP8*874#KZTu(d>NCojes~-UEK1DKBXA!BMp!pqA%>inIhEy5_KktXF@YQc{ z-IhAdaywjr*d7C%{&UPr*YbcId;W;r`|CM!XNV^SKuC>U)3~4=o0UWlc|h7ERTD;WF<_@V&Z%+?+D;ZA~V-XVB`| z%-2`Z8b0`=pC)^LP8|euF32a+`0We|1`o5oD@mxS#o9L4{vKZaw;pdeaU$;j%oG?$ z*Rxe(VQUsnjk_90jL(LZ?!%PHg-`LzM~8h52&Yo8r{>u)MZMVZ%ljz9VwicG{)xVC zx|z^A@U6w)n$8Z9f#{K%0#!ID|Dk*_CD!7&yk-_(XX{(N9CEopoyW}JA=r2`5{Lunn=JdlZH>es^$ zh_cwN-rrg*DY4~}8txgCR!S0U7AGw40<#w2KcpQT%80}9@$oC|UB}}zSH?9B#l6KJ zPZZz2w>$Bt(aV%1yFT6aKck3P+yeW;iAczFxrQM~mb>Vp$M&TGUCSW@K?CyM-NOZsoKN%DWE+}b22aZoyA_6Hg_@@)ei*6jSr^>>| zPl3lzn7X0&AJ{zUgx1H80YHgBRx|G{By1bMpuz9_enKodKZOPfPYf_fBpuJ0o%&lo z=zjDAl(3LI?WZkCzk+-_mHjiP7uoaBCDG9Q`0Y)Jq3fmghblcGmB#hk*W+{#W8od**2yy|naC5>~oz|eU z$aipy{^a3r{=L9?y52=bdSX?XUwm-UW0T6W(fJQ??UoG>&`fz@%m4HY0O0NiJEu8^ zPQYd@5@~iCaOAnVrHJvpL09nS)>~C^Y{cc-p$ZF=Z^xp5W0f1XG z4}_4|B`A`Ef{#OC6@Ao3*U+@|qt%Z0e?^cRT9I>wLW$_dEJ!3ui`(?*{&&{GHk#R1 z>=lT!kwZ$YA4;_bt8Bh8wuwt_Dl%H&07$ttFGY@0QqC-mXDMl1TwJ~49RiM#hd?>y zMogLZ8z4b6`qO+~4Tv2I16!DTaYsk|V%T|o(EeVvm*F$2oafRHFrz+l`Q?uk8&rIz z1d~Ys>jt|mdTG|=Dkc>>MZ~m+6R*M$5sT+&=2NS_$uzCZPL7Vw(EkU6B$SET^Pm>n zk8Djbsb+R1^BBe^zCUF`1U;{hM6GGryNQ1ia@TRg9*XnT?0yhNr zqx9e^RP&a$E1$@vvmab{AzY>pM#4`iA{Eml9rn z^zBbQP@F!`&STa=12$%dVkBQ~BNi3hn0O;%;6sLkw)1W|EO^({3=ygin+d3LvL3EP z>bAVP(2*JRP@DFqSI=XkMAL3L&4xTH7*JC>0~arqBnJvRX?!RvEc)A!5R1_urNif2 zbS99AA}tPNhxbHe<>wD071|lnZE6CV#{zT`w@PyPTPi{Hta}%L!E3Pb^k5JkM&;Bw zmFZ)kz-$GkX)aY#8}o^v_LqsIeB8X~u439$^ot7%FDZj~a5*nC$D~})BDyp4x=Zy# zE@-e)c3tAJ{5S?S#*-2x0@ti)#@0A`Gf5#+pj-HBAF0()DcwpHI4Rk&0n75DA!z_} z{M+o8x+?8Rj?FeKZoP_Mkfa|wy&l%*6mAIl`02k22QUehqwyQg<5!Obr*KxxYfJ z)_bkRe5jNq5;&Z5vLAM1Z@X|XEwfEgoiDD;%1VEgN`x*q$cnDre7&DyU#EA`EOan- zOZfL0_EvQA9;^OwjDeZk-MO1iS9z%fS$D0&>bJy1^peSf6IboNB#VI8u}A`9633D6 zcGjz_9cV~}lMC?}_emXWiuV~6#vT(hflg-A@#N~S}eEdL@lf=0vs4yR#pbb{g8$=HS zrvjb&Zj(-{YDZonO;q15EhfennWHHH*o0X|7Xmfm@=p|FgUste)msi$t>1_*>I%tk%+OPzcOJ>W;Tl2_PM{<_Y)y7q&&nFj z;b_vwi{j`_yqRhmAc+4?VbL2jYNz_?&xSvf0xy`d3?gnE{mKA#yN;$q$?G=r)~|K4 z>4-5j%NE?XR^dIR=VBb`#q>>$zO&?R5}6j7a!h%LoMgbDBw2+nrddEZ)rdw&0Au)L)C zlKA!-!8ZvoqH6Q&FeqN$!ZRtPEs+~;cTXALuU^X~g&iH5Yb`a<>0+eYa$?G%Gw59NS%a(t^WSwApN_4NIA zf~S2^|8zU_ueL>MXuJVrc<)O9b*;9xHstqGe9b~wnQ3RDRsFN?QT&vKp2x@og1f9Y z*T?q>FgB-|n@jioDoqD~`!7>*&B54EgIh^Iek+kY>yFK)F@--x-#tbaDG47F81ZkY z>hc2NBHdynQ@CLxx_Q9bh1&G0&pK{M`aJG$6CFRKtsO9zC6ZMDcM%Skpc3_1^g`^2 zLj2p&^(AIk%O%K&Xz%Y%TvfMbvLs0;0*k@pXZ0aHJPYR_I^BW_C3rG#gA^^G^dPWC zwY&$_XFrO6{@tT?c4_8;e>$!t`D2skK)B-o*fF($jA(Fx4(6?Sd1c|co+eLY881of zdLUBV$OG8_T{Pd@RIdaBgcfsZanOB8Of+rje2$EOV8$`@ghkxRNN%O_02C#rWWfA z2IphUbX#jr7uDS%zhX>nkFRhaC}rUj?S^;(z|XDmVnrUJQ@SKAe6m+D!xC2dw=?bj z#$ujWXAt-#8CPSbdS5l8wyQqI)DRN|bjebW?;oF$fb*&&3*r|ltU*xzZM|d1JWBF) znBOSJ=B-`xWd|Vk>${~4yA~f8(elQ8c1wG@Y-A)Yx4~ix{Pjof0phnZwHn3sK*lb# z(6py{(n~E7-#c9_5s&+D zS9WmB$ii&2k9gd2zMo^FBPE`smDuBU)p_o?bJsI6TKGy!vMkyx&8K)%V%O;Nk{_~6 zB2K}h_YMx6#O$8>HLJeVKU}22o%>7&NuH8se$JU(O1FHB%}a0J^ZU~MbVQNg<)+G9 z`I;7OJJ3B)fDiI-tl7|z$^;%93v|k>vEdw+4npZR4jvVKKdF4{-&D;1FmkcMkeD2E zC8=knq{azK^`IOH#^Q#4O{8kqy5=XCJmiJeiw0T51J`aFNhdpY_?%I+UP8bZ|73Gz zPpF4B7}j**$;$j#gc%n@@|1KTA@yh2T(Wha*x5%`-ReF)tJi>U?Ji=QLcsEqK#AV~ z;bg0-rsfBzgO(|)uRuG->-w}~&NOPm*tP%i|GWO(AGg{mlcj0Ti=m52jE(629`zT{ z<~|iq^A&kSLm%kOQozK?cJVg8!3B@_U#<2yKk>%-%4IZ#5b?|IclE%|Xi)?)2Md0F z20Sp0HzKyX`s8GFEYW2mNTbrg>@U|tTZn!J-@>5x)rVUT$Fxk@NO+3dg74eE7Y4x1 zF}NPTyd6{u+4qb$Lf*R0L3RK9*S(3gh1R||7qX5*%mYw{)cWkbV z_!`6#`GUN>O!%scj#R)gfcGQD{}9dRcdLWp>YDn05Z$Jr16XB$=@=Q*|IEkc&v2Bl z#AJ}>f*o$XwNfyxvl$;Gz~w1#Fcpw8ye-KjKeY1A2bJ#{%hatR0`>X}ZbJqh=mW<5 z{9jysRa9KjwrqkXNO1SY-6g?-H12KRg4UX~ zx2B3@(^|C;t5izgVA1hl(%wRYwJH)2acG=th0SvVg;z=moLnR+r(CzPtX}xnei?Be zP%X;V{iOPcBC{7i8F|v~G3KE{mx#(K@hvnY1l5q={TkEK0H`E!IV}oMW%hfa%Iw;l zj<7FWI*kgoy-0=jy5Xrd_WHy7;ZX$y1oGlefv5o1uRQ?u3}?F*%VQ+)~@-Nv)A*vblYL=x4bULKW1o^?EtesTB!K% z)%LH@dOpus15tPoiip@8&dW|TfLH*BgoUAdUFvw8t+=onUmDfQYVLaw2kGM$y(rrD zGoeRIER=re4hPk>XL4pYtHXs|vLz)aMLWcQqIOIi0AfD-sr|WodID-sGI?FTSeCaz zVfM1z;7AkTq-ah|3#b;6$AY(h7b@@LYds4mb9LsPOd2`*q-bk~cw=1td0P&Y8hyGISh_TbgNe{e;7 z8}tt0!vKACC*9KZo!1y5bBI}iuRq*|vn!0vYHMVt*CPlh;;K6@>lVgPB|<=op$l!c zf>jU{5u+KR>yvpD>!tecosr~z!c2#qY53rjjKBZHw# zl8R!rKda*rNcuJyC9rK*EHhJH^eAxbC*o}kzfGw%)VHyTy1<|c5qJ+U6*tLd^bC-P zat-GDee&g2qNozy$rScI@I|Y*_!@2NnDIzb*sa%HWMAe!?sBsmBK_=Oo`?NcC$Ot) z^TKH{iBBKk-`CgI_Z573!uUyBs?mDP{gnuFRxA&4ce?WR^vSK3{{m>+AgAJzE2upD zUt5*;3AVb7VnxFC(w3rxBh8K&h-8<|gqS@HNm53b*APp~GJ1dvS4bvU9$>rz?XDnZ;_|4$u;1=`nv?N@0P@s^F=2 zE%8TtBSpIXvo0KYW0lj_a^|kS-?klr9Uiw|UfRw!H~Xb~q~pShQHPz|oKIA`n%v=l z;87vq9|htz>Gz7kz`=$6aXO-`u6YX$Z;@Q3`T&J|Vle0#mB=M-Nm{!X=69$K7 z%`n^v;@@V{6`QXg;g&l*MTkow8d|(RWJDLR@<^E>9c3O^)RCj5?_@dD%qMjU6}1x7 zW!HCisX$&_wyS=(Cxv&mn7K0*ZVnfBI=*>LSPyqc+L*{(j{B%?n9bhLt;P3r``E?z23Gh=b8O6t+oCw2zro0!%EwgrgwjzBN;oPm;eyNy81%hk)x&?t3f9LBD)p&Zpfo%VDI&N~r3PUQ z+g_LBvz55iR6$g6)hizezMG7p+R_mb652i9TDQL}S!#SYX=n%UOwQjs0Zdy8i#H$e z?ofI%4Uq!vv)R2%oR-^+xXOD&W4!m~-RA8qHoR0W+Vn6LU|Yi8uxjRaZ>2p#!-v~V zBO3Eh%mtUSqeKStx7ZqR=siek$6DjV7kqjZG=PM5P35oQiqHDLfAD}s$`IBjoXtMj zpfXr-qVc^qt=_yONso!wX`8|a)8!MI_m)N^`t!97wT1JwUvFq-Ah0JFZtaOsZOc^$ zDcuUZ+zaN(9=OU2Tm+ogg7CTL?hAp>jI8HbE5X3rd5>NslNyF1sPhe*v0#%`t-DLa zrcy51)#-9O)Ib$qK6|p=Wu_Cy8mVP4uHxP>aG5TBXT*m&%#NHj9HxvJ+l%(8^@ZP2 zBSZsUCc zAd4{Xrfdtg@Y)p%5^$ZPV7D2KiQ%aqmkn>3ZWjzymKo~|e#D)!C|WKjQowz_#GXRho^@bW7i!1KU_IaY6Yh9>yz!CU!t=v-VO(uo-G%VN0&3-DrQR8ca7i-0z((4(}R)QROWd_7*iWqrvA&P;%QF&!#S; zRsxICDTpYpR%$n3lE|TT3dEJj600Y)ipR;Dyv3x=ry1E3}zSqTO#%o)-UDpow@pZsG-ktPTrgMW^ch`lW zFMzyP1lG_B(jb(1(N$jFkKq?pkhUDt=+hJ~r?L_NUeuSe{3u4DN<0a9zeUOZaSnOUESQ@k%fW+u|4Z+_Rn6MA1O(g9%91VtB0c2pYK-bFJY8(t~;{$ zJ;H9cqWS4Oo1dONFVZ-2WGa8it^b>_Y46uY?YpZiUKoS0kqU; z9S&ejL;@J}X&R+4&<}w>+Zb-)9<1BM4Y}5dmTv35@L&rwNn&r;)@3N~$7gP`W<@%x zi>uB4^Q#-7_yHi-*q3x8612SE{&#qSs3TUP$P_0h@(1DXF-4$HS-Q!C#6CL5>|O&% z^_KH;^#?Zv^O<=E2MxIwz+B_u(LPfZV-zSt?!(%V(F4>9rG0^L^2Yzp=h`@r(LHdd~1Tx@D0?P6=b!s!{+W z<>-Zq(aE{9uuJ<3T$)a~T-5db);pvCE`8$>>6IFgVs>d-t5n?;FINiABTV^T~ZbC>8bQ}R1p z@3Su4jyo%!2kRn+@sMAH_Vsie&I@16=RFpjWC6q|tJqmOjnWBFycmwmS%cBEI9?X_ zvT-`N93j^)3jcF{v)_<}O(h1n4|wU}o6M9kD+}-GYwdfssDJe4Wg{7hZl}L1OKN<1 z7BwDDBc`#7QBTci67rznJ1ERXmT$Dh>y;pFv+dgvH>s|XbwhChZMz<7FR$I zIGLgs5?c-R%fqAX#jdokz$m1}p3=|HA8c-uuJsV3^ZR2vIf9^M_{ZYnJ;%^hwSY=(w0 zsg78GK1$YH)rt1Lh?=Fu?n=IhGM)k`v zydw1)n&>sD9)}a@?ZZpoOIU$=?_tMZJfbJSrNQ~d!Rv#WcN-&4BCKYfh8+P+=wmc& z;d47eg9Nh@ehD6945CA2YJ z>+MPlK`xsyGgdbWzNMfca?H^p;q9!g=Eg&kZBvtx{38FrKu`dtu&M$#sI8}`rw<-f z-EoT#hm23*N#gJ4_c#0z01QH_W$u&e`vySWgB!%Es&O1g#$2)V<0H9Rq+?C#qEy5~ zTCW=Q1AbRrG?4p%iphyhOw6?OcUn1c7Kx^pdP_v4vD>tjB$ObB%A$7V z?I}$qvLfXBVyxXpHk>QSPhi5iYs3 z$X)=G1U&%|QW!X^>_~MWkjZ*;<=7yxRS}>fLAqF<6jP78N}^i`UZ*JrVQhQ%daT%O{ z22kRjbx)~8u1PCR$3p&Y95=9WQ^n`$T(&~#+1WvzgG2d zn~08*rBsVBhvLJ3ZS64}o74;eLH@0nbbl8{(WO*KP$hI=EA^O;(v` zdLiZvow;4b2zWg852>vbn3c67)=XcfV7{6UgbHi_F+wM_lsGSwANc+>Fyb1+BKo4k z&1{L(^gb-h-P2|eAyh|H6CkOW8TRQsyXc@GkI{&7`twVh=54ZC%?905FIb( z%I$C4GWsHD!=~1Ss}mw0bP# zNcGE=i{XWWi*F!luHBO0vPF7>VVNp?N65@`@mdU)EcdN zGqSR)ztO^=*_Z$(FY-oG0MY)gTOpZL;6yrKIHBInL*y~*)}r)aHG#MyrrgIiRj zUmLEUqJ;tmGp0b=mq72u5R-1I?Fz7RrT6JlZ8Yli@VdiujtY;MXk90tze*X-#%893 z9Qjm>nmE?;K{Yp6L=NPO_4W+FrAj6nu@=6;PI9hsxJ_;<6HL+8%G>y%z(FJkqxJ#+ zD>=OYUb6RENQ&Ve*ht68kV)o{@@pY!mxbsTkpM;)7Z)U=Pnfpt7jQ2xkG9M0Zqo$; zjMh{3-sb0N4 zkfu5`9ut5r_4DdX@Qt_E19st_F_kVUtmq0|Kt8XV6W*XmDc3sTez+R@K(5dTsapWY zXRK2~o=|!pD>1pcfr+k9H8nL!+9e8Lu|z3VT77ylvbVs%wO$|zn?=6|hQmhZtI$eH zMg+}|3S)DSaqI#~QnaLCp~2dX=cIa0z0l<<9pkVxZ`z2YG!DI+rnOO#z7x1LFF@!6^FaI(ob2}4Z)l#0DPdMkD%0hH})n8)u7Ui4^gQ_NR4 zQlaoEBA^7wr;rc-rv@aQSACw08uH9;YXjTWDBnHM;#eCRP&ty!jB~Z{$?Jh*YPz9) z$Vg&Asl6eguqd!142T|doMjHK3m2tDP$2yK#&(+1F`2g;)ZTE!?7%*8Efh1E4DJb!xq z{X;9LJ?gmK->D0`n&W4Jytf**O@*Ge%zmA-6ZkwpvOjdJ(GVk1CJ?(ovOrlM|& zy7iR;lR7Zg(vN29Zre1>|4tbT{HWtNR*pJLseQhVa_*>;bEvH2$H3)s!hx{kyvJ1R zPkN`Sf;Xl3hQ=EfQRuCC)twsb1xlsil(}Y%!rJ?EjCImN^8$&1p!VJ6F372*%1y_d zF@V}oFUGmHO)Ub@ip6~2;qt-ks@=WtQLbtP&+PjMsp4kxYxQ&}>bV6??w;-d)()=% zjfCXXLRe1^$8Yk*N#A1WxCYi%BWLa{--S!`o+NzMX-?8G=}SsZp65r?Mke4&FqI_` z0kwIn*@}nz`E#C|$!nt-7k=KH3)W^2SJh_#9&rN5q>keg_w3`1bs5^ES*KCr;ALJr zPhI%G6Up$0L2^W{!F7d;C@e;C0VZm}B$s;Q4 z$Dg0|i9P+qe~cBz^7STA2(lA!Hyw*>H4p4(*Ie0wx6r&qRR_zqyYycCx?Xf69g=%u zQ=QJ%kmcp&$xNIMreHHaIia73MOvKA%ahcG=d}ndCxsqeq@8_TN(!K1%VmE5UY){~ z=-sra)5oPZ4#8MBRhTrNEPWsDS+%fmXw$-@s-=JA4M#XWO~M<2&*1jpAS?+&`VlsHUmOj3(^x#h*K zYKeWNr@|P{qA5G(Yhk_!mqeIwewde;Bqa?tuPbGHi zwNL@#OOh^yqhkH+)w6XVO_B6INFqmzXO0+gU;**U4a5(h(k7s+Vl@*KP_p+rOoQIK ze_u~>qNi1WotZo)KQHtfqrR(Zi~S#R#6<)S_|2*7>J04dMIoD6B0oNhSN@d_pxvDB ziUUyK7^78)D029Lxp~cK*g@^>e9J8k@Qsa62M)5IX}t)NEcnWY#>?oG;biez<*i?< z1Up-3bWw_U77y28^~+y`FF7M|B|3FvNnBCoe2slHV%^lyMpSEDtdZCqB2mzkKb=)=}8l6f6XuNbmPZ`SyRW zvUl%)}S!=)I z0y5M-I{=!sNYr51F?qC?yR|OwJFduw(}! z{0qJQ1R}CwFo%>d^>i1Wf-mqf=smPK@D@?J4dKH=m;*Dm9d$Ho@z6Y?gjIhg+^q8R z8qUNpo!>bpi7&i?bdUF+H#uTv?v$@aPvMT_rzV3-0qtbN%#iBV@Gsg3Dz(u#E_>4r zCnn^^o9YdwK4X(=QpfQRM(VB*C+-HMy99Bh-jrJhVD7g)Vh{Yl>?{@+7vZAnN{n8T z^G!b&gdZr^PRdi%@bcRBl;v9IqAF?vr-c6SC zT{^_YrsI{{Oum@ZxER-#gPLJrb8dcpwX-E+h(x~B#W}oMoGB-Al1OBg0@|Ii-X;5D9g=R@nQPCj#qk}H0m%&{X1ee3^&9V+; z{bVQftKr}#kQH)SA=*?0>GM7t%Z^TEFABfnFeeNlUJ(f=8tLtL>*t>~#J`?y+bNbj zmf7bD&8_Zewnj|i(~kP*PyaM0lU`>4Z9H}F+PJz7y!G8r>Q^-L*rk1k%9}*2HJuo3 z^!RLR#->9Y%ColZBc(M7KA#WsYA?POu8}~jN%MO@YW{Z~wj^!^o?%M3h^jRXm%*tm z-UnZPb!e3MB*T3;35*F9(LX5&Eg6v>5ngD8y!%~4&|;p3f`%k=R2fbfI4BXrjqPR? z`wc91T`1Ip<>r++#TGjce+ifWTwgAb6adtp^S2NGsdWGQKsYf()^g#VR%_jG18p^A zc};}>zhH4tq1}X?FBaJcBt^w0CI$kI9jldAaEL|l2co#9sdFIFYaM9T_zVd9e0)IV zs_GuL3^@0{CF{Ar2l!@Swe0NdfhC-0nJ(v(ez2Enf9vLnVi(&A-42A%(9q3KW^GMt z?uhb&HwEp98}nM(6IipVM5?H=XsxzUr%;z{Y<8Bt?tKakU`-varuqQAHE%NxD;|al zWQ_7UWgCT%l2+Asyvc9OV@fgQkiA3`lGTfoFqc(Dhi~5L=(K*QEoQS{P7n9 zBkDvoeVTkHiZgNAa97!~r|8MYsJ|iuIhPReEOceUjBwO3U1FS~t`tYIQcG=JLd2y~ z)cB;%zbhdHioqFALN&39B`6rM-T~mx0~tu(z$m4hA^{I?=Pp*#nC)f zg@Hv6m~Kv!27rBl-E}OqXrqiRKpRj>to$oX6sMAzxh*_sqjju#1a-iM2fEGe0_Y z4F0JcCjv4@&2pbxdSM$eB$Yp@m~=4g4$>OG+eX-BR5#X7e3O*LySwyoQnbzUzSnKW z2l#qzXBoQVEu^Q?K4O=>n%0){0XIw^cWGkOE*&U5PNK~l`Utp5i^ z22H|trK@A4yGz?7%Jcd}y1C1qPsLEavzvZLr79Gi^VNRDk@g@RJgNQgMZYw3DD9II zU6%X9fd{s{Jc=9QdsFJd0p`oj1ehxVhszi=RuQ?DAJK{mpfu|or=Fo6!d|H`LY!`c!Wn&zU# zbv$9-l}>FY(^3F-w3Lcs?rNj&8=3~!!n|O z!unr(3>=jPQnWt94!(7#Yn}+Y#C0&!!h2gkJN4E>JF^XcR%qv)?M-3+p`$G;F%xv^ zUFuOgo%Ob=pd7CNQj-Yz-7#^PbUvGzm7K4GcE_`WQ&MmhSuYNXvxV0LIwo6Hr4^lO zK?Q|{!;FB;C^bli@xb497vk*gt3nhdbKr4%OuHoba_?Vq?Rs;F1#mIaJt^L^WvX_7 zz4EYO&O}NLZ@Z*wv;O@}oHn{sA)VpyjivB*n4lX}AZ%QYP$IUM`>pVKKxmCq^(Xnt z_Fv5g-Vm(u*AZF^1L;RsQ55IFuO=sIx3$_62u8#D}zlVpF3pgY{YrlHik8oT# zAjfK>Z+-ejdwJiA%ZOKyTu_93S01NUS%6@L$qL?_=!wP-xgPwd<4L};BwTo>n?=0P z;7}X_qkTTv12S|IIauuoW=W%_61*lY668ZBT59Tbx)J#ln-ZgdX?(jjE`ZaiLlHEZ z!Af+p)YuQ8)bN(n?zlMLlzP=m zVz(=8%`G;_AeYn6y6&xf2s|(_IS2mn8>@|(1vBbonx!g%u?pQu&#e|n9^-Ikti}}h zACBP=wQ12)hh$|3Z#a3;8ojygm8SIJyfoTPv>U;(1GHX}jEit_ zP=DZeRAvVTw*|EC?kcCYC@1oRxm*9(gfpJ79z94B41hjHoRmne)yvp^aQ-m zLnmjHQtgAE-Ljmo#7M*Cd06x*(}a{d+cfhNRx1A-ond9C!1 zJ}MZc+Xtp7wy&G9@RVe}W|PZ?2BnpL$z(v-9ef89!cw)mwO<*7*x6ceO_w@|ol1-t zmSI*9`mKL(&c)DVjnbQ_4LcyRQeI zC^A}od!T4{>J=!#6LT)a`xK$7L1J#SlRC^uHG#@_?sNJ4R-!6Nxqq);oRjgt{5_I# zW(t-C0pYCjnAmCeQ91lj#}wHaz0`Y(>y_YzC(qf=zUs=uXa_})ovff!A;XKYk_P)~ zo;$BnUUWYtB3h`5BA`QknU7rG5YqKjM&$z0Rtb%LDqVeQOg1|bMhmU~b3XrKRxZww z(y5TPp3YvNqS~`CNUf_ef#pAt%+xsU<%%*!5--Zc?BnrN?@(Yik1*roht8ZK{&ZnT zLlawcG?z!&?r|Lu=tL>3c1`+pFN|qKT~)@uy$9r%GDut0Ern;NinKCx!=#9j99heES@8KD? zJ0-q7C6Lwm`0p#}O@J47F8xTL`qW*=VbO}7@5huIJ~TARhm_DaBFQGpEEyxdB57!J zNEJ2#<}lZErvNxf%k}0TbXa+1(5;3#d0NGcdpYu1!Cyb7tYpyD?_RBKr z-<2ws#04D0N`XZV6L-(9>_I;9KE|1>zd} zq<(yMcEw8e-E*>x*B5PyEZ*`Lr8y6mAW#BL^=fxgBCwsXz$X(QEX0)7`oDM_DjZ^A z)0ds3U5H_|8LOC3v_S5fvD}tSEL1q23bifLAMP#f1!AHTu{kKJLVzFyiMi4m6{M;K zNFP?FH`khA+1RdzM3|u`Q!rFmuM;g1k)g=?T3%rbH<#GhPvwX8p#i4yHVf!RU4W*V zeq(c@^F`l~HX7;=9$s^YIW*Jj13O#ZjGnsKXGJx{!6o%iY2_UI&D)eF75`;KRA9JD z)RogV+PDmP+rLpidXwEUvh zS65C^>L#q)DRhYlvMW^U(Y8#(>WELxSDkqY{19QB+!H-xBsQfhyQ?}X{CY`5bsio9 z^?(^weZ}APF9U@}zgm3S%rF40F_3n=A<2U?;6Yw`IFf}T<5TEypQxKc&#xXRWUVG& z)8erjK*E%W8H&#aF|&(#b^NiC(~};OKoD6TB|5aFuw3}qB<5YgyeXggIrqUOi0hhv zcg=^iA|qovc1awJbZALnrSR|6iD3OwD?R#sgm+U+cySU!*-xR2-bT}J4_x#+MVe!} zt8ck6#)kNBL|Vl?JlPAMN*cqy6p;(}&dp)(?(Q1oxhCz9NqlRbLj7@0$diMPF5;##3c2a^+)VWn`APLVn&K-xrOHsHsQ|eybG(t|c|a zu{72B$w%v+pJF4h-`pu$`vbW@e_7I$Fu+BG4?&Zs)a3DYVfCT+>aP-FG+o~zlit?d znRL?i8oyXOVXwWKs%EdwXI6Z3fm2*JRPFp9m61$a_;2LJTSQMq`4-vfS?XXMJlLo&0_14<5r=t*0;mz5mum^Y{>E+yrHq{qtqwNXT*n zMhk6!2TvtLXG72qb(sdzh}~`QpTbwBAK2SS0fYHr>i96Q+yT9_?EB1M^W3YQzbjg; zrplfgQ9f=Wzp8y2YO^12Hc*$Oi3^#UN(k&cpY1}rltlm5S!O= z3-9RYcuHio2E>8fl!ZdZQ$PbzJl4|Y3(FVCJ&{#YdO8xAB8CKOWLa)RaG4Z)V*O?t9NQjCm^RV8@xoi{5_ z6pVGnf14n$uh!sX@c$kXH==2C+f)^A-o)=#8$*S0v{!pMsH1=K^{i87EquEbDF8hyl7@7?9loat_7O>L8+V zw4?v4)$wva(E5s?Dpj9^_lr@A`Ge5Fb>v`#$Q9oAFK0*e(NiyUec7KvuhzW$7s!JZ zG!#hxgL`^eoC4jMoiiip1S6{}lhl)QU3u};X$Y3>i-5W~*dFN^Z(!!9MBDsXX%&KQ z&^t)0ZgLrjnG@@)c=Y<=*&}!wpQcR+0}16x`%u z&()aAR@QrDa}fvmXl*koiF)s6yXR3DP5At%wg$pWL||2Im;j!jCy=BILouuQ**2|dIZFO{<;C5&Fmb&~9Q#z>B z0yy1STGFXzZ*vzbSpZK3fY4?Wr!ys-qP%i!9HBN!+kEtbMkVuk zsH(Tm+o_jixm>5)U;7C8LV%*!O~vo29sdIn94|BNQuIIVC#bYz<}rF=44g!=xMM7A z9>I++H^LZH>e1KVufH`A>H7M7cLBt1B6bg~Dv~cPx2v@Gq;VC3U1NDv({qkEIh-z@ z6i4}|j*Lqtz}ap_)D)x}zs#3c>(P>vpCU^5+W_Uef{#Qu~vx(DwCF^N&a=U}%et@PSzl=~o z^8N2;7U0p+5_DU0}Jq;nx4KG7kvHl^7IF2 z+@kRG@(Ns=+Mmq77~?%#FV6NxpS?>s4DTDIFARr>N_K}Y4RAzr!#Q?Pp5+1)oI=|2 z-B{+mJBC4m?8>4x;L~N_@)2+FLRlB8$9;_J`n;Sn2XIpWpyC}NCq9{S(R<$?0}Z#u zqI<@)Q2JyQfI(MP!XO#5(8@%Y)#no;0l_^AZUC3O0CZDQ<+dVcV4wt_2OLi4tD1^~ z%8s-u)PIEMlqFbkXK*6pJ;#L^a}%AIYU=NJg`0=6w?jj-e8&WIJ(YhRx3FWw;`^#SSW=cjFF23NbIA)#ci6gfbLP70?bcIV$DmDJSS z&?Hw3oJ3kBf)Qb~_G`3I87z@gUtJV;2xh%rHE0Iq+=wbW$2%nY-jp7IL5Nihk64Nx z&g44}oZF^Y@_TFm4eOx5g8zXyYC_{-hZpf=2Ueq#q6Iz_i{ZznKDFoFo%HvUbc%2Oao98s`R|tU&v=Y8S)rA}j0nxQr>3BE-gLGey4< zA||S_>#^afbK^IJ0m%3WexOGN=r3Amb73|xOq^kT59o*iK|y(cokNyD-;JBv=6Mti zgX^tc3;eI=R_a!i+hmVfc_&wAJin@WYR7LVb(;pUXhe~}aJ39_hUv8_IGP%%B3ZtH>^8b|gE{ zf`%Zxv6%{d&x>=t7?D9Af(`S-S3!E3BHIH_@#=zGg1R zlZH-BeUq<0(EV;dy?(l`d<<=I`Q}l7E&Q&4hfN0D45V#%KV68+q_V+!dwYYVjsOm2 z0I=T0CL~b6RQ^rK1=N3W4ULrZ{iPax=vB`vStMePHEX|tv?IESMb(d7fCbQ48wnXf;J*28Ur_%O9Z=PEDl z{A3R`W~16zp8Rohy=Z|%-FiRna3lfuIS`Am1&rzx>kUGltk7iVyXeEvs5OAi%g>)I zk|k)ro|0Z@v?c&@+`rzR>oaK8zl*1q7gJD(@l2?@xOMrwwTti5O3v$~4qp)-K zk3MCyhE5wY34gl<6kUhGr)zc>#Uy?HceT%H?=VTCJvFwe5Xp{-e~s#&Z9$LAWd^>g zg{Ma6TX9iwwBcQGmVrn$9xt@))!|Zfh3Yi+|HxC3XZ-@B~oNrc81W+ z>BKm!=sqOcw7^a+UAf40v!fsYsZ9cv5$=5O;s|ATxDxhRK|uH791(!XLs$uJdWqk= zUJY8UCx{ivjAaW(cfCAFGbA%X;>0QcQsqWNsDJ%GnLUeilmx?P|0t@!RpwXHlAmYk+mm z$-%#}7{`jA@5|o7du^9!ceL6d}WA;%X`K2nEZmOn=He zDRu_P*_nwJVN-{O$5F$lm{eX(E%i}&rQyvdE!q}cd&>LEYhR{7oE_j>%p?6?DtUuw&dYQsU_ zlYX^Q-ktU@7$n@3x4CJ ze`av7E2^nueEEwP4!8?NwWX%cN%(Vl@OG*_OWi`Ea!h2(uXi`-QTNBZG$rdTzh+-s zen0#e>?C_ShSs+<7lnSoM{TpodeRlB#!9<>kl@b?R?vh6${LWxot)x~5P>u=uj}10 zY_%Lj)ZNaSik}y2ev2vGSw^bBeKM2lbZfI(7fQ5EB!5ZsUBJI$rxiIIVjKcl@gLaC zRJ7b#?MR^hTN_a4RntL%o%qk6J9f^c*?-N$Q_98$Fjxq-wL@=C*#I?&J4|Hn@BFzT z{-RD{D4bAj3VU-z9SW1!5-`+!Uns_8fh308K=ZGEOwx40@pJQ)KUXFw z*5vdD2nI|qP$hNxdj;NRD0r0P3I1q(Okq=DGF_o56?V&`tWh`#=?(Cn#{}KK1>P{t zA#YF8<)!sAp(VOJn0}RGNA%!0y~yHI_A(L`13hI|=DiEx;;O1T2PUf8Flv`p%lo`# zV&{UpT~)<^wR|^k$c&(WbbUg8cuVQjb`OsiG&NIBndUBy`2LG*$80t9e=s3(w}CpI z!90eSAdaF!p}tJ5blVa+IHdu3KbnluG%wQ~q8hV))Aqp0gW1@avJalrwT;#qnS|V+ zg4gqQ0E5#d%@UriJ#H6lWOewgTS#x-7fJ-`}1Bq=FmV^QWV zDU_uleex86MAJoQE2^YU*a*cQBZg0JZh8EQ2(Uq$k(9ClJI#GW5X52nDPCoBHT z37g)@&Z`3FXM&$GJtl$)%3u8C&je;cu8Q?@a}Jg@H^*g4`Hf`=VK0XhG?*Rf$coJV zJBt6QyAN}9!yzO#St0w|EG_C8#NBs>7W=&R^4zwSL{ZCrge}ziCTbxO$C#71PS#!VsCy_uQg6JC_z(jy?Uf|}qPSv+ISpbEPzd{L9xoxyv zLL%oNxsXT6s9G^{HK;@*eGDXFD=}mG?$FS+nCI2aSd!T-b}tW0S!v@*6*;*-EE)pM zAokI;(FMP?V+mWdLm*WGnH#(F;4Io;I@GpHRk!9;XT15iak6R!pV)f3T9)shF^ZGk zeYHlkypnp+QUAV>nC^t5nEZlnklf%;^2FOoGd_c)A`1Eo)?Yjn?oZ6OW@u2oq2YSE z=jDkfM;ms!$n>5cgUdeSBcit?9ls)Ik5?v%pZ0eTD2f_>T;f^5NSq~OQK_IskRb^B zAU!TAB4bZspe)TyEZj5yOJF?TW#|jfl7+Vq+rLW~H{6}pSy6O)@3-m3MC6n*=Ag6d zTlw2WzA7mZ5`PbPOLdtO0g|nmK|@?+-!d8|Nb5DR@5tyV^4}>JK%2=#myb`3dIoK+ z!wn-tnupBkTj)VpgRvfuX9N4wRj`}|f_+?^=nO2_Y=?p}pS111w}dR_i}A^EM7qoI zc|S-NtI;j|Q;rvjV62G-Bq8F^U0+BY315#@u|oje=LV%r0?bD7e(_s zS#Y+df@n@)VYLvK5fDmMn6S6r{3g>+^H`j(=Sy;KV$h+wBr^9&%7p)JZPrgWa>tKzUyGfHSnpiv@lZO5j>g$|w|L8SnV4dSYKXij zFuxG7)eYrayee#7NV(?mutaNAb2{(rUcGO=I=m}aI>UGhT*4)x*B6q_@sc$|Gj$sd zZgGDu>y7!Q?2tFJVrXq4ITsikOEU5oswmhto|PILIAB|3Ti&1P|25MV?6$Y_f+LOFaTPmL}K6Fd??O-8eWpe!)J@1MiUd4%PIx6c_5kuMO=I<>9m@`=ta&zE$ZO`<*eQR z?4=m3-jo08;;DW!>!Y!dUs7T?yVVMQh>8e$oy2;b^X!>W7gc{%#0+1%-K$_o_*973 zEMwy=Y)>?^sF1TCYBhdi7Lqgp|8yB0sWYX~;JU`K%{Df+yc;)X#jlEqv3zPMLL>$r zMd0z0TE<(BmN{iDAc1)pQ`d-G>bk;MN))>}qZwe|7B1}a_B&88bfK%`{Lrn?*I zMx+}_>29Pp-JQ}Up%PLe-Q6X5CwiXy-Z9=W&Ido74|`44n*aC}arXJH@F;F!Ro0{6 zHQlt=UHM{c(G$|2|6D5>_4Xo13R>dh*SK16Gh12rXd6#?JMzuxo`%glb_+o5B+kB7 zqB8f#**qPOzz7Z2&5*l6BPEvDjQ;P`Knd22Qs?4wXzidqpmv)L5(=jnLWfd>%Cyk@ zc-y<5+!*7X$bFe3{zBTAo}RwFH=H=2uNJt{7OWsXCMPH7KkB1$SxYuu*ngj5vQ~8M zVN^(dUA45_{g?ttnJ!pQDOP zusxYGReN2GarlMkLj$#}%eL))d|QS; z{$`VSzG<3SDt@f&ljmH8CY9U&zr_UMPim@5bhy*r8#g0=eu%z}H5mBG4)&(e@`bKM za&*^?bGkZ&9>|8LX8wvZKT5z|&w77_pFBK7#*ZJ{^aFc0WhFcO?vwR;j>S;i=*3sg zl=foW=kWwh{`z8ut&-&sU1oxJuy+69x$10!aQaJ0|OC+Nl;|5 z2noUF|M64Qb|pCh8h8Wqssq0gC6gf8FKVlv9ta<$u!u;Um|_tx9*g~3*|J`xo$&M2 zOwWu5Q`}}0WYpm>nP457VufiwP5qH3%BO@UoNt6>tAciX88Prwxy{DT^j$?UPH?^) zDL1~tYQw11NXh7!_Wu;l_S*eyq};#|RL>9fPLO4rq@bN6RM!U)x@jwfKWR@z3E*ct zP*v^E;B;0OK8Eo*`}bwUI^cu0q~i3z|1PuRU{CX~fbM9B=+xD81pUmyrzg?|(^_d^ zq$e8-j}F#s?Qw`eJn@&pX^69xD=g48MzbO2vOQ4>2>}dR`l3*?;mn8kj-tR77*AOE zGQOSXH6!keaSV4tXLuALn0}MY4x{oh61F};`7ki1xNX&hP~F~rJws*wa~;Bu^6Hhw zVrZ=j(`^)`V3zf*Zu(TNWySz>9DhCRcSKkXzpKB@CX=M>7RwCpdD^8r2Yy{d`hhjK zZ2HJ!fo@inEaYc~bxSs~9~83dgavgyZ$vu>nn@NLQhLfZiixAr$lhit9GKq_>}aPB zaMt>DSDV_J-s!I7nuloTXt(9v)-lSr#cfS0hPRZL7i>%$Ok`J_pJ5pW+A&@u>R#)F zpj*xt5aY?*=+wwO+}&W6HU7&Y>{Z`L&TnTAD~yhc`WPvAiP+K6(W&k=+vEt{*qUqM z16H%Xe9n6d)kA{CAF@J6U6$n1+jql>Z5O}pf3Tk=>L%r59Ced?{&%Z2Lyf3A3mtJ8 zGdmof^q6*dN#vD5V2_U6dqMX**dh#>8i6J0ru?9`2sv&bvWEVVs;jb5#!==K)_E?C z!-!|~unNbKJ&t!hR9#c8MQygRo2piK12TH7B;ue+`I2@!?~O1JAphuWY8Y|1Zg0_X zU+l+aH>)_rbQXY_w@H?s+~Jm&p>FgLta7ayt-u-@!_S%uDAC zze}B@0L&W{P|pmq)9N!WwW{S2LAX+X(2RzwKD_`P8VXOV?y@gF;o8t2&y`8ytKN48(5mMn*_1bRDxLp}jg!tczSh+gw!Mz?>8Oh_mcxKA< zO=C*tLXAN=U;$2EB| z{=>#5=DB2{xZBqy()yYiE_IT*&bX`C0f&?)T{jK%Sq z{t{FQS*NN)^`!|UrL;j6OUwe}=Xo7y;> z%0_~8X|51J611dB+^B!qlfg@>0^@PKk%ITs0q@1^x@F(Qqp4;5usz;}3~dNAr0ZOnD+2DsNVkvfX^kNb6ZoRmtvt zX4QPTRov;(+LVQe@Iq0x$wNX}o*B*36ra)}y1&Zs&D-cab<#LmmzD#CNl7G;CWP{; zf|6m_dF4j9A+rNv@RxdSssP5LBD;k(d}Or@^rJAcI1t1bIcGI0s6*!D)AvnE*ravM zeL#MPg@l9t9sjrQk_i54*;Dapc)=T%sblNafu&NI9=`=?hLQx$>)$V*t%XClDk1XI zhSdzYp=vZEcwcB8k|`&OBkmX{Xw0|9v1MAcI=^x~AT?SnEL1~j5n;!!MU;$gCUciS z)XE=Up9rY0CO0{A)wMd__9^cs2>pN0!M|@{0DChi!|Sq;J&8_y$_@D3bC~`hX=nh< z_9B!QNph_ogbX~LV?&osXsgz<0t+N0sFQh=qQNtx_&UD$D&`(Q(;WZ8VN&g&2pq&_ z)V&-!iBJGVM@7nDN;60F4h3hevqhinm3v*Z>B*Z>y^ij%O#AN7PeRa}g>YG=%}0GvL_IpCTJ)Dou|4<%C8+`@D|z zd&;Ixnu69&%E%S(H*AO!wb!q^+@Lx|NO6(hyK=mwDMwn-npBEQ2Q=pYWKLGVZ$)&-Qmw!lU_H7~S`+-dO0y@Ed5pv@?&45X@dp@9qeikBZW8stg#dsI2J1yhEyB zpTw>&QrKxCb|he^G<{&N)xbrBJQ?_Sl`xOGshidMY>*)^|2?^|mBryaAJ8Q=yhaEN zp|6bCs*RNT$WQe@6nOk0_(LoCQPa^ax82>a-6I7fw2vM=5-D1GF2_%K-B=WR{SCD{ zgP%bWG`a>7-%3jtiLf6593x=LxG2iyq_^wKhi%Caeh4MJdCdt^PzyKfWk>M~DE=SM zo0?3Qm-r)j#dJXMhMzj3#_>Tdfr{$32J;I)F@~=pU?YR~9xShNb$gS)d|FN4d}AKE zcjjZZIHE>2BL8cnOtmZxb7@+3udqEfX5@c=TqV-`V#xKz%8L2ky&}3Q z3AkDH`uh4FOk0-gPn2j>R2Av^Pzf=i9OlbHHkY2HK@wXcF=jMte5GtFE*tCI$gGNe z$?-q;2Ifw#q(416f{*ovC`&OjxTq*^ymqE03tc0FX~*@3Y3iSxVDbx2K44=IeQ&_V zD!ev}0%o*kzrc>U@dt}aQagCY4^4AVNSUttKT2c`Kc5Tl? zTk5^y+yf1bO~QR{m)}`3xF4!yPvN>Avgs>g*jrxIdgF0N^iTy7pall$jDvyU@5QD3 zjOMcmVIT)BaN>cmRDys`2t3rk3^>CZ054zoGz4a^l0OU^?=V0o?;KxkTik1`268+U zEv<%n>rYY7=(78#t`?`8T}!c>5V6AquWN<)Z$eU6V*gyFa-Ic+e4=4uNO*>%MJ+nQ zVQvj@zxC|n(LYkiIu6oJx_C`tpCn;e4x^_0CexcPPwl8q4Z=}$0EegiaG3!6nt9p< z4GXF!DNE8B6S1WH?P;aa8h)gWL+v5nl}cQ5r?$2fFWq@j;x)->OHy)hU2WPY^?x!X z_Au6a9%_*fXk3>3Fa+DHj0d9<>2ix5H-;bDum9))`^E90_oI)s9kJa{5ckrBp2d3z zASXCE9c&C^p=s8ZIWDQ1%WEzlm9uSx9YN?@q7{js72z9R7)D1&nM2wKp<-8G(MSeX!Cu||;O>KMg+ozYUzzU=s(;3v z%;&+*X~OWP7OElkriH$LJd-Ux@S=uc1xH4H1rY|};J!tAVmGD?jC}49oG>z-nO9A( zGs(}#wkNUNPuPz}L)Dhy;;eGmjhgj^oDek$;3iSARE%Ow^xgf>?`&%xwwlc~hEY-` zh*xw2Y{YOqvUhoA2y)z0-am~K2WRDT5QNkC0wp~P9x6pdwObb2_UXBgh?E*T zA>YHg7aK^A-kmNQEc>CiX2Tp*(;1)XJ4aGLR+(QMJK{$V=c#3H9#mLTpHskFJCy(x zsB3d)1pi@#@HnlLalRPU<(AuNV~PGU31XX5^(vt#zHzV)*q}mm%6g~9ieb@TCpLjB zE(l$dOea3zKeA2HT6*6w5mrx%Xv=S5Cfeqe zDZ#G}k&dbj0&H=Iw}jPy5gl9(8cc%ryCK?1g6t(3wN2xc8xmc`+5cpW79os>-p%f71BwZK+^nA}d@sM=x ztsH?pPX$0LiLjcE#wIZv4f$+Jbaa4twxZHUZPLb!+n9)-z9iVrvxE48&t8?X3Z zei;`?*QHT_*8roptg(Q#!RJjIz-Q_;TUtgy*;c;1i<5-%STz&tcErpJGEz^`Z13f- z-A!uQp917zkH$fLu@&4S_k$IUeSTFb+t)yYz$WQ~YFF%1Bde{7qpTUv5H90Yc9P|D zS^Sjg_fxynf5@%A!+lGwjP(qIOe9}6jotIoK}1BPeP{?H6rZj4SGDPV46|$TR><;$X8;qY57q{2ljamAp%iSKQZB%VP;a)R2GUxQ3llCI);|;~ zxDNc-4I38@WUtAu?8Zp~o;2D?-8`#!WT2+0`(jiosa1`uHG;(@VapuakjN>2X^-%cUNt9eraiG1jRN$&}(ZtM7Bcx^D*2%Ip7KZ zwDU(XfzYKQ`nWCnKi0;GLo7#EA#F-c=Xfyd=zTm_FW17!xFc~aqcHOi$MZZ7RnX~a zDnEP@Lkrzg+_z`h#9^h)hoEQd0GuquGykR+^_$ydQ>zVH^PBxGL$IjJXe~U7Japu~&471eCd~{R7 z6)HD&wG*ltnKR?!nrTt_q8=tTKXTw`#TrTQG?!O#Ox3*inA%AJdAZ{t7vffudMBdL ze`q!)>59@-QSHz@9Ed@rvjZRdsg>`Y@Waq1oK`?kzMhx8g&82IOSRD`9Pn9$Mm2jY z-Y>}H@7;9vHrbqja)<<^t;D-yEB7P`YFmuvAkoUCPzyT1yqS1;=ZZ;StXVDy>FYvwMrPWn0C*sqpJ#795i@e-z#FwUK!D& z=t#HZSM(Vc$=_sJQP!hT(VUmf6lwa-LOG}}cqtunSGt2?smC9F2k0f9K@~KOROKM} z!oXbe5cc)3;yrV34P};;54^Deo?ULpdFq9G95FZ`C+5Sbw?`QHS-Qt^7?m4ckl8`y z0d`VCU)}+iu$vR(oaU(mM^}xM=}R;I8X`L9{`o+QHj3QOam6sAa{a5 zfmN)(bFBs6bwsp2>N}9m-05*!JE{9tQW9CS-X>rrNV~u9Ty05JL_#k zz4GEr#4=oz9DAakk^B0!^~MJ16A<>__EU&YDP&p5{3={BXzPsxeK+Qa5N`EDcbgju zJnR~rkxB1MQ@B3FTPapsbr2rtO#V??QVjsD8+q_ z?*A?sM`W^AQFR_a9oE78>yC!(vQFq$uuddMZoK1kDpbAUkn6+TV>Rc#?D*xz_4F?A zQ~e#=fy7Vdd((6CcdS>K=Zm5}`qWaA8-%sdy zHl6q7;pvIQJ}}D;1NPscf`mU}+4}B{dl}wG4M5}Z3?oTImo&cnRVFt!vS;KYhmM&L zG6|rt6YOKavO?4jj02lYw zY3$`}$P>Gxj|q?OnB>@v50|&zAN*b&f~9t|VkaZMD4Tb4!bR7fjR^bfz+oayA7bh9 z<#6Mt6{3gsqwXoTtF{t5;Du1a=deLBO)cAUwf7|`H1xSIPV$e$ZUEIymg{{5mex|Z zU&Ona-`@fMt3L1`px7l5fgV#D34CgS_`uSW9v7}wt_v})1SC$lp3-n6Bg_uiL5Flc z3V$zu4*~sb`E;pKVG#HmRVkz4bYB~%$c_e(D!!ny^T`cFbhPqqgQFP6Ybs!bLte*! z!uF|MpOD+~-1od-MYHaZqNF_LMi*s%Zk@}Rt(ZF^@AhZr8OBwhUHMl3cUkCIPyAMS zEG~12&f)PIzrvpcyh}`|dE!pu1bCU?SL#U%`?@IQkD6O#vHd|Mus+k9jrds~x!^WK zgB7oWyQFp{I=isE#0Kwt{WK5{Nqd^$?GB))ioJW6X%?G5nW*O#oZ)>-2&@Xif;#5_ zBMjK~_<)?dQu;?$fH~9|NWsjE`aM+&SKeIc@?9vT!RyazqTM+;0O!p9EzjNVo3$5U zm~uH85d)mUDzS*m?`$eMB%CH;8NpijKne>i8l&2nJ z$d6IzZIF)7F1b%*Ks>*aAW|~cD}ri`J;I1AXyT`|lY>1Qazyg{wa(w6qht*695j5Y z->?{XEBn}nNth_N>tBz`NpQeVR!eqiwK~(w zQyYd}51ngAWUVIlz$siTEFaNuqF`<$Wt?~!`C6lp12}*&d><)Tf0(M!H?RS-BXkPh z$D*g#kFp1nak>p71!$-J1+V^{Qc6W7hSEM|i}MH^wxpy5Vx$r+K|B)tb0Y(yj>ZI;&k9B%C_1Qyh-(RTb|~`ZNFqQJTGqy{ijCbkfZepiq7yob%MfB| zbzCnZg2zIw96bz^_fIG{wCBiU&bo~asml#G8`qTt`BraF8xfn(bCm8r99QyV^+kJ~(&f6|jBTU~(V~T``hjWX~mF9R8#( zbbSC2Ac6;KYLk#GNj=6dLVueEu4kd3{I89IeeFakG4Pu43kyR%3_Jr-^PL~(1_l~1 zK3qoGuD!G=(emRzt;Jf~vOLSUmo0_WL|+twQ05g*{xxdBG!)Wi_IVV!-*nrqQ&3-84kbD{!`D$w5Hs|J zEQ+hmNL|fv>wqGWk#c!d3`;Jo>9<5QN1#06LwWM5pZf)O@pDB}O)s%50~wHRW>w85 z%hJ^Mr)yDIwCZqfb@JshdVvV8(smKbAtp~`p`q;L{jYJryOsJrCS_-D&+&eaUtdsa z6DvJEy))ErZszF|LN*#PJ>{)!l=-G7m7g#Q`4n^6USwgUvm@ECXod)Ou?GTb7FMvz z%B=B&1QXonPOmQ_@V1$duKWoFU>_K;v}^K!lVusCBZR+^TklFl#5*nW>X{n$d2kJ^ z63kKatk_*a@DHcZwWAsqmYVV^c?$^AJDRLzmnj~+T@l{hk+}ht60|J%qf9}Z6;p^1 zkIoH@>OHgll${a25;EYk6{{;5oh@|u!LGnU;Ej`0-31>xE^YwW-s|^<5gJ6uH&66A z%LxDe^>+T|A6hR1c6(c-)Hcz-_*Jy1g(AerToLZw+s6u(R#_|(fQ&}_&YcD@0b|4- zB<4{frn6&Bu%?)y0vj?hJ|F?5kh9tRl$*TRiT=kpIthlQF=DP}6uqs1)d9oOr53Tq zxFWi5mJo`ozOBb2GQS-~+a!TL2)!t!KME~+jZNw)hO)@a$p$+~v(8nPcw12Lpa4UI zL2|2(*XlDdm@EtV^{nq6*n4Hr;=RaIlkat4$wN?)pJ{Srx;J^jWm0|D7extpjj2gg z^D?+&b7Tgba!|65#4%OrFXu!x6ipX6-Mb~KLeH4Efbh~|0{qm7o8)dfv+u2 zhUb|Epu;Xr*IFVXAz|Sr;IZjye_PI`m1uH#$TLv_)zwVdPzr#}&v|09o3Vdm4#yYn zU_T8oFb{hw>ZCA`-uTd)TVhJ_y6S~}Y^Vq;c55Gnm;00&Gzf0S=Ghl3&|9N~c^Uw3 zi|Z@TR$%Jkl6O$EKRq3(#R_3dqEr@nFqXLEpmD*;>BkbRBOU){9AEAeIhK@W#7TYN z-zV+{SvE99^mBj)0OXy>PCHYSy?jnP>dfEe4`*_Mc6}Z{LvAYtByPN2NEF_JIqYvi>{1re(KM@I4aG@u5l?S5}*3`3rRgL(jby_diuvPnjIt}f6q^x zRE?7i$%CrsM*8{r0R#{J0!+*}o==YEa%d&jFG)}yBwJ^{70{GII5Dz@iqv^g`so)y>)w+rF0&XKMV3ebQ1nw3-azDK4n*B@s}(!*cL* z`4n-I1YZ@^laJZLFVjTE#hh_hioMy=Z&XNrf14rlnVnZDw`?^Nw_a4fz-p$?C%1=4G#B7za--DlT57=$}aI4JQR`{`N@P;uv(r_iE1`FrA{w_f~RE>s0-+Zxm z5|~VkeTm0RG6PK^l<;S*GI*BgyF`e?KXo$!7+I2DKMST@Ddzw?5^7pnh{}*IbDMRY!9qRWP zM~HH~O!d@9%DiBqn>_Lpilsb8SM9=NPfY2d;3$gSGTu5@^Zma z@55p_|4T2OwF*ZYNNqB5_34ZSf1QhT@`zTi|Bt)j`kMefg1?my?4=Cwl}t0kW`L?E z*sKira8l9JixUhgoe&8AjdM~U|eJK9s_#f%hL z!HUETOaA==0S^7Mc1kyhH;t60mO z+@8{&y`$3-HV>aP0?jb{iOf8eUg`Hq!49z55bqyxIg0m()SCSk;PJ+Z)@_aWK2kl> zb&h!dFY0+VfnuI5KPLx#;dOepw3tjpo>M)JMzvabH*=da9jtK}JO@q9paiD{`n2Qs zFS$Jl75sV4)0d*2a~gbwic{wbW{njhii87tgm6alQvjW6kk3XkaK^D&m-I`VJ2d2HYJFgmZLpNMh zl&Wf5_hVWk^LQp_>p2oH&#U5$P07hLB}K)**a&c0===7q8?+IJTgBxeM;i#Pu`;Q& zgjiq{BiwI3jwq0X8IKg^xJ8l)bZ?Kgdb;2H{+m9LoKAqx5BzRpKKXSH3}6hx8e9$` z_tvLYQx(D&pH8UGKcVE|#8b!@e5QQQf);&K{A~69mQrJTBHkC$ z+c9N*^ltoTuVq0&OcKCH45Ph~ghPs`&n#Y{=}U-x01Hf4DKr3|LKp{s4CE&5Cn!Eq z{7s@q3G?*moGffSc&-#A+vc0C;N34U>u|Oa`rs=Ca=a3oiluyp*E!MB``t(1to`*8 zy|30+2u1a3(6&rZywIyJ`6F3O)%5#s*|1V273_202A&DBKD3kD`yzRhw9;pg4tUO+ z%N;Ptr1U9Q)ZHZ8mgU81yPCo0|13;7@J=OnAo_sD%hq}UC3~3CSUg{I_2_05BZALT z@cJdAj#t#gIHl9BJG8`t#dCF1lDu+IxnD}A=R4YV$aQ1p?ezWL?YwR`$BO}M>9Rq# zFnp&GaDmET&{D_+5NjbRFwm~eA!76J@MyPr=^#qy2J0}!7tP%CZ|LD)eoj3b$NK^_ zP|>lmkAX$cXFg}yuxRnZ8ni~|z>!3#3absNo7imM^A8f?e1fzx8-C1AxCKX*ECw`3 z$Y^qYV~OwT<-sHi8KvmjBNL{YJcCBPCOYMT|6~i@V8SjWdR@?F(;_DbBcHS2M{_sZkh22V< zgy=_vvbpb1v*oHOd%8LQvtTJi-;yDsf_(t-vpM1$MB}LHLWJsq4_zAbsqIt}hkM4@ zstgRV>Mr-)!#2RiJ1Cw>4KG;0sKNVuPv^6MJKo;jo`E#+i!?b&No+ValBlbz>jj8H z?j{Mp1MLFT3{vg&BqRsU`#N3lDp3@6W<6Cw+1b_Ab8~O>YOn)(eV75TfB3x>&D3r8i!@4N{ukjJSke4YxXk{qkE!erP#FJXvA3wVyQR zsLGM`&(SfjsQ}*qKRH3kf*9r}kAokqeSG!Ui)b4!kOLV|1%Sw>mcFka%TwyvGlco_ zHmsXEYsI3t>};ymKWoHTG~;#FTHi8+^ujFPj?@19`7=OW1WR!RX?;E4)s}Lkzq1qM zVx%Y@0}3ldF{EzX^lr4EuN4f~s3c?M&p1GzR!K`Q8OFXcN7#$WT+&Z27vk}Ks8roZ zD$1T|N`0zdU>P&otsHaJVwr`%1@Y({@*&i}RG{7qb2EIA!Bj*fK@gXiK_KQVtB=jP zAS0&qx8b*eZ^+-Z!|2`^(<;3rgdL`I0p^G5*(Ko`CvJA3GgFuu&%+@!SE(Q+?;mqa z{*0R9h*XP`lTiBsry7i1sjn0tLaA#1a$Y!|Y&B1DSxzwPYsxl{J-+aI8LBOP8s)O~ z66{5Vvm|LQxovC^$%L>b$}WjV#6%?nJHT257aj>UztyO@!4SHp2>T<^O$2zU{MqF3 zzvhQMYkSyt-2vjzIqYsq;8|JYsC35^tnwuQvFbF$kooVMkJYCQ(x0Scv3S2E|(`xxRf{Tp3re;N*IQq))BAsc9DR7iZ~> zEBt8y{*Y1$%s$z*go32V(&k`i6oy4fUdMNJ1_2fet_ZdV7;lCf4l8Q%PZ(|(N)7UB zPg@v7fEhRxSpEmF&2Ik84@kZOaN4TIDPZ~0UWgc;XaM&3IgnD}|1itzNca_Mv zPJ*)AX>o=ybTZQJl>e|H)Z8B-I@ERwmypAof=b*G$&THYX(ZR0OEa6jI>Wj`2~rWqalLyD1diwWTA?O^7nc*-uJH zJ>D6wQ}!ko!IX{p58~AeQsBNX@+|-T;6m#$iAu|%bODHGbkZb-neNa$n@}58QWJJk zo^F8-FDNGTv1H^Vvq&oeze zs;;s%oFy{qU)$=;Y|-;}aV-9Vi1e0# z4__)XYoMMo>)}3)mu)}NJp<&DD>HF=OU4jS6GbHSjou6X-BA$aEdk@3b&m0e8(B#n zekqNQ2kH9!XvGuBb80#CZav-4f==H{B`loldG{QcvfWo z!cB+LA*1HMs*IDkty9>YGI-vnZ_ESNQ(k|^VHlv?ii$l zOb#3}pX|4WCa3v`jY(NAtUqtZK7HXl$KPDo>ZL?O$BR_YT_WaXk_ToPO^EG^+0>P7 zqemczF+}bb-!+*7dT{igqqQ_)9HkQ$P{}MA97!~)@gUk+1lR2uixj9vPdTn1S*#e* z7I_D2cCpyfYd?NEz$p#eyi*8L=bL`D7+Tnt>|c<>(#bpZ%HXF|zQ{i?IZk`mUE5dcunC+d8PjO9j(8L`O}6Y(_NwWN$QbB&RlU)c0&Go8Owj4dSwWT>A+1Anh=0y{j{cARpZ>$ju~BLS zI-fcZ>S#&4{yG&%m*&d`>-=3y$=Oh;q8h$@0f*ZH(lE}7q{=8*4v!ek+*F({Z0Vya z5m$UTcubh}yip_AKnJ(Re&6RQx2|3J+0whsurl2neO0vg&lL@ZB+)ogUb#4Z45+Oh zGi7{|OZL=VVl$uGML}e|GrSzPxLuu;9)h2iTIQFz?Pk-b1^+iL8=`JW6D`NkNcnSk z8n-m<^#wFuf6l3`WY2xsTcf>@_`H37eZ|M3eT2xRjE)_i%rE~)N!C#MizmwBoz-Jy z#*um_Ct=``@NRX3{t^HNf*SpkSoVu_r$Zmmt#$+!CJmbTm7cEVa4@bE+I?Vl;#snX zuSQQl33k*GxayivEGp5Yjh8n3HYh8)(j$~(n503O`E#(M>Nw6cc_1b|Ed<{yBc!5X z@F+-R-^6buOQArWDP2e9N!oFHE$J)ID@1^L=u+DJZ^zKj;zqgkEi0yY{NCyv$T!w+OcBXJqRK%5Yn@*j-`&lMd< zsz^7p(L;_?y>2^r65#M70?vA3jO>!zmaA)y6XrYe`)ll-EF?itS#d|Qq2-x*u$n(d zOPUtSMNLc*1EKJiVt%DUh-{k5VNd?q|JW`Ja&OsQ+uTaCDh06B%k<>G6Vy)3yN@YO%D!5Rw#kZ zI}vST`5%tG{#71|@8?9OOSOQnhBMn|HUKyPBRc@*Gdpldv-FB4jSaTy{8Cx}oh$S9 z>${T^LUb(@0mVm_h)kSJ4(DVB4Z|uDipxLV+$72e8Bg3J^Mr(w#MI>FLZfF@WX9L$5va{im-r-D{;kn z9koMz9XZTPpiv>@1hRaU=sxh=ZP+`wMo*@#dllv+qlw;~_c)a90p%(Jw=(YJ*id|A znPMA*YQ{c3DVgOs=`R>V81Tx*-VJ>F317-M3^*Eo_!==FaQgUdwkRSAH}obf0L>BdE1< z1q(V6n|$C9clGy~*|}uWFu$Db{PGJZ7Yf*`Q$s!4zFb78SPU^T(^Cyu3g(MhST$mS zd2govxLA40z-R?jaQ7)1{F*nw<^iT)h4W$6YUN$-nD)EkOGi4&ie}3q*2+*tg6BhN zDneiJ+Dna#;mW;crx!Y>4S+m*ZnxO^q{e1eb5Dg7cocW$$)pa0mg9coKxUj&M8&lF z)ZoY6g91B!ed9<`>-+)ETzMq$(sBx+;qRx5D6h%5=9nDR9KwjtZMNpmZH~mB6lP92 z@@%n#OSj;>HZZr8kI2bOWp-`8_}>#skIU1|X~aaG9H(LsT1m^9hY;t*vFSRV#d>_9 zpN(#AI0-nTqW?Y`M_E~@mPswB029Sd32PkY-OzTB)q$!3EA%iU*^GSMIOSfjbFLg# zc?zcZ9ze16!J--~N9r1b?tCWh`Zl8(#Qel{6aFHzva;R*ieK)vvCW5!R?@OEveor# z08OCz6Fh&vVgN-4*I#!%PW^IL5}M4beSK9i{FhP&UOGfgCW}d}g|+W{$7!4DJ>%6C1+U5Ba4q%y5lN#pH20Ek-zg#jS=RG&Jcps$K9g!1IjkfoqSQGmje7sY4 z`9*l=VT|Q%S${bXJsq@RfH!?^E}r8F`LD~KKZyO3P9J!@vY5*jq9K^PKKb@mrR3YjCt;}rdO>qLq;Dsl1HloR8@8E+}v zE>U}eL@}~j0Hi;4fy`D~)c$??ap`Q6fqMJnjb(Ro-_KeDoLpj>oir;(y@h)AlAbU9 z)Q&%mv3d6t@%|ITvP+vE{QQz0rH3!P=^O~fB_#X_lh9{YF7!85JDU|*$<3u&{z0nF z_l3f?TRaxG38-QHC1Pniy1E{pot>GD7vbWuY6k(|dsmcTpjy0N93Ubi`<9ln02=kd z$xk^dT3XRLsKLd-B0DE%*Job)1F(9?2F9EQ?w4e@AV!_({S#o$K``%q*J36Hg9Uqn zFf@&keUQ(#(FP2klU_R(P0a&J-G>ib&$PKNby0v>=9$g+l?2|Z(Y-e}p>Ouo*e2Gt zGC1>1Hdgsi-#(_zN?m_YW4G)3=Bo+xL3OolRDCnP77E|XibGMVuX&wTt<|PNs7Og4 zTfMS}$8sHezONS(s0efKiIS<-fAgPO-TD2TI|40N;$H_ISO`_$8I9#LADvcVmJE&Os`)nZU`Vl0U(1g^w`zSt#fd&7&_U>-s?ZQ!EB{1EV>;K@CP(*38oHj zM#R^+MfI#oXUDuPQz&zUO&t!1KI+~YvcI$?>U}CuXitduiq!M^YgYCo#Y@X!+=sF( z@80ib9Z#vW61KXHr+^>tY!evHSIJl?*ocp*n7G7e|J|V33^47ces2 zk5reQzGbS5l9ZfECB*rBQz5!9Boy~nXYqGkQryAmjQtQL3yVyU`28FXg+9{tID~Q3 zJ8X`^I}vMiTwGq2l$7}QIUFv*uECpdPcy_!G5PVCq3&m(NFit@QNSF68(LkhY?I#2 z1VY*!{}N%8##9v*vF|DDBWmJc%rsOkjrM1QL++2Gx1;n4xMjYLZOIvzU>N0pU7F5) z9`h>Ct5o1E*~i9!aQ?x6lOel`6xfW%1(hC6QJ6zudB>NwP;^YdgZv5O3sAUOp+R7^ z09`zC$Dp*pQ|z`elzX8j$|(rCYUlCA3IZHufW(QUDxyCF;5o<>@;K;t22}?f9CGlW z{txP$b~P(WbCF{RCaR33_)o`_Tu#T;dR|$(pKhs)sAlf}0$Fq+b!}~JK~0c2Ws#7x zD%Cc0gk0vPrY7VL$<#nJ;t(@-$7FD_L_|$Raye>kQvt>!)se8*>Ef!&jUl%xc9Hy zu0P}afO&s&5=oh&WwQ2d9 z1n!8c2DMR?66O>hw%abn5wL79d`o+3vNi!(q8H*p(P9v7;tDuI-1Ma}XaYEds2)$SmeI1=nrG`EMSGM>c8yj!2$AjS7;f+fy#4g$8A8r#v{9%zYl1O z$`QJ=1uDO~o&>W_&1lc_G+D?kM6E^xD-530X*Vz{GA6jt`Sa?b$M6@E*9hz;+HHA#_*@ezN5y8|_TPP{bY8$| zkcd6&xD=tjiH4**NcZ6Q@?qNeeh+}s0;btcA8<=2bhEyttPFiuIq0B(z$&Rmol!R3 z3rJ)P9*qT%Wxx^%aK=Xx>&}i8)WlH`$B1feZG|-X!)g22Z-eR5- z=g)gmE|oW+63#hr!c&IXN{VAf#i1e0M{2S&L^x||;lpBI`@`oyj#bBw55Db_;{$?| zzfJ8J=~mcOZjfZ$YjvzXm)on6_VnaYsI{aPHAe|#*s-DE6@IX7n7QzXR;|LqXdX!K zdj(?e?;*p6#zrK2H_4kn*T+Kv1vzgDYwoMmI0nN_bP;{bLjeJCGCn8iZ)*PFyEGil zk?4$#z;jdozsI1PCQN%u?XqgrOT|VfkLR7+(5Cdgf`MS@gk?Ed%`KVk5kN+|MIhdHg+vejz z-+OGv>V}LKiH~;|`AYBhZ(9Nu(bCV2l(nuu$CV4S&KycNB3f}WCZ_EH$84a7hw^{nww?{u6?nba zem1|t;v<#Vb@1bpUU8&7LUQsiGm?$S&DgICtLvtC$G?BBzdl{PXY=+;BixVbXAD!X ziFFHKfgn9VnZS$I195sx2@~RZ=hQLbL|n*SpD^&F%WK1Dx~;{(ywbY4Nd(zXR3@sn zR)>01F5!vK{#{iTY>u>5p-F6^5TW#!-wIk8vyK_ZiA_OM!v+3_Bu$@cXSLHd93LY} zMM9LLL449Yes;x@*ce6jHJ@JxXnUVFBikZ`Zs$zrPu_mgu}&<%)* zG$GSO(<{$2Z0Iw7|F%i1w+04P4WOl&OFHKzOTCG>51`Q?<33yYL=V$jHR%nh&5|ct zKH2*3YJ{35u|2~RuD-3UQYj;>9^VSIc8J>N*F0$f)W9EZ7c|#Y`*Io?`Pj` zn<1$Pv&Ll0^>OBMnw~lE^Sg%4_+frdC{>T_=hPE^bNmnv$;K9u5k0NebJG*iM9?m zLZ;}(Z1oBI+`8@`OmlO>gCmEpW#8K<7SGyT4u25>qUVw0eZY)k!l&HQ;u%H}FV*Im zvR61h+_npEJV4rIgWD-1$Y!UV247*gR=rIR&}dm+ZblR_Q`#BNU5bzuXjDO3aVM43 zGrc(f&7?|Fg-QnaSt8D*ujo|NOJw^xEUurd ztjAfS+JM-XTp`x(R_j4_`{|p5vr%OS85tRTTtcBM$;(vRjXpw=ui{XQ+{dGJt%B)E zLe6yrd`?T+BhApR2YSs%oy;{Bzi>R=oqbA6(a2K7ClO1uTVxQ;aZYR9ZqPYIH-mDq z$i3A>EU@fNgu)(rzFpkg3&EIkCDXe(m-&D}+2MoR^y8?aD!PaD^i=g_RWWl4w>2Zk z5Sk7JY@y3gcsqSdWzAN^y(D9f%a4)gX@7n%CC?!_i0IASmf+<@F4{r-Z-JNRq_7SQ z$?_oO%pqlpqe#V%CH1H?SPgE!>?3vAfalLU)8C&U;a;IL7M)WGXmDRIc&UKy>E_tW zHt!j2kyc5|GW2o z@tebW&hwmo_FjAKwJ20D*0hc#sG+XHqhJ@wcYOC~g}!lKZcq>dlUlO`18IW!P~AvJ zLW@2QS-ZmRvFUrgVlQBmfRE-Ah^!DPs-nm2!XJSrO-W6ax)y5ahlTL)@H}^3xqmf# z2y}g?o%?B6ZU63evdA_*B1#~~O*E3loY&PT|4X+M#-&q9F?c~+S@K`K?5=HZMcxj* zgKteHCv6!6WxA^U3+rnHAK)g)P3u39Gy2)B7{M(6^49KAs2|BDW+vQL_}*6@l9cf( z%P{aBu2rNbaJ2m)-3n^$@0Zxem-k7*w!{Fp7$U(dw-|Go+T6#L*20xm#2n*(C0Lny z8`4eRdJI9uN&j!8Ty%6YJ8CPJ9vtd8fu6OI&tV7&Uu9k>?vM#muJw9B6a&mTry~rI zy0iKj62}JglyZg5^t`A&+qWA(#g%`}eQV09|60yWk><%Tb@fJ**#ZCk zXL)h7LsB>S`%==`WZ5FF`Lw6a?|lEkZM=P90zoVLlxD4PX}|C6ZD1cB3Tx6AQkP^3Maj)G{c5>PNtP6qk%+?DQR6QaJ);YiUZYSRld zXdJu6eu8t{+ZfTW6a@E<8fiK?Gawe#UQ?$#5ic@8>37|w86*VM+?DC#RABlt?P*VJ zY&;*Cm>Ae@))=~VgH~d|^+(`koLIz)q_2^no%C1vh?t<~4wI@L8iMcSXAm+^`Y!Bt z(z80|V-bQo&6hr(2F$tVOZX=S{dylF_Jyj-DqY|FYq{6*+kdb#H-AE3$I{O(BBCeh zt9Fx8%0Kdc9{Usz8=L$z#&{v0_I2CAID|8n_>gvYYb)yiM5^*sQXv>Tc#rJos!#Op zkuPBo7Ksr^VTW*@N_vw7&`VdOY3``Lmg0jZEK|S|kucn&7gV^&EopTNUTPZ1{%8?B z%Rm23@abmX$fpQNK8sm@Zt+C+@r5}lHMN#V6Z1LhNg^)a%+a#5i2EN3*Rn!Gs}i`0 zcthv}YT_qvFo)1wmyx+$t10BnxzH&Ec_0^I-Dk<@d%nocbF>nIzw#St8f%a*5U1hl zNcgjtbK`H>3u?je16$>^xo+=3#l%^Woq>2Fax7|sP?t<_gR0kC^lt)Z3VEa z46C;pEe{z zctej-RN3fn`|;y7)F}rZ2Azt8i@d37kBErK!Ylp#TQva0Dj&7jVpbB>WR|W_8I1*% z{|Vw$@~{uOB8p!Z>0`)`0449Hw>ZK3$~ZWaL9BSpk<<0Gl{+C;%mZEH4nH-#?%uZ+puEfgYzPPJACjQA`H3 z{d`tMc>2ipYCL7z`tkz%voo5F{LRhL57%xy1@vH}{FfJR2?B8~Wrg~w13iwUZx54q zaiq)+&wusYH zCI!`B)`RG%s0B{>qjq@}m3F6I(c9eI+-2gTF;Zao7v!-vX8=6@x_R%ayM39f5HD%< z)MI3HVuJ88$r|Y3Z<1ZfqMf?fPZVpDUy=y}Pv{r)e$AHT0G zz4TKOkSEq8`S3*W`fBZWz^mq>?N`DL+kktiN)Ccp`ck}sOiuRC0HA5NJj@-6n7M-w zMQ0WKG&BQ5h*1p6{nuGW#v`NODe39qfT%y4`GuCmm;zt*Q%MQ8qod=e2$!wN7d+CY zr?IYjdMSS~VDgsO$98gZQj$?J;MQGdgXo5%A5Zz^uGCQ49^Qh!>oUOUZM!i$`VuSi zu`hXJ-$K$*zr^>*=q~kg+h6M=U<4qTF;lWIFGXxv$s%z%6#Qj2?Kx>6?rN4Hf(P{~ zK=okzoi(?|hyR+0`vp#s`uo4w@b$?orHD0iUu8k0JU4+{{Q7N0JBD1QI6W4UkT(!Z z%;miSPG@4W7kPNr`zNw4pKX>Tc*APHJNpksHy!EyrB&DtTU;(iTa-taaUD5HNB+{RKYQ}|VW{_^6i z#9}>*7d-J$px18;E#Xtdr6W+ZdjUw8b9mf0cu=L0x`C>T=D#-40kyTY1q-si2Kxq# zyu2g|@mx|S+eK^?=pxb2O$|E=@9i$*wISGy9ZohL2S2AR*y88P5+f6JWPPg z!0&hAJvSs}8N{fn7G&h{TY%BKeo|dtfulBJRO))XSbNr{g_r+%v)vS$$%Qg6NbNc= zEC0@~C+RIfx3Mo@g^m~|#mWb8C}RT(-D(?RYk8D*r3JB`p5AZ3mh%RaVa9cQX&y@t zo=^ z@6BXJUGq_TX?(@pue^hAP-&I`Ukao!xZj`wJQ|My^X1AsJ>rraUou(1HVV}rO5Ysy zgglp!Edr&eZ2^X25xE(Z&q&Ey|NbBn{|Yq@`k6H-=~K{!1#$+)My5nF0xI7dURi7Z zy-MaiT4u&^$>2Gm32%6wMJrGuSV6@ur-NdVRQ@CGh%siNkGEcV?9!`?Nf{FTdtye%;mn-wBX3&RXykXiObNwF4rxRVczhpcgVLO6b`|;#z-n^ko)w#TRHhWUKlL%G( zowaExKAs*n58#l8sH_4AJ09z1^hxcS@%)Z~B8LL`g8X`5d!X&kn^bqR2}dCYbLX(V(ZRBCDG=7||=RvA~o zDZtRO{rr9A(MLG)*_kk_1bdmlnF9XfS zX1$A0!Rh<+5GHnxkCw_ABo96J`qdU6U^-veW znT*~hsM@FFc}-g=*7d2jQPBts8sw%j9h^ThoL^Ii&&i5DD}y!# z(Kk5b>)#BGzHhd^_dz7<{D23WKbxR|-T(W_3^uZYZ1+oT)`Cfh)k#&~K|h~T zSyj@lzdIXC|w1x z!W;rCLV0vQS*Hn*7dKW~4FMONuRfVn-hH}~v!;UbtJ~pQVl6YLis^^B)9D-S3vn$C z0qu(#*v!&2_Y}xGnV+24GQu3TAchEUo^%4fE@K58eU2|YY(G;jbC-4s%apANBIMfkdTy! zR4Iv%_4H=!t;y@?V0z+Es#AIqda56{j@pK+#D98ea)QroeE{NBea;rH zLG(`EZ++jGK*>Kbkdx}@_+?rlhB2M;qyN5>V~LIIcly2KeRl3uMSUo^*9437FrA`7 z{b()5us$A(>3+3SALZZ2Qvpf7a*RYJy^@P<{Wq(lv_^58s&sdpCwHHFFR*wz6G1j* z=)CUCc<&Wku-9RSb&nUKFTWnH0teN_VM9u_m1H-uc)7?-R_j&9ij>f?71 zPClNL(^)&-1c&l*2HjEQIZ{-pI&WCyq zp&0O9_}SeJS@oasWfyh+{rY(>NJG`dpowaksxV(Fle6mXxfKg;k&Syaq6}^KXvJ7R zacOFrSK5t1Lt@`8r@dZz=1jFAD%>*XE>Wlfj z!HS@_kboWQ)HBE4i)_5j%SSd-!WovBx#O8|zn{+zUUm3_nFX(C-DJ!*}QjjjGoB57ROK!z`jK}Z6!VHYKmy6AYgbZ{vs0D5A!`!OI zY8(Qz25xgRIuirF_fs>`-LGf~8THw{ zhwY=c(}!5y_3Ow!XPVHq_suUyL`MggQqQ?BwH}pPt{Zp+!)5lU5+S4n5AcJ2^P=uX zctP?-926+X@HHZ6n2tK~Rbv@Ycjhk~08C_KQzYx5S>rMP`Rh~Ww(#^v!#AbgjE!rV zT-15&;=MoI&^~ZzYw8`jtsHg_@1B)EFgg$RXD47}8St(2zVL7$?roY@4)NRXyY6xG z&+GI{uLD@6Mc+fN9_7D>yONi_K4kzd^a$=RT;V4h7)_1Qf%m|UPm3$i4-`6 zx9@++&vbap;Gh?D=j?bsa4r4dkD*{vHWuWF_H~!jUKZ0Fk|BYv>p_0iw$Z37!dSvM zXv5!8?|o!4OC#+1wj+l1@6i!Oq+WG(b#s9)7&`~UxInYvqlR;om@!2k;tScw%&&T9 z_tNgK8%%A7b^*1|9~<%06p@AjxA$Lmh5FPu`IN}M>gwrfN*Q6iOj|daleoihZ&N4i zZ>KP^-#X6e(dy^w;^evhSZZVC1TchvTU8h%RKLZx_ah%CgFe9Mp{5U1@_?i3fmy*&NMW>5^ zCI5lDQSXy3P;!0sRk8q}^MoJe;~TZKDIG&$9tMF^7}rddZ3C@Z$J`onA+Fq)JzmQ+ zA+-E&B%R|IhBOV@z(-3jwn4vh-j(Lvas-eXoOvwyGD-3wN?i za-7SKrakXX8_@ne*l9TjGIOJ4q{}UJu0f=^yuQ1wy*1tk%&vB)5AunM+W;08Y0mHN z$@l%tUYy9wOL%{C3Re{Ea(~{<_)bZAJ~xmvS~`&0;8i8-sM*bW8iG3Tcu89uU$@}5 z824#m;D7>D0L{630txX24F!m-Z2zY%MBdtzL+k4!QVF_Vzc_!a^ydZ_R4Wt#?-GoF z-6YF!cQWceT|-RUl2S6j4RC->kfiifQ`NfB8nF3p;n4+B5y2GljU)Y!_Kwt_FqOHl zmd`{)CI-$wQHJ{oY_yIJ7n|nC#!1dt4<6OIWtsf0wESwJlJcCGr_6y;R0sY+kA$S0 z7RZb2xTS6oTLEQ@M%(6Pu|X`8;C zU-|6MYzz|p6S&x@#-t|w8p&z`+nL7hs%7v)AY6vTYTH!UZD{zA6v0a05oGeoG zH98(pxo%DeWd8X4t>JN{%@{$M!;VCZ=j_MZExq{w6DuH4WMq2st*T+gEA%uip1wRb z9d@e!YWPOwa4X>a24$5sXjS3?4`0$hb5GKJgT#DJzwUquXpZ6W5ZY&XvZ~ZPe;Trg z8dhkpDxW-o=KqZFptm-m(xQrMsVNVCBbA=@8SFQj8c&t^5E2`~NE8%8pN#&9Zhw17 zs=lQyB0AY}-jSPb^y`RF5}jS8_agKSr198{wN1%adA}<2iWo(ieBcFB7{{p6*? zANac_{Xx4}OWh>(upu_heM&;gtSlLw@u)A4uPHyx^Ubk-mF>VS0Kmt}o^TTB&&(GV z7LHarFfc18eE2SXw{?e}o_<05$I}HW#BSZqZ(j(or;rkO(SCMzcHsAd(Dah@$*dV% zGpRmPGVDJ_cop&gJ|~OhK?Gg)qRSY|g`V4X9+0GK?B6Tv-t<5vN)Dwan(r*@wHb!eG15OoSXNPnmkKz2oe7GlLj-7Xw4kS0q z9g$kGA|x508uj=2i=pp81B%MD|*3laykcX3%lUCo!hMZS^8`T|MoLS5mupPeC11MTa-8rw=`Rol3$$;t_ z$t;~;Y!M6AL%B{*x)S%UU!0gz>r`6>dh9JTsB$f3A>K=BgD(i?W01wcetq+d`ISO) zRHQM}@>R1buloO_PodX;dCAL}aEQY{v8?vy9=pfpc%fV^C}-Kn?dwr^JY_pz;I-ML zVn+Jt8c`-lGwAO+g65dTq}9{UA--gd7Y!Pc-|lXV(4-2>TfX0aWNoc05`|!9A;AoC z#|Oq{4ztLOJ(^J7CBBE&3QBD^NDAq;Ig$gb; zw~b484V2w^HDk@UP#1IzHCQl}{TdS_yD_0zSHAY~##yTnuwTb>ylR1{$6pC2f#byX zF|l_4t$YFWH1|A)4CS0SK+5NcEFQ^ zmzAi}6X+H#_7`vC+od;`$6i+=_US_!Yq2PKSVj&{(oi~|G@-ec(CWqM+Ur-YpYG?C z+xgx5GV3-+?uqAmEu1`fpI$Ba6VL8$R#o*+sfn>;MH1Fv%s z*H(p3A}GgKgWiQH0}xqOWUp&r<#$7UfvapFOhiQFspA3*pVgpjm$0xx2_e>76(VW8 zXvj`XLGcCSw*BYwV*9csK_H0I%+~gaOH7^G;bs4yoD?4our0T21`*6!&Kmk>1sde zU0~-2r0AY<_md0-$66m{30%>M%;&L>98E4sEJI_zExjqVQk^7((_iUk`TA0&7qlrQ zWtg<@N;L@@_}!SEo|aWmc#T5p-+wrG)3-rvw9&8e>w+gtq3canyWMonB9AxE0-M-xq> z$>7&N{x_uT>anK-HSfJ|^qYh;JiB02rqyFo+=wM(k*JLm)%69YB`f0==YO}v7b1aI zYq$a3st!ldx(pSA(bU@ylW-A64c5Zog<4nyO`$K3{wEwWisK-yo=sTUIu+&BsTx?Ih5XCe(nb@ z;ok*ym2YdG!@|O{c;|rPXE2+MdGP z9vcgq(K`XL?Q_b}f#CE@Fsm5oAoA@~4;PoQ9>vj=Aj$1}7s0pbyj8#2F?#dcPfNIe zEjDbNqxJizFIyO#0HLbbAo*9uJCHOFKjJ)ns+w>k{Ik#O0;|;9r$;0nJ1PsN`4@g( zN7oEtK9_#yJ~DQ$vZD$w^9t}-G#ox^6j!qq6ysF`L0uuMsS9iN3!PXr=P=rO{R7+r zmf{ke4Vfe)gQ_0h8FRz-E_?L^e&~w$#8{W+?$}_yFs;!1LvPxLLZhN=p^Wj%auk$^#hpw&V!I4I$jZ198T5}Mb4@>?XNTqjop__(} zt?h@O4|cQ`&#eH}Km>&S99Go@1as@x8Z-?&n4V8O&r?oCuhkm5&jrrfV68%y!Ttb+EsO(2 zQ+CKe_G{+xbE`D^6Ku?YhvNI2I5@wZiCu@9#>~@;&C@)jRYZ0^+0`zRqdrw6@|p%+ z0IfUB&hQ{`%$@RBPPOagO@*Z2AWY>a%?E22*N1ZlT4F{(~J(i&HDF;wEa zSUt{8a}8(Ba1(}0io7N~%%n!jCqooS)~#Lf>bRO7ac~h-J^t*ul|hyihIRNbVipf< zg(brV{Pye5ckreAfi|drpA`fG5dx|YgFxp2MfLk-`~c0lb{)n<{zo| zw6Yp_z6=E_R_{A|c+}GRojYLn^Tl08TqkS=L16C*1=w$3|n8q|$WnJ)uN#8G{G?%NWDVw^EsleBy7Wmi%x`D zqY5GB;^L?gW9@nY-oCR5&IfK1_Wj$BSs!p8wI8QRR$;yOW?XF$q8MKAF|juu(FJ7Z zaW;<7#lXr9|D6eu``}Czqo&tRU1&TOBJBt=ab?jlMWtpE`(E7LqeHHRW0v2d8cd`g7c;(Ml!$ zCQd>`bL2x5Dzq?UCSHD+#h||bY}ef|Th%=oxzX`+^_+0g`NfOpR!NRRSiKkeD)?dG z<4PiGMsnW&CaJg0VXbA4t+H90K?4fe6Utvx=|*#LWevJs8)aXp&GUH8nz;yjdDHij zXU^LK4Ph`CdL4;z2CK)2y(M=S1x)#^w1cwMur>{=N?-j40#du?;%A9ocOP5{7jD(e z-xIX$yDo&ejZ^B|mqN0gEiT1P%5IE zHK`3m!OBZ^&-lXEp5fqpsM@isxOZ`gYOG~LNYc;c;rQ}b1$9a$p*;Dd&HV#jZRUn^J58ulapp3E(r;U!JBlS{u4O>KL4UUt@?;eAtU zI2$3kJ$_)Ue&q$*f~|^{6h|Zz%;A4hc^X`&wABNC-ASMX-n01-ThwM~X5$@ZwcW`iC?n#XfeR>BzK+q5q zqSS7BDJwYnJ^=Bj97a{#bPfXFa#H^UK^VF6kezR%0AW9GxH&@h9u=SLZ5rnYAQQJC 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 E06W^nApigX diff --git a/docs/developer/system/c4l1.png b/docs/developer/system/c4l1.png deleted file mode 100644 index bb981411d5719397546a167fc1209e36f5f6c33a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93316 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 R*dxPMy{f5PsB}B<{{d#JAD#dJ diff --git a/docs/developer/system/c4l3.png b/docs/developer/system/c4l3.png deleted file mode 100644 index 13b1099ccc2c012ba9c5604a2a8ac34731faa606..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229767 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ξE1J@kw&(?;Tt4*X^a6!#e@vLgq+1 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�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 Ar2qf` diff --git a/docs/developer/system/client.md b/docs/developer/system/client.md deleted file mode 100644 index f715a3b1d..000000000 --- a/docs/developer/system/client.md +++ /dev/null @@ -1,13 +0,0 @@ -# Website - -The -[Website](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/client#readme) -is how the end-users interact with the software platform. - -This is the Client side (frontend) for Digital Twin -as a Service (DTaaS) software. The software provides -a React single page web application for the Digital Twin support platform. - -## Client Architecture - -![Client architecture](package-diagram.png) \ No newline at end of file diff --git a/docs/developer/system/lib-ms.md b/docs/developer/system/lib-ms.md deleted file mode 100644 index 0ec61c343..000000000 --- a/docs/developer/system/lib-ms.md +++ /dev/null @@ -1,167 +0,0 @@ -# Library Microservice - -[The Library Microservices](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/lib#readme) -fulfil the core requirements of the system. The microservices are complementary and composable. - -The service mesh enables discovery of microservices, -load balancing and authentication functionalities. -There are microservices for catering to author, store, explore, -configure, execute and scenario analysis requirements. - -## Lib-MS Architecture - -### Class Architecture - -```mermaid -classDiagram - class FilesResolver { - -filesService: IFilesService - +listDirectory(path: string): Promise - +readFile(path: string): Promise - } - - class FilesServiceFactory { - -configService: ConfigService - -gitlabFilesService: GitlabFilesService - -localFilesService: LocalFilesService - +create(): IFilesService - } - - class GitlabFilesService { - -configService: ConfigService - -parseArguments(path: string): Promise - -sendRequest(query: string): Promise - -executeQuery(path: string, getQuery: QueryFunction): Promise - +listDirectory(path: string): Promise - +readFile(path: string): Promise - } - - class LocalFilesService { - -configService: ConfigService - -getFileStats(fullPath: string, file: string): Promise - +listDirectory(path: string): Promise - +readFile(path: string): Promise - } - - class ConfigService { - +get(propertyPath: string): any - } - - class IFilesService{ - listDirectory(path: string): Promise - readFile(path: string): Promise - } - - IFilesService <|-- FilesResolver: uses - IFilesService <|.. GitlabFilesService: implements - IFilesService <|.. LocalFilesService: implements - IFilesService <|-- FilesServiceFactory: creates - ConfigService <|-- FilesServiceFactory: uses - ConfigService <|-- GitlabFilesService: uses - ConfigService <|-- LocalFilesService: uses -``` - -### Sequence Architecture - -```mermaid -sequenceDiagram - actor Client - actor Traefik - - box LightGreen Library Microservice - participant FR as FilesResolver - participant FSF as FilesServiceFactory - participant CS as ConfigService - participant IFS as IFilesService - participant LFS as LocalFilesService - participant GFS as GitlabFilesService - end - - participant FS as Local File System DB - participant GAPI as GitLab API DB - - Client ->> Traefik : HTTP request - Traefik ->> FR : GraphQL query - activate FR - - FR ->> FSF : create() - activate FSF - - FSF ->> CS : getConfiguration("MODE") - activate CS - - CS -->> FSF : return configuration value - deactivate CS - - alt MODE = Local - FSF ->> FR : return filesService (LFS) - deactivate FSF - - FR ->> IFS : listDirectory(path) or readFile(path) - activate IFS - - IFS ->> LFS : listDirectory(path) or readFile(path) - activate LFS - - LFS ->> CS : getConfiguration("LOCAL_PATH") - activate CS - - CS -->> LFS : return local path - deactivate CS - - LFS ->> FS : Access filesystem - alt Filesystem error - FS -->> LFS : Filesystem error - LFS ->> LFS : Throw new InternalServerErrorException - LFS -->> IFS : Error - else Successful file operation - FS -->> LFS : Return filesystem data - LFS ->> IFS : return Promise - end - deactivate LFS - else MODE = GitLab - FSF ->> FR : return filesService (GFS) - %%deactivate FSF - - FR ->> IFS : listDirectory(path) or readFile(path) - activate IFS - - IFS ->> GFS : listDirectory(path) or readFile(path) - activate GFS - - GFS ->> GFS : parseArguments(path) - GFS ->> GFS : executeQuery() - - GFS ->> CS : getConfiguration("GITLAB_API_URL", "GITLAB_TOKEN") - activate CS - - CS -->> GFS : return GitLab API URL and Token - deactivate CS - - GFS ->> GAPI : sendRequest() - alt GitLab API error - GAPI -->> GFS : API error - GFS ->> GFS : Throw new Error("Invalid query") - GFS -->> IFS : Error - else Successful GitLab API operation - GAPI -->> GFS : Return API response - GFS ->> IFS : return Promise - end - deactivate GFS - end - - alt Error thrown - IFS ->> FR : return Error - deactivate IFS - FR ->> Traefik : return Error - Traefik ->> Client : HTTP error response - else Successful operation - IFS ->> FR : return Promise - deactivate IFS - FR ->> Traefik : return Promise - Traefik ->> Client : HTTP response - end - - deactivate FR - -``` diff --git a/docs/developer/system/package-diagram.png b/docs/developer/system/package-diagram.png deleted file mode 100644 index bf2a0996d3a52fa70659c9cabb57b25cd492964b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66667 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 From 41ef511def4795bbac548d009c01ca1840c6a62e Mon Sep 17 00:00:00 2001 From: Asti Date: Sun, 1 Oct 2023 14:54:51 +0530 Subject: [PATCH 30/35] Sync2 --- docs/developer/system/architecture.png | Bin 0 -> 170755 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/developer/system/architecture.png diff --git a/docs/developer/system/architecture.png b/docs/developer/system/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..49151cd88ba2cd2226a255fe732866b646ee9546 GIT binary patch literal 170755 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%0D0t|>8>#mk^bxuA5xN!+fcyH%ExEj( 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 Date: Tue, 3 Oct 2023 06:04:36 +0530 Subject: [PATCH 31/35] Doc Issues 8 --- client/LICENSE.md | 242 ++++++++++++------------ client/test/README.md | 4 +- docs/LICENSE.md | 14 +- docs/admin/client/CLIENT.md | 3 - docs/admin/servers/lib/LIB-MS.md | 8 +- docs/admin/services.md | 7 +- docs/developer/index.md | 48 +++-- docs/developer/servers/lib/lib-ms.md | 4 +- docs/developer/system/architecture.md | 77 ++++---- docs/developer/system/current-status.md | 2 +- docs/developer/testing/intro.md | 27 +-- docs/index.md | 9 +- docs/user/digital-twins/create.md | 40 ++-- docs/user/features.md | 9 +- docs/user/motivation.md | 3 +- docs/user/servers/lib/LIB-MS.md | 5 + docs/user/website/index.md | 11 +- servers/execution/runner/LICENSE.md | 2 + servers/lib/LICENSE.md | 2 + 19 files changed, 260 insertions(+), 257 deletions(-) diff --git a/client/LICENSE.md b/client/LICENSE.md index c9f0bf1f0..c0ad1333c 100644 --- a/client/LICENSE.md +++ b/client/LICENSE.md @@ -4,90 +4,82 @@ /* - * This file is part of the INTO-CPS Association. - - * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), - * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, - * Finlandsgade 22, 8200 Aarhus N, Denmark. - - * All rights reserved. - - * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR - * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. - * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES - * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR - * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - - * The INTO-CPS tool suite software and the INTO-CPS Association - * Public License (ICAPL) are obtained from the INTO-CPS Association, either - * from the above address, from the URLs: - * http://www.into-cps.org or - * in the INTO-CPS tool suite distribution. - * GNU version 3 is obtained from: - * http://www.gnu.org/copyleft/gpl.html. - - * This program is distributed WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH - * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF - * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - - * See the full ICAPL conditions for more details. +* This file is part of the INTO-CPS Association. + +* Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), +* c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, +* Finlandsgade 22, 8200 Aarhus N, Denmark. + +* All rights reserved. + +* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR +* THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. +* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES +* RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR +* THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. + +* The INTO-CPS tool suite software and the INTO-CPS Association +* Public License (ICAPL) are obtained from the INTO-CPS Association, either +* from the above address, from the URLs: http://www.into-cps.org or +* in the INTO-CPS tool suite distribution. +* GNU version 3 is obtained from: +* http://www.gnu.org/copyleft/gpl.html. + +* This program is distributed WITHOUT ANY WARRANTY; without +* even the implied warranty of MERCHANTABILITY or FITNESS +* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH +* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF +* THE INTO-CPS ASSOCIATION PUBLIC LICENSE. + +* See the full ICAPL conditions for more details. */ --- End of INTO-CPS Association Public License Header --- -The ICAPL is a public license for the INTO-CPS tool suite with three -modes/alternatives +The ICAPL is a public license for the INTO-CPS tool +suite with three modes/alternatives (GPL, ICA-Internal-EPL, ICA-External-EPL) for use and redistribution, in source and/or binary/object-code form: -* GPL. Any party (member or non-member of the INTO-CPS Association) may - use and +* GPL. Any party (member or non-member of the INTO-CPS Association) may use and redistribute INTO-CPS tool suite under GPL version 3. -* Silver Level members of the INTO-CPS Association may also use and - redistribute the INTO-CPS tool suite under ICA-Internal-EPL conditions. +* Silver Level members of the INTO-CPS Association may also use and redistribute + the INTO-CPS tool suite under ICA-Internal-EPL conditions. -* Gold Level members of the INTO-CPS Association may also use and - redistribute - The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL - conditions. +* Gold Level members of the INTO-CPS Association may also use and redistribute + The INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions. Definitions of the INTO-CPS Association Public license modes: * GPL = GPL version 3. -* ICA-Internal-EPL = These INTO-CPA Association Public license conditions - together with - Internally restricted EPL, i.e., EPL version 1.0 with the Additional - Condition - that use and redistribution by a member of the INTO-CPS Association - is only allowed - within the INTO-CPS Association member's own organization (i.e., - its own legal entity), - or for a member of the INTO-CPS Association paying a membership fee - corresponding to - the size of the organization including all its affiliates, use and - redistribution is allowed within/between its affiliates. - -* ICA-External-EPL = These INTO-CPA Association Public license - conditions together with - Externally restricted EPL, i.e., EPL version 1.0 with the Additional - Condition - that use and redistribution by a member of the INTO-CPS Association, - or by a Licensed +* ICA-Internal-EPL = These INTO-CPA Association Public + license conditions together with + Internally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association is only allowed + within the INTO-CPS Association member's own + organization (i.e., its own legal entity), + or for a member of the INTO-CPS Association + paying a membership fee corresponding to + the size of the organization including all its affiliates, use and redistribution + is allowed within/between its affiliates. + +* ICA-External-EPL = These INTO-CPA Association Public + license conditions together with + Externally restricted EPL, i.e., EPL version 1.0 with the Additional Condition + that use and redistribution by a member of the INTO-CPS Association, or by a Licensed Third Party Distributor having a redistribution agreement with that member, - to parties external to the INTO-CPS Association member’s own organization - (i.e., its own legal entity) is only allowed in binary/object-code - form, except the case of - redistribution to other members the INTO-CPS Association to which - source is also allowed to be distributed. + to parties external to the INTO-CPS Association + member’s own organization (i.e., its own + legal entity) is only allowed in binary/object-code form, except the case of + redistribution to other members the INTO-CPS Association to which source is also + allowed to be distributed. [This has the consequence that an external party who wishes to use -the INTO-CPS Association in source form together with its own -proprietary software in all +the INTO-CPS Association in source form together with +its own proprietary software in all cases must be a member of the INTO-CPS Association]. In all cases of usage and redistribution by recipients, the following @@ -99,18 +91,18 @@ a) Redistributions of source code must retain the above copyright notice, and easily located place in the redistribution. b) Redistributions in binary/object-code form must reproduce the above - copyright notice, all definitions, and conditions. It is sufficient - if the ICAPL Header and the location in the redistribution of the full - ICAPL are present in the documentation and/or other materials provided - with the redistribution, if the full ICAPL is available in a prominent - and easily located place in the redistribution. + copyright notice, all definitions, and conditions. It is sufficient if the + ICAPL Header and the location in the redistribution of the full ICAPL + are present in the documentation and/or other materials provided with the + redistribution, if the full ICAPL is available in a prominent and easily + located place in the redistribution. c) A recipient must clearly indicate its chosen usage mode of ICAPL, in accompanying documentation and in a text file ICA-USAGE-MODE.txt, provided with the distribution. -d) Contributor(s) making a Contribution to the INTO-CPS Association - thereby also makes a +d) Contributor(s) making a Contribution to the + INTO-CPS Association thereby also makes a Transfer of Contribution Copyright. In return, upon the effective date of the transfer, ICA grants the Contributor(s) a Contribution License of the Contribution. ICA has the right to accept or refuse Contributions. @@ -128,44 +120,46 @@ ICA-Internal-EPL and ICA-External-EPL. INTO-CPS Association Public License version 1.0, i.e., the license defined here (the text between "--- Start of Definition of INTO-CPS Association Public License ---" and -"--- End of Definition of INTO-CPS Association Public License ---", or -later versions thereof. +"--- End of Definition of INTO-CPS Association +Public License ---", or later versions thereof. "ICAPL Header" means: INTO-CPS Association Public License Header version 1.2, i.e., the -text between "--- Start of Definition of INTO-CPS Association Public License ----" and -"--- End of INTO-CPS Association Public License Header ---, or later versions -thereof. +text between "--- Start of Definition +of INTO-CPS Association Public License ---" and +"--- End of INTO-CPS Association Public License Header ---, or later versions thereof. "Contribution" means: -a) in the case of the initial Contributor, the initial code and documentation +a) in the case of the initial Contributor, + the initial code and documentation distributed under ICAPL, and b) in the case of each subsequent Contributor: i) changes to the INTO-CPS tool suite, and ii) additions to the INTO-CPS tool suite; -where such changes and/or additions to the INTO-CPS tool suite originate from -and are -distributed by that particular Contributor. A Contribution 'originates' from -a Contributor if it was added to the INTO-CPS tool suite by such Contributor -itself or anyone acting on such Contributor's behalf. +where such changes and/or additions +to the INTO-CPS tool suite originate from and are +distributed by that particular Contributor. +A Contribution 'originates' from +a Contributor if it was added to the INTO-CPS +tool suite by such Contributor itself or +anyone acting on such Contributor's behalf. For Contributors licensing the INTO-CPS tool suite under ICA-Internal-EPL or ICA-External-EPL conditions, the following conditions also hold: Contributions do not include additions to the distributed Program which: (i) -are separate modules of software distributed in conjunction with the -INTO-CPS tool suite under their own license agreement, (ii) are separate -modules which are not derivative works of the INTO-CPS tool suite, and (iii) -are separate modules of software distributed in conjunction with the -INTO-CPS tool suite under their own license agreement -where these separate modules are merged with (weaved together with) -modules of The INTO-CPS tool suite to form new modules that are -distributed as object code or source +are separate modules of software distributed +in conjunction with the INTO-CPS tool suite +under their own license agreement, (ii) are separate modules which are not +derivative works of the INTO-CPS tool suite, and (iii) are separate modules of software +distributed in conjunction with the INTO-CPS tool suite under their own license agreement +where these separate modules are merged with (weaved together with) modules of +The INTO-CPS tool suite to form new modules +that are distributed as object code or source code under their own license agreement, as allowed under the Additional Condition of internal distribution according to ICA-Internal-EPL and/or Additional Condition for external distribution according to ICA-External-EPL. @@ -173,22 +167,22 @@ Additional Condition for external distribution according to ICA-External-EPL. "Transfer of Contribution Copyright" means that the Contributors of a Contribution transfer the ownership and the copyright of the Contribution to the INTO-CPS Association, the INTO-CPS Association Copyright owner, for -inclusion in the INTO-CPS tool suite. The transfer takes place upon the -effective date -when the Contribution is made available on the INTO-CPS Association web site -under ICAPL, by +inclusion in the INTO-CPS tool suite. +The transfer takes place upon the effective date +when the Contribution is made available on the +INTO-CPS Association web site under ICAPL, by such Contributors themselves or anyone acting on such Contributors' behalf. -The transfer is free of charge. If the Contributors or the INTO-CPS -Association so wish, -an optional Copyright transfer agreement can be signed between the INTO-CPS -Association and the Contributors. - -"Contribution License" means a license from the INTO-CPS Association to the -Contributors of the Contribution, effective on the date of the Transfer of -Contribution Copyright, -where the INTO-CPS Association grants the Contributors a non-exclusive, -world-wide, transferable, free of charge, perpetual license, including -sublicensing rights, to use, +The transfer is free of charge. If the +Contributors or the INTO-CPS Association so wish, +an optional Copyright transfer agreement can be signed +between the INTO-CPS Association and the Contributors. + +"Contribution License" means a license from the INTO-CPS +Association to the Contributors of the Contribution, effective +on the date of the Transfer of Contribution Copyright, +where the INTO-CPS Association grants the Contributors a +non-exclusive, world-wide, transferable, free of charge, +perpetual license, including sublicensing rights, to use, have used, modify, have modified, reproduce and or have reproduced the contributed material, for business and other purposes, including but not limited to evaluation, development, testing, integration and merging with @@ -200,8 +194,8 @@ the INTO-CPS tool chain. "The Program" means the Contributions distributed in accordance with ICAPL. -"The INTO-CPS tool chain" means the Contributions distributed in accordance -with ICAPL. +"The INTO-CPS tool chain" means the Contributions +distributed in accordance with ICAPL. "Recipient" means anyone who receives the INTO-CPS tool chain under ICAPL, including all Contributors. @@ -227,17 +221,15 @@ voting securities, by contract or otherwise. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THE BY RECIPIENT SELECTED SUBSIDIARY -LICENSE CONDITIONS OF ICAPL, THE INTO-CPS ASSOCIATION IS PROVIDED ON AN -"AS IS" +LICENSE CONDITIONS OF ICAPL, THE INTO-CPS ASSOCIATION IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the INTO-CPS tool suite and -assumes all risks +appropriateness of using and distributing the +INTO-CPS tool suite and assumes all risks associated with its exercise of rights under ICAPL , including but not -limited to the risks and costs of program errors, compliance -with applicable +limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. @@ -258,10 +250,9 @@ ICA-External-EPL may choose to distribute (parts of) the INTO-CPS tool suite in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of ICAPL; or for the case of -redistribution of the INTO-CPS tool suite together with proprietary code -it is a dual -license where the INTO-CPS tool suite parts are distributed under -ICAPL compatible +redistribution of the INTO-CPS tool suite +together with proprietary code it is a dual +license where the INTO-CPS tool suite parts are distributed under ICAPL compatible conditions and the proprietary code is distributed under proprietary license conditions; and @@ -273,10 +264,11 @@ and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; - iii) states that any provisions which differ from ICAPL are offered by that + iii) states that any provisions which differ + from ICAPL are offered by that Contributor alone and not by any other party; and - iv) states from where the source code for the INTO-CPS tool suite is - available, and + iv) states from where the source code + for the INTO-CPS tool suite is available, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. @@ -300,12 +292,10 @@ for all disagreements related to this Agreement, is Aarhus, Denmark. The EPL 1.0 license definition has been obtained from: http://www.eclipse.org/legal/epl-v10.html. -It is also reproduced in the -INTO-CPS distribution. +It is also reproduced in the INTO-CPS distribution. The GPL Version 3 license definition has been obtained from http://www.gnu.org/copyleft/gpl.html. -It is also reproduced in the INTO-CPS -distribution. +It is also reproduced in the INTO-CPS distribution. --- End of Definition of INTO-CPS Association Public License --- diff --git a/client/test/README.md b/client/test/README.md index 543ac7aee..dd62cfd60 100644 --- a/client/test/README.md +++ b/client/test/README.md @@ -114,7 +114,7 @@ window.env = { }; ``` -## test/.env +## test/.env - localhost ```ini REACT_APP_TEST_USERNAME=TestUsername @@ -156,7 +156,7 @@ window.env = { }; ``` -## test/.env +## test/.env - Integration server ```ini REACT_APP_TEST_USERNAME=TestUsername diff --git a/docs/LICENSE.md b/docs/LICENSE.md index 663f04b45..00cda86b7 100644 --- a/docs/LICENSE.md +++ b/docs/LICENSE.md @@ -1,33 +1,35 @@ +# License + --- Start of Definition of INTO-CPS Association Public License --- /* * This file is part of the INTO-CPS Association. - + * Copyright (c) 2017-CurrentYear, INTO-CPS Association (ICA), * c/o Peter Gorm Larsen, Aarhus University, Department of Engineering, * Finlandsgade 22, 8200 Aarhus N, Denmark. - + * All rights reserved. - + * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR * THIS INTO-CPS ASSOCIATION PUBLIC LICENSE (ICAPL) VERSION 1.0. * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES * RECIPIENT'S ACCEPTANCE OF THE INTO-CPS ASSOCIATION PUBLIC LICENSE OR * THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE. - + * The INTO-CPS tool suite software and the INTO-CPS Association * Public License (ICAPL) are obtained from the INTO-CPS Association, either * from the above address, from the URLs: http://www.into-cps.org or * in the INTO-CPS tool suite distribution. * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html. - + * This program is distributed WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF * THE INTO-CPS ASSOCIATION PUBLIC LICENSE. - + * See the full ICAPL conditions for more details. */ diff --git a/docs/admin/client/CLIENT.md b/docs/admin/client/CLIENT.md index 98fe026ee..7a611e143 100644 --- a/docs/admin/client/CLIENT.md +++ b/docs/admin/client/CLIENT.md @@ -29,7 +29,6 @@ To host DTaaS client website on your server, follow these steps: REACT_APP_WORKBENCHLINK_JUPYTERLAB: "Endpoint for the Jupyter Lab link", REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: "Endpoint for the Jupyter Notebook link", - REACT_APP_CLIENT_ID: 'AppID genereated by the gitlab OAuth provider', REACT_APP_AUTH_AUTHORITY: 'URL of the private gitlab instance', REACT_APP_REDIRECT_URI: 'URL of the homepage for the logged in users of the website', @@ -49,7 +48,6 @@ To host DTaaS client website on your server, follow these steps: REACT_APP_WORKBENCHLINK_VSCODE: '/tools/vscode/', REACT_APP_WORKBENCHLINK_JUPYTERLAB: '/lab', REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: '', - REACT_APP_CLIENT_ID: '934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0', REACT_APP_AUTH_AUTHORITY: 'https://gitlab.foo.com/', REACT_APP_REDIRECT_URI: 'https://foo.com/Library', @@ -70,7 +68,6 @@ To host DTaaS client website on your server, follow these steps: REACT_APP_WORKBENCHLINK_VSCODE: '/tools/vscode/', REACT_APP_WORKBENCHLINK_JUPYTERLAB: '/lab', REACT_APP_WORKBENCHLINK_JUPYTERNOTEBOOK: '', - REACT_APP_CLIENT_ID: '934b98f03f1b6f743832b2840bf7cccaed93c3bfe579093dd0942a433691ccc0', REACT_APP_AUTH_AUTHORITY: 'https://gitlab.foo.com/', REACT_APP_REDIRECT_URI: 'https://foo.com/bar/Library', diff --git a/docs/admin/servers/lib/LIB-MS.md b/docs/admin/servers/lib/LIB-MS.md index f501cf5c4..9e86daa0b 100644 --- a/docs/admin/servers/lib/LIB-MS.md +++ b/docs/admin/servers/lib/LIB-MS.md @@ -288,9 +288,7 @@ POST /lib HTTP/1.1 Host: localhost:4001 Content-Type: application/json Content-Length: 388 -{ - "query":"query {\n listDirectory(path: \"user1\") {\n repository {\n tree {\n blobs {\n edges {\n node {\n name\n type\n }\n }\n }\n trees {\n edges {\n node {\n name\n type\n }\n }\n }\n }\n }\n }\n}" -} +{"query":"query {\n listDirectory(path: \"user1\") {\n repository {\n tree {\n blobs {\n edges {\n node {\n name\n type\n }\n }\n }\n trees {\n edges {\n node {\n name\n type\n }\n }\n }\n }\n }\n }\n}"} ``` This HTTP POST request will generate the following HTTP response message. @@ -318,9 +316,7 @@ POST /lib HTTP/1.1 Host: localhost:4001 Content-Type: application/json Content-Length: 217 -{ - "query":"query {\n readFile(path: \"user2/data/welcome.txt\") {\n repository {\n blobs {\n nodes {\n name\n rawBlob\n rawTextBlob\n }\n }\n }\n }\n}" -} +{"query":"query {\n readFile(path: \"user2/data/welcome.txt\") {\n repository {\n blobs {\n nodes {\n name\n rawBlob\n rawTextBlob\n }\n }\n }\n }\n}"} ``` ```http diff --git a/docs/admin/services.md b/docs/admin/services.md index 741695e6b..a96ed4fd8 100644 --- a/docs/admin/services.md +++ b/docs/admin/services.md @@ -51,7 +51,8 @@ docker exec rabbitmq-server rabbitmqctl set_permissions -p "/" ``` The RabbitMQ service requires raw TCP/UDP protocol access to network. -The default Traefik configuration of DTaaS does not permit TCP/UDP traffic. There are two possible choices here: +The default Traefik configuration of DTaaS does not permit +TCP/UDP traffic. There are two possible choices here: * Configure Traefik gateway to permit TCP/UDP traffic * Bypass Traefik altogether for RabbitMQ service @@ -94,7 +95,7 @@ printf "Complete the setup from GUI" The user credentials have also been set in the command as: -**username**: admin +**username**: admin **password**: DTaaSGrafana Remember to change these credentials before starting the docker container. @@ -122,7 +123,7 @@ docker run -d -p 80:8086 \ The user credentials have also been set in the command as: -**username**: dtaas +**username**: dtaas **password**: dtaas1357 Remember to change these credentials before starting the docker container. diff --git a/docs/developer/index.md b/docs/developer/index.md index f4c436779..f0895a60d 100644 --- a/docs/developer/index.md +++ b/docs/developer/index.md @@ -46,27 +46,28 @@ a development workflow is in place. Each developer should follow these steps: 1. Fork of the main repository into your github account. 1. Setup -[Code Climate](https://docs.codeclimate.com/docs/getting-started-with-code-climate) -and -[Codecov](https://docs.codecov.com/docs/quick-start) -for your fork. The codecov does not require secret token -for public repositories. + [Code Climate](https://docs.codeclimate.com/docs/getting-started-with-code-climate) + and + [Codecov](https://docs.codecov.com/docs/quick-start) + for your fork. The codecov does not require secret token + for public repositories. 1. Install git-hooks for the project. 1. Use -[Fork, Branch, PR](https://gun.io/news/2017/01/how-to-github-fork-branch-and-pull-request/) -workflow. + [Fork, Branch, PR](https://gun.io/news/2017/01/how-to-github-fork-branch-and-pull-request/) + workflow. 1. Work in your fork and open a PR from your working branch to your `feature/distributed-demo` branch. -The PR will run all the github actions, code climate and codecov checks. + The PR will run all the github actions, code climate and codecov checks. 1. Resolve all the issues identified in the previous step. 1. If you have access to the -[integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server), -try your working branch on the integration server. + [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server), + try your working branch on the integration server. 1. Once changes are verified, a PR should be made to the `feature/distributed-demo` branch of -the upstream -[DTaaS repository](https://github.com/into-cps-association/DTaaS). + the upstream + [DTaaS repository](https://github.com/into-cps-association/DTaaS). 1. The PR will be merged after checks by either the project administrators or the maintainers. -Remember that every PR should be meaningful and satisfies a well-defined user story or improve +Remember that every PR should be meaningful and satisfies +a well-defined user story or improve the code quality. ## :eye: Code Quality @@ -74,23 +75,32 @@ the code quality. The project code qualities are measured based on: * Linting issues identified by -[Code Climate](https://codeclimate.com/github/INTO-CPS-Association/DTaaS) + [Code Climate](https://codeclimate.com/github/INTO-CPS-Association/DTaaS) * Test coverage report collected by -[Codecov](https://codecov.io/gh/INTO-CPS-Association/DTaaS) + [Codecov](https://codecov.io/gh/INTO-CPS-Association/DTaaS) * Successful [github actions](https://github.com/INTO-CPS-Association/DTaaS/actions) ### Code Climate -Code Climate performs static analysis, linting and style checks. Quality checks are performed by codeclimate are to ensure the best possible quality of code to add to our project. +Code Climate performs static analysis, linting and style checks. +Quality checks are performed by codeclimate are to ensure the best +possible quality of code to add to our project. -While any new issues introduced in your code would be shown in the PR page itself, to address any specific issue, you can visit the issues or code section of the codeclimate page. +While any new issues introduced in your code would be +shown in the PR page itself, to address any specific issue, +you can visit the issues or code section of the codeclimate page. -It is highly recommended that any code you add does not introduce new quality issues. If they are introduced, they should be fixed immediately using the appropriate suggestions from Code Climate, or in worst case, adding a ignore flag (To be used with caution). +It is highly recommended that any code you add does +not introduce new quality issues. If they are introduced, +they should be fixed immediately using the appropriate suggestions +from Code Climate, or in worst case, adding a ignore flag +(To be used with caution). ### Codecov Codecov keeps track of the test coverage for the entire project. -For information about testing and workflow related to that, please see the [testing page](testing/intro.md). +For information about testing and workflow related to that, +please see the [testing page](testing/intro.md). ### Github Actions diff --git a/docs/developer/servers/lib/lib-ms.md b/docs/developer/servers/lib/lib-ms.md index 740b93e55..268e5a9df 100644 --- a/docs/developer/servers/lib/lib-ms.md +++ b/docs/developer/servers/lib/lib-ms.md @@ -77,11 +77,11 @@ classDiagram sequenceDiagram actor Client actor Traefik - + box LightGreen Library Microservice participant FR as FilesResolver participant FSF as FilesServiceFactory - participant CS as ConfigService + participant CS as ConfigService participant IFS as IFilesService participant LFS as LocalFilesService participant GFS as GitlabFilesService diff --git a/docs/developer/system/architecture.md b/docs/developer/system/architecture.md index a6b38176b..d74e64dbc 100644 --- a/docs/developer/system/architecture.md +++ b/docs/developer/system/architecture.md @@ -3,29 +3,33 @@ ## User Requirements The DTaaS software platform users expect a single platform -to support the complete DT lifecycle. To be more precise, the platform users expect the following features: +to support the complete DT lifecycle. To be more precise, +the platform users expect the following features: 1. **Author** – create different assets of the DT on the -platform itself. This step requires use of some software -frameworks and tools whose sole purpose is to author -DT assets. + platform itself. This step requires use of some software + frameworks and tools whose sole purpose is to author + DT assets. 1. **Consolidate** – consolidate the list of available DT assets -and authoring tools so that user can navigate the library -of reusable assets. This functionality requires support -for discovery of available assets. + and authoring tools so that user can navigate the library + of reusable assets. This functionality requires support + for discovery of available assets. 1. **Configure** – support selection and configuration of -DTs. This functionality also requires support for validation of a given configuration. -1. **Execute** – provision computing infrastructure on demand to support execution of a DT. + DTs. This functionality also requires support for validation + of a given configuration. +1. **Execute** – provision computing infrastructure on demand to + support execution of a DT. 1. **Explore** – interact with a DT and explore the results -stored both inside and outside the platform. Exploration -may lead to analytical insights. + stored both inside and outside the platform. Exploration + may lead to analytical insights. 1. **Save** – save the state of a DT that’s already in the -execution phase. This functionality is required for ondemand saving and re-spawning of DTs. + execution phase. This functionality is required for on + demand saving and re-spawning of DTs. 1. **What-if analysis** – explore alternative scenarios to (i) -plan for an optimal next step, (ii) recalibrate new DT -assets, (iii) automated creation of new DTs or their -assets; these newly created DT assets may be used to -perform scientifically valid experiments. + plan for an optimal next step, (ii) recalibrate new DT + assets, (iii) automated creation of new DTs or their + assets; these newly created DT assets may be used to + perform scientifically valid experiments. 1. **Share** – share a DT with other users of their organisation. ## System Architecture @@ -41,7 +45,7 @@ The gateway is a single point of entry for direct access to the platform services. The gateway is responsible for controlling user access to the microservice components. The service mesh enables discovery of microservices, load balancing and authentication -functionalities. +functionalities. In addition, there are microservices for catering to author, store, explore, configure, execute and scenario analysis requirements. @@ -51,30 +55,29 @@ core requirements of the system. The microservices responsible for satisfying the user requirements are: 1. **The security microservice** implements -role-based access control (RBAC) in the platform. + role-based access control (RBAC) in the platform. 1. **The accounting microservice** is responsible for keeping track of the -platform, DT asset and infrastructure usage. Any licensing, -usage restrictions need to be enforced by the accounting -microservice. Accounting is a pre-requisite to commercialisation of -the platform. - - Due to significant use of external -infrastructure and resources via the platform, the accounting -microservice needs to interface with accounting systems of -the external services. + platform, DT asset and infrastructure usage. Any licensing, + usage restrictions need to be enforced by the accounting + microservice. Accounting is a pre-requisite to commercialisation of + the platform. + Due to significant use of external + infrastructure and resources via the platform, the accounting + microservice needs to interface with accounting systems of + the external services. 1. **The data microservice** is a frontend to all the databases -integrated into the platform. A time-series database and a -graph database are essential. These two databases store timeseries -data from PT, events on PT/DT, commands sent by -DT to PT. The PTs uses these databases even when their -respective DTs are not in the execute phase. + integrated into the platform. A time-series database and a + graph database are essential. These two databases store timeseries + data from PT, events on PT/DT, commands sent by + DT to PT. The PTs uses these databases even when their + respective DTs are not in the execute phase. 1. **The visualisation microservice** is again a frontend to -visualisation software that are natively supported inside the platform. -Any visualisation software running either on external -systems or on client browsers do not need to interact with -this microservice. They can directly use the data provided by -the data microservice. + visualisation software that are natively supported inside the platform. + Any visualisation software running either on external + systems or on client browsers do not need to interact with + this microservice. They can directly use the data provided by + the data microservice. ## C4 Architectural Diagrams diff --git a/docs/developer/system/current-status.md b/docs/developer/system/current-status.md index 2b203a321..dd84e03f8 100644 --- a/docs/developer/system/current-status.md +++ b/docs/developer/system/current-status.md @@ -81,7 +81,7 @@ based on these services. The development priorities for the DTaaS software development team are: * [DT Runner](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/execution/runner) -(API Interface to DT) + (API Interface to DT) * Multi-user and microservice security * Increased automation of installation procedures * DT Configuration DSL ín the form of YAML schema diff --git a/docs/developer/testing/intro.md b/docs/developer/testing/intro.md index 843b07f05..47437a42a 100644 --- a/docs/developer/testing/intro.md +++ b/docs/developer/testing/intro.md @@ -2,14 +2,14 @@ ## :question: Common Questions on Testing -### What is Software Testing? +### What is Software Testing Software testing is a procedure to investigate the quality of a software product in different scenarios. It can also be stated as the process of verifying and validating that a software program or application works as expected and meets the business and technical requirements that guided design and development. -### Why Software Testing? +### Why Software Testing Software testing is required to point out the defects and errors that were made during different development phases. Software testing also ensures that @@ -19,7 +19,7 @@ One important benefit of software testing is that it facilitates the developers to make incremental changes to source code and make sure that the current changes are not breaking the functionality of the previously existing code. -### What is TDD? +### What is TDD TDD stands for **Test Driven Development**. It is a software development process that relies on the repetition of a very short development cycle: first @@ -30,7 +30,7 @@ The goal of TDD can be viewed as specification and not validation. In other words, it’s one way to think through your requirements or design before your write your functional code. -### What is BDD? +### What is BDD BDD stands for “Behaviour Driven Development”. It is a software development process that emerged from TDD. It includes the practice of writing tests first, @@ -63,12 +63,17 @@ method stubs, mock objects, and spies can be used to assist testing a module in #### Benefits of Unit Testing * Unit testing increases confidence in changing/ maintaining code. -If good unit tests are written and if they are run every time any code is changed, -we will be able to promptly catch any defects introduced due to the change. -* If codes are already made less interdependent to make unit testing possible, -the unintended impact of changes to any code is less. -* The cost, in terms of time, effort and money, of fixing a defect detected during -unit testing is lesser in comparison to that of defects detected at higher levels. + If good unit tests are written and if they are run every time + any code is changed, + we will be able to promptly catch any defects introduced due + to the change. +* If codes are already made less interdependent to make unit + testing possible, + the unintended impact of changes to any code is less. +* The cost, in terms of time, effort and money, of fixing a + defect detected during + unit testing is lesser in comparison to that of defects + detected at higher levels. #### Unit Tests in DTaaS @@ -76,7 +81,7 @@ Each component DTaaS project uses unique technology stack. Thus the packages used for unit tests are different. Please check the `test/` directory of a component to figure out the unit test packages used. -### [Integration tests](https://martinfowler.com/articles/practical-test-pyramid.html#IntegrationTests) +### [Integration tests](https://martinfowler.com/articles/practical-test-pyramid.html#IntegrationTests) Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. In DTaaS, we use diff --git a/docs/index.md b/docs/index.md index ca008dca1..f11b7c38f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,12 +3,15 @@ The Digital Twin as a Service (DTaaS) software platform is useful to **Build, Use and Share** digital twins (DTs). -:mechanical_arm: **Build**: The DTs are built on the software platform +:mechanical_arm: **Build**: The +DTs are built on the software platform using the reusable DT components available on the platform. -:office_worker: :factory_worker: **Use**: Use the DTs on the software platform. +:office_worker: :factory_worker: **Use**: Use +the DTs on the software platform. -:handshake: **Share**: Share ready to use DTs with other users. +:handshake: **Share**: Share ready to use DTs +with other users. It is also possible to share the services offered by one DT with other users. There is an overview of the software available in the form of diff --git a/docs/user/digital-twins/create.md b/docs/user/digital-twins/create.md index e20a882ee..cf59827ae 100644 --- a/docs/user/digital-twins/create.md +++ b/docs/user/digital-twins/create.md @@ -37,7 +37,6 @@ The only requirement is the ability to run the DT from either commandline or desktop. !!! tip - If you are stepping into the world of Digital Twins, you might not have distinct digital twin assets. You are likely to have one directory of everything in which you run your digital twin. In such a case we @@ -116,14 +115,11 @@ responsible for lifecycle management of this digital twin. The [lifecycle page](lifecycle.md) provides more explanation on these programs. !!! Abstract "Execution of a Digital Twin" - A frequent question arises on the run time characteristics of a digital twin. The natural intuition is to say that a digital twin must operate as long as its physical twin is in operation. - **If a digital twin runs for a finite time and then ends, can it be called a digital twin?** - **The answer is a resounding YES**. The Industry 4.0 usecases seen among SMEs have digital twins that run for a finite time. These digital twins are often run at the discretion of the user. @@ -131,28 +127,24 @@ The [lifecycle page](lifecycle.md) provides more explanation on these programs. **You can run this digital twin by**, 1. Go to Workbench tools page of the DTaaS website and open VNC Desktop. -This opens a new tab in your browser + This opens a new tab in your browser 1. A page with VNC Desktop and a connect button comes up. Click on Connect. -You are now connected to the Linux Desktop of your workspace. + You are now connected to the Linux Desktop of your workspace. 1. Open a Terminal (black rectangular icon in the top left region of your tab) -and type the following commands. + and type the following commands. 1. Download the -[example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) - - ```sh - $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip - $unzip main.zip - ``` - + [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) + ```sh + $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip + $unzip main.zip + ``` 1. Open a file browser and copy the files from this uncompressed folder -into your workspace folder (`/workspace`). Make sure that the file placement -matches the one given above. + into your workspace folder (`/workspace`). Make sure that the file placement + matches the one given above. 1. Go to the digital twin directory and run - - ``` - $cd /workspace/digital twins/mass-spring-damper - $lifecycle/execute - ``` - - The last command executes the mass-spring-damper digital twin and stores - the co-simulation output in `data/mass-spring-damper/output`. + ``` + $cd /workspace/digital twins/mass-spring-damper + $lifecycle/execute + ``` + The last command executes the mass-spring-damper digital twin and stores + the co-simulation output in `data/mass-spring-damper/output`. diff --git a/docs/user/features.md b/docs/user/features.md index b841f3b64..52478968c 100644 --- a/docs/user/features.md +++ b/docs/user/features.md @@ -4,16 +4,19 @@ The DTaaS software platform provides certain advantages to users: -* Support for different kinds of Digital Twins - CFD, Simulink, co-simulation, FEM, ROM, ML etc. +* Support for different kinds of Digital Twins + - CFD, Simulink, co-simulation, FEM, ROM, ML etc. * Integrates with other Digital Twin frameworks * Facilitate availability of Digital Twin as a service * Collaboration and reuse -* Private workspaces for authoring and verification of reusable assets, trial run DTs +* Private workspaces for authoring and verification + of reusable assets, trial run DTs * Cost effectiveness ## Software Features -Each installation of DTaaS platform comes with the features highlighted in the following picture. +Each installation of DTaaS platform comes with +the features highlighted in the following picture. ![Features](current-status.png) diff --git a/docs/user/motivation.md b/docs/user/motivation.md index 8f215e0bc..f7c573b24 100644 --- a/docs/user/motivation.md +++ b/docs/user/motivation.md @@ -17,7 +17,8 @@ In addition, how can the DT software platforms: There are quite a few solutions proposed in the recent past to solve this problem. Some of them are: -* Focus on data from Physical Twins (PTs) to perform analysis, diagnosis, planning etc… +* Focus on data from Physical Twins (PTs) to + perform analysis, diagnosis, planning etc… * Share DT assets across the upstream, downstream etc…. * Evaluate different models of PT * DevOps for Cyber Physical Systems (CPS) diff --git a/docs/user/servers/lib/LIB-MS.md b/docs/user/servers/lib/LIB-MS.md index d5f9ae241..2181bf2fd 100644 --- a/docs/user/servers/lib/LIB-MS.md +++ b/docs/user/servers/lib/LIB-MS.md @@ -41,6 +41,7 @@ Replace `path` with the desired directory path. send requests to: https://foo.com/lib === "GraphQL Query" + ``` graphql-query query { listDirectory(path: "user1") { @@ -66,9 +67,11 @@ send requests to: https://foo.com/lib } } } + ``` === "GraphQL Response" + ``` graphql-response { "data": { @@ -123,6 +126,7 @@ send requests to: https://foo.com/lib } } } + ``` === "HTTP Request" @@ -136,6 +140,7 @@ send requests to: https://foo.com/lib { "query":"query {\n listDirectory(path: \"user1\") {\n repository {\n tree {\n blobs {\n edges {\n node {\n name\n type\n }\n }\n }\n trees {\n edges {\n node {\n name\n type\n }\n }\n }\n }\n }\n }\n}" } + ``` === "HTTP Response" diff --git a/docs/user/website/index.md b/docs/user/website/index.md index 56d4e73c2..cda1291d8 100644 --- a/docs/user/website/index.md +++ b/docs/user/website/index.md @@ -49,18 +49,15 @@ in their workspace. The functions responsible for pre- and post-processing of: data inputs, data outputs, control outputs. The data science libraries and functions can be used to create useful function assets for the platform. - In some cases, Digital Twin models require calibration prior to their use; functions written by domain experts along with right data inputs can make model calibration an achievable goal. Another use of functions is to process the sensor and actuator data of both Physical Twins and Digital Twins. - ``` ??? Data tip The data sources and sinks available to a digital twins. Typical examples of data sources are sensor measurements from Physical Twins, and test data provided by manufacturers for calibration of models. - Typical examples of data sinks are visualization software, external users and data storage services. There exist special outputs such as events, and commands which are akin to control outputs from a Digital Twin. @@ -84,11 +81,9 @@ in their workspace. platforms, i.e., an operating system, or virtual machines like Java virtual machine, or inside docker containers. The tools tend to be platform specific, making them less reusable than models. - A tool can be packaged to run on a local or distributed virtual machine environments thus allowing selection of most suitable execution - environment for a Digital Twin. - + environment for a Digital Twin. Most models require tools to evaluate them in the context of data inputs. There exist cases where executable packages are run as binaries in a computing environment. Each of these packages are a pre-packaged @@ -132,7 +127,6 @@ digital twin. You can see more explanation on the [life cycle phases of digital twin](../digital-twins/lifecycle.md). ??? Create tip - Create digital twins from tools provided within user workspaces. Each digital twin will have one directory. It is suggested that user provide one bash shell script to run their digital twin. Users can @@ -140,7 +134,6 @@ the [life cycle phases of digital twin](../digital-twins/lifecycle.md). Workbench page. ??? Execute tip - Digital twins are executed from within user workspaces. The given bash script gets executed from digital twin directory. Terminal-based digital twins can be executed from VSCode and graphical digital twins @@ -155,7 +148,6 @@ the [life cycle phases of digital twin](../digital-twins/lifecycle.md). back in the data directory. These scripts can either be executed from VSCode and graphical results or can be executed from VNC GUI. - The analysis of digital twins requires running of digital twin script from user workspace. The execution results placed within data directory are processed by analysis scripts and results are placed back in @@ -182,7 +174,6 @@ in new browser are: The Terminal hyperlink does not always work reliably. If you want terminal. Please use the tools dropdown in the Jupyter Notebook. - The Terminal hyperlink does not always work reliably. If you want terminal. Please use the tools dropdown in the Jupyter Notebook. diff --git a/servers/execution/runner/LICENSE.md b/servers/execution/runner/LICENSE.md index b5ddfe6f4..5e134141b 100644 --- a/servers/execution/runner/LICENSE.md +++ b/servers/execution/runner/LICENSE.md @@ -1,3 +1,5 @@ +# License + --- Start of Definition of INTO-CPS Association Public License --- /* diff --git a/servers/lib/LICENSE.md b/servers/lib/LICENSE.md index 59bb3bcea..a5273233f 100644 --- a/servers/lib/LICENSE.md +++ b/servers/lib/LICENSE.md @@ -1,3 +1,5 @@ +# License + --- Start of Definition of INTO-CPS Association Public License --- /* From 5ba2204cfa8e8dbd618886d25b76661a49b57794 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Tue, 3 Oct 2023 06:09:07 +0530 Subject: [PATCH 32/35] Update .mdl_style.rb --- .mdl_style.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index cfff35c97..82cf36e92 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,3 +1,3 @@ all -rule 'MD013', :ignore_code_blocks => true, :tables => false +rule 'MD013', :code_blocks => false, :tables => false rule 'MD046', :style => :fenced From 288c260780b77b231a7fdf08691bb480fa0b07f0 Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Tue, 3 Oct 2023 06:14:09 +0530 Subject: [PATCH 33/35] Update .mdl_style.rb --- .mdl_style.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/.mdl_style.rb b/.mdl_style.rb index 82cf36e92..79f758842 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,3 +1,4 @@ all +exclude_rule 'MD024' rule 'MD013', :code_blocks => false, :tables => false rule 'MD046', :style => :fenced From 0d5ba0c7b85c447847ed4c8d8772aabca0fe16cf Mon Sep 17 00:00:00 2001 From: Astitva Sehgal <69433630+astitva1905@users.noreply.github.com> Date: Tue, 3 Oct 2023 06:14:28 +0530 Subject: [PATCH 34/35] Update .mdl_style.rb Excludes the inline html rule --- .mdl_style.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mdl_style.rb b/.mdl_style.rb index 79f758842..015105071 100644 --- a/.mdl_style.rb +++ b/.mdl_style.rb @@ -1,4 +1,4 @@ all -exclude_rule 'MD024' +exclude_rule 'MD033' rule 'MD013', :code_blocks => false, :tables => false rule 'MD046', :style => :fenced From af486da234e222d3dbf7607956f7c7a0c4871f75 Mon Sep 17 00:00:00 2001 From: Asti Date: Tue, 3 Oct 2023 06:37:32 +0530 Subject: [PATCH 35/35] Doc Issues 9 --- docs/FAQ.md | 267 ++++++++++++++++-------------- docs/developer/index.md | 9 +- docs/developer/testing/intro.md | 2 +- docs/user/digital-twins/create.md | 4 + docs/user/features.md | 2 +- docs/user/servers/lib/LIB-MS.md | 1 + 6 files changed, 156 insertions(+), 129 deletions(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index 9dd9d63c5..98fee4a0e 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -11,176 +11,195 @@ ## General Questions ??? Question "What is DTaaS?" - DTaaS is software platform on which you can create and run digital twins. - Please see the [features](user/features.md) page - to get a sense of the things you can do in DaaS. + +DTaaS is software platform on which you can create and run digital twins. +Please see the [features](user/features.md) page +to get a sense of the things you can do in DaaS. ??? Question "Are there any Key Performance / Capability Indicators for DTaaS?" - | Key Performance Indicator | Value | - |:---|:---| - | Processor | Two AMD EPYC 7443 24-Core Processors | - | Maximum Storage Capacity | 4TB SSD, RAID 0 configuration | - | Storage Type | File System | - | Maximum file size | 10 GB | - | Data transfer speed | 100 Mbps | - | Data Security | Yes | - | Data Privacy | Yes | - | Redundancy | None | - | Availability | It is a matter of human resources. If you have human - resources to maintain DTaaS round the clock, - upwards 95% is easily possible. | + +| Key Performance Indicator | Value | +|:---|:---| +| Processor | Two AMD EPYC 7443 24-Core Processors | +| Maximum Storage Capacity | 4TB SSD, RAID 0 configuration | +| Storage Type | File System | +| Maximum file size | 10 GB | +| Data transfer speed | 100 Mbps | +| Data Security | Yes | +| Data Privacy | Yes | +| Redundancy | None | +| Availability | It is a matter of human resources. If you have human +resources to maintain DTaaS round the clock, +upwards 95% is easily possible. | ??? Question "Do you provide licensed software like Matlab?" - The licensed software are not available on the software platform. - But users have private workspaces which are based - on Linux-based xfce Desktop environment. - Users can install software in their workspaces. The licensed software - installed by one user is not available to another user. + +The licensed software are not available on the software platform. +But users have private workspaces which are based +on Linux-based xfce Desktop environment. +Users can install software in their workspaces. The licensed software +installed by one user is not available to another user. ## Digital Twin Models ??? Question "Can DTaaS create new DT models?" - DTaaS is not a model creation tool. You can put model creation tool - inside DTaaS and create new models. - The DTaaS itself does not create digital twin models but it can help - users create digital twin models. You can run - Linux desktop / terminal tools inside the DTaaS. So you can create - models inside DTaaS and run them using tools that can run in Linux. - The Windows only tools can not run in DTaaS. +DTaaS is not a model creation tool. You can put model creation tool +inside DTaaS and create new models. +The DTaaS itself does not create digital twin models but it can help +users create digital twin models. You can run +Linux desktop / terminal tools inside the DTaaS. So you can create +models inside DTaaS and run them using tools that can run in Linux. +The Windows only tools can not run in DTaaS. ??? Question "How can DTaaS help to design geometric model? Does it support 3D modeling and simulation?" - Well, DTaaS by itself does not produce any models. DTaaS only provides - a platform and an ecosystem of services to facilitate digital twins to - be run as services. Since each user has a Linux OS at their disposal, - they can also run digital twins that have graphical interface. - In summary, DTaaS is neither a modeling nor simulation tool. If you need - these kinds of tools, you need to bring them onto the platform. - For example, if you need Matlab for your work, you need to bring - he licensed Matlab software. + +Well, DTaaS by itself does not produce any models. DTaaS only provides +a platform and an ecosystem of services to facilitate digital twins to +be run as services. Since each user has a Linux OS at their disposal, +they can also run digital twins that have graphical interface. +In summary, DTaaS is neither a modeling nor simulation tool. If you need +these kinds of tools, you need to bring them onto the platform. +For example, if you need Matlab for your work, you need to bring +he licensed Matlab software. ??? Question "Commercial DT platforms in market provide modelling and simulation alongside integration and UI. DTaas is not able to do any modelling or simulation on its own like other commercial platforms. Is this a correct understanding?" - Yes, you are right + +Yes, you are right ??? Question "Can DTaaS support only the information models (or behavioral models) or some other kind of models?" - The DTaaS as such is agnostic to the kind of models you use. DTaaS can - run all kinds of models. This includes behavioral and data models. - As long as you have models and the matching solvers that can run in - Linux OS, you are good to go in DTaaS. - In some cases, models and solvers (tools) are bundled together - to form monolithic DTs. The DTaaS does not limit you from running - such DTs as well. - DTaaS does not provide dedicated solvers. But if you can install - a solver in your workspace, then you don't need the platform - to provide one. + +The DTaaS as such is agnostic to the kind of models you use. DTaaS can +run all kinds of models. This includes behavioral and data models. +As long as you have models and the matching solvers that can run in +Linux OS, you are good to go in DTaaS. +In some cases, models and solvers (tools) are bundled together +to form monolithic DTs. The DTaaS does not limit you from running +such DTs as well. +DTaaS does not provide dedicated solvers. But if you can install +a solver in your workspace, then you don't need the platform +to provide one. ??? Question "Does it support XML-based representation and ontology representation?" - Currently No. **We are looking for users needing this capability.** - **If you have concrete requirements and an example, we can discuss a way** - **of realizing it in DTaaS**. + +Currently No. **We are looking for users needing this capability.** +**If you have concrete requirements and an example, we can discuss a way** +**of realizing it in DTaaS**. ## Communication Between Physical Twin and Digital Twin ??? Question "How would you measure a physical entity like shape, size, weight, structure, chemical attributes etc. using DTaaS? Any specific technology used in this case?" - The real measurements are done at physical twin which are then - communicated to the digital twin. Any digital twin platform like - DTaaS can only facilitate this communication of these measurements - from physical twin. The DTaaS provides InfluxDB, RabbitMQ and Mosquitto - services for this purpose. These three are probably most widely used - services for digital twin communication. - Having said that, DTaaS allows you to utilize other communication - technologies and services hosted elsewhere on the Internet. + +The real measurements are done at physical twin which are then +communicated to the digital twin. Any digital twin platform like +DTaaS can only facilitate this communication of these measurements +from physical twin. The DTaaS provides InfluxDB, RabbitMQ and Mosquitto +services for this purpose. These three are probably most widely used +services for digital twin communication. +Having said that, DTaaS allows you to utilize other communication +technologies and services hosted elsewhere on the Internet. ??? Question "How a real-time data can be differed from static data and what is the procedure to identify dynamic data? Is there any UI or specific tool used here?" - DTaaS can not understand the static or dynamic nature of data. - It can facilitate storing names, units and any other text description - of interesting quantities (weight of batter, voltage output etc). - It can also store the data being sent by the physical twin. - The distinction between static and dynamic data needs to be made by - the user. - Only metadata of the data can reveal such more information about - the nature of data. A tool can probably help in very specific cases, - but you need metadata. If there is a human being making this distinction, - then the need for metadata goes down but does not completely go away. - In some of the DT platforms supported by manufacturers, there is a tight - integration between data and model. In this case, the tool itself is - taking care of the metadata. The DTaaS is a generic platform which can - support execution of digital twins. If a tool can be executed on - a Linux desktop / commandline, the tool can be supported within DTaaS. - The tool (ex. Matlab) itself can take care of the metadata requirements. + +DTaaS can not understand the static or dynamic nature of data. +It can facilitate storing names, units and any other text description +of interesting quantities (weight of batter, voltage output etc). +It can also store the data being sent by the physical twin. +The distinction between static and dynamic data needs to be made by +the user. +Only metadata of the data can reveal such more information about +the nature of data. A tool can probably help in very specific cases, +but you need metadata. If there is a human being making this distinction, +then the need for metadata goes down but does not completely go away. +In some of the DT platforms supported by manufacturers, there is a tight +integration between data and model. In this case, the tool itself is +taking care of the metadata. The DTaaS is a generic platform which can +support execution of digital twins. If a tool can be executed on +a Linux desktop / commandline, the tool can be supported within DTaaS. +The tool (ex. Matlab) itself can take care of the metadata requirements. ??? Question "How can DTaaS control the physical entity? Which technologies it uses for controlling the physical world?" - At a very abstract level, there is a communication from physical entity - to digital entity and back to physical entity. How this communication - should happen is decided by the person designing the digital entity. - The DTaaS can provide communication services that can help you do this - communication with relative ease. - You can use InfluxDB, RabbitMQ and Mosquitto services hosted on DTaaS for - two communication between digital and physical entities. + +At a very abstract level, there is a communication from physical entity +to digital entity and back to physical entity. How this communication +should happen is decided by the person designing the digital entity. +The DTaaS can provide communication services that can help you do this +communication with relative ease. +You can use InfluxDB, RabbitMQ and Mosquitto services hosted on DTaaS for +two communication between digital and physical entities. ## Data Management ??? Question "Does DTaaS support data collection from different sources like hardware, software and network? Is there any user interface or any tracking instruments used for data collection?" - The DTaaS provids InfluxDB, RabbitMQ, MQTT services. Both the physical twin - and digital twin can utilize these protocols for communication. - The IoT (time-series) data can be collected using InfluxDB and MQTT - broker services. There is a user interface for InfluxDB which can be - used to analyze the data collected. - Users can also manually upload their data files into DTaaS. + +The DTaaS provids InfluxDB, RabbitMQ, MQTT services. Both the physical twin +and digital twin can utilize these protocols for communication. +The IoT (time-series) data can be collected using InfluxDB and MQTT +broker services. There is a user interface for InfluxDB which can be +used to analyze the data collected. +Users can also manually upload their data files into DTaaS. ??? Question "Which transmission protocol does DTaaS allow?" - InfluxDB, RabbitMQ, MQTT and anything else that can be used from - Cloud service providers. + +InfluxDB, RabbitMQ, MQTT and anything else that can be used from +Cloud service providers. ??? Question "Does DTaaS support multisource information and combined multi sensor input data? Can it provide analysis and decision-supporting inferences?" - You can store information from multiple sources. The existing InfluxDB - services hosted on DTaaS already has a dedicated Influx / Flux query - language for doing sensor fusion, analysis and inferences. + +You can store information from multiple sources. The existing InfluxDB +services hosted on DTaaS already has a dedicated Influx / Flux query +language for doing sensor fusion, analysis and inferences. ??? Question "Which kinds of visualization technologies DTaaS can support (e.g. graphical, geometry, image, VR/AR representation)?" - Graphical, geometric and images. If you need specific licensed software - for the visualization, you will have to bring the license for it. - DTaaS does not support AR/VR. + +Graphical, geometric and images. If you need specific licensed software +for the visualization, you will have to bring the license for it. +DTaaS does not support AR/VR. ??? Question "Can DTaaS collect data directly from sensors?" - Yes + +Yes ??? Question "Is DTaaS able to transmit data to cloud in real time?" - Yes + +Yes ## Platform Native Services on DTaaS Platform ??? Question "Is DTaaS able to detect the anomalies about-to-fail components and prescribe solutions?" - This is the job of a digital twin. If you have a ready to use digital twin - that does the job, DTaaS allows others to use your solution. + +This is the job of a digital twin. If you have a ready to use digital twin +that does the job, DTaaS allows others to use your solution. ## Comparison with other DT Platforms ??? Question "All the DT platforms seem to provide different features. Is there a comparison chart?" - Here is a qualitative comparison of different DT integration platforms: - Legend: high performance (**H**), mid performance (**M**) - and low performance (**L**) - | DT Platforms | License | DT Development Process | Connectivity | Security | Processing power, performance and Scalability | Data Storage | Visualization | Modeling and Simulation | - |:---|:---|:---|:---|:---|:---|:---|:---|:---| - | Microsoft Azure DT | Commercial Cloud | H | H | H | M | H | H | H | - | AWS IOT Greengrass | Open source commercial | H | H | H | M | H | H | H | - | Eclipse Ditto | Open source | M | H | M | H | H | L | L | - | Asset Administration Shell | Open source | H | H | L | H | M | L | M | - | PTC Thingworx | Commercial | H | H | H | H | H | M | M | - | GE Predix | Commercial | M | H | H | M | L | M | L | - | AU's DTaaS | Open source | H | H | L | L | M | M | M | - Adopted by Tanusree Roy from Table 4 and 5 of the following paper. - Ref: Naseri, F., Gil, S., Barbu, C., Cetkin, E., Yarimca, G., Jensen, A. C., - ... & Gomes, C. (2023). Digital twin of electric vehicle battery systems: - Comprehensive review of the use cases, requirements, and platforms. - Renewable and Sustainable Energy Reviews, 179, 113280. + +Here is a qualitative comparison of different DT integration platforms: +Legend: high performance (**H**), mid performance (**M**) +and low performance (**L**) +| DT Platforms | License | DT Development Process | Connectivity | Security | Processing power, performance and Scalability | Data Storage | Visualization | Modeling and Simulation | +|:---|:---|:---|:---|:---|:---|:---|:---|:---| +| Microsoft Azure DT | Commercial Cloud | H | H | H | M | H | H | H | +| AWS IOT Greengrass | Open source commercial | H | H | H | M | H | H | H | +| Eclipse Ditto | Open source | M | H | M | H | H | L | L | +| Asset Administration Shell | Open source | H | H | L | H | M | L | M | +| PTC Thingworx | Commercial | H | H | H | H | H | M | M | +| GE Predix | Commercial | M | H | H | M | L | M | L | +| AU's DTaaS | Open source | H | H | L | L | M | M | M | +Adopted by Tanusree Roy from Table 4 and 5 of the following paper. +Ref: Naseri, F., Gil, S., Barbu, C., Cetkin, E., Yarimca, G., Jensen, A. C., +... & Gomes, C. (2023). Digital twin of electric vehicle battery systems: +Comprehensive review of the use cases, requirements, and platforms. +Renewable and Sustainable Energy Reviews, 179, 113280. ??? Question "All the comparisons between DT platforms seems so confusing. Why?" - The fundamental confusion comes from the fact that different DT platforms - (Azure DT, GE Predix) provide different kind of DT capabilities. You can - run all kinds of models natively in GE Predix. In fact you can run models - even next to (on) PTs using GE Predix. But you cannot natively do that in - Azure DT service. You have to do the leg work of integrating with other - Azure services or third-party services to get the kind of capabilities - that GE Predix natively provides in one interface. - The takeaway is that we pick horses for the courses. + +The fundamental confusion comes from the fact that different DT platforms +(Azure DT, GE Predix) provide different kind of DT capabilities. You can +run all kinds of models natively in GE Predix. In fact you can run models +even next to (on) PTs using GE Predix. But you cannot natively do that in +Azure DT service. You have to do the leg work of integrating with other +Azure services or third-party services to get the kind of capabilities +that GE Predix natively provides in one interface. +The takeaway is that we pick horses for the courses. diff --git a/docs/developer/index.md b/docs/developer/index.md index f0895a60d..4db623d3d 100644 --- a/docs/developer/index.md +++ b/docs/developer/index.md @@ -55,16 +55,19 @@ a development workflow is in place. Each developer should follow these steps: 1. Use [Fork, Branch, PR](https://gun.io/news/2017/01/how-to-github-fork-branch-and-pull-request/) workflow. -1. Work in your fork and open a PR from your working branch to your `feature/distributed-demo` branch. +1. Work in your fork and open a PR from your working + branch to your `feature/distributed-demo` branch. The PR will run all the github actions, code climate and codecov checks. 1. Resolve all the issues identified in the previous step. 1. If you have access to the [integration server](https://github.com/INTO-CPS-Association/DTaaS/wiki/DTaaS-Integration-Server), try your working branch on the integration server. -1. Once changes are verified, a PR should be made to the `feature/distributed-demo` branch of +1. Once changes are verified, a PR should be made to + the `feature/distributed-demo` branch of the upstream [DTaaS repository](https://github.com/into-cps-association/DTaaS). -1. The PR will be merged after checks by either the project administrators or the maintainers. +1. The PR will be merged after checks by either the + project administrators or the maintainers. Remember that every PR should be meaningful and satisfies a well-defined user story or improve diff --git a/docs/developer/testing/intro.md b/docs/developer/testing/intro.md index 47437a42a..b90d1bfdd 100644 --- a/docs/developer/testing/intro.md +++ b/docs/developer/testing/intro.md @@ -51,7 +51,7 @@ starting with isolated tests and moving towards complete integration for any new feature changes. The different types of tests (in the order that they should be performed) are explained below: -### [Unit Tests](https://martinfowler.com/articles/practical-test-pyramid.html#UnitTests) +### [Unit Tests](https://martinfowler.com/articles/practical-test-pyramid.html#UnitTests) Unit testing is a level of software testing where individual units/ components of a software are tested. The objective of Unit Testing is to isolate diff --git a/docs/user/digital-twins/create.md b/docs/user/digital-twins/create.md index cf59827ae..ffe48b663 100644 --- a/docs/user/digital-twins/create.md +++ b/docs/user/digital-twins/create.md @@ -134,17 +134,21 @@ The [lifecycle page](lifecycle.md) provides more explanation on these programs. and type the following commands. 1. Download the [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) + ```sh $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip $unzip main.zip ``` + 1. Open a file browser and copy the files from this uncompressed folder into your workspace folder (`/workspace`). Make sure that the file placement matches the one given above. 1. Go to the digital twin directory and run + ``` $cd /workspace/digital twins/mass-spring-damper $lifecycle/execute ``` + The last command executes the mass-spring-damper digital twin and stores the co-simulation output in `data/mass-spring-damper/output`. diff --git a/docs/user/features.md b/docs/user/features.md index 52478968c..863064ca9 100644 --- a/docs/user/features.md +++ b/docs/user/features.md @@ -5,7 +5,7 @@ The DTaaS software platform provides certain advantages to users: * Support for different kinds of Digital Twins - - CFD, Simulink, co-simulation, FEM, ROM, ML etc. + * CFD, Simulink, co-simulation, FEM, ROM, ML etc. * Integrates with other Digital Twin frameworks * Facilitate availability of Digital Twin as a service * Collaboration and reuse diff --git a/docs/user/servers/lib/LIB-MS.md b/docs/user/servers/lib/LIB-MS.md index 2181bf2fd..98702993b 100644 --- a/docs/user/servers/lib/LIB-MS.md +++ b/docs/user/servers/lib/LIB-MS.md @@ -144,6 +144,7 @@ send requests to: https://foo.com/lib ``` === "HTTP Response" + ``` http-response HTTP/1.1 200 OK Access-Control-Allow-Origin: *