From 5e209616e9c49b915b79522fbfc23a87b3357601 Mon Sep 17 00:00:00 2001 From: Pedro Silva Date: Wed, 6 Nov 2019 21:57:16 +0200 Subject: [PATCH] Update readme Illustrate the repository's purpose and point the reader to the api definitions. Closes #47 --- README.md | 44 ++- docs/img/overview.png | Bin 0 -> 50321 bytes docs/img/overview.svg | 848 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 887 insertions(+), 5 deletions(-) create mode 100644 docs/img/overview.png create mode 100644 docs/img/overview.svg diff --git a/README.md b/README.md index 1872026..7a4b37e 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,49 @@ [![Build Status](https://travis-ci.com/wirepas/backend-apis.svg?branch=master)](https://travis-ci.com/wirepas/backend-apis) -This repository contains the linux gateway protocol buffer definitions and -language specific wrappers. +This repository contains the message definition files for the Wirepas' +service APIs, specifically: -Language wrappers: +- [Wirepas Gateway][here_gateway] +- [Wirepas Network Tool][here_wnt] +- [Wirepas Positioning Engine][here_wpe] -- [Python: wirepas_messaging][here_python] +In addition to the the message specification files, the repository contains language specific wrappers (classes, function, ...) that simplify the translation of the API data into a target language object (see Figure 1). + +![runtime operation of wm-config][here_docs_operation] + +**Figure 1 -** Illustration of messaging wrapper's function within applications. + +## Language wrappers + +- **Python**: wirepas_messaging \[[source][here_python]\] \[[PyPi][pypi_messaging]\] + +## Contributing + +We welcome your contributions! + +Please read the [instructions on how to do it][here_contribution] +and please review our [code of conduct][here_code_of_conduct]. ## License -Licensed under the Apache License, Version 2.0. See LICENSE for the full license text. +Licensed under the Apache License, Version 2.0. +See [LICENSE][here_license] for the full license text. [here_python]: https://github.com/wirepas/backend-apis/tree/master/wrappers/python + +[here_docs_operation]: ./docs/img/overview.png + +[here_gateway]: ./gateway_to_backend + +[here_wpe]: ./wpe + +[here_wnt]: ./wnt + +[pypi_messaging]: https://pypi.org/project/wirepas-messaging/ + +[here_code_of_conduct]: https://github.com/wirepas/backend-apis/blob/master/CODE_OF_CONDUCT.md + +[here_contribution]: https://github.com/wirepas/backend-apis/blob/master/CONTRIBUTING.md + +[here_license]: https://github.com/wirepas/backend-apis/blob/master/LICENSE diff --git a/docs/img/overview.png b/docs/img/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..96dfeea4934646cdd70382203c3a7b7655b50d29 GIT binary patch literal 50321 zcmeEu_dnHr{I_{zlVp#mBqPER$1J5GDMhlgN+;W~cUDw3iT8Sn9WJ=eQfBSU?57C{yo8XERX7xiw?&@iab(9qsI zfPn8Pk26)n{}?>aUb=Yz{sbPdkAc54yInN%q@m&Hq<+y(Oy$$UHwC=T-}W+gb@cMF z^>Co^@$r$r@AAOY&eqLA-qph?dqG2xhDMy`lAi8O-<-J-pOiyi2HTbwyByPU(!~X6 zk1L*2?Sfd=@*%X@Du!}Vmf#g-MdfRrJ>iQ)oqgDH}XJm-}E44`^@gX z^!E?IIANm2uWSSnGMiToyuH1zEh?<78vhiR`2Trt9z9X6wny?3M}Bs~6gFmTWyh_iJSOvGsoBrOwb;e81yDMl4NJ;SS|IwJX^ zMm>uZ)tJOY*ObgmGigc5mnn*^OylHDgXKS8lpY_J%bF)|1|GYd(!R32d;R>A!`%r_ zo;;E7)8yjjR*U4fE8`SCqvP*ibIH)~xTfYvdRA6PQv}n?8^*>X`<^dfy!d|C&aP6( zZqMNARZBWqCKFnj&<~M6gP-!Gh6_qa6h__Ak;%Um7`XH0{{8#jaf;VVOH0i@Isfdq zN5t8pcemDdf4(y<4BT8fdhFQs(!1w7(obExdGn@irKO(U0@GJ)n+K$Ay=;2b?Og;z(H#XviPQvu*{~m9Ocz@^9Fi|^@=sBpo9vGF?QHX_K-QjQJgs$YKln0zJVhPw#zp2F`9 zRi*c*@yYlp9fXna_Ukb*qBXvzlFl>qQ;6L*hyFA2Vp_9B2}du%FPBZ0E=}Y->Meab zjjPCckQ}He%H7ZV6?=(7o zc}(qgYZ=j?W; z9A474>9Q@R97SeN2h1r}GgdJLSR}MybtK0dBrO`nUzQH&ibeVDJC2{9bK*Hb*eIo~ zl$|40A*#dz2*WJO45B;PgWEnQ8NHq)CN5@YW%--@e0%FhN!6dn!~_wP$L3TzkC2c# zah`{p`za5efJJ4Vc3|O=GVIDx_dW@$vUQPijnLI49MA4{BI2CkB^Kw4N2lp_L&Zu> zH@4}{m0~AlLfdd*EMhqNqNr{JF@9dJ1oLl$eaH;Un1Z+Rc8O)Erg1A)NUvn*}mXf(#CDG>aE6p>Z# zn!N{w#EW9sy@sQ(xWAU;+-Ssk?fm!U7KeO!gbuu=(@4Npxoa=6A$7iSpCI+oB8`-~ z)QU&*JL3tn;{u2!rPm!t)fGCqrxph>6;n!_AN9GNqx?*lEL?gUXYZ8w%aW)FR#V9xjC83DJPzK z4?V2>GU`A3Atz{kAaVrB4Yj1{^{ZD)KTWNdr?XuhgUQ{h)KV~HY;0`ZwpYAYjvJDa z@Tlv?bBt6SS@8|IGoXfl(;%PFi3?^gyB8OZy0(8EyhtzaX_e^n zOKwUwAi|Z?7Dc8RyGt+h=mZmHFHV!lfze?{n_T4Wc`&8fv(Fgkm0Q`yVa$B*(Y#x~ zdm58X!~q-BqLUqJnzeM`h>em!lzPvsO*!Mi&?jFvIbUlc9~`rxLGmY?OQO>*D~$`I z748=N7-hxjK21OSo@xECZTelx?qw%!LG{I-G`YoFkzOA z-TiRDpb6o&LmcloTXHi9i|nQJzbf^ECuksw0A@ZD8XYPE?F`yF0<%6Cwyi@bG} zIDQpBfyJRRPX%5zKBEx^KJc=7u6>t>cUUSBhm??3z6-mXAxBl>qITH_ttla3VJ z`Q&^*xKUf?`0;5;k6@<9F*%2|+6Z~ea=mmznO027O^((KE?75uk9+-3S~(h*FXIuf1=WX2 z=yD>vi6@fZp@rAWYYz$ySK-N9f^&Y{3jJ@&*^m*ho|3l)h~fxhKG6V;VZ^%?VxKF! ztt)b5hy7;18^@5_hG-^y2_~rCEqC~i4Y_vnOK9}nyLT(v+S;6UX07)-_GU{OS+-S^ zVq#))&X$#zcfY!nZ1Ci;-1kzRIKyT~t0y^q$}e;D?rLLv&mO`QKaoXGpVzi|1oxJ_ zn@irYn0r`2N1)Maa%8obNs)`kx_wl`#9Y?#L_7JbB8dvk>f&+io1EqsUWH={{wS3=)Tc5N%t2V`H*`w?X} zX}^*a#(t4@_(^xwfv)FesQzI8c(1|C3vLycY_w5#Ba9<*f`p%Ri<&jZ`qe6FyLqC~ zb7FuN_*dE`6H|t&-0fClxFrK`y)%)UtB8$>X_syxk-xn$mYODDg_Hu;(blz?dHMCt zKu?$gN83}5u{kM+`jRfrwQ-#D9VOpUu87bWBo9_kdR_4J!KdGiPFKcTJ=Nwx#Yq@d zFe6dVC6-v!G8x!$Skp%G9h;admUF3;HN(xI$zczqjU@8+A8glYQB<|P`0a1BL(Kd1 zD5>USxtRVo$5#wTQA5GaesvM^MHA?KYr=9n9<#L{*{x2K9k0NPdT;-@d~r1NYY(w2 z`Ol*~VY0ACnGoJ;xl(sntS{#9^U(7h4g|gSJYJE}nxGTtY=}A7P~=D;xBXaS-~#6@26)4rhyrJ~G|9=cXu1RbP5;lh`tl z?pfOOdO7!DcaP-&bG{`Eb|#xjFL$E0B#)Jtx)3WD~2V1Xf4 zkWB8;{_*kt5AtsC{@ungZ90@#X8Wb{y6mwnH|J7UrE~kOJ{$7?o4>h#nP4F_O0tPg z*9gbvuSlVpMzen_(gir|v!caqUXVv$648(D;|=GGGVlN-u@3{8htH4BAtFRxEOE}s zneo}8I<@VTnDGcMt!56pnJ{+4o!@n;U;TnUmhT*0H~F-9m-HlKdf=B98qqS8`*8of zp^?1+lILiWrrY5r5lSAe@=Ja662>;VgN^1OcAedAeepc{!sjBcS(P?Nht*cc{=oQd z!kJKZh16z8YYSG5tA;oS(RF#rPo?Ml22mw>vnhWg+37|m2ijyxD+AV0vy7*uJ)G)& z>21t$y1cl&rq`3~&WD;1Kjm8;L;6}Ax87qazR_g=E>-E;+ZX(^_W6bu61mQr*P}}Q z_pYRvGUVELUURL__~`NDhcUH!fGL%Kyg1Jqythf3;ndm?e+$TSKQ1jWaS{!KRfC$M1}M< zVan>ysb<|R7YlARBvcO?FB%gn5Yy$HibTU8_c;qe1Zw!jF^umQDcki$7mw)~VzkKN zkA395U1Gw%aN%xtX>;5QEM-t_ts$Nrtr^BXw-ejl;>&?@CmGIt2y$&gSpK>jai$aJ zbII=jN{WT3(L{X8U8t>W9E{Rb14$yr4`c;G6rNkzpu8dMw_xJGk-x48?`AA49 zGpfA8VV__v%8hMRUnMEyF|Dq64#uyVk1iOpe|hoZg;hI&(6F0;S{VPrXT8cRed85w z=qR+LXKf{odmZem!%54eyb#g$_V$_cgpo--!;37=F^7sdh_*6|$;n^D3)5=c-Q9m& zNteeeW9EoN%={oPCIBW!ZzVM+$6$YNx7<2lUL{Y_@xZ#oE9p5*?4uX?Q8Ddfg_d4k ztB+teX#ak4sv$<&?1rZ+wdQ=CDDTmlXccnp>gedm0-iIFJifWAXLum%#7(`)MfcjV z#k_CtOiNz;D7a}I7~sNQek$*#S#bnfQg@2^pyQx+_V5C7Z8$JghF^q~r#HhF)$R9a5%1MfP)TO!gh6Zlb^;kCRT$~wGKNoW+c zAKd`>)YO%!WcTma2Xkql6o-upV07s^`nb5&Oa?c1_gtemME;2>*yz|+o~JHo*V3SE z%;3lS$qly6QPqHF=R@Crc1g||Jw*K#|0%n>chg1!$=wcs$K)LF|JCS+^Mjw1?|(n4 zbnMtvHGnpK)>=&ue`BL_64%*IkjzFA!Y5x<2p6BpKafQC>ad6TWZz_BY;5NBa>s5m zpX_Ze^H&$2{?9sUA9MNB66-ZT_>@i~Xd3Pc%DHSf)ECgaq3`*eT%o=#v&rqIl~fzFbFhPVqABD8savZN0}z zk+6u!ZVT(FIxb6?+s`gfU^?2}*XGK5ww^tE_6MkL)FF)df~y6uQk4 z5QHz7e~k<#^sHegb$o1ikgR`Bp~v%2Ba=$`0v3MKvLPQx3i8v<(XF4^ADy^=PGsD3 zoF*x@J7LLANmG>m7ab~0P3M7=h#0b{RP1(gPw+#87T)pp>T=yan?gcPTnbZIe;5nC zo|w;Jh;pW@Jkwd5gL#N}Ot{98>`*1#z;TLA#94>X zT>MXleUUc0d2GeUj$5Yg!)YebkJ(S)aVF>@Jku;qMy)F; z;L%Q4w9}@1AzE`>wQ$&wRG*He+)B~T z(X?7$5bob`tUrsKrK7-RO^U0*Uaz^h_t8dZ#gVN=Iso&Z%0tLb4$< zM-8dv)?pDbPa`yLT|J07T=B9#DF@$NVmMG9DwIR&i5{r*ChF+f4C6yIw{ML3X*K&T zvN>%!IaL>w?`S(!$CcL+jrXMp4><2i_Mbv^`q-2oFU#3&_%3a&Y`Pst)VX-rjTzIP z*o2_}N5>hkerj-F{fJY@3tXns01^FI6^ zOp-^teU9Emv*X(D59t#;Y))JgbK10=OM2y+GeyqXVqf>H=c-E1d7qwq0r1RZr+lsK zOI(N^Y@V1y6(A=uZn2OKue&O%?cUpnJ#&lHP%^0fJzc{si~Q~|8iV}eVNdVLQ4{6ffq@)7 zdV?tbU3GFeY}#(lEek&^DHDp+k(^W9;LiSVgC`*H?pL*6KT6F`^{aWKn;nZRqS^1% z%}Eb^HnV!demM20RILQpqnX){ayU*h_93F|bO&uB%_V}zRdhaMJ|EJ^J0>UYS@QWC zj*ip3l(CTgOPYZfs73nrz2PcFxjP>(CO&>#Q;QptC=`P(E56Bycx+40KZ_G!qzyA% zwm~DCY;0JU!pZ&)9;f*S?II2c5Opq?j`N}mzC;tz5h4VCiY>jcs%s zrsxxCzI`Hgv1+U7<_;1XXLCY^{046b2z71HXKR*mWW-?&)|^P2Blv^kCv9Xg{NKM$ zCag?#I#~v9PBEq*qC#5s)%hXS!&Thd+jl0bt{a_WDPsyaw%5{DH&H>Woj^pUdH**pcRl46Ch}9ql$kry>i=fF5mQ&xp)e=D}#iTN2SvD@z3! zpX8{IekQDOMPgIDIMqa4OLTN>q%nI5v4#WLr31WSbMZ`}i(kJ!&d7VPJKPzTe}M&g z!uZQTtE`i@SobZhKKJgCR->>(V#py$fdF){SFTSB$G~5XxE9BzoCx;g77KF|!DvjY zH8J#aJ+a5}sqwxb+URQ{dwWipX2IyXyysp}^FR;&=o>Olw}_r-dtRHCr#;i$UUSKH zZn?hMOw6!s@kLctm6p#~kPn)waH{^-y&t*Ff9k*S@!oZ@-VfAe!DrocUN7O@4WjIm zRj$QbEre|xceXB<5y#N-p2(0HlTcsLbYHomp5;%RnaG3EOhJ`WvfUgxrJ7%;DivKO5@Q@CLM{B!88Qjg56(7;DsSUDSSa(12Qn_e@IaR#*Voj~B15 zu9iiP999du_YB3YW^o=TAR0?p(MA7iH$Ku4)p>ScLc>rUWZij2K8tbV|FFi<+o1Yh zx_0eUL^pc39ycUe$OJn2q}#D%PfEtkxevZdEakdw#vo?onR%Z^VD?ukk@AHva^xr#v2wegC~|+>(c%20 zN3{T#ef>mPxuTY}ZRJ@*-hlyoRHf^hX|Y9n{C^+iKE5t9 z^yxYF`&1<#o|CouyoWl#QyxI3G%0fCX@9;v;q!Q+H>vm0Wkj9g_xf@wm=mX3egTZX z?CG5IHtzb{@b>#fmbI9^x3`{vxTSdi`>W3`2{{E>$cO)Oqdlj)r01q#l?x2k(SWEC^BZ8vV8vrGf2f(DGMVb@1DK95Px!RdPlBK zB()<|#<=wEm$T^jn4F@zG2ZSh6`7VacyPe-g(ramsL5eL@Lc%0|NZq9K92{JULQS4 zhLsWDfp(pBq5jgdtm~WPS4P-2Q&g(Rb4$pZWia9 z7Z@$du(ORfES$+h#!);PMMtPB!b2TOt)5=^tAc_uht9+6a|7pK)FrZbj;N_+Qpe=u zM`c)`MMlp*E8g#XelD6=;dNdIimXdPl?aem_zioPr<7ttuqg~(~T{19u z1=D);=uzQvCtMPzDEJ z-NH*ViEC-){`>hZIU~cD=kNW&whze~a|(qM_k5P+*V!M7ZI< z>pv@D_AAf>;XS06@WT4uE>u*M6VpL6oo*ehDD_s}vL*w(qfF}88{@(#Sx*?HN&|SM zF4x9g$2djDrf|mTt=SS)C@=^&F^A4Hl?Vj;X&7tWHG3zgY^ZejkIp|&7HQaIDc`@V zwLMo(H?$3+2jizH@Tpq)?T%l|Mau(dpP+0<{QGd@^<%${-_hMLXB@LtFqmI7HpU|g zfPniA-g$MA+w%*rX~w1G{Jw^+K6NfTgk+ZrEN>vJT#KXjv1Dg~y59v9J!=T}v9{0j;AU6XoNQ z>%X@(dx{LYXvV8ouQc-hKCB#Z#4L^m-3GS(AYI_Jea!uVve&VXAG5qwQdb|eaBE_8 z{QQWSyFVS?yfs1Ofx6d>&11e(qATTKalZOHTwU(B{DrR@lz`@6pB@e&$%`TTL%`cx z^z`+k-@h~YaAz7+7zMkw1Qlp9M`odSse;6z3dpljjWX^80eQN+yXg8$ zg9{g0ZAF^FyUez#_Xi)WgW+dpM#epu5IZEAXag$_cH4qlFVtj`*i+FVp2QG3s~VcxRL{*uvVeE=mZWRIN3 z_{;qDW!`d_;h2Q48H#oWu$RNU>84jYPpJm1&wZ_IfVJ2!H}+DWlMJ(#1^X^?{?#5> z%G?i!s8!5UZ~JhEU83gnuODzt+|>6UKdypV9bSQQ8^`0O`im`RF$X3lCeBqXf72K9 zp8Ypm?MbXzsF{_o9H!28n!KemY{Y{rxBEVrtJ)92W4nSs&Z?27mDi)OHS>~DSjA4h zZt1KK7GT3KgKT8?&0>pc{MP>B{$2^bMn6H=?{;1Yl&Ws%Agu3wz$EtzPukR!uNn`h zo7E5u+FEt5^xmGY%!XQ!3D)@ZPyw`iGVHW!?>g9H1-DD@ZWjM2x-O|ola)6&hbHIk z??|1<$QYYQGk1~3l{Z3B$B~??+F$_r%Zk6f)Q@I&i}b(w;f@Nrw#MtP$L)ve`#a>3 zMe>flqhnUIsQ-y;3MVL%($ZgLZ{zTFyX!*>4`9O`Fn299#14CeiQhdjN+x}%96b$u zr(O*tMb_a)T6)BxD%VziCA(HOYRjZ+JQu|-T%aB| zx3qGy)HTPY@g^v0Kk{|y2P<8#ReMZPeSi1?wWiXIL&^O8JX-WFEDI`NG{`(12@L{v zR+}0r=iJ$|bPs;Lw}tI=R7#3|X)^iR_kycJQ2D;c44(FyF|qM3Y+RGHlvYA*t_47-;M^-1<(*Va(qVp4#}9r!7E}< zHEe`Kub^34>$m<<@z6XNG6^x?+rY`(Y}4Lrg0};Rr|deK1I6rVMn*f7i7!yjFFchv zKlAH@5DnboE{TApflZR+zxFTkJ>}kwxq6@afyR&!qK8=E5^c!drc>{OTAxJ@^Wc^k zZhHp@TDMNQ%A}N(l)|n$Kk_iJtQX(Ri!VNv`1qhd0h-?*^5(tKI<>Xg{1D`%^g8I_a63g?IKtR}REdBn79(eYk zxViwpy9O_Q|NA3Pf?9Nz%7YtqzV1+7zqG~+Wx}Qaa7}Lm#TCTDR9L;-e0+Rm1Xw6b z!=63WotG|M@>&?qJbCM_QA40#Sy>qodM`-C4%1zk!WzCwo;{kXXraW&;k?=Ne3mU> zbeGd)zruRi z+#&bC-Dqu~$keTVzrrSbMgeUOcbplmN96@?z1hA48}Ki&R1!u^^7!#6>ZJE*ZN~wg zpj{dbSiBDK{X!f+cNqb)E1th2`D#L%!J_@>I+i=#oo)R5EaRVv37Ac7>WYK~MvaSP zWbi|+%qlE~f*Mb)Lc1>Ts)wlJCM=VbQ`Vw+J#A@n=C>OH)s&nF_JBP%gM%CQwq$4^ z)WCK)WJ^ql$iS7aQo~+9uG-t%)2tJ{ z=ZH_?9jJ5`x(U8bETjv@Ti}eFI1q$gj<_dJCO}T*Ft4PtoY;RUU41c+AD@Qzn~vbr zYEK@_$;xsDs63q(9~-MkZDO?9!HsvnJl0q%v8??CCF-YTA-t09P&UfAnM8)p#joVp zm60^n7B9q?a^2(GdA`W2ZC0@CdT-4E!^{BvX-XO*OaB&($K7EEJ$hKKYAosYvly0z z^$p|Uti#@bcLgy*`V+7RIBNujE;~9FyfLpVrZoV3H@piQ*SviNg_%=0 z|M-wQ#Sc3Akfg(a+tZ| zp{6=ph3tBlLwE=0029>J`}|zQprXrgRgy!<#&0Iod95Qyn(FrVwvP-6B*Ead#tGO# zQ%iM4C0=lLb~c(exOp=rHX#9dE{aW2T3TAyAvrm@JJr-m;A0605tX#rkt)zq{u^K9 zy_s`RnpPfO%h$rUw64N0P!{b-8Qk*hu7CZnCuy4h! z2>qMxu6qoR*Bs5M`uFc&zm5-P<*hg0+&DI~D4-yzpTK6e2t6)bYa8F2It;^>p6~JP z+qdJ2ir;o9jr;5a35s^D45>Y?8zbS2tOjS#hMTW<$do7xsk(F-%R^cXmbqk412$lx z+IIG^12E~BoOZ*n`3M^*ePR^^DsDJ<>@q`Y$;~&<2B4G^y{SLAxd)4!%}n0Mh+YBo zgv$-vGgn;^T`AJWXVb_9c6@So`mm^@!me!qNh7cBQxGaNo~;5-dKyfhmk&4x!ecUG zDzx`D>?*qegkOaP#AX8>O{{Du`I^?>v_5Eg|KnRRsJbbW#up(tCO-y2w%&WZ0ZQ+&8Oc_w_`G|WLeNo#G zq+>N}4Jg)v_Sh|0@nWV zmUV^EGf}bkhzH>RF4YshGrdQkVn*gy2ru@`+rI<>#Z_N5vJPfyRla6MqPTv25Vx3q z;(B=JsYZ>NPtehf8v-|Rv(PNm?j1NUu2LfoXk>h$c9BqN0LIN3;P%5){nkC(wfBKN zP-kPo1K#Wntht7@hNaJ}3rRe7aVWL|@g5DbL2pvxXOrF~9y>Pp8ygKsN+40DgJ3}S zJUS0x{1Sj%I!H_U0&P0y(w}W;1$YqW!?c`6KLZ^Cu)y6gpHDDoYG92#8%h8c^c`4I zV88U8k0*fFc%_F>;lZHtyIo8cInxWMVT2Sf zsG@#+Nb^p0;&0$LuIk?Z4pjugw1qcF{`vDKL&5fJyX{rl(IALAvYI)zC5W&A@v#(D z^RN$V9s`(P1(zF{G9txNGWy?{E*3?_@J^FV!K=%+<#|pheg9ro)PLrP&pm@Yt)Qyk zQ9>&pfT0pnPF(+NnE`$d2U9r=6(&*!E>eUBxm4Q~Z%xioA#`uP2NZ?>?5pdAaMU{UJ>B(ggM$9Sve0sQ^|O~+>w zsH~hD_R*t9bctV&;7Fv}r(y7bVY3?OKdMkWGUWV!I^T3_IytiFG4gKl4sJ9Tg%{=XGo) zY*RcGSJ@c!Csv9G8=XeZyn>CzWU?@yeAGw^4M(o=}8kph@LY zUGxDw_3Lfs2ljxsWPUR|3oe5F1%G#VdZu$MlNap zQL5Dk^GdBb58x$EunBcdXX-MK03bZz91=WO@vsv(6V1kaR}} zExrO`Ap#aQY7-rYnf1x*e|t;D-Vz8?1uAS2Y&KnBvjPe>G_W&RhMw-!`f2wMxzv8Z zPn2Tj@A!mYz|mHO1Lo=oTA0^i0y?1Nzk1JS6G|sUlX!2RIuw}e+b9K%5D+6fwAQI# z=C154F?uhc;Vrys)81X>fsJ?{J~iY}xBpYvED&hY1NVV)y2*dwTnO=cgT$iiIz$BPZy1ok3e4@tl) zl9Q6~RHzP}|0*zNNfs?pR#0Shecn_}KD)wV;RNE=0vUJ*U&d?NrgMQnoS%_)T^lxA zHIH+d9lmqoIUyO~L=u1vMZXn$JOT+6vK43Bdx%_$5(NxK^2NHmc|{yZLNHGS42(`J2l@EY3nv<(2Il`( zt&X;wbn3~~Tp+uR(Spk1rqn1NxMT+;!KJrzk)rQqcuY#F+<(p4N3BooG=wK8epCXy zSQGBM|4T^4`Ou+BuBV?1e?uz2u=?VS{ltQu-!YTOw@IqFKf6uLO@Bv#RXp+CuKuy> z*`J-QO7wgYlaRont~Dx~sgri$=FLO&2sSrs%0i{8d2@CFc5Gg$|ARSS-}Bg4FAs`{ zbc0V}G`>fpYbK~K*_UeWs_>s|=W;}d00fga<-QT%3=Idzp4{$Cr`)elu17pipFH^( zc$mkiAITk*z20)CYmiI13IcM(_t_vVYoZ!6{J0f*PxZ#1ClOZHE?u&PExY>nNA#;# zN2#)5@YdhLn03-US*tpt=3#&njD!H1rnY(j*4z&Z^U?V*l6p6<>3(*w3S1v>ViQ8j z_V{!FO$0c525QZ8oD#tXLaLh_(r+L}&&nr1IryN2eM_smz1;?i|LSaiB7FMC+gtDG zD1RYN1X0Z623g8q+3!IyezdhV3+q!z-DjZ-Hrc;iyU|b^XzFAyf)gRJKIwmG**_sT$BLqif<1eS4jKrS%vTfE6LBtnFB;dAQL%B&wNm52>SgeThdxd8@ zmvqJtx8y&Ul8}<10>gG@Nli`77apUfYdX0p0gFpv7iSq(y!2QuPbDgU+Vz#W^)_WF zb`(e*h-ak2yx_aQOGB~ApHUy1vg6AFC@v>W-nVmV?~GfOK7>M%`}J;pok%LYTQqhN zZ(gh$f#7B;rAyulyBe+i-SA5!pH+ry_Gd=!vzuf4dnBz>#svnsUaK&!?gI|#)g)&q zy;P~TdZk0A*%4I_(vFMCWmw$g?t^blOGL+lx8 z!t}E7D};hLyaLqkwC!gG0Hvt^q}~B=1VDNI13J@G?P3F~(9w4m)u$)g5}n{Vg+AR0dEJ~}f{UWn2- z)#pw@90$4L#<;?Z(AQVeJpd8n5whnTF5#bEJt+8htkwq$+?RBJ8){#8!vy5GM6cI} zX8%TH9lbfJ_bNZ?(4?V_(o$;qFiRElMqyzW4?Y@iXmgrNUAx+?kM1q~sKEYPIsyEz z&-aq_z0nnYHFO=ZIY_{yhdn$hji%~6eD>-lzBgax5a{^zp~;$6U#X#9AywXTaDJR| z`sV@r`;TfOE-mCE7@Y2F>?}2JBHR+}pY=BX<@eQ2&(#e04p)llmy4;q8m(k80l_r4 zJRf+6o)MmfstFF&{BPg|0j;pM>DYo0=P>ChW)ix5XTEL(zw$jUYAfzYk*3TRULFyZr&pFx83@P+2HG(9^eFiiXd`|LMxO7%N9hHz z5qNWyViY6m;iccvVk-c3YDKoG!Ud4<99R#iu^JfTv%oE8`b)%s3IZ01P#yJ+fSKu# z0~XEiQn%cikN*Q5%NGFC@YL_-XudQ31|}wl;iqot=R_!gYN~pg8Kuq%Xb0DA*TIsu zEhkck;$n0*@2ch`yO!=`$fAtN`vZbVfP(F@`pwr~i96Aax@{ZdAL@*!52)e0@r%R& zAI?85D+~%EOQV!U74gNXnz{?LZ42p;=cgf&$ibF#?z*cpq*Uf=tNE7=-A?~fR@uJbJoFxUy! z21ex(MjH>jh9RD!{S2J~PAAC7K2Rul4yBxKRq$CDZZ1A`BRboA8E|cN-kToM6F``n zZJ-PZu4pWA@NJ`_zxpu_?t^9<4Rwa8n=(;fBNqGU5d*aZf&%&#xJCH-5g$vjpw*|@ z-bO%pViu4}ek+sto3dv`d=`BiUYWTtaR?t^8J(o~T~NPNztpsRP`{=*{F&7%cB4gH0*}!dF~*l1!7vDQvcI(9jRGUT;%uru~MIGEc&22LJ%a~ zFZ}d)$wZB3g@FqO@%uX@?S+SDVKe4Qu{Oz2Zc*GsQYR-T^HDr{gV#aN)zwYMx4drq z3~*&cW;Tg(+2ssqqZrgha3}KZ+Q#?8>%yJ^mcQT?oeoyh>3g?-ezRg<03_c_+VUCU zJqA`Q!19{Tr-8+z1SbHP5;e6Kj+$wWcD=Rp%hh`e+O%$EqM?C-#-AG4%ZCpIcI|HZ z^^}6{S&4t{24a%N-p0g&M-|G~x10~GAKq_Ad*Bf`I$~ITINn<~YR#m*drGM1`HI7V zd&K~y^PlintlyvRh67Fu!_~Sz5zH#@&+D<|g$v$DqMu|?+2iyTJu_2h!W-~&M})MS z{gv5yIF4QKJ%iO34*JaaZgpRgD*6K!gEh1pr;sztSh9w~gWIfVr*)_NFeh_%$Sl3V zBhfm?D*x!H6pBEkhF3f-=ZM&DXiv_39U}vxaCH8C2v0?Gpop5;2`qMvKHcs(eK#)T z+9~zz&4W1nfK+I7SS+4Ge6A5o#J8VBht6oC^+$(1+iBL%B$kJYX?B{@v6j*nl7Df|l0KcOG(4( zcMe@gWT-qa2{UyqG|2oTDh47jP}AhXbAPeQ-T+1!F>F$XIqhKG4LdZBiG8!r-W+HM z3NRX%eP*sI77K8pI`09vd_+`*ugH8L^KXLUqE;~AhG>;MLg}CSV~gK}$-qO9F2ghO zq~gwi1i!`gLxgjjnk}Gl3{OF0jqVa%$@SS@pJ!!RjamWHK!)RkjP-{X$jiY|z~x?p zVZ@mBpf_JvkG2|)4c3e;hsECTdjNZ7R+)UCK4o-4d*?{28IXgFlCt z_b5AlnRdS^mov;-}Q0dhkQRn0Q1b^$Di9Wgn(e$n=J&& zLEme-@y0rij>k3qR}a)=kv{n>TKTWe=-#;_Xd`uR4#;G#M{r{v5SZFds@%W7)!#Ub zjvPKLdmFDw8J>^_5tbX7lIaLSPlfOHAo zTy(nOpXh=-BZExUAsb5(l2+@Ecta~l_Kf|Hm z0@D&J7u<7LC?P{2y!3nmZ=8EXg6tOkZf>-`7JupNkqr&AN*58(nPczGm;s*13tV9a zo4SWQ3fJ8PM?j+EHXLm`XxAF&p6*(|_A8&l#Kw;Y5lGUxhdKtqoKWvnda&wsK0}$B z0Z1^G+09HZTtI+45Yo%Vav)?Fgt$NXaZv!1PtA~7Ac#>AvcCr+5o*R&5iA@kfRyHZ z8nO@_5IkumWr2+BAx!`i@lJ2t`X>X4dco76K3nx;uR*}q za0Ew|-HFcO*q0&_Hcj%w$#?wbeg@+Pn6ujjtPV!j*J#W4Ph2SMa`A}5jMw?lS2Sz> z7}z7@kB)m58XPMeM$GMSK6fNITX<&RWC!- zmS~X?<8tGS`I^Xlk5psFV`{p5I1w_wVh>Mv%I(I9d@$uSx0JS{eAH=!iD>iHA$O`4 zM}BnEvtnX5Z^snvR(Rw&Y8PADCZ6L@6lWkFQG22}zfVWaw+a<8Pi|=;>VChm<9BN$ z)z?)os@2#kS>p)-f9Bom;zua7#JG$`oG#WwhegfoY)IkhP!Le9yJFwM3?PI)DnZtO z-OLdfq>BKa8dAXfLs`6983^a3C7iE-i8AbsU>7`8)&=DyeDFIsZ}b^pbY*~l+J+vf zfl~rqV6}DwD{!LHn45c4DXDfBjB3xRR8vH1BM7wJlV6j&;Zs*HUw&*>fzA|wJjbPr z7u`DH3_wP;Cn@R!1!#qL=Q^nSFYLH+kYmYThwxD*Fq0vT&Br2yuF?L?AcxCU+)F_ z8i1x`fS#KLQhqZ?!5IJ=G64f;2~ zydEb|q_x1_xeP%ghxNrV*M|MQ08j9s;Afc?rbbi|9Nr>849nj0Im?GlQK7;bPWpvm{KU9lId_(c?GI@0--oXkf-QaJdyWhTcC&zQc2o6#>NtQBmAOeKWkXTO1|U0`Iuq+vSip zq)r$}33gUNYquyCMYrCi)#iozQAT{4MX73`Vv$SZm}@ckI7+@tHe{k*Vy393e^rP% zWU8n$s5|!iH#HdKQhnrH)FV04uDLHnOg^WPYd|3%_Fkx`jN+z#l~}t{lQ|zlz;pR8 zUqg-azyYBE16cXMO6~0IIA`~-C{BZ4KxlDvd=itxrEY^7ebAn%`sd*s7mI7#+GP(q z4pW=*lXQPd1;m~sj{Kti{#5{TU62@F|6*TRfoP0@!y=#G!GB(8`vt{e18DP)VeWM* zdqmlHN$g9>ne|GnCRaK|H_(^Y5vz_rat zdW7E$W7dz>L)@z zc5gbr6+rP-h=Gy4aOX60{r|n88^XbfoqVzHjGA!#jC#Cwq->lODky0wjUyb_q29bf8e$ULCc8w zr#Ab(ybIJVsu8<=CwOcd(iPKCi)3-5us5>7HOrv3{*pBa#-p*Lc4{CVB~5|-W?*0t zXDN;`FaXF-7OZ?=6WV zjlTUTuh(v`Ha3t#<0TM7fA_*|uE4+Q@Sv2(X^32+JR=W~V+u(f`{Usihqk(x%U&#)z&0i?xT6PIr6biFln8*HH6f z(|&VJqT3S0{Od)`7ntl4zb)tIBSHWJfi2<)W8-&Pwk{FWN+oc`V+J9?20pSQ;3HjA z>2sRkxZQwY*V9Zn}Tst*(U7o;x`uCL_MTq)9N0aeHV ztRTsM_I#(ThKHdyQoTKWuN+CRf5YLal_AJD}_ee8W&962;{42+qT|_j>os zeMXm6M)t)*Mhwc1T?lW9tG9bs;hg$b@aHcR$@LTGd0!X3%`>^)@ZzUK3Q^_q^?;GP{pI82 zg+Y)^{$=U^t`dYz`=L{kHrFHkM(ssTX4f5#U(FJ;BsBQa_)Ah z?5|IXww&DAwhDUa13FbYeW3?VGsiHm96g|Wl>Mx*0OINLB>REiM+H7-9npT|eOBy% zYU(;y^6uf9z3j90;qIYaHxW7qMCirevrpe!TRGdZd4hfUoZ1Z`Q@-1YZ``@g_9?!0 zoq27Uo_wd)_D-gx-v1%)&)>0J-!E|dHcP5UWGER+#tcc6cnFoqP{~l4Lo#P7A|z!f z88Q@7hC<1#B1z_mL}n!oZLjg%oOv?2qGzWPtpz3I*W4YiwQB^d zBFh}DWv*_2Ef{jGpl89BIXqgJBCDhm8^oM$x=OuX<_UXs@u)eo1e@dGj}rnK_ssKR z_c}c%YWM)&*Nuy&?m})Kr}7z~VhB8eH1EvKoqMfXVc(YC{pY2s&oq_sUSVlztAWB5 zsE8U9*!cMPjI5<@tN5F);`aSMu(zyym6NQH5N)!8lRD@P=&wL2ahVL~d?5W*rvwgjPuLQ)Cw!5`K)93{EkI)OLLnyO;ZXLyh zqo7go=H_+$DmD11&n3^EU5Muq31g0qj&|RJou~AaPwO5VG+FMwU0q#greC52K2eeM zBS!zZ&yQ`5k{;;Jg%pRY?mGYevu7nCOSE)xStl(m%^`h?7YU38@R@>U!)dV1^*S2> z7aCe^4!L~U5;;-X`FU|vKtsdB!H{yT!FAIkJa`LAq+F9iMz9iOVaLKL83t`_8uqfB zYwmB)x!KvKbKek{nAfa%{bRU}ZS!V4wli2YCRcZNb;utm6iOiSX63@O+s^ZiRiYpH zBZ3N{alZNXecj57OHU(aKaGrJ(3iZqhT}&*x}cyS=%ZRBf0owP!Ju$nwYILqCA<&) z5V5%$iEd*pn{iQ5uq4nhs_E#kLd^PceEcdn;k&5aMIk+ls@=fH7ju~` z8mI_Y_MH(3SpEyhfss6wHRTOa`S~*7m1*!%`M{z}OLx)I(!Pbn^!G^~etzj-_OZD= zeHw;_>mj!t`t&KCeh;IDve1zTc0E146BXy*e=W>fIV{J`3Z22zF(;^Wn(tfL*)gfA zs^-kkA)ypiJH|hjL^O`X>!| zM@PS=r&PDvGv9snxptWDy;BzR(c`glluzx8`VJZME-g$Hp(e-rd~R7gg%HshWuK2y zJ5MR(nw*hop0z*_o++O|QsBJqish-@SjPvxv!gQ}@_xUj`}o?A*rLs4rjLbdyQI{S zgm0FI){OeTx*DI@Cqm2fa$DkU_B^T4`_!_+1on8{fRFXea}VsUJNs9dbZ>WR^Vnym z^EXGTd$Zj>k>U0_X4%qOS=lWyORTSC64P7bs~k4+jJA>D$&#~dryl>F895?%xZ)cx zr1M~7ZuZ8A=oXy0Tr1NYPLp-c);;+Y<)r{ms3rGkIn-d+Vz%v=JIA?`TMGgp@!P1I zn|6DDAJ7D5ECZcRxeI`4QRGphk*5f#dP2xD=M2kncI?w%P{I8GE&dT-nh1n!>%j4y zp_Zp~J{SgDa)(+btZ;xSjg#Go)^UC8x3i`)%>ltE39NDJW#c{opnVNsX!WaCbZGl2 z^P1cUU3WMz0znm(QzeNqmb6d3zo%$EmS#i(t_iK9?3oTxT!W0zB2b}|wZN7}-^DO^ zXyc0WJF8#qVATfi69ojd+G0p1gmqTvRXXD<87$L^SQOu0@vf#@(kmx|&Qyx_J@s4- z`n>yiGozWA88o}!#3I6cqZPfrafdPE@m_)6D#)Ffnu+HS;XM~=~t|k}>v&;6V(BF@zp*z0|Ef^7q^&OqD=N^4s zH88-3B79Bd@6k;)b#=pFeKZl&5IR48`NE7d7%OF_P$%YTE{`1h3S=&VQc`OG;2;rU zO}}?9Iw^?-e+YEzmUl-BSzkT>kRQzbN=B#U2QB3SZgi;gB}(h6ao*|?+BYHWwTYqNK z=ccj-ZlZMMPy%g;6_wMec>n+VS7)uop*13V&JYQiQiU{<^b}f)zwC2LOazVnO3l5d zq^Cp>QPgzbk2BDM@a4PbLKm1SP;(=O5TX0UNaYP=CI(ft{+~~47OqNXjM zP5*X(?^NEB(>ei4Ab;RTV&L7vqPnq91Th`|=tV8D(P3h$r{rn@@s!qnP1T#Tyb1&@ zQFMtSF=wPTKn&39^PQRQP3jq>NQ~L8OJfPyP`80#p!s0>;1*9Y%^dCYx)9r1Ug93X z`>y5Qpzz%5f4>mxD`m!S7prZq9OPD{AKD(cr)R;F`R+$9;xOS%D@tp@9nw@MP3h#m zO0lY!%sa~y(!?l`t5Pjk6Xr|##O$!7Md!1*$~VuCf$$%wFd~*i^Z8b3gi=e{sfUPl z(Z$&YtE$z7d8^|x8AF~OI6_!bXkXh=)ZaWN7}brfBd)lPCx!yO)(~mDfiH-T zV9Fj58vC_^31{Cwdg)Jmx1UI+Ir{F;16l#yU9}r~xEIcJ`*D==3*NTYcU}FclZf5Kn2QX{M>qL|&+c?U@v;k=R5SP&y^L1Rn)R5ex!Ti;TqG zr$64)>hpi8)gtCCA#itf^X8)%g6pVzKaT_sBF z7tmNGTtojtQlsyh2EnhUb7O@upP)(x-XyN6>7+B!x`reS?aLW^Fh96SXylzXv7OLT zH$Kc7OyM(fsQdb;*nvgXgny0f)s@ZERe4Lvlo)R+GlK(h*v9P?Ur%}S6^gBv{o({& zJ=0Kbx0h&5&7i#6ite7lum^ z9O#>&t52{9ps}=M%WxXIoN)UVQ$C0Kb0W~GXV8)`q+z|B&!NaD>n5Eh^}5JSrO4em z)6I`jP*FLMa$v?`k&d`;KemQBC*<5D_fG+OUg5x2L5(}>ip~oQoG?`hrVvq7W0M-k zk@s(+1~;oy@ur;+o`M5gLAa@o}6#jir*+YC+DOjFeS^DwDzaGauHv z^%HI{rqq~adj+PhKKQmK%<&721rb<6;pC*Z5D#pkaEcu!wmU3dR}VXEzAsFNUoC7$ zaw2~qUh>-<~3BkD(q>9 zI>B6xYiA}JDAk7@m>q*J^eDxLB&2OqH;y^V=(<7uED^}qGuTVvqy)O&?Pd}TJNmw{ z(?(9^9e1SZGe1h#_;ZErMfphzJI%vU;B%Z zXG+~eKqH-xvR%Pfpe8omG!>`d`reQ-&(%EY`ddPhwauLt{U?n@R&y{hUlQY}o*Cf` zVV08*cdYs^oWzKc(d4qjr&N|0bW7P2A9tJI7=nuEeB+BT`5P+ZNnc*&g%EnN~CgU(g zj@e=rnvW%H%pZ*`-=1Wu_&~?pwdO*hbz-i*f?C;~h|3hSi&w(-MsrnJGEb~?^ieD8 z2vIlo?dXW|HJ0c~O{Mu%=%=?wS}*Ja&vyrFXZ8I<7Qv&J)tR-awLhh&Rw@qEb3$W`rW7e&2aejPNApLh^lnZ4}CT*uY}VtD(%oZ&Q=Q z%^H2_vnR8gg<^C_(ii%#IQMl%Ure!ai(SMR69rWSTro>FVE5)k?8qP&2lW zyhPc1yZB-Rp`acnZ!P%g*5~)NR_jYk&Wx$BRQJ?!2@UHyFtfcr_KY*ruG+Mj{lA+w z;jFBU`DM#fzGp4^t*Uu=oaMVeGO}IRqFLI?N#zMU`1hDi4R=G9lq|(6c<0Q%n!>V2 z#S-f*Y1|AQkDKioJvCWIOm7VNU>V}d-c9#$s*PDlF*~cXYh&J^JLQsDxPw10&2(00 zrJx39vIOOc!a!G}?hn^784;AD@8skqYa zOUp;iy4BQg5S$nQLO(09>w@;7*#pY+f{O{?wl%JC z(oII1DKwVDdr$Bsh8Er%=a-&ds8(G$3%GaiV{M||zpF3OWoa;c%;r`CeOCBuuJm7Ghv$&qDtYGrmL6%S;eW~a|DN&x+aG(C?IsE^sU4t3(~rvLWiKX1TS z^Y^de>uzXb(`h;c>0(37wtL{&TAg&D@zR8lok)W^BpZ$G9(xvI+QFEd9jx3;OheIZ zfs(Mhge1wHS270EKw)(0%9Xkuo42u90tYjGadGeR(ob`;C6a)2I2__Yc2x1k&wXTt zgoQ^c?A!0JqNSrt9WOg2|L9c3HNYhBD5-k?egg{JHO>6RA|?F z+5{3;TCy#n&0Yi0TgvYQ{Nyc~YGE)yOMtkZZV%h25dw8!(&8)Z{NA&ae*68hz+Z`27B`Ojkj<0e~0oB5VeNl7YlFQ z%7C_CwF3vjB$E~0K6$Y1Je;Z`#jr+Tthy?k3P=jN7~xX>{b(t@S9^s2meQek$>^Za zmljk&R{CjF8g5obyh|%E0fukMI!^p(HbK~TWVh|$H#>cz%#{Wj>eybi%eL;|*Yoiy zpFWodwFdUQig-{fZ~ zH8lY)(GVz?v!Sd6_`^gsJ_~TUx}jkeVD4AoJuPIo_0a(co?|_nuU|s;dl|Ts&Yj&G zATMDO$mLqguMz=5pJ|uNKuB;f9njDSaF|tZ-stk}k(FhGx~UGuq0~&S#3jmC_jLFmwzBHy^AMTlgRUuGf@1Wbff#-R^Qu*9z=W||3ibs= zvNF+g^IZiHf* zpL1tIE~=uxw$Do<=#}aFn)+ud07+w@~Pr zQp&^sv;Yl3xgsB-1e~6qk4q2D%aZ~mP7tsJ$T+)*Zj50lEo%VH6JZU5cv6BnCmbdJ z5L)&)>soF}^K(j{ih#J1mLQ=J;B69~Vaz}elllgp`xfTnQCBQLTQr8yQ&xtqbIa1g zp*kclFV8R@NKRUsKy%X0)u0ECHvawlmt0wt<%g!wZ$%GuCIs-nFs{#;r|7<=2g$l0 zK;Vvw6yT4VmuMLzTY7Ix9DgLBpkUM$~~CyaZCbJW)>C#KpaA$R~fFpyqatf`L=EE-p%MKz0nH^cFY9& z7|3`-q@5^tZ~VQU4Y15L^d|`J-o3G-dzZI4ymTaHOz^APZGa zJojOPFFDw_HMyr!5r;@50|2SJIf$-kFmt)vB@kuEXU5jOM`F;OrJ>6gW$C@`VkC5n=GPHN+v5CLEE?J8oK_304}8TwXW3#w z+$*-F52O-NdT-4S=A~xo@-e@xzwOt9POzz2S}IOcCf6NMg6sq>6^#N%8Uf8Tyn3}S zo{65G!e-#^E~liZSih8#lH$IZ05p0nEKFTpJ$8YJ^&&)F2A-4sa6&?4kFnutC$xNu z2&H4!6g+v-P%wq?7CU*jM)xS*U%@g^*80v)g?CT!a?XAGAUnbhHa1EUQc2IK zsh3!-xQnX4hUjwYz)@zlPho%FvW4%jej{mek>P~k$;Ji>NVeDUcK3P?jxCFWXnZ<` z7Tq%y0J5P-E{*;17Z_SWUuS1L#2ouKh#$SN2oswdd`cB#Az`Z&j0$#sZWgMKFH z^!EXG%S6}%vwFX~(C&!7K81mS0g~-oHcRNQZpSi-Dk>&GUvO{Eb8*3mW$oHb&xy`9 z^aGCrzAup6yY~((cI=@V=HTGaz+uTUDLmbV8|Vwx(B#x(xHI%T^^`zkYbgF)*a1It zw1e&6KHBw~M9eQ=zTAd`JC5tlgl}6GE>J^&=<%MU_+fs}sAd*g8Qhz3jQl?@z|}rx zk`A}^OJ*nb``bw1gR4&46SPBF8R+}s_&%eSeF<{ZW))=toytQ^0F zYv#8cL)8|i3YoxJqFO)_(9R|&nm`t!F*&b`=IxPQJ7o8P+X?OQsE-V3+yq+Kiif|5 zF{ZHvUOT<$RAk*j3?()Ex=z?5y6&913(%b)kxtxZ)ITh-$j8%a<2-E` zwh{N<=WpL6S7=ZHY-C_!dI#q?2edPP{{G#?)9?Z|sO^iF7HQzh-{A_=1vs3A=w^WA zC{EJEuoG=4tap@sZ-#~8!n@DB9x-i;P&#;v@B*Y22Cl9$?44(~tzb z1G?>iEprrNlJdcUfm4ScMQRCGz~Q1XLG{lUVbX{Of9(j_J&H}|UR_LjTXD0JA35)U zuq}^U$Nk*7*hO5$o+C-{g;m_o?zxvVFMX618My{%b{J0N!xO7_?b>A<)CtDd1e(x2 z8LiNpHx_`jVP`YIDUKJ?^=gV1-X9ibkK@<4)79HM3ols0+Nu5iRk;*BmERiizP`Q& zAc|rup$EJ*K2JJ8#ShO+Pv7`C2`iJ98Q#sjy!Hs=N>8N$;9s-&37EO5AU{9b)%RkX9?5aMmzN1oA8$+AIQ1DiPmVnwqK{yko~xnmO(he}-rGoig98_|w6G_H~|ue=S&I_^6em)dc53ny1_3`t@sV+kY!3{Hb^ zI`6y2#m8rc8DuVc&3`@i2kZI;Kh%a9m#kszZvQ_;Gdd%&$W=jJ3<#GN)&lE~{XV_* zP`t810J(ubf8MgVgDX)NIC&CYtLT<3AG|`R5>$PbNTr4en9=;Dw|wKasydQ^sCDqYP(-){^Z*McY9^SKy-J0e$y(=qKF=T_90nuAD z^O`Ue5a|=S(zxd7a7RbWPL3+M!XNiLU?MEo)~b74#?^}3^QrmHSQDuh8x zCgi=w1%k$?r9v$5mC*uSb@lxRB|1Trn{)DkW#1zO=!K8S1U;=U>+&Qx0x4Ec_ieaF z2$~i%=?Ap8$W^H}ZUoNVoWD=if zCYm79glxuW0cW~5eGpNBJ=&-6+r)Pmzj6T`;0C4hqA;Nse^p@FQp`G>~IR_v#o zxvYSkWtY413Pw?-F#YeaEm~k3E|lBx*gO>>0EKtJ~Pze_br|#HL}r_=z%^ zc{Jt0B2ZmTO^pmYnz=BaHb_Y(b$OpW;@}}LqC%U7n_Xh~7ZkOz?%TF)>()}0^>lUB zS6O{tA{WvZ<8crC%7R?@BWZU-@4LO}c}2wo>Lpsv;Zx7N^4d?MnJn?5cdYm^?MLXG z+wV~7IboDj9pymA00(I-h7i^jpj^Ps3LJeY=t=4iUcs&FqPC+CoZ zW!xDsw5kfE(e6f=<2b~;WF^D>1-?%O+!w5@gw}A&P|LIaWPp0p&}j6IDb{o`umREa zLbCS-7E5DG4g1nEP8Li{CO_NdLV}>7A&;~z-0njW+~}?@FE6@;%lg5={V2?zAn)2z z?A)J(>Q$RGQ$aXt9CJp_$T#=;;sLMO`$V2V5+i9@! zPFTp0bwLsf3rjkxE3@0L5SAU#GCGG=#<%D_(MIo78hVRNDvl#�|axZ6BMIqz&Oi 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Sheet.742 + + + Wirepas Gateway to Backend API Protocol buffer messages + + + import wirepas_messaging + + + + Sheet.742 + + + Wirepas Network Tool Client APIProtocol buffer messages + + Sheet.742 + + + Wirepas Positioning Engine APIProtocol buffer messages + Protocol buffer to language object translationWirepas' public API function wrappers + + + + Application code + + + +