From 580df7b413234a3fa27214f6964be0dba4967105 Mon Sep 17 00:00:00 2001 From: Dominik-Pinsel Date: Mon, 19 Dec 2022 14:18:08 +0100 Subject: [PATCH] update description of supporting infrastructure deployment Signed-off-by: Dominik-Pinsel --- .../helm/supporting-infrastructure/README.md | 115 +++++++++--------- .../diagrams/deployed_components.png | Bin 39746 -> 22169 bytes .../diagrams/deployed_components.puml | 51 ++------ 3 files changed, 70 insertions(+), 96 deletions(-) diff --git a/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/README.md b/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/README.md index e639dd387..6a22a402b 100644 --- a/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/README.md +++ b/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/README.md @@ -1,11 +1,63 @@ -# All-In-One Deployment +# Supporting Infrastructure Deployment -The Product EDC Demo Deployment creates a complete, independent and already configured EDC test environment. +The Supporting Infrastructure Deployment creates a complete, independent and already configured EDC test environment. +These infrastructure components are deployed together with two connectors (Plato & Sokrates) to run the automated +business tests. -This deployment may function as +This deployment could also be used as - reference setup for teams, that want to create their own connector -- standalone test environment to try different things out +- standalone infrastructure to try things out + +This deployment should **never** be used + +- in **any** production or near production environments +- in **any** long living internet facing connector setups + +## Components + +Overview of the installed components. + +![Deployed Components](diagrams/deployed_components.png) + +### Omejdn DAPS + +The Dynamic Attribute Provisioning Service (DAPS) is a component of the IDS Ecosystem. +The Fraunhofer Institute has created a DAPS reference implementation, the Omejdn +DAPS ([link](https://github.com/Fraunhofer-AISEC/omejdn-server)). This deplyoment configures and deployes a instance of +this reference implementation. + +Definition of DAPS from the IDS Reference architecture v3.0 +> The Identity Provider acts as an agent for the International +> Data Spaces Association. It is responsible for issuing technical identities to parties that have been approved to become +> Participants in the International Data Spaces. The Identity +> Provider is instructed to issue identities based on approved +> roles (e.g., App Store or App Provider). Only if equipped with +> such an identity, an entity is allowed to participate in the International Data Spaces + +Also, please note, that the Omejdn DAPS is meant as research sandbox and should not be used in productive environment. + +> **IMPORTANT:** Omejdn is meant to be a research sandbox in which we can (re)implement standard protocols and +> potentially extend and modify functionality under the hood to support research projects. Use at your own +> risk! ([source](https://github.com/Fraunhofer-AISEC/omejdn-server)) + +### HashiCorp Vault + +The Control- and Data Plane persist confidential in the vault and persist and communicate using only the secret +names. Hence, it is not possible to run a connector without an instance of a vault. + +### Backend Application + +After a Data Transfer is successfully prepared the control plane will contact the a configurable endpoint with the +information it needs to initiate the data transfer. This transfer flow, where something like a Backend Application is +required, is unique to the HTTP Proxy data transfer flow. + +The Backend Application has an API endpoint, that is configured in the control plane. After it gets called with the data +transfer information, it will do the actual data transfer and store the data on disk. + +### PostgreSQL + +This database is used to persist the state of the Control Plane. ## Setup @@ -31,64 +83,13 @@ helm dependency update **Install Demo Chart** ```bash -helm install edc-all-in-one --namespace edc-all-in-one --create-namespace . +helm install tx-infrastructure --namespace tx --create-namespace . ``` -This will deploy the following components: - -![Deployed Components](diagrams/deployed_components.png) - ## Stop Demo Environment **Uninstall Demo Chart** ```bash -helm uninstall edc-all-in-one --namespace edc-all-in-one +helm uninstall tx-infrastructure --namespace tx ``` - -## Components - -Overview of the installed components. - -### EDC Control Plane - -The EDC Control Plane does - -- data/contract offering -- contract negotiation -- data transfer coordination - -Two control planes always talk to each other using IDS messages. Therefore, when telling one connector to talk to -another connector, the target endpoint must point to the IDS API (e.g `http://[myTargetConnector].com/api/v1/ids`). - -The connector owner should only talk to the control plane via the Data Management API. The API is not only used for -simple data management, but for initiating inter-connector communication as well. - -### EDC Data Plane - -The EDC Data Plane is used for the actual data transfer. - -At the time of writing the Data Plane may only function as HTTP proxy and does not support any other type of -transfer. Additional transfer capabilities could be added by including new EDC extensions in the Data Plane application. - -### PostgreSQL - -This database is used to persist the state of the Control Plane. - -### HashiCorp Vault - -The Control- and Data Plane will persist confidential in the vault and persist and communicate using only the secret -names. - -### Backend Application - -After a Data Transfer is successfully prepared the control plane will contact the a configurable endpoint with the -information it needs to initiate the data transfer. This transfer flow, where something like a Backend Application is -required, is unique to the HTTP Proxy data transfer flow. - -The Backend Application has an API endpoint, that is configured in the control plane. After it gets called with the data -transfer information, it will do the actual data transfer and store the data on disk. - -### Omejdn DAPS - -Instead of the Catena-X DAPS this demo configures and deploys it's own DAPS instance. diff --git a/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/diagrams/deployed_components.png b/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/diagrams/deployed_components.png index b91338ef6a88be9d52117cbdb0d47498bdedce05..443b739f87a11330b5837a2bdd3a33f85d30904e 100644 GIT binary patch literal 22169 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 literal 39746 zcmdS>WmFc-8U_ku00IIENGd4Z-4X`fB_Q3M(hVXY-QC^Y-QC^YT>{c)Fy2@9-ru** zS?8P|=ZDMnJj^q3&s}q0*Nmr_2roP=CM*O51Ux?-eoY>N6xt-kwh!jRx66T(C{UFJY^9YK|M+g}9Jp<9u-d;=9e zrZt-%%~#(%p)GU~OY0@zSe$hbotjM#-QG{aMb{r;B5G|VsHTJOSSN<>Cn`D-$PkP3m#M*9sw}Mx- zCLUbz<6_Z!e*Ks>z~`F~&3<=*-~5!Ylxp6@r*}(l(kn#qtJd?RUWph!Q&H}FPZBYJ zF||kLa(3nH@n**DSyI6Fo;|zLhhO$+Hb1gJwinJ$tTBc5s~aFxKe*30DpF}1 zn*B^|yjX#xubaVuTbsPvLK`lV)ktKFlKdsy{?AYd z_%WljvyWhONqf3d-pIB3?fMmAlCPi66bQL|ATyM6dLbTWNIBDwlGS?hDQD%gWSGS~ zdSPLntr46(yEbRWM$;paSCeFWN(lJ%Z*F6|l$%Hj47!?I+81rj z;VoV!ej|MwyHt9VzXxGvVaL#2iozv;ef5rIS7)7yS>8?nNlQTGD=@N?#)sIUDZnCZT4{Kp-5m{r*a)spsO zI!w{KS`Vt(_o0Yx)Xl${vVCzvD!l(z3|qH#e~AmSUFQwzLnq%vD6_G)@mI*Md!aN7 zak3@^tZYrVMU2w03gFLft! zJ{E%w^G2f*d3p+Fxj$LFPE~*PZWA7p{s}Khj#6#Z5FH&I9v+_lcwQ`(GKZXOiT=1z ze;j)faU`W;)mL>7M4Y&=u+xP`*JAB{N~Id>%hO%=9WSJlo%wnvKE6k#ZhFin3k~%* z7lPhrbG3Gdhle2^_%*VHYKqmC?2cCzCbRWU@uUL8V zZYrz2nMy8Cq?IhW(yiHQD-wF|@A3(6T(mwKOqcl{A)-^i36U<=5)O=SF+SUyb&8+< z3bt}^$(5Gva;F%jZglT%%_*zu=SQoXJGk1ivJt5J0k7WcgnvnwOc%i=3U%5VA^GHs zPV-KK@zOwD%d9Bf2Ns<7k_00~P`{8JIwzgy&K=y`#el4qx1bqv-jc z8%Z>0(9$QEpS=uosI@zj7J+vDM=O0QwLM>3?a}jLT5b*zT-Y5hwFVQ38ch_u)j-XL zKQ|pKRBz{UUszC?s}#6H?=NZTo&q&I47V1nbEYlcg4z#iS0$^}ZKJN|m2hzikdfWn+?Uy^(k| z_95xbGdMI#ly@QnO<$!y8P}bsJ)ujBgOWU(s5AlCjs2}1|HLse?ud_XD@#cbc4{9_Rp7mqrZRA{q~fPhy=LQUwx{{DXG zv)E8J*w>ajPa?JZVlsbByx8t+PtEH4!D5MgGLNr8E$~Q41lc-sHI+*eacd;9gRT-YHZojr%XAt-4$ylDEKJ_!6&;rMefmeY|I_S6LG}B2^a%7~EK)eRE0-f(Y z5a1bcU%hH%gw^Sh984&wf2J^)rlqnodlq&+upr+W zC9OCD%$sWw=-78P!+{|oCBO^}yw#+<&Pe+=)YR0zj0b!;23phAj|A-CX4<$OBS$YM z3xV+P_&8ZaL{JcKu*!7VT`YE~)f;Q#Zgw6S%Jp^Qc%fA$i|+z)xohy@$>d5hzHi;9 zxZygt4tw<16nXuzPfkzM6j?R8LP&smA&HCXOcZH$w@~In5sP`r8Xqx0uf9$7I$rOm z+aEjTrXdZ@m8l_H3@v?VzZxo&VL#>P>&tL;8S7_zvNf0_P;;cstzN1VaTFtMQy7;p z1xqC<8hrA!X)W}m6DO3sO(azn_`o!t4|xh7S9V6T$CIld4w!0wYf*`Q#H(%3$zV~A zNKU64Lg6Uj;CLQ#B&vcCwKbj}|8@3@^{%|lESvFMO$ma|bQ#65QSGbk*L@+kk=k*I z6LJY}?!gYbxVWfIwxhLXqwLpO?JK=|cb^}n)VohG{ow43^V7=L#*JCqEFqxJ8EThj z`%JQf(Nn$>pH|h-h0<5YDmZtKrJ`@85@l$4s$|aQP)Lqjx|p_hzfpMIa$2;_o~VWQGXC zgI~g)dDz1b5%cvFE}*~jE;=*_H^e+_@YJb?IFI?U8$TKtq{O&o_%Y0BE|?wNxhoT7 zYNC4uPrWH|bJs8pL`~DO54UXklCRWBXqne|BBhxXW+wrSlXr`_7DGvQ-6QYin!a zo{>t`+FF2cnqPk-7u)|BkJm3n{YSR5;q~p?w~UO8HeW0>5{VR*#?Ka8BQUVA7t8*f zBj+)`d$#hIkR9tQwX_4&3xv$pB5PmWXDiK!@bH$wZrpZhFbR#Z$mA&$YxPQKGq~*~ zW%c~bZn8_*K{Qswn|3i{D?2;goh~2cKjr$nFIaYB`7#6dr(K-X)lRoJcfO0!;QNHS z|KPRbaGLPh{=9Jjea{MIuJ8Q^4+O(0g|i<{)j3{Q9T?44m4XDU75GrGgg2q2AF9kZ zKiyo}2&4zMwYLu!o*%Ch8H3EuABU3?L0nZ~old(Cq(K*+L~&2vULE&yqS^5E|4fL>I2&tSKlX%biCF^ahbiJcP;2wI3vhyDbn$o%css8rnb)`rQ z^D9dd%K1t&4~aa5%1;;HbX_sPQl&G*7C~ZHf`x^(9eR?p50YT>YT@Y;jl?(Pw84BS z>FL3wU(Irr>*oS2>P4A0@6wu=MHqPc=x>>JLS)O06btQsB~je0o9^&fT#HLu^DDy? zX6L;hCK?#Q+7$Bj_FZCMTY1GSE-sRyneI%`EW#roq|Jg*EuAIhX$kxb1?^Y8;rrVl z3Y1Kz31dweP8MmFDW$ouVQNy3PGjoxW$}~~y5|s$b`>JL`CF}NG0XHuNeju|dD0Ma z3zlZ*@FC!EkavL&xdW%h>f*&~ONBx;ND9Ibv&_3phqwiu0<%n`6R9hKRQRDX zOBU_lvjy!RjrT;-eW1i8AmFwJ60{3ky33~sn$={as{bQ{5`yn#=u*ilXBaC0=|$Ho zzyC12sF4TvkRyb=!t~0)kwEPXB>qXypU(8hu+Uj-NqLElNCb*xCA5@+WE~1CFd*P1 zEDcZIarwL>83I~A62C~xFe6gL*_@s6U=nvzwdJmyYi35*I@3qh2h&1nZ_H}5YN5Yt zdkU}sXM{vT`0O19`5@M4woLyRumFYR5F{Zzbmiu^u23W%%t*UvFXMmtyM+Z7-J|1z zo*p6BOl{8+;`80|`Nt9|bd~ZYI^u^}XBDQ)Tr9v|Yiy3wtXuGP29w-m#=K#=%(5aP z&|B?xCJI4{L|P5oW&tuHd64J>2hqB?6zd1Z_Es!RP$)Nwop=^SuiEr*D(!v9{m82| zQUjHrHcqj1Z`q1<0|m5BNl5|jDm!ij$WGYYZ;L;cKXj?~w@fK=6I}=Y!)D_NMB>;! zTKjTluiVi`ZHA^5EhK^lJwGdib zV-4~ry|Enr>B7RoBq4R7vB~eV7sGj8a-cba{ zXHpLXF}t2Cjm|w-?~m7>%Vj!mYspirZYlH;(A?J4)5#P6WQ;|g^WQT)c{518>b7|w z5*CG2Y6E0TgEvO(yM1x&(b9q_eHW*@g5}fhIabfXf%ZL3p$clL{%n@b=*W z0dE$moNli0AFmw!%%O;f(Np_Uj7dQsi75JRFm2~p^KwI}H4#9GHuiltNnkB|4;!&TXW1~HEjVy^YMMk6aF23NM$py`vW8VET zeT1QcTsvt3BX}VOa@R)m%PWJOFPV6`m$6KO>-Z2ap?~%7<4RA?thHc;7}iAt2PHY_ zSL_YWY{&_k@Ug!1pyRcef$t_5R$I%ul&qidRECP zDMi>_=v6jj=r!1v5d1Lsf|1uC;5>2YtsFOev6x1hRhX#j#v(27QvdxGB`V6aXdNRu z9mg0AW|`%(fIZK)%CrMJjaH+=3Eu>?Pdt^vs3$VCmpTgzlf+ir}AT+*V_ott%)D2y|L-5jK?YrB?SI>hyz9*GKKTbSsH41-!P?PmBc4{BT!xMd zPp+QU>nE8z%(QE5|7^7AU_lzyC^lQAYfK#8Se@~5Ub9@+<|*}ZWnA$whqhpGs{(KH zl)14~mcpRo_!<_GqbZGu!A^ZJy@{G#*PFl$qh-?0*M!72I&~*6rqj9y!U(!iUiBtd zp3SK$tj?7W0C_z4GolUOR24}_h|xWHN&Z^TnSV8uQYbr zl-IstovGDb*@T$9KlZi68$ZXXssH90uO-3eHAyW|AvG()a=g;};&kj~P+q<<$5jxC zWDXB}GBs~E?}wYoZ1)yJdsi>HGxhJ@?3kl^Ql49c3POh0&8(6EiY10KM7rXIIKHG3 zH7}nf#Srsd#KrSV9;LIIm~?A0)n!W5!`PL%ie96RwlWUuW|?Yy!i@IgfyF$flBx~P zB_T7Sm0M=ADYQHsazmU^#9bfJ5g92^GG-H{D>W%>=eV#b+bJFC;ie($sq%P*K#lg% zBlo)hag`hG+2(kiPb-RWlMDiCwKZxc}I%}tI>hk$KsLWqR0chORk*0Fxn_Vqnz)=S6 zOdljrRP!Or$rS4%Vm^-Q_N*p%=^7ZZ{q|g@itu!C@`6@S;`HYm^=2)U#basu9K?xM zt5KRqYu(4+ky~4f*G8Q5C$4gn;ZRB5FulgDuY_bSHb}>KpTzAJP=pYDLz}D`5q7!R_XFNQ)5CR_Ce6GueFR~qC_E?0ROyeE_osS?I&>H&{fx6v zw760``QRb~)^QTbj8%m&fjjI|Xrr8v1 zErbjZTys|?shX4PB6ddbX`?O(_fkz?`q~9Qg??EJE3z zV|gMV=`cMR!DeGdCgV~$l_wG_5Spm=A-%Zu&cg@qeou=UEI@s6YZKOC9;Np@GN$bh zCp11vO=VghG#$;jQKmC$CAn&ld8?#99Mf?tI~Txxy<(uY!w9CSXBZqDCxWKJumMrM-uj1$x5(x`T=|?N?CH%3b%*1--0@2gQHI3 z_~K~{QNl@oEc_EWW8dv2&Y%*HDD4*sEi8=I8rX>G50sO7#UK>>h8>1p?#}L~lkA%x z#A>nm*^8(L_Y?QP{}aaZvQ?Li+;)1|gLT5gAkAfPYu3i5=x=L^u)RAWhbF=^Wj`l9 zpr{Jva=bS;(o^JcJ!sO!V@uz>pRu~ z%ciiwk>lD2O4b!}4)kO_tx+R6ydNy0rBY*3+<=v5e>!TF%T>MH$A3n78d1?bX=A|= z8>02DEHKc3%UT=OuMzHIz}|ZQz^9YnadM9I@XpeKW4@&BBiwJsZLQa@|&&0e0HNY?xaI zeU_4h66rxOCXa_5yPU8W(L!4g&*~Zaq+DlAjr!+8_eitfi)VNZPj|-Ltx&#_Q0eC$ zXjuP*w^k}qPWSLFUhdma3pTgt@z2wNa}ihIY(`~xP4PKN19+?!LysI)p+aeW^vNW{ z<+vQlxTrTycw-1oIbx0!fq~>2g*Y$Xg_0;$nGBa%_{7W0s@`Q)Af_+b_*d{{T7aMq zt2i|OeU>I|SZcXrMJjes@t-Wuc8I!)Q&@9+st1pO<`iX>gr3+XTG=@|nsVvmQd57M zr+Jn<2=*HAmyC3g_`ycgt$Gp@lJI1ZJ={O=M;C;He=OvrtmDva)iIAmy zGPwByZ4r>n$T^!PS#y5fFevlwJSPd!%paSVm>^gBmW6G6ka>B{vt_SM4{>oql?zO6 z-Ud%eeo$xhNzucqA6D(tlxUXdrH|Ps8+}i)JQUIXQK)<+Q0EMX-r!qjz#Q5LB z9H36ez?1UnM*iO&Kw+-YtAFt_wfX$Nm;9z#@&!7Jui#fB%++rx}&p|LV#h$KEpHdZ!v% zP`h17{O18iP5RILKAf&yXJYqtIj^V#ysF4VolpHOOT40C>llmj{<$1G(&@creeaJn zzb)Ivy-}g>d9rE?KqS$qqB*H36_lmx>{(a_QKO$Roq77PK5oR^l4j_gBLib!cBKnv@Ry2t=( z#BO(*GX=fl8r>_q+q-yoScKM<{r)W`3Z0QTKhx8-QrFpH{u5pg*B7MHfy*H{Vr}5r(KC zc6>d0IzioOG*3}JHY$0h*3POgh6Nsrai+{L8Z<}vxA|Ss*}5a9#`;hVKyxFRmJ6U% z)f>%(!|8Yh{u|{8K(3hd8J&Cn^PqQ+sqy{V3Mg6v1P6!(5fB~jaMYQKL#BEAXq5iNTy^z z$7K%dXx~hQDc;MM3zh3}mx~@aBOEFeMvUsEOdh}Shl2o?b5Lmw2+NRs(FDqw+vE8- zFJ3sD?J1Tb%KH7gId>=on}!HBr(+Gk%(tX?O&6QoTpmD|>5uOLJX{Z_;K_eUgU$9E zz`P7cGyODsqZq(`b#``wTDi=nv(|r4`Czdb)DET6S!2LTvDt0Scc)H39Z?Tw!2R!8 zkV@xR@6WMYWK9P~MNNSUu|*c0^}#|TsDSFeEd#J~DWXn8Y|_SEX-q0J34ky2CO`3v zcc4};8poC?V(}Ujo8M&PSY#c4-*>v52Ia$>>&y7pRwBC($oEjV$8+V!(?!9bF}}MW z|3qNc`eI*$<&@td3gIyFZT1 zWlsZB%uj^m&G=A;cygTmQRgQJ2wri35rJOx(Wu{B{-g;&YV~3Nh*3?U!E};PSGP|BqUoZOU~EQCL1Ql#iia38|A31Uh&XP(FE2KGWJ@Xr0UAb; zYO^~iGnX6BOJ6!e^NQCk{y?Oh<0eXUhr#4WGV{7Xl?@P3CaWyAZ?D!l_2S!?|LX7R zpm{Kv7xafUq^PVsUr|v3N~ERzu7?xET|XrOF@U^1mW#z?6vH~Y$^uGs&i5X$nr|G; z-`>dV9!s$?dL6;9-(ffq-&%l`e*XM?51j1XLr)w}~35C5<6 z07#Q28lNXJ`ik@R$_y||lt3Lu zj)7*t5HcM0y#E}OkB{%GpPzJk6(pFL{!mIMSoh6Y{cWbh-q%0deFdJ;-(M!Z3T~$)f@k8qSoev0RR{v0u1}}8q^z_@vp#@L$Dac@me{5FU&43<1H;eHFP?4- z0k|2PfOq4M&F*-6ZB;57|5tB-h~j^pIRg+bs*goqP&M?&a>Osq|B~0E$B*rAug^v^ z~kl1L*U&^Y!>_N%pvCCS#EZ>co%5TF{8t zQkM$P{`4Dz^-fOy7ew-?Z@1>Prt%mVBY?}b`1tuvCvo6T|5R0A30HSH#{N^+BsQ z+9-$iUv?{3s<-NRJ2;^V;yn{BZIR>k1rS2v)Vj%ELI9Q_63dz@0vTqqF_0KWArJNN zAqckbcg zOH51zIe}jM^s0oPX*%EwNeF=JEJyV5XMt z-XHz0ou{Q&p^!FGV7kNx@0lZTaI8<29u$TE*smIh4(Odk>M$-dg|{m-;$E-XtcQNf z0R^Am(`H^qP3ZvI&rP4Te59cE_7lm^`o&=3V6gP<`K(t~BA-ffyU^!!&&%P8eCs5N z|0;>YZX2TaE-5=J#k;xtC;vkQ4M0$rvp{1@G_RXd3&E6n{ovreBdHl|drB$>Ux_!r zTXt{Fdx3M?SP^QM9$?6VamX+Ct&i+j629A@yuZIqLU-H0FDYn#hJnFx_KS_NUo;XE zE^q-Q5i}@d+HGINLW#-qlrH;ZlpVMwNTK!pmw@u)#De7g!=5= zd!E^6m?v%DDrkanJ;ZTD_|ZkK`O7ry0?=P?X>S=8QBe_es0X^9PU6rkaqXvxprtES z=pv2cvua*7dkuc)@k_Gp`-+W&jmAc%bre&Pd92oqgvuSfvpZLN39KLA8o`<;isBd9 z38D-@grP60>-ZeWXw+_eKEecR;rm1)apGDUE_ltp!ntNU+m41?wO+yHQ8hhj+(d!Z zCi0KO=5!~;2}O@9AlBO^ir&4(?>!u#b_ldLK zk@#QSn+CO^;oTz?@xpj#KQ}Ik0%Y4cWXL! z2c$i1q%hpx?3iG9`&5vSh|>GwG{O4@Z4(%N?&Zd83lrWNWfZd+e?yRAFvm5!oDrOm z_ikNWg{_n9RrMRox8}ntUP@VH+d+&rA;V@=s+w zbm`?hEH+2q&bpo^^4`jn#rp?uLzsm*n7*p>nD73x+s2egV7mQ@xw*ax4@d1nCB4p321o)NBNJT?M)0& zEyBTXAH;4<_pDTA^R^hF`<@}i>WrKp;`l}eFNtD>`EmT-Ihc(ipm(5mwY@G;qkK!ulac*K4qM#h>#c!)8 z6jLLZ1kP)-&1tMl)z}HyD}KsO`&LRWu21&#VtrjLluIxZ;ZB31M$U*r>QuJI|;3 zJR*v;Iu}FZ^OH>6Mir^zJ$gcZ-qb@Q-~HQq?CsFq7HmeUrHfLG>8Rjic-;Bb4F@`CLjsxj$uM7F!J^f+CUU)ee1R_c zY%<$UcFNn5r{{AW7Q9+}z&Wjl_x>@W%c*Q+)JZ`gzOT_OQ7;ZPO(N$-nJK zqs;~AZZSaGA4n1>l>ytU^azEad58gFhK|2jrSG=#~L>>L*t zX4gm8sdO{T!9Hv~O@71jDsBGzMqSBM^ihwSppI6@Co225%R);6fn-;`iAyz7(BjDA z1X&MSsbFUq>q^w_L^0jongRe+7kB3>?-lz!Ql~8p&5n>mSRecE;h#B9h$6|ZaI~{1 zMm0nPq}^~v#d>JO&GaB=1I4hbVv}0KV#gBx)W{tavS+WYok$>2kPx5xaLL+dSbl8O z*{PXRd;c)a^kX4^ndwspt_Gw*0Tw-=X;M+LvMJ9aE~smiO7^Fk?qqa|9d2N#+}5lK zKe^>P+%nPXz%2I|Cs#8x5hh|(l0gEH=Eyn$XQl5@FQkx z4%G6}XRSX(4pBISTTJiu5x%Vz@=sm3rr&~^itM-=X#M!0BDK7|qs`4#6-nw#J zRw7qUl>*qNKseP{QgZ)L>@EEk037Um3>4Ge9Rg@)cz*9DmzeudVmQw6hNM!+?8oGM zmy@!tqU{I=sSU4MyOg1|K>1E>elpvGv|3roYo9aGuyxB{GF~!YBA&OWjOJk_#f=DR8s*8wC&#;Q*U9un@%R#1#nedSMmon zcf#jcu3#2w_SqfgOzQqX$}iy~f>SbL1nLSi_sG;V!xJgUMv32J0el2LW};52GATvR0!xN}j^=G=@j{2tj6&8Qqw~f1AH_bm+S=&5^ZJ?mqsGsNQ6Y;&ad!Zn_0W8zvv@<+2dFV#Bo=Nojv zH!k54OO+JZW1Exel*-hdjJk^jIq2b1{LNbVnD1)2T#NSF576xBL0Kh8?2*|6u34pu z33YSMxB6pW&#w8us4@DWaFaZZ_e-6_LY`FofYI913oBlyCrjcckZc-cS+MUyO) zI_!BXpRjHh$r0*xBOm6+)yRTMtu(#i0x4asC^|vje^SebsI6VDXF>B9gkSc;m9Z!6 zmD|){MHk6#l_10)C#?oPdKfL*m&|w3C`$KX6`dDW?u+)e{6?E6 ziv(k#_s;)ew!2}z8=RT&Vd$CQqXXGE0V>8C)Yl6Ia{n)-dq<)nGPoQk(Va@q+IqaC zbY;0=eWQx7iZbFW*d;JJv0}{uw5?Xo%^NQryWKr0aXZ^1r4!M3Gz^hIMeZFsSE=Jl z`JIZgZ7`SBa9FV>D0li`J*qT2IOYySbPFN{NIP|g70ky#)CSg;|977J^o0NPP z^O43^;=wFiHGgQK>udWAc&t0ah247x)dT;;;?g;xOyC?~n>y2%7=^i9_GY!DK9SEd zhYGwxIMkwH~if+VIi>lJcy#~|l~hq!1;l09Ga zoGfuf^2C)B_X_e|;sZ>Q&{->lFGG5nM!{LYj+HG;1h(q&AVb$$0o$Y-GFviTLW`A) zUo~gG0!??&^590|kX+nxi<_k6AqxCpwfkW|5*g=*Fs`pqOTi_?NLj$E_RnAVpLRS* z*|LN^q&l^iGq^n_Kh(lKCJ&5%mUYDKg-fad7&Z~Z)Ir*Ei@P;JPpHeuD5~pwuhz9U zBell#q&j7rm9|dk!4<*srYhOUi;Yb233=BR%GoKIT*bUwYh;&(^2y+9BDR`px{T$Pav^^0_U?wn>@ zl_|{_wOl@%0@C%FF+1{>T8^q0$%7Q`W{Kjtki=*HTgr)!Hk*r1j~BGv_~DaJf{R}3 zS)v8^BZ2gZ2#xY|qNSw{u&9g_9?c5{^(PK1Nz)Ej3IUn*X#AOPy#=6^eQuVJUuYAQ zn>q2vG93U@WBK)Oy*OxU7Tqsaa!!Lpo?XblFxt{~;-NZMvoDlz157F3A?Sytsnw2M z?+^DDYBkPd{fwI9kqNpRjR001RJZ`?KzwZHp)DkG1ov@-ih)dL%(05rQ1ZLuE#E{= z$Sc5EN}Sd+4Y4kd6RA2FE<{;FHN=w1w_#x2JUw>0MMKn+i`CAmIcqj=WsJXC&t;r! zQm61%lYUPW)SpLdqu|5fV+2RM;jJ_UP;v`hK=S4?VPblN$>0R`r)-usZpHte?LH>2Y?b@HM#Ax2^H^>WIUXko4| zK6a?p6K#j2(|U(f&XgFwIP_|7yc7f^rAzu;fk9ucJPBXg2SjD_4h}A#Mw<7T{dKsr zX%1DDn%DKjQY34Zk~!4lb{CRa^VLdF5`LbY6rPq|U(Fk5N7LCTNC94Tab|nQ?l&g2 z-Gg@6RkX(083^4G>Y`n=r52`=jEAK0ZARxZ$Zp*;IRV{hz;t%@=DkL|c?MRhPrPa` zuj%z>hjVXjpt&M|tJQ-482*Yv=W}4V$ZXje9k^A%030YBIHO&CUJd-~Fg1DXBqV~4 zt6Ye{=%s)n)LM;xN>?SH-k^8I>deik**L)2f1S7Y_R?g%Z?|(0&r+dm-$}@_sxxaX zs%(4fJ|+St$_aDf?{jm+T1S6o@UrslMVcq#(5~M8H8uN%Yhe5h_Q{>wkV=A#Jj{PH z*}379j91mEOt|bD=938X9^u97guT~xpO}vOl19yz7=2hwtUMJ6&Zx)7skg4cIfXE- zr^;-c_8y%E(a#H3&L54^l)aTW2$p68!=S9>cL2$ReKbK0a2LG7h$kw9DOT+iDK$}= z)W-b%gyQUX*EB8iS-up9i&F8y#D~*vH7`4HzA`5=(}bV?M5;EI#k4dRb#v*aJo@hm z+u4BGion+h==Njl%V@E+U_-=0t5eZf6i#B>$&nH>Y4?KXD|4#C=v;VZY~n8VSjD3RGt-86%>$!XW-Y-W6leF-tG zE-ZuD#b>58N_13OCl#?6oLRS?dA2YVqvQOiD8s*sUR*`jMqA(hJob&4=y3>-e}ri? zu8Tj|l)<^WxD*}X-r^`m{Jm8y{SM8u!`h-dH+#Vh@?mY{u^jA{JtGxNgzb+J{jiy7 z_DUNvI8d1QSJXHkB~`oXU+drWa@il6H4ehj~REs~z^+Mx%q!@}tmDnN;O= zHgrwz(Q5=RyF+qo`pT^|i$_Nc#9ss(be_JXu^j0inbuHND%wvsHE(_;!u1(nM3@Oj zDwu`jMvA8BFwil02};xp`{?XRyDyCQ3sEb4<6OZjjkAku534w#*N$g%h8CAE5PoY7 za)rY!6)Z8YBl|(?9L4l$UOI8Hn&SP;7n=gIGv5Pj@JJv6g?+IYNIp%ZbR;4s2WcSV zxr_K6p|Oyxx%XiSdjwM`V7!IQo2>DHowrz!WF3r0>(9`K$XRUk_3<8w=S;uWK5GW1B{4Ah9o~JeNDa8T zC}AR8`Lj-WbG@RGKttKVKQ3 zCc?p20WjP*nOzld4G;ptGLGwVINpAQlsedNeNrGD_EEuMI%2gQA@A1^SN;I|#A zCOcyQz!U=FxhF188C=A@yVn>R0w0}sJpJeAL4a5B`{%FDJ4o))O(fm@#QE7uh%-jc z*xlm@4Vyp4+IR-;D?&ijg3E*8!3UWiJ%5A!F|yK+nff)-^?wL1~>sv zLk^%5`F9`>M8ShQtU#1G!3^BQbbER4_~azDUJn|Au>f4d1@AHpQI|g0zyZvMXD?M6 zupiw^wt<8<69jDuoSpC4B|JhmeBV5S1pdzPgjxmB2eJnO-b@nwx${kfGrJfJ5Z_uF zxE@L80$RVklje_)!*@Sck!W}fNJZeei`rnTs^TH4> zwP}b{pmZXlfh0vB1|Lp5a8x=}O1K*f=4BLwT|+Ool9Jj7Xwo1)F{E?vyTL)4$z#a0es2 zU=?eikT1)b3gi}XTMoqIm0&5=8>JPIB5~V$ss(=#t61ia=NydvR;eSZXx*! z9v%=A$XBWjL4o}6p3!)YybFWTAYyT_GD861ZvLD%6=GdIJv|*A9RLqr?+(ug7r1t( zN~epp{h94szCI0^A0IyxKXeKg)qkBzulYhtJv~!TQ|4c>FBIq`!CnK<7B%tiW)&nr z+Z8GbOqsE1H6HCswCs;$27j$55C~zm*a}$`XHK&a1rIp@u$~YW1`ZAnt##w>rlXO| zeaI-yLc?js)hCG$36Jg1X04K9nmrID3VfR7Sw3DlQ#OWh~yRS55M{Tx*(=FtKG z*8#Dmx7>RG^_A@o<8vS2iDR9fcW|F(cSGs zcV4(OfP#7zN7##GNZb#$!DKQL@>Fm4OWg$kqn+l5&@s_An}=(01b|jBe6XRA@*W!D zIkg7+V>Zj3hz{iE&xJ?;%^+7Q6KS{1XjTq|k0EhZcQ|eE6il|ZNG?1uFfoKs&&Vzv zV_YC+%JJaX>+F8)ok29H4z|cPhpZa|oF8otyc0saXbs2%P1#A{dX_uyVg{0>7&s^DRjl$Ia@!MQqzYCx$ed4YnW5%c!#i3qgC%T!_bTC(@*Uh=nb?AHR5%+1;}bNkavkH{V^uOhdr6Ow__x(t=QQm|7M<3SD!5%YgaYE#S7{ zE`XcGSViBG!D}u8%+lE2tt~CY9yqTp4S@MT(S1(QnfL;OtW&Pm>gDfe_jT(@u+1Z{ z?;%PVVy`ZyGsN*iW!`$bldRKfj4IF*F>ild0&>_GQR3-Gf+;*oE=;HgpQVR<1-lzX z%pm@@ShpK+rFe)k*V^{m#@naTIh!)DuBdV))!||Hnl@F<|F_oq$HE5D`Xrb91w_ zh@F4;JVR2_7m+7RtDi<+5gtEcwcObVB|r+NRFpvaAe(qczLoj}9;28lGt91$r%K@d z03JH2Et-Qr2UoH~%|Ga}jOrpd$IH~9ZJ+@6fB!3Cn@|k%VE2aGQx%4PW%7pp=^dE` z@R9&lrVLirqRrQU`mdXC*1>(!j~{Qn(BNfS?@vwL=sE^ z^q>9SJN;|)2JC+Y@_!>d{9hRq!H;lzjKcrxBT(G_TV5==t2iFidLyk&t3*)|ybApt)h!U1ZTvWg1k6X!{Yf2H^wLpVY8v}|I+ainvq z_q(hPdco7X{rb_~E}EPDF?eYSq)p8CczKY$amjmdk;w`g8bprncY{l6Z~A_Cm%u?T zbpyALs%;M0h4G21FSYLiE0|6aO<7Y8b>USL>tp8My<)19_2?C6c>K{!P5g`7M~&}n zkC|Wm8v3pgEZv^G@AaR<`xZXaa`Rk88&hrY{1E~*=m*i|Ri*#OEMbwosdrEJ)e}`4 z2=7t=X4qo>2JzXFhuB>w#bk&*Sg-R)lDKy8N&}m15Pr zoc<4CO6yF-JMs7fV&FTsCE#?^>Tm9lhCVHC0>V?pyZc#21p>`bh>l}q-fT8C;1vVD zXvWf@U}z03!tA0Ktn{{*UI~ zGAyfa{T5b1Lb|&JK~hQq>6DZX>29PuBt^PQX%LX^4(XCEK{^GbyUu)!-^RW7^}grB z`Jd~2MAx&{nseUko^y_Ik1=}yt5K3M@Z|%4o}R_+XUCdOCa^?c77?)Lmz&5pm*}xn zSrT0xj>OPV($kB7F-IwrZcSv(b-6sH%iI0&t%b#?QLWtgjZ%T>0~)!lkf+HcT$NHK zx?xwB2j)=$Bpm3K`Y&$4szx$#G6-Pcdj-iwXhGOkOx4aC#e-*WO(}} z#nwN73G#S*Q$+YE^_%lS?GX9u$=r=*iJzZ6)sx9e3&Mg0o^xY`y~X=aE!_mG0fM$% z490%CDvZ}!w=zWw1D!<=sW*jppw|8xRNrOozo2?*j+>j8#E(v(|jUCE6>`#KC zzT&+}(CHeE!O_YusHUEA+!*FFA0f|G$Q3Y~Kz^!U;Q9c&PqZg<`Qeo7nSoYGfibQD zMU2bIx2BY#A%+<3e4V03H7%MnnUoHyIcSJVMWiY5(NTcEm{=SfKs+2;KRd+EMUDokUrrZADXTv*=^%cO+96gQqI3@!1O zdVji`L8D_Qwlh0GUH1;?M)H<1WH522n=Y9H#^ZXDXrdlDuFss2m|*VMy@avaQ7_-? zp*>>I48|y|bBx=XB_hNaiPBH1N5DRm{m?G*cL$od#Ts8a%as|*d`TEloI2Wb*1f(A zc*6s>j~gvvy#Alwp=bYGaI7_mMxp{}p9hC%xNL32#)OJ3U$4_MnNp5SAj>xbA5Q|G zXtvrKEAM+CMj5CR>0Ut~c=|(FO?9@(Y7vU#)2-waD2#8|B^S595)=_nLvwR6C!jWn z+cc6U+$x4h>`DhJPj9M&rH<(K${>OoxwnrM#it5&<~(_&oIg^qu+)H0DQO9XHSU=x9S(Ks*6ct63R%zZgqQ!LTg*ykqobfGYAmgE7pUhuufJJxfnTW4gJ9! z9sPxc4=*~f>DCVp2FieuTtxJ8m9Z@E0<*_Q3Z`93&i0jFcrXWry!+12spIEQ19VVF zV?twfM@j7W2gxIQp7QuA#g2XAWtg=AUT$`D_V*N>29jThhWch@B7(wIxB@iADf7Q` z6Yz)P`a&U6o?e0D=OI_L(3-;HG5%4bwF{f^7_bd)jc$OiWdM2tq7^I@@F>B6N;=JY zZSWO{hM0cK5T&4Hm2{gGITw9oI+8seNqMz1t3h55qP9t+jx$eCOo`?ulnA43q11oq z9TQ!?EeJJG5z%a)VeF)85pxQf(;s|^Sp-49?fm|ck(-C>dF5g4?pn<=)QLR zJLWCR_1<1JPa*kQvIG1rl&lPxBUs4nPH1+gm}m_AxAQ&7e}ir&#vP!Aiw^+XZ|OVu zFk5e!i%7MT0mSp{F6b0kT}}Sx=MNx@4=@9u7(@O-`p>@r9D;(%Bm;HJfb)L@iutcr zpZ~v4dd>6G3lwQN(;w(Me!({YTI#K_-;7mLE~V&X4TkQUn25X111_3(yqu4JeA`@F z62#ATFeWu(MZ5>Wu^#w(MYuha`eXTt#`M)8^pDMFi5K4c^xw{&spw2TOKiV?qYwN) zRsQ&YW&;1u+}~GeOE)7Tk1)YO5H4D6=)QR-B>BddNZ>COUyh%qp`$OrAAAlF!lC~z z1Ol6fgH)2O{({?}A*ikGFHG(p1PbH;0~vY>01jtoB;w~P+rTrJ`1dt@><}lU*?MQ- zc}1gAtPR|3Qe3|0^0=QvYS+KJWq0u-5pdW%!~#x9^cAg!pl~lEJsoVo)icG=Oerc@ zsj1fitnqTqmfhj|-A|np(nohK5dn5OK{&`1j-=NSyw^hxq~Ol`%V^VJ;#XK>@pC`| z`{GK@jk!r0UCrv(X~4=VT~-L}-RVtJDM}h(B^^q~mdsq;y*{>p!WK4IRz!Wl1ZD$j z1thSZ1Fl=Z(X^ZoROxfPp7+}Q%YMoZXAVf1fc}fR6W?qSC{N@-7W}$Bmi2ABu|-8zVDCi}FQ*Ht&NryVt$?TE+X4u%lYI#G_3fRV^0EL^V*D2( zB;5ekW2^m1^11*($y3M$@If3riiu6@&;wOR> z4mQ|w6}cRqS4VN!jPeHnPLRKk|J&$mxENp&;9s6jK&hGLeAmaiJWc%cvF7}xgo*27 zTj1g@#B$FPxQn$F=7goBXlZL}17U*6is8v*28eHSji{UDwn^duZ+$!Tz&>t~P=)s%QXnNgcP^b|%hdsnbk+8o*xMZ)9WDmkt(gl-;&=Y_>2S|^Txy(GagFBC6t`NVw9&2(_a8|O?8t*JZ{gnBh`$6Z&G1( z^hf6hHYmpVU|0km%>oh!biX2vx^eBt zx{r-WIPHv!(ct0Xm$`v4B2XC8xCI#*KzGO6F>=9Jj?5YVRk|8~!sff$k+&vZXu z?NBcK*rMQ$7?v#gI3-}{n@?P(4)CkOsskbw%oV}b=RbK6ko-sqfJ#KENb^H%tO)-$ z@cAQujK!!qL(1J-3yiyfLsmnkkt${wvHf zqfVfeN-~~rTA?vg%Xt_J10&<1Tnv~DTn|>I_AaFc(}fX=@~hYZ@(VH1s{hAC%gpM- zK*w3a0Uex5r=Vp$C8)h|I(Wqi^44x9dQV=Z40 zuPje8r3>6YshS$)BpRm({$1B+v;7a=psDah=z_r3Son1&+Z50!m~EY3u);uua=`Jh zp_GRg_zjEa%4G?43$y|NmC9kGBSkkIZgVjNswm%Y6zC`f>{GWVCsojZ5uiJ8-<6bj zBD)2k%V=Ag_q?9T&Q+Rvn{9;-NG$P1H4Ae)c0i97hOM|5!yCn|EsG@eIqYv!Qy0xF z9ah*J*+n9fbO5-9eZMzD_^AAAq^5`=XC!;3Yh;{z?TZ z7npYysmJ4Z4}rDWs;MQDOI7k?L3e4aX<*yjB8j4+AQ-i~)H^z&?`}*#S!JcAW+Iy! z|3ps&Oc%iIHsibxScYMS`uj7Fklk+Tojb5;!t!qjAi@sF2PV{EW_{*`MgkFyapqo1fr0K1&}hm$)LTx z$Vh!P72YYZMSHz_K(66EoEhi|hbnf>h^PLv>?vbiTwU+>w+oNiM=8_JwskBAhI3X% zRyzWy&^k!3&zc*^#aiLKN#V@AdSQQH@#Bl2Li4LYsq?%pf*WQ6|Na?&e*cZDaJWAj zG(YP2oj8;kT5r~1QaJBom}<9qO|(oM@bA8C%_~qR??{m-z^(G{GLTd&L!038|3C5w zfs^OX`+km2$@st^0l>d44jo#@d2w;E)^X=c+=D;Ox03-Spvkqy}9 zDSKZdH({*p=lFgTw2dS!eVZNi77Se3C~?iz1L$3jkIiKx1Q|VT|6Rs z{Zt;r#pm~f?;pZN(Zrz5S|AoC_Bdu4Dq;K_XFC*dlP>Z^Y4V>Bu8og^q+viPfO#d@ z5?$yxvJqzF&WYw3)jiGMzX*$2%S=jog?t~FSTAlGJalD~G%bsYk_R@!vo4zjnhh@Q z2mMdoxbFfHmH$cO#gDprL1l=b8{}RfL!$+*cP-xcAzszM10Jl_NZcB>L>w~;ZuMr# z{(IISe{T14RvMZOAUMQ(tcsXn@g;#}4d_kJ@;U}JloV}1(gr)C7w!Wwv^cI2CiD3+ zJX*0eAIcajyv=e9@i-Y7utR(e)T*&F&OlPcV}JTW=>YAy5bS0L%B! zt_Lf)7)Ry#Mea2#YorUkGAbKaFcm>Btpt1z=GzJESyqp}+`yyY=)HyObMMXtHK|z7e zPJC)Ln=Tv#D6VthjvX`Go4CEb%?+F$aRrTafCTgAY>k9XGt*CmixS_0jox=jI*}FL zpMmz==-zi3zWP7GMmz8#1E0zn2?k1n8}x=zLeL6nMtZviCkF@r@f&l57liC}_M0#a zVin<)+9U1l_nAqTpQ-ScJb$L$e1{s=3Z(HVVomp>F+fd}x%WhTrHditatN*{1AYhj zZDV6tp|ij&76k=m5~cdFVjeWDa91#JgY=a`&Gg^cnr$G+4P(XKpek)u*vrWyd;=8S zd<4xGEwChBF4mfv79;4~&$6uxN1JY#`dG7(5Qk%`FFTSP5 z3)u5A?M#;F=^Ox|IYc+v4@9M<5Avsqn`>>?kj*QNhwicS0vWtygBXJF2XQv`ua95B z<-x>Jl1vK4sl&KOrneFdh%FpCcB)R!~Q$w^Z;1=5kGfoX6Ub%9$iS@XV&YTsO6 z^x&)LK(HYRwZk(^%AW$?f?*P<4kT7?=?w;yrNb>EXx9tY-(R=@RD8 zpFdAZFH=vu0e$VUg99VlvhOzws5fW8$r!Mv@s5BA%k3zAtT|`wBR^zG&V?D0caGM) zLn(f721LFpfwF$#-t8hw1y!>>qe0~_M`=t@MA#6m(!#>R4zbN{XKF}pId@jEv9ZZ3 zaSbe{J_CnZ$YUjZSvLfGvP~QDe6;4EXXXdMf{*Ac@dJSd7dI1%7`1$PJex^lT@Q?RqgT9n>5P**3M)=y*w`OXQ+D#GFIC=S~*tZk}N z!J!;e{JUo?M6cnFB}Mi1mq8rVaM=Uxppj4Ow_KJyIZ!y9mLs3rA@a%$p&y){$oToU^R;vVq_oh56U%y zEj}-%0xO4b(};61p9s*)l2~D&o2#72FWpNgC51Msy6OTmVl>x=Ix1p)nFUDsj?KdcG__wzPfY*%;zfbw`Xs-Ys{G3fZ_>U$H&9V;t(AH8Y<>``wOfIidB$I8Cpai* z=~4KD|F~`*{Z&FiS6B4vjk~F~HYx8Lg;aZKum}3eVk%r!w3Ya|$5)%(P9E1n zS^_>pvV+i>nw{dn6h~9P#Uv~iGP!@H2}46Ob}E&#Q5fC*6E)FRDnC(q@3P7dVtB;6 zb5>QaFyC3lO1ftLelM_E?d!{?S)5AO@nG?ep(iV=?q{N`rsCV{&oc?W^%4pF)mZVR z-ovHBt;3dAv}yu|)+6zFQvQociX*r*|H`5)N!@w{%s(=9IN8qHACx5$&qATx6y%?! znDhlx3GT%tVUcJ3GqC!GEDrw9s*ZITqp_kp6e*BKf@qee_1k7de5iD~W%UeM@!l29 z3@H{%FFbDR>GF(y_h&$nNWO|jP93iD~5hzx&K6A zLV}ch+ly8^(;n)lhj^`p8u4s+PpV=?cM$Da4Mn2TPJ8+vM9BTKbYf;nx;%WTw|^4p zztLXZjK|g(+R$gT$hY-;Hp?493$E)w|tR|6o>0 z#_ZMl)lK7HZ6F}Iuh%g#bbD0F$S9C7RI>~}x1fEO(Gkx9Vw+*yRK{q)?7imeVE{hs9vo(V{qB7jV9?_aT?k|7#)%vd{ z^f|ERpD24`GAO3K-gqbVQOMQ9q0e?~2&Q!v%V`_QK?jz6EQk0iQx^55?g0*_iltI*1mujHp)Bc_<$epcLUM#+C* zdXi-PEJ8P2!=HsTj$cYl^JVf)%%Z`pRp^dV^v3*l)+T!t`$DyFZ&Ux66;XMOeuzkT z#sVK!lEZq%QmKO0=vP**h+$&|rhHtRmHr#k71Mqwo+uLKf5t@0t;QPa;2n3u2#s<^ zm}a9gt8ve>cczP?^qyX$yXM@D1uc?)e=5xz+P5_rN6JPDnCBN zc+$)2+PWvEu4R`mD+o`W-)Fd*@w{|x9N`PM=xR@rjQCTgIqeZPrZ0>O!Y3h30z9Tf z<$*QTn~pgf(OfcR8?=12Fm4B^a|P5Q>W03ou)U&%9zm*~rhU!*H0(nzR{CQ#DQ63y zEc6&ME9|eb1tTqRN~SM*+t^!P?PJrxa77@GO70QCXHbpFus}Xk=8z)(CzgFZ?(@eY zQaH!>c&rSeVp26z|3t&*RaQxlgs7r*vlaY`J+*^|(nObD5u^jP3qk2eABXLe9&1p= zyA{?2zZ%t5$}bHSUy}Yz_oF{psYi_(g}$nA)5Ck?(fOg-V8p{Ns(zz<7gZbb`wSjg zd%kBd%7bz%Jq2|Vvht?5@jc%R^K?Am2e=APk);zJZ=aJN@zdEZ_rZUHt)wyCZa(d- zIlwW;sZq9Ru!76k)!|w}9wPwRIsG}OkqBG9VM@t;iD)IIRT!k2xURA2q)>8U{Mfq~ ztij*dU^Y?Rb0n`~&w^rhxsN4P<+BVj{1rDjF$*jAu|2XnV{OHYlrZ}3F%UW6%O=eA ziN;qBmyryVlWrOq~ znZ3vM7JO#$-bHabMG^cEqo z2mbq*{nfyZ17UL@^%lwUwuPfreC}%w7^#@KC#W^PC+PQya6)4C{Ttn^xCgXX|y_4IL<_GI6VX3LsZgKkI`?q+R-5l+@onr+vp zjeCoTk0Y9yJ@cch^mC3~Xq)_31B5E!lZ8m&7m2P|Vqm>dz8DowA?TaSGHgxPWawJ-f zs*PTw_tKeOm=*BfsA{xtvc9uMu%}IJjcCjmD71!$_98WWK>h>5V$8M00fF;$n+ zD3q#4FvlcHYy7~oeZD<)zVK$a?5M(xs@bfnn20HJtoH09?G@H4`U<|_c|qR9r?G&< zR6p>M)+C-aEei+hmk@4Z$eQ^9jYZqECRk%queXLFCB^jl6Xp?< z*g(i)BZI1O*a&-LV4P$%xu6qPinx=1qw19qTMflmvpWlq<5k}(zP|K{kMD}qR_ z@l?+i75#dZ9a6MIXT^XDu40Cxx^PX0>)K8@<-%g1pJc917o^d}4rp~j4QIr5cdsiG zs~8;L2$(WwkZq%zKB>QtAJwE1Sc;^+GU1jT|7*-?zsUw1V7kN|6Ro|FSWc;<@abqr z%k3r_(!4$F`(hWA^V z)BPa@J~j)!Nj&$@=*OJP2jceM%QRnl)A&Pk?tC&ZfumwSA&T?V>)P_L{_uumjb5RA zqg=+-vMwI@QMQRGF&Jn{cZ4T(iIw_S2_Co|&%L>v)oycB(V$_=ms)2BE1i+=T@MHl zla$M6UTyL7OnN4J`dXVB69(JqA|71Py z!&R!!*}KLb?pKU9fvl3F*82I?1n2t=WF+0Bt-1^pNM%OmX z?9EC?fQa_EZ3RvQ-*5mjvmmzL9%X*~SR{WqtVJ8>|Na1ggF}|1|LxiTGyhc<=`Y20 zEu+{)XL@}%8+rnox>1$2;O}+zrt#!Hn{{%^<;9p&z|&)iZR{#5;y!rQF451-FWt)Y zzy9;}Wa{X%>yHmHky`FlaZ|xMOCb-%frF&fRO7J@2zi?pr+2EIj+JWrjJZGhO20zA z21We`I>or`#9HwsJp!+oM*i9VU{4gUg1db;-|Zd+JgmpPT)xfsqcp&~4Dsy}N$z8?m`U3N4tST)a&N|gqbe{u z1PEbUT%r%y`ZI#V`v5ou3^5noeeV|o8`DOv-y70Ohk+_hG&`$AI*fyh^YcM#5?=T7 z=oG%kgPf1-dw}Pne3m#?4z!Lep}sVv_+KOh-!1n(sLVGW%^4CUaX;K$5CoS){p)f7y?846eNay25DvibU0hr|wVXKx_}a3&Z|;9y4Z!C+ z^a~ONp8<;x91Uxl4Zi(XpF)@q z>u?TdaIlrKvU1~SZN5ew@KOCPD=W*WSwHXYYr19Lk+*~V4{qtx*A40yYU=6^vXmY@ zc{0@73rg9f0dBtH?#ua~*8+&f#mQ+mYl>f7T-?r%m99%yPtTbo?cU#AEZ^vM1_J0H z%b^pTBC37V8fQoX{&uvrJvcsYv|fVQp?JAP6U5_jc?wXYWr_RqM4i9*lo7zA19S}h zQq;}O4FJuj!{(G692~5yqf=AP0O_s|L)Ck#dI;EVKso|KW0mOMZs^i4&WFQ!|6!L3 zs9X_8gVqsNS64S2NG`ah-OYOWn~oD80q3Hng4Vg^TI_;DzJOulXraahP#LYd``!!a zPj~A4Nm6(Z!h(Vn@E(j>rV@nQF6Drf05uO+Ybl;iBxJ2RWz@6Qzv#Nd7QkGbpX?08 zeZ@`HOw~!%Pc^C!JH`3yURrK@enmy#UQrOen#1;27Q;TL{bl$a3c_bWi@%#LKmrbo zwde{bbIUET0l+UPx&fB3haXcs7TuAkuMK zkep#3Zll7ZwvG^BaCDq?t1`$xWQ4y4nJl%o;-;-;lTat zR!Ts-=)AArsG!_TPWSlngP$&)3+|!5f4x1(P%3|!g*U1#yUoQuWW-xJayW+mT2N0`d3Qq&L925bqxgQ7p^?Jp{#X#h>o8`~~ zNHC>Z?1Mc>j#LfC+Xff68@rN-BB?yG4b(x;=Uqmb$SE$YA0}_+pLk}U+)GS zN!6=glWCc1ZGoa1Fz|Qp-UT@Cio3(#UBY3zDkLNXp4ka996(tCiE<3&DF-~REw^Ls zZoYJSditpxmjR&KzI^!t6mAZ{o%OF~0ulq8h^RmADp{GCTpR}e z)n{N_IJab08i8dts30gNeO2c`zcWJi*Aqc<1_e(pjiV8#fCW+mX%r+eaOmA0kH*67 zxYeF4)`3hp5=6lu=h3Sar-EMsx^CJ1{IAYv0f!_5=B+1=^C1vb=>fl5PzjSaLW1CM zdz9wa);?~w2ROeF7f)ojQ2W4X5A33wFU*Pm3Na1q1|4 z@BjOI0X?km4N8JND1#jW-zPXx5uBzSaWVz-SN}hM{u~^C*b;|+51j35e%$Fz#C|LH zRM*wroGyjA(U1Xgfaea7xPjbjzWwi4)z*H!9(hpN0T^3y3JM*5FaVshaqfQwJy2M- z11_#74*fCY&`R~Yhno{Spg6Cdk?ZyCp&874fpKvW)}gcnx)mIp3lxr*z_`>YW$dpQ zoL^kDIomgAj2`@q0_ZqEE}dUofKti1`hj6GOW>_UYtwPj6O-=hoGq@t;dd zHyk}YnrR(P`Oz?WEU&w@7evOjxMmebf`$jX%59W8v5Z<=nXy($MDjU*O!SSEXulOZ zm5>R&=ofo}Ixj^tUb5ND77HGt+Y zTjABXj&;z3;tEOXbb!-ggD%pBO~kvPB*ZtjxHK{Dn=SJcXias_|4@nYr%Wb3AbONF z_w;CIl*p)%amHPD>m5#JZCAJz#sb84~ZwSB>c%J&4j{elKOrD#6olWgpF<#ayL$POAB zy9EFnFIXYTz%!eXleknf#w~&I>le}uhfSjmI6MA3JZD3t^xXHz(~=4?uq)$>i_cDX zS!Gi&Hqjc16k1#_gj0&FXkf*gR$UL_qqqkQVEJ~{Brl z&YtzM;ih}$mr8d2DR!!8X4{I`47!x#_VW=U4XE^)Y@y2c_0{c} za8)&Cd|9Mv7nIMHkH6|5vDRJG%9~6)Az?J(;6V5PB+-nHT8TCHp66ozOb-E?=ucS| z^Maw=_r)t-`=lDoSUL;C!tW&uIIV%01|r20n+*r=rt2%hmud$zu}f$dlDFO0Z8l$g zA0K%t!Z1B-GX9ZNd2lo|qVB@OUTO-5nT>sZ(1#&~$Udbm+rGJn;mwn4v`uz5&-*Y_ zbbo5Xe68i=;<4(&?(s$E*uA*!i7bf^j5A1A!yLGZa)@_aHUPFTr53GKDC zRXT~UTiiUTI?c&}`qM#94$03aY}9k;c_SjW+1Kkt3#fdpxIO$yxFl>&tV?CY%zyer=i10XME@WX{@(fVvXuRG{V6jGSETvdml@Bd(H68S z;ODoh*=_ZNr5e0G+RwI+m%__$Rc~kMsvqwo6SmA*y})%hoT-FlaPCEt0VwauH#(Z8&nOe`MULzeM%KHV)?b zlVbI~24Xf~;x5DMh|W&XUrA|vT`8jw;VgU-ln^{r%>*T7fm54h-z+Xx@xyk)iD5d0 z-=Mo3(jR=E=6h0CmfH(icBY)KApmrv(t?Br^^Va8teD2EV*@OcE){L5Kfv0T-&a;Tn__F8_`B^ z-T#R&uXA-1v8E}wNSL^r{?34pR|ibru5Xx(IjFHSFOXB*;PF%Q8CfCiXKnXmfs?Od zd!$p);fsg)HR8q-*DghBqVizE@%r#}tjCg;-l6sHeI+@RYIjVZ+p+o%zUybb1!R>6 ztOOYEk5L>fR&Sntypb|PFTcBw^YBMLPkB1%8OiY_-O=;y3j~4YYnIaK_hTD3*k=Y^ zho_$Jvtk7q=ifnpx6|~1!+sU3=3{!RPnrd4cx&Ji!Ihx2t8eG2cd*aQB{lu(?^p&T`IkeYJF2cwLT$x zbF?Wz20sO6Tlw_NLAQ0@D1_MFc@y=(VRaapI4c2wVh@90o_eDl(}(=cRxi=*_}kUT z(ho{(x1&klwQw{6a$`a365-ojeP>17A{#UovArEz>ULK}(^e#O&>1pg;=E$LeW#a& zqlWlp@!c=g&4*Y;Nd6=iX1*G^r2nr6NLIFGnfoYJTu3Rz`Y4)?=enHe^w?Y_(r^#o z9{EJ|vry3{!i{GuJsRcaE1Xcg#C8u~sM5=S8mw-xEt2ior&DW!I(hFJN~d0{TUdYg zAeLHVw*8yl#@+5|qluIqXCwxN(tPIW+TsYr7|^D|x)I{eJsI%S&t zn2u&#_*GRy$naO0EoFmLONO)mA;jr%ZE+QGZ2@D^VdOvdlNH+7(|`Ebfe2V$>E)`?LI5;F3@%K%kt}qAGnLj@Q-3YWO5d77yo> zN&Jk9=aJ}w9M*h#+D5eTz(A;TA?H`^$@+Um4Qcs-D%mEI@6t4oZAD?HnMrjnAr(OqzZilmp7~eo)*!Mb`#3?y#IIxet{oTlXruJ{0lI zlDCVGofn@dPh_?eLSb6ZJB9%?om8gfGvGOMSYG%1;-KF)5Jl1~<2XrNE5D0#ZgN&z z2#glV@FufZ=}Ed7>lsUgb?Y!i=G=eyQNGY{M7f86PBm*ad9ePvl*EZ}x1Tpv=j9jn z80K(5;ea?7P)B@#WcG_dcSgYS)5)JK7c3%*%S!CIgEt&NbWg49B;HL}i+)$Fo0a=Q z`Qb8NlU&djlMI*L#>+t-t)@!{4rbbD9luCZjey4OA4vS&%7<*#?E4Z_rh%1mmX%ROp|e{F)XiVF^3H_H|6NuU{9`z!pZmc>Ciz&tad zCSS*!<;BKz39-aqlzLbe${@U0D3U0H*NSu){aWHc@Ecl3pG8v~W;pd;!B8L0)F9^v z*b!#&APD=ji@eO+J^az+aN&&V-hL|{0K_@zK_&cD&*L@Eqa#2|BPv|J#jHnLMv8?~ z=ZFSzj}*d6T^n0-t9zc9u?3?;XPM0~T2&rC-m@giMoqudQVikB)Mc6zE5_=NNCgUf z*h@5C;E~KCWJ~~BWdgTbsLXpi1;I@1Md8e#G-@yLt1mbn8TINm524unXdZPZZF+~G zs%|6~=On?{;~T#0lT5pv+WF)Q4<(#tt=k=6H>hW6%<+pxl5(@9lzca+z@RC9t{a%T zb}V5sQAXgoa!fIRSq$fcxxwiPHSL=T6DU)tvmeICmtwQVILTmBq_E#emijqhd(uor zuGy80CN6Iz^Vq9f)67$QMT3X;e*a4k=_Tw+qMo|Ki*9X680IIC+^*1ZpYz_7x}^}-s^7)sDgLD8 z?Z0kf(8MIVdgt(=`{s`to!Be!C)0rM7Rl=5dNJ?NK}-_7&l+ZU*5UMXJZhyqja=`Y z5+kB?6gEOUg=`NA?v&qe|?=6dh%qkJf;U+2&B413)wN9i3Jqw}! z80I0^MUcY1{MyhqtCxADyt%3cDFmQ5a2v{DZZ-4+4a#&mSs12zB?=)M_c{B-CoCR3 z0Oi=M$O1D|c1g?V4pFRhW23F8zM6y4v~^b3NaHg3;RdwS5qbQ?G!r=?%bR>5 zbSx&2Q^=8^oc*yho1h#wF9zNiRPF5Pcl+6uwbj`#<15uDDua^wVp_@G7=Oq#AZcE{w9tTdB-+_@vG>j)kmodnsOaC1IVU zGFWa6!OtIkE_@I}cTxF@vC^d6EdJ*gqo%%$53?C_NIB%Zs{5UMf~h<6PVP`~`9wdr zPCJFCTu1nIc>`IQs*Xad_SHj+aRTPv^#&oq^Q+~0KP_v#svP5*s%5U0I{1B6qj}6+ zWDI|PPa!GPX|i>Y(-$lGh{ zLU|;FI~-*gm}kGhmbn8df#PAw2Grm}X<|bV_bU`wi;HgM@YS!vTMVihXoTfEvq|~) z>rd3 z8iNnh`$2%R7mG$dcVl!V`AO$Uasdf3H6Rlcv3jn`&{gh_@8iwcPPdQqC+%ZDHa$#0 zHXN%(?pHok{GmxXEL99cvFfvWG-V4lZV@69@EN^7$KRSo-r3mj`YvSd(SwF&JiIzN zPVI`WiB$b6KkD8A&Vfiy_g8zKvYCF&(6up4SB30sIJB)~5Dc-6Id;Idsj+G4(kcyCw2Np`}@rTaS)Y2BMH zEczRV{>G(q5*N}2+AFRvFe)J>C#KU`_b z$>lrz>f+!Mktkr?1DXm}3wkwDQ6+w)-^m?iDsFVODzP$dA=bV@twSCPNRVKqjlM9V zEQZeiI)yTdKyG|E<nSE8nQS(>h@ zKF0|i+}@GQ)H{znC6#pUP@5vP|Z%Tyz>C*a+1-sb-1Ox*+C4fc~@tU=S z3p$>%PsY(G_On~8KmGU3N{cPf3NMrizj~9cN@E`4f9)n@76GZ<|eqFAa!@ zTB%ktuLAVX&6oL~jb!ld`cQ_S><|TyD$D8H%H?FN1GNM9Jx9}(FIr4mL(09QW@PR~ zz1fI|dUm7!gYB{?Bs|Na{f{BC>W!Xwc(f-JO-vqP5)+2K`0Oq_EATy=z~PAJ z@%KM+A~-T2YtX>M;G)+Z%Q>3EYfCZb@_WIOH4kuN6ol%E7`*q-p6Cl`5^tc|v9(IH=lbIt zizfY*IK?A_jAKnaw36ecLCT<5I&Pa~IBHm4R`xr_-+@#RoBkCZYKd;&A{$Bj50cs& z|58SMQ}ffR6OjV$WfDy8C&tz)qaOk6UuU!OfOj$bpUo`36F{N?SJX;D{?T6uF{Q2x zm6*$XQ^sRX|5P{J!$M48KSyIt)VGwbb(g}p+MvQRD#JJ4X(t~fk?qA;} z^U3~ll7P+pT=!e*+mMXKMfZsglxh3!;zuQ5^V~zI?~OF&NHiRKb39UffM$j)u!@g< znX4nxHE(ht`UNrZ`BVMx^`ypfVq#t3EJIRHh(djDsnZRXFtF+R9D$XKhsOi(eE_dV zet?|7#_QB^Ssoseg2C+8;dYY%o(_H954V><46|f%`p|McuYu0Nrz+Whh`5}qMC)9} zM&*m!$@N{>dj$0h4+-)6JU7^l`v!|~jaAg#KEi}1Vlf+z--FvbbmlL^_N9YE_NR>m zM>vAxQ2_(;7#vd=L}HL||IfC#_%R@dy?pO2qNPZybEZ0^(jNE-WPeFSfQK_z)9yM= zc%vO26V1+`J-a-0peof>17u%FFCeG-6;}b0v^6=5hzka`*8PHg?%wBzpoRc_AKgK4 zcOX@vEE5ETAiml@h_U^Ga*O|SQcAw%rLG7HAX-?JP~`iq$Bc0E^5Wp)YSo%eyZ2j` zi5nA^52y0@m&}qVdOt$=t_0;T0VdQV5>=dHgMCQ1nY0 z>f-nF(m~o^x7H;4`6`DGe!gFt@-LBTgTT+X_}}|!&&}Q9$9VjB^HpfT)#Ai_@% diff --git a/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/diagrams/deployed_components.puml b/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/diagrams/deployed_components.puml index 34c7da665..9f3dfdd94 100644 --- a/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/diagrams/deployed_components.puml +++ b/edc-tests/src/main/resources/deployment/helm/supporting-infrastructure/diagrams/deployed_components.puml @@ -1,47 +1,20 @@ @startuml -!define aliceColor 66CCFF -!define bobColor CCFF99 -!define dapsColor FFFF99 - -node PlatoSetup as "Plato Connector Setup" { - database PlatoPsql as "PostgreSQL" #bobColor - database PlatoKeyVault as "HashiCorp Vault" #bobColor - component PlatoConnector as "Eclipse Dataspace Connector" { - artifact BobControlPlane as "Control Plane" #bobColor - artifact BobDataPlane as "Data Plane" #bobColor +node Infrastructure as "Tractus-X Connector\nSupporting Infrastructure" { + node SokratesSetup as "Persistence / PostgreSQL" { + database SokratesPsql as "Sokrates PSQL" + database PlatoPsql as "Plato PSQL" } - component PlatoBackendService as "Backend Application" #bobColor -} - -BobControlPlane -- PlatoPsql -BobControlPlane -- PlatoKeyVault -BobDataPlane -- PlatoKeyVault -BobDataPlane -left- BobControlPlane -BobControlPlane -left- PlatoBackendService - -node SokratesSetup as "Sokrates Connector Setup" { - database SokratesPsql as "PostgreSQL" #aliceColor - database SokratesKeyVault as "HashiCorp Vault" #aliceColor - component SokratesConnector as "Eclipse Dataspace Connector" { - artifact AliceControlPlane as "Control Plane" #aliceColor - artifact AliceDataPlane as "Data Plane" #aliceColor + node SharedComponents as "Additional Components" { + component Vault as "HashiCorp Vault" + component BackendService as "Backend Application" + } + node IdentityProvider as "Identity Provider" { + component OmejdnDaps as "Omejdn DAPS" } - component AliceBackendService as "Backend Application" #aliceColor -} - -AliceControlPlane -- SokratesPsql -AliceControlPlane -- SokratesKeyVault -AliceDataPlane -- SokratesKeyVault -AliceDataPlane -left- AliceControlPlane -AliceControlPlane -left- AliceBackendService - - -node IdentityProvider as "Identity Provider" { - component OmejdnDaps as "Omejdn DAPS" #dapsColor } -PlatoPsql -[hidden]down- OmejdnDaps -AliceControlPlane -[hidden]up- OmejdnDaps +IdentityProvider -[hidden]down- SharedComponents +IdentityProvider -[hidden]right- SokratesSetup @enduml