From 6c6f670df5b897e51e722f53b57e05abd32f4849 Mon Sep 17 00:00:00 2001 From: Jim Wang Date: Fri, 18 Oct 2024 10:52:44 -0700 Subject: [PATCH 1/4] docs: created documentation for capi yolov8 ensemble k8s Signed-off-by: Jim Wang --- .../capi-yolov8-ensemble.md | 17 +++ .../capi-yolov8-ensemble/getting_started.md | 115 ++++++++++++++++++ .../images/yolov8-efficientnet-profile.jpg | Bin 0 -> 99240 bytes docs_src/use-cases/use-cases.md | 3 +- 4 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md create mode 100644 docs_src/use-cases/capi-yolov8-ensemble/getting_started.md create mode 100644 docs_src/use-cases/capi-yolov8-ensemble/images/yolov8-efficientnet-profile.jpg diff --git a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md new file mode 100644 index 0000000..3ca3339 --- /dev/null +++ b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md @@ -0,0 +1,17 @@ +# IntelĀ® C-API YOLOV8 Ensemble Object Detection Reference Package + +## Overview + +Yolov8 is one of the popular yolo object detection models. To show case the object detection of using YOLOv8, the efficientnet classification model will also be used to help validate the performance and accuracy of the C-API architecture. + +The yolov8 + efficientnet design will follow a similar custom pipeline as the previously implemented yolov5 + efficientnet profile. The same gstreamer decoding will be used for the input stream. C-API will send the frames to the OpenVINO Model Server(OVMS) processing through the custom pipeline defined in the config.json. OVMS will output the object bounding boxes along with the object classification. The profile will also output the processing latency in Frames Per Second (FPS). + +[![yolov8 + efficientnet profile-]](./images/yolov8-efficientnet-profile.jpg) + +## Applicable Repos + +[retail-use-cases-gst-capi-yolov8](https://github.com/intel-retail/retail-use-case/use-cases/gst_capi) + +## Next Steps + +To begin using the C-API YOLOv8 ensemble Helm/Kubernetes solution you can follow the [Getting Started Guide](./getting_started.md). diff --git a/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md b/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md new file mode 100644 index 0000000..ec9edeb --- /dev/null +++ b/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md @@ -0,0 +1,115 @@ +# Getting Started for K8s C-API YOLOV8 + +## Instructions for Running K8s C-API YOLOv8 using minikube: + +### Presiquistes: + +- Ununtu 22.04 + +- [minikube](https://minikube.sigs.k8s.io/docs/start/) +- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) +- [kompose](https://github.com/kubernetes/kompose?tab=readme-ov-file#binary-installation) + +### Build C-API YOLOv8 Container Image + +change directory to `use-cases/gst_capi/helm` while you are at [the retail-use-cases project base directory](https://github.com/intel-retail/retail-use-cases/): + + ```bash + cd ./use-cases/gst_capi/helm + ``` + +and then build the container image for minikube to run: + + ```bash + make minikube_build_capi_yolov8_ensemble + ``` +and you should see all built successfully. + +### Run C-API YOLOv8 in minikube + +Run the following command while you are still on the directory `use-cases/gst_capi/helm`: + + ```bash + make run_capi_yolov8_ensemble + ``` +and you should see all K8s pods running up. + +### Verify Pods Running + + ```bash + kubectl get pod + ``` + Result: + ```console + NAME READY STATUS RESTARTS AGE + camera-simulator-8cffdc4ff-nbcd2 1/1 Running 0 84s + camera-simulator0-65779f499-fkk7h 1/1 Running 2 (72s ago) 84s + camera-simulator1-8684b659cc-8b4lg 1/1 Running 2 (72s ago) 84s + capiyolov8ensemble-57b9ff7d6f-w5hj4 1/1 Running 0 83s + intel-gpu-plugin-kzxlh 1/1 Running 44 (66m ago) 2d19h + mqtt-broker-9b597cd94-vxprd 1/1 Running 0 83s + ``` + +### Verify Results + + After starting C-API YOLOv8 ensemble k8s deployment, you will begin to see the FPS results being published into MQTT-broker serice as it can be seen in the log file via running the command: + + ```bash + make minikube_pod_log + ``` + + ```console + ... + cid: 20241018174229464559017 + PIPELINE_PROFILE: capi_yolov8_ensemble DEVICE: CPU + DC: 0 INPUTSRC: rtsp://camera-simulator:8554/camera_1 USE_VPL: 0 RENDER_MODE: 0 RENDER_PORTRAIT_MODE: 0 + CODEC_TYPE: 1 WINDOW_WIDTH: 1280 WINDOW_HEIGHT: 720 DETECTION_THRESHOLD: 0.5 + RESULT_USE_MQTT=1 MQTT_BROKER=mqtt-broker MQTT_PORT=1883 + publish pipeline results using MQTT: mqtt-broker + _videoStreamPipeline: rtsp://camera-simulator:8554/camera_1 + _use_onevpl: 0 + _render: 0 + _renderPortrait: 0 + videoType: 1 + _window_width: 1280 + _window_height: 720 + use mqtt: 1 + mqttBroker: mqtt-broker + mqtt port = 1883 + ... + libva info: VA-API version 1.22.0 + libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so + libva info: Found init function __vaDriverInit_1_14 + libva info: va_openDriver() returns 0 + -------------------------------------------------------------- + Opening Media Pipeline: rtspsrc location=rtsp://camera-simulator:8554/camera_1 ! rtph264depay ! h264parse ! vah264dec ! video/x-raw(memory:VAMemory),format=NV12 ! vapostproc ! video/x-raw, width=416, height=416 ! videoconvert ! video/x-raw,format=RGB ! queue ! appsink drop=1 sync=0 + -------------------------------------------------------------- + ovmsCofigJsonFilePath: /app/gst-ovms/pipelines/yolov8_ensemble/config-yolov8.json + ... + Starting thread: 131360809276992 + 2 object(s) detected at 2024-10-18.17:42:53 + Avg. Pipeline Throughput FPS: 30.000000 + Avg. Pipeline Latency (ms): 58 + Max. Pipeline Latency (ms): 72 + Min. Pipeline Latency (ms): 36 + Connected to MQTT broker: tcp://mqtt-broker:1883 + publishing messages to MQTT broker: tcp://mqtt-broker:1883 + topic: capiyolov8ensemble/FPS messages: 30.000000 + waiting for up to 10 seconds for publishing... + delivered token: 1 status code = 0 + 2 object(s) detected at 2024-10-18.17:42:55 + Avg. Pipeline Throughput FPS: 20.000000 + Avg. Pipeline Latency (ms): 44 + Max. Pipeline Latency (ms): 55 + Min. Pipeline Latency (ms): 39 + publishing messages to MQTT broker: tcp://mqtt-broker:1883 + topic: capiyolov8ensemble/FPS messages: 20.000000 + waiting for up to 10 seconds for publishing... + delivered token: 2 status code = 0 + ... + ``` + +### Shutdown Running Containers + + ```bash + make down_capi_yolov8_ensemble + ``` diff --git a/docs_src/use-cases/capi-yolov8-ensemble/images/yolov8-efficientnet-profile.jpg b/docs_src/use-cases/capi-yolov8-ensemble/images/yolov8-efficientnet-profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15a5927f884fd0b7489658b19cd321b8948e2c22 GIT binary patch literal 99240 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%0AmD8`f3vv>N=yC*n~hry zt%n`(%z?YXe<{@rHo%3C4^V*e>BMV_5uP4M$m%!~(he9E;~cgk4xw2zfzAb1TY@qO z4s2$m#xv>)nfJeeiaSvh1p(Sw833Y1A!)4Xb1ZF0;n1qX?lyF0-I`$rm!Rha~Qu*P6wtfD3WNt62MWU_8=*n{dmHYQjavE|{qGeVJAlFMa?S9!3$J zQ3uy?T@WhEByy!~6j0Az6|Q6d)ISqdv#?-(cWM-=-Av6z-ou}>*;uTwNzctjhi^|K zGDp{40C6rcMjOU9P=H=!A}pclrru2G$G`mr-eWgF+SQI`w{JWGO_2_K#sz2kU?&03 z3BmZQyu^uP;Jz~Cn-ukkFu#3ktOL9VlGmwK7V(JRxYi4rfsU89OFw?hp`CP20SBHP z<2*2_`v8nfIq>$0oN+LBzk>E)06aUZ5-;4{3TQ_0?-u9L!0=IGcAM25>+jTFiag|z zUQt%+T0r};yj2}Pt8fF&Y$8-A@1-&=r&ILFrX_1V3;+FctZwOclZFVgX~7!qpy}&7 zjp?AC!jI8}{fV36v8tv7+^ZIideWQMa%oFu$&+HrGY`~yE@aANUT1mMbzLbDA6OHH zqHz}x&>g_j6%ZQVMJm~fH2Pf{J&WOT%Jo%!1%4PyFhfu+8-pGiTK~Z`rfEw02jsoo zj(i5J?FXzYssK5FrU?LD^A2+aQeJDbA&b&$fK=&Ek%zVUC*k-axhWy7M2d&wKyp#Q zhc(?mMNmC?tcfr_izNfUeKjn$Do;g?Gh4(!J$S^Z1N)Z&vm~*diTd^?OXrC4?WbJ z@O|C50@X@mscCi>J-B`%39Dlx8b+l>{=5?s3@qkP!%i6ki}_S@D1pZ-5v6TJ+M2lRYH34~fz6Nyn&f-oT6 z3I2gw8T1keA#dr3UqWZjT-LszU;O$4X!Z~VJQq;}M$i1q)O{4vEG$a=7)`I#IrKrd z71g^xjO*3bX8hZv`JdXXN@a6tkn9#8i}`03Ws#o{mVjlQkLj$WH;_K*v;;AGy(ua;PxTktGlgJlOzC2mTjul=QL59hRCH!>wx#vw|1B47_V96Mw34|gm z-q{O&HN#KhTPVXf4EWz4x|p(&x!oNsnS94QUn6wd=xj)0oXPQI%s}BIBrn*#A{H#N z_f}I}7;%{>p0IbymhH?a`u$yRo@)iK`4*C1GXE9c*={1d6ZbvsBsvET*V8KsXUGJ* zzxji%%;&e@F036H$*ILKcOz#jaFr*zHx8(0DCw_aafQhAn)}h2NFbrLo&%-}bHvwGiG%*nVd6DgT%kb-kuVKmzd|ybO!_Umj2uVH zFQ6T0Z|d8Ui|FIU%$_pj!zL&>4^TM>!9}l9;oc&cwxc*H=~hYlm0$SM25Fx`?0)w= z7v)uds65B=Irzb^>3BTvzS@(E_|;8F*lx*5xYV=Od$zJ(PIlO$4;*XxXA%Wu*j6*l z>^wLINqpaQ74IJOc5(*NOf(NgkjDVA4ydR%h$e&ZHJ z`xJw1u9Wff2vnU}J=ZVfg%*Y;Fr+oqjP3^tB}eGpe4+ZntmsXeUFy8N$+ef&(XS0( zQ~p8ZSM=N?&_gi4ciL!Aa5{T7N<`YiYTP zliH$8qNkPJB#SM#MVzBJexh+u ztnd{lmoL###>Db$|3U|u0AAHnILhwAW5{Fkie4~9SDY+MGVK6!QdH(VUaVJW@(~Sc z8Xh)fei^*!?zKNk!LU9mE_+0pv!rWyyTG{#4Z%|pK z)Njd_Y2kU9wF&EzBHw_;lAryV?j;ySF@+}J@#6?oyR}Y75}~t&vCRaBCig(!6O1zD zeDaE!X#5Agxs8zubg&Vpr54xT;=h*^sGp2N~|vwMlrzS&`!UWZc1kb z1bt$2T2k!wQnWDtB_omkYq61Y0>fY{B#M(wM+$~p#1X2*nV6DmjS|Do=g5Z_rldOC z&E=O`1U*{d*uuANZ@f!wwCD<_Mjea7Ic(I3EU#XY$TTCRbg9P=p9ge>&`;;O>p+MKaDGwe3pcy z@u11Z4MfhQT9q@aIUS4(4I`Pp+yt+U7uKD}BWpy*|p z{GOqlUbVjRIl-q^1rX1Y^X1`$C0ZJa2Oxu_*N#Bfo1bX5(;Nn90cB369{Ajp)7^!u zuQdyIR_prJR}OxucMIzIX)C*`UcSNxox0+Q&9uF2u%^BIRM1Jj12S>BOQ5C7S888o z|L&Gst`~U8pTP?B;|WC~@I!8nHhZZQDk6Q6K|P?3j{`H<&I9*m!NjzC#I z_pf0*y(0amz?qePDf?;bNFd$Ed3%N&fsnH)>t#iB44oSy^CPnwsDkB@z4PH8U^N;T z?M?Asd$cL_S1>qx&moT6-F|Y5%khj&HuhoWq{`6NcJTHiQJ(DC<*&Szlpwxo^jb|2 zy190%xA35NXa3&5JHMy<(!YCpNDk@ECRGLx+ zDN>^%O~i;UdWi~1$)ZV@Koq1%6%Y^*B3-0}-bthjNbfZyq1S{OAc^1WK4!ekz9C5kmsDwl5|}3#s6&^%X;$xE}lraqN@h zIUjou5$p1$j7^v>Y-R$Q%)9%`cmGHDfu$7S@d_XS@9Ehu?@0{so&-?o^#Zeyu$gnj z?x^sLNdP3B6Ui%^4rYhou3H*n=MCiNc)1XbkF`5nN9r%>mRk%Ab zYl04*|Uxei7oJEF= z`fBgLzxU?ii_{6j8yC3S2Cm55H-soC<9pW*2#^Ue?TSH)9}XGdFIa3}so_{)XKNC2 z$Ne#8;=E8(jBIJ1>s)cfJ$~s0-4e>oC-8aAG>2^#8!@;0hNbAL?QQ6Q=VFTsEH6Qv zabzjC>k>ApA{$k1v6nE~P>zvR1O&fPr0~iRc=jXo#QI<0sYJ&QFSV`)>#(&3WbvO8 zh~TC;5wY)7fQa|x0`R{ddX)KmUf~{XhF}PZ53j^_JsK1mO7EXgOC*VZ_8I8d#tY2*C=;k_DWD&t z$68`CEvqUruRqTBw_DqHl-;bw5C(e23DtbVnOft7>zdhOrsmy+7auNb0NvOP2kyXY zQyvb|&Z$#BIKesOv`7gUXTLJ9J(V<`28GXrjSb^&v@fEly}@@BU=yJ+(a!?eozced zO>S>VzWZ&X4~L6nQ&J=}^qtlxWVq!$G@qV`QE|GV&5-o+ejHTV1kuPq<3+$Gv52Nz zvYwUf;0IBu-IVX{8R>WGjI*jwdo8Tps)&Dl%PY56SZLcnk!(S9#)~wuFpQJknoOZh zQ2M1?@~&fc6YzZJ42D%dZn}U4o#K`z8Z^OF#^yujLA6!MIJC5qDc%ycDQPA&(S=S~ z-}0QKZ?1{WgFD@1=}hSVkb?2u+9|JWSpTI={DI)Q@jPN)70LnLu>DCl7-lpD0DO8W ztecj<>VMYVH%*C7X%kfuG_GkN=pMUQmpdfBpkemq8Q&arN`_%&M&}VTJL7~3%aQQv z3>|458&U?Pa5dfTUF_rN1uvu( zc^t97sm8wy^kV}yAg&{90kIYYIeWwL5fSQs{fj6{e zhOInYS83`Mys9$!lfG0!toHkSUEapu7>2L4C|`@U+WVlxn-P0g(7NW*cSa8{5I>-{;+4SbM)*y#wu&2Zbhe;& zAzQvH|47;FyQBoyC56dUoLw??enKlo(I7(hX~#8_6BYh+!1M&mS;m{qD~5mJ=w{nP zcA;_^!H0IJiu}T3iJ;{^UGI%;9pS;y)1m4O(t;`0+aCGJbMbf~r< zo?KU-H7{@WK2kn_@soej`AD{J-|BsfC~Xf#GfvM;d4n3k$NYJF@q%W|2Pz7WQ-;cr5^Q$)FLJU)S}?l^BUyQl_xZ)z;xC6S*h-$kgXAke%h8r z^ny=s3uFw)XA`_a&5TGP&4_WV@oHrPT5_x&|7u90J+=8`i%Ix? z?1A%wbAl@ald=75iM!A(ojftS!AVMk(rzVJ;>qE>cfmK$MrNLFHJQ=NcOFnxUH|p+ z4saTvP8hzCgKPjQl~c9^6#H_Cg?g?xQkS?<2;=Mg+Rgi9rPlpR5nE|6)9m?65sN2w z3n2fYKG>foL6#uVk1E5EP&Pi|IW=hmwZky7iY2)5ywS&F6$zBB8~oQwbN zi7g`!Y(UyWFwpyaNAW#=@Qh9gr8T5i03w+mu=lur!hYNx$gvxZ+S)<` zr${>`NVAL&ta@$=m@LbQb>FRJV3&T<0ge7p$arEqvJ|R9ji;%lwbPOYZ|IUi7kh@7-@X4GVwAo*&~cAL^j1##6}n%*mSW@-P` zTYHha0tqA6=}|7mSK1%3u$sh&cn;4aa70g;RyD=fW1Qa8JSl0 z(UfBRh=w+9=A)0aRLV3&t?~JdzVwg%U#8{kIyo9@g;T1WG1*zJzs*irf-WeL&)A&E z*}T^I*j}yhRx4&<(%(X=86@qmsvG#svOHf2FeQWhB>l=&; zJyeC(jVX>wKe}e72Wmz#Pg_Uhcq%`e=q_CRfXi6~nMNI!y2`((4 z3jK`M5Ij;e>SFUW7(nza#rjB__fp>j^%tp_jmf=W0Nvbt0OMHtH+8EL;q)wcuhW?O zNrVAfOdjjsm4lpHUzsI4VM<-w@JouS2i9we&OtLH3Hg6HkwEGdOw<8jVdVhio8=w$ zB8{J7NCdwVsTy*gHCy$)z`eq)H;wri8JcaabMc;U zZ3bVgziFR8wqz+9th0W3_-d3`^{{X(>w>uRRr*?afpgvhODY(A?pivE*5^gC@Lv6f zrK6~OxG=m=F(gi`UbM^OclBa57q+zr`tF@2o@4)_kAc#4@6738e|~QcRUpvUBH9M8 zmG5oIt_w8nwVhS#VPENF`T~{i(kXd#s+pndy|pt$zK1v-5pUf0LA1_Io;qsd$oUXS z+^>obz`->QblQw-J+8Ogwa(~NE!#T#7M7!X&RGnz>02t6knaGBse_pFt1JQJV*|>_ zQhRTS7WFPtVNI(Sjx#k&?AA&&teuU=2t;@p-aMl^yC48)_N8o;6 zD&umedVj>4-KE+5_)LhA=wc8NS*Tc2rX^EM$qciQ=vt3dWE6!RC&fL!yv0@cbhO;p z@4m9F07L%^O{Nytn82`MB4_hDJhc1m>PJ(^Jqbi|QE|y2<&BS3gLj z>!$QKE^){csD3CO3`-E_l)~6>N|M4IrMgIJFqURoue5iM^UICVO4)WWH%R@@ZS?wqNjCRCF(?Mp$v$y6Lp)`UJn32 zlNtxLLN6w&*OB-Z!Y^vsTAgvSiuK{WD%>dC2Nze=gl#qM=2<`^0yv zSVcA&?X0JHi~*+zC(&kPpoVZln;K8MK@PBZVnSBHkx{~Kf+6>7>jnfoRdu2U?BbC7 zc3rDBX&r-YO-2nv8N=%ny^xPqc`wxZe{1ZKulQu0ikew{vUQWjggr7^0uxQalfF3T zK>t(AN=3Os8#hhV z^kAP8Y7>4hyrbFR&+ zM%4`o(mid}NokL3=+>tLG+mQ-oI{~!Das_b#{D#Y(u=?hGV=D2ykGu<;ezK4Wi?}~ zSDnK&tR0KOnlIx%T=>q84ePz8G-ijJ9Tq(+=e4Q&#A~?^*KA!eEPk(q^;5r~w>be!0TWJ}M_WBsu1^C9#=y^X&AewajaY z(up>1LtU47KQrzjafwY3CO8|hcFF%Nu{We%AfupAX8BMu^=#1B?^vG}ebFMqo4ANi zhRAnt=^S$Jo!SAQl+kWDu$d`sK0b51Y;x+#N>Kz;vD(`U064rM?U@lry7zCjAE3tQ zw4C^tVEfm(K`+af$MYm3J=87$KpfueBT4Uk9OYFd3J<>E4K>;_nD3X|;mHq=5mvL- zxvUlRT9qsHrQ)|Guqx1%gbJgH0={e{W;O#L9KZy~s+wt$pUw6?JF;kkA38?FidkT% ztX^t~XUJ+3PRzA)&!x8bXOqKer|ujHkuzH&^UW!|16H*!W*!e34E?@d7V90r6BK&x z)rq!S%TRU7IcggG?2#;45`2!#*pv)Jq2c2@k565G4@)9z9jU;uL6-fj*fYTt4_*r@UoYfBLZ|o2t?Kd*Z1D{S zQB4>o;1rLs9B6yBNgZ))V0IRrp|$Z%6e%EC%0)R(VqYkk#Q@5M7+ms|&zDI!R;W|?T+D^?p6J9NJWMK z21z)$~Ebs;m1qaU$PXj!}*cZc3<}o<*J_ zi;g~uv8fHY)4#qmwqc>kp88DV%r}?Q9mg@h5Do;;!2@U`^oXMzOjTWB-{<0gTH>=t zaxr`y?&+^1)kiK^JWi|;yiw|9pY5@LJwQJ4Z-o+HDl|Dh!D*&uP&^w(&>)IN-&I=g zh@~I*%F4tcUR>aQ#*9L&!t>L1)0|dLTmmQ2fEWeQ~7XNc(b|R-b>10jj zv;%3XLp%Zf;Ba??>xwo3EbB?iuPf`QLM8=WN`;EPfuyhb@_2O zbngJ*O_!-3z0#J)#4sned{AJPWSd*Bkml){mZKgVqgVYc+?U0poo>6oqEd>C z2%O(GPty9*m{Xe3io~`MeD}GRTm==nvNfSMmR2tD6)DTiMzt8FB-*NVW)@ zKXv8CB5i^YRk4gD>R|x-z5vW@PBJ7Cr6Q2Enk-6IejL@;{8jXw)B60~eslQSuL;)i z51xH2Y89m5Yd#`o-(X8sfPK~_zG|5g+dMU~@TJf8(oed_PVjnP$5uZ@VlEJ72l+F2 zOHMYYogr?7;~bfKKNh&x$yU61NGEPU#}IYWcs@!-CzI#N^}UC;w0l!`;|!rfm>)OX zw;>K`l8@#suBKwU*SEkx>2MVpGO-s)0?%Sw#LN_h`+r||a&N0SWh&-do+NVb{oYJ= zSQO3d&}az=mmxGJT^xdZJ-TsP7wEt3+uda8_&k%7lxOAu<6vlfC#0sUxsF!3b?l=6 zqReuaz`|gMJx@_~%_Ilv49ay26CJBdha?`a%(#x8N$~ zL{z}eY7M$ywJ0d7F;`u-nz}Pnu=hyzm#L0T7n0a_1=Unl%Xmz+{X@utawRCDRP@3mypk8t|<>ic|lk z7|B-n542l@{(Rn?5K_fZX}3bCL^-puhmQ4!3t|kJ1teCl(b8ox`AvDgvag zX59?(WD}Z)6dV;-*f|D!Wvvuc+W9%?y_QVr#<7nl+iqK}S{RhAxV1lO{ZjWN;)%t9 zGhkwPV_h1Jnrg&`UfS<9V7?zz(N5_BFrAcNsJW*{80swxeZbz2|5L{dkbOJuO@D`M zhErChZ&nhH!F4n1Jx)mWOtj@o&HkDoe$Q3&_%-n#+H}^jzWoFYogJ91Uc~3Kcgnp1 z6|HoK`xiGK4vQ1&%WEGszK*?qO!HX0_6gqeEDl?=2GBZ7k=a9k7-Dj?WZCaN^wDAV z?%X_vS_eZSK}1*xuwajVEg0}?!1w+^CXHDDK$BvKdd}qQQGrM1-i%sDh@f5N?~-y7 zDQ`JOb3kS0W{@f&f!Yv3ok4iitt;yO-zgGgph)@#&F#q9sK!pj2JU#J7MV8R8@w{O zo@_`b8+^;a$d&1HrOe&v`(q@Q5ci*SoOWKXEDNn{zuH%kWH}8JUBvs$+nUcrMKG1d zG@dvQ>&r#Hd?6#$K`Sx=D2HnF zJ2U@y`E*zTc7mG5JpTNtC0n%65D;JZ$Xn-G)J)b{wSj>4@bR1NN^8lHn~e>^Jnzih zgpprYl-%i#)SX>ozU(nE_AYe8~tq*q-_CK*;=G z^Na)V9sq9(PzH#0fxMYLgqiY~23cy>)LPKNIwy7S+L1eWdqV1H z&EREMiAq<^$UnTqALsNE;S@si)%Z#07p6ANLfH$a9kIRaDt41xH2MGV82v8E#vgU5 zwtqH#k-a6vVmWkwEOWgNSU5Y(W{H+~9iz;K2lCIB5;>U;tXn?<`#icz9a#U2pLFO} z-qJPR|3Pol|1i$hD&MMT@Y9p8o>PTA$Ulh0KS+UCF9K&ncB2KK1xhybz*6DA04{JM zuJ`bgEQIolJt?dZjWRlbPW|vN(LG3(PR4u>Db1SP5gmsReIpPpLE}rFl3+y z`k%%=Y=F)q+*k@8(`@!L`!IhHanK*Ovwok(0Sy5!J?#e*m858*(f>TI+FxeWyvl}2 z@>|-G`olre`hy^$fCR}uzDnjljhjDAGupp#*ebOEeWl9$|6`3ZS9THc)E{d9TB1J{ zqyP3Ls`e9TJ$#6H**E5p?6K2X*J(DD6~TGgmPw~gdvT^5rl_g!8C#NNorU6b1CpD6 z)2II^)N{f^vsE85J1P>tOxR;44YAvRp5_DN4AydXb*N2y?@i^S+W%B?qG%HUtRM|Z z20{)daAhH8F_)%dp0h=L6ttQAlFuk;5eI6@rjUxwa<< zj;A)RKbz)@{)43dgU08hRsa|kRWNCg#)fb-L-ax@fZ++^Z_C}nRI3&!XO{fw%Mvhu zpW+`LKQ;s$6UK@VcTa$a_&>K_UVFn;lpVk}LCE@lc)l+;vXeHuSG@7Rx<>pXeEk5B z=+6wJEB5a@qVQBvB`yZAS z^oI$QU?^t)75h!FRRqUqV#KuDW>lOLY%gTY&043O)S)Nk z&3nzSKxHZp`JDeuveJN!=prss&v1*-7y--Q3YZdRsb=KP4Lc;6j}stkG4-=VZDDGX z{GKOnOEvHZ{pk`eVu+;_#h-NQC*S>~d()2~{f79bp?6XagFkU&3(2T z2K|BFdByp^zC>EXD?pa_=;ObZ=uf5Szki8blD(p2EuNDk)^;N$SMU$k!g#9ZJim2( zV-%rdB^zb~9leqRhO$71jdxw@pZeNjLO)z8x$iw0Whl}6s~@f3dBiBA)ca>z2=aHg z_HS-$l!@m#o2k`5O8FnXqZ;tv-CEG!d~ijZF~vl;f3)B8_2(0xE?D%G z{i*Sa``bJG%?VGi2u$+&*W3JW-kW)=ny42|-y>el%G+DVKQk{AjY<+>tFZuX{iqrG zbL01)MPLUuW9I*Z;+%iQp#LFo|4$<7ytUm+&ig)6bxt=MFLk?;I?E&t;zJ$;CQlJV zDD{YMh(aAr04(x%4slnH2_w$GfBf|)gAvRej|h&^YWlTyloDu70e>vKMu81;4U<9X zff{T^)!sM_wnxYQi=UIZ!2o`&io$p}l5InFrkVYEvV&1{7)^{;%U{GpwmS%EoX{v7 z4PKuEh}U&^JWVpsKz{h*%K?n$?})|DK^g@`Hh|For2Ae71H#pxbbS*Q`I}!m%{MIz z$fmC5;SYl#YdoNXE#Mm%F~I$O3iyt_@wwCkC^6sN5Wckm6CK4X1qAmB@?86x-R5lw~tS}JuR|EJ6X24^l0?jkTWHM6ULc-atw}Sq?oo*$x0@Z<-_5ffBEvvoSzi2R>9& zT9y6VU-sL24@5YTyECId>Fz&A#WvMhJq0p6n45F1qGUy>4a|2E&~fmmLSQt$-Bm-P z{7>5C{|y4)f;?AnxrE$-!w6q`HoaFkd0rCXG84ZUk4Lg#<}#PSyE9O#aB@Qt+Ey)o z6-W_v9hNQ2$T`RWg{P&coA~*uO3&hQ868&6NB5>bI6PWt0H&& zq~kaINwBQus8Vx*Q&|4=f;(ZdF{-i1A&0M!UgAx#$HWCne?^X z$V+t1)AyPu)D?F0a-W8f#B8o2B0+x`+o6!{Wl`f=`nX@~e=&}JXB}f{h|N9+rb-I2 zxV1{7RgwFtH9$}RPK567V%om;Yl*J$ck(4pnbM{JC>^p3b##a&Xzk5!QfL+k?8r|# z?tBg2{Nn!`C)1um5vWVp8hMedBlL9bn5Vew+ufqX77%Fxx!Z>jFt2LFkhiLVOfM$Z z=n0;MybU>A0>_{df5^7fAx!yCUKdg=UV zHhrziJWB5-UF)TcFx6k9djF?`o~#N1;N9In=~mNecWa|hA-dWD12Zax14yy95r<2N z_eGgape;Zr9HUk2JjQOQGJ%iF1BJi1+kaI{MUr**@k?|Wz!k7mY8inV_ zd6%$l6mtLQD%LL|H;HY)89R@5owvF~6JLw~nUXM3?ucMCd;O@&ojjAJL$$Ow8_tsR z7u1i(vT;~_ifsyG?y7#{$L$=woL6NUAl`!-`q@5AA&%!JAhMHgR_!TZk zO`r*RM{Cp`ag+gX%(RjmAJm=@>%)2e-!D9ySjjze>Q>_kSBqU&M0s>`%4P((3=>^1 zkfRGbnTw zDwL1>)N%aLvrrZ+IcIduu1blws!Hi=M?qFtUGk;YEHM==(U=$3lk?w8o&5Wu6LkuN($foJ_J6jLVRHcPw^6N;=rUYUW6XeF=Mxb{6Yx zhA%29gzDr@*&ikb?ntqm(odS|wvqp`&0+WmZ6>jH=b?@=RJ59>Uag&Wx+>3%@{lAC za8sOSF9)A7YTirmXNpqo%_pmEVV^`lej{*EKtre^`^Wh%$C`H<%%>ref>y`|M`rT| z9okLu*7hE>x(rPkUH8L*n90qLDqtxP7V?-$-oDzyvdTOXu%<_ounQK zDE#b$B8*suPh2}9UEKxlU>3n4LsfX>1GDToVpeIlF#VDR3~$};mAnnV-(bSp<=&h` zZ_SH(SwSme!VX70X$5gsd`Gi*%Pa!awe>b6I@a= z#OID5ebCR#!);t1HJ7|koJj#r3S7g7lz*E94su6ELs^A~GAb*o%~HL-?fLVQ(!y(> zw>g*1*uOVxDDUD5aI8-ZS zcHGLccygpBmg3Wgg6RlM3gl@j3u?h-$hHJW1mP3%Jlu~n$lbRAtch$sREz#>+5M&c z4C|D->~^o0EXTUQcgMnjw&JfX7a_@a4~%RPWS1o$k>=>PP&Sokq;0%bkQ2rp716&; z11=OeVvDh(v9RjyrFbSlZls6a3pY^hyrQH9GEfrW5(Z%um%oW~>IVC=yh-pqTkB#+#v3TCt3 z;M)DL_7D|?FU-Hash9i0>@q*UOOv z?vNaFQVW*UR7WJ8=E|q$El13}uZ}G;8EmuirXTn}zQiAdygis_HXGgI2WtgPy#LLm z+Q`KTS?uZ6WWTg{me_ZD#@YRAMb;Lb>ByUU0yZ52p2z6uR3Fw$?MYKV)x(I4Eg)85 zQsTRUU+jCQC2JgAGgqt-dqJ&1=v0{P1vCS@+HmM8uZZ~f(Kk<-x1}u`@Jv3oLBG*p zGq~vB{nsGF5c>Df!<&r4V^-5waG2oeWH`%Dx~ml^3hXj z=Uk^q?XOWPdL*$%rPlfcpu4m#zh=Ww^O<0{M8W%_Z^upqyFAn;s6yB~m%CT}(SB5f z7@uesN5b;_9co6Tp3-&9f}5@JD@X?#Rhk5Riic=l#pX6{xevhX2y z6H7+D?brImL!$<|%=|BsqT6+QS&f@fa78jCXKCO;zOTnK5^zgSZB;n1#;;^>!^DC;=$@wrtrAl}ba@!((>FrH(M&X>O!&+Fih}B}&c3w~gBT!>6)0 zKk2+e(szwPvp_ks7$rgdQva;TK4IoG5f$PAUgLX$R|stnX)6k6i?e@}9kh||Dt=wq zAm@g07q5@esjd7{nN0c>gYOgvva$^c)ks>d;+zPM_Iu{Vk)7>O>-*JWSs~`4RhmTO z`=id`(;nW_ak{cKH}-I;S#vt18Sv~K_!+5RR5WlBW{=SI18`?+ z6(gKsy*<}@eL5R=WGJ??z-go`gC8*{Ovey@99?&$OeWx`>rE9}p#0tlbE5OdQcHVo zk)XK&>ydcg(ncTI#46?4TM(IBu~Ii-VjzhL(J^X1=EWj4yZ)GM&KNoF5%EP`_DpyK z*t|H%rlypIH(~$U*B1JPiC)+9B3HNu9!N*fM~j)Z!ZG008hKv;uX_dR-A=$XTe!9H zgGg1OD%Uw9>us~`)y`Iz*2Vz$l@v-+zHCI?sjs=XMd(c;^Lu0^kTA?`w(H;{Gja+b zs`+@t8S>o)p#T43IhMtt3N4$^W@{FGq6o>HlyLpVB^{3&_bT46+XfibKz5B$xfFfk zi*^GdB4|fKBE8?emuZFDZ#wJ3om$!8?x8Fu1>gcz2F6e4+A_%{#G5+gXyRh~p=v4` znZANNUv9sXs%{wE%8j?!>viUhoz2&q7o&XraqH3vCZYR=p3hxv11MTVM3jm?J{vt+ zFHH(*pJA^a+*#;*Mr4d45GThJ#zQ7dw`szr?q%BB9EvhOQdEjBT)L@H;opT88>HwF zd$bEYSU4@ZGO@k6Gp6LvdBZzNA3}}<*BE9BSTZeB7**g9*HT=u-t|>$s|_jcnx(IC@p8xMi}R^fH*aa=K`9tiy=(Y`1F5}N zBuvY?84mgl%VRgO8Cq}fWf^o*MY&)#jlZS=7ERV2Svc>6mErf`&FEnJ@p7$@wb&$S zFo#;K1_r;o5@Jq_ez#jqQ7nKnk^@nb=tM79r*2pJC6I0PX)Y6vm1D9iZ;y%V35Lm+ zJhSXRlA(1Wi9KoTM8hO%4HZZUokG0cL7q53K0g99VN;O*V6^m}Pf~AU!X$N}ND2?I zl(%)Y0AjCVfma2!>~o)s$8VkhVA2=up0_|?Hhu-F;pQu@AnE%FM<+C9>BM6>;$A9$ zhf3K#86Wpy?UFRR1ZMbM?Scc8UG~m6OU#Q$>jHq) z5a5+OeHo-cHY?N0w0Uu*DyKcM10s@oy_-x)m>jK{T9o=?$5nqDTjtIw?C%|N4F+U++SKD z$xSR*4^4n8!`mR`$7i&wWUOaL$I{M|?cmCIEc?o+(R(b2UB^+dkJ(xBR(-zpn-KBI zz~3bT`*__VkkV*sJlr1V$Jw0Vf10!yQeHCK@O)+QwuM(S>q_6)a+z7ZZfqEEcXd47T&*e5@oABe5SY1&6`p zKEJ%%VSR{WijxxY!}MSzH%|5H5TKEOeNJ2(CHXe02@gva0?nTSjjwXjtqRS4(q&YI z{+=+R@BDSL^r>Jc?y>uWOSW{c1rkpBuRsG4tn~nW1FN@hdzunaI3HGM67Fjv%fc|d zEMtP6HNo}_OTPVj``aUd%iGmEdB3RV#~%*vRgmxaeaPFPl+z`WX{DGCF)gDwK~_++q^~8(bR%^3w-!lua+6nK^2Kv z`QpCBhkYKCkyjU=G$h_H8M3Lbt}l<54CXkzHXsx${UQF7Hor_U#g}Ls3bu`YdqFGP zd$pBwLUpl)g?`e$ABxp;&9i^si}#b6*&0X9sH=9@_iO)_HIHSHDUTHli`kn?ai+mc2f%zs!rx+%I9UTf^9XTl!M<$UXE3ckA#<8eQ@mdn~^)bzV_tA zJ@ZktfVW&B#emRJq4$c=V#zo9A`J_HIf{N(;ir!%KHB#h8oNQuj5+ne1k?_6B#%kaF z;9HbD-{lk-wIj>!3;5Tmg(3K8g5IpUB;oXIOejsPF+=@Jd50_-G5c(Fbm%h>kL)rUZAM#-Cs)MEI&vmd*mZ_Y3TkJ8> zs-tpaP01*ZA`8G~{nUv^O_t(=*mnNQ=pi{NE-gI3r~}iKqYV(dnzK!oJ&6agTpX)5 zh57e-MHh@0JzR_vt(SW`uDt9@4-0NP-MnE0Ro_zCi^$jxx`>jkgN6c9N2|g$$ZYZ5)f2lz zY)QU7{32LioY_loG*JVmW&ElAQn;^Humq2+)>yu&tHYrQ!qTQy*4GmNdtC;r?oCCt{@XcFy3&1NKW>!B2QwE;!@&qk!0>LO#!l<0s%`Qfq_Izl6)Yuq`3p{4W5zkElp0biTIx^&3F8Pi@j&;I z(jvEr*II=}S4fy|oXCsyTsFDJ9k4SahqUmoWe#6|kIeJ}ctUURd1T>x$tDh4RszZE9eiR<;SVJ#rmtHy|O= zS|*r(3ZPPuEcHoYSC=W?ie{jVPn?04IYr`ksTDxF>wFGz9-R%?fjB*!#BIx!=-&ap z&|(u~ErhVGvs7o8L1N`v0BlFH-cV{h-?$X$bl_X!@S1Q$wnzn=8m77XX>VjiJX@*tU;*sdQ-k=h;>bv_6Dx+KoMh=KMtJue7pas3vS z&S`CJXWX$~)&tCJ@?N-1$0m*@?D?cySjbkd^GNLh-6^>p+qLDwWwa1kJ$r>4+!8{r z$exz%cE$%+4;G#L%weQ?Tu<$i<44WTeo9OL)A^QS;c5$r7P(^<8a5*`Oc9&i47R*H z2-n{eOFEZN@Ld=6)yb&TwvG^drPujA=|O(N<2&;lwIK2%CC>J6Jr+xH0}+Mu*pHMo zaxPU!1ifR`J+AlNabu%kHeRQx=D6U*H1kvGuka4c2$i<^EorM9GwXTula95q0zARm zT!jGwb6Y%Q@+2gLdm#lc*2RoCEu4uw zkeyWFYj1>~2^F^GiU$SDuZj7de|%anf9}lj!L{5>%pwgjXH*{I+(p6sIKbjU);&MCt8 z72MDb2N65De}Gw>R0N(C8rvN@zx4=rgyCi~d4=(Qj9ncZPrltPNazoao%Yn`E3}nf zP`D$eLqHyfn~@K2JXi+u*WPdbtVDE`(}>bYZaQor@yRS*0T0Pl7Lcm+gHeK|?c%Rgo3o5E?Uaj%a)*Z)w6W zwJoo3s-b`rBC5K>+Q?Tb(R7dTea}Ye`<1W1F1xY=v62U8L5<3Qv*s^hLUz*z00|-Y z%R<^UC6wA9m6asB>(EB3MEtLI4Ls&wF%R;R;bf9*&^a z!B(HIc1jDGY6%I6F^%k16OKjCs;ZmnZ`>`UR}bjlJeLj7LWY7^)Fiwy-w+cQ!2!E0 zY-X#qPKD2KBSSf5{RLMmKPtEGk?e(9N^gljD0E_5j}X_Vtj)!h%^dDm?Jnm@JFLR& zCl8Ny6rr!7?39~$B*)4Hpglex#HVrxmOV8!Nj9iJo$lpb`+EF4L9Zkj_nV@|bp7QS z1^U*PXeRP%(S-T3Qb>fFIK>$7JwFU&s9RO+#4G5+Qu$|u8x_00-~QHl zL(u3ti3iu-<{XJ(@`w(x6s#h{>@&SnAjo?oaJ^@F79C!0wzB@e^`1)-LM5Il)!cf` zz4cpUW!0wUcRRMzs|+%#Iv9`_cywle}hb-}SmFeQp4qNbyA}`?bu-k6;IOY7&o5 z`uEL<0)#J^)4)C5LA%+TQF5rWCgeE1;fyL><9dB7S!tEn0`22Mt@W`5Zkn&9y4k|m zZBBi}(9>>G)TvqS(JbT_?Jat^qkKQkBd->;ke>W$=QD0AoFkQZ@;Dh|&sWGlP)cXqP8~Qrnqr zjrWSbFMVUYMNng=bwMwn>B*p`R}0Z@vvsIY!&g#!Qtx&;oSd%qS1cK>tgJAEt=%2` z)~D;`@>u=E>w>L(O&uc*hp>(rpynjizOyY#^l|`dp&_&eJ<#|jVKW3vxJI;yUgw*I zhL`D`ZBk3|%C}o=<*0H={lTHCcqK|Z{zP5hWPba6fJN}ES}5u|aF-#Ho4k*2i^HQp zQo%bZP$u#947*o+l*6|O`(*i`O_7>}OU$?4%tc-`4)~n>*!1ob+kC^FO-BT(zAYP- zo=-fY-B%0zNoO$+w6)piPpr18fe;;9eTdb1%%Pr~uLXR=hhhgza@V%c8q=6a#@urS zae)Z{|LiUeV(DiYNQ$GW6asWc(7D~k;pKVE#?oN{BN3YqRFLa>X8*lZLk|eE9rm5l zW`Hc>oE?olxVzqfP-riER&wExGr9L6qRiZ)+fC-m<1W66>}F9Xhz#I%4*KI30cfHu zHWXWm1@6=g4aD2NQ@d*K&smjdI0^?BE-RVqsJ_*0EI+(l5FZ@RpwST)?tBB6>y%8F2u!ZS8Uhat+HgEs0p2@>FM{_I4{3LaC~wq5f2Og^GuTz)=bKsKRgT*ArM1_0#J$BQ8+i5_sc95_QdqP4uo`G}M2(G987+9|GVF9AN;ZG)JXSON zH>C9K;FT-;dVu5k{Cr7K9Fz=VNDM*qEupys+I9Qkr}HNC&gO~dvuAM(-Y#jQQ+&#I z-wIPIKPQ&)1`ve?D0xn7Mjw5h3Z=PM=H|!_Bbf%+#0hN^` zx5PifC6v74yf&@XVN(MOg*Uu^_DpMv_H=UGzYkPW6ixuYLGYDh7?xi>j3huJ`MHK< zQ@S-5ObmI#lYW0u`6m0aVw8}*?u~a!_0binV}Ju2uGPB9?A`t(vDuJzl9Ukmr8s#2 zYd&n-w^9D$)Ytyg5^EcV3&Ky$IgFjR+`%)eD)?6#B}q@fHYUX3WAvOaEL&% zNsLU;O1_eBHs<#xXIw0&&G|CWjeZxD{cCykhoz!a$=^d)ayeeU_)1b`^y zyu+yJOs>#}lRWp5y}pOBKR2^>EwHbNTD)fd+RSbvKLa4tm5p5gqOZZO{@2DrRmNE? z#m5|h#&(G1kr*jHxm0)1_fZL=GfkxkjCG!iA0h|RR0e6aEOW4VHn8Y# zaDDXNJUQBxn7QXXGhP{Hy30fpz6E_O^Q*uvb`D~t<5Q?lby%Z2~ z)}<%baVy^Id)6zhW+*e0Uj3?;Wszf2e#?kSSqr|AL0i%f!etR?eS<-eegMz6_SQ zQe?fyx8Z6jLCy9Tg7GtkXn%A#RLjJH*e!q(CV#^$>RhTPaKF=qv34JOFRP~=E-R85 zHKp%^1D3uCUoXA$E_ie80AGg+AK|}B%t;{;@IfP4Bd1@+l9AsM(7dGJ*fV3CH=4b& zC(SyXCQZRJ_5){%)t=t!)c^{;uYb~ApfP*P%p5hT2?E~3JC$c&9I9Sn!zFgB%^-vI zPuyI-R7csx+83N)W|O{qx95cPdW_IZAq(da#2L5;9vMA?IbZL`_;yEe=PbZ+(L5m^ z{TbT*^>WzWLXU6wyN!jas^`G1n+_a;K?Y!-#Kf0tUWR?LDv6Dt)Be}J6ZcZcZ)R(N z{!mOrS2h`<)i1}aW7SXLmlTZMMYUwyb(hK38n>D_9w0L=5fjzCw+WCR5o6SNCRRZ_ zKqBSys%b@QPA1;Ax?jT7jSq-}PRIRLnKrKb{WZ?YP}$`a7yDA$DY8bMH|*Dw2s#TT zj#913YVUFu4%bp<^ZT`^eH;`yVB^oQNFiV6Tdw2+b^10&U(&g0Q;d4 znl#v)ZY~w*amuz**Doz?8?^az5#~p&;nv*An`uZzD#nsJFG1c_e|RnOnpUwSJg)<%%a$5qxVX z_DWP{_f?)0AFd1EV`cJH#5u2OS8^CHd>Fp2Rkgd%lEm*fn*s{ORusi3L`e7xd&l9N zgNvj#tcbKE+`5Qv^1@aRR~lOlI#Iv8cFK0^$Jh7b$^x-+;yqmX@`wqq_L&PIhGb`# z|A)Ev4r}V`x<#WPsEB}oC{^i5vw$E1Q4nbYg3?P=q<3in0uc}p5F#KTphT%sLkk_E zR1uZlLQUu(m{39>#j}0u?=9c=z2~{--h2MYlVoM>thL+PbB;OYn2o1VM90~VtLj1n zyV^C-ooNj$3F}sm*4@YrU0s;O&hEb~Dee`EKLSlNUfi+cAwMMEBY7HVYLemhbKtYk ztLt|ghy8jX>~85+0?RQ`9et{4C8AdY-TaUDibl(n%JMtdUvG;kPN8=NkHxAAmAdiP z#mNejD~q8KlbvSR>9Q1cWbQOpYrzWJ>G`u^QUqrv?>E+=jV}BG-AP;Vtc&CMT6M{T z65f6YqP+?xG&kE9xsa?zQ0*9o)wDehgV3TCtC8<@p&zvQpVe?!PmSN?u6T8UDIn;J z^ygwF#@A2mP7cDI*&>gXJGTmv;e^1BO#T^>QFMrarZE{&E2!sB8mI=Hi{3MYmbko{WE49P1X_{a<&YiHz!VYbjE zhx!m?wM%-xMuB4Ot01$xU4WJJD3L43tt6D#-Nl2cei1lxlo(w?JoKKZ8hpFDv>nHq zElQYvYA}>h(^8os|ME2*Qmy^0URV9wIUC&->^jwRVAtB#TDy`QSgu*L3Rs$0LH=QM zZ`RQo=|#91@1u11N~Ts5{V&vcTM)7iqG3N01JWJNBXiFv7C!lIc#W+kF0Ek^t(@E1rm!eF^=m)SKs!iWhxEmriSd%Q@72L8Dc8(wr z1E}?oW4cC-SBYf{r`F(Drg_U}UGFNMPP|W>Vr|v`OngdwmNMcm{|wF8XN-@`Gw^S>WZ@Z7r>oq@4I$v+GgDl55bqPlvMA_b|Qn_V2TEPR3-h> zFVG9KJzi^gn>MbC>{CRJ?$fK@dhKQvF}s>Z(zr%SJFMw{evJLO+ zPBlVaw4SdFb)BVi&Agv$(QZGG%i>RLtc%)|_mY+4y>2EsKubG~KJ}@7GYZ*z{88e? z)~ISy951J{I;8Dt!vx8Jm`;i!ye4R44HHQALK*%05U+_h)bV}iJ+rp{U2wFZQVltk zu&zlwl9>PA?Q~=33v=C&oLQC)mGviw?PmP(7O~&QK2BZqRx#V~MIKc@vkGW%gq;SK zT9y0hzAiI-L%5-LX>0csJ9>GK%!*`N-R@fQTu8AMctm}!*bJC-f&jJDmTilB7^+FP z1J8j+8{j~Ez8hesjA>G%`~}$oEph~zZ5LILz8|LjUVH90d)dSp2-JdpzqmWcT!3tA z*cCuRn-Qq0mF$cmDFKCVWEX>$sr=j&6SzHDAMgzQCZi~~%X`b*Zd#{?pNWSeD1%H- zROpLrnsxxL`A?gMsu8zInq)VM;VRuIQB^2+J%w>=z8TtFGR~|j*5;9_4P*Lr?lHf4 z{_Rqiwl_=VDd{Ud_Y0-I_#hk(kTLM;&2Zv8PUzFLHGZ$X3319fjBUWPv-bUm@!3-E z=4UxnQfKw$!^DU??(dS2jXt|PKh}Xc9EDc5%X--pue6cWC9A)W4c8>gpzgzia<0W` z{%F0sjN;#(1uCA36}w>28{I$V36O4HJlV@;5R4NZ@q24+_Hvb!uDhhteW9ZsEE6zk z*IxRf3%-hL$H3QB{dYhOtp?SOC$e2yGl(oZJkTu};-pkGbG| z^2Vp`Qd*Q3-rCk&+dguyrj=zCW9mz?CIteJcN+C9tsr}Jtet+jvU;?LTqfSpp9^L+-;V0*Pet)N6%grB0r^DdKNgf0CY=6$(i?9#YRg zq`ca^i(=!}coVv2xPGutXD-qxUCbLTbTaiv?KAa|;g@XA0)a&%0Q~)I|EUrFeB=JM zFRn$)Y+kScyWY#NlJeQ`B$GFbJlF+wG>FBm1Y!#{JHVwWZ%{Rz+G-kGi0~bxch| zGBz;r8d_&lue9Pb=wh@-!|^9qc&JyW)FqlK5kMS*l`agst>3~sX`OArzj_rsG0>;@ z^%&P`5yVQT`k2fncamxCna__-9s#NZ9#&_7rgT|}V~VY)kI5OhX}R?-I|&Aj!3{t8 zind%^%dNJB`gWc5n;m6d0crGZkEBB{lkF$ z;Lp6_z*)DL(65=PZzr3gPfiZ!Ue`bWWZA{e&NWlbe}@X5duvlM=Ai}`A~WZ>%+?A; zZ%_sBtoj{|PS2^_MNm6yXGK{SQ*@$-foS77D^V#IQR1}1kAT~<3+b@%m$0=j=c;Js zx3kJEJ^{WxoV`_OHMndl;HuSVgWy{^q{1M3rA&fTkT+?@p4(JOid}9kW9E}lADx+? zxYtfGQ0kZwX$H!F$j1T_hQ3}!Fx|8zu1q?q-z7LI0X?0XU#xw$>LyHHI9mDb(?p#2 zo}|tW5*tZ+L6F!GBQSK%o>Uhir?iKu6JrnxA!SV6cLwDLcS}X<6Lr)_0v9h`t@t?k zc1Gjb89g}%Z2pC+#ioEz9{9S4N@OA5gzR+^y>9IN>g*|u3m^Olxz_8XGvKy6b;xsC zPImhT<&y)h-x%f4(a}`wTAO*;>PP0 z^^h3dbh;@I8fj5)Z7tv`QaFKqow@j>tI!3)s4#LqM z^>(MLGY}Hf@f1cOb`x85R^`(X%kpkMu;fX-NXcmP*!T7q?>l-=UNGe~m|dj7+c|k% zSFM+U57|XHFjm{FRVB4Aj?P8BLH2pK$_v9L%%Jfs(@fTq_Rl@NwG#7vuLf+o?}vED z$ecV>h{IrODIH3+zTh@U{Aoen;X4qAv8Aet`i05+4lwk50DC#~9VrCcQ>X9}>+r-v0bB zxwKh67GPu`GzdtnIt%qS(VQytwUZ}?D&{sHYJJzQ;mBdEjkCGZDQ!1TCE>o-8F}HW zvW=G+Oh}1iMnL|_d%JIT-@*c@{^}7#qYXV$*yRyF$Z=pb-s`y53=XK}?d*D{Fd5=; zd9IUx=AIgDu`aXin*F15r#z+(wfk6s34;f!R;UCiT*`jN;8PAP>3>G|`9`nqomV!WT5@da*!fjR~&g=Xu6? zfzM?<=b~vaj2s}I(CjcS;+-FGQoAj)7F`By$2DU+foCxfRb)mTq0>D2@RF-i5rD-QQi)-4vSSE-yH->}T?~;sNdf;~2Lr50D za}UE3Wu&3$;Ob zTxYHUa0rsD5vByK!^cGa__jD3Yi8}i6ngl})!4zA?|e;a>QZ(KhAR}U_E(A1)EQf) z&}-Hv>6hskP2QwM_}CioL~(ZXfc-NO&F%`}9$jCcn-&h(P1^Y(im=uoI&n*T=rLyV z7wBqGUzhy;F@VeP5g_&R*{1*To85P2+Kgb#$OCvp3uLJ+j`+KffHfBKx-*LqL&70{n!trN0YN(h+$85 zrB)D_3IQMF{Q~XZ&85pDX(n*$2jgADCLl^sn4iaX=8iLHCs-l z#&*E=Jbm;cF#W#dAA5(|QveYFmxVryoMz1A;XRKDeY6(%N;E0}mDy+h^F3W?RC{0n{y*dW4!`mK=D*|pC>{c4 zV|osAY8`&!2X?Z9*Oh8EIBPOcUcO=Mk@MiLSXsyOAHvzT%f0-$Tn@9%IdwJWUGOTS z_D~`GUYmSWHs4s8!AxoiO#ITFcoA)3jv(hAQO`VuCnCj-I(e5>q@@@SUn-Ike+4fy zK9$mvv{TqAkHCW4j82WO2B+2*Dt5ikbdSWtmC;zKqqObP;ND*J{mt_nNDxlKqU7;jkUN zdHGU!%r#Ud^$0Nqz$BxWiJ^&Q6jvbJS3T@O^}&aOqv3U`XT502@H*6IgLJH4ope3m zyR{@C`aX4mc3ZS@t5de?2?AfE*V=Fv z9NTQ?I$rP-6Y5_NKe19G!y(XDS@fh)J34l>-??Agi?E01UVb4uI&>qw?P%j;6*Rhc zyf=(RS8>f!72+77y)Dw@X=A_V z=~a)R5bKUKtG6B5zULfm*OI8ucuejKy_S107{&tx>c-TsksHd$Jb3Q94uk}rIRPC) z6X%QP8zGPi`Pq&&)Lvzuu(|c<^qR-Vtxcb(`Wf>IB3q}|5%Lhpmpo#Ro5d!B6N4kD zYNLf7XV&Ovn%vH$jii=GxR`n00Xf~0`SDrxE7)v5*wz9_vsey5Iy1oA5OHG5+JG%f{46f}M$;Lg ztmA<&Hi{wCts5fP>_nL19xjC$%oRj_Pux1hukyyk+S=x98ULkId5_k(Uc$=wsunex z-RVY@`(gd+yyQs=cr6~shav0iga`z-8)9kUx;3#29>E{HSnnOY38i=OvCpZN6L zYOsNHK3k1@>tVhNC1m`|Ihb6Q6`noj$2 z>79KlDk!~#VS{N7tBX)Wh)M`~Rq0Y|TbMjCEjDPLjZKp=Jv~j#PvCZ!{b6y|!CQM3 z(;~u`($0*`8(n-SFxHJoWQRQ*PN#DLMN`Tl&?Yku%hfO*0*WeffQ~9{`l2?nmsL1r zGx-zL>xIIpDLxFHm{pKJUIwJ8cOvrn&4B(l^`#2w>xl6eM%v zK>x{W6o_|FgD^Bd@Mm*l9NRu%x&h%3tHs~Jz<)uGS~DSw`+`wI;e7XvwRGPZYjJ^o zzsz}T^L_jd5&Ee7oWDTgx;a2qzFA<>d3C8DFa&M3EFkZRuX2_bh^t$*z9H{YRG?Q# zZwWT)0>sf+!Is>~>HM95pFRqQ9JTz+r#VZ!tCYKZ`V3Pi&F}k|Bq$yYqQ_isFEaRI zryWQCjHxgOCTK4ms^@j0yV%ug3H=LnUck$|o<}8We7ecSySTWiq3uHts1|<+<(d<> z{AN+&n?!)enGYqmfCG{o@d29MC19jcU)K;V{ah5J`sAITPtvd;E97svf@PAcCbEII z{ll17`o!vKSuiOt5rbT-8K@yH_Mv!qkX&XHLbS&CV)UI|8vbI>_bcDDg`UyRLye6{ zfpIk$PK|~R6;k%Ode3@*A%`B19Lfq%+a5nS!o4$VQ@oP}Ew7w&WoDaLe8OKWd{kZ@6S@LunG^1>s6L!$ zL7k*(WD2PHvrO>mj94%xDkf`~%)q>xZXU1l`^blB4r?Z(=D=htFspwbD|)vpOR&L7 z>{a?jNf%*VrZFtr*$X;Uw@*}nPQsW;*2WnmggTW$AL z=p|;#D~eK9Q;lfP;-6)^22GRpeVzBZC>E-!scC!bi#as50?A_avxMpN$Y!up{%S>5 z2&=kS#Ek3@x{3Vpca;(#@5@jIZeZR1NtRkhG#?_`ck;4kC*h9C?AY3EwlQap;_{&Q zi~)TPCORTE?F&hijTt>v0!4&1ggO6~T_W@Gj8!mV-a4T_?)`SZ7 z-m0%{7&0MdZk@Heu_5!}hP3dDhs^HFs$+5@9LFy%XLp+(=PZ-c@eF0vg8e@7=ZM|3 z!_88_YB4564MvcIm=nP(+&CjD6L8VbkF?V&V>apYbrcDX#XY3k0E7$P{#n%rIDx3+ z@Hxe9U~$Q%3*MYZ92|k(1NN#MOx_imJQMbFlkLYF?ev*Y)PFL}Fx>qi1yc{M@)3jt zky^Nk+EmrZZlRsyghD!l4V<_J#w`dc{{p=;2g;i80v8d&_)qhiqxW3sjdmYSv-naSfO8pPx1T$=?b z92J>^*uZRtfe8%jv(vzkLZ!dGVzd`^$crMlgQ1oD_DUInBatyrp8}JXTI@+>zd)J5 zU1&d(4s>+GOj6vHYS1XUlXlH={x`rz0TT6Xmv3%h<*AYORCq?Y5ec|Ela)&0lR`8h z0sqW@-ww;>q#X#&Lo&9MQG38W6-C$19MIw>F@KKwqmayh@%eP~v0osuly)#_7f7by zZNWB6d_-(%mrR!|ZU3Ctq=G4ah@8*Bzk`WkNy>;9NaCUw{QxLNic&}2 z{G(vjNA0*ss8eqdR#)qVzEoToF;+|vKOg?ZotPhSY;3S;yDP#5vP<^mtGu?}T!<6KsUy=#u1Xl=G`9sAp8oGN{wNl+LTQef|Y@x^7oGM#t{ltzy?pF7_F^pe8;3 z3*^~{UFs%D(X!EOyi=Cl#dfkCSFHlFhl0SK*|#ZK72b?)BFTqvY~0&G-1498RNyB6 zOfvcK|Q@#$cDc_b_AYi_Zf5gwieZ(2S?Vs#SjUwSM1i-fO8R~48Zn;!HC-q@mN^qqj^diujP5ANh(E@B=4A|J9q zL9Q1N_8QcYb@<64{E@}6FMEwgPX{L5K02-Xx%)GqXR*Y6mVX(wy7mTjCqxh^M|E*K zSI#m!ig(}xiv4dU^dIFmxWW|IV$A2lqFI3wYPk77EoosI^ugIJ9}GKC0Am=wQ>;e| zMtz20t?7nJcxKv*Oawhu*GBngl)!6n>>C3v^9m?pE~dSO4S%}`Cr*wnw_L+|P!H^F z*TQ%bXYX*{+7PsJ{^^h;B7=eVC^L(mbo-{p(7jULW;6kSN{IO~r}lubGh>P#_BUU* zhcIQ?%i`i$Ym_#JsR<+2xrdK_R?K=2lOrm{!L-wJ6Vsf>OOaJP&ZXn3UQ=Z*+jp_Ci<AjQ_7?0_?fLRGo>c;Y!)jmB?XHE-C2c$X?g9Arn!zzm` z)=#T+<(Id{o{sk|=wa>UV7#0c$9H1#Ym>&a<+F^-44hVEiFsgLvtUnv9>+QEYV|Y# zjcyoRj&pk%DQA3E^Xfp)M`ZzLhSxbY&8BlS$j8R^RqRrFk@LZ`2UoDO)@sdP*v`H3 zKH4`}?aV-Gi<3mXQ@wJp9lkaB`))O5dqXBBJL1FQ}%@PV-pZ+fDO5E)aV*-wL zSYua)+PBRzlG>Abzx5Axnu|+=OUmi)##&oZ%x~T-)&JyyoodNySLu%TmxNs>kVeN$ zvUF_^`+Sh?Z;GCgx^t;h_?x5*zrf&Uu1n`L4&4ZX@R3_5J6g{YLf>$FuOh>BQjF>^ zOCH}+q%D4yig?l_$NqS3leO#Oo%wDv7s70N@O7&mAD>*ebnKf|$-~F++0tD1KVSRq z@p$^ltCjcG~_08jH2{6AnT}MRjJ+%np zsk>6DZ2+g7cE!S*B}n$aHkKGtLuw}87wvsE$?jS*{DP8ku|j^FC~2gIbnYE7PE|t+q$*) z;Tme%ONBW0Q_3?0>R)~IZ9K1(vCJm_h2ty>N7T8ciZEfAWIcf?HE+#$tx+A5vmWM( zbyazs{Mt?@Zol%fKL3-v*rnS#erHcfF-B(Yf}bJLi2ypieHjDrYquzc=CDt!3~LM@;1>McBgJY7K4)@?!{Z{TW0D5Ks^Loo2KauX{&KePdu;u8)@2?hxE4J9KbU*M0x`&Zdc z`~ppm(Nn+Kl|g)-(HYfv7GQSLmD4XyvUr{mxUt{b>ZJx$3mU#($?lWhf+1&@G;ZILaX4{@Tkn*K)y6s*))u#e z3K!%b+)$OBXXACny7MlCvDMX5#4~&_KlYRYIfHzfDc*OCqXMN~3PeaLiwb7pnByPP z@~AedYRKzgd# zmk{_#Nl=2&QnnYLOIUi3mu0w}DJkpsQ1NX_>sxo0=`UiMe7bUbkCMK4<0jLD%UxzG z)hkih6*G)ued5|^_q_&yl~?6g@>Xx(pgfOceOfFvE$BqJ#xwSJcP$gS^Uet}XoYlP zC?{O8_g3n@UB%>*gZJgdfYNKaxYe4hZ^GAgMlJI~Jhp=3>>n<^p02}u4p6kBWrVR& zRftAiUaUWevSZKvD6yLx<$h(_n)+@zy>2o|J&W|zO* z6xM}aC?!vbs&u9ybKT4XoXiL3k{(0-ni?Jj$>v?TrPnBZMC{`Ql`(Syq>G(CkbN2P zkuKg3lWOWP?qPac?2^e{km8#+eRMh}opwq&&7v11Aj-&n?T8N3Q&o+)1D;Pvg3)wf z$7myWGl4uad!NXir)0KmO;%Z2)~ea=SC#e&7SMCB46M=;?y^4d1clz4tpv}=XP&)dd%J>yjlv%wIBZ-R zL%ZVL@GD^>CGC0oLUFJw;t>O9BdcuAU)HPA$WfZnWWICwZUn0XOc5xwwQfdE&*^lU z4=Hox3k~>!UHZOvgCar7yKGpQR`;zvD8BxK!^>N3S7o^4UcF;GlhgW)==7tvkUVck z6vI4wjJ9o6RpB=ZaUM;0$dlr)&|KEuO@gMK7TtHeee|gGSC3wD2nkAZlCT$F zj^2QOB&dzhs-5xJ!6nH&i)FVUD#>Z9_wmmJr3;ld1h(XU=20QS9k%^!@CINOd%BH+ zU1#?TW=U$RaEcia$~+bh2s3um>fsyTg1a|>$g#pCy}L#J7sz#N=plT{e3yhUNhk2^ z4)4ZE=Cs&XkT!VeH!JDjuVWGvEqD*#D0l-wM0XAW3V~ z9(W7~uoH~V8|^M5@>U(7YX?sm`#M|4L(N={18)E;nH~;R5Ox{fore1ALte*_#9YmgI2{B2Cm&WIKVTplZBX07$8B>F{wW$;iPK;6d6 z!1TBgxAbT5_}E_{6gOrk8aCrX0J`#n6+(T0xOz|aOY>ehfixQOx}uC!Xc#X$arh9bw(w zDivc@HzIWViV;rItb2n+Dn4C*FQr#b`5}k$xm5o7x;2FaI*MTpLk{t3M;sg`PXd_K z27F%_@y`vd=Y^`56UuiDT*r(Etu1BpF(}8OpXCbQ)ZLn(j?Z7NJ=QvBe|DMQ_r9Ne zWUCy}FkUdf0BYWmnfCTdsf)i`fq{bD*CoZfYx%lz$HTKN?8}6V^MuU9_nfF|b+~TY zAsBFpKMlZ8leGW20U}7fM|-XK3&aGoZ6$<7<&oPv0uS8Xx7os0_sybhu30C@F3HlUutj0y3b*+&N+45Lvj=ylm8h;P1+%IcO1^``(ZGOD zOMe-(>7U0agD}898BrMk=#zKl00^4QAN{G=wBmj)sLUfxA=&b@qRg#@s3Xzd$GYty zS*DX=--Nb&X4wGE-p50jonjS}PeXcmKN0)g1HjMY$N#@e2nVW2QROF=>Cpym0B)KN zrW)J>c*=7yaU$?+m|)QzY?i=nICV6>QkO(GgxFsGu3wZUR@-Q@c$c&0v~hOE!*z%m zsvX5v^4MABqR30FS1|ZIditBuxR!xZ$;4z`%C#V;jmPr^(`rV2Y)7dV2jFukOr2?W zhxJcpS6zZrd#jL&LLhHM%Ztp#zMm0|XC{3v3|4;jdZl^BowK$K2FxZhQ1wzNv~_g- z6J2%0&z4s|N-01kA!kOHUpsBf(d13yQO|dkK7Z+7GGL) zrFHi+yIwuoOj?$rC|QsL%+lMk&lAm`o!L59g`t=}S0%`LKC5`AMn!9cum=@mF;rPL z<_Y~KItQ4~^27s#l2)rRlHzruY={nh5qfRsprj1``KnR-e%xAaVv!We&1J3598Nx+ zOucjA;k$SH@&YOzdmdy#O^FQ_`*)WM;}pQ0P=lu4kO!W!%=c1!-5sKsnBdSgpK<>1 zF({z$_al8a z7sTKMLioz!ismau-1r!0 zedE=^Mmeh}M7xlTv7*Z2j}XmcWYA*hVHqW$=W=ENJF9AD37 zt|W@8q&}-F7y=M|Hg?O&2~m!m=~?}ZnVB2=+YYp)jn$^Js0@Ig@E)Dji#P=nA8Q6e zLB~eJi=Yjj3X}0!MgGu@4gc$B9wc9SRQKd^yHs7WmOBr2{*~M#V{0CDr6EUhh*CK4 zfK$y@@nY5nj({hS@>o1k&l@>an?Y)Wm4?194vM1Yn17kAJG&np2cmG!p%N8-lc$)P zue>K`bqaEhC?Ymk9R<|cHmdzSaLWx9iOMIct#n(JvyCoZX(J>0?CURjUs30W=_7D& z>5&gF0cC0VoOi9?8cHe%ge{w-N!bs130q=ax+~J)kRVeNQ5gZfYmlTYa7}a=PWV98{RPs} z@4}E7fZf?*4XiOA34K!N40!UF0E>G$^aYH*M|YCI0SgaZJmvc&(YpKC(B}Bc)b4I& znFztH<12Wf3`z)z7vKaR+_Vjh{+pzKkaDTNmg%Yx^{@b@E%-G|RV{M__*)aeYnVqd z!xTpg2-8jS9r9;x6$XB(#o94{4R!CKxfuaz{D2Lv#n%NPv*rPF;`W685vlVr=T;BQ znWnu4oPXl|)pD)Y>Dhf`b~U|gMxES5-0Qq&(e3Z?@MKFM0Hl1=KTY?soZXA#Fb_F( zg;H~zZO?UiBXZ8e2sf6nBOq@^6wk+(eD+h0hu9Uz9=$RJdxv-(-qTyHB(c;5q8zjW zRL+Q(@E-3$%#R~%^j9`!{HEFFT{!M*dAWR+Vh2C>EQ190nND)~sD9aVL4tum!2SR! zT#I`RStVCkx(a6ZcTo^vqIB>^I*%O{9+FS%HLWulh|c_?k=TaQ1_@txce!{e8Khd? z$QFY+Dc>q)yY_Ot*Nw%6*L1Y<(%TG8O|P>_BLPMGUlI>}lqeE#TaO;1T4Wz5Ud??s z1uccHQQAh!Ga=7CMVg2wU*Eg`0F?eEHZK)FHQ;&kqL450LZ#}t11gf$i>-sL4&D~@ zI|>@d2*y55FsDdboI`BzVM40=wy7wkrS1$wiU$bxji;@}#EWTNWepuUzH+<6_DuPp zqma8c)Tg3qf${wC%g?jYpifT&6V*9gXW7s#`bNWihSmw<*wHnAp30KTHro72`>q`d zrKe4&I4n@2)OVQ&O14Cv*mvYhM8UrHJ?w&q7Y@TP)60ZZEw-@k^p?nmixOp2*X|hV{jdMJXEGc0;o0df=lB1P}+TO_o-6Q`SBF5PvbtvU%Tghce=m zbshWs2^}yEFKqWGx4AyF(x=%vmv4oKeiIj~JmardQ&6=*S=CK@^swvrr|Keqi5fBN zu#iN6HSocoh^?zOBWojz;7TEC7IQRwV;yi5mr!P?`ZoAs!T2q8d2VXZ0p=@~ECry+ ziSzW2-+qB|2OEvp;XR{JZF;Ag*DsL1LfjJlk0I{zln$XS|7;GRCbSXYQxARX{3Ek8)CXto&6_Q9@h=WQU^JV+s@lH?7gK*7g#YK&@v= z{XFJfi|2EbY`F)u7SG;Xa4^y;q&gFp+iBO0Q$DGm9#KdLG!Eb3F&$CN8x|kJCF$wO zrd@|JK2f=3bg8bY z(q@#CHt`p)=%yiZbcK4*$F2toPU6Aci-e!iFj*%Qt3+qA8&@u&VynvE`%?>o;OL@KD8XzFei^_JxkV|7hpCe^hJ1zc*yN;mM;#Yk?0w_+XJfV z8agkv_;qWwuWh|f!|I;b7)u$rApmdxDY!DjNKU<4L_-u!JKwW{SSZGjGR4ND*9P6} z;}Pcyb~#V?r9_zX1(ng1=8dA&1uY@^bI4ig#@5Eh7g*R65z*-BN40hL zlTzdMU+{mB@I3Z;n^%%yxIFAS)U9LCMWrxSl~cS9Zy?^qceyM^FVPF(BYkf^ z>WHD7Hn8J2S5HT&o$VwpfR>-1Z}h-C8}ixsd}1pBZBGV z^f2` z=jru6CMuxF`Aol~_3ALZT73YpAktFd1wnA<2@<%b!ebvBxY2bfs_#Sj$v8=dbvCj% zGqq2M1gtA{it9rE8`O-|3e2YT0Y$q=pUiTw_M4YsS2_MiYJUnX2eXi{E<^&jNZQ@D zjsU{(7rnlJ`~@QM45(HUL;lU}m!^Gz1G0QeHO5+@;alhb5>Pnw-@G3|{Ueb-+i&*t zsvQ$K;oVx}On%|Yfh`IPqx7yntE-Fg(=zvMINsn0dc370us#6BmC*q-WWbOd0&q6C zf#eB(6x+47u@aM0h0J2T14^X)@x7|xVVs`p6aASrYLeHy1T_d)^;$7K>q}mf@pJ>< zP9YKyjn4NTL%}R)Me1i=ufB|jKc8W&zp$o*fYi8q&m@}zR&rh8MsW2Sk03|CS2Gwd zbYk7gv}VZ0a!Tf>$CGr!g<~R*noE5aEjS~Nb_MNLHK+5%wX1LywR)Q84ju#sXrpCj zk43jNjAT{^4B1lCYSpgOj|0pZ(JO#;RPh6RVB`bg7#l*OQ5)CifZTV^Ii}1R!C~Fj z7|UqO9m=b%@;Qj`+~aZ`2gawCERr&Zt|_BluP^(4Rnt?hGc2{S(${`JaF0W;iB$7A zpJ&7sNS%N#Jp>Lqa~({-if}?uw%^Mi!3o8-o5i$a8IvbnGLJM@cGu}uPcBZO*DgMK zC(tF7inz@n0cb$SQ?C=Ny1?x4HtE7{Jlk_SnWn+>!)R#=lAJoJ=~gKEggbUX&||0u zAyOiBy{as!u8pdR*PrEvbo;}Vuo7|DnQzvQ%7r7iBE;IBs$0x!_1$}stSg!>DB99U z7%4!APS&jRW&AuB|A?CWwIVN}i7#<6;(UY-pE85QIYFF6q$(#K65o1(?CXYO9E4YT z>`I5I1)*8eFxK%$3tsm5l`hTpzWn%UMA#slZYCDy(HDa?f7Z%QAEh5ASP&9gt9{%) zI4^kwZtQ6sgfviNI|hV5%XVBCl)Uf!x=KoH>mv%W4yi%Dpx(@#v7C18Z*ny&atMKD zhSmf}?HuR6C^+IPPQodbfSY zGOgiQr!F6e>lml&Rh95jw60>w2Q;hr_XD=t&z;$L<$~BjiAO<~iWfjCAP{pNbjYfI z1OA9+!YbV^?P9N#I3dfFtFRH`$lIY(DJ`68z7p;O?Z<%R!aWf)EX84XI`?I-?; z-u-Wo()BpIT1) z2r?4C2;t-&jq;MOIB4Pdx?ehg<(l2Y?IR!G_nq!^9VkuK=DS0;dH9-jBf?wF@Q|`# zbUlQu(<%w?N6raRW#oXgGfRjPz?m^=zB!L1J5DN%)__@^Nrd&XC95oCnAeo z=zN1w6ED7<(={QU+s?=^gbkc`{2qA9*G@$1Np|J#X~g`rQkUHkvaf&cI7~5ny*&W# z*pk%|Ceb?hv!(>6n%w)OvO5%%Bs!HG^s-wts!poMl=~BX7|A6icdf9-D|M?ljX zJ{U0}8aA83_iTGiW)d?c8CLq9XLccp@^{Gj@1StI{?c82fEqjP zcA4+3A&WGe-G#DXp<(lRo%4B~<4Y0c6XH`%aYPA(x~R1!OoS*N2WS-U8U#7^+;p#B(CmxEALFV8(xjUia_i5VyBFjKI>t3L*=FDU7drw%&pXm zH1VA?hO5W~nXn?gf*Hr6DWS*5HH79MuTaD%Jt;<>=Q|qP`yW;>C}(ALvP#F*)I6mM>Ana_Bu-qgGwAvOYr1kTuY_br}8H z^Nc&B61|ha_2uGhYq*Ix;stBN{-ZdMbS*6tyfEJ?1cW_$3gN5w{X51yC<^eNZWtJF zVp0Ga+Te#ZCqkwEpCR10s_p*=X?DLY7iK^W;*+APR54V9BuTJKFLP;(Mig1mn!eYx z)P)4$frQcC27acqW{i)Y993JNmX4%lw5nLs2QiEaMtoMQ+b#hIW60W3%UcMZR3A|Z z84$Dh<>0{bt(Ftme9QR~!{#8zW$`h`h0RtY&2)w{+N_2O)A*cHN{RGEfXLIQ5>dPk z*xkV+PcwiR)qyKane(&Pg;xet=0ohSme2XG3DiNUgAOW9?yh3mN{2tvo19;?JFgjOlxT@ye*) zut-M6?wD^xafSYAGxme!bbOe^0Hl`7cvt8rkXxn+{Lga$0$Je~|DQ`c76OFDEomzt zH1P|xbG6L1=a0<))~&iOnk8Yl^~lO^O8h@Es#?c#>U~~&c^OU2bO&&9{J0RJZ$mB2 z!I%Mgx)c@)K!2xl4*xZ%`sW{V|I*I>x8`=j9s;GRgcD+SuF!TLZ52&CT5hFfFMQPD zRC(J`2AOyKk==z>?WmDBNqQR{5X=V-!QTR)V5t?%hoiX zn@A8_#L?w*JDvW!xj4#ABdjNO65UMgp-+uY0W@)jt?VYR7$mPXF0}cIiybckPmUM{ zPoO8FhU;p-PjozwhF8bj@Ge_e)M4F=UZV-;RR3*o)SrpoY+r(~H- zVxu&xu~h-5{75iR4uz)>>N?*AKMnX{tb!x&6W7g#{MMDNOm4aUFYewuuE}j(7X?L8 ziiikGk*FY`G^O{5OqxtU6hT3V3WyLPARsLyDpI5u0R;i2h)9#(iS#DDgd!#MPC^NR z6wh$3z4n^Rx#r&UoW1Tn_jmu`7x)ssBwrb0ywCfT4ZDq$*wY*#k#F}o4`D%NQ(vOu z_MJ{0aTq{|H$lO3GVi?_JG!-pa`!u3nItVr)vNK|wvt<_=N7OZ>3w6_ByAe!zFRm2 zB|T{l!z_s7pcJMupz8oCjz8?FR3w!w%r?Ih(7%`rfR{hKAeDA1e>!iE*#ndW`+&}) z(WhJ!GOU1xR;gwDN(%q^SqOeL{1m#|ybev`bOz*2(bYB)T5J6-6}PQq+kpQ0S;@wU z&$chC4yQMJXL$tImdF*{(X=nnb#wNQGCdSbORZ$z;ud}iUuPmgX-w{fZc=J<35xl1 zGVo$+Y+S3aA5*{?k^|BER+LS%qVPF}}wAZURT4ejA$@P+{S=}9PVlwS$xV@g4di@yMHvJlhJS4O|>zJAHIi=7$< zebC`f1ijance)PHDa~I8>z9$@ z<)4HU=EkW!#)@aaWiG9&ekJ(=Fenhot+)D15v4zcm+q0t9FbNp>I12;Sv$HM=%dH?^tt-U00g3s00Vu+{m!Cm$u zuXkkYvqD$4X4_zCVi%Oxcdsg{dVTgT_%>xY1#}2(gA0$KhU{t6-mWY!2LaZ^35s78 zFK8dBMSiEtP*&QTszRNmaYD%6o7%+@>!t%JZT8}hbqa@>P7yv8fk*~Gq5QnI5xo-?iEwT&-+fKam)#KeDFmAcQzKX!vz5s?Z(S`#mQoXmn z)4@G@r>{N-l;?7D7l()9;%SE!O)k;%whCEa<9^zC@CsASMPP%C4o(t5aKNKTnEJiW z%<~n4*)r8~;~Tw8xGHru(Z2a_3U7C zgOYzb%acZlk-GC+4Tb*Jo(Vf~m#)^J&m1iXO+UEr>EjXDN?w-7r)7Yjyl}U`V_%B7 z=?y>P*=sWooXn3^Fnhvr7#DU~o4ih;&u9Hda#CrXQ68z+*%xS%cvPMhYvSO0 zA0LKN=jIRUj-Pr}@^u~K81BU(;yBg>pC#sm|2hbTLyjy%SY2U9mQWXfg}HJi+fj*p ziE{TR5##2ki_84D2F#`qBB`w$R_Jv#^c%H1*ZR?RRESAmk@+d@#);$Gp&EKg8%q<7 zc?A=<`*?0m>)=9BeP^QBB7-x_uDFM$KS`YAN894B44SJtdLVUiWA~d4dZzln(-n#3 zt_k>eJxPT>7=I+`FrN>Do|8LsK_g3TLY&Gtow0)bfC*7CvYKpXm7AuqlXC=gN&^gQ zDmTxSRoX=yzCI@~_v=b<^zq1sryuqot9?k(q<)maa3P`nuDA0*n3ILUbbWYQDEgMa zOm%fku{ZC4?&bI^XM;p`n-anOi!i=3G;7R^R9aiHMT2GP8X#!s<{2VvaoA4gCk_Za$2kEoO~fi@s7hhHBZb zH^*=X-F|sCb&g_4hIXWq;J5m>FvmR%8;wYA5%!UGCpd~?AFc^-pok|2Z&fuJOEN1Q zz`ngGTmvb#^qmY3OcEh51~_bo>K3na50l=X?su>%+Q+GHBq9DL>b9pSDyV?I^HfkK zojh3l9G-ZN;v<7p4-~C8XVtC?t>)7)%YBQW zV@Q&rM#~x=SV9T*0#ZJEf0ZUq;X_%!jJIflf5ol$f^7>OOm*a=o*~cmm)^~4h>C1{ z+G-+orI)U9Ov6ri@&pjwUkVV8jcVtsY$^Gr&m3LnEeXwW^20aN$;tEWpL6{oX{X-~ z_#Ji={he<91Z56k_EeC3gmew(X$tmnb0dH0P)qd zFK(}cHUfwi8#J+}p@xtlftQ9s;?>Hs(L5B@ZkoW5x!Llbepo)-_Hn7Ry8F@Cb1@nR z?q@u|Y!&icvFn=X{h(cYH{ruBwME#QsjA$Xy0=5aWc_7t-n?n_l%wwWXIw5$K^Ik!; zuD{j+akrOwlm25MpG5wRV3|o1{pA&xLV>Ote&ju@+KJ&MlMy{TLwMFM3|`tV6Rdxg zJH#gFRNN(G({GzEJ}JS{&HVa#RM7b) zqwQ#!S2tshM=37(**pn7ZE-_CA1{VY+D{grA9f8MdxD$0;d3B6b|>naR)kKNkg!i- z({8v3Q`8NsDXhP%s?{{6G5HwWi|v`~n8au!HeR-Rybzt0lf46XQHiS5cwk-TX(1P7 z+|1F+w(~s;H>$Sr_aV)~kF~j;AHdNZHR6C+Cl{ZmF- zKZZr7%MZ=*zNE+cq#JgHP#Y1ZOmETX0iZsZ=|J(sP)4o0+3etZ&rf>9 zbtU*Bzg|Ei^^3*VT`NDPgWmKb)x7{sNYt^)x>8i0mLWLd?(V+n^|p*#>z4iF=LOCt z7BNMz(_r27*U$u~Jb7x?7K{T9VUUf*=LM(WEz@m5hB2k3#^~koI1?mS@M(1RHJxUS zB-OK3Z2-8fqY|cvC5BZvapqN){8>5n>=D1H;lB(?4yV(5X-yLEB6vQP#D?WA$}ZZb zBCIibg)Ca1XO^~BNxP7JwA$puNNvg0<#&0(E8752v&=_Bz)N-#yPo25m6K+D}EXhd8FuVgF=!6D)LG zgrNDIj%XQ>4zy|15A!Wi2+^;;ZH7^@wui#U4rtx40!H zYyaw7W^HkYcr@BBTFj9@ywW7?{&r7MMa_J7KX75dZ=;{0x75(H97X_b@Pgu&0G}9e zqQU*r_JbtWvW?y5Go+B?zJcFiBW04iR5r?C^qVbN&dn~0Dr^!$WlP@ur60Y^A5QYZ ze1Yykpc^kg0&qwbVg#m*u5zC)iZ9vpz;`<6d!SR5+*I>VsR8v|Ko(^`$gy1#-dD~hjkB5QsDe0zUy9x`fx|Ix~<{oN^xy3f7 zpqqZ9nYTnbI)o*PezA5k|3Vd{Fm^e0&BaPu<@iVa3;Dy;^wIvkSl)-Lo3l-kYszQlS#Img{SNeR;O5qw4)5%~x%d$Vo z>n@-6PsMnBSca05bG+SRO`<-vSgB}tQCHX9U>OgJa8YOjO|los@xiCkY(R#3w#y@Y z^+f4;1lM%8>1?ECtzy@-rUXeWwe|n@z%uZ}q}I#Ga<#w6d6z(q&lP_f#b} zXgk!Lh{P{jkixZlkdNG8$2}~2y(<%JduzI^km8YP73SvQit!peX(96UC!KlON0rR- zR%&sf!c(&0&nKGu&~-OHX*v*pq18i&7gfI+wK8yY&98;zN2*%~X1b!Zy#mF#|vF`&n?2aj%` zarV|6(?GzpJOt`%E-HoOpxvkPj;IxKHs&^Lm`reCb@_R}eq&L89ixnw8_4599xWq0 zDHjfu%?dyK5XDj0Bha6LrAXf0xV?1MhOFdiG90Seu1_urenkI7`rIKP!0ji12;KA zJ^~C17O$8tI-qPR?B!uy)7meD;(rM`SzIaX{$%81imPCh2i=kFJuoJ-GEPGFPEo)h zLgxQrZ)Z01kn^csA-0+ELKH>A(O-Ol^t`3U+sTF?*fnmG6%+*{#P#bGR#lOW#!4Nd|+$1f=yw&|qg z`jMFaB;j7Udb^MHGNFL|DXLMI#nH{Nb+BeQkNM^Kw&M$#Sx|4Zv3EH`w42!)Mj-I_ zo*}yl#3_Jp-yvvIE6|H~WVgEhTn?7~`8(a3WDiYy=pK4(c2kI&t9EEI=aklIwO8?)$xNSygwMjzN1fMzI6M2+diJuUGJia>JOL6-A z@0s3C_26p&mX&LN^y7AjX?ZmM(WR}W&J#N(@#_*3pbfBpelxp|HO@HQ0PV0m%MTQL z7>+^AACO?MAUQHbz)}xX0pRYLDTH#r23t@aaJ|5PYW$b@aU7S z(Gzww*lXg~4iJYKtNy$#BQ<2^h|6|f>M~fFJ4)`#b{$8LX3%2lE%Pmo-+yn^_$ZZ= z)H29klwJA1OW#QT3LUqhx~hm-Zf;A#XV4+gjn{^LP@*X4holsnZLg1r5}WXtmCC6J zmPMLq_%;9LhD=30vPacS;iZ$$Hjg4_b)r8VRPpJ18-5tvwWrvo+$o#^IQ~4`n7QF# z(P%ic0m!_ziIJYQf05Zdb}uqULE!zqJim=^H$_Yu`#%gQcIUN=K3wG%&c#-EIU;kd z0yBh}uIjxpIAP(gJpz{R$V)2+oT2y*2oTF9lfda_Fu_nXpY-3j4!>Jz4%VO2+Cc0k zOgjw58qPdm8K(V*Ef&SccW1xlKKSEqAb;GiQI`bnYo{=cI~54oz`BV6w55Wu-{}HV z|F|i4BuH`go8lX=n5~yVDu82#o=m2&gVrYjbfbRS!Z~WBtx_2vtpGSF;XoW{NCA6) zE()Uoecn$SD(yw)*C{kEUX2gk z1H~KC4&|UpK?%Qtytn-+OC~$9C`PtN z3F#ZT#rB|j5*ka%3JD$Mv54~W{BUW+jkmTnqCKK{5FTa@qk9&Mn`)-i(Mm+_;H7${ zu#i)Tpf*|wmH>dFa@PO0c|VU5qFf2abp;&24$olvCC{0w%GJp=#QXKlTVM4)!Ys|t z&iNYup?c4CR#8OziAOA0w`xIf4x8!q~;NZlo zQ>q#b@%_)&O{;I#b;w<0r=Pta>J(TV^Z0S&%cU%&rcT<&K9Z^BIwnJNcDTgWK)l8i z2viP?0tVOQ4{YJp(BJFSpC9}26OD#%c`Iqgf#` zq~FOfZmWSpE7A;00}t4U(Em4XooFh_&<2-yqxp$kl4M2y z7L^JATBtgIr1w_gzGDxxZp>+gXehBri=5F>$lcMSzDDEd2dZv+64=)sAr)~)Pj412 zM#xor%6PAyE{qw7iT&lQi%=8up>LPP-ffsP^`=YcuEXQ#0{4VK5z6=BDH7{X{QEWvTmiqCt<_`4zn3$g!4oVr_|x5#NV<5I1!YKOd$-pJln^U|qo&lzTR5X^)=U%ANhFxz5M1eHT4+gp5b#SwtJ{ z@ns+HpC@1Sw#ZFX8R*-U)3=vOm$;3Fp)ekR;L>~l2V&&iMLCv1Gqk-8n#O0*RLSDJ zd{B1(!y};v4E4{ALEzBJGL$F?=E`(pF%kODP6<;;2O9Op463INvT;5 zg7%Q7HHkpCj0eCNN${mXe`}f^hwNRj-@s!UVbIoO{SX?*F6!Z4Fu-&o9-+fGWm{=I zunn#4aIzK9nM~&v{>c-0!F6bi1_i#UhTx>lLh+cET`ci6>AdhNJ-)_}wb_S1VScP$ zy0hnvT#B4Ib7XYb+h@1Y3{a~)1`4xIMt)yYYSwA)e#Fz*yFS;f?9pGed^)_+Id>wz zUSfa0{ZRj-CDF{1O5THTE!=P+hT5ZU4CFB1sl+#x+h*Erw!(cfI^*Q}gvb4Vx!YF% z?II)oQ<3SM?Sl44IOL=X^A!4MNp&VtxjfqZ?VH?p#n{lANOvbsDOpT}&CLgbuflNJ zHX{nz9q!X(#0)FkgTjL1-eO5+`#7&6j*+w4hhptgVy;~N#3dV=a?&W$x7#X-DTr=c z-*kE>V36Ek))_k4)JxHyg6jqA1qTeEdaP`SuO6<&k4&_hhO~sA4c%xts`KTEz-J&O zYp;!GYYtS=wZg>=7Ox%~tX%=-v9;6~7Z=VnHDeHLDy^(FdC)kKGvxBcR-Xw~Ak>(s zM~8eS+1EGnAOdAFk?N_WS}XWg(B_J}p3Gxzfq2CdrL2RtE!H+?%K7#wAx@$CMr?yo zhc)mtHse#dvcIJ>7l|y&5J;(G6vFsbAmB>IrSP(wE@0uT2!QW{v9NKsBW~ zfZ}gW`%Y*5o$kI6c(lJJEPrLe;y85iEH2pb(n(@elI6(84=qTMWSHd%e1YX+1>*U7 zj_WCNorJ6X&bi5}=3P=#hbi?gGlBi0=34I=c%KwKU6auH20Ef}2O)?bfn=zGH@8!A zsCoJEA)!?$hxl?v-eve}U)%Uqf2YB;dsi}#(d~Ot?-6>OehDQ@TE`_rmMQ`QWexXJ zQyWK$vzpx>yWOvNR4U9ak-O5@a z0DMpe=mp@Lrjy!~IJSd7dh^Xdhjk322VazeKDW&1oQLuG9P~+o?#?CebUDG%Ej*sj+q$oJ!^p8DT*o_vG({bC#TD+L_ia8dLQc2^bI@lUoC zOJI3ahSA=I82JIrHts9Pr|42sp$#O_{}3}4pm7RV45%whRo3&-@9*5%9XIKcrv8d3 z<-hNx$zU;Qzz3cgt39e#&XNp~^URAHy%9&*HS7$Z_J7ry&%9R z7Wnv};&O!Z)=f`JLD*TNsKNrujO+DG?)D^Bnce~WibU-fRm@fd#`>t+6J6P(^`}~2 z%OzxuEk<)Ooj9mxC-At;Y9sc7!4WC?BUtEz@FR`(Y4)(AY9v0=`W?sS!L?!)k8Q~vRT(U4=g}1l=7~M~_{#Ho1%~PT^lh(%A=S5)5bYjK z&X;d;eoTy;=)DDWL~bfrf`MHCd-8S?nx-;AtANaie#8e*s?cB1IX*I&_6=1g=svlR zDM8WyS)1faR9>B0_)(_pZva(Rq8fCtMg-MFJAy^3XIj{gH13R|dfc5x)8cHl>m&>d zK83&IT#ad=Fp*y3!h<19TbQFBGFmF~A3ZTv!}boQGjFDmT9-x1ji_(i>lSYA52ELr zZYB$#n-y-SRAAgcj6Mo`#OLXR50{rsDP9L9rfMCil{nHa0GP)m=JtqFqUOp9@pf}DC22aTVqXm}(+SJgQZDsM)SMy3 z(KtHn$Gt5GRs4|8iBC$B9}az8%ZN!r9z4DAGG9S?)7%uaLwBdkU1M0rS@G4qiR!hx zvI(T2i=cM2KY8n5bfFHXl7R1G@wODTK@s&Wwnler+Xq>+)U&y~6NS+v)qo~?k{1ya zL}g)5!9n|befRU@{(qaBr$|bn%y0D<@Y?+Gs4x*;MY&iGTOS|Fz{*Fkfi^EPl8m7B z*GQ4{r|ndvg(BZ~q*(HTR^MWjkyzI8%rhp+#2H=g8&B1)vvD7+jw4EmT_Y09th=BKU58U3ckfo;pZUo<#GAD4_^D@=A5)<>F8sTiNL z=mT?GOxJZ#k2fms`<<29KU<%tfz0+q+ZX7S8-svZQ>c@R_%AEq`et+u6c3oIx{>QP z0Gq}TH$b%;3Hg1D*FT4PS(HI`JiH(_&uC2B=mfPhf2e5pmWg`+`@cyxK!3{u6~()} zNcgto5#V(OI=rE@N0h>F=)`#->;!#*>)_C0)YVS@z!gOMYow8u0nKQ76vx8hYzzAn zD9+EA=fn}1v_opEr@$}t_lhx2XZG8jzVL}qy1)Hlw&*?Fb*Hzbz7^!RXdyd;?DyQ7 zKIyhQ8G8`DR)YDLy^K})4-{*}$>O+So07qE_}<|$v|UdBp!>?$5L7Z)|pOrWJTenv89) zRz}CH!Y$Df6{OB^6xs7L%DkF7)TSCe;D6K!b?09D+o8LVlhW})X2&_g@vfSzndnx-AT0Wg@t zY_Q;tgwoWAE-~)UL1L7T+ zNZ_09bA*yQ0I?rPn9<#)z%Gyj%+F2mRWA`*^ABb}H79U`9R3&IC;Yd!f&BmOU3S@U z87qv_kb@L0JT2cX)8m1jgXs0rsyFw`-nO*zeOftw@^UAAlMeTq=yID#?pHOgM1}#i z3?Tu|>xBkBU@Xk_eOvsKO(RZ?;h&8hVe-jn9tfDXN7H<`v?<{91#i7lgfwP*WZ zaKlX?)W$t%%U*~ixvIvt1C76JxXb@z+4&6tsEZ?}ZEoAP6s{XIZHzB^2QVdjp2Tb< zqE>4GJ4NgVTGK-6qiGGO3IGYrJ20RxvBfZnekPs3u?ja$9Ia{1)&AI#Zno%^l%ZlG zf8N3QV$tWa3ij-9zMzEoqv=6%^eQ*U9+PnsKeFIHdm!q@FZLE^wF(3cE}IZSUlFfG zEgg$#FY5ljq7XraS35+iS(%R%!K)>pRDEt;^-6v})_bI&~OACa0s>-r__>o9rHK z+c`$BQx_;>rRBwU4tP0sLfrt$+)8bJ(_`s3B{^K!Ks(kgk=8HcV<~PqdZ)O1uv6h| zykdIUv$;S4!4JCJ1L}qnLZJf%f{gY>@fj=0(>am|ik{5!9IZRx>Kj+8eG@f1_W@c$ zVU2-9u~ZBU3lE0mk!ik-uIPvNF!M90?c7oKF>W7|(hW>`l8YwD)`HqV`8=cztIGO| z#^lCaThD}F3ntq)uE`Wif6{VHxg8R_bi3a%#z_5Ml(a=a6Wfq&LlP(8jYHWyEFNul zKXJoVZQf9&IU%n}l9hzEjH+waAsn+%QA$eA9^4ko=&K!k`^wmoI0`1{0PUAOCfj2?h$G7`T z!#G}}tJ?P#to{wO;gq0Of_vB&jBdp28$3QeEE?hYIM%7%{bG>(n`aji5<(I)xR-lt zOcE6h?tC`&iCk#Y6)iLa1Yu$apU$&a{wCZEu4geEqTTH@Z2Ptne(VaU%ygEN*O`z? z_ynYMA@C}y(w!0)FBUggHz+OX-8$q(AMBB1ZR;Mj!CFqf{`9^18b^||0ipQ|JXCG7 zZWX6k%ywdk)Y-9C^!`XZ0j6UWrIY@0bs+6bPb#9UGu=sp-+6>`Za}sbZJQ|3RbL8W z)=r>d7G~S&!p7eY8Ls5Joa|ufP2ja0x>R+B;cd|dZT&=26O%9AF+_vG@Yx(?N6-SHT`S|t~|H;_J5T>8BECQNlE zNITpv%I3QC1|=bXPU5nfH^H_p`M3wOen}NpMLut##682IYG)5QNa%E~JkQtoN_JY*0^qJF}&C>e4KvTG`VmmI6O#FCQ-V6 zZ?0N4IPI~lf24;~$H@qZ*0VsHqga2sg`4{hN2DFTvH?rG6kY$>!`&jG;b@d#pTOss zJb}~JbEhkt7*)bz)-lD+jTTT7d~>*15$xzK3y>C)_3N9df@)p0Q3kVH3^?=oP#fl? zPp3@FPO9ily1uUk7PvO7Q z(VFy?0rr}jEA$5j_YJ6DkU1o;A9U&$=Xl0}SUg<*N9fls(~`=W?{tz75CwJz697h( zj_-8K?`c;m!VjU_n<eqZO)VGYN<3u}1?CMBY>nvSNIq)B zR-$Pg>dau3bY|;Rg1K!)pQK>%n<+T_gUIbe=X7r>EXMH1te{J6S6!^g$7x+=0ilj! z(*u%RQ@rBJhIUoSrG^4N9YYHHWFuSY@Bu-?*P@N!t8z8V=r_qFxnS4^~xL@gU4gsJHo+YwnP`Nr}D&8fev|((Tk~&sB@|?@wTRc zUJ%C<%?K9LOuTcY3D;`MW5l+W4_%tKKVjJ5Ed0Sh*Q)MQA^-6~+xol!dHw_VobACJ z*NV88#jSpGd0y}QqAd3{o>a-cB*A{7+nVyVVNXHilf(TB5+y-vsst}~qn;iQ;ST~+VM<9jv@p8>kD2|zu- z#`v3|>8%^GDp$P#D9!3@Puc~V2P&)oooNv09`j862xSA1-Dwb7x33ByBu_!bPVuS{NvVRahG@I(@MC{t@u*?J9326? z44+ww0*)*k4T9M~*xMISUojD2wEX}UAS{tmK>F9EQ`m2R;}wx%AYu;Wl^pN@C?I_f z0IRlt#J%kYJpj>0G>H|gQk%1;fJA+$!5!v=w#HFtn-dr~dW7Q(v1jo*>_Kaj>JAEiyeHm+jqy2vr;Emuwgg(s#OyH^KwOv z)5VMzNZvGxI`y5J%)`C4xO>@lroO*$43B>)td$$R-(G(5s8d_El)`ELlxRyZB)L%7 z3EYSxq;ikI7&_0qL1d$DRxJ}b*HfY&AlI;x<=A|Z+Qqx@uK87sGmS(AT#$(BFZ;l9dvMOyB z?@nRw!d2I>PQ0uUuxBibGkIycaZ8U3&)Ukik5arE?Jd2C5GW-_!QRRWZ$ft6(4a(+o=QNF1T2y%RY*gEVDffb-O2BCnOSz=^T6>m zs3(D=se`ug3{AXBmI!K`ANC#3lD{JzlehaA1KCvbp~ir#DXD^OC5NE2*=UA-siK(+ zv$R8`OW7Yh`;u4hcsZ{zpMRix^H=z%f5M`+gEr73r8K)zYPc7SHju}Aslhns#PzJo zKG>Uu-a4atBcicDJAZTb&rFI{(O?p&)KLEWYq!lY5(U>ooxKr<~hq>B1i{GGwv{~Lo@4G!*tHgwAlh~%3_?@9F5 z+{nvMr7uCuidYz_s|;Wy+m7a`PhfWim6hRj?9J?sOk zO>u+*G_OMfeq<{x18MOKU6D$H+oPRd?n|Nb^x?uT9-T8D z-%{Uivs_f)Gj=x5=7+`hHqIRD-hC|P$uNEHBI=5hlqvU@4&=Dav*xao`6nIq1Z%{% z96%o}e${nv92=Ux&28~0@t#ktlAD##MD599TN@vHE$Rw(cou{4LK`FRm=KQS5ZcTS z%~ppuS{W!^dM+(Y%!qN}XrGxx;hR3r*3Eoq8hg%)K=mjYB$L&b)TH_x+`3jC;s_4S zfkg?!lV!<<1cnn_gWWnGO9<`K9rVS5k3ydx7Cv&#H#zKn=`9tEczSTlx%V40)*FYL zuHL1*0RDl}&*IPi`BNLy(R1C-uPl_CZ9Siapks23Pk6gj@1Bs)6oaw0%AUs-mF}G0 z1EVCAb7h7Mi*#6p6q2QJae)A&wH;GxQkEM~aZ-U!>q{CNZr$Cmk9D>ymD@RXTa-)p z7s)fs{CcNDxVbLoa_RA|YJaI{?wFc5xXg2Br0F#>nF*;@&}Z8(hQmBx(vH2Ab0+cy z%$B9cOtzMd`^c444g%6-nK5p*DBqKzNbOEYlDb0cuaJnhEHO<^(!c!qQ@7jCcAOJd z^cEV+9osG$t=(Alk(*m?DgUIfcB&vK(G^q6D*2tx*;FG;_bWv+K3LQiA1rFDiQ zCj`BSn*1#gE3Z(`it91C=Zft$dp`+>y{Y}`brLM|WCFJZttSr;xBRGn^Vyct`h!aS{d;|rP{$$TUSWJH@kR$=e*)GVq`XPV?DGLr5F_X$)s8&mycFd^XxD_lKMuvBvz zDbi2lw;U61h;=VH`t?kJQE^0ZIze&npi|Ci-dl1fMATW16Yg|KiEuI8v}lW*zi+(~ zuFyHKQ2wR!(p#3T4D8TdR6(ZsiS{n)=qT1Q&)c;+ch!A^JFdUFl)OJWV5irBY7&|y z9$iyXor*FBe7qs2|7%bdg8Ym5QXCp@67GL#p)?+qoGI^@zF}Kk=-nc)E2}@6qI>^A z+YF0NnIONjFH!RkiupSfh%gW7jl?TaPijEV0?oGLK@k1}2E+DsCy%6!0)B-!;8!TH z2K)+bVRC@Ieq+m!x1KCB@*|RIoO>Wg5Gx)jzBR#i=eB|MrH-O?@78Chw8q{j@`bn% z{WM(e9aygG(_ra92q&<+vfM|qm%DUNMn-lX&gDxEyl^+ai17G@O-o-v$l0-~e#dHk z=UXQSQ!nTiyE%+fB#`o8@?IqAlGRB@D-Wvr4Ff1lhlKSB3=Ym>k$dU~e~H+d77Olt zg1Jf>#5jl&Br5ZFXMe?>P`P>4+4o8Bg|ThK6UxNo6B`8uT&A}|E5>y93DY;cd_CkC z#jq-AqTZ4ptD@;_|6DhvPwZT!$E&vo@9{((^k~gi+MXC*!fIEOpoFWcUf=0%^ttxg zWFV62Y9%vn5EqEgI69aj3>nr>@=b2#-WXJX@BycL?fS!~VaG@a7|@>Cw(=w;%f3%I z**S4Z%Q>>I-{gRgDn0n);`j~&Xv&;S%g}bMYX4alm z!NYr?b`amBQzZRKWz`${y^dd#WXts0HOtGMAehx>G%w{l9U60La&i%Ymfsp;?Un0< zO<^bzP(SGQVkUYK`HFsiZ#=*Umt*41dbM-eu%_4{+WcEXj~<7Y)Mp0B{R=rhH}C{o zQVdy6H;a_Ad_BRk5RVO<>~lo*iAj$yc8f=bTwSRB5TrO$rg>Zb%q|ungtIETlWhA) znA-Ra5iRptc2xqSzg6=n-=F>J%5#CT*F^$g0w4cGVg0b93ye)MPH9@NIF}H4=3IN zV3S|bs4|A#a!J=d4l=}bUFnePwsgy=Tw=o~3D0i^bd0{Fohg%Ig2djS&;2FEntHmD zVt?j`IS#958A@8-zcf+6x?HOJ*ebX!>kHFD-lWEFap`;O;1ge067~%(@?Yp3?8!|h z>xX``<0JOGe16F|{-JefTByxN`@zn`{Cb4tUwV+|2})#*?kKs!ZWC20_$yn)D)Yx{ z=Ng;8cKCU|@VkP$@@QI7aDQm-DDfdsmW7efKY}w70TI{;%keL8v&`hWM)7d$l1NI8 z>n5=5|F?-OAYchuTMON=j+dl{5|j7zJnyhkPH0a;nqXlSJN|Qc%!~Eyb$X8n9kb|_ zVXmo}aUH|g>y8;;FXX2jxRA}*6(vt^vGd2w;X!mg9%Om#am(gWj@<$Hh3wKbHvt2V z41TyGD&T;nu7Ptx@#!N)>|wHv(x0;_<(jp(%6o6MY=1l;s}lfhdWTD+c@ zwrdjvTl}ulf1YuiMzNxLP)gJ!x7v>$!i{DV{%i7%ZiVGG{%E_iiec(saQ$J7@A7&L z|DTP}>D}8FA;*+@6>aOa%UjcXT8T5 zn3Y>n861{Zzp&+>zGKpH2+h&!@?sq zIwVl{Fl5s@NZdA)kQZt)2!Aux`ga5d0$5K!>_`6cZt_iTOs@gGpw=bsMZX&`9V9bJ z9f23dg(ct;9IP6E>CR&ZvSTr7r__ai*Ih+2MS@eC&NMVA=CGQ*mnYgxGIF6i^j7Ze z<+;0*3%!mg5mF}V%<|DYW_8`w82_!s{;XRgmv(a#*~XHb=(lxB@)%m!-oyW3XldM5 zm~~tEwy0pG#KipASoJMx@;RZ3W%se~bg-GbfK9cObPG@iet6IP*$;gt4zmlE;ecY5 zc^d`Fir5JN`DpM=pz* zvO`719-ldXmXA;A(sgz27TK4U1Na*39g_28sJk&iC=#A&Zswt-x6V4WYFR~OGYb(=J@qwiy|*EDgH zM~YXE8`WT9iqI$kTwH^^C9|DH2~W(F9^t)lMy58XES{HX_W%z8y)-W`A}t z!P!~4LGadNmCuAj85;$c<|gkRrDHsii=-pK{3)k|Dm^nso2?kQc5b9BarIi5)vHYi z={m$}$mo#!SQg%`8=&sJMeIYW4WfjWm(v%XNZFrAGXL6^{V`I@S6ra-=*J+X!lS9> zd07gH%Dev!UZpfbXa8onOu9V%g)$M*4~P@PwaT(rH-U5*2>bc+dPA}8Eo>KD7MAU+gprv;RigR(}T~> z&81J0*}y!pHy39;QWEFmPSlGjuMFbOdE+>ruoKMOdeQn`@qK0gBliAuI9UyO< z-7nN1vzC~@Psgpo5~b8n6UL9N`y%x|KHPf+we5G!dLy=$GM+c9$9vrETUuuQKB>cu z`Lf&den>{#1n(HBx6xq`9v-mqWm!D#nS%`6LTQb8;mlBJrqd1w;)ck^+R<2U^s9HD zU>vUNhduVwjvBB8d)R7|_r6rF#~0kg z{adAgrXK;)kN|CnsTr`BceMqo~IxGk)Y;IMz zuQe>0-p&oC9fJa;Z+8YRnR5Od!2Xq}$HMp>-&zc|uWD1ed~=Lk{#Scn9uDRD|F2X? zl7t9TAw^NjQe;jGk|U8QVk$|9iLwuqgb-64gqZBIO_(9;WG7qJ$ymmWCA%5xU}pN= z>U_?pI@kG}bFS;VT;J<={us+M&ph{Y-*Z3r{a#-0*Q<2NQ+N!$5jvF9i~J~zpLaLb zrtmJGXyF8{rDlN@;r4TL9jbp7e%nntM%9$ARWWxBdF#y)d_Z#W>E-(7nH=%^J&<5` zl;1I4VY>gIeH2BH?@k${_3ndMkoeX;o6~ixLo!Y$YBFhqU;bm6bYj7A$p}&7peX$Z zG`S>Vfdp&^Jk!KP+LL6_+aPn`#*Y00-B?l zZ#qniAFV!boqV-m?O6-rfR$Srhd_BA>@%B;F_PhoqTe9-;^#r~Vfg$E;NT);>R(zg zf!37`iPu2hmkolelKs5|!5CuzLQxjaQq^J{o~aPAmPfo!&lI%0)t4QQK*e=WxmK#KWLuZXOg}6?2J-TO_9aPv7n7Z+_om3tp z!~pUUN%pA7M99~(q3JKc7DXev{MeVygQP}mfIn?FG+FzK+9Ajg%uzXbzp3StxE`pU zRizfNe36XTKx3Llg#Iut<~bVj>8&h{r9G>E&?yMD63>ksH3lR&;UGaIhPje}`tph0 zi-%d4|5_7}%ZZGj=~I(87#Y)QXx2^_GMu>?_<;t+AWe#c|HKR_6LqyP%k9WSs1Cub z=aQRB(C{L-9H^`MXw9jzTXdU-yWI{}hK9{6@D;xoi|iGsUZcxJ&8$6s)f}wAXaHVj z9Y)qJ`5-56`T)d}t{ELh!Jvm49ncj>`6h_|9sDd0ipIKK2qnt0&h_VfW&@=+2&b+; zI8JlbTN*_Mds#J6@V%)lp=EJffGPY4*}GOR_h&DYAEKR9^!LgmF)jFDUSRo8wW$Y5 ztO<)$ubic*|Di0e=h1JNMCX*JssVtGq(fg+Vd zTC_mASsyip_uws#TDsU>8+bY;{-^|hjrkmEc@mMQYddh|$`XzyVQMid@shUs~z$D`J#3EXV$RL>o;9IA=AU;)zdo=k-PKuBy@{GpwCqoKv^VLw#Ex)7XLiCr4hwy66vx z%+PT+OXUD0iBaChFy?q-kBF5a8FWdH4S(#`IqG%F7W+YcBjX~?nKaqrTc+~dbh@<9 zJ6CgwM{d)}i3JhB(NoD(=)O@vbMdhw>lKT-C+EsA+3p&WsAVPGz|2eq5qv5f4yG3& z#uSyILw5*V?p@eV-70_-%<~G6pMxI90umLl9NHo6XEu(RoG8%5cTM#`^!Y5zjMl9A zRC;yVK))@C_gLr2#E5Y>4)X9urY#s?I?Q|{SdiNRGqf^@(^5u(8@n(7TM<(Om-F!e zTqz~vFReo&dvw}rQ}rIrrp>sFgB7H-@2kF7`Mm6suNd|}RngG8} zWIBfxPP4uE%hD{CGogj0p}0`MkjJbC>-ZQM%GlKdRk}=2u~+Ye2nS{E4DUc47tB>KQ`ty9f~zDg1P-YpqlbmpqeYa z^wan)Lf!AkEElTXP=UzXJj&HDoU|WHM&~t5Bi+^Zf~V3hsmrTs?;9M8Uko}U+f3tG zd^6@+ydyjAh0DIrD^QeqW&-Q~#RP`B^sZJv_DcDgqy(0BUtBC$A0ImVdPxzcl3gPi zs)++6CKqYh2vkZ8c6R$#X@)Ns#ptKSd!Qo)+7YVs!feDL-Sa1<=4*V6gZGp?0(cu- z$E#TV%500bA!qBZbMCgwvkocE7S589rkS`&D;VrP1hdx(hng5LMnIjy9-`RhH~x0p9c2Cf4&WM zyj~uw?8d?qbd0-yHHOb-#lFp=K-?e%i9L1KBIDx$a9L??F@Dprr=B$ov_ zw(PJ}ulm@?m(rIbEy`Ij_|jruCdidxBcGP&CYuxcZH%50!_&LX`?ZpZXVPG&iycG> z*4yGVRQdM|spdcZB(MTn-#SWH2F98T>oNwvhTxb+`5@<|k;5jdYuJ&66;JfS9B<}X zI&_eC%8~+oBCbSp>I@!oUV%T!mP@#b*1@7K*$PYEjF>f(5e{7TxR@GkY%?|dlYnnB zt4;iHTk9a}Lr#fzTfJHk6Q~DmP>PtavmX;}Js}yeS;j4p{SD-Z^gjHVKbsZ*{yMl^ zA&Z%WLtclQ21(m(qElW|?4TNPwdV^%_D3r7u$xxguIWuU_;iRI6}3b3(YaX@rq1)Qn69}1@*ZO{j7L(B*<;hSVhIZ=s3fxz{CC%F9NWVz~Gu4%4nDgd=UDkn1Yepfj z!`Yk;A`T27$CF^xb%2$sS84jM44sLB74x1tziZ;4^rUanm^nXnF^^()9Bu8S>AzKT$)1ObEND7;ag45oSf<5Q{zG`>3+?a! zc8H~G=26*xdJH-5nzBDaBYTv`$@@qA*E)9w;csnQ~xDI+`Fl5%W8Ph{f6NMc$) z%!U{{-2dj0>hh-|H_6hAb!5w%+V@0MdU)dW^)AZHJoY;1n)*&qNU(@E0C6h8q)%y? z{H9}He#q?_h4)X{MIFM3g)95n^FDYTpXlF8HHt~Ob0Pv0Z~k#yh>&X|DDpUBw)aq@ z^PQWjhwr6)P|^|WS>Y*E%g@Rt*{+ljeHVs1rEw5jjzJ2`W1?`g)u?Y{QN=su5N}?$gYkN64(fWhAN35O))Zdm4 z)jlq{kd~J45US(#Jx(h7((fJl)%Vc#^IDaibkb|wcfuhaimol+%8X2Q&bfVBt*wV> zgnni#W^{joek)7r4Ey#!50x+O@#U}XF+i;sHNQ*9Md%Oq@s^8gEq39OfDvWWH^j`J zRz)h?E8F#JI=r#V0#t$8yx7y>M5AUS_%MH_eX>1cjn83 zQmiVb(WWu#tO?2S+<@IvP}uRV*jP;2{^SH8S^J^infDKnB?4aF zYg^*aExy1)s>f+|o0+s#RJdl`$2mtt;PpaDjeltbvmtg{CuUTa|Mq|f4go{shug|( z;c+e2ro{%C-C0RNXPDIP2}sE+)E+cu+n)T(^OxHk2pilxHIvK({1rSzfMcqE>W6AH z><>IFt-dUoW!BHbHApT7{+Opm0&qZ-ptZ}XC;+k}a*%uC$;O`bPw!4;((T zC1d?o&JDMm*a#`#6jHe@xC`6AeGs+qf|rapazs+&5x_q>4O{b%^nri0#xk~9=pBAu zimnH6z#wqM&~W<2*eciGa!KrE&g5VHg#KiFw`Vy(XaOha$Lm3U*QoJTjW4kb(SI8F zI^=(Mh`;~}=s&f{6$vyI_W?eES~ipf9}4fF`>@p7Sw*}lEoCGF}c&r64Dvznip*b-bWU8_AFVk-L>7rkqL94BSVtl6o(jk&(T zo6~*z5ofy8_W{o@FI&&Tb};z<8LD}fbbuWtKV;+Ved=x4 zwJtR?2g}sb!5WcSYM)}q_U4NUIkLNih@5-$*>-!Iz_xku)BQk{gQGHb>s&ROPqB$7 zTk!xcW)u$19SYYdigEoEc_HMZ4A&;(U00vT=p3+AY@B&hco}ssp-iC-2MI8S?m}od z!Qq2_N~%oNDw?_VO@di;TZN&;B1ho#I7LTW+$`=E?0Vpyo%h8Zu)>NnKH@5EYSI+$ zhLawHQZ-r8HakBnO?}2hM=k0K%r-_N zQ5fW1*)bf9pPq3BhofzQbPINs33n~<0Q|Pj;i@gVYC_QN=QI19tO^ShYCf~6AUFe= zy2irSqBH?x{pIaz;Y}M?ILma6F2cqL2D(06018;Tl3nQ-3VtGfoQ(HFMSq{s%tW(; zjU)?rl;HOVz<@L(i-32cd2|NMz0Hw>$ZlJJ^^S$00>0<(MPu8%QmC(0RLgOrZhDL(kc!W2D}u<`L>J)X-T_vG1RbOSPPecO z?Z2c8Z~~E?`;mKBpJTc*fNQgL#$)#4vs>?7fiwnXQ?%_?J4f z!_&ZjR=$wqf3h#(55%?;Do=>T#aIZ1S*E^==%P&@8m zyYCC9?;`63s!P|Opxaiu1NPErg804mW6Rl%$D5ViY#d&Sm-)Ss?ZV&b(_B4A)vN3i ztd1sCDA4WO^>KmyMu*M&&+VEDt2?|d%6>zR=umo<&+dC{YLwM-_nJsd@0jw53#st* ztBLgvR);c@t2RH6GK=NxjknlXFX6i(Zj-G-SqdElcBrv*{&z+GL6JrsI4+KW`3&U% zmvNDhXVJ%e2eqzWWfaDp4N`q*EvCig-NI^dhxmFOqepj9Kopf4VD1WswSLlxmA+Vd z;67YEabw;YiTa~z_ff}AX!D&}EvR_3jt!#L3e&ZPY-X@i7aO!o2=*mBZcY?!j3O|g z$h%7j#9O}b>_b%-6(1kkd3}#m-0kNjHM?JJR-VK2Bg6(E4~zDp)2vqx!nWOI=%$l! z!Oa&bsg%*1Yi__ewQ_R**|;zZ7Zno zs}5l~=*1ZaZ5%OlOk}d$%44X85Cb zl?c(CP16|Clo@V%g3h)q$D#`v8^;QGVw0=x_T0w~sxP|rI?S2P3C zY=k0=vN07*b{eb1ygXUAlL z3D1eHHVd0zD{S39(vwc%m@Q=CbvFK0(JocIK_^aTJ?lVtBICPVLE<##EMb9nt46Br zy?1+?Ixu$^pT7z`pw}RopT5;pwPVxKsh!N|agX7psZ-Q;opx+-1LjHG#sX|tC;CF1 znR}-M{__1@JFnCSu-!8ZZ{Eq*RUoG><7(bs`@z)+zWvS-dcwGb+6mQhKDqc~H?9U{ z?kcG$z8rFTaI>C;xe(2GK<_ETlGa5y_lCA(%EA-mNH4ZJ>1~@ZSx-`|XmQzg1k+6< z_NxXz&K(xM=YOPNUmA#iK%^^BD0lm)0j6vhpHKoEqfdj$3YYZcNF~iLa3yu2AqXM_yK4aPFB7WIorcxXWAN+ zAdG3Sg%1n&NR?Vm-*W{U{aCrV6keu0-r|=`mH!EZZ;yf>f5;29X8C{51-xiOLq9^# zUYUkYZXvCll@tQ{Rw{qoUZtYIYTGcpEKysH1mFm>^i7jsqKC97jYwInvR9G)~nA_4%I6siB20aLPZlvix9D(=( zxkN(dl*#+95y^99)$C`fFUT4fpQUMwt`o^_tM=O!J@vShgltieC6RLBCFk8rgh}44tIuP4y!H3FfYHXJTpTajic0CB+motM}gj+e^Z_jEjCCO#@Ms zcWkA%8GozI9wW4#+o9f1d9!B-55gN}k1SV$4*A)T7R6!!B5P`*tNxmi)cuT%lUSy3 ztN+OTB{6g~ejI+~tNk^|as(-u{dL`N0`q%6UT|2=gBOjmxEfjW(P7o5I7A?Y_sG})l+ zwzoyUsiUpgAOD%CaEl1gZmg{RvbWUH@Krn<{ysVYI`z$;>i8$$=wVxhT*{@E&JqI=)J~iYX zY)<<~fgPkuU96zslG72p^De>#&)fE$4Fzlh3MVQ;B#mx{-A=bnmk-kwo*yaAHlbUc zDe1rfQ57s*e1xK#T=KS6=jiqI7uclP_%(gN`!Q$oIx;QiGI5;SNBVV>5p{iMWUoKe zJjJnr9k!Pa)1#&2C6u!TQIcx|QmD;1UKF{@fQfyLiSA856xgW#{#~E_EHaOEiMM|s z`&Ji@B<{*v-oN|9jdm}I{P+x4k4gwNBs(UxzlkSN(_22WDfnmST)7(S?V7>87V8=| z$`hU5ltwLR%v2p>*Yz9G3BIpY5YoJOQi+^Y5^Ti%S`9DPR}VdyHByb^ZA4VPQ}uI} z9rlF2i;jHAaG}Ya+()1sDl1G!oc*B4nZ!Td{?W`@!Tb*1I#l_#t%a{C_8I%g!6QY7 zx23IPal?dq5qH|Sm8&<>9?^>!be}0G9L62HZI?IiGf5yDFJrMP9SI`!Ni)4L^s)9u z)NRq|Ybz0f%e9L-RCrK{Lu!dI39GX7GaFhJvpP>AYb}b+FqZp}q!bXZA0IJm#;hf7 z)HQ%livG;ji2BS12Qr;@FloYQ

yuuQ{s?`VmPxT-1upK>*vz4_6yIvJ9I_>2>p3 zZn=9Od@s~-9n#7!IXv|=fM}Gti1}m~l%#GrHkbIL~{0zf9 zg5u8X6l?*utl(DuWovFdt7BXb8xz+h8Muw|UMg>*Y6VS|D3Z}TueOLz$v-*vWPbI& z$fMVLN!`7n%M#qVeKndFC?yt>p7MX;K01(A6jd)-MrF57!whW15xNnur0WWiry{+d zMlV$%d3#)q6wS2GP|4>G;<^RN!*iA~Q=E?D;~`o6q5SI}O2DBsWeT7ZVX4^~6|f}2 zYD9Ev!tXn6(9+AvFJgUo6T0Y;7Vgsod9L6#?du<%v{9u_wN#ZQrtJYxY?cHTr|BBH zVYN>K&7%%(hMn?AI8|OS)hQs^l9$;ey+p$s+S1it2+u?-mqnafp4+M8? zO?B2}TSlcLD__eaNAH4}Rn84?M^JJ{Bz|7W3_0Mt288LRhmb%n?C{qwD$asBIOrVY zLanUqXDe<~oYHpM(19&I^?)9py=%%viN8lNeY!F9V3+lakNdAX`^??4LENTlqNqNL z7XiT>sao*FG>+nm+k~nT~ZkIrzWbV0Vu53Lv%cr~H( zEN3R?25hs0rj$);iJ1PS=2dpnsXkHb0{f9>wUSRKR~*c`odvUGdgqLcrtyuVm0F=L zVK8^qKpDcfPayQo4DwU+1dFLmH!f`~j`Pp=cUlU+lL7naf}i^Yo(iuR#{Tb~UxjIL zq8OpyV_(qU=QofA**`CTI$;En{Xfrd(30`N>o>eFFsMWen0=6|4_Uhwz)EcF*85ki z8h74uJbe}b96j-&#+N9(^f|qiQRwq*(*Y90?HaO-R4@A)aPI<Bb}8zha(W&_EadCv_cJ(&34t=Yz@hvq zh5WV%uvC2g^IwM&iwaENiYWC8l**hxkkVeXDLeB$go--D977&q?LbzXzCXk2bGY{5qLE3=j zH})m0+Z8sX^%A5zzB>abh+PN=wgrYCIdBt66BzB#XJ!PkoS~B?^0N}nKxXR!W`)NU zI7{sOUxmR^&jZpZ0&swiK9gdsMaB+|- z%!k@W-CCz3>)^|gzOtl9(ARM6!Wd*0j;rRS1n)FJNh#jaT+BJw6RpyXa(vb1=?7UJ z6k<|kOk~xqUF5@^_pWY%&eh1T4(KoLM1Fb-TYC5UPGX!{DR9OXy)QC%v9c^5^L-$OPzAEbvaM;^GgH@Kb9ty$d2Ys&IUtPp-3cIr^xXwY zMFOEX2V`^QKd1jMjtoUjmJ0cqiVm<-yn^Gg8K<-$BMOct1TQjj zn-F5I>QS?z_pfxqM{c~gKvrx_20}uau%#(z1?v0eJZ%c*4i6u}lh=bC`cs$u>LQw~ z^=-?tw*%F2rpqrJUy#1Jcp_`tA$gW3@VoHVEP*@?h)EWs@%Yd1Z!W&J7Yl+YnR*VA zgaw{dcLFNQh;>^uyT=`sDk zK12p>SZ+Ikn8~qWzwuXWs`uY5zMeVQwX!?&3fui^T@6c_P{$GY#bKiyEfyagiB}$3 z8%HfNi$Qt;dRD3-2OqCm-RTUzr3xtT(g-k5)_Tu?l48~@k+j5^l{X&$y!{8mvL`Rk zbZ6k}n_Ml5A6(C{%%LFHl4EOI@vB@3HpZ?maz|+HnlQJcK) zJbUP;e)#GD!AyhA5!zhFS4bCv{atBsx-** z907V|JWd@KIV6}d4&d>hLy|V3{%PZ%vHE9T{qubMvzGj`CjMXBKR!}%*a#LfO7!`3 jPw;z9_b%L@Rx^A-w*5uq_&?|Vd3DJD?_;#?bNBxPV&)AM literal 0 HcmV?d00001 diff --git a/docs_src/use-cases/use-cases.md b/docs_src/use-cases/use-cases.md index 115b8c7..8647342 100644 --- a/docs_src/use-cases/use-cases.md +++ b/docs_src/use-cases/use-cases.md @@ -1,4 +1,5 @@ # Intel Retail Use Cases [Automated Self Checkout](./automated-self-checkout/automated-self-checkout.md) -[AI Connect for Scientific Data (AiCSD)](./AiCSD/aicsd.md) \ No newline at end of file +[AI Connect for Scientific Data (AiCSD)](./AiCSD/aicsd.md) +[Retail Use Cases: C-API for YOLOV8 ensemble](./capi-yolov8-ensemble/capi-yolov8-ensemble.md) From a8678b512b9cfdf31eba42dd753affdcffd6df12 Mon Sep 17 00:00:00 2001 From: Jim Wang Date: Mon, 28 Oct 2024 09:23:01 -0700 Subject: [PATCH 2/4] fix: address Neethu's PR feedback comments Signed-off-by: Jim Wang --- .../use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md | 2 +- docs_src/use-cases/use-cases.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md index 3ca3339..4fa9de0 100644 --- a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md +++ b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md @@ -10,7 +10,7 @@ The yolov8 + efficientnet design will follow a similar custom pipeline as the pr ## Applicable Repos -[retail-use-cases-gst-capi-yolov8](https://github.com/intel-retail/retail-use-case/use-cases/gst_capi) +[retail-use-cases-gst-capi-yolov8](https://github.com/intel-retail/retail-use-cases/tree/main/use-cases/gst_capi) ## Next Steps diff --git a/docs_src/use-cases/use-cases.md b/docs_src/use-cases/use-cases.md index 8647342..6e207c1 100644 --- a/docs_src/use-cases/use-cases.md +++ b/docs_src/use-cases/use-cases.md @@ -1,5 +1,5 @@ # Intel Retail Use Cases -[Automated Self Checkout](./automated-self-checkout/automated-self-checkout.md) -[AI Connect for Scientific Data (AiCSD)](./AiCSD/aicsd.md) -[Retail Use Cases: C-API for YOLOV8 ensemble](./capi-yolov8-ensemble/capi-yolov8-ensemble.md) +- [Automated Self Checkout](./automated-self-checkout/automated-self-checkout.md) +- [AI Connect for Scientific Data (AiCSD)](./AiCSD/aicsd.md) +- [Retail Use Cases: C-API for YOLOV8 ensemble](./capi-yolov8-ensemble/capi-yolov8-ensemble.md) From 8416ed015a1e64f3c6672d5c189cb1bb443c8a81 Mon Sep 17 00:00:00 2001 From: Jim Wang Date: Tue, 29 Oct 2024 08:18:15 -0700 Subject: [PATCH 3/4] fix: address Antonio's PR feedback Signed-off-by: Jim Wang --- .../use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md index 4fa9de0..35183fe 100644 --- a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md +++ b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md @@ -2,9 +2,9 @@ ## Overview -Yolov8 is one of the popular yolo object detection models. To show case the object detection of using YOLOv8, the efficientnet classification model will also be used to help validate the performance and accuracy of the C-API architecture. +YOLOv8 is one of the popular YOLO object detection models. To show case the object detection of using YOLOv8, the efficientnet classification model will also be used to help validate the performance and accuracy of the C-API architecture. -The yolov8 + efficientnet design will follow a similar custom pipeline as the previously implemented yolov5 + efficientnet profile. The same gstreamer decoding will be used for the input stream. C-API will send the frames to the OpenVINO Model Server(OVMS) processing through the custom pipeline defined in the config.json. OVMS will output the object bounding boxes along with the object classification. The profile will also output the processing latency in Frames Per Second (FPS). +The YOLOv8 + efficientnet design will follow a similar custom pipeline as the previously implemented YOLOv5 + efficientnet profile. The same gstreamer decoding will be used for the input stream. C-API will send the frames to the OpenVINO Model Server(OVMS) processing through the custom pipeline defined in the config.json. OVMS will output the object bounding boxes along with the object classification. The profile will also output the processing latency in Frames Per Second (FPS). [![yolov8 + efficientnet profile-]](./images/yolov8-efficientnet-profile.jpg) From d26a882f5181df403c2b4aa2449b69d33eaf2f15 Mon Sep 17 00:00:00 2001 From: Jim Wang Date: Tue, 29 Oct 2024 13:37:20 -0700 Subject: [PATCH 4/4] fix: address Sean's PR feedback Signed-off-by: Jim Wang --- .../use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md | 2 +- docs_src/use-cases/capi-yolov8-ensemble/getting_started.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md index 35183fe..06f59cc 100644 --- a/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md +++ b/docs_src/use-cases/capi-yolov8-ensemble/capi-yolov8-ensemble.md @@ -6,7 +6,7 @@ YOLOv8 is one of the popular YOLO object detection models. To show case the obje The YOLOv8 + efficientnet design will follow a similar custom pipeline as the previously implemented YOLOv5 + efficientnet profile. The same gstreamer decoding will be used for the input stream. C-API will send the frames to the OpenVINO Model Server(OVMS) processing through the custom pipeline defined in the config.json. OVMS will output the object bounding boxes along with the object classification. The profile will also output the processing latency in Frames Per Second (FPS). -[![yolov8 + efficientnet profile-]](./images/yolov8-efficientnet-profile.jpg) +![yolov8 + efficientnet profile](./images/yolov8-efficientnet-profile.jpg) ## Applicable Repos diff --git a/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md b/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md index ec9edeb..307355c 100644 --- a/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md +++ b/docs_src/use-cases/capi-yolov8-ensemble/getting_started.md @@ -4,7 +4,7 @@ ### Presiquistes: -- Ununtu 22.04 + +- Ubuntu 22.04 + - [minikube](https://minikube.sigs.k8s.io/docs/start/) - [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) - [kompose](https://github.com/kubernetes/kompose?tab=readme-ov-file#binary-installation) @@ -22,7 +22,7 @@ and then build the container image for minikube to run: ```bash make minikube_build_capi_yolov8_ensemble ``` -and you should see all built successfully. +and you should see all of the dependencies built successfully. ### Run C-API YOLOv8 in minikube