From ac245e1479225466740ca4c7a1080386b3e95af9 Mon Sep 17 00:00:00 2001 From: "aravind.est" Date: Mon, 27 Nov 2023 15:17:22 +0000 Subject: [PATCH] First version of documentation for rApp Manager rApp Manager documentation added. This doesn't include participant related documentation. Issue-ID: NONRTRIC-957 Signed-off-by: aravind.est Change-Id: Ib9f0db9dbc1ebb493e290fd32a2b958952ca69f4 --- .readthedocs.yaml | 33 ++ docs/_static/logo.png | Bin 0 -> 43935 bytes docs/api-docs.rst | 31 ++ docs/conf.py | 46 +++ docs/conf.yaml | 3 + docs/developer-guide.rst | 61 +++ docs/favicon.ico | Bin 0 -> 15086 bytes docs/images/rApp-package-2.png | Bin 55881 -> 55493 bytes docs/images/swagger.png | Bin 0 -> 3590 bytes docs/images/yaml_logo.png | Bin 0 -> 3477 bytes docs/index.rst | 16 + docs/installation-guide.rst | 89 ++++ docs/overview.rst | 107 +++++ docs/release-notes.rst | 44 ++ docs/requirements-docs.txt | 11 + openapi/rappmanager/rappmanager-spec.json | 663 ++++++++++++++++++++++++++++++ 16 files changed, 1104 insertions(+) create mode 100755 .readthedocs.yaml create mode 100755 docs/_static/logo.png create mode 100755 docs/api-docs.rst create mode 100755 docs/conf.py create mode 100755 docs/conf.yaml create mode 100755 docs/developer-guide.rst create mode 100755 docs/favicon.ico create mode 100755 docs/images/swagger.png create mode 100755 docs/images/yaml_logo.png create mode 100755 docs/index.rst create mode 100755 docs/installation-guide.rst create mode 100755 docs/overview.rst create mode 100755 docs/release-notes.rst create mode 100755 openapi/rappmanager/rappmanager-spec.json diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100755 index 0000000..cd2f8dc --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,33 @@ +# ============LICENSE_START=============================================== +# Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +--- +version: 2 + +formats: + - htmlzip + +build: + image: latest + +python: + version: 3.7 + install: + - requirements: docs/requirements-docs.txt + +sphinx: + configuration: docs/conf.py diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..c3b6ce56468d87a3d9463ee75297b3895fc9a414 GIT binary patch literal 43935 zcmdRV1y>y1vgqK!-8I48-Gh5@cL>34aCe8`1P=r!c+dd`w=lT7ySqQWbI(2RuDjOz z0k3=Y>h9{2y{mTbUD6%(MOg+Fi3kY*0HDgrN~!?>P>%11%Ln*(hyYMu_5B2EC9Wh6 z0MsTRKbyk6-&2^&swn{g-ZTI}U?>3a_znu(2LRmI0Dwc2cd85k0N*LQRaFQ8fJU~~ z&;jZwDGHc7+OwEiIGS0qc-lL?Qvd)$o&xWe_Le|X3Qv1G2Uh`4;ZOg<5O}}-2h943 z;$J90Tj5VSN?#}>99=9axLLSZ*glCMQBY6_xmbJ^P?MDYH~IUW@TYG;ppyVAtA~dN ziw7r*ql* z8~@8UN1)@ou3fCniaL-{0sVS91$cT*8dn< z1PNV=AsGM=1IS5=Yj{E(wr@+G9 z^hp-7PIS_oS-wV1l&UDjW@2DR(VS63abL7hvm-UveBfha`_O~J*>n6Ch4Zg_x~uZs zlYhn2oMFis{~c4)n9)s(U-{wP(@b@_zv0bE>x|}%JpUfk`u`XEI1RF={qTV07Ss1A zxa)R&l(L`QHN)xB(-ZtX4BD9`!IQp4Aby7NtCW%mB^?C*q7W&0AO7UpSv_lR+VL(S zV=rumFA=!@pAd3AK1|T}(x%LAmE(|T`kxYX%VoR_$B?Rj)3@^6i}b6r=Dh@94f7mvwg=$i2|8C8>s4Z+BE|#j7a|i(e8Cflj>OJJ+*TJDSI<|xy{gFKL94>cfm zP%x865OQ^itF$s9v6fP0C_o;Pm;v0NAYoaaDOi`-DHj>oM@RJC{tMrv5?lP%2UiUH z^K@YNsLHk!7Y%g|lYo5?Z`7}mzWhO~b;fh?;7FQza;P^7GK{B>&7=&C_d!j%6_fpH z>%!~?*SDoG$mrf@E|l)`11+&k>tI1j2?6d@X2A2+%xw&wX^Jn1;ob`B6atNs2eU2& zQ@Dy7$%=44Dt`DeRO0*>15D+$64mukLc!0<-a_D%MO2mSmtx+eA~OjYd^!aguVm!; zL_4>0WsBGjy5B=MuyGS@vk1b!J>Z6yP)>V{Foc57DJ9gsvjm)H{Lhk>qD>u6=XCSg zk@?OY{u(KJ!y^Ogh5qbmx=wG`Zb9i;Nn8t2Y&;O)!ZfreLk-42eal!3j0s|gmX(N+ z?sm>_p}~6mNGEMNoP>aX#DS^6!+6fqBI*4juUD!whxH*5&|YdM>5{DMswYhjZH2Iz zKmnRne}(BYyGTs@X_D@7bL(v53en9^gCp^rtNXsC{RiMQq^;6!k}JSdC;!mp1t>%Y zOpn1+k@tB7*EYFp-iYS(5R9l+t-~ zcG9a#K^_^72IzSGSz@a05=%WbYwax*%_SI~M>6TCC)X@%d~&LL*>IEZgEOZwGG^=> zRQnaQqVr!-LX#IeTv&XlXBIJN#h{D>bcm8nK0z7gI#VGw7kzqKY9jB$Cy9^47j-=+ zu#W1%r6{VpvY)*a6BTRE&4&plhm;S+w5U4i4KsEC@-H|75qvA*Rihb2|K{ngd^Ck(wn=336Zn** zlw7m1QDTQkZi#9Vc7XEA0cD^oFnkeB5H3R~5ouu?;?Cp}n^ zkLxmZ(h#JjgR*5NxL@DpviG@uMY5Vc!UM&5H?Nfdl;%GPH)L7l#Z2(LCNOEtnNsm! z%bH9%kS9nV3Sv51K6}gZbjk^T{iex^3;XJ`m>YwXMW$PSzH1I}uf{Q3hlO?`k%)1=#Oa^)S;wD{rdTha!q# zRY_J$at2x!VUsp8^+bTobF7hg^#-=ikABGlCk=o^!o6kdWF2P^Z%Rg;E~R6k_9ayoM{IqJEZ+uk z(qPKP54xn7`yFuBrV5PXP=(N%3#lod>BDC~XRn?I*WlYR_MI!{F-AWR&pAk(gC2FA zF1Z&P=xP6}Rs|A3umtT?SPpf^2%fDK+N2jhVcw={SUUm(;R7EKTJdwt;GY8wJ9!== z#4J!7A}Ef#TYyks)_@GH7>p-c4od7xctG|ewo7)p2gnsGNj8$5$6Kg|;&?{vAkum_ zN=yZ8xcmEAPz6MItfYmgqGr!+{j)4>@j4Z69)+;#R$dm44Q!tr)z<8%eiz2o?qEWF z41gX)B%tDo84G1EMIQYAA-y<#g2|t71yYUWS?}a@U7808WsC!<`$o&RM&hO?$}4(J zJda#UKPu@Bvw>MYZG?^ifBKIP-z(xIbqfvtnJT&Gtma}b@7XR0@t?L=A}u)HbkZoH z%ldBXpRjpn)DWWY^mWcd`p(X)do)ge_MppT8p*q6yJ`@ZIiFj3MX>dr(Pt6JC~hqrUitn?hPUGDb{+Zn;|{8c zyR)^WHKAv9(;z_){MV9Pz%z3gPP?Gz6)AANr4$L>t9(sPhF2^lP`qv#z1++x>i+mP zNxA!PZF#(gz%Ym552N84{>cIAR>?Fj?D%_{VYbL!j!-(o$Z{GvU9!Z=K#x)GWmPZ5 zj(fxzj_^;PI{D&jQa&H~|b zdPv2V9#~1*o@Nrer|nmLZZ}gT_gYt=RT=kh%~~%P@WzRHGiw9=FE_nxluxPmO**5l(>L`dV{`f94&LrDNg~BDvDo>f zd}*SswVJWovEsZm3YNIAX`nxuY!`w`QW@30rbi&k^3(y;5oHRT7k(g2jIQRJTl|=1 zQ=(AA#?qkz{NAM{a)MLeC@K+?(7|7K4KRmYhOa@)SELn~65&?wcemtF?G5A&!=U|& z-HUkYb?-&Ol2wRq)DgU?Y_$9KYs+YUO=4#yg0kl$s7;j-4xMH!lLga zgg$hzxk$bZjz+2QexapzVHDJbPxrt@&NxUcd{vmxU5i8OCH+359j7tDPPqVp^0&)F zguNyzmT5hlR25HytG(j6C>4^X?I8?onusY@(WC~PP>DSf6vzl`3gAIELfM?7i1l#t zB&~My<=nf^4>n?el#JBA|3cYWSN_Ns=|#pM$A&LP&PZr-7ta29FVawB!3|M;sZ(Xk z>%x%ksbXTixo!CnXNfBZdF1zz0ipq9iU}|dsgU5anHgzEaLuX?0e4$}*2Vag&rU&= zFV~LM_+SZSLt$l*WFns!v0(O7q&lFAOQepjqfcVxz(J7<$BVEH;=Nb=dKm=_OM$Iq zk4B4sEbmppFt@Xop3TNGRiiQ0o8qjz{uPy6bN@>rLj)&-&Oej{!R&Ji4QYbgLR29~ zRHg7`{5Mm-9|X$VihPq2M6A;ze~Zvz#${kqDKn7sku%FOOGN?yK8!ab{!QezDQ@{w3(@!ND*C<;;`P9=58 zQc?Iz@=V)s(XlZ-_kO~{Fuwk^^||Q^el$hSf*8(mg0LiE7`JZ}#1GCE%gsVy%L_rK zyt>D2{#BSeZr|6kY0QEfoV5$G+T-~s(AoaavSs9>J*sr(cj3#;aanOccm0CVy|8d0 z+Mqf0H`-Ky%6~tL5lNjs(Tu1aI*tRHLs}#Wlk{V}-lJl$Y}4T6-VB|m%z+Zwhb*B7 z80a^)*4@F@(9v}$nfZ)19@iOZw#TTX9~q%#THR{ANWEN)266Ck;bD0?lF*wm5TL=n z`|95$mrq%^o&#PV#RSzv9YT0vDG&npcDFKPyj)|)N3&a)9o0PVY;k=ZfG)?zD<5^Z zlznnw&Tbcd^c?n6as_Uqkte)FV0U+#`->6(1e*i`M6clhsBsr`CTTlzyZMCty-`#+ z?DzreihBv&H1Rc2(jql6ai0ed5Php(*hH|RG)JJM z7hs*}>n)VHOy~^4nKWgm^1(Hg+nQIE#UY4Hx%A1s`cSLWq(=$eur8qe zZCRntns4B2b>^>t{(

r@f1gRWk|A*%4`3la7*fhEBO++ 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 literal 0 HcmV?d00001 diff --git a/docs/api-docs.rst b/docs/api-docs.rst new file mode 100755 index 0000000..4ba20ec --- /dev/null +++ b/docs/api-docs.rst @@ -0,0 +1,31 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. + +.. _api_docs: + +.. |swagger-icon| image:: ./images/swagger.png + :width: 40px + +.. |yaml-icon| image:: ./images/yaml_logo.png + :width: 40px + + +======== +API-Docs +======== + +Here we describe the API to access the Non-RT RIC rApp Manager. + +rApp Manager +============ + +See `rApp Manager API <./rappmanager-api.html>`_ for full details of the API. + +The API is also described in Swagger-JSON and YAML: + +.. csv-table:: + :header: "API name", "|swagger-icon|", "|yaml-icon|" + :widths: 15,5,5 + + "rApp Manager API", ":download:`link <../openapi/rappmanager/rappmanager-spec.json>`", ":download:`link <../openapi/rappmanager/rappmanager-spec.yaml>`" diff --git a/docs/conf.py b/docs/conf.py new file mode 100755 index 0000000..b7d7c49 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,46 @@ +# ============LICENSE_START====================================================================== +# Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. +# =============================================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END======================================================================== + +from docs_conf.conf import * + +#branch configuration + +branch = 'latest' + +linkcheck_ignore = [ + 'http://localhost.*', + 'http://127.0.0.1.*', + 'https://gerrit.o-ran-sc.org.*', + './rappmanager-api.html', #Generated file that doesn't exist at link check. +] + +extensions = ['sphinxcontrib.redoc', 'sphinx.ext.intersphinx',] + +redoc = [ + { + 'name': 'rApp Manager API', + 'page': 'rappmanager-api', + 'spec': '../openapi/rappmanager/rappmanager-spec.yaml', + 'embed': True, + } + ] + +redoc_uri = 'https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js' + +#intershpinx mapping with other projects +intersphinx_mapping = {} + +intersphinx_mapping['nonrtric'] = ('https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric/en/%s' % branch, None) diff --git a/docs/conf.yaml b/docs/conf.yaml new file mode 100755 index 0000000..ad3629b --- /dev/null +++ b/docs/conf.yaml @@ -0,0 +1,3 @@ +--- +project_cfg: oran +project: nonrtric-plt-rappmanager \ No newline at end of file diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst new file mode 100755 index 0000000..e1dea3c --- /dev/null +++ b/docs/developer-guide.rst @@ -0,0 +1,61 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. + +Developer Guide +=============== + +This document provides a quickstart for developers of the Non-RT RIC rApp Manager. + +Additional developer guides are available on the `O-RAN SC NONRTRIC Developer wiki `_. + +The rApp Manager is a Java 17 web application built using the Spring Framework. Using Spring Boot +dependencies, it runs as a standalone application. + +Its main functionality is to lifecycle manage rApps. + +Start standalone +++++++++++++++++ + +The project uses Maven. To start the rApp Manager as a freestanding application, run the following +command in the *rappmanager/rapp-manager-application* directory: + + +-----------------------------+ + | mvn spring-boot:run | + +-----------------------------+ + +There are a few service endpoints that needs to be available to run. These are referred to from the application.yaml file. +The following properties have to be modified: + +* rappmanager.acm.baseurl=http://policy-clamp-runtime-acm.default:6969/onap/policy/clamp/acm/v2/ +* rappmanager.sme.baseurl=http://capifcore:8090 +* rappmanager.dme.baseurl=http://informationservice:9082 + + +Start in Docker ++++++++++++++++ + +To build and deploy the rApp Manager, go to the *rappmanager/rapp-manager-application* folder and run the +following command: + + +-----------------------------+ + | mvn clean install | + +-----------------------------+ + +Then start the container by running the following command: + + +-------------------------------------+ + | docker run nonrtric-plt-rappmanager | + +-------------------------------------+ + +Kubernetes deployment ++++++++++++++++++++++ + +Non-RT RIC can be also deployed in a Kubernetes cluster, `it/dep repository `_. +hosts deployment and integration artifacts. Instructions and helm charts to deploy the Non-RT-RIC functions in the +OSC NONRTRIC integrated test environment can be found in the *./nonrtric* directory. + +For more information on installation of NonRT-RIC in Kubernetes, see `Deploy NONRTRIC in Kubernetes `_. + +For more information see `Integration and Testing documentation in the O-RAN-SC `_. + diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..00b0fd0ef0b4e78fbb8cdb413ce84561dfeb404f GIT binary patch literal 15086 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

4K$ruCE1 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 XY+}&}KC=mD;X?Iq*l*cA?B4$ePY*3q literal 0 HcmV?d00001 diff --git a/docs/images/rApp-package-2.png b/docs/images/rApp-package-2.png index 24e9fb12de1fec03edf30dde15228171e023b2dc..eac38d2223a617835b02754e322d23139c052591 100755 GIT binary patch literal 55493 zcmdSBbyQr>wk?diyEYcwg9djr-63dz;1YtnYh%Hk#v!=7+w1(!J@=h^ z?tSOoPsS&I^w?uFx^`1ltE%RlYpxxkq9lusLV^MX1%>`zPD%|53i=WX3WgI20rHp6 z1F9B~3$&A(tOQiW7}-AL2F^@eQ5*`YIu7*-2oJeOwwL?t1O-Jv`{x7wUhT~p6ckwd zy_EPzcm1OkL|t4n3dA!5B(ETtnlSC<)-g-HrpBiF@^TmFMGXV1dRrZxdhPO3?ZQQZ zk7Drj{Ps~lC?k((8Bl68{e!(uzrw=EASqG5o)&X%{7M{la02z{BUF491cO zA5z;qMWzbI%FAOI`E$jW1u7v?1^?hjagsoylIl}U!-ZU#VtX>NB#=}c@OJ(*iY%Sq z{f4-L)cwBma`4x$ZF#1>{e9pv7-+tb$7lfge(;RqHSdTzpwMWuNUy5CIxs(o)j*p{ zfDRC+p1lsTs4(AI4rcf9kop!89;MjzOpitaewP=KNUl%^|5VGasqq7Gc?@~u?Fv3C zy1}Rybwhvkzx*Od^OZwSTvo64suOutIOb45 zev4y#UQkDML{2L9NZXKrB{3LPQVaCmIl?b6`vROnA~d(OJS$|6d)-GpGq#f_^czkU zD$mKm@>&q{%S`W26;fot>*?>up$S9xFE7V8_(?>g)GIpe3Ebf%M|*Uo5+Mg;G{_VV zhNJf6j*0?@J-TL(g_h~S;&(WpxAY^VubG;%ofe=C>of0Zle91}PcO8=_H&>h;Z7cM z$UDf861(t@zd`woaAQ8{K~&V_8dRwJJxSfF>Lv-9t~?8BWg2iM z;DOOtM{hLHqRMdn7~-RZn(vz#rB7Eg|8eG($kpw}_%;9)NqO2|vNhJ-?@sEHp8(cA2)y>n1tGubDElh{fcZkc{o#6nFW~iv%b~CI%C0i zCgw62X03)=f;}li(N8r1Tg$!&z4@=8oD*0MuUQeeLVPO0E37%6DN>t<=kVdr_|t>P zw|x!ezGsh42nfobV}o+{83x(m__8RyPVkISO)u|3gf`U^*g9cr5RQmpR*E2CdZ zKTuAH^MyeqF{KZV*Nm)yx=lw$OE;ckAHX7U zBBZ~y?Q)|zN;tYi-DzmDV`~yRnMrlIV8!ayMRWoxyG^v(`5`%4LY#f~`((BT>LDhKo(ukC2zh zy0oT|LNa4nFGFrP8}6qSL0d)+<)8qgcK7vw2vZOC6rG|c(B?HWVP#@u3c&`^FY?o4 z1&yL@-JhjUs=5n$vO&A}87y;}a~jPGu5ZGTlB%zChp@x&&qWv4CWFSB8`xnLt|zz}>7`e|=?VORB?TjC6kN zq6j~ul~s4V;aM}aI71~Jd9Z@hKy9UBakPZ{%Q<}y%68G{*5=%tBERllI3q~#ypYVs z+@UzDxPVHsVt={sODro1X6k!CN{N?2Z=fVUU%erP`HbUUHkO2(&Fn(u!ea!cp_$e7 z99p@P@Tro4bx*V#U_BdiZ6Msv52Sy(c_z3K}Ts@JDqM?_k&vM zAPvAStpF{%(C*y);AhgO!sW1x2-5jqeIb7Mk-fqp`OHXJVYvp%!B8tW}w;Z^#>(^~| z7)&zeLJwI+d3*FK+2^=F>anxqgA2C8(jI5gw0PA{z?V~bWCbD$GL`|nBQ`dMwmH!C zmJ)H;gp{mQ*b4$NhE^76HuZ$4gM%@`6DMA<)-i$saV+wxXK#>y5g$}J*M;VqUQZM3 z3U?>MD5j+oi>X(Pe(g~Z@{A9(?nlz#P2rf!J$HcwBRK@9I0f1UuNSP{ldyxdaU~^T z(MZljR*z?5*-IX`K;A9**O|yvQpvN29F^mLVAs~M_-4*uz$!lra?)ev{r+M0-#}sc z9FPu6d?fpGbVJ(ww*cIg*UtEzu#>Q`a5SkP8mkWXwmbx`#kZ8KhI$O;f3#k%Lv7&I zuy?N7mS>h4=-qTU!1d-I#UIVg_=9~IxUe0nk(*wF#bE_yxgBbPB6y!G_#y2VOB;c{ z=W3MRu@A=GZR5G+<$b9dSorwBHPI|Nude~hMap8v^oTFt2ti-gLI&8QsvL)rdkN1& zSXc+d?~E3dwKzIx(cth7ARS85v;!@_Ucuj0Hx@>9Zp&wBsHlXuTjz)>DQ?PV(cz&0 zjg2D`KnPuPbCK+yqOs|JXIr#$T&7`!`m|zYV^|~Vt)`L}cutY4n&E8+XB$~(i*O=4JHgou$opF++5sB-_X0WR&d}NUD zH03QTXSw^jsQN$Q6Ub#m#d&`@i`_^2qJql&q0ff}xh*KfCL80B-c4ykJCI5na}ULf z6kmPLf9Uc2*1b6TU*+a?xJb?k-INY zWX@SxuKy0YNET#b&1YTUieip~Ll5dE#gM3eR*Zd5-*LL)ez`sq7g?h5B{+FkfuY&R z#__LV4;{Lrl2Q|UgN<+ybC!Ye)zc&0$OCh{MjbEo9b$0`vA-0gz^d;EK5y2ItEuw0Ops!`$u z6!A6}-P+j(8NaHA1dJs+j61kAwfvO&XDCC7@|l(=qy$sr*r{u+G06UEohq}{1^p25 zgT13I-__b008zqj9W1VVr;pl~`%W=_{}Fdt;x5$@(6X5k$4gy)O3_5-i@A&8)xB#( z6d31=*qUQv-DM!%5r~co;VVD$$3mK8TxgnNiOV=9wu3TDL9?G|VMcfErVih_`mI0{ zca(BEsW5{D>iVjPMU4g~TL>j7rggbkS!#7yKCkAHs$&^ zyo7p_f^!JI5jKE^lxp2`JC%)LE`RI5S!BNqcCI{ z&#Kc`LKQPid=efUM*7!41juMmtANVSH@8kPymvrc^LhZ9%4|(FwuW)KVH4z2zTx|d zjgtmfk8y062#88cOS{mqKJp;~*Fp6H!@mk+aNi59MGMvKc8nC zFYp>HM|VW!XP9--Inxv=Ed~#M0If$IARy#sLwQVcUW0X_WvG0( zE#LZkYj}*NcY(;CPN8Sk3h+wFC+`y z5yI&l^&&MEbb=NiGidwrno$ZEs{el5O@K?U13M3fLe z?omxmnV7JTK`XI>vpi~$9*&ptCBraK?39X}JxL(cwMKwqhm5WFQ>W}Il#GY(-DR8! zcrOv=eKO79w`IzsWha7(!w4m7s7^GP07ispw~$}oS+#bPBh~KJ=iXp$++V9GWFCf2 zNJt~DVnc=qp9y=%4z^-2l+d==|6YeCR{wOW$@rUUa&#XiVwbVH=*1 zkzy3j_L`U4<$d&_%pM!GnSaaSyKhVO&Ij8J^EJdk#HH_u+zgA!0NP;+w7Ou3CKJZaemTX2BaZ1|mt|Y8 z{B^^A-Ess2H1>Anz{fCa_yoMTkJZ>L zHYD9z83?8jo?)Y62g<~Crh%h>9-DV3o=YbpAu*irzdg4tcJ=)kJuYZ#t{@(N%?!Zc8#qP)9KdTSXJx@FzJdz?~GF-do`cYyr8oVt+_R`#i zlzaj)i<|SlIpKC(-J67Xb{%J8u}$kuPN{UI&Y|bgJIE<$27OBuR^U0%Sc2#uvnpww zGKB2#J-a_d2}T~t78kX>E#OsEv2UI?BkJgh@4h_1al1OMXO{^77qY?%R&zDtqK}<_ zxdT1NO5`66MISEY-fGM50p`ixN^*UEMnfgf+CX z>Pr=2{YPOyr4c6auV(;IF6ZUGaqQyZ;jL>7>dE!ubQHX;F2K9(p`pUT2d?sQ0Syhi zMDqpy0vFpQx4@V64P$N&&cKFPUW2@}A1c9DBi33vpU-IPi>=d`X=u1mGa8RV57Tn@ zrkaHfv_B7(@Mw8`_&X`@N=p7_ICZdZj^{`;Fs?6d_=RdD-37F#T$EE95?TjHT#v%f z7?Wr}ZPel}yLj;lWt6E}!o1s6!d1|Hhx+}Rsi%qKgbV}F?!VM%96!BIUT3w2NYj7i zU#_v;<*SjlyRsU^WqbbuSKAzb|)CZ+5Mt>VEu3}~F%MZ-Y+`F0#+)2DFdaVzOwc(&xqOTh518oqSS zlP0UArd`vS*elhxXAF*}9Cbf`rbd!-OXsCdQjmbS6a> zp6I5Lz*)?WK|ijZ5Zw63 zh5=Cv{*hrAzI_Vs=X1I@4F&=Jd;GfZT#;m9H?chq5V@OMF{TO0q%3D+VBW!Rw4QB* zS7PtA;e}zch|$wD>t9H^d0$S-6kI>Urh-nZZEga``#9hzo-tg-hr#}xkxw6{Z~j?< zh_o^L`e;7fin4buYV z3?sh#tBVr@b<)EV18TelY*^+!W7mS-iv)5g$dW(n6#N^Ei*to-dp6C3>i}Uu6m0uD zs44UT;BQLY4u$9_KbA1R$w#dk7wDF>p+GH4l^~DGLU2nC*W0!fqX9*Wb9Jc%+cc3Y zE?vhb>@dt1f4A+x%#54u(P4WDH>Nq;7d)H0-6me0Tb)=Qr%bGuMNbHCNTzmIR}%Hbl&RuT_9rMF)n{IC6jdt`{|0h@;Vyb}mDu)voy!+MR5fO}? zef_Ip0g9+%WTAUf9W5VGxvi*|R1)U@O|QsmM*5>yaJEWmSC|+=*`PQ|grnqh?0!PO zYUCSyC*c0T?Z)%NAsd0WZWtj09!4-a{VkDY?rZmLMH$QK5tX}{j`79asw1>J#rZ8* z#ktB9qz27QYHv0Y)<-w^!sdoA-|r1``o@)%N)RywMYb8Dav&sSWrkIhYv;Hm>!fknE9p>MVf-Fl+~M~d84l>kgJuBpGqVcpWQJYZ=S z*0$eNWuLLLdH96Vsp_0hX8OpvGkruioQZ$V!FYj()~wj5=~<%np8h;I@5dX^1^0dD zsCWAZ9Nay5*W4$Hyn9@VvX?qSPv4Cw=S2vMQ&q*=`IH1N0RL{>8Hp~2Q!4lo2xs=t zeJBUe_FIpYVj5f7uXs&f0JyhU+O zM)BgAKh$lFVQ<-eGmkJ zd%wZ_N3qZ4(DX-jKyf4v=)z*drR(CJBX3P<0yS3Q7R6ei^ECU6=*Bg^@;4|gE0w+8 zihS7WNyF|l9Jlj28@!;2KGbs&ZTI(Kz4f%IyMM5=cCZOQWG?#cH^5ZkOOKUi)a9<3 zw!9GNqF=(0oZYZRCDaLsjBr}P`sp6sK?V})t(M;0c)O1&l{7eu&l~KdezFKnf)cg^ zA;I_)^MoY{w%N#O=HHMS^+XtaUtyy)&PX{-^HYtRqp(D>uLlYWTi1OcCnn}eS5Nix z`HF>b^os{4!cexYMu?bs(7Ddd#^Kz1@bkX&Q8dd=HuT6qMK1~=r;vyz=4R?if5J4O z!_Aq&-L|^s$f^TE?pK+r(wB76GMOs7GpKn?*4}~Ixt`-acsTtFke^kN;aopIH;EuT z+qj=FC4|rCGmIGI*HCC~uz?=(hKh3c5OwqgMgc^8eGxu6vAOCp-5T8qYcRREBJb?+ z5j$*R&&UmohpJwPIFCt>ye6nOks##Zx`OS;RD5xHWq%nZ%e}WUl-0p(h`##_xuo_sEYw`+K?TZohq&gq5RyG6eQWgcX$Y8Rl(~!_9bA2ZMcpr_N{EyXrR>DiUYZ*HEM5B&Y~R@j)Xp0h=(vW@RH{l z8g_}mlA{6ZtWbF~tJbE3u6(#%<}*wHUFgVB=(T|>DDZ^Dn^Bea_tnQEEoZV7f`Rqw z2*6cZy4NC10I!ViD*j=|L2UDPi+MCEJD5LD-3U!xc;$Av544m!ta9n2ttaK>u|5bM zrxWb?e7Zo2T3~CG=H0}4Gr-5k!|Aj@sheqs4*Sxap2pADznge8`7vxxkjgI5{`@yZ z>UrERome1T(~e#s0*B;YbWC_G%+EP30#+)ufCDP zP!Qk^u9uO{KuH92t`B35@R)~u0Rv@Gc97t%E=PC6)5mO&hKLQ>lsy9d` zio-aswu?TI%dqqu*Cv2Z00G}cIQcz~kpUm-*1wcqM&DXOU7wj-zX+lU#?evnH$xTD z$=JWGSmvtGd&YTFY-u!xxpJmTs%I|b8NL=*2+H%~Qm|C@@cCG1-tLr^=dCN~8>hFH z0CqYOVUykp;7o0=)J`_ZKl1!|b15a~BO!e0DbxX|k~S zMoD_uW`Le0TE}OCpt@Lc`}_E^QISU(Dt8}su=E{vZSMA(KFQU$Q+!j^!>nA0POmU69w6w7ynZ+$$G^t&yz!HrPc}O&g<6zPEwiQ zt0IK%wxj{(mAB{RE&$&0mVnK7-t~_4<*$x!$Xi2_6SVIfK}1r=hjA;V4;#_4q9e7x zf|l0K<e!rNG6c2!BtryC!rTro6@FU`@V^s(g) zh7~vakT`8j5wAECeYW6WsE!aC`in7+QhmSBsTG>Q)RC`;-wcKfG_zO;V}Qc3?dgd3 z7w6Kz>aI#c^BJvor{s6?3e{g61f4m*!qfAiUn-GTyZpp{%eLAd%kc+TpC_cf^s(yJ zScig07dQ2qDR+x}?$=Z@Cu;f@DbjP%U&-c84{gb-P3w4jglVuT{i;OsW4{@+M~Q3j zurK{Alf9BmnzwKAGe?m0mHRH3Ry8dqSSN)ok%wAfvJGY$)m!VkC9kL2;v)(+<<;s~ zC+8mb@vjeKPWk@P=CJe4`(MpRodV`NKR&;7zz93BtZqjJvyQHJr3k-zmfiog7=ikj z_Pg;`wdAXL-ePJ|`mT&i3A_6Fh4dNyQJi9^13zhCJgXW_PSq~X~>)6p<&xfe?pef*mx%LzUV{G z1fjX03h8z;dwp@%y@}k@-~HzPD3GZbk3*Yiu3X$h zECrjlv5x`ObwS!p{LLCyxy^HGfixm&8WnkIDtz~`8WWC_$!@9DzJ)|<8|!#0Ao)oM zTTNLdZ60T6~`KplM$xaDuC5ump=GL-K-Q@ z#noE#a}p990uj#$nq@@9S!LV97Ug5e3v`kIDd9IO5I>k8V)GK8>?e0V}<4v9B1^7 zP=HK7S^ue9=&fc$Rd`Hy=IeKvT5-e)*BkgUfv=Hu7pS*Fr=A~A{=|SdP(QAY^bIMD z5=LdSm%c{v^ZFttX(z*QhZ0dy7G_+nvdR$NX5Fjg)@Oc0UBUafQiSN3rUY0{JV3rC zgDDL$2j5RmJYLwxjurcTdPMH`5d*T!c?oAT_#51Yy-GUe>hf?$&fO-`je2Z%MKOU_ z6?wCR0C08Qyn3SnBB^}#Zs<3==k2h7P8ph+36j^0HQe1BH1V=Ecd4g2w9$h4pG-2Y zBCl0njlMWMcE;2jGBB^tHoOdXfA?FpP-EAG+?F?R5)Oi>MenT+kFE%tbr>J6Ug%^RQ)8$ zZ85ScE!3?CzeJb!!x^sjcGUW37Nbq%xS3!c?2^^8APDYW)Al#0bBc*#1Ob-6dZl}6 zpm4%&5{q0row4oR`JQq#;>ix`P&5I=wv)?HgfA`f5p zJ3Bor-&gQh*>`A?k0ff9kQkNEDUZ@P6#zb5vDv@6@i({;QctqOh)j_${d-3e)L!uD zO<=TRDlZ*lzf_W+th1+f^K$rPhU;bgUe_@SFJUW69+M|Ps+;ih$Je39IP|$xp(gBC zP$jrIQtYKM7K}brbLnK_BN}ekC$|xCr_k}VSZ`U9emeE;^B0`YC*zpFp}Wnm9;?JE zyqHee0y))F(7oVAs3bfgbX^)zn(}4Npz~059%i)`Sg!wi3|GOcfkDVR*+5G4@;gy$ zX?#H)*ub$-*k6ff-=1yoMJIaC`P;Ubn(lVta$L`U2i!kx|ILpO`+|l-f}DTJVRO?` z#aMGRs!Ucw4j$#wvw(##Y5!ZQUjH?|EBI&OQXevIOw_t7HGW??sd1g~YcN^u3wc#r z5R}N_6NiNpTwA43@ar!xE&h3mHTY8C72z?b%8PR?6P$!_w81j0!4f|3_NP3U*r0mb zNF;|w!`X1X`hvf|c3Q-d7T!!bY%`VCjPuc)L_*%h@HQ_DTke~Yn5bSj`)WTTX^;K- z1&wY8Uesu*67b?3av4($(HW86)nr6pyj_KHs^42S-Ppbc1100$RqM1{%dlqhpVsAn zI{j8jPoj9?W$((^nWy+=zi0Ia);#-4_kg?|=vWs8#*S{I^ZPExVGdG^r$BdMK-o@I zg)Af);nAL#OY0Amg#LP(Eb&pX@QeUHl@-ctV0ge7Q*KcV!$?K z@yZLAl^Bh^i5nepIR@POYRH1g($|H#3W|Vl;P6G(5m-hNzx{k_JkMdXe9;nvxtlHh zdOu&yQ;6Nb?t;Jv^UQ4%tv5j`uSj7$`Sp^BUli+7nIP{u7|>MJgG``YU)pe8T5JVG zl4YeLJHE~tPyN(K90>#W~Fstv3iDgcgLg{xe~by|dz? zE1x3Gdu)mbxnS8i)c8^J?noWqS!>FUp=-IprD)HcYlRHo10oSkd6J!6vo}qSRdDZ0 z3a3bK)0j6sw?LhfYTqb#k!E-dfp#$T>M^MRD41LU5^!41yCqy7eDSdj&zi+hPxpal z=v9k?LXN@G-}?DxmQZH0K81nJkP*$VDA$Krwq9<%67Ky~2zThF@;(GFE><=0NuwgV z-p_JOT{6wnP}y-ome62x7*?XDmGMcZK$@EhVFPQ(-~Nv*rxPVavV?TbxUbcg8;ssw zC3xtbTKUY+7pzovaFFEh)_tLH;I0jF`mG&mCA?DQ6&|0&VD01|2h1PWtkg)RPi|daa>HtgnGTl|*MhlS6oettBrt?nQilNf=#BjG^6+ zWiu*a77{Nz6wcmR?6H=*Ok@x8Kg?Ko4Ud|S{LZkPH<}gCZ_-rQw92gm2?5=IpVawo zDxFh-^XB!Gvd93(a0*59$aQinyM&Z_#e32=450x42;U!1bL*)XIO0Bfc_#4{N(dUM zS)-qy=(~$+U7s(BF{JXosWB$PetB6$bqbt0J5P52UvyYYCSYAyPKrP{lUmPBI)J0f zCiiB9a@T%*q2XiV+_ru`OMn=zq^T?DfxQ(d?uOox^aH1en*z~SAdG!1$!IV2bmOpybmda_xnU?EXR_()Nkb_V|wd2ZtTJ9&=t>|kP~ z#$jepT5l&lHGX^}=)ArI_R2rI4Ui*idVzCjCNV$wfvQ&@DS&@z7G4&0 zaaIGT)rTTDUa>0!h2cURJ2kvNK7Cdis!%r()d_Ap{$ZvcCwB*;3H}i6i*jE^Ncig{ zIT<%G+C~--_{_$tso{FP%!8Ie0TWjR^F{bWP{tDa)i)fdO74zZyWFU+r4Cy4^nmkE zVUAH0z|&Z*BL(apaUG3b@&bIn2NDDY%&sy$JUouv-L6#+o=A6tU0m)!92FR1btxpV9E^J3gBkV2@dX4c#902I&xq7P z5=@o77O3+B3H~$jo!PA-+T#`;f$m_Cl$+_*vKQOwS9{TdcA`edVN@ zUygk`EI!sNc{|*Vwrr(N$v)_}i-fmC^2s!uj?-C9Kv?YE@@z12tmU z>D?|!8F;GaXNp^p+|r7izgaAa40=PD$LIATsg1+rYB}pg7-$h=2a^oc*p^mm$3(95 zH!{W#cGYs_rmwc**8C!wq=8}?JN#`OSPWBq++oxQ>_^?~==@#ROwn(d{iM)mAS72gBs7G-u zSYQ^3n9$BxHm&ZCG4D=J;q^BG+h<JmlbjOn&gOd4z(J|)eM5te^Rjo^7 ztQMCx=|)xp5SUIR$pgT_D%2hOcwKM!H9 z4ojL7Wfa+vag0Q=|8_8V8S^2ZAf{f9{D~7>*7L}Dw-rUoZ}oyfx$by>zs3ou>^LE(k$-E?(uj?~o`4KFpN~A2rws41{`ZMmqh-TGSK{*6&r2>t zl{mLg!4tj*);!QdvBykNI00Qy`Jvy$Svj#gRBLM5N+ZtLW_q>)G?F{+HgOj?s%DHO zC7`+Vs>r#5X}5p9u%$-OURHnv)%^pXa2Nn~gVMS%t(;Dm7%fTyv2&kn^%@GQT`sUP zbl*X3$Eq_I8xO(9OsY5b)8TJ`k|MF3_Yg!fPvDsemHCy=C9~}+H+D0mtqnA=g|!$n zE%dZ>V2oU|)bDU0urd|+0d=GEghiyi%kU^rL~G^#zLM1N$=A%?&jd9JOf+)8X2DJB z3}s_x(Djq1L~e7eCf;+^<>&IBSRsbQ%9L%qH4^{3ww)7?&);u?tVFG!@>m`PfN7p0 zLSrK0jOx+TFPI5t8~zT*TcQ;t9K63}FnU$oqxEysV!m`O|FDGOtU6snPxW;aOH6Y2 zuA?SF-Uh14z{(ue%?i{@btw_*YB(=#2ih$%$el82#~cNaGkXfVJi1g>UwPP?-_IHN z65UyGOQ4sZcisy-*p6fMKE%lO+Ko;qXqWyp`m%e8$;>E2(D=Hfg&JA|qi=KQbj;L$ zO>V}y9gfs4dKg14iJqfhXl6jVe82mh?z+b$TNUY{ow;GmUg~lrOsl=0LRgcIT2J8Z zS=(U}mIOqYK)RPt`(SyJCLacVXChnQsUhQjSAbK=TmT7ogq8@Wa%T_07V@4Oce!0KUYtwK1nO7nNWc;qU8HVj7py^Ndv2 z_>lGeALzgG|D^xx|6ig12T%VS`Y(U~a4V^1ui5jW7av02+EaBlUTlYG%*^ZQ%!;=0 zgElz79gyY13Ss$IDHK;Bw*v%Nh@rr-Jg2?qZRrtkDst=OY0vIJ|Mu=yXSB-)IUlLc zbd7O)*_uZi_E2$H=yX>C37yUh?vPq=I?M&(|dwQ-_D(@oCxWN&$WS=tt#8 zj`@a;nwk39;h@YVLO=Gm6j%p6%Tn4OBUE%q=WdG3H@et{No0KVw*_doY$PF?{<~W& zqYF!$k!MZBON@h_hC&t3O@NchveVegJ|&Hs;7Ij%7>DJWL>2vI#Z-ex8}kg?s!Y7Li|{(6%=`l2i$eT7 zq{o+Ysl`Mz@3%fMB!chG#@pJ7=tv*wbqpV8sR~~5IQ(LslnwkTymVUbbUL;y;Ne5S!w3(XGu)6HiCipR-V~yD)=<_q<#%ec z$+$Z)eq*KiYjqp;yefHSN`Hz|lmB=!hl1Y~=j1>&N}Nbgr<~CyN6;2F5dx4Cejr_T zd_#r}dcZgTqoAlk{9%`fm=yT|5!iJub@w=ZQX$j@W~QLUp+NQ$VH1!pG4Z$0;5HLJ z-2pV|)Uo6HsiA-O;6E6HR~F({5ZNe&6k#!r1%5wo;7(RXuo2eDZVpWt1kCUMBYp3aNBewb-u+R;~Iu(sRe@RHl~bc6mOa zSs(`4oelEBW0r(9USHcOUn zdGD-tjR$Gxokl0~+jAjmYd1F?S3?;Kv>K|4g<8Wv;$dLsk%K~{j>7TsVx#)?M~~R< z&|h9qy;&!;OVQ2{&H<3aX&$Cf93s`j>U(d9e~))mH+b_KB%|7Kcb!A?(uNx*NT>|5 zd;Fs1&^}w>cXmCH5fAo-hsoQt-v(2Wp-0PZl~7Dw`)`g) zLJ^3gvUGntMdrAd&;TH|(S_cGLmuD{TIC1e#pvje8jmlJx_8Yp-%gOPdDmfE_`G&) zpLy}Sfl);WL0H~bf?#-7W7rp_3uYTFhOF^7w|!b3qa+3ZWvLlj_M?|!STozq?l#j6 zdmTR{Y#v1!}*Ss%cNKP5FKW=UFAXeH_>RTMm&Wlm~?4zjlPew}Rae8`2w#?^wl+jGZ zq14oWFi`$5g@qIltl|m0Pc3AaSc|3HQ z1&HKxOnhbkjSPpdC+H6Ks`>3pFdUtDxuhVtV1SyAuIPz?)QbXvmleu^C=VBsppD!~ zWc9Jb8nMSHHDe20D#?%=VM|D{A|?{c2+YJ%lT}T-{E6_eguO+EsKsdA0jcE#M@PLE zLouMvN2o6r!N0}!i$mu|wBp^vtEvI6!6QW}#y^kZARTd74jKLkc|lxjg^;(}u=VdY zF~2sw=CPum9v8H8p$({&TNBWi+)`4*n>cc=wuGE*W?{-pms>^zhvu52!0z|8uy~{N zhCl+8^}8;W@Pb4c z)KsB-8_vuX81e4W_uE3eAYFy7g)J}B=>Z?4?(_!qA4@{03|<%DU~rw&YjIQaaj>@B zpma2S!grLts~)EH_wGa3r!2DHLE<`(qcV@>uNjx3+Oj2h)l%BASq_I9N$1ZIj{yx} zm`_Evw>qG@_0`~b`7+8bLnW#>oiV3U- z>7#PiI)nwB_j1m5dQT5EL&XNj$~|LxuI&6m9%q-pB5H^cwmKW?9z;P{5(jW7PVh}w zeu9CS>PX|FFH%}S>A0`J3kR!1Ix;rr-lUE1cT;AYo~6$NivAXVw_JJ_M>8OJ`7Q;? zrceNNPlt97P~k%Dzjbx6{RgvVJqa%W4o1Bxni%@|P7l1EfL6Wym|Q~&pV5eL;rGk_ z8u1@%T5jG0dM*!h)A;Ana~+4putPn0)ub3k7WuVW+#W~>7}=5cUZ?rbjrvVhR=W4eE0)w) z0vn02nhxtrJ4kEiJVj`SaoE!x-5rn$`OQfy`wYX;`7()G#C}BwBZ?o!dr7KQpKhMH z7uN;XpscejBTEm>jGxwDh=hG;aJ)`?Iw-tyE>=A%d}7Xjb&I)=*#)KP85sYr@+A^* zz(~nv>FMfQ<*)XojJ6`fR{56|u79(6s?AT-FBs&f`@+=o{>J?ppY(*~)R_)FEVJWn zVUj@Vm9uh-048yRq4=DVxBedIE7uHg-yB_XbQhCWCNu8i>iQ%kZnDAek7{YL zy}i!nyftCT38pcitN&yQHT_Sf&|4gd12zb{WZ8qfR^;J(<;~l&Ar5Ztt{mvo%@w8N zyRXH+!tR}!4^(j^2A3jxo>*o6K(=ex7;>Dyz_91vULf-KI@kYJ&FX)h3j42{PGXkN zNZy`)z}jQ&&u>!0+vZBEQjpi~@cWEicLis@RS?Q%JOiBnz`zPA2UTlS9sgT~tSgdQ zC=!BJHK|(Sru}o9)35r4cm6^Kob$9#rK=+UZV*jcN-;q}#Ujs+C|KreJRaug3m0)C zb=rLdcA<%S|Ne%7tbW_rXVqF}z~`U@pk8pvNYfii71Ht4;^sYyk^BOE9U!*?5o^YE zuNXp$8la|qXZ!sZ()UF4VP#BV_G7$8{;GmxYazU>^lY`yb$8UHB(TNoeJG{%wm>&J z0q$*WYB_)Y^-w8x@Xdsz=2j`*9#fOFm9 z2OeM=j#M^s&l$4pgzXTr_rAfPXg(1re7$v3z!yvqt|)GI8p@`s2yuah2S2kZ`gL_R zgpfqDW|6}zJ2kM*7PvIex7onKD58B^KtJp}3WZ&gazHrg9R zHLm9%uU+F%;3@a6X3gy%d)W6MmG`4l8G7E4i0f!YAf+=`l+r-zd}M^K9T@mXRT7 zWjh+3m<(oD!*;Rx%%vc*Oz^mwk&&L(Y>mY>)))%?s;l_#DYbm2Y*IA?BtrHV2jbVX zwrwIAf2&nmbHjXuUE2fi5~BpoH*(5G1&@=n!9#uyg}NyHQ?GA;HaJ3Ia^YKM$=Gcc`_Q|WdHGCsvXG+Pa4keH1L-eaY$|D})D*-utwhq+C zNcS#51Ib}|?+MHSeg(WA2(6mKIy=ok_&&E&HJ_4!u_QSh9zL)NQU!ZZBKW#FQC4$^ zPk$Y_1M!jbw(A%P?o{9 zDzFyla!K9uxsmb-n?)?l6=A}7tvHXoh@qWyyg?8~M|jhLRs#+eQ60P|vO;iwzvRb? zKDi*lFL2Q9Z}1Y5yP>sCKx1W~&skG&JRIn&;{>)4ZuKEEnPc7cSbVmomHQvWy=7S3 zS=#jr!QI^<1b26r06{{6JHg%E-6cVSOCU&)!rk57-3e|51bd5g&rEuro}QU=&hws+ ze5mW9cKv1Vd;Qj0^3z>uBn|7ioDE~Hm#D2IvLO=J#>rDT=O$l^Oc)P-BV4VNUjhjm zV`S0X^oEQwU8-phu7`)%+!jH%A936%6(ei{E*a*zIum33G94Y&E4;<%FQhl-sKK7z z2-ex;m>-PRGMBkn4nHcZ*^-q_h-g;)Kv{P=C5L8e4hR_UrlyYdU8Lwg3W*Z(LW0PL z(VHoS)Ov%nxjxKIui=F)umjnC61P;~7sM!2+M_?6;o7B2#LD0u*vw}DV3UA_@&3?o z=rw=RZNH@Goa_STKH3z1vh)#6UC}?e7%iD|lfFhuz{?hMw&gD*J36jR4w`-@gHEYH z%hHN3kTJ>^^Q{PR6o~?5raB+GLK`qctZ-Q4Mw32GH@hF>2M?q8NvVNX5a+cIA3^_+ zgY#9@kVwtDaFOTqsdS+trn*QB)(5| zo)sq@>+Fls%=PG8@Ohv~OS*q|&p(Lc<%8VocWPj2_Gzs~m%7K(7Cxd>^&aK&)$Zq} z2aqx!_7)fc46i+0T>T>%TYZ6h;nUxij6`8)lZn7z8zo#ddv`O#i;}9c+;&FTqJbwu z>wPuZn|ar}G1Ah0s=0!xVrdinI;>-s&MnYnx2 z&BHhb(4`GQuxw-nTwsHrOzXJ3~lXXeO!-?cWtT# z@Vg|}1Bg(Rx@M-mYSaCJP90#mCbeZM2Q_K&N8ZEn(aRkJ(hQ#U`iMEetKQ@H54JtI zBs=q4?MElBFHeu$Q+Ga33H(P)t(e)Ni>t$|%bAzd(Rpr3(63}_C5T(absD<=u8mkx zWQsEzQU41>yB;9YCO_JwEM=K)9vB%>3!sqGpl7h*YePGVLx^#}nl$-U6&(4h8b}Z> zbg?P`2|rYBsgF=K&Ez3OMySneh}Xz3v+bW`vAXReW+ys`ZQ)}Y%n6NkRnq9xl`_5n zdmSn6dk+T=zjHB+YOpYbyl438ZZ*@Q@;5;eDZfwdONG(Wy|%&b$(JwSiS*_n$N5GV zUxOvRc=bn{uy3Z~+d%<6M^nzrDh2h+HllCs8Sl!FQ+Ui1eO93Up!6;NzG`4D$n~6y zW()%`FRS;Ak}8PYjyW{kE6k{)#yiTbkurF#WagHzbLoB8_P)t{WdbNmu{9P=jy|h; zfqz%^eE+8E(XPp=BS$AMq@_O=LN3vzw){g2ED|_nLRpVHM69js6lMb%=ZNB#YfUH~ z%UJ&rpt>rH(B+*=E#TOEUnW}uFfqw?t-jB?f|1)UIy}j37 zBttr|*Rg<(O0`WE#6&~k@(q^>tm@`X2gGFREPsW=<$57A#dHVU^}cp^KeCuA3+b;8y6#IFWR(h^@^H`~seVETKXgqN@pj`LrTsg#{bjV6Ri zCs{+bEV#V_`4NcGiU$29-a7PZ@pg^S@D(*XpQE9dtbMoR!K;hwauz*A9LwriSN{i6 z>-RETMvB>Ebtr!Tuj5a3JbXT*VB0E_6Y`1Yld2pvJYDrXNT^dS`h!q6O$Z6B*!yk| zPTKL&^4Z4TgUwd8eOKZW6)3d?a0yl?Gbdzm%pkbiP_p^21v%#t zwn9G8izII1?fmRFR`8OZ*}{joLwaxsg=^cuFxr-x`a$=VA54THvQ;d3E@Ca0pi?}< zC5ax?Wbf~)+?d|4s@wq0@X@L>o@HkXBU&S8cYAFYs*PR;#2WHm1h66Gp_TyIq<_JKaOT`UN9&H4M^+?$A#f5LoM6skC*wJN= zuL0G@FuBhUXyoSc;a1y1xZU_MD|fU+O%2)R2E4!>hF~1K!jTdARfv0CYrLdNzpNeZ z+um1f(HoPz5i>1BJ~VeIXm@yfFbC=I%`et#m)Ufm!Say_bI_YRdL8@+Zhtx>Fb)6G zf=c_b*XN@1W|hMB<~sx-AEy84E>t^(6inq;o{r!rUt9g@>=N)P)=g%ceun$?xKQa^ z+u{wk*`tF`cHhx?hk;UGNpi8$SXCr(fRaIV-uuXcI_?D4yKhll+2Edz_(RlTBuu9! z;TZ2laEq9KUqyV47r305q_;XW;?tL$;%<>u$f~Nj16Ylpa-#qU?uLc?hV&Zt#1OkM z29N!sRheTDI4a!jqWuhzeq*qi-$)`MHjz-hxp9?up!B*xJ}FtY_Lzg#6lK2RpzgiZG2B^E_-*p@$0_ZVQjX-we3yENgqyO-5G1Pg_fyGF0`x$ zw>iYK7y(MnC zC^_5xK4W_QBFP2^Hp*zw$Dhm~8rpEeWp}*+NX%a$2XJ)~x?gHOPm~$#7XWz03T}*w z>ph;dpN4H_Dz4Sf9$9?(FVSF)7eAM9{N(d2+fv-2_hN+pn6PhtdeGR6No(YfKKB9r z-L47J82C@5OabkG(*n7^f8igUps|loInvqg=dDH`C_Z~aH!oBbBR@t7D&VGQNIBYC_=!80>!8OrfBg=tf zTv%B~Bu@Jdpx?P~P!HAZy?>4_UqkRwm;&%7o+N|K~SM??;wwYd&)Un*@S%h zL9+}v*xtm=7&|76a-u0TpJg+@RE3=JaHj$Aa19$sZf;(5E7y#(5 z6!Y~MsmV*JV!TcP9eJ|C$k-b7ACi{Kvl^jwHEKcbT*h>H$?&lkKJJJi*9(to)0(M1 zHH_4O*F~GA*J3Z@Z_(wowP)na1d;C@k#*B(y2qGSJG*^?Nk5n{S>hFdKOOC!6{>P} z*%MH{hl5(Olc2~r=(~_5~Dqj8j*kilv4`Yv(kenjKRNnQ<{%G47<%IQdgAX47 z2OTSjL~m}$v6QHioWx(M=uo$Nu&wk0Upwz@eL&nzdMc&S@bmR}TpT4O)(qmb+t7Tm-~Tt||x;2hcKx+*kD{(#F? zxnyU{KX?2d6I6zKbNCPbv(7qz(Rcjw`8lvcXfmy0Q#@(1%ro79!oJfoAx-?t=R zt#?5%$Ym@b63Nl({0}zSF|&Rt;@s}&Mxe&)7oV>eaJuN*0T;*9){)pxlP}2u^*e)i zihnTq#`~`oi{PH$GSmfyE5;`H`8cn3l`F{Ww+Hb{Zv`_MU6FL0tVtm1xWmBYMkpzg zg4g22FQO3qYZ#fLUJ2q?UogMMKYYRWeU9^Y6{|tpb=il^Ct#NuZdj}JR1_6ikSwYc z%vL?>mNB&37Vp;@`QLt5ZkLgw|6REQQk^O%VUwH z7Sq$TZ%%mvPeivujYjEGaPU}i7`ycsgXFd@D2<%TG8%*RFT~c+RD8clnb|rt`Uxt( zSW8eDH{QQb|2VvQxEuyM5Ko%w_0W(xk~Q4RWy>R_l0@@%s)c;(B0}!0qO`lgXgYs+ zfZ4N*?f&t5#C~*wSnT3yW9ASegOgSA{zcGemTk+q^4SHw?&SjyAxuX^cAk>|qIWj# zMLP|BgU*@IWNL=bIWU{Kj7nynX@PE~!p7$So8xP}lY@GC@u5ZC?97Pa&=VzuA!lS) zvlrv(66cF?P=crC0l%e&6GX4WjkytI;mx!HiO(@f1m7KWr;VGk8bAQ|6(ziGS)_!) zBsT0RUIg8umhIFsR$OY@_)8Z2NuLM_b9GyU;WggC2Vhiqh)vG7g2+9|7yJ%W%;x0+ zAYB+L>6Q3e1QLqUTp>~EO{7ShF%F^0qT_*w*Wo;F0E}m|eId(@u{z=euXEeBSgxJ5 zgU`(&LD1UO8+{xvl*}W~NY7iO2$La`H;2&9-H%rS%$;EmofBxSWhWsJtydkGA-hLW z0zK$1NS2OC)$XJjS-nre83 zK}=kcB2z7obInC0Bd(X7{HgqP4@5DLEm2NRk73_I>K%-;w@RpxAg%b85esk3gm7xh zGz!3>jyGM(g7iFG?T3anzKmgOXKG_h#0j5y5{VT9du97M)Jc}xF~m24G)e}#-U7oN z)f0o*_Y#eD8H3$ECvCb0;gk`J*$5OI-cfweYKkJ#pD-|UTLh0bjnQ&V zD^3>t#j1QUzdE87b2#L4jY`ejSrNoAmM9b?LyFolp2wC57|eag=voide&oWWsYmaBpEF>)`me|n26(lSjG4Le1FtvSL0T`uLO%J40x0D#LI_lC#AP zB-&lLgr&EBjE7dMC?IM`O&rd|$G_SS6u8h>Qxzxyy&Evz2n>p3v$oTFx5v* z@~X@+Pf9ju=G4T;JIwnyjSVSPfh*a4`oC)5`Rj zfA%K_Pv9~j9?Yy2PUZ&=Td@qhfQ=q0a{PhL=fqxF%=^F}7z}tl*8|@9?S`EAI&XJr z7CfD-qom+P%ct$N(8A&Q{hu85egyHFtuLslfDslgaEgv5u`(}je6570% z2j|8U?Z=o{J_$vSUPw;$`Ow!xw5{DMqd|T_WR2yOXb-VvjCrPlepv!k;|?h&%C&%} zybBH;PKYYoZ@j#@FdmvfMoN;HFFw1Qz-98R1c6`;S%d*QDSH=!MdDS3YCoq0r*CPy zYPD|%s_t$RsVGLeAB}ba>>4n-3@6b_#-nVy!V$>W%woJMObGsqdGB8C3;;PypUumj z>dgzcR96_F$wHg6qgc|&bQMsj&Yx4%_PY7u}#@HW|b!<@68}y;@H6*LXQsf?eXq&YpB*c&Byo5^ov>AZ)cBw-Tipf``KQ1 zLQ-KFKXs~!Z|fE|`(aAm!2i6aUxPkXh=EQZS@y~Mvw5qv(I+#Pqa-S24cI3qle2v& zXhWRK_U|JJC|Tc-Hm~_Q@8~qux_b0Rp5$}qvmi|Q?p~-6y_Udt;S8H9PWO2$^n7GJ zg6?!+RC0L@F1h z)C0Z|g8?)&cb^#ozF>Uehk8kZ4|Pfr@*myTD@LgyA6Bq5O}KO1cErBvY{q2JVZ<>m zlX_NPD14`S_GuL`-o?jHEwLma0~`jT&CAj~1I6j;+_mJPtzQC&Q1~F&3(gQGQQzQK zx}Yi8s)~??#`g)raauN=fIbM}b9Dc9_eoOnLg<{zz zEStO()5F^;`e~q6As%IP+B^A1`K9P~VtcWHkrkMLGsM81qsA=&b_v{TT<5yH6}y*V zU~|W2OwS@&Fs!qovz|IJv-Q$-2yYiEH3+cg{Hm`&EMgJkqf%fbzVR(+vM|_16zKdk zWfXZUfW&FI(%H_l!~AWBtwTB-&4mw(rG7MnC%C^C5cPGP^@)*uAY@AYALeP3LdGE> zx4Y+Ex6$hR-^pq%A}mQ9FGmBGt<;0L?aWAoBtyVa(j+c`i(sdDLEjo?yW!6Gfltp3 z2HbPzR)1m#)>YRH_UYqwxoxRX3xZ1L9@BzhmOqKW_ z|6@`k{Bu$>81JY+dk_q7gqDmCi*AW~HP z^^aEpc6v?V9Vjq{15IF&YQ+9tX0LASmQm}F#y2fgvh~C40;=Yt;Pv(tJ?3cdyuTxz zE+;?>O=2s(pA=$G20RD1J z2q9M#D(tzAoBEnybEzz=XsA}l_QM@>*t3|nC(hLXmllpkt!4Zpowf6$7uf*ITLotE zp>aLAAIJP!vnwD_hX%XsI3%-Cb>*!YPd!x)%7oPYXV{@90bD`5dklE~>jtma$01+V zN&~gIpw#C8bchH~o%oAA_AyS$gyUeF*IU8{HdX z62}{5Y=M!SJk78sGW=FrpCiwtA1F>-qi=w`nGB(G~0^7Sa`jX6CDS4*pSKmm=_qKy>9L zXsGj6Dfwe9(FHYLF(B@f@tNtG$DnGIl-1i=};a)U%yJD(_=iCppnv~{I2~$vUIO63ZH>y-W{TwQlk$^TS z7#P&;>sOYh2e4~PZ(zNY!8L$NNrE`e@{vu5&~d7i)U+R%%`>o59KHD<1n5|yt!E)^ z@eTqLe{ehnQYx$YCQC_-S(_qi25?<`OhQzSO!l?4+8 ztG8NH*58J{?(29U+ioT5Pz9Z|~K$)&6pxAYUU4OFCS&dA5RI23mxyd%2qfd(*i+yp9IOyp@!2puHtFC0xxzyyF^ zvo?p~HY2fEn2H84J1%S8SBZzeZ+888fTAB<#yk1O#dZ^hc zpLBP=;~w~?IdW0er~!qDn8v_t=Zln9?D@(mkca#50T+rPow+*Ua7|GnI85x7m4$jFj7xmm(5teIZcl5jp=av&xX`>Hph+j3|}hH!0`n_j73 zCSyRhO4;W^V>eLO0nM^dr9)IqluL|ds-91UO zd^A3h7gtP#oIgC6eQ<=f5^V7sg6>%)Aw<6RSI z{2KC@x#Zyw3%hQq{D7L+aXX;UJzD8Ge!Xi;2+I_lC<$kM7i2I5^R;}>z57Yd#{IE> z5j5-t#lW?imbnhLJd|iorR~fN8#$F$l&$M%^2M+`B_T%6GoxPv>)RX_VZ}X~V{A$; z%FU*c2uIh86VSeFs0w-A*Za^P9}*z8Zokp*2I?jMyAU`K?*ESnxr!XtUn1nn@^Q3M zQ2m%V`Nj3WI@fKmL4&7i+ooAfmYiGxObii;Pp<~@de%~nSfmf;z>`p-dg_NC)+=o= z{b#v?v@ZobYc5#Mx4GyuSTZ>P1anw-v)65iR6rD2sr!}|66E_C1ZBdES}x#k4t(ty z<3HN(u?RF{44GZr5I5$xPfj?XacVC^cCDQsRTgtaEHMS=&QK*RwU=EMX-q-tIWy=M zFt4^Aq?td~*pM^~kLd1uJ=%VSG0WmKNwHUJ6EWH_^?1OtKgaMba;hVVpoi34*XK}Y z8pVYFhknKz;-$xEsTZp~4eX!|i!jJxb$I^`)yMN)Xy2fLBXOP|r&lqF!LF?nZ_JGF z78c;LdWrp0k9P={ixgU!5xfU&oj3iSwG@?eVHCUcqP-YjUg;)g>%| z-O3QT`s^FFr)9CMHpD^f8ez>xOjy3F*7Aj_aQVOfKig;3>`pw3O z^6zf=TNB+Zlj!b7t+?_$Ji@sOUM|p6<#|a#A*Ld!M^)I{5b+w96|(cu{MYyl0`s7S zG}TwDg;q%Cq_nh-P{J0rbyUflOqwgq{j5E`ze~m*`KE&t8P~WQ=d6xN;BU!uSf_dP z&xZLC`KRZ+x;MI)U?C7)%m*i--qX=3J7oOv>FdtUxTZazPf=9d0WG_p-oGLta|zD^ zM#EWFRG@uKe(xR8oQVK|Am*%ZLh*x4S6gP>^M#0qe9kWW>Q`&SC)r(#Cd;2TeMiZ^ z+4NsOjr1NhN(j?=AXX=0f7*=RI_9hqXvs8(IG{aH;~525=Y2A}cA!^y2u^-fxA>Mk zflJa_9A&ynTF2NJ61%i;?WpNk?u$18a92lNV$36FQLQNh1;Ju0Y!7~)9uX?ce4dFN z!`rac?q?m~IxSr?i0pm-KAOG#-|#a@Ss;F9yWp9hLH;-VjM0C`&maf>i*Zk>fr#7U z2L{l1FfoC6D9@)=u3ER2b)c#dIH;Uu5^OiQp!c||ecF4{X?JI$Da{zDHvq)M1eH)N z+&qk&J`P}G16YzTS|?38_rMlLT72J2y^ZThe?xv{zMDCv0NN=@H;PoOFK?ZuH0~NX zEueU3kgXehNFuU(|C*(u?qRz}!;+->)lXAAG{_W>_-u+N0GZ;?;|~6B&3$Gf=oPH@ z7S11lH#HEbF1&cPxAsPMx!8YUg>SGs{oD5oja`MIF040XBr@3jL^Q3#cMBVqxT-!h z*xwfQvSw4?#21_NCH0UjO+!V@~J_f7XA&+tmLVZ*yJvr@W2s z4|4wg#0PEp_<-cQ`%MitVM8e(BR_--mZy%m8_0u*EsNq?9QaVVL%iWox|l>Q!2QC) zIe6nzOrqp{NQf}k%%_ehQpp7y z5%G;1GbK+Qc6H(e%I;iSvYBs4$3&mNRhYd9L#|rfsN)cj@~II#fUh><07N}bg=rH@ zk5-_Nyu$-@fQ2%lrz|4NbT{Vv(UX#J522(->@kI?&S1k^)WK$5GiO##4;6WtQW#FX zEK0d!DZ_MKGMVi~s{W8&b0N8V8g!7|WbHkmg436{5q#T=x8z<8^4Pb^*3sKA!4x-QVY)?baad zU7InFzzze>5U6l3E|UIBmIoZ~Z~HIe@iFwa@@%mFYZ&dqFF{!vuZ@?tWqQwoqmd*~kl#kEay)pf8 z>To@vNy|WW-31i+5h{e?ciRdRFx+e6e(ZD?4?A_W-tYk|+S3?m^Hgm}*8yoW33~nD zi5NUxqum2USxX-eL1-h0aht=fo0h>?L+YUYThIS2mh0q&!iwM}M!^-L%ge@9paCvB zYL=M^S=ANY6C^FpmXaU(zCt!~T5i~kOxj0Arhk>=H|6@MXV^t4?G+p13E?%DTF`o~ zi|`RMJT{r!-&hPn4X?6SBMI%Im^Q) z?U$OG6*LHu-PR1jkcn46fA~M?GIDEVmg58})U;iSnI~^$gfHh_-I}}`Tx2ByReMS4 zKjPnJwtxu%YaGvNJ^Lr&;o$*ENSD2ZW}rU;Mae8J=~?XOz~&Y-&hm;Vf9)^IY7khc zH4+2`6Gnmhnclt{;(>yKs>8C!K?ejf70S`mbT^+$hl)!iUk}US;^Ll;f_h>LW4?PO z3%TClBFRN&mE;a5QNNTZKg*kcC0v#o$ z?J4|k0!IF?i>ZXKt6-YsGddZL!sZ_HQ29911Kd|_0H$i&o8Y+lxb4XCjGSZhD$> zn)5!Z7aABSTpC8G@liYYC|4 z%aX2LPE8t6)*V!W8z%J>A|e32R>?sOJ3=jP9t-3Bqa218`3K&tJzdSUeTNsos+i>d zG0m@CIdN0Zlo$RSfecXdcgwz9!ck|=;9R34hV!evHosBPc}ID&8bu&ih`!8+qdh^e zO4TDVMGdqHF%a(V-8%J1yqWvba@d!esTHr@65 zI@ny_YB)WPkl$RABkl{~SkJyyjCCe@`j#A}F94(09`-?cYe!+-le+$S8H_+ZR)5|X z__E)NMMbBwC#e?$&8Z)u@#(znGl24)7bq;6j_caQ^3GOC!@)l5#?rmHtWq)fzy5@cM?H?ov+V*PI z5S0g-0It$&2bm_?K?} ze-tLy{{UsT^C2DCVGv7E+`KJ?(GKQra$=($5WGw_&GxzQeq1RUt_YRjm=Pog>%K}AWR>YA*@ z%b=Ub!N>B%nnq_UY}i2Ns!C9-{#JYk;!;dgl!b}sTFox^#{6!j!-WynAkS}+0#*n= zBLxocgCs%O!zUW`KYt~ZAf7Vw=juX-zbGiOQ^%zwXGEkH;6c&WtQLMwF~5kea5^UE z)OqZ4=P01L*@A_1#^o?#o)UcuIMG&DUzry>9jWQrI%~FoWmV^^O0%5z_IYDIYn;zc zBw{Uls!w8~_L;-qVbNvWWRLycQxFNu5aFCqFV8kXvtz+;Sw8eRNgyZGeh^ggt3wR$ zz;o_b`u#aax9Tsti_A_Yo?9AGI@WYiZMX3m>6)}VxYC0v!e-j+yIvwrhJ!FXy-%$5 z+(+9%O+Ay$rN#ako|F~Nm`29y^C9GkN-e`nB2Km5ME-u2K2ilB`rKv_Ee!!)>~Qm) zxT|-V@jWKppq|G8s8q5duA8WJW(*RPf)?~i^B9D-o+~D+Dq-&x5pSJC^6r>UTVUq< z+|ezSt@Hrnc%>Z|;YrM{C!Px+b*%qT04alvl8W5^g(W!DRw!~!PRNz0U+e%yYrLh$ z3S5fax_@OEwnuxuz>zX1&GCy+|2F6Z_9nH{_C8Y&6L^c&0yDeOXcjPD?WC-RXC@Mx z4&I%#6DHcXO#cW-8(OSG15f6#6NaD+9xT@V{lBDZ3#u!E;rT+XB;lbB-UV+4=RGHqgwR|E8tl~AxdoFe69MvBe|Pfc0!i~7N@pZT zt={#m?&&-)xQZt;eBi$`&Fn*nf*v#h!piHqi4p7h0-fH-j!-0C9pkP`oqLKx4 z^(V%_ZPOnp_$NS3@_xBD^_euf%D0>dki2^>u0qbk740Q&R@Xb%y~cdHdgoHca28#> z{d(>%|0;ukkiO`1<^sJ7D7`@a&l{a`zsEc!{;{oTq_TD$Hw+f<^_eslLHk5LT4eR= z5RjOHQCLHiyut~;eP#l8;r@0#oO;qYSYPqe1K9OPR&WeWZZ!fCWsw3&>q9^1RRTSW zB{f!!Wucb#6L-KMt5IHPxI;z#5uXb`!l)~@3)0Tz7a@x+ZF|YvWrWhB#>P^|c zK~j>P$&vz?H?T@bAThKr8&m~aK#qS+@l#6uzs}5?FzbI#tnz%SAUEBI8|!1z@f?I>otyESzUqf1;fkpVzgsH$Oh1Frxxd@*4N7HiRHu>t?)qOTJyLkK^KY`n z{ga*FDgZ;276g>A;Ru9h7c#U}=~lDo)x2tmne~nPEc|-pe*q;4-|OxiClmOBknbMX!0(CN-&Mc*dTqFT%V2kPs^b48Bt-`Sw0wZeS4}Pz;>KnlU@BH>RQGd?JOit z{+X!|$PXDP8`Ku#u63w7xB_LUz;>A7XDdG6(53zzRS#K)Kx?>BdRH_ z+q!j6FZ0(|rt;*RM;mb;T|rfXLi~tQ+x>X6lmE(?ksvVQqC~$PL<;$8z zDZQ@>h|xM8{vqfL-1FasRZ9#s{vDTo_i0+;w=C@0iZ>Fsbd=G!;%t5d^9od#s7U()8UsupV zrDYMN+p5&jdfBLot$YKy*dh>2EEKGFeI)wHynu}96`TVZxS9E5AL8m8-v{lk=wa&e)D<5enH9c4etz zm$6-B!ZZ}*4w9IqGmc$E$@mMDTU|3bhnzD~qHo7pQbnYn~q zZ^?MG{?XI5auuREo6p(TGX1tou%U$n-{O4({wBN-iQ>_m-Zau1fg*l*WuT7gsCH-h zE!in7o$yR9dtLpqa3&4-sZ6m}ChGYP=>EaTvpm&0!I*m*^3B+xkIoC^)XJb`&aOQId4w zz{}GjJ>*TX^_nZP?h({q_aIR(>Pbhna}65A&Hx}7N${f_QtvuVR;eM&Y~UOBJZ>y^ z4Yw+toK~$u9u7S8f-&y!|1PmWNukFM`!4kH0lfHCnp49^nNY$Xe;Ae)JD|5-hC(NWi)|fRqZq^h~Ucm>768 zH}%MoT=ubin=7$H!czI&as1FG^2C)Eud$@VS=!i<+a5fPXfVGm+EqB!NN> zhY2|bSH*snl~_w>-G7n2qD0gegUWxwnw@sRp6mxkR(}PnTi40-GTBb1&@{i|lWlHT z9m0OZ9z^@iAr5>39z)QFTOdK4)?TiBqFwf90Inc}8rX<~vWHT-UIHzq<}?kW1kfoH z=TNcu3g#3s6Ue1;_QT)pmp3|?=*31On1k$vUdJEiD^0#0x?iU{>$l7=qIV6@+FLRb-y6H~=Z2DLA2g$6lUEGOF^iI%BEKm)pJFQOoE>wR=(eBS zYyEhGFMQ$rV@v{lrtI8*^8r#k9|sshS41nk|6tFye!-8!`ld=hEhV_TZ|Yjv^&Rij z6~`P36H>OF=M}AVg?wiGhs7lDRxoFUF9|%sxMvdl$9$FFO`_%d+ACvO`7{-!93m>A2^R?b`5kOwVJhA;mF9C&w2(Ir4y>S~K zPJLjjpQ~dO=k=0_x6*|sC!hD_dS?{S`l5kWk6;m2Pv~UgL-xC4 zIbrbd9v1JLNz%ak=aR%&P6&j?S;H4XOZ-ellg?uyjaw16+V!K4jzLFd*{74HzTFY- z9S`M19ok1|RV6ej=T|a=V)%mq$;M;Pb$mR}6N1%)boBycZ{5`QZ)s7suZa`*(IaNCXoI8O^q?aSMnRPsDf zX~}>7`_`G*jb8PiMc;AfvuO4mkAS(SypPGJ3Y?P1+;Iy1rlpS>Cb-1Rv}dr38D*X% zhhD1nTFUugrmhYY4Ts1jfkVfDTR12hn*mX3rK$7EQG$zYKm$pTjT{;6;%m@r^f6Y?^zV@$b`9S2 z9Ygk+Q48ma@7N_VcsVk_i(my+`1(zT2}5pSN|C$l&zShYY$Ppl>vAMKUNXSyS%B*EWN?pp-qgk%D9wws{#zjUj)a&0;Oae7{om zl@PO@0;RuRnvrEuAq;JMJEvXbkhuL z_uNS4t|A!O)&nQCh1|1i5tkv}j}QSFiRFc=YRWdk9^cG**R~eu%2%-h5l}Yl4kSrApX?DTnVN$# z)$sD~$G{m07pql5;R- z!5B5QSTdFccVX;o8-Xumee645*x*Ipw=h`VD%}U7?t}R2kUl#2EG1pvWE_L7cjF6# z{d(}An8od4yF5_XA@Z{ERd6RNB|qOm1Wkl>yZgA|VH8)}V}i<>yW600#~!6u`P*Hj z#0Ptrnh0Y3@oLMehYG&qQb6FNlrzAAqFPh#7-rY(2dW@^Tbj}F9@{l>KFJ%u{k~{h z^>I|mdsfJblpEtzqO=|hvY~E*P3#84Q>GQQ2WiB`egRvjFt{q2Zwe7*?gmf79O6re z9XaVMwr>5cr(p$q7Hy(R*x1HJikpK2ML?hxQQ#!-J1qZ66dZz$;hZ@Mp;vJfmgeD_ z=~oTK7*ukvJ?|YSM6UQ{Cm-Ue1GurekMy6W=9u?1=YAmB;$TC%^--X)#^cS6D7E3B zr+w7H?yMnqn5;y_%7id2YS+>Qho=-RmoDFwsNx}wY2LLut0s<3i1$lo2S<#0pH22; zN2Y_OB#*4q+AoTq3rhikW%?eF+YuTl9jzecFAW~7wM@%6Njo$kVo-zV=(t6a!*itoijCrOP1oZ{c4cKA}OQG4U>g~Tmql%CL&%`w2KdH_Mme!2}Fcl6SVEC zC?FcQ(uu;ZD<*&RK?^e|J6siGztT9?j>Be=(`S*47Q9DTQci&iol=~S@-y5knk(j1BSaE5E;v`y@gl@h6?2DzKK51jrd&R&dOK1vg+8m{?3mAKa z?fSNtm~F;Ylo|yOT-M+N%m!bmzL4F#hhCv6$Wan|lWZmp{7eNExY4JqJ{JY>O@LoU zPl#=Z>}ZPS;b$V)f8DmV`Y9_<*ADDUi@xm#CFH3CaOGOMi@Ybs;Qr3SZWHFK7O>6P z$aXRUsK*2!7@UrNfSL4%Px{8+VDs>obkkmYM2PVT05-n!eZg$j)qw&|@@~$CL60Ss zcxE7e3~2S{kKoZ^O|CJc2VOERkx>Lry>T1@JvFy0OX}62Ukw}4BH1Hfr@Th^?BB5D zVGiLZ4DQSZs>53ob^liz3n>bcT~B+#2V{3-Rmmn9M`W8}8LgdU=}^u5a>MzEDdf5lhnGmA~bGu zhf&|Bee%)hutdyS%7>+!s|pV|g)@M6meYC>Gd)ZELZ`b_xh z8F%LQpDddv0&?v*RM2$aScW?mnRsH+Pe1l0${#2Zv#0BjzO9CgK~Sn z6Gfg7Kg3WHTzUDSV$>myhS61>9AAL9{c6-Z*<6Vi5>GO)AX!dW9VV5lG}Vt@Q#ASBAn zItg6lzN>Nc673U;0Nr}1mF*X8>T0Jh0Xrn}7tq7-2mBvaJDXMC0!jtdHWOlW*sRuk z>_O2nhY^#Y2il^z(+!`8L9LMPSu>Yf6%Sr+4N7lBE~o7R7h<-FhoN@>;(g08Txrv0 zu~*>U;AlCg8k$3GjA);d1);_)36}z}S9BAR`w`1eRe}!@PCvPp7SU$0HlVjY&UV!Z zDJhp?t+|>-PE2=gF~BCaf9C!E9Q4;3=Uzuypg=J8Tz$2Wyv>0xcnZlXFII1`UT?K0 zE@G8%W(ON|vBZRx(T3RR=7Oy_r*-rqWA2$=CK6*hZot}V$rv>&rgCi%MfMWQ9oNlv zAir}O^}Xc?F|l7S-5b4gMq=5RR+{Qf3D{ec=OY75>u}F;StZ&bnfO<ntAid(Kost zlzr#gZ50hYYRzBZQu2B?YA*_*j7TVWU!^~kv8HHHH|YiozegD)>RFr4$Y(YgtV=BF zwG+~M&)#k$#3ey@mE)8o5m0&rF#Cf3BHiDPuPp1Pa?PEi=5Zr}U_f$Ca1yu3sG*CJ zY`_SjaM2Q|l2!1s^}@mSNd`_d1JY6kha7grruF5`1DV)j9Ef>jE9$0F@IZAU$t*JWaxJ{wLhhjvKIYpmRd3(RR^V3p8*&GaDlTc#M>3?r^? zT;Bt4gbkaA5%ee&|adS*h=?O#xF(JY2IZXr$%qnVT=ch&R2x z0E`|iW4%&89PDyFV=bYl1ILqZ+15S37~rZ2cRnZ3#d5#9+JR&HVb&q{*)dVx^~PK zNN%5nKW8QI=_)$WVXg815KnRc5AYPZJ)3-ul2lXlmY}c$GB(R@&P1cHgHaX#?(dt= zU&4Q_l=R!%*cV{n#(f>dt7+v9$lCAp29k+K?1Et-hIVsL0)}rB&|tEE{3FpEODc_C z^S8JYaG~VrZNWrfAH|}f1NfX0N+ATVx6;t2@DQTmK=Gu{o+ViuE2-u>`yAoGD4X*u zD4CR*&DGi>gI5^mxpkOonhSvi7T$XfILs~6|FuuW#(?}(=TL)JJDGHMz}!Sp_ZJFv zU$mM#;OP^;j?zi+4)*cfA+M)Y$+`wAr}dC93~f(m&}&OZ0*yy)ykhJeGBN^XJsJ4j zq1snQPNK;%d*GiV93JmaOISlpm{AFkj#MxP`3Sb)h2}&B$#r%8k)(ifilR=mDHnbg zz&N=60mxPM?Wi*+pu7fum?Jqb#ugau7En%E_fx#OpNn`K zYw!=DDqY5WtMO`>(L=kTGT#R$8M1HAiF(Ej-?qKj@+!QIX2%-=WOL9K`-j!p+IwQ- z5my(}JdnUYKUfv6?9@YUA*c`AJR{5TIT8$=be+{4A3o6-*rXcU9z>xdV~AUW+w=H; zePE=qO2yY7sP{sZB1Ji@gxV4^R9Ghqm?5j&augwHo!1}KJfk8|=S+xI6*Js(SRC_4 zfo~*Oy+s)87~=t)d?LE>s_#}lEt%s|fy4z_neSY_9)KFA@#D@eJ#ILO{K;Jg%Q*M| zhgOK`UZGsKaCL)eZYW9>?NHD9VoetmWR3PP#@DQkfahu5hsYnm-{_>9P}TZ2u0y}t z`g#nrfcL|nU{X*f(LZ@#!I;bsQpl+z>mSi>EnDiVaSyHlTrRSG1K!Nnk~LiPoB+^<+GXls=f*0Yy64ZzO+Rn zXcc{Y=7!P-CxCBcb;{yQNI@hGY9^6%t0s>!=D`fXlF_TR#^Qn08VZL>Id>wf=phJZtn6wK{t~B z0=lK!d?bvJ#qOHa!X>)eJN9S#{|4QZr9jj$;0dyVoiSa#ESC4-;@t;4^`o)QCH3V! zJ~Vyi6l(gY=F3idO4u|Zvwq+eP^BsyLAkO@WV4b0VX3n7u&!3E)QPf?A|R_7;uLN#ea>hEI3@@=BB#ZWax{FDIw%0gA<`JsBVkQ{^#KAe~ar} zpQITLlzkk=Zqe4;e#(`5bjOh1Xz&~jz{VXE+KgzZ z!^Fu1^%VB-0!lD>zcmmaz|%zwSzE*G_=8TG9Q+F}37z>+LPc z>2yj2s6uOAyiO-fJ%%0I8|uzZOZU}fnv8Wsw*m&cnr-iWrXt%^{wP@>)E-<@4 zVNbd@=gX@`xsq6mvW85OCJSzD^*l!KF~mPHtJ~=A^L!N&{p`dbjZzyJ6eMW)^rva9 z30c!kr`bo?@Uwx21~>7(k}Y!km7%k?wl)DVvGGF!B!G==TYkiZfUO68F?U8ee$u3p zXIz;pI3}m5eh@$va#AB!*gpY0-i)2Wj(ybpq{wE#2%K}KZXr?ZNvsBkKJNy(yU3)! z7n_`ql!B}!nVrQyovPcU`xls_V&Ia((;t)$jf@<~ziTrv{00d+az5Q32MXKTwC5Gu zq@aCLo(SmO!agy1G&z@ofgeZp1BMj(lc_W6G|q; zL*YD*>tT0{?%Low4j69YZD;NfG>f^-IsL>8`#rA8hh`l^6?CClXtXTC5km+8Uv|Gld?o16}dCC_Nsc58Fx`!Iq z^F}xiSWvN?#N$pXG>#a6wq4za3w9*FP^35OxC_T+^{1*6%5c~k@P*k2<;r(%5eU`M z)+Gc^rn5A;4MI=knHjADKNR?LKL?)Y4~5j6G(e4GLB`VyxlgLj{bpH$Li4~Xq`@^>*bTl06WO-v2F)3EcCW}PV| zI{QnQjax34Xl=gYi3L`H$@*cy=|i+4!|i9VLg_D8E(}=t6$u-LdKTaG5aM4S`bNpW ztOFa58ym$cU)(Eho4SIL_>5kt}q18mX(eMGgX{lq8rvbUepAS7; zaGO%&yUf6~+JmR9`yz9Dq@?3z$6{+&^kU;Z9a#%gSHe{1<}Xc@&p*$)9LE%HPI+N1 zcA}5j73f~j6(!FN42`?*kP(z7L>I?ML95OH?pCkumvx~g?2o%P@&%TU=ox-}7gn9U zLV}pUg+^dSJ8A*xMc{qlFafU}aRodr1>2@z11m|CeNsGS9O@1gN>Y3TGBR6EE3k6KvSQS2xVT_m9I-SHDM{b}f%F$44GFnr0e%U(?mA4r0eodus zSdMZyEv%>#p2I7A&Dy*oq}RK->22nVO>lCACh>h}tN|UGJS47RM%cE(HA)z6ckekj z-F$%RUhtQuerE=??4n@Fg>>@nQgmc{6D>8YL^t*_;!NCe_ibgnQ6^X35BFtuwN<)r z+I6m7Aoz6q4OnbBu|lk;;C0Q~;1XY;Cu$qNB2eyTQ{YMzygLV0n1rjR4~X7&>x`0c z!>6~S0&W}k4)YB-9n zU6FYGQU`T2D!&yj=yJ|zkw&;zO_LcCd6+Z7h?P)M7O)c}J~0aL&dN?ui+F4sD081B zYIj5TVq7@Z`8iFL0vT1!#Ijn9<+qabmnv4luPt4d7r2sDm4*2!r#SY3`xcOv-L@2jSgIINS zxr4&L@-1+LWjJ5R1|fY1fDwd-eb@*vRYd$~nTzFqcQ2@hL}T_cSgoYgMm9tEmoQMS zH^iI){&&TFT?eY1rpxt#j-PpZdV1ECx3*MOc}$tT1ddp3B>vssJ2U{(TmkCGap0jpSlsKL(NW)cxvWen zdVOb5f_u<52_#`5qfk*)DuebIj)?OVxHW>AOc~qeV^N5!Ub25giT5G9J?^9CjHG-w zHbrs1qoim%Z1eBvh{Qa)q^12xNKniCuKW>;6&m8QKJ;+9hOgrThpT}{Wcg0~Ma1;r zE!YR^TzU(9Geo(f3JMA_>kN_WfVBrK)*7A~33$`LxP%#Bb|5?4BZ)qw!@%&3NvU-h z+|Gq(Att1QV%%{_HgNN4b~c)oqTuQlaVC6I0+GB+I5@gohmPlFn0(L_Eo&8@SHE+9 zC!QF9>b%-lgHPbAll|GISCCV%CJvsju&Vw;;ZH zd)6x8vu0q&E1;8hp6)}UFK{e!E#Mhuj=UA^bX&K-hp&m$ z50Dt5?{((3kcHeT_he(cV z7ziRRA!v5w0}EEWB+$=>Rlkxj@XfVNdX{^e4*l>Kl`YGIqPMC6$04|XP~8Pa5?1VwNIMG4oEvx9n> zOaz~OAq!AWk&l5hRrl&5Cn66*L|3=g;uJ;kZ^U1>yB|+M^Sb0qiHSo~q7hUlnKp#;r-B|C`;+>Y`Fm{|_^7w0yb?+GiG9=sUkzIHL1mb88tEG^JGtHLgPc0X z5O*Js1zES1Dq{%WON67ulgULBpO!B(e#1znqiZR1ov`3^JchXN#}-&?+D6gxxCqUu zh`7jJWf6t&TuAqtxx#)||AT^lDh7VoN$x;TXvGgc16>$v8Sp>5;n@cG2wR^GdwJ4K z9D@AI#q}E~CVjy{MVI_+Jqk2c*>(j5A4iWECGMcF@y+Nd+1U}1;LHKjUp}}}r`I%1 zaK7tPO~a%W6|xwbfx{5t&)k$1Px!>p8bmPnl_z z=H=$b1wwoMGzsShcTo(sT@PL=7Ul{+BW*pY8e80lK0)dyU-`<|e51QMbKIRFP~ zLoO>di~N)o(x(aevmN2VW3E2!9l3xO%u?eQx|Y324M1r9L9l9*rNxjqHO8C1R_K0f z?&u{+nVWt_A8tP8fHPO-!QO_SP4@fW3&X4JZ@Ecak-MKcW?gi8-=591?sgnFRr4vp z;VV|)2IoP?MzJy9lz@dwHHt5D;kkj_U;c1sfzg-xzbRzBU%?_4#{ZF0_Md{Wit!E0 z{y}<(uh>Zs7F<7dJIR*othz;#G5|uP6B5%H*~8<#D%i;b)ObO9BS zL@sYX-8oIzIWW@_;Au$}LDtj4bd(`qWHQmO?F8OLUyfnkw8sdD4uNmV9FG>{1G{Ej zx0}$TLXUV;dD{-jstaAS!**33F3=zb+!S~L1Icvgt3~g1Jhj{RpTM&{#9;ECspo?! zUZF3MtmQ&Yy8U#61(b=ZVX4(r-(k3($%N;8!0twx7T6<^7}@B-r^oxMw@?IT@Fa}| zp`)Kt(6FW*vIChT-48q3XfaRjp)1zNoC(Y?xrKoDdo~3+lKqT9^i<}{mrsnGC5|Bf zv`6qAmYvOhL^md&BqO^s4c5cELx$hn-@kjX2k|}C@$?wACNH*mf2dHLlAa!u0i9-a zcSiqh+DSXP+GEtX^iP^lAbEsRTNtEhb(hh5SVzz?(=mezWFo4Y62H3zkRYZErcmFi z#+N7UVh6n{o3VN5NgTq#0-v|=c|G`$(1SQA7etAZiT3V?34mxmUtvw&BPmE+5PNAS zB>N(9fL3`ZxT)KF0~_}PzdO}(W(?qs-w`s}FhbguFg-A`pk19w2}-{k$bX>(XS#V`c`;dM_NEra^Jl#% zSm1Ok3cA`XoMY<0?I4#XlafYbvrzIn(Ge&qCt+q%frmvAaXym8ezUGwm#TS%s_tV$ zY4qKoWS~Ybu9j_b7QwYHzcr#tib`trad=2Y7+baxukCYB`$HbF7v8hUs!6UNyH}bK zUu^v7N*975JH>WwO~O%mR()ARrEDNEli93w%8L?R&hUPz6e%aFl_ofvZY8FvbkULS zdpp7JuuOnx_6)-Ywu>?QE4wcu&cP`@vSnVVQk4&Nj6l*l#DZtC#?4=j=)Ie zt3TjTP-VA2>^mxAQ>oQXC>(t7*dNtteBD@A!U;bE1dhc&DMf`0>-* zjy^%td5+N%hDC#u7_IK)w1UreC{QGH+pMwzVa*5TiiLA= z(;Oryxa3Xh8@FdX6*#3eS5jp^)rL#VHPCEFI;p7{R?a9s>x#Zu76;dH65mCBOF1&G zOK=w5k@R|5;7pvMJwsAH*Yp^5aTG>>vLH?MA-j9%8}N+|=4a=PxXOVWZ*$v6onrj? zc;5${osgBM8wC@`VobP_@Dxz{z($kP{2zvZ(u}lLR(n-YW)mr4uYQQ{BNJimpxIJ-PMc2etyjYnC6&wG^`+c%rh&%R+c#ayt z{s0$8J|_LVeP?2eZn~Rw1UWdP*O$zTblK!wQjuokx<4==XxqBdT@hh-asGB2@9;ZL z-1}=L3h;=r>}iMj2>mQ%FOzXY49pfN=Z}X!ipan@=|vnwCm3p}C>~iZRozsZ28tq@ z51c4$m~Pcau$nq{7XW`DF>?<|Ej33(eF{0~Mc~bfmV$Zq($QGr`s>!~$qX_6ce~!E zCqI_0zz~vlm z@?TFNdd|Ok0_|JNpHhEfJ6$mSvJB5}Io9X6Le(`Iq;VA#*bZGvZ*%-S0Ja44u<)=1 zfuHMee)4@ip4OGvR&p-K>jw-L59YB&jpbt($^DDaIV$9QByb*x&q%8&3EMV_N2Yhs zN41Hbp#ek4tj3ku~2ry!n&w^W(W}*zjeZhC^#HfbtJgGANg8_gkdimq0^UF zxDDq}-S}n&6@(S} z8|L6q*(yps8}7~k4>#{cE7b&S@i#(O;nA;acL9vVL*yKe*9jr{#o+ltG=g4~EKEfZ z?k7A~vIud8rn*x-M~wu{_Jyq z&NEII6+y{mhx%kq9xQa|if+zk|LpS<1Sbve?&kK7^YExe=ym-1ZcEup40&jU=lWIC zz1`+4(;cTGACZE7WbtP-7o7hZDQf$3zo}^zCdxoq%Y_en`*+I)V=6kB4~8M-c&DGU ziI`KXOFTagFBYJ>WGK9u;7dvhOR^Di1gJw|%jkAhNe}80B7_EHgh6r2wPgwj9Z%JN zfSI$*3LQ*=kF!UpbywADW<+9p3_Uh*cx%XJ)!?qe;;=J2MuIfA@*ezbw(JE28yUX&4+hgKBztL$DY*6;c-_2iFiETP#OKB8YSH zP4c6|5FH)bFv6(au`meJ<3NiztDU4l^~705gUD?B%73DJO}KJ~;J;o2?}0~Qu!1Su=8WV<4p;Lu$rJ)^{c~M1U;S*hB!4fc^YZ@=J9-J zp})HDS2n1xFq?XxeSJ8_i;M=vyNiU=+N1j^4^&<}h47T240iHrS(9IXARS+#V(cU# zB?&VFYE*#5HwfeC)Y6v zla{p{XZoC?b!eSLLsQCu%uCfAjxt0k;FlgWA7-c_C#bIzesuZ8DRLo?FHE4`^gqN_ ztB@{{`p3J%_kZD2*H2$FSs~QQo*G>876J}#sKyQ}4Q#BC8UOk5 zrOj-S-HqL5g`jgnWgz*hZ^HYjQIqmCLy_)MTXXWu(tGB>FC#{e44ZhjmnVnv$%yA} zUY|xl3=XObz~KwB!Z+W*eU9L%{L#l{1$+JqUcsIkXG8>+qkRq4{-Pt70xZr+t1>s61&R zM$p&m-LpeaU4&!jt%MY3ch@y-WA!PBVg7}S1esZ_>NMR(E6WJwAW4WVLd3Sqbqk)n zHIBub1K_rXL2_a!cvF@4$YlL_*bQ4e0_HG}?R`_q)*M#)U%{dW z#=lw@r=(24!qxwuIBl-Prq)~NvYTr`z~i1Jll5akNl8@o&+r_n>j9s?m{6Rzp6{=>Nvw>W%NEVv426C9MZzBf$Dy~SAWYL7N2RtMEQbzK0rI{ z6xEj9m`BDmT9+TshH{;8_` zHmaaPpPxcV2pTP1xhj4yzTKbUsod7c!a}o~6N33zb4}%Px{5*&aH z@1Q#h7XA>5XK0YF2T;cVwhsP%{q(azqMBmy_L&SPQ3nNYzODFmo3%AHmsEfl{}fKu zfLl@Gp+}NFwh1}mgO_mL{Y_}tW3j`^t`to0k!op#&DVcLN|httpl`Ko^MR$G%2yam zK~L_Jdg?8YK3qau#g5!!kn!^H>kf3TCX`G2ztdpmN`zl%Ue?pnoM4p zltv%Icp#R;*(BmGkYDUDH0R@Iu;l8hUEh;&ZHRo+T53C4FJFjMXs_?z<=J7N{iEaS zm8zuXWLgE8r%SpZcDWO4_tqC)!vSOw#Bj!DO92~p{*h}l@Z)$?XC40NADe6@;BqwE z{H^$-%cGZ>`cudLQ;~{ate7`%Vnej;?ni zg#{%B9?u|*XWi|;y_k8@(_`ySB18f;R?PwUT~rnE_fBYl-WP(}8fJ(%QIk-x7a=-B zaKgl{@+EkaCn3}dmc@3kPXOTWJ$_B#9sM};4l5_b<|!?2$}6y`r+||2<|2KE&jBbF z$c&c;6AvIsAQ=&vtk@eX27>A2Q>pf0;L0M8KN;F8V< zbV=ZPry8R0b0wMK3X&gQ&n+oD_vY)o!f_+Gu@8U`bi6GTm}l`OHAh&)3|{ z>otl9rrj>bW?82ur!)NXpFlSppd10ngNFn4>X!{)n6jfj5yrmVfiBl;cTnpsL!R@a zcyf%Jjlz-x2616sSb@T0mC5vrqti8e*_tyhChdBmB^$;@<#GV+9dnKW9Sx&?vH`t< zej8kL=O5%5IX4P|u)vLiyTh7g@)DDH>X#t`OFxPb#@L(9XFM*()^mqE#6*`Vt1qbR|$bM zaf(NwsVP6$Oy53_R@wD7!1aIf`xENi%55}3Y810W%Ijx^q%DlYpqJcC$G(%bGd{KU z(0fW7LzfY-LjH47w819o>d#}aIGD0P(-wTU8yg;t2#oMI}Hyx_vC&KX?i3c+u^XoDL$Mbj=oSLf32vtAcRUoNKC-3QWLl0YZo(Z?OC z@v_E14Flj3dYjWu`i}J&AC%3b&;Ewj118#v}11(NAFK198k()`8fc2Nxv@ z?MMH-)4rkZiuAF;lYh`c7x#zlD2q9XSmAwowjRyq#@ray4LmJuOZdQKPs_~W& ztxmF@?x^cs*V?JuB*Thoq9b&nGOeh^iPnvpP0ZF#3uKmzLmYB85q8ey?o!o4T*wZl zrsL&k{ zN>#7T03|6DVo>&Q=2)I-(GRlw4sEP-PVNZkA^F)7%f%SzR9|m+mMfcPS<)^XA7kK??Gb^5xh&a-8 z@y5POPo<;!BnPFL(AS|36?1nurf~nztc(7sT44--g=4)LJVRw}iRnlQhmRaCf&Z}@ zn#S5zGFo2{xM z&sk&FxFcqXVV~_jfLo~|xUzx~?!O$W)nR}sd+_>kArVZ1Y1B^)7MBK&!_Jj%n&uSK zjxzia_M7N~Qe1@Jn7rsYUgw^kk}bjQ07~%v%>#x3F^!30o0#;1&K={#7fEo^Z2@&LfIso4UXY#6PlBy%ILURqUON-JhLMt#Rs zh5IvY=6$$N30Q-PpgG*ti5wP-8|lvw^l`YC0wJ>`eaDf@Hl|nk8g`k^+RHjhz7S_S z7z8wra9oPX9;lNzev@}#uK1u+Qe76+*Rt97Ll6{49$Mj3gaiXe@Un+7Bt;fH6FlvF zyUY(EV_WH6@xBCjBPenMg@;IX?Olyc@Yl3+VkZyT~2&3DI3a}TMoZl@JrpJUc}Lh z=<`D--(0%;-ao`h$ql{Xjj3kWGy8{aXiduCzIz#8#Uu|oxOFvy2zX!r#GJ628-2e2jdqpZTf^7t z$Hu2(vx0ZJTwm%?GyAcYy6f!2_w^?TJ-+?ela9{q?bMAbqiG74$2_(ePF%`Q@+_{D z6!xijV~gR1>lgTV$=`9vF3J>!G%eO?eP;i$TY%L_J9?xVxoJdRq_*nhu=YEbKG|zs1bl!rKlZLlEDmWc(C?B?l8AHnm1w7;lRgN zGLRHcy)8lu6oo7AObaDziuJud*yw40&gg^Xh}%kfHd2D=!Q4 z|F)j2e=WqqX_ns}?38jUp2HCbp%4AB3?iS<2mrEQ9?n|9Tu$(2QBDcf5XVY7a@HH{rRon#b!5_usW+)EBf`EnJA7$_U|H88TSxMgVX^m*nqm4 z^pWD5{!iZe2$dv*{gxeN1)~GT1E16%3|+)>mOm(vtG&VT(f;`_ohx95*GX)(!bW$f zkF2MM@VLtR-3$hwM9wl0@@F}PU@J*d%GrPw54uNFR(C~n!^4rDTeHa~++C-UEIlR5 zXw5)KeYoS)D@#S@a-4QBUH3V%z;}b4qp@eTa%ylF4^w1Mn}4T$6}id1c5vI_KEtY+ zmWalbAVUjqWDx5EPvEP)`>FstIjQq`?^a{}!`Abo*7GxAo2l+hx}K1uxufzdtMjUs z^aNg~zFYs@S0;>`gU_Q+)-Yl5B;kb7?!EHPFx-Ys(ITDf-v0V-N}(fZ*Q9TamjvRm z13Q{2g-tikgZDfZ!!5o<^oG#B1L)yWseAaC2;V2YXL%26n2&xQh@2sL>VZ&G`9m}D ziPQcCI=8VyErmVok5cn8TZaO|$=U2b`J<5Wz?W9;^|&>2RM^*tYDC`JUuII@Dci(E z?ATNv7MeLA?k5+=*pDc81C!aZUOOPv!tO$EtE?8EOUUoYU&v4&@9{AIxBeVYZXef! zu}7T04;#6>wSAxtDQ0CJCMkA!wjT&h0$Ql!W@cyHM9H5tp63tMhvUQEsw}x;Kt&Ai zJt@|J~SB5mMK8G5OInM?Ules&AG*VfFGX1{DfiMGr0(%BlqK6 z6Nv*W5tI)>s(*XmXt2jJm6nbdU37>ex&pJ0$|>TZtD)+KMMa&IV`KzJtr#jNa-BB% zFSm78vK;Z>TsGHJDZsf&mBB8^_Ni(K;(tK)$MX{Pe~SfHU9GgyxFHLxF(!t+% zk3Z-=78g!)PYF*BWHMw(on4@6yBLxg+`2mC0;AP(QqT!gNc(u`XJ2Me5%RT!*)@v>-6C^VVy93(?f5N@Yuy5;nFo zlR#o9oUk?nLO@H zg1cfL{5Cwv4Owryu6Cw8e&`FjpS>b;i}a^{x|20V;kLUoJva!BX8TqF3Ffq|sBwW6 zIWz(9nLfLFIPjlYh>alcuX2BVu7%WBaHF~#>x?;L^l=#CAvX3TG!2p3IWViJS|N)D zo7rnXqcFA^u9&afaN90MWH@`*TgOM?s!5e5OFP?{C>7oUU60&PqdpO^^u`z&{cu;k z6bfm6$j=fq$4~zFc)`B-+ZSE8lwp-C*t}(63)Xh)|8*9BJf$qN*q7!><_tB*T#YV&hVX8fY~pPr(U+Ii_C%seFtkBcZEjNYyuslgZVe!_HukW z(98!nFs!fq76n+CO$jt3ZtkgY>*zi?O^cR3-ODwoG*6%Wr|w}&H3FCa=#?0VjFYu^ zFO4a{LpoPJ#VR@iHun;=EzjWW+Y6BY$)l^me2~mIDrAU6L z19qhfu z9@E6x&`?*EL24EPs^?)fx)tHypo-6$vWg&QW@qMx(6UBszL;MnBJ_%cfObmM{J>3(e-~ zbGH*=M1(Q4fg$eg!?$nWUDS=fm{;lT!6cOLrYANzf+dV!;|X9MSG+8?9?IZpm-rR{Ol&1B@1tR5glJ9(+KzX3uNh36 zn_Kt#A3V!stnl0P)k$YNnr}$rI*`jcqV`^7HOLzpQM}aXA73{9u|m;s0mrT8G$Gk* zY@2=~OxD~F>PaypYF7NBZgsWMTU{qa4olCA{(%=WYexBLqFc8^LmP?~x9-F;vRF-E zr|&X%aYGR=u|mv2cGF-kAe8VK<2%edl9DGny1X82x)Wh8}6nOv-jUbAX@PhAiJaIAnGF1 zm5j>p^@Q2q)F0B$|vaqs(p2;;!NDfi#pI}%YGb-JxGisy2>O&RP>QU;2gb4ypCOPhwX z@bc@Dr@_`o75{Ty&R+@OsAQ&5bdRMyEj=r==z&C34R!wsNu_AJso?`XeC38IWvprl z*eO@{y`(5TGx(ER2h!~v@D~eos@y)~zvR|*MD1aLud;fvE06^XimdP&bCX4q&b>Cl zT4l~ycglBfa?OCOhD*dI7EJypGSsvDjc~#EEL86WLGoAf6ps0Ch!DkaFXTyzg2n>x ST}Ke$KUpay$qI3!p#KX$k|o># literal 55881 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∓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 diff --git a/docs/images/swagger.png b/docs/images/swagger.png new file mode 100755 index 0000000000000000000000000000000000000000..f5a9e0c0c47ce2969affb08af684094da1850a58 GIT binary patch literal 3590 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 literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst new file mode 100755 index 0000000..d17798e --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,16 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. + +Non-RT RIC rApp Manager +======================= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + ./overview.rst + ./developer-guide.rst + ./api-docs.rst + ./installation-guide.rst + ./release-notes.rst diff --git a/docs/installation-guide.rst b/docs/installation-guide.rst new file mode 100755 index 0000000..0e629da --- /dev/null +++ b/docs/installation-guide.rst @@ -0,0 +1,89 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. + +Installation Guide +================== + +Abstract +-------- + +This document describes how to install the Non-RT RIC components, their dependencies and required system resources. + +Software Installation and Deployment +------------------------------------ + +Install with Helm ++++++++++++++++++ + +Helm charts and an example recipe are provided in the `it/dep repo `_, +under "nonrtric". By modifying the variables named "installXXX" in the beginning of the example recipe file, which +components that will be installed can be controlled. Then the components can be installed and started by running the +following command: + + .. code-block:: bash + + bin/deploy-nonrtric -f nonrtric/RECIPE_EXAMPLE/example_recipe.yaml + +Install with dependent components ++++++++++++++++++++++++++++++++++ + +The scripts for the deployments of rApp Manager and its dependent components are available in *rappmanager/scripts/install* directory. + +ACM components should be configured with couple of other components for the participants to work. + +In case some of the installation is already setup or not set by the installation scripts, the below environment variables can be used to set the configurations ACM through installation scripts. + ++--------------------+--------------------------------------------+----------------------------------------------+ +| **Variable Name** | **Description** | **Default Value** | ++--------------------+--------------------------------------------+----------------------------------------------+ +| CHART_REPO_HOST | Address of the chart repository. | \http://IP_ADDRESS:8879/charts | +| | | | +| | It will be used by Kubernetes participant. | IP_ADDRESS: IP of the host in which | +| | | the installation scripts are running. | ++--------------------+--------------------------------------------+----------------------------------------------+ +| A1PMS_HOST | Address of the A1PMS. | \http://policymanagementservice.nonrtric:9080| +| | | | +| | It will be accessed from A1PMS participant.| | ++--------------------+--------------------------------------------+----------------------------------------------+ + +All components can be installed using the command below, + + .. code-block:: bash + + ./install-all.sh + +Individual components can be installed using the commands below, + +To install the tools required for other installer scripts. + + .. code-block:: bash + + ./install-base.sh + +To install the ACM, and it's related components. + + .. code-block:: bash + + ./install-acm.sh + +To install the Kserve, and it's related components. + + .. code-block:: bash + + ./install-kserve.sh + +To installs the NONRTRIC components. + + .. code-block:: bash + + ./install-nonrtric.sh + + +Uninstallation +++++++++++++++ +To uninstall all the components + + .. code-block:: bash + + ./uninstall-all.sh diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100755 index 0000000..9a274c3 --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,107 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. + +rApp Manager +~~~~~~~~~~~~ + +The rApp Manager is a lifecycle management service for rApps. It gets the rApp as an ASD formatted package and lifecycle manages it based on it instance configuration. It uses ONAP ACM for lifecycle management operations and it integrates with other components for managing the rApp. + +The ASD package contains the details required to create and integrate the required services/components. +The ASD package contains only one rApp and one rApp can have any number of rApp instances. + +This product is a part of :doc:`NONRTRIC `. + +************ +Architecture +************ + +.. image:: ./images/architecture.png + :width: 500pt + + +********** +Data Model +********** + +.. image:: ./images/rApp-entity-relationship.png + :width: 500pt + +************ +Integrations +************ + +The rApp Manager is integrated with the following components to support lifecycle managing the rApp. + +ACM +--- +Automation Composition Management (ACM) is a framework that supports Life Cycle Management of Automation Compositions. It supports deployment, monitoring, update and removal of Automation Compositions en-bloc, allowing users to manage their features, services, and capabilities as single logical units. +More details about ACM can be found in `ACM `_. + +ACM-R has the ability to support an unlimited number of participants and all the participants can be configured through the configuration in the rApp package. + +List of participants used by rApp manager sample rApp. + +* A1PMS Participant - It interacts with A1PMS of NONRTRIC. It is capable of lifecycle managing A1PMS service. +* Kserve Participant - It interacts with Kserve. It is capable of lifecycle managing Kserve inference service. +* Kubernetes Participant - It interacts with Helm/Kubernetes. It is capable of lifecycle managing Helm charts. It expects the helm charts to be available in the mentioned repository as it doesn't handle the helm chart creation in the chart repository. +* DME Participant - It interacts with DME(ICS) of NONRTRIC. It is capable of lifecycle managing DME entities. + +ACM composition and instance details can be provided as part of the rApp package and the package structure can be found in `Sample rApp package structure`_. + +DME +--- +The DME(Information Coordination Service (ICS)) is a generic service that maintains data subscriptions. Its main purpose is to decouple data consumers and data producers in a multi-vendor environment. A data consumer does not need to know anything about the producers of the data. +More details about DME can be found in `ICS `_. + +It is integrated with rApp manager to enable the rApp to produce/consume specific type of data(Information Type in DME terms). + +Information type, and Data producer/consumer information can be provided as part of rApp package and the package structure can be found in `Sample rApp package structure`_. + +SME +--- +The CAPIF stands for Common API framework and it was developed by 3GPP to enable a unified Northbound API framework across 3GPP network functions, and to ensure that there is a single and harmonized approach for API development. +More details about SME can be found in `SME `_. + +It is integrated with rApp manager to enable the rApp to expose/access/discover endpoints. + +Service exposure/access related configurations can be provided as part of rApp package and the package structure can be found in `Sample rApp package structure`_. + +***************************** +Sample rApp package structure +***************************** +The sample rApp package structure shown below and the location of relevant files for each integration is provided. + +.. list-table:: + + * - * ACM (Files/Acm) + * Definition - Files/Acm/Definition (Only one file) + * Instances - Files/Acm/instances + * DME (Files/Dme) + * Consumer Information Types - Files/Dme/consumerinfotypes + * Producer information Types - Files/Dme/producerinfotypes + * Information Consumers - Files/Dme/infoconsumers + * Information Producers - Files/Dme/infoproducers + * SME (Files/Sme) + * Providers Functions - Files/Sme/providers + * Service Api - Files/Sme/serviceapis + * Invokers - Files/Sme/invokers + - .. figure:: ./images/rApp-package-1.png + :width: 200pt + .. figure:: ./images/rApp-package-2.png + :width: 150pt + +************** +Implementation +************** + +Implemented as a Java Spring Boot application. + +************* +Configuration +************* + +The component is configured by the usual Spring Boot application.yaml file. + +An example application.yaml configuration file: ':download:`link <../rapp-manager-application/src/main/resources/application.yaml>`' + diff --git a/docs/release-notes.rst b/docs/release-notes.rst new file mode 100755 index 0000000..5843aff --- /dev/null +++ b/docs/release-notes.rst @@ -0,0 +1,44 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. + +============= +Release-Notes +============= + + +This document provides the release notes for the release of the Non-RT RIC rApp Manager. + + +Version history rApp Manager +============================ + ++------------+----------+------------------+--------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++------------+----------+------------------+--------------------+ +| | | | | ++------------+----------+------------------+--------------------+ + + +Release Data +============ + +I Release +--------- ++-----------------------------+---------------------------------------------------+ +| **Project** | Non-RT RIC | +| | | ++-----------------------------+---------------------------------------------------+ +| **Repo/commit-ID** | | +| | | ++-----------------------------+---------------------------------------------------+ +| **Release designation** | | +| | | ++-----------------------------+---------------------------------------------------+ +| **Release date** | | +| | | ++-----------------------------+---------------------------------------------------+ +| **Purpose of the delivery** | | +| | | ++-----------------------------+---------------------------------------------------+ \ No newline at end of file diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index ba40ece..f90f2a0 100755 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,2 +1,13 @@ tox +Sphinx +doc8 +docutils < 0.17 +setuptools +six +sphinx_rtd_theme +sphinxcontrib-needs +sphinxcontrib-swaggerdoc +sphinx_bootstrap_theme +sphinxcontrib-redoc +lfdocs-conf urllib3~=1.26.15 \ No newline at end of file diff --git a/openapi/rappmanager/rappmanager-spec.json b/openapi/rappmanager/rappmanager-spec.json new file mode 100755 index 0000000..e6a8070 --- /dev/null +++ b/openapi/rappmanager/rappmanager-spec.json @@ -0,0 +1,663 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "rApp Manager", + "description": "The rApp Manager is a lifecycle management service for rApps. It gets the rApp as ASD formatted package and lifecycle manages it based on it instance configuration.", + "license": { + "name": "Copyright (C) 2023 OpenInfra Foundation Europe. Licensed under the Apache License.", + "url": "http://www.apache.org/licenses/LICENSE-2.0" + }, + "version": "1.0" + }, + "servers": [ + { + "url": "/" + } + ], + "tags": [ + { + "name": "rApp", + "description": "API for rApps" + }, + { + "name": "rApp Instance", + "description": "API for rApp Instances" + } + ], + "paths": { + "/rapps/{rapp_id}": { + "get": { + "tags": [ + "rApp" + ], + "summary": "Get specific rApp details", + "operationId": "getRapp", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Rapp" + } + } + } + }, + "404": { + "description": "Not found" + } + } + }, + "put": { + "tags": [ + "rApp" + ], + "summary": "Prime/Deprime rApp", + "operationId": "primeRapp", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RappPrimeOrder" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not found" + }, + "502": { + "description": "Bad Gateway" + } + } + }, + "post": { + "tags": [ + "rApp" + ], + "summary": "Create rApp", + "operationId": "createRapp", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "description": "Bad Request" + } + } + }, + "delete": { + "tags": [ + "rApp" + ], + "summary": "Delete rApp", + "operationId": "deleteRapp", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/rapps/{rapp_id}/instance/{rapp_instance_id}": { + "get": { + "tags": [ + "rApp Instance" + ], + "summary": "Get specific rApp instance details", + "operationId": "getRappInstance", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "rapp_instance_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RappInstance" + } + } + } + }, + "404": { + "description": "Not found" + } + } + }, + "put": { + "tags": [ + "rApp Instance" + ], + "summary": "Deploy/Undeploy rApp instance", + "operationId": "deployRappInstance", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "rapp_instance_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RappInstanceDeployOrder" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "404": { + "description": "Not found" + }, + "502": { + "description": "Bad Gateway" + } + } + }, + "delete": { + "tags": [ + "rApp Instance" + ], + "summary": "Delete rApp instance", + "operationId": "deleteRappInstance", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "rapp_instance_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/rapps/{rapp_id}/instance": { + "get": { + "tags": [ + "rApp Instance" + ], + "summary": "Get all instances of rApp", + "operationId": "getAllRappInstances", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RappInstance" + } + } + } + } + }, + "404": { + "description": "Not found" + } + } + }, + "post": { + "tags": [ + "rApp Instance" + ], + "summary": "Create rApp instance", + "operationId": "createRappInstance", + "parameters": [ + { + "name": "rapp_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RappInstance" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RappInstance" + } + } + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/rapps": { + "get": { + "tags": [ + "rApp" + ], + "summary": "Get All rApps", + "operationId": "getRapps", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Rapp" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "RappPrimeOrder": { + "type": "object", + "properties": { + "primeOrder": { + "type": "string", + "enum": [ + "PRIME", + "DEPRIME" + ] + } + } + }, + "RappInstanceDeployOrder": { + "type": "object", + "properties": { + "deployOrder": { + "type": "string", + "enum": [ + "DEPLOY", + "UNDEPLOY" + ] + } + } + }, + "ACMResources": { + "type": "object", + "properties": { + "compositionDefinitions": { + "type": "string" + }, + "compositionInstances": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "DMEResources": { + "type": "object", + "properties": { + "producerInfoTypes": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "consumerInfoTypes": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "infoProducers": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "infoConsumers": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Rapp": { + "type": "object", + "properties": { + "rappId": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "COMMISSIONED", + "PRIMING", + "PRIMED", + "DEPRIMING" + ] + }, + "reason": { + "type": "string" + }, + "packageLocation": { + "type": "string" + }, + "packageName": { + "type": "string" + }, + "rappResources": { + "$ref": "#/components/schemas/RappResources" + }, + "rappInstances": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RappInstance" + } + }, + "compositionId": { + "type": "string", + "format": "uuid" + } + } + }, + "RappACMInstance": { + "type": "object", + "properties": { + "instance": { + "type": "string" + }, + "acmInstanceId": { + "type": "string", + "format": "uuid" + } + } + }, + "RappDMEInstance": { + "type": "object", + "properties": { + "infoTypesProducer": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "infoProducer": { + "type": "string" + }, + "infoTypeConsumer": { + "type": "string" + }, + "infoConsumer": { + "type": "string" + } + } + }, + "RappInstance": { + "type": "object", + "properties": { + "rappInstanceId": { + "type": "string", + "format": "uuid" + }, + "state": { + "type": "string", + "enum": [ + "DEPLOYED", + "DEPLOYING", + "UNDEPLOYED", + "UNDEPLOYING" + ] + }, + "reason": { + "type": "string" + }, + "acm": { + "$ref": "#/components/schemas/RappACMInstance" + }, + "sme": { + "$ref": "#/components/schemas/RappSMEInstance" + }, + "dme": { + "$ref": "#/components/schemas/RappDMEInstance" + } + } + }, + "RappResources": { + "type": "object", + "properties": { + "acm": { + "$ref": "#/components/schemas/ACMResources" + }, + "sme": { + "$ref": "#/components/schemas/SMEResources" + }, + "dme": { + "$ref": "#/components/schemas/DMEResources" + } + } + }, + "RappSMEInstance": { + "type": "object", + "properties": { + "providerFunction": { + "type": "string" + }, + "providerFunctionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "serviceApis": { + "type": "string" + }, + "serviceApiIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "invokers": { + "type": "string" + }, + "invokerIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "aefId": { + "type": "string" + }, + "apfId": { + "type": "string" + } + } + }, + "SMEResources": { + "type": "object", + "properties": { + "providerFunctions": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "serviceApis": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "invokers": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} -- 2.16.6